/* The illustrated object is the target; no rectangular hotspot or paper card. */
.station-pan{position:absolute;inset:0;overflow:hidden}.station-canvas{width:100%;height:100%;background:url(assets/station.webp) center/contain no-repeat}.room-targets{display:block;width:100%;height:100%;overflow:visible}.object-hit{cursor:pointer;outline:none!important}.object-pixels{pointer-events:none;opacity:0;transition:opacity .28s,filter .28s;filter:brightness(1.4) saturate(1.15)}.object-target{fill:transparent;stroke:none;pointer-events:all}.object-edge{fill:none;stroke:#ffe0a1;stroke-width:2;opacity:0;pointer-events:none;transition:opacity .28s;filter:drop-shadow(0 0 5px #ffd48c)}.object-group:has(.object-hit:hover) .object-pixels,.object-group:has(.object-hit:focus-visible) .object-pixels{opacity:1}.object-group:has(.object-hit:hover) .object-edge{opacity:.45}.object-group:has(.object-hit:focus-visible) .object-edge{opacity:1;stroke-width:4}.object-caption{position:absolute;bottom:13%;left:0;right:0;margin:0;text-align:center;font:600 25px Deco,serif;text-shadow:0 2px 12px black;pointer-events:none}.pan-hint{display:none}.station-heading{z-index:1;pointer-events:none;top:19%;width:39vw}.station-heading h2{font-size:clamp(34px,3.4vw,53px)}body[data-view=station] .scene.station{background-size:contain;background-repeat:no-repeat;filter:none;transform:none}body[data-view=station] .caustics{z-index:1}.station-pan:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#00100c30,transparent 35%)}
.reveal-world{position:fixed;inset:0;pointer-events:none}.reveal-photo{position:absolute;inset:0;background:center/cover no-repeat;opacity:0;transform:scale(1.025);transition:opacity 1s,transform 2.5s}.reveal-photo.shown{opacity:1;transform:scale(1)}.reveal-world:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#020a08ef 0%,#020b08a6 25%,#020b0830 60%,#020b0822),linear-gradient(0deg,#020807ee,transparent 65%,#02080780)}
body[data-view=stories] .scene.station,body[data-view=districts] .scene.station,body[data-view=plasmids] .scene.station{filter:brightness(.4);transform:scale(1.08)}
.room-open #discovery-view{max-width:none;margin:0;padding:0;min-height:calc(100dvh - 100px)}.room-open .return{position:absolute;left:4vw;top:104px;z-index:8;font-size:11px}.room-open #discovery-content{min-height:calc(100dvh - 100px)}.room-reveal{min-height:calc(100dvh - 100px)}
.relic{position:absolute;left:4vw;bottom:18vh;width:43vw;filter:drop-shadow(0 20px 25px #000b);animation:object-arrives .85s cubic-bezier(.2,.7,.2,1) both;z-index:3}.relic-art{display:block;width:100%;height:auto;overflow:visible}.relic-art .object-pixels{opacity:1;filter:brightness(1.08)}.relic-art .object-edge{display:none}.relic-label{position:absolute;left:0;top:-42px;font-size:9px;letter-spacing:.2em;color:#d9c391;text-transform:uppercase}.reveal-copy{position:absolute;right:6vw;bottom:16vh;width:37vw;max-width:590px;z-index:4;text-shadow:0 2px 18px #000;animation:copy-arrives .7s .2s both}.reveal-copy h2{font-size:clamp(40px,4.8vw,76px);margin:15px 0 20px}.reveal-copy p{font-size:13px;line-height:1.9;max-width:43ch;color:#eee5d3}.reveal-copy .eyebrow{font-size:9px;color:#e0c88e}.reveal-copy small{display:block;font-size:9px;color:#bfbbaa;margin-top:22px;letter-spacing:.08em}.reveal-count{font-size:10px;letter-spacing:.2em;color:#d8bc79}.tuner-on-radio{position:absolute;left:40%;top:31%;width:47%;height:25%;display:flex;align-items:center;cursor:ew-resize}.tuner-on-radio input{width:100%;height:44px;appearance:none;background:transparent;cursor:ew-resize;accent-color:#8f2d16}.tuner-on-radio input::-webkit-slider-runnable-track{height:3px;background:#60431c55}.tuner-on-radio input::-webkit-slider-thumb{appearance:none;width:4px;height:40px;background:#9b3017;box-shadow:0 0 5px #ffdca8;margin-top:-19px}.tuner-on-radio input::-moz-range-thumb{width:4px;height:35px;border:0;border-radius:0;background:#9b3017}.signal{position:absolute;top:30%;left:40%;width:45%;height:27%;border-radius:10px;box-shadow:0 0 30px #ffc57033,inset 0 0 24px #ffc57022;pointer-events:none}.relic-hint{position:absolute;top:calc(100% + 20px);width:100%;text-align:center;font-size:11px;color:#ddcfac}.radio-stations{display:flex;justify-content:center;gap:20px;margin-top:18px;position:absolute;top:100%;width:100%}.radio-stations button{font-size:11px;border-bottom:1px solid transparent;padding:0 2px}.radio-stations button[aria-pressed=true]{border-color:#d7b573;color:#ffe7af}
.map-pin{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:flex;align-items:center;gap:7px;padding:5px 10px;font-size:10px;white-space:nowrap;text-shadow:0 2px 5px #000;background:#03120b99;border-radius:2px}.map-pin:before{content:'';width:8px;height:8px;border-radius:50%;border:1px solid #e9cb80;background:#0b2018;box-shadow:0 0 0 5px #dfbd6e15}.map-pin[aria-pressed=true]:before{background:#ffe39c;box-shadow:0 0 20px #ffdb7e,0 0 0 6px #dfbd6e22}.map-pin[aria-pressed=true]{color:#ffe3a3}.map-traces{position:absolute;left:11%;top:25%;width:78%;height:60%;pointer-events:none;overflow:visible}.map-traces path{fill:none;stroke:#f8cd7b;stroke-width:1.3;stroke-dasharray:600;stroke-dashoffset:600;animation:trace-route 1.3s .2s both;filter:drop-shadow(0 0 4px #ffcc7c)}
.power-hit{position:absolute;top:30%;height:56%;width:20%;left:var(--left);padding:0;border-radius:20px;isolation:isolate}.power-hit:before{content:'';position:absolute;inset:10% 0 8%;border-radius:16px;box-shadow:inset 0 0 30px var(--power),0 0 24px var(--power);mix-blend-mode:screen;opacity:0;transition:opacity .35s}.power-hit:hover:before{opacity:.4}.power-hit[aria-pressed=true]:before{opacity:.65;animation:bottle-breathe 3s ease-in-out infinite alternate}.power-hit span{position:absolute;top:calc(125% + 10px);left:50%;transform:translateX(-50%);white-space:nowrap;font-size:10px;color:#ddd3b8}.power-hit[aria-pressed=true] span{color:var(--power)}.plasmids-relic{width:32vw;left:9vw}.districts-relic{width:min(35vw,490px);left:7vw;bottom:12vh}.stories-relic{bottom:23vh}.room-open .response-light{z-index:2}.room-open.responding .response-light{animation:response 1.5s ease-out}.room-open[data-view=stories] .reveal-photo{transition:opacity .55s,transform 2.5s}.room-open[data-view=stories] .reveal-world:before{content:'';position:absolute;inset:0;z-index:2;opacity:.05;background:repeating-linear-gradient(0deg,transparent 0 3px,#edd5a2 3px 4px);pointer-events:none}
.projection{position:relative;width:78vw;margin:45px auto 100px;animation:projector-on .8s ease-out both}.projection .trailer{display:block;width:100%;max-height:68dvh;box-shadow:0 0 80px #cce4d01c}.projection .cinema-heading{align-items:center}.projection h2{font-size:30px}.projection .note{max-width:80ch}.projector-mini{position:fixed;right:0;bottom:6vh;width:16vw;pointer-events:none;opacity:.85;filter:drop-shadow(0 0 15px #000)}.projector-mini:before{content:'';position:absolute;right:25%;bottom:20%;width:70vw;height:60vh;transform-origin:right bottom;clip-path:polygon(100% 95%,0 0,0 100%);background:linear-gradient(270deg,#fff1b41a,transparent);z-index:-1;animation:beam 2s infinite alternate}.projector-mini .object-pixels{opacity:1;filter:none}
@keyframes object-arrives{from{opacity:0;transform:translateY(40px) scale(.94)}to{opacity:1;transform:none}}@keyframes copy-arrives{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes trace-route{to{stroke-dashoffset:0}}@keyframes bottle-breathe{to{opacity:.25}}@keyframes projector-on{from{opacity:0;clip-path:inset(49% 0)}to{opacity:1;clip-path:inset(0)}}@keyframes beam{to{opacity:.6}}
@media(max-width:700px){.station-pan{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x}.station-canvas{width:177.684dvh;min-width:100vw;background-size:cover}.room-targets{width:100%;height:100%}.station-heading{position:absolute;top:18%;left:7vw;width:85vw}.station-heading h2{font-size:39px}.station-heading .station-help{max-width:25ch}.object-caption{bottom:18%;font-size:23px}.pan-hint{display:block;position:absolute;bottom:10%;width:100%;font-size:10px;text-align:center;pointer-events:none;color:#e7d8b1}.station-canvas .object-edge{opacity:.18;stroke-width:2}.room-open .return{top:88px;left:6vw}.room-open #discovery-content,.room-reveal{min-height:calc(100dvh - 85px)}.reveal-world:after{background:linear-gradient(0deg,#020a08f2 0%,#020a0899 35%,#020a0810 65%,#020a0888)}.reveal-photo{background-position:65% center}.reveal-copy{position:relative;right:auto;bottom:auto;width:auto;max-width:none;margin:0 7vw;padding-top:48dvh;padding-bottom:100px}.reveal-copy h2{font-size:43px;margin:10px 0 15px}.reveal-copy p{font-size:12px;line-height:1.75}.reveal-copy small{margin-top:15px}.relic{left:8vw;top:155px;bottom:auto;width:70vw;max-width:350px}.stories-relic{top:185px;width:82vw;left:7vw}.districts-relic{width:52vw;max-width:230px;left:24vw;top:140px}.plasmids-relic{width:53vw;max-width:230px;left:23vw;top:145px}.relic-label{top:-32px;font-size:8px}.radio-stations{gap:14px;margin-top:8px}.radio-stations button{font-size:10px}.relic-hint{font-size:10px}.map-pin{font-size:8px;padding:2px 4px;min-height:44px;gap:5px}.map-pin:before{width:6px;height:6px}.power-hit span{font-size:9px;top:calc(125% + 2px)}.reveal-count{font-size:9px}.projection{width:88vw;margin:45px auto 100px}.projection .cinema-heading h2{font-size:29px}.projector-mini{width:26vw;bottom:7vh;opacity:.5}.projection .note{font-size:10px}.projection .trailer{min-height:180px}.tuner-on-radio input::-webkit-slider-thumb{height:28px;margin-top:-12px}}
@media(max-height:650px) and (min-width:701px){.reveal-copy{bottom:14vh}.reveal-copy h2{font-size:43px}.districts-relic{width:28vw;left:10vw;bottom:13vh}.plasmids-relic{width:27vw}.relic-label{display:none}.stories-relic{bottom:23vh}.reveal-copy p{font-size:12px}.projection{margin-top:10px}.projection .trailer{max-height:57vh}}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#station-view{user-select:none;-webkit-user-select:none}
@media(max-width:700px){
 .room-reveal{display:flex;flex-direction:column;padding-top:85px;min-height:0}
 .room-reveal .relic{position:relative;top:auto;bottom:auto;left:auto;right:auto;margin:0 auto 65px}
 .room-reveal .relic-label{top:-23px}
 .room-reveal .plasmids-relic{width:66vw;max-width:280px}
 .room-reveal .districts-relic{width:66vw;max-width:280px}
 .room-reveal .reveal-copy{padding-top:0}
 .power-hit span{font-size:9px}
 .map-pin{font-size:10px}
}
