@font-face{font-family:Rajdhani;font-style:normal;font-weight:500 700;font-display:swap;src:url(./rajdhani-45swLdS9.woff2) format("woff2")}@font-face{font-family:Share Tech Mono;font-style:normal;font-weight:400;font-display:swap;src:url(./share-tech-mono-DZ_B2YQ6.woff2) format("woff2")}:root{--bg: #05080c;--panel: rgba(9, 14, 20, .82);--panel-solid: #0a1016;--line: rgba(126, 160, 190, .22);--line-strong: rgba(126, 160, 190, .42);--text: #c9d5e0;--dim: #7e8f9e;--amber: #ffb454;--cyan: #6fe6ff;--red: #ff5f3c;--green: #63ff9e;--font-display: "Rajdhani", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;--font-mono: "Share Tech Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;overscroll-behavior:none}body{touch-action:none}canvas#scene,body>canvas{position:fixed;inset:0;width:100%;height:100%;display:block;outline:none}#ui{position:fixed;inset:0;z-index:10;pointer-events:none;font-size:12px;letter-spacing:.04em}#ui button{font:inherit;color:inherit;cursor:pointer}#ui [data-action]{pointer-events:auto}.fx-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 42%,rgba(0,0,0,.55) 100%)}.fx-scanlines{position:absolute;inset:0;pointer-events:none;opacity:.05;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.5) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}.boot{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#0a1119,#04070a 70%);transition:opacity .6s ease .1s,visibility .6s;z-index:40}.boot.is-hidden{opacity:0;visibility:hidden}.boot__panel{width:min(520px,84vw);padding:28px 30px 22px;border:1px solid var(--line);background:linear-gradient(180deg,#0e151ee6,#060a0ee6);box-shadow:0 0 0 1px #0009,0 30px 80px #0009;position:relative}.boot__panel:before,.boot__panel:after{content:"";position:absolute;width:14px;height:14px;border:2px solid var(--amber)}.boot__panel:before{top:-1px;left:-1px;border-right:none;border-bottom:none}.boot__panel:after{bottom:-1px;right:-1px;border-left:none;border-top:none}.boot__brand{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:.3em;color:#e8f1f8}.boot__brand span{color:var(--amber)}.boot__status{margin-top:4px;color:var(--dim);font-size:11px;letter-spacing:.28em}.boot__bar{margin-top:20px;height:3px;background:#ffffff14;overflow:hidden}.boot__fill{height:100%;width:2%;background:linear-gradient(90deg,var(--cyan),var(--amber));transition:width .35s ease;box-shadow:0 0 12px #6fe6ff99}.boot__log{margin-top:14px;min-height:90px;color:#96afc3b3;font-size:10.5px;line-height:1.7}.title{position:absolute;left:clamp(24px,7vw,110px);top:50%;transform:translateY(-50%);max-width:min(620px,82vw);transition:opacity .7s ease,transform .7s ease,visibility .7s;z-index:30}.title.is-hidden{opacity:0;visibility:hidden;transform:translateY(-46%)}.title__kicker{color:var(--amber);font-size:11px;letter-spacing:.34em;margin-bottom:14px}.title__name{margin:0;font-family:var(--font-display);font-weight:700;font-size:clamp(54px,9vw,112px);line-height:.9;letter-spacing:.06em;color:#eef5fa;text-shadow:0 0 40px rgba(111,230,255,.18),0 6px 30px rgba(0,0,0,.8)}.title__name em{font-style:normal;color:var(--cyan)}.title__blurb{margin:18px 0 26px;max-width:480px;color:#c9d5e0b8;line-height:1.75;font-size:12.5px}.title__actions{display:flex;gap:12px;flex-wrap:wrap}.title__foot{margin-top:26px;color:var(--dim);font-size:10px;letter-spacing:.24em;display:flex;gap:10px;flex-wrap:wrap}.title__foot .dot{color:var(--amber)}.btn{pointer-events:auto;position:relative;display:inline-flex;align-items:center;gap:10px;padding:13px 22px;background:#101821d9;border:1px solid var(--line-strong);color:var(--text);font-family:var(--font-display);font-weight:600;font-size:14px;letter-spacing:.18em;transition:border-color .2s,background .2s,transform .15s,color .2s;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}.btn:hover{border-color:var(--cyan);color:#eaf6ff;background:#182634e6;transform:translateY(-1px)}.btn--primary{border-color:#ffb45499;color:#ffe6c4}.btn--primary:hover{border-color:var(--amber);color:#fff2df;box-shadow:0 0 24px #ffb4542e}.btn__key{font-family:var(--font-mono);font-size:10px;padding:2px 6px;border:1px solid var(--line);color:var(--dim)}.chip{pointer-events:auto;padding:7px 12px;background:#0a1016b8;border:1px solid var(--line);color:var(--dim);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;transition:all .18s ease}.chip:hover{color:var(--cyan);border-color:#6fe6ff80}.chip--icon{width:30px;text-align:center}.chip--wide{min-width:74px;text-align:center}.chip--big{padding:14px 18px;font-size:12px}.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;background:linear-gradient(180deg,#04070ad1,#04070a00);transition:opacity .4s ease}#ui.is-title .topbar{opacity:0;pointer-events:none}.topbar__left{display:flex;align-items:baseline;gap:14px}.topbar__brand{font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:.26em;color:#e8f1f8;white-space:nowrap}.topbar__mode{color:var(--amber);font-size:10.5px;letter-spacing:.28em;border-left:1px solid var(--line-strong);padding-left:14px;white-space:nowrap}.topbar__zone{color:var(--dim);font-size:10px;letter-spacing:.3em}.topbar__right{display:flex;gap:8px}.mode-tour .topbar__right .chip:first-child,.mode-free .topbar__right .chip:nth-child(2){color:var(--cyan);border-color:#6fe6ff80}.mode-inspect .topbar__right{opacity:.4;pointer-events:none}.crosshair{position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%);opacity:0;transition:opacity .25s ease}.mode-free .crosshair,.mode-inspect .crosshair{opacity:.85}.crosshair i{position:absolute;background:#dcebf5e6;box-shadow:0 0 6px #6fe6ffb3}.crosshair i:first-child{left:50%;top:6px;bottom:6px;width:1px;transform:translate(-50%)}.crosshair i:last-child{top:50%;left:6px;right:6px;height:1px;transform:translateY(-50%)}.hint{position:absolute;left:50%;top:calc(50% + 42px);transform:translate(-50%);padding:8px 16px;background:#060a0ec7;border:1px solid rgba(255,180,84,.5);color:#ffe6c4;font-size:11px;letter-spacing:.2em;opacity:0;transition:opacity .2s ease;white-space:nowrap}.hint.is-visible{opacity:1}.caption{position:absolute;left:clamp(24px,6vw,92px);bottom:120px;display:flex;gap:16px;align-items:flex-start;opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease;max-width:min(620px,84vw)}.caption.is-visible{opacity:1;transform:translateY(0)}.caption__idx{font-family:var(--font-display);font-size:40px;font-weight:700;line-height:1;color:#6fe6ff80}.caption__title{font-family:var(--font-display);font-weight:700;font-size:26px;letter-spacing:.16em;color:#eef5fa}.caption__sub{margin-top:4px;color:var(--dim);font-size:11.5px;letter-spacing:.12em}.tourbar{position:absolute;left:50%;bottom:54px;transform:translate(-50%);display:flex;flex-direction:column;gap:10px;align-items:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}.mode-tour .tourbar{opacity:1;visibility:visible}.tourbar__ticks{display:flex;gap:6px}.tourbar__tick{pointer-events:auto;width:46px;height:4px;border:none;padding:0;background:#c8dceb2e;position:relative;overflow:hidden}.tourbar__tick:after{content:"";position:absolute;inset:0;width:var(--tau, 0%);background:linear-gradient(90deg,var(--cyan),#cfeeff)}.tourbar__tick.is-done{background:#6fe6ff8c}.tourbar__tick.is-active{background:#c8dceb33;box-shadow:0 0 10px #6fe6ff59}.tourbar__controls{display:flex;gap:8px;align-items:center}.spec{position:absolute;right:20px;top:50%;transform:translateY(-50%) translate(16px);width:330px;max-height:82vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line-strong);box-shadow:0 20px 60px #0000008c,inset 0 0 40px #6fe6ff0a;opacity:0;visibility:hidden;transition:opacity .35s ease,transform .35s ease,visibility .35s;backdrop-filter:blur(6px)}.spec.is-visible{opacity:1;visibility:visible;transform:translateY(-50%) translate(0)}.spec__head{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 16px 12px;border-bottom:1px solid var(--line)}.spec__name{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:.12em;color:#eef5fa}.spec__class{margin-top:4px;color:var(--amber);font-size:10px;letter-spacing:.22em}.spec__plate{padding:12px 16px;overflow:auto}.spec__row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed rgba(126,160,190,.14);font-size:11px}.spec__k{color:var(--dim);letter-spacing:.16em}.spec__v{color:#dbe7f0;text-align:right}.spec__status{margin:0 16px;padding:8px 10px;border:1px solid rgba(99,255,158,.35);color:var(--green);font-size:10.5px;letter-spacing:.22em;text-align:center;animation:specPulse 2.4s ease-in-out infinite}@keyframes specPulse{0%,to{opacity:.7}50%{opacity:1}}.spec__actions{display:flex;gap:8px;padding:14px 16px 16px}.spec__actions .btn{flex:1;justify-content:center;padding:11px 12px;font-size:12px}.controls{position:absolute;left:50%;bottom:16px;transform:translate(-50%);color:#b4c8d88c;font-size:10px;letter-spacing:.2em;text-align:center;white-space:nowrap;transition:opacity .3s ease}#ui.is-title .controls{opacity:0}.mode-tour .controls{bottom:128px}.mode-tour .caption{bottom:178px}.touch{position:absolute;inset:auto 0 0;height:220px;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}.touch.is-visible{opacity:1;visibility:visible}.touch__stick{position:absolute;left:26px;bottom:26px;width:96px;height:96px;border:1px solid rgba(126,160,190,.35);border-radius:50%;background:radial-gradient(circle,#0a101680,#0a101626)}.touch__knob{position:absolute;left:50%;top:50%;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:1px solid rgba(111,230,255,.6);background:#6fe6ff24}.touch__buttons{position:absolute;right:20px;bottom:30px;display:flex;gap:10px}.toasts{position:absolute;left:50%;top:84px;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center}.toast{padding:9px 16px;background:#060a0ed9;border:1px solid var(--line-strong);color:#d8e4ee;font-size:11px;letter-spacing:.14em;opacity:0;transform:translateY(-6px);transition:opacity .35s ease,transform .35s ease}.toast.is-in{opacity:1;transform:translateY(0)}.menu{position:absolute;inset:0;display:grid;place-items:center;background:#030609b8;backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s;z-index:35}.menu.is-visible{opacity:1;visibility:visible}.menu__panel{width:min(680px,90vw);max-height:86vh;overflow:auto;padding:26px 28px;background:var(--panel-solid);border:1px solid var(--line-strong);box-shadow:0 30px 90px #000000b3;pointer-events:auto}.menu__title{font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:.24em;color:#eef5fa;margin-bottom:18px}.menu__modes{display:flex;gap:10px;margin-bottom:22px}.menu__help h3{font-family:var(--font-display);font-size:13px;letter-spacing:.24em;color:var(--amber);margin:18px 0 10px}.menu__help dl{display:grid;grid-template-columns:190px 1fr;gap:6px 18px;margin:0;font-size:11.5px}.menu__help dt{color:#dbe7f0;letter-spacing:.12em}.menu__help dd{margin:0;color:var(--dim)}.menu__help p{color:var(--dim);line-height:1.7;font-size:11.5px;max-width:56ch}.menu__panel>.btn{margin-top:22px}@media(max-width:780px){.topbar{padding:10px 12px}.topbar__zone{display:none}.topbar__mode{font-size:9px;padding-left:10px}.topbar__right .chip{min-height:40px;padding:10px 14px;font-size:11px}.topbar__right .chip--icon{width:42px}.touch__buttons .chip{min-height:46px}.tourbar__controls .chip{min-height:40px;padding:9px 12px}.title{inset:auto 20px 40px;transform:none}.title.is-hidden{transform:translateY(10px)}.title__blurb{display:none}.title__actions{flex-direction:column;align-items:stretch}.title__foot{margin-top:16px}.spec{inset:auto 10px 10px;width:auto;max-height:54vh;transform:translateY(12px)}.spec.is-visible{transform:translateY(0)}.caption{left:16px;right:16px;bottom:190px}.caption__idx{font-size:28px}.caption__title{font-size:19px}.controls{bottom:232px;font-size:9px;white-space:normal;padding:0 14px}.mode-tour .controls{bottom:150px}.tourbar{bottom:156px}.tourbar__tick{width:28px}.toasts{top:64px}.menu__help dl{grid-template-columns:1fr}.menu__help dt{margin-top:8px}}
