:root{--ink: #141a26;--ink-2: #1b2232;--panel: #232c3f;--panel-hi: #2c3750;--panel-lip: #111621;--line: #36415a;--text: #f4f1ea;--muted: #a9b2c3;--accent: #ffc94d;--accent-lip: #c98f12;--accent-ink: #2a1d00;--good: #6fd08c;--bad: #ff6b6b;--info: #5cc8ff;--radius: 14px;--radius-sm: 10px;--lip: 4px;--font: ui-rounded, "SF Pro Rounded", "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--ease-out: cubic-bezier(.16, 1, .3, 1);color-scheme:dark;font-family:var(--font);color:var(--text);background:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#game-container{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:radial-gradient(120% 90% at 50% 40%,#243049 0%,#182032 55%,var(--ink) 100%);user-select:none;-webkit-user-select:none;touch-action:manipulation}.app{position:fixed;inset:0}.scene{position:absolute!important;inset:0}.ui-layer{position:absolute;inset:0;pointer-events:none}.ui-layer>*{pointer-events:auto}.num{font-variant-numeric:tabular-nums;font-weight:800}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{--face: var(--panel-hi);--edge: var(--panel-lip);--fg: var(--text);appearance:none;border:0;font:inherit;font-weight:800;color:var(--fg);background:var(--face);border-radius:var(--radius-sm);padding:10px 16px;min-height:44px;box-shadow:0 var(--lip) 0 var(--edge),0 calc(var(--lip) + 6px) 14px -6px #0000008c;transform:translateY(0);transition:transform 90ms var(--ease-out),box-shadow 90ms var(--ease-out),background-color .12s;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1;white-space:nowrap}.btn:hover:not(:disabled){background:color-mix(in srgb,var(--face) 88%,white)}.btn:active:not(:disabled),.btn.pressed{transform:translateY(var(--lip));box-shadow:0 0 0 var(--edge),0 2px 6px -2px #00000080}.btn:focus-visible{outline:3px solid var(--text);outline-offset:3px}.btn:disabled{--face: #262d3c;--fg: #7d8699;cursor:not-allowed;box-shadow:0 2px 0 var(--panel-lip);opacity:.9}.btn.primary{--face: var(--accent);--edge: var(--accent-lip);--fg: var(--accent-ink)}.btn.primary:disabled{--face: #4a4436;--edge: #2c281e;--fg: #a39676}.btn.danger{--face: #e2595b;--edge: #9c3134}.btn.ghost{--face: transparent;--edge: transparent;box-shadow:none;color:var(--muted)}.btn.icon{padding:0;width:44px;aspect-ratio:1}.btn.big{font-size:1.15rem;padding:16px 28px;min-height:56px;border-radius:var(--radius)}.icon-svg{width:20px;height:20px;flex:none}.panel{background:var(--panel);border-radius:var(--radius);box-shadow:0 var(--lip) 0 var(--panel-lip),0 14px 30px -12px #0009}.pill{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px 0 10px;border-radius:999px;background:var(--panel);box-shadow:0 3px 0 var(--panel-lip),0 8px 18px -8px #0009;font-size:1.05rem}.hud-top{position:absolute;top:calc(10px + var(--safe-t));left:calc(12px + var(--safe-l));right:calc(12px + var(--safe-r));display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none!important}.hud-row{width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.hud-row>*{pointer-events:auto}.hud-left,.hud-right{display:flex;gap:8px;align-items:center}.hud-right{justify-content:flex-end}.wall .bar{width:54px;height:8px;border-radius:99px;background:var(--ink);overflow:hidden}.wall .bar>i{display:block;width:100%;height:100%;background:var(--good);border-radius:inherit;transform-origin:left center;transition:transform .25s var(--ease-out),background-color .25s}.wall.hurt{animation:hurt .42s var(--ease-out)}@keyframes hurt{0%{background:#6a2a31;transform:translate(-3px)}30%{transform:translate(3px)}to{background:var(--panel);transform:none}}.gold{color:var(--accent)}.gold.bump{animation:bump .26s var(--ease-out)}@keyframes bump{40%{transform:scale(1.08)}}.wave-chip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 16px;min-width:112px;border-radius:var(--radius);background:var(--panel);box-shadow:0 3px 0 var(--panel-lip),0 8px 18px -8px #0009}.wave-chip .label{font-size:.72rem;font-weight:700;color:var(--muted);letter-spacing:.02em}.wave-chip .value{font-size:1.2rem;line-height:1;white-space:nowrap}.wave-chip.boss .label{color:var(--bad)}.wave-chip .value small{font-size:.8rem;color:var(--muted);font-weight:700}.speed-btn{min-width:52px}.difficulty-pill{height:32px;padding-inline:10px;color:var(--info);font-size:.78rem;font-weight:900}.cannon-ready{height:40px;gap:7px;font-size:.82rem;color:var(--muted)}.cannon-ready.loaded{color:var(--text)}.cannon-ready .icon-svg{color:var(--accent)}.cannon-copy{font-weight:900}.mini-track{width:34px;height:7px;border-radius:99px;background:var(--ink);overflow:hidden}.mini-track>i{display:block;width:100%;height:100%;background:var(--accent);border-radius:inherit;transform-origin:left center;transition:transform .16s var(--ease-out)}.token{--hero: var(--muted);width:44px;height:44px;border-radius:12px;background:var(--hero);color:var(--ink);display:grid;place-items:center;font-weight:900;font-size:1rem;letter-spacing:-.02em;box-shadow:inset 0 -4px #00000038;flex:none}.token svg{width:26px;height:26px}.token.lg{width:64px;height:64px;border-radius:16px}.token.lg svg{width:38px;height:38px}.token.locked{background:#3a4254;color:#6f7890}.hint,.coach{position:absolute;left:50%;transform:translate(-50%);bottom:calc(96px + var(--safe-b));padding:8px 14px;border-radius:999px;background:#141a26db;color:var(--text);font-weight:700;font-size:.9rem;white-space:nowrap;pointer-events:none!important;animation:rise .3s var(--ease-out)}.hint b,.coach b{color:var(--accent)}.coach{display:flex;flex-direction:column;gap:2px;align-items:center;min-width:190px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--accent) 34%,transparent);box-shadow:0 3px 0 var(--panel-lip),0 12px 24px -12px #000000a6;white-space:normal;text-align:center;z-index:4}.coach span{color:var(--text);font-size:.82rem;line-height:1.25}.coach-cannon{bottom:calc(47% + var(--safe-b))}.coach-cannon:after,.coach-ready:after{content:"";position:absolute;left:50%;bottom:-9px;width:16px;height:16px;background:inherit;transform:translate(-50%) rotate(45deg);box-shadow:3px 3px 0 var(--panel-lip)}.coach-auto{left:auto;right:calc(18px + var(--safe-r));bottom:calc(92px + var(--safe-b));transform:none;max-width:250px}.coach-ready{left:calc(50% - 240px);bottom:calc(90px + var(--safe-b));transform:none}@keyframes rise{0%{opacity:0;transform:translate(-50%,8px)}}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.stat{background:var(--ink-2);border-radius:var(--radius-sm);padding:8px 8px 7px;display:flex;flex-direction:column;gap:2px}.stat .k{font-size:.68rem;color:var(--muted);font-weight:700}.stat .v{font-size:1rem}.row{display:flex;gap:8px}.row>.btn{flex:1}.section-label{font-size:.72rem;font-weight:800;color:var(--muted);margin-bottom:6px}.fine{font-size:.78rem;color:var(--muted);line-height:1.35;margin:0}.xp{display:flex;align-items:center;gap:8px;width:min(460px,100%)}.xp .lvl{flex:none;padding:3px 9px;border-radius:999px;background:var(--panel);box-shadow:0 2px 0 var(--panel-lip);font-size:.78rem;color:var(--info)}.xp .track{flex:1;height:8px;border-radius:99px;background:#141a26c7;box-shadow:inset 0 1px #0006;overflow:hidden}.xp .track>i{display:block;height:100%;background:var(--info);border-radius:inherit;transform-origin:left center;transition:transform .3s var(--ease-out)}.xp.bump .lvl{animation:bump .32s var(--ease-out)}.hero-bar{position:absolute;left:50%;bottom:calc(12px + var(--safe-b));transform:translate(-50%);display:flex;align-items:stretch;gap:10px;width:min(780px,calc(100% - 24px))}.hero-row{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.hero-btn{--hero: var(--muted);position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;justify-content:stretch;gap:10px;padding:8px 10px;min-height:66px;text-align:left;border-radius:var(--radius)}.hero-btn .face{position:relative;width:46px;height:46px;border-radius:12px;background:var(--hero);color:var(--ink);display:grid;place-items:center;box-shadow:inset 0 -4px #00000038;overflow:hidden}.hero-btn .face svg{width:26px;height:26px;transition:opacity .16s var(--ease-out)}.hero-btn.charging .face svg{opacity:.2}.hero-btn .face:after{content:"";position:absolute;inset:0;background:conic-gradient(rgb(20 26 38 / .74) calc(var(--p) * 1turn),transparent 0);pointer-events:none}.hero-btn .cd{position:absolute;z-index:1;color:var(--text);font-size:1.15rem;text-shadow:0 1px 0 rgb(0 0 0 / .6)}.hero-btn .meta{display:flex;flex-direction:column;gap:3px;min-width:0}.hero-btn .name{font-size:.95rem}.hero-btn .ability-name{font-size:.72rem;font-weight:700;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.hero-btn .lv{position:absolute;top:-7px;left:-5px;min-width:22px;height:22px;padding:0 5px;border-radius:99px;background:var(--ink);border:2px solid var(--hero);display:grid;place-items:center;font-size:.72rem}.ready-tag{position:absolute;right:8px;top:-10px;padding:3px 7px;border-radius:999px;background:var(--hero);color:var(--ink);font-size:.68rem;font-weight:900;box-shadow:0 2px color-mix(in srgb,var(--hero) 60%,black)}.hero-btn.ready{--edge: color-mix(in srgb, var(--hero) 70%, black);outline:2px solid color-mix(in srgb,var(--hero) 80%,white);outline-offset:2px}.hero-btn.ready:not(.auto) .face{animation:bob 1.1s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-3px)}}.auto-btn{flex-direction:column;gap:4px;min-width:66px;font-size:.78rem;border-radius:var(--radius);color:var(--text)}.auto-btn.on{--face: var(--panel-hi);--edge: var(--panel-lip);--fg: var(--text)}.auto-label{display:inline-flex;align-items:center;gap:5px}.auto-label i{width:8px;height:8px;border-radius:99px;background:var(--muted);box-shadow:inset 0 -1px #0000003d}.auto-btn.on .auto-label i{width:24px;background:var(--good);box-shadow:inset 0 -2px #00000038}.shop{position:absolute;right:calc(12px + var(--safe-r));top:calc(96px + var(--safe-t));bottom:calc(12px + var(--safe-b));width:380px;display:flex;flex-direction:column;overflow:hidden;animation:slide-in .24s var(--ease-out)}@keyframes slide-in{0%{opacity:0;transform:translate(16px)}}.shop header{display:flex;align-items:center;gap:6px;padding:14px 16px 6px}.shop h2{margin:0;font-size:1.15rem;line-height:1.15}.shop .collapse{display:none}.shop-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:6px 16px 12px;display:flex;flex-direction:column;gap:12px}.shop-group h3{margin:0 0 8px;font-size:.78rem;font-weight:800;color:var(--muted)}.shop-grid{display:grid;grid-template-columns:1fr;gap:8px}.shop-item{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;justify-content:stretch;gap:10px;padding:8px 12px 8px 8px;min-height:54px;text-align:left;white-space:normal}.shop-item.suggested{outline:2px solid color-mix(in srgb,var(--accent) 72%,white);outline-offset:2px}.suggested-tag{position:absolute;right:8px;top:-10px;padding:3px 7px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:.68rem;font-weight:900;box-shadow:0 2px 0 var(--accent-lip)}.shop-item .glyph{width:36px;height:36px;border-radius:10px;background:var(--ink-2);display:grid;place-items:center;color:var(--text)}.glyph.good{color:var(--good)}.trap-glyph{color:var(--trap)}.what{display:flex;flex-direction:column;gap:3px;min-width:0}.what .title{font-size:.95rem;line-height:1.15}.what .sub{font-size:.75rem;font-weight:700;color:var(--muted);line-height:1.3}.what .sub b{color:var(--good)}.price{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-size:.95rem}.price .icon-svg{width:17px;height:17px}.price.need{color:var(--muted);font-size:.78rem;max-width:76px;text-align:right;line-height:1.05}.shop footer{padding:10px 16px 16px;border-top:1px solid var(--line)}.shop .start{width:100%}.shop-grid.traps{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.shop-item.trap{grid-template-columns:1fr;justify-items:center;text-align:center;padding:8px 6px}.shop-item.trap .glyph{width:34px;height:34px}.shop-item.trap .sub{display:none}.shop-item.trap .price{font-size:.78rem}.tag{padding:3px 8px;border-radius:99px;background:var(--bad);color:var(--ink);font-size:.7rem;font-weight:900}.placing-bar{position:absolute;left:50%;bottom:calc(12px + var(--safe-b));transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:10px 10px 10px 12px;width:min(460px,calc(100% - 16px));animation:rise .24s var(--ease-out)}.placing-bar .glyph{width:40px;height:40px;border-radius:10px;background:var(--ink-2);display:grid;place-items:center;flex:none}.placing-bar .what{flex:1}.placing-bar .sub{display:flex;align-items:center;gap:6px}.level-scrim{background:#0a0d14bd}.level-up{display:flex;flex-direction:column;align-items:center;gap:10px;width:min(760px,calc(100% - 24px));animation:pop .26s var(--ease-out)}.level-up h2{margin:0;font-size:2.2rem;line-height:1;letter-spacing:-.02em}.level-up h2 .num{color:var(--info)}.level-up p{margin:0 0 8px;color:var(--text);font-weight:700}.cards{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;padding:14px 16px 18px;min-height:190px;text-align:left;white-space:normal;border-radius:var(--radius);animation:card-in .32s var(--ease-out) both}.card:nth-child(2){animation-delay:60ms}.card:nth-child(3){animation-delay:.12s}@keyframes card-in{0%{opacity:0;transform:translateY(18px)}}.card.rare{--face: #34305c;--edge: #1c1940}.card.rare .tag{background:#b3a6ff}.card-top{display:flex;align-items:center;gap:8px}.card-top .key{margin-left:auto;font-size:.75rem;color:var(--muted)}.card .title{font-size:1.15rem;line-height:1.15;margin-top:4px}.card .text{font-size:.9rem;font-weight:600;line-height:1.35;color:var(--muted)}.token.sm{width:34px;height:34px;border-radius:10px}.token.sm svg{width:20px;height:20px}.squad-token{--hero: var(--text)}.toasts{position:absolute;top:calc(96px + var(--safe-t));left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none!important}.toast{padding:8px 16px;border-radius:999px;background:var(--panel);box-shadow:0 3px 0 var(--panel-lip);font-weight:800;font-size:.92rem;animation:toast-in .24s var(--ease-out);white-space:nowrap}.toast.bad{background:#5b2a33;box-shadow:0 3px #33161c}.toast.good{color:var(--good)}.toast.wave{font-size:1.25rem;padding:12px 24px;background:var(--accent);color:var(--accent-ink);box-shadow:0 4px 0 var(--accent-lip),0 16px 30px -12px #0009}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px) scale(.96)}}.scrim{position:absolute;inset:0;background:#0c10199e;display:grid;place-items:center;padding:20px;animation:fade .2s var(--ease-out)}@keyframes fade{0%{opacity:0}}.modal{width:min(440px,100%);padding:24px;display:flex;flex-direction:column;gap:16px;text-align:center;animation:pop .28s var(--ease-out)}@keyframes pop{0%{opacity:0;transform:translateY(12px) scale(.97)}}.modal h2{margin:0;font-size:2rem;line-height:1.05;letter-spacing:-.02em}.modal h2.win{color:var(--accent)}.modal h2.lose{color:var(--bad)}.modal p{margin:0;color:var(--muted)}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.unlock{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--ink-2);text-align:left}.unlock b{color:var(--accent)}.menu{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;justify-content:safe flex-end;overflow-y:auto;padding:calc(32px + var(--safe-t)) calc(32px + var(--safe-r)) calc(40px + var(--safe-b)) calc(40px + var(--safe-l));background:linear-gradient(90deg,rgb(14 18 28 / .85) 0%,rgb(14 18 28 / .35) 45%,transparent 70%);pointer-events:auto}.menu h1{margin:0;font-size:clamp(3rem,9vw,5.6rem);font-weight:900;line-height:.9;letter-spacing:-.04em}.menu h1 span{display:block;color:var(--accent)}.menu .tagline{margin:14px 0 28px;max-width:34ch;font-size:1.05rem;color:var(--muted);line-height:1.4}.menu .actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.action-stack{flex-direction:column;align-items:center;gap:4px;line-height:1.05}.action-stack>span{display:inline-flex;align-items:center;gap:8px}.action-stack small{color:currentColor;opacity:.78;font-size:.74rem;font-weight:800}.difficulty-picker{width:min(420px,100%);margin:0 0 18px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:var(--radius);background:var(--ink-2);box-shadow:inset 0 1px #00000059}.segment{min-height:38px;padding:8px 10px;box-shadow:none;color:var(--muted)}.segment.selected{--face: var(--panel-hi);color:var(--text);box-shadow:0 2px 0 var(--panel-lip)}.difficulty-picker p{margin:8px 4px 0;color:var(--text);font-size:.88rem;line-height:1.3}.menu .record{margin-top:28px;display:flex;gap:28px;flex-wrap:wrap}.menu .record div{display:flex;flex-direction:column;gap:2px}.menu .record .k{font-size:.75rem;color:var(--muted);font-weight:700}.menu .record .v{font-size:1.5rem}.menu-corner{position:absolute;top:calc(16px + var(--safe-t));right:calc(16px + var(--safe-r));display:flex;gap:8px}.squad{position:absolute;inset:0;background:#0e121ccc;display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:auto 1fr auto;gap:16px 20px;padding:calc(20px + var(--safe-t)) calc(24px + var(--safe-r)) calc(20px + var(--safe-b)) calc(24px + var(--safe-l));animation:fade .2s var(--ease-out);pointer-events:auto}.squad-head{grid-column:1 / -1;display:flex;align-items:center;gap:12px}.squad-head h2{margin:0;font-size:1.6rem;letter-spacing:-.02em}.squad-head p{margin:0 0 0 auto;color:var(--muted);font-weight:700}.roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;align-content:start;overflow-y:auto;padding:4px 4px 12px;margin:-4px}.roster-card{flex-direction:column;align-items:flex-start;gap:8px;padding:12px;min-height:118px;text-align:left;border-radius:var(--radius);position:relative}.roster-card .name{font-size:.95rem}.roster-card .role{font-size:.75rem;color:var(--muted);font-weight:700}.roster-card.focused{outline:3px solid var(--text)}.roster-card.picked{--face: #3a4870}.roster-card .slot-no{position:absolute;top:10px;right:10px;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:.8rem}.detail{padding:18px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.detail header{display:flex;gap:14px;align-items:center}.detail h3{margin:0;font-size:1.3rem}.detail .blurb{margin:0;color:var(--muted);line-height:1.4}.ability-box{background:var(--ink-2);border-radius:var(--radius-sm);padding:12px}.ability-box b{display:block;margin-bottom:4px}.squad-foot{grid-column:1 / -1;display:flex;align-items:center;gap:12px}.slots{display:flex;gap:8px}.slot{width:52px;height:52px;border-radius:14px;border:2px dashed var(--line);display:grid;place-items:center}.squad-foot .spacer{flex:1}.pause-list{display:flex;flex-direction:column;gap:10px}.keys{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;text-align:left;font-size:.85rem;color:var(--muted)}kbd{font:inherit;font-weight:800;color:var(--text);background:var(--ink-2);border-radius:6px;padding:1px 7px;box-shadow:0 2px 0 var(--panel-lip)}@media(orientation:portrait),(max-width:700px){.hud-left{flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:6px}.pill{height:34px;font-size:.95rem}.wave-chip{justify-self:center;min-width:96px}.hud-row{grid-template-columns:auto 1fr auto;gap:6px}.hud-top{left:calc(8px + var(--safe-l));right:calc(8px + var(--safe-r));gap:4px;top:calc(6px + var(--safe-t))}.xp{width:100%}.cannon-ready{height:34px;padding:0 9px}.cannon-copy{display:none}.mini-track{width:26px}.hero-bar{width:calc(100% - 16px);bottom:calc(8px + var(--safe-b));gap:6px}.hero-row{gap:6px}.hero-btn{grid-template-columns:1fr;justify-items:center;text-align:center;padding:10px 4px 8px;gap:5px;min-height:0}.hero-btn .meta{align-items:center}.hero-btn .name{font-size:.82rem}.hero-btn .ability-name{display:none}.auto-btn{min-width:54px;padding:8px 6px}.ready-tag{display:none}.shop{top:auto;left:calc(8px + var(--safe-l));right:calc(8px + var(--safe-r));bottom:calc(8px + var(--safe-b));width:auto;max-height:50vh;max-height:50dvh;animation:sheet-in .26s var(--ease-out)}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}.shop header{padding:8px 12px 2px 6px}.shop .collapse{display:inline-flex;width:36px;min-height:36px;padding:0}.shop-body{padding:4px 12px 10px;gap:10px}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.shop-item{grid-template-columns:auto minmax(0,1fr);padding:7px 8px;gap:2px 8px;min-height:0}.shop-item .glyph,.shop-item .token{grid-row:span 2}.shop-item .price{font-size:.85rem}.shop-item .sub{font-size:.7rem}.shop-grid.traps{grid-template-columns:repeat(3,minmax(0,1fr))}.shop-item.trap{grid-template-columns:1fr;justify-items:center;text-align:center}.shop-item.trap .glyph{grid-row:auto}.shop-item.trap .sub{display:none}.shop footer{padding:8px 12px 12px}.cards{grid-template-columns:1fr;gap:10px}.card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"top title" "top text";align-items:start;gap:2px 12px;min-height:0;padding:12px 14px 14px}.card-top{grid-area:top;flex-direction:column}.card-top .key{display:none}.card .title{grid-area:title;margin:0}.card .text{grid-area:text}.level-up h2{font-size:1.8rem}.hint{bottom:auto;top:calc(104px + var(--safe-t));white-space:normal;text-align:center;width:max-content;max-width:calc(100% - 32px)}.coach{max-width:calc(100% - 24px)}.coach-cannon{bottom:calc(48% + var(--safe-b))}.coach-auto{right:calc(8px + var(--safe-r));bottom:calc(80px + var(--safe-b));max-width:210px}.coach-ready{left:calc(10px + var(--safe-l));bottom:calc(84px + var(--safe-b))}.toasts{top:calc(104px + var(--safe-t))}.menu{background:linear-gradient(0deg,rgb(14 18 28 / .92) 0%,rgb(14 18 28 / .55) 55%,transparent 80%);padding:24px calc(20px + var(--safe-r)) calc(28px + var(--safe-b)) calc(20px + var(--safe-l))}.menu .actions .btn.big{flex:1}.difficulty-picker{margin-bottom:14px}.menu .record{gap:14px}.squad{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr) auto;padding:calc(14px + var(--safe-t)) 12px calc(12px + var(--safe-b));gap:12px}.squad-head p{display:none}.roster{grid-template-columns:repeat(5,1fr);gap:6px;overflow:visible}.roster-card{min-height:0;padding:6px;align-items:center}.roster-card .name,.roster-card .role{display:none}.roster-card .token{width:100%;height:auto;aspect-ratio:1}.roster-card .slot-no{top:-4px;right:-4px;width:20px;height:20px;font-size:.7rem}.detail{padding:14px;align-self:start;max-height:100%}.squad-foot .slots,.squad-foot .spacer{display:none}.squad-foot .btn.primary{flex:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.daily-board{margin-top:22px;width:min(360px,100%);text-align:left}.daily-board h2{margin:0 0 6px;font-size:.8rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.daily-board.in-summary{margin:14px 0 4px;width:100%}.board-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.board-list li{display:flex;gap:10px;padding:5px 8px;border-radius:var(--radius-sm);font-size:.9rem}.board-list li.me{background:#ffc94d24;color:var(--accent)}.board-list .rank{width:1.4em;text-align:right;color:var(--muted)}.board-list .who{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-status{margin:0 0 8px;font-weight:700;color:var(--accent)}.callsign{display:grid;gap:6px;margin-bottom:8px}.callsign label{font-size:.85rem;color:var(--muted)}.callsign .row{display:flex;gap:8px}.callsign input{flex:1;min-width:0;padding:10px 12px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--ink-2);color:var(--text);font:inherit;font-weight:700;user-select:text;-webkit-user-select:text}.callsign input:focus-visible{outline:3px solid var(--info);outline-offset:1px}
