:root{--ui-scale:1;--bg1:#f6f1ea;--bg2:#e7eef0;--ink:#2b3a42;--muted:#7a8790;--accent:#b3263a;--accent2:#b3263a;--red:#b3263a;--red-dark:#8f1d2e;--card:#ffffffc7;--line:#2b3a421f;--radius:16px;--shadow:0 8px 30px #2b3a421f;--surface:#fbfaf7;--bg-a:#eeebe4;--bg-b:#d3d6d1;--bg-c:#a9b8bf;font-family:Nunito,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:calc(16px * var(--ui-scale));color:var(--ink);-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#root,.app{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(ellipse at 30% 10%, var(--bg-a) 0%, var(--bg-b) 50%, var(--bg-c) 100%);color:var(--ink);-webkit-user-select:none;user-select:none}.screen{padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));flex-direction:column;align-items:center;display:flex;position:absolute;inset:0;overflow-y:auto}.screen.loading{color:var(--muted);justify-content:center;font-size:2rem}.muted{color:var(--muted)}.small{font-size:.82em}.mono{font-variant-numeric:tabular-nums}.logo{letter-spacing:-.03em;margin:0;font-size:clamp(3rem,12vw,5.5rem);font-weight:900;line-height:1}.logo .pi{color:var(--accent2);animation:4s ease-in-out infinite wobble;display:inline-block;transform:rotate(-8deg)translateY(-.04em)}.logo.small{font-size:1.6rem}@keyframes wobble{0%,to{transform:rotate(-8deg)translateY(-.04em)}50%{transform:rotate(6deg)translateY(-.1em)}}.btn{appearance:none;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);touch-action:manipulation;border-radius:999px;min-height:44px;padding:.65em 1.2em;font-weight:700;transition:transform .12s,background .2s,box-shadow .2s;box-shadow:0 2px 8px #2b3a4214}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #2b3a4224}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);color:#fff;border-color:#0000}.btn.danger{color:#c0392b}.btn.ghost{box-shadow:none;background:0 0;border-color:#0000}.btn.big{width:100%;padding:.8em 1.6em;font-size:1.15em}.btn.round{border-radius:50%;width:52px;height:52px;padding:0;font-size:1.5em}.btn.install{border-style:dashed}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.home{justify-content:safe center;gap:24px}.home-hero{text-align:center}.tagline{color:var(--muted);margin:.6em 0;font-size:1.15em}.star-total{color:#d49a1a;font-weight:800}.menu{flex-direction:column;gap:12px;width:min(360px,100%);display:flex}.screen-header{text-align:center;grid-template-columns:60px 1fr 60px;align-items:center;width:min(900px,100%);margin-bottom:8px;display:grid}.screen-header h2{margin:0}.panel{background:var(--card);border-radius:var(--radius);width:min(560px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px}.form{flex-direction:column;gap:10px;display:flex}.form>label{margin-top:6px;font-weight:800}.form label.check{align-items:center;gap:10px;font-weight:600;display:flex}.form input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}.form input[type=range]{accent-color:var(--accent);width:100%}.form hr{border:none;border-top:1px solid var(--line);width:100%}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg button{border:1px solid var(--line);background:var(--surface);font:inherit;cursor:pointer;min-height:42px;color:var(--ink);border-radius:12px;flex:auto;padding:.55em .8em;font-weight:700}.seg button.on{background:var(--accent);color:#fff;border-color:#0000}.tiers{flex-direction:column;gap:18px;width:min(900px,100%);padding-bottom:24px;display:flex}.tier h3{align-items:center;gap:8px;margin:0 0 8px;display:flex}.tier-dot{background:var(--accent);border-radius:50%;width:14px;height:14px;display:inline-block}.level-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.level-card{border:none;border-left:5px solid var(--accent);background:var(--card);text-align:left;font:inherit;cursor:pointer;color:var(--ink);border-radius:14px;flex-direction:column;gap:4px;padding:12px;transition:transform .12s;display:flex;box-shadow:0 2px 10px #2b3a4214}.level-card:hover:not(:disabled){transform:translateY(-2px)}.level-card.locked{opacity:.5;cursor:default}.level-num{font-size:1.5em;font-weight:900}.level-name{font-size:.92em;font-weight:700}.coming-soon{text-align:center;color:var(--muted)}.stars .star.on{color:#f2b134;text-shadow:0 1px 6px #f2b13466}.screen.game{padding:0;overflow:hidden}.screen.game canvas{inset:0;position:absolute!important}.hud{padding:10px max(10px, env(safe-area-inset-left));pointer-events:none;z-index:2;align-items:center;gap:8px;display:flex;position:absolute;left:0;right:0}.hud>*{pointer-events:auto}.hud.top{top:env(safe-area-inset-top);justify-content:space-between}.hud.bottom{bottom:env(safe-area-inset-bottom);flex-wrap:wrap;justify-content:center}.hud-title{text-align:center;pointer-events:none;flex-direction:column;align-items:center;gap:2px;display:flex}.tier-chip{color:#fff;border-radius:999px;padding:2px 10px;font-size:.8em;font-weight:800}.hud-stats{background:var(--card);border-radius:999px;gap:12px;padding:8px 14px;font-weight:800;display:flex;box-shadow:0 2px 8px #2b3a4214}.rotate-pad{left:max(12px, env(safe-area-inset-left));top:calc(72px + env(safe-area-inset-top));z-index:3;background:var(--card);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;gap:8px;padding:10px;transition:opacity .2s;display:flex;position:absolute}.rotate-pad.disabled{opacity:.55}.rotate-row{text-align:center;grid-template-columns:52px 64px 52px;align-items:center;font-weight:700;display:grid}.toast{left:50%;bottom:calc(90px + env(safe-area-inset-bottom));color:#fff;z-index:4;text-align:center;background:#2b3a42e6;border-radius:999px;max-width:90vw;padding:10px 18px;font-weight:700;animation:.25s ease-out pop;position:absolute;transform:translate(-50%)}.coach{top:calc(76px + env(safe-area-inset-top));background:var(--surface);box-shadow:var(--shadow);text-align:center;z-index:3;border-radius:18px;max-width:min(460px,92vw);padding:12px 18px;animation:.3s ease-out pop;position:absolute;left:50%;transform:translate(-50%)}.coach p{margin:0 0 4px;font-size:1.05em;font-weight:800}.tutorial-hand{pointer-events:none;z-index:5;filter:drop-shadow(0 4px 6px #00000040);opacity:0;font-size:44px;position:absolute;top:-6px;left:-22px}.modal-backdrop{z-index:10;background:#2b3a4259;justify-content:center;align-items:center;padding:16px;animation:.25s fade;display:flex;position:fixed;inset:0}.modal-backdrop.soft{background:#2b3a4226}.modal{background:var(--surface);text-align:center;width:100%;max-width:440px;box-shadow:var(--shadow);border-radius:22px;padding:24px;animation:.3s ease-out pop}.modal h2{margin-top:0}.modal.tip .tip-icon{font-size:2.6em;line-height:1}.modal.tip h3{margin:8px 0 6px;font-size:1.35em}.modal.tip h3:empty{display:none}.modal.tip h3+p{text-align:left;font-size:1.05em;line-height:1.45}.result .stars{margin:4px 0 8px;display:block}.result .stars .star.on{animation:.5s backwards starIn;display:inline-block}.result .stars .star.on:nth-child(2){animation-delay:.25s}.result .stars .star.on:nth-child(3){animation-delay:.5s}.result-table{border-spacing:12px 4px;text-align:left;margin:10px auto}.badge{color:#9a6b00;background:#fff3cd;border-radius:999px;padding:4px 12px;font-weight:800;display:inline-block}.reference{top:calc(64px + env(safe-area-inset-top));aspect-ratio:1;background:var(--card);width:min(300px,64vw,38vh);box-shadow:var(--shadow);z-index:8;border-radius:20px;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.reference .close{position:absolute;top:4px;right:4px}@keyframes pop{0%{opacity:0;transform:scale(.92)}}.toast,.coach{animation-name:popc}@keyframes popc{0%{opacity:0;margin-top:8px}}@keyframes fade{0%{opacity:0}}@keyframes starIn{0%{opacity:0;transform:scale(0)rotate(-90deg)}}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{transition:none!important;animation:none!important}@media (width<=640px){.hud-title .small{display:none}.hud.top{flex-wrap:wrap}.hud-stats{gap:8px;padding:6px 10px;font-size:.9em}.hud.bottom .btn{padding:.5em .8em;font-size:.9em}.rotate-row{grid-template-columns:48px 56px 48px}.btn.round{width:48px;height:48px}}.version{color:var(--muted);letter-spacing:.04em;margin:0;font-size:.75em;font-weight:700}.home .version{pointer-events:none;padding-bottom:env(safe-area-inset-bottom)}.game-version{left:max(10px, env(safe-area-inset-left));bottom:calc(6px + env(safe-area-inset-bottom));z-index:2;pointer-events:none;opacity:.7;position:absolute}.update-chip{top:calc(64px + env(safe-area-inset-top));color:#7a5600;z-index:3;background:#fff3cd;border-radius:999px;padding:6px 12px;font-size:.85em;font-weight:800;position:absolute;right:12px;box-shadow:0 2px 8px #0000001a}:root[data-theme=dark]{--ink:#e5ebee;--muted:#95a3ac;--accent:#3cc2b1;--card:#22282edb;--line:#ffffff1a;--shadow:0 8px 30px #00000073;--surface:#262c32;--bg-a:#2c3339;--bg-b:#191d21;--bg-c:#0d1013;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] .seg button.on,:root[data-theme=dark] .btn.primary{color:#0d1013}:root[data-theme=dark] .badge,:root[data-theme=dark] .update-chip{color:#ffe08a;background:#4a3f1c}:root[data-theme=dark] .stars .star{color:#4a525a}.objects-layout{grid-template-columns:1fr 1fr;align-items:start;gap:16px;width:min(980px,100%);display:grid}.object-preview{aspect-ratio:1;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);position:relative;overflow:hidden}.object-preview p{text-align:center;margin:0;position:absolute;bottom:8px;left:12px;right:12px}.object-cards{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.object-card{border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font-size:.85em;font-weight:700;display:flex}.object-card.on{border-color:var(--accent);box-shadow:0 0 0 3px #b3263a4d}.object-icon{font-size:1.8em}.objects-btn{border-color:var(--accent)}@media (width<=720px){.objects-layout{grid-template-columns:1fr}.object-preview{aspect-ratio:4/3}}.free-shape{width:min(560px,100%);margin-bottom:12px}.free-shape .seg button{min-height:48px;font-size:1.05em}.world h3{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.world-badge{background:var(--accent);color:#fff;border-radius:999px;padding:3px 10px;font-size:.75em}.world-locked{opacity:.6}.world-path{flex-wrap:wrap;align-items:flex-start;gap:10px 0;display:flex}.path-step{flex-direction:column;align-items:center;width:130px;display:flex;position:relative}.path-line{background:var(--line);border-radius:3px;width:calc(100% - 68px);height:6px;position:absolute;top:38px;right:calc(50% + 34px)}.path-line.lit{background:var(--accent)}.path-node{border:4px solid var(--accent);background:var(--surface);width:76px;height:76px;color:var(--ink);font:inherit;cursor:pointer;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;transition:transform .15s;display:flex;box-shadow:0 3px 10px #00000026}.path-node:hover:not(:disabled){transform:scale(1.06)}.path-node.done{background:var(--accent);color:#fff}.path-node.done .stars .star.on{color:#fff3b0}.path-node.current{animation:1.6s ease-in-out infinite nodePulse}.path-node.locked{border-color:var(--line);cursor:default;opacity:.7}.node-num{font-size:1.15em;font-weight:900}.node-info{text-align:center;flex-direction:column;align-items:center;margin-top:6px;padding:0 4px;font-size:.82em;line-height:1.25;display:flex}@keyframes nodePulse{0%,to{box-shadow:0 0 #b3263a8c}50%{box-shadow:0 0 0 12px #b3263a00}}@media (width<=640px){.path-step{width:33.3%}}.steps-badge{left:50%;top:calc(70px + env(safe-area-inset-top));color:#2b1405;z-index:4;pointer-events:none;background:#ff9a5c;border-radius:999px;padding:8px 16px;font-weight:900;position:absolute;transform:translate(-50%);box-shadow:0 4px 14px #0003}.credits-title{margin:16px 0 6px}.photo-credits{max-height:40vh;margin:0 0 8px;padding-left:18px;font-size:.85em;overflow-y:auto}.photo-credits a{color:var(--accent);font-weight:700}.full-note{color:#8a5cf6;font-weight:700}.full-version .full-list{text-align:left;margin:8px 0 12px}.player-code{background:var(--surface);border:1px dashed var(--line);border-radius:12px;padding:8px}.player-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;grid-template-columns:1fr auto;align-items:center;gap:8px 12px;padding:12px;display:grid}.player-code-big{letter-spacing:.06em;font-variant-numeric:tabular-nums;font-size:1.4em;font-weight:900}.player-state{background:var(--line);border-radius:999px;padding:4px 10px;font-size:.85em;font-weight:800}.player-state.on{color:#fff;background:#8a5cf6}.player-nick{flex-direction:column;grid-column:1/-1;gap:4px;display:flex}.player-nick input{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:8px 10px}.license-badge{border-radius:999px;margin:0 0 6px;padding:4px 14px;font-weight:900;display:inline-block}.license-badge.tester{color:#6b4b00;background:#ffe08a}.license-badge.full{color:#fff;background:#8a5cf6}.saved-game{flex-direction:column;gap:4px;display:flex}.saved-desc{opacity:.9;margin-top:2px;font-size:.72em;font-weight:600;display:block}.reference-bar{background:var(--accent,#4fb3a9);transform-origin:0;width:100%;height:5px;animation-name:shrink-bar;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;bottom:0;left:0}@keyframes shrink-bar{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.btn.help-ready{color:#3a2c00;background:#ffcc1a;box-shadow:0 0 0 3px #ffcc1a59}.modal.confirm{text-align:center;max-width:340px}@media (width<=640px){.rotate-pad{top:calc(108px + env(safe-area-inset-top));gap:4px;padding:6px}}.backup-card{background:var(--surface);border-radius:14px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.backup-card p{margin:0}.backup-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.backup-keys{flex-wrap:wrap;align-items:flex-end;gap:10px 18px;display:flex}.big-key{letter-spacing:.06em;font-size:1.25em;font-weight:900}.backup-form{flex-wrap:wrap;gap:6px;display:flex}.backup-form input{text-transform:uppercase;flex:110px;min-width:0;font-family:ui-monospace,monospace}.ok-text{color:#2a9d5c;font-weight:700}.warn-text{color:#c2410c;font-weight:700}.backup-notice{background:var(--card);border:2px solid var(--accent);text-align:center;border-radius:16px;padding:10px 14px}.backup-notice p{margin:0 0 8px}.update-row{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.license-free{flex-direction:column;align-items:center;gap:6px;margin-bottom:6px;display:flex}.license-badge.free{color:var(--ink);background:#2b3a4214;margin:0}.btn.full-btn{color:#fff;background:linear-gradient(135deg,#8a5cf6,#c084fc);border-color:#0000}.daily-btn.done{opacity:.8}.node-medals{font-size:.7em;line-height:1}.modal.register{text-align:left;max-width:480px;max-height:92vh;overflow-y:auto}.modal.register h2{text-align:center}.perks{gap:10px;margin:10px 0 14px;display:grid}.perk{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px}.perk-list{gap:6px;margin:0;padding-left:0;list-style:none;display:grid}.fake-ranking{filter:blur(1.6px);opacity:.85;margin-bottom:6px}.account-form{gap:10px;display:grid}.account-form label{gap:4px;display:grid}.account-form input{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:.7em .9em}.pin-input{letter-spacing:.4em;text-align:center;font-family:Consolas,monospace!important;font-size:2em!important}.gift{color:#6b4b00;background:#fff4d6;border-radius:14px;align-items:center;gap:12px;padding:10px 14px;display:flex}.gift-icon{font-size:2.2em}.skill{gap:6px;display:grid}.skill-head{justify-content:space-between;font-weight:800;display:flex}.skill-head strong{color:var(--accent);font-size:1.3em}.skill-bar{background:#2b3a421a;border-radius:999px;height:14px;overflow:hidden}.skill-fill{background:linear-gradient(90deg,#e9a0a8,#c9566a,#b3263a);border-radius:999px;height:100%;transition:width .8s ease-out}.skill.teaser .skill-fill{filter:blur(3px);opacity:.6}.rank-invite{gap:10px;display:grid}.streak{font-weight:800}.tabs{background:#2b3a420f;border-radius:999px;gap:4px;margin-top:10px;padding:4px;display:flex}.tabs button{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:1;min-height:40px;padding:.55em .4em;font-weight:800}.tabs button.on{background:var(--accent);color:#fff}.scope-row{flex-wrap:wrap;gap:8px;display:flex}.scope-row select{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:.5em .7em}.rank-list{gap:4px;margin-top:10px;display:grid}.rank-row{background:var(--card);border-radius:12px;grid-template-columns:2.4em 1fr auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.rank-row.me{color:#4a3600;background:#ffe8a3;outline:2px solid #e9c46a;font-weight:800}.rank-pos{text-align:center;font-weight:900}.rank-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rank-levels{display:block}.rank-metric{justify-items:end;line-height:1.2;display:grid}.rank-gap{text-align:center;color:var(--muted);letter-spacing:.3em}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:12px;width:min(100%,900px);margin:0 auto;display:grid}.theme-card{text-align:left;border:1px solid var(--line);background:var(--card);font:inherit;color:var(--ink);cursor:pointer;box-shadow:var(--shadow);border-radius:18px;justify-items:start;gap:4px;padding:14px 16px;display:grid}.theme-icon{font-size:2em}.free-chip{background:var(--accent);color:#fff;border-radius:999px;margin-left:4px;padding:1px 8px;font-weight:800}.theme-levels{gap:8px;display:grid}.level-row{text-align:left;border:1px solid var(--line);background:var(--card);font:inherit;color:var(--ink);cursor:pointer;border-radius:14px;grid-template-columns:2.2em 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.level-row.locked{opacity:.65}.level-row .level-num{text-align:center;font-size:1.2em;font-weight:900}.level-info{display:grid}.photo-maker{gap:10px;display:grid}.file-btn{text-align:center}.photo-preview{aspect-ratio:1;width:min(100%,320px);box-shadow:var(--shadow);border-radius:14px;justify-self:center}.modal.replay{gap:8px;display:grid}.replay-option{text-align:left;border:1px solid var(--line);background:var(--card);font:inherit;color:var(--ink);cursor:pointer;border-radius:14px;gap:2px;padding:10px 14px;display:grid}.replay-option.locked{opacity:.7}.badge.medal{color:#4a3600;background:#e9c46a}.full-page{gap:12px}.showcase{width:min(100%,720px);height:min(48vh,420px);box-shadow:var(--shadow);background:radial-gradient(at 50% 35%,#fff 0%,#e8ecef 55%,#c9d1d6 100%);border-radius:22px;flex:none;margin:0 auto;position:relative;overflow:hidden}[data-theme=dark] .showcase{background:radial-gradient(at 50% 35%,#3a4148 0%,#23292e 60%,#15191c 100%)}.showcase-caption{text-shadow:0 1px 6px #ffffffb3;justify-items:center;gap:6px;font-size:1.15em;display:grid;position:absolute;bottom:10px;left:0;right:0}.dots{gap:6px;display:flex}.dots button{cursor:pointer;background:#2b3a4240;border:0;border-radius:50%;width:10px;height:10px;padding:0}.dots button.on{background:var(--accent)}.full-lead{font-size:1.1em;font-weight:700}.perks-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px;margin:0 0 14px;padding:0;list-style:none;display:grid}.perks-grid li{grid-template-columns:2.2em 1fr;align-items:start;gap:8px;display:grid}.perks-grid li>span:last-child{display:grid}.perk-icon{font-size:1.6em}.buy-btn{background:linear-gradient(135deg,#009ee3,#00b1ea);justify-content:center;align-items:center;gap:12px;width:100%;padding:.9em 1.4em;font-size:1.35em;display:flex}.flag-ar{border-radius:3px;flex:none;box-shadow:0 0 0 1px #00000026}.price-note{text-align:center;justify-content:center;align-items:center;gap:6px;display:flex}.big-ok{text-align:center;font-size:1.2em;font-weight:800}.route{gap:16px;width:min(100%,560px);padding-bottom:20px;display:grid}.route-world{box-shadow:var(--shadow);border-radius:22px;padding:12px 12px 4px}.route-world h3{text-shadow:0 1px 4px #fff9;margin:4px 6px;font-size:1.35em}.route-world .world-badge{color:#fff}.route-board{width:100%;height:auto;display:block;overflow:visible}.route-node{cursor:pointer}.route-node.locked{cursor:default}.route-node circle,.route-node rect{filter:drop-shadow(0 3px 4px #00000047)}.route-label{fill:#24323a;font:900 19px Nunito,Segoe UI,sans-serif}.route-label.on,.route-mini.on{fill:#fff}.route-mini{fill:#24323a;letter-spacing:1px;font:800 13px Segoe UI,sans-serif}.route-icon{font-size:24px}.route-desc{fill:#24323a;paint-order:stroke;stroke:#ffffffbf;stroke-width:3px;font:800 14px Segoe UI,sans-serif}.route-sub-title{fill:#24323a;paint-order:stroke;stroke:#fffc;stroke-width:3px;font:900 16px Segoe UI,sans-serif}.route-pulse{animation:1.4s ease-in-out infinite routePulse}@keyframes routePulse{0%,to{opacity:.25}50%{opacity:1}}.route-btn{font-size:1.25em}.free-photo-note{color:#5a4200;background:#fff4d6;border-radius:12px;justify-items:start;gap:6px;padding:8px 12px;display:grid}.result-dock{left:0;right:0;bottom:max(10px, env(safe-area-inset-bottom));z-index:20;pointer-events:none;justify-content:center;padding:0 10px;display:flex;position:absolute}.result-dock .modal{pointer-events:auto;max-width:520px;padding:12px 16px;animation:.35s ease-out slideUp}.modal.result.compact h2{justify-content:center;align-items:center;gap:8px;margin:0 0 4px;font-size:1.3em;display:flex}.modal.result.compact .result-table{margin:4px auto;font-size:.95em}.modal.result.compact .result-table td{padding:2px 6px}.modal.result.compact>p.muted.small{display:none}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}.screen.game.won .hud.bottom,.screen.game.won .rotate-pad{display:none}.hud-title .small{font-size:.95em;font-weight:700}.tier-chip{padding:3px 12px;font-size:.95em}.hud-stats{font-size:1.1em}.rotate-row,.hud .btn,.toast{font-size:1.05em}.btn{background:var(--red);color:#fff;border-color:#0000}.btn:hover:not(:disabled){background:var(--red-dark)}.btn .muted,.btn .saved-desc{color:#ffffffd9}.btn.primary{background:var(--red)}.btn.ghost{color:var(--ink);background:0 0}.btn.ghost:hover:not(:disabled){background:#2b3a420f}.btn.danger{color:#fff;background:#8f2a20}.hud .btn,.rotate-pad .btn{background:var(--card);color:var(--ink);border:1px solid var(--line)}.hud .btn .muted{color:var(--muted)}.hud .btn.ghost{background:0 0;border-color:#0000}.seg button.on,.tabs button.on{background:var(--red);color:#fff}.stars .star{color:#2b3a4238}.stars .star.on,.result .stars .star.on{color:#ffc21a;-webkit-text-stroke:1.5px #a86b00;text-shadow:0 0 10px #ffc21aa6,0 2px #a86b00}.brand{justify-content:center;align-items:center;gap:10px;display:flex}.brand img{filter:drop-shadow(0 8px 14px #0000002e);width:clamp(84px,24vw,140px);height:auto}.brand-text{flex-direction:column;align-items:flex-end;display:inline-flex}.brand-text .logo{font-size:clamp(2.6rem,11vw,4.6rem)}.brand-sub{letter-spacing:.22em;color:var(--muted);margin-top:2px;font-size:clamp(.72rem,2.6vw,1rem);font-weight:800}.brand.small img{width:44px}.brand.small .logo{font-size:1.6rem}.version-block{text-align:center;pointer-events:none}.version-block .version+.version{margin-top:2px}.route-label{font:900 23px Nunito,Segoe UI,sans-serif!important}.route-mini{font:900 14px Segoe UI,sans-serif!important}.route-desc{paint-order:stroke;stroke-linejoin:round;fill:#1d262b!important;stroke:#ffffffeb!important;stroke-width:4.5px!important;font:700 16px Segoe UI,sans-serif!important}.route-desc.strong{font-weight:900!important}.route-sub-title{fill:#1d262b!important;stroke:#ffffffeb!important;stroke-width:4.5px!important;font:900 18px Segoe UI,sans-serif!important}.route-world h3{color:#1d262b;text-shadow:0 0 6px #ffffffe6,0 0 2px #fff!important;font-size:1.5em!important}.route-world .full-note,.route-world p.small{color:#1d262b;text-shadow:0 0 4px #ffffffe6;font-weight:700}.options-panel{gap:8px}.opt-title{color:var(--red);border-bottom:2px solid #b3263a33;margin:14px 0 2px;padding-bottom:4px;font-size:1.1em}.opt-title:first-child{margin-top:0}.opt-details{border:1px solid var(--line);border-radius:14px;margin-top:8px;padding:8px 12px}.opt-details summary{cursor:pointer;font-weight:800}.opt-details[open]{gap:8px;display:grid}.splash{z-index:100;background:#000;transition:opacity .5s;position:fixed;inset:0}.splash.leaving{opacity:0}.splash-brand{opacity:0;pointer-events:none;justify-content:center;transition:opacity .8s 1.2s,transform .8s 1.2s;display:flex;position:absolute;top:9%;left:0;right:0;transform:translateY(20px)}.splash-brand.show{opacity:1;transform:none}.splash-btn{position:absolute;bottom:12%;left:50%;transform:translate(-50%);width:auto!important;padding:.8em 2.4em!important}.splash-version{text-align:center;width:100%;color:var(--muted);font-size:.75em;font-weight:700;position:absolute;bottom:12px}.hud .btn:hover:not(:disabled),.rotate-pad .btn:hover:not(:disabled){background:var(--card)}.splash .logo,.splash .logo span{color:#fff}.splash .logo .pi{color:var(--red)}.splash .brand-sub{color:#ffffffd1}.splash-version{color:#ffffff80!important}.splash-brand{opacity:0;transform:translateY(16px);transition:opacity .9s 1.4s,transform .9s 1.4s!important}.splash-brand.show{animation:.9s 1.6s both brandIn}@keyframes brandIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.brand-text{align-items:flex-start!important}.brand-sub{padding-left:.2em}.darken{pointer-events:none;z-index:3;background:#000;animation:15s ease-in-out both darkenAnim;position:absolute;inset:0}@keyframes darkenAnim{0%{opacity:0}40%,60%{opacity:.8}to{opacity:0}}.free-continue{max-width:420px;margin-bottom:18px}html{accent-color:#b3263a;scrollbar-color:#b3263a transparent}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#b3263a;border-radius:8px}input[type=checkbox],input[type=radio],input[type=range]{accent-color:#b3263a}.btn{min-height:40px;padding:.5em 1.05em;font-size:.96em}.btn.big{padding:.62em 1.3em;font-size:1.04em}.seg button,.seg button.on,.tabs button,.tabs button.on{border:1.5px solid var(--line);color:var(--ink)!important;background:0 0!important}.seg button.on,.tabs button.on{font-weight:900;box-shadow:0 0 0 3px #b3263a1f;border:3px solid #b3263a!important}.opt-title{color:var(--ink)!important;border-bottom-color:#b3263a59!important}.continue-main{margin-bottom:14px;box-shadow:0 6px 18px #b3263a59}.free-continue{display:block;width:min(420px,100%)!important;margin:4px auto 16px!important}.route-pulse{transform-box:fill-box;transform-origin:50%;animation:1s ease-in-out infinite routeBlink!important}@keyframes routeBlink{0%,to{opacity:1}50%{opacity:.12}}.reset-box{gap:6px;display:grid}.reset-box input{font:inherit;border:1.5px solid var(--line);border-radius:12px;padding:.6em .8em}.object-thumb{object-fit:contain;pointer-events:none;width:34px;height:34px}.seg button.locked{opacity:.62;border-style:dashed!important}:root[data-theme=dark]{--accent:#b3263a}:root[data-theme=dark] .btn.primary,:root[data-theme=dark] .btn.primary .saved-desc{color:#fff}.form input[type=checkbox],.form input[type=range],input[type=checkbox],input[type=radio],input[type=range]{accent-color:#b3263a}.home .menu .btn:not(.continue-btn):not(.small){color:var(--ink);box-shadow:none;background:0 0;border:2.5px solid #b3263a}.home .menu .btn:not(.continue-btn):not(.small) .saved-desc{color:var(--muted)}.home .menu .btn:not(.continue-btn):not(.small):hover:not(:disabled){background:#b3263a1f}.home .menu .continue-btn{color:#fff;background:#b3263a;border-color:#0000;box-shadow:0 6px 18px #b3263a59}.continue-main{box-shadow:none;flex-shrink:0}.free-continue{white-space:normal;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:2px;height:auto!important;display:flex!important}.hud .rotate-row.off .btn.round,.rotate-pad .rotate-row.off .btn.round{animation:1.6s ease-in-out infinite controlOff;color:#fff!important;background:#b3263a!important;border-color:#7d1626!important}.rotate-row.off .small{color:#b3263a;font-weight:900;animation:1.6s ease-in-out infinite controlOff}@keyframes controlOff{0%,to{opacity:1}50%{opacity:.25}}.record-chip{color:#fff;background:#00000073;border-radius:999px;align-self:center;padding:3px 10px;font-size:.82em;font-weight:800}.improve-banner{text-align:center;background:var(--card);border:2.5px solid #b3263a;border-radius:16px;justify-items:center;gap:6px;width:min(900px,100%);margin-bottom:8px;padding:10px 14px;display:grid}.improve-banner .seg{justify-content:center}.route-best{fill:var(--ink);paint-order:stroke;stroke:var(--card,#fff);stroke-width:3px;font-size:13px;font-weight:800}.compare-record{justify-items:center;gap:2px;margin:4px 0;display:grid}.compare-record p{margin:0;font-weight:800}.compare-record .better{color:#c8901a}.compare-record .worse{color:var(--muted)}.badge.good{color:#fff;background:#c8901a}.darken.deep{animation-name:darkenDeep}@keyframes darkenDeep{0%{opacity:0}40%,60%{opacity:.95}to{opacity:0}}.brand img{width:auto;height:clamp(84px,24vw,140px)}.brand.small img{width:auto;height:44px}.brand{gap:clamp(12px,4vw,20px)}.seg{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:6px;display:grid!important}.seg[style*=--cols]{grid-template-columns:repeat(var(--cols), minmax(0, 1fr))}.seg button{text-align:center;justify-content:center;align-items:center;gap:.35em;min-height:48px;padding:.5em;line-height:1.15;display:flex}.sky-backdrop{pointer-events:none;position:absolute;inset:0;overflow:hidden}.sky-band{height:40%;position:absolute;top:0;left:0;right:0;overflow:hidden}.sky-photo,.sky-stars,.sky-clouds{background-position-y:0;background-repeat:repeat-x;position:absolute;inset:0}.sky-stars{mix-blend-mode:screen}.sky-backdrop .sky-twinkle{mix-blend-mode:screen;width:100%;position:absolute;inset:0 auto auto 0}.sky-moon{background:radial-gradient(circle, rgba(225, 233, 255, calc(var(--halo,.6) * .32)) 0%, rgba(200, 215, 255, calc(var(--halo,.6) * .12)) 24%, transparent 62%);will-change:transform;border-radius:50%;place-items:center;display:grid;position:absolute;top:0;left:0}.sky-backdrop .sky-moon canvas{filter:drop-shadow(0 0 3px #e6ecff59);width:31.25%;height:31.25%;position:absolute;inset:34.375% auto auto 34.375%}.sky-sun{mix-blend-mode:screen;will-change:transform;background:radial-gradient(circle,#fffaeb8c 0%,#ffeec82e 18%,#0000 55%);border-radius:50%;position:absolute;top:0;left:0}.sky-clouds{will-change:background-position}.sky-rain{height:var(--hz,40%);opacity:.55;background-image:repeating-linear-gradient(100deg,#0000 0 14px,#d2e1ff8c 14px 15px,#0000 15px 37px),repeating-linear-gradient(97deg,#0000 0 23px,#d2e1ff59 23px 24px,#0000 24px 51px);background-size:100% 90px,100% 140px;animation:.45s linear infinite skyRain;position:absolute;top:0;left:0;right:0;-webkit-mask-image:linear-gradient(#000 60%,#0000 100%);mask-image:linear-gradient(#000 60%,#0000 100%)}.sky-rain.still{animation:none}@keyframes skyRain{0%{background-position:0 0,0 0}to{background-position:-16px 90px,-10px 140px}}.sky-flash{height:var(--hz,45%);opacity:0;background:radial-gradient(at 60% 20%,#fffffff2,#c8d7ff80 45%,#0000 80%);position:absolute;top:0;left:0;right:0}.sky-flash.strike{animation:1.1s ease-out skyStrike}@keyframes skyStrike{0%{opacity:0}4%{opacity:.9}9%{opacity:.1}15%{opacity:.75}22%{opacity:.05}27%{opacity:.4}45%,to{opacity:0}}.challenge-list h3,.challenge-rank h3{margin:0 0 4px}.challenge-row{border-bottom:1px solid var(--line);grid-template-columns:52px 1fr auto;align-items:center;gap:10px;padding:9px 4px;display:grid}.challenge-row:last-child{border-bottom:0}.challenge-date{font-size:.92em;font-weight:800}.challenge-what{flex-direction:column;min-width:0;display:flex}.challenge-state{white-space:nowrap;font-weight:900}.challenge-row.ok .challenge-state{color:#c8901a}.challenge-row.miss .challenge-state{color:var(--muted)}.badge.muted-badge{border:1.5px solid var(--line);color:var(--muted);background:0 0}.extra-search{width:min(560px,100%);font:inherit;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;margin-bottom:10px;padding:.65em .9em}.carousel{touch-action:pan-y;-webkit-user-select:none;user-select:none;grid-template-columns:22% 1fr 22%;align-items:center;width:min(560px,100%);display:grid;position:relative}.carousel-main{flex-direction:column;grid-column:2;justify-content:center;align-items:center;height:280px;display:flex}.carousel-main>div:first-child{flex:1;width:100%;min-height:0}.carousel-main>img{max-height:220px}.carousel-side{opacity:.55;cursor:pointer;background:0 0;border:0;padding:0;transform:scale(.82)}.carousel-side.left{grid-column:1}.carousel-side.right{grid-column:3}.carousel-thumb{object-fit:contain;width:100%;max-height:200px;display:block}.carousel-thumb.placeholder{text-align:center;font-size:3em}.carousel-name{margin:4px 0 0;font-size:1.25em;font-weight:900}.carousel-dots{color:var(--muted);margin:0;font-size:.85em}.screen.extra{overflow-x:hidden}.carousel,.screen.extra{overflow:hidden}.screen.extra>header,.screen.extra>.extra-search,.screen.extra>.carousel{flex-shrink:0}.screen.extra>.carousel{height:300px}.extra-options{-webkit-overflow-scrolling:touch;flex:1;width:min(560px,100%);min-height:0;padding-bottom:12px;overflow-y:auto}.extra-options>.panel{width:100%;margin:0}.carousel{grid-template-columns:22% minmax(0,1fr) 22%}.carousel-main{width:100%;min-width:0;overflow:hidden}.hud .btn.help-q{min-width:44px;padding-left:.6em;padding-right:.6em}.modal.level-help ul{text-align:left;margin:.4em 0 1em;padding-left:1.2em}.modal.level-help li{margin:.45em 0;line-height:1.4}.carousel{position:relative;display:block!important}.carousel-track{grid-template-columns:22% minmax(0,1fr) 22%;align-items:center;height:100%;display:grid}.carousel-track.from-right{animation:.42s cubic-bezier(.2,.8,.2,1) carouselFromRight}.carousel-track.from-left{animation:.42s cubic-bezier(.2,.8,.2,1) carouselFromLeft}@keyframes carouselFromRight{0%{opacity:.35;transform:translate(34%)scale(.92)}to{opacity:1;transform:none}}@keyframes carouselFromLeft{0%{opacity:.35;transform:translate(-34%)scale(.92)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.carousel-track.from-right,.carousel-track.from-left{animation:none}}.rotate-row>.small{flex-direction:column;align-items:center;gap:2px;line-height:1.1;display:flex}.axis-badge{color:#fff;letter-spacing:.02em;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 4px;font-size:.78em;font-weight:800;display:inline-grid}.axis-badge.axis-x{background:#e63946}.axis-badge.axis-y{background:#2a9d4b}.axis-badge.axis-z{background:#1e88e5}.screen.extra>.carousel{width:min(560px,100% - 16px);height:300px;display:block!important}.wheel{touch-action:pan-y;-webkit-user-select:none;user-select:none;width:100%;height:100%;box-shadow:inset 0 0 0 1px var(--line), var(--shadow);cursor:grab;border-radius:22px;position:relative;overflow:hidden}.wheel:active{cursor:grabbing}.wheel>div:first-child{inset:0;position:absolute!important}.wheel-label{text-align:center;pointer-events:none;text-shadow:0 1px 6px #ffffffb3;position:absolute;bottom:8px;left:0;right:0}:root[data-theme=dark] .wheel-label{text-shadow:0 1px 6px #000c}.wheel .carousel-side{opacity:.75;width:38px;height:38px;color:var(--ink);cursor:pointer;z-index:2;background:#ffffff8c;border:0;border-radius:50%;padding:0;font-size:1.6em;line-height:1;position:absolute;top:42%;transform:translateY(-50%)}:root[data-theme=dark] .wheel .carousel-side{background:#0006}.wheel .carousel-side.left{left:8px}.wheel .carousel-side.right{right:8px}.screen.medallero{overflow-y:auto}.medal-list{width:min(560px,100%);padding-bottom:24px}.medal-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.medal-card{text-align:center;background:var(--card);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:12px 10px;display:flex}.medal-card .medal-icon{font-size:2.2em;line-height:1.1}.medal-card.locked{opacity:.55}.medal-card.locked .medal-icon{filter:grayscale()brightness(.8)}.medal-card.won{box-shadow:0 0 0 2px #f4c430 inset, var(--shadow)}.medal-date{color:#b8860b;font-weight:700}.medal-toast{left:50%;top:calc(14px + env(safe-area-inset-top));z-index:60;color:#3a2c00;font:inherit;text-align:left;cursor:pointer;background:linear-gradient(135deg,#fff6d5,#f4c430);border:0;border-radius:20px;align-items:center;gap:12px;padding:10px 18px;animation:.6s cubic-bezier(.2,1.4,.4,1) medalIn;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 28px #00000040}.medal-toast .medal-icon{font-size:2em;animation:1.2s ease-out medalSpin}@keyframes medalIn{0%{opacity:0;transform:translate(-50%,-140%)scale(.8)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes medalSpin{0%{transform:rotateY(0)scale(.6)}to{transform:rotateY(720deg)scale(1)}}@media (prefers-reduced-motion:reduce){.medal-toast,.medal-toast .medal-icon{animation:none}}.medal-toast b{white-space:nowrap}.world-preview{z-index:40;position:fixed;inset:0}.preview-top{top:calc(10px + env(safe-area-inset-top));z-index:5;justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;left:10px;right:10px}.preview-badge{background:var(--card);box-shadow:var(--shadow);border-radius:999px;padding:6px 12px;font-size:.9em;font-weight:700}.preview-skip{bottom:calc(24px + env(safe-area-inset-bottom));background:var(--card);z-index:5;cursor:pointer;border:0;border-radius:999px;padding:6px 14px;position:absolute;left:50%;transform:translate(-50%)}.preview-card p{margin:6px 0 12px}.preview-card .row{justify-content:center}.preview-top .btn{background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow)}.mode-badge{right:max(12px, env(safe-area-inset-right));top:calc(72px + env(safe-area-inset-top));z-index:3;color:#fff;pointer-events:none;box-shadow:var(--shadow);background:#0000008c;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.85em;font-weight:800;display:flex;position:absolute}.mode-badge.warn{animation:.4s steps(2,jump-none) infinite modeWarn}@keyframes modeWarn{0%{background:#b3263a;transform:scale(1.06)}to{background:#0000008c;transform:scale(1)}}@media (width<=600px){.mode-badge{top:calc(108px + env(safe-area-inset-top))}}@media (prefers-reduced-motion:reduce){.mode-badge.warn{background:#b3263a;animation:none}}.net-badge{right:calc(10px + env(safe-area-inset-right));top:calc(58px + env(safe-area-inset-top));z-index:55;color:#fff;max-width:min(320px,100vw - 32px);font:inherit;text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1e1e22b8;border:0;border-radius:14px;align-items:center;gap:8px;padding:4px 9px;font-size:.85rem;display:flex;position:fixed}.net-icon{font-size:1.05rem;line-height:1;position:relative}.net-icon:after{content:"";border-top:2px solid #ff6b6b;position:absolute;top:50%;left:-2px;right:-2px;transform:rotate(-35deg)}.net-saved{left:50%;bottom:calc(96px + env(safe-area-inset-bottom));z-index:55;color:#fff;pointer-events:none;background:#1a9e3f;border-radius:18px;padding:8px 16px;font-weight:700;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #00000040}.turnstile-box:not(:empty){justify-content:center;display:flex}.modal.level-help{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));text-align:left;flex-direction:column;padding:14px 16px;display:flex;overflow:hidden}.modal.level-help h3{text-align:center;margin:0 0 .3em}.level-help-body{flex:auto;min-height:0}.help-sec{margin:0 0 .45em}.help-sec h4{color:var(--accent,inherit);margin:0;font-size:.95em}.modal.level-help .help-sec ul{margin:.15em 0 0;padding-left:1.15em}.modal.level-help .help-sec li{margin:.15em 0;font-size:.9em;line-height:1.3}.help-actions{flex:none;justify-content:center;gap:10px;margin-top:8px}.pause-hourglass{animation:1s ease-in-out infinite hourglass-blink}@keyframes hourglass-blink{50%{opacity:.15}}.teach{pointer-events:none;z-index:6;position:absolute;inset:0}.teach-card{pointer-events:auto;bottom:calc(78px + env(safe-area-inset-bottom));background:var(--surface);width:min(420px,100% - 24px);box-shadow:var(--shadow);text-align:center;border-radius:18px;padding:10px 14px;animation:.3s ease-out popc;position:absolute;left:50%;transform:translate(-50%)}.teach-card p{margin:.25em 0;line-height:1.3}.teach-card .row{justify-content:center;gap:8px;margin-top:6px}.teach-title{font-size:1.1em;font-weight:700}.teach-step{margin:0!important}.teach-pre{color:#e8a400;font-weight:600}.teach-hand{pointer-events:none;opacity:0;filter:drop-shadow(0 4px 6px #0000004d);transform-origin:20px 4px;font-size:42px;position:absolute;top:-4px;left:-20px}.teach-ring{pointer-events:none;opacity:0;border:4px solid #00e05a;border-radius:50%;width:68px;height:68px;animation:1s ease-in-out infinite teach-ring-pulse;position:absolute;top:-34px;left:-34px;box-shadow:0 0 14px #00e05acc}.teach-ring>*{display:none}@keyframes teach-ring-pulse{50%{border-color:#fe0;box-shadow:0 0 2px #00e05a33}}.teach-ring.fill{background:conic-gradient(#00e05a calc(var(--p,0) * 360deg), #ffffff59 0);border:none;animation:none;box-shadow:0 0 10px #00000059;-webkit-mask:radial-gradient(circle,#0000 52%,#000 54%);mask:radial-gradient(circle,#0000 52%,#000 54%)}.press-ring{z-index:7;position:fixed}body.teach-tools .rotate-pad .btn.round{animation:.9s ease-in-out infinite teach-btn}@keyframes teach-btn{50%{transform:scale(1.08);box-shadow:0 0 0 4px #fe0,0 0 16px #fe0}}
