@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/big-shoulders-display-latin-800-normal-DDUD9Xuh.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-800-normal-CI0lhnTM.woff)format("woff")}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/big-shoulders-display-latin-900-normal-CW8trzgu.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-900-normal-DMT-1gsg.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff)format("woff")}:root{--bg:#05070b;--ink:#f1ede4;--ink-2:#b9bec8;--ink-3:#828a98;--surface:#090c12b8;--surface-2:#11151ee0;--surface-solid:#0b0e14;--line:#ffffff1a;--line-2:#fff3;--accent:#ffd23f;--accent-ink:#15110a;--accent-soft:#ffd23f24;--shadow:0 24px 60px #0000008c;--glass-blur:blur(18px) saturate(150%);--radius:18px;--stop:var(--accent);--stop-ink:var(--accent);--font-display:"Big Shoulders Display", "Oswald", "Arial Narrow", sans-serif;--font-body:"Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ease:cubic-bezier(.2, .8, .2, 1);--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=day]{--bg:#dbe6ef;--ink:#0c1420;--ink-2:#364353;--ink-3:#536071;--surface:#f7fafdc7;--surface-2:#ffffffeb;--surface-solid:#f5f8fb;--line:#0c14201a;--line-2:#0c142033;--accent:#08679a;--accent-ink:#fff;--accent-soft:#08679a1f;--shadow:0 22px 50px #12264233;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:400 15px/1.55 var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .8s var(--ease), color .6s var(--ease);overflow:hidden}button{font:inherit;color:inherit}a{color:inherit}kbd{min-width:1.7em;height:1.7em;font:600 .72rem/1 var(--font-mono);color:var(--ink);background:var(--line);border:1px solid var(--line-2);border-bottom-width:2px;border-radius:6px;place-items:center;margin:0 .12em;padding:0 .4em;display:inline-grid}.i{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.15em;height:1.15em}.bat{fill:currentColor;flex:none;width:2.2em;height:auto}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}.skip-link{z-index:100;background:var(--accent);color:var(--accent-ink);border-radius:10px;padding:10px 14px;font-weight:600;text-decoration:none;transition:top .2s;position:fixed;top:-60px;left:12px}.skip-link:focus{top:12px}.btn{letter-spacing:.01em;cursor:pointer;min-height:40px;transition:transform .18s var(--ease), background-color .2s, border-color .2s, box-shadow .2s, opacity .2s;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.55em;padding:0 16px;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)scale(.98)}.btn[disabled]{opacity:.45;cursor:progress}.btn-lg{min-height:52px;padding:0 24px;font-size:1rem}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 8px 28px -8px var(--accent)}.btn-primary:hover:not([disabled]){box-shadow:0 10px 36px -6px var(--accent);transform:translateY(-1px)}.btn-ghost{background:var(--line);border-color:var(--line-2);color:var(--ink)}.btn-ghost:hover:not([disabled]){background:var(--line-2)}.icon-btn{border:1px solid var(--line-2);background:var(--line);cursor:pointer;border-radius:50%;place-items:center;width:38px;height:38px;transition:background-color .2s,transform .2s;display:grid}.icon-btn:hover{background:var(--line-2);transform:rotate(90deg)}.textlink{color:var(--ink-2);cursor:pointer;border:0;border-bottom:1px solid var(--line-2);background:0 0;align-items:center;gap:.4em;padding:4px 0;transition:color .2s,border-color .2s,gap .2s;display:inline-flex}.textlink:hover{color:var(--ink);border-color:var(--ink);gap:.6em}.glass{background:var(--surface);border:1px solid var(--line);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow)}.kicker{font:600 .72rem/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--stop-ink);margin:0}#app{position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}#stage,#stage canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}#stage canvas{cursor:grab}#stage canvas:active{cursor:grabbing}#labels{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}#labels>div{pointer-events:none}#labels.off{visibility:hidden}.fade{opacity:0;pointer-events:none;z-index:60;background:#000;transition:opacity .35s;position:fixed;top:0;bottom:0;left:0;right:0}.fade.on{opacity:1}.lm-label{--c:#fff;pointer-events:auto;border:1px solid color-mix(in srgb, var(--c) 45%, transparent);background:color-mix(in srgb, var(--surface-solid) 70%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);font:600 12px/1 var(--font-body);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 8px;transition:opacity .3s,background-color .2s,border-color .2s;display:inline-flex;transform:translateY(-50%);box-shadow:0 6px 20px #00000040}.lm-label:hover{background:var(--surface-2);border-color:var(--c)}.lm-label .dot{background:var(--c);width:10px;height:10px;box-shadow:0 0 10px var(--c);border-radius:50%}.lm-label .dist{font:500 10.5px/1 var(--font-mono);color:var(--ink-3)}.lm-label.visited .dot{border:2px solid var(--c);box-shadow:none;background:0 0}.lm-label.far{padding:5px}.lm-label.occluded{opacity:.45!important}.lm-label.far .name,.lm-label.far .dist{display:none}.intro{z-index:30;padding:max(24px, var(--safe-t)) clamp(20px, 6vw, 96px) calc(24px + var(--safe-b));background:radial-gradient(120% 90% at 0% 50%, color-mix(in srgb, var(--bg) 88%, transparent) 0%, color-mix(in srgb, var(--bg) 55%, transparent) 45%, transparent 75%), linear-gradient(to top, color-mix(in srgb, var(--bg) 70%, transparent), transparent 40%);transition:opacity .9s var(--ease), visibility 0s;flex-direction:column;justify-content:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.intro.out{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .9s var(--ease), visibility 0s linear .9s}.intro-card{max-width:720px;animation:rise 1s var(--ease) both}.intro-badge{border:1px solid var(--line-2);background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);font:600 .72rem/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);border-radius:999px;align-items:center;gap:10px;margin:0 0 18px;padding:6px 14px 6px 10px;display:inline-flex}.intro-badge .bat{width:1.9em;color:var(--accent)}.intro h1{font:900 clamp(3rem, 7.2vw, 6.6rem) / .86 var(--font-display);text-transform:uppercase;letter-spacing:.005em;text-wrap:balance;margin:0}.intro h1 span{display:block}.intro h1 span:last-child{color:var(--accent);text-shadow:0 0 40px color-mix(in srgb, var(--accent) 35%, transparent)}.intro-role{font:600 clamp(.95rem, 1.6vw, 1.1rem) / 1.4 var(--font-body);color:var(--ink);margin:18px 0 6px}.intro-tagline{color:var(--ink-2);margin:0 0 26px;font-size:clamp(1rem,1.8vw,1.2rem)}.intro-prefs{flex-wrap:wrap;align-items:stretch;gap:10px;margin-bottom:22px;display:flex}.mode-switch{border:1px solid var(--line-2);background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:16px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:inline-grid}.mode-switch button{cursor:pointer;text-align:left;color:var(--ink-2);background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;padding:9px 16px 9px 12px;transition:background-color .3s,color .3s;display:flex}.mode-switch button .i{width:1.4em;height:1.4em}.mode-switch button span{flex-direction:column;line-height:1.1;display:flex}.mode-switch b{font:800 1.15rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.04em}.mode-switch small{color:var(--ink-3);font-size:.72rem}.mode-switch [aria-checked=true]{background:var(--accent);color:var(--accent-ink)}.mode-switch [aria-checked=true] small{color:inherit}.intro-actions{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.sound-toggle{border:1px solid var(--line-2);background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--ink-2);cursor:pointer;text-align:left;border-radius:16px;align-items:center;gap:10px;padding:0 18px 0 14px;transition:background-color .3s,color .3s,border-color .3s;display:inline-flex}.sound-toggle:hover{border-color:var(--accent);color:var(--ink)}.sound-toggle .i{width:1.4em;height:1.4em}.sound-toggle span{flex-direction:column;line-height:1.1;display:flex}.sound-toggle b{font:800 1.15rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.04em}.sound-toggle small{color:var(--ink-3);font-size:.72rem}.sound-toggle[aria-pressed=true]{border-color:var(--accent);color:var(--ink)}.sound-toggle[aria-pressed=true] .i{color:var(--accent)}.intro-social{top:max(16px, var(--safe-t));animation:rise 1s var(--ease) both;gap:8px;display:flex;position:absolute;right:16px}.social-link{border:1px solid var(--line-2);background:var(--surface);height:38px;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--ink-2);transition:color .2s, border-color .2s, transform .2s var(--ease);border-radius:999px;align-items:center;gap:8px;padding:0 15px 0 12px;font-size:.88rem;font-weight:600;text-decoration:none;display:inline-flex}.social-link:hover{color:var(--ink);border-color:var(--accent);transform:translateY(-1px)}.social-link .i{width:1.15em;height:1.15em}.intro-alt{margin:0 0 22px}.classic-cta{border:1px solid color-mix(in srgb, var(--accent) 60%, transparent);background:color-mix(in srgb, var(--accent) 14%, var(--surface));min-height:46px;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--ink);cursor:pointer;transition:background-color .2s, border-color .2s, gap .2s, transform .2s var(--ease);border-radius:999px;align-items:center;gap:10px;padding:0 18px 0 14px;font-size:.95rem;display:inline-flex}.classic-cta b{color:var(--accent);font-weight:700}.classic-cta>.i:first-child{width:1.3em;height:1.3em;color:var(--accent)}.classic-cta:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 24%, var(--surface));gap:14px;transform:translateY(-1px)}.intro-loading{font:500 .75rem/1 var(--font-mono);color:var(--ink-3);letter-spacing:.06em;align-items:center;gap:12px;transition:opacity .5s;display:flex}.intro-loading .bar{background:var(--line-2);border-radius:3px;width:140px;height:3px;overflow:hidden}.intro-loading .bar i{background:var(--accent);width:0%;height:100%;transition:width .3s;display:block}.intro.ready .intro-loading{opacity:0}.intro-keys{left:50%;bottom:calc(22px + var(--safe-b));color:var(--ink-2);white-space:nowrap;gap:18px;margin:0;font-size:.78rem;display:flex;position:absolute;transform:translate(-50%)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}}.hud{z-index:20;pointer-events:none;animation:fadein .8s var(--ease) both;position:absolute;top:0;bottom:0;left:0;right:0}.hud>*{pointer-events:auto}@keyframes fadein{0%{opacity:0}}.hud-brand{top:max(16px, var(--safe-t));cursor:pointer;text-align:left;transition:transform .2s var(--ease);border-radius:999px;align-items:center;gap:10px;padding:8px 16px 8px 12px;display:flex;position:absolute;left:16px}.hud-brand:hover{transform:translateY(-1px)}.hud-brand .bat{color:var(--accent)}.hud-brand span{flex-direction:column;line-height:1.15;display:flex}.hud-brand b{font:800 1.1rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.06em}.hud-brand small{color:var(--ink-3);font-size:.7rem}.hud-brand .b-back{opacity:0;width:0;color:var(--accent);transition:width .25s var(--ease), margin .25s var(--ease), opacity .2s;margin-right:-10px;display:grid;overflow:hidden}.hud-brand .b-home{color:var(--accent);font-weight:600;display:none}.hud-brand:hover .b-back{opacity:1;width:1.15em;margin-right:0}.hud-brand:focus-visible .b-back{opacity:1;width:1.15em;margin-right:0}.hud-brand:hover .b-sub{display:none}.hud-brand:focus-visible .b-sub{display:none}.hud-brand:hover .b-home{display:block}.hud-brand:focus-visible .b-home{display:block}.hud.leaving{opacity:0;pointer-events:none;transition:opacity .45s var(--ease)}.hud-tools{top:max(16px, var(--safe-t));border-radius:999px;gap:2px;padding:5px;display:flex;position:absolute;right:16px}.tool{height:38px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-size:.82rem;font-weight:600;transition:background-color .2s,color .2s;display:inline-flex}.tool:hover,.tool[aria-pressed=true],.tool.active{background:var(--line);color:var(--ink)}.tool#btnHelp{padding:0 10px}.js-theme .i:first-of-type,[data-theme=day] .js-theme .i:nth-of-type(2){display:none}[data-theme=day] .js-theme .i:first-of-type{display:block}.js-sound .i:nth-of-type(2),.js-sound[aria-pressed=true] .i:first-of-type{display:none}.js-sound[aria-pressed=true] .i:nth-of-type(2){display:block}.tourbar,.autopilot{top:calc(max(16px, var(--safe-t)) + 118px);white-space:nowrap;animation:drop .4s var(--ease) both;border-radius:999px;align-items:center;gap:12px;padding:7px 7px 7px 16px;font-size:.84rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.tourbar{top:calc(max(16px, var(--safe-t)) + 64px);transition:left .55s var(--ease)}.tourbar[hidden]+.autopilot{top:calc(max(16px, var(--safe-t)) + 64px)}.keybar{left:50%;bottom:calc(18px + var(--safe-b));color:var(--ink-2);white-space:nowrap;pointer-events:none;transition:left .55s var(--ease), opacity .3s;border-radius:999px;gap:16px;margin:0;padding:8px 16px;font-size:.76rem;display:flex;position:absolute;transform:translate(-50%)}.keybar kbd{min-width:1.6em;height:1.6em;font-size:.68rem}@media (max-width:1240px){.keybar .kb-opt{display:none}}@media (max-width:980px){.keybar{display:none}}.has-touch .keybar{display:none}@media (min-width:721px){.panel-open .tourbar,.panel-open .autopilot,.panel-open .toast{left:calc(50vw - min(540px,44vw)/2 - 16px)}.panel-open .keybar{left:calc(118px + 50vw - min(540px,44vw)/2)}.panel-open .keybar .kb-opt{display:none}}@media (max-width:1200px){.panel-open .keybar{opacity:0}}@keyframes drop{0%{opacity:0;transform:translate(-50%,-8px)}}.tourbar .tb-label{font:600 .7rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.tb-steps{margin:0;padding:0;list-style:none;display:flex}.tourbar .tb-steps button{background:0 0;border:0;border-radius:6px;place-items:center;width:20px;height:28px;padding:0;display:grid;position:relative}.tourbar .tb-steps button.now{width:30px}.tb-steps i{background:var(--line-2);border-radius:4px;width:14px;height:4px;transition:background-color .2s,width .3s,height .2s}.tb-steps .done i{background:color-mix(in srgb, var(--accent) 55%, transparent)}.tb-steps .now i{background:var(--accent);width:24px}.tourbar .tb-steps button:hover{background:0 0}.tb-steps button:hover i{background:var(--ink-2);height:7px}.tb-steps button:focus-visible i{background:var(--ink-2);height:7px}.tb-steps .now:hover i{background:var(--accent)}.tb-steps button:after{content:attr(data-name);z-index:2;border:1px solid var(--line);background:var(--surface-2);box-shadow:var(--shadow);color:var(--ink);font:600 .74rem/1 var(--font-body);white-space:nowrap;opacity:0;pointer-events:none;border-radius:8px;padding:6px 10px;transition:opacity .15s,transform .15s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%,-4px)}.tb-steps button:hover:after{opacity:1;transform:translate(-50%)}.tb-steps button:focus-visible:after{opacity:1;transform:translate(-50%)}.tourbar .tb-nav{place-items:center;width:32px;padding:0;display:grid}.tourbar .tb-nav[disabled]{opacity:.35;cursor:default}.tb-count{font:600 .8rem/1 var(--font-mono)}.tourbar button,.autopilot button{border:1px solid var(--line-2);background:var(--line);cursor:pointer;border-radius:999px;height:32px;padding:0 12px;font-size:.78rem;font-weight:600}.tourbar button:hover,.autopilot button:hover{background:var(--line-2)}.autopilot .ap-dot{background:var(--stop);width:8px;height:8px;box-shadow:0 0 0 0 var(--stop);border-radius:50%;animation:1.6s infinite ping}@keyframes ping{70%{box-shadow:0 0 0 8px #0000}}.autopilot .ap-text b{color:var(--stop-ink)}.ap-dist{font:500 .75rem/1 var(--font-mono);color:var(--ink-3);margin-left:4px}.autopilot .ap-skip,.autopilot .ap-go{background:var(--accent);color:var(--accent-ink);border-color:#0000}.autopilot .ap-go,.autopilot.manual .ap-skip,.autopilot.manual .ap-stop{display:none}.autopilot.manual .ap-go{display:inline-block}.autopilot .ap-skip:hover{background:var(--accent);filter:brightness(1.08)}.minimap{left:16px;bottom:calc(16px + var(--safe-b));cursor:pointer;width:236px;height:236px;transition:transform .2s var(--ease);border-radius:50%;padding:0;position:absolute;overflow:hidden}.minimap:hover{transform:scale(1.03)}.minimap canvas{width:100%;height:100%;display:block}.mm-n{font:700 .62rem/1 var(--font-mono);color:var(--ink-3);position:absolute;top:6px;left:50%;transform:translate(-50%)}.speedo{right:16px;bottom:calc(16px + var(--safe-b));border-radius:50%;place-items:center;width:150px;height:150px;display:grid;position:absolute}.speedo-arc{width:calc(100% - 24px);height:calc(100% - 24px);position:absolute;top:12px;bottom:12px;left:12px;right:12px}.speedo-arc path{fill:none;stroke-width:7px;stroke-linecap:round}.speedo-arc .track{stroke:var(--line-2)}.speedo-arc .fill{stroke:var(--accent);stroke-dasharray:226;stroke-dashoffset:226px;filter:drop-shadow(0 0 6px color-mix(in srgb, var(--accent) 60%, transparent))}.speedo-read{flex-direction:column;align-items:center;margin-top:-6px;line-height:1;display:flex}.speedo .spd{font:800 2.4rem/1 var(--font-display);font-variant-numeric:tabular-nums}.speedo small{font:500 .62rem/1 var(--font-mono);color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase}.speedo .boost{flex-direction:column;align-items:center;gap:3px;display:flex;position:absolute;bottom:22px}.speedo .boost i{background:linear-gradient(90deg, #ff7a1a var(--b,100%), var(--line-2) 0);border-radius:3px;width:46px;height:3px;display:block}.speedo .boost span{font:600 .52rem/1 var(--font-mono);letter-spacing:.18em;color:var(--ink-3)}.prompt{left:50%;bottom:calc(66px + var(--safe-b));border-color:color-mix(in srgb, var(--stop) 55%, transparent);cursor:pointer;animation:drop-up .35s var(--ease) both;border-radius:999px;align-items:center;gap:12px;padding:8px 20px 8px 8px;display:flex;position:absolute;transform:translate(-50%)}@keyframes drop-up{0%{opacity:0;transform:translate(-50%,10px)}}.prompt .pr-key kbd{background:var(--stop);color:#0b0b0b;border:0;border-radius:50%;width:36px;height:36px;font-size:.9rem}.prompt .pr-text{flex-direction:column;align-items:flex-start;line-height:1.2;display:flex}.prompt small{font:600 .62rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.prompt b{font:800 1.25rem/1.1 var(--font-display);text-transform:uppercase;letter-spacing:.04em}.toast{left:50%;bottom:calc(132px + var(--safe-b));z-index:40;background:var(--surface-2);border:1px solid var(--line);max-width:min(520px,100vw - 32px);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);text-align:center;opacity:0;pointer-events:none;transition:opacity .35s, transform .35s var(--ease);border-radius:14px;padding:12px 18px;font-size:.9rem;position:absolute;transform:translate(-50%,10px)}.toast.show{opacity:1;transform:translate(-50%)}.toast kbd{font-size:.66rem}.toast.show a{pointer-events:auto}.touch{display:none}.has-touch .touch{height:0;display:block;position:absolute;top:auto;bottom:0;left:0;right:0}.joy{width:0;height:0;position:absolute;bottom:0;left:0}.joy-base,.joy-knob{pointer-events:none;opacity:0;border-radius:50%;transition:opacity .2s;position:fixed;transform:translate(-50%,-50%)}.joy-base{border:2px solid var(--line-2);background:color-mix(in srgb, var(--surface) 60%, transparent);width:120px;height:120px}.joy-knob{background:var(--accent);width:52px;height:52px;box-shadow:0 0 20px color-mix(in srgb, var(--accent) 50%, transparent)}.joy.on .joy-base,.joy.on .joy-knob{opacity:.9}.touch-btns{right:16px;bottom:calc(150px + var(--safe-b));flex-direction:column;gap:12px;display:flex;position:fixed}.tbtn{border:1px solid var(--line-2);background:var(--surface);width:74px;height:74px;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);font:700 .66rem/1 var(--font-mono);letter-spacing:.12em;color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%}.tbtn.on{background:var(--accent);color:var(--accent-ink)}.tbtn[data-touch=boost].on{background:#ff7a1a}.panel{z-index:25;top:calc(max(16px, var(--safe-t)) + 64px);background:var(--surface);border:1px solid var(--line);-webkit-backdrop-filter:blur(22px)saturate(150%);backdrop-filter:blur(22px)saturate(150%);width:min(540px,44vw);box-shadow:var(--shadow);transition:transform .55s var(--ease);border-radius:22px;display:flex;position:absolute;bottom:16px;right:16px;overflow:hidden;transform:translate(calc(100% + 32px))}.panel.open{transform:none}.panel:before{content:"";background:linear-gradient(90deg, var(--stop), color-mix(in srgb, var(--stop) 10%, transparent));height:3px;position:absolute;top:0;bottom:auto;left:0;right:0}.panel-inner{flex-direction:column;width:100%;min-height:0;display:flex}.panel-grab{display:none}.panel-head{border-bottom:1px solid var(--line);padding:30px 30px 18px;position:relative}.panel-photo{float:right;border:2px solid color-mix(in srgb, var(--stop) 60%, transparent);border-radius:20px;width:88px;height:88px;margin:0 46px 8px 16px;overflow:hidden;box-shadow:0 10px 30px #0000004d}.panel-photo img{object-fit:cover;transform-origin:51% 22%;width:100%;height:100%;display:block;transform:scale(1.8)}.panel-head h2{font:900 clamp(2rem, 3.3vw, 2.9rem) / .95 var(--font-display);text-transform:uppercase;letter-spacing:.01em;text-wrap:balance;outline:none;margin:8px 0 10px}.panel-head .lede{color:var(--ink-2);margin:0;font-size:.98rem}.panel-close{position:absolute;top:20px;right:20px}.panel-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;flex:1;min-height:0;padding:22px 30px 30px;overflow-y:auto}.panel-foot{padding:14px 18px calc(14px + var(--safe-b));border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface-2) 60%, transparent);justify-content:space-between;align-items:center;gap:10px;display:flex}.panel-foot .btn{max-width:44%;overflow:hidden}.panel-foot .btn span{text-overflow:ellipsis;overflow:hidden}.panel-count{font:600 .75rem/1 var(--font-mono);color:var(--ink-3)}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 22px;display:grid}.stats>div{background:color-mix(in srgb, var(--stop) 7%, transparent);border:1px solid color-mix(in srgb, var(--stop) 20%, transparent);border-radius:14px;flex-direction:column-reverse;justify-content:flex-end;padding:14px 14px 12px;display:flex}.stats dd{font:800 1.9rem/1 var(--font-display);color:var(--stop-ink);letter-spacing:.01em;margin:0 0 4px}.stats dt{color:var(--ink-2);font-size:.78rem;line-height:1.35}.entry{border-bottom:1px solid var(--line);margin-bottom:22px;padding:4px 0 22px}.entry:last-child{border-bottom:0;margin-bottom:0}.entry h3{letter-spacing:-.005em;margin:0;font-size:1.08rem;font-weight:700}.entry .org{color:var(--ink);margin:2px 0 0;font-weight:500}.entry .org span{color:var(--ink-2)}.entry .when{font:500 .74rem/1.3 var(--font-mono);color:var(--ink-3);letter-spacing:.02em;margin:6px 0 0}.entry .meta{color:var(--ink-2);margin:4px 0 0;font-size:.84rem;font-style:italic}.bullets{margin:14px 0 0;padding:0;list-style:none}.bullets li{color:var(--ink-2);margin-bottom:9px;padding-left:20px;position:relative}.bullets li:before{content:"";background:var(--stop-ink);border-radius:2px;width:8px;height:2px;position:absolute;top:.62em;left:2px}.bullets strong,.story strong,.list strong{color:var(--ink);font-weight:600}.tags{flex-wrap:wrap;gap:6px;margin:14px 0 0;padding:0;list-style:none;display:flex}.tags li{color:var(--ink-2);background:var(--line);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:.76rem;font-weight:500}.links{flex-wrap:wrap;gap:14px;margin-top:14px;display:flex}.link{color:var(--stop-ink);border-bottom:1px solid color-mix(in srgb, var(--stop-ink) 40%, transparent);align-items:center;gap:6px;font-size:.88rem;font-weight:600;text-decoration:none;display:inline-flex}.link .i{width:.95em;height:.95em}.sub{font:600 .7rem/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px}.story p{color:var(--ink-2);margin:0 0 14px}.story,.note,.list,.pubs,.chipgroups{margin:0 0 24px}.note{background:var(--line);border-left:3px solid var(--stop);border-radius:14px;padding:16px 18px}.note p{color:var(--ink-2);margin:0}.list ul{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--line);padding:12px 0}.list li:last-child{border-bottom:0}.li-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.li-head a{color:var(--ink);align-items:center;gap:6px;font-weight:600;text-decoration:none;display:inline-flex}.li-head a:hover{color:var(--stop-ink)}.li-head a .i{width:.9em}.li-meta{font:500 .72rem/1.3 var(--font-mono);color:var(--ink-3);text-align:right;flex:none}.list li p{color:var(--ink-2);margin:4px 0 0;font-size:.88rem}.pubs ol{counter-reset:pub;margin:0;padding:0;list-style:none}.pubs li{background:var(--line);counter-increment:pub;border-radius:14px;margin-bottom:10px;padding:14px 16px 14px 48px;position:relative}.pubs li:before{content:"[" counter(pub) "]";font:600 .8rem/1 var(--font-mono);color:var(--stop-ink);position:absolute;top:15px;left:14px}.pubs p{margin:0}.pub-title{font-weight:600}.pub-title a{text-decoration:none}.pub-title a:hover{color:var(--stop-ink)}.pub-title .i{vertical-align:-.1em;width:.9em}.pub-authors{color:var(--ink-2);font-size:.86rem;margin-top:4px!important}.pub-authors strong{color:var(--ink)}.pub-venue{color:var(--ink-3);font-size:.84rem;font-style:italic;margin-top:2px!important}.chipgroup{margin-bottom:18px}.chipgroup .tags{margin-top:0}.chipgroup .tags li{color:var(--ink);padding:6px 12px;font-size:.84rem}.contact{gap:10px;margin:0 0 22px;padding:0;list-style:none;display:grid}.contact a{background:var(--line);border:1px solid var(--line);transition:border-color .2s, background-color .2s, transform .2s var(--ease);border-radius:14px;align-items:center;gap:14px;padding:14px 16px;text-decoration:none;display:flex}.contact a:hover{border-color:var(--stop);transform:translate(3px)}.contact a>.i:first-child{width:1.5em;height:1.5em;color:var(--stop-ink)}.contact a span{flex-direction:column;flex:1;font-weight:600;display:flex}.contact small{font:500 .68rem/1.3 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.cta{flex-wrap:wrap;gap:10px;display:flex}.overlay{z-index:45;background:color-mix(in srgb, var(--bg) 55%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadein .3s var(--ease) both;place-items:center;padding:20px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.overlay-card{background:var(--surface-2);border:1px solid var(--line);width:min(980px,100%);max-height:calc(100dvh - 40px);box-shadow:var(--shadow);animation:rise .45s var(--ease) both;border-radius:24px;padding:26px;overflow:auto}.ov-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.ov-head h2{font:900 2.4rem/1 var(--font-display);text-transform:uppercase;margin:4px 0 2px}.ov-sub{color:var(--ink-2);margin:0}.map-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:22px;display:grid}#bigmap{aspect-ratio:1;border:1px solid var(--line);cursor:crosshair;border-radius:18px;width:100%;height:auto}.stoplist{gap:6px;margin:0;padding:0;list-style:none;display:grid}.stoplist button{--c:#fff;background:var(--line);text-align:left;cursor:pointer;width:100%;transition:border-color .2s, transform .2s var(--ease);border:1px solid #0000;border-radius:12px;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.stoplist button:hover{border-color:var(--c);transform:translate(3px)}.stoplist button:focus-visible{border-color:var(--c);transform:translate(3px)}.stoplist .n{width:28px;height:28px;font:700 .72rem/1 var(--font-mono);color:#0b0b0b;background:var(--c);border-radius:50%;place-items:center;display:grid}.stoplist .visited .n{color:var(--ink);border:2px solid var(--c);background:0 0}.stoplist b{font-size:.92rem;display:block}.stoplist small{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;display:block;overflow:hidden}.stoplist .go{font:500 .7rem/1 var(--font-mono);color:var(--ink-3)}.help-card{width:min(820px,100%)}.help-grid{grid-template-columns:1fr 1fr;gap:28px;display:grid}.help-grid h3{font:600 .72rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px}.help-grid p{color:var(--ink-2);margin:0 0 18px}.help-grid dl{gap:8px;margin:0;display:grid}.help-grid dl div{grid-template-columns:150px 1fr;align-items:center;display:grid}.help-grid dd{color:var(--ink-2);margin:0}.classic{display:none}.no-js .classic,.no-webgl .classic,.classic-open .classic{z-index:50;background:var(--bg);outline:none;display:block;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.no-webgl #app,.no-js #app,.no-webgl .js-enter-3d{display:none}.classic-inner{max-width:920px;margin:0 auto;padding:0 24px 80px}.c-top{z-index:2;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex;position:sticky;top:0}.c-brand{color:inherit;cursor:pointer;font:800 1.2rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.05em;background:0 0;border:0;align-items:center;gap:10px;padding:0;text-decoration:none;display:flex}.c-brand .bat{color:var(--accent)}.c-actions{gap:8px;display:flex}.c-actions .js-theme .i:first-of-type{display:none}[data-theme=day] .c-actions .js-theme .i:first-of-type{display:block}.c-hero{grid-template-columns:220px 1fr;align-items:center;gap:36px;padding:56px 0 40px;display:grid}.c-hero img{object-fit:cover;border:1px solid var(--line-2);border-radius:28px;width:220px;height:220px}.c-hero h1{font:900 clamp(2.6rem, 6vw, 4.4rem) / .9 var(--font-display);text-transform:uppercase;margin:8px 0}.c-headline{margin:0 0 6px;font-weight:600}.c-tagline{color:var(--ink-2);margin:0 0 20px;font-size:1.08rem}.c-nav{z-index:1;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);scrollbar-width:none;margin:0 -24px;padding:10px 24px;position:sticky;top:69px;overflow-x:auto}.c-nav ul{gap:6px;margin:0;padding:0;list-style:none;display:flex}.c-nav a{white-space:nowrap;color:var(--ink-2);background:var(--line);border-radius:999px;padding:7px 12px;font-size:.84rem;font-weight:600;text-decoration:none;display:block}.c-nav a:hover{color:var(--ink)}.c-section{border-bottom:1px solid var(--line);padding:56px 0 24px;scroll-margin-top:120px}.c-section .kicker .num{color:var(--ink-3);margin-right:10px}.c-section h2{font:900 clamp(2.2rem, 5vw, 3.4rem) / .95 var(--font-display);text-transform:uppercase;margin:10px 0 12px}.c-section .lede{max-width:68ch;color:var(--ink-2);margin:0 0 26px;font-size:1.08rem}.c-section .stats{grid-template-columns:repeat(4,minmax(0,1fr))}.c-section .contact{grid-template-columns:repeat(2,minmax(0,1fr))}.c-foot{color:var(--ink-3);padding:40px 0 0;font-size:.85rem}@media (max-width:900px){.tool span{display:none}.tool{padding:0 10px}.map-grid,.help-grid{grid-template-columns:1fr}#bigmap{max-width:420px;margin:0 auto}}@media (max-width:720px){body{font-size:14.5px}.hud-brand small{display:none!important}.hud-brand .b-back{opacity:1;width:1.1em;margin-right:0}.hud-brand{padding:8px 12px 8px 10px}.hud-brand b{font-size:.95rem}.hud-tools .tool#btnHelp{display:none}.intro{padding-bottom:calc(28px + var(--safe-b));background:linear-gradient(to top, color-mix(in srgb, var(--bg) 94%, transparent) 0%, color-mix(in srgb, var(--bg) 72%, transparent) 55%, transparent 90%);justify-content:flex-end}.intro-keys{display:none}.intro-actions .btn{flex:100%}.intro-prefs{flex-wrap:nowrap}.mode-switch{flex:1;display:grid}.sound-toggle{padding:0 15px}.sound-toggle span{display:none}.classic-cta{white-space:nowrap;justify-content:center;gap:8px;width:100%;padding:0 14px;font-size:.86rem}.panel{border-radius:24px 24px 0 0;width:100%;height:min(78dvh,720px);top:auto;bottom:0;left:0;right:0;transform:translateY(105%)}.panel-grab{background:var(--line-2);border-radius:5px;width:44px;height:5px;margin:10px auto 0;display:block}.panel-head{padding:14px 20px}.panel-close{top:14px;right:14px}.panel-photo{border-radius:16px;width:64px;height:64px;margin-right:40px}.panel-count{display:none}.panel-foot .btn{max-width:none}.panel-foot .panel-prev{flex:none;width:44px;padding:0}.panel-foot .panel-prev span{display:none}.panel-foot .panel-next{flex:1}.panel-body{padding:18px 20px 24px}.minimap{width:140px;height:140px;left:12px;top:calc(max(12px, var(--safe-t)) + 56px);bottom:auto}.hud-brand,.hud-tools{top:max(12px, var(--safe-t))}.hud-brand{left:12px}.hud-tools{right:12px}.speedo{width:104px;height:104px;right:12px;bottom:calc(12px + var(--safe-b))}.speedo .spd{font-size:1.7rem}.speedo .boost{bottom:12px}.touch-btns{bottom:calc(128px + var(--safe-b));right:12px}.tourbar{top:calc(max(12px, var(--safe-t)) + 52px);animation:none;left:auto;right:12px;transform:none}.tourbar .tb-label,.tourbar .tb-steps{display:none}.tourbar{gap:6px;padding:4px}.tourbar .tb-nav{width:30px;height:30px}.tourbar .tb-count{font-size:.74rem}.tourbar .tb-exit{padding:0 10px}.autopilot{top:calc(max(12px, var(--safe-t)) + 108px);white-space:normal;border-radius:18px;flex-wrap:wrap;gap:6px 8px;padding:10px 12px;animation:none;left:164px;right:12px;transform:none}.tourbar[hidden]+.autopilot{top:calc(max(12px, var(--safe-t)) + 56px)}.autopilot .ap-text{flex:100%}.autopilot .ap-prefix,.autopilot .ap-dist,.autopilot .ap-dot{display:none}.autopilot button{white-space:nowrap;flex:1;padding:0 8px;font-size:.74rem}.prompt{left:12px;right:auto;bottom:calc(14px + var(--safe-b));max-width:calc(100vw - 140px);animation:none;transform:none}.prompt b{font-size:1.05rem}.toast,.toast.show{left:12px;right:100px;bottom:calc(80px + var(--safe-b));max-width:none;transform:none}.c-hero{grid-template-columns:1fr;gap:20px;padding-top:32px}.c-hero img{border-radius:22px;width:120px;height:120px}.c-section .stats,.c-section .contact{grid-template-columns:repeat(2,minmax(0,1fr))}.c-actions .btn span{display:none}.c-actions .btn{padding:0 12px}.help-grid dl div{grid-template-columns:120px 1fr}.overlay-card{padding:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
