@font-face{font-family:Hind;src:url('../fonts/hind-400.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Hind;src:url('../fonts/hind-500.woff2') format('woff2');font-weight:500;font-display:swap}@font-face{font-family:Hind;src:url('../fonts/hind-600.woff2') format('woff2');font-weight:600;font-display:swap}
:root{--ground:#09070b;--ink:#f3eef2;--muted:#bcaeb9;--pink:#ef8bb6;--pad:42px;color-scheme:dark;font-family:Hind,sans-serif;background:var(--ground);color:var(--ink)}*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;font-size:17px;font-weight:400;line-height:1.45}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:hover,button:hover{color:var(--pink)}a:focus-visible,button:focus-visible{outline:1px solid var(--pink);outline-offset:7px}p,h1,h2{margin:0}h1,h2{font-weight:400;line-height:1.05}::selection{background:#702345;color:white}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip{position:fixed;left:25px;top:-90px;z-index:100;background:var(--ground);padding:15px}.skip:focus{top:20px}.folio-nav{position:fixed;z-index:30;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:23px var(--pad);font-size:12px;text-transform:uppercase;letter-spacing:.13em}.folio-nav:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(var(--ground),transparent);pointer-events:none}.folio-nav a{display:inline-flex;align-items:center;min-height:44px}.folio-nav .nav-name{font-size:14px;letter-spacing:.1em}.folio-nav>div{display:flex;gap:36px}.folio-nav a[aria-current]{color:var(--pink)}.world-backdrop{position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--ground)}.world-backdrop picture,.world-backdrop img,#world-stage,#world-stage canvas{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.world-backdrop picture{opacity:.5}.immersive .world-backdrop picture{visibility:hidden}.eyebrow{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.opening{height:100svh;min-height:620px;position:relative}.intro{position:absolute;left:12%;top:25%}.intro h1{font-size:52px;margin:15px 0 17px;letter-spacing:-.025em}.location{font-size:14px;color:var(--muted)}.opening-note{position:absolute;right:12%;top:31%;font-size:17px;color:var(--muted)}.scroll-cue{position:absolute;bottom:12%;left:12%;font-size:12px;letter-spacing:.1em;text-transform:uppercase;display:flex;gap:30px;align-items:center;min-height:44px}.scroll-cue span{font-size:24px}.selected{padding:100px max(8%,24px)}.selection-heading{margin-bottom:100px}.selection-heading h2{font-size:32px;margin:10px 0 20px}.selection-heading>a{font-size:14px;color:var(--muted)}.project{position:relative;max-width:940px;margin:0 auto 150px}.project:nth-of-type(even){margin-left:12%}.project-target{display:block;position:relative}.project-label{display:flex;gap:22px;align-items:baseline;padding-top:15px}.project-title{font-size:24px;font-weight:400;letter-spacing:-.015em;color:var(--pink)}.project-number{font-size:12px;color:var(--pink);letter-spacing:.1em}.link-mark{font-size:20px;margin-left:auto}.project-context{margin-top:20px}.project-context>p+p{margin-top:8px}.credit{font-size:12px;color:var(--muted);margin-top:20px}.credit a{text-decoration:underline;text-underline-offset:3px}.contact{padding:100px 12% 125px;min-height:90svh;display:flex;flex-direction:column;justify-content:center;position:relative}.contact h2{font-size:46px;letter-spacing:-.025em;margin:20px 0 12px;text-transform:uppercase}.contact-action{display:block;width:fit-content;font-size:58px;letter-spacing:-.035em;line-height:1.15;text-transform:uppercase}.contact-action span{font-size:.65em;display:inline-block;padding-left:15px;transition:transform .3s}.contact-action:hover span{transform:translate(4px,-4px)}.email{display:block;width:fit-content;margin-top:30px;font-size:17px;border-bottom:1px solid #765b6c;padding:6px 0}.colophon{display:flex;align-items:flex-end;gap:80px;margin-top:90px;font-size:14px;color:var(--muted)}.colophon>a{margin-left:auto;min-height:44px;display:flex;align-items:flex-end}.journey-chrome{position:fixed;bottom:22px;left:var(--pad);right:var(--pad);z-index:30;display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:.06em;color:var(--muted);pointer-events:none}.journey-chrome>div{display:flex;gap:24px;align-items:center;pointer-events:auto}.journey-chrome a,.journey-chrome button{font-size:12px;min-height:44px;display:flex;align-items:center;padding:0}.travel-line{position:fixed;bottom:0;left:0;width:100%;height:1px;background:#33202c;z-index:40}.travel-line span{display:block;width:100%;height:100%;background:var(--pink);transform:scaleX(var(--progress,0));transform-origin:left}.cursor-label{display:none;position:fixed;z-index:50;pointer-events:none;font-size:11px;letter-spacing:.12em;transform:translate(16px,20px);padding:4px 8px;background:#09070bdd;color:white;border-bottom:1px solid var(--pink)}.cursor-label.active{display:block}
/* Live discovery is text only. Natural links, no projected media hit planes. */
.immersive #journey{height:1000vh;min-height:6500px}.immersive .opening{position:fixed;inset:0;height:100svh;min-height:0;opacity:var(--intro,1);pointer-events:none}.immersive .opening a{pointer-events:auto}.immersive .selected{position:absolute;top:195vh;left:0;width:100%;padding:0;scroll-margin-top:0}.immersive .selection-heading{position:fixed;left:var(--pad);top:18%;opacity:var(--selection,0);pointer-events:none;margin:0;transform:translateY(calc((1 - var(--selection,0))*15px))}.immersive .selection-heading h2{font-size:27px}.immersive .selection-heading a{pointer-events:auto;display:inline-block;min-height:44px}.immersive .project{position:fixed;left:12%;top:33%;width:fit-content;max-width:min(480px,76vw);margin:0;z-index:10;visibility:hidden;transform:translateY(var(--text-shift,0px));text-shadow:0 2px 10px #09070b}
.immersive .project[data-side=right]{left:auto;right:12%;top:36%}
.immersive .project.is-active{visibility:visible}
.immersive .project-target{position:relative;display:block;width:fit-content;max-width:100%;min-height:44px;outline-offset:6px}
.immersive .project-label{position:static;display:flex;align-items:baseline;gap:15px;padding:8px 0;white-space:normal}
.immersive .project-title{font-size:32px;line-height:1.2}
.immersive .project-label .link-mark{margin-left:12px}
.immersive .project-context{position:static;margin-top:14px;text-align:left;max-width:100%}
.immersive .project-context>p+p{font-size:17px;color:var(--muted)}
.immersive .credit{position:static;margin-top:22px;max-width:360px;font-size:12px}
.immersive .contact{position:absolute;top:940vh;width:100%;height:60vh;padding:0;min-height:0;pointer-events:none}.immersive .contact-content{position:fixed;left:12%;top:30%;opacity:var(--contact,0);transform:translateY(calc((1 - var(--contact,0))*22px));visibility:hidden}.immersive .contact.is-visible .contact-content{visibility:visible;pointer-events:auto}.immersive .colophon{position:fixed;left:12%;right:12%;bottom:100px;margin:0;opacity:var(--contact,0);visibility:hidden}.immersive .contact.is-visible .colophon{visibility:visible;pointer-events:auto}
@media(min-width:1600px){.intro{top:26%}.intro h1{font-size:58px}.contact-content{max-width:950px}.contact h2{font-size:54px}}
@media(max-width:1000px){:root{--pad:28px}.opening-note{right:8%}.project-context>p+p{max-width:230px}.colophon{gap:40px}.immersive .project-title{font-size:22px}}
@media(max-width:699px){:root{--pad:20px}.folio-nav{padding-top:14px;letter-spacing:.07em}.folio-nav .nav-name{font-size:13px}.folio-nav>div{gap:22px}.opening{min-height:580px}.intro{left:24px;top:22%}.intro h1{font-size:40px;margin:12px 0}.opening-note{left:24px;right:auto;top:42%;font-size:16px}.scroll-cue{left:24px;bottom:15%;font-size:11px}.selected{padding:50px 20px}.selection-heading{margin-bottom:70px}.project{margin-bottom:95px}.project:nth-of-type(even){margin-left:0}.project-title{font-size:23px}.project-label{gap:12px}.contact{padding:80px 24px 145px;min-height:90svh}.contact h2{font-size:31px;line-height:1.13}.contact-action{font-size:40px;margin-top:15px}.contact-action span{padding-left:6px}.email{font-size:16px;margin-top:24px}.colophon{font-size:13px;gap:28px;flex-wrap:wrap;margin-top:70px}.colophon>a{margin-left:0}.journey-chrome{bottom:11px;font-size:11px}.journey-chrome>div{gap:18px}.journey-chrome a,.journey-chrome button{font-size:11px}.immersive #journey{height:850vh;min-height:5500px}.immersive .selected{top:162vh}.immersive .selection-heading{top:18%;left:24px}.immersive .selection-heading h2{font-size:24px}.immersive .project-title{font-size:21px}.immersive .project-label{padding-top:11px;gap:12px}.immersive .project-label .link-mark{margin-left:auto}.immersive .project-context>p+p{font-size:16px;max-width:none;margin-top:5px}.immersive .contact{top:805vh;height:45vh}.immersive .contact-content{top:28%;left:24px;right:24px}.immersive .colophon{left:24px;right:24px;bottom:100px;gap:24px}.immersive .colophon p{max-width:160px}.immersive .colophon>a{min-height:44px}.cursor-label{display:none!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}.cursor-label{display:none!important}}



/* Screenshot-free fallback: compact text entries, not empty image-sized cards. */
.project{max-width:760px;margin-bottom:90px}.project-target{width:fit-content;max-width:100%;min-height:44px}.project-label{min-height:44px;align-items:baseline}.project-context>p+p{font-size:17px}.project:nth-of-type(even){margin-left:12%}
@media(max-width:699px){.project,.project:nth-of-type(even){margin-left:0;margin-bottom:64px}.immersive .project,.immersive .project[data-side=right]{left:24px;right:24px;top:33%;width:auto;max-width:none;margin:0}.immersive .project-title{font-size:26px}.immersive .project-label{gap:10px}.immersive .project-context{margin-top:12px}.immersive .project-label .link-mark{margin-left:6px}.immersive .credit{margin-top:22px;max-width:310px}}

/* Approved focused addition: purpose first, sampled into pixels at its native scale. */
.intro .purpose{font-size:17px;line-height:1.45;margin:19px 0 16px;color:var(--ink)}
.purpose-pixels{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.project-label>.purpose-pixels{filter:none}
.pixel-forming h1,.pixel-forming .eyebrow,.pixel-forming .purpose{opacity:var(--purpose-ink,0)}
.pixel-forming .location{opacity:var(--purpose-ink,0)}
/* Correct crops of one source per project; each glass rectangle stays separate. */
.assembled-image{display:block;position:relative;width:100%;aspect-ratio:8/5;perspective:1000px;text-shadow:none;margin-bottom:17px}
.assembled-image>img{display:block;width:100%;height:100%;object-fit:fill}
.image-tiles{display:none;position:absolute;inset:0;pointer-events:none;transform-style:preserve-3d}
.image-tile{position:absolute;background-repeat:no-repeat;backface-visibility:hidden;transform-origin:center;}
.image-tile:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffe9f56b,inset 0 1px 0 #fff9;opacity:var(--glass,0);background:linear-gradient(125deg,#ffffff18,transparent 40%);pointer-events:none}
.immersive .tiles-building>img{visibility:hidden}.immersive .project.is-active .tiles-building .image-tiles{display:block}
.project-target{width:100%}.project{max-width:760px}
.immersive .project,.immersive .project[data-side=right]{left:12%;right:auto;top:17%;width:min(62vw,calc((100svh - 330px)*1.6),880px);max-width:none;transform:none}
.immersive .project[data-side=right]{left:auto;right:12%}
.immersive .project-target{width:100%}.immersive .project-title{font-size:28px}.immersive .project-label{padding:0;min-height:38px}
.immersive .project-context{margin-top:6px;display:flex;gap:22px;align-items:baseline;max-width:none}
.immersive .project-context>p+p{max-width:none}.immersive .credit{margin-top:12px;max-width:none}
@media(max-width:699px){
 .intro .purpose{font-size:17px;margin-top:16px}.intro h1{font-size:40px}
 .immersive .project,.immersive .project[data-side=right]{left:24px;right:24px;top:23%;width:auto;max-width:none;margin:0}
 .immersive .project-title{font-size:25px}.immersive .project-context{display:block;margin-top:12px}.immersive .project-context>p+p{margin-top:5px}
 .immersive .credit{font-size:12px;line-height:1.5;margin-top:18px}.assembled-image{margin-bottom:19px}
}
@media(max-height:650px) and (min-width:700px){.immersive .project,.immersive .project[data-side=right]{top:15%;width:min(56vw,calc((100svh - 285px)*1.6))}.immersive .project-title{font-size:23px}.immersive .project-context{margin-top:2px}.assembled-image{margin-bottom:8px}.immersive .credit{margin-top:5px}}

/* The finished picture remains a set of independent glass crops in every mode. */
.assembled-image{margin-bottom:33px;--glass:.65}
.tiles-building>img{visibility:hidden}
.tiles-building .image-tiles{display:block}
.image-tile{background-color:#190d19}
.image-tile:after{background:linear-gradient(125deg,#fff0fa30,#cb71a016 42%,#31132626);box-shadow:inset 0 0 0 1px #ffe9f57a,inset 0 1px 0 #fff9}
.project-label,.contact-content{position:relative}
.pixel-forming h2,.pixel-forming .project-title,.pixel-forming .project-number{opacity:var(--purpose-ink,0)}
@media(max-width:699px){.assembled-image{margin-bottom:30px}}
@media(max-height:650px) and (min-width:700px){.assembled-image{margin-bottom:24px}}
/* Authored no-JS baseline; runtime replaces these with the same 20 / 9 crops. */
.image-tile.static-tile{left:calc(var(--x)*20%);top:calc(var(--y)*25%);width:20%;height:25%;background-size:500% 400%;background-position:calc(var(--x)*25%) calc(var(--y)*100%/3);transform:translateY(calc(var(--y)*3px + var(--odd)*7px)) scale(.91)}
@media(max-width:699px){
 .image-tile.static-tile{left:calc(var(--mx)*100%/3);top:calc(var(--my)*100%/3);width:33.333333%;height:33.333333%;background-size:300% 300%;background-position:calc(var(--mx)*50%) calc(var(--my)*50%);transform:translateY(calc(var(--my)*3px + var(--modd)*7px)) scale(.91)}
 .image-tile.static-tile:nth-child(n+10){display:none}
}
.immersive .project-label{position:relative}

/* Live source crops now belong to the shared-depth 3D landscape, not the DOM.
   Static/no-JS/reduced-motion separation above is intentionally unchanged. */
.immersive .assembled-image{display:none}
.immersive .project,.immersive .project[data-side=right]{top:76%;width:min(62vw,880px)}
.immersive .project-target{min-height:44px;width:fit-content}
.immersive .project-label{min-height:44px}
.over-world-tile{cursor:pointer}
@media(max-width:699px){.immersive .project,.immersive .project[data-side=right]{top:59%;width:auto;left:24px;right:24px}.immersive .project-context{margin-top:7px}.immersive .credit{margin-top:12px}}
@media(max-height:650px) and (min-width:700px){.immersive .project,.immersive .project[data-side=right]{top:67%;width:76vw}.immersive .credit{max-width:680px}}

/* User-approved pink negative: blend rose glyphs against the actual world/video.
   Normal compositing is reserved for accessible focus/high-contrast fallbacks. */
body.immersive{isolation:isolate}
.immersive .world-backdrop{z-index:0}
.immersive .project,.immersive .project[data-side=right]{
 inset:0;left:0;right:0;top:0;width:100%;height:100svh;max-width:none;margin:0;
 transform:none;text-shadow:none;mix-blend-mode:difference;color:var(--pink);pointer-events:none;
}
.immersive .project-target{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:88vw;pointer-events:auto;color:#fff}
.immersive .project-label{position:relative;display:block;text-align:center;padding:0;min-height:44px;line-height:1}
.immersive .project-title{display:block;font-size:64px;line-height:1.06;letter-spacing:-.035em;color:var(--pink);white-space:nowrap}
.immersive .project-number{position:absolute;left:50%;top:-36px;transform:translateX(-50%);color:var(--pink);font-size:12px}
.immersive .project-label .link-mark{position:absolute;left:calc(100% + 16px);top:14px;margin:0;color:#fff;font-size:22px}
.immersive .project-context{position:absolute;top:calc(50% + 64px);left:50%;transform:translateX(-50%);display:block;width:min(600px,86vw);max-width:none;margin:0;text-align:center;color:#fff}
.immersive .project-context>p+p{max-width:none;margin-top:4px;font-size:16px;color:#f3eef2}
.immersive .credit{position:absolute;bottom:88px;left:50%;transform:translateX(-50%);width:min(720px,86vw);max-width:none;margin:0;text-align:center;color:#fff;font-size:12px;pointer-events:auto}
.immersive .project a:hover{color:#fff}
.immersive .project:focus-within{mix-blend-mode:normal;text-shadow:0 1px 4px #09070b,0 0 16px #09070b}
.immersive .project:focus-within .project-target{background:#09070be8;outline-color:#fff}
@media(max-width:699px){
 .immersive .project-title{font-size:34px;white-space:normal;max-width:300px;line-height:1.08}
 .immersive .project-target{max-width:80vw}
 .immersive .project-label .link-mark{left:calc(100% + 8px);top:8px;font-size:18px}
 .immersive .project-number{top:-30px}
 .immersive .project-context{top:calc(50% + 78px);width:86vw}
 .immersive .credit{bottom:102px;width:86vw;line-height:1.45}
}
@media(max-height:650px) and (min-width:700px){
 .immersive .project-title{font-size:48px}
 .immersive .project-context{top:calc(50% + 48px)}
 .immersive .credit{bottom:70px}
}
@media(prefers-contrast:more),(forced-colors:active){
 .immersive .project,.immersive .project[data-side=right]{mix-blend-mode:normal;text-shadow:0 1px 5px #09070b,0 0 20px #09070b}
 .immersive .project-target,.immersive .project-context,.immersive .credit{background:#09070b;color:#fff}
}
@media(max-height:480px) and (min-width:700px){
 .immersive .project-context{top:calc(50% + 40px);width:90vw;display:flex;justify-content:center;gap:18px;align-items:baseline}
 .immersive .project-context>p+p{margin:0}
 .immersive .credit{bottom:64px;width:90vw;font-size:11px;line-height:1.35}
 .immersive .project-number{top:-25px}
}
/* Progressive enhancement: same composition before and after the renderer is ready. */
.immersive:not(.world-ready) .world-backdrop picture{visibility:visible;opacity:1}
.world-status{position:fixed;left:var(--pad);bottom:65px;z-index:25;font-size:12px;color:var(--muted);pointer-events:none}
body[data-world-state=ready] .world-status{visibility:hidden}
@media(prefers-reduced-motion:reduce){.world-status{display:none}}
.assembled-image>img:not([src]){visibility:hidden}.assembled-image>noscript img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.world-status{display:none}.immersive .world-status,body[data-fallback] .world-status{display:block}
@media(prefers-reduced-motion:reduce){body[data-fallback] .world-status{display:none}}

/* Approved typography refinement: centered arrivals, readable project identities. */
.opening .intro{left:50%;top:50%;width:min(88vw,900px);transform:translate(-50%,-50%);text-align:center}
.opening .intro h1{font-size:clamp(42px,6.4vw,88px);line-height:1.08;letter-spacing:-.035em;margin:16px 0}
.opening .intro .purpose{margin:20px auto 16px}
.selection-heading{text-align:center}
.immersive .selection-heading{left:50%;top:50%;width:min(88vw,900px);text-align:center;transform:translate(-50%,calc(-50% + (1 - var(--selection,0))*15px))}
.immersive .selection-heading h2{font-size:clamp(40px,6vw,80px);line-height:1.1;letter-spacing:-.03em;margin:14px 0 20px}
.immersive .project-title{font-size:clamp(40px,6.5vw,92px);line-height:1.08;font-weight:500;white-space:normal;text-wrap:balance;max-width:82vw;-webkit-text-stroke:0;paint-order:normal}
.immersive .project-context{top:calc(50% + 86px)}
@media(max-width:699px){
 .opening .intro{width:calc(100% - 48px)}
 .opening .intro h1{font-size:clamp(38px,10vw,54px)}
 .immersive .selection-heading{width:calc(100% - 48px)}
 .immersive .selection-heading h2{font-size:clamp(36px,9vw,48px)}
 .immersive .project-title{font-size:clamp(38px,11vw,52px);max-width:80vw}
 .immersive .project-context{top:calc(50% + 78px)}
}
@media(max-height:560px){
 .opening .intro h1{font-size:clamp(34px,5vw,58px);margin:8px 0}
 .opening .intro .purpose{margin:10px auto}
 .immersive .selection-heading h2{font-size:clamp(32px,5vw,56px)}
 .immersive .project-title{font-size:clamp(30px,5vw,58px)}
 .immersive .project-context{top:calc(50% + 58px)}
}
