@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#eef1f3;--muted:#a8b3bd;--accent:#fa7947;--paper:#f7f8f8;--line:#ffffff21;--font:'DM Sans','Segoe UI',sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#161d23;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--accent);outline-offset:4px}svg{display:block}button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}#app,#viewport{position:fixed;inset:0}#viewport canvas{width:100%;height:100%;display:block;outline-offset:-5px;touch-action:none}
.scene-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(13,19,25,.94),rgba(13,19,25,.72) 24%,rgba(13,19,25,.12) 48%,transparent 70%),linear-gradient(0deg,rgba(13,19,25,.85),transparent 27%,transparent 83%,rgba(13,19,25,.65))}.exploring .scene-shade{background:linear-gradient(90deg,rgba(13,19,25,.50),transparent 48%),linear-gradient(0deg,rgba(13,19,25,.75),transparent 23%,transparent 85%,rgba(13,19,25,.55))}
.topbar{position:absolute;top:0;left:0;right:0;height:98px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;z-index:12;border-bottom:1px solid #ffffff0e}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);font-family:Manrope,var(--font);font-weight:750;font-size:27px;letter-spacing:-1.3px;line-height:1}.brand-symbol{height:33px;width:33px;color:var(--accent)}.brand-3d{font-weight:400}.brand small{display:block;font-family:var(--font);font-size:7px;letter-spacing:2.3px;font-weight:500;margin-top:9px;color:#bac3ca}.header-center{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:1.8px;color:#c3ccd4}.live-dot{width:5px;height:5px;border-radius:50%;background:#a4c2ba;box-shadow:0 0 0 4px #a4c2ba0d}.header-actions{display:flex;align-items:center;gap:21px}.text-button{background:none;border:0;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:550;padding:7px 0}.text-button:hover{color:var(--accent)}.icon-button{height:38px;width:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#ffffff08}.icon-button:hover{background:#ffffff17}
.intro{position:absolute;z-index:3;top:clamp(142px,20vh,220px);left:42px;transition:opacity .3s,transform .4s;pointer-events:none}.intro button{pointer-events:auto}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.7px;line-height:1.5}.intro .eyebrow{display:flex;align-items:center;gap:10px;color:#c4cbd1}.short-line{width:23px;height:2px;background:var(--accent)}h1{font-family:Manrope,var(--font);font-size:clamp(42px,4.2vw,70px);font-weight:500;line-height:1.13;letter-spacing:-3px;margin:25px 0}h1 span{color:var(--accent)}.intro p{font-size:15px;line-height:1.8;color:#bec7cf;margin:0 0 28px}.primary-button{padding:15px 20px;background:var(--accent);color:#191e22;border:0;border-radius:5px;font-size:13px;font-weight:700;display:inline-flex;gap:28px;align-items:center;transition:background .2s,transform .2s}.primary-button:hover{background:#ff986b;transform:translateY(-2px)}.primary-button>span{font-size:21px;line-height:1}.intro-note{font-size:10px;color:#9daab5;margin-top:15px}.room-label{position:absolute;top:130px;right:42px;display:flex;align-items:flex-end;flex-direction:column;gap:8px;pointer-events:none}.room-label span{font-size:8px;letter-spacing:1.6px;color:var(--muted)}.room-label strong{font-family:Manrope,var(--font);font-weight:500;font-size:16px;letter-spacing:-.3px}.room-label .room-line{width:38px;height:1px;background:#a8b3bd70;margin-top:4px}.exhibit-caption{position:absolute;left:42px;bottom:148px;display:flex;gap:16px;align-items:center;pointer-events:none}.exhibit-number{font-size:11px;letter-spacing:1px;border-right:1px solid #ffffff30;padding:9px 16px 9px 0;color:var(--accent)}.exhibit-caption h2{font-size:16px;font-weight:550;letter-spacing:-.2px;margin:0 0 5px}.exhibit-caption p{font-size:11px;color:var(--muted);margin:0}.proximity-hint{position:absolute;right:42px;bottom:155px;display:flex;gap:10px;align-items:center;font-size:11px;color:#bec7cf;pointer-events:none}.hint-ring{width:19px;height:19px;border:1px solid #899aa8;border-radius:50%;position:relative}.hint-ring:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:var(--accent);inset:6px}
.bottom-ui{position:absolute;bottom:24px;left:42px;right:42px;z-index:10}.simulation-bar{min-height:76px;display:flex;align-items:center;gap:18px;padding:10px;background:rgba(24,32,40,.92);border:1px solid #a8bccc30;border-radius:9px;box-shadow:0 12px 40px #0002;backdrop-filter:blur(22px)}.simulation-button{border:0;border-radius:5px;padding:0 26px;min-width:156px;height:52px;display:flex;align-items:center;justify-content:center;gap:11px;background:var(--accent);color:#1b2024;font-size:13px;font-weight:700}.simulation-button:hover{background:#ff9466}.simulation-button svg{width:16px;height:16px}.simulation-state{display:flex;align-items:center;gap:10px;min-width:200px}.simulation-state>div{display:flex;flex-direction:column;gap:6px}.simulation-state strong{font-size:12px;font-weight:550}.simulation-state span:not(.state-dot){font-size:10px;color:#a3afba}.state-dot{width:6px;height:6px;background:#98a4ad;border-radius:50%;flex-shrink:0}.motion-enabled .state-dot{background:#8dd3bd;box-shadow:0 0 10px #8dd3bd55}.stop-button{display:none;flex-shrink:0;border-radius:5px;width:39px;height:39px}.simulation-started .stop-button{display:grid}.stop-button svg{width:17px;height:17px}.flow-legend{display:flex;gap:18px;align-items:center;margin:auto;font-size:10px;color:#d1d9de}.flow-legend>span{display:flex;gap:7px;align-items:center;white-space:nowrap}.flow-legend i{height:5px;width:17px;border-radius:5px;background:#6dccff}.flow-legend i.hot{background:#ff9964}.flow-legend small{font-size:9px;color:#8e9da8;border-left:1px solid #ffffff21;padding-left:16px}.tour-button{height:47px;padding:0 20px;border:1px solid #8295a544;background:#ffffff05;color:#edf2f5;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:10px;position:relative;overflow:hidden;font-size:12px;white-space:nowrap;margin-left:auto}.tour-button:hover{background:#ffffff0e}.tour-button svg{width:14px;height:14px;fill:currentColor;stroke:none}.tour-progress{position:absolute;bottom:0;left:0;height:2px;width:0;background:var(--accent)}.bottom-meta{display:flex;justify-content:space-between;padding-top:15px;color:#aab7c2;font-size:10px;letter-spacing:.2px}.bottom-meta>span{display:flex;align-items:center;gap:9px}.bottom-meta>span:last-child{font-size:8px;letter-spacing:1.2px}.bottom-meta svg{height:15px;width:14px;fill:none;stroke:currentColor;stroke-width:1.3}.bottom-meta i{font-style:normal;margin:0 2px}.tiny-cross{color:var(--accent);font-size:15px;margin-left:14px}
.hotspots{position:absolute;inset:0;pointer-events:none;z-index:4}.hotspot{position:absolute;left:0;top:0;display:flex;align-items:center;gap:7px;padding:5px 11px 5px 5px;border:1px solid #ffffff4a;border-radius:30px;background:rgba(25,34,42,.90);color:#f0f4f6;font-size:10px;font-weight:500;box-shadow:0 3px 18px #0003;pointer-events:auto;white-space:nowrap;will-change:transform;transition:background .2s}.hotspot span{height:24px;width:24px;display:grid;place-items:center;border:1px solid #9cafbd66;border-radius:50%;font-size:9px;color:#b6c4d0}.hotspot.active{background:#e9eef1;color:#26343e}.hotspot.active span{border-color:var(--accent);background:var(--accent);color:#202930}.connector{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.connector path{fill:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:3 4;opacity:.7}.connector circle{fill:var(--accent)}
.info-card{position:absolute;left:42px;top:126px;width:390px;z-index:6;background:rgba(248,250,250,.98);color:#263641;border:1px solid #fff;border-radius:9px;box-shadow:0 18px 70px #0004;animation:card-in .3s ease;max-height:calc(100dvh - 272px);display:flex;flex-direction:column;overflow:hidden}.card-top{display:flex;justify-content:space-between;align-items:center;padding:13px 17px 0;flex-shrink:0}.card-top .eyebrow{color:#b5512c;font-size:9px;letter-spacing:1.3px}.close-button{display:grid;place-items:center;width:29px;height:29px;border:0;background:transparent;border-radius:50%;color:#586b78}.close-button svg{width:16px;height:16px}.close-button:hover{background:#e3e9ed}.card-body{padding:0 20px 18px;overflow:auto;scrollbar-width:thin;scrollbar-color:#c1cbd1 transparent}.card-body h2{font-family:Manrope,var(--font);font-weight:600;font-size:27px;line-height:1.2;letter-spacing:-.9px;margin:8px 0 12px}.card-body>p{font-size:13px;line-height:1.65;color:#556875;margin:0}.function-label,.process{display:none}.card-body .function-copy{font-size:12px;line-height:1.6;color:#3b4f5d}.card-footer{padding:12px 20px;border-top:1px solid #26364120;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;background:#f5f7f8}.card-footer>span{font-size:10px;color:#77858e;font-variant-numeric:tabular-nums}.card-footer .text-button{font-size:11px;padding:3px 0}.exploring .intro{opacity:0;visibility:hidden;transform:translateX(-12px)}.exploring .proximity-hint{opacity:0}.exploring .exhibit-caption{visibility:hidden}
.loader,.error{position:absolute;inset:0;z-index:40;background:#171e25;display:grid;place-items:center;padding:24px}.loader{transition:opacity .7s,visibility .7s;background:radial-gradient(ellipse at 65% 25%,#2a3743,#171e25 65%)}.loader.done{opacity:0;visibility:hidden;pointer-events:none}.loader-inner{width:min(400px,100%)}.loader-mark{width:54px;height:54px;border:1px solid #77899950;border-radius:12px;display:grid;place-items:center;color:var(--accent);font-family:Manrope,var(--font);font-size:21px;font-weight:650;margin-bottom:42px}.loader-inner .eyebrow{font-size:9px;color:var(--muted)}.loader h2,.error h2{font-family:Manrope,var(--font);font-size:29px;font-weight:500;letter-spacing:-1px;margin:15px 0}.loader p,.error p{font-size:13px;line-height:1.6;color:var(--muted)}.load-track{height:2px;background:#4d5e6b;margin-top:30px;overflow:hidden}.load-track>span{display:block;height:100%;width:0;background:var(--accent);transition:width .3s}.load-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:12px}.error>div{max-width:450px}.error .primary-button{margin-top:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@keyframes card-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.intro,.info-card,.exhibit-caption{left:60px}.topbar{padding:0 60px}.bottom-ui{left:60px;right:60px}.info-card{width:410px;top:150px}.room-label,.proximity-hint{right:60px}}
@media(max-width:1050px){.topbar{padding:0 26px;height:86px}.header-center{display:none}.intro{left:26px;top:130px}h1{font-size:47px}.intro p{font-size:13px}.info-card{left:26px;top:110px;width:344px;max-height:calc(100dvh - 255px)}.room-label,.proximity-hint{right:26px}.bottom-ui,.exhibit-caption{left:26px}.bottom-ui{right:26px}.simulation-bar{gap:12px}.simulation-state{min-width:170px}.flow-legend{gap:10px}.flow-legend small{display:none}.simulation-button{min-width:135px;padding:0 18px}.tour-button{padding:0 15px}.bottom-meta>span:last-child{font-size:7px;letter-spacing:.6px}}
@media(max-width:700px){.topbar{height:75px;padding:0 19px}.brand{font-size:22px;gap:7px}.brand-symbol{width:28px;height:28px}.brand small{font-size:6px;letter-spacing:1.6px;margin-top:7px}.header-actions{gap:14px}.header-actions .text-button span{display:none}.icon-button{height:34px;width:34px}.intro{top:107px;left:23px}.intro .eyebrow{font-size:8px;letter-spacing:1px}h1{font-size:42px;letter-spacing:-1.9px;margin:17px 0;line-height:1.12}.intro p{font-size:12px;line-height:1.6;margin-bottom:18px}.primary-button{padding:12px 16px;font-size:12px}.intro-note{font-size:9px;margin-top:10px}.room-label,.proximity-hint{display:none}.scene-shade{background:linear-gradient(180deg,rgba(13,19,25,.87),rgba(13,19,25,.72) 29%,transparent 57%,rgba(13,19,25,.6) 85%)}.exploring .scene-shade{background:linear-gradient(0deg,rgba(13,19,25,.75),transparent 55%),linear-gradient(180deg,#0d1319a0,transparent 25%)}.bottom-ui{left:14px;right:14px;bottom:16px}.simulation-bar{min-height:61px;padding:7px;gap:10px;border-radius:7px}.simulation-button{min-width:102px;height:44px;padding:0 12px;font-size:11px;gap:7px}.simulation-button svg{width:14px;height:14px}.simulation-state{min-width:0;flex:1;gap:7px}.simulation-state strong{font-size:10px;line-height:1.4}.simulation-state span:not(.state-dot){display:none}.simulation-state>div{gap:0}.state-dot{height:4px;width:4px}.tour-button{width:38px;height:42px;padding:0;flex-shrink:0}.tour-button #tourLabel{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.stop-button{width:29px;height:36px;border:0;margin-left:-7px;margin-right:-4px}.flow-legend{position:absolute;right:5px;bottom:102px;gap:12px;padding:7px 10px;background:#17212bd9;border:1px solid #ffffff20;border-radius:4px;font-size:9px}.flow-legend small{display:none}.bottom-meta{justify-content:center;font-size:9px;padding-top:12px}.bottom-meta>span:last-child{display:none}.exhibit-caption{left:23px;bottom:126px;gap:11px}.exhibit-caption h2{font-size:13px}.exhibit-caption p{font-size:10px}.exhibit-number{padding-right:12px;font-size:9px}.simulation-started .exhibit-caption p{display:none}.simulation-started .exhibit-caption{bottom:175px}.hotspot{font-size:9px;padding:4px 8px 4px 4px;gap:5px}.hotspot span{width:21px;height:21px;font-size:8px}.info-card{left:14px;right:14px;top:auto;bottom:120px;width:auto;max-height:45dvh;border-radius:7px}.card-top{padding:8px 12px 0}.card-body{padding:0 15px 14px}.card-body h2{font-size:22px;margin:3px 0 9px}.card-body>#infoCopy{display:none}.card-body .function-copy{font-size:12px}.card-footer{padding:10px 15px}.connector{display:none}.exploring .flow-legend{bottom:97px;padding:4px 8px;font-size:8px}.exploring .exhibit-caption{display:none}}
@media(max-height:700px) and (min-width:701px){.intro{top:116px}h1{font-size:42px;margin:17px 0}.intro p{font-size:13px;margin-bottom:20px}.intro-note{display:none}.info-card{top:105px;max-height:calc(100dvh - 250px)}.card-body h2{font-size:23px}.card-body>p{font-size:12px}.exhibit-caption{bottom:135px}.bottom-ui{bottom:16px}.proximity-hint{bottom:140px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Quiet, tactile feedback during the explicitly started ignition sequence. */
.simulation-button,.tour-button,.icon-button,.card-next,.card-arrow{transition:background .2s,box-shadow .25s,border-color .2s}
.simulation-state>div{flex:1}
.runup-track{width:100%;height:2px;max-width:170px;background:#ffffff13;border-radius:2px;overflow:hidden;opacity:0;transition:opacity .3s}
.runup-track i{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#dfe6e9,#fa7947);border-radius:inherit}
.simulation-started .runup-track{opacity:1}
.igniting .simulation-button{box-shadow:0 0 0 4px #fa79471a,0 0 24px #fa79472b}
.igniting .state-dot{background:#ffb477;box-shadow:0 0 12px #fa79475c}
.hotspot span{transition:background .2s,border-color .2s,color .2s}
.flow-legend i.cold{background:linear-gradient(90deg,#d2e3e700,#b5d4dd);height:3px;width:24px}
@media(max-width:700px){.simulation-state>div{gap:5px}.runup-track{max-width:125px}}

.hotspot:hover{border-color:#fa7947a0}

