@font-face{font-family:Studio Narrow;src:url('assets/fonts/nimbus-sans-narrow.woff') format('woff'),url('assets/fonts/nimbus-sans-narrow.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
:root{--ink:#181a1b;--muted:#767a7d;--line:#d2d4d5;--narrow:'Studio Narrow','Arial Narrow',Arial,sans-serif}
*{box-sizing:border-box}html{color-scheme:light;scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font:15px/1.5 Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0;border-radius:0;background:transparent}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid #566c72;outline-offset:7px}a:hover,button:hover{color:#646a6e}button[hidden],[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:10;top:10px;left:20px;padding:12px 20px;background:var(--ink);color:white;transform:translateY(-200%)}.skip-link:focus{transform:none}
.header{max-width:1800px;margin:auto;padding:40px 4%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:157px}.wordmark{display:flex;flex-direction:column;width:max-content;font:400 30px/1.04 var(--narrow);letter-spacing:.23em}.faces,.secondary{display:flex;align-items:center;gap:44px;font:16px/1 var(--narrow);letter-spacing:.2em}.faces a{position:relative;padding:12px 0;color:var(--muted)}.faces a[aria-current]{color:var(--ink)}.faces a[aria-current]:after{content:'';height:1px;background:currentColor;position:absolute;bottom:1px;left:0;right:.2em}.secondary{justify-self:end;gap:40px;font-size:14px}.secondary a{padding-block:12px}main{max-width:1800px;margin:auto;padding:0 4%}.screen{aspect-ratio:2.75;position:relative;border:1px solid var(--line);overflow:hidden;background:#f7f8f8;isolation:isolate}.visual{position:absolute;inset:0;overflow:hidden;animation:reveal .6s ease both}.parasite-visual{background:#f9fafb}.specimen{display:block;width:100%;height:100%;object-fit:cover;transform:translate3d(var(--drift-x,0px),var(--drift-y,0px),0) scale(1.015);transition:transform 1.5s cubic-bezier(.2,.65,.2,1)}.screen-meta{position:absolute;z-index:2;inset:auto 20px 14px;display:flex;justify-content:space-between;font:11px/1 var(--narrow);letter-spacing:.15em;color:#656d70;pointer-events:none}.registration{position:absolute;width:7px;height:7px;z-index:2;pointer-events:none;border-color:#949a9d}.top-left{top:10px;left:10px;border-left:1px solid;border-top:1px solid}.bottom-right{bottom:10px;right:10px;border-right:1px solid;border-bottom:1px solid}.caption{text-align:center;padding:24px 0 26px;min-height:121px}.caption h2{font:400 clamp(26px,2.8vw,39px)/1.25 var(--narrow);letter-spacing:.28em;margin:0 0 6px;padding-left:.28em}.caption p{font:20px/1.3 var(--narrow);letter-spacing:.18em;color:var(--muted);margin:0;padding-left:.18em}.exhibition-controls{display:grid;grid-template-columns:1fr auto 1fr;gap:28px;align-items:end;padding:10px 2px 55px}.text-link{display:inline-flex;gap:14px;align-items:center;justify-content:space-between;width:max-content;max-width:100%;padding:11px 0 8px;border-bottom:1px solid #9ba0a2;font:14px/1.2 var(--narrow);letter-spacing:.17em;transition:color .2s,border-color .2s}.text-link:hover{border-color:var(--ink);color:var(--ink)}.text-link>span:last-child{font:18px/1 Arial;transition:transform .2s}.text-link:hover>span:last-child{transform:translate(2px,-2px)}.notes-action{justify-self:end}.project-tabs{display:flex;justify-content:center;align-items:center;gap:27px;padding-bottom:28px}.project-tabs button{position:relative;padding:12px 0;font:13px/1.2 var(--narrow);letter-spacing:.16em;white-space:nowrap;color:var(--muted)}.project-tabs button[aria-selected=true]{color:var(--ink)}.project-tabs button[aria-selected=true]:after{content:'';position:absolute;height:1px;background:currentColor;bottom:2px;left:0;right:.16em}.lab-footnote{border-top:1px solid #ebeded;padding:21px 0 27px;display:flex;justify-content:space-between;gap:20px;font:10px/1.4 var(--narrow);letter-spacing:.15em;color:#7b8083}
/* Each project retains the same quiet cinema frame. */
.ghost-visual{background:#151c1c;color:#d1ddce;display:grid;place-content:center;text-align:center}.visual-title{position:relative;z-index:1;margin:0;font:400 clamp(35px,6.5vw,100px)/.95 var(--narrow);letter-spacing:.2em;padding-left:.2em}.visual-caption{position:relative;z-index:1;font:11px/1.4 var(--narrow);letter-spacing:.26em;margin-top:25px}.signal-field{position:absolute;inset:0;background:linear-gradient(transparent 49.6%,#a3b99a0b 50%,transparent 50.4%),linear-gradient(90deg,transparent 49.6%,#a3b99a0b 50%,transparent 50.4%);background-size:65px 65px}.signal-field i{position:absolute;width:35%;aspect-ratio:1;border:1px solid #a3b99a28;border-radius:50%;left:32.5%;top:50%;transform:translateY(-50%)}.signal-field i:nth-child(2){width:55%;left:22.5%}.signal-field i:nth-child(3){width:78%;left:11%}.signal-field i:nth-child(4){width:100%;left:0}.signal-point{position:absolute;left:73%;top:28%;width:5px;height:5px;background:#b2c0a8;border-radius:50%;box-shadow:0 0 18px #a8bba488;animation:beacon 5s ease-in-out infinite}.screen[data-project=ghost-signal] .screen-meta,.screen[data-project=ghost-signal] .registration{color:#9dac9d}.npc-visual{background:#eeefec;display:flex;justify-content:center;align-items:center}.crowd{position:absolute;inset:15% 7%;display:grid;grid-template-columns:repeat(12,1fr);gap:16px;opacity:.45;align-content:space-around}.person{height:39px;position:relative;color:#b0b5b0}.person:before{content:'';position:absolute;width:11px;height:11px;border:1px solid currentColor;border-radius:50%;left:50%;transform:translateX(-50%)}.person:after{content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:1px;width:22px;height:22px;border:1px solid currentColor;border-radius:9px 9px 1px 1px}.person.anomaly{color:#505e53;transform:rotate(-10deg)}.npc-caption{position:relative;text-align:center;background:#eeefeced;padding:30px 45px}.npc-caption>span{display:block;font:55px/1 var(--narrow);letter-spacing:.2em;padding-left:.2em}.npc-caption small{display:block;margin-top:17px;font:11px/1.4 var(--narrow);letter-spacing:.2em}/* Native modal: focus trapping, Escape and return focus are handled by the browser. */
dialog{margin:0 0 0 auto;position:fixed;inset:0 0 0 auto;width:min(580px,100%);height:100dvh;max-width:100%;max-height:100dvh;border:0;padding:0;background:#fff;color:var(--ink);box-shadow:-15px 0 60px #0000000a}dialog[open]{display:flex;flex-direction:column;animation:slide-in .25s ease-out}dialog::backdrop{background:#27303338;backdrop-filter:blur(4px)}.notes-top{display:flex;justify-content:space-between;align-items:center;padding:29px 34px;border-bottom:1px solid #e8eaea;font:12px/1.3 var(--narrow);letter-spacing:.18em}.notes-top>span>span{color:#858a8c;margin-left:10px}.notes-top button{font:inherit;letter-spacing:inherit;padding:10px 0 10px 15px}.notes-top button span{font:20px/1 Arial;margin-left:13px}.notes-body{padding:42px 45px;overflow:auto;flex:1}.eyebrow{font:11px/1.5 var(--narrow);letter-spacing:.18em;color:var(--muted);margin:0 0 18px}.notes-body h2{font:36px/1.2 var(--narrow);font-weight:400;letter-spacing:.04em;margin:0 0 20px}.notes-body p:not(.eyebrow){font-size:14px;line-height:1.8;color:#646b6f}.notes-body .note-intro{font-size:19px!important;line-height:1.6!important;color:#34393b!important}.note-rule{height:1px;background:#e7e9e9;margin:30px 0}.notes-body h3{font:12px/1.4 var(--narrow);letter-spacing:.16em;font-weight:400;margin-top:26px}.notes-body .text-link{margin-top:24px}.social-link{display:block;width:max-content;margin-top:24px;font:12px/1.4 var(--narrow);letter-spacing:.13em;color:#5f6669}.notes-bottom{border-top:1px solid #e7e9e9;padding:20px 34px;display:flex;justify-content:space-between;gap:20px;font:10px/1.5 var(--narrow);letter-spacing:.13em;color:#646a6d}.fallback{padding:20px;border:1px solid var(--line)}.fallback a{text-decoration:underline}
@keyframes reveal{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes slide-in{from{transform:translateX(25px);opacity:0}to{transform:none;opacity:1}}@keyframes beacon{0%,100%{opacity:.35}50%{opacity:.9}}
@media(min-width:1600px){.header{padding-top:50px;padding-bottom:50px}.exhibition-controls{padding-bottom:70px}.caption{padding-top:30px;padding-bottom:35px}}
@media(max-width:1150px){.exhibition-controls{grid-template-columns:1fr 1fr;gap:20px}.project-tabs{grid-column:1/-1;grid-row:1;padding-bottom:10px}.primary-action{grid-column:1;grid-row:2}.notes-action{grid-column:2;grid-row:2}.header{padding-top:30px;padding-bottom:30px}.wordmark{font-size:26px}.faces{gap:30px}.secondary{gap:25px}.caption{min-height:110px}.screen{aspect-ratio:2.5}}
@media(max-width:600px){.header{padding:24px 22px 30px;grid-template-columns:1fr auto;row-gap:28px;min-height:0}.wordmark{font-size:24px;letter-spacing:.21em;grid-column:1;grid-row:1}.faces{font-size:15px;gap:24px;grid-column:2;grid-row:1;align-self:center}.secondary{grid-column:1/-1;justify-self:end;font-size:12px;gap:28px}.secondary a{padding:0}main{padding-inline:22px}.screen{aspect-ratio:1.6}.specimen{object-fit:contain;transform:translate3d(var(--drift-x,0px),var(--drift-y,0px),0)}.screen-meta{inset:auto 12px 12px;font-size:10px;letter-spacing:.12em}.caption{padding:24px 0 22px;min-height:109px}.caption h2{font-size:29px;letter-spacing:.22em}.caption p{font-size:17px;letter-spacing:.12em}.project-tabs{flex-wrap:wrap;gap:5px 24px;padding:0 0 22px;max-width:360px;justify-self:center}.project-tabs button{font-size:12px;letter-spacing:.12em}.exhibition-controls{padding:0 0 39px;gap:15px 12px}.text-link{font-size:11px;letter-spacing:.11em;gap:7px}.text-link>span:last-child{font-size:16px}.lab-footnote{font-size:9px;letter-spacing:.1em;padding-block:18px;gap:15px}.lab-footnote>span:first-child{max-width:155px}.lab-footnote>span:last-child{text-align:right;max-width:115px}.visual-title{font-size:42px}.visual-caption{font-size:10px;letter-spacing:.16em;margin-top:16px}.crowd{grid-template-columns:repeat(8,1fr);inset:10%;gap:6px}.person{height:24px}.person:before{width:7px;height:7px}.person:after{width:14px;height:14px;border-radius:5px 5px 1px 1px}.npc-caption{padding:14px 12px}.npc-caption>span{font-size:32px}.npc-caption small{font-size:8px;margin-top:10px}.notes-top{padding:19px 24px}.notes-body{padding:30px 25px}.notes-body h2{font-size:32px}.notes-bottom{padding:18px 24px;font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.specimen{transform:none!important}}
@media(max-width:600px){.header{column-gap:16px}.project-tabs button{min-height:44px}}
@media(max-width:360px){.wordmark{font-size:20px;letter-spacing:.19em}.faces{font-size:14px;gap:20px}.caption h2{font-size:26px}}

.lab-preview-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;background:#fff}.lab-preview-toggle{position:absolute;z-index:3;top:16px;right:16px;background:#ffffffd9;padding:8px 10px;font:11px/1 var(--narrow);letter-spacing:.12em}
/* Compact shared identity, keeping the approved narrow font. */
.header{min-height:100px;padding-top:22px;padding-bottom:22px}.wordmark{font-size:20px;line-height:1.06;letter-spacing:.2em}.faces{font-size:13px;gap:34px}.secondary{font-size:12px;gap:32px}.caption h2{font-size:27px}.caption p{font-size:17px}
@media(max-width:600px){.header{min-height:0;padding:20px 22px 24px;row-gap:20px}.wordmark{font-size:18px}.faces{font-size:12px;gap:23px}.secondary{font-size:11px;gap:26px}.caption h2{font-size:24px}.caption p{font-size:15px}}
@media(max-width:360px){.wordmark{font-size:16px}.faces{font-size:12px}}

/* A quieter wordmark, with a hairline between the two studio sections. */
.header .wordmark{font-size:18px}.header .faces{--face-gap:34px;gap:var(--face-gap)}.header .faces a+a:before{content:'';position:absolute;left:calc(var(--face-gap) / -2);top:50%;width:1px;height:12px;transform:translateY(-50%);background:currentColor;opacity:.32;pointer-events:none}
@media(max-width:600px){.header .wordmark{font-size:16px}.header .faces{--face-gap:23px}}
@media(max-width:360px){.header .wordmark{font-size:15px}}

/* Drawn arrows: the ↗ and ▶ characters are emoji-capable and render as blue emoji on iOS. */
.arrow{display:inline-block;width:max(.72em,9px);height:max(.72em,9px);fill:none;stroke:currentColor;stroke-width:1.1px;stroke-linecap:butt;stroke-linejoin:miter;vertical-align:-.04em;overflow:visible}.arrow path{vector-effect:non-scaling-stroke}.play-icon{display:block;width:.9em;height:.9em;fill:currentColor}
