:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0907;--glass:#18140feb;--glass-strong:#100d0af5;--glass-hi:#342a1df5;--glass-gradient:linear-gradient(180deg, #2c251cf2 0%, #15110df7 100%);--line:#c9a05a33;--line-strong:#d6aa607a;--text:#efe6d2;--muted:#b5a88d;--dim:#7f7461;--gold:#f3c969;--gold-deep:#c99a3b;--accent:#e2bd72;--accent-strong:#f6dca0;--flux:#c49bff;--legal:#7fe0a0;--illegal:#ff7b6b;--danger:#ff5f57;--ember:#ff8a3d;--tide:#57b8ff;--stone:#e2b04f;--radius:3px;--radius-sm:2px;--shadow:0 14px 38px #00000080, 0 3px 8px #00000059;--inner:inset 0 1px 0 #ffe8b417;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Cinzel", "Trajan Pro", "Cormorant Garamond", "Palatino Linotype", Georgia, serif;font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:14px}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0;overflow:hidden}button{font:inherit;color:inherit}button:focus-visible,canvas:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}kbd{border:1px solid var(--line-strong);min-width:18px;color:var(--accent-strong);font-family:var(--font-ui);text-align:center;background:#ffffff0f;border-radius:3px;padding:0 5px;font-size:10px;font-weight:700;line-height:16px;display:inline-block}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--glass-gradient);box-shadow:var(--shadow), var(--inner);-webkit-backdrop-filter:blur(12px)saturate(1.25)}.panel-title{border-bottom:1px solid var(--line);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-strong);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;font-size:11px;font-weight:700;display:flex}.icon-btn{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:3px;place-items:center;font-size:17px;line-height:1;display:grid}.icon-btn:hover{color:var(--text);background:#ffffff14}.btn{color:#22170a;letter-spacing:.02em;cursor:pointer;background:linear-gradient(#f8d988 0%,#d5a24a 55%,#b7832f 100%);border:1px solid #ffe6aa8c;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:9px 20px;font-size:14px;font-weight:800;transition:transform .12s,filter .12s,box-shadow .12s;display:inline-flex;position:relative;box-shadow:0 6px 18px #c99a3b47,inset 0 1px #ffffff73}.btn:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 10px 24px #c99a3b61,inset 0 1px #ffffff80}.btn:active{transform:translateY(0)}.btn.secondary{border-color:var(--line-strong);color:var(--text);box-shadow:var(--shadow), var(--inner);background:linear-gradient(#403423f2,#1a1f30f2)}.chip{border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;background:#ffffff0a;border-radius:2px;align-items:center;padding:1px 8px;font-size:11px;font-weight:600;display:inline-flex}.status-pill{background:#00000040;border:1px solid;border-radius:2px;align-items:center;padding:1px 8px;font-size:11px;font-weight:600;display:inline-flex}.app{background:var(--bg);position:fixed;inset:0}.board-host{position:absolute;inset:0}.board-canvas{cursor:pointer;width:100%;height:100%;display:block}.board-canvas.panning{cursor:grabbing}.hud-top{pointer-events:none;z-index:4;background:linear-gradient(#090705b8 0%,#09070500 100%);grid-template-columns:1fr auto 1fr;align-items:start;gap:12px;padding:10px 12px 26px;display:grid;position:absolute;top:0;left:0;right:0}.hud-top>*{pointer-events:auto}.resources{flex-wrap:wrap;gap:6px;display:flex}.resource{border:1px solid var(--line);background:var(--glass);min-width:0;box-shadow:var(--shadow), var(--inner);-webkit-backdrop-filter:blur(10px);border-radius:4px;align-items:center;gap:7px;padding:5px 11px 5px 7px;display:flex;position:relative}.resource-icon{flex:none;width:22px;height:22px}.resource-body{flex-direction:column;line-height:1.05;display:flex}.resource-label{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-size:9.5px;font-weight:700}.resource-value{font-variant-numeric:tabular-nums;color:var(--text);font-size:17px;font-weight:800}.resource-value.gold{color:var(--gold)}.resource-value.flux{color:var(--flux)}.resource-max{color:var(--muted);margin-left:2px;font-size:11px;font-weight:600}.resource-sub{color:var(--muted);font-size:10px;font-weight:600}.delta{margin-left:6px;font-size:11px;font-weight:700}.delta.up{color:var(--legal)}.delta.down{color:var(--illegal)}.keep-meter{background:#ffffff14;border-radius:2px;height:3px;margin-top:3px;display:block;overflow:hidden}.keep-meter span{background:linear-gradient(90deg,#4fd18b,#a6ee7a);height:100%;transition:width .3s;display:block}.resource.keep.danger .keep-meter span{background:linear-gradient(90deg,#ff4f46,#ff9c5a)}.resource.keep.danger .resource-value{color:var(--illegal)}.hud-center{flex-direction:column;align-items:center;gap:6px;display:flex}.wave-status{flex-direction:column;align-items:center;gap:5px;display:flex}.wave-line{border:1px solid var(--line);background:var(--glass);box-shadow:var(--shadow), var(--inner);-webkit-backdrop-filter:blur(10px);border-radius:2px;align-items:center;gap:12px;padding:6px 8px 6px 16px;display:flex}.wave-number{font-family:var(--font-display);letter-spacing:.06em;color:var(--gold);font-size:16px;font-weight:700}.wave-number .muted{font-family:var(--font-ui);font-size:12px}.wave-detail{color:var(--text);font-size:13px}.wave-detail strong{color:var(--gold);font-variant-numeric:tabular-nums}.countdown{color:var(--accent-strong)}.btn.call-wave{border-radius:2px;padding:5px 12px;font-size:12px}.btn.call-wave kbd{color:#2b1d0b;background:#22170a1f;border-color:#22170a59}.wave-preview{max-width:560px;color:var(--muted);text-align:center;background:#0a08068c;border-radius:2px;padding:3px 12px;font-size:12.5px}.wave-incoming{color:#e7d6ff;background:#361c5cb8;border:1px solid #c49bff73;border-radius:2px;padding:3px 12px;font-size:12.5px;font-weight:600}.hud-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.mode-badge{border:1px solid var(--line);color:var(--muted);letter-spacing:.14em;text-transform:uppercase;background:#0a080680;border-radius:2px;margin-right:4px;padding:3px 10px;font-size:10.5px;font-weight:700}.hud-btn{border:1px solid var(--line);background:var(--glass);height:30px;color:var(--text);cursor:pointer;box-shadow:var(--inner);-webkit-backdrop-filter:blur(10px);border-radius:4px;align-items:center;gap:6px;padding:0 11px;font-size:12px;font-weight:600;transition:border-color .12s,background .12s;display:inline-flex}.hud-btn svg{opacity:.85;width:15px;height:15px}.hud-btn.icon{justify-content:center;width:32px;padding:0}.hud-btn.icon svg{width:17px;height:17px}.hud-btn.speed{font-variant-numeric:tabular-nums;width:38px;font-size:12.5px;font-weight:800}.hud-btn.speed.fast{color:var(--gold);border-color:#f3c9698c;box-shadow:0 0 12px #f3c9692e}.hud-btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent-strong)}.hud-btn.danger{color:#ffb4ad}.hud-btn.danger:hover{border-color:#ff5f5799}.hud-btn:disabled{opacity:.4;cursor:default}.console{border:1px solid var(--line);background:var(--glass-gradient);width:min(1180px,100% - 24px);box-shadow:var(--shadow), var(--inner);-webkit-backdrop-filter:blur(14px)saturate(1.25);z-index:4;border-radius:4px;align-items:stretch;gap:12px;padding:10px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.own-minimap{border:1px solid var(--line-strong);max-width:200px;max-height:130px;image-rendering:pixelated;cursor:crosshair;background:#0b0f17;border-radius:3px;flex:none;align-self:center;box-shadow:inset 0 0 10px #0009}.info{flex:1;align-items:flex-start;gap:12px;min-width:0;padding:2px 0;display:flex}.info-text{flex-direction:column;gap:4px;min-width:0;display:flex}.info-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.info-head strong{font-family:var(--font-display);letter-spacing:.03em;color:var(--text);font-size:17px}.info-desc{color:#d9cfbb;margin:0;font-size:12.5px;line-height:1.4}.info-desc.trait{color:var(--accent-strong)}.info-desc.counter b{color:var(--gold)}.info-stats{color:var(--text);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:3px 14px;font-size:12.5px;display:flex}.info-effects{flex-wrap:wrap;align-items:center;gap:5px;font-size:12px;display:flex}.enemy-hp{border:1px solid var(--line-strong);background:#0006;border-radius:3px;max-width:340px;height:16px;position:relative;overflow:hidden}.enemy-hp span{background:linear-gradient(90deg,#c33a2c,#ff7a4a);height:100%;transition:width .15s linear;display:block}.enemy-hp.construction span{background:linear-gradient(90deg,#8a6a33,#f3c969)}.enemy-hp em{color:#fff;text-shadow:0 1px 2px #000;place-items:center;font-size:10.5px;font-style:normal;font-weight:700;display:grid;position:absolute;inset:0}.send-chip-tag{color:var(--flux);border-color:#c49bff8c}.boss-chip{color:#ffb36b;border-color:#ff9a3c99}.builder-line{border-top:1px dashed var(--line);color:var(--text);flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0 0;padding-top:5px;font-size:12px;display:flex}.builder-line b{color:var(--accent-strong)}.builder-dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 8px var(--accent);border-radius:50%;margin-right:2px}.command-card{flex:none;grid-template-columns:repeat(4,56px);grid-auto-rows:56px;align-self:center;gap:6px;display:grid}.cmd{border:1px solid var(--line-strong);cursor:pointer;background:radial-gradient(circle at 50% 30%,#2b3550 0%,#121724 75%);border-radius:4px;place-items:center;padding:0;transition:transform .1s,border-color .1s,box-shadow .1s;display:grid;position:relative;box-shadow:inset 0 1px #ffffff14,0 3px 8px #00000073}.cmd:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff1f,0 0 0 1px #e2bd7259,0 6px 14px #00000080}.cmd.active{border-color:var(--gold);box-shadow:inset 0 0 14px #f3c96938,0 0 0 1px #f3c96980,0 0 16px #f3c96947}.cmd.dim .cmd-icon{filter:grayscale(.8)brightness(.6)}.cmd.empty{box-shadow:none;cursor:default;background:#0000002e;border:1px dashed #c9a05a14}.cmd-icon svg{width:34px;height:34px;display:block}.cmd.has-caption .cmd-icon{transform:translateY(-5px)}.cmd.has-caption .cmd-icon svg{width:30px;height:30px}.cmd-caption{letter-spacing:0;text-align:center;text-transform:uppercase;white-space:nowrap;color:var(--accent-strong);text-shadow:0 1px #000;font-size:7px;font-weight:800;line-height:1;position:absolute;bottom:3px;left:2px;right:2px;overflow:hidden}.cmd-gain{color:#9be27a;text-shadow:0 1px #000,0 0 4px #000c;font-size:12px;font-weight:800;position:absolute;bottom:2px;right:4px}.cmd-thumb{width:46px;height:46px;display:block;position:relative}.cmd-thumb img{object-fit:contain;filter:drop-shadow(0 2px 3px #0009);pointer-events:none;width:100%;height:100%;display:block}.cmd-badge{width:18px;height:18px;box-shadow:0 0 0 1px var(--line-strong);background:#080604d1;border-radius:50%;place-items:center;display:grid;position:absolute;top:-2px;right:-4px}.cmd-badge svg{width:13px;height:13px}.cmd.dim .cmd-thumb{filter:grayscale(.8)brightness(.6)}.cmd-key{color:var(--accent-strong);background:#00000073;border-radius:3px;padding:0 4px;font-size:9.5px;font-weight:800;line-height:14px;position:absolute;top:3px;left:4px}.cmd-cost{color:var(--gold);text-shadow:0 1px 2px #000;font-size:10.5px;font-weight:800;position:absolute;bottom:3px;right:4px}.cmd.dim .cmd-cost{color:var(--illegal)}.cmd-tooltip{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--glass-strong);width:320px;box-shadow:var(--shadow);pointer-events:none;padding:10px 12px;position:absolute;bottom:calc(100% + 10px);right:10px}.cmd-tooltip p{color:#d9cfbb;margin:4px 0 0;font-size:12.5px;line-height:1.4}.cmd-tooltip-head{align-items:center;gap:8px;display:flex}.cmd-tooltip-head strong{font-family:var(--font-display);flex:1;font-size:14px}.cmd-tooltip-key{border:1px solid var(--line-strong);color:var(--accent-strong);border-radius:3px;padding:0 6px;font-size:10.5px;font-weight:800}.cmd-tooltip-cost{color:var(--gold);font-size:12px;font-weight:800}.cmd-tooltip-cost.short{color:var(--illegal)}.codex-drawer{z-index:6;flex-direction:column;width:min(420px,100% - 24px);padding:14px 16px 0;display:flex;position:absolute;top:64px;bottom:170px;right:12px}.codex-tabs{border:1px solid var(--line);background:#00000040;border-radius:4px;gap:4px;margin:2px 0 6px;padding:3px;display:flex}.codex-tabs button{height:26px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:3px;flex:1;font-size:11.5px;font-weight:700}.codex-tabs button:hover{color:var(--text)}.codex-tabs button.on{color:var(--gold);background:linear-gradient(#f3c96938,#f3c96914);box-shadow:inset 0 0 0 1px #f3c96973}.codex-body{scrollbar-width:thin;flex:1;min-height:0;margin:0 -16px;padding:0 16px 14px;overflow-y:auto}.codex-frame{margin:10px 0 14px}.codex-frame-head{align-items:center;gap:8px;display:flex}.codex-frame-head strong{font-family:var(--font-display);font-size:16px}.codex-frame-head .muted{margin-left:auto;font-size:11px}.codex-frame-icon{border:1px solid var(--line-strong);background:#0000004d;border-radius:3px;place-items:center;width:28px;height:28px;display:grid}.codex-frame-icon svg{width:20px;height:20px}.codex-frame-desc{color:#d9cfbb;margin:5px 0 6px;font-size:12.5px;line-height:1.4}.codex-attune{color:#d9cfbb;background:#ffffff08;border-left:3px solid;border-radius:0 3px 3px 0;gap:3px;margin:5px 0;padding:7px 9px;font-size:12px;line-height:1.4;display:grid}.codex-attune strong{font-family:var(--font-display);align-items:center;gap:5px;font-size:13.5px;display:flex}.codex-attune strong svg{width:15px;height:15px}.codex-attune strong .muted{font-family:var(--font-ui);margin-left:auto;font-size:11px;font-weight:500}.codex-branches{color:var(--muted);flex-wrap:wrap;gap:4px 12px;font-size:11.5px;display:flex}.codex-branches b{color:var(--text);font-weight:600}.codex-drawer h3{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px;font-size:10.5px;font-weight:800}.codex-entry{border-bottom:1px solid var(--line);color:#d9cfbb;gap:2px;padding:7px 0;font-size:12.5px;line-height:1.4;display:grid}.codex-entry strong{font-family:var(--font-display);font-size:13.5px}.codex-entry strong .muted{font-family:var(--font-ui);font-size:11px;font-weight:500}.codex-note{margin:0 0 6px;font-size:12px;line-height:1.4}.codex-controls{margin:0;padding:0;list-style:none}.codex-controls li{align-items:center;gap:10px;padding:4px 0;font-size:12.5px;display:flex}kbd.inline{min-width:112px}.settings-drawer .setting{grid-template-columns:90px 1fr auto;align-items:center;gap:10px;margin:12px 0;font-size:13px;display:grid}.settings-drawer .setting.check{cursor:pointer;grid-template-columns:auto 1fr}.settings-drawer input[type=range]{accent-color:var(--gold)}.settings-drawer input[type=checkbox]{width:16px;height:16px;accent-color:var(--gold)}.setting-value{text-align:right;min-width:40px}.setting-note{margin:-6px 0 8px;font-size:11.5px}.segmented{border:1px solid var(--line-strong);background:#0000004d;border-radius:4px;padding:2px;display:inline-flex}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:4px 16px;font-weight:600}.segmented button.on{background:var(--accent);color:#0b1424}.toast{border:1px solid var(--line-strong);background:var(--glass-strong);pointer-events:none;box-shadow:var(--shadow);z-index:7;border-radius:2px;padding:7px 16px;font-size:13px;font-weight:600;animation:.18s ease-out toast-in;position:absolute;top:96px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-6px)}}.toast.success{color:#c6f5d6;border-color:#7fe0a08c}.toast.warning{color:#ead9ff;background:#281446eb;border-color:#c49bff99}.ghost-label{border:1px solid var(--line-strong);background:var(--glass-strong);color:var(--text);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow);border-radius:3px;padding:4px 10px;font-size:12.5px;font-weight:600;display:none;position:absolute;top:0;left:0}.ghost-label.illegal{color:#ffc1b8;border-color:#ff7b6ba6}.float-text{pointer-events:none;text-shadow:0 1px #000,0 0 6px #000c;z-index:3;font-size:15px;font-weight:800;animation:.9s ease-out forwards float-up;position:absolute;transform:translate(-50%,-50%)}.float-text.gold{color:var(--gold)}.float-text.flux{color:var(--flux);font-size:14px}.float-text.leak{color:#ff5a4a;font-size:22px}.float-text.reaction{font-family:var(--font-display);letter-spacing:.04em;text-shadow:0 2px #000,0 0 12px #000000e6;font-size:19px;animation-duration:1.3s}@keyframes float-up{0%{opacity:1;margin-top:0}to{opacity:0;margin-top:-36px}}.board-host:after{content:"";pointer-events:none;position:absolute;inset:0}.board-host.leak-flash:after{animation:.5s ease-out leak-flash}@keyframes leak-flash{0%{box-shadow:inset 0 0 120px 20px #e0453a80}to{box-shadow:inset 0 0 #e0453a00}}.overlay{z-index:8;background:radial-gradient(circle at 50% 40%,#0c090673,#030408c7);place-items:center;animation:.2s ease-out fade-in;display:grid;position:absolute;inset:0}@keyframes fade-in{0%{opacity:0}}.overlay.paused{cursor:pointer}.paused-label{font-family:var(--font-display);letter-spacing:.32em;color:var(--text);text-shadow:0 0 24px #e2bd7273;font-size:42px}.results{text-align:center;width:min(560px,100% - 32px);padding:22px 28px 24px;animation:.5s cubic-bezier(.2,.9,.3,1.2) both results-in;position:relative}.results.victory{background:radial-gradient(ellipse at 50% 0%, #f3c96929, transparent 60%), var(--glass-gradient);border-color:#f3c96980}.results.defeat{background:radial-gradient(ellipse at 50% 0%, #ff5f571f, transparent 60%), var(--glass-gradient);border-color:#ff786959}.results-crest{width:96px;height:64px;margin:0 auto 2px;animation:.7s ease-out .15s both crest-in;display:block}.results.victory .results-crest{color:var(--gold);filter:drop-shadow(0 0 14px #f3c96980)}.results.defeat .results-crest{color:#ff8f80;filter:drop-shadow(0 0 12px #ff5f5759)}@keyframes results-in{0%{opacity:0;transform:translateY(18px)scale(.96)}}@keyframes crest-in{0%{opacity:0;transform:scale(.6)rotate(-8deg)}}.results h2{font-family:var(--font-display);letter-spacing:.14em;margin:0;font-size:40px}.results.victory h2{color:var(--gold);text-shadow:0 0 28px #f3c96973}.results.defeat h2{color:#ff8f80;text-shadow:0 0 28px #ff5f5759}.results-sub{color:var(--muted);margin:6px 0 16px}.results-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 14px;display:grid}.results-grid div{border:1px solid var(--line);background:#0003;border-radius:4px;padding:8px 4px}.results-grid dt{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-size:10px;font-weight:700}.results-grid dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:20px;font-weight:800}.results-chart{border:1px solid var(--line);background:#0003;border-radius:4px;margin:0 0 12px;padding:8px 10px 6px}.results-chart svg{width:100%;height:74px;display:block;overflow:visible}.results-chart path{fill:none;stroke-width:2.2px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.results-chart path.you{stroke:var(--gold);filter:drop-shadow(0 0 4px #f3c96980)}.results-chart path.rival{stroke:#b58cff;opacity:.85}.results-chart line.grid{stroke:#ffffff12;stroke-width:1px;vector-effect:non-scaling-stroke}.results-chart figcaption{align-items:center;gap:12px;margin-top:4px;font-size:11px;display:flex}.results-chart figcaption .muted{margin-left:auto}.results-chart .key:before{content:"";vertical-align:middle;background:currentColor;border-radius:2px;width:10px;height:3px;margin-right:5px;display:inline-block}.results-chart .key.you{color:var(--gold)}.results-damage{gap:5px;margin:4px 0 12px;display:grid}.damage-row{text-align:left;grid-template-columns:70px 1fr 40px;align-items:center;gap:8px;font-size:12px;display:grid}.damage-bar{background:#ffffff12;border-radius:3px;height:7px;overflow:hidden}.damage-bar span{background:linear-gradient(90deg, var(--gold-deep), var(--gold));height:100%;display:block}.results-insight{color:#d9cfbb;margin:6px 0;font-size:13px;line-height:1.45}.results-actions{justify-content:center;gap:10px;margin-top:12px;display:flex}.relic-overlay{background:radial-gradient(circle at 50% 40%,#1410248c,#030408d1)}.relic-panel{text-align:center;width:min(860px,100% - 32px);padding:22px 24px}.relic-panel h2{font-family:var(--font-display);letter-spacing:.12em;color:var(--gold);margin:0;font-size:28px}.relic-cards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:16px 0 10px;display:grid}.relic-card{border:1px solid var(--line-strong);text-align:center;cursor:pointer;box-shadow:var(--shadow), var(--inner);background:radial-gradient(circle at 50% 0,#f3c96929,#0000 60%),linear-gradient(#1d2336,#0e121c);border-radius:4px;flex-direction:column;align-items:center;gap:6px;padding:18px 14px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.relic-card:hover,.relic-card:focus-visible{border-color:var(--gold);outline:none;transform:translateY(-4px);box-shadow:0 18px 40px #0000008c,0 0 24px #f3c96938}.relic-card.rarity-rare{background:radial-gradient(circle at 50% 0,#e2bd7233,#0000 60%),linear-gradient(#1b2440,#0d121e)}.relic-icon svg{filter:drop-shadow(0 4px 10px #0009);width:58px;height:58px;display:block}.relic-name{font-family:var(--font-display);color:var(--text);font-size:17px;font-weight:700}.relic-rarity{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:800}.rarity-rare .relic-rarity{color:var(--accent)}.relic-desc{color:#d9cfbb;font-size:12.5px;line-height:1.45}.relic-foot{margin:4px 0 0;font-size:11.5px}.relic-bar{gap:4px;margin-right:4px;display:flex}.relic-chip{background:var(--glass);border:1px solid #f3c96973;border-radius:4px;place-items:center;width:30px;height:30px;display:grid}.relic-chip svg{width:21px;height:21px}.boss-bar{width:min(460px,60vw);box-shadow:var(--shadow), 0 0 22px #ff78282e;-webkit-backdrop-filter:blur(10px);background:#1e0e08d1;border:1px solid #ff9a3c73;border-radius:4px;padding:5px 12px 7px}.boss-name{font-family:var(--font-display);letter-spacing:.12em;color:#ffbf86;justify-content:space-between;gap:8px;font-size:13px;font-weight:700;display:flex}.boss-shield{font-family:var(--font-ui);letter-spacing:0;color:var(--gold);font-size:11px;font-weight:700}.boss-meter{background:#00000080;border-radius:3px;height:9px;margin-top:4px;overflow:hidden}.boss-meter span{background:linear-gradient(90deg,#c8341f,#ff8a3c);height:100%;transition:width .2s linear;display:block}.boss-bar.shielded .boss-meter span{background:linear-gradient(90deg,#c8741f,#ffd36b)}.tutorial{z-index:5;border-color:#f3c96959;width:310px;padding:12px 14px 14px;font-size:13px;line-height:1.5;position:absolute;top:110px;left:12px}.tutorial p{color:#d9cfbb;margin:4px 0 10px}.tutorial-title{font-family:var(--font-display);color:var(--gold);font-size:16px;display:block}@keyframes glow-pulse{0%,to{box-shadow:0 0 0 1px var(--gold), 0 0 6px #f3c96966}50%{box-shadow:0 0 0 2px var(--gold), 0 0 20px #f3c969cc}}.cmd.glow,.btn.glow{animation:1.2s ease-in-out infinite glow-pulse}.duel-column{scrollbar-width:thin;z-index:4;flex-direction:column;gap:8px;width:238px;max-height:calc(100% - 250px);display:flex;position:absolute;top:64px;right:12px;overflow-y:auto}.duel-card{padding:10px 11px 11px}.duel-card .panel-title{margin-bottom:7px}.rival-state{letter-spacing:0;text-transform:none;color:var(--muted);font-size:10.5px;font-weight:600}.rival-keep{font-variant-numeric:tabular-nums;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-bottom:7px;font-size:12px;display:grid}.rival-keep .keep-meter{height:5px;margin:0}.rival-keep.danger strong{color:var(--illegal)}.rival-keep.danger .keep-meter span{background:linear-gradient(90deg,#ff4f46,#ff9c5a)}.minimap{image-rendering:pixelated;border:1px solid #c49bff59;border-radius:3px;margin:0 auto;display:block}.rival-caption{color:var(--dim);text-align:center;margin:5px 0 0;font-size:10.5px}.rival-stats{font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:6px;font-size:11.5px;display:flex}.flux-chip{color:#e7d6ff;letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums;background:#361c5c99;border:1px solid #c49bff80;border-radius:2px;padding:1px 8px;font-size:11px}.send-grid{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.send-btn{cursor:pointer;box-shadow:var(--inner);background:radial-gradient(circle at 50% 25%,#2d2148,#140f22 80%);border:1px solid #c49bff47;border-radius:4px;flex-direction:column;align-items:center;gap:1px;padding:6px 2px 5px;transition:transform .1s,border-color .1s;display:flex;position:relative}.send-btn:hover{border-color:var(--flux);box-shadow:var(--inner), 0 0 12px #c49bff59;transform:translateY(-1px)}.send-btn.dim{opacity:.42;filter:grayscale(.6)}.send-icon svg{width:30px;height:30px;display:block}.send-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10.5px;font-weight:700;overflow:hidden}.send-meta{font-variant-numeric:tabular-nums;gap:4px;font-size:10.5px;font-weight:700;display:flex}.send-cost{color:var(--flux)}.send-yield{color:var(--legal)}.send-key{color:var(--dim);font-size:9px;font-weight:700;position:absolute;top:2px;left:3px}.send-queue{border-top:1px solid var(--line);min-height:36px;margin-top:8px;padding-top:7px;font-size:11.5px}.send-queue-label{color:#e7d6ff;margin-bottom:4px;font-weight:700;display:block}.send-chips{flex-wrap:wrap;gap:3px;display:flex}.send-chip{cursor:pointer;background:0 0;border:1px solid #c49bff59;border-radius:50%;padding:0;line-height:0}.send-chip svg{width:22px;height:22px}.send-chip:hover:not(:disabled){border-color:var(--illegal);box-shadow:0 0 6px #ff7b6b99}.send-chip:disabled{cursor:default}.send-lock{color:var(--muted);text-align:right;margin-top:6px;font-size:11px}.send-lock.soon{color:var(--gold);font-weight:700}.menu{background:radial-gradient(at 50% 110%,#f3c9691f,#0000 55%),radial-gradient(at 15% 0,#aa78372e,#0000 50%),radial-gradient(at 85% 10%,#8c5ad229,#0000 45%),#05070c;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.menu-backdrop{position:fixed;inset:0}.menu-backdrop:after{content:"";pointer-events:none;background:radial-gradient(at 50% 45%,#0907051a,#090705b8 80%),linear-gradient(#09070580,#09070514 38%,#090705d9);position:absolute;inset:0}.menu-inner{text-align:center;z-index:1;width:min(1040px,100% - 32px);padding:28px 0;position:relative}.menu-title{font-family:var(--font-display);letter-spacing:.22em;background:linear-gradient(#fff4d6 0%,#f3c969 55%,#b07d2c 100%);color:#0000;filter:drop-shadow(0 6px 22px #f3c96940);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(46px,7vw,84px);font-weight:700}.menu-sub{color:#d6ccb8;text-shadow:0 1px 2px #000000e6,0 0 14px #000c;letter-spacing:.08em;margin:6px 0 26px;font-size:15px}.menu-modes{text-align:left;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.mode-card{text-align:left;border:1px solid var(--line-strong);min-height:190px;color:var(--text);cursor:pointer;box-shadow:var(--shadow), var(--inner);-webkit-backdrop-filter:blur(12px);background:radial-gradient(circle at 0 0,#e2bd7224,#0000 55%),linear-gradient(#2c241ae0,#0c0f19eb);border-radius:4px;flex-direction:column;align-items:flex-start;gap:6px;padding:20px 18px 18px;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.mode-card:before{content:"";background:linear-gradient(180deg, var(--gold), transparent);opacity:.8;width:3px;position:absolute;inset:0 auto 0 0}.mode-card:hover,.mode-card:focus-visible{border-color:var(--gold);outline:none;transform:translateY(-4px);box-shadow:0 22px 44px #0000008c,0 0 26px #f3c96929}.mode-name{font-family:var(--font-display);letter-spacing:.04em;font-size:22px;font-weight:700}.mode-tagline{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-size:10.5px;font-weight:800}.mode-desc{color:#d1c6b1;margin-top:4px;font-size:13px;line-height:1.5}.mode-play{color:var(--accent-strong);letter-spacing:.06em;margin-top:auto;padding-top:10px;font-size:12px;font-weight:700}.menu-foot{margin-top:28px;font-size:12px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.cmd.glow,.btn.glow{box-shadow:0 0 0 2px var(--gold);animation:none}}@media (width<=900px){.own-minimap{display:none}.duel-column{width:200px}.hud-top{grid-template-columns:1fr;justify-items:center}}.creature-portrait{object-fit:cover;width:100%;height:100%;display:block}.creature-portrait.initial{font-family:var(--font-display);color:#ffb19f;place-items:center;font-weight:700;display:grid}.wave-roster{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);background:#0a080699;border-radius:4px;gap:5px;padding:4px 6px;display:flex}.roster-entry{border:1px solid var(--line-strong);background:radial-gradient(circle at 50% 30%,#3b2f21,#120e0a);border-radius:4px;width:40px;height:40px;display:block;position:relative;overflow:hidden}.roster-entry .creature-portrait.initial{font-size:18px}.roster-entry b{color:#fff;background:#000000a6;border-radius:3px;padding:0 3px;font-size:10px;font-weight:800;position:absolute;bottom:1px;right:2px}.roster-entry.send{background:radial-gradient(circle at 50% 30%,#3a2760,#140f22);border-color:#c49bffb3}.roster-entry.boss{border-color:#ff9a3ccc;box-shadow:0 0 10px #ff782859}.codex-entry.with-portrait{grid-template-columns:46px 1fr;column-gap:10px}.codex-entry.with-portrait>:not(.codex-portrait){grid-column:2}.codex-portrait{border:1px solid var(--line-strong);background:radial-gradient(circle at 50% 30%,#3b2f21,#120e0a);border-radius:4px;grid-row:1/span 3;width:46px;height:46px;overflow:hidden}.codex-portrait .creature-portrait.initial{font-size:20px}.banner{pointer-events:none;z-index:6;flex-direction:column;align-items:center;gap:2px;animation:3.4s ease-out forwards banner;display:flex;position:absolute;top:26%;left:50%;transform:translate(-50%)}.banner-sub{letter-spacing:.3em;text-transform:uppercase;color:var(--accent-strong);text-shadow:0 2px 8px #000000e6;font-size:12px;font-weight:800}.banner-title{font-family:var(--font-display);letter-spacing:.08em;color:#fff6de;text-shadow:0 3px #0009,0 0 30px #f3c96973;white-space:nowrap;font-size:clamp(30px,4.2vw,54px);font-weight:700}.banner.boss .banner-title{color:#ffd0a8;text-shadow:0 3px #0009,0 0 36px #ff6e28bf}.banner.boss .banner-sub{color:#ffb36b}@keyframes banner{0%{opacity:0;transform:translate(-50%,14px)scale(.96)}12%{opacity:1;transform:translate(-50%)scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-10px)}}.map-picker{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.map-picker button{border:1px solid var(--line-strong);color:var(--muted);cursor:pointer;background:#0000004d;border-radius:2px;padding:3px 8px;font-size:11px;font-weight:700}.map-picker button.on{border-color:var(--gold);color:var(--gold);background:#f3c96929}.pause-menu{cursor:default;flex-direction:column;gap:8px;width:260px;padding:20px 22px 22px;display:flex}.pause-menu .paused-label{text-align:center;margin:0 0 8px;font-size:26px}.pause-menu .btn{width:100%}.gate .gate-inner{flex-direction:column;align-items:center;width:min(560px,100% - 32px);display:flex}.gate .menu-title{letter-spacing:.16em;font-size:clamp(30px,10vw,72px)}.gate .menu-sub{margin-bottom:22px}.gate-crown{filter:drop-shadow(0 6px 18px #f3c96959);width:76px;height:76px;margin-bottom:10px}.gate-crown.small{width:52px;height:52px;margin:0 auto 6px}.gate-card{text-align:center;flex-direction:column;align-items:center;gap:10px;width:100%;padding:20px 22px 22px;display:flex}.gate-lead{font-family:var(--font-display);letter-spacing:.04em;color:var(--accent-strong);margin:0;font-size:17px}.gate-text{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.gate-card .btn{margin-top:6px}.gate-continue{color:var(--dim);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:18px;padding:6px 10px;font-size:13px;text-decoration:underline}.gate-foot{margin-top:14px;font-size:12px}.board-failed{place-items:center;padding:16px;display:grid}.board-failed .gate-card{width:min(440px,100%)}.gate-overlay{z-index:40;background:#05070cf0;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.gate-overlay .gate-card{width:min(380px,100%)}.feedback-overlay{z-index:25;position:fixed}.feedback{text-align:left;flex-direction:column;gap:12px;width:min(440px,100% - 32px);padding:18px 20px 14px;display:flex}.feedback .panel-title{font-family:var(--font-display);letter-spacing:.14em;color:var(--accent-strong);margin-bottom:0;font-size:15px}.feedback-lead{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.feedback-rating{align-items:center;gap:2px;font-size:12px;display:flex}.feedback-rating .muted{margin-right:8px}.feedback-rating button{color:var(--dim);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:22px;line-height:1;transition:color .12s,transform .12s}.feedback-rating button:hover{color:var(--accent);transform:scale(1.15)}.feedback-rating button.on{color:var(--gold);text-shadow:0 0 10px #f3c96973}.feedback-text{resize:vertical;border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;min-height:120px;color:var(--text);font:inherit;background:#08060499;padding:10px 12px;font-size:14px;line-height:1.45;box-shadow:inset 0 2px 6px #00000073}.feedback-text:focus{border-color:var(--accent);outline:none}.feedback-text::placeholder{color:var(--dim)}.feedback-error{color:var(--illegal);margin:0;font-size:13px}.feedback-actions{justify-content:flex-end;gap:8px;display:flex}.feedback-version{text-align:right;margin:0;font-size:11px}.map-picker button.difficulty.on{border-color:var(--accent);color:var(--accent-strong);background:#e2bd7229}@media (height<=820px){.minimap{width:auto;max-height:84px}.duel-card{padding:8px 9px 9px}.send-btn{padding:4px 2px 3px}.send-icon svg{width:24px;height:24px}.send-queue{min-height:0;margin-top:6px;padding-top:5px}.console{padding:8px}.command-card{grid-template-columns:repeat(4,50px);grid-auto-rows:50px;gap:5px}.own-minimap{max-height:112px}.unit-portrait{width:100px;height:100px}}@media (width<=1360px){.mode-badge{display:none}}.enemy-hover{color:#ffd9d2;white-space:nowrap;pointer-events:none;z-index:3;background:#0e0b08db;border:1px solid #ff8c7880;border-radius:3px;padding:2px 8px;font-size:11.5px;font-weight:700;display:none;position:absolute;top:0;left:0}.enemy-hover.send{color:#ead9ff;border-color:#c49bff99}.watch-btn{color:#e7d6ff;cursor:pointer;background:#361c5c73;border:1px solid #c49bff66;border-radius:3px;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:7px;padding:5px 8px;font-size:11.5px;font-weight:700;display:flex}.watch-btn:hover,.watch-btn.on{border-color:var(--flux);background:#542c8c99}.watching{color:#ead9ff;cursor:pointer;z-index:6;background:#281446e0;border:1px solid #c49bff99;border-radius:2px;padding:6px 16px;font-size:13px;font-weight:700;position:absolute;top:64px;left:50%;transform:translate(-50%);box-shadow:0 0 24px #c49bff4d}.app:has(.watching) .board-host:before{content:"";z-index:1;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 3px #c49bff8c,inset 0 0 80px #783cc840}.send-tooltip{z-index:9;width:290px;position:fixed;bottom:auto}.flux-cost{color:var(--flux)}.tip-warning{font-weight:700;color:#ffc1b8!important}.mode-emblem{width:50px;height:50px;color:var(--gold);background:radial-gradient(circle at 50% 35%,#f3c9692e,#0e0b0899 70%);border:1px solid #f3c96973;border-radius:50%;place-items:center;margin-bottom:8px;padding:9px;transition:transform .2s,box-shadow .2s;display:grid;box-shadow:inset 0 0 0 3px #0e0b0899,inset 0 0 0 4px #f3c9692e,0 0 18px #f3c9691f}.mode-emblem svg{width:100%;height:100%}.mode-card:hover .mode-emblem,.mode-card:focus-visible .mode-emblem{transform:rotate(-6deg)scale(1.05);box-shadow:inset 0 0 0 3px #0e0b0899,inset 0 0 0 4px #f3c96959,0 0 26px #f3c9694d}.mode-record{color:var(--muted);letter-spacing:.02em;margin-top:6px;font-size:11.5px}.won-mark{color:#8fe3a2;margin-left:4px;font-weight:800}.menu-links{justify-content:center;gap:10px;margin-top:22px;display:flex}.menu-links .hud-btn{height:36px;padding:0 14px}.map-preview{border:1px solid var(--line-strong);max-width:100%;height:auto;image-rendering:pixelated;shape-rendering:crispedges;border-radius:3px;margin-top:8px;display:block;box-shadow:inset 0 0 0 1px #0006}.hud-anvil{display:inline-flex}.hud-anvil svg{stroke-width:2.6px;width:18px;height:18px}@media (height<=700px){.duel-card .minimap,.rival-caption{display:none}.duel-column{gap:6px}}:root{--stone-grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.62  0 0 0 0 0.5  0 0 0 0 0.34  0 0 0 0.11 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--rivets:radial-gradient(circle at 5px 5px, #e9c26e 0 1.4px, #6b4b1c 1.6px 2.3px, transparent 2.6px), radial-gradient(circle at calc(100% - 5px) 5px, #e9c26e 0 1.4px, #6b4b1c 1.6px 2.3px, transparent 2.6px), radial-gradient(circle at 5px calc(100% - 5px), #e9c26e 0 1.4px, #6b4b1c 1.6px 2.3px, transparent 2.6px), radial-gradient(circle at calc(100% - 5px) calc(100% - 5px), #e9c26e 0 1.4px, #6b4b1c 1.6px 2.3px, transparent 2.6px);--frame:0 0 0 1px #000000d9, inset 0 0 0 1px #f3c96921, inset 0 1px 0 #ffe8b41a;--plate:linear-gradient(180deg, #342b20 0%, #1e1912 100%);--plate-hi:linear-gradient(180deg, #4c3c22 0%, #2b2013 100%);--bronze:#6e5430}.panel,.resource,.wave-status,.duel-card,.mode-card,.codex-drawer,.settings-drawer{border:1px solid var(--bronze);background:var(--rivets), var(--stone-grain), var(--glass-gradient);box-shadow:var(--frame), var(--shadow);-webkit-backdrop-filter:none;border-radius:3px}.panel-title{font-family:var(--font-display);letter-spacing:.14em;color:#e7c27a}.btn{color:#1d1205;font-family:var(--font-display);letter-spacing:.08em;text-shadow:0 1px #ffe8aa59;background:linear-gradient(#ecc56e 0%,#c08c33 50%,#8d611d 100%);border:1px solid #f0cf7a;border-radius:2px;font-weight:700;box-shadow:0 0 0 1px #241606,inset 0 1px #fff6d68c,inset 0 -2px #46280673,0 5px 14px #00000073}.btn.secondary{border-color:var(--bronze);background:var(--stone-grain), var(--plate);color:var(--text);text-shadow:none;box-shadow:0 0 0 1px #000,inset 0 1px #ffe8b41a,0 4px 10px #0006}.btn.secondary:hover{border-color:var(--gold);background:var(--stone-grain), var(--plate-hi)}.hud-btn{border:1px solid var(--bronze);background:var(--stone-grain), var(--plate);-webkit-backdrop-filter:none;border-radius:2px;box-shadow:0 0 0 1px #000c,inset 0 1px #ffe8b41a}.hud-btn:hover{border-color:var(--gold);background:var(--stone-grain), var(--plate-hi)}.chip,.flux-chip,.mode-badge,.send-chip,kbd{border-radius:2px}.chip{border:1px solid var(--bronze);background:var(--plate);color:#d8c9a8;letter-spacing:.04em;box-shadow:inset 0 1px #ffe8b414,0 0 0 1px #0000008c}kbd{border-color:var(--bronze);color:#f1d9a2;background:linear-gradient(#3a3022,#211a12);box-shadow:inset 0 -1px #0009}.map-picker{gap:4px}.map-picker button,.map-picker button.difficulty{border:1px solid var(--bronze);background:var(--plate);color:#bfae8c;letter-spacing:.08em;text-transform:uppercase;border-radius:2px;padding:4px 8px 3px;font-size:10px;font-weight:700;box-shadow:inset 0 1px #ffe8b414,0 0 0 1px #0009}.map-picker button:hover{color:var(--text);border-color:#a8834a}.map-picker button.on,.map-picker button.difficulty.on{border-color:var(--gold);background:var(--plate-hi);color:var(--gold);box-shadow:inset 0 0 10px #f3c96938,inset 0 1px #fff0c833,0 0 0 1px #000}.mode-card{border-color:var(--bronze)}.mode-card:before{display:none}.mode-card.featured{background:var(--rivets), var(--stone-grain), radial-gradient(circle at 50% 0%, #f3c96924, transparent 60%), var(--glass-gradient);border-color:#b48a42}.mode-card:hover,.mode-card:focus-visible{border-color:var(--gold);box-shadow:var(--frame), 0 18px 40px #0009, 0 0 22px #f3c96929}.mode-play{color:var(--gold);font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase}.mode-emblem{background:radial-gradient(circle at 50% 35%,#f3c96929,#0e0b08bf 70%);border-color:#a8834a}.map-preview{border:1px solid var(--bronze);border-radius:1px;box-shadow:0 0 0 1px #000}.console{border:1px solid var(--bronze);background:var(--rivets), var(--stone-grain), var(--glass-gradient);box-shadow:var(--frame), var(--shadow);-webkit-backdrop-filter:none;border-radius:3px;gap:14px}.own-minimap{border-color:var(--bronze);border-radius:2px;box-shadow:0 0 0 1px #000,inset 0 0 10px #0009}.unit-portrait{--portrait-glow:#4a3a26;border:1px solid var(--bronze);background:radial-gradient(ellipse at 50% 42%, var(--portrait-glow) 0%, #15100bf2 68%), #0c0907;border-radius:2px;flex:none;align-self:center;width:118px;height:118px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #000,0 3px 10px #00000080}.unit-portrait-stage,.unit-portrait-frame{position:absolute;inset:0}.unit-portrait-canvas{width:100%;height:100%;display:block}.unit-portrait-frame{pointer-events:none;background:var(--rivets);box-shadow:inset 0 0 22px #000c,inset 0 0 0 2px #0c0906e6,inset 0 0 0 3px #f3c96938}.unit-portrait.architect{--portrait-glow:#2c4566}.unit-portrait.creature{--portrait-glow:#4e2a1c}.unit-portrait.rival{--portrait-glow:#5e1d22}.unit-portrait.boss{--portrait-glow:#7a3210}.unit-portrait.ember{--portrait-glow:#6a2e12}.unit-portrait.tide{--portrait-glow:#1c4462}.unit-portrait.stone{--portrait-glow:#5a471c}.unit-portrait.flux{--portrait-glow:#3a2c4e}.info{border-left:1px solid #d6aa6029;border-right:1px solid #d6aa6029;align-self:stretch;padding:2px 16px;box-shadow:inset 1px 0 #00000080,inset -1px 0 #00000080}.info-head strong{color:#f1dcae}:root{--flux:#c4a6ee;--rival:#e36a55;--rival-soft:#f2b2a4;--rival-line:#d654428c;--rival-deep:linear-gradient(180deg, #4a1712 0%, #2a0d0a 100%);--strip-height:46px}.hud-top{height:var(--strip-height);border-bottom:1px solid var(--bronze);background:var(--stone-grain), linear-gradient(180deg, #2c241a 0%, #1a140e 100%);pointer-events:auto;align-items:start;padding:0 10px;box-shadow:0 1px #000000d9,inset 0 -1px #f3c96929,0 8px 20px #00000073}.resources{height:var(--strip-height);flex-wrap:nowrap;align-items:stretch;gap:0}.resource{background:0 0;border:none;border-right:1px solid #d6aa6029;border-radius:0;padding:0 16px 0 10px;box-shadow:1px 0 #0000008c}.resource:first-child{padding-left:4px}.resource-label{color:#9c8a68}.resource-value{font-size:16px}.hud-center{gap:4px}.wave-status{background:var(--rivets), var(--stone-grain), linear-gradient(180deg, #3a2f22 0%, #211a12 100%);border-top:none;border-radius:0 0 4px 4px;gap:0;min-width:380px;padding:0 12px 6px;box-shadow:0 0 0 1px #000000d9,inset 0 0 0 1px #f3c96924,0 10px 24px #00000080}.wave-line{height:var(--strip-height);box-shadow:none;background:0 0;border:none;border-radius:0;gap:12px;padding:0 0 0 4px}.wave-number{text-shadow:0 1px #000;font-size:17px}.wave-sep{background:var(--gold-deep);flex:none;width:7px;height:7px;transform:rotate(45deg);box-shadow:0 0 0 1px #000}.wave-detail{color:#e2d6bd}.wave-next,.wave-incoming{border-top:1px solid #d6aa602e;width:100%;box-shadow:inset 0 1px #00000080}.wave-next{flex-direction:column;align-items:center;gap:5px;padding-top:7px;display:flex}.wave-roster{background:0 0;border:none;padding:0}.roster-entry{border:1px solid var(--bronze);background:radial-gradient(circle at 50% 30%,#3b2f21,#120e0a);border-radius:2px;width:38px;height:38px;box-shadow:0 0 0 1px #000,inset 0 0 8px #0009}.roster-entry b{color:#f1dcae;background:#0a0704d1;border-radius:1px}.roster-entry.send{border-color:var(--rival-line);background:radial-gradient(circle at 50% 30%,#4e1b14,#170806)}.roster-entry.send:after,.rival-crest{content:"";background:var(--rival);clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%);width:8px;height:11px;display:inline-block;box-shadow:0 0 0 1px #000}.roster-entry.send:after{position:absolute;top:0;left:3px}.wave-preview{color:#bfb093;background:0 0;max-width:520px;padding:0 6px;font-size:12px;font-style:italic}.wave-incoming{color:var(--rival-soft);background:0 0;border-bottom:none;border-left:none;border-right:none;border-radius:0;justify-content:center;align-items:center;gap:7px;margin-top:6px;padding:6px 4px 0;font-size:12px;display:flex}.hud-actions{height:var(--strip-height);flex-wrap:nowrap;gap:4px}.mode-badge{box-shadow:none;color:#9c8a68;background:0 0;border:none;margin-right:8px;padding:0}.hud-btn{height:30px}.relic-chip{border-color:var(--bronze);background:var(--stone-grain), var(--plate);border-radius:2px;box-shadow:0 0 0 1px #000}.boss-bar{background:var(--stone-grain), linear-gradient(180deg, #3a1a10 0%, #1d0c07 100%);box-shadow:0 0 0 1px #000, 0 0 22px #ff782829, var(--shadow);border-color:#8a3b1c;border-radius:2px}.duel-column{top:calc(var(--strip-height) + 10px)}.toast{top:calc(var(--strip-height) + 52px)}.watching{top:calc(var(--strip-height) + 12px);left:12px;transform:none}.toast.warning,.watching{border-color:var(--rival-line);background:var(--stone-grain), var(--rival-deep);color:var(--rival-soft);box-shadow:0 0 0 1px #000,0 0 22px #d6544240}.app:has(.watching) .board-host:before{box-shadow:inset 0 0 0 3px #d654428c,inset 0 0 80px #961e1447}.watch-btn{border:1px solid var(--bronze);background:var(--stone-grain), var(--plate);color:var(--text);font-family:var(--font-display);letter-spacing:.06em;border-radius:2px;box-shadow:0 0 0 1px #000,inset 0 1px #ffe8b41a}.watch-btn:hover,.watch-btn.on{border-color:var(--rival);background:var(--stone-grain), var(--rival-deep);color:var(--rival-soft)}.send-chip-tag,.enemy-hover.send{border-color:var(--rival-line);color:var(--rival-soft)}.flux-chip{border:1px solid var(--bronze);background:var(--plate);color:var(--flux);box-shadow:0 0 0 1px #000}.send-btn{border:1px solid var(--bronze);background:var(--stone-grain), radial-gradient(circle at 50% 25%, #3a2f22, #15100b 80%);border-radius:2px;box-shadow:0 0 0 1px #000,inset 0 1px #ffe8b414}.send-btn:hover{border-color:var(--gold);box-shadow:0 0 0 1px #000,0 0 12px #f3c96938}.send-queue-label{color:var(--muted)}.send-chip,.minimap{border-color:var(--bronze)}.relic-card.rarity-legendary{background:radial-gradient(circle at 50% 0,#ff9a3c38,#0000 60%),linear-gradient(#2e1d10,#140c06)}.rarity-legendary .relic-rarity{color:#ffa04a}.menu{background:radial-gradient(at 50% 110%,#f3c9691f,#0000 55%),radial-gradient(at 15% 0,#aa78372e,#0000 50%),radial-gradient(at 85% 10%,#963c2824,#0000 45%),#05070c}@media (width<=900px){.hud-top{height:auto;padding-bottom:6px}}.wave-line{justify-content:center;padding:0 6px}.wave-next .btn.call-wave{margin-top:3px;padding:4px 18px;font-size:12px}.slam{--slam:#f3c969;--slam-glow:#f3c9698c;--slam-flash:#fff4d6d9;z-index:20;cursor:pointer;background:radial-gradient(#00000073,#000000d9 80%);place-items:center;animation:.25s ease-out both fade-in;display:grid;position:fixed;inset:0;overflow:hidden}.slam.defeat{--slam:#ff8f80;--slam-glow:#ff463280;--slam-flash:#ff5a3c99;background:radial-gradient(#28000059,#0a0000d1 80%)}.slam.draw{--slam:#e2d6bd;--slam-glow:#e2d6bd66;--slam-flash:#fffaf099}.slam-body{text-align:center;color:var(--slam);position:relative}.slam-body .results-crest{width:150px;height:100px;color:var(--slam);filter:drop-shadow(0 0 20px var(--slam-glow));animation:.6s cubic-bezier(.2,1.6,.4,1) .32s both slam-crest}.slam-title{font-family:var(--font-display);letter-spacing:.16em;color:var(--slam);text-shadow:0 0 40px var(--slam-glow), 0 4px 0 #0009, 0 10px 30px #000c;margin:0;font-size:clamp(56px,11vw,132px);font-weight:700;line-height:1;animation:.42s cubic-bezier(.55,0,.9,.4) both slam-drop}.slam.defeat .slam-title{background:linear-gradient(#ffc2b2 0%,#e2442e 50%,#7c160c 100%);color:#0000;filter:drop-shadow(0 0 24px var(--slam-glow)) drop-shadow(0 6px 0 #0009);text-shadow:none;-webkit-background-clip:text;background-clip:text}.slam.victory .slam-title{background:linear-gradient(#fff4cf 0%,#f3c969 45%,#b8862f 100%);color:#0000;filter:drop-shadow(0 0 26px var(--slam-glow)) drop-shadow(0 6px 0 #0000008c);text-shadow:none;-webkit-background-clip:text;background-clip:text}.slam-sub{color:#e9dcc0;text-shadow:0 2px 8px #000;margin:14px 0 0;font-size:16px;animation:.5s ease-out .7s both fade-in}.slam-flash{background:radial-gradient(circle at 50% 50%, var(--slam-flash), transparent 65%);opacity:0;pointer-events:none;animation:.7s ease-out .4s both slam-flash;position:absolute;inset:0}.slam-rays{opacity:0;pointer-events:none;background:repeating-conic-gradient(#f3c96921 0deg 6deg,#0000 6deg 18deg);width:140vmax;height:140vmax;margin:-70vmax 0 0 -70vmax;animation:.8s ease-out .4s both fade-in-to,30s linear infinite slam-spin;position:absolute;top:50%;left:50%;-webkit-mask-image:radial-gradient(circle,#000 0%,#0000 55%);mask-image:radial-gradient(circle,#000 0%,#0000 55%)}.slam.defeat .slam-rays,.slam.draw .slam-rays{display:none}.slam-ring{border:3px solid var(--slam);width:120px;height:120px;box-shadow:0 0 24px var(--slam-glow), inset 0 0 24px var(--slam-glow);opacity:0;pointer-events:none;border-radius:50%;margin:-60px 0 0 -60px;animation:.9s cubic-bezier(.1,.7,.3,1) .4s both slam-ring;position:absolute;top:50%;left:50%}.slam-ring.late{border-width:2px;animation-duration:1.2s;animation-delay:.52s}.slam-sparks{pointer-events:none;position:absolute;top:50%;left:50%}.slam-sparks i{background:linear-gradient(180deg, #fff, var(--slam));width:4px;height:14px;box-shadow:0 0 8px var(--slam-glow);opacity:0;transform:rotate(var(--angle)) translateY(0);animation:slam-spark .9s calc(.4s + var(--delay)) cubic-bezier(.1, .8, .3, 1) both;border-radius:2px;margin:-7px 0 0 -2px;position:absolute}.slam.defeat .slam-sparks i{background:radial-gradient(circle,#ffd0a0,#c8341f);border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px}.app.impact .board-host,.app.impact .hud-top,.app.impact .console{animation:.55s cubic-bezier(.36,.07,.19,.97) .4s both slam-shake}.app.impact .console{animation-name:slam-shake-console}@keyframes slam-drop{0%{opacity:0;filter:blur(6px);transform:translateY(-38vh)scale(2.6)}70%{opacity:1;filter:blur()}to{opacity:1;transform:translateY(0)scale(1)}}.slam.defeat .slam-title{animation-name:slam-drop-heavy;animation-duration:.5s}@keyframes slam-drop-heavy{0%{opacity:0;transform:translateY(-46vh)scale(1.4)rotate(-4deg)}75%{opacity:1;transform:translateY(0)scale(1)rotate(-4deg)}85%{transform:translateY(0)scale(1.03,.95)rotate(-2.5deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(-2deg)}}@keyframes slam-crest{0%{opacity:0;transform:scale(.3)}}@keyframes slam-flash{0%{opacity:0}8%{opacity:1}to{opacity:0}}@keyframes fade-in-to{to{opacity:1}}@keyframes slam-spin{to{transform:rotate(360deg)}}@keyframes slam-ring{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(9)}}@keyframes slam-spark{0%{opacity:1;transform:rotate(var(--angle)) translateY(0)}to{opacity:0;transform:rotate(var(--angle)) translateY(calc(var(--reach) * -1))}}@keyframes slam-shake{0%,to{transform:translate(0)}10%{transform:translate(-9px,7px)}25%{transform:translate(8px,-6px)}40%{transform:translate(-6px,4px)}55%{transform:translate(4px,-3px)}70%{transform:translate(-2px,2px)}}@keyframes slam-shake-console{0%,to{transform:translate(-50%)}10%{transform:translate(calc(-50% - 9px),7px)}25%{transform:translate(calc(8px - 50%),-6px)}40%{transform:translate(calc(-50% - 6px),4px)}55%{transform:translate(calc(4px - 50%),-3px)}70%{transform:translate(calc(-50% - 2px),2px)}}.results-chart path.rival{stroke:var(--rival)}.results-chart .key.rival{color:var(--rival)}.wave-status{z-index:2;position:relative}.toast{z-index:1;border:1px solid var(--bronze);background:var(--stone-grain), linear-gradient(180deg, #17120d 0%, #2a2219 100%);color:#e9dcc0;text-align:center;border-top:none;border-radius:0 0 4px 4px;max-width:min(520px,90vw);margin-top:-5px;padding:9px 18px 6px;font-size:12.5px;animation:.24s cubic-bezier(.2,.9,.3,1) both toast-slide;position:relative;top:auto;left:auto;transform:none;box-shadow:0 0 0 1px #000000d9,inset 0 6px 8px -4px #000c,0 8px 18px #00000073}.toast.success{border-color:var(--bronze);color:#f3dc9a}.toast.error{color:#ffc1b8;border-color:#7a3020}.toast.warning{border-color:var(--rival-line);background:var(--stone-grain), linear-gradient(180deg, #210a08 0%, #4a1712 100%);border-top:none;box-shadow:0 0 0 1px #000,inset 0 6px 8px -4px #000c,0 8px 18px #00000073}@keyframes toast-slide{0%{opacity:0;transform:translateY(-100%)}}.rival-persona{color:var(--rival-soft)}.rival-intent{color:#bfb093;margin:-2px 0 7px;font-size:11.5px;font-style:italic}.rival-intent.striking,.rival-intent.pressing{color:var(--rival-soft);font-style:normal;font-weight:700}.rival-intent.saving{color:var(--flux)}.map-picker[aria-label=Rival]{flex-wrap:nowrap;gap:3px}.map-picker button.difficulty{letter-spacing:.03em;padding:4px 5px 3px;font-size:9.5px}
