:root{--porcelain:#eef1f2;--graphite:#1b2428;--slate:#46565d;--doppler-b:#2e6fa7;--doppler-r:#c8452f;--signal:#eef1f2;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--panel-width:min(420px, 100vw)}html,body{background:var(--graphite);height:100%;color:var(--signal);font:300 16px/1.5 var(--font-sans);margin:0;overflow:hidden}[hidden]{display:none!important}#render-canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}#fallback-root{background:var(--graphite);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.fallback{max-width:68ch}.fallback section+section{border-top:1px solid var(--slate);margin-top:24px;padding-top:24px}.fallback h1{margin:0 0 8px;font-size:1.5625rem;font-weight:500}.fallback p{margin:0}.fallback .fallback-detail{font-family:var(--font-mono);color:var(--slate);margin-top:24px;font-size:.8rem}#hud-root{pointer-events:none;position:fixed;top:8px;left:8px}.debug-hud{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--slate);background:#1b2428b8;border-radius:2px;grid-template-columns:auto auto;gap:2px 12px;margin:0;padding:8px 10px;font-size:12px;display:grid}.debug-hud dt{opacity:.7}.debug-hud dd{font-family:var(--font-mono);text-align:right;margin:0}#loading-root{background:var(--graphite);place-content:center;justify-items:center;gap:12px;padding:24px;display:grid;position:fixed;inset:0}.loading-brand{letter-spacing:.02em;margin:0 0 8px;font-weight:500}.loading-track{background:var(--slate);width:min(320px,70vw);height:2px;overflow:hidden}.loading-bar{background:var(--doppler-b);transform-origin:0;height:100%;transform:scaleX(0)}.is-indeterminate .loading-bar{transform:scaleX(.25)}.loading-value{font-family:var(--font-mono);margin:0;font-size:.8rem}.loading-status{opacity:.7;min-height:1.5em;margin:0;font-size:.8rem}.loading-error{max-width:68ch}.loading-error h1{margin:0 0 8px;font-size:1.25rem;font-weight:500}.loading-error p{margin:0 0 12px}.loading-detail{font-family:var(--font-mono);color:var(--porcelain);opacity:.6;overflow-wrap:anywhere;font-size:.8rem}.button-primary{font:500 1rem/1 var(--font-sans);color:var(--signal);background:var(--doppler-b);cursor:pointer;border:0;border-radius:2px;padding:12px 20px}.button-primary:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.fade-overlay{opacity:0;pointer-events:none;z-index:20;background:#000;position:fixed;inset:0}#dock{padding:16px;padding-left:calc(16px + env(safe-area-inset-left));padding-right:calc(16px + env(safe-area-inset-right));padding-bottom:calc(16px + env(safe-area-inset-bottom));box-sizing:border-box;z-index:10;pointer-events:none;align-items:flex-end;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0}#dock>.dock-slot{pointer-events:auto}#dock-start{flex:none;align-items:center;gap:8px;display:flex}#dock-end{top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));flex-direction:row;align-items:flex-start;gap:8px;display:flex;position:fixed}#dock .button-primary{flex:none;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:inline-flex}#dock-start .button-primary{border-radius:50%}#dock .btn-label{display:none}#dock-center{flex:auto;justify-content:center;min-width:0;display:flex}#dock:after{content:"";flex:0 auto;width:96px}.mode-row{display:flex}.mode-actions{align-items:center;gap:8px;display:flex}.mode-note{box-sizing:border-box;width:min(300px,100vw - 32px);color:var(--porcelain);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--slate);background:#1b2428d1;border-radius:2px;margin:0;padding:10px 12px;font-size:.8125rem;display:none;position:absolute;top:calc(100% + 8px);left:0}.mode-row.is-open>.mode-note{display:block}@media (hover:hover){.mode-row.has-note:hover>.mode-note,.mode-row.has-note:focus-within>.mode-note{display:block}}.btn-icon{flex:none;width:22px;height:22px}.xr-button:focus-visible{outline:2px solid var(--signal);outline-offset:2px}body.is-panel-open .language-toggle{transform:translateX(calc(-1 * var(--panel-width)))}.button-primary[aria-disabled=true]{border:1px solid var(--slate);color:var(--slate);background:0 0}.button-primary[aria-disabled=true]:hover{color:var(--porcelain);border-color:var(--porcelain)}body.is-touring #dock,body.is-inspecting #dock{display:none}@media (max-width:600px){#dock{padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom));gap:8px}body.is-panel-open #dock{display:none}}.waypoint-bar{scrollbar-width:none;scroll-snap-type:x proximity;touch-action:pan-x;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--slate);z-index:10;background:#1b2428b8;border-radius:2px;gap:1px;min-width:0;max-width:100%;padding:1px;display:flex;overflow-x:auto}.waypoint-bar::-webkit-scrollbar{display:none}.waypoint-bar button{scroll-snap-align:center;white-space:nowrap;font:300 .875rem/1 var(--font-sans);color:var(--signal);cursor:pointer;background:0 0;border:0;flex:none;padding:10px 14px}.waypoint-bar button:hover{background:#eef1f214}.waypoint-bar button.is-active{background:var(--doppler-b);color:var(--signal)}.waypoint-bar button:focus-visible{outline:2px solid var(--signal);outline-offset:-2px}.controls-tip{text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--slate);z-index:10;background:#1b2428d1;border-radius:2px;max-width:min(68ch,100vw - 32px);margin:0;padding:10px 14px;font-size:.875rem;transition:opacity .4s linear;position:fixed;bottom:72px;left:50%;transform:translate(-50%)}.controls-tip.is-hidden{opacity:0}.panel-backdrop{z-index:15;background:#1b242866;position:fixed;inset:0}.panel{width:var(--panel-width);box-sizing:border-box;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:1px solid var(--slate);z-index:16;background:#1b2428f0;height:100%;padding:24px 24px 32px;transition:transform .22s ease-out;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%)}.panel.is-open{transform:translate(0)}@media (min-width:601px) and (max-width:900px){:root{--panel-width:min(420px, 50vw)}}@media (max-height:500px){#dock{padding:10px;padding-left:calc(10px + env(safe-area-inset-left));padding-right:calc(10px + env(safe-area-inset-right));padding-bottom:calc(10px + env(safe-area-inset-bottom));gap:8px}#dock .waypoint-bar button{padding:9px 14px;font-size:.875rem}.mode-note{padding:8px 10px}.tour-bar{bottom:calc(10px + env(safe-area-inset-bottom));left:calc(10px + env(safe-area-inset-left))}:root{--panel-width:min(360px, 45vw)}.panel{padding:16px 16px 20px}}@media (max-width:600px) and (min-height:501px){:root{--panel-width:0px}.panel{box-sizing:border-box;width:100%;height:auto;max-height:55dvh;padding:16px 16px calc(20px + env(safe-area-inset-bottom));border-left:0;border-top:1px solid var(--slate);top:auto;bottom:0;left:0;transform:translateY(100%)}.panel.is-open{transform:translateY(0)}body.is-touring .panel{bottom:var(--tour-bar-space,72px);max-height:calc(55dvh - var(--tour-bar-space,72px))}.panel-title{margin:0 32px 8px 0;font-size:1.25rem}.panel-body{margin-bottom:16px}}.panel:focus{outline:none}.panel-close{font:300 1.5rem/1 var(--font-sans);color:var(--signal);cursor:pointer;background:0 0;border:0;position:absolute;top:12px;right:16px}.panel-close:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.panel-title{max-width:24ch;margin:8px 0 12px;font-size:1.5625rem;font-weight:500}.panel-body{max-width:42ch;color:var(--porcelain);margin:0 0 24px}.panel-specs{grid-template-columns:1fr auto;gap:0;margin:0;display:grid}.panel-specs dt,.panel-specs dd{border-top:1px solid var(--slate);margin:0;padding:10px 0;font-size:.875rem}.panel-specs dd{font-family:var(--font-mono);text-align:right}.language-toggle{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--slate);z-index:17;background:#1b2428b8;border-radius:2px;gap:1px;padding:1px;transition:transform .22s ease-out;display:flex;position:fixed;top:8px;right:8px}.language-toggle button{font:500 .75rem/1 var(--font-mono);letter-spacing:.04em;color:var(--porcelain);cursor:pointer;background:0 0;border:0;padding:8px 10px}.language-toggle button.is-active{background:var(--doppler-b);color:var(--signal)}.language-toggle button:focus-visible{outline:2px solid var(--signal);outline-offset:-2px}.button-secondary{font:500 1rem/1 var(--font-sans);color:var(--signal);border:1px solid var(--slate);cursor:pointer;background:0 0;border-radius:2px;padding:12px 20px}.ar-overlay{padding:24px 16px calc(24px + env(safe-area-inset-bottom));touch-action:none;z-index:30;flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}.ar-hint{text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1b2428d1;border-radius:2px;align-self:center;margin:0;padding:12px 16px}.ar-size{font-family:var(--font-mono);background:#1b2428d1;border-radius:2px;align-self:center;margin:0 0 12px;padding:8px 12px;font-size:.875rem}.ar-buttons{justify-content:center;gap:8px;display:flex}.inspect-ui{z-index:12;align-items:center;gap:12px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.inspect-hint{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--slate);background:#1b2428d1;border-radius:2px;margin:0;padding:10px 12px;font-size:.8125rem}.tour-bar{left:calc(16px + env(safe-area-inset-left));bottom:calc(16px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--slate);z-index:17;background:#1b2428d1;border-radius:2px;align-items:center;gap:8px;padding:6px;display:flex;position:fixed}.tour-counter{font-family:var(--font-mono);padding:0 8px;font-size:.875rem}.attract-overlay{pointer-events:none;z-index:9;justify-items:center;gap:4px;display:grid;position:fixed;inset:auto 0 72px}.attract-brand{letter-spacing:.02em;text-shadow:0 1px 12px #1b242899;margin:0;font-size:2.441rem;font-weight:600}.attract-hint{text-shadow:0 1px 8px #1b242899;margin:0;font-size:1rem}.qr-panel{background:var(--graphite);z-index:40;place-content:center;justify-items:center;gap:16px;padding:24px;display:grid;position:fixed;inset:0}.qr-code{background:var(--porcelain);border-radius:2px;width:min(60vmin,420px);padding:16px}.qr-code svg{width:100%;height:auto;display:block}.qr-url{font-family:var(--font-mono);margin:0;font-size:1.25rem}.qr-instruction{text-align:center;max-width:44ch;margin:0}.help-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--slate);z-index:35;background:#1b2428f0;border-radius:2px;min-width:min(360px,100vw - 32px);padding:20px 24px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.help-panel h2{margin:0 0 12px;font-size:1.25rem;font-weight:500}.help-panel dl{grid-template-columns:auto 1fr;gap:0 20px;margin:0;display:grid}.help-panel dt,.help-panel dd{border-top:1px solid var(--slate);margin:0;padding:8px 0}.help-panel dt{font-family:var(--font-mono)}
