.app--survival{grid-template-rows:auto 1fr auto}.board{place-items:center;min-height:0;padding:4px 10px 8px;display:grid}.lane-view{flex-direction:column;gap:8px;min-height:0;display:flex}.horde{color:#fff;background-color:#0000;background-image:radial-gradient(circle at 6px 3px,#ffffff26 2.4px,#0000 2.6px),linear-gradient(#b6303f 0%,#8e2331 100%);background-position:0 0;background-repeat:repeat;background-size:12px 9px,auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border-radius:14px;flex-direction:column;align-items:center;gap:1px;padding:7px 16px;display:flex;box-shadow:0 2px #500e16d9}.horde-count{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.42rem;font-weight:800;line-height:1.05}.horde-label{text-transform:uppercase;letter-spacing:.07em;opacity:.82;font-size:.66rem;font-weight:600}.horde.is-outnumbered{background-image:linear-gradient(#2f8f56 0%,#226b41 100%);box-shadow:0 2px #0e3c22d9}.grid{isolation:isolate;grid-template-columns:repeat(var(--lanes,4), var(--cell-w,68px));grid-template-rows:repeat(var(--rows,7), var(--cell-h,46px)) var(--start-h,34px);gap:var(--gap,6px);justify-content:center;display:grid;position:relative}.grid[data-empty]{min-height:220px}.cell{background:var(--op);box-shadow:0 2px 0 var(--op-shade);color:#fff;border-radius:11px;place-items:center;padding:0;transition:opacity .16s,filter .16s,box-shadow .16s,transform .12s;display:grid;position:relative}.cell--add{--op:#35b56a;--op-shade:#22874c}.cell--mul{--op:#2b7fe8;--op-shade:#1b5aad}.cell--sub{--op:#f47b20;--op-shade:#c25a0d}.cell--div{--op:#9b5de5;--op-shade:#7038b8}.cell--barrier{--op:#67748f;--op-shade:#454f64;background-image:repeating-linear-gradient(-45deg,#f5c518e6 0 6px,#1a202ce6 6px 12px);background-position:0 0;background-repeat:no-repeat;background-size:auto 7px;border-radius:5px}.cell-face{justify-content:center;align-items:center;gap:3px;width:100%;height:100%;display:flex}.cell--barrier .cell-face{background:var(--op);border-radius:inherit;height:calc(100% - 6px);margin-top:6px;padding-top:6px}.cell-label{font-size:min(calc(var(--cell-w,68px) * .3), 24px);letter-spacing:-.03em;font-variant-numeric:tabular-nums;text-shadow:0 1px 1px #00000038;font-weight:800}.cell--wide .cell-label{font-size:min(calc(var(--cell-w,68px) * .23), 19px)}.cell--xwide .cell-label{font-size:min(calc(var(--cell-w,68px) * .185), 16px)}.cell-glyph{width:min(calc(var(--cell-w,68px) * .2), 15px);height:min(calc(var(--cell-w,68px) * .2), 15px);fill:#ffffffdb;flex:none}.cell-tally{color:#fff;font-size:min(calc(var(--cell-w,68px) * .16), 11px);font-variant-numeric:tabular-nums;background:#080e1ab8;border-radius:6px;padding:0 4px;font-weight:700;line-height:1.5;position:absolute;bottom:2px;right:3px}.cell-tally:empty{display:none}.cell:disabled{cursor:default}.cell.is-reachable{box-shadow:0 2px 0 var(--op-shade), 0 0 0 2.5px var(--text);filter:brightness(1.08)}.cell.is-reachable:active{box-shadow:0 0 0 2.5px var(--text);transform:translateY(2px)}.cell.is-blocked{opacity:.44}.cell.is-taken{box-shadow:0 2px 0 var(--op-shade), 0 0 0 2.5px var(--accent)}.cell.is-spent{opacity:.26}.cell.is-hinted{box-shadow:0 2px 0 var(--op-shade), 0 0 0 3px #f5c518, 0 0 16px #f5c5188c}.startline{border:2px dashed var(--glass-edge);border-radius:10px}.squad{z-index:2;min-width:calc(var(--cell-w,68px) * .72);background:var(--text);color:var(--bg);font-size:min(calc(var(--cell-w,68px) * .26), 20px);font-variant-numeric:tabular-nums;letter-spacing:-.02em;box-shadow:0 3px 10px var(--shadow);pointer-events:none;border-radius:999px;place-items:center;padding:5px 10px;font-weight:800;transition:transform .26s cubic-bezier(.3,.9,.35,1);display:grid;position:absolute;top:0;left:0}.squad.is-placing{transition:none}.squad.is-dead{background:var(--danger);color:#fff}.squad.is-won{color:#fff;background:#35b56a}.win-title,.lose-title{text-align:center}.result-line{font-variant-numeric:tabular-nums;justify-content:center;align-items:baseline;gap:8px;margin:2px 0 16px;display:flex}.result-line b{font-size:1.6rem;font-weight:800}.result-line span{color:var(--text-dim);font-size:.9rem}
