@font-face{font-family:Manrope;src:url('assets/fonts/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root{--ink:#12152a;--paper:#f4f4f0;--navy:#040429;--orange:#fc8b2c;--muted:#5c5e68;--ease:cubic-bezier(.19,1,.22,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}body.intro-active,body.menu-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--orange);outline-offset:7px}::selection{background:var(--orange);color:var(--navy)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#999aa3;border-radius:5px}::-webkit-scrollbar-track{background:var(--paper)}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5}button svg{display:block}button{border:0;background:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:450;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(42px,5.3vw,84px);line-height:1.08}h2{font-size:clamp(34px,4vw,64px);line-height:1.1}p{line-height:1.65}.skip-link{position:fixed;top:-80px;z-index:200;background:var(--paper);padding:15px}.skip-link:focus{top:10px}
#intro{position:fixed;inset:0;z-index:100;background:var(--navy);color:#f2f1f8;transition:clip-path 1.1s var(--ease),opacity .8s;clip-path:inset(0);isolation:isolate}#intro.leaving{clip-path:inset(0 0 100% 0);pointer-events:none}#intro[hidden]{display:none}.intro-top{position:absolute;z-index:2;top:35px;left:4vw;right:4vw;display:flex;justify-content:space-between;align-items:center;font-size:17px}.language{font-size:12px;white-space:nowrap;padding:10px}.language span{opacity:.5}#voxel{width:100%;height:100%;display:block;cursor:pointer}.intro-fallback{display:none;position:absolute;left:50%;top:50%;width:min(65vw,560px);transform:translate(-50%,-50%)}#intro.no-webgl .intro-fallback{display:block}.intro-bottom{position:absolute;bottom:42px;left:4vw;right:4vw;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:24px;pointer-events:none}.intro-bottom p{font-size:12px;color:#bbbacb;line-height:1.7}.enter-button{display:flex;align-items:center;gap:30px;font-size:15px;border-bottom:1px solid #68677d;padding:12px 0;pointer-events:auto}.enter-button svg{color:var(--orange)}.intro-note{font-size:11px;color:#b2b0c7;text-align:right}
#header{position:fixed;z-index:40;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:24px 3.5vw;pointer-events:none;transition:transform .5s var(--ease)}#header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:600;letter-spacing:-.03em}.brand img{width:32px;height:32px;object-fit:contain;background:var(--navy);border-radius:7px;padding:4px}.brand span{padding:6px 9px;background:rgba(244,244,240,.92);border-radius:5px}.header-actions{display:flex;align-items:center;gap:14px}.header-actions .language{background:var(--paper);border-radius:30px}#menu-toggle{display:flex;align-items:center;gap:22px;border-radius:30px;padding:14px 21px;background:var(--ink);color:white;font-size:12px}.menu-dots{display:flex;gap:4px}.menu-dots i{width:4px;height:4px;border-radius:50%;background:currentColor}#menu{position:fixed;inset:0;z-index:35;background:var(--navy);color:var(--paper);display:flex;flex-direction:column;justify-content:center;padding:100px 12vw;clip-path:inset(0 0 100% 0);transition:clip-path .75s var(--ease);visibility:hidden}body.menu-open #menu{visibility:visible;clip-path:inset(0)}.menu-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.menu-links a{font-size:clamp(30px,5.4vw,80px);letter-spacing:-.04em;line-height:1.25;transition:color .25s,transform .4s}.menu-links a:hover{color:var(--orange);transform:translateX(12px)}#menu p{margin-top:35px;color:#b2b0c7;font-size:13px}#replay{align-self:flex-start;margin-top:22px;color:var(--orange)}
.scroll-rail{position:fixed;z-index:20;left:3.5vw;top:40vh;display:flex;align-items:center;gap:13px;transition:opacity .4s}.rail-track{height:180px;width:1px;background:#bfc0c5;position:relative}.rail-track span{position:absolute;top:0;width:2px;min-height:4px;background:var(--ink);height:0}.scroll-rail>span{writing-mode:vertical-rl;font-size:10px;color:var(--muted);letter-spacing:.08em}.intro-active .scroll-rail,.menu-open .scroll-rail{opacity:0}
main{min-height:100vh;outline:none}.home-opening{min-height:100svh;padding:130px 5vw 46px 11vw;display:flex;flex-direction:column;justify-content:center}.opening-meta{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px;gap:30px}.opening-meta h1{font-size:clamp(30px,3.5vw,54px);max-width:650px}.opening-meta p{font-size:12px;max-width:220px;color:var(--muted)}.opening-image{display:block;overflow:hidden;position:relative}.opening-image img{display:block;width:100%;aspect-ratio:2.5;object-fit:cover}.opening-caption{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:13px}.down-link{display:flex;align-items:center;gap:15px;margin-top:30px;font-size:12px}.down-link svg{transform:rotate(90deg);width:18px}
.category-feature{margin:12vh 5vw 24vh 11vw;position:relative}.feature-link{display:block}.feature-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:25px}.feature-heading p{max-width:290px;font-size:12px;color:var(--muted)}.feature-media{position:relative;overflow:hidden;background:#e4e4df;isolation:isolate}.feature-media img{width:100%;height:76vh;max-height:920px;min-height:370px;object-fit:cover;display:block;transform:translateY(var(--parallax,0px)) scale(1.08);transition:filter 1.4s var(--ease),clip-path 1.4s var(--ease);filter:blur(0);clip-path:inset(0)}.js .feature-media:not(.revealed) img{filter:blur(14px);clip-path:inset(12% 0)}.feature-cue{position:absolute;right:25px;bottom:25px;background:var(--paper);width:55px;height:55px;border-radius:50%;display:grid;place-items:center;transition:transform .4s var(--ease)}.feature-link:hover .feature-cue{transform:rotate(-45deg)}.feature-caption{display:flex;justify-content:space-between;margin-top:14px;font-size:11px;color:var(--muted)}.category-feature:nth-of-type(odd){margin-right:11vw}.category-feature:nth-of-type(odd) .feature-media img{height:68vh}.section-intro{margin:0 8vw 80px 11vw;max-width:720px}.section-intro p{margin-top:20px;max-width:520px;color:var(--muted);font-size:14px}
.explore{padding:0 5vw 120px 11vw}.explore-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8vw 3vw;align-items:start}.explore-card:nth-child(3n+2){margin-top:100px}.explore-card:nth-child(3n){margin-top:45px}.explore-card img{width:100%;height:auto;aspect-ratio:1.2;object-fit:cover;display:block;transition:transform .7s var(--ease)}.explore-card .thumb{overflow:hidden;border-radius:13px}.explore-card:hover img{transform:scale(1.045)}.explore-card h3{font-size:15px;letter-spacing:-.02em;margin-top:13px}.explore-card p{font-size:10px;color:var(--muted);margin-top:4px}.explore-shuffle{display:flex;align-items:center;gap:12px;font-size:12px;margin:45px auto 0;padding:12px 0;border-bottom:1px solid var(--ink)}
.page-heading{padding:170px 8vw 70px 11vw;display:grid;grid-template-columns:1.3fr 1fr;gap:8vw;align-items:end}.page-heading p{color:var(--muted);font-size:14px;max-width:440px}.back-link{display:inline-flex;align-items:center;gap:12px;font-size:12px;margin-bottom:30px}.back-link svg{width:17px;transform:rotate(180deg)}.project-grid{margin:0 5vw 120px 11vw;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:75px 32px;align-items:start}.project-card:nth-child(even){margin-top:95px}.project-card .thumb{overflow:hidden;border-radius:13px;background:#ddd}.project-card img{display:block;width:100%;height:35vw;max-height:700px;object-fit:cover;transition:transform .8s var(--ease),filter .8s}.project-card:hover img{transform:scale(1.035)}.project-card h2{font-size:20px;letter-spacing:-.025em;margin:18px 0 5px}.card-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.project-page .page-heading{padding-bottom:55px}.project-detail-images{padding:0 5vw 70px 11vw}.project-figure{margin:0 0 9vw}.image-expand{padding:0;display:block;width:100%;position:relative;cursor:zoom-in;background:#e6e6e0;overflow:hidden;border-radius:12px}.image-expand img{display:block;width:100%;height:auto}.expand-icon{position:absolute;bottom:20px;right:20px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--paper);opacity:0;transform:translateY(5px);transition:.3s}.image-expand:hover .expand-icon,.image-expand:focus-visible .expand-icon{opacity:1;transform:none}.project-figure figcaption{font-size:11px;margin-top:13px;color:var(--muted);display:flex;justify-content:space-between}.project-credit{max-width:650px;margin-top:18px;font-size:11px!important}.next-project{margin:40px 5vw 130px 11vw;border-top:1px solid #c5c5c7;padding-top:35px;display:flex;justify-content:space-between;align-items:center}.next-project p{font-size:11px;color:var(--muted);margin-bottom:12px}.next-project h2{font-size:clamp(28px,4vw,56px)}.about-page{padding:180px 9vw 130px 13vw;min-height:85vh}.about-page h1{max-width:900px}.about-copy{max-width:680px;margin:60px 0 0 auto}.about-copy p{font-size:clamp(17px,2vw,25px);line-height:1.7;margin-bottom:30px}.about-copy small{color:var(--muted)}.site-footer{padding:40px 5vw 40px 11vw;border-top:1px solid #d5d5d8;display:flex;justify-content:space-between;align-items:end;gap:20px}.site-footer p{font-size:12px}.site-footer small{font-size:10px;color:var(--muted)}.site-footer button{font-size:11px;border-bottom:1px solid;padding:0 0 4px}
#page-wipe{position:fixed;inset:0;z-index:60;background:var(--navy);pointer-events:none;transform:translateY(100%)}.transition-image{position:fixed;z-index:65;object-fit:cover;pointer-events:none;border-radius:12px}dialog{border:0;padding:25px 35px;background:#08091b;color:#f4f4f0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0}dialog::backdrop{background:#08091b}.lightbox-bar{display:flex;align-items:center;justify-content:space-between;height:45px;font-size:12px}.lightbox-bar button,.lightbox-stage button{padding:12px;color:white}.lightbox-stage{height:calc(100% - 90px);display:flex;align-items:center;justify-content:space-between;gap:15px}.lightbox-stage img{max-height:100%;max-width:calc(100% - 100px);object-fit:contain}.lightbox-stage button[disabled]{visibility:hidden}#lightbox-count{text-align:center;font-size:11px;color:#b6b5c7;margin-top:15px}
@media(min-width:1800px){.opening-image img{max-height:68vh}.project-grid{gap:100px 50px}.home-opening{padding-top:150px}}
@media(max-width:760px){#header{padding:18px 5vw}.brand{font-size:14px;gap:5px}.brand img{width:28px;height:28px}.header-actions{gap:4px}#menu-toggle{gap:13px;padding:13px 16px}.scroll-rail{left:4vw;top:43vh}.rail-track{height:120px}.scroll-rail>span{display:none}.home-opening{padding:125px 5vw 40px 10vw;min-height:90svh}.opening-meta{display:block;margin-bottom:25px}.opening-meta p{margin-top:20px;max-width:270px}.opening-image img{aspect-ratio:.85;object-fit:cover;object-position:55%}.opening-caption{font-size:10px}.opening-caption span:last-child{display:none}.category-feature,.category-feature:nth-of-type(odd){margin:8vh 5vw 13vh 10vw}.feature-heading{display:block;margin-bottom:25px}.feature-heading h2{font-size:36px}.feature-heading p{margin-top:15px;max-width:270px}.feature-media img,.category-feature:nth-of-type(odd) .feature-media img{height:58svh;min-height:320px}.feature-caption{font-size:10px}.feature-cue{width:44px;height:44px;right:15px;bottom:15px}.section-intro{margin:0 7vw 40px 10vw}.explore{padding:0 5vw 80px 10vw}.explore-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 15px}.explore-card:nth-child(n){margin-top:0}.explore-card:nth-child(even){margin-top:45px}.explore-card h3{font-size:12px}.explore-card img{aspect-ratio:.85}.page-heading{padding:125px 6vw 45px 10vw;display:block}.page-heading p{margin-top:25px;font-size:13px}.project-grid{margin:0 5vw 70px 10vw;grid-template-columns:1fr;gap:40px}.project-card:nth-child(even){margin-top:0}.project-card img{height:auto;max-height:65vh;aspect-ratio:1.2}.project-card h2{font-size:19px}.project-detail-images{padding:0 5vw 30px 10vw}.project-figure{margin-bottom:45px}.image-expand{border-radius:7px}.expand-icon{width:34px;height:34px;right:10px;bottom:10px;opacity:1}.project-figure figcaption{font-size:9px}.next-project{margin:20px 5vw 70px 10vw}.about-page{padding:140px 8vw 80px 10vw}.about-copy{margin-top:40px}.site-footer{padding:30px 5vw 30px 10vw;align-items:start}.site-footer p{font-size:10px;max-width:160px}.site-footer small{font-size:9px}.intro-top{top:22px;left:6vw;right:6vw;font-size:15px}.intro-bottom{left:6vw;right:6vw;bottom:30px;grid-template-columns:1fr auto;gap:22px}.intro-bottom p{font-size:10px}.intro-note{grid-column:1/-1;text-align:center;font-size:10px}.enter-button{font-size:12px;gap:10px}dialog{padding:15px 12px}.lightbox-stage{gap:0}.lightbox-stage button{padding:5px}.lightbox-stage img{max-width:calc(100% - 60px)}.lightbox-bar{font-size:10px}#menu{padding:100px 10vw}.menu-links a{font-size:clamp(28px,8.5vw,47px)}}
#intro{background:#030235}.intro-signature{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;z-index:3}.intro-signature img{width:min(78vw,1650px);height:auto;display:block}.intro-tiles{position:absolute;inset:0;overflow:hidden;display:none;z-index:4;pointer-events:none}.intro-tiles span{background:#030235;display:block;will-change:transform,opacity}#intro.show-signature #voxel,#intro.show-signature .intro-top,#intro.show-signature .intro-bottom,#intro.show-signature .intro-fallback{opacity:0;transition:opacity .28s}#intro.show-signature .intro-signature{opacity:1;transition:opacity .45s}#intro.tile-reveal{background:transparent}#intro.tile-reveal .intro-signature{opacity:0;visibility:hidden}#intro.tile-reveal .intro-tiles{display:grid}.intro-active #header,.intro-active .scroll-rail{visibility:hidden}@media(max-width:760px){.intro-signature img{width:96vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.feature-media img{transform:none!important;filter:none!important;clip-path:none!important}}

#category-cubes{position:fixed;inset:0;width:100vw;height:100vh;z-index:2147483500;pointer-events:none;background:var(--paper)}#category-cubes[hidden]{display:none}.category-transitioning{overflow:hidden}.category-transitioning canvas[data-refraction-layer="0"],.category-transitioning canvas[data-refraction-layer="1"]{visibility:hidden!important}

#header .brand{display:block;flex:none;width:280px;padding:0;border-radius:0;background:transparent}#header .brand img{display:block;width:100%;height:auto;object-fit:contain;padding:0;border-radius:0;background:none}@media(max-width:760px){#header .brand{width:min(49vw,190px);padding:0;border-radius:0}#header .header-actions{gap:8px}}

/* Floating navigation: logo navy, transparent at the top. */
#header{top:14px;left:2vw;right:2vw;height:64px;padding:0 16px;display:grid;grid-template-columns:1fr auto 1fr;gap:22px;border:1px solid transparent;border-radius:999px;pointer-events:auto;background:transparent;color:var(--ink);transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease)}
#header.is-scrolled,body.menu-open #header{background:rgba(3,2,53,.84);color:#fff;border-color:rgba(255,255,255,.14);box-shadow:0 16px 48px rgba(3,2,53,.18);backdrop-filter:blur(18px) saturate(130%);-webkit-backdrop-filter:blur(18px) saturate(130%)}
#header .brand{position:relative;width:245px;justify-self:start}
#header .brand img{transition:opacity .3s}
#header .brand .brand-light{position:absolute;inset:0;opacity:0}
#header.is-scrolled .brand-dark,body.menu-open #header .brand-dark{opacity:0}
#header.is-scrolled .brand-light,body.menu-open #header .brand-light{opacity:1}
.header-nav{display:flex;align-items:center;gap:2px;padding:4px;border:1px solid rgba(18,21,42,.2);border-radius:999px}
.header-nav a{padding:9px 12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-radius:999px;transition:background .25s,color .25s}
.header-nav a:hover{background:var(--ink);color:white}
#header.is-scrolled .header-nav,body.menu-open .header-nav{border-color:rgba(255,255,255,.2)}
#header.is-scrolled .header-nav a:hover,body.menu-open .header-nav a:hover{background:#fff;color:#030235}
#header .header-actions{justify-self:end;gap:8px}
#header .language{background:transparent;color:inherit}
#menu-toggle{background:#fff;color:#030235;padding:12px 18px;gap:18px;border:1px solid rgba(3,2,53,.12)}
@media(max-width:1150px){#header{grid-template-columns:1fr auto}.header-nav{display:none}}
@media(max-width:760px){#header{top:10px;left:12px;right:12px;height:60px;padding:0 10px;gap:8px}#header .brand{width:min(44vw,190px)}#header .header-actions{gap:2px}#header .language{padding:8px 5px;font-size:10px}#menu-toggle{padding:11px 12px;gap:10px}}

#header.is-scrolled .header-nav,body.menu-open #header .header-nav{color:#fff}

/* The logo capsule grows into the navigation surface on scroll. */
#header{--brand-width:245px;isolation:isolate;pointer-events:none;border:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
#header>*{pointer-events:auto}
#header .header-surface{position:absolute;z-index:-1;inset:0 auto 0 0;width:calc(var(--brand-width) + 32px);border-radius:999px;background:#030235;pointer-events:none;transition:width 1.5s cubic-bezier(.65,0,.35,1),background-color 1.5s cubic-bezier(.65,0,.35,1),box-shadow 1.5s cubic-bezier(.65,0,.35,1)}
#header.is-scrolled,body.menu-open #header{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
#header.is-scrolled .header-surface,body.menu-open #header .header-surface{width:100%;background:rgba(3,2,53,.84);backdrop-filter:blur(18px) saturate(130%);-webkit-backdrop-filter:blur(18px) saturate(130%);box-shadow:0 16px 48px rgba(3,2,53,.18)}
#header .brand{width:var(--brand-width)}
#header .brand-dark{visibility:hidden}
#header .brand .brand-light{opacity:1}
@media(max-width:760px){#header{--brand-width:min(44vw,190px)}#header .header-surface{width:calc(var(--brand-width) + 20px)}}

/* White menu control becomes translucent with the expanded capsule. */
#header #menu-toggle{transition:background-color 1.5s cubic-bezier(.65,0,.35,1),border-color .3s}
#header.is-scrolled #menu-toggle,body.menu-open #header #menu-toggle{background:rgba(255,255,255,.8);border-color:rgba(255,255,255,.28);color:#030235}
#header.is-scrolled #menu-toggle:hover,body.menu-open #header #menu-toggle:hover{background:rgba(255,255,255,.94)}

/* Brand reduced by 15%, keeping capsule proportions. */
#header{--brand-width:208.25px}@media(max-width:760px){#header{--brand-width:min(37.4vw,161.5px)}}

/* Two-column collection covers, inspired by the reference's featured work. */
.collections-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:85px 2vw;margin:70px 5vw 180px}
.collections-grid .category-feature,.collections-grid .category-feature:nth-of-type(odd){margin:0;min-width:0;transform:scale(var(--reveal-scale,1));transform-origin:50% 65%;}
.collections-grid .feature-media{border-radius:20px;aspect-ratio:1.54;background:#030235;overflow:hidden;isolation:isolate}
.collections-grid .feature-visual{height:100%;width:100%;transition:transform .8s var(--ease);transform:translate3d(var(--hover-x,0px),var(--hover-y,0px),0) scale(1.045)}
.collections-grid .feature-media img,.collections-grid .category-feature:nth-of-type(odd) .feature-media img{width:100%;height:100%;max-height:none;min-height:0;object-fit:cover;clip-path:none;filter:none;transform:translateY(var(--image-scroll,0px)) scale(1.08);transition:transform 1.1s var(--ease)}
.collections-grid .feature-link:hover .feature-visual{transform:translate3d(var(--hover-x,0px),var(--hover-y,0px),0) scale(.97);animation:cover-focus .85s both}
.collections-grid .feature-link:focus-visible .feature-visual{transform:scale(.97)}
@keyframes cover-focus{0%{filter:blur(0)}28%{filter:blur(7px)}100%{filter:blur(0)}}
.collections-grid .feature-caption{margin:18px 0 8px;gap:16px;font-size:10px;text-transform:uppercase;letter-spacing:.035em}
.collections-grid .feature-caption span:first-child{max-width:65%}
.collections-grid .feature-heading{display:flex;align-items:center;justify-content:flex-start;gap:16px;margin:0}
.collections-grid .feature-heading h2{font-size:clamp(25px,2.8vw,44px);line-height:1.2}
.collections-grid .feature-heading>svg{width:30px;height:30px;transition:transform .4s var(--ease)}
.collections-grid .feature-link:hover .feature-heading>svg{transform:translateX(8px)}
.collections-grid .feature-cue{opacity:0;transform:scale(.7);transition:opacity .25s,transform .4s}
.collections-grid .feature-link:hover .feature-cue,.collections-grid .feature-link:focus-visible .feature-cue{opacity:1;transform:scale(1) rotate(-35deg)}

/* Native vertical scroll drives the wide image sequence. */
.horizontal-gallery{position:relative;height:100svh}
.gallery-pin{position:sticky;top:0;height:100svh;overflow:hidden}
.gallery-track{display:flex;align-items:center;gap:5vw;height:100%;width:max-content;padding:110px 7vw 70px;will-change:transform}
.gallery-intro{flex:0 0 26.8vw;max-width:none;padding-right:2vw}
.gallery-intro h1{font-size:clamp(40px,4.3vw,72px);line-height:1.08}
.gallery-intro p{font-size:13px;color:var(--muted);max-width:38ch;margin-top:25px}
.gallery-hint{display:flex;align-items:center;gap:20px;margin-top:45px;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.gallery-card{flex:0 0 65vw;width:65vw;margin:0;min-width:0}
.gallery-picture{display:block;width:100%;height:65vh;max-height:850px;border-radius:16px;overflow:hidden;background:#e9e9e4}
.gallery-picture img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .8s var(--ease)}
a.gallery-card:hover img{transform:scale(1.025)}
.gallery-caption{display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:11px;color:var(--muted);margin-top:16px}
.gallery-caption h2{font-size:20px;color:var(--ink)}
.gallery-caption>span{display:flex;align-items:center;gap:15px}
.gallery-caption svg{width:18px}
.gallery-next{width:45vw;flex:0 0 45vw;padding:7vw}
.gallery-next>span{font-size:11px;text-transform:uppercase}
.gallery-next h2{font-size:clamp(35px,4vw,65px);margin:20px 0 30px}
.gallery-next>svg{width:45px;height:45px}
.gallery-progress{position:absolute;bottom:28px;left:7vw;right:7vw;height:1px;background:#c9c9d1}
.gallery-progress span{display:block;width:100%;height:2px;background:#030235;transform:scaleX(var(--gallery-progress,0));transform-origin:left}
.printing-page{padding:170px 7vw 100px;min-height:90svh}
.printing-page>p{margin-top:20px;color:var(--muted)}
.printing-preview{display:flex;align-items:center;justify-content:center;gap:5vw;margin-top:45px;background:#030235;color:#fff;border-radius:20px;padding:30px}
.printing-preview img{width:min(40vw,400px);height:40vh;object-fit:contain}
@media(min-width:1151px) and (max-width:1350px){.header-nav a{padding:9px 7px;font-size:9px}}
@media(max-width:760px){
.collections-grid{grid-template-columns:1fr;gap:55px;margin:35px 5vw 100px 10vw}
.collections-grid .feature-media{border-radius:14px;aspect-ratio:1.35}
.collections-grid .feature-heading h2{font-size:30px}
.collections-grid .feature-caption{font-size:9px}
.collections-grid .feature-cue{opacity:1;transform:none}
.horizontal-gallery{height:auto!important}.gallery-pin{position:relative;height:auto;overflow:visible}
.gallery-track{display:block;width:auto;height:auto;padding:130px 5vw 65px 10vw;transform:none!important;will-change:auto}
.gallery-intro{max-width:none;padding:0 0 24px}.gallery-intro h1{font-size:44px}.gallery-intro p{max-width:100%}.gallery-hint{display:none}
.gallery-card{width:100%;margin:0 0 45px}.gallery-picture{height:auto;max-height:none;min-height:0;background:transparent;border-radius:10px}.gallery-picture img{height:auto;object-fit:contain}.gallery-caption{font-size:10px;gap:15px}.gallery-caption h2{font-size:18px}.gallery-caption>span svg{display:none}
.gallery-next{display:block;width:100%;padding:20px 0}.gallery-progress{display:none}.printing-preview{flex-direction:column}.printing-preview img{width:65vw}
}
@media(prefers-reduced-motion:reduce){.collections-grid .category-feature{transform:none!important}.collections-grid .feature-visual{animation:none!important;transform:none!important}.collections-grid .feature-media img{transform:none!important}.horizontal-gallery{height:auto!important}.gallery-pin{position:relative;height:auto;overflow:visible}.gallery-track{display:block;width:auto;padding:140px 7vw 70px;transform:none!important;will-change:auto}.gallery-intro{max-width:700px;margin-bottom:50px}.gallery-card{width:100%;margin:0 0 65px}.gallery-picture{height:auto;max-height:none}.gallery-picture img{height:auto}.gallery-progress{display:none}}

.gallery-card{display:block}

/* Slim capsule and a transparent monochrome signature in the galleries. */
#header{height:54px}
@media(max-width:760px){#header{height:51px}}
body.presentation-page #header .header-surface{display:none}
body.presentation-page #header,body.presentation-page #header.is-scrolled{color:var(--ink)}
body.presentation-page #header .brand-dark{visibility:visible;opacity:1}
body.presentation-page #header .brand-light{visibility:hidden;opacity:0}
body.presentation-page #header .header-nav,body.presentation-page #header.is-scrolled .header-nav{color:var(--ink);border-color:rgba(18,21,42,.2)}
body.presentation-page #header .header-nav a:hover{background:var(--ink);color:white}
body.presentation-page.menu-open #header,body.presentation-page.menu-open #header .header-nav{color:white;border-color:rgba(255,255,255,.2)}
body.presentation-page.menu-open #header .brand-dark{filter:brightness(0) invert(1)}
/* Each frame follows its image, with no letterboxing. */
.collections-grid{align-items:start}
.collections-grid .feature-media{aspect-ratio:var(--image-ratio,1.54)}
.gallery-card{flex:0 0 auto;width:min(calc(65vh * var(--image-ratio,1.54)),84vw)}
.gallery-picture{height:auto;max-height:none;aspect-ratio:var(--image-ratio,1.54);background:transparent}
.gallery-picture img{width:100%;height:100%;object-fit:contain}
.gallery-caption{align-items:flex-start;gap:18px}
.caption-copy{min-width:0;max-width:60ch}
.gallery-caption .caption-copy h2{font-size:18px;line-height:1.3}
.gallery-caption .caption-copy p{font-size:12px;line-height:1.55;color:var(--muted);margin-top:7px;text-wrap:pretty}
.gallery-caption>span{flex:none;white-space:nowrap;padding-top:2px}
@media(max-width:760px){.gallery-card{width:100%}.gallery-picture{aspect-ratio:auto}.gallery-picture img{height:auto}.gallery-caption .caption-copy h2{font-size:17px}.gallery-caption .caption-copy p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.gallery-card{width:100%}.gallery-picture{aspect-ratio:auto}.gallery-picture img{height:auto}}

.explore-card img{aspect-ratio:auto;height:auto;object-fit:contain}.explore-card p{font-size:12px;line-height:1.55}@media(max-width:760px){.explore-card p{font-size:11px}}

/* Equal cover frames on the home page only. */
.collections-grid .feature-media{aspect-ratio:1.54}
.explore-card .thumb{aspect-ratio:1.2}.explore-card .thumb img{width:100%;height:100%;aspect-ratio:1.2;object-fit:cover}

.gallery-caption .caption-copy .image-credit{font-size:11px;line-height:1.5;color:var(--muted);margin-top:10px}
#lightbox-caption{max-width:calc(100% - 55px);line-height:1.5}
@media(max-width:760px){.collections-grid .feature-media{aspect-ratio:1.35}}

/* Keep the entire photo crisp; only the cursor's local wake refracts it. */
.collections-grid .feature-link:hover .feature-visual{animation:none}
.gallery-card.is-panorama{width:calc(65vh * var(--image-ratio));max-width:none}
@media(max-width:760px){.gallery-card.is-panorama{width:100%}}
@media(prefers-reduced-motion:reduce){.gallery-card.is-panorama{width:100%}}

/* The centered signature lands in its actual header position. */
.intro-logo-flight{position:fixed;z-index:2147483520;display:block;max-width:none;object-fit:contain;transform-origin:0 0;pointer-events:none;will-change:transform}
.intro-active.intro-landing #header{visibility:visible}
.intro-landing #header .brand{opacity:0}

/* Quiet introductory line: the image carries the opening. */
.opening-meta{margin-bottom:20px}.opening-meta h1{font-size:clamp(19px,1.8vw,28px);line-height:1.35;letter-spacing:-.02em;max-width:640px;color:#505360}
@media(max-width:760px){.opening-meta{margin-bottom:18px}.opening-meta h1{font-size:20px;line-height:1.4}}

/* Wireframe is revealed in the same crop as the original photograph. */
.opening-image canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
/* Immersive opening: native scroll pulls the full-bleed room into a centered frame. */
.home-opening{display:block;position:relative;height:180svh;min-height:0;padding:0;background:var(--paper)}
.opening-stage{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate}
.opening-stage .opening-image{position:absolute;inset:0;width:100%;height:100%;transform:translateX(var(--hero-x,0px)) scale(var(--hero-scale,1));transform-origin:50% 50%;border-radius:var(--hero-radius,0px);will-change:transform}
.opening-stage .opening-image img{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:50% 50%}
.opening-stage .opening-image::after{content:"";position:absolute;inset:0;background:#030235;opacity:var(--hero-shade,0);pointer-events:none}
.opening-stage .opening-meta{position:absolute;z-index:2;left:5vw;bottom:6vh;margin:0;pointer-events:none;opacity:var(--hero-copy-opacity,1)}
.opening-stage .opening-meta h1{font-size:clamp(18px,1.55vw,25px);color:#fff;text-shadow:0 2px 14px #000;max-width:520px}
.opening-stage .down-link{position:absolute;z-index:2;right:5vw;bottom:6vh;color:#fff;margin:0;text-shadow:0 2px 8px #000;opacity:var(--hero-copy-opacity,1)}
.hero-in-view .scroll-rail{visibility:hidden}
.hero-in-view #header .header-nav{background:rgba(3,2,53,.32);border-color:rgba(255,255,255,.4);color:#fff}
.hero-in-view #header .header-nav a,.hero-in-view #header .language{color:#fff;text-shadow:0 1px 6px #030235}
@media(max-width:760px){
 .home-opening{height:160svh;padding:0;min-height:0}
 .opening-stage .opening-image img{object-position:55% 50%}
 .opening-stage .opening-meta{left:6vw;bottom:9vh}
 .opening-stage .opening-meta h1{font-size:18px;max-width:290px}
 .opening-stage .down-link{left:6vw;right:auto;bottom:4vh;font-size:11px}
}
@media(prefers-reduced-motion:reduce){.home-opening{height:100svh}.opening-stage{position:relative}.opening-stage .opening-image{will-change:auto;transform:none}}
/* Other encounters: seven rounded portrait cards, fanned around one central image. */
.encounters{padding:50px 0 70px;overflow:clip}
.encounters .section-intro{margin:0 auto 45px;padding:0 6vw;text-align:center;max-width:700px}
.encounters .section-intro h2{font-size:clamp(40px,4.5vw,72px);line-height:1.02;letter-spacing:-.035em;max-width:600px;margin:auto}
.encounters .section-intro p{max-width:440px;margin:20px auto 0;font-size:13px}
.encounters .explore{padding:0 0 40px}
.encounters .explore-grid{--fan-width:min(18.5vw,320px);display:block;position:relative;width:100%;height:calc(var(--fan-width)*2.35);isolation:isolate}
.fan-slot{position:absolute;top:0;left:calc(50% - var(--fan-width)/2);width:var(--fan-width);height:calc(var(--fan-width)*1.75);transform-origin:50% 50%}
.encounters .explore-card{position:relative;display:block;width:100%;height:100%;margin:0;overflow:hidden;border-radius:calc(var(--fan-width)*.166);transform:translateY(0);transition:transform .55s cubic-bezier(.16,1,.3,1);background:var(--navy)}
.encounters .explore-card .thumb{width:100%;height:100%;aspect-ratio:4/7;border-radius:inherit;overflow:hidden}
.encounters .explore-card .thumb img{display:block;width:100%;height:100%;aspect-ratio:4/7;object-fit:cover;object-position:var(--focus,50% 50%);transform:none;transition:transform .7s var(--ease)}





.encounters .explore-shuffle{margin:20px auto 0}
@media(max-width:760px){
 .encounters{padding:10px 0 45px}
 .encounters .section-intro{margin-bottom:35px}
 .encounters .section-intro h2{font-size:38px}
 .encounters .section-intro p{font-size:12px;max-width:290px}
 .encounters .explore-grid{--fan-width:23vw;height:calc(var(--fan-width)*2.65)}


 
}
@media(prefers-reduced-motion:reduce){.fan-slot:hover .explore-card,.fan-slot:focus-within .explore-card{transform:none}}
/* Closing scene: the original KoHo signature, navy stage and orange return gesture. */
.site-footer{display:block;position:relative;margin:0 16px 16px;padding:70px 5vw 26px;background:#030235;color:var(--paper);border:0;border-radius:32px;overflow:hidden}
.footer-top{display:grid;grid-template-columns:1.2fr 1fr auto;gap:6vw;align-items:start}
.site-footer .footer-thought h2{font-size:clamp(34px,3.7vw,60px);line-height:1.12;letter-spacing:-.035em;font-weight:450}
.site-footer .footer-thought p{font-size:12px;color:#c8c8dc;margin:22px 0 0;max-width:none}
.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px;padding-top:8px}
.footer-nav a{display:flex;gap:12px;align-items:center;justify-content:space-between;min-height:44px;font-size:13px;border-bottom:1px solid #36355d;padding-bottom:12px}
.footer-nav a svg{width:17px;height:17px;flex-shrink:0;transition:transform .3s var(--ease)}
.footer-nav a:hover,.footer-nav a:focus-visible{color:#ff9b4b}
.footer-nav a:hover svg{transform:translate(3px,-3px) rotate(-35deg)}
.footer-return{display:flex;flex-direction:column;align-items:center;gap:14px;font-size:10px;color:var(--paper);white-space:nowrap}
.footer-return>svg{width:66px;height:66px;border-radius:50%;padding:22px;background:var(--orange);stroke:#030235;transform:rotate(-90deg);transition:transform .5s var(--ease),background .3s}
.footer-return:hover>svg{transform:rotate(-90deg) translateX(5px);background:#ffa65e}
.footer-signature{position:relative;display:block;margin:75px 0 50px;width:100%;aspect-ratio:3040/520;perspective:900px}
.footer-signature>img{display:block;width:100%;height:100%;object-fit:contain}
.footer-signature.signature-enhanced>img{opacity:0}
.footer-signature-pieces{position:absolute;inset:0;pointer-events:none}
.footer-signature-pieces i{display:block;position:absolute;background-image:url('assets/brand/filipe-falcone-koho-pill.svg');background-repeat:no-repeat;transition:transform .6s cubic-bezier(.16,1,.3,1);backface-visibility:hidden}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:22px;border-top:1px solid #36355d;font-size:10px;color:#c8c8dc}
.site-footer .footer-bottom small{font-size:10px}
.footer-bottom>div{display:flex;gap:28px;align-items:center}
.footer-bottom a,.footer-bottom button{padding:10px 0;font-size:11px;color:var(--paper)}
.footer-bottom a:hover,.footer-bottom button:hover{color:#ff9b4b}
@media(max-width:900px){.footer-top{grid-template-columns:1fr auto;gap:35px}.footer-nav{grid-column:1/-1;grid-row:2;gap:18px 30px}.footer-return{grid-column:2;grid-row:1}.footer-signature{margin-top:50px}}
@media(max-width:760px){
 .site-footer{margin:0 8px 8px;padding:42px 6vw 20px;border-radius:24px}
 .site-footer .footer-thought h2{font-size:clamp(28px,6.7vw,40px)}
 .site-footer .footer-thought p{font-size:10px;max-width:220px;margin-top:18px}
 .footer-top{gap:30px 15px}.footer-return>svg{width:50px;height:50px;padding:16px}.footer-return{font-size:9px;max-width:68px;white-space:normal;text-align:center}
 .footer-nav a{font-size:12px}.footer-nav{gap:14px 20px}
 .footer-signature{margin:42px 0 30px}
 .footer-bottom{display:grid;grid-template-columns:1fr auto;gap:12px;padding-top:16px}
 .footer-bottom>div{gap:18px}.footer-bottom>span{grid-column:1/-1;font-size:9px}
 .site-footer .footer-bottom small{font-size:9px}.footer-bottom a,.footer-bottom button{font-size:10px}
}
@media(prefers-reduced-motion:reduce){.footer-return>svg,.footer-nav a svg,.footer-signature-pieces i{transition:none}}

.site-footer .footer-bottom small{color:#c8c8dc}
.footer-signature.signature-resting>img{opacity:1}
.footer-signature.signature-resting>.footer-signature-pieces{visibility:hidden}
/* A pinned voxel finale precedes the quiet navigation and credits. */
.site-footer{overflow:clip;padding-top:0}
.footer-finale{position:relative;height:58svh;min-height:280px;margin-bottom:60px}
.footer-finale-pin{position:relative;display:flex;align-items:center;width:100%;height:58svh;min-height:280px;isolation:isolate}
.footer-finale .footer-signature{margin:0;width:100%;perspective:none}
.footer-finale-pin canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.footer-finale.finale-enhanced{height:180svh}
.finale-enhanced .footer-finale-pin{position:sticky;top:85px;height:calc(100svh - 105px)}
.finale-enhanced .footer-signature>img{opacity:1;clip-path:inset(0 0 0 17%);transform:translateY(calc((1 - var(--name-reveal,0))*36px));opacity:var(--name-reveal,0)}
.finale-enhanced .footer-signature::after{content:"";position:absolute;inset:0;background:url('assets/brand/filipe-falcone-koho-pill.svg') center/contain no-repeat;opacity:var(--signature-complete,0)}
.footer-top{padding-bottom:55px}
@media(max-width:760px){.footer-finale{margin-bottom:32px;height:42svh}.footer-finale-pin{height:42svh}.footer-finale.finale-enhanced{height:155svh}.finale-enhanced .footer-finale-pin{height:calc(82svh - 85px)}.footer-top{padding-bottom:35px}}
@media(prefers-reduced-motion:reduce){.footer-finale{height:auto;min-height:0;padding:65px 0 15px}.footer-finale-pin{height:auto;min-height:0}}

/* Reversible scroll score: assemble, reveal the full name, then settle beside the footer. */
.footer-finale.finale-enhanced{height:200svh;margin-bottom:26px}
.finale-enhanced .footer-signature{position:absolute;left:0;top:50%;transform:translateY(-50%);will-change:width,top}
@media(max-width:760px){.footer-finale.finale-enhanced{height:175svh;margin-bottom:20px}}
/* A project brief over the author's architectural image, before the voxel finale. */
.contact-scene{position:relative;isolation:isolate;overflow:clip;margin:0 16px 24px;border-radius:32px;background:#030235;color:#fff;padding:100px 5vw 70px}
.contact-render,.contact-render>img,.contact-render>canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2;object-fit:cover}
.contact-render>img{filter:brightness(.65)}
.contact-scene::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,2,53,.7),rgba(3,2,53,.36) 52%,rgba(3,2,53,.2))}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8vw;max-width:1600px;margin:auto}
.contact-copy h2{font-size:clamp(48px,6.3vw,96px);font-weight:650;letter-spacing:-.04em;line-height:1.03;max-width:650px}
.contact-copy>p{font-size:15px;line-height:1.7;max-width:390px;margin:30px 0 0;color:#f0edf5}
.contact-form{background:rgba(247,248,245,.95);color:#20222b;padding:30px;border-radius:16px;box-shadow:0 15px 45px rgba(3,2,53,.18);min-width:0}
.contact-form label{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:650;line-height:1.5}
.contact-form .contact-brief{font-size:18px;gap:14px;margin-bottom:22px}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px}
.contact-form input,.contact-form select,.contact-form textarea{font-family:inherit;font-size:13px;font-weight:450;color:#20222b;background:#e4e7e2;border:1px solid transparent;border-radius:5px;width:100%;padding:13px;min-height:46px;outline:none;transition:border-color .2s,background .2s;box-sizing:border-box}
.contact-form textarea{resize:vertical;min-height:130px;max-height:280px;background:rgba(244,245,242,.6);border-color:#7b8390;line-height:1.6}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#666e76;opacity:1}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:#ac5412;background:#fff;outline:2px solid rgba(172,84,18,.25);outline-offset:1px}
.contact-submit{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;margin-top:24px;padding:15px;border:0;border-radius:5px;background:#030235;color:#fff;font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;min-height:48px;transition:background .25s}
.contact-submit svg{width:18px;height:18px}.contact-submit:hover{background:#24215b}.contact-submit:disabled{cursor:wait;opacity:.7}
.contact-privacy{font-size:10px;line-height:1.6;color:#585e68;margin:14px 0 0}
.contact-status{font-size:12px;line-height:1.6;margin:0}.contact-status:not(:empty){margin-top:14px}.contact-status[data-state=error]{color:#9a251d}.contact-status[data-state=success]{color:#235a38}
.contact-form .contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(max-width:760px){.contact-scene{margin:0 8px 16px;border-radius:24px;padding:65px 6vw 35px}.contact-layout{grid-template-columns:1fr;gap:36px}.contact-copy h2{font-size:clamp(42px,10vw,68px)}.contact-copy>p{font-size:13px;margin-top:20px;max-width:300px}.contact-form{padding:22px}.contact-fields{gap:16px 12px}.contact-form input,.contact-form select,.contact-form textarea{font-size:16px;padding:10px}.contact-form .contact-brief{font-size:17px}.contact-scene::before{background:rgba(3,2,53,.55)}}
@media(max-width:380px){.contact-fields{grid-template-columns:1fr}.contact-form{padding:18px}}
@media(prefers-reduced-motion:reduce){.contact-render>canvas{display:none}}

.contact-email{display:inline-block;margin-top:55px;padding-bottom:10px;border-bottom:1px solid rgba(252,139,44,.6);color:#ffb579;font-size:clamp(19px,2.2vw,34px);letter-spacing:-.025em}.contact-email:hover{color:#ffcc9f}@media(max-width:760px){.contact-email{margin-top:26px;font-size:22px}}

/* Opening phrase in black, as requested by the author. */
.opening-stage .opening-meta h1{color:#000;text-shadow:none}

.opening-stage .opening-meta h1{color:var(--orange);font-weight:750;text-shadow:none}

.opening-stage .opening-meta h1{-webkit-text-stroke:.5px #030235;paint-order:stroke fill}

/* Opening statement follows the image in normal document flow. */

/* Caption belongs to the final image frame; the cards retain their dimensions. */
/* A centered statement introduces every discipline, outside the sticky image. */
.opening-meta.opening-below{display:flex;position:relative;justify-content:center;align-items:center;width:100%;margin:0;padding:48px 5vw;background:var(--paper);isolation:isolate}
.opening-meta.opening-below h1{max-width:1200px;margin:0;text-align:center;color:var(--ink);font-size:clamp(25px,2.8vw,44px);font-weight:450;line-height:1.2;letter-spacing:-.035em;white-space:normal;text-wrap:balance;text-shadow:none;-webkit-text-stroke:0}
.opening-below+.collections-grid{margin-top:0}
@media(max-width:760px){.opening-meta.opening-below{padding:32px 6vw 38px}.opening-meta.opening-below h1{font-size:30px;line-height:1.25}}

/* The opening statement shares the hierarchy of Other encounters. */
.opening-meta.opening-below{flex-direction:column;padding-top:50px;padding-bottom:54px;gap:0}
.opening-meta.opening-below h1{font-size:clamp(40px,4.5vw,72px);line-height:1.02;max-width:1100px}
.opening-meta.opening-below p{font-size:13px;line-height:1.6;font-weight:400;color:var(--muted);max-width:440px;margin:20px auto 0;text-align:center;text-wrap:balance}
@media(max-width:760px){.opening-meta.opening-below{padding:32px 6vw 40px}.opening-meta.opening-below h1{font-size:38px}.opening-meta.opening-below p{font-size:12px;max-width:290px}}

.opening-meta.opening-below p{max-width:none;white-space:nowrap;text-wrap:nowrap}@media(max-width:760px){.opening-meta.opening-below p{font-size:clamp(7px,1.75vw,12px);max-width:none}}

/* Desktop direction stays literal; mobile favors comfortable reading. */
@media(max-width:760px){.opening-meta.opening-below p{font-size:12px;line-height:1.6;max-width:32ch;white-space:normal;text-wrap:balance}.opening-meta.opening-below h1{font-size:clamp(30px,8vw,38px);line-height:1.1}}
/* The author's digital portrait introduces the approved biography. */
.about-portrait{position:relative;isolation:isolate;overflow:clip;margin:100px 16px 0;border-radius:32px;height:calc(100svh - 120px);min-height:610px;max-height:1000px;background:#03031a;color:#f4f4f0}
.portrait-surface{position:absolute;inset:0;touch-action:pan-y;overflow:hidden}
.portrait-surface canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity .6s}
.portrait-poster{position:absolute;left:7%;top:0;width:66%;height:100%;object-fit:contain;transition:opacity .6s;pointer-events:none;filter:brightness(.8)}
.portrait-ready .portrait-poster{opacity:0}.portrait-ready canvas{opacity:1}
.portrait-copy{position:absolute;right:5vw;top:13%;bottom:11%;width:27%;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.portrait-copy h1{font-size:clamp(48px,5.8vw,94px);font-weight:450;line-height:1.02;letter-spacing:-.035em;color:#f4f4f0}
.portrait-copy p{font-size:13px;line-height:1.7;max-width:290px;color:#cbd1e3}
.portrait-caption{position:absolute;left:4vw;bottom:5%;display:flex;flex-direction:column;gap:6px;pointer-events:none}
.portrait-caption>span{font-size:13px}.portrait-caption>small{font-size:10px;color:#b1bdd5}
.portrait-hint{position:absolute;left:40%;bottom:5%;transform:translateX(-50%);font-size:10px;color:#b1bdd5;pointer-events:none}
.portrait-touch{display:none}.portrait-pause{position:absolute;right:22px;top:22px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid #747e98;background:rgba(3,3,26,.6);color:#f4f4f0}.portrait-pause svg{width:19px;height:19px}.portrait-pause:hover{background:#262748}
.about-portrait+.about-page{padding-top:100px}
@media(max-width:760px){.about-portrait{margin:90px 8px 0;border-radius:24px;min-height:650px;height:88svh;max-height:900px}.portrait-copy{top:35px;left:7%;right:7%;bottom:30px;width:auto}.portrait-copy h1{font-size:40px;line-height:1.05}.portrait-copy h1 br{display:none}.portrait-copy p{font-size:12px;max-width:290px;align-self:center;text-align:center}.portrait-surface{top:65px;bottom:90px}.portrait-poster{left:0;width:100%}.portrait-caption{left:7%;bottom:125px}.portrait-hint{left:auto;right:7%;bottom:125px;transform:none;font-size:9px}.portrait-mouse{display:none}.portrait-touch{display:inline}.portrait-pause{top:22px;right:18px;width:34px;height:34px}.about-portrait+.about-page{padding-top:65px}}
@media(prefers-reduced-motion:reduce){.portrait-surface canvas,.portrait-poster{transition:none}}

/* Three-quarter point portrait; full biography remains readable at the right. */
.about-portrait{min-height:790px;max-height:1150px;background:radial-gradient(ellipse at 23% 48%,#090d20 0%,#040715 45%,#02030c 85%)}
.portrait-surface .portrait-matrix{position:absolute;inset:0;opacity:1;z-index:0;pointer-events:none}
.portrait-surface .portrait-gl{position:relative;z-index:1}
.portrait-poster{left:0;width:51%;z-index:1;filter:none}
.portrait-copy{right:5%;top:55px;bottom:55px;width:44%;justify-content:center;gap:30px;pointer-events:auto}
.portrait-copy h1{font-size:clamp(38px,3.5vw,58px);line-height:1.05}
.portrait-copy .portrait-bio p{font-size:14px;line-height:1.7;max-width:none;margin:0 0 18px;color:#d2dae6}
.portrait-copy .portrait-bio small{display:block;max-width:52ch;font-size:10px;line-height:1.6;color:#a2b3c8}
.portrait-caption{left:4%;bottom:32px}.portrait-hint{left:26%;bottom:32px}.portrait-ready .portrait-poster{visibility:hidden;opacity:0;transition:none}
@media(max-width:760px){.about-portrait{height:auto;min-height:0;max-height:none}.portrait-surface{position:relative;inset:auto;height:450px}.portrait-copy{position:relative;inset:auto;width:auto;padding:0 7% 38px;gap:24px;display:flex}.portrait-copy h1{font-size:38px}.portrait-copy .portrait-bio p{font-size:13px;line-height:1.75;max-width:none;text-align:left;align-self:auto}.portrait-copy .portrait-bio small{font-size:10px}.portrait-poster{left:0;width:100%}.portrait-caption{top:404px;bottom:auto;left:7%}.portrait-hint{top:414px;bottom:auto;right:7%;left:auto;transform:none}.portrait-pause{top:20px}}

.about-portrait+.contact-scene{margin-top:24px}@media(max-width:760px){.about-portrait+.contact-scene{margin-top:16px}}

.portrait-copy,.portrait-caption,.portrait-hint{z-index:2}.portrait-pause{z-index:3}

/* Portrait4: loading image matches the 20% smaller point portrait. */
.portrait-poster{transform:scale(.8);transform-origin:50% 46%}

/* Avoid flashing the complete fallback before the first scan reveals the points. */
.portrait-loading:not(.portrait-ready) .portrait-poster{opacity:0;visibility:hidden}

/* Mobile refinement only. Desktop styles and all animation code are preserved. */
@media (max-width:760px){
  .scroll-rail{display:none}
  #header .language,#menu-toggle{min-height:44px;min-width:44px}
  #header .language{font-size:11px}
  #menu{padding:92px 6vw 28px;overflow-y:auto;overscroll-behavior:contain}
  .menu-links a{min-height:44px;display:flex;align-items:center;font-size:clamp(27px,7.8vw,42px)}
  #replay{min-height:44px}
  .home-opening{height:145svh}
  .opening-stage .down-link{min-height:44px;font-size:13px}
  .opening-meta.opening-below{padding:30px 6vw 38px}
  .opening-meta.opening-below p{font-size:14px;max-width:34ch;line-height:1.65}
  .collections-grid .category-feature{transform:none!important}
  .collections-grid .feature-media img{transform:none!important}
  .collections-grid{margin-left:6vw;margin-right:6vw;margin-bottom:72px;gap:44px}
  .collections-grid .feature-caption{font-size:11px;line-height:1.6;letter-spacing:0;text-transform:none;gap:12px}
  .collections-grid .feature-caption span:first-child{max-width:74%}
  .collections-grid .feature-caption span:last-child{white-space:nowrap}
  .collections-grid .feature-heading{gap:12px;margin-top:10px}
  .collections-grid .feature-heading h2{font-size:clamp(25px,7.4vw,34px)}
  .collections-grid .feature-link:hover .feature-visual{animation:none;transform:none}
  .gallery-track{padding:106px 6vw 48px}
  .gallery-intro{padding-bottom:28px}
  .gallery-intro h1{font-size:clamp(34px,9vw,48px);overflow-wrap:anywhere}
  .gallery-intro p{font-size:15px;line-height:1.65;margin-top:18px}
  .back-link{min-height:44px;margin-bottom:16px;font-size:14px}
  .gallery-card{margin-bottom:36px}
  .gallery-caption{gap:10px;margin-top:14px}
  .gallery-caption .caption-copy h2{font-size:20px;line-height:1.3}
  .gallery-caption .caption-copy p{font-size:14px;line-height:1.65}
  .gallery-caption .caption-copy .image-credit{font-size:12px;line-height:1.6}
  .expand-icon{width:44px;height:44px}
  .encounters .section-intro p{font-size:14px;max-width:32ch}
  /* Touch rail: preserve the portrait crops, make every card reachable. */
  .encounters .explore-grid{display:flex;gap:14px;height:auto;padding:8px 6vw 22px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:6vw;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#b4b4bd transparent}
  .encounters .fan-slot{position:relative;inset:auto;flex:0 0 62vw;width:62vw;max-width:300px;height:auto;aspect-ratio:4/7;transform:none!important;scroll-snap-align:center}
  .encounters .explore-card{border-radius:24px;transform:none}
  .encounters .explore{padding-bottom:16px}
  .explore-shuffle{min-height:48px;font-size:14px}
  .portrait-pause{width:44px;height:44px}
  .portrait-copy .portrait-bio p{font-size:15px;line-height:1.75}
  .portrait-copy .portrait-bio small{font-size:12px;line-height:1.65}
  .portrait-hint{font-size:11px}
  .contact-copy>p{font-size:15px;line-height:1.65;max-width:34ch}
  .contact-form label{font-size:13px}
  .contact-privacy,.contact-status{font-size:12px;line-height:1.6}
  .contact-submit{min-height:48px;font-size:13px}
  .footer-finale.finale-enhanced{height:150svh}
  .footer-nav a{font-size:14px;min-height:48px}
  .site-footer .footer-thought p{font-size:12px}
  .footer-bottom a,.footer-bottom button{font-size:12px;min-height:44px;display:inline-flex;align-items:center}
  .site-footer .footer-bottom small,.footer-bottom>span{font-size:11px}
  .site-footer{padding-bottom:max(20px,env(safe-area-inset-bottom))}
  #lightbox{padding:12px 12px max(16px,env(safe-area-inset-bottom));overflow:hidden}
  .lightbox-bar{height:auto;min-height:52px;align-items:flex-start;gap:10px;font-size:12px}
  #lightbox-caption{max-height:18dvh;overflow-y:auto;padding:10px 0;line-height:1.5}
  #lightbox-close{min-width:44px;min-height:44px;flex-shrink:0}
  .lightbox-stage{position:absolute;inset:calc(18dvh + 24px) 12px 84px;height:auto;display:flex;align-items:center;justify-content:center}
  .lightbox-stage img{max-width:100%;max-height:100%}
  .lightbox-stage button{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));width:48px;height:48px;display:grid;place-items:center;border:1px solid #74768b;border-radius:50%;padding:12px}
  #lightbox-prev{left:24px}#lightbox-next{right:24px}
  #lightbox-count{position:absolute;bottom:max(32px,calc(env(safe-area-inset-bottom) + 14px));left:85px;right:85px;margin:0;font-size:13px}
}
@media (max-width:600px){.contact-fields{grid-template-columns:1fr}}
@media (max-width:760px) and (max-height:560px){
  #menu{justify-content:flex-start;padding-top:80px}
  .menu-links{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}
  .menu-links a{font-size:24px}
  #menu p{margin-top:20px}
}
