@font-face{font-family:Lilita One;font-style:normal;font-display:swap;font-weight:400;src:url(./lilita-one-latin-400-normal-87r-Z-Re.woff2)format("woff2"),url(./lilita-one-latin-400-normal-DXkechA3.woff)format("woff")}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#1a1035;--panel:#2e2159;--raised:#45347f;--deep:#120a29;--text:#fff;--muted:#c9bfe6;--faint:#9488bc;--ink:#1a1035;--light:#e9e0fc;--dark:#a08bdd;--accent:#ff7a59;--accent-shadow:#c9502f;--teal:#33c3b0;--teal-shadow:#1f8c7e;--danger:#ff5e8a;--gold:#ffc93c;--gold-shadow:#c9951a;--border:#ffffff0f;--border-strong:#ffffff1f;--radius:16px;--lift:0 4px 0 var(--deep);--display:"Lilita One", "Nunito Variable", system-ui, sans-serif;--column:min(88vw, 448px);--board:min(var(--column), max(240px, 100svh - 88px));--sq:calc(var(--board) / 8);color:var(--text);background:var(--bg);font-family:Nunito Variable,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:600}*{box-sizing:border-box}body{background:radial-gradient(120% 60% at 50% 0%, #241749 0%, var(--bg) 60%) fixed;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;min-height:100dvh;margin:0}#app{max-width:calc(var(--column) + 32px);padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:12px;margin:0 auto;display:grid}#app>*{grid-column:1/-1}#app>header{display:contents}header h1{grid-area:1/1}header .header-actions{grid-area:1/3}#app>.run-bar{grid-area:1/2}header h1,header .header-actions,#app>.run-bar{margin-bottom:10px}@media (orientation:portrait){body:not(.in-lobby) header h1{display:none}body:not(.in-lobby) #app>.run-bar{grid-column:1/3}}#placement:not([hidden]),#battle:not([hidden]){animation:.2s ease-out fade-in}.screen-top,.screen-side{display:contents}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}}h1{font-family:var(--display);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:8px;margin:0;font-size:1.35rem;font-weight:400;display:flex}h1 .logo{width:34px;height:34px;margin:-2px -2px -2px -4px}.stats{color:var(--muted);font-size:.85rem}.board{--sq:calc((var(--board) - 8px) / var(--files,8));grid-template-columns:repeat(var(--files,8), var(--sq));grid-template-rows:repeat(var(--ranks,8), var(--sq));box-shadow:0 0 0 4px var(--panel), 0 10px 0 0 var(--deep);width:calc(var(--board) - 8px);border-radius:12px;margin:4px auto;display:grid;overflow:hidden}.square{justify-content:center;align-items:center;display:flex;position:relative}.square.light{background:var(--light)}.square.dark{background:var(--dark)}.square.enemy:before{content:"";background:#2e2159e0;position:absolute;inset:0}.board:not(.battle) .square:not(.home):not(.enemy):before{content:"";background:#1a103538;position:absolute;inset:0}.square.legal:after{content:"";pointer-events:none;background:#1f8c7eb3;border-radius:50%;width:30%;height:30%;position:absolute}.square.legal:has(.piece):after{background:0 0;border:4px solid #1f8c7eb3;width:90%;height:90%}.rank-label,.file-label{color:#1a10358c;pointer-events:none;font-size:11px;font-weight:800;position:absolute}.rank-label{top:2px;left:3px}.file-label{bottom:1px;right:3px}.piece{z-index:1;width:var(--sq);height:var(--sq);cursor:grab;touch-action:none;justify-content:center;align-items:center;display:flex;position:relative}.piece img{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 3px #1a103547);width:90%;height:90%}.piece.selected{outline:3px solid var(--gold);outline-offset:-3px;background:radial-gradient(circle,#ffc93c8c 0%,#ffc93c2e 70%);border-radius:10px}.piece.fresh>img:first-child{animation:.4s cubic-bezier(.2,1.6,.4,1) both piece-pop}.piece.fresh:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#ffc93cbf,#ffc93c00 70%);border-radius:50%;animation:.5s ease-out forwards piece-flash;position:absolute;inset:6%}.piece.landed>img:first-child{animation:.22s ease-out piece-land}@keyframes piece-pop{0%{opacity:0;transform:scale(.2)}}@keyframes piece-flash{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(1.5)}}@keyframes piece-land{0%{transform:translateY(-8%)scale(1.12)}}.board.grew{animation:.9s ease-out board-grow}@keyframes board-grow{0%{box-shadow:0 0 0 4px var(--teal), 0 0 0 16px #33c3b059, 0 10px 0 0 var(--deep);transform:scale(.94)}55%{transform:scale(1.01)}}@media (prefers-reduced-motion:reduce){.piece.fresh:before{display:none}}body.reduce-motion .piece.fresh:before{display:none}.square.rejected{box-shadow:inset 0 0 0 3px var(--danger);animation:.7s ease-out rejected}@keyframes rejected{0%,40%{background-color:#dc50508c}}#message.pop{animation:.35s ease-out message-pop}@keyframes message-pop{0%{transform:scale(1.08)}}.piece .affinity-badge{width:46%;height:46%;box-shadow:0 0 0 1.5px var(--gold);filter:none;background:#1a1035cc;border-radius:50%;padding:1px;position:absolute;bottom:2%;right:2%}.inline-affinity{display:inline-block;position:relative}.inline-affinity .affinity-badge{width:60%;height:60%;box-shadow:0 0 0 1px var(--gold);background:#1a1035d9;border-radius:50%;position:absolute;bottom:-2px;right:-3px}.piece.drag-source{opacity:.3}.piece.ghost{z-index:100;pointer-events:none;cursor:grabbing;width:calc(var(--sq) * 1.15);height:calc(var(--sq) * 1.15);position:fixed;top:0;left:0}.bench-label{z-index:1;width:fit-content;color:var(--faint);text-transform:uppercase;letter-spacing:.1em;background:var(--bg);border-radius:6px;margin:12px 0 -9px 14px;padding:0 6px;font-size:.7rem;font-weight:900;line-height:16px;position:relative}.bench{min-height:calc(var(--sq) + 12px);background:var(--deep);border:2px dashed var(--border-strong);border-radius:var(--radius);grid-template-columns:repeat(8,minmax(0,1fr));align-items:center;padding:9px 6px 6px;display:grid}.bench.legal{border-color:var(--teal)}.bench .piece{aspect-ratio:1;width:100%;height:auto}.bench-empty{color:var(--muted);grid-column:1/-1;padding:0 8px;font-size:.85rem}#message{text-align:center;width:fit-content;max-width:100%;color:var(--danger);background:var(--deep);border-radius:12px;margin:0 auto 6px;padding:6px 12px;font-size:.85rem;font-weight:800}#message:empty{display:none}.actions{gap:8px;margin-top:8px;display:flex}button{min-height:46px;font:inherit;color:var(--text);background:var(--panel);box-shadow:var(--lift);cursor:pointer;border:0;border-radius:14px;flex:1;margin-bottom:4px;padding:12px;font-weight:800;transition:background-color .15s,box-shadow 80ms,transform 80ms,filter .15s}button:hover:not(:disabled){filter:brightness(1.1)}button:active:not(:disabled){box-shadow:0 1px 0 var(--deep);transform:translateY(3px)}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}button.primary{font-family:var(--display);letter-spacing:.02em;color:var(--ink);background:var(--accent);--shade:var(--accent-shadow);box-shadow:0 4px 0 var(--shade);font-size:1.15em;font-weight:400}button.teal:not(.primary){color:var(--ink);background:var(--teal);--shade:var(--teal-shadow);box-shadow:0 4px 0 var(--shade)}button.primary:active:not(:disabled),button.teal:not(.primary):active:not(:disabled){box-shadow:0 1px 0 var(--shade)}dialog button:not(.primary):not(.teal):not(.link-button):not(.prestige-button),.result button:not(.primary):not(.revive-button):not(.prestige-button),.lobby button:not(.primary),.piece-actions button:not(.primary):not(.fuse):not(.panel-close):not(.guide-link),.offer-detail button:not(.primary):not(.fuse):not(.panel-close):not(.guide-link){background:var(--raised)}button:disabled{opacity:.4;cursor:not-allowed}.fight-hint{color:var(--gold);text-align:center;margin:8px 0 0;font-size:.85rem}.opponent{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 8px;font-size:.9rem;display:flex}.opp-label{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);background:var(--accent);box-shadow:0 2px 0 var(--accent-shadow);border-radius:8px;padding:1px 7px;font-size:.85rem}.opp-name{color:var(--text)}.opponent button.foe{background:var(--light);min-height:0;box-shadow:none;border:2px solid #0000;border-radius:8px;flex:none;margin:1px 0;padding:1px 2px}.opponent button.foe:active:not(:disabled){box-shadow:none}.opponent .foe-count{color:var(--ink);margin:0 2px 0 1px;font-size:.8rem;font-weight:900}.opponent .foe-points{white-space:nowrap}.opponent button.foe.active{border-color:var(--accent)}.opponent-info{color:var(--muted);background:var(--panel);border-radius:var(--radius);box-shadow:var(--lift);margin:-4px 0 8px;padding:8px 12px;font-size:.9rem;animation:.15s ease-out fade-in}.opponent-info strong{color:var(--text)}.opponent .glyphs{flex-wrap:wrap;gap:3px;display:inline-flex}.inline-piece{vertical-align:-.35em;width:1.35em;height:1.35em}.synergies{gap:4px;margin:0 0 8px;display:grid}.syn-row{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:.85rem;display:flex}.syn-label{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);background:var(--teal);box-shadow:0 2px 0 var(--teal-shadow);border-radius:8px;padding:1px 7px;font-size:.8rem}.syn-row.theirs .syn-label{background:var(--light);box-shadow:0 2px 0 var(--dark)}button.syn-chip{min-height:0;color:var(--muted);background:var(--deep);box-shadow:none;border:2px solid #0000;border-radius:999px;flex:none;align-items:center;gap:3px;margin:1px 0;padding:2px 6px 2px 3px;font-size:.8rem;font-weight:800;display:inline-flex}button.syn-chip:active:not(:disabled){box-shadow:none}button.syn-chip.on{color:var(--text);background:var(--raised);border-color:var(--teal)}.syn-row.theirs button.syn-chip{color:var(--ink);background:var(--light)}button.syn-chip.active{border-color:var(--accent)}.syn-count{font-variant-numeric:tabular-nums}@media (width<=420px){.syn-name{display:none}}.syn-up{color:var(--ink);background:var(--teal);border-radius:999px;padding:0 4px;font-weight:900}button.syn-help{width:26px;font-family:var(--display);justify-content:center;padding:2px 0}.syn-none{color:var(--faint)}.syn-tag,.new-tag{white-space:nowrap;color:var(--ink);background:var(--teal);border-radius:999px;padding:1px 6px;font-size:.7rem;font-weight:800}.new-tag{background:var(--gold)}.new-run-form .check.disabled{opacity:.5}.piece .upgrade-badge{width:46%;height:46%;box-shadow:0 0 0 1.5px var(--teal);filter:none;background:#1a1035cc;border-radius:50%;padding:1px;position:absolute;top:2%;right:2%}.enemy-piece .upgrade-badge{background:#e9e0fce6}.square.upgraded{box-shadow:inset 0 0 0 3px var(--teal)}.square.upgraded .piece{animation:.9s ease-out upgrade-flash}@keyframes upgrade-flash{0%{filter:brightness(2.2) drop-shadow(0 0 6px var(--teal));transform:scale(.6)}60%{transform:scale(1.12)}}.hint{color:var(--muted);margin:8px 0 0;font-size:.85rem}.battle-status{min-height:1.4em;color:var(--muted);margin:0 0 8px;font-size:.9rem}.battle-status[data-turn]{color:var(--teal);font-weight:800}.battle-status[data-turn=check]{color:var(--danger)}.battle-status[data-turn]:before{content:"";vertical-align:1px;background:currentColor;border-radius:50%;width:8px;height:8px;margin-right:8px;animation:1.2s ease-in-out infinite turn-dot;display:inline-block}@keyframes turn-dot{50%{opacity:.25}}.board.battle .piece{cursor:default}.square.light.last{background:#ffe48a}.square.dark.last{background:#f2c443}.square.check{background-image:radial-gradient(circle,#e62828d9 0%,#e6282866 45%,#0000 75%)}#playback{align-items:stretch;margin-top:16px}#playback .speeds{background:var(--deep);border-radius:16px;flex:3;gap:4px;margin-bottom:4px;padding:5px;display:flex}button.speed{min-height:42px;font-family:var(--display);color:var(--muted);box-shadow:none;background:0 0;margin:0;font-size:1.1rem;font-weight:400}button.speed.active{color:var(--ink);background:var(--gold);box-shadow:0 3px 0 var(--gold-shadow)}#playback #skip{font-family:var(--display);letter-spacing:.02em;flex:1.4;font-size:1.1rem;font-weight:400}.result{background:var(--panel);text-align:center;box-shadow:0 6px 0 var(--deep);border-radius:24px;margin-top:18px;padding:22px 16px 16px;animation:.25s ease-out pop-in;position:relative}.result-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px;display:grid}.result-stat{background:var(--bg);border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:10px 4px 8px;animation:.35s cubic-bezier(.2,1.4,.4,1) both stat-in;display:flex}.result-stat:nth-child(2){animation-delay:80ms}.result-stat:nth-child(3){animation-delay:.16s}.result-stat strong{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:1.55rem;font-weight:400;line-height:1.1}.result-stat small{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-size:.7rem;font-weight:900}.result-stat.tone-gold strong{color:var(--gold)}.result-stat.tone-hearts strong,.result-stat.tone-loss strong{color:var(--danger)}.result-stat.tone-loss{box-shadow:inset 0 0 0 2px #ff5e8a73}.result-stat.tone-teal strong{color:var(--teal)}@keyframes stat-in{0%{opacity:0;transform:translateY(8px)scale(.9)}}.confetti{pointer-events:none;width:0;height:0;position:absolute;top:46px;left:50%}.confetti i{background:var(--c);opacity:0;width:8px;height:12px;animation:confetti 1.5s linear var(--d) forwards;border-radius:2px;position:absolute;left:-4px}@keyframes confetti{0%{opacity:1;animation-timing-function:cubic-bezier(.1,.8,.3,1);transform:translate(0)rotate(0)scale(.5)}45%{opacity:1;transform:translate(calc(var(--dx) * .8), var(--dy)) rotate(calc(var(--r) * .5)) scale(1);animation-timing-function:cubic-bezier(.5,0,.9,.6)}to{opacity:0;transform:translate(var(--dx), calc(var(--dy) + 140px)) rotate(var(--r)) scale(1)}}.result p.result-awards{text-align:left;color:var(--ink);background:var(--gold);box-shadow:0 4px 0 var(--gold-shadow);border-radius:16px;align-items:center;gap:10px;margin:0 0 14px;padding:8px 14px;animation:.4s cubic-bezier(.2,1.4,.4,1) .25s both stat-in;display:flex}.result p.result-awards[hidden]{display:none}.result-awards .award-icon{font-size:1.5rem}.result-awards span{flex-direction:column;display:flex}.result-awards small{letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:900}.result-awards strong{font-family:var(--display);letter-spacing:.02em;font-size:1.1rem;font-weight:400}#battle .result{z-index:20;width:min(100%, calc(var(--column) + 32px));padding:22px 16px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -6px 0 var(--deep), 0 -18px 40px #00000073;border-radius:28px 28px 0 0;margin:0;animation:.32s cubic-bezier(.2,1,.4,1) result-up;position:fixed;bottom:0;left:50%;transform:translate(-50%)}@keyframes result-up{0%{opacity:0;transform:translate(-50%,35%)}}#battle:has(.result:not([hidden])){padding-bottom:300px}.result[data-winner=b] h2{animation:.45s ease-out .1s shake}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@media (prefers-reduced-motion:reduce){.confetti{display:none}}body.reduce-motion .confetti{display:none}.result h2{font-family:var(--display);letter-spacing:.02em;text-transform:uppercase;margin:0 0 8px;font-size:2.6rem;font-weight:400;line-height:1}.result[data-winner=w] h2{color:var(--gold);text-shadow:0 4px #8a5a00}.result[data-winner=b] h2{color:var(--danger);text-shadow:0 4px #7a1e3f}.result p{color:var(--muted);margin:0 0 14px;line-height:1.45}.result-actions{margin-top:0}.link-button{min-height:0;color:var(--gold);box-shadow:none;background:0 0;border:none;margin:6px auto 0;padding:8px 10px;font-size:.9rem;font-weight:800;text-decoration:none;display:block}.link-button:active:not(:disabled){box-shadow:none}[hidden]{display:none!important}.shop{background:var(--panel);box-shadow:0 6px 0 var(--deep);border-radius:20px;margin-top:12px;padding:10px}.shop-row{align-items:center;gap:10px;display:flex}.gold{font-family:var(--display);color:var(--ink);background:var(--gold);box-shadow:0 4px 0 var(--gold-shadow);font-variant-numeric:tabular-nums;border-radius:12px;align-items:center;gap:6px;padding:4px 12px 4px 8px;font-size:1.25rem;display:inline-flex}.gold:before{content:"";width:.85em;height:.85em;box-shadow:inset 0 0 0 .12em var(--gold-shadow);background:#fff1c2;border-radius:50%;display:inline-block}.shop button{min-height:40px;padding:8px 10px}.shop .panel{margin-top:12px;scroll-margin-bottom:100px;animation:.15s ease-out fade-in}.shop .offer-detail.panel{background:var(--deep);border-radius:16px;padding:10px}.panel-head{align-items:flex-start;gap:10px;display:flex}.panel-head p,.panel-head>span:not(.move-diagram){min-width:0;color:var(--muted);flex:1;margin:0;font-size:.8rem;line-height:1.3}.move-diagram{grid-template-columns:repeat(var(--md), 1fr);width:77px;height:77px;box-shadow:0 0 0 2px var(--deep);border-radius:8px;flex:none;display:grid;overflow:hidden}.md{position:relative}.md.light{background:var(--light)}.md.dark{background:var(--dark)}.md.md-piece{z-index:1;background:var(--gold)}.md.md-piece .inline-piece,.md.md-piece .inline-affinity{width:150%;height:150%;position:absolute;inset:-25%}.md.md-piece .inline-affinity .inline-piece{width:100%;height:100%;position:static}.md:after{content:"";border-radius:50%;position:absolute;inset:26%}.md.md-any:after{background:var(--teal-shadow)}.md.md-move:after{box-shadow:inset 0 0 0 1.5px var(--teal-shadow)}.md.md-capture:after{background:linear-gradient(45deg, transparent 40%, var(--danger) 40% 60%, transparent 60%), linear-gradient(-45deg, transparent 40%, var(--danger) 40% 60%, transparent 60%);border-radius:0;inset:22%}.md.md-hop:after{background:var(--accent-shadow);border-radius:1px;inset:28%;transform:rotate(45deg)}.panel-head strong{color:var(--text)}button.panel-close{width:32px;height:32px;min-height:0;color:var(--muted);background:var(--deep);box-shadow:none;border-radius:50%;flex:none;margin:-2px -4px 0 0;padding:0;font-size:1.3rem;line-height:1}button.panel-close:active:not(:disabled){box-shadow:none}.panel-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 6px;margin-top:8px;display:grid}.panel-buttons:empty{display:none}.panel-buttons button{border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:46px;padding:5px 6px;line-height:1.15;display:flex}.act{align-items:center;gap:4px;font-size:.9rem;display:inline-flex}.act-note{opacity:.8;align-items:center;gap:3px;font-size:.7rem;font-weight:800;display:inline-flex}.panel-buttons .inline-piece{vertical-align:0;width:1.3em;height:1.3em}.act-note .inline-piece,.act-note .inline-affinity{width:1.15em;height:1.15em}.offer-detail button[data-buy]{width:100%;min-height:44px;margin-top:8px;font-size:1.1rem}button.fuse{color:var(--ink);background:var(--teal);box-shadow:0 4px 0 var(--teal-shadow)}.offers-label{text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-size:.75rem;font-weight:900}.shop .shop-row #reroll{min-height:38px;font-family:var(--display);letter-spacing:.02em;color:var(--ink);background:var(--teal);box-shadow:0 4px 0 var(--teal-shadow);flex:none;margin-left:auto;padding:4px 14px;font-size:1rem;font-weight:400}.offers{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;display:grid}.shop button.offer{background:var(--deep);border-radius:14px;flex-direction:column;justify-content:flex-start;align-items:center;gap:3px;min-width:0;padding:0 3px 8px;font-size:.75rem;font-weight:800;display:flex;overflow:hidden;box-shadow:0 4px #0a0518}.offer-art{background:var(--tier);justify-content:center;align-items:flex-start;width:calc(100% + 6px);height:3.5rem;margin:0 -3px 2px;padding-top:.3rem;display:flex;position:relative}.offer-art .offer-price{box-shadow:0 2px 0 var(--gold-shadow);position:absolute;bottom:-9px;left:50%;transform:translate(-50%)}.offer.pricey .offer-art .offer-price{box-shadow:0 2px #a3294f}.offer .offer-name{margin-top:8px}.offer[data-tier="1"]{--tier:#3e3270}.offer[data-tier="2"]{--tier:#2b7f78}.offer[data-tier="3"]{--tier:#3b6bc9}.offer[data-tier="4"]{--tier:#a84a90}.offer[data-tier="5"]{--tier:#c08a12}.offer.pricey .offer-art{filter:saturate(.4)brightness(.75)}.offer .inline-piece,.offer .inline-affinity{vertical-align:0;width:2.3rem;height:2.3rem}.offer .inline-affinity>.inline-piece{width:100%;height:100%}.offer-name{text-align:center;overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;max-width:100%;min-height:2.3em;line-height:1.15;display:-webkit-box;overflow:hidden}.offer-price{font-family:var(--display);color:var(--ink);background:var(--gold);border-radius:999px;padding:0 9px;font-size:.95rem}.offer.pricey .offer-price{background:var(--danger)}.shop button.offer.selected{outline:3px solid var(--gold);outline-offset:-3px}button.sell{color:var(--danger)}header .link{min-height:40px;color:var(--text);background:var(--panel);border-radius:12px;flex:none;padding:4px 16px;font-size:.9rem;font-weight:800}.run-bar{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.8rem;font-weight:800;display:flex}.run-meta{white-space:nowrap;gap:6px;display:flex}.run-meta>span+span:before{content:"·";color:var(--faint);margin-right:6px}#round{font-family:var(--display);letter-spacing:.02em;color:var(--text);background:var(--panel);box-shadow:var(--lift);border-radius:12px;padding:5px 12px;font-size:1.05rem;font-weight:400}.lives{letter-spacing:2px;font-size:1.1rem}.heart.full{color:var(--danger)}.heart.empty{color:#45386f}.help{background:var(--panel);border-radius:var(--radius);box-shadow:var(--lift);margin:0 0 10px;padding:10px 12px;font-size:.85rem;line-height:1.45}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}body.reduce-motion,body.reduce-motion *{transition:none!important;animation:none!important}.board.revealed .square.enemy:before{background:#14161c40}.piece.enemy-piece{cursor:help}dialog{width:min(420px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--text);background:var(--panel);box-shadow:0 8px 0 var(--deep), 0 24px 60px #00000080;border:0;border-radius:24px;padding:0}dialog[open]{animation:.2s ease-out pop-in}dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0c0720b3}.new-run-form{flex-direction:column;gap:10px;padding:20px;display:flex}.new-run-form h2{font-family:var(--display);letter-spacing:.02em;margin:0;font-size:1.6rem;font-weight:400}.new-run-form fieldset{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.new-run-form legend,.new-run-form .field{color:var(--faint);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;font-size:.75rem;font-weight:900}.new-run-form .choice{background:var(--deep);cursor:pointer;border:0;border-radius:14px;align-items:flex-start;gap:10px;padding:12px 14px;transition:box-shadow .15s;display:flex}.new-run-form .choice:has(input:checked){box-shadow:inset 0 0 0 3px var(--accent)}.new-run-form .choice span{flex-direction:column;gap:2px;display:flex}.new-run-form .choice small{color:var(--muted);font-size:.8rem;line-height:1.35}.new-run-form .field{flex-direction:column;gap:6px;display:flex}.new-run-form select{min-height:46px;font:inherit;text-transform:none;letter-spacing:normal;color:var(--text);background:var(--deep);border:0;border-radius:12px;padding:8px 10px;font-size:.95rem;font-weight:700}.new-run-form .check{align-items:center;gap:8px;font-size:.9rem;display:flex}.new-run-form input[type=checkbox],.new-run-form input[type=radio]{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:2px 0 0}.new-run-form .warning{color:var(--danger);margin:0;font-size:.85rem}.new-run-form .actions{margin-top:4px}.eval{align-items:center;gap:10px;margin-bottom:8px;display:flex}.eval-bar{height:16px;box-shadow:0 0 0 2px var(--raised);background:#0b0812;border-radius:999px;flex:1;position:relative;overflow:hidden}.eval-fill{background:#f4f1fb;width:50%;height:100%;transition:width .35s ease-out}.eval-bar.as-black{background:#f4f1fb}.eval-bar.as-black .eval-fill{background:#0b0812}.eval-bar:after{content:"";background:#807896cc;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;left:50%}.eval-label{text-align:right;min-width:3.5em;font-family:var(--display);font-variant-numeric:tabular-nums;font-size:1.05rem}.eval-label[data-side=you]{color:var(--accent)}.eval-label[data-side=them]{color:var(--danger)}.eval-label[data-side=even]{color:var(--muted)}button.muted{color:var(--muted);font-weight:700}.board.battle.interactive{touch-action:none}.board.battle.interactive .square{cursor:pointer}.square.from{box-shadow:inset 0 0 0 4px var(--gold)}.promo{align-items:center;gap:8px;margin-top:8px;display:flex}.promo button{flex:none}.promo .inline-piece{width:2rem;height:2rem}.header-actions{gap:6px;display:flex}.dialog-text{margin:0;font-size:.9rem;line-height:1.45}.dialog-text.muted{color:var(--muted);font-size:.85rem}body.in-match .run-bar,body.in-match #last-replay,body.in-match #menu-button{display:none}.match-hud{background:var(--panel);border-radius:var(--radius);box-shadow:var(--lift);margin-bottom:14px;padding:10px 12px}.match-top{font-family:var(--display);letter-spacing:.02em;justify-content:space-between;align-items:center;font-size:1.05rem;display:flex}.match-timer{color:var(--gold);font-variant-numeric:tabular-nums}.timer-bar{background:var(--deep);border-radius:999px;height:6px;margin:8px 0 10px;overflow:hidden}.timer-bar.idle{visibility:hidden}#timer-fill{background:var(--gold);width:0;height:100%;transition:width .25s linear}.match-players{gap:4px;margin:0;padding:0;list-style:none;display:grid}.match-players .player{grid-template-columns:minmax(0,1fr) 80px 2.5ch 3.5ch;align-items:center;gap:8px;font-size:.85rem;font-weight:700;display:grid}@media (width<=560px){.match-players{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}.match-players .player{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name hp extra""bar bar bar";gap:2px 6px}.match-players .name{grid-area:name}.match-players .hp-bar{grid-area:bar;height:6px}.match-players .hp{grid-area:hp}.match-players .extra{grid-area:extra}.match-players .extra:empty{display:none}}.fight-timer{background:var(--deep);border-radius:999px;align-items:center;gap:8px;padding:6px 8px 6px 12px;display:flex;box-shadow:0 -6px 16px #0000004d}.fight-timer-bar{background:var(--deep);border-radius:999px;flex:1;height:8px;overflow:hidden}#fight-timer-fill{background:var(--gold);border-radius:999px;height:100%;transition:width .25s linear;display:block}#fight-timer-text{text-align:right;min-width:2.4em;font-family:var(--display);color:var(--gold);font-variant-numeric:tabular-nums;font-size:1.05rem}.fight-timer.urgent #fight-timer-fill{background:var(--danger)}.fight-timer.urgent #fight-timer-text{color:var(--danger);animation:1s ease-in-out infinite urgent}@keyframes urgent{50%{transform:scale(1.15)}}.match-players .player.me .name{color:var(--accent);font-weight:700}.match-players .player.out{opacity:.45}.match-players .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.match-players small{color:var(--muted);font-size:.75rem;font-weight:400}.hp-bar{background:var(--deep);border-radius:999px;height:10px;overflow:hidden}.hp-bar span{background:var(--teal);border-radius:999px;height:100%;transition:width .4s ease-out,background-color .4s;display:block}.hp-bar.warn span{background:var(--gold)}.hp-bar.low span{background:var(--danger)}.match-players .hp{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.match-players .extra{text-align:right}.match-players .hit{color:var(--danger);font-size:.8rem;font-weight:700}.match-players .place{color:var(--muted);font-size:.8rem}.join-row{gap:8px;display:flex}.join-row input{min-width:0;font:inherit;font-family:var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--text);background:var(--deep);border:0;border-radius:12px;flex:1;padding:8px 12px;font-size:1.1rem}.join-row button{flex:none}button.big-choice{flex-direction:column;gap:2px;padding:10px 14px;display:flex}button.big-choice small{letter-spacing:0;opacity:.8;font-family:Nunito Variable,system-ui,sans-serif;font-size:.8rem;font-weight:700}details.rules summary{cursor:pointer;color:var(--muted);font-size:.85rem;font-weight:800}details.rules[open] summary{margin-bottom:6px}.dialog-text.error{min-height:1.2em;color:var(--danger)}body.in-lobby .run-bar,body.in-lobby #placement,body.in-lobby #menu-button{display:none}.lobby{background:var(--panel);box-shadow:0 6px 0 var(--deep);text-align:center;border-radius:24px;padding:18px 16px;animation:.2s ease-out fade-in}.lobby-label{text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin:0;font-size:.75rem;font-weight:900}.lobby-code{font-family:var(--display);letter-spacing:.22em;color:var(--gold);text-shadow:0 4px #8a5a00;-webkit-user-select:all;user-select:all;margin:4px 0 8px;font-size:3rem;font-weight:400}.lobby-code.mode{letter-spacing:.02em;-webkit-user-select:none;user-select:none;font-size:1.8rem}.lobby-seats{text-align:left;gap:6px;margin:12px 0;padding:0;list-style:none;display:grid}.seat{background:var(--deep);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.seat small{color:var(--muted)}.seat-number{text-align:center;width:1.6em;height:1.6em;color:var(--ink);background:var(--teal);border-radius:50%;flex:none;font-size:.8rem;font-weight:900;line-height:1.6em}.empty-seat{color:var(--muted);font-style:italic}.match-players .streak.hot{color:var(--gold)}.match-players .streak.cold{color:#8ab4f8}.match-top-right{align-items:center;gap:10px;display:flex}.leave-button{letter-spacing:0;min-height:0;color:var(--muted);background:var(--deep);box-shadow:none;border-radius:999px;flex:none;margin:0;padding:4px 10px;font-family:Nunito Variable,system-ui,sans-serif;font-size:.75rem;font-weight:800}.leave-button:active:not(:disabled){box-shadow:none}body.in-menu .run-bar,body.in-menu #placement,body.in-menu #battle,body.in-menu #app>header{display:none}.menu{text-align:center;flex-direction:column;align-items:center;padding:32px 8px 8px;animation:.25s ease-out fade-in;display:flex}.menu-drift{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.menu-drift img{top:0;left:var(--x);width:var(--size);height:var(--size);margin-left:calc(var(--size) / -2);opacity:.08;will-change:transform;animation:linear infinite menu-drift;position:absolute}@keyframes menu-drift{0%{transform:translate3d(0, 105vh, 0) rotate(var(--r0))}to{transform:translate3d(var(--dx), -160px, 0) rotate(var(--r1))}}.menu>:not(.menu-drift){z-index:1;position:relative}@media (prefers-reduced-motion:reduce){.menu-drift img{top:var(--y);transform:rotate(var(--r0))}}body.reduce-motion .menu-drift img{top:var(--y);transform:rotate(var(--r0))}button.icon-button{width:44px;height:44px;min-height:0;color:var(--muted);background:var(--panel);border-radius:14px;flex:none;justify-content:center;align-items:center;padding:0;display:flex}button.icon-button[aria-pressed=false]{color:var(--faint)}.menu{position:relative}.menu .menu-corner{position:absolute;top:0;right:0}.menu-logo{width:148px;height:148px;margin:-12px 0 -18px}.menu-title{font-family:var(--display);letter-spacing:.02em;text-transform:uppercase;text-shadow:0 4px #0c0720;margin:26px 0 0;font-size:3rem;font-weight:400;line-height:1}.menu-badge{letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--gold);border-radius:999px;margin:10px 0 32px;padding:4px 12px;font-size:.8rem;font-weight:900}.menu-notice{max-width:340px;color:var(--gold);background:var(--panel);border-radius:var(--radius);box-shadow:var(--lift);margin:0 0 16px;padding:8px 12px;font-size:.9rem}.menu-buttons{flex-direction:column;gap:12px;width:min(100%,340px);display:flex}.menu-buttons button{border-radius:18px;min-height:58px;font-size:1.1rem;font-weight:900}.menu-buttons button.primary{min-height:68px;box-shadow:0 6px 0 var(--shade);font-size:1.35rem}.menu-buttons button.teal:not(.primary){font-family:var(--display);letter-spacing:.02em;box-shadow:0 5px 0 var(--shade);font-size:1.25rem;font-weight:400}.menu-buttons button.daily{color:var(--ink);background:var(--gold);--shade:var(--gold-shadow);box-shadow:0 5px 0 var(--shade)}.menu-buttons button.daily.done{color:var(--muted);background:var(--raised);box-shadow:none}.menu-buttons button small{letter-spacing:0;opacity:.8;margin-top:2px;font-family:Nunito Variable,system-ui,sans-serif;font-size:.8rem;font-weight:800;display:block}.menu-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.menu-buttons .menu-row button{border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:72px;padding:8px 4px;font-size:.85rem;line-height:1.15;display:flex}.menu-row svg{color:var(--muted)}@media (height<=760px){.menu{padding-top:24px}.menu-logo{width:116px;height:116px}.menu-badge{margin-bottom:24px}}.side-pieces{background:var(--deep);border-radius:12px;align-items:center;gap:8px;min-height:36px;margin:6px 0;padding:4px 10px;font-size:.8rem;display:flex}.side-label{min-width:3.4em;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;flex:none;font-weight:900}#side-you .side-label{color:var(--accent)}.side-list{flex-wrap:wrap;flex:1;gap:2px 6px;min-width:0;display:flex}.side-piece{align-items:center;display:inline-flex}#side-them .side-piece{background:var(--light);border-radius:6px;padding:0 2px}#side-them .side-piece small{color:var(--ink)}.side-piece .inline-piece{vertical-align:0;width:1.5rem;height:1.5rem}.side-piece small{color:var(--muted);margin-left:1px;font-weight:600}.side-points{font-family:var(--display);font-variant-numeric:tabular-nums;flex:none;font-size:1rem}.side-lead{color:var(--accent)}.settings{animation:.2s ease-out fade-in}.settings-body{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:start;gap:12px;margin-bottom:16px;display:grid}.setting-row{justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:6px 0;display:flex}.setting-row+.setting-row{border-top:1px solid var(--border-strong)}.setting-row>span{min-width:0}.setting-row small{color:var(--muted);margin-top:2px;font-size:.8rem;font-weight:600;display:block}.setting-row>button{flex:none;min-height:40px;margin:0;padding:8px 14px}.setting-slider{flex-direction:column;align-items:stretch;gap:6px}.setting-slider>span{justify-content:space-between;display:flex}.setting-slider output{color:var(--gold)}.setting-slider input[type=range]{width:100%;accent-color:var(--accent);margin:0}.settings .speeds{background:var(--deep);border-radius:14px;flex:none;gap:4px;padding:4px;display:flex}.settings button.speed{min-width:48px;min-height:36px;padding:4px 8px;font-size:1rem}input.switch{appearance:none;background:var(--deep);cursor:pointer;border-radius:999px;flex:none;width:52px;height:30px;margin:0;transition:background-color .15s;position:relative}input.switch:after{content:"";background:var(--muted);border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px}input.switch:checked{background:var(--accent)}input.switch:checked:after{background:var(--text);transform:translate(22px)}input.switch:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.settings-body .about{grid-column:1/-1}.about p{color:var(--muted);margin:0 0 8px;font-size:.85rem;line-height:1.5}.about p:last-child{margin:0}.about a{color:var(--text)}#privacy-link{color:var(--gold);font-weight:800}.profile{animation:.2s ease-out fade-in}.profile-head{align-items:center;gap:12px;margin:8px 0 14px;display:flex}.profile-logo{flex:none}.profile-name{font-family:var(--display);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 2px;font-size:1.45rem;font-weight:400;display:flex}.tabs{background:var(--deep);border-radius:16px;gap:4px;margin-bottom:14px;padding:5px;display:flex}.tabs button{min-width:0;min-height:38px;color:var(--muted);box-shadow:none;background:0 0;border:none;border-radius:12px;flex:auto;margin:0;padding:4px 3px;font-size:.85rem}.tabs button.active{color:var(--ink);background:var(--accent);box-shadow:0 3px 0 var(--accent-shadow)}.profile-body{align-content:start;gap:12px;min-height:120px;display:grid}.record-card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--lift);padding:14px}.record-card h3{font-family:var(--display);letter-spacing:.02em;margin:0 0 10px;font-size:1.1rem;font-weight:400}.stats{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px;display:grid}.stat{text-align:center;flex-direction:column;align-items:center;display:flex}.stat-value{color:var(--text);font-family:var(--display);font-variant-numeric:tabular-nums;font-size:1.4rem}.stat-label{color:var(--faint);font-size:.75rem;font-weight:800;line-height:1.25}.place-bar{text-align:center;border-radius:999px;height:18px;margin-top:10px;font-size:.65rem;font-weight:700;line-height:18px;display:flex;overflow:hidden}.place-bar .place-1{color:var(--ink);background:var(--gold)}.place-bar .place-2{color:var(--ink);background:var(--teal)}.place-bar .place-3{color:var(--ink);background:var(--accent)}.place-bar .place-4{background:#45386f}.history{gap:6px;margin:0;padding:0;list-style:none;display:grid}.history li{background:var(--panel);box-shadow:var(--lift);border-radius:12px;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:10px 12px;font-size:.85rem;display:grid}.history-mode{font-weight:600}.history-result{text-align:right;font-weight:700}.history-result .win{color:var(--gold)}.history-when{color:var(--muted);grid-column:1/-1;font-size:.75rem}.favourite{align-items:center;gap:8px;font-size:1.05rem;font-weight:700;display:flex}.favourite .inline-piece{width:2.2rem;height:2.2rem}.profile-empty{color:var(--muted);text-align:center;justify-items:center;gap:14px;margin:20px 0;display:grid}.profile-empty p{margin:0}.profile-empty button{flex:none;min-width:200px}#placement .fight-bar{z-index:5;padding:2px 16px calc(10px + env(safe-area-inset-bottom));margin:0 -16px;position:sticky;bottom:0}#placement .fight-bar.stuck{background:var(--bg)}#placement .fight-bar.stuck:before{content:"";background:linear-gradient(to top, var(--bg), #1a103500);pointer-events:none;height:20px;position:absolute;bottom:100%;left:0;right:0}#placement .fight-bar .actions{margin-top:8px}#placement .fight-bar #fight{flex:1.5;font-size:1.15rem}#placement .fight-bar button:disabled{opacity:1;color:var(--faint);background:var(--panel);box-shadow:var(--lift)}#placement .fight-bar button{border-radius:16px;min-height:52px}.record-note{color:var(--gold);margin:8px 0 0;font-size:.85rem}.result-awards{color:var(--gold);margin:6px 0 0;font-weight:600}.revive-button,.prestige-button{width:100%;min-height:56px;color:var(--ink);background:var(--gold);box-shadow:0 5px 0 var(--gold-shadow);border-radius:16px;margin-top:12px;font-size:1rem;font-weight:900}.revive-button:active:not(:disabled),.prestige-button:active:not(:disabled){box-shadow:0 1px 0 var(--gold-shadow)}.prestige-choices{gap:8px;display:grid}.prestige-choices button.big-choice{text-align:left;align-items:flex-start}.shop .shop-row #lock{background:var(--deep);flex:none;width:44px;min-height:38px;margin-left:auto;padding:0;font-size:1rem;box-shadow:0 4px #0a0518}.shop .shop-row #lock+#reroll{margin-left:-2px}.shop .shop-row #lock.active{background:var(--gold);box-shadow:0 4px 0 var(--gold-shadow)}.gold .interest{color:#7a4f00;font-family:Nunito Variable,system-ui,sans-serif;font-size:.75rem;font-weight:900}.tip{color:var(--text);background:var(--panel);border-radius:var(--radius);align-items:flex-start;gap:8px;margin:0 0 8px;padding:8px 4px 8px 10px;font-size:.8rem;font-weight:700;line-height:1.3;display:flex;box-shadow:inset 0 0 0 2px #ffc93c80}.tip[hidden]{display:none}.tip #tip-text{flex:1}button.tip-close{width:28px;height:28px;min-height:0;color:var(--muted);box-shadow:none;background:0 0;border:none;flex:none;margin:0;padding:0;font-size:1.2rem;line-height:1}button.tip-close:active:not(:disabled){box-shadow:none}.run-summary{margin:4px 0 10px}.run-summary svg{background:var(--deep);border-radius:12px;width:100%;height:72px;display:block}.run-summary polyline{fill:none;stroke-width:1.5px;vector-effect:non-scaling-stroke}.run-summary polyline.you{stroke:var(--accent);stroke-width:2px}.run-summary polyline.them{stroke:var(--teal);opacity:.8}.run-summary path.loss{stroke:var(--danger);stroke-width:7px;stroke-linecap:round;vector-effect:non-scaling-stroke}.summary-legend,.summary-stats{color:var(--muted);margin:6px 0 0;font-size:.8rem}.summary-legend .you{color:var(--accent)}.summary-legend .them{color:var(--teal)}.summary-stats strong{color:var(--text)}.review{margin-top:10px}.review[hidden]{display:none}.review input[type=range]{width:100%;accent-color:var(--accent)}.review-buttons button{min-width:0;padding:0 6px;font-size:1rem}.review-buttons #review-play{flex:1.6;font-size:.9rem}.room-rules-box{background:var(--deep);border-radius:14px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.lobby-rules{text-align:center;color:var(--muted);margin:-4px 0 8px;font-size:.85rem}.lobby-rules:empty{display:none}.offer-left{color:var(--muted);font-size:.65rem}.offer.pricey .offer-left{color:var(--danger)}.player .perks{letter-spacing:1px}.card-extras{flex-direction:column;gap:6px;margin-top:8px;display:flex}.card-extras[hidden]{display:none}.card-extras button{width:100%;font-size:.85rem}.match-players li[data-id]{cursor:pointer}.scout #scout-status{margin-top:-6px}.scout-section{margin:10px 0}.scout-section h3{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:.75rem;font-weight:600}.scout-section p{margin:0;font-size:.85rem}.scout-perks{margin:0;padding:0;font-size:.85rem;list-style:none}.scout-perks li+li{margin-top:3px}.scout-pieces .inline-piece{width:1.6rem;height:1.6rem}.sparkline{width:100%;height:44px;color:var(--accent);display:block}.scout-hp{font-size:.75rem!important}.mini-board{border-radius:8px;max-width:300px;display:grid;overflow:hidden}.mini-square{aspect-ratio:1;justify-content:center;align-items:center;display:flex}.mini-square.light{background:var(--light)}.mini-square.dark{background:var(--dark)}.mini-square .inline-piece,.mini-square .inline-affinity{width:90%;height:90%}.battle-announce{background:var(--gold);box-shadow:0 4px 0 var(--gold-shadow);color:var(--ink);font-family:var(--display);letter-spacing:.02em;text-align:center;border-radius:12px;margin:0 0 8px;padding:6px 10px;font-size:1.1rem}.battle-announce[hidden]{display:none}.toast{top:calc(12px + env(safe-area-inset-top));z-index:50;border-radius:var(--radius);background:var(--gold);width:min(92vw,380px);color:var(--ink);font-family:var(--display);letter-spacing:.02em;box-shadow:0 5px 0 var(--gold-shadow), 0 12px 32px #0006;cursor:pointer;flex-direction:column;gap:2px;padding:10px 14px;font-size:1.1rem;display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (display-mode:standalone){.toast{top:max(calc(12px + env(safe-area-inset-top)), 64px)}}.toast[hidden]{display:none}.toast[data-tone=teal]{background:var(--teal);box-shadow:0 5px 0 var(--teal-shadow), 0 12px 32px #0006}.toast.show{animation:.25s ease-out toast-in}.toast span{letter-spacing:0;font-family:Nunito Variable,system-ui,sans-serif;font-size:.85rem;font-weight:800}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-12px)}}@media (prefers-reduced-motion:reduce){.toast.show,.square.rejected,#message.pop{animation:none}}body.reduce-motion .toast.show,body.reduce-motion .square.rejected,body.reduce-motion #message.pop{animation:none}.achievement-count{color:var(--muted);gap:6px;margin:0;display:grid}.achievement-count strong{font-family:var(--display);color:var(--gold);font-size:1.3rem;font-weight:400}.progress{background:var(--deep);border-radius:999px;height:10px;display:block;overflow:hidden}.progress>span{background:linear-gradient(90deg, var(--gold), var(--accent));border-radius:999px;min-width:10px;height:100%;display:block}.achievement-group{font-family:var(--display);letter-spacing:.02em;align-items:baseline;gap:8px;margin:10px 0 0;font-size:1.15rem;font-weight:400;display:flex}.achievement-group small{color:var(--faint);font-family:Nunito Variable,system-ui,sans-serif;font-size:.8rem;font-weight:800}.achievements{gap:6px;margin:0;padding:0;list-style:none;display:grid}.achievement{background:var(--panel);box-shadow:var(--lift);border-radius:14px;align-items:center;gap:12px;padding:10px 12px;display:flex}.achievement-body{flex-direction:column;gap:2px;min-width:0;display:flex}.achievement .badge{width:46px;height:46px;color:var(--faint);background:var(--deep);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:1.45rem;font-weight:900;display:flex}.achievement.unlocked .badge{background:radial-gradient(circle at 35% 30%, #ffe8a3, var(--gold) 55%, var(--gold-shadow));box-shadow:0 3px #8a5a00}.achievement.locked .badge{filter:grayscale();opacity:.7}.achievement.unlocked{box-shadow:inset 0 0 0 2px #ffc93c99, var(--lift)}.achievement.locked{opacity:.6}.achievement-name{font-weight:900}.achievement-text,.achievement-date{color:var(--muted);font-size:.8rem}.profile-note{color:var(--muted);margin:6px 0 0;font-size:.75rem}.guide{z-index:40;overscroll-behavior:contain;background:radial-gradient(120% 60% at 50% 0%, #241749 0%, var(--bg) 60%) fixed;animation:.2s ease-out fade-in;position:fixed;inset:0;overflow-y:auto}body.guide-open{overflow:hidden}.guide-inner{max-width:calc(var(--column) + 32px);padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:0 auto}.guide .tabs{z-index:2;position:sticky;top:8px;box-shadow:0 4px 12px #00000059}.guide .actions{margin-top:16px}.guide-legend{color:var(--muted);background:var(--deep);border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:0 0 12px;padding:10px 12px;font-size:.8rem;list-style:none;display:grid}.guide-legend li{align-items:center;gap:8px;display:flex}.guide-legend .md{border-radius:4px;flex:none;width:20px;height:20px}.guide-note{margin:0}.guide-entry{scroll-margin-top:64px}.guide-entry.flash{animation:1.2s ease-out guide-flash}@keyframes guide-flash{0%,30%{box-shadow:0 0 0 3px var(--gold), var(--lift)}}.guide-entry-head{align-items:flex-start;gap:12px;display:flex}.guide-entry .move-diagram{width:98px;height:98px}.guide-entry-text{flex:1;min-width:0}.guide-entry h3{flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 4px;display:flex}.guide-entry h3 .inline-piece{vertical-align:0;width:1.6em;height:1.6em}.guide-value,.guide-tag{letter-spacing:0;border-radius:999px;padding:1px 7px;font-family:Nunito Variable,system-ui,sans-serif;font-size:.72rem;font-weight:800}.guide-value{color:var(--ink);background:var(--gold)}.guide-tag{color:var(--ink);background:var(--teal)}.guide-ways .guide-tag{vertical-align:.1em;font-size:.65rem}.guide-desc{color:var(--muted);margin:0;font-size:.85rem;line-height:1.35}.guide-get{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:10px 0 4px;font-size:.72rem;font-weight:800}.guide-ways{gap:4px;margin:0;padding:0;font-size:.85rem;line-height:1.4;list-style:none;display:grid}.guide-ways li{background:var(--deep);border-radius:10px;padding:5px 8px}.guide-ways .inline-affinity{margin-right:.2em}button.guide-link{min-height:0;font-size:inherit;color:var(--gold);box-shadow:none;text-underline-offset:2px;background:0 0;border-radius:0;flex:none;margin:0;padding:0;font-weight:800;text-decoration:underline;display:inline}button.guide-link:active:not(:disabled){box-shadow:none;transform:none}@media (width>=720px){.guide-inner{max-width:920px}.guide .profile-body{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-note{grid-column:1/-1}.guide-legend{grid-template-columns:repeat(4,auto);justify-content:start}}@media (orientation:landscape) and (height<=600px),(orientation:landscape) and (pointer:coarse) and (height<=900px),(orientation:landscape) and (width>=1000px){:root{--column:min(88vw, 560px);--board:min(var(--column), max(160px, 100svh - 100px))}#app{max-width:calc(var(--board) + 448px + 48px);column-gap:16px}header h1{font-size:1.05rem}header h1 .logo{width:24px;height:24px}header h1,header .header-actions,#app>.run-bar{margin-bottom:8px}#placement:not([hidden]),#battle:not([hidden]){grid-template-columns:var(--board) minmax(0, 1fr);grid-template-rows:auto 1fr;align-items:start;column-gap:16px;display:grid}.screen-top,.screen-side{grid-column:2;min-width:0;display:block}.screen-side{align-self:stretch}#board-root,#battle-root{grid-area:1/1/-1;position:sticky;top:8px}#placement .fight-bar{padding:2px 16px calc(10px + env(safe-area-inset-bottom)) 0;margin:0 -16px 0 0}#battle .result{z-index:auto;width:auto;box-shadow:0 6px 0 var(--deep);border-radius:24px;margin-top:0;padding:22px 16px 16px;animation:.25s ease-out pop-in;position:relative;bottom:auto;left:auto;transform:none}#battle:has(.result:not([hidden])){padding-bottom:0}.menu-logo{width:56px;height:56px}.profile,.settings{justify-self:center;width:min(100%,720px)}}@media (orientation:landscape) and (width>=1000px) and (height>=820px){.menu-logo{width:148px;height:148px}}.gauntlet-open{margin:-4px auto 6px;font-size:.85rem;display:block}.gauntlet-battle.current h3{color:var(--gold)}
