:root{--bg-0:#020711;--bg-1:#06111f;--panel:#07182be6;--line:#69c6ff38;--line-strong:#81dcff85;--text:#eefaff;--muted:#8eaec2;--cyan:#55d9ff;--cyan-soft:#a7efff;--blue:#2085ff;--green:#58f0b0;--gold:#ffd166;--red:#ff5e7a;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--shadow:0 24px 70px #0000006b, inset 0 1px 0 #ffffff0d;--font-ui:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box}html{color-scheme:dark;min-width:320px;min-height:100%}body{min-height:100dvh;color:var(--text);font-family:var(--font-ui);background:radial-gradient(circle at 15% 8%, #2085ff33, transparent 28rem), radial-gradient(circle at 85% 16%, #55d9ff1a, transparent 24rem), linear-gradient(155deg, var(--bg-0), var(--bg-1) 48%, #030a12);margin:0;overflow:hidden}body:before{content:"";pointer-events:none;opacity:.22;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:40px 40px;position:fixed;inset:0;mask-image:radial-gradient(circle,#000,#0000 88%)}button,input{font:inherit}button{color:inherit}canvas{max-width:100%;display:block}h1,h2,h3,p,dl,dd{margin:0}.app-shell{--board-viewport-height:calc(100dvh - 410px);z-index:1;flex-direction:column;gap:18px;width:min(1680px,100%);height:100dvh;margin:0 auto;padding:18px;display:flex;position:relative;overflow:hidden}.panel{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);backdrop-filter:blur(16px);background:linear-gradient(#0e2e4cc7,#040f1df0)}.topbar{flex:none;justify-content:space-between;align-items:center;gap:22px;padding:16px 18px;display:flex}.brand{align-items:center;gap:14px;min-width:0;display:flex}.brand h1{letter-spacing:.09em;text-transform:uppercase;font-size:clamp(1.3rem,2.4vw,2rem);line-height:1}.brand p{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-top:6px;font-size:.78rem}.brand-mark{background:radial-gradient(circle at 32% 26%,#e4fbff,#0000 22%),linear-gradient(145deg,#82ddff,#247fc9 48%,#0b3156 75%);border:1px solid #ffffff73;border-radius:16px;place-items:center;width:48px;height:48px;display:grid;transform:rotate(-5deg);box-shadow:0 0 24px #55d9ff2e,inset 3px 3px 7px #ffffff85,inset -5px -6px 10px #000f1f70}.brand-mark span{width:20px;height:20px;box-shadow:0 0 0 5px #55d9ff57, 0 0 18px var(--cyan);border:4px solid #04111d;border-radius:50%}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.game-status{border:1px solid var(--line);min-height:42px;color:var(--muted);background:#00081252;border-radius:999px;align-items:center;gap:8px;padding:0 13px;font-size:.8rem;display:inline-flex}.topbar-control{border:1px solid var(--line);background:#00081252;border-radius:999px;align-items:center;gap:9px;min-height:42px;padding:0 12px;display:inline-flex}.topbar-control label{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;font-weight:800}.select-control{min-width:104px;height:34px;color:var(--text);-webkit-appearance:none;appearance:none;background:linear-gradient(#11314feb,#06172af5);background-image:linear-gradient(180deg, #11314feb, #06172af5), linear-gradient(45deg, transparent 50%, var(--cyan-soft) 50%), linear-gradient(135deg, var(--cyan-soft) 50%, transparent 50%);background-position:0 0,calc(100% - 14px) 14px,calc(100% - 9px) 14px;background-repeat:no-repeat;background-size:100% 100%,6px 6px,6px 6px;border:1px solid #69c6ff38;border-radius:999px;padding:0 30px 0 12px;box-shadow:inset 0 1px #ffffff0f}.select-control:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.resource-cap-control .select-control{min-width:146px}.production-cooldown-control .select-control{min-width:144px}.ai-roster-control{gap:12px}.checkbox-chip-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.checkbox-chip{min-height:32px;color:var(--text);cursor:pointer;background:#081727d1;border:1px solid #69c6ff2e;border-radius:999px;align-items:center;gap:8px;padding:0 10px;transition:border-color .14s,background .14s,transform .14s;display:inline-flex;position:relative}.checkbox-chip:hover{border-color:#81dcff6b;transform:translateY(-1px)}.checkbox-chip input{width:14px;height:14px;accent-color:var(--cyan);margin:0}.checkbox-chip span{letter-spacing:.04em;text-transform:none;font-size:.75rem;font-weight:800}.checkbox-chip-green{box-shadow:inset 0 0 0 1px #58f0b014}.checkbox-chip-yellow{box-shadow:inset 0 0 0 1px #ffd16614}.checkbox-chip-green:has(input:checked){background:#0a2a20eb;border-color:#58f0b080}.checkbox-chip-yellow:has(input:checked){background:#2b220aeb;border-color:#ffd16680}.status-dot{background:var(--green);border-radius:50%;width:8px;height:8px;box-shadow:0 0 12px #58f0b0c7}.button{cursor:pointer;letter-spacing:.06em;text-transform:uppercase;border:0;border-radius:12px;min-height:42px;font-weight:900;transition:transform .14s,filter .14s,opacity .14s}.button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-2px)}.button:active:not(:disabled){transform:translateY(1px)}.button:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.button:disabled{cursor:not-allowed;opacity:.42}.button-primary{color:#03111d;background:linear-gradient(#b5efff,#4ebef6 36%,#1978da 68%,#0a428b);border:1px solid #ffffff80;padding:0 18px;box-shadow:0 10px 24px #1a79dc47,inset 0 2px #ffffffa6,inset 0 -3px 8px #00000040}.button-secondary,.button-icon{border:1px solid var(--line);background:linear-gradient(#1c4b74e6,#071b33f2);padding:0 15px;box-shadow:inset 0 1px #ffffff14}.button-icon{width:44px;padding:0}.game-layout{flex:auto;grid-template-columns:minmax(0,1fr) minmax(300px,360px);align-items:stretch;gap:20px;min-height:0;display:grid;overflow:hidden}.board-panel{grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;overflow:hidden}.board-toolbar,.board-footer,.panel-heading,.battle-header{justify-content:space-between;align-items:center;gap:18px;display:flex}.board-toolbar{border-bottom:1px solid var(--line);padding:18px 20px}.eyebrow{color:var(--cyan);letter-spacing:.18em;text-transform:uppercase;margin-bottom:5px;font-size:.68rem;font-weight:900;display:block}h2{letter-spacing:.04em;font-size:1.05rem}.board-legend{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:14px;font-size:.75rem;display:flex}.board-legend span{align-items:center;gap:7px;display:inline-flex}.legend-shape,.unit-shape{filter:drop-shadow(0 0 7px);display:inline-block}.legend-shape{width:14px;height:14px}.attacker-shape{color:var(--cyan);clip-path:polygon(50% 0,100% 100%,0 100%);background:currentColor}.defender-shape{color:var(--cyan-soft);background:#a7efff24;border:3px solid;border-radius:2px}.spawner-shape{color:var(--green);background:radial-gradient(circle,currentColor 0 28%,#0000 32%);border:3px solid;border-radius:50%}.board-frame{background:radial-gradient(circle,#1c5a892e,#0000 58%),linear-gradient(#010810b3,#010b15f2);outline:none;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:14px;width:100%;min-width:0;height:100%;min-height:0;padding:14px;display:grid;position:relative;overflow:hidden}.board-viewport{background:linear-gradient(#020b14fa,#020b14eb),radial-gradient(circle,#1c5a892e,#0000 58%);border-radius:18px;min-width:0;height:100%;min-height:0;position:relative;overflow:hidden}.board-frame:focus-visible{box-shadow:0 0 0 1px #ffffff24,0 0 0 4px #55d9ff4d,inset 0 0 0 1px #55d9ff38}#gameCanvas{touch-action:none;cursor:default;width:100%;height:100%}#gameCanvas.is-targeting{cursor:crosshair}.board-overlay{pointer-events:none;background:#01081057;place-items:center;transition:opacity .18s,visibility .18s;display:grid;position:absolute;inset:0}.board-overlay.is-hidden{opacity:0;visibility:hidden}.board-nav{backdrop-filter:blur(10px);background:#020c168f;border:1px solid #69c6ff3d;border-radius:16px;align-content:start;align-self:end;justify-items:center;gap:8px;width:120px;padding:10px;display:grid;box-shadow:0 10px 30px #00000059,inset 0 1px #ffffff0d}.board-nav-label,.board-nav-copy{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.63rem}.board-nav-copy{text-align:center;letter-spacing:.03em;text-transform:none;max-width:11ch;line-height:1.35}.board-nav-pad{grid-template-columns:repeat(3,36px);grid-template-areas:".up.""left down right";gap:6px;display:grid}.board-nav-button{width:36px;height:36px;color:var(--cyan-soft);cursor:pointer;background:#0b2238c7;border:1px solid #69c6ff38;border-radius:10px;place-items:center;padding:0;transition:transform .14s,filter .14s,border-color .14s;display:grid;box-shadow:inset 0 1px #ffffff14,0 6px 14px #0003}.board-nav-button-small{width:34px;height:34px;font-size:1rem}.board-nav-button:hover,.board-nav-button:focus-visible{filter:brightness(1.1);border-color:#55d9ff8f}.board-nav-button:hover{transform:translateY(-1px)}.board-nav-button:focus-visible{outline-offset:2px;outline:2px solid #55d9ffcc}#boardNavUp{grid-area:up}#boardNavLeft{grid-area:left}#boardNavDown{grid-area:down}#boardNavRight{grid-area:right}.board-zoom-row{grid-template-columns:repeat(3,34px);gap:6px;display:grid}.loading-card{border:1px solid var(--line-strong);border-radius:var(--radius-md);min-width:min(320px,100% - 40px);box-shadow:var(--shadow), 0 0 24px #55d9ff2e;text-align:center;background:#03111feb;justify-items:center;gap:9px;padding:24px;display:grid}.loading-card span{color:var(--muted);font-size:.8rem}.loading-core{border:4px solid #55d9ff33;border-top-color:var(--cyan);border-radius:50%;width:46px;height:46px;animation:1.2s linear infinite spin}.board-footer{border-top:1px solid var(--line);padding:14px 18px}.selection-summary{display:grid}.selection-summary strong{font-size:.9rem}.board-footer p{max-width:55ch;color:var(--muted);text-align:right;font-size:.82rem;line-height:1.5}.sidebar{scrollbar-width:thin;scrollbar-color:#55d9ff66 #0000002e;align-content:start;gap:12px;min-height:0;padding-right:4px;display:grid;overflow:hidden auto}.sidebar-panel{padding:16px}.resource-value{color:var(--cyan);text-shadow:0 0 22px #55d9ff4d;font-size:2.05rem;font-weight:1000;line-height:1}.resource-rate{color:var(--muted);justify-content:space-between;margin-top:12px;font-size:.76rem;display:flex}.resource-rate strong{color:var(--green)}.meter{background:#00000057;border:1px solid #ffffff0f;border-radius:999px;height:9px;margin-top:10px;overflow:hidden}.meter-fill{border-radius:inherit;background:linear-gradient(90deg, var(--blue), var(--cyan), var(--green));height:100%;transition:width .22s;box-shadow:0 0 14px #55d9ff6b}.resource-stats{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px;display:grid}.resource-stats>div,.inspector-grid>div{border-radius:var(--radius-sm);background:#00081240;border:1px solid #69c6ff1f;padding:9px}.resource-stats span,.inspector-grid dt{color:var(--muted);font-size:.66rem;display:block}.resource-stats strong,.inspector-grid dd{margin-top:4px;font-weight:800;display:block}.production-list{gap:8px;margin-top:12px;display:grid}.production-status{margin-top:12px}.production-rate{margin-top:0}.production-rate strong.is-cooling-down{color:var(--gold)}.meter-compact{height:8px;margin-top:8px}.meter-fill-cooldown{background:linear-gradient(90deg,#0a428b,#4ebef6,#b5efff)}.production-card{border-radius:var(--radius-md);background:#00081240;border:1px solid #69c6ff24;grid-template-columns:46px minmax(0,1fr);gap:10px;padding:12px;display:grid}.production-card:hover{background:#0a34534d;border-color:#55d9ff5c}.unit-preview{background:#00070e66;border:1px solid #ffffff12;border-radius:12px;place-items:center;width:46px;height:46px;display:grid}.unit-shape{width:24px;height:24px}.production-title-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.production-title-row h3{font-size:.86rem}.production-title-row span{color:var(--cyan);font-size:.62rem;font-weight:800}.production-copy p{color:var(--muted);margin-top:4px;font-size:.7rem;line-height:1.4}.production-controls{grid-column:1/-1;grid-template-columns:90px 1fr;gap:8px;display:grid}.production-controls.one-column{grid-template-columns:1fr}.empty-state{color:var(--muted);text-align:center;justify-items:center;gap:7px;margin-top:14px;padding:20px 12px;display:grid}.empty-state strong{color:var(--text)}.empty-state p{max-width:34ch;font-size:.76rem;line-height:1.5}.empty-state-icon{color:var(--cyan);font-size:2rem}.inspector-content{margin-top:14px}.inspector-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.inspector-grid dd{font-size:.82rem}.order-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.event-list{scrollbar-width:thin;scrollbar-color:#55d9ff66 #0003;gap:8px;max-height:168px;margin:12px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.event-list li{color:var(--muted);background:#0008123d;border-left:2px solid #55d9ff6b;grid-template-columns:48px 1fr;align-items:baseline;gap:10px;padding:8px 10px;font-size:.73rem;line-height:1.4;display:grid}.event-list time{color:var(--cyan);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.battle-drawer{z-index:30;opacity:0;pointer-events:none;width:min(980px,100% - 32px);transition:transform .22s,opacity .22s;position:fixed;bottom:18px;left:50%;transform:translate(-50%,calc(100% + 40px))}.battle-drawer.is-open{opacity:1;pointer-events:auto;transform:translate(-50%)}.battle-drawer-inner{border-color:var(--line-strong);padding:18px;box-shadow:0 28px 90px #000000ad,0 0 50px #55d9ff29}.interactive-battle{gap:14px;width:100%;display:grid}.enemy-roll-summary{color:#ffb6c2;border-color:#ff5e7a3d}.current-roll-result{color:var(--cyan-soft);font-weight:800}.enemy-dice-reveal{gap:8px;display:grid}.enemy-dice-label,.enemy-dice-result{text-align:center;color:#ffb6c2}.enemy-dice-label{letter-spacing:.12em;text-transform:uppercase;font-size:.76rem;font-weight:800}.enemy-dice-result{font-weight:700}.battle-resolution-log{background:linear-gradient(#0b2139d6,#041222e6);border:1px solid #69c6ff2e;border-radius:14px;gap:8px;padding:12px 14px;display:grid}.battle-resolution-log summary{cursor:pointer;color:var(--cyan-soft);font-weight:800}.battle-resolution-log[open] summary{margin-bottom:.55rem}.battle-resolution-line{color:var(--muted);line-height:1.45}.enemy-roll-summary,.current-roll-result{text-align:center;background:linear-gradient(#091f37d1,#020d1ae6);border-radius:13px;place-items:center;min-height:44px;padding:10px 16px;display:grid;box-shadow:inset 0 1px #ffffff0a,inset 0 0 18px #55d9ff08}.battle-roll-controls .button{min-height:48px}@media (width<=560px){.battle-roll-controls{grid-template-columns:1fr}}.battle-dice-row{--battle-die-size:clamp(54px, 7vw, 76px);perspective:1100px;flex-wrap:wrap;place-content:center;align-items:center;gap:clamp(10px,1.3vw,16px);width:100%;padding:8px 4px 4px;display:flex}.battle-die{flex:0 0 var(--battle-die-size);width:var(--battle-die-size);min-width:var(--battle-die-size);max-width:var(--battle-die-size);height:var(--battle-die-size);min-height:var(--battle-die-size);max-height:var(--battle-die-size);aspect-ratio:1;box-sizing:border-box;padding:calc(var(--battle-die-size) * .12);-webkit-appearance:none;appearance:none;cursor:pointer;transform-style:preserve-3d;background:radial-gradient(circle at 28% 20%,#fffffff5,#0000 23%),linear-gradient(145deg,#e7f6ff 0%,#8bbbdc 36%,#3f779e 72%,#173854 100%);border:1px solid #ffffffb8;border-radius:19%;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);place-items:center;transition:transform .18s,box-shadow .18s,filter .18s;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 32px #0000007a,0 0 22px #47bcff2e,inset 5px 5px 12px #ffffffb8,inset -8px -8px 16px #00142a70}.battle-dice-row-enemy{--battle-die-size:clamp(42px, 5vw, 54px)}.battle-die-enemy{cursor:default;background:radial-gradient(circle at 28% 20%,#ffffffe0,#0000 24%),linear-gradient(145deg,#ffdfe6 0%,#f08ba1 34%,#982e4f 72%,#4e0f20 100%);box-shadow:0 14px 24px #0000006b,0 0 18px #ff5e7a3d,inset 4px 4px 10px #ffffff85,inset -7px -7px 14px #2c041061}.battle-die-compact{border-radius:18%}.battle-die-enemy .battle-die-pip{background:radial-gradient(circle at 35% 30%,#fff2f5 0 8%,#62192d 21%,#230611 66%,#090104 100%)}.battle-die:hover:not(:disabled){transform:translateY(-5px)rotateX(6deg)rotateY(-5deg);box-shadow:0 25px 38px #0000008c,0 0 30px #55d9ff52,inset 5px 5px 12px #ffffffb8,inset -8px -8px 16px #00142a70}.battle-die.is-held{filter:saturate(1.15)brightness(1.08);transform:translateY(-10px);box-shadow:0 0 0 3px #55d9ffd9,0 0 34px #55d9ffb8,0 24px 42px #0000008f,inset 5px 5px 12px #ffffffbf,inset -8px -8px 16px #00142a6b}.battle-die.is-rolling{pointer-events:none;animation:.65s cubic-bezier(.2,.85,.25,1) battle-die-tumble}.battle-die:disabled{opacity:1;cursor:default}.battle-die:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.battle-die-pip{z-index:2;opacity:0;background:radial-gradient(circle at 35% 30%,#c8f1ff 0 8%,#163f60 21%,#061421 66%,#01060b 100%);border-radius:50%;place-self:center;width:60%;min-width:10px;max-width:18px;height:60%;min-height:10px;max-height:18px;display:block;position:relative;transform:scale(.76);box-shadow:inset 1px 1px 2px #ffffff38,inset -1px -1px 2px #000000b8,0 1px 1px #ffffff2e}.battle-die-pip.is-visible{opacity:1;transform:scale(1)}.battle-die-question{z-index:2;color:#06213a;font-size:calc(var(--battle-die-size) * .5);text-shadow:0 1px #ffffff80,0 0 10px #55d9ff3d;pointer-events:none;place-items:center;font-weight:1000;line-height:1;display:grid;position:absolute;inset:0}@keyframes battle-die-tumble{0%{transform:translateY(0)rotateX(0)rotateY(0)rotate(0)scale(1)}20%{transform:translateY(-45px)rotateX(160deg)rotateY(110deg)rotate(35deg)scale(1.08)}52%{transform:translateY(10px)rotateX(380deg)rotateY(260deg)rotate(120deg)scale(.94)}78%{transform:translateY(-12px)rotateX(510deg)rotateY(420deg)rotate(170deg)scale(1.02)}to{transform:translateY(0)rotateX(720deg)rotateY(540deg)rotate(180deg)scale(1)}}@media (width<=560px){.battle-dice-row{--battle-die-size:clamp(48px, 15vw, 62px);gap:9px}}@media (width<=620px){.battle-dice-row{--battle-die-size:clamp(46px, 14vw, 58px);flex-wrap:wrap;gap:8px}}.battle-timer{color:var(--muted);text-align:right}.battle-timer strong{color:var(--gold);font-size:1.6rem;display:block}.battle-sides{grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-top:14px;display:grid}.battle-side{border:1px solid var(--line);border-radius:var(--radius-md);background:#00081259;padding:12px}.battle-side span{color:var(--muted);font-size:.72rem}.battle-side strong{color:var(--cyan);margin-top:4px;font-size:1.4rem;display:block}.battle-side.enemy{text-align:right;border-color:#ff5e7a47}.battle-side.enemy strong{color:var(--red)}.battle-versus{color:var(--muted);font-weight:1000}.dice-stage{border-radius:var(--radius-md);min-height:110px;color:var(--muted);background:#00081242;border:1px dashed #69c6ff3d;place-items:center;margin-top:14px;font-size:.8rem;display:grid}.toast-stack{z-index:40;pointer-events:none;gap:10px;display:grid;position:fixed;bottom:20px;right:20px}.toast{color:#e8f7ff;background:linear-gradient(#164c7deb,#082446f5);border:1px solid #69c6ff47;border-radius:14px;min-width:min(320px,100vw - 40px);max-width:min(420px,100vw - 40px);padding:12px 14px;font-weight:700;line-height:1.45;box-shadow:0 18px 34px #0000006b,inset 0 1px #ffffff14}.toast.is-success{border-color:#69c6ff57}.toast.is-danger{background:linear-gradient(#134372f0,#061d3bfa);border-color:#86d4ff57}.modal-backdrop{z-index:50;backdrop-filter:blur(14px);opacity:0;visibility:hidden;pointer-events:none;background:#00050cc7;place-items:center;padding:20px;transition:opacity .18s,visibility .18s;display:grid;position:fixed;inset:0}.modal-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto}.modal{border-color:var(--line-strong);width:min(480px,100%);padding:26px}.modal p{color:var(--muted);margin:10px 0 20px;line-height:1.6}[hidden]{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1120px){.game-layout{scrollbar-width:thin;scrollbar-color:#55d9ff66 #0000002e;grid-template-rows:auto;grid-template-columns:1fr;align-content:start;padding-right:4px;overflow:auto}.board-panel{display:block;overflow:visible}.board-toolbar,.board-footer{display:flex}.board-frame{margin-top:0}.sidebar{scrollbar-width:auto;grid-template-columns:repeat(2,minmax(0,1fr));padding-right:0;overflow:visible}.command-panel,.event-panel{grid-column:span 2}.board-frame{height:clamp(320px,46vh,460px)}}@media (width<=760px){body{overflow:hidden}.app-shell{padding:12px}.topbar{align-items:flex-start;padding:13px}.brand p,.game-status{display:none}.topbar-control{padding:0 10px}.select-control{min-width:92px}.resource-cap-control .select-control{min-width:132px}.production-cooldown-control .select-control{min-width:124px}.ai-roster-control{justify-content:space-between;width:100%}.topbar-actions{gap:7px}.button-secondary{padding:0 11px;font-size:.72rem}.sidebar{grid-template-columns:1fr}.command-panel,.event-panel{grid-column:auto}.board-toolbar{align-items:flex-start}.board-legend{max-width:170px}.board-footer{flex-direction:column;align-items:flex-start}.board-footer p{text-align:left}.resource-stats{grid-template-columns:1fr}}@media (width<=500px){.brand-mark{width:42px;height:42px}.brand h1{font-size:1.05rem}.board-toolbar{display:grid}.board-legend{justify-content:flex-start;max-width:none}.board-frame{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;gap:10px;height:clamp(260px,36vh,340px);padding:12px}.board-nav{grid-template-columns:auto 1fr auto;place-self:stretch center;align-items:center;gap:10px;width:100%;max-width:320px}.board-nav-label{justify-self:start}.board-nav-copy{text-align:right;max-width:none}.board-nav-pad,.board-zoom-row{justify-self:center}.production-controls,.order-actions,.inspector-grid,.battle-sides{grid-template-columns:1fr}.battle-versus{text-align:center}.battle-side.enemy{text-align:left}.topbar{flex-wrap:wrap}.topbar-actions{justify-content:flex-start;width:100%}.board-nav-pad{grid-template-columns:repeat(3,32px)}.board-nav-button,.board-nav-button-small{width:32px;height:32px}.board-zoom-row{grid-template-columns:repeat(3,32px)}}@media (width<=560px){.topbar{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.brand{width:100%}.topbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.topbar-control{grid-column:1/-1;justify-content:space-between}.checkbox-chip-row{justify-content:space-between;width:100%}.checkbox-chip{flex:1 1 0;justify-content:center}.select-control{width:132px}.resource-cap-control .select-control{width:152px}.production-cooldown-control .select-control{width:140px}.button-icon{display:none}}@keyframes spawnFlash{0%{opacity:0;transform:scale(.58)}28%{opacity:1;transform:scale(1.04)}to{opacity:0;transform:scale(1.42)}}@keyframes dockSlideIn{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.brand-copy{min-width:0}.brand-title-row{align-items:center;gap:12px;display:flex}.topbar-feed-toggle{min-height:34px;padding:0 14px;font-size:.72rem}.game-layout{min-height:0;display:block}.board-panel{--board-toolbar-height:126px;grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid;position:relative;overflow:hidden}.board-toolbar{height:var(--board-toolbar-height);min-height:var(--board-toolbar-height);max-height:var(--board-toolbar-height);grid-template-columns:auto minmax(280px,1fr) auto;align-items:center;gap:16px 24px;display:grid;overflow:hidden}.board-toolbar-title{align-content:start;gap:6px;min-width:0;display:grid}.toolbar-selection{text-align:left;align-content:center;justify-items:start;gap:4px;min-width:0;max-width:44ch;display:grid;overflow:hidden}.toolbar-selection strong{font-size:1rem;line-height:1.3}.toolbar-selection .selection-meta,.toolbar-selection .selection-hint{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.toolbar-selection .selection-meta{-webkit-line-clamp:1}.toolbar-selection .selection-hint{-webkit-line-clamp:2}.toolbar-selection.empty-state .selection-hint{color:var(--muted)}.board-legend{align-self:start;padding-top:2px}.board-frame{padding:16px;display:block;position:relative}.board-viewport{height:clamp(320px, var(--board-viewport-height), 620px);min-height:clamp(320px, var(--board-viewport-height), 620px);max-height:620px}.board-nav{z-index:16;align-content:center;width:140px;position:absolute;bottom:18px;right:18px}.floating-panel{z-index:14;position:absolute}.resource-panel{background:linear-gradient(#0d2d4aeb,#04101ff0);border-radius:22px;width:min(276px,100% - 168px);padding:12px 14px;bottom:18px;left:18px}.resource-panel .panel-heading{align-items:end}.resource-panel .resource-value{font-size:1.72rem}.resource-panel .resource-rate{margin-top:10px;font-size:.72rem}.resource-panel .resource-stats{gap:6px;margin-top:10px}.resource-panel .resource-stats>div{padding:8px}.resource-production-status{margin-top:10px}.action-dock{opacity:0;pointer-events:none;background:linear-gradient(#091c34f0,#030d19f5);gap:12px;width:min(236px,100% - 206px);padding:14px;transition:opacity .22s,transform .22s;display:grid;top:18px;right:170px;transform:translate(24px)scale(.98)}.action-dock.is-visible{opacity:1;pointer-events:auto;transform:translate(0)scale(1)}.action-dock-header{gap:4px;display:grid}.action-dock-header strong{font-size:.9rem;line-height:1.35}.action-group{gap:10px;animation:.22s dockSlideIn;display:grid}.action-group-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.context-action-wrap{position:relative}.context-action-wrap:after{content:attr(data-tooltip);width:220px;color:var(--text);opacity:0;pointer-events:none;background:#010c17f5;border:1px solid #69c6ff2e;border-radius:14px;padding:10px 12px;font-size:.72rem;line-height:1.45;transition:opacity .16s,transform .16s;position:absolute;top:50%;right:calc(100% + 12px);transform:translateY(-50%)translate(10px);box-shadow:0 16px 40px #0000006b}.context-action-wrap:hover:after,.context-action-wrap:focus-within:after{opacity:1;transform:translateY(-50%)translate(0)}.context-action-button{width:100%;min-height:54px;color:var(--text);background:linear-gradient(#133c65eb,#04172efa);border:1px solid #69c6ff38;justify-content:flex-start;align-items:center;gap:10px;padding:0 14px;display:flex;box-shadow:0 10px 26px #00000047,inset 0 1px #ffffff14}.context-action-plus{color:var(--cyan-soft);font-size:1.12rem}.context-action-button .unit-shape{width:22px;height:22px}.context-action-cost{letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900}.context-order-button{min-height:46px;padding:0 12px}.event-panel{opacity:0;pointer-events:none;background:linear-gradient(#092038f0,#020d1af5);width:min(340px,100% - 36px);max-height:min(52vh,430px);padding:16px;transition:opacity .2s,transform .2s;display:grid;top:18px;left:18px;transform:translateY(-12px)scale(.98)}.event-panel.is-open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.event-panel .event-list{max-height:min(40vh,330px)}.spawn-effect-layer{z-index:10;pointer-events:none;position:absolute;inset:0}.spawn-flash{border:2px solid var(--flash-color);box-shadow:0 0 0 2px #ffffff14 inset, 0 0 26px var(--flash-color);background:radial-gradient(circle, var(--flash-color) 0, transparent 62%);border-radius:18px;animation:.72s ease-out forwards spawnFlash;position:absolute}.selection-meta{color:var(--muted);font-size:.78rem;line-height:1.45}.selection-hint{color:var(--cyan-soft);font-size:.76rem;line-height:1.5}.sidebar,.sidebar-panel{display:none}@media (width<=980px){.app-shell{--board-viewport-height:calc(100dvh - 450px)}.board-panel{--board-toolbar-height:118px}.topbar{grid-template-columns:1fr;gap:14px;display:grid}.topbar-actions{justify-content:flex-start}.board-toolbar{grid-template-columns:minmax(0,170px) minmax(0,1fr) auto;align-items:start}.action-dock{width:min(224px,100% - 178px);right:154px}.board-legend{grid-column:auto;justify-content:flex-end;padding-top:0}}@media (width<=760px){.app-shell{--board-viewport-height:calc(100dvh - 500px)}.board-panel{--board-toolbar-height:144px}.app-shell{gap:12px;padding:12px}.topbar{padding:14px}.brand p{letter-spacing:.1em;font-size:.68rem;display:block}.game-status{grid-column:1/-1;display:inline-flex}.topbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.topbar-control{grid-column:1/-1;justify-content:space-between}.board-frame{padding:12px}.board-viewport{height:clamp(300px, var(--board-viewport-height), 520px);min-height:clamp(300px, var(--board-viewport-height), 520px);max-height:520px}.resource-panel,.event-panel{width:min(250px,100% - 140px);left:12px}.resource-panel{bottom:12px}.event-panel{top:12px}.action-dock{width:min(220px,100% - 24px);top:auto;bottom:126px;right:12px}.context-action-wrap:after{width:auto;inset:auto 0 calc(100% + 8px);transform:translateY(0)translate(0)}.board-nav{width:132px;bottom:12px;right:12px}.toolbar-selection{max-width:none}}@media (width<=560px){.app-shell{--board-viewport-height:calc(100dvh - 540px)}.board-panel{--board-toolbar-height:152px}.brand-title-row{justify-content:space-between;align-items:flex-start}.topbar-actions{grid-template-columns:1fr 1fr}.button-secondary,.button-icon{width:100%}.button-icon{display:none}.board-toolbar{grid-template-columns:1fr;align-items:start;padding:14px 16px}.board-legend{grid-column:auto;justify-content:flex-start}.board-viewport{height:clamp(280px, var(--board-viewport-height), 420px);min-height:clamp(280px, var(--board-viewport-height), 420px);max-height:420px}.resource-panel{width:min(232px,100% - 128px)}.resource-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.action-dock{width:auto;bottom:122px;left:12px;right:12px}.action-group-compact{grid-template-columns:1fr}.board-nav{width:124px;padding:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.creep-command-root .brand{padding-left:3.6rem}@media (width<=760px),(height<=470px){.creep-command-root .brand{padding-left:2.7rem}}.match-settings{display:contents}.settings-toggle{display:none}.tutorial-modal{z-index:60;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;backdrop-filter:blur(10px);opacity:0;pointer-events:none;background:#010810c2;place-items:start center;padding:1rem;transition:opacity .2s;display:grid;position:fixed;inset:0;overflow-y:auto}.tutorial-modal.is-open{opacity:1;pointer-events:auto}.tutorial-card{width:min(500px,100%);margin:auto 0;padding:clamp(1.25rem,4vw,2rem)}.tutorial-card h2{font-size:clamp(1.45rem,4vw,2rem);line-height:1.1}.tutorial-card ol{counter-reset:tutorial-step;gap:.75rem;margin:1.25rem 0 1rem;padding:0;list-style:none;display:grid}.tutorial-card li{background:#010c1785;border:1px solid #69c6ff33;border-radius:.9rem;grid-template-columns:2rem minmax(0,1fr);align-items:center;column-gap:.7rem;padding:.85rem;display:grid}.tutorial-card li:before{content:counter(tutorial-step);counter-increment:tutorial-step;color:#032033;background:var(--green);border-radius:999px;grid-row:span 2;place-items:center;width:2rem;height:2rem;font-weight:900;display:grid}.tutorial-card li b,.tutorial-card li span{grid-column:2}.tutorial-card li span,.tutorial-desktop-note{color:var(--muted);font-size:.86rem;line-height:1.45}.tutorial-desktop-note{margin:0 0 1rem}.tutorial-card .button{width:100%;min-height:48px}@media (width<=760px),(height<=470px){.app-shell{--board-viewport-height:100%;gap:.5rem;padding:.5rem}.topbar{gap:.45rem;padding:.6rem .7rem}.brand p,.board-legend,.resource-panel .panel-heading>div:first-child,.resource-panel .resource-rate,.resource-panel .meter,.resource-panel .resource-production-status,.resource-panel .resource-stats{display:none}.brand h1{font-size:1.15rem}.topbar-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;width:100%;display:grid}.game-status{grid-column:1/-1;min-height:30px;padding:0 .55rem;font-size:.75rem}.topbar-actions>.button{min-height:38px;padding:0 .45rem;font-size:.72rem}.settings-toggle{justify-content:center;align-items:center;display:inline-flex}.match-settings{border:1px solid var(--line);background:#010c17b8;border-radius:.75rem;grid-column:1/-1;grid-template-columns:1fr;gap:.4rem;padding:.6rem;display:none}.topbar.is-settings-open .match-settings{display:grid}.match-settings .topbar-control{grid-column:auto;min-height:38px}.game-layout{min-height:0;display:flex;overflow:hidden}.board-panel{--board-toolbar-height:76px;flex:1;min-height:0}.board-toolbar{height:var(--board-toolbar-height);min-height:var(--board-toolbar-height);max-height:var(--board-toolbar-height);grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:.45rem;padding:.55rem .7rem}.board-toolbar-title{gap:.15rem}.board-toolbar-title .eyebrow,.toolbar-selection .eyebrow,.toolbar-selection .selection-meta{display:none}.board-toolbar h2,.toolbar-selection strong{font-size:.86rem}.toolbar-selection{gap:.15rem}.toolbar-selection .selection-hint{-webkit-line-clamp:2;font-size:.68rem}.board-frame{flex:1;align-self:stretch;height:auto;min-height:0;padding:.45rem}.board-viewport{height:100%;min-height:0;max-height:none}.resource-panel{border-radius:.75rem;width:auto;padding:.4rem .6rem;top:.7rem;bottom:auto;left:.7rem}.resource-panel .panel-heading{display:block}.resource-panel .resource-value{font-size:1.25rem}.action-dock{border-radius:1rem;gap:.5rem;width:auto;padding:.65rem;bottom:.7rem;left:.7rem;right:.7rem;transform:translateY(1rem)scale(.98)}.action-dock.is-visible{transform:translateY(0)scale(1)}.action-dock-header strong{font-size:.82rem}.action-group-compact{grid-template-columns:1.35fr 1fr}.context-order-button{min-height:48px}.board-nav{gap:.25rem;width:108px;padding:.4rem;top:.7rem;bottom:auto;right:.7rem}.board-nav-pad{grid-template-columns:repeat(3,30px);gap:.25rem}.board-nav-button,.board-nav-button-small{width:30px;height:30px}.board-zoom-row{grid-template-columns:repeat(3,30px);gap:.25rem}.event-panel{width:auto;max-height:calc(100% - 1.4rem);top:.7rem;left:.7rem;right:.7rem}.battle-drawer{width:calc(100% - 1rem);bottom:.5rem}.battle-drawer-inner{max-height:calc(100dvh - 1rem);padding:.9rem;overflow:auto}}@media (width<=420px){.topbar-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.help-button{grid-column:1/-1}.board-panel{--board-toolbar-height:82px}.board-toolbar{grid-template-columns:1fr}.board-toolbar-title{display:none}.resource-panel{top:.5rem;left:.5rem}.board-nav{top:.5rem;right:.5rem}}@media (orientation:landscape) and (height<=470px){.app-shell{gap:0;padding:0}.topbar{z-index:25;box-shadow:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;padding:0;position:absolute;top:.45rem;left:auto;right:.45rem}.topbar .brand,.topbar .game-status,#soundButton{display:none}.topbar-actions{gap:.3rem;width:auto;display:flex}.topbar-actions>.button{min-height:2rem;padding:0 .55rem;font-size:.65rem}.match-settings{width:min(19rem,100vw - .9rem);padding:.5rem;position:absolute;top:calc(100% + .35rem);right:0}.game-layout{height:100%}.board-panel{--board-toolbar-height:0px}.board-toolbar{display:none}.board-frame{padding:.35rem}.resource-panel{top:.5rem;left:.5rem}.board-nav{top:auto;bottom:.5rem;right:.5rem}.action-dock{bottom:.5rem;left:.5rem;right:.5rem}.battle-drawer{width:calc(100% - .7rem);top:.35rem;bottom:.35rem}.battle-drawer-inner{flex-direction:column;height:100%;max-height:none;padding:.55rem;display:flex;overflow:hidden}.battle-header{flex:none}.battle-header .eyebrow{display:none}.battle-header h2{font-size:.9rem}.battle-timer{font-size:.7rem}.battle-timer strong{font-size:1rem;display:inline}.battle-sides{flex:none;gap:.5rem;margin-top:.45rem}.battle-side{border-radius:.6rem;padding:.35rem .5rem}.battle-side span{font-size:.62rem}.battle-side strong{margin-top:.1rem;font-size:1rem}.dice-stage{flex:auto;min-height:0;margin-top:.45rem;padding:.45rem;display:block;overflow:auto}.interactive-battle--resolved{grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.25fr);align-content:start;align-items:center;gap:.4rem .65rem;min-height:100%;display:grid}.interactive-battle--resolved .enemy-roll-summary{grid-column:1/-1;min-height:2rem;padding:.35rem .65rem;font-size:.72rem}.interactive-battle--resolved>.battle-dice-row{--battle-die-size:2.4rem;grid-column:1;gap:.35rem;padding:0}.interactive-battle--resolved .current-roll-result{grid-column:2;min-height:0;padding:.45rem;font-size:.72rem}.interactive-battle--resolved .enemy-dice-reveal{grid-column:3;gap:.2rem}.interactive-battle--resolved .enemy-dice-label{font-size:.62rem}.interactive-battle--resolved .battle-dice-row-enemy{--battle-die-size:2rem;gap:.28rem;padding:0}.interactive-battle--resolved .enemy-dice-result{font-size:.7rem}.interactive-battle--resolved .battle-resolution-log{grid-column:1/span 2;padding:.45rem .6rem;font-size:.7rem}.interactive-battle--resolved .battle-resolution-log[open] summary{margin-bottom:.35rem}.interactive-battle--resolved .battle-resolution-line{line-height:1.25}.interactive-battle--resolved .battle-roll-controls{grid-column:3}.interactive-battle--resolved .battle-close-button{min-height:2.2rem;padding:.3rem .55rem;font-size:.7rem}.tutorial-modal{padding:.5rem}.tutorial-card{width:min(30rem,100%);padding:.85rem}.tutorial-card h2{font-size:1.25rem}.tutorial-card ol{gap:.4rem;margin:.65rem 0}.tutorial-card li{padding:.5rem}.tutorial-card li span,.tutorial-desktop-note{font-size:.75rem}.tutorial-card .button{min-height:2.4rem}}
