@font-face{font-family:DM Garamond;src:url(/fonts/g021e04d.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--p1-color: #4a9eff;--p2-color: #ff5050;--bg: #000;--fg: #ddd;--panel-bg: #111;--border: #333;--selected-glow: 0 0 8px gold;--tile-w: clamp(48px, calc((100vw - 28px) / 6), 144px);--tile-h: calc(var(--tile-w) * 2 / 3);--font-display: "DM Garamond", Garamond, Georgia, serif;--font-mono: "Courier New", Courier, monospace}@media(min-width:800px){:root{--tile-w: clamp(96px, calc((100vw - 240px) / 6), 144px)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--fg);font-family:var(--font-display);font-size:14px;height:100%;overflow-x:hidden}#turn-info,#toolbar button,.hand-card .card-name,.card-detail h2{font-family:var(--font-display)}#resources,.stat-value,.card-cost,.unit-img-wrap{font-family:var(--font-mono)}#game{display:flex;flex-direction:column;min-height:100vh;gap:4px;padding:4px}#hud{display:flex;align-items:center;gap:12px;background:var(--panel-bg);border:1px solid var(--border);padding:6px 12px;flex-wrap:wrap}#turn-info{font-weight:700;font-size:14px;min-width:0;flex-basis:100%}@media(min-width:600px){#turn-info{flex-basis:auto;min-width:200px}}#resources{display:flex;gap:8px;font-size:13px;flex-wrap:wrap}#resources span{white-space:nowrap}#toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-left:0}@media(min-width:600px){#toolbar{margin-left:auto;gap:8px}}#toolbar button{min-height:36px;padding:6px 12px;background:#1a1a1a;color:var(--fg);border:1px solid #555;cursor:pointer;font-family:inherit;font-size:12px;transition:background .15s,border-color .15s}#toolbar button:hover{background:#2a2a2a;border-color:#888}#toolbar button:disabled{opacity:.35;cursor:default}#toolbar button.primary{border-color:#666;color:#fff}#toolbar button.ai-toggle,#toolbar button.pref-toggle{border-color:#444;color:#888;margin-left:4px}#toolbar button.pref-toggle.active{border-color:#aaa;color:#ddd}#toolbar button.ai-toggle.active{border-color:#6f6;background:#0a2a0a;color:#afa;box-shadow:0 0 6px #64ff6466}#toolbar button.ai-toggle.active:before{content:"🤖 "}.ai-control-group{display:inline-flex;align-items:stretch;gap:0;margin-left:4px}.ai-control-group .ai-toggle{margin-left:0;border-top-right-radius:0;border-bottom-right-radius:0}.ai-difficulty-select{background:#111;color:#888;border:1px solid #444;border-left:none;font:inherit;font-size:.85em;padding:0 6px;border-top-right-radius:4px;border-bottom-right-radius:4px;cursor:pointer}.ai-difficulty-select:hover{color:#ddd;border-color:#888}.ai-control-group .ai-toggle.active+.ai-difficulty-select{border-color:#6f6;color:#afa}#turn-info.ai-turn{color:#afa;text-shadow:0 0 4px rgba(100,255,100,.4)}#board-wrap{display:flex;flex-direction:column;gap:8px;align-items:stretch}@media(min-width:800px){#board-wrap{flex-direction:row;align-items:flex-start}}#board{display:grid;grid-template-columns:repeat(6,var(--tile-w));grid-template-rows:repeat(7,var(--tile-h));gap:2px;background:#000;border:1px solid var(--border);flex-shrink:0}.tile{position:relative;width:var(--tile-w);height:var(--tile-h);cursor:default;overflow:hidden}.tile[data-actionable="1"]{cursor:pointer}.tile[data-actionable="1"]:hover .tile-border{box-shadow:inset 0 0 8px #ffffff40}.tile-land-label{position:absolute;top:2px;left:2px;right:2px;font-size:9px;color:#666;text-align:center;pointer-events:none;line-height:1.2}.tile-land-img{position:absolute;top:0;left:0;width:100%;height:100%;image-rendering:pixelated;pointer-events:none;filter:drop-shadow(0 0 1px rgba(0,0,0,.6))}.tile[data-land=none]{background:#111}.tile-border{position:absolute;top:0;right:0;bottom:0;left:0;border:3px solid transparent;pointer-events:none;transition:border-color .15s}.tile[data-owner="1"] .tile-border{border-color:var(--p1-color)}.tile[data-owner="2"] .tile-border{border-color:var(--p2-color)}.tile--castle .tile-border{border-width:4px}.tile[data-owner="1"].tile--castle .tile-border{box-shadow:inset 0 0 14px #4a9eff99,0 0 8px #4a9eff4d}.tile[data-owner="2"].tile--castle .tile-border{box-shadow:inset 0 0 14px #ff505099,0 0 8px #ff50504d}.tile--castle:before{content:"♛";position:absolute;top:2px;right:4px;font-size:14px;z-index:10;text-shadow:0 0 4px #000,0 0 4px #000;pointer-events:none}.tile[data-owner="1"].tile--castle:before{color:var(--p1-color)}.tile[data-owner="2"].tile--castle:before{color:var(--p2-color)}.tile-units{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);pointer-events:none}.unit-slot{display:flex;align-items:center;justify-content:center;overflow:hidden;padding:1px;position:relative;pointer-events:auto;cursor:pointer}.unit-slot[data-player="1"]{background:radial-gradient(ellipse at center,#dce6f58c,#4a9eff59 60%,#4a9eff1a)}.unit-slot[data-player="2"]{background:radial-gradient(ellipse at center,#f5dcdc8c,#ff505059 60%,#ff50501a)}.unit-slot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1.5px solid transparent;pointer-events:none;border-radius:1px}.unit-slot[data-player="1"]:after{border-color:var(--p1-color)}.unit-slot[data-player="2"]:after{border-color:var(--p2-color)}.unit-slot[data-spent="1"] .unit-img{opacity:.75;filter:grayscale(.55) contrast(1.1) brightness(.92) drop-shadow(1px 0 0 rgba(0,0,0,.9)) drop-shadow(-1px 0 0 rgba(0,0,0,.9)) drop-shadow(0 1px 0 rgba(0,0,0,.9)) drop-shadow(0 -1px 0 rgba(0,0,0,.9))}.unit-slot[data-spent="1"]:after{border-style:dashed;opacity:.7}.unit-label{display:none;font-size:7px;line-height:1;text-align:center;padding:1px;background:#000000bf;position:absolute;bottom:0;left:0;right:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-family:var(--font-mono)}.tile:hover .unit-label{display:block}.unit-label.p1{color:var(--p1-color)}.unit-label.p2{color:var(--p2-color)}.unit-img{width:100%;height:100%;image-rendering:pixelated;object-fit:contain;filter:contrast(1.15) brightness(1.1) drop-shadow(1px 0 0 rgba(0,0,0,.9)) drop-shadow(-1px 0 0 rgba(0,0,0,.9)) drop-shadow(0 1px 0 rgba(0,0,0,.9)) drop-shadow(0 -1px 0 rgba(0,0,0,.9))}.tile--selected{outline:2px solid gold;outline-offset:-2px;z-index:2}.tile--selected .tile-border{box-shadow:var(--selected-glow)}.unit-slot--selected{z-index:3}.unit-slot--selected:after{border-color:gold!important;border-width:2.5px!important;box-shadow:0 0 8px gold,inset 0 0 4px gold;animation:selectedPulse 1s ease-in-out infinite alternate}@keyframes selectedPulse{0%{box-shadow:0 0 6px gold,inset 0 0 3px gold}to{box-shadow:0 0 12px gold,inset 0 0 6px gold}}.tile--has-movable{cursor:crosshair}#hand{display:flex;gap:4px;padding:6px;background:var(--panel-bg);border:1px solid var(--border);flex-wrap:nowrap;overflow-x:auto}.hand-card{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px;max-width:96px;flex-shrink:0;padding:4px;background:#1a1a1a;border:1px solid #444;cursor:pointer;font-family:inherit;font-size:11px;color:var(--fg);transition:background .15s,border-color .15s,box-shadow .15s;text-align:center;position:relative}@media(min-width:600px){.hand-card{min-width:80px}}.hand-card:hover{background:#252525;border-color:#666}.hand-card.selected{border-color:gold;box-shadow:var(--selected-glow);background:#2a2500}.hand-card:disabled{opacity:.45;cursor:default}.hand-card.unaffordable{opacity:.6;filter:saturate(.5);cursor:not-allowed}.hand-card.unaffordable:hover{border-color:#844;background:#1f1010}.hand-card .card-cost .cost-amt.short{color:#ff6b6b;font-weight:700}.hand-card.unaffordable:after{content:"🚫";position:absolute;top:4px;right:4px;font-size:12px;opacity:.85;pointer-events:none}.hand-card .card-name{font-size:10px;font-weight:700;line-height:1.2}.hand-card .card-stats{font-size:11px;color:#ccc;white-space:nowrap;display:flex;gap:4px;justify-content:center}.hand-card .card-cost{font-size:10px;color:#aaa;white-space:nowrap}.hand-card .card-sprite{width:48px;height:60px;image-rendering:pixelated;object-fit:contain;background:radial-gradient(ellipse at center,rgba(200,200,210,.45) 0%,rgba(80,80,90,.2) 70%,transparent 100%);border-radius:2px;filter:contrast(1.15) brightness(1.1) drop-shadow(1px 0 0 rgba(0,0,0,.9)) drop-shadow(-1px 0 0 rgba(0,0,0,.9)) drop-shadow(0 1px 0 rgba(0,0,0,.9)) drop-shadow(0 -1px 0 rgba(0,0,0,.9))}.hand-card .card-sprite-placeholder{width:48px;height:60px;background:#222;display:flex;align-items:center;justify-content:center;font-size:9px;color:#555;border:1px solid #333}#bottom-panels{display:flex;gap:4px}#card-detail{flex:1;background:var(--panel-bg);border:1px solid var(--border);padding:8px 16px;display:none;min-height:80px}#card-detail.visible{display:block}#card-detail .detail-name{font-size:15px;font-weight:700;margin-bottom:4px}#card-detail .detail-row{display:flex;gap:16px;font-size:12px;color:#bbb}#card-detail .detail-stat{display:flex;gap:4px;align-items:center}#card-detail .stat-label{color:#777;font-size:11px}#events-log{width:100%;background:var(--panel-bg);border:1px solid var(--border);padding:6px;max-height:100px;overflow-y:auto}@media(min-width:800px){#events-log{width:200px;flex-shrink:0;max-height:calc(7 * var(--tile-h) + 6 * 2px)}}#events-log-title{font-size:11px;font-weight:700;color:#888;margin-bottom:4px;border-bottom:1px solid var(--border);padding-bottom:2px}#events-list{list-style:none;display:flex;flex-direction:column;gap:2px}#events-list li{font-size:10px;color:#aaa;line-height:1.3;padding:1px 0;border-bottom:1px solid #1a1a1a}#events-list li.ev-battle{color:#f94}#events-list li.ev-capture{color:#4f8}#events-list li.ev-gameover{color:gold;font-weight:700}#events-list .ev-turn{color:#666;font-variant-numeric:tabular-nums}#battle-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:100;pointer-events:all;opacity:1;transition:opacity .2s}#battle-modal.hidden{display:none}#battle-modal.fading{opacity:0;pointer-events:none}.battle-modal-inner{background:#111;border:2px solid #555;padding:24px 32px;min-width:320px;max-width:420px;text-align:center}.battle-modal-inner h2{font-size:16px;margin-bottom:16px;color:#ddd;letter-spacing:1px}.battle-combatants{display:flex;justify-content:space-around;margin-bottom:12px;gap:16px}.battle-side{flex:1;background:#1a1a1a;border:1px solid #333;padding:8px}.battle-side h3{font-size:11px;color:#888;margin-bottom:4px}.battle-side .unit-name{font-size:13px;font-weight:700;margin-bottom:6px}.battle-side .roll-info{font-size:11px;color:#aaa}.battle-side .total{font-size:14px;font-weight:700;margin-top:4px}.battle-outcome{font-size:16px;font-weight:700;margin:12px 0;padding:8px;border:1px solid #444}.battle-outcome.attacker-wins{color:#4f8;border-color:#4f8}.battle-outcome.defender-wins{color:#ff5050;border-color:#ff5050}#battle-continue{margin-top:12px;background:#222;color:var(--fg);border:1px solid #666;padding:6px 24px;cursor:pointer;font-family:inherit;font-size:13px;transition:background .15s}#battle-continue:hover{background:#333}#gameover-banner{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#111;border:3px solid gold;padding:32px 48px;text-align:center;z-index:200;box-shadow:0 0 40px #ffd7004d}#gameover-banner h1{font-size:28px;color:gold;margin-bottom:16px;letter-spacing:2px}#gameover-banner button{background:#222;color:var(--fg);border:1px solid #888;padding:8px 24px;cursor:pointer;font-family:inherit;font-size:14px;margin-top:8px}#gameover-banner button:hover{background:#333}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0a0a0a}::-webkit-scrollbar-thumb{background:#333;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#555}
