@import "https://api.fontshare.com/v2/css?f[]=switzer@400,500,600,700&display=swap";@import "https://fonts.googleapis.com/css2?family=Bebas+Neue&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg:#0a0a0a;--fg:#f5f3ee;--muted:#8c8a82;--font-display:"Bebas Neue", "Arial Narrow", sans-serif;--font-body:"Switzer", -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;--edge:clamp(24px, 5vw, 72px)}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg)}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);cursor:none;font-size:16px;line-height:1.5;overflow-x:hidden}@media (hover:none){body{cursor:auto}}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul{list-style:none}h1,h2,h3,h4{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;font-weight:400;line-height:.9}.grain{z-index:9990;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.cursor{background:var(--fg);pointer-events:none;z-index:9999;mix-blend-mode:difference;border-radius:50%;width:8px;height:8px;transition:width .2s,height .2s,background .2s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor.is-hover{background:var(--fg);width:36px;height:36px}@media (hover:none){.cursor{display:none}}.site-header{z-index:500;padding:28px var(--edge);mix-blend-mode:difference;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.site-header .mark{font-family:var(--font-display);letter-spacing:.04em;font-size:20px}.site-header nav{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;gap:clamp(16px,3vw,40px);font-size:12px;display:flex}.site-header nav a{opacity:.7;transition:opacity .2s;position:relative}.site-header nav a:hover,.site-header nav a.active{opacity:1}.nav-toggle{cursor:pointer;z-index:501;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:28px;height:22px;padding:0;display:none}.nav-toggle span{background:var(--fg);width:100%;height:2px;transition:transform .25s,opacity .2s;display:block}.nav-toggle.is-open span:first-child{transform:translateY(7px)rotate(45deg)}.nav-toggle.is-open span:nth-child(2){opacity:0}.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}main{z-index:1;position:relative}section{padding:140px var(--edge);max-width:1440px;margin:0 auto}.section-tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:24px;font-size:13px;display:block}.site-footer{padding:100px var(--edge) 48px;border-top:1px solid #f5f3ee1f}.site-footer .foot-top{flex-wrap:wrap;justify-content:space-between;gap:40px;margin-bottom:80px;display:flex}.site-footer h2{font-size:clamp(48px,8vw,110px)}.site-footer .foot-links{color:var(--muted);align-items:center;gap:clamp(20px,3vw,32px);margin-bottom:32px;display:flex}.site-footer .foot-links a{align-items:center;display:inline-flex}.site-footer .foot-links a:hover{color:var(--fg)}.site-footer .foot-links svg{fill:currentColor;width:20px;height:20px}.site-footer .foot-bottom{font-family:var(--font-mono);color:var(--muted);letter-spacing:.04em;justify-content:space-between;font-size:11px;display:flex}.reveal{opacity:0;transform:translateY(40px)}.hero{height:100svh;min-height:640px;padding:var(--edge);align-items:flex-end;max-width:none;margin:0;display:flex;position:relative;overflow:hidden}.hero-media{z-index:-1;position:absolute;inset:0}.hero-media video,.hero-media img{object-fit:cover;object-position:70% center;filter:grayscale()contrast(1.08);will-change:transform;width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(1.08)}.hero-media .hero-bg-poster{display:none}@media (hover:none){.hero-media .hero-bg-video{display:none}.hero-media .hero-bg-poster{display:block}}.hero-media:after{content:"";background:linear-gradient(90deg,#0a0a0aeb 0%,#0a0a0a8c 42%,#0a0a0a26 65%,#0a0a0a0d 100%);position:absolute;inset:0}.hero-content{max-width:780px;position:relative}.hero-content .section-tag{color:var(--fg);opacity:.6}.hero-content h1{font-size:clamp(64px,12vw,168px)}.hero-content .role{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:20px;font-size:clamp(13px,1.6vw,16px)}.scroll-cue{right:var(--edge);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--muted);writing-mode:vertical-rl;font-size:11px;position:absolute;bottom:40px}.lede{max-width:18ch;font-size:clamp(24px,3.4vw,44px);font-weight:500;line-height:1.15}.lede .muted{color:var(--muted)}.filters{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;flex-wrap:wrap;gap:12px;margin-bottom:64px;font-size:12px;display:flex}.filters button{color:var(--muted);cursor:pointer;font-family:inherit;font-size:inherit;letter-spacing:inherit;background:0 0;border:1px solid #f5f3ee40;border-radius:999px;padding:10px 18px;transition:border-color .2s,color .2s}.filters button:hover,.filters button.active{border-color:var(--fg);color:var(--fg)}.project-grid{background:#f5f3ee1f;grid-template-columns:repeat(2,1fr);gap:2px;display:grid}.project-empty{background:var(--bg);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:center;grid-column:1/-1;padding:64px clamp(24px,3vw,48px);font-size:13px;display:none}.project-card{background:var(--bg);flex-direction:column;justify-content:space-between;min-height:360px;padding:48px clamp(24px,3vw,48px);display:flex;position:relative;overflow:hidden}.project-card .num{font-family:var(--font-mono);color:var(--muted);font-size:12px}.project-card h3{margin-top:auto;font-size:clamp(36px,5vw,64px)}.project-card .cat{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:16px;font-size:12px}.project-card:before{content:"";z-index:0;background:#f5f3eedb;transition:transform .5s cubic-bezier(.65,0,.35,1);position:absolute;inset:0;transform:translateY(101%)}.project-card>*{z-index:1;transition:color .4s;position:relative}.project-card:hover:before{transform:translateY(0)}.project-card:hover .num,.project-card:hover .cat{color:#0a0a0a99}.project-card:hover h3{color:var(--bg)}.project-card>.project-card-media{z-index:-1;position:absolute;inset:0}.project-card-media img{object-fit:cover;filter:grayscale()contrast(1.05);width:100%;height:100%;display:block}.project-card-media:after{content:"";background:linear-gradient(#0a0a0a26 0%,#0a0a0a99 65%,#0a0a0ad9 100%);position:absolute;inset:0}@media (width<=760px){.project-grid{grid-template-columns:1fr}}.project-hero{padding-top:160px}.project-meta{font-family:var(--font-mono);border-top:1px solid #f5f3ee1f;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:32px;margin-top:64px;padding-top:32px;font-size:12px;display:grid}.project-meta dt{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.project-tools{flex-wrap:wrap;gap:14px;display:flex}.project-tools svg{width:20px;height:20px;fill:var(--fg)}.project-visual{aspect-ratio:1;width:100vw;max-width:100vw;max-height:95vh;font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;background:#141414;border-top:1px solid #f5f3ee1f;border-bottom:1px solid #f5f3ee1f;justify-content:center;align-items:center;margin:80px calc(50% - 50vw) 0;font-size:12px;display:flex;overflow:hidden}.project-visual img,.project-visual video{object-fit:cover;width:100%;height:100%}.project-gallery{margin-top:80px}.project-gallery figure{break-inside:avoid;margin:0 0 48px}.project-gallery img{border:1px solid #f5f3ee1f;width:100%;height:auto;display:block}.project-gallery video{border:1px solid #f5f3ee1f;width:100%;max-width:360px;margin:0 auto;display:block}@media (width>=760px){.project-gallery{columns:2;column-gap:40px}}.project-gallery figcaption{font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;text-align:center;margin-top:16px;font-size:12px}.project-body{color:#f5f3eed9;max-width:62ch;margin-top:80px;font-size:18px}.project-body p+p{margin-top:24px}.project-nav-next{border-top:1px solid #f5f3ee1f;justify-content:space-between;align-items:baseline;margin-top:140px;padding-top:32px;display:flex}.project-nav-next h3{font-size:clamp(36px,5vw,72px)}.about-grid{grid-template-columns:1.1fr .9fr;align-items:start;gap:clamp(40px,6vw,100px);display:grid}@media (width<=860px){.about-grid{grid-template-columns:1fr}}.tool-list{font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;gap:10px 24px;margin-top:40px;font-size:13px;display:flex}.tool-grid{flex-wrap:wrap;gap:28px 36px;margin-top:40px;display:flex}.tool-item{color:var(--muted);align-items:center;gap:10px;transition:color .2s;display:flex}.tool-item:hover{color:var(--fg)}.tool-item svg{fill:currentColor;width:22px;height:22px}.tool-item span{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;font-size:14px}.parcours{border-top:1px solid #f5f3ee1f;margin-top:140px;padding-top:64px}.parcours-grid{grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);margin-top:56px;display:grid}@media (width<=860px){.parcours-grid{grid-template-columns:1fr;gap:64px}}.timeline{margin-top:24px}.timeline-item{border-bottom:1px solid #f5f3ee1f;padding:28px 0}.timeline-item:first-child{padding-top:0}.timeline-item .period{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:13px}.timeline-item h4{margin-top:8px;font-size:clamp(24px,3vw,32px)}.timeline-item .place{font-family:var(--font-mono);color:var(--muted);align-items:center;gap:8px;margin-top:8px;font-size:13px;display:flex}.school-badge{flex-shrink:0;align-items:center;height:20px;display:inline-flex}.school-badge img{object-fit:contain;width:auto;height:100%;display:block}.timeline-item p{color:#f5f3eebf;max-width:52ch;margin-top:14px;font-size:15px;line-height:1.5}.cv-button{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--fg);border-bottom:1px solid #f5f3ee40;align-items:center;gap:10px;width:fit-content;margin-top:48px;padding-bottom:6px;font-size:13px;transition:color .2s,border-color .2s;display:inline-flex}.cv-button:hover{color:var(--fg);border-color:var(--fg)}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:48px;margin-top:64px;display:grid}.contact-item .label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px;font-size:12px;display:block}.contact-item .value{font-size:clamp(20px,2.4vw,30px)}@media (width<=640px){.site-header{padding:20px var(--edge);mix-blend-mode:normal;flex-direction:row;justify-content:space-between;align-items:center;gap:0}.nav-toggle{display:flex}.site-header nav{background:var(--bg);width:72vw;max-width:320px;height:100vh;padding:0 var(--edge);z-index:499;flex-direction:column;justify-content:center;align-items:flex-start;gap:28px;transition:transform .35s;position:fixed;inset:0 0 0 auto;transform:translate(100%)}.site-header nav.is-open{transform:translate(0)}.site-header nav a{font-size:16px}section{padding:100px var(--edge)}.scroll-cue{display:none}.hero-media img{object-position:78% center}.hero-media:after{background:linear-gradient(#0a0a0a80 0%,#0a0a0a8c 55%,#0a0a0af5 82%,#0a0a0afa 100%)}}
