@font-face{font-family:Geist;src:url(assets/geist.woff2);font-display:swap}:root{--ink:#070a19;--paper:#f8f9ff;--muted:#b8bed6;--acid:#ff866f;--violet:#b7a2ff;--cyan:#78e9f5}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--paper);font-family:Geist,Arial,sans-serif}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:0;background:none}a{text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--acid);outline-offset:6px}button:hover,a:hover{color:var(--acid)}.engine{position:fixed;inset:0;pointer-events:none;background:linear-gradient(115deg,#22154899,#080d2499),url(assets/celestial-landscape.png) center/cover;background-color:#070a19}.engine canvas{display:block;width:100%;height:100%}.nav{position:fixed;top:0;left:0;width:100%;height:112px;padding:0 4.4%;display:flex;align-items:center;gap:3vw;z-index:5;background:linear-gradient(#04071990,transparent)}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;font-size:36px;letter-spacing:-2px;font-weight:400;white-space:nowrap}.brand-wordmark{line-height:1}.brand b{font-weight:780}.nav-caption{font-size:11px;line-height:14px;letter-spacing:0;color:#c6cce4}.nav nav{margin-left:auto;display:flex;gap:35px;font-size:12px}.nav nav a{position:relative}.nav nav a::after{content:'';position:absolute;bottom:-8px;left:0;width:0;height:1px;background:var(--acid);transition:width .25s}.nav nav a:hover::after{width:100%}.nav-cta{color:#fff;text-transform:uppercase;border:1px solid #ff997f;border-radius:2px;padding:12px 18px;font-size:12px;background:#ff775c;backdrop-filter:blur(10px)}main{position:fixed;inset:0;perspective:1400px;touch-action:none}.scene{position:absolute;inset:0;padding:140px 7vw 80px;transform-origin:50% 50%;will-change:transform,opacity}.intro{background:linear-gradient(90deg,#05081960,transparent 73%)}.hero-kicker,.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:500}.hero-kicker{position:absolute;top:26%;display:flex;align-items:center;gap:10px;color:#d5dbf3}.live-dot{width:5px;height:5px;background:var(--acid);box-shadow:0 0 15px #ff775c}.intro h1{font-size:clamp(82px,10.5vw,178px);font-weight:430;letter-spacing:-.073em;line-height:.94;margin:0;position:absolute;top:33%;left:6.7vw}.intro h1 em,h2 em{font-weight:300;font-style:normal;color:var(--paper)}.hero-foot{position:absolute;bottom:110px;left:7vw;right:7vw;display:flex;align-items:end;justify-content:space-between}.hero-foot p{font-size:15px;line-height:1.6;margin:0;color:#e3e7f7}.text-link{display:flex;align-items:center;gap:38px;font-size:12px;padding:0 0 13px;border-bottom:1px solid #a998ff80}.art-caption{position:absolute;right:4.4%;top:46%;font-size:8px;letter-spacing:1.8px;writing-mode:vertical-rl;display:flex;gap:35px;color:#c2cafa}.art-caption span:last-child{opacity:.55}footer{position:fixed;bottom:25px;left:4.4%;right:4.4%;display:flex;align-items:center;justify-content:space-between;z-index:5;color:#bdc5e3;font-size:9px}footer button{font-size:9px;padding:6px 0;letter-spacing:.6px}#explode-toggle{font-size:10px;letter-spacing:1.6px}#explode-toggle span{font-size:7px;letter-spacing:.7px;margin-left:15px;opacity:.5}.depth-hint{font-size:8px;letter-spacing:1.7px}.journey-progress{position:fixed;bottom:0;left:0;width:100%;height:1px;background:#ffffff12;z-index:9}.journey-progress i{height:100%;display:block;width:0;background:var(--acid)}.project-index{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;margin-bottom:12px;color:#e1e5ff}.project-index>span:last-child{font-size:7px;color:#b5bedc}.project-image{display:block;position:relative;width:100%;padding:0;overflow:hidden;aspect-ratio:1.65;background:#101429;box-shadow:0 40px 110px #0009;border:1px solid #a998ff33}.project-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .9s,filter .5s;filter:saturate(.85)}.project-image:hover img{transform:scale(1.045);filter:saturate(1)}.project-image>span{position:absolute;bottom:16px;right:16px;font-size:10px;background:#0b1024e8;backdrop-filter:blur(14px);color:#f8f9ff;border:1px solid #fff3;padding:12px 16px}.contact{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-top:95px}.contact>.eyebrow{color:#78e9f5}.contact h2{font-size:clamp(80px,10vw,160px);letter-spacing:-.07em;font-weight:420;line-height:.93;margin:35px 0 30px}.contact h2 em{color:var(--acid)}.contact-description{font-size:13px;line-height:1.8;color:#d1d7ea}.contact-cta{background:var(--acid);color:#fff;text-transform:uppercase;padding:19px 24px;font-size:12px;margin-top:25px}.contact-cta:hover{background:#ffa08e;color:#fff}.booking{font-size:10px;color:#c2cbe7;display:inline-block;margin-top:20px;border-bottom:1px solid #a998ff70;padding-bottom:6px}.skip{position:fixed;top:-100px;z-index:99}.skip:focus{top:10px;background:black;padding:15px}dialog{border:1px solid #ffffff30;color:#f8f9ff;background:#101329;padding:45px;max-width:650px;width:calc(100% - 32px);max-height:90dvh;overflow:auto}dialog::backdrop{background:#000b;backdrop-filter:blur(14px)}.close-dialog{position:absolute;right:18px;top:10px;font-size:30px}dialog h2{font-size:45px;line-height:1.1;letter-spacing:-2px;margin:25px 0}form label{display:flex;flex-direction:column;gap:8px;font-size:12px;margin-bottom:18px}input,select,textarea{color:#eee;background:#ffffff08;border:1px solid #ffffff30;padding:12px;width:100%;border-radius:0}select option{background:#222}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.pill{display:inline-block;border:1px solid #ffffff50;padding:12px 18px;font-size:13px;margin:6px 6px 0 0}.form-note{font-size:11px;color:#b6c2e3}pre{white-space:pre-wrap;font:12px/1.7 Geist;background:#ffffff08;padding:15px}#project-dialog{width:94vw;max-width:none;height:90dvh;padding:0;overflow:hidden}.live-toolbar{height:85px;display:flex;align-items:center;padding:15px 70px 15px 25px;gap:30px}.live-toolbar h2{font-size:21px;margin:0;letter-spacing:-.5px}.live-toolbar p{font-size:10px;color:#bdc7e4;margin:7px 0 0}.live-toolbar a{margin-left:auto;white-space:nowrap;font-size:12px}.live-toolbar .close-dialog{top:20px}.live-website{width:100%;height:calc(100% - 85px);background:#fff}.live-website iframe{width:100%;height:100%;border:0}.scene[inert]{pointer-events:none}
@media(min-width:1700px){.project-image{aspect-ratio:1.9}}
@media(max-height:760px) and (min-width:701px){.nav{height:85px}.scene{padding-top:110px}.hero-kicker{top:25%}.intro h1{font-size:17vh;top:33%}.hero-foot{bottom:85px}.project-image{aspect-ratio:2.25}.contact h2{font-size:14vh;margin:25px 0 18px}.contact-description{font-size:12px}.contact-cta{margin-top:10px;padding:14px 20px}}
@media(max-width:700px){.nav{height:86px;padding:0 6%;gap:20px}.brand{font-size:30px}.nav nav{gap:20px;font-size:11px}.nav-cta{display:none}.scene{padding:120px 7% 70px}.hero-kicker{top:27%;font-size:7px;letter-spacing:1.3px}.intro h1{font-size:17.4vw;top:34%;left:6.5%;line-height:1}.hero-foot{bottom:110px;display:block}.hero-foot p{font-size:12px}.art-caption{top:18%;font-size:6px;right:6%;height:150px;gap:20px}.art-caption span:last-child{display:none}.project-image{aspect-ratio:2.5}.project-index{font-size:7px;margin-bottom:8px}.project-index span:last-child{font-size:6px}.project-image>span{font-size:8px;padding:9px 12px;bottom:10px;right:10px}.contact{padding-top:80px}.contact h2{font-size:18vw;margin:30px 0 20px}.contact-description{font-size:12px}.contact-cta{font-size:11px;padding:17px 20px}footer{left:7%;right:7%;bottom:22px}.depth-hint{display:none}#explode-toggle span{display:none}dialog{padding:28px}dialog h2{font-size:35px}.live-toolbar{padding:12px 50px 12px 14px;height:95px;gap:10px}.live-toolbar h2{font-size:17px}.live-toolbar p{font-size:8px;max-width:190px}.live-toolbar a{font-size:9px;white-space:normal;max-width:70px}.live-website{height:calc(100% - 95px)}}
@media(max-width:700px) and (max-height:700px){.project-image{aspect-ratio:3.1}.hero-foot{bottom:85px}.intro h1{font-size:17vw}.hero-kicker{top:26%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

@media(max-width:700px){.intro{background:linear-gradient(90deg,#0008,transparent 90%)}.art-caption{opacity:.6}}


.fragment-ready .project-image{opacity:var(--project-surface,0);transition:none}.project-image:hover img{transform:none}

/* Finishing pass: precise surfaces, quiet controls, and a spatial project opening. */
.fragment-ready .project-image{opacity:var(--project-surface,0);transition:none;border-color:transparent;box-shadow:0 26px 90px #0006}
.project-image img,.project-image:hover img{filter:none;transform:none;transition:none}
.project-image::after{content:'';position:absolute;inset:0;border:1px solid #a998ff55;pointer-events:none;transition:border-color .35s}
.project-image:hover::after,.project-image:focus-visible::after{border-color:#ff866f88}
.project-image>span{transition:background .25s,border-color .25s;letter-spacing:.15px}
.project-image:hover>span{background:#232043f5;border-color:#ff866f6b}


.nav nav a[aria-current]::after{width:100%;opacity:.7}
.nav nav a[aria-current]{color:var(--acid)}
#hero-title:focus{outline:none}
.nav-cta,.contact-cta{transition:background .25s,border-color .25s,color .25s}
.nav-cta:hover{background:#ff997f;border-color:#ffa08e;color:#fff}
#project-dialog{transform-origin:0 0;isolation:isolate;background:#0b1024;border-color:#a998ff55;box-shadow:0 40px 160px #000b}
#project-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;z-index:2;pointer-events:none;opacity:0;transition:opacity .4s ease}
#project-dialog.loading-site #project-poster{opacity:1}
#project-dialog .live-toolbar{position:absolute;top:0;left:0;right:0;z-index:3;background:#0b1024f5;backdrop-filter:blur(20px);border-bottom:1px solid #ff866f22;transition:opacity .3s}
#project-dialog.opening-site .live-toolbar{opacity:0}
#project-dialog .live-website{position:absolute;inset:85px 0 0;height:auto}
#project-loading{font-size:9px;letter-spacing:.4px;color:#bcb0ff;white-space:nowrap;margin-left:auto}
#project-loading::before{content:'';display:inline-block;width:4px;height:4px;background:#78e9f5;margin-right:8px;vertical-align:middle}
.loading-site #project-loading::before{animation:loading-light 1.2s ease-in-out infinite}
#project-dialog .live-toolbar a{margin-left:0}
#project-dialog.closing-site{pointer-events:none}
dialog[open]::backdrop{animation:backdrop-enter .55s ease both}
@keyframes backdrop-enter{from{background:#0000;backdrop-filter:blur(0)}to{background:#000b;backdrop-filter:blur(14px)}}
@keyframes loading-light{50%{opacity:.25}}
@media(max-width:700px){#project-dialog{width:calc(100vw - 20px);height:calc(100dvh - 28px);max-height:none;transform-origin:50% 50%}#project-dialog .live-website{inset:95px 0 0}#project-loading{display:none}.live-toolbar a{margin-left:auto!important}}
@media(max-height:520px) and (orientation:landscape){
 .nav{height:60px}.brand{font-size:27px}.scene{padding:82px 7vw 48px}.hero-kicker{top:25%;font-size:7px}.intro h1{font-size:18vh;top:34%}.hero-foot{bottom:58px;display:flex}.hero-foot p{font-size:10px}.art-caption{display:none}footer{bottom:12px}.project-image{aspect-ratio:2.4}.project-index{margin-bottom:6px;font-size:6px}.project-index span:last-child{display:none}.project-image>span{font-size:7px;padding:7px 9px;bottom:8px;right:8px}.contact{padding-top:65px}.contact .eyebrow{font-size:7px}.contact h2{font-size:17vh;margin:15px 0 10px}.contact-description{font-size:10px;line-height:1.5;margin:6px}.contact-cta{padding:10px 16px;font-size:10px;margin-top:10px}.booking{font-size:8px;margin-top:12px}
}
@media(prefers-reduced-motion:reduce){dialog[open]::backdrop,.loading-site #project-loading::before{animation:none}.project-image::after{transition:none}}
@media(max-width:360px) and (max-height:650px){.project-image{aspect-ratio:3.4}}
@media(max-height:520px) and (orientation:landscape){.project-image{height:27vh;aspect-ratio:auto}}
@media(max-height:520px) and (orientation:landscape){.contact h2{font-size:15vh;margin:12px 0 8px}.contact-description{font-size:9px;line-height:1.45}.contact-cta{margin-top:8px;padding:8px 16px}.booking{margin-top:8px}}
.engine canvas{opacity:0;transition:opacity .65s ease}.engine.ready canvas{opacity:1}

/* Full-viewport chapters share one continuous depth journey. */
.scene:not(.intro){visibility:hidden}
.story{display:flex;align-items:center;background:radial-gradient(ellipse at 45% 50%,#050a1c75,transparent 74%)}
.story-content{width:100%;max-width:1320px;margin:auto}
.story .eyebrow{color:var(--cyan)}
.story h2{font-weight:430;font-size:clamp(72px,8.5vw,144px);letter-spacing:-.065em;line-height:.98;margin:30px 0 42px}
.story h2 em{color:var(--violet)}
.story-bottom{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:start;max-width:1040px}
.story-lead{font-size:clamp(18px,1.9vw,28px);line-height:1.4;letter-spacing:-.025em;margin:0;max-width:440px}
.story-detail>p{font-size:14px;line-height:1.8;color:#ccd3eb;margin:0 0 28px;max-width:360px}
.story-detail .text-link{width:fit-content;font-size:11px;gap:30px}
.discipline-line{display:flex;align-items:center;gap:16px;margin-top:58px;font-size:8px;letter-spacing:1.5px;color:#b4bfdf}
.discipline-line i{width:38px;height:1px;background:#a998ff65}
.project-chapter{display:flex;align-items:center;padding:125px 7vw 88px}
.project-layout{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.65fr);gap:34px 6vw;align-items:center;width:100%;max-width:1480px;margin:auto}
.project-copy h2{font-weight:440;font-size:clamp(42px,4.45vw,78px);letter-spacing:-.055em;line-height:1.04;margin:24px 0}
.project-copy h2 em{color:var(--cyan)}
.project-copy>p{font-size:13px;line-height:1.8;color:#ccd3eb;max-width:315px;margin:0}
.project-services{display:flex;flex-direction:column;font-size:8px;letter-spacing:1.15px;line-height:2.2;color:#a9b7db;margin-top:27px}
.project-visual{min-width:0}
.project-index{font-size:9px;margin-bottom:15px}
.project-chapter .project-image{aspect-ratio:1.65;height:auto;max-height:57vh}
.project-credit{display:flex;justify-content:space-between;gap:20px;margin-top:16px;font-size:8px;color:#b8c3e2;letter-spacing:.25px}
.chapter-next{grid-column:2;justify-self:end;width:fit-content;font-size:11px}
.project-reverse .project-layout{grid-template-columns:minmax(0,1.65fr) minmax(250px,.8fr)}
.project-reverse .project-copy{grid-column:2;grid-row:1}
.project-reverse .project-visual{grid-column:1;grid-row:1}
.project-reverse .chapter-next{grid-column:1;justify-self:start}
.fragment-ready .project-chapter .project-copy,.fragment-ready .project-chapter .project-index,.fragment-ready .project-chapter .project-credit,.fragment-ready .project-chapter .chapter-next{opacity:var(--work-copy,0)}
.fragment-ready .project-chapter .project-image{opacity:var(--project-surface,0)}
.project-chapter[inert] .project-image{pointer-events:none}
@media(max-width:1100px) and (min-width:701px){
 .project-layout,.project-reverse .project-layout{gap:24px 4vw;grid-template-columns:minmax(220px,.8fr) minmax(0,1.35fr)}
 .project-reverse .project-layout{grid-template-columns:minmax(0,1.35fr) minmax(220px,.8fr)}
 .project-copy h2{font-size:4.8vw}
 .project-copy>p{font-size:12px}
 .project-index>span:last-child{display:none}
}
@media(max-height:760px) and (min-width:701px){
 .story h2{font-size:11vh;margin:22px 0 28px}
 .story-lead{font-size:20px}
 .story-detail>p{font-size:12px;margin-bottom:18px}
 .discipline-line{margin-top:30px}
 .project-chapter{padding-top:105px;padding-bottom:70px}
 .project-copy h2{font-size:7.5vh;margin:18px 0}
 .project-services{margin-top:17px}
 .project-layout,.project-reverse .project-layout{row-gap:22px}
}
@media(max-width:700px){
 .story,.project-chapter{padding:106px 7vw 78px}
 .story h2{font-size:14vw;margin:24px 0 28px}
 .story-bottom{display:block}
 .story-lead{font-size:19px;max-width:340px}
 .story-detail{margin-top:24px}
 .story-detail>p{font-size:12px;line-height:1.7;margin-bottom:25px}
 .story-detail .text-link{font-size:10px;gap:25px}
 .discipline-line{margin-top:34px;gap:9px;font-size:6px;letter-spacing:.7px}
 .discipline-line i{width:16px}
 .project-layout,.project-reverse .project-layout{display:flex;flex-direction:column;align-items:stretch;gap:26px}
 .project-copy h2{font-size:10vw;line-height:1.02;margin:17px 0 14px}
 .project-copy h2 br:first-child{display:none}
 .project-copy>p{max-width:350px;font-size:12px;line-height:1.65}
 .project-services{font-size:6px;line-height:1.8;margin-top:12px}
 .project-services{flex-direction:row;flex-wrap:wrap;gap:0 10px}
 .project-chapter .project-image{aspect-ratio:1.6;max-height:33vh}
 .project-index{font-size:8px;margin-bottom:10px}
 .project-credit{font-size:7px;margin-top:12px}
 .chapter-next{align-self:flex-end;font-size:10px;gap:22px}
 .project-chapter .project-image>span{font-size:9px;padding:11px 13px}
 .project-chapter .eyebrow,.story .eyebrow{font-size:8px}
 .depth-hint{display:block;font-size:6px;letter-spacing:.8px;max-width:42%;text-align:center}
}
@media(max-width:700px) and (max-height:700px){
 .story,.project-chapter{padding-top:95px;padding-bottom:68px}
 .story h2{font-size:13vw;margin:17px 0 20px}
 .story-lead{font-size:16px}
 .story-detail{margin-top:17px}
 .story-detail>p{font-size:11px;margin-bottom:18px}
 .discipline-line{margin-top:23px;font-size:5px}
 .project-layout,.project-reverse .project-layout{gap:17px}
 .project-copy h2{font-size:9vw;margin:12px 0 10px}
 .project-copy>p{font-size:10px;line-height:1.55}
 .project-services{margin-top:8px;font-size:5px}
 .project-chapter .project-image{aspect-ratio:1.85;max-height:27vh}
 .project-credit{margin-top:9px;font-size:6px}
 .chapter-next{font-size:9px;padding-bottom:9px}
}
@media(max-height:520px) and (orientation:landscape){
 .story,.project-chapter{padding:80px 7vw 49px}
 .story h2{font-size:12vh;margin:13px 0 19px}
 .story .eyebrow{font-size:7px}
 .story-bottom{display:grid;grid-template-columns:1fr 1fr;gap:8vw}
 .story-lead{font-size:14px}
 .story-detail{margin-top:0}
 .story-detail>p{font-size:9px;line-height:1.5;margin-bottom:12px}
 .story-detail .text-link{font-size:8px;padding-bottom:6px;gap:16px}
 .discipline-line{margin-top:18px;font-size:6px}
 .project-layout,.project-reverse .project-layout{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(0,1.3fr);gap:14px 5vw}
 .project-reverse .project-layout{grid-template-columns:minmax(0,1.3fr) minmax(200px,.8fr)}
 .project-copy h2{font-size:8.5vh;line-height:1;margin:12px 0}
 .project-copy>p{font-size:9px;line-height:1.5;max-width:250px}
 .project-services{font-size:5px;line-height:1.6;margin-top:10px}
 .project-chapter .project-image{height:38vh;aspect-ratio:auto;max-height:none}
 .project-index{font-size:6px;margin-bottom:7px}
 .project-credit{font-size:6px;margin-top:8px}
 .chapter-next{font-size:8px;padding-bottom:7px}
 .project-chapter .project-image>span{font-size:7px;padding:8px 10px}
 .depth-hint{font-size:6px}
}
