@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--app-height:100dvh;--bg:#04070f;--surface:#080e1cad;--surface-strong:#0a111ed1;--surface-soft:#ffffff0a;--line:#89a8ff2e;--line-strong:#89a8ff57;--text:#edf3ff;--muted:#edf3ffad;--accent:#9ed8ff;--accent-strong:#7df3d9;--warning:#ffbb7c;--shadow:0 28px 80px #0000006b;font-family:IBM Plex Sans,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-height:var(--app-height);color:var(--text);background:radial-gradient(circle at top,#7fa4ff1f,#0000 28%),radial-gradient(circle at 16% 18%,#4c92ff24,#0000 24%),radial-gradient(circle at 82% 16%,#76ffe414,#0000 20%),linear-gradient(#03050b,#04070f 44%,#02040a);overflow:hidden}body:before,body:after{content:"";pointer-events:none;position:fixed;inset:0}body:before{opacity:.32;background:linear-gradient(90deg,#0000,#ffffff05,#0000) 0 0/100% 100%,linear-gradient(#0000,#ffffff03,#0000) 0 0/100% 3px}body:after{filter:blur(30px);background:radial-gradient(circle at 22% 14%,#9ed8ff17,#0000 18%),radial-gradient(circle at 75% 18%,#7df3d914,#0000 16%)}.app-shell{height:var(--app-height);padding:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}.stage-panel{width:100%;height:100%}.table-frame{width:100%;height:100%;min-height:320px;box-shadow:inset 0 1px 0 #ffffff0d, var(--shadow);background:linear-gradient(#070b16e0,#040812f0),radial-gradient(circle at 50% 45%,#3d5fc61f,#0000 46%);border:1px solid #89a8ff1f;border-radius:28px;position:relative;overflow:hidden}.table-frame:before{content:"";pointer-events:none;z-index:4;border:1px solid #89a8ff14;border-radius:22px;position:absolute;inset:12px}.table-frame:after{content:"";pointer-events:none;z-index:0;opacity:.62;filter:drop-shadow(0 0 4px #b4e6ff1f);background:radial-gradient(circle at 6% 10%,#fffffff2 0 6.75px,#0000 11.5px),radial-gradient(circle at 14% 24%,#b7dfffd9 0 7.75px,#0000 12.75px),radial-gradient(circle at 22% 8%,#ffffffe0 0 6.75px,#0000 11px),radial-gradient(circle at 31% 18%,#a4e9ffc7 0 8.5px,#0000 13.75px),radial-gradient(circle at 39% 11%,#ffffffd6 0 6.75px,#0000 11px),radial-gradient(circle at 47% 26%,#ffffffeb 0 7.25px,#0000 12px),radial-gradient(circle at 58% 9%,#9ed8ffd1 0 9px,#0000 14.5px),radial-gradient(circle at 66% 21%,#ffffffe0 0 6.75px,#0000 11.25px),radial-gradient(circle at 74% 14%,#7df3d9b8 0 9.5px,#0000 15px),radial-gradient(circle at 82% 7%,#ffffffe6 0 6.75px,#0000 11.25px),radial-gradient(circle at 91% 19%,#c4e1ffcc 0 7.75px,#0000 12.75px),radial-gradient(circle at 11% 44%,#ffffffd1 0 6.75px,#0000 11px),radial-gradient(circle at 19% 58%,#b7dfffb8 0 7.75px,#0000 12.75px),radial-gradient(circle at 28% 39%,#ffffffeb 0 7.25px,#0000 12px),radial-gradient(circle at 36% 63%,#9ed8ffc7 0 8.5px,#0000 13.75px),radial-gradient(circle at 44% 47%,#ffffffdb 0 6.75px,#0000 11px),radial-gradient(circle at 53% 68%,#ffffffd1 0 6.75px,#0000 11.25px),radial-gradient(circle at 62% 41%,#b7dfffc2 0 7.75px,#0000 12.75px),radial-gradient(circle at 71% 57%,#ffffffe0 0 7.25px,#0000 12px),radial-gradient(circle at 79% 36%,#7df3d9a8 0 9px,#0000 14.5px),radial-gradient(circle at 87% 61%,#ffffffd6 0 6.75px,#0000 11.25px),radial-gradient(circle at 94% 43%,#b7dfffbd 0 7.75px,#0000 12.75px),radial-gradient(circle at 8% 82%,#ffffffdb 0 6.75px,#0000 11px),radial-gradient(circle at 17% 73%,#9ed8ffb8 0 8.5px,#0000 13.75px),radial-gradient(circle at 27% 89%,#ffffffeb 0 7.25px,#0000 12px),radial-gradient(circle at 38% 77%,#b7dfffc2 0 7.75px,#0000 12.75px),radial-gradient(circle at 49% 92%,#ffffffe0 0 6.75px,#0000 11.25px),radial-gradient(circle at 61% 79%,#9ed8ffb3 0 9px,#0000 14.5px),radial-gradient(circle at 72% 88%,#ffffffd6 0 6.75px,#0000 11px),radial-gradient(circle at 83% 74%,#b7dfffbd 0 7.75px,#0000 12.75px),radial-gradient(circle at 92% 86%,#ffffffe6 0 7.25px,#0000 12px);position:absolute;inset:0}#scene,#scene canvas{width:100%;height:100%;display:block}#scene{z-index:1;position:relative}#scene canvas{cursor:crosshair;touch-action:none}.stage-overlay{z-index:2;pointer-events:none;flex-direction:column;justify-content:space-between;gap:14px;padding:16px;display:flex;position:absolute;inset:0}.hud-top,.hud-bottom{justify-content:space-between;gap:12px;display:flex}.hud-top{align-items:flex-start}.hud-bottom{align-items:flex-end}.level-block,.status-card{min-width:0;max-width:min(420px,100%)}.status-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(#0b121fd1,#080d18ad);border-radius:22px;padding:14px 15px;box-shadow:inset 0 1px #ffffff0a}.level-block{-webkit-backdrop-filter:none;backdrop-filter:none;max-width:none;box-shadow:none;pointer-events:auto;z-index:4;background:0 0;border:0;padding:0;position:relative}.level-header{align-items:flex-start;gap:10px;display:flex}.level-copy{min-width:0}.level-kicker,.status-label,.status-pill,.hud-button{letter-spacing:.14em;text-transform:uppercase;font-family:IBM Plex Mono,monospace}.level-kicker,.status-label{color:var(--accent);margin:0 0 6px;font-size:.64rem}.level-kicker{display:none}h1{margin:0;font-size:clamp(1rem,2.2vw,1.25rem);font-weight:600;line-height:1}.level-name{color:var(--muted);margin:4px 0 0;font-size:.86rem;line-height:1.2}.hud-pills{display:none}.status-pills{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.time-control{pointer-events:auto;margin-top:12px;display:none}.time-control-label{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:10px;font-family:IBM Plex Mono,monospace;font-size:.58rem;display:flex}.time-control-label strong{color:var(--text);letter-spacing:.1em;font-size:.68rem}.time-control input[type=range]{width:100%;accent-color:var(--accent-strong);margin:8px 0 0}.time-control input[type=range]:disabled{opacity:.42}.time-speed-marks{color:#edf3ff7a;letter-spacing:.12em;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:4px;font-family:IBM Plex Mono,monospace;font-size:.52rem;display:grid}.time-speed-marks span:nth-child(2),.time-speed-marks span:nth-child(3){text-align:center}.time-speed-marks span:nth-child(4){text-align:right}.status-pill{min-height:28px;color:var(--muted);background:#ffffff08;border:1px solid #89a8ff29;border-radius:999px;align-items:center;padding:6px 10px;font-size:.58rem;display:inline-flex}.status-pill.is-hot{color:#fff2de;background:#ffbb7c1f;border-color:#ffbb7c6b;box-shadow:0 0 18px #ffbb7c1f}.status-pill.is-danger{color:#fff0df;background:#ff6d3a29;border-color:#ff6d3a8a;box-shadow:0 0 22px #ff6d3a2e}.action-row{z-index:4;pointer-events:auto;align-items:flex-start;gap:8px;display:flex;position:relative}.hud-button{border:1px solid var(--line);min-width:84px;min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:#080e1ac7;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.68rem;font-weight:600;transition:transform .14s,border-color .14s,background-color .14s,opacity .14s;display:inline-flex}.hud-button kbd{color:#eef6ffdb;min-width:1.35rem;height:1.35rem;font:inherit;background:#ffffff14;border:1px solid #e1f1ff33;border-radius:6px;justify-content:center;align-items:center;font-size:.62rem;line-height:1;display:none}.hud-button:hover:not(:disabled){border-color:var(--line-strong);background:#0a1222e6;transform:translateY(-1px)}.hud-button:disabled{opacity:.42;cursor:default}.hud-button-primary{background:linear-gradient(#1b3940e6,#0a181ae0);border-color:#7df3d93d}.map-button{color:#edf3ffe0;cursor:pointer;background:#080e1ac7;border:1px solid #89a8ff2e;border-radius:999px;flex:0 0 40px;justify-content:center;align-items:center;width:40px;height:40px;transition:transform .14s,border-color .14s,background-color .14s,color .14s;display:inline-flex}.map-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:19px;height:19px}.map-button:hover{color:var(--accent);background:#0a1820e6;border-color:#7df3d957;transform:translateY(-1px)}.map-button:focus-visible{outline-offset:3px;outline:2px solid #7df3d9b3}@media (hover:hover) and (pointer:fine){.hud-button kbd{display:inline-flex}}.tutorial-overlay{z-index:3;pointer-events:none;position:absolute;inset:0}.tutorial-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(#0a101de0,#070c17c2);border:1px solid #89a8ff2e;border-radius:18px;width:min(220px,100% - 40px);padding:10px 11px 11px;position:absolute;bottom:clamp(42px,8vh,88px);right:clamp(220px,20vw,300px);box-shadow:0 20px 56px #00000038,inset 0 1px #ffffff0d}.tutorial-kicker{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px;font-family:IBM Plex Mono,monospace;font-size:.52rem}.tutorial-gesture{background:radial-gradient(circle at 22%,#7bf3d914,#0000 20%),linear-gradient(#ffffff06,#ffffff03);border-radius:12px;height:48px;margin-bottom:8px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0a}.tutorial-gesture-ball,.tutorial-gesture-handle,.tutorial-gesture-start,.tutorial-gesture-release{border-radius:999px;position:absolute;top:50%;transform:translateY(-50%)}.tutorial-gesture-ball{background:radial-gradient(circle at 35% 35%,#fffffff2,#dee8ffe0 56%,#a3c2ff85 100%);width:15px;height:15px;top:auto;bottom:10px;left:22px;transform:none;box-shadow:0 0 18px #ffffff3d,0 0 0 1px #ffffff2e}.tutorial-gesture-guide{transform-origin:0;background:linear-gradient(90deg,#ffb35cf5,#ff6f4f00);border-radius:999px;width:84px;height:3px;animation:2.4s linear infinite tutorial-drag-line;position:absolute;top:auto;bottom:16px;left:29px;transform:rotate(-8deg);box-shadow:0 0 18px #ffaf6238}.tutorial-gesture-handle{background:#ffc86ffa;width:9px;height:9px;animation:2.4s linear infinite tutorial-drag-handle;top:auto;bottom:13px;left:29px;transform:none;box-shadow:0 0 14px #ffaf6252}.tutorial-gesture-release{opacity:0;border:1px solid #ffb86e57;width:30px;height:30px;animation:2.4s linear infinite tutorial-drag-release;top:auto;bottom:3px;left:19px;transform:none}.tutorial-gesture-start{opacity:0;border:1px solid #ffb86e57;width:30px;height:30px;animation:2.4s linear infinite tutorial-drag-start;top:auto;bottom:2px;left:14px;transform:none}.tutorial-copy{color:var(--text);margin:0;font-size:.8rem;line-height:1.22}.tutorial-card.is-relay .tutorial-gesture{background:radial-gradient(circle at 22% 64%,#ffcf8629,#0000 17%),radial-gradient(circle at 78% 42%,#76bcff29,#0000 18%),linear-gradient(#ffffff06,#ffffff03)}.tutorial-card.is-relay .tutorial-gesture-ball,.tutorial-card.is-relay .tutorial-gesture-guide,.tutorial-card.is-relay .tutorial-gesture-handle,.tutorial-card.is-relay .tutorial-gesture-start,.tutorial-card.is-relay .tutorial-gesture-release{top:auto;transform:none}.tutorial-card.is-relay .tutorial-gesture-start,.tutorial-card.is-relay .tutorial-gesture-release{opacity:1;z-index:1;border:0;box-shadow:inset 0 0 0 1px #ffffff24,0 0 20px #7dbeff29}.tutorial-card.is-relay .tutorial-gesture-start{background:radial-gradient(circle at 34% 32%,#ffcf86fa,#f1a064eb 61%,#76432adb 100%);width:31px;height:31px;animation:none;bottom:7px;left:20px}.tutorial-card.is-relay .tutorial-gesture-release{background:radial-gradient(circle at 36% 34%,#98ddfffa,#76bcffeb 61%,#28538edb 100%);width:28px;height:28px;animation:none;bottom:15px;left:134px}.tutorial-card.is-relay .tutorial-gesture-guide{opacity:.9;transform-origin:0;z-index:2;background:linear-gradient(90deg,#ffb35cf5,#ff6f4f00);border:0;border-radius:999px;width:75px;height:3px;animation:2.4s ease-in-out infinite tutorial-relay-line;bottom:10.5px;left:54px;transform:rotate(-8deg);box-shadow:0 0 18px #ffaf6238}.tutorial-card.is-relay .tutorial-gesture-ball{z-index:3;width:12px;height:12px;animation:2.4s ease-in-out infinite tutorial-relay-ball;bottom:6px;left:48px}.tutorial-card.is-relay .tutorial-gesture-handle{z-index:4;opacity:0;background:#ffffff14;border:1px solid #ffb86e70;width:14px;height:14px;animation:2.4s ease-in-out infinite tutorial-relay-landing;bottom:5px;left:47px}.tutorial-card.is-monolith .tutorial-gesture{background:radial-gradient(circle at 24% 52%,#ffc66c29,#0000 18%),radial-gradient(circle at 78%,#8a62ff1f,#0000 20%),linear-gradient(#ffffff06,#ffffff03)}.tutorial-card.is-monolith .tutorial-gesture-ball{background:radial-gradient(circle at 35% 35%,#fff7cdfa,#ffd27af0 58%,#db8d3ad1 100%);width:18px;height:18px;bottom:14px;left:26px;box-shadow:0 0 22px #ffc06157,0 0 0 1px #ffde9a42}.tutorial-card.is-monolith .tutorial-gesture-start{border-color:#ffcb786b;width:34px;height:34px;animation:2.6s linear infinite tutorial-monolith-touch;bottom:6px;left:18px}.tutorial-card.is-monolith .tutorial-gesture-guide{background:linear-gradient(90deg,#ffc66cf5,#ac96ffad 70%,#745dff00);width:86px;height:2px;animation:2.6s linear infinite tutorial-monolith-link;bottom:22px;left:45px;transform:rotate(0);box-shadow:0 0 18px #ffb9622e}.tutorial-card.is-monolith .tutorial-gesture-handle{display:none}.tutorial-card.is-monolith .tutorial-gesture-release{opacity:1;background:radial-gradient(circle,#05010afa 0 38%,#05010a00 42%),radial-gradient(circle,#8c68ffeb 0 62%,#8c68ff00 68%);border:0;width:34px;height:34px;animation:2.6s linear infinite tutorial-monolith-hole;bottom:6px;left:134px;box-shadow:0 0 0 1px #997eff4d,0 0 18px #8465ff38}.tutorial-card.is-dust .tutorial-gesture{background:radial-gradient(at 58%,#ff82a433,#0000 19%),radial-gradient(at 62% 48%,#71d6ff29,#0000 28%),linear-gradient(#ffffff06,#ffffff03)}.tutorial-card.is-dust .tutorial-gesture-guide,.tutorial-card.is-dust .tutorial-gesture-ball,.tutorial-card.is-dust .tutorial-gesture-handle,.tutorial-card.is-dust .tutorial-gesture-start,.tutorial-card.is-dust .tutorial-gesture-release{border:0;top:auto;transform:none}.tutorial-card.is-dust .tutorial-gesture-guide{display:none}.tutorial-card.is-dust .tutorial-gesture-handle{opacity:.95;background:radial-gradient(at 42% 52%,#ffe5ad6b,#0000 18%),radial-gradient(at 58%,#ff6c9a66,#0000 24%),radial-gradient(at 64% 45%,#78d8ff66,#0000 34%),radial-gradient(#382a4cc7,#0000 72%);border-radius:48% 52% 46% 54%;width:54px;height:30px;animation:2.8s ease-in-out infinite tutorial-dust-cloud;bottom:10px;left:82px;box-shadow:0 0 20px #74d8ff2e,0 0 18px #ff75991f}.tutorial-card.is-dust .tutorial-gesture-ball{width:12px;height:12px;animation:3.4s linear infinite tutorial-dust-ball;bottom:17px;left:16px}.tutorial-card.is-dust .tutorial-gesture-start,.tutorial-card.is-dust .tutorial-gesture-release{display:none}@keyframes tutorial-drag-line{0%,12%{opacity:0;transform:rotate(-8deg)scaleX(.02)}24%{opacity:1;transform:rotate(-8deg)scaleX(.02)}56%{opacity:1;transform:rotate(-8deg)scaleX(1)}62%,68%{opacity:1;transform:rotate(-8deg)scaleX(1)}72%,to{opacity:0;transform:rotate(-8deg)scaleX(1)}}@keyframes tutorial-drag-handle{0%,12%{opacity:0;transform:translate(0)translateY(0)}24%{opacity:1;transform:translate(0)translateY(0)}56%{opacity:1;transform:translate(82px)translateY(-13px)}62%,68%{opacity:1;transform:translate(82px)translateY(-13px)}72%{opacity:0;transform:translate(82px)translateY(-13px)}to{opacity:0;transform:translate(0)translateY(0)}}@keyframes tutorial-drag-release{0%,56%{opacity:0;transform:translate(82px)translateY(-13px)scale(.55)}70%{opacity:.95;transform:translate(82px)translateY(-13px)scale(1)}78%,to{opacity:0;transform:translate(82px)translateY(-13px)scale(1.42)}}@keyframes tutorial-drag-start{0%{opacity:0;transform:scale(1.36)}8%{opacity:.85;transform:scale(1.12)}18%{opacity:0;transform:scale(.58)}30%,to{opacity:0;transform:scale(.58)}}@keyframes tutorial-relay-line{0%,18%{opacity:0;transform-origin:0;transform:rotate(-8deg)scaleX(.02)}30%{opacity:.95;transform-origin:0;transform:rotate(-8deg)scaleX(.02)}48%{opacity:.95;transform-origin:0;transform:rotate(-8deg)scaleX(1)}62%,to{opacity:0;transform-origin:0;transform:rotate(-8deg)scaleX(1)}}@keyframes tutorial-relay-ball{0%{opacity:0;transform:translate(0)scale(.82)}8%,48%{opacity:1;transform:translate(0)scale(1)}62%{opacity:1;transform:translate(38px,-7px)scale(1)}82%{opacity:1;transform:translate(75px,-13px)scale(.9)}92%,to{opacity:0;transform:translate(75px,-13px)scale(.72)}}@keyframes tutorial-relay-landing{0%,72%{opacity:0;transform:translate(75px,-13px)scale(.55)}82%{opacity:.95;transform:translate(75px,-13px)scale(1)}to{opacity:0;transform:translate(75px,-13px)scale(1.9)}}@keyframes tutorial-dust-cloud{0%,to{opacity:.78;transform:rotate(-7deg)scale(.96,1.02)}46%,66%{opacity:.98;transform:rotate(-7deg)scale(1.08,1.1)}}@keyframes tutorial-dust-ball{0%{opacity:0;transform:translate(0)translateY(0)scale(1.44,.76)}8%{opacity:1;transform:translate(18px)translateY(-1px)scale(1.55,.72)}22%{opacity:1;transform:translate(82px)translateY(-4px)scale(1.5,.74)}34%{opacity:.9;transform:translate(96px)translateY(-5px)scale(.94)}62%{opacity:1;transform:translate(112px)translateY(-6px)scale(.78)}88%{opacity:1;transform:translate(130px)translateY(-7px)scale(.68)}to{opacity:0;transform:translate(134px)translateY(-7px)scale(.66)}}@keyframes tutorial-monolith-touch{0%,12%{opacity:0;transform:scale(1.34)}18%,34%{opacity:.9;transform:scale(.82)}42%,to{opacity:0;transform:scale(.82)}}@keyframes tutorial-monolith-link{0%,26%{opacity:0;transform:rotate(0)scaleX(.04)}38%{opacity:.9;transform:rotate(0)scaleX(.22)}58%,74%{opacity:.96;transform:rotate(0)scaleX(1)}82%,to{opacity:0;transform:rotate(0)scaleX(1)}}@keyframes tutorial-monolith-hole{0%,34%{opacity:0;transform:scale(.18)}48%{opacity:.94;transform:scale(1.36)}62%,76%{opacity:1;transform:scale(1)}86%,to{opacity:0;transform:scale(1)}}.game-over-modal{pointer-events:none;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.game-over-modal[hidden]{display:none}.game-over-modal.is-open{pointer-events:auto}.game-over-backdrop{opacity:0;-webkit-backdrop-filter:blur()saturate();backdrop-filter:blur()saturate();background:radial-gradient(circle at 50% 42%,#1b34561f,#050a1452 72%),linear-gradient(#03070e2e,#04081257);transition:opacity .18s linear,-webkit-backdrop-filter .18s linear,backdrop-filter .18s linear;position:absolute;inset:0}.game-over-panel{z-index:1;opacity:0;background:linear-gradient(#0b121ff0,#070c17e0);border:1px solid #89a8ff2e;border-radius:28px;width:min(440px,100% - 24px);padding:22px 22px 20px;transition:opacity .18s linear 70ms;position:relative;box-shadow:0 24px 80px #00000085,inset 0 1px #ffffff0f}.game-over-copy{z-index:1;position:relative}.game-over-modal.is-visible .game-over-backdrop{opacity:1;-webkit-backdrop-filter:blur(8px)saturate(1.05);backdrop-filter:blur(8px)saturate(1.05)}.game-over-modal.is-visible .game-over-panel{opacity:1}.world-map-modal{z-index:5;pointer-events:none;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.world-map-modal[hidden]{display:none}.world-map-modal.is-open{pointer-events:auto}.world-map-backdrop{opacity:0;-webkit-backdrop-filter:blur()saturate();backdrop-filter:blur()saturate();background:radial-gradient(circle at 50% 46%,#ffd57014,#0000 20%),radial-gradient(circle,#7df3d91f,#0000 30%),radial-gradient(circle,#7785ff29,#03070ec7 74%),linear-gradient(#03070e94,#03070ee0);transition:opacity .18s linear,-webkit-backdrop-filter .18s linear,backdrop-filter .18s linear;position:absolute;inset:0}.world-map-panel{z-index:1;opacity:0;background:radial-gradient(circle at 20% 16%,#ffcd700f,#0000 18%),radial-gradient(circle at 82% 84%,#7df3d90f,#0000 18%),linear-gradient(#0b121ff2,#060a14eb);border:1px solid #89a8ff2e;border-radius:34px;grid-template-rows:auto 1fr auto;grid-template-columns:minmax(220px,.5fr) minmax(340px,1fr);gap:18px 26px;width:min(980px,100% - 24px);min-height:min(620px,100dvh - 72px);padding:24px;transition:opacity .18s linear 70ms;display:grid;position:relative;box-shadow:0 30px 110px #0000009e,inset 0 1px #ffffff0f}.world-map-modal.is-visible .world-map-backdrop{opacity:1;-webkit-backdrop-filter:blur(10px)saturate(1.08);backdrop-filter:blur(10px)saturate(1.08)}.world-map-modal.is-visible .world-map-panel{opacity:1}.world-map-copy,.world-map-stats,.world-map-actions{z-index:1;position:relative}.world-map-copy{align-self:end;padding:6px 0 0}.world-map-copy h2{gap:8px;margin:0;line-height:1;display:grid}.world-map-title-prefix{color:#ffd08a;letter-spacing:.14em;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:clamp(.96rem,1.6vw,1.18rem)}.world-map-title-name{text-wrap:balance;max-width:8ch;font-size:clamp(1.9rem,4.6vw,3.55rem);font-weight:600;line-height:.92;display:block}.world-map-progress{color:#edf3ffbd;max-width:25ch;margin:16px 0 0;font-size:.88rem;line-height:1.34}.world-map-stage{z-index:1;background:radial-gradient(circle,#ffe1961c,#0000 7%),radial-gradient(at 50% 52%,#7df3d938,#0000 10%),radial-gradient(at 50% 52%,#a183ff2e,#0000 30%),radial-gradient(at 50% 52%,#3765b929,#0000 52%),linear-gradient(#04091294,#03070ee6);border:1px solid #89a8ff1a;border-radius:28px;grid-area:1/2/span 3;min-height:460px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0a,0 18px 44px #0000002e;container-type:size}.world-map-stats{align-self:center;gap:11px;padding:6px 0 0;display:grid}.world-map-stat{--stat-ratio:0;--stat-delay:0s}.world-map-stat-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:7px;display:flex}.world-map-stat-head span{color:var(--muted);letter-spacing:.13em;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:.58rem}.world-map-stat-head strong{color:var(--text);letter-spacing:.04em;font-family:IBM Plex Mono,monospace;font-size:.9rem}.world-map-stat-track{background:#ffffff0e;border:1px solid #89a8ff14;border-radius:999px;height:8px;overflow:hidden}.world-map-stat-track span{border-radius:inherit;background:linear-gradient(90deg, #547bff, var(--accent), var(--accent-strong), #ffc85c);transform-origin:0;width:100%;height:100%;animation:world-map-stat-bar .98s cubic-bezier(.16, 1, .3, 1) var(--stat-delay) forwards;display:block;transform:scaleX(0);box-shadow:0 0 18px #7df3d93d}@keyframes world-map-stat-bar{to{transform:scaleX(var(--stat-ratio))}}.world-map-community-stat{background:linear-gradient(#0a171e9e,#060d166b);border:1px solid #7df3d91f;border-radius:12px;margin-top:7px;padding:10px 11px}.world-map-community-stat[hidden]{display:none}.world-map-community-stat .world-map-stat-head{margin-bottom:4px}.world-map-community-stat strong{color:#cafff3}.world-map-community-stat.has-percentile strong{color:#ffd08a}.world-map-community-stat p{color:#edf3ffa8;margin:0;font-size:.68rem;line-height:1.3}.world-map-stage:before,.world-map-stage:after{content:"";pointer-events:none;position:absolute;inset:0}.world-map-stage:before{opacity:.74;background:radial-gradient(circle at 12% 16%,#ffffffdb 0 1px,#0000 2px),radial-gradient(circle at 18% 31%,#fff1d1bd 0 1px,#0000 2px),radial-gradient(circle at 21% 57%,#d2e8ffb3 0 1px,#0000 2px),radial-gradient(circle at 24% 74%,#9ed8ffc2 0 1px,#0000 2px),radial-gradient(circle at 29% 45%,#ffffffb3 0 1px,#0000 2px),radial-gradient(circle at 38% 22%,#ffffffd1 0 1px,#0000 2px),radial-gradient(circle at 42% 66%,#bae1ffb8 0 1px,#0000 2px),radial-gradient(circle at 49% 12%,#fff7e5bd 0 1px,#0000 2px),radial-gradient(circle at 53% 78%,#7df3d9ad 0 1px,#0000 2px),radial-gradient(circle at 58% 28%,#ffffffbd 0 1px,#0000 2px),radial-gradient(circle at 63% 14%,#7df3d9b8 0 1px,#0000 2px),radial-gradient(circle at 68% 53%,#d5e9ffb8 0 1px,#0000 2px),radial-gradient(circle at 72% 83%,#fff1d1a3 0 1px,#0000 2px),radial-gradient(circle at 79% 67%,#ffffffc7 0 1px,#0000 2px),radial-gradient(circle at 84% 24%,#7df3d9a8 0 1px,#0000 2px),radial-gradient(circle at 88% 58%,#ffffffb3 0 1px,#0000 2px),radial-gradient(circle at 91% 36%,#b7dfffb8 0 1px,#0000 2px),radial-gradient(circle at 95% 76%,#fff7e594 0 1px,#0000 2px)}.world-map-stage:after{filter:blur(8px);opacity:.92;background:conic-gradient(from 24deg at 50% 52%,#0000,#7df3d91f,#0000 18%,#9ed8ff1f,#0000 38%,#ffd27a14,#0000 52%)}.galaxy-dust,.galaxy-core,.galaxy-ring,.world-map-path,.world-map-nodes{position:absolute;inset:0}.galaxy-dust{opacity:.9;filter:blur(.1px)drop-shadow(0 0 18px #7df3d914);pointer-events:none;background:radial-gradient(circle at 14% 46%,#c4deffc7 0 1px,#0000 2px),radial-gradient(circle at 18% 58%,#fff4d4b3 0 1px,#0000 2px),radial-gradient(circle at 24% 39%,#7df3d9b8 0 1.2px,#0000 2.2px),radial-gradient(circle at 31% 63%,#cfe4ffb3 0 1.1px,#0000 2.1px),radial-gradient(circle at 38% 41%,#ffffffc7 0 1px,#0000 2px),radial-gradient(circle at 43% 56%,#b6d6ffcc 0 1.2px,#0000 2.4px),radial-gradient(circle at 48% 48%,#ffe9b3e0 0 1.4px,#0000 2.8px),radial-gradient(circle at 52% 61%,#7df3d9c2 0 1.15px,#0000 2.4px),radial-gradient(circle at 57% 37%,#ffffffc2 0 1px,#0000 2px),radial-gradient(circle at 62% 53%,#cae2ffc2 0 1.15px,#0000 2.4px),radial-gradient(circle at 68% 44%,#fff4d4bd 0 1px,#0000 2px),radial-gradient(circle at 74% 58%,#aed8ffc2 0 1px,#0000 2px),radial-gradient(circle at 81% 49%,#7df3d9ad 0 1px,#0000 2px),radial-gradient(#8a95ff29 0%,#8a95ff14 34%,#0000 72%);border-radius:50%;width:78%;height:58%;inset:50% auto auto 50%;transform:translate(-50%,-50%)rotate(-18deg)}.galaxy-core{background:radial-gradient(circle,#fff6d3,#ffc96e 18%,#7df3d9 38%,#7df3d900 72%);border-radius:999px;width:54px;height:54px;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 0 34px #7df3d994,0 0 88px #7785ff5c}.galaxy-ring{border:1px solid #9ed8ff29;border-radius:50%;inset:50% auto auto 50%;transform:translate(-50%,-50%)rotate(-18deg)}.galaxy-ring-outer{width:86%;height:58%}.galaxy-ring-mid{width:62%;height:40%}.galaxy-ring-inner{width:36%;height:23%}.world-map-path{z-index:1;overflow:visible}.world-map-path,.world-map-nodes{width:min(100cqw,100cqh);height:min(100cqw,100cqh);inset:50% auto auto 50%;transform:translate(-50%,-50%)}.world-map-path polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}#worldMapTrailBase{stroke:#89a8ff2e;stroke-width:.86px}#worldMapTrailProgress{stroke:#7df3d9f5;stroke-width:1.5px;filter:drop-shadow(0 0 6px #7df3d980)}#worldMapDotLayer{filter:drop-shadow(0 0 4px #89a8ff47)}.world-map-nodes{z-index:2}.world-map-node{left:var(--map-x);top:var(--map-y);width:0;height:0;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;position:absolute}.world-map-node:disabled{cursor:default}.world-map-node:before{content:"";border-radius:50%;width:24px;height:24px;position:absolute;top:-12px;left:-12px}.world-map-dot{fill:#090f1bf2;stroke:#89a8ff94;stroke-width:.26px;vector-effect:non-scaling-stroke}.world-map-dot.is-complete{fill:#7df3d9;stroke:#d2fff6f2;filter:drop-shadow(0 0 5px #7df3d9ad)}.world-map-node.is-complete .world-map-label{border-color:#7df3d929}.world-map-dot.is-active{fill:#ffc85c;stroke:#fff0c8f5;filter:drop-shadow(0 0 6px #ffc85cb8)}.world-map-dot.is-selected{stroke:#fff;stroke-width:.52px;filter:drop-shadow(0 0 9px #ffffffa3)}.world-map-node.is-active .world-map-label{background:linear-gradient(#12141beb,#090c14bd);border-color:#ffc85c3d;box-shadow:0 0 0 1px #ffc85c14,0 14px 30px #0003}.world-map-label{min-width:126px;color:var(--text);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#080e1ad1,#050a149e);border:1px solid #89a8ff1f;border-radius:14px;padding:7px 9px;position:absolute;top:50%;left:22px;transform:translateY(-50%);box-shadow:0 10px 24px #00000029}.world-map-node.is-label-left .world-map-label{text-align:right;left:auto;right:20px}.world-map-label strong,.world-map-label small{display:block}.world-map-label strong{font-size:.7rem;font-weight:600;line-height:1.08}.world-map-label small{color:var(--muted);letter-spacing:.1em;margin-top:3px;font-family:IBM Plex Mono,monospace;font-size:.5rem}.world-map-node.is-active .world-map-label strong{color:#fff0c8}.world-map-node.is-active .world-map-label small{color:#ffd58ad1}.world-map-node.is-selected .world-map-label{border-color:#ffffff57;box-shadow:0 0 0 1px #ffffff1a,0 16px 34px #0000003d}.world-map-actions{flex-wrap:wrap;place-self:end start;gap:8px;margin-top:14px;display:flex}.world-map-actions .hud-button{min-width:152px;min-height:48px}.game-over-panel:before{content:"";pointer-events:none;border:1px solid #89a8ff17;border-radius:20px;position:absolute;inset:10px}.game-over-kicker{color:var(--warning);letter-spacing:.16em;text-transform:uppercase;margin:0 0 8px;font-family:IBM Plex Mono,monospace;font-size:.64rem}.game-over-panel h2{letter-spacing:-.03em;margin:0;font-size:clamp(1.45rem,4vw,2.2rem);line-height:.95}.game-over-hint{max-width:34ch;color:var(--muted);margin:14px 0 0;font-size:.95rem;line-height:1.45}.game-over-actions{gap:10px;margin-top:20px;display:flex}.game-over-actions .hud-button{flex:1;justify-content:center;min-height:46px}.status-card{pointer-events:none;width:min(430px,100%)}.debug-tuning-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:auto;background:linear-gradient(#080e19db,#050a13c2);border:1px solid #89a8ff33;border-radius:8px;align-self:flex-end;width:min(274px,34vw);max-height:min(62vh,390px);padding:11px 12px 12px;overflow:auto;box-shadow:inset 0 1px #ffffff0b}.debug-tuning-header{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;align-items:center;margin-bottom:9px;font-family:IBM Plex Mono,monospace;font-size:.58rem;display:flex}.debug-slider{margin-top:8px;display:block}.debug-slider span{color:#edf3ffb8;letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:10px;font-family:IBM Plex Mono,monospace;font-size:.56rem;display:flex}.debug-slider strong{color:var(--text);letter-spacing:.08em;font-size:.62rem}.debug-slider input[type=range]{width:100%;accent-color:var(--accent);margin:6px 0 0}.perf-panel{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:right;pointer-events:none;background:linear-gradient(#0a111eb8,#080d1894);border:1px solid #89a8ff29;border-radius:16px;align-self:flex-end;min-width:72px;padding:10px 12px;box-shadow:inset 0 1px #ffffff0a}.perf-label{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px;font-family:IBM Plex Mono,monospace;font-size:.58rem;display:block}.perf-panel strong{color:var(--text);font-family:IBM Plex Mono,monospace;font-size:1rem;line-height:1;display:block}.status-card h2{margin:0;font-size:clamp(.96rem,2vw,1.08rem);font-weight:600;line-height:1.1}#statusHint{color:var(--muted);margin:8px 0 0;font-size:.82rem;line-height:1.28}.meter{background:#ffffff0f;border-radius:999px;height:5px;margin-top:12px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0a}.meter span{transform-origin:0;background:linear-gradient(90deg, #547bff, var(--accent), var(--accent-strong));width:100%;height:100%;display:block;transform:scaleX(.04);box-shadow:0 0 18px #7df3d947}@media (width<=820px){.app-shell{padding:calc(8px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left))}.table-frame{border-radius:20px}.table-frame:before{border-radius:14px;inset:8px}.stage-overlay{padding:10px}.hud-top{flex-direction:column;align-items:stretch}.action-row{justify-content:flex-end;width:100%}.level-block,.status-card{max-width:100%}.status-card{border-radius:18px;padding:12px 13px}.hud-button{flex:1 1 0;min-width:0;min-height:46px}.hud-bottom{justify-content:stretch}.status-card{width:100%}.debug-tuning-panel{width:min(100%,360px);max-height:34vh;padding:10px 11px}.perf-panel{align-self:flex-end}.tutorial-card{border-radius:18px;width:min(214px,100% - 24px);padding:10px 11px 11px;bottom:88px;right:12px}.tutorial-copy{font-size:.78rem}.game-over-modal{place-items:stretch stretch;padding:10px}.world-map-modal{padding:10px}.world-map-panel{border-radius:18px;grid-template-rows:auto minmax(320px,1fr) auto auto;grid-template-columns:1fr;gap:12px;width:100%;min-height:100%;padding:14px}.world-map-copy{align-self:start}.world-map-copy h2{font-size:clamp(1.6rem,9vw,2.8rem)}.world-map-progress{max-width:none;margin-top:8px;font-size:.82rem}.world-map-stage{border-radius:16px;grid-area:2/1;min-height:320px}.world-map-stats{grid-row:3;grid-template-columns:1fr;gap:10px 12px}.world-map-stat-head{margin-bottom:5px}.world-map-stat-head span{font-size:.5rem}.world-map-stat-head strong{font-size:.74rem}.world-map-stat-track{height:7px}.world-map-actions{grid-row:4;align-self:stretch;margin-top:8px}.world-map-actions .hud-button{width:100%}.world-map-label{min-width:94px;padding:5px 7px}.world-map-label strong{font-size:.58rem}.world-map-label small{font-size:.46rem}.game-over-panel{width:auto;min-height:100%;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;display:block;position:relative}.game-over-panel:before{display:none}.game-over-copy{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(#0b121fd6,#070c17b8);border:1px solid #89a8ff2e;border-radius:18px;width:auto;max-width:100%;padding:12px 13px;position:absolute;bottom:64px;left:0;right:0;box-shadow:0 24px 80px #00000052,inset 0 1px #ffffff0d}.game-over-actions{justify-content:flex-end;gap:8px;margin-top:0;display:flex;position:absolute;bottom:0;left:0;right:0}.game-over-actions .hud-button{flex:1 1 0;min-width:0;min-height:46px}}@media (width<=560px){h1{font-size:.96rem}.level-name,#statusHint{font-size:.78rem}.status-card h2{font-size:.92rem}.status-pill{min-height:26px;padding:5px 9px;font-size:.54rem}.time-control-label{font-size:.54rem}.time-control-label strong{font-size:.62rem}.tutorial-card{bottom:76px}.tutorial-gesture{height:52px}.tutorial-copy{font-size:.76rem;line-height:1.22}}@media (orientation:portrait) and (width<=820px){.stage-overlay{grid-template-rows:auto 1fr auto;align-items:stretch;gap:10px;padding-bottom:72px;display:grid;position:absolute}.hud-top,.hud-bottom{display:contents}.level-block{grid-row:1}.status-card{grid-row:3}.action-row{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));width:auto;position:absolute}.game-over-actions{display:none}.debug-tuning-panel,.perf-panel{grid-row:3;justify-self:end}}@media (orientation:landscape) and (height<=560px){.app-shell{padding:calc(6px + env(safe-area-inset-top)) calc(6px + env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) calc(6px + env(safe-area-inset-left))}.table-frame{border-radius:16px}.table-frame:before{border-radius:10px;inset:6px}.stage-overlay{grid-template-rows:auto 1fr auto;grid-template-columns:minmax(188px,24vw) 1fr auto;align-items:start;gap:8px 10px;padding:8px;display:grid}.hud-top,.hud-bottom{display:contents}.level-block{background:0 0;border-radius:0;grid-area:1/1;max-width:none;padding:0}.level-kicker,.status-label{display:none}h1{font-size:.94rem;line-height:1}.level-name{margin-top:4px;font-size:.74rem;line-height:1.1}.hud-pills{display:none}.status-pill{letter-spacing:.12em;min-height:22px;padding:4px 8px;font-size:.49rem}.time-control{display:none}.time-control-label{letter-spacing:.12em;font-size:.48rem}.time-control-label strong{font-size:.54rem}.time-control input[type=range]{margin-top:6px}.time-speed-marks{margin-top:2px;font-size:.46rem}.action-row{flex-direction:column;grid-area:1/3/span 3;justify-content:center;align-self:center;gap:6px;width:auto}.hud-button{letter-spacing:.12em;min-width:94px;min-height:40px;padding:0 12px;font-size:.6rem}.status-card{background:linear-gradient(#0b121fbd,#080d188f);border-radius:16px;grid-area:3/1;align-self:end;width:min(320px,36vw);max-width:none;padding:10px 12px}.perf-panel{border-radius:14px;grid-area:1/3;align-self:start;min-width:64px;padding:8px 10px}.debug-tuning-panel{grid-area:3/2;place-self:end;width:min(330px,42vw);max-height:42vh;padding:9px 10px}.perf-label{margin-bottom:3px;font-size:.5rem}.perf-panel strong{font-size:.88rem}.status-card h2{max-width:22ch;font-size:.88rem;line-height:1.02}.meter{height:4px;margin-top:8px}#statusHint{max-width:30ch;margin-top:6px;font-size:.7rem;line-height:1.16}.tutorial-card{border-radius:16px;width:min(246px,30vw);padding:10px 12px 11px;bottom:14px;right:max(112px,7vw)}.tutorial-kicker{margin-bottom:6px;font-size:.5rem}.tutorial-gesture{border-radius:12px;height:46px;margin-bottom:8px}.tutorial-copy{font-size:.72rem;line-height:1.18}.game-over-panel{grid-template-rows:auto 1fr auto;grid-template-columns:minmax(188px,24vw) 1fr auto;gap:8px 10px}.world-map-modal{padding:8px}.world-map-panel{border-radius:18px;grid-template-rows:auto 1fr auto;grid-template-columns:minmax(190px,28vw) minmax(300px,1fr);gap:10px 14px;min-height:100%;padding:12px}.world-map-copy{grid-area:1/1;align-self:start;padding-top:4px}.world-map-kicker{margin-bottom:8px;font-size:.56rem}.world-map-copy h2{font-size:clamp(1.45rem,4vw,2.3rem)}.world-map-progress{margin-top:10px;font-size:.72rem;line-height:1.24}.world-map-stage{border-radius:16px;grid-area:1/2/span 3;width:100%;min-height:100%}.world-map-stats{grid-area:2/1;grid-template-columns:1fr;align-self:end;gap:7px}.world-map-stat-head{margin-bottom:4px}.world-map-stat-head span{letter-spacing:.11em;font-size:.46rem}.world-map-stat-head strong{font-size:.64rem}.world-map-stat-track{height:6px}.world-map-actions{grid-area:3/1;align-self:start;margin-top:16px}.world-map-actions .hud-button{width:100%;min-width:0}.world-map-label{min-width:86px;padding:5px 6px}.world-map-label strong{font-size:.54rem}.game-over-copy{background:linear-gradient(#0b121fc7,#080d1899);border-radius:16px;grid-area:3/1;align-self:end;width:min(320px,36vw);max-width:none;padding:10px 12px}.game-over-panel h2{max-width:14ch;font-size:1.06rem;line-height:1.02}.game-over-hint{max-width:30ch;margin-top:8px;font-size:.7rem;line-height:1.16}.game-over-actions{flex-direction:column;grid-area:1/3/span 3;justify-content:center;align-self:center;gap:6px}.game-over-actions .hud-button{letter-spacing:.12em;flex:none;min-width:94px;min-height:40px;padding:0 12px;font-size:.6rem}.game-over-modal.has-anchored-actions{pointer-events:none;padding:0}.game-over-modal.has-anchored-actions .game-over-panel{width:100%;min-height:100%;box-shadow:none;background:0 0;border:0;padding:0;display:block;position:relative}.game-over-modal.has-anchored-actions .game-over-panel:before{display:none}.game-over-modal.has-anchored-actions .game-over-copy{left:var(--game-over-copy-left);top:var(--game-over-copy-top);width:var(--game-over-copy-width);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#0c121fb8,#090e1894);border:1px solid #89a8ff24;border-radius:18px;flex-direction:column;justify-content:center;max-width:none;min-height:124px;padding:14px 16px 16px;display:flex;position:absolute;box-shadow:0 22px 48px #00000038,inset 0 1px #ffffff0a}.game-over-modal.has-anchored-actions .game-over-kicker{letter-spacing:.14em;margin-bottom:10px;font-size:.58rem}.game-over-modal.has-anchored-actions .game-over-panel h2{max-width:12ch;margin:0;font-size:1.14rem;line-height:1.02}.game-over-modal.has-anchored-actions .game-over-hint{max-width:26ch;margin-top:6px;font-size:.72rem;line-height:1.18}.game-over-modal.has-anchored-actions .game-over-actions{display:none}}
