:root{--bg: #0e1220;--panel: rgba(17, 22, 38, .86);--panel-border: rgba(255, 255, 255, .09);--text: #dde4f5;--text-dim: #8b94ad;--accent: #4dd2ff;--accent2: #ff9d2e;--font-body: "Fredoka", "M PLUS Rounded 1c", "Segoe UI", system-ui, sans-serif;--font-display: "Lilita One", "Baloo 2", "Mochiy Pop One", sans-serif;--font-logo: "Mochiy Pop One", "Baloo 2", sans-serif;--font-pixel: "Press Start 2P", "Mochiy Pop One", monospace;font-family:var(--font-body);--candy-ink: #6b3fa0;--candy-ink-soft: #8a63c0;--candy-pink: #ff7fb4;--candy-pink-d: #e24d86;--candy-gold: #ffc75f;--candy-mint: #8fe3c4;--candy-sky: #9fd8ff;--candy-cream: #fff6fb;--candy-panel: rgba(255, 255, 255, .8)}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text)}.boot{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:18px;letter-spacing:.15em}.boot.error{color:#ff7676}.screen{position:absolute;inset:0;display:flex;flex-direction:column}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn{background:#ffffff12;border:1px solid rgba(255,255,255,.12);color:var(--text);padding:7px 14px;border-radius:8px;cursor:pointer;font-size:13px;transition:background .15s,transform .05s;white-space:nowrap}.btn:hover{background:#ffffff24}.btn:active{transform:scale(.97)}.btn.primary{background:#4dd2ff2e;border-color:#4dd2ff80}.btn.primary:hover{background:#4dd2ff4d}.btn.danger{background:#ff5a5a24;border-color:#ff5a5a66}.btn.danger:hover{background:#ff5a5a47}.btn.sm{padding:4px 10px}.spacer{flex:1}.menu-screen{overflow-y:auto;--text: #4a2b6a;--text-dim: #8a63c0;color:var(--text);background:linear-gradient(160deg,#fef1fb,#fdeaf6 30%,#eef0ff 62%,#e6f8ff) fixed}.menu-sky{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.menu-sky img{position:absolute;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.msky-plate{top:-14%;right:-12%;width:min(760px,62vw);opacity:.42;mix-blend-mode:multiply;animation:mskyDrift 16s ease-in-out infinite alternate}@keyframes mskyDrift{0%{transform:translate(-1.5%,1%) scale(1) rotate(-1deg)}to{transform:translate(1.5%,-1%) scale(1.05) rotate(1deg)}}.msky-bunting{top:-6px;left:-10px;width:min(40%,520px);transform-origin:0 0;animation:mskySway 6s ease-in-out infinite alternate}@keyframes mskySway{0%{transform:rotate(-1.6deg)}to{transform:rotate(1.4deg)}}.msky-mascot{filter:drop-shadow(0 10px 14px rgba(150,90,160,.22));animation:mskyBob 3.4s ease-in-out infinite}.msky-mascot.minto{left:1.5%;bottom:3%;width:min(150px,13vw);animation-delay:-.2s}.msky-mascot.momo{right:3%;top:15%;width:min(128px,11vw);animation-delay:-1.1s}.msky-mascot.nyaru{left:2.5%;top:34%;width:min(120px,10vw);animation-delay:-.7s}.msky-mascot.kingyo{right:15%;bottom:5%;width:min(130px,11vw);animation:mskySwim 4.2s ease-in-out infinite}@keyframes mskyBob{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-12px) rotate(3deg)}}@keyframes mskySwim{0%,to{transform:translate(0) rotate(4deg)}50%{transform:translate(-10px,-14px) rotate(-6deg)}}.msky-girl{right:1%;bottom:-2%;width:min(280px,24vw);filter:drop-shadow(0 14px 20px rgba(150,90,160,.28));animation:mskyRide 2.4s ease-in-out infinite}@keyframes mskyRide{0%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}to{transform:translateY(0) rotate(-2deg)}}.msky-spark{animation:mskyTwinkle 1.6s ease-in-out infinite}.msky-spark.s1{left:22%;top:20%;width:46px}.msky-spark.s2{right:30%;top:30%;width:34px;animation-delay:-.6s}@keyframes mskyTwinkle{0%,to{opacity:.2;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.2) rotate(16deg)}}.msky-heart{left:44%;top:8%;width:40px;opacity:.8;animation:mskyFloat 4s ease-in-out infinite}@keyframes mskyFloat{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-16px);opacity:.95}}@media(max-width:1080px){.msky-mascot.nyaru,.msky-mascot.momo,.msky-spark,.msky-heart{display:none}}@media(max-width:760px){.msky-mascot,.msky-girl{display:none}.msky-plate{opacity:.3;width:90vw}}.menu-inner{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:40px 24px 90px;width:100%}.menu-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:26px}.kok-logo{display:flex;flex-direction:column;align-items:center;gap:6px}.kok-logo-img{width:min(560px,74vw);transform-origin:50% 80%;filter:drop-shadow(0 14px 20px rgba(150,90,160,.32));animation:kokLogoPop .8s cubic-bezier(.2,1.6,.4,1) backwards,kokLogoBob 3.6s ease-in-out .8s infinite}@keyframes kokLogoPop{0%{transform:scale(.4) rotate(-6deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes kokLogoBob{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-9px) rotate(1deg)}}.kok-jp{font-weight:800;font-size:14px;letter-spacing:.28em;color:var(--candy-ink-soft);text-shadow:0 1px 0 #fff;margin-top:-2px}.menu-header .tagline{margin:12px 0 0;color:var(--candy-ink);font-weight:800;font-size:16px;letter-spacing:.02em;text-shadow:0 2px 0 #fff,0 0 10px rgba(255,255,255,.8)}.menu-screen .panel{background:var(--candy-panel);border:3px solid var(--candy-ink);border-radius:20px;box-shadow:0 4px #6b3fa047,0 14px 30px #965aa02e,inset 0 2px #ffffffb3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.menu-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px 14px;padding:16px 20px;margin-bottom:26px}.menu-controls label{font-size:14px;font-weight:800;color:var(--candy-ink)}.menu-controls .count-label{color:var(--candy-pink-d);font-size:16px}.count-slider{width:210px}.count-slider,.grav-slider{accent-color:var(--candy-pink)}.menu-controls select,.menu-controls input[type=text]{background:#fff;border:2px solid var(--candy-ink);color:var(--candy-ink);border-radius:10px;padding:6px 9px;font-size:14px;font-weight:700;margin-left:4px;cursor:pointer}.menu-controls select option{background:#fff;color:var(--candy-ink)}.elim-check{accent-color:var(--candy-pink)}.menu-screen .btn{font-family:var(--font-body);font-size:14px;font-weight:800;line-height:1.3;letter-spacing:.01em;color:var(--candy-ink);background:#fff;border:2.5px solid var(--candy-ink);border-radius:999px;padding:9px 16px;box-shadow:0 3px #6b3fa059,inset 0 2px #fffc;text-shadow:none}.menu-screen .btn:hover{filter:brightness(1.02);transform:translateY(-1px)}.menu-screen .btn:active{transform:translateY(2px);box-shadow:0 1px #6b3fa059}.menu-screen .btn.primary{color:#fff;background:linear-gradient(180deg,#ffa0cb,var(--candy-pink) 55%,#ff6fa5);border-color:var(--candy-pink-d);box-shadow:0 4px 0 var(--candy-pink-d),inset 0 2px #fff9;text-shadow:0 1px 2px rgba(180,40,100,.4)}.menu-screen .btn.primary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--candy-pink-d)}.menu-screen .btn.danger{color:#fff;background:linear-gradient(180deg,#ff8ea0,#ef5069);border-color:#c23b52;box-shadow:0 3px #c23b52,inset 0 2px #ffffff80}.menu-screen .btn.danger:active{transform:translateY(2px);box-shadow:0 1px #c23b52}.track-section{padding:16px 16px 20px}.section-title{font-family:var(--font-display);font-size:22px;color:var(--candy-ink);letter-spacing:.02em;margin:4px 4px 14px;text-shadow:0 2px 0 #fff}.track-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px;padding:16px;border-radius:16px;background:#fff6;box-shadow:inset 0 2px 8px #965aa01f,inset 0 0 0 2px #6b3fa040}.track-card{--face: #ffc1dd;--edge: #f19bbf;position:relative;padding:12px;display:flex;flex-direction:column;gap:10px;border-radius:16px;background:var(--face);border:2.5px solid var(--candy-ink);box-shadow:inset 0 3px #fff9,0 5px 0 var(--edge),0 10px 18px #965aa038;transition:transform .14s cubic-bezier(.34,1.56,.64,1),box-shadow .14s}.track-card:nth-child(5n+1){--face: #ffc1dd;--edge: #f19bbf}.track-card:nth-child(5n+2){--face: #bff0d8;--edge: #8fdcb6}.track-card:nth-child(5n+3){--face: #ffe1a8;--edge: #f3c778}.track-card:nth-child(5n+4){--face: #e0cdf5;--edge: #c0a3e6}.track-card:nth-child(5n+5){--face: #c7e8fb;--edge: #97cfef}.track-card:hover{transform:translateY(-4px);box-shadow:inset 0 3px #fff9,0 8px 0 var(--edge),0 0 0 4px var(--candy-pink),0 14px 24px #965aa04d}.card-thumb{position:relative;display:flex;align-items:center;justify-content:center;min-height:150px;padding:0;overflow:hidden;border-radius:12px;background:#ffffff8c;box-shadow:inset 0 2px #ffffffb3,inset 0 0 0 2px #6b3fa040}.card-shot{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .25s ease}.card-shot[src]{opacity:1}.card-emblem{font-size:34px;line-height:1.2;text-align:center;filter:drop-shadow(0 2px 1px rgba(0,0,0,.3))}.badge{position:absolute;top:7px;right:7px;z-index:2;font-family:var(--font-pixel);font-size:7px;color:var(--candy-ink);background:#ffffffeb;border:2px solid rgba(107,63,160,.4);border-radius:999px;padding:3px 7px;letter-spacing:.02em;white-space:nowrap;box-shadow:0 2px #6b3fa040}.card-body{display:flex;flex-direction:column;gap:9px;padding:0 2px}.card-body h3{margin:0;font-family:var(--font-display);font-size:21px;letter-spacing:.01em;color:var(--candy-ink);text-shadow:0 2px 0 rgba(255,255,255,.75)}.card-by{margin-top:-2px;font-size:12px;font-weight:800;color:var(--candy-ink-soft);text-shadow:0 1px 0 rgba(255,255,255,.6)}.card-stats{display:flex;flex-wrap:wrap;gap:6px}.card-stats .stat{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:800;color:var(--candy-ink);background:#ffffffe6;border:2px solid rgba(107,63,160,.28);border-radius:999px;padding:2px 9px}.card-stats .stat i{font-style:normal;font-size:11px}.card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.card-actions .btn{font-size:9px;padding:8px 10px}.card-actions .primary{flex:1 1 100%;order:-1;font-size:17px;line-height:1.3;letter-spacing:.08em;padding:14px 16px}.game-screen .viewport,.ed-viewport{position:absolute;inset:0}.game-screen .viewport canvas{display:block}.hud{position:absolute;inset:0;pointer-events:none}.hud .btn,.hud .hud-board{pointer-events:auto}.hud-top{position:absolute;top:14px;left:14px;right:14px;display:flex;gap:12px;align-items:center}.hud-title{padding:9px 16px;font-size:14px}.hud-timer{padding:9px 16px;font-size:18px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--accent)}.hud-actions{margin-left:auto;display:flex;gap:8px}.hud-elim{padding:9px 14px;font-size:15px;font-weight:700;color:#ffb0b0}.hud-elim.urgent{color:#ff5050;animation:elimPulse .5s infinite alternate}@keyframes elimPulse{0%{opacity:1}to{opacity:.45}}.elim-label{display:flex;align-items:center;gap:6px;cursor:pointer}.elim-check{accent-color:#ff5050}.hud-board{position:absolute;top:70px;left:14px;width:230px;padding:10px;max-height:calc(100% - 160px);overflow-y:auto}.lb-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:7px;font-size:13px;cursor:pointer}.lb-row:hover{background:#ffffff0f}.lb-row.followed{background:#4dd2ff1f}.lb-row.done{opacity:.85}.lb-rank{width:18px;text-align:right;color:var(--text-dim);font-variant-numeric:tabular-nums}.lb-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px #ffffff40}.lb-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-time{color:#7de37d;font-variant-numeric:tabular-nums}.lb-prog{color:var(--text-dim);font-variant-numeric:tabular-nums}.lb-out{color:#ff7676;font-weight:600;font-size:11px;letter-spacing:.08em}.lb-more{color:var(--text-dim);font-size:12px;text-align:center;padding-top:4px}.hud-abilities{position:absolute;bottom:18px;left:50%;transform:translate(-50%);display:flex;gap:10px;padding:8px 12px;pointer-events:auto}.ability-btn{position:relative;width:52px;height:52px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#ffffff12;cursor:pointer;font-size:22px;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.ability-btn:hover{background:#ffffff29}.ability-btn kbd{position:absolute;bottom:2px;right:4px;font-size:9px;color:var(--text-dim)}.ability-cd{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;background:#0a0c16a6;border-radius:12px}.ability-cd:empty{display:none}.ability-btn.cooling{cursor:default}.ability-btn.armed{border-color:#ff9d2e;box-shadow:0 0 14px #ff9d2e99}.lb-fx{font-size:11px}.hud-countdown{position:absolute;top:30%;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:18px;opacity:0;transition:opacity .15s;pointer-events:none}.hud-countdown.show{opacity:1}.cd-rack{display:flex;gap:20px;padding:20px 26px;border-radius:26px;background:#060810d1;border:3px solid rgba(255,255,255,.12);box-shadow:0 12px 40px #00000080}.cd-lamp{width:62px;height:62px;border-radius:50%;background:radial-gradient(circle at 38% 34%,#2a2f3e,#12141d 70%);box-shadow:inset 0 3px 6px #0009;transition:none}.cd-lamp.red{background:radial-gradient(circle at 38% 34%,#ff8a7a,#e11d1d 62%);box-shadow:0 0 26px 6px #ff2d2dbf,inset 0 2px 5px #ffffff59}.cd-lamp.go{background:radial-gradient(circle at 38% 34%,#b6ffcb,#12d94a 60%);box-shadow:0 0 34px 10px #1ef05ad9,inset 0 2px 5px #fff6;animation:cdGoFlash .35s ease-out 2 alternate}.cd-lamp.fresh{animation:cdPop .32s cubic-bezier(.34,1.56,.64,1)}@keyframes cdPop{0%{transform:scale(.4)}to{transform:scale(1)}}@keyframes cdGoFlash{0%{filter:brightness(1)}to{filter:brightness(1.7)}}.cd-go{font-size:84px;font-weight:900;letter-spacing:.08em;color:#b6ffcb;text-shadow:0 0 34px rgba(30,240,90,.9);animation:cdPop .32s cubic-bezier(.34,1.56,.64,1)}.hud-callouts{position:absolute;top:84px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;z-index:6}.callout{display:flex;align-items:center;gap:9px;padding:8px 16px;border-radius:999px;background:#101522d1;border:1px solid rgba(120,160,220,.25);box-shadow:0 6px 22px #00000073;color:#eaf1ff;font-size:15px;font-weight:600;white-space:nowrap;opacity:0;transform:translateY(-10px) scale(.94);transition:opacity .22s ease,transform .22s cubic-bezier(.2,1.4,.5,1)}.callout.show{opacity:1;transform:translateY(0) scale(1)}.callout-icon{font-size:20px;filter:drop-shadow(0 0 6px rgba(120,200,255,.6))}.hud-results-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.results{pointer-events:auto;width:380px;max-height:80%;padding:22px;display:flex;flex-direction:column;gap:12px}.results h2{margin:0;text-align:center;letter-spacing:.06em;font-family:var(--font-display);font-size:30px}.res-list{overflow-y:auto;display:flex;flex-direction:column;gap:2px}.res-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:8px;font-size:14px}.res-row.podium{background:#ffffff0f;font-weight:600}.res-rank{width:30px}.res-actions{display:flex;gap:10px;justify-content:center}.editor-screen{display:flex;flex-direction:column}.ed-toolbar{position:relative;z-index:5;margin:10px;padding:9px 12px;display:flex;align-items:center;gap:12px;border-radius:10px}.ed-name{background:#ffffff0f;border:1px solid var(--panel-border);color:var(--text);font-size:15px;padding:7px 12px;border-radius:8px;width:230px}.ed-stats{color:var(--text-dim);font-size:13px}.ed-body{position:relative;flex:1;display:flex;min-height:0}.ed-viewport{position:relative;flex:1;min-width:0}.ed-viewport canvas{display:block}.ed-left,.ed-right{position:relative;z-index:5;width:250px;margin:0 10px 10px;padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.ed-right{width:280px}.ed-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--text-dim);margin-top:6px}.ed-list{display:flex;flex-direction:column;gap:3px;max-height:42%;overflow-y:auto;flex-shrink:0}.list-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:7px;cursor:pointer;font-size:13px;border:1px solid transparent}.list-row:hover{background:#ffffff0d}.list-row.selected{background:#4dd2ff21;border-color:#4dd2ff66}.list-row.indent{margin-left:20px}.list-branch-head{display:flex;align-items:center;justify-content:space-between;margin:2px 0 0 10px;padding:1px 6px;font-size:11px;color:var(--text-dim);letter-spacing:.06em}.list-branch-head .btn{padding:0 7px;font-size:11px;line-height:18px}.list-idx{width:20px;color:var(--text-dim);font-size:11px;text-align:right}.list-label{flex:1}.lock{font-size:11px;opacity:.6}.chip{width:12px;height:12px;border-radius:4px;flex-shrink:0;display:inline-block}.chip.lg{width:20px;height:20px;border-radius:6px}.ed-piece-ops{display:flex;gap:6px}.pal-cat-title{font-size:11px;color:var(--text-dim);margin:8px 0 4px;letter-spacing:.08em}.pal-items{display:flex;flex-wrap:wrap;gap:5px}.pal-btn{display:inline-flex;align-items:center;gap:6px;background:#ffffff0f;border:1px solid var(--panel-border);color:var(--text);font-size:12px;padding:5px 9px;border-radius:7px;cursor:pointer}.pal-btn:hover{background:#ffffff21}.ins-head{display:flex;gap:10px;align-items:flex-start}.ins-title{font-size:16px;font-weight:600}.ins-desc{font-size:12px;color:var(--text-dim);margin-top:2px}.ins-presets{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px}.ins-presets .btn{font-size:12px;padding:3px 9px}.ins-params{margin-top:14px;display:flex;flex-direction:column;gap:12px}.param-row{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;font-size:13px}.param-row label{color:var(--text-dim)}.param-row input[type=range]{grid-column:1 / 2;width:100%;accent-color:var(--accent)}.param-val{font-variant-numeric:tabular-nums;min-width:48px;text-align:right}.param-row input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.param-row select{background:#ffffff12;border:1px solid var(--panel-border);color:var(--text);border-radius:7px;padding:4px 8px;font-size:13px}.param-row select option{background:#171c2e}.hint{color:var(--text-dim)}.ed-report{position:absolute;left:12px;bottom:12px;width:330px;max-height:calc(100% - 24px);overflow-y:auto;padding:12px 14px;z-index:10;font-size:13px}.rep-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.rep-head .rep-close{margin-left:auto;padding:2px 8px}.rep-summary{color:var(--text);margin-bottom:8px;line-height:1.4}.rep-stats{display:flex;flex-wrap:wrap;gap:10px;color:var(--text-dim);font-variant-numeric:tabular-nums;margin-bottom:10px}.rep-findings{display:flex;flex-direction:column;gap:6px}.rep-finding{padding:7px 9px;border-radius:8px;background:#ffffff0a;border-left:3px solid var(--panel-border);cursor:pointer}.rep-finding:hover{background:#ffffff17}.rep-finding-top{display:flex;align-items:center;gap:6px}.rep-pass{margin-left:auto;color:var(--text-dim);font-size:11px}.rep-msg{color:var(--text-dim);margin-top:3px}.rep-sug{color:#7fb4ff;margin-top:3px;font-size:12px}.rep-changes{background:#7de37d14;border-radius:8px;padding:7px 9px;margin-bottom:10px;font-size:12px}.rep-change{color:#9fe0a0;margin-top:2px}.rep-actions{display:flex;align-items:center;gap:8px;margin-top:10px}.rep-status{color:var(--text-dim);font-size:12px}.sev{font-size:10px;font-weight:700;letter-spacing:.05em;padding:1px 6px;border-radius:20px}.sev-ok{background:#7de37d33;color:#9fe0a0}.sev-info{background:#7fb4ff33;color:#9fc4ff}.sev-warn{background:#ffd16633;color:#ffd166}.sev-fail{background:#ff767633;color:#ff8a8a}.sev-border-info{border-left-color:#7fb4ff}.sev-border-warn{border-left-color:#ffd166}.sev-border-fail{border-left-color:#ff7676}.dbg-toggle{position:absolute;top:70px;right:14px;z-index:30;background:#111626db;border:1px solid var(--panel-border);color:var(--text);padding:6px 10px;border-radius:8px;font-size:12px;cursor:pointer;pointer-events:auto}.dbg-toggle.on{border-color:var(--accent);color:var(--accent)}.dbg-panel{position:absolute;top:106px;right:14px;z-index:30;width:420px;max-height:calc(100% - 130px);overflow-y:auto;background:#080b14eb;border:1px solid var(--panel-border);border-radius:10px;padding:8px 10px;font-size:11px;font-variant-numeric:tabular-nums;pointer-events:auto}.dbg-head{color:var(--text-dim);margin-bottom:6px}.dbg-stuck{color:#ff7676}.dbg-table{width:100%;border-collapse:collapse}.dbg-table th{text-align:right;color:var(--text-dim);font-weight:500;padding:2px 5px;position:sticky;top:0;background:#080b14f2}.dbg-table td{text-align:right;padding:2px 5px;white-space:nowrap}.dbg-table td:nth-child(3),.dbg-table th:nth-child(3),.dbg-table td.dbg-piece,.dbg-table th:nth-child(8){text-align:left}.dbg-dot{display:inline-block;width:9px;height:9px;border-radius:50%}.dbg-piece{color:var(--text-dim);max-width:110px;overflow:hidden;text-overflow:ellipsis}.dbg-st{font-weight:600}.dbg-table tr.st-stuck .dbg-st{color:#ff5050}.dbg-table tr.st-slow .dbg-st{color:#ffd166}.dbg-table tr.st-ok .dbg-st{color:#7de37d}.dbg-table tr.st-done{opacity:.5}.dbg-table tr.st-out{opacity:.4}.dbg-table tr.st-out .dbg-st{color:#ff7676}.toast{position:absolute;bottom:26px;left:50%;transform:translate(-50%) translateY(20px);background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;padding:10px 20px;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;z-index:20}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.marble-tag{position:absolute;left:0;top:0;display:flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;background:#101522d1;border:1px solid rgba(120,160,220,.25);color:#eaf1ff;font-size:11px;font-weight:600;white-space:nowrap;pointer-events:none;will-change:transform}.marble-tag-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px #ffffff40}.mskin-toggle{position:absolute;top:70px;right:104px;z-index:30;background:#111626db;border:1px solid var(--panel-border);color:var(--text);padding:6px 10px;border-radius:8px;font-size:12px;cursor:pointer}.mskin-toggle.on{border-color:var(--accent2);color:var(--accent2)}.mskin-panel{position:absolute;top:106px;right:14px;z-index:31;width:420px;max-height:calc(100% - 130px);overflow-y:auto;background:#080b14f0;border:1px solid var(--panel-border);border-radius:10px;padding:10px}.mskin-sets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.mskin-set-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:var(--text);padding:5px 9px;border-radius:999px;font-size:12px;cursor:pointer}.mskin-set-btn.on{border-color:var(--accent2);color:var(--accent2);background:#ff9d2e1f}.mskin-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.mskin-cell{width:62px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;color:var(--text-dim);text-align:center}.mskin-cell canvas{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.18)}.mskin-note{font-size:11px;color:var(--text-dim)}.mskin-foot{display:flex;align-items:center;gap:10px}.mpaint-backdrop{position:fixed;inset:0;z-index:90;background:#02040a9e;display:flex;align-items:center;justify-content:center}.mpaint-modal{width:min(880px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow-y:auto;padding:14px}.mpaint-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.mpaint-status{flex:1;font-size:12px;color:var(--accent2)}.mpaint-body{display:flex;gap:14px;align-items:flex-start}.mpaint-left{flex:1;min-width:0}.mpaint-canvas{width:100%;aspect-ratio:2 / 1;border-radius:8px;border:1px solid rgba(255,255,255,.18);cursor:crosshair;touch-action:none;background:#fff}.mpaint-hint{font-size:11px;color:var(--text-dim);margin:4px 0 8px}.mpaint-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:8px}.mpaint-swatch{width:24px;height:24px;border-radius:50%;border:2px solid rgba(255,255,255,.25);cursor:pointer;padding:0}.mpaint-swatch.on{border-color:var(--accent);box-shadow:0 0 0 2px #4dd2ff59}.mpaint-pick{width:30px;height:26px;padding:0;border:none;background:none;cursor:pointer}.mpaint-brushes{display:flex;gap:4px}.mpaint-brush{width:28px;height:28px;border-radius:6px;border:1px solid rgba(255,255,255,.14);background:#ffffff0d;display:flex;align-items:center;justify-content:center;cursor:pointer}.mpaint-brush i{display:block;background:var(--text);border-radius:50%}.mpaint-brush.on{border-color:var(--accent)}.mpaint-tool.on{border-color:var(--accent);color:var(--accent)}.mpaint-template{background:#111626e6;color:var(--text);border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:6px;font-size:12px}.mpaint-right{width:220px;display:flex;flex-direction:column;gap:8px}.mpaint-preview{width:200px;height:200px;align-self:center}.mpaint-name{background:#ffffff0f;border:1px solid rgba(255,255,255,.14);border-radius:8px;color:var(--text);padding:7px 10px;font-size:13px}.mpaint-list{margin-top:4px;max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.mpaint-list-head{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.mpaint-item{display:flex;align-items:center;gap:6px;font-size:12px}.mpaint-item img{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.18)}.mpaint-item span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mpaint-item .btn{padding:2px 6px;font-size:11px}.mpaint-io{display:flex;gap:6px}.mpaint-io .btn{flex:1;padding:5px 8px;font-size:12px}.mskin-set-add{border-style:dashed}.mskin-roster-actions{display:flex;gap:6px;margin-bottom:10px}.mskin-roster-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.mskin-roster-name{background:#ffffff0f;border:1px solid rgba(255,255,255,.14);border-radius:8px;color:var(--text);padding:6px 10px;font-size:13px;width:150px}.mskin-grid-pick .mskin-cell{position:relative;cursor:pointer;border-radius:8px;padding:3px 0}.mskin-grid-pick .mskin-cell:hover{background:#ffffff0f}.mskin-grid-pick .mskin-cell.on canvas{border-color:var(--accent2);box-shadow:0 0 0 2px #ff9d2e80}.mskin-pick-badge{position:absolute;top:0;right:6px;font-style:normal;font-size:10px;font-weight:700;color:#0e1220;background:var(--accent2);border-radius:999px;min-width:15px;line-height:15px;text-align:center}.mskin-pick-badge:empty{display:none}.mskin-sec-head{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin:4px 0 6px}.mskin-trails{border-top:1px solid var(--panel-border);padding-top:8px;margin-bottom:10px}.mskin-trail-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px}.mskin-trail-row span{width:130px;color:var(--text-dim)}.mskin-trail-select{flex:1;background:#111626e6;color:var(--text);border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:5px 6px;font-size:12px}.mskin-trail-num{width:58px;background:#ffffff0f;border:1px solid rgba(255,255,255,.14);border-radius:8px;color:var(--text);padding:5px 6px;font-size:12px}.mskin-cell{position:relative}.mskin-cell-click{cursor:pointer;border-radius:8px}.mskin-cell-click:hover{background:#ffffff0f}.mskin-trail-badge{position:absolute;top:-3px;right:4px;font-size:12px;font-style:normal;filter:drop-shadow(0 0 3px rgba(0,0,0,.9))}.mpaint-trail{background:#111626e6;color:var(--text);border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:6px;font-size:12px}:root[data-skin=flat]{--bg: #0b1035;--panel: rgba(21, 27, 66, .9);--panel-border: rgba(150, 170, 255, .18);--accent: #ffd166;--accent2: #ff8fab}:root[data-skin=toy]{--bg: #bfe3e0;--panel: rgba(52, 60, 82, .88);--panel-border: rgba(255, 255, 255, .22);--text: #f7f9ff;--text-dim: #b9c2d8;--accent: #ffb086;--accent2: #8fd6c8}:root[data-skin=holo]{--bg: #0a0118;--panel: rgba(22, 5, 42, .82);--panel-border: rgba(255, 44, 216, .35);--text: #f2e9ff;--text-dim: #9d8bc0;--accent: #ff2cd8;--accent2: #22d3ee}:root[data-skin=tron]{--bg: #02030a;--panel: rgba(2, 10, 20, .85);--panel-border: rgba(0, 229, 255, .3);--accent: #00e5ff;--accent2: #ffb02e}:root[data-skin=neon]{--bg: #1a0a2e;--panel: rgba(30, 12, 52, .86);--panel-border: rgba(255, 123, 229, .3);--accent: #ff7be5;--accent2: #4dd2ff}.editor-screen,.game-screen{--text: #f4eeff;--text-dim: #cbb9ef}.editor-screen .panel,.hud .panel,.race-setup.panel{background:linear-gradient(180deg,#7a62b6f0,#604a96f0);border:2px solid #cbb6ee;border-radius:12px;box-shadow:0 0 0 2px #4a3778,0 5px #3a2b5e,0 10px 18px #1e0f3c66;-webkit-backdrop-filter:none;backdrop-filter:none;color:#f4eeff}.editor-screen .btn,.hud .btn,.race-setup .btn{font-family:var(--font-pixel);font-size:9px;line-height:1.45;letter-spacing:.01em;color:#4a3a6e;background:linear-gradient(180deg,#e6d9f7,#ccb6e9);border:2px solid #3a2b5e;border-radius:8px;padding:7px 10px;box-shadow:inset 0 2px #fff9,inset 0 -3px #5a3c8c47,0 3px #6d54a0;text-shadow:0 1px 0 rgba(255,255,255,.4)}.editor-screen .btn:hover,.hud .btn:hover,.race-setup .btn:hover{filter:brightness(1.06);background:linear-gradient(180deg,#eee2ff,#d3bff0)}.editor-screen .btn:active,.hud .btn:active,.race-setup .btn:active{transform:translateY(2px);box-shadow:inset 0 2px #ffffff80,0 1px #6d54a0}.editor-screen .btn.sm{padding:5px 8px;font-size:8px}.editor-screen .btn.primary,.hud .btn.primary,.race-setup .btn.primary{color:#2c5a12;background:linear-gradient(180deg,#a8e96c,#86d44a);border-color:#34611c;box-shadow:inset 0 2px #ffffff8c,inset 0 -3px #285a144d,0 3px #4f9128;text-shadow:0 1px 0 rgba(255,255,255,.45)}.editor-screen .btn.primary:active,.hud .btn.primary:active,.race-setup .btn.primary:active{transform:translateY(2px);box-shadow:inset 0 2px #ffffff80,0 1px #4f9128}.editor-screen .btn.danger,.hud .btn.danger{color:#fff;background:linear-gradient(180deg,#ff7a90,#ef5069);border-color:#a32236;box-shadow:inset 0 2px #ffffff6b,inset 0 -3px #7814284d,0 3px #c23b52;text-shadow:0 1px 0 rgba(0,0,0,.25)}.editor-screen .ed-name,.editor-screen .param-row select,.editor-screen .param-row input[type=text]{background:#efe7fb;border:2px solid #6d54a0;color:#3a2f5c;border-radius:8px;font-weight:700}.editor-screen .ed-stats{color:#ece0ff;font-weight:700}.ed-section-title{color:#ffe7a8;font-family:var(--font-pixel);font-size:8px;letter-spacing:.04em}.editor-screen .list-row{color:#f4eeff}.editor-screen .list-row:hover{background:#ffffff1f}.editor-screen .list-row.selected{background:#ffe15a38;border-color:#ffe15a}.editor-screen .list-branch-head{color:#d7c6f5}.editor-screen .pal-btn{background:linear-gradient(180deg,#efe4fb,#d8c6ef);border:2px solid #6d54a0;color:#3a2f5c;font-weight:800;border-radius:8px;box-shadow:0 2px #5a3c8c66}.editor-screen .pal-btn:hover{filter:brightness(1.05)}.editor-screen .ins-title{color:#fff}.editor-screen .ins-desc,.editor-screen .param-row label,.editor-screen .hint{color:#e4d8ff}.hud-timer{color:#ffe15a;text-shadow:0 1px 0 rgba(60,30,90,.5)}.hud-title{color:#fff;font-weight:800}.hud .lb-rank,.hud .lb-prog{color:#d3c2f2}.hud .lb-row:hover{background:#ffffff1f}.hud .lb-row.followed{background:#ffe15a3d}.hud .lb-time{color:#b6ff8a}.results h2{color:#fff}.tune-details{padding:10px 20px 12px;margin-bottom:26px}.tune-details summary{cursor:pointer;font-size:15px;font-weight:800;color:#f2ebff;-webkit-user-select:none;user-select:none}.tune-grid{display:flex;align-items:center;flex-wrap:wrap;gap:10px 22px;padding-top:10px}.tune-row{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:800;color:#f2ebff}.tune-row input[type=range]{width:110px;accent-color:#ffcf3a}.tune-val{color:#cbb6ee;min-width:44px;text-align:right}.tune-row.tuned .tune-val{color:#ffe15a}.tune-reset{font-size:12px;padding:5px 10px}.race-setup{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,94vw);max-height:calc(100% - 32px);overflow-y:auto;overflow-x:hidden;z-index:30;display:flex;flex-direction:column;gap:12px;padding:30px 26px 24px}.race-setup:before{content:"";position:absolute;top:0;left:0;right:0;height:14px;background:repeating-conic-gradient(#2f2350 0% 25%,#ece2fb 0% 50%) 0 0 / 14px 14px;opacity:.75;border-bottom:2px solid #cbb6ee}.race-setup .rs-title{margin:4px 0 0;font-family:var(--font-pixel);font-size:17px;line-height:1.45;letter-spacing:.03em;color:#ffe15a;text-align:center;text-shadow:0 3px 0 #3a2b5e,0 5px 8px rgba(30,15,60,.55)}.race-setup .rs-stats{display:flex;justify-content:center;gap:8px;margin-top:-2px}.race-setup .rs-stat{background:#2819508c;border:2px solid rgba(203,182,238,.45);border-radius:999px;padding:3px 11px;font-size:12px;font-weight:800;color:#ece2fb}.race-setup .rs-section{font-family:var(--font-pixel);font-size:8px;letter-spacing:.06em;color:#ffe7a8;border-top:2px solid rgba(203,182,238,.28);padding-top:13px;margin-top:3px}.race-setup label{font-size:13px;font-weight:800;color:#f2ebff}.race-setup .rs-lineup{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:32px}.race-setup .rs-chip{width:28px;height:28px;border-radius:50%;border:2px solid #3a2b5e;box-shadow:0 3px #3a2b5e8c,inset 0 -4px 6px #0000;background:#241a44}.race-setup .rs-dot{display:inline-block}.race-setup .rs-more{font-family:var(--font-pixel);font-size:8px;color:#ece2fb;background:#28195099;border:2px solid rgba(203,182,238,.4);border-radius:999px;padding:6px 9px}.race-setup .rs-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 18px;align-items:start}.race-setup .rs-row{display:flex;flex-direction:column;gap:5px;min-width:0}.race-setup .rs-row b{color:#ffe15a;float:right}.race-setup input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:22px;background:transparent;cursor:pointer}.race-setup input[type=range]::-webkit-slider-runnable-track{height:10px;border-radius:6px;background:#2c2050;border:2px solid #201640;box-shadow:inset 0 2px 3px #00000073}.race-setup input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-7px;border-radius:50%;background:linear-gradient(180deg,#fff6d8,#ffd94d 55%,#f0b32e);border:2px solid #3a2b5e;box-shadow:0 2px #3a2b5e99}.race-setup input[type=range]::-moz-range-track{height:10px;border-radius:6px;background:#2c2050;border:2px solid #201640;box-shadow:inset 0 2px 3px #00000073}.race-setup input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:linear-gradient(180deg,#fff6d8,#ffd94d 55%,#f0b32e);border:2px solid #3a2b5e;box-shadow:0 2px #3a2b5e99}.race-setup select{background:linear-gradient(180deg,#f6efff,#e2d3f6);border:2px solid #3a2b5e;color:#3a2f5c;border-radius:9px;padding:8px 10px;font-size:14px;font-weight:800;cursor:pointer;box-shadow:inset 0 2px #fff9,0 3px #6d54a0}.race-setup .rs-check{cursor:pointer;font-size:12.5px;color:#ece2fb}.race-setup .rs-check input{accent-color:#8cd44f;width:15px;height:15px;vertical-align:-2px}.race-setup .tune-details{padding:0;margin:0}.race-setup .tune-details summary{cursor:pointer;font-family:var(--font-pixel);font-size:8px;letter-spacing:.06em;color:#ffe7a8;border-top:2px solid rgba(203,182,238,.28);padding-top:13px;margin-top:3px}.race-setup .tune-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 18px;padding-top:10px;align-items:center}.race-setup .tune-row{display:flex;align-items:center;gap:7px;min-width:0}.race-setup .tune-row input[type=range]{flex:1;width:auto;min-width:60px}.race-setup .tune-name{min-width:74px}.race-setup .tune-reset{justify-self:start}.race-setup .rs-actions{display:flex;gap:10px;margin-top:6px}.race-setup .rs-start{flex:1;font-size:13px;padding:15px;animation:rs-start-glow 1.8s ease-in-out infinite}@keyframes rs-start-glow{0%,to{box-shadow:inset 0 2px #ffffff8c,inset 0 -3px #285a144d,0 3px #4f9128,0 0 #86d44a00}50%{box-shadow:inset 0 2px #ffffff8c,inset 0 -3px #285a144d,0 3px #4f9128,0 0 22px #86d44a99}}.race-setup.panel{background:#fffffff0;border:3px solid var(--candy-ink);border-radius:22px;box-shadow:0 5px #6b3fa04d,0 16px 34px #965aa047,inset 0 2px #fffc;color:var(--candy-ink);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.race-setup:before{background:repeating-conic-gradient(#ff9ecb 0% 25%,#fff 0% 50%) 0 0 / 14px 14px;opacity:.9;border-bottom:2px solid var(--candy-ink)}.race-setup:after{content:"";position:absolute;top:16px;right:14px;width:62px;height:62px;background:url(/keyvisual/momo.png) center/contain no-repeat;filter:drop-shadow(0 6px 8px rgba(150,90,160,.35));animation:mskyBob 3.4s ease-in-out infinite;pointer-events:none}.race-setup .rs-title{font-family:var(--font-display);font-size:26px;color:var(--candy-ink);text-shadow:0 2px 0 #fff,0 3px 0 rgba(226,77,134,.35)}.race-setup .rs-stat{background:#fff;border:2px solid var(--candy-ink);color:var(--candy-ink)}.race-setup .rs-section{font-family:var(--font-display);font-size:15px;letter-spacing:.02em;color:var(--candy-pink-d);border-top:2px solid rgba(107,63,160,.22)}.race-setup label{color:var(--candy-ink)}.race-setup .rs-chip{border:2px solid var(--candy-ink);box-shadow:0 3px #6b3fa059;background:#f3ecfb}.race-setup .rs-more{font-family:var(--font-body);font-size:12px;color:var(--candy-ink);background:#fff;border:2px solid var(--candy-ink)}.race-setup .rs-row b{color:var(--candy-pink-d)}.race-setup input[type=range]::-webkit-slider-runnable-track,.race-setup input[type=range]::-moz-range-track{background:#f0e6fb;border:2px solid var(--candy-ink-soft);box-shadow:inset 0 1px 2px #6b3fa040}.race-setup input[type=range]::-webkit-slider-thumb{background:linear-gradient(180deg,#ffd0e6,var(--candy-pink) 55%,#ff6fa5);border:2px solid var(--candy-pink-d);box-shadow:0 2px 0 var(--candy-pink-d)}.race-setup input[type=range]::-moz-range-thumb{background:linear-gradient(180deg,#ffd0e6,var(--candy-pink) 55%,#ff6fa5);border:2px solid var(--candy-pink-d);box-shadow:0 2px 0 var(--candy-pink-d)}.race-setup select{background:#fff;border:2px solid var(--candy-ink);color:var(--candy-ink);box-shadow:0 3px #6b3fa04d}.race-setup .rs-check{color:var(--candy-ink)}.race-setup .rs-check input{accent-color:var(--candy-pink)}.race-setup .tune-details summary{font-family:var(--font-display);font-size:14px;letter-spacing:.02em;color:var(--candy-pink-d);border-top:2px solid rgba(107,63,160,.22)}.race-setup .tune-row,.race-setup .tune-name{color:var(--candy-ink)}.race-setup .tune-val{color:var(--candy-ink-soft)}.race-setup .tune-row.tuned .tune-val{color:var(--candy-pink-d)}.race-setup .tune-row input[type=range]{accent-color:var(--candy-pink)}.race-setup .btn{font-family:var(--font-body);font-size:13px;font-weight:800;color:var(--candy-ink);background:#fff;border:2.5px solid var(--candy-ink);border-radius:999px;box-shadow:0 3px #6b3fa059,inset 0 2px #fffc;text-shadow:none}.race-setup .btn.primary{color:#fff;background:linear-gradient(180deg,#ffa0cb,var(--candy-pink) 55%,#ff6fa5);border-color:var(--candy-pink-d);text-shadow:0 1px 2px rgba(180,40,100,.4)}.race-setup .rs-start{animation:rs-start-candy 1.8s ease-in-out infinite}@keyframes rs-start-candy{0%,to{box-shadow:0 4px 0 var(--candy-pink-d),inset 0 2px #fff9,0 0 #ff7fb400}50%{box-shadow:0 4px 0 var(--candy-pink-d),inset 0 2px #fff9,0 0 22px #ff7fb4b3}}.load-screen{position:fixed;inset:0;z-index:9999;overflow:hidden;background:linear-gradient(160deg,#fef1fb,#fdeaf6 30%,#eef0ff 62%,#e6f7ff);font-family:var(--font-body);opacity:1;transition:opacity .48s ease}.load-screen.out{opacity:0}.load-screen img{position:absolute;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.ls-hero .ls-girl,.ls-logowrap .ls-logo{position:relative}.ls-world{position:absolute;inset:0;animation:lsFloat 5s ease-in-out infinite alternate}@keyframes lsFloat{0%{transform:rotate(-.5deg) translateY(.3%) scale(1.01)}to{transform:rotate(.6deg) translateY(-.5%) scale(1.03)}}.ls-bg{left:-8%;top:-8%;width:116%;height:116%;object-fit:cover;opacity:.5;mix-blend-mode:multiply;animation:lsBgDrift 12s ease-in-out infinite alternate}@keyframes lsBgDrift{0%{transform:translate(-2.5%,1.8%) scale(1) rotate(-.6deg)}to{transform:translate(2.5%,-1.8%) scale(1.08) rotate(.8deg)}}.ls-speedlines{position:absolute;inset:-20%;pointer-events:none;opacity:.14;background:repeating-linear-gradient(115deg,transparent 0 110px,#ff8fc7 110px 128px,transparent 128px 260px,#8fd8ff 260px 276px);animation:lsSweep 1.9s linear infinite}@keyframes lsSweep{0%{transform:translate(0)}to{transform:translate(390px)}}.ls-bubble{position:absolute;bottom:-8%;border-radius:50%;background:radial-gradient(circle at 32% 30%,#fffe 0 18%,#ffd7ef99 45%,#b8e6ff55);border:2px solid #ffffffaa;opacity:0;animation:lsRise linear infinite}@keyframes lsRise{0%{transform:translateY(0) translate(0) scale(.8);opacity:0}8%{opacity:.8}50%{transform:translateY(-55vh) translate(3%) scale(1)}92%{opacity:.6}to{transform:translateY(-108vh) translate(-3%) scale(1.15);opacity:0}}.ls-bunting{top:0;left:0;width:min(38%,460px);transform-origin:0 0;animation:lsSway 5.5s ease-in-out infinite alternate}@keyframes lsSway{0%{transform:rotate(-2deg)}to{transform:rotate(1.6deg)}}.ls-flag{width:min(9%,120px);transform-origin:12% 95%;animation:lsFlag 1.4s ease-in-out infinite alternate}.ls-flag.l{left:3%;bottom:30%}.ls-flag.r{right:4%;top:26%;animation-delay:-.7s}@keyframes lsFlag{0%{transform:rotate(-8deg)}to{transform:rotate(9deg) skew(-5deg)}}.ls-marble{bottom:16%;width:84px;animation:lsRoll 6.5s linear infinite}.ls-marble.b{width:58px;animation-duration:9s;animation-delay:-4s;bottom:19%}.ls-marble.c{width:44px;animation-duration:5s;animation-delay:-2s;bottom:14%}@keyframes lsRoll{0%{left:-12%;transform:rotate(0)}to{left:110%;transform:rotate(3turn)}}.ls-mascot{animation:lsBounce 1.15s cubic-bezier(.35,0,.4,1) infinite alternate}.ls-mascot.minto{left:3%;bottom:20%;width:min(15%,190px);animation-delay:-.3s}.ls-mascot.momo{right:4%;top:8%;width:min(15%,190px);animation-delay:-.7s}.ls-mascot.kingyo{right:5%;bottom:18%;width:min(14%,180px);animation:lsSwim 3.2s ease-in-out infinite alternate}@keyframes lsBounce{0%{transform:translateY(0) scale(1.06,.92)}to{transform:translateY(-14%) scale(.96,1.06)}}@keyframes lsSwim{0%{transform:translate(0) rotate(2deg)}50%{transform:translate(-12%,-8%) rotate(-12deg)}to{transform:translate(3%,-16%) rotate(8deg) scaleX(1.08)}}.ls-mascot.nyaru{top:40%;left:-20%;width:min(14%,175px);animation:lsDash 5s cubic-bezier(.45,0,.6,1) infinite}@keyframes lsDash{0%,42%{left:-20%;transform:rotate(0) scaleX(1)}52%{transform:rotate(-10deg) scaleX(1.2) translateY(-6%)}74%{transform:rotate(8deg) scaleX(1.12) translateY(4%)}90%,to{left:114%;transform:rotate(0) scaleX(1)}}.ls-hero{position:absolute;left:50%;top:43%;translate:-50% -50%;width:min(520px,78vw);display:flex;flex-direction:column;align-items:center}.ls-girl{position:relative;width:min(260px,48%);margin-bottom:-8%;transform-origin:50% 60%;filter:drop-shadow(0 14px 20px rgba(150,90,160,.28));animation:lsGirlIn 1.1s cubic-bezier(.2,1.4,.35,1) backwards,lsRide 1.6s ease-in-out 1.1s infinite}@keyframes lsGirlIn{0%{scale:.2;translate:0 40%;opacity:0}to{scale:1;translate:0 0;opacity:1}}@keyframes lsRide{0%{transform:translate(0) rotate(-3deg)}25%{transform:translate(1.5%,-5%) rotate(0)}50%{transform:translateY(-8%) rotate(3.5deg)}70%{transform:translate(-1.5%,-3%) rotate(1deg)}to{transform:translate(0) rotate(-3deg)}}.ls-logowrap{position:relative;width:min(430px,96%);transform-origin:50% 80%;animation:lsLogoPop .9s cubic-bezier(.2,1.6,.4,1) .3s backwards,lsLogoPulse 1.9s ease-in-out 1.4s infinite}.ls-logo{position:static;width:100%;filter:drop-shadow(0 12px 18px rgba(150,90,160,.3))}@keyframes lsLogoPop{0%{scale:0;rotate:-8deg}to{scale:1;rotate:0deg}}@keyframes lsLogoPulse{0%,to{scale:1;rotate:-1deg}50%{scale:1.05;rotate:1deg}}.ls-shine{position:absolute;inset:8% 0;overflow:hidden;pointer-events:none;opacity:.5;border-radius:40%}.ls-shine:after{content:"";position:absolute;top:-20%;bottom:-20%;width:16%;background:linear-gradient(100deg,transparent,#fff,transparent);transform:skew(-18deg);animation:lsShine 3.6s ease-in-out infinite}@keyframes lsShine{0%,55%{left:-30%}85%,to{left:120%}}.ls-conf{top:-12%;width:44px;animation:lsFall linear infinite}@keyframes lsFall{0%{transform:translateY(0) rotate(0)}to{transform:translateY(130vh) rotate(540deg)}}.ls-spark{animation:lsTwinkle 1s ease-in-out infinite}@keyframes lsTwinkle{0%,to{opacity:.15;scale:.6;rotate:0deg}50%{opacity:1;scale:1.35;rotate:18deg}}.ls-heart{left:18%;top:16%;width:54px;animation:lsFloatUp 3.2s ease-in-out infinite}@keyframes lsFloatUp{0%{transform:translateY(0);opacity:0}18%{opacity:1}80%{opacity:1}to{transform:translateY(-90%);opacity:0}}.ls-ui{position:absolute;left:50%;bottom:7%;translate:-50% 0;width:min(620px,84vw);pointer-events:none}.ls-label{display:flex;justify-content:space-between;align-items:baseline;font-weight:800;letter-spacing:.06em;color:#6b3fa0;font-size:clamp(14px,2.4vw,20px);text-shadow:0 2px 0 #fff,0 0 12px #ffffffcc;margin-bottom:8px}.ls-dots:after{content:"";animation:lsDots 1.2s steps(1) infinite}@keyframes lsDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.ls-track{position:relative;height:clamp(18px,3.2vw,28px);border-radius:999px;background:#ffffffe0;border:3px solid #6b3fa0;box-shadow:0 3px #6b3fa055,inset 0 2px 6px #6b3fa022}.ls-fill{position:absolute;inset:2px;width:0%;border-radius:999px;overflow:hidden;background:linear-gradient(90deg,#ff9ecb,#ffd48a,#fff3a1,#a9f0c2,#9fd8ff,#cbb3ff);transition:width .18s ease-out}.ls-fill:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,#ffffff55 0 12px,transparent 12px 26px);animation:lsCrawl 1s linear infinite}@keyframes lsCrawl{0%{transform:translate(0)}to{transform:translate(30px)}}.ls-knob{position:absolute;top:50%;left:0%;width:clamp(30px,5vw,46px);translate:-50% -50%;animation:lsSpin 1.1s linear infinite;filter:drop-shadow(0 3px 4px #6b3fa066)}@keyframes lsSpin{0%{rotate:0turn}to{rotate:1turn}}.ls-tips{position:relative;height:1.6em;margin-top:10px;text-align:center;font-size:clamp(12px,2vw,15px);color:#7a5b96;font-weight:700}.ls-tips span{position:absolute;inset:0;opacity:0;animation:lsTip 16s infinite}@keyframes lsTip{0%,22%{opacity:0;transform:translateY(6px)}3%,19%{opacity:1;transform:translateY(0)}25%,to{opacity:0}}.ls-ready{position:absolute;left:50%;top:30%;translate:-50% 0;scale:0;font-family:var(--font-display);font-size:clamp(30px,6vw,62px);letter-spacing:.04em;color:#ff5fa2;-webkit-text-stroke:3px #fff;paint-order:stroke fill;text-shadow:0 5px 0 #6b3fa044,0 0 26px #fff;pointer-events:none}.ls-ready.show{animation:lsReadyPop .55s cubic-bezier(.2,1.8,.4,1) forwards}@keyframes lsReadyPop{0%{scale:0;rotate:-6deg}to{scale:1;rotate:0deg}}.load-screen[data-motion=off] .ls-world,.load-screen[data-motion=off] img,.load-screen[data-motion=off] .ls-speedlines,.load-screen[data-motion=off] .ls-shine:after,.load-screen[data-motion=off] .ls-dots:after,.load-screen[data-motion=off] .ls-tips span,.load-screen[data-motion=off] .ls-fill:after{animation:none!important}.load-screen[data-motion=off] .ls-tips span:first-child{opacity:1}.load-screen[data-motion=off] .ls-bubble{display:none}@media(max-width:560px){.ls-mascot.kingyo,.ls-heart{display:none}.ls-bunting{width:52%}}
