:root{--ink:#2b2350;--ink-soft:#6b6590;--ink-faint:#a39fc0;--card:#ffffffd1;--card-solid:#fff;--line:#2b235014;--pink:#ff4d8d;--coral:#ff7a59;--sun:#ffc83d;--sky:#3fb6ff;--mint:#2fd3a0;--grape:#8b6cff;--grad-hot:linear-gradient(135deg, #ff8a5b 0%, #ff4d8d 100%);--grad-cool:linear-gradient(135deg, #4cc9ff 0%, #7b6cff 100%);--grad-gold:linear-gradient(135deg, #ffd85c 0%, #ffaa2b 100%);--grad-mint:linear-gradient(135deg, #46e0b0 0%, #17b890 100%);--shadow-sm:0 4px 14px #46328c1f;--shadow-md:0 12px 34px #46328c2e;--shadow-lg:0 24px 60px #46328c40;--r-lg:26px;--r-md:18px;--r-sm:12px;--font-display:"Fredoka", "Nunito", system-ui, sans-serif;--font-body:"Nunito", system-ui, -apple-system, sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:none;user-select:none;background:#bfe8ff;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.hidden{display:none!important}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.stage{background:radial-gradient(120% 70% at 50% 100%,#fff4e6 0%,#fff4e600 60%),linear-gradient(#6cc8ff 0%,#a9e0ff 38%,#ffe3ef 72%,#fff1dc 100%);position:fixed;inset:0;overflow:hidden}#game3DCanvas{z-index:1;width:100%;height:100%;display:block;position:absolute;inset:0}.sky-layer{z-index:0;pointer-events:none;opacity:0;transition:opacity 2.6s;position:absolute;inset:0;overflow:hidden}.stage.instant .sky-layer{transition:none}.stage[data-theme=station] .sky-station,.stage[data-theme=haunted] .sky-haunted{opacity:1}.sky-station{background:radial-gradient(110% 60% at 50% 100%,#fffbe8 0%,#fffbe800 60%),linear-gradient(#4fbdff 0%,#93dcff 38%,#e3f6ff 70%,#fff4df 100%)}.sky-sun{background:radial-gradient(circle,#fffbe0 0 55%,#ffe58a 75%,#ffe58a00 76%);border-radius:50%;width:11vmin;height:11vmin;position:absolute;top:10%;left:14%;box-shadow:0 0 60px 20px #ffec968c}.sky-haunted{background:radial-gradient(90% 45% at 50% 100%,#ffa87899 0%,#ffa87800 60%),linear-gradient(#1d1545 0%,#3a2b73 28%,#74559f 52%,#a874a6 70%,#ee9f88 100%)}.sky-stars{background-image:radial-gradient(1.6px 1.6px at 8% 18%,#fff 60%,#0000 62%),radial-gradient(1.2px 1.2px at 17% 42%,#fff 60%,#0000 62%),radial-gradient(2px 2px at 26% 12%,#fff6c9 60%,#0000 62%),radial-gradient(1.4px 1.4px at 34% 30%,#fff 60%,#0000 62%),radial-gradient(1.2px 1.2px at 45% 8%,#fff 60%,#0000 62%),radial-gradient(1.8px 1.8px at 52% 36%,#e6dcff 60%,#0000 62%),radial-gradient(1.2px 1.2px at 61% 16%,#fff 60%,#0000 62%),radial-gradient(1.6px 1.6px at 69% 44%,#fff 60%,#0000 62%),radial-gradient(1.2px 1.2px at 88% 26%,#fff 60%,#0000 62%),radial-gradient(2px 2px at 94% 10%,#fff6c9 60%,#0000 62%),radial-gradient(1.2px 1.2px at 4% 52%,#fff 60%,#0000 62%),radial-gradient(1.4px 1.4px at 39% 56%,#fff 60%,#0000 62%);animation:3.2s ease-in-out infinite alternate twinkle;position:absolute;inset:0 0 50%}@keyframes twinkle{0%{opacity:.55}to{opacity:1}}.moon{background:radial-gradient(circle at 62% 38%,#d6c48c8c 0 9%,#0000 10%),radial-gradient(circle at 38% 64%,#d6c48c80 0 12%,#0000 13%),radial-gradient(circle at 70% 70%,#d6c48c73 0 6%,#0000 7%),radial-gradient(circle at 35% 35%,#fffbea 0 40%,#f6e7b0 70%,#ecd690 100%);border-radius:50%;width:12vmin;height:12vmin;animation:5s ease-in-out infinite alternate moonglow;position:absolute;top:8%;right:13%;box-shadow:0 0 50px 14px #fff0be73,0 0 140px 50px #c8aaff47}@keyframes moonglow{to{box-shadow:0 0 60px 20px #fff0be8c,0 0 170px 60px #c8aaff59}}.sky-mist{filter:blur(6px);background:radial-gradient(#e8d6ff59,#e8d6ff00 70%);width:200%;height:16%;position:absolute;left:-50%}.sky-mist.m1{animation:46s linear infinite mist;top:44%}.sky-mist.m2{opacity:.7;animation:64s linear infinite reverse mist;top:52%}@keyframes mist{0%{transform:translate(0)}to{transform:translate(25%)}}.zone-card{z-index:13;left:50%;top:calc(18% + var(--safe-t));box-shadow:var(--shadow-lg);pointer-events:none;white-space:nowrap;background:#ffffffeb;border-radius:26px;align-items:center;gap:14px;padding:12px 26px 12px 12px;animation:.7s cubic-bezier(.2,.9,.3,1.4) zonein;display:flex;position:absolute;transform:translate(-50%)}.zone-card.out{animation:.5s forwards zoneout}@keyframes zonein{0%{opacity:0;transform:translate(-50%,-40px)scale(.7)}}@keyframes zoneout{to{opacity:0;transform:translate(-50%,-30px)scale(.9)}}.zc-icon{background:var(--grad-hot);border-radius:20px;place-items:center;width:62px;height:62px;font-size:34px;animation:.5s ease-in-out infinite alternate hintbounce;display:grid;box-shadow:inset 0 -4px #0000001f}.zc-text{flex-direction:column;line-height:1.1;display:flex}.zc-text small{letter-spacing:2px;color:var(--ink-faint);font-size:11px;font-weight:900}.zc-text strong{font-family:var(--font-display);font-size:30px}.zc-text em{color:var(--ink-soft);font-size:13px;font-style:normal;font-weight:800}.zone-card[data-theme=haunted]{background:#2b2245eb}.zone-card[data-theme=haunted] .zc-icon{background:linear-gradient(135deg,#ffb347,#ff6b2b)}.zone-card[data-theme=haunted] strong{color:#ffb347}.zone-card[data-theme=haunted] em,.zone-card[data-theme=haunted] small{color:#c9b8ff}.zone-card[data-theme=station] .zc-icon{background:var(--grad-cool)}.zone-card[data-theme=town] .zc-icon{background:var(--grad-gold)}.fx-flash.storm{background:#e8deff99}.fx-speedlines{pointer-events:none;z-index:3;opacity:0;background:repeating-conic-gradient(at 50% 42%,#fff0 0deg 5deg,#ffffff8c 5.4deg 5.8deg,#fff0 6.2deg 11deg);transition:opacity .4s;animation:.35s linear infinite speedspin;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 42%,#0000 38%,#000 75%);mask-image:radial-gradient(circle at 50% 42%,#0000 38%,#000 75%)}@keyframes speedspin{to{transform:rotate(4deg)scale(1.02)}}.fx-flash{pointer-events:none;z-index:4;opacity:0;background:radial-gradient(circle,#fff0 30%,#ff4d8d73 100%);transition:opacity .25s;position:absolute;inset:0}.fx-flash.on{opacity:1;transition:none}.fx-flash.gold{background:radial-gradient(circle,#fff0 30%,#ffc83d80 100%)}.fx-popups{pointer-events:none;z-index:6;position:absolute;inset:0;overflow:hidden}.popup{font-family:var(--font-display);color:#fff;white-space:nowrap;text-shadow:0 2px #2b235059,0 6px 18px #2b235040;-webkit-text-stroke:1px #2b235040;font-size:22px;font-weight:700;animation:1s cubic-bezier(.2,.9,.3,1.3) forwards popup;position:absolute;transform:translate(-50%,-50%)}.popup.coin{color:#ffd23f;font-size:18px}.popup.big{color:#fff;font-size:34px}.popup.pink{color:#ff5f9e}.popup.mint{color:#36e2ac}.popup.sky{color:#59c8ff}@keyframes popup{0%{opacity:0;transform:translate(-50%,-20%)scale(.4)}18%{opacity:1;transform:translate(-50%,-60%)scale(1.15)}35%{transform:translate(-50%,-70%)scale(1)}to{opacity:0;transform:translate(-50%,-160%)scale(.95)}}.fx-confetti{pointer-events:none;z-index:40;width:100%;height:100%;position:absolute;inset:0}.hud{z-index:8;pointer-events:none;padding:calc(14px + var(--safe-t)) 16px calc(14px + var(--safe-b));position:absolute;inset:0}.hud-left{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.score-card{background:var(--card);-webkit-backdrop-filter:blur(14px)saturate(1.4);border-radius:var(--r-md);box-shadow:var(--shadow-sm);border:1px solid #ffffffb3;min-width:160px;padding:10px 16px 9px}.score-row{align-items:center;gap:10px;display:flex}.score-row strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.5px;font-size:34px;font-weight:700;line-height:1}.multi-chip{font-family:var(--font-display);color:#fff;background:var(--grad-hot);border-radius:999px;padding:3px 9px;font-size:14px;font-weight:700;box-shadow:0 4px 10px #ff4d8d59}.multi-chip.boost{background:var(--grad-gold);color:#6b3d00;animation:.6s ease-in-out infinite alternate wobble}@keyframes wobble{0%{transform:rotate(-6deg)scale(1.05)}to{transform:rotate(6deg)scale(1.12)}}.score-sub{color:var(--ink-soft);letter-spacing:.3px;justify-content:space-between;gap:14px;margin-top:4px;font-size:12px;font-weight:800;display:flex}.score-sub b{color:var(--ink)}.coin-card,.kcal-card{background:var(--card);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow-sm);border:1px solid #ffffffb3;border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 6px;display:flex}.coin-card strong,.kcal-card strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:20px}.coin-card.bump{animation:.25s bump}@keyframes bump{50%{transform:scale(1.14)}}.kcal-card{padding-left:10px}.kcal-card small{color:var(--ink-soft);font-weight:800}.coin-ico{background:radial-gradient(circle at 35% 30%,#fff6c4 0 18%,#0000 19%),radial-gradient(circle,#ffd84a 0 52%,#f5a623 53% 64%,#ffcf3a 65%);border-radius:50%;flex:none;width:26px;height:26px;display:inline-block;box-shadow:inset 0 -2px #b4640059,0 2px 6px #f5a62373}.coin-ico.sm{vertical-align:-3px;width:18px;height:18px}.hud-right{top:calc(14px + var(--safe-t));pointer-events:auto;position:absolute;right:172px}.corner-controls{z-index:30;top:calc(14px + var(--safe-t));gap:8px;display:flex;position:absolute;right:16px}.icon-btn{background:var(--card);-webkit-backdrop-filter:blur(14px);width:46px;height:46px;box-shadow:var(--shadow-sm);color:var(--ink);border:1px solid #ffffffbf;border-radius:15px;place-items:center;font-size:19px;transition:transform .15s,box-shadow .15s;display:grid}.icon-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.icon-btn:active{transform:scale(.94)}.power-bar{flex-direction:column;gap:10px;display:flex;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.power-item{background:var(--card);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:8px;padding:5px 12px 5px 5px;animation:.35s cubic-bezier(.2,.9,.3,1.3) slidein;display:flex}.power-item .pi-ico{color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:18px;display:grid}.power-item .pi-track{background:#2b23501a;border-radius:999px;width:74px;height:8px;overflow:hidden}.power-item .pi-fill{border-radius:999px;height:100%}.power-item.ending{animation:.3s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.4}}@keyframes slidein{0%{opacity:0;transform:translate(-30px)}}.combo-chip{right:16px;top:calc(78px + var(--safe-t));background:var(--grad-cool);color:#fff;font-family:var(--font-display);opacity:0;border-radius:999px;align-items:baseline;gap:6px;padding:7px 14px;transition:opacity .2s,transform .25s cubic-bezier(.2,.9,.3,1.6);display:flex;position:absolute;transform:scale(.6);box-shadow:0 8px 20px #5b6cff59}.combo-chip.on{opacity:1;transform:scale(1)}.combo-chip.pop{animation:.25s bump}.combo-chip span{letter-spacing:1px;opacity:.9;font-size:12px}.combo-chip strong{font-size:22px}.boost-chip{left:50%;bottom:calc(16px + var(--safe-b));background:var(--card);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);color:var(--ink);border-radius:999px;align-items:center;gap:10px;padding:6px 16px 6px 6px;transition:background .3s,box-shadow .3s,transform .3s;display:flex;position:absolute;transform:translate(-50%)}.boost-ico{background:#eeeaff;border-radius:50%;place-items:center;width:38px;height:38px;font-size:20px;display:grid}.boost-txt{flex-direction:column;line-height:1.1;display:flex}.boost-txt strong{font-family:var(--font-display);font-size:16px}.boost-txt small{opacity:.75;font-size:11px;font-weight:800}.boost-on{display:none}.boost-chip.on{background:var(--grad-mint);color:#fff;animation:1s ease-in-out infinite breathe-mint;transform:translate(-50%)scale(1.06);box-shadow:0 10px 26px #17b89073}.boost-chip.on .boost-ico{background:#ffffff4d;animation:.3s ease-in-out infinite alternate hintbounce}.boost-chip.on .boost-on{display:block}.boost-chip.on .boost-off{display:none}@keyframes breathe-mint{50%{box-shadow:0 14px 34px #17b890b3}}.speed-chip{right:16px;bottom:calc(16px + var(--safe-b));background:var(--card);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);letter-spacing:1px;color:var(--ink-soft);border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:11px;font-weight:900;display:flex;position:absolute}.speed-chip strong{font-family:var(--font-display);color:var(--ink);letter-spacing:0;text-align:right;min-width:38px;font-size:16px}.pace-track{background:#2b23501a;border-radius:999px;width:90px;height:8px;overflow:hidden}#paceFill{background:linear-gradient(90deg,#46e0b0,#ffc83d,#ff4d8d);border-radius:999px;width:0;height:100%;transition:width .2s}.game-message{z-index:12;text-align:center;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:26%;left:50%;transform:translate(-50%,-50%)}.game-message strong{font-family:var(--font-display);color:#fff;text-shadow:0 4px #ff4d8d,0 10px 30px #ff4d8d73;font-size:clamp(54px,11vw,120px);font-weight:700;line-height:1;animation:.5s cubic-bezier(.2,.9,.3,1.5) countpop}.game-message span{color:var(--ink);background:var(--card);box-shadow:var(--shadow-sm);border-radius:999px;padding:8px 18px;font-size:18px;font-weight:900}.game-message span:empty{display:none}.game-message.small strong{font-size:clamp(34px,6vw,64px)}.game-message.urgent strong{animation:.8s ease-in-out infinite throb}@keyframes countpop{0%{opacity:0;transform:scale(2.2)}}@keyframes throb{50%{transform:scale(1.08)}}.tutorial-hint{z-index:11;background:var(--card-solid);box-shadow:var(--shadow-md);pointer-events:none;border-radius:999px;align-items:center;gap:12px;padding:10px 22px 10px 10px;animation:.35s cubic-bezier(.2,.9,.3,1.5) hintpop;display:flex;position:absolute;top:22%;left:50%;transform:translate(-50%)}.tutorial-hint .hint-ico{color:#fff;background:var(--grad-hot);border-radius:50%;place-items:center;width:48px;height:48px;font-size:24px;animation:.5s ease-in-out infinite alternate hintbounce;display:grid}.tutorial-hint strong{font-family:var(--font-display);font-size:26px}@keyframes hintpop{0%{opacity:0;transform:translate(-50%)scale(.5)}}@keyframes hintbounce{to{transform:translateY(-6px)}}.toast{z-index:20;left:50%;top:calc(16px + var(--safe-t));background:var(--card-solid);box-shadow:var(--shadow-md);border-radius:18px;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:10px 18px 10px 10px;animation:.45s cubic-bezier(.2,.9,.3,1.4) toastin;display:flex;position:absolute;transform:translate(-50%)}.toast-ico{background:var(--grad-gold);border-radius:13px;flex:none;place-items:center;width:42px;height:42px;font-size:22px;display:grid}.toast strong{font-family:var(--font-display);font-size:17px;display:block}.toast span{color:var(--ink-soft);font-size:13px;font-weight:700}@keyframes toastin{0%{transform:translate(-50%,-120%)}}.camera-dock{z-index:9;left:16px;bottom:calc(16px + var(--safe-b));aspect-ratio:4/3;width:220px;box-shadow:var(--shadow-md);background:#22203a;border:3px solid #fff;border-radius:20px;transition:all .45s cubic-bezier(.2,.9,.3,1);position:absolute;overflow:hidden}.camera-dock.big{z-index:25;width:min(640px,86vw);bottom:50%;left:50%;transform:translate(-50%,50%)}.camera-dock.mini{width:120px}.camera-dock.mini .dock-chips,.camera-dock.mini .camera-message{display:none}.camera-stage{position:absolute;inset:0}.camera-stage video,.camera-stage canvas{object-fit:cover;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.camera-stage video{filter:saturate(1.1)brightness(1.05)}.camera-guide{pointer-events:none;opacity:0;transition:opacity .3s;position:absolute;inset:10%}.camera-dock.big .camera-guide{opacity:1}.guide-corner{opacity:.85;border:4px solid #fff;border-radius:6px;width:28px;height:28px;position:absolute}.guide-tl{border-bottom:0;border-right:0;top:0;left:0}.guide-tr{border-bottom:0;border-left:0;top:0;right:0}.guide-bl{border-top:0;border-right:0;bottom:0;left:0}.guide-br{border-top:0;border-left:0;bottom:0;right:0}.camera-message{color:var(--ink-soft);background:#ffffffe6;border-radius:12px;flex-direction:column;gap:1px;padding:6px 10px;font-size:11px;font-weight:800;display:flex;position:absolute;bottom:8px;left:8px;right:8px}.camera-message strong{color:var(--ink);letter-spacing:.5px;font-size:11px}.camera-dock.big .camera-message{padding:10px 14px;font-size:14px;bottom:16px;left:16px;right:16px}.camera-dock.big .camera-message strong{font-size:15px}.calibration-overlay{color:#fff;text-align:center;background:linear-gradient(#2b23500d,#2b235073);place-items:center;display:grid;position:absolute;inset:0}.calibration-label{letter-spacing:1.5px;background:var(--grad-hot);border-radius:999px;padding:5px 12px;font-size:11px;font-weight:900}.countdown-number{font-family:var(--font-display);text-shadow:0 6px 20px #00000040;font-size:84px;line-height:1.05}.calibration-overlay h3{text-shadow:0 2px 8px #00000059;margin:0 0 12px;font-size:18px;font-weight:900}.calibration-progress{background:#ffffff59;border-radius:999px;width:220px;height:10px;margin:0 auto;overflow:hidden}#calibrationProgressBar{background:var(--grad-mint);border-radius:999px;width:0;height:100%}.camera-dock:not(.big) .calibration-overlay h3,.camera-dock:not(.big) .calibration-label{display:none}.camera-dock:not(.big) .countdown-number{font-size:40px}.dock-chips{flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:8px;left:8px}.status-chip,.tracking-status{letter-spacing:.6px;color:var(--ink);background:#ffffffeb;border-radius:999px;align-items:center;gap:5px;padding:4px 8px;font-size:9px;font-weight:900;display:inline-flex}.status-chip{display:none}.camera-dock.big .status-chip{display:inline-flex}.status-dot{background:var(--ink-faint);border-radius:50%;width:7px;height:7px}.status-chip.connected .status-dot,.tracking-status.good .status-dot,.tracking-status.active .status-dot{background:var(--mint);box-shadow:0 0 0 3px #2fd3a040}.status-chip.error .status-dot,.tracking-status.bad .status-dot{background:var(--pink)}.tracking-status.warn .status-dot,.tracking-status.warning .status-dot{background:var(--sun)}.dock-toggle{z-index:2;background:#ffffffe6;border-radius:9px;width:26px;height:26px;font-weight:900;position:absolute;top:6px;right:6px}.camera-dock.big .dock-toggle{display:none}.screen{z-index:20;position:absolute;inset:0}.menu-screen{padding:calc(18px + var(--safe-t)) 22px calc(18px + var(--safe-b));pointer-events:none;flex-direction:column;animation:.5s fadein;display:flex}.menu-screen>*{pointer-events:auto}@keyframes fadein{0%{opacity:0}}.menu-top{justify-content:space-between;align-items:flex-start;gap:12px;padding-right:168px;display:flex}.logo{align-items:center;gap:12px;display:flex}.logo-mark{background:var(--grad-hot);border-radius:20px;place-items:center;width:62px;height:62px;display:grid;overflow:hidden;transform:rotate(-7deg);box-shadow:0 10px 24px #ff4d8d66,inset 0 -4px #0000001a,inset 0 3px #ffffff40}.mark-svg{overflow:visible}.mark-heart{transform-origin:34px 34px;animation:1.3s ease-in-out infinite heartbeat}.mark-pulse{stroke-dasharray:30;animation:1.3s linear infinite pulseline}.mark-spark{transform-origin:54px 10px;animation:1.6s ease-in-out infinite sparkle}@keyframes heartbeat{0%,40%,to{transform:scale(1)}12%{transform:scale(1.12)}24%{transform:scale(.98)}32%{transform:scale(1.07)}}@keyframes pulseline{0%{stroke-dashoffset:60px}to{stroke-dashoffset:0}}@keyframes sparkle{0%,to{opacity:.6;transform:scale(.6)rotate(0)}50%{opacity:1;transform:scale(1.15)rotate(45deg)}}.logo h1 span{background:linear-gradient(90deg,#fff1a8,#ffd0e4);color:#0000;text-shadow:none;filter:drop-shadow(0 3px #2b23502e);-webkit-background-clip:text;background-clip:text}.logo h1{font-family:var(--font-display);letter-spacing:-.5px;color:#fff;text-shadow:0 3px #2b23502e,0 10px 26px #3f78c859;margin:0;font-size:clamp(28px,4vw,42px);font-weight:700;line-height:.95}.logo h1 span{color:#fff1a8;margin-left:6px}.logo p{color:#2b2350a6;letter-spacing:.3px;margin:4px 0 0;font-size:13px;font-weight:800}.menu-wallet{align-items:center;gap:8px;display:flex}.pill-btn,.wallet-pill{background:var(--card);-webkit-backdrop-filter:blur(14px);height:46px;box-shadow:var(--shadow-sm);border:1px solid #ffffffbf;border-radius:999px;align-items:center;gap:7px;padding:0 16px 0 10px;font-weight:900;display:inline-flex;position:relative}.pill-btn{padding-left:14px;transition:transform .15s}.pill-btn:hover{transform:translateY(-2px)}.wallet-pill strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:20px}.wallet-pill.bump{animation:.3s bump}.dot-badge{background:var(--pink);border:2px solid #fff;border-radius:50%;width:11px;height:11px;animation:1s infinite throb;position:absolute;top:4px;right:6px}.menu-body{pointer-events:none;flex:1;grid-template-rows:1fr auto;grid-template-columns:minmax(250px,300px) 1fr minmax(260px,320px);gap:18px;min-height:0;padding-top:18px;display:grid}.menu-body>*{pointer-events:auto}.menu-side{flex-direction:column;grid-row:1/3;align-self:center;gap:14px;display:flex}.stat-card,.missions-card{background:var(--card);-webkit-backdrop-filter:blur(16px)saturate(1.3);border-radius:var(--r-lg);box-shadow:var(--shadow-md);border:1px solid #fffc;padding:16px 18px}.stat-line{color:var(--ink-soft);justify-content:space-between;padding:6px 0;font-size:14px;font-weight:800;display:flex}.stat-line+.stat-line{border-top:1px dashed var(--line)}.stat-line strong{color:var(--ink);font-family:var(--font-display);font-size:16px}.card-title{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.card-title span{font-family:var(--font-display);font-size:20px;font-weight:700}.card-title small{color:#fff;background:var(--grad-cool);border-radius:999px;padding:3px 9px;font-size:11px;font-weight:900}.card-foot{color:var(--ink-faint);margin:10px 0 0;font-size:12px;font-weight:700}.mission-list{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.mission-list li{grid-template-columns:30px 1fr;align-items:center;gap:10px;display:grid}.mission-list .m-ico{background:#f2efff;border-radius:10px;place-items:center;width:30px;height:30px;font-size:15px;display:grid}.mission-list .m-text{font-size:13px;font-weight:800;line-height:1.2}.mission-list .m-text small{color:var(--ink-faint);float:right;font-weight:800}.mission-list .m-track{background:#2b235014;border-radius:999px;height:7px;margin-top:4px;overflow:hidden}.mission-list .m-fill{background:var(--grad-cool);border-radius:999px;height:100%;transition:width .8s cubic-bezier(.2,.9,.3,1)}.mission-list li.done .m-ico{background:var(--grad-mint);color:#fff}.mission-list li.done .m-fill{background:var(--grad-mint)}.mission-list.compact{text-align:left;margin:12px 0 4px}.char-pick{grid-area:2/2;justify-content:center;align-items:center;gap:16px;display:flex}.char-info{text-align:center;min-width:210px}.char-tag{letter-spacing:1.2px;color:#fff;background:var(--grad-mint);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:900;display:inline-block}.char-tag.locked{background:linear-gradient(135deg,#b4add6,#8a83b5)}.char-tag.owned{background:var(--grad-cool)}.char-info h2{font-family:var(--font-display);color:#fff;text-shadow:0 3px #2b235033,0 8px 24px #2b235040;margin:6px 0 2px;font-size:40px;line-height:1}.char-info p{color:var(--ink);background:#ffffffbf;border-radius:999px;margin:0;padding:4px 12px;font-size:14px;font-weight:800;display:inline-block}.char-dots{justify-content:center;gap:6px;margin-top:10px;display:flex}.char-dots i{background:#ffffffb3;border-radius:999px;width:8px;height:8px;transition:all .25s}.char-dots i.on{background:#fff;width:22px}.arrow-btn{background:var(--card-solid);width:56px;height:56px;box-shadow:var(--shadow-md);color:var(--ink);border-radius:50%;place-items:center;padding-bottom:4px;font-size:34px;font-weight:700;line-height:1;transition:transform .15s;display:grid}.arrow-btn:hover{transform:scale(1.08)}.arrow-btn:active{transform:scale(.92)}.menu-actions{flex-direction:column;grid-area:1/3/3;align-self:center;gap:12px;display:flex}.play-btn{color:#fff;background:var(--grad-hot);text-align:left;border-radius:24px;align-items:center;gap:14px;padding:16px 22px 16px 16px;transition:transform .15s,box-shadow .15s;animation:2.2s ease-in-out infinite breathe;display:flex;box-shadow:0 14px 30px #ff4d8d6b,inset 0 -4px #0000001f}.play-btn:hover{transform:translateY(-3px)scale(1.02)}.play-btn:active{transform:scale(.97)}@keyframes breathe{50%{box-shadow:0 18px 40px #ff4d8d99,inset 0 -4px #0000001f}}.play-ico{background:#ffffff40;border-radius:18px;flex:none;place-items:center;width:54px;height:54px;font-size:24px;display:grid}.play-label strong{font-family:var(--font-display);letter-spacing:.5px;font-size:30px;line-height:1;display:block}.play-label small{opacity:.92;font-size:13px;font-weight:800}.unlock-btn{background:var(--grad-gold);color:#5b3500;box-shadow:0 14px 30px #ffaa2b6b,inset 0 -4px #0000001a}.unlock-btn.cant{color:#fff;box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#cfcae6,#aaa3cf);animation:none}.unlock-btn .play-label strong{font-size:24px}.ghost-btn{background:var(--card);-webkit-backdrop-filter:blur(12px);color:var(--ink);box-shadow:var(--shadow-sm);border:1px solid #fffc;border-radius:18px;padding:13px 18px;font-size:15px;font-weight:900;transition:transform .15s}.ghost-btn:hover{transform:translateY(-2px)}.start-error{color:#d6246b;background:#ffffffd9;border-radius:12px;margin:0;padding:8px 12px;font-size:13px;font-weight:800}.start-error:empty{display:none}.safety-line{color:#2b2350b3;background:#ffffff8c;border-radius:12px;margin:0;padding:8px 12px;font-size:12px;font-weight:800}.modal-screen{-webkit-backdrop-filter:blur(6px);z-index:26;background:#3c326e47;place-items:center;padding:16px;animation:.25s fadein;display:grid}.modal-card{background:var(--card-solid);width:min(420px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-lg);text-align:center;border-radius:30px;flex-direction:column;gap:10px;padding:26px 24px 20px;animation:.45s cubic-bezier(.2,.9,.3,1.3) cardin;display:flex;overflow:auto}@keyframes cardin{0%{opacity:0;transform:translateY(40px)scale(.9)}}.modal-card h2{font-family:var(--font-display);margin:0;font-size:34px}.modal-sub{color:var(--ink-soft);margin:0 0 6px;font-weight:700}.big-btn{color:#fff;font-family:var(--font-display);letter-spacing:.3px;background:var(--grad-hot);border-radius:20px;padding:16px;font-size:22px;font-weight:700;transition:transform .15s;box-shadow:0 12px 26px #ff4d8d61,inset 0 -4px #0000001f}.big-btn:hover{transform:translateY(-2px)}.big-btn:active{transform:scale(.97)}.big-btn.pulse{animation:1.6s ease-in-out infinite breathe}.big-btn.coin-btn{background:var(--grad-gold);color:#5b3500;justify-content:center;align-items:center;gap:6px;display:flex}.big-btn:disabled{filter:grayscale(.8);opacity:.6;cursor:not-allowed}.revive-ring{width:120px;height:120px;margin:0 auto;position:relative}.revive-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:#f0edff;stroke-width:10px}.ring-fg{fill:none;stroke:var(--pink);stroke-width:10px;stroke-linecap:round;stroke-dasharray:327;stroke-dashoffset:0}.revive-ring span{font-family:var(--font-display);place-items:center;font-size:46px;display:grid;position:absolute;inset:0}.revive-jumps{justify-content:center;gap:8px;display:flex}.revive-jumps i{background:#f0edff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:16px;font-style:normal;transition:all .2s;display:grid}.revive-jumps i.on{background:var(--grad-mint);color:#fff;transform:scale(1.12)}.over-badge{letter-spacing:1.5px;color:#fff;background:var(--grad-cool);border-radius:999px;align-self:center;padding:6px 14px;font-size:12px;font-weight:900}.over-badge.record{background:var(--grad-gold);color:#5b3500;animation:.5s ease-in-out infinite alternate wobble}.over-score{font-family:var(--font-display);font-variant-numeric:tabular-nums;background:var(--grad-hot);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:64px;line-height:1}.over-msg{color:var(--ink-soft);margin:0;font-weight:800}.over-grid{grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px;margin-top:4px;display:grid}.over-grid div{background:#f6f4ff;border-radius:14px;padding:9px 4px}.over-grid span{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.6px;font-size:11px;font-weight:900;display:block}.over-grid strong{font-family:var(--font-display);font-size:18px}.over-food{color:#b05a00;background:#fff4e6;border-radius:14px;padding:8px 12px;font-size:14px;font-weight:800}.next-unlock{text-align:left;background:#f6f4ff;border-radius:16px;padding:10px 12px}.nu-top{color:var(--ink-soft);justify-content:space-between;margin-bottom:6px;font-size:13px;font-weight:800;display:flex}.nu-top b{color:var(--ink)}.nu-track{background:#2b235014;border-radius:999px;height:10px;overflow:hidden}#nuFill{background:var(--grad-gold);border-radius:999px;width:0;height:100%;transition:width 1.2s cubic-bezier(.2,.9,.3,1)}.daily-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin:6px 0;display:grid}.daily-day{color:var(--ink-faint);background:#f6f4ff;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:12px;font-weight:900;display:flex}.daily-day b{font-family:var(--font-display);color:var(--ink);font-size:16px}.daily-day.claimed{color:#17a77a;background:#e5fbf3}.daily-day.today{background:var(--grad-gold);color:#5b3500;transform:scale(1.06);box-shadow:0 8px 20px #ffaa2b66}.daily-day.today b{color:#5b3500}.daily-day.big{grid-column:span 2}.box-reveal{z-index:15;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}.box-burst{background:repeating-conic-gradient(#ffd65a8c 0 12deg, transparent 12deg 30deg);border-radius:50%;width:260px;height:260px;animation:3s linear infinite spin;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);-webkit-mask-image:radial-gradient(circle,#000 20%,#0000 70%);mask-image:radial-gradient(circle,#000 20%,#0000 70%)}@keyframes spin{to{transform:translate(-50%,-50%)rotate(360deg)}}.box-prize{filter:drop-shadow(0 10px 18px #0003);font-size:72px;animation:.5s cubic-bezier(.2,.9,.3,1.6) countpop;position:relative}.box-reveal strong{font-family:var(--font-display);color:#fff;text-shadow:0 3px #ff9a2b,0 8px 20px #0003;font-size:30px;position:relative}.drawer{z-index:35;-webkit-backdrop-filter:blur(20px);width:min(380px,100%);box-shadow:var(--shadow-lg);padding:calc(16px + var(--safe-t)) 18px calc(20px + var(--safe-b));user-select:text;touch-action:pan-y;background:#fffffff5;animation:.35s cubic-bezier(.2,.9,.3,1) drawerin;position:absolute;top:0;bottom:0;right:0;overflow:auto}@keyframes drawerin{0%{transform:translate(100%)}}.drawer-head{justify-content:space-between;align-items:center;display:flex}.drawer-head h3{font-family:var(--font-display);margin:0;font-size:26px}.drawer-section{border-bottom:1px solid var(--line);flex-direction:column;gap:10px;padding:14px 0;display:flex}.drawer-section h4{margin:4px 0 0;font-size:14px;font-weight:900}.field{flex-direction:column;gap:6px;font-size:14px;font-weight:800;display:flex}.field small{color:var(--ink-faint);font-weight:700}.field input[type=range]{accent-color:var(--pink);width:100%}.toggle{cursor:pointer;align-items:center;gap:10px;font-size:14px;font-weight:800;display:flex}.toggle input{width:20px;height:20px;accent-color:var(--pink)}.howto{color:var(--ink-soft);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:13px;font-weight:700;display:flex}.howto b{color:var(--ink)}.diag{font-size:12px}.movement-display{background:#f6f4ff;border-radius:14px;align-items:center;gap:12px;padding:10px;display:flex}.movement-icon{background:var(--grad-cool);color:#fff;border-radius:12px;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.movement-state{font-family:var(--font-display);font-size:18px}.movement-subtitle{color:var(--ink-faint);font-weight:800}.direction-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.direction-card,.vertical-card{text-align:center;color:var(--ink-faint);background:#f6f4ff;border-radius:10px;padding:7px 4px;font-size:11px;font-weight:900;transition:all .15s}.vertical-card{grid-column:span 1}.direction-card.active,.direction-card.active-left,.direction-card.active-right,.direction-card.active-center,.vertical-card.active-jump,.vertical-card.active-slide{background:var(--grad-mint);color:#fff}.confidence-row{flex-direction:column;gap:6px;font-weight:800;display:flex}.confidence-track{background:#2b235014;border-radius:999px;height:8px;overflow:hidden}#confidenceBar{background:var(--grad-mint);width:0;height:100%}.mini-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.mini-grid div{background:#f6f4ff;border-radius:10px;justify-content:space-between;gap:6px;padding:6px 8px;display:flex}.mini-grid span{color:var(--ink-faint);font-weight:800}.mini-grid strong{text-align:right;text-overflow:ellipsis;white-space:nowrap;font-weight:900;overflow:hidden}.debug-toggle{background:#f6f4ff;border-radius:12px;justify-content:space-between;padding:10px 12px;font-weight:900;display:flex}.debug-panel{display:none}.debug-panel.open{display:block}.studio-btn{background:var(--grad-cool);color:#fff;border-radius:999px;align-items:center;gap:8px;margin-top:12px;padding:10px 18px 10px 12px;font-size:14px;font-weight:900;transition:transform .15s;display:inline-flex;position:relative;box-shadow:0 10px 24px #5b6cff66}.studio-btn span{font-size:18px}.studio-btn:hover{transform:translateY(-2px)scale(1.03)}.new-badge{letter-spacing:.8px;background:var(--grad-gold);color:#5b3500;border-radius:999px;padding:3px 7px;font-size:10px;font-style:normal;font-weight:900;animation:.6s ease-in-out infinite alternate wobble;position:absolute;top:-8px;right:-6px}.char-tag.me{background:var(--grad-cool)}.studio{z-index:34;-webkit-backdrop-filter:blur(20px);width:min(440px,100%);box-shadow:var(--shadow-lg);padding:calc(16px + var(--safe-t)) 18px calc(16px + var(--safe-b));touch-action:pan-y;user-select:none;background:#fffffff2;flex-direction:column;animation:.4s cubic-bezier(.2,.9,.3,1) drawerin;display:flex;position:absolute;top:0;bottom:0;right:0}.studio-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.studio-head h3{font-family:var(--font-display);margin:0;font-size:26px}.studio-head small{color:var(--ink-faint);font-weight:800}.studio-head-right{align-items:center;gap:8px;display:flex}.wallet-pill.small{height:38px;padding:0 12px 0 8px}.wallet-pill.small strong{font-size:16px}.studio-step{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex;overflow:auto}.scan-hero{text-align:center;background:linear-gradient(160deg,#eef8ff,#fff0f6);border-radius:24px;padding:20px 18px}.scan-hero-art{justify-content:center;align-items:center;gap:14px;font-size:52px;display:flex}.scan-hero-art .sh-arrow{color:var(--pink);font-size:26px;animation:.6s ease-in-out infinite alternate hintbounce}.scan-hero-art .sh-runner{animation:1.4s ease-in-out infinite blobby}.scan-hero h4{font-family:var(--font-display);margin:8px 0 4px;font-size:24px}.scan-hero p{color:var(--ink-soft);margin:0;font-size:14px;font-weight:700;line-height:1.4}.studio-cta{animation:2.2s ease-in-out infinite breathe}.studio-cta .play-label strong{font-size:22px}.upload-btn{text-align:center;cursor:pointer}.link-btn{color:var(--ink-soft);padding:6px;font-size:13px;font-weight:800;text-decoration:underline}.link-btn.danger{color:#d6246b}.privacy{text-align:center;color:var(--ink-faint);margin:0;font-size:12px;font-weight:800}.scan-frame{background:#22203a;border-radius:24px;flex:1;min-height:300px;position:relative;overflow:hidden}.scan-frame video,.scan-frame canvas{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.scan-frame video,.scan-frame.mirror canvas{transform:scaleX(-1)}.scan-frame canvas,.scan-frame.captured video{display:none}.scan-frame.captured canvas{display:block}.scan-guide{pointer-events:none;height:88%;position:absolute;top:6%;left:50%;transform:translate(-50%)}.scan-guide circle,.scan-guide path{fill:#ffffff14;stroke:#fff;stroke-width:1.2px;stroke-dasharray:3 3;opacity:.85}.scan-frame.captured .scan-guide{display:none}.scan-line{background:linear-gradient(#0000,#46e0b08c 85%,#46e0b0);height:90px;display:none;position:absolute;top:-90px;left:0;right:0;box-shadow:0 8px 22px #46e0b099}.scan-frame.analyzing .scan-line{animation:1.2s ease-in-out infinite alternate scanmove;display:block}@keyframes scanmove{to{top:calc(100% - 10px)}}.scan-dots{pointer-events:none;position:absolute;inset:0}.scan-dot{border:3px solid var(--mint);background:#fff;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;animation:.4s cubic-bezier(.2,.9,.3,1.6) backwards countpop;position:absolute;box-shadow:0 0 0 6px #46e0b04d}.scan-count{pointer-events:none;font-family:var(--font-display);color:#fff;text-shadow:0 6px 30px #00000059;place-items:center;font-size:120px;display:grid;position:absolute;inset:0}.scan-status{text-align:center;background:#ffffffeb;border-radius:14px;padding:10px 12px;font-size:14px;font-weight:900;position:absolute;bottom:12px;left:12px;right:12px}.scan-actions{grid-template-columns:1fr auto;gap:10px;display:grid}.me-card{background:#f6f4ff;border-radius:20px;align-items:center;gap:12px;padding:10px;display:flex}.me-card img{object-fit:cover;background:#e4e0f7;border-radius:14px;flex:none;width:74px;height:96px}.me-card img:not([src]),.me-card img[src=""]{display:none}.me-info{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.me-name{color:var(--ink-faint);letter-spacing:.5px;text-transform:uppercase;flex-direction:column;gap:3px;font-size:11px;font-weight:900;display:flex}.me-name input{font:inherit;font-family:var(--font-display);text-transform:none;letter-spacing:0;color:var(--ink);user-select:text;background:#fff;border:2px solid #0000;border-radius:12px;outline:none;padding:6px 10px;font-size:20px}.me-name input:focus{border-color:var(--sky)}.me-actions{flex-wrap:wrap;gap:6px;display:flex}.pill-btn.small{height:32px;padding:0 12px;font-size:12px}.studio-tabs{background:#f2efff;border-radius:16px;flex:none;gap:4px;padding:4px;display:flex;overflow-x:auto}.studio-tabs button{color:var(--ink-soft);white-space:nowrap;border-radius:12px;flex:1;padding:8px 10px;font-size:13px;font-weight:900}.studio-tabs button.on{color:var(--ink);box-shadow:var(--shadow-sm);background:#fff}.studio-panel{flex-direction:column;flex:1;gap:14px;min-height:120px;padding:2px;display:flex;overflow:auto}.opt-label{color:var(--ink-faint);letter-spacing:.6px;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:900}.swatches{flex-wrap:wrap;gap:9px;display:flex}.swatch{width:42px;height:42px;box-shadow:inset 0 0 0 2px #2b23501f, var(--shadow-sm);border-radius:50%;transition:transform .15s;position:relative}.swatch:hover{transform:scale(1.1)}.swatch.on{box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--pink)}.swatch .lock{color:#8a5a00;box-shadow:var(--shadow-sm);background:#fff;border-radius:999px;align-items:center;gap:2px;padding:1px 5px;font-size:10px;font-weight:900;display:flex;position:absolute;bottom:-6px;right:-6px}.swatch.photo:after{content:"📷";width:20px;height:20px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;place-items:center;font-size:11px;display:grid;position:absolute;bottom:-6px;right:-6px}.items{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.item{background:#f6f4ff;border-radius:16px;flex-direction:column;align-items:center;gap:3px;padding:10px 6px 8px;font-size:12px;font-weight:900;transition:transform .15s;display:flex;position:relative}.item:hover{transform:translateY(-2px)}.item .it-ico{font-size:26px}.item .it-price{color:#8a5a00;align-items:center;gap:3px;font-size:11px;display:flex}.item .it-price.free{color:#17a77a}.item .it-price.own{color:var(--ink-faint)}.item.on{box-shadow:0 0 0 3px var(--pink), var(--shadow-sm);background:#fff}.seg{gap:6px;display:flex}.seg button{background:#f6f4ff;border-radius:14px;flex:1;padding:10px;font-size:13px;font-weight:900}.seg button.on{background:var(--grad-cool);color:#fff}.studio-foot{border-top:1px solid var(--line);flex-direction:column;flex:none;gap:6px;padding-top:10px;display:flex}.cart{color:var(--ink-soft);text-align:center;min-height:18px;font-size:13px;font-weight:800}.cart b{color:#8a5a00}@media (width<=720px){.studio{border-radius:26px 26px 0 0;width:100%;height:62%;animation:.4s cubic-bezier(.2,.9,.3,1) sheetin;top:auto}.studio.tall{height:92%}@keyframes sheetin{0%{transform:translateY(100%)}}.studio-head h3{font-size:22px}.scan-hero-art{font-size:40px}.items{grid-template-columns:repeat(3,1fr)}.me-card img{width:52px;height:68px}.me-name input{padding:4px 8px;font-size:17px}}.adv-btn{background:linear-gradient(135deg,#7b6cff 0%,#b46cff 55%,#ff6fb1 100%);animation:none;position:relative;box-shadow:0 14px 30px #7b6cff6b,inset 0 -4px #0000001f}.adv-btn:hover{box-shadow:0 18px 38px #7b6cff8c,inset 0 -4px #0000001f}.adv-btn .new-badge{top:-8px;right:10px}.map-screen{z-index:24;padding:calc(14px + var(--safe-t)) 18px calc(14px + var(--safe-b));-webkit-backdrop-filter:blur(10px);touch-action:pan-y;background:linear-gradient(#ffffff8c,#ffffff40);flex-direction:column;animation:.3s fadein;display:flex}.map-head{align-items:center;gap:12px;margin-bottom:12px;padding-right:160px;display:flex}.map-title{flex:1}.map-title h2{font-family:var(--font-display);margin:0;font-size:34px;line-height:1}.map-title small{color:#b37a00;font-size:15px;font-weight:900}.map-chapters{scroll-behavior:smooth;flex-direction:column;flex:1;gap:16px;min-height:0;padding:4px 4px 140px;display:flex;overflow-y:auto}.chapter{color:#fff;box-shadow:var(--shadow-md);border-radius:28px;flex:none;padding:18px;position:relative;overflow:hidden}.chapter[data-theme=town]{background:linear-gradient(135deg,#ffb36b 0%,#ff6fb1 100%)}.chapter[data-theme=station]{background:linear-gradient(135deg,#4cc9ff 0%,#2fd3a0 100%)}.chapter[data-theme=haunted]{background:linear-gradient(135deg,#2b2245 0%,#6b4fa3 70%,#b46cff 100%)}.chapter:after{content:"";pointer-events:none;background:#ffffff1f;border-radius:50%;width:200px;height:200px;position:absolute;top:-40px;right:-40px}.ch-head{align-items:flex-start;gap:14px;display:flex}.ch-icon{background:#ffffff40;border-radius:18px;flex:none;place-items:center;width:58px;height:58px;font-size:32px;display:grid}.ch-head small{letter-spacing:2px;opacity:.85;font-size:11px;font-weight:900}.ch-head h3{font-family:var(--font-display);margin:0;font-size:26px;line-height:1.05}.ch-head p{opacity:.92;max-width:520px;margin:4px 0 0;font-size:13px;font-weight:700}.ch-stars{white-space:nowrap;background:#0000002e;border-radius:999px;margin-left:auto;padding:5px 12px;font-size:13px;font-weight:900}.ch-path{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px;display:grid;position:relative}.ch-path:before{content:"";border-top:4px dashed #ffffff80;position:absolute;top:34px;left:12%;right:12%}.lv-node{color:#fff;flex-direction:column;align-items:center;gap:5px;transition:transform .15s;display:flex;position:relative}.lv-node:hover:not(.locked){transform:translateY(-3px)}.lv-num{width:68px;height:68px;font-family:var(--font-display);color:var(--ink);background:#fff;border-radius:50%;place-items:center;font-size:28px;display:grid;box-shadow:0 8px 18px #0000002e,inset 0 -5px #2b23501f}.lv-node.done .lv-num{background:linear-gradient(#fff6c4,#ffd23f)}.lv-node.current .lv-num{animation:1.4s ease-in-out infinite nodepulse}@keyframes nodepulse{50%{transform:scale(1.06);box-shadow:0 0 0 10px #ffffff59,0 8px 18px #0000002e}}.lv-node.locked .lv-num{color:#fff;box-shadow:none;background:#ffffff59;font-size:22px}.lv-stars{gap:2px;font-size:16px;line-height:1;display:flex}.lv-stars i{color:#00000038;font-style:normal}.lv-stars i.on{color:#ffe14d;text-shadow:0 2px #a0640073}.lv-name{text-align:center;text-shadow:0 1px 4px #00000040;font-size:12px;font-weight:900}.chapter.locked .ch-path{filter:grayscale(.6);opacity:.6}.ch-lock{background:#0003;border-radius:12px;margin-top:12px;padding:8px 12px;font-size:13px;font-weight:900;display:inline-block}.level-sheet{left:50%;bottom:calc(16px + var(--safe-b));z-index:3;width:min(460px,100% - 24px);box-shadow:var(--shadow-lg);background:#fff;border-radius:28px;padding:18px 20px;animation:.35s cubic-bezier(.2,.9,.3,1.3) cardin;position:absolute;transform:translate(-50%)}.ls-head{justify-content:space-between;align-items:center;display:flex}.ls-badge{letter-spacing:1px;color:#fff;background:var(--grad-cool);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:900}.level-sheet h3{font-family:var(--font-display);margin:8px 0 2px;font-size:30px}.level-sheet p{color:var(--ink-soft);margin:0 0 10px;font-size:14px;font-weight:700}.ls-goals{text-align:left;flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.ls-goals li{background:#f6f4ff;border-radius:14px;align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:800;display:flex}.ls-goals li .g-star{color:#d6d1ee;font-size:20px}.ls-goals li.on .g-star{color:#ffc400;text-shadow:0 2px #a0640059}.ls-goals li.on{background:#fff8db}.ls-goals li.miss{opacity:.65}.ls-goals li .g-text{flex:1}.ls-goals li .g-reward{color:#8a5a00;align-items:center;gap:4px;font-size:12px;display:flex}.ls-actions{flex-direction:column;gap:8px;display:flex}.adv-bar{left:50%;top:calc(14px + var(--safe-t));background:var(--card);-webkit-backdrop-filter:blur(14px);width:min(440px,100% - 420px);min-width:220px;box-shadow:var(--shadow-sm);border-radius:18px;padding:8px 14px 10px;position:absolute;transform:translate(-50%)}.ab-top{justify-content:space-between;gap:10px;font-size:13px;font-weight:900;display:flex}.ab-top span{color:var(--ink-soft);white-space:nowrap;transition:color .3s}.ab-top span.done{color:#17a77a}.ab-track{background:#2b23501a;border-radius:999px;height:12px;margin-top:7px;position:relative}#abFill{background:var(--grad-hot);border-radius:999px;width:0;position:absolute;top:0;bottom:0;left:0}.ab-runner{filter:drop-shadow(0 2px 2px #0003);font-size:20px;position:absolute;top:50%;left:0;transform:translate(-50%,-55%)scaleX(-1)}.ab-flag{font-size:18px;position:absolute;top:50%;right:-6px;transform:translateY(-60%)}.stage.adv-mode .toast{top:calc(84px + var(--safe-t))}.stage.adv-mode .zone-card{top:calc(24% + var(--safe-t))}.complete-card{gap:8px}.cc-badge{letter-spacing:1.5px;color:#5b3500;background:var(--grad-gold);border-radius:999px;align-self:center;padding:6px 14px;font-size:12px;font-weight:900}.cc-stars{justify-content:center;gap:6px;margin:2px 0 4px;display:flex}.cc-stars i{color:#e6e1f7;font-size:64px;font-style:normal;line-height:1;transition:transform .35s cubic-bezier(.2,.9,.3,1.8),color .2s;transform:scale(.8)}.cc-stars i:nth-child(2){font-size:80px;transform:translateY(-8px)scale(.8)}.cc-stars i.on{color:#ffc400;text-shadow:0 4px #aa640066,0 0 24px #ffd23cb3;transform:scale(1.1)}.cc-stars i:nth-child(2).on{transform:translateY(-8px)scale(1.15)}.cc-reward{font-family:var(--font-display);justify-content:center;align-items:center;gap:8px;font-size:28px;display:flex}.cc-reward small{font-family:var(--font-body);color:var(--ink-soft);font-size:12px;font-weight:800}.cc-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.over-badge.fail{background:linear-gradient(135deg,#ff8a8a,#ff4d8d)}@media (width<=720px){.map-head{padding-right:140px}.map-head .wallet-pill{display:none}.map-title h2{font-size:26px}.ch-head p{display:none}.ch-path{gap:6px}.lv-num{width:54px;height:54px;font-size:22px}.ch-path:before{top:27px}.lv-name{font-size:10px}.adv-bar{width:calc(100% - 196px);min-width:0;left:auto;right:16px;top:calc(62px + var(--safe-t));padding:7px 10px 8px;transform:none}.ab-top{font-size:11px}.ab-top b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stage.adv-mode .combo-chip{top:calc(128px + var(--safe-t))}.cc-stars i{font-size:50px}.cc-stars i:nth-child(2){font-size:62px}}.loader{z-index:50;font-family:var(--font-display);color:#fff;background:linear-gradient(#6cc8ff 0%,#ffe3ef 100%);place-content:center;justify-items:center;gap:14px;font-size:20px;transition:opacity .5s;display:grid;position:absolute;inset:0}.loader.fade{opacity:0;pointer-events:none}.loader-mark{background:var(--grad-hot);border-radius:32px;place-items:center;width:104px;height:104px;animation:1.2s ease-in-out infinite loaderbob;display:grid;overflow:hidden;box-shadow:0 16px 40px #ff4d8d73,inset 0 -5px #0000001a}@keyframes loaderbob{50%{transform:translateY(-10px)rotate(-6deg)}}@keyframes blobby{50%{border-radius:50%;transform:translateY(-14px)rotate(45deg)}}@media (width<=1080px){.menu-body{grid-template-columns:1fr minmax(240px,300px)}.menu-side{display:none}.char-pick{grid-column:1}.menu-actions{grid-column:2}}@media (width<=720px){.menu-top{flex-direction:column;padding-right:0}.menu-wallet{top:calc(76px + var(--safe-t));position:absolute;right:16px}.corner-controls{gap:6px}.icon-btn{border-radius:13px;width:40px;height:40px;font-size:16px}.logo-mark{border-radius:16px;width:50px;height:50px}.logo-mark svg{width:42px;height:42px}.logo h1{font-size:26px}.logo h1 span{margin-left:0;display:block}.logo p{display:none}.menu-body{flex-direction:column;justify-content:flex-end;gap:12px;display:flex}.char-pick{gap:10px}.char-info{min-width:0}.char-info h2{font-size:32px}.arrow-btn{width:46px;height:46px;font-size:28px}.play-btn{padding:12px 16px 12px 12px}.play-ico{width:44px;height:44px}.play-label strong{font-size:24px}.safety-line{display:none}.hud-right{right:152px}.score-row strong{font-size:26px}.score-card{min-width:130px;padding:8px 12px}.camera-dock{width:150px}.boost-chip{bottom:calc(64px + var(--safe-b))}.speed-chip .pace-track{width:50px}.over-score{font-size:52px}.tutorial-hint{top:26%}}@media (height<=560px){.menu-side,.play-label small,.safety-line{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}