@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fredoka-latin-500-normal-B0JifZgm.woff2)format("woff2"),url(/assets/fredoka-latin-500-normal-BL692wg7.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fredoka-latin-600-normal-C4zohCW5.woff2)format("woff2"),url(/assets/fredoka-latin-600-normal-CcrEjrB4.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fredoka-latin-700-normal-BOIZVyIN.woff2)format("woff2"),url(/assets/fredoka-latin-700-normal-C8FeHd3X.woff)format("woff")}:root{--bg1:#fff4d6;--bg2:#ffe3f1;--bg3:#dff3ff;--ink:#2b2244;--muted:#6d6488;--card:#fff;--line:#ece4ff;--brand:#7c5cf0;--brand-dark:#5b3fd1;--fun1:#ff7a59;--fun2:#ffb02e;--good:#2ec27e;--bad:#ef476f;--radius:22px;--shadow:0 6px 0 #2b22441f, 0 12px 30px #7c5cf01f;--font:ui-rounded, "SF Pro Rounded", "Nunito", "Arial Rounded MT Bold", "Varela Round", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:radial-gradient(circle at 10% 0%, var(--bg1), transparent 45%), radial-gradient(circle at 100% 20%, var(--bg2), transparent 40%), radial-gradient(circle at 30% 100%, var(--bg3), transparent 50%), #fffaf0;-webkit-tap-highlight-color:transparent;background-attachment:fixed}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:4px solid var(--brand);outline-offset:2px;border-radius:12px}.app{max-width:1100px;padding:max(12px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));margin:0 auto}.screen{flex-direction:column;gap:14px;display:flex}.center{text-align:center}.big-emoji{font-size:44px;line-height:1}.btn{border:0;border-radius:999px;font-weight:800;transition:transform .12s,box-shadow .12s,filter .12s;box-shadow:0 4px #2b22442e}.btn:active:not(:disabled){transform:translateY(3px)scale(.98);box-shadow:0 1px #2b22442e}.btn:disabled{opacity:.5}.btn-primary{background:var(--brand);color:#fff}.btn-soft{color:var(--brand-dark);border:2px solid var(--line);background:#fff}.btn-ghost{box-shadow:none;color:var(--brand-dark);background:0 0}.btn-danger{background:var(--bad);color:#fff}.btn-fun{background:linear-gradient(135deg, var(--fun2), var(--fun1));color:#fff;text-shadow:0 1px #00000026}.hero{text-align:center;padding:10px 0 0}.hero h1{letter-spacing:-1px;background:linear-gradient(90deg,#ff5a5f,#ffb02e,#2ec27e,#3d8bfd,#7c5cf0);color:#0000;-webkit-background-clip:text;background-clip:text;margin:4px 0;font-size:clamp(38px,9vw,64px)}.hero h1 span{font-size:.7em}.hero-dice{font-size:64px;animation:2.6s ease-in-out infinite hero-wobble;display:inline-block}@keyframes hero-wobble{0%,to{transform:rotate(-8deg)}50%{transform:rotate(10deg)translateY(-6px)}}.level-row{justify-content:center;align-items:center;gap:10px;margin-top:10px;display:flex}.level-chip{border:2px solid var(--line);white-space:nowrap;background:#fff;border-radius:999px;padding:4px 12px;font-size:15px;font-weight:800}.xp-bar{border:2px solid var(--line);background:#fff;border-radius:999px;flex:1;max-width:220px;height:14px;overflow:hidden}.xp-bar>div{background:linear-gradient(90deg, var(--fun2), var(--fun1));border-radius:999px;height:100%}.game-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.game-card{text-align:left;color:#fff;box-shadow:var(--shadow);border:0;border-radius:28px;flex-direction:column;gap:6px;padding:22px 20px;font-size:16px;transition:transform .15s;display:flex}.game-card b{font-size:30px}.game-card:hover{transform:translateY(-3px)rotate(-.5deg)}.game-card:active{transform:scale(.98)}.card-ludo{background:linear-gradient(135deg,#ff7a59,#ff5a8a)}.card-snakes{background:linear-gradient(135deg,#2ec27e,#19a3b8)}.card-art{gap:6px;font-size:40px;display:flex}.card-art span{animation:2s ease-in-out infinite bob;display:inline-block}.card-art span:nth-child(2){animation-delay:.2s}.card-art span:nth-child(3){animation-delay:.4s}.card-art span:nth-child(4){animation-delay:.6s}@keyframes bob{50%{transform:translateY(-6px)}}.home-links{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.home-links button{border:2px solid var(--line);background:#fff;border-radius:999px;padding:10px 16px;font-weight:800;box-shadow:0 3px #2b224414}.resume-card{border:3px solid var(--fun2);text-align:left;box-shadow:var(--shadow);background:#fff;border-radius:22px;align-items:center;gap:12px;padding:12px 16px;animation:2s ease-in-out infinite glow;display:flex}@keyframes glow{50%{box-shadow:0 0 0 6px #ffb02e40, var(--shadow)}}.resume-emoji{font-size:34px}.resume-text{flex-direction:column;flex:1;gap:2px;display:flex}.resume-text b{font-size:18px}.resume-go{color:var(--fun1);font-size:26px;font-weight:900}.panel{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:16px;display:flex}.panel-title{margin:0;font-size:19px}.game-topbar{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.game-title{text-align:center;margin:0;font-size:clamp(20px,5vw,28px)}.segmented{background:#f6f2ff;border-radius:999px;flex-wrap:wrap;gap:6px;padding:4px;display:inline-flex}.segmented button{background:0 0;border:0;border-radius:999px;padding:8px 14px;font-size:15px;font-weight:800}.segmented button.is-on{background:var(--brand);color:#fff;box-shadow:0 3px 0 var(--brand-dark)}.toggle{text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:8px 0;display:flex}.toggle-text{flex-direction:column;display:flex}.toggle-label{font-weight:800}.toggle-hint{color:var(--muted);font-size:13px}.toggle-track{background:#dcd4f5;border-radius:999px;flex:none;width:56px;height:32px;transition:background .2s;position:relative}.toggle-knob{background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s cubic-bezier(.34,1.56,.64,1);position:absolute;top:4px;left:4px;box-shadow:0 2px 4px #0003}.toggle.is-on .toggle-track{background:var(--good)}.seats{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.seat-card{border-radius:var(--radius);border:4px solid var(--pc);box-shadow:var(--shadow);background:#fff;flex-direction:column;gap:10px;padding:12px;display:flex}.seat-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.seat-colour{background:var(--pc);color:#fff;border-radius:999px;padding:4px 12px;font-weight:900}.seat-body,.bot-row{flex-direction:column;gap:8px;display:flex}.bot-row{flex-flow:wrap}.name-input{font:inherit;border:2px solid var(--line);border-radius:14px;width:100%;padding:10px 14px;font-size:18px;font-weight:800}.avatar-row{flex-wrap:wrap;gap:6px;display:flex}.avatar{background:#f6f2ff;border:2px solid #0000;border-radius:14px;width:44px;height:44px;font-size:24px}.avatar.is-on{border-color:var(--brand);background:#fff;transform:scale(1.08)}.bot-chip{border:2px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:4px;padding:6px 12px 6px 6px;font-weight:800;display:flex}.bot-chip .bot-emoji{font-size:24px}.bot-chip.is-on{border-color:var(--pc);background:color-mix(in srgb, var(--pc) 15%, white)}.board-picks{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.board-pick{border:3px solid var(--line);background:#fff;border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:12px;display:flex}.board-pick.is-on{border-color:var(--good);background:#effcf5}.rules-toggle{text-align:left;background:0 0;border:0;font-size:17px;font-weight:800}.rules{flex-direction:column;display:flex}.modal-host{width:100%;max-width:none;height:100%;max-height:none;color:inherit;background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0}.modal-host::backdrop{background:0 0}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#2b224473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{width:100%;max-width:400px;box-shadow:var(--shadow);background:#fff;border-radius:28px;padding:22px;animation:.3s cubic-bezier(.34,1.56,.64,1) pop;position:relative;overflow:hidden}@keyframes pop{0%{opacity:0;transform:scale(.8)}}.modal-title{text-align:center;margin:0 0 10px;font-size:26px}.modal-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px;display:flex}.podium{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.podium li{background:color-mix(in srgb, var(--pc) 15%, white);border-radius:14px;align-items:center;gap:10px;padding:6px 12px;font-size:18px;font-weight:800;display:flex}.medal{font-size:26px}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti span{border-radius:3px;width:9px;height:14px;animation:2s ease-in infinite fall;position:absolute;top:-12px}@keyframes fall{to{opacity:.2;transform:translateY(520px)rotate(540deg)}}.stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.stat{box-shadow:var(--shadow);background:#fff;border-radius:20px;flex-direction:column;align-items:center;padding:12px;display:flex}.stat b{font-size:28px}.stat-emoji{font-size:26px}.badge{border:2px dashed var(--line);text-align:center;opacity:.6;border-radius:18px;flex-direction:column;align-items:center;gap:2px;padding:10px;display:flex}.badge.is-got{border-style:solid;border-color:var(--fun2);opacity:1;background:#fffaf0}.badge-emoji{font-size:32px}.how h2{margin:4px 0}.how ul{margin:0;padding-left:20px;font-size:17px;line-height:1.7}@media (width<=520px){.app{padding-left:12px;padding-right:12px}.ludo-board,.snakes-board{width:100%;min-width:0}.dice{width:68px;height:68px}.turn-text{font-size:16px}.player-pill{font-size:14px}.board-picks{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.online-card{text-align:left;color:#fff;box-shadow:var(--shadow);background:linear-gradient(135deg,#7c5cf0,#3d8bfd);border:0;border-radius:24px;align-items:center;gap:12px;padding:14px 18px;display:flex}.online-card .muted{color:#ffffffd9}.online-card .resume-go{color:#fff}.room-code{letter-spacing:.15em;color:var(--brand);font-size:clamp(48px,14vw,72px);font-weight:900;line-height:1.1}.lobby{align-items:center}.join-row{align-items:center;gap:10px;display:flex}.code-input{font:inherit;letter-spacing:.2em;text-align:center;border:3px solid var(--line);text-transform:uppercase;border-radius:16px;width:9ch;padding:8px 10px;font-size:28px;font-weight:900}.conn-banner{z-index:5;text-align:center;background:#fff3cd;border-radius:999px;margin-bottom:8px;padding:6px 12px;font-weight:800;position:sticky;top:0}.emoji-row{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px;display:flex}.emoji-row button{border:2px solid var(--line);background:#fff;border-radius:16px;width:48px;height:48px;font-size:26px}.emoji-pop{z-index:20;pointer-events:none;font-size:90px;animation:2s forwards big-roll;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%)}.tutorial{text-align:center;position:relative}.tutorial-art{font-size:84px;line-height:1.1;animation:.4s cubic-bezier(.34,1.56,.64,1) pop,2s ease-in-out .4s infinite bob}.tutorial-text{margin:0 0 10px;font-size:19px;line-height:1.5}.tutorial-dots{justify-content:center;gap:6px;display:flex}.tutorial-dots span{background:var(--line);border-radius:50%;width:10px;height:10px;transition:transform .2s,background .2s}.tutorial-dots span.is-on{background:var(--brand);transform:scale(1.3)}.tutorial-skip{color:var(--muted);background:0 0;border:0;margin-top:8px;font-weight:700;text-decoration:underline}:root{--brand:#ff5d73;--brand-dark:#d63a55;--fun1:#ff6b3d;--fun2:#ffb300}.hero-title{text-align:center;padding-top:8px}.hero-title h1{letter-spacing:-1px;color:var(--brand);text-shadow:0 4px #2b2244;-webkit-text-stroke:2px #2b2244;margin:4px 0 0;font-size:clamp(40px,9vw,64px);line-height:1}.hero-title h1 span{color:var(--fun2)}.hero-title p{margin:8px 0 0;font-weight:700}.title-faces{justify-content:center;align-items:center;gap:4px;display:flex}.title-bonk{font-size:40px;animation:1.6s ease-in-out infinite bonk}@keyframes bonk{0%,to{transform:scale(.8)rotate(-10deg)}50%{transform:scale(1.25)rotate(10deg)}}.how-card{background:#fff8e1}.mode-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.mode-card{border-radius:var(--radius);text-align:center;color:#fff;box-shadow:var(--shadow);border:0;flex-direction:column;align-items:center;gap:4px;padding:18px 14px;transition:transform .15s;display:flex}.mode-card:hover{transform:translateY(-3px)rotate(-1deg)}.mode-card:active{transform:scale(.97)}.mode-card b{text-shadow:0 2px #0003;font-size:22px}.mode-card span:last-child{opacity:.95;font-size:14px;font-weight:600}.mode-emoji{font-size:44px;line-height:1.1}.mode-adventure{background:linear-gradient(135deg,#ff9a3d,#ff5d73)}.pill{background:var(--brand);color:#fff;border-radius:999px;min-width:22px;padding:1px 7px;font-size:13px;display:inline-block}.portrait{display:block}.link{color:var(--brand-dark);background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline}.pick-heading{text-align:center;color:#2f6fe4;margin:0;font-size:24px}.pick-heading.is-p2{color:var(--brand-dark)}.select-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}@media (width<=760px){.select-layout{grid-template-columns:1fr}}.hero-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}@media (width<=420px){.hero-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.hero-card{box-shadow:var(--shadow);background:#fff;border:3px solid #0000;border-radius:20px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 10px;transition:transform .12s;display:flex;position:relative}.hero-card .portrait{background:radial-gradient(circle at 50% 40%, #fff, color-mix(in srgb, var(--ha,#ffd166) 40%, #fff));border-radius:50%}.hero-card b{font-size:17px}.hero-card.is-on{border-color:var(--hc,var(--brand));box-shadow:0 0 0 4px color-mix(in srgb, var(--ha,var(--brand)) 60%, transparent), var(--shadow);transform:scale(1.04)}.hero-el{color:var(--muted);font-size:12px;font-weight:700}.hero-mark{background:var(--ink);color:#fff;border-radius:999px;padding:1px 7px;font-size:12px;font-weight:900;position:absolute;top:4px;left:6px}.hero-random{justify-content:center;min-height:120px}.hero-info{border-radius:var(--radius);box-shadow:var(--shadow);border-top:8px solid var(--hc,var(--brand));background:#fff;padding:14px}.hero-info-top{align-items:center;gap:10px;display:flex}.hero-figure{flex:none}.hero-name{margin:0;font-size:28px}.hero-blurb{margin:6px 0 8px;font-weight:600}.stat-bar{justify-content:space-between;align-items:center;max-width:220px;font-size:13px;font-weight:800;display:flex}.bars{gap:3px;display:inline-flex}.bars i{background:var(--line);border-radius:4px;width:18px;height:10px}.bars i.on{background:var(--hc,var(--brand))}.power-list{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.power-list li{background:#faf7ff;border-radius:14px;align-items:baseline;gap:10px;padding:8px 10px;display:flex}.power-list li.is-super{background:linear-gradient(90deg,#fff4cc,#ffe3f1)}.power-list.compact li{padding:4px 8px}.power-how{flex:none;min-width:58px;font-weight:900}.select-options{flex-direction:column;gap:10px;display:flex}.stage-picks{flex-wrap:wrap;gap:8px;display:flex}.stage-pick{border:2px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font-weight:700}.stage-pick.is-on{border-color:var(--brand);background:#fff0f2}.field{align-items:center;gap:10px;font-weight:700;display:flex}.field span{min-width:80px}.fight-screen{touch-action:none;-webkit-user-select:none;user-select:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#1d1533;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.fight-stage{aspect-ratio:1000/560;flex:none;width:min(100vw,178.571dvh);position:relative}.fight-canvas{width:100%;height:100%;display:block}.pause-btn{opacity:.8;background:#ffffffd9;border:0;border-radius:50%;width:clamp(28px,4.2vw,40px);height:clamp(28px,4.2vw,40px);padding:0;font-size:clamp(12px,1.8vw,18px);position:absolute;top:21%;left:50%;transform:translate(-50%);box-shadow:0 3px #00000040}.key-hints{color:#e9e3ff;text-align:center;margin:8px 12px 0;font-size:14px}kbd{min-width:22px;color:var(--ink);font:inherit;background:#fff;border-radius:6px;padding:1px 6px;font-weight:900;display:inline-block;box-shadow:0 2px #b9b0d8}.practice-panel{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:8px;display:flex}.practice-chip{background:#ffffffeb;border-radius:999px;padding:4px 12px;font-size:14px}.rotate-hint{color:#fff;text-align:center;margin:22px 20px 0;font-size:20px;font-weight:800;display:none}.rotate-phone{margin-bottom:6px;font-size:64px;animation:2s ease-in-out infinite rotate-phone;display:block}@keyframes rotate-phone{0%,30%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}@media (orientation:portrait){.has-touch .rotate-hint{display:block}}@media (orientation:landscape) and (height<=500px){.practice-panel{display:none}}.pause-powers{align-items:center;gap:12px;display:flex}.result-faces{justify-content:center;align-items:center;gap:10px;display:flex}.new-badges{flex-direction:column;gap:6px;margin:10px 0;display:flex}.touch-controls{padding:10px max(14px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));pointer-events:none;--pad:min(38vw, 170px);--btn:min(17vw, 76px);justify-content:space-between;align-items:flex-end;display:flex;position:absolute;bottom:0;left:0;right:0}.touch-controls>*{pointer-events:auto}.tc-pad{width:var(--pad);height:var(--pad);touch-action:none;--kx:0%;--ky:0%;background:radial-gradient(circle,#ffffff47,#ffffff1f);border:3px solid #ffffff80;border-radius:50%;flex:none;position:relative}.tc-knob{width:42%;height:42%;transform:translate(calc(-50% + var(--kx) * 2.4), calc(-50% + var(--ky) * 2.4));pointer-events:none;background:#ffffffd9;border-radius:50%;position:absolute;top:50%;left:50%;box-shadow:0 4px #00000040}.tc-arrow{color:#ffffffb3;font-size:calc(var(--pad) * .13);pointer-events:none;position:absolute}.tc-a-up{top:4%;left:50%;transform:translate(-50%)}.tc-a-down{bottom:4%;left:50%;transform:translate(-50%)}.tc-a-left{top:50%;left:5%;transform:translateY(-50%)}.tc-a-right{top:50%;left:auto;right:5%;transform:translateY(-50%)}.tc-buttons{grid-template-columns:var(--btn) var(--btn);grid-template-rows:var(--btn) var(--btn);gap:10px;display:grid}.tc-btn{width:var(--btn);height:var(--btn);color:#fff;touch-action:none;opacity:.9;border:3px solid #ffffffd9;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-weight:900;display:flex;box-shadow:0 4px #0000004d}.tc-btn:active{transform:translateY(3px)scale(.95);box-shadow:0 1px #0000004d}.tc-emoji{font-size:calc(var(--btn) * .38);line-height:1}.tc-label{font-size:calc(var(--btn) * .17)}.tc-punch{background:#ff5d73}.tc-kick{background:#3d8bfd}.tc-power{background:#ffb300}.tc-super{opacity:.55;background:#8f6bff}.tc-super.is-ready{opacity:1;animation:.8s ease-in-out infinite alternate super-glow}@keyframes super-glow{0%{box-shadow:0 4px #0000004d,0 0 #ffdc50e6}to{box-shadow:0 4px #0000004d,0 0 0 10px #ffdc5000}}@media (orientation:portrait){.fight-screen{padding-top:max(40px, env(safe-area-inset-top));justify-content:flex-start}.touch-controls{--pad:min(42vw, 190px);--btn:min(19vw, 84px)}}@media (orientation:landscape) and (height<=500px){.touch-controls{opacity:.8;--pad:min(30vh, 150px);--btn:min(16vh, 70px)}.key-hints{display:none}}.how-steps{gap:12px;display:grid}.how-step{align-items:center;gap:14px;display:flex}.how-step h2{margin:0;font-size:20px}.how-step p{margin:2px 0 0}.how-art{text-align:center;flex:none;width:72px;font-size:34px}.cleared-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;display:grid}.cleared{opacity:.6;background:#f6f3ff;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:8px;display:flex}.cleared.is-got{opacity:1;background:#fff4cc}.badges{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.badges .badge{text-align:center;flex-direction:column}@media (prefers-reduced-motion:reduce){.title-bonk,.tc-super.is-ready{animation:none}}.vs-row{justify-content:center;align-items:center;gap:18px;display:flex}.vs-side{flex-direction:column;align-items:center;gap:4px;display:flex}.vs-text{color:var(--brand);-webkit-text-stroke:1.5px #2b2244;font-size:34px;font-weight:900}.ready-tag{background:var(--line);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:800}.ready-tag.is-on{background:var(--good);color:#fff}.net-wait{color:#fff;pointer-events:none;background:#1d1533d9;border-radius:999px;padding:10px 18px;font-weight:800;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.fight-stage .emoji-row{opacity:.85;flex-direction:column;margin:0;position:absolute;top:18%;right:8px}.fight-stage .emoji-row button{width:36px;height:36px;padding:0;font-size:18px}.fight-stage .emoji-pop{position:absolute}.vs-splash{z-index:20;cursor:pointer;background:#1d1533;grid-template-columns:1fr 1fr;display:grid;position:absolute;inset:0;overflow:hidden}.vs-half{color:#fff;background:linear-gradient(135deg, var(--hc), color-mix(in srgb, var(--hc) 55%, #1d1533));flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:12px;display:flex;position:relative}.vs-half-0{clip-path:polygon(0 0,100% 0,88% 100%,0 100%);animation:.45s cubic-bezier(.2,1.3,.4,1) both vs-in-left}.vs-half-1{clip-path:polygon(12% 0,100% 0,100% 100%,0 100%);margin-left:-12%;animation:.45s cubic-bezier(.2,1.3,.4,1) .1s both vs-in-right}.vs-figure{filter:drop-shadow(0 8px #00000040);max-width:100%}.vs-figure .hero-figure{aspect-ratio:190/210;max-width:100%;height:auto!important}.vs-name b{text-shadow:0 3px #0000004d;-webkit-text-stroke:1px #0000004d;font-size:clamp(26px,6vw,44px);line-height:1;display:block}.vs-name span{text-align:center;opacity:.9;font-weight:700;display:block}.vs-line{text-align:center;max-width:90%;color:var(--ink);background:#ffffffeb;border-radius:16px;margin:4px 0 0;padding:6px 12px;font-size:clamp(13px,2.4vw,18px);font-weight:800;animation:.3s .6s both pop-in}.vs-badge{color:#ffd23f;-webkit-text-stroke:4px #2b2244;text-shadow:0 6px #2b2244;font-size:clamp(54px,13vw,110px);font-weight:900;animation:.5s cubic-bezier(.2,1.6,.4,1) .45s both vs-slam;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.vs-story{text-align:center;color:#fff;background:#1d1533d9;border-radius:16px;width:min(90%,560px);margin:0;padding:8px 14px;font-weight:800;animation:.3s .9s both pop-in;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.vs-skip{color:#ffffffb3;margin:0;font-size:12px;position:absolute;bottom:6px;right:12px}@keyframes vs-in-left{0%{transform:translate(-100%)}}@keyframes vs-in-right{0%{transform:translate(100%)}}@keyframes vs-slam{0%{opacity:0;transform:translate(-50%,-50%)scale(3)rotate(-20deg)}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}}.win-quote{text-align:center;margin:10px 0;font-size:18px;font-weight:800}.win-quote span{color:var(--muted);font-size:15px;font-weight:600}@media (prefers-reduced-motion:reduce){.vs-half-0,.vs-half-1,.vs-badge,.vs-line,.vs-story{animation:none}}.modal-backdrop{place-items:safe center;overflow-y:auto}.modal{touch-action:pan-y;max-height:calc(100dvh - 32px);overflow-y:auto}@media (height<=500px){.modal .stats{grid-template-columns:repeat(3,1fr);gap:6px}.modal .stat{padding:6px}.modal .stat b{font-size:20px}.result-faces .portrait{width:56px!important;height:56px!important}}.fight-screen:not(.has-touch) .fight-stage{width:min(100vw,178.571dvh - 178.571px)}.fight-stage .emoji-row{flex-direction:row;top:24%;left:50%;right:auto;transform:translate(-50%)}@media (orientation:landscape) and (height<=500px){.modal{width:min(94vw,720px);max-width:none;padding:12px 16px}.modal-title{margin:0 0 6px;font-size:22px}.result{grid-template-columns:1fr 1fr;align-items:center;gap:4px 16px;display:grid}.result>.result-faces,.result>.win-quote{grid-column:1}.result>.stats,.result>.new-badges,.result>p,.result>.modal-actions{grid-column:2}.result>.result-faces{grid-row:1}.result>.win-quote{grid-row:2;margin:0;font-size:15px}.result .modal-actions{flex-wrap:wrap;margin-top:4px}.result .modal-actions .btn-lg,.result .modal-actions .btn-md{padding:9px 16px;font-size:16px}}@media (prefers-reduced-motion:reduce){.rotate-phone{animation:none}}@media (orientation:landscape) and (height<=500px){.result>.modal-actions{grid-row:1;justify-content:center}.result>.stats{grid-row:2}.result>.new-badges{grid-row:3}.result>p:not(.win-quote){grid-row:4;margin:0;font-size:14px}.modal .stats{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.modal .stat{box-shadow:none;background:#f6f3ff;flex-direction:row;gap:4px;padding:4px 10px;font-size:13px}.modal .stat b,.modal .stat-emoji{font-size:16px}.new-badges{gap:4px;margin:4px 0}.new-badges .badge{flex-direction:row;gap:6px;padding:4px 10px;font-size:13px}.new-badges .badge-emoji{font-size:18px}}.key-legend{color:#e9e3ff;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:8px;display:flex}.kl-move{justify-items:center;gap:3px;display:grid}.kl-row{gap:3px;display:flex}.kl-acts{grid-template-columns:repeat(4,auto);align-items:center;gap:3px 10px;font-size:18px;display:grid}.kl-acts small{text-align:center;grid-column:1/-1}.key-legend small{opacity:.85;font-size:12px}.key-legend kbd{text-align:center;min-width:26px;margin-right:2px}.vs-strip{justify-content:center;align-items:center;gap:18px;display:flex}.vs-strip-side{flex-direction:column;align-items:center;font-size:18px;display:flex}.vs-strip-vs{color:var(--brand);-webkit-text-stroke:1.5px #2b2244;font-size:30px;font-weight:900}.screen>.segmented{width:100%;max-width:520px;margin:0 auto}.screen>.segmented button{flex:1;padding:12px 8px;font-size:18px}.screen>.segmented{display:flex}.replay-skip{background:#ffffffe6;border:0;border-radius:999px;padding:8px 14px;font-weight:800;position:absolute;bottom:10px;right:10px;box-shadow:0 3px #00000040}.hero-level{background:var(--fun2);color:#fff;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:900;position:absolute;top:4px;right:6px}.hero-rank{margin:4px 0 0;font-size:14px}.xp-track{background:var(--line);border-radius:999px;max-width:220px;height:8px;margin-top:4px;display:block;overflow:hidden}.xp-track span{background:linear-gradient(90deg, var(--fun2), var(--fun1));height:100%;display:block}.tc-buttons.is-simple{grid-template-columns:var(--btn) var(--btn) var(--btn)}.tc-buttons.is-simple .tc-btn{--btn-s:calc(var(--btn) * .88);width:var(--btn-s);height:var(--btn-s)}.tc-buttons.is-simple .tc-label{font-size:calc(var(--btn) * .14);text-overflow:ellipsis;white-space:nowrap;max-width:90%;overflow:hidden}.tc-power2{background:#ff9f1c}.tc-power3{background:#e9b500}.level-up{text-align:center;margin:6px 0;font-weight:800}.level-up-big{color:var(--brand-dark);font-size:18px;display:block}.nick{color:var(--brand-dark);margin:2px 0 8px;font-size:26px;font-weight:900}.costumes{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.costume{border:2px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;display:flex}.costume.is-on{border-color:var(--hc,var(--brand));box-shadow:0 0 0 3px color-mix(in srgb, var(--ha,var(--brand)) 50%, transparent)}.costume.is-locked{opacity:.6}.costume-dot{border:4px solid;border-radius:50%;place-items:center;width:30px;height:30px;font-size:13px;display:grid}.costume-name{text-align:center;font-size:11px;font-weight:800;line-height:1.15}.silly-row{justify-content:center;display:flex}.silly-btn{border:2px dashed var(--line);background:#fff;border-radius:999px;padding:10px 18px;font-size:16px;font-weight:800}.silly-btn.is-on{border-style:solid;border-color:var(--fun2);background:#fff8e1}.mute-btn{border:2px solid var(--line);background:#fff;border-radius:50%;width:44px;height:44px;font-size:20px;box-shadow:0 3px #2b22441f}.home{position:relative}.home-mute{z-index:2;position:absolute;top:0;right:0}.pause-mute{align-items:center;gap:8px;margin:6px 0;display:flex}@media (orientation:landscape) and (height<=500px){.fight-screen.has-touch.is-solo{--gutter:calc(max(min(30vh, 150px), 2 * min(16vh, 70px) + 10px) + 22px);justify-content:flex-start}.fight-screen.has-touch.is-solo .fight-stage{width:min(calc(100vw - 2 * var(--gutter)), calc(100dvh * 1000 / 560))}.fight-screen.has-touch.is-solo .touch-controls{opacity:1;padding-bottom:max(10px, env(safe-area-inset-bottom))}}.emoji-toggle{opacity:.85;background:#ffffffd9;border:0;border-radius:50%;width:clamp(28px,4.2vw,40px);height:clamp(28px,4.2vw,40px);padding:0;font-size:clamp(14px,2vw,20px);position:absolute;top:21%;left:50%;transform:translate(-50%);box-shadow:0 3px #00000040}.fight-stage .emoji-row{top:calc(21% + clamp(32px,4.8vw,46px))}.ch-total{border:2px solid var(--fun2);white-space:nowrap;background:#fff;border-radius:999px;justify-self:end;padding:4px 10px;font-size:15px;font-weight:900}@media (width<=760px){.ch-heroes .hero-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.ch-heroes .hero-card{border-radius:16px;padding:5px 2px 6px}.ch-heroes .hero-card .portrait{width:54px!important;height:54px!important}.ch-heroes .hero-card b{font-size:14px}.ch-heroes .hero-el{display:none}.ch-heroes .hero-mark{padding:0 5px;font-size:10px;top:2px;left:2px}}.ch-panel{border-radius:var(--radius);box-shadow:var(--shadow);border-top:8px solid var(--hc,var(--brand));background:#fff;flex-direction:column;gap:12px;min-width:0;padding:14px;display:flex}.ch-panel.is-master{border-top-color:var(--fun2);background:linear-gradient(#fff8dc,#fff 40%)}.ch-head{align-items:center;gap:12px;display:flex}.ch-head .portrait{background:radial-gradient(circle at 50% 40%, #fff, color-mix(in srgb, var(--ha,#ffd166) 45%, #fff));border-radius:50%;flex:none}.ch-head-text{flex-direction:column;gap:2px;min-width:0;display:flex}.ch-stars{letter-spacing:2px;color:#ddd5f3;font-size:26px;line-height:1}.ch-stars .is-on{color:var(--fun2);text-shadow:0 2px #c97a00}.ch-master{background:linear-gradient(135deg, var(--fun2), var(--fun1));color:#fff;text-shadow:0 1px #0003;border-radius:999px;align-self:flex-start;padding:3px 12px;font-weight:900;animation:2.4s ease-in-out infinite ch-shine}@keyframes ch-shine{50%{transform:scale(1.06)rotate(-2deg)}}.ch-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.ch-card{border:3px solid var(--line);background:#fff;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.ch-card.is-next{border-color:var(--fun2);box-shadow:0 0 0 4px #ffb02e38}.ch-card.is-done{border-color:color-mix(in srgb, var(--good) 45%, white);background:#f3fcf7}.ch-num{color:#fff;background:var(--lc,var(--good));border-radius:50%;place-items:center;width:38px;height:38px;font-size:18px;font-weight:900;display:grid;box-shadow:0 3px #2b22442e}.ch-card.is-done .ch-num{background:var(--good);font-size:22px}.ch-text{flex-direction:column;gap:3px;min-width:0;display:flex}.ch-flag{color:#fff;background:var(--fun1);border-radius:999px;align-self:flex-start;padding:1px 8px;font-size:12px;font-weight:900}.ch-title{font-size:17px;line-height:1.2}.ch-how{color:var(--muted);font-size:14px;font-weight:600}.ch-tags{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.ch-tag{background:#f6f2ff;border-radius:999px;align-items:center;gap:4px;padding:2px 8px 2px 4px;font-size:12px;font-weight:800;display:inline-flex}.ch-tag .portrait{background:#fff;border-radius:50%}.ch-tag-lv{color:#fff;background:var(--lc,var(--good));padding-left:8px}@media (width<=420px){.ch-card{grid-template-columns:auto minmax(0,1fr)}.ch-go{grid-column:1/-1;justify-self:stretch}.ch-card.is-done .ch-go{justify-self:end}}.ch-hud{z-index:3;width:max-content;max-width:min(92%,600px);color:var(--ink);pointer-events:none;background:#ffffffeb;border-radius:999px;grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:3px 10px;padding:5px 16px 6px 10px;font-size:clamp(11px,1.7vw,16px);transition:background .2s;display:grid;position:absolute;top:calc(21% + clamp(28px,4.2vw,40px) + 6px);left:50%;transform:translate(-50%);box-shadow:0 3px #00000040}.ch-hud[hidden]{display:none}.ch-hud-star{grid-row:1/3;font-size:1.6em;line-height:1}.ch-hud-text{white-space:nowrap;min-width:0;font-weight:700;display:flex}.ch-hud-text b{text-overflow:ellipsis;min-width:0;overflow:hidden}.ch-hud-text span{flex:none}.ch-hud-bar{background:#ece4ff;border-radius:999px;grid-column:2;height:6px;overflow:hidden}.ch-hud-bar i{border-radius:inherit;background:linear-gradient(90deg, var(--fun2), var(--fun1));height:100%;transition:width .25s;display:block}.ch-hud.is-done{background:#fff6d1}.ch-hud.is-done .ch-hud-bar i{background:var(--good)}.ch-hud.is-failed{background:#ffe1e8}.ch-hud-retry{pointer-events:auto;background:var(--bad);color:#fff;border:0;border-radius:999px;grid-area:1/3/3;padding:4px 10px;font-weight:900}.ch-complete{z-index:4;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden;container-type:size}.ch-complete.is-brief{animation:.5s ease-in 2.6s forwards ch-fade}@keyframes ch-fade{to{opacity:0;visibility:hidden}}.ch-complete-card{pointer-events:auto;text-align:center;background:#fffffff2;border-radius:28px;flex-direction:column;align-items:center;gap:clamp(2px,1.6cqh,8px);max-width:92cqw;padding:clamp(8px,4cqh,22px) clamp(14px,5cqw,34px);animation:.5s cubic-bezier(.3,1.6,.5,1) both ch-pop;display:flex;box-shadow:0 6px #00000040,0 0 0 6px #ffb02e80}.ch-complete-stars{font-size:clamp(26px,14cqh,64px);line-height:1;animation:1.2s ease-out both ch-spin}.ch-complete-title{letter-spacing:.5px;color:var(--fun1);-webkit-text-stroke:1.5px #2b2244;text-shadow:0 3px #2b2244;font-size:clamp(18px,8.5cqh,40px);font-weight:900}.ch-complete-master{color:var(--brand-dark);font-size:clamp(13px,5cqh,20px);font-weight:900}.ch-complete-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px;display:flex}@container (height<=340px){.ch-complete-card .btn{padding:7px 14px;font-size:15px}}@keyframes ch-pop{0%{opacity:0;transform:scale(.3)}}@keyframes ch-spin{0%{transform:scale(.2)rotate(-200deg)}}.story-screen{z-index:30;font-family:var(--font,ui-rounded, system-ui, sans-serif);color:var(--ink,#2b2244);-webkit-user-select:none;user-select:none;touch-action:manipulation;cursor:pointer;background:#241c3a;position:fixed;inset:0;overflow:hidden}.story-screen button{cursor:pointer}.sc-stage{position:absolute;inset:0}.sc-canvas{width:100%;height:100%;display:block}.sc-title{top:max(10px, env(safe-area-inset-top));left:max(10px, env(safe-area-inset-left));pointer-events:none;background:#ffffffe6;border-radius:999px;padding:6px 14px;font-size:15px;font-weight:900;position:absolute;box-shadow:0 3px #2b22442e}.sc-skip{top:max(10px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));color:var(--brand-dark,#5b3fd1);z-index:3;background:#ffffffe6;border:0;border-radius:999px;padding:8px 16px;font-size:15px;font-weight:900;position:absolute;box-shadow:0 3px #2b224433}.sc-skip:active{transform:translateY(2px)}.sc-bubble{z-index:2;will-change:transform;background:#fff;border:3px solid #2b2244;border-radius:24px;max-width:min(480px,56vw);padding:14px 20px 16px;animation:.22s cubic-bezier(.2,1.5,.4,1) both sc-pop;position:absolute;top:0;left:0;box-shadow:0 6px #2b224440}@keyframes sc-pop{0%{opacity:0;scale:.7}to{opacity:1;scale:1}}.sc-name{background:var(--who,#7c5cf0);color:#fff;text-shadow:0 1px #00000059;white-space:nowrap;border:2.5px solid #2b2244;border-radius:999px;padding:2px 12px;font-size:14px;font-weight:900;position:absolute;top:-15px;left:16px}.sc-line{letter-spacing:.1px;margin:0;font-size:clamp(19px,1.6vw + 1.1vh,30px);font-weight:800;line-height:1.28}.sc-line span{opacity:0;transition:opacity .12s}.sc-line span.is-on{opacity:1}.sc-next{color:var(--brand,#7c5cf0);font-size:14px;animation:.8s ease-in-out infinite sc-nudge;position:absolute;bottom:4px;right:10px}@keyframes sc-nudge{50%{transform:translate(4px)}}.sc-tail{background:#fff;border-bottom:3px solid #2b2244;border-right:3px solid #2b2244;border-bottom-right-radius:4px;width:22px;height:22px;margin-left:-11px;position:absolute;bottom:-13px;transform:rotate(45deg)}.sc-caption{left:50%;top:max(56px, calc(env(safe-area-inset-top) + 50px));text-align:center;z-index:2;background:#fff6d8;border:3px solid #2b2244;border-radius:18px;width:max-content;max-width:min(640px,88vw);padding:12px 22px 14px;animation:.22s cubic-bezier(.2,1.5,.4,1) both sc-pop;position:absolute;translate:-50%;box-shadow:0 6px #2b224440}.sc-caption .sc-line{font-size:clamp(18px,1.4vw + 1vh,27px)}.sc-caption .sc-next{bottom:2px}.sc-hint{left:50%;bottom:max(14px, env(safe-area-inset-bottom));color:#fff;pointer-events:none;background:#2b2244bf;border-radius:999px;margin:0;padding:6px 16px;font-size:15px;font-weight:800;animation:1.4s ease-in-out infinite sc-breathe;position:absolute;translate:-50%}@keyframes sc-breathe{50%{opacity:.55}}@media (orientation:portrait){.sc-bubble{max-width:86vw}}.ready-card{left:50%;top:max(54px, calc(env(safe-area-inset-top) + 48px));cursor:default;background:#fffffff0;border:3px solid #2b2244;border-radius:26px;flex-direction:column;align-items:center;gap:8px;width:min(440px,92vw);padding:14px 18px 12px;animation:.3s cubic-bezier(.2,1.5,.4,1) both sc-pop;display:flex;position:absolute;translate:-50%;box-shadow:0 8px #2b224440}.ready-title{margin:0;font-size:18px;font-weight:900}.ready-bonus{color:#a86b00;text-align:center;margin:0;font-size:16px;font-weight:800}.fight-go{color:#fff;letter-spacing:1px;text-shadow:0 3px #2b224459;background:linear-gradient(135deg,#ffb02e,#ff5a5f);border:3px solid #2b2244;border-radius:22px;flex-direction:column;align-items:center;width:100%;padding:12px 20px 10px;font-size:clamp(30px,4vw + 1vh,44px);font-weight:900;animation:1.1s ease-in-out infinite fight-pulse;display:flex;box-shadow:0 6px #2b2244}.fight-go small{letter-spacing:0;opacity:.95;font-size:15px}.fight-go:active{transform:translateY(4px);box-shadow:0 2px #2b2244}@keyframes fight-pulse{50%{scale:1.04}}.ready-links{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}@media (orientation:landscape) and (height<=500px){.ready-card{gap:5px;width:min(380px,60vw);padding:10px 14px 8px}.fight-go{padding:6px 16px}.ready-links .btn-sm{padding:5px 10px;font-size:13px}}.jr-screen{cursor:default;touch-action:none}.jr-hud{top:max(10px, env(safe-area-inset-top));pointer-events:none;background:#ffffffe6;border-radius:999px;align-items:center;gap:10px;padding:4px 14px 4px 10px;display:flex;position:absolute;left:50%;translate:-50%;box-shadow:0 3px #2b22442e}.jr-stars{white-space:nowrap;font-size:18px;font-weight:900}.jr-stars b{font-size:22px}.jr-track{background:#2b224426;border-radius:999px;width:min(30vw,220px);height:10px;margin:0 14px 0 4px;position:relative}.jr-fill{background:linear-gradient(90deg,#ffd23f,#ff9f1c);border-radius:999px;position:absolute;top:0;bottom:0;left:0}.jr-me,.jr-goal{background:#fff;border-radius:50%;width:26px;height:26px;position:absolute;top:50%;overflow:hidden;translate:-50% -50%;box-shadow:0 0 0 2px #2b2244}.jr-goal{left:100%}.jr-banner{text-align:center;pointer-events:none;background:#fffffff0;border:3px solid #2b2244;border-radius:24px;flex-direction:column;align-items:center;gap:4px;padding:14px 24px;animation:.3s cubic-bezier(.2,1.5,.4,1) both sc-pop;display:flex;position:absolute;top:22%;left:50%;translate:-50%;box-shadow:0 6px #2b224440}.jr-banner b{font-size:clamp(24px,3vw,34px)}.jr-banner span{font-size:18px;font-weight:800}.jr-banner small{color:var(--muted,#6d6488);font-size:14px;font-weight:700}.jr-pad{padding:10px max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:flex-end;display:flex;position:absolute;bottom:0;left:0;right:0}.jr-pad-left{gap:12px;display:flex}.jr-btn{pointer-events:auto;color:#fff;touch-action:none;background:#2b224473;border:3px solid #ffffffe6;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:68px;height:68px;font-size:26px;font-weight:900;display:flex;box-shadow:0 4px #0000004d}.jr-btn:active{transform:translateY(3px)scale(.96)}.jr-jump{background:#ff9f1c;width:104px;height:104px;font-size:38px;line-height:1}.jr-jump span{font-size:15px}.jr-done{cursor:default;background:#241c3a73;place-items:center;animation:.3s both jr-fade;display:grid;position:absolute;inset:0}@keyframes jr-fade{0%{opacity:0}}.jr-done-card{text-align:center;background:#fff;border:3px solid #2b2244;border-radius:28px;flex-direction:column;align-items:center;gap:8px;width:min(460px,92vw);padding:18px 20px 20px;animation:.35s cubic-bezier(.2,1.5,.4,1) both sc-pop;display:flex;box-shadow:0 8px #2b22444d}.jr-done-card h2{margin:0;font-size:30px}.jr-done-stars{letter-spacing:1px;margin:0;font-size:26px}.jr-done-stars span{filter:grayscale();opacity:.3;display:inline-block}.jr-done-stars span.is-got{filter:none;opacity:1;animation:.4s cubic-bezier(.2,1.8,.4,1) both jr-star}@keyframes jr-star{0%{rotate:-60deg;scale:0}}.jr-bonus{color:#a86b00;margin:0 0 6px;font-size:18px;font-weight:900}@media (orientation:portrait){.jr-hud{top:max(54px, calc(env(safe-area-inset-top) + 48px))}.jr-banner{width:86vw;top:30%}}@media (orientation:landscape) and (height<=500px){.jr-btn{width:58px;height:58px;font-size:22px}.jr-jump{width:84px;height:84px;font-size:30px}.jr-done-card{gap:4px;padding:10px 16px 12px}.jr-done-card h2{font-size:24px}.jr-banner{padding:8px 18px;top:18%}}.map-screen{cursor:default;background:#4fb6e8}.map-top{top:max(8px, env(safe-area-inset-top));left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute}.map-top>*{pointer-events:auto}.map-home{background:#ffffffeb;border:0;border-radius:50%;flex:none;width:46px;height:46px;font-size:22px;box-shadow:0 3px #2b224433}.map-gems{background:#ffffffeb;border-radius:999px;margin:0 auto;padding:6px 12px;box-shadow:0 3px #2b22442e}.gem-row{align-items:center;gap:3px;display:flex}.gem-icon{display:block}.map-friends{background:#ffffffeb;border-radius:20px;flex-wrap:wrap;justify-content:flex-end;gap:2px;max-width:40vw;padding:4px 8px;display:flex;box-shadow:0 3px #2b22442e}.map-friend{background:#fffbe8;border-radius:50%;width:30px;height:30px;overflow:hidden;box-shadow:inset 0 0 0 2px #2ec27e}.map-next{right:max(10px, env(safe-area-inset-right));bottom:max(10px, env(safe-area-inset-bottom));background:#fffffff2;border:3px solid #2b2244;border-radius:26px;align-items:center;gap:12px;padding:8px 10px 8px 12px;display:flex;position:absolute;box-shadow:0 6px #2b224440}.map-next-who{align-items:center;gap:8px;display:flex}.map-next-who .portrait{background:#ffe1e1;border-radius:50%;box-shadow:0 0 0 2.5px #ef476f}.map-next-who span{flex-direction:column;line-height:1.15;display:flex}.map-next-who small{color:var(--muted,#6d6488);font-size:13px;font-weight:800}.map-next-who b{font-size:18px}.map-next .map-go{white-space:nowrap}.map-next.is-here .map-go{animation:1s ease-in-out infinite fight-pulse}.map-screen.is-portrait .map-next{left:max(10px, env(safe-area-inset-left));justify-content:space-between}.map-screen.is-portrait .map-friends{max-width:70vw;position:absolute;top:54px;right:0}@media (orientation:landscape) and (height<=500px){.map-next{gap:8px;padding:5px 6px 5px 8px}.map-next .btn-lg{padding:10px 20px;font-size:19px}.map-next-who b{font-size:15px}}.credits-screen{cursor:default;background:#2b1f5c}.unlock-screen{cursor:default;background:radial-gradient(circle at 50% 30%,#ffe6a8,#ff9fcf 55%,#8f5bd6);place-items:center;display:grid}.unlock-card{text-align:center;background:#fff;border:3px solid #2b2244;border-radius:30px;flex-direction:column;align-items:center;gap:6px;width:min(440px,92vw);padding:18px 20px 22px;animation:.4s cubic-bezier(.2,1.5,.4,1) both sc-pop;display:flex;position:relative;box-shadow:0 10px #2b22444d}.unlock-card h2{margin:0;font-size:clamp(24px,4vw,32px)}.unlock-card p{margin:0 0 8px}.unlock-kicker{color:#ff5a5f;text-transform:uppercase;letter-spacing:2px;font-size:14px;font-weight:900}.unlock-canvas{display:block}@media (orientation:landscape) and (height<=500px){.unlock-canvas{width:130px!important;height:136px!important}}.story-none{justify-content:center;align-items:center;min-height:70vh}@media (prefers-reduced-motion:reduce){.fight-go,.map-next.is-here .map-go,.sc-next,.sc-hint{animation:none}}:root{--font:"Fredoka", ui-rounded, "SF Pro Rounded", "Nunito", "Arial Rounded MT Bold", system-ui, sans-serif;--ink:#2b2244;--night:#1d1533;--gold:#ffd23f;--pink:#ff4d6d;--green:#2ec27e;--sky:#3d8bfd;--line-w:3px;--pop:0 5px 0 var(--ink);--pt:64px;--pad-t:max(8px, env(safe-area-inset-top));--pad-b:max(10px, env(safe-area-inset-bottom));--pad-l:max(14px, env(safe-area-inset-left));--pad-r:max(14px, env(safe-area-inset-right))}html,body,#root{height:100%}html{background:var(--night);overscroll-behavior:none}body{overscroll-behavior:none;color:var(--ink);background-color:var(--night);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;caret-color:#0000;cursor:default;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-image:radial-gradient(70% 55% at 50% -8%,#ff96d261,#0000 70%),repeating-conic-gradient(from -3deg at 50% -25%,#ffffff0e 0deg 6deg,#0000 6deg 12deg),linear-gradient(#5537d8 0%,#3b2799 42%,#241960 100%);background-attachment:fixed;font-weight:500;overflow:hidden}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;caret-color:auto;cursor:text}button,a,[role=button],label{touch-action:manipulation;-webkit-tap-highlight-color:transparent}img,canvas,svg{-webkit-user-drag:none}*{scrollbar-width:none}::-webkit-scrollbar{display:none}:focus:not(:focus-visible){outline:none}h1,h2,h3,b,strong,.btn,.icon-btn,.chip,.chip-btn,.segmented button,.toggle-label,.mode-tile b,.hero-card b,.panel-title{font-family:var(--font)}b,strong{font-weight:700}.route{height:100%;position:relative}.route-in{animation:.26s cubic-bezier(.2,.9,.3,1) backwards route-in}.route-out{animation:.26s cubic-bezier(.2,.9,.3,1) backwards route-out}.route-fade{animation:.22s ease-out backwards route-fade}@keyframes route-in{0%{opacity:0;transform:translate(48px)}}@keyframes route-out{0%{opacity:0;transform:translate(-36px)}}@keyframes route-fade{0%{opacity:0}}.app{max-width:none;height:100%;padding:var(--pad-t) var(--pad-r) var(--pad-b) var(--pad-l);overscroll-behavior:none;-webkit-overflow-scrolling:touch;flex-direction:column;margin:0;display:flex;overflow:hidden auto}.screen{flex-direction:column;flex:1 0 auto;gap:10px;width:100%;max-width:1180px;margin:0 auto;display:flex}.screen-body{flex-direction:column;gap:10px;display:flex}.scroll-y{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow-y:auto}@media (orientation:landscape){.screen{flex:auto;height:100%;min-height:0}.screen-body{flex:auto;min-height:0}}.btn{border:var(--line-w) solid var(--ink);letter-spacing:.2px;min-height:44px;box-shadow:inset 0 3px 0 #fff6, var(--pop);will-change:transform;border-radius:999px;font-weight:700;line-height:1.1;transition:transform 80ms,box-shadow 80ms,filter .12s}.btn:active:not(:disabled){box-shadow:inset 0 3px 0 #fff6, 0 1px 0 var(--ink);transform:translateY(4px)scale(.96)}.btn:disabled{opacity:.55;filter:grayscale(.4)}.btn-sm{padding:6px 16px;font-size:16px}.btn-md{padding:10px 22px;font-size:18px}.btn-lg{padding:12px 30px;font-size:24px}.btn-primary{color:#fff;text-shadow:0 2px #8c143273;background:linear-gradient(#ff8aa0,#ff4d6d)}.btn-soft{color:var(--ink);background:#fff}.btn-ghost{color:var(--ink);box-shadow:inset 0 3px 0 #fff9, 0 4px 0 var(--ink);background:#ece6ff}.btn-danger{color:#fff;text-shadow:0 2px #780a1e73;background:linear-gradient(#ff7a7a,#e23b55)}.btn-fun{color:#fff;text-shadow:0 2px #b5520c,1px 0 #b5520c,-1px 0 #b5520c,0 -1px #b5520c;background:linear-gradient(#ffe066 0%,#ffb22e 50%,#ff8a1e 100%)}@media (hover:hover){.btn:hover:not(:disabled),.icon-btn:hover,.chip-btn:hover,.mode-tile:hover,.play-btn:hover{filter:brightness(1.06)}}.icon-btn,.mute-btn{border:var(--line-w) solid var(--ink);width:48px;height:48px;color:var(--ink);box-shadow:inset 0 -4px 0 #2b22441f, 0 4px 0 var(--ink);background:#fff;border-radius:50%;flex:none;place-items:center;padding:0;font-size:22px;line-height:1;transition:transform 80ms,box-shadow 80ms;display:grid;position:relative}.icon-btn:active,.mute-btn:active{box-shadow:inset 0 -4px 0 #2b22441f, 0 1px 0 var(--ink);transform:translateY(3px)scale(.92)}.mute-btn.is-muted{background:#ffd6de}.icon-btn-glyph{line-height:1;display:block}.icon-back{background:linear-gradient(#ffe066,#ffb22e);font-size:20px}.icon-back .icon-btn-glyph{transform:translate(-2px)}.icon-btn.is-go{background:linear-gradient(#ffe066,#ffb22e)}.icon-btn.is-dim{opacity:.45}.icon-btn-badge{border:2px solid var(--ink);background:var(--pink);color:#fff;min-width:22px;height:22px;font:700 13px/18px var(--font);border-radius:999px;padding:0 5px;position:absolute;top:-6px;right:-8px}.chip,.chip-btn{border:var(--line-w) solid var(--ink);min-height:36px;color:var(--ink);white-space:nowrap;box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:999px;align-items:center;gap:4px;padding:3px 14px;font-size:16px;font-weight:700;display:inline-flex}.chip-gold{background:var(--gold)}.chip-btn{background:linear-gradient(#fff,#efe9ff);min-height:44px;transition:transform 80ms,box-shadow 80ms}.chip-btn:active{box-shadow:0 0 0 var(--ink);transform:translateY(3px)}.topbar{flex:none;align-items:center;gap:12px;min-height:52px;display:flex}.topbar-title{white-space:nowrap;color:#fff;border:var(--line-w) solid var(--ink);box-shadow:inset 0 3px 0 #ffffff59, 0 4px 0 var(--ink);text-shadow:0 2px #78143280;background:linear-gradient(#ff7f98,#e8456a);border-radius:16px;margin:0;padding:3px 18px 5px;font-size:22px;font-weight:700;line-height:1.2;transform:rotate(-1.5deg)}.topbar-right .btn{white-space:nowrap}.topbar-right{align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.topbar-sub{color:#fff;text-shadow:0 2px #140a3273;white-space:nowrap;text-overflow:ellipsis;font-size:18px;font-weight:600;overflow:hidden}.panel{border:var(--line-w) solid var(--ink);box-shadow:var(--pop);background:#fff;border-radius:22px;gap:8px;padding:12px 14px}.panel-title{font-size:19px;font-weight:700}.muted{color:#6d6488}.small{font-size:15px}.segmented{border:var(--line-w) solid var(--ink);box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:999px;flex-wrap:nowrap;gap:3px;padding:3px;display:inline-flex}.segmented button{white-space:nowrap;border-radius:999px;min-height:38px;padding:4px 14px;font-size:16px;font-weight:700}.segmented button.is-on{color:#fff;text-shadow:0 1px #78143280;background:linear-gradient(#ff8aa0,#ff4d6d);box-shadow:inset 0 -3px #0000002e}.toggle{border-radius:16px;padding:8px 4px}.toggle-label{font-size:18px;font-weight:700}.toggle-hint{font-size:14px}.toggle-track{border:var(--line-w) solid var(--ink);background:#d9d2f0;width:58px;height:34px}.toggle-knob{border:2px solid var(--ink);width:22px;height:22px;box-shadow:none;top:3px;left:3px}.toggle.is-on .toggle-knob{transform:translate(24px)}.toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.toggle.has-icon{border:var(--line-w) solid var(--ink);box-shadow:0 3px 0 var(--ink);background:#f4f0ff;justify-content:flex-start;gap:10px;padding:8px 10px;transition:transform 80ms,box-shadow 80ms,background .15s}.toggle.has-icon:active{box-shadow:0 0 0 var(--ink);transform:translateY(3px)}.toggle.has-icon.is-on{background:#dcf8e9}.toggle.has-icon .toggle-text{flex:1;min-width:0}.toggle-icon{flex:none;font-size:26px;line-height:1}.name-input,.code-input{border:var(--line-w) solid var(--ink);font-family:var(--font);min-height:44px;color:var(--ink);background:#fff;border-radius:14px;font-weight:600}.field span{font-weight:700}.silly-btn{border:var(--line-w) solid var(--ink);min-height:44px;font:700 17px var(--font);box-shadow:0 3px 0 var(--ink);white-space:nowrap;background:#fff;border-radius:999px;padding:4px 16px}.silly-btn.is-on{background:var(--gold);border-style:solid}.silly-btn:active{box-shadow:none;transform:translateY(3px)}.modal{border:4px solid var(--ink);box-shadow:0 8px 0 var(--ink), 0 20px 40px #0a051e73;border-radius:26px}.modal-title{font-family:var(--font);font-size:28px;font-weight:700}.modal-backdrop{background:#140c2d99}.modal .toggle-grid{grid-template-columns:1fr}.modal:has(.leave-faces){max-width:460px}.leave-faces{justify-content:center;gap:12px;margin:0;display:flex}@media (orientation:landscape) and (height<=500px){.modal-title{font-size:24px}.modal .toggle-grid{grid-template-columns:1fr 1fr}}.logo{isolation:isolate;font-family:var(--font);letter-spacing:.01em;white-space:nowrap;flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:.22em;padding:.22em .55em .3em;font-weight:700;line-height:.95;display:inline-flex;position:relative}.logo-burst{z-index:-1;filter:drop-shadow(0 6px #140a3273);width:106%;height:150%;position:absolute;top:-22%;left:-3%}.logo-line{display:inline-flex}.logo-ch{-webkit-text-stroke:.15em var(--ink);paint-order:stroke fill;text-shadow:0 .09em 0 var(--ink);display:inline-block}.logo-bonk .logo-ch{color:#ff4d6d}.logo-buddies .logo-ch{color:#fff}.logo-bonk .logo-ch:nth-child(odd){transform:rotate(-4deg)translateY(-.03em)}.logo-bonk .logo-ch:nth-child(2n){transform:rotate(3deg)}.logo-buddies .logo-ch:nth-child(odd){transform:rotate(2deg)}.logo-buddies .logo-ch:nth-child(2n){transform:rotate(-2deg)translateY(.02em)}.intro{z-index:60;cursor:pointer;padding:var(--pad-t) var(--pad-r) 0 var(--pad-l);background:radial-gradient(circle at 50% 38%,#6a4cf0 0%,#3a2799 42%,#1d1533 85%);flex-direction:column;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.intro:focus{outline:none}.intro-rays{pointer-events:none;background:repeating-conic-gradient(#ffffff17 0deg 8deg,#0000 8deg 16deg);border-radius:50%;width:110vmax;height:110vmax;margin:-55vmax 0 0 -55vmax;animation:.6s ease-out .35s backwards intro-fade,50s linear infinite intro-spin;position:absolute;top:34%;left:50%;-webkit-mask-image:radial-gradient(circle,#000 18%,#0000 68%);mask-image:radial-gradient(circle,#000 18%,#0000 68%)}.intro-shake{flex-direction:column;flex:1;align-items:center;width:100%;animation:.42s linear .5s intro-shake;display:flex;position:relative}.intro-logo{margin-top:max(4vh,10px);font-size:clamp(44px,min(10.5vw,19vh),128px)}.intro .logo-burst{animation:.5s cubic-bezier(.25,1.6,.45,1) .1s backwards burst-slam}.logo.is-animated .logo-ch{animation:letter-in .55s calc(.55s + var(--i) * 70ms) cubic-bezier(.3, 1.8, .5, 1) backwards}.intro-heroes{pointer-events:none;justify-content:space-between;height:46%;padding:0 6%;display:flex;position:absolute;bottom:0;left:0;right:0}.intro-hero{width:28%;max-width:260px;height:100%;animation:hero-pop .65s calc(1.3s + var(--i) * .16s) cubic-bezier(.3, 1.5, .5, 1) backwards}.intro-hero:nth-child(2){align-self:flex-end;height:86%}.intro-hero .hero-figure.is-fit{width:100%;height:100%}.intro-tap{color:#fff;font:700 clamp(20px, 3.4vw, 32px) var(--font);letter-spacing:2px;white-space:nowrap;text-shadow:0 3px 0 var(--ink);opacity:0;pointer-events:none;background:#140a328c;border-radius:999px;margin:0;padding:8px 22px;transition:opacity .3s;position:absolute;top:60%;left:50%;transform:translate(-50%,-50%)}.intro.is-ready .intro-tap{opacity:1;animation:1.1s ease-in-out infinite tap-pulse}.intro-sparks span{color:var(--gold);text-shadow:0 0 10px #ffe678e6;animation:twinkle 1.6s calc(1.2s + var(--d)) ease-in-out infinite backwards;pointer-events:none;font-size:22px;position:absolute}.intro.is-leaving{pointer-events:none;animation:.45s ease-in forwards intro-out}@keyframes intro-fade{0%{opacity:0}}@keyframes intro-spin{to{transform:rotate(360deg)}}@keyframes burst-slam{0%{opacity:0;transform:scale(3.2)rotate(-40deg)}60%{opacity:1;transform:scale(.88)rotate(4deg)}}@keyframes letter-in{0%{opacity:0;transform:translateY(-140%)scale(.3)}70%{opacity:1;transform:translateY(8%)scale(1.15)}}@keyframes intro-shake{0%,to{transform:translate(0)}15%{transform:translate(-9px,5px)}30%{transform:translate(8px,-6px)}45%{transform:translate(-6px,-3px)}60%{transform:translate(5px,4px)}80%{transform:translate(-2px,1px)}}@keyframes hero-pop{0%{transform:translateY(105%)}70%{transform:translateY(-6%)}}@keyframes tap-pulse{0%,to{transform:translate(-50%,-50%)scale(1)}50%{transform:translate(-50%,-50%)scale(1.08)}}@keyframes twinkle{0%,to{opacity:0;transform:scale(.4)rotate(0)}50%{opacity:1;transform:scale(1.1)rotate(45deg)}}@keyframes intro-out{to{opacity:0;transform:scale(1.18)}}.title-screen{background:var(--night);height:100%;position:relative;overflow:hidden}.stage-backdrop{width:100%;height:100%;display:block;position:absolute;inset:0}.title-shade{pointer-events:none;background:linear-gradient(#190c3c80 0%,#190c3c00 30% 68%,#190c3c73 100%);position:absolute;inset:0}.title-ui{z-index:1;height:100%;padding:var(--pad-t) var(--pad-r) var(--pad-b) var(--pad-l);flex-direction:column;gap:8px;display:flex;position:relative}.title-top{flex:none;align-items:flex-start;gap:8px;display:flex}.title-corner{flex:1 1 0;align-items:center;gap:10px;display:flex}.title-corner.is-right{justify-content:flex-end}.title-logo{flex:none;margin-top:4px;font-size:clamp(30px,min(6.4vw,13vh),76px)}.title-mid{flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:10px;min-height:0;display:flex}.play-btn{border:4px solid var(--ink);color:#fff;box-shadow:inset 0 4px 0 #ffffff8c, inset 0 -5px 0 #003c1e40, 0 7px 0 var(--ink), 0 14px 28px #0a051e66;background:linear-gradient(#8cff86 0%,#35cc74 50%,#1fa868 100%);border-radius:28px;align-items:center;gap:12px;padding:8px 34px 10px;transition:transform 80ms,box-shadow 80ms;animation:1.8s ease-in-out infinite play-breathe;display:flex}.play-btn:active{box-shadow:inset 0 4px 0 #ffffff8c, 0 1px 0 var(--ink);animation:none;transform:translateY(6px)scale(.96)}.play-text{flex-direction:column;align-items:center;display:flex}.play-main{font:700 clamp(36px, min(6.4vw, 13vh), 64px) / 1 var(--font);letter-spacing:1px;text-shadow:0 3px #146b40,2px 0 #146b40,-2px 0 #146b40,0 -2px #146b40}.play-sub{font:600 clamp(15px, 2vw, 20px) / 1.2 var(--font);text-shadow:0 2px #146b40;white-space:nowrap}.play-face .portrait.is-fluid{border:3px solid var(--ink);background:#fff;border-radius:50%;width:clamp(44px,12vh,64px);height:clamp(44px,12vh,64px)}@keyframes play-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}.title-mid .chip-btn{min-height:40px;font-size:15px}.mode-tiles{flex:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%;max-width:760px;margin:0 auto;display:grid}.mode-tile{border:var(--line-w) solid var(--ink);color:#fff;height:clamp(76px,22vh,128px);box-shadow:inset 0 4px 0 #fff6, inset 0 -5px 0 #00000024, 0 5px 0 var(--ink);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px;transition:transform 80ms,box-shadow 80ms;display:flex;position:relative}.title-screen .mode-tile{animation:tile-in .42s calc(80ms + var(--i,0) * 50ms) cubic-bezier(.3, 1.6, .5, 1) backwards}.title-screen .title-mid{animation:.45s cubic-bezier(.3,1.6,.5,1) 50ms backwards tile-in}@keyframes tile-in{0%{opacity:0;transform:translateY(26px)scale(.85)}}.mode-tile:active{box-shadow:inset 0 4px 0 #fff6, 0 1px 0 var(--ink);transform:translateY(4px)scale(.95)}.mode-tile-emoji{filter:drop-shadow(0 3px #140a324d);font-size:clamp(28px,min(4.6vw,11vh),50px);line-height:1.1}.mode-tile b{text-align:center;text-shadow:0 2px #140a3273;font-size:clamp(15px,2vw,21px);line-height:1.05}.mode-tile-tag{border:2px solid var(--ink);background:var(--gold);color:var(--ink);font:700 13px/18px var(--font);white-space:nowrap;border-radius:999px;padding:1px 8px;position:absolute;top:-10px;right:-6px}.mode-quick{background:linear-gradient(#ffd84d,#ff9a1f)}.mode-online{background:linear-gradient(#a98bff,#5b55f0)}.mode-challenges{background:linear-gradient(#ff8fc0,#d455e0)}.mode-practice{background:linear-gradient(#6fe39a,#22a96a)}.hint-wrap{display:inline-flex;position:relative}.icon-btn.is-new{animation:1.6s ease-in-out infinite wiggle}.hint-bubble{border:var(--line-w) solid var(--ink);color:var(--ink);font:700 15px/1.2 var(--font);white-space:nowrap;box-shadow:0 3px 0 var(--ink);pointer-events:none;z-index:3;background:#fff;border-radius:14px;padding:4px 12px;animation:1.4s ease-in-out infinite hint-bob;position:absolute;top:calc(100% + 12px);left:-6px}.hint-bubble:before{content:"";border:8px solid #0000;border-top:0;border-bottom:10px solid var(--ink);position:absolute;top:-10px;left:18px}@keyframes hint-bob{50%{transform:translateY(4px)}}@keyframes wiggle{0%,70%,to{transform:rotate(0)}80%{transform:rotate(-12deg)}90%{transform:rotate(10deg)}}.hero-grid{grid-template-columns:repeat(3,auto);place-content:center;gap:6px;display:grid}.hero-grid.is-wide{grid-template-columns:repeat(4,auto)}.hero-card{width:calc(var(--pt) + 20px);border:var(--line-w) solid var(--ink);box-shadow:0 4px 0 var(--ink);background:#fff;border-radius:16px;gap:1px;padding:4px 2px 5px;transition:transform .1s,box-shadow .1s,background .15s}.hero-grid.is-wide .hero-card{width:calc(var(--pt) * .84 + 14px)}.hero-card .portrait.is-fluid{width:var(--pt);height:var(--pt);background:radial-gradient(circle at 50% 40%, #fff, color-mix(in srgb, var(--ha,#ffd166) 45%, #fff));border-radius:50%}.hero-grid.is-wide .hero-card .portrait.is-fluid{width:calc(var(--pt) * .84);height:calc(var(--pt) * .84)}.hero-card b{white-space:nowrap;font-size:15px;line-height:1.15}.hero-card:hover{transform:none}.hero-card:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)scale(.95)}.hero-card.is-on{border-color:var(--ink);background:color-mix(in srgb, var(--ha,var(--gold)) 38%, #fff);box-shadow:0 0 0 4px var(--gold), 0 6px 0 var(--ink);z-index:1;transform:translateY(-2px)scale(1.05)}.hero-mark,.hero-level{font:700 11px/16px var(--font);border:2px solid var(--ink);z-index:2;padding:0 6px;top:-7px}.hero-mark{left:-4px}.hero-level{background:var(--gold);color:var(--ink);right:-4px}.hero-card.is-premium .portrait{filter:grayscale(.7)brightness(.92)}.hero-card.is-premium b{opacity:.75}.hero-lock{border:2px solid var(--ink);background:var(--gold);z-index:2;border-radius:50%;place-items:center;width:24px;height:24px;font-size:14px;line-height:1;display:grid;position:absolute;top:-7px;right:-4px}.unlock-hero{place-items:center;margin-bottom:4px;display:grid}.unlock-hero .portrait{background:radial-gradient(circle at 50% 40%, #fff, color-mix(in srgb, var(--ha,#ffd166) 45%, #fff));border-radius:50%}.hero-random{background:linear-gradient(#fff6c9,#ffd23f);justify-content:center;min-height:0}.hero-random-dice{width:var(--pt);height:var(--pt);font-size:calc(var(--pt) * .6);place-items:center;line-height:1;display:grid}.hero-grid.is-locked{opacity:.6;pointer-events:none}.showcase{border:var(--line-w) solid var(--ink);min-width:0;min-height:0;box-shadow:var(--pop);background:#fff;border-radius:22px;display:flex;overflow:hidden}.showcase-stage{border-right:var(--line-w) solid var(--ink);background:radial-gradient(ellipse 70% 14% at 50% 94%, #140a322e, transparent 70%), radial-gradient(circle at 50% 60%, #fff 0%, color-mix(in srgb, var(--ha,#ffd166) 50%, #fff) 48%, color-mix(in srgb, var(--hc,#7c5cf0) 55%, #fff) 100%);flex:50%;min-width:0;min-height:140px;position:relative}.showcase-stage .hero-figure.is-fit{width:calc(100% - 4px);height:calc(100% - 26px);position:absolute;inset:26px 2px 0}.showcase-el,.showcase-label{z-index:1;border:2px solid var(--ink);font:700 13px/18px var(--font);white-space:nowrap;background:#fff;border-radius:999px;padding:1px 9px;position:absolute;top:6px}.showcase-el{left:6px}.showcase-label{background:var(--gold);right:6px}.showcase-info{flex-direction:column;flex:50%;justify-content:center;gap:6px;min-width:0;padding:10px 12px;display:flex}.showcase-name{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:24px;line-height:1.1;overflow:hidden}.showcase-rank{color:#6d6488;margin:0;font-size:14px;font-weight:600}.showcase-rank .xp-track{border:2px solid var(--ink);box-sizing:content-box;max-width:none;height:8px}.showcase-stats{flex-direction:column;gap:3px;display:flex}.stat-bar{gap:6px;max-width:none;font-size:14px;font-weight:600}.bars i{background:#e6e0f6;border:1.5px solid #2b224459;border-radius:4px;width:15px;height:11px}.bars i.on{background:var(--hc,var(--brand));border-color:var(--ink)}.costume-row{flex-direction:column;gap:3px;display:flex}.costumes{gap:6px;margin:0;display:flex}.costume{background:0 0;border:0;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:grid}.costume-dot{width:34px;height:34px;box-shadow:0 0 0 2px var(--ink);border-width:5px}.costume.is-on{box-shadow:0 0 0 3px var(--gold), 0 0 0 5px var(--ink);border-radius:50%}.costume-note{color:#6d6488;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.power-chips{flex-direction:column;gap:6px;min-height:0;margin:0;padding:0;list-style:none;display:flex}.power-chips li{border:var(--line-w) solid var(--ink);box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:4px 10px 4px 4px;display:flex}.power-chips li.is-super{background:linear-gradient(90deg,#fff4bf,#ffd6ea)}.power-chips .power-how{color:#fff;text-align:center;white-space:nowrap;background:#4b33c9;border-radius:999px;flex:none;min-width:64px;padding:2px 8px;font-size:15px;font-weight:700}.power-chips li.is-super .power-how{background:#ff8a1e}.power-text{flex-direction:column;min-width:0;display:flex}.power-text b{white-space:nowrap;text-overflow:ellipsis;font-size:16px;line-height:1.15;overflow:hidden}.power-chips.is-detail li{border-radius:18px;align-items:flex-start;padding:6px 10px 6px 6px}.power-what{color:#5d5478;font-size:14px;font-weight:500;line-height:1.25}.sel-body{gap:12px;display:grid}.sel-grid{justify-content:center;align-items:center;min-height:0;display:flex}.sel-side{flex-direction:column;gap:10px;min-width:0;min-height:0;display:flex}.sel-options{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.go-btn{white-space:nowrap}.sel-side .sel-options{width:100%}.sel-side .segmented{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;width:100%;display:grid}.sel-side .segmented:has(>:nth-child(4)){border-radius:24px;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.sel-side .segmented button{padding-left:6px;padding-right:6px}.hero-wins{flex-wrap:wrap;gap:6px;margin:0;display:flex}.heroes .power-chips{overscroll-behavior:contain;padding:2px 2px 4px;overflow-y:auto}.vs-stage{position:relative}.vs-fighter{border:var(--line-w) solid var(--ink);min-width:0;min-height:0;box-shadow:var(--pop);background:radial-gradient(circle at 50% 65%, #fff 0%, color-mix(in srgb, var(--hc) 45%, #fff) 70%);border-radius:22px;flex-direction:column;align-items:center;display:flex;position:relative;overflow:hidden}.vs-fighter.is-p1{background:radial-gradient(circle at 50% 65%,#fff 0%,#bcd8ff 70%,#7fb1ff 100%)}.vs-fighter.is-p2{background:radial-gradient(circle at 50% 65%,#fff 0%,#ffc7cf 70%,#ff8fa1 100%)}.vs-fighter .hero-figure.is-fit{flex:auto;width:100%;height:100%;min-height:0}.vs-fighter-who{border:2px solid var(--ink);font:700 14px/20px var(--font);white-space:nowrap;background:#fff;border-radius:999px;margin-top:6px;padding:1px 10px}.vs-fighter-name{margin:0 0 6px;font-size:22px;line-height:1.1}.vs-badge-big{z-index:2;border:4px solid var(--ink);color:#fff;width:64px;height:64px;font:700 28px/1 var(--font);text-shadow:0 2px 0 var(--ink), 1px 0 0 var(--ink), -1px 0 0 var(--ink);box-shadow:0 4px 0 var(--ink);pointer-events:none;background:radial-gradient(circle at 40% 35%,#ffe680,#ff9f1c);border-radius:50%;place-items:center;display:grid;position:absolute;transform:rotate(-8deg)}.sel-actions{flex:none;justify-content:space-between;align-items:center;gap:10px;display:flex}.settings-body{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-content:start;gap:12px;padding:2px 2px 8px;display:grid}.settings .toggle-grid{grid-template-columns:minmax(0,1fr);gap:6px}.setting-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.setting-label{font-size:17px;font-weight:700}.settings .field{gap:10px}.settings .name-input{padding:6px 12px;font-size:18px}.trophies-body{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px;display:grid}.trophies-side{flex-direction:column;gap:10px;min-height:0;display:flex}.stat-chips{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.stat-chip{border:var(--line-w) solid var(--ink);box-shadow:0 4px 0 var(--ink);background:#fff;border-radius:18px;flex-direction:column;align-items:center;padding:6px 4px;line-height:1.1;display:flex}.stat-chip-emoji{font-size:22px}.stat-chip b{font-size:24px}.stat-chip span:last-child{color:#6d6488;white-space:nowrap;font-size:14px;font-weight:600}.cleared-panel{flex:auto;min-height:0}.cleared-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}@media (orientation:landscape){.cleared-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}}.cleared{border:2px solid #2b224433;border-radius:14px;padding:4px;line-height:1}.cleared .portrait.is-fluid{aspect-ratio:1;width:min(100%,56px);height:auto}.cleared.is-got{border-color:var(--ink)}.badges-panel{min-height:0;padding:8px}.badges{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;min-height:0;padding:4px}.badges .badge{opacity:.75;background:#f6f3ff;border:2px dashed #2b22444d;border-radius:18px;gap:2px;padding:8px 6px}.badges .badge.is-got{border:var(--line-w) solid var(--ink);box-shadow:0 3px 0 var(--ink);opacity:1;background:linear-gradient(#fff8d6,#ffe08a)}.badge-emoji{font-size:34px;line-height:1.1}.badge b{font-size:16px}.badge-hint{color:#6d6488;font-size:14px;line-height:1.2}.how-body{gap:8px}.how-track{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x;flex:auto;gap:16px;min-height:0;padding:6px max(8px,50% - min(290px,38vw)) 10px;scroll-padding:0 max(8px,50% - min(290px,38vw));display:flex;overflow:auto hidden}.how-card{scroll-snap-align:center;scroll-snap-stop:always;text-align:center;border:4px solid var(--ink);box-shadow:0 6px 0 var(--ink);opacity:.7;background:#fff;border-radius:26px;flex-direction:column;flex:0 0 min(580px,76vw);justify-content:center;align-items:center;gap:6px;padding:14px 22px;transition:transform .25s,opacity .25s;display:flex;position:relative;overflow:hidden;transform:scale(.92)}.how-card.is-on{opacity:1;transform:none}.how-card:before{content:"";background:linear-gradient(180deg, color-mix(in srgb, var(--cc) 30%, #fff), #fff);z-index:0;height:40%;position:absolute;inset:0 0 auto}.how-card>*{position:relative}.how-num{border:var(--line-w) solid var(--ink);background:var(--cc);color:#fff;width:34px;height:34px;font:700 18px var(--font);border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;left:12px}.how-card .how-art{filter:drop-shadow(0 4px #140a3233);width:auto;font-size:clamp(44px,14vh,76px);line-height:1.1}.how-card h2{color:var(--cc);-webkit-text-stroke:0;text-shadow:0 2px #2b224440;margin:0;font-size:clamp(22px,3.2vw,30px)}.how-card p{max-width:34em;margin:0;font-size:clamp(16px,2.2vw,20px);line-height:1.35}.how-card kbd{border:2px solid var(--ink);margin:1px}.how-nav{flex:none;justify-content:center;align-items:center;gap:16px;display:flex}.how-dots{gap:8px;display:flex}.how-dots button{border:2px solid var(--ink);background:#ffffff80;border-radius:50%;width:16px;height:16px;padding:0;position:relative}.how-dots button:after{content:"";position:absolute;inset:-12px -5px}.how-dots button.is-on{background:var(--gold);transform:scale(1.3)}.ch-body{grid-template-columns:auto minmax(0,1fr);gap:12px;display:grid}.ch-heroes{flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:0;display:flex}.ch-heroes .hero-grid{grid-template-columns:repeat(4,auto)}.ch-pick{color:#fff;font:700 18px var(--font);text-shadow:0 2px #140a3273;margin:0}.ch-heroes .hero-mark{font-size:11px}.ch-panel{border:var(--line-w) solid var(--ink);min-height:0;box-shadow:var(--pop);border-top:8px solid var(--hc,var(--brand));border-radius:22px;flex-direction:column;gap:8px;padding:10px;display:flex}.ch-head{flex:none;align-items:center;gap:10px}.ch-head .hero-name{font-size:22px}.ch-head-text{flex:1;min-width:0}.ch-goal{color:#6d6488;white-space:nowrap;font-size:14px;font-weight:600}.ch-list{flex:auto;min-height:0;margin:0;padding:2px 2px 6px}.ch-card{border:var(--line-w) solid var(--ink);box-shadow:0 3px 0 var(--ink)}.ch-how{font-size:15px}.ch-tag{font-size:13px}.ch-go{min-width:76px}.online-body{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.online-body .panel{justify-content:center;align-items:center}.online-art{font-size:clamp(34px,10vh,56px);line-height:1.1}.online-body .panel-title{font-size:22px}.online-body .nick{margin:0;font-size:24px}.online-body p{margin:0}.code-input{text-align:center;letter-spacing:4px;width:8ch;font-size:26px}.online-note{text-align:center;color:#fff;text-shadow:0 2px #140a3273;flex:none;margin:0;font-weight:600}.lobby-body{grid-template-columns:minmax(0,1fr) auto;gap:12px;display:grid}.lobby-body .lobby{flex-direction:row;justify-content:center;align-items:stretch;gap:6px;min-height:0}.lobby-side{flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:4px;min-width:0;display:flex}.lobby-side .hero-figure.is-fit{flex:auto;width:100%;min-height:90px}.lobby-side b{font-size:19px}.lobby-side.is-waiting p{margin:0}.lobby .vs-text{font:700 30px var(--font);color:var(--pink);-webkit-text-stroke:1.5px var(--ink);align-self:center}.lobby .room-code{margin:0;font-size:clamp(36px,7vw,60px)}.lobby-pick{flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:0;display:flex}.lobby-go{flex-direction:column;align-items:center;gap:4px;display:flex}.lobby-wait{color:#fff;text-shadow:0 2px #140a3273;margin:0;font-size:15px;font-weight:600}.room-code{font-family:var(--font)}.conn-banner{margin:0}.screen>.muted,.screen>p.small{color:#fff}.story-none .panel{color:var(--ink)}@media (orientation:landscape){.screen{--pt:clamp(40px, calc((100dvh - 196px) / 3.6), 92px)}.sel-body{flex:auto;grid-template-columns:minmax(0,1fr) auto minmax(0,.95fr);min-height:0}.sel .showcase{min-height:0}.sel-side .go-btn{align-self:flex-end;margin-top:auto}.sel-side .power-chips{flex:0 auto}.heroes .sel-side .power-chips{flex:auto}.sel.is-vs{--pt:clamp(38px, calc((100dvh - 252px) / 3.3), 92px)}.sel.is-vs .sel-body{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);position:relative}.sel.is-vs .vs-badge-big{width:52px;height:52px;font-size:22px;top:-56px;left:50%;transform:translate(-50%)rotate(-8deg)}.ch-body,.trophies-body,.online-body,.lobby-body{min-height:0}.badges-panel{flex-direction:column;display:flex}.badges-panel .badges{flex:auto}}@media (orientation:landscape) and (height<=500px){.topbar{min-height:48px}.topbar-title{padding:2px 14px 4px;font-size:20px}.topbar-sub{font-size:16px}.btn-lg{padding:8px 24px;font-size:22px}.panel{padding:8px 12px}.panel-title{font-size:17px}.showcase-name{font-size:21px}.bars{gap:2px}.bars i{width:12px;height:10px}.stat-bar{font-size:13.5px}.showcase-info{gap:4px;padding:6px 10px}.costumes{gap:5px}.costume{width:30px;height:30px}.costume .costume-dot{border-width:4px;width:26px;height:26px;font-size:11px}.power-chips{gap:5px}.power-chips li{padding:2px 8px 2px 3px}.power-chips .power-how{min-width:58px;font-size:14px}.power-text b{font-size:15px}.power-what{font-size:13.5px}.segmented button{min-height:36px;padding:3px 11px;font-size:15px}.vs-fighter-name{font-size:19px}.toggle.has-icon{padding:5px 8px}.toggle-label{font-size:17px}.ch-card{padding:6px 8px}.stat-chip b{font-size:20px}.stat-chip-emoji{font-size:18px}.how-card{padding:10px 18px}}@media (orientation:landscape) and (height>=600px){.showcase{flex-direction:column}.showcase-stage{border-right:0;border-bottom:var(--line-w) solid var(--ink);flex:auto}.showcase-info{flex:none}}@media (height>=640px) and (width>=900px){.icon-btn,.mute-btn{width:58px;height:58px;font-size:27px}.topbar{min-height:62px}.topbar-title{font-size:28px}.topbar-sub{font-size:20px}.hero-card b{font-size:17px}.showcase-name{font-size:30px}.showcase-rank,.stat-bar{font-size:16px}.bars i{width:20px;height:13px}.power-text b{font-size:18px}.power-what{font-size:15px}.power-chips li{padding:6px 12px 6px 6px}.vs-fighter-name{font-size:28px}}@media (orientation:portrait){.screen{--pt:clamp(52px, 15vw, 84px);padding-bottom:8px}.topbar-sub{display:none}.sel-body,.ch-body,.trophies-body,.online-body,.lobby-body,.settings-body{grid-template-columns:minmax(0,1fr)}.sel .showcase{min-height:230px}.sel-side .go-btn,.sel-actions .go-btn,.lobby-go .go-btn{z-index:4;align-self:stretch;position:sticky;bottom:8px}.sel-actions{flex-wrap:wrap}.sel-actions .go-btn{flex:1 0 100%}.sel.is-vs .sel-body{grid-template-columns:1fr 1fr;position:relative}.sel.is-vs .vs-fighter{height:200px}.sel.is-vs .sel-grid{order:3;grid-column:1/-1}.sel.is-vs .vs-badge-big{top:70px;left:50%;transform:translate(-50%)rotate(-8deg)}.hero-grid,.ch-heroes .hero-grid{grid-template-columns:repeat(4,auto)}.heroes .power-chips{overflow:visible}.how-body{min-height:calc(100dvh - 90px)}.how-track{padding:6px 7vw 10px;scroll-padding:0 7vw}.how-card{flex-basis:86vw}.badges-panel .badges{max-height:none}.intro-logo{white-space:normal;margin-top:10vh;font-size:clamp(48px,17vw,110px)}.intro-heroes{height:32%;padding:0 2%}.intro-hero{width:33%}.intro-tap{top:58%}.title-top{flex-wrap:wrap;justify-content:space-between}.title-logo{flex:1 0 100%;order:3;width:100%;margin-top:10px;font-size:clamp(30px,11vw,60px)}.title-mid{justify-content:flex-end;padding-bottom:6px}.mode-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-tile{height:clamp(76px,12vh,110px)}.hint-bubble{left:-40px}}@media (prefers-reduced-motion:reduce){.route-in,.route-out,.route-fade,.title-screen .mode-tile,.title-screen .title-mid,.play-btn,.icon-btn.is-new,.hint-bubble,.intro-rays,.intro.is-ready .intro-tap{animation:none}.intro-sparks{display:none}}.more-games .gate-panel{max-width:420px;margin:0 auto}.more-list{gap:10px;width:100%;max-width:640px;margin:0 auto;display:grid}.more-card{text-align:left;box-shadow:var(--shadow);background:#fff;border:0;border-radius:20px;align-items:center;gap:14px;padding:10px 14px;display:flex}.more-card img{border-radius:14px;flex:none;width:56px;height:56px}.more-card>span:nth-child(2){flex-direction:column;flex:1;display:flex}.more-card b{font-size:18px}.more-go{color:var(--brand-dark);white-space:nowrap;font-weight:800}.more-all{justify-self:center;margin-top:4px}
