*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body{background:var(--bg);height:100%;color:var(--text);overscroll-behavior:none;margin:0;font:14px/1.4 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#app{width:100%;height:100%;height:100dvh;position:relative}#stage{width:var(--board-w,100%);height:calc(var(--top-h,0px) + var(--board-h,100%) + var(--deck-h,0px));transform:translate(-50%, -50%) scale(var(--board-scale,1));touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;position:absolute;top:50%;left:50%}#screens{z-index:30;pointer-events:none;position:absolute;inset:0}#screens>*{pointer-events:auto}#game-root{left:0;top:var(--top-h,0px);width:var(--board-w,100%);height:var(--board-h,100%);position:absolute}#game-root canvas{display:block}#hud{pointer-events:none;font-variant-numeric:tabular-nums;position:absolute;inset:0}button{font:inherit;font-variant-numeric:tabular-nums;color:inherit;cursor:pointer;background:0 0;border:0}kbd{border:1px solid var(--panel-edge);color:var(--dim);border-radius:4px;padding:1px 5px;font:400 10px/1.4 ui-monospace,Menlo,monospace}.dot{background:var(--accent-soft);border-radius:50%;flex:none;width:11px;height:11px;box-shadow:0 0 8px}.dot.contact{background:var(--tower-singularity)}.dot.crit{background:var(--danger)}.top{pointer-events:auto;height:var(--top-h,46px);background:var(--bg);box-shadow:inset 0 -1px 0 var(--panel-edge);align-items:center;gap:22px;padding:0 14px;display:flex;position:absolute;top:0;left:0;right:0}.top .stat{flex-direction:column;gap:1px;display:flex}.top .stat label{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-size:9.5px}.top .stat b{font-size:17px;font-weight:600}.top .stat b.crit{color:var(--danger)}.ribbon{--ribbon:var(--accent);border:1px solid var(--panel-edge);background:color-mix(in srgb, var(--panel) 70%, transparent);border-radius:7px;flex:1;align-items:center;height:26px;padding:0 12px;display:flex;position:relative;overflow:hidden}.ribbon span{z-index:1;color:var(--bright);font-size:11.5px;position:relative}.ribbon span .dot{margin:0 5px 0 3px}.ribbon i{background:color-mix(in srgb, var(--ribbon) 26%, transparent);border-right:1px solid color-mix(in srgb, var(--ribbon) 60%, transparent);transition:width .2s linear;position:absolute;top:0;bottom:0;left:0}.ribbon.crit{--ribbon:var(--danger);border-color:color-mix(in srgb, var(--danger) 55%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--danger) 22%, transparent), 0 0 14px color-mix(in srgb, var(--danger) 18%, transparent)}.seg{border:1px solid var(--panel-edge);border-radius:7px;display:inline-flex;overflow:hidden}.seg button{color:var(--muted);padding:5px 11px;font-size:11.5px;font-weight:600}.seg button+button{border-left:1px solid var(--panel-edge)}.seg button:hover{color:var(--text)}.seg button.on{background:var(--accent);color:var(--bg)}.top .icon{border:1px solid var(--panel-edge);width:30px;height:26px;color:var(--muted);border-radius:7px;place-items:center;font-size:10px;display:grid}.top .icon:hover{color:var(--text);border-color:var(--accent)}.deck{pointer-events:none;left:0;right:0;top:calc(var(--top-h,0px) + var(--board-h,0px));height:var(--deck-h,150px);position:absolute}.deck .panel{pointer-events:auto;background:color-mix(in srgb, var(--bg) 96%, transparent);border-top:1px solid var(--panel-edge);align-items:center;gap:16px;height:100%;padding:0 16px;display:flex;box-shadow:0 -14px 44px #000000bf}.deck h6{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin:0 0 8px;font:400 9.5px/1 inherit}.sep{background:linear-gradient(to bottom, transparent, var(--panel-edge), transparent);width:1px;height:110px}.slots{gap:8px;display:flex}.slot{border:1px solid var(--panel-edge);background:color-mix(in srgb, var(--slot) 70%, transparent);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:78px;height:86px;display:flex;position:relative}.slot kbd{border:0;padding:0;position:absolute;top:3px;left:4px}.slot .corner{color:var(--bright);font-size:11px;font-weight:600;position:absolute;top:3px;right:6px}.slot .glyph{filter:drop-shadow(0 0 6px)}.slot .name{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:9px;font-weight:600}.slot:hover{border-color:currentColor}.slot.armed{background:color-mix(in srgb, currentColor 12%, transparent);box-shadow:0 0 16px color-mix(in srgb, currentColor 16%, transparent);border-color:currentColor}.slot.poor .corner{color:var(--danger)}.slot.poor .glyph{opacity:.8}.slot .short{text-align:center;color:var(--danger);font-size:9.5px;font-weight:600;position:absolute;bottom:20px;left:0;right:0}.slot.locked{color:var(--dim);text-align:center;background:0 0;border-style:dashed}.slot.locked .glyph{opacity:.3;filter:none}.slot.locked .wave{letter-spacing:.06em;color:var(--dim);font-size:9.5px}.dial{vertical-align:-2px;flex:none;width:13px;height:13px;margin-right:5px}.dial .dial-off{stroke-width:2px;opacity:.22}.dial .dial-on{stroke-width:3px;opacity:1}.detail{flex-direction:column;flex:1;gap:8px;max-width:430px;display:flex}.detail .head{align-items:center;gap:9px;display:flex}.detail .head b{color:var(--text);font-size:13px}.detail .head .blurb{color:var(--dim);font-size:10.5px}.armed-cancel{border:1px solid var(--line);color:var(--muted);cursor:pointer;pointer-events:auto;border-radius:7px;align-items:center;gap:7px;margin-left:auto;padding:0 10px;font-size:11px;display:flex}.armed-cancel:hover{color:var(--text);border-color:var(--dim)}.detail .line{color:var(--muted);font-size:11.5px;line-height:1.6}.chips{flex-wrap:wrap;align-items:flex-end;gap:4px 10px;display:flex}.chip{white-space:nowrap;background:0 0;border:0;flex-direction:column;align-items:center;gap:1px;display:flex}.chip .cg{filter:drop-shadow(0 0 5px);display:block}.chip b{color:var(--bright);font-size:11px;font-weight:600}.detail .hint{color:var(--dim);font-size:10.5px}.detail .hint b{color:var(--muted);font-weight:400}.pips{gap:3px;margin-left:auto;display:flex}.pips i{border:1px solid var(--dim);border-radius:50%;width:6px;height:6px}.pips i.on{background:currentColor;border-color:currentColor}.upgrades{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.path{border:1px solid var(--panel-edge);background:color-mix(in srgb, var(--slot) 75%, transparent);text-align:left;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 6px;padding:4px 7px;display:grid}.path label{letter-spacing:.07em;text-transform:uppercase;color:var(--dim);cursor:inherit;white-space:nowrap;align-items:center;font-size:9px;display:flex}.path b{color:var(--accent-soft);white-space:nowrap;font-size:11px;font-weight:600}.path em{color:var(--accent-bright);justify-self:end;font-size:10px;font-style:normal;font-weight:600}.path .pips{justify-self:end;gap:2px;margin:0}.path .pips i{width:5px;height:5px}button.path:hover{border-color:var(--accent)}.path.poor{opacity:.5}.path.poor em{color:var(--danger)}.path.maxed{cursor:default}.path.maxed em{color:var(--dim)}.actions{align-items:center;gap:7px;display:flex}.actions .targeting{flex:1;min-width:0}.actions .targeting button{flex:1;min-width:0;padding:5px 4px;font-size:10.5px}.btn{border:1px solid var(--panel-edge);color:var(--bright);white-space:nowrap;border-radius:7px;align-items:center;gap:8px;padding:6px 12px;font-size:11.5px;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--muted);color:var(--text)}.btn.primary{border-color:var(--accent);color:var(--accent-bright)}.btn.primary:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}.btn.primary em{color:var(--accent-soft);font-style:normal;font-weight:400}.btn.poor{opacity:.5}.btn.flat{color:var(--dim);cursor:default}.btn.flat:hover{border-color:var(--panel-edge);color:var(--dim)}.send{flex-direction:column;align-items:flex-end;gap:9px;margin-left:auto;display:flex}.send .send-btn{border-radius:8px;padding:11px 18px;font-size:13px}.send .send-btn.primary{box-shadow:0 0 18px color-mix(in srgb, var(--accent) 18%, transparent)}.send .hint{color:var(--dim);font-size:10.5px}.handle{color:var(--muted);align-items:center;gap:7px;font-size:11.5px;display:inline-flex}.handle span{color:var(--bright);font-size:9px}.handle:hover{color:var(--text)}.deck .strip{pointer-events:auto;background:color-mix(in srgb, var(--bg) 94%, transparent);border:1px solid var(--panel-edge);border-bottom:0;border-radius:10px 10px 0 0;align-items:center;gap:16px;padding:11px 16px;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%);box-shadow:0 -10px 34px #000000b3}.overlay{left:0;top:var(--top-h,0px);width:100%;height:var(--board-h,100%);place-items:center;display:grid;position:absolute}.overlay:empty{display:none}.scrim{pointer-events:auto;background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);position:absolute;inset:0}.scrim.lost{background:radial-gradient(circle at 98% 77%, color-mix(in srgb, var(--danger) 22%, transparent), color-mix(in srgb, var(--bg) 90%, transparent) 55%)}.scrim.won{background:radial-gradient(circle at 98% 77%, color-mix(in srgb, var(--accent) 28%, transparent), color-mix(in srgb, var(--bg) 88%, transparent) 55%)}.card{pointer-events:auto;z-index:1;background:color-mix(in srgb, var(--panel) 97%, transparent);width:420px;box-shadow:0 0 0 1px var(--panel-edge), 0 16px 46px #000c;border-radius:14px;flex-direction:column;gap:14px;padding:24px;display:flex;position:relative}.card.lost{box-shadow:0 0 0 1px color-mix(in srgb, var(--danger) 40%, transparent), 0 16px 46px #000c}.card.won{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent), 0 16px 46px #000c}.card h2{letter-spacing:-.01em;margin:0;font:500 24px/1.15 inherit}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-size:10px;font-weight:600}.eyebrow.danger{color:var(--danger)}.eyebrow.accent{color:var(--accent-soft)}.head-row{align-items:flex-start;gap:14px;display:flex}.head-row>div{flex-direction:column;flex:1;gap:4px;display:flex}.grade{border:2px solid var(--accent);width:56px;height:56px;color:var(--accent-bright);box-shadow:0 0 24px color-mix(in srgb, var(--accent) 30%, transparent);border-radius:50%;flex:none;place-items:center;font:500 26px/1 inherit;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.big{background:color-mix(in srgb, var(--slot) 70%, transparent);border-radius:8px;flex-direction:column;gap:2px;padding:9px 10px;display:flex}.big label{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-size:9px}.big b{font-size:19px;font-weight:600}.big b.danger{color:var(--danger)}.note{border-radius:8px;flex-direction:column;gap:6px;padding:11px 12px;display:flex}.note p{color:var(--bright);margin:0;font-size:12px;line-height:1.6}.note.danger{background:color-mix(in srgb, var(--danger) 8%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--danger) 22%, transparent)}.note.accent{background:color-mix(in srgb, var(--accent) 8%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 22%, transparent)}.rows{flex-direction:column;gap:9px;display:flex}.row{justify-content:space-between;align-items:center;display:flex}.row span{color:var(--muted);font-size:12px}.hr{background:linear-gradient(to right, transparent, var(--panel-edge) 48px, var(--panel-edge) calc(100% - 48px), transparent);height:1px}.btn.wide{border-radius:8px;justify-content:center;padding:10px 0;font-size:13px}.card.toast{pointer-events:none;width:auto;box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent), 0 14px 40px #0009;align-self:start;align-items:center;gap:12px;margin-top:96px;padding:18px 30px}.card.toast .items{align-items:baseline;gap:20px;display:flex}.card.toast .item{flex-direction:column;align-items:center;gap:3px;display:flex}.card.toast .item b{font-size:24px;font-weight:600}.card.toast .item b.accent{color:var(--accent-bright)}.card.toast .item b.danger{color:var(--danger)}.card.toast .item label{color:var(--dim);font-size:10px}.breach{pointer-events:none;border:1px solid color-mix(in srgb, var(--danger) 50%, transparent);background:color-mix(in srgb, var(--bg) 92%, transparent);box-shadow:0 0 30px color-mix(in srgb, var(--danger) 25%, transparent), 0 10px 30px #0009;border-radius:8px;align-self:start;align-items:center;gap:11px;margin-top:132px;padding:10px 18px;display:flex}.breach b{letter-spacing:.06em;color:var(--danger-bright);font-size:13px}.breach span{color:var(--bright);font-size:12px}@media (prefers-reduced-motion:reduce){.ribbon i{transition:none}}.inspector{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"portrait body""upgrades upgrades""actions actions";align-items:center;gap:6px 12px;display:grid}.portrait{grid-area:portrait;place-items:center;width:56px;height:56px;display:grid;position:relative}.portrait .glyph{filter:drop-shadow(0 0 8px);position:absolute}.portrait .collar{position:absolute;inset:0}.portrait .mk{letter-spacing:.1em;color:var(--dim);font-size:8.5px;position:absolute;bottom:-3px}.inspector .body{flex-direction:column;grid-area:body;gap:4px;min-width:0;display:flex}.inspector .upgrades{grid-area:upgrades}.inspector .actions{grid-area:actions}.chipline{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.mech,.axes{flex-wrap:wrap;gap:4px;display:flex}.mech b,.axes b{background:color-mix(in srgb, var(--slot) 70%, transparent);white-space:nowrap;border-radius:5px;padding:1px 6px;font-size:11px;font-weight:600}.mech b{color:currentColor}.axes b{color:var(--muted)}.detail .line.armour{color:var(--dim);align-items:center;gap:7px;font-size:11px;display:flex}.line.armour .bar{background:color-mix(in srgb, var(--danger) 30%, transparent);border-radius:3px;width:54px;height:5px;position:relative;overflow:hidden}.line.armour .bar i{background:var(--accent);position:absolute;top:0;bottom:0;left:0}.line.armour b{color:var(--bright);font-size:11px;font-weight:600}.line.armour b.bad{color:var(--danger)}.targeting button{align-items:center;gap:5px;display:inline-flex}.targeting button span{font-size:10.5px}.detail .lede{flex-direction:column;gap:1px;display:flex}:root{--tap:0px}@media (pointer:coarse){:root{--tap:56px}.top .icon,.seg button,.path,.actions .targeting button,.btn,.handle{min-height:var(--tap)}.top .icon,.seg button{min-width:var(--tap)}.handle{border-radius:8px;padding:0 14px}.path{align-content:center}.deck .strip{padding:8px 16px}.slot:hover,.seg button:hover,.top .icon:hover,button.path:hover,.btn:hover,.handle:hover,.armed-cancel:hover{border-color:inherit;color:inherit;background:inherit}}.td-compact .deck .panel{height:auto;max-height:150px;position:absolute;bottom:0;left:0;right:0;overflow-x:auto}.td-compact{--tap:44px}@media (pointer:coarse){.card{width:min(420px,92vw)}.card .seg button,.card .btn,.card .btn.wide{min-height:var(--tap)}}#rotate{display:none}@media (pointer:coarse) and (orientation:portrait) and (max-width:700px){.td-ingame #rotate{z-index:100;text-align:center;background:var(--bg);place-content:center;justify-items:center;gap:14px;padding:32px;display:grid;position:fixed;inset:0}.td-ingame #rotate b{color:var(--text);font-size:19px;font-weight:600}.td-ingame #rotate span{color:var(--muted);max-width:30ch;font-size:13.5px;line-height:1.6}.td-ingame #rotate svg{width:46px;height:46px;color:var(--accent)}}.armed-blurb{color:var(--muted);text-wrap:pretty;font-size:11px;line-height:1.55}.mech-words{color:var(--dim);font-size:10.5px;line-height:1.5}.axes i.ax{letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-right:3px;font-size:8.5px;font-style:normal;font-weight:600}.chip .cname{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;max-width:8ch;font-size:8.5px;font-style:normal;line-height:1;overflow:hidden}
