:root{--font-sans:var(--font-body), system-ui, -apple-system, "Segoe UI", sans-serif;--font-head:var(--font-display), var(--font-sans);--font-code:var(--font-mono), ui-monospace, monospace;--brand:#085da9;--brand-2:#5fb4ff;--glass:#060c16a8;--glass-2:#0a1424cc;--line:#a0c8ff24;--muted:#dce8f8a8}*{box-sizing:border-box}html,body{color:#eef4fc;height:100%;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#000;margin:0;overflow:hidden}.app{touch-action:none;user-select:none;position:fixed;inset:0}#c{width:100%;height:100%;display:block;position:absolute;inset:0}button{font:inherit;color:inherit;cursor:pointer}svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}[hidden]{display:none!important}.clean .hud,.clean .labels{display:none}.labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.label{pointer-events:auto;letter-spacing:.02em;color:#e1ecfad1;text-shadow:0 1px 4px #000,0 0 10px #000;white-space:nowrap;will-change:transform;background:0 0;border:0;border-radius:999px;padding:2px 8px;font-size:.74rem;font-weight:600;position:absolute;top:0;left:0}.label:after{content:"";background:#e1ecfa66;width:1px;height:6px;position:absolute;bottom:-7px;left:50%}.label:hover,.label.sel{color:#fff;text-shadow:none;background:#085da98c}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.top{top:max(10px, env(safe-area-inset-top));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;left:12px;right:12px}.top>*{pointer-events:auto}.brand{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);border-radius:14px;align-items:center;gap:10px;min-width:0;padding:7px 14px 7px 9px;display:flex}.brand div{min-width:0;line-height:1.2;display:grid}.brand b{font-family:var(--font-head);letter-spacing:-.01em;font-size:.92rem}.brand span:not(.mark){color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;overflow:hidden}.mark{background:radial-gradient(circle at 35% 35%, #9fd0ff, var(--brand) 55%, #021a33);border-radius:50%;flex:none;width:22px;height:22px;box-shadow:0 0 0 2px #5fb4ff40,0 0 18px #5fb4ff66}.tools{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.tool,.icon{border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(10px);border-radius:12px;align-items:center;gap:7px;height:38px;padding:0 13px;font-size:.82rem;font-weight:600;transition:background-color .2s,border-color .2s;display:inline-flex}.icon{justify-content:center;width:38px;padding:0}.tool:hover,.icon:hover{background:var(--glass-2);border-color:#a0c8ff4d}.icon.on{color:var(--brand-2);border-color:#5fb4ff73}.icon .i-off,.muted .icon .i-on{display:none}.muted .icon .i-off{display:block}.trip{top:max(64px, calc(env(safe-area-inset-top) + 56px));background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);border-radius:16px;gap:8px;width:min(460px,100% - 24px);padding:12px 16px 13px;display:grid;position:absolute;left:50%;translate:-50%}.trip-head{justify-content:space-between;gap:10px;font-size:.84rem;display:flex}.trip-head b{font-family:var(--font-head)}.trip-head span{color:var(--brand-2);text-align:right;font-weight:600}.bar{background:#ffffff1a;border-radius:9px;height:5px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--brand), var(--brand-2));border-radius:inherit;width:0;height:100%;display:block}.trip-stats{font-family:var(--font-code);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:.72rem;display:flex}.panel{top:max(64px, calc(env(safe-area-inset-top) + 56px));background:var(--glass-2);border:1px solid var(--line);backdrop-filter:blur(16px);user-select:text;border-radius:18px;flex-direction:column;width:min(360px,100% - 24px);display:flex;position:absolute;bottom:84px;right:12px;overflow:hidden;box-shadow:0 24px 60px -24px #000c}.panel>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:14px 14px 10px 18px;display:flex}.panel h2{font-family:var(--font-head);letter-spacing:-.02em;margin:0;font-size:1.15rem}.x{border:1px solid var(--line);background:0 0;border-radius:10px;flex:none;place-items:center;width:32px;height:32px;display:grid}.dest-list,.lesson-list{padding:6px 8px 12px;overflow:auto}.dest-list h3{font-family:var(--font-code);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:12px 10px 4px;font-size:.66rem;font-weight:500}.dest-row{text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:14px 1fr auto;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:.9rem;display:grid}.dest-row i{background:var(--c);width:12px;height:12px;box-shadow:0 0 10px var(--c);border-radius:50%}.dest-row small{font-family:var(--font-code);color:var(--muted);font-size:.7rem}.dest-row:hover{background:#ffffff0f}.dest-row.sel{background:#085da959}.dest-row.here small{color:var(--brand-2)}.info .title{align-items:center;gap:12px;display:flex}#i-dot{background:radial-gradient(circle at 35% 35%, #fff9, var(--c) 45%, #000c 100%);border-radius:50%;width:30px;height:30px}.info small{color:var(--muted);font-size:.72rem}.info>*{flex:none}.info{overflow:auto}.fact{color:#e6f0fce6;margin:0;padding:14px 18px 4px;font-size:.88rem;line-height:1.55}.stats{gap:6px;margin:0;padding:10px 18px;display:grid}.stats div{border-bottom:1px dashed #ffffff12;justify-content:space-between;gap:12px;padding-bottom:6px;font-size:.8rem;display:flex}.stats dt{color:var(--muted)}.stats dd{text-align:right;font-family:var(--font-code);margin:0;font-size:.76rem}.go{border:1px solid var(--line);background:#ffffff0a;border-radius:14px;margin:6px 12px 14px;padding:12px 6px 4px}.accel{justify-content:space-between;align-items:center;gap:10px;padding:0 10px;font-size:.8rem;font-weight:600;display:flex}.seg{border:1px solid var(--line);background:#00000059;border-radius:10px;padding:3px;display:flex}.seg button{font-family:var(--font-code);color:var(--muted);background:0 0;border:0;border-radius:7px;padding:5px 10px;font-size:.74rem}.seg button.on{background:var(--brand);color:#fff}.hint{color:var(--muted);margin:8px 10px 0;font-size:.72rem;line-height:1.45}.go[data-busy] .accel,.go[data-busy] .hint{display:none}.trip-est{padding:8px 10px 4px}.go-btns{gap:8px;padding:6px 6px 8px;display:grid}.btn{border:1px solid var(--line);background:#ffffff0f;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-size:.9rem;font-weight:600;transition:transform .2s,background-color .2s;display:inline-flex}.btn:hover:not(:disabled){background:#ffffff1a;transform:translateY(-1px)}.btn.primary{background:var(--brand);border-color:#0000;box-shadow:0 10px 30px -12px #085da9f2}.btn.primary:hover:not(:disabled){background:#1675c8}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:0 0}.btn.small{padding:7px 13px;font-size:.8rem}.btn.big{padding:14px 26px;font-size:1.02rem}.lesson-row{text-align:left;background:0 0;border:0;border-radius:12px;grid-template-columns:30px 1fr 16px;align-items:start;gap:10px;width:100%;padding:12px 10px;display:grid}.lesson-row:hover{background:#ffffff0f}.lesson-row>b{width:30px;height:30px;font-family:var(--font-code);background:#085da959;border-radius:9px;place-items:center;font-size:.8rem;display:grid}.lesson-row span{gap:3px;display:grid}.lesson-row strong{font-size:.9rem}.lesson-row small{color:var(--muted);font-size:.76rem;line-height:1.4}.lesson-row.done em:after{content:"✓";color:#6be39a;font-style:normal;font-weight:700}.lesson{background:var(--glass-2);border:1px solid var(--line);backdrop-filter:blur(16px);border-radius:18px;gap:10px;width:min(390px,100% - 24px);padding:14px 16px 12px;transition:border-color .3s,box-shadow .3s;display:grid;position:absolute;bottom:84px;left:12px;box-shadow:0 24px 60px -24px #000c}.lesson.ok{border-color:#6be39a99;box-shadow:0 0 0 1px #6be39a4d,0 24px 60px -24px #000c}.lesson header{justify-content:space-between;gap:10px;display:flex}.lesson header div{gap:2px;display:grid}.lesson small{font-family:var(--font-code);letter-spacing:.1em;text-transform:uppercase;color:var(--brand-2);font-size:.66rem}.lesson b{font-family:var(--font-head);font-size:1rem}.lesson p{margin:0;font-size:.9rem;line-height:1.55}.lesson footer{justify-content:space-between;align-items:center;gap:10px;display:flex}.dots{gap:5px;display:flex}.dots i{background:#ffffff2e;border-radius:50%;width:7px;height:7px}.dots i.ok{background:#6be39a}.dots i.cur{background:var(--brand-2)}.timebar{left:50%;bottom:max(12px, env(safe-area-inset-bottom));background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);border-radius:16px;align-items:center;gap:4px;max-width:calc(100% - 24px);padding:6px;display:flex;position:absolute;translate:-50%}.tb,.tb-now{background:0 0;border:0;border-radius:11px;place-items:center;min-width:40px;height:40px;display:grid}.tb:hover,.tb-now:hover{background:#ffffff14}.tb-now{color:var(--muted);padding:0 12px;font-size:.78rem;font-weight:600}.tb.play{background:#ffffff14}.tb.play .i-play,.tb.play.paused .i-pause{display:none}.tb.play.paused .i-play{display:block}.tinfo{min-width:0;padding:0 12px 0 8px;line-height:1.25;display:grid}.tinfo b{font-family:var(--font-head);font-size:.92rem}.tinfo b.limited:after{content:" ⤓";color:#ffb27c}.tinfo span{font-family:var(--font-code);color:var(--muted);white-space:nowrap;font-size:.7rem}.toast{background:var(--glass-2);backdrop-filter:blur(12px);text-align:center;opacity:0;pointer-events:none;border:1px solid #5fb4ff59;border-radius:14px;max-width:min(520px,100% - 32px);padding:12px 20px;font-size:.95rem;font-weight:500;transition:opacity .4s,transform .5s cubic-bezier(.16,1,.3,1);position:absolute;top:30%;left:50%;transform:translateY(-6px)}.toast.show{opacity:1;transform:none}.screen{opacity:0;visibility:hidden;background:radial-gradient(at 50% 60%,#00000026,#000000a6);place-items:center;padding:16px;transition:opacity .5s,visibility .5s;display:grid;position:absolute;inset:0}.screen.show{opacity:1;visibility:visible}.card{border:1px solid var(--line);backdrop-filter:blur(14px);text-align:center;background:#040a149e;border-radius:24px;gap:14px;width:min(100%,540px);max-height:100%;padding:clamp(22px,3.5vw,36px);display:grid;overflow:auto;box-shadow:0 30px 90px -30px #000000e6}.kicker{font-family:var(--font-code);letter-spacing:.14em;text-transform:uppercase;color:var(--brand-2);margin:0;font-size:.72rem}h1{font-family:var(--font-head);letter-spacing:-.04em;background:linear-gradient(100deg,#fff,#9fd0ff 50%,#5fb4ff);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.4rem,1.8rem + 3vw,3.8rem);line-height:1}.sub{color:#e6f0fce0;margin:0;font-size:.98rem;line-height:1.55}.actions{justify-items:center;gap:8px;display:grid}.actions .btn{width:min(100%,320px)}.help{color:var(--muted);margin:0;font-size:.78rem;line-height:1.45}.keys{text-align:left;grid-template-columns:repeat(2,1fr);gap:6px 14px;margin:0;padding:0;font-size:.78rem;list-style:none;display:grid}.keys li{background:#ffffff0a;border:1px solid #ffffff0f;border-radius:10px;gap:3px;padding:8px 10px;display:grid}.keys span{color:var(--muted)}kbd{font-family:var(--font-code);color:#fff;font-size:.72rem}.credits{color:#dce8f880;margin:0;font-size:.68rem;line-height:1.45}.vr-ui{opacity:.5;gap:6px;display:flex;position:absolute;top:6px;left:50%;translate:-50%}.vr-ui button{border:1px solid var(--line);background:#0009;border-radius:9px;place-items:center;min-width:34px;height:30px;padding:0 10px;font-size:.72rem;display:grid}.vr-ui button.on{color:var(--brand-2)}.loading{color:var(--muted);background:#000;place-content:center;justify-items:center;gap:14px;font-size:.9rem;transition:opacity .6s,visibility .6s;display:grid;position:absolute;inset:0}.loading.hide{opacity:0;visibility:hidden}.spinner{border:3px solid #ffffff26;border-top-color:var(--brand-2);border-radius:50%;width:30px;height:30px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}@media (width<=720px){.tool span{display:none}.tool{justify-content:center;width:38px;padding:0}.hide-sm{display:none}.panel{width:auto;max-height:62%;inset:auto 8px 76px}.lesson{width:auto;bottom:76px;left:8px;right:8px}.brand span:not(.mark){max-width:42vw}.tinfo span,.hud:has(.panel.side:not([hidden])) .lesson{display:none}}@media (height<=560px){.keys,.help{display:none}.card{gap:10px}.panel{top:58px;bottom:64px}}
