@font-face{font-family:Inter;src:url('../assets/fonts/Inter-Variable.woff') format('woff');font-weight:100 900;font-display:swap}:root{--bg:#181a1d;--ink:#e9e9e7;--coral:#f36f64;--pad:clamp(22px,4.3vw,90px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--ink);font:14px Inter,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--coral);outline-offset:6px}img{max-width:100%;height:auto;display:block}figure,p,h1,h2,h3{margin:0}h1,h2,h3{font-weight:500;letter-spacing:-.065em;line-height:.98}em{font-style:normal;color:var(--coral)}.eyebrow,.label{font-size:10px;letter-spacing:.22em;line-height:1.6}.skip{position:fixed;top:-100px;padding:16px;background:var(--bg);z-index:100}.skip:focus{top:10px}header{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:28px var(--pad);z-index:25}.signature{display:flex;align-items:center;gap:12px;font-size:11px;line-height:1.3}.signature img{filter:grayscale(1) brightness(3)}.header-work{margin-left:auto;margin-right:160px;font-size:12px}.header-work span{font-size:8px;vertical-align:super;margin-left:8px}.menu-button{position:fixed;right:var(--pad);top:24px;padding:12px 18px;background:#181a1de8;backdrop-filter:blur(12px);border:1px solid #e9e9e750;border-radius:40px;font-size:12px;display:flex;gap:24px;align-items:center}.menu-button i{font-size:22px;font-style:normal;line-height:1;transition:transform .4s}.menu-button:hover i{transform:rotate(90deg)}.hero{min-height:100svh;position:relative;isolation:isolate;padding:170px var(--pad) 45px;background:radial-gradient(ellipse at 74% 38%,#4b464633,transparent 60%);overflow:clip}.hero-heading{position:relative;z-index:4;width:52%}.hero h1{font-size:clamp(65px,8.2vw,160px);line-height:.97;margin-top:22px;font-weight:600;letter-spacing:-.075em}.hero h1 span{display:block}.hero h1 em{color:inherit}.hero h1 em:after{content:'';display:inline-block;width:.11em;height:.11em;background:var(--coral);border-radius:50%;margin-left:8px}.hero-photo{position:absolute;right:1%;bottom:0;width:57%;height:95%;z-index:2}.hero-photo img{width:100%;height:100%;object-fit:contain;object-position:center bottom;mask-image:linear-gradient(#000 80%,transparent)}.hero-photo figcaption{display:none}.hero-note{position:relative;z-index:4;width:53%;margin-top:22px}.hero-note>p{font-size:clamp(21px,2vw,38px);letter-spacing:-.05em;line-height:1.15}.hero-note>p br{display:none}.hero-note>span{display:block;font-size:clamp(12px,1.15vw,18px);color:#b9b9bc;line-height:1.7;margin:15px 0 30px}.text-link{display:inline-flex;gap:30px;color:var(--coral);font-size:13px;border-bottom:1px solid;padding-bottom:10px}.text-link b{font-weight:400;transition:transform .3s}.text-link:hover b{transform:translate(5px,4px)}.hero-bottom{position:absolute;bottom:28px;left:var(--pad);right:var(--pad);display:flex;flex-direction:row-reverse;justify-content:space-between;font-size:10px;color:#b9b9bc;z-index:5;gap:20px}.status-dot{display:inline-block;background:var(--coral);width:6px;height:6px;border-radius:50%;margin-right:8px}.hero-background{display:none}.work-lead{padding:100px var(--pad)}.work-lead h2{font-size:clamp(45px,7vw,100px);margin:25px 0}.work-lead>p:last-child{line-height:1.6;color:#b9b9bc}.project{position:relative;background:var(--project-bg);color:white;min-height:100svh}.project-stage{height:100svh;position:relative;overflow:clip}.project-visual{position:absolute;inset:0}.project-visual img{width:100%;height:100%;object-fit:contain}.project-stage:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000a,transparent 45%,#0005);pointer-events:none}.project-top{position:absolute;top:95px;left:var(--pad);right:var(--pad);display:flex;gap:20px;justify-content:space-between;font-size:10px;letter-spacing:.12em;z-index:4}.project-caption{position:absolute;bottom:70px;left:var(--pad);right:var(--pad);display:flex;align-items:end;justify-content:space-between;gap:30px;z-index:4}.project-caption h3{font-size:clamp(60px,9vw,160px)}.project-caption p{font-size:12px;margin-bottom:15px}.project-caption>a{display:flex;gap:35px;align-items:center;border-bottom:1px solid #fff8;padding:12px 0;font-size:12px}.project-caption b{font-size:28px;font-weight:400}.concept-note{display:block;font-size:9px;color:#ccc;margin-top:15px}.more,.perspective,.experience,.contact{padding:100px var(--pad) 65px}.more>span{font-size:10px;letter-spacing:.17em;color:#aaa}.more>button{display:flex;justify-content:space-between;align-items:center;width:100%;border-bottom:1px solid #ffffff40;padding:30px 0;font-size:clamp(35px,6vw,100px);letter-spacing:-.065em;text-align:left}.more>button em{font-size:1.1em;transition:transform .4s}.more>button[aria-expanded=true] em{transform:rotate(45deg)}.all-work{display:inline-block;font-size:12px;margin-top:25px}#more-projects:not([hidden]){display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:30px}#more-projects img{width:100%;aspect-ratio:16/9;object-fit:contain;background:#242424}#more-projects span{display:block;padding:15px 0;font-size:13px}.perspective-top{display:flex;justify-content:space-between;gap:20px;font-size:10px}.perspective h2,.experience h2{font-size:clamp(45px,6.8vw,110px);margin:40px 0}.perspective-bottom{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.perspective-bottom figure{max-width:440px}.perspective-bottom p{max-width:460px;line-height:1.7;margin-bottom:20px;color:#c4c4c7}.ledger>div{display:grid;grid-template-columns:1fr 1fr .5fr;gap:20px;align-items:center;border-top:1px solid #ffffff30;padding:25px 0;font-size:12px}.ledger strong{font-weight:400;font-size:22px;letter-spacing:-.04em}.ledger time{text-align:right;color:#aaa}.contact h2{font-size:clamp(65px,10vw,175px);margin:40px 0}.contact-actions{display:flex;gap:30px;align-items:center;flex-wrap:wrap;font-size:12px}.contact-actions>a:first-child{border:1px solid #ffffff60;border-radius:50px;padding:20px 28px;display:flex;gap:40px;font-size:18px}.contact-actions b{font-weight:400}.contact footer{border-top:1px solid #ffffff30;margin-top:60px;padding-top:25px;display:flex;justify-content:space-between;gap:20px;font-size:10px}
.optical-journey{height:1250svh;position:relative}.optical-stage{height:100svh;position:sticky;top:0;isolation:isolate;overflow:clip;background:var(--bg)}.optical-stage>.hero{position:absolute;inset:0;height:100%;min-height:0}.optical-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.optical-fallback{position:absolute;inset:0;z-index:0}.optical-fallback img{position:absolute;width:100%;height:100%;object-fit:contain;opacity:0}.optical-panel{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;z-index:5}.optical-panel.is-current{pointer-events:auto}.optical-project:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000b,transparent 40%,#0004);pointer-events:none}.optical-stage>.more,.optical-stage>.perspective,.optical-stage>.experience,.optical-stage>.contact{height:100%;overflow:auto;overscroll-behavior:auto;display:flex;flex-direction:column;justify-content:center;background:transparent}.optical-stage>.perspective h2,.optical-stage>.experience h2{font-size:clamp(45px,6vw,100px);margin:25px 0}.optical-stage>.perspective .perspective-bottom{display:block;max-width:530px;align-self:flex-end}.optical-stage>.perspective figure{display:none}.optical-stage>.experience .ledger>div{padding:18px 0}.optical-anchor{position:absolute;width:1px;height:1px;left:0}.optical-chapter{position:absolute;bottom:18px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;font-size:9px;letter-spacing:.12em;color:#c3c3c6;z-index:7;pointer-events:none}.optical-chapter button{pointer-events:auto;color:inherit;font-size:9px;border-bottom:1px solid;padding:5px 0}.membrane{position:absolute;width:100%;height:40%;bottom:0;z-index:3;pointer-events:none;opacity:.8}.membrane svg{width:100%;height:100%;overflow:visible}.opening{position:fixed;inset:0;z-index:80;background:#121315;color:var(--ink);overflow:hidden}.opening[hidden]{display:none}.opening-copy{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;font-size:clamp(40px,6vw,100px);letter-spacing:-.055em;line-height:1.1}.opening-copy em{font-size:.6em;margin-top:20px}.opening-top,.opening-bottom{position:absolute;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;font-size:10px;letter-spacing:.1em;gap:20px}.opening-top{top:25px}.opening-bottom{bottom:25px}.skip-opening{font-size:11px;border-bottom:1px solid;padding-bottom:8px}.opening-sheet{position:absolute;height:2px;width:120%;background:linear-gradient(90deg,transparent,#fff,var(--coral),transparent);top:60%;left:-10%;box-shadow:0 0 20px #f36f6490;transform:rotate(-15deg)}.opening-sheet i{display:none}.menu{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:30px var(--pad);border:0;margin:0;background:#181a1df7;color:var(--ink);backdrop-filter:blur(25px);z-index:70}.menu::backdrop{background:#0008}.menu-top,.menu-bottom{display:flex;justify-content:space-between;gap:25px;font-size:11px;align-items:center}.close-menu{font-size:13px;padding:12px}.menu nav{margin:50px 0}.menu nav a{display:flex;align-items:center;gap:30px;border-bottom:1px solid #ffffff30;padding:15px 0;font-size:clamp(40px,6.5vw,95px);letter-spacing:-.06em}.menu nav small{font-size:10px;letter-spacing:0;color:var(--coral)}.menu nav em{margin-left:auto}.menu nav a:hover{color:var(--coral)}.menu-bottom p{line-height:1.8}
.optical-stage>.hero{z-index:2}.optical-stage .hero-bottom{bottom:60px}.membrane .glass-edge{filter:drop-shadow(0 0 3px #f36f64aa)}.optical-stage>.optical-panel{justify-content:safe center}.image-description{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(min-width:1800px){.hero{padding-top:190px}.hero h1{font-size:8vw}.hero-photo{width:58%}.hero-note{margin-top:30px}}
@media(max-width:900px){.hero{padding-top:150px}.hero h1{font-size:9.5vw}.hero-heading,.hero-note{width:65%}.hero-photo{right:-15%;width:80%;height:85%;opacity:.8}.hero-note>p{font-size:23px}.hero-photo img{mask-image:linear-gradient(90deg,transparent,#000 20%,#000)}.hero-note{max-width:440px}.perspective-bottom{gap:30px}.ledger>div{grid-template-columns:1fr 1fr}.ledger time{grid-column:2}.project-caption h3{font-size:10vw}}
@media(max-width:600px){header{padding:22px var(--pad)}.header-work{display:none}.hero{min-height:920px;padding:120px var(--pad) 45px}.hero-heading{width:100%}.hero h1{font-size:18vw;line-height:.98;margin-top:18px}.hero-photo{right:0;bottom:35px;width:100%;height:57%;opacity:1}.hero-photo img{mask-image:linear-gradient(#000 75%,transparent);object-position:center bottom}.hero-note{width:100%;margin-top:20px}.hero-note>p{font-size:20px}.hero-note>span{font-size:12px;margin:10px 0 18px}.hero-note>span br{display:none}.hero-bottom{bottom:18px;display:block;font-size:8px;line-height:1.9}.hero-bottom>span{display:block}.membrane{height:26%}.optical-stage .hero{padding-top:110px;min-height:0}.optical-stage .hero h1{font-size:16vw}.optical-stage .hero-note>p{font-size:18px}.optical-stage .hero-note>span{font-size:11px;max-width:320px}.optical-stage .hero-photo{height:48%;bottom:45px}.optical-stage .hero-bottom{bottom:55px}.optical-stage .text-link{font-size:11px;padding-bottom:7px}.project-caption{display:block;bottom:75px}.project-caption h3{font-size:15vw;overflow-wrap:anywhere}.project-caption>a{width:fit-content;margin-top:15px;gap:35px}.project-top{font-size:8px;top:90px}.more,.perspective,.experience,.contact{padding:90px var(--pad) 65px}.more>button{font-size:10vw}.perspective h2,.experience h2{font-size:13vw}.perspective-top>span{display:none}.perspective-bottom{grid-template-columns:1fr}.perspective-bottom p{font-size:12px}.ledger>div{grid-template-columns:1fr;gap:6px;padding:18px 0}.ledger strong{font-size:20px}.ledger time{grid-column:1;text-align:left;font-size:10px}.optical-stage>.experience h2,.optical-stage>.perspective h2{font-size:12vw;margin:20px 0}.optical-stage>.experience .ledger>div{padding:12px 0;gap:4px}.optical-stage .ledger span{font-size:11px}.contact h2{font-size:17vw}.contact-actions{display:grid;gap:24px}.contact-actions>a:first-child{font-size:16px;padding:18px 24px;width:fit-content}.contact footer{flex-direction:column;gap:16px;margin-top:40px}#more-projects:not([hidden]){gap:12px}#more-projects span{font-size:11px}.menu nav{margin:50px 0}.menu nav a{font-size:12vw;gap:18px;padding:20px 0}.menu-bottom{flex-direction:column;align-items:start}.opening-copy{font-size:12vw}.opening-top,.opening-bottom{font-size:8px}.optical-chapter{font-size:8px}.optical-journey{height:1300svh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.menu-button i{transition:none}}
@media(max-width:600px){.optical-stage .hero-photo{width:120%;right:-10%;height:56%}}
.menu-optics{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}.menu-optics svg{width:100%;height:100%;overflow:visible}.menu-light-edge{filter:drop-shadow(0 0 1px #f36f64)}.menu-top,.menu-bottom,.menu nav{position:relative;z-index:3}.menu nav a em{transition:transform .35s,color .35s}.menu nav a:hover em,.menu nav a:focus-visible em{transform:translate(8px,-5px)}
.optical-journey{height:1400svh}@media(max-width:600px){.optical-journey{height:1450svh}.menu nav a{font-size:11vw}}

/* Larger home portrait; optical gestures appear only between chapters. */
.membrane{opacity:0}
.hero-photo{width:68%;height:100%;right:-3%;bottom:0}
@media(min-width:1800px){.hero-photo{width:66%;right:-2%}}
@media(min-width:601px) and (max-width:900px){.hero-photo{width:94%;right:-23%;height:95%}}
@media(max-width:600px){.hero-photo,.optical-stage .hero-photo{width:140%;right:-20%;height:62%;bottom:35px}}
/* Focus vivant: light stays behind the portrait, depth follows the viewer. */
.hero.focus-vivant:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at var(--focus-x,72%) var(--focus-y,48%),#f36f640d 0%,#dbe5f609 24%,transparent 56%)}
.focus-vivant .hero-heading{--focus-light:-35%}
.focus-vivant h1>span{width:fit-content;max-width:100%;background:linear-gradient(105deg,#e9e9e7 calc(var(--focus-light) - 30%),#ffffff var(--focus-light),#e9e9e7 calc(var(--focus-light) + 30%));background-clip:text;-webkit-background-clip:text;color:transparent;padding-right:.04em}
.focus-vivant h1 em{color:inherit}
.focus-vivant .hero-photo img{transform-origin:65% 75%;backface-visibility:hidden}
@media(prefers-reduced-motion:reduce){.focus-vivant h1>span{color:#e9e9e7;background:none}}
