/* Every art surface consumes an AI-generated local bitmap; text and hit targets stay semantic. */
body{background:#09070e url('assets/ai-bg.webp') center center/cover fixed no-repeat}
body:before{background:linear-gradient(90deg,#08060c33,transparent 20%,transparent 80%,#08060c33),linear-gradient(#08060c10,#08060c55)}body:after{opacity:.025}
.shell{max-width:1360px;background:linear-gradient(90deg,#09060d9c,#0c0812b8 45%,#09060d9c);border-inline-color:#fb9dcd0c;box-shadow:0 0 95px #05020970;padding:0 48px}
header{background:transparent}.intro{padding:38px 0 33px}.intro:before{background:none}.intro p{color:#dcc1d0;text-shadow:0 2px 5px #000}.eyebrow{color:#ffc1dc}.edition-mark>span{font-size:32px;color:#ffd6e8}.edition-mark{top:33px}.game-layout{grid-template-columns:minmax(340px,730px) minmax(285px,350px);gap:32px}
.panel,.unit-codex,dialog{background:#120b18 url('assets/ai-panel.webp') center/100% 100% no-repeat!important;border:0;border-radius:0;box-shadow:0 12px 28px #0008;backdrop-filter:none;padding:32px 34px 30px;isolation:isolate}
.panel:before,.panel:after,.board-frame:before,.board-frame:after{display:none}.panel-label{color:#e5abc9;text-shadow:0 1px 4px #000;letter-spacing:1px;font-size:8px}.status-panel{padding-top:32px}.status-panel h2{font-size:26px;margin:19px 0 8px;color:#ffc6e0}.status-panel p{color:#dbb6cc}.panel p,.controls label,.panel select{text-shadow:0 1px 3px #000}.controls{padding:32px 34px 36px}.history-panel{padding-top:32px}.panel{margin-bottom:15px}.history-panel #history{max-height:125px}.unit-codex{padding:32px 40px;margin-top:27px}.unit-codex>.panel-label{border-color:#c6649b35;padding-bottom:12px}
/* One AI secondary texture styles every secondary button, selector and toggle. */
.controls button,.header-right button,#promotion-options button,select,.turn-track span,.player-state.current{background:#140c1c url('assets/ai-secondary.webp') center/102% 170% no-repeat!important;border:0!important;border-radius:0;box-shadow:0 4px 9px #0005;text-shadow:0 2px 3px #000;color:#ffe2f1;transition:filter .16s,transform .14s;position:relative}
.controls button:before,.controls button:after,.header-right button:before,#promotion-options button:before{display:none}.controls button{padding:16px 13px;font-size:11px}.controls button.primary{background:#4a1131 url('assets/ai-button.webp') center/103% 185% no-repeat!important;color:#fff0f8;text-shadow:0 2px 3px #4c0328,0 0 8px #000;letter-spacing:1px;border:0;box-shadow:0 5px 18px #0007;padding:19px 14px;font-size:12px}.controls button:hover:not(:disabled),.header-right button:hover,#promotion-options button:hover{filter:brightness(1.3) drop-shadow(0 0 5px #ff4a9b55);box-shadow:none;transform:translateY(-1px)}.controls button.primary:hover{box-shadow:0 4px 20px #ff4a9b22;filter:brightness(1.2)}.controls button:active:not(:disabled),.controls button.primary:active,.header-right button:active{transform:translateY(2px) scale(.985);filter:brightness(.85);box-shadow:none}.controls button:disabled{filter:grayscale(.65);opacity:.4}
.header-right button{padding:13px 20px;min-width:88px;font-size:10px}.button-row{gap:8px;margin-top:12px}.button-row button{padding:14px 11px;min-height:44px}.controls label:not(.toggle){margin-top:16px}.controls select{padding:14px 17px;color:#f9d9eb;box-shadow:none;cursor:pointer;background-size:103% 170%!important}select option{background:#180e20}.toggle{gap:8px;font-size:10px;border-color:#a3598433;padding-top:15px}.toggle input{width:25px;height:16px;background:#150e1d url('assets/ai-button.webp') center/100% 180% no-repeat;box-shadow:none;border-color:#bd5e94}.toggle input:before{background:#5c304c;height:7px;top:3px}.toggle input:checked:before{background:#ffd2e8;box-shadow:0 0 7px #ff71b3}.turn-track{gap:4px}.turn-track span{font-size:8px;padding:12px 0;color:#b28aa4;box-shadow:none}.turn-track .active{filter:brightness(1.5);color:#ffe2f1}.player-state.current{font-size:9px;padding:12px 17px}
.board-frame{background:#140d1a url('assets/ai-panel.webp') center/100% 100% no-repeat;border:0;padding:18px;box-shadow:0 15px 40px #000a}.battle-strip{background:#140c1c url('assets/ai-secondary.webp') center/103% 190% no-repeat;border:0;padding:12px 18px;color:#e9b7cf;font-size:8px}.battle-strip span:last-child{color:#ffd4e5}#board{background:#211522 url('assets/ai-board.webp') center/102.6% 102.6% no-repeat;border:0;box-shadow:0 0 0 1px #cc8da333,0 0 0 3px #06030a}
.square,.square.dark{background:transparent;box-shadow:none;overflow:visible}.square:before{display:none}.square:hover{background:#ffc8df0e;box-shadow:inset 0 0 0 1px #ffafd8aa;filter:none}.square.selected,.square.dark.selected{background:#ff479c40;box-shadow:inset 0 0 0 2px #ffd8ec,0 0 16px #ff3b8c33;z-index:2}.square.last,.square.dark.last{background:#f05ba723;box-shadow:inset 0 0 0 1px #f99eca55}.square.checked{background:#ff216c50;box-shadow:inset 0 0 0 2px #ff87b7}.square .coord,.square.dark .coord{color:#ffdae9;font-size:8px;text-shadow:0 1px 3px #000;opacity:.85}.square .coord.file{right:3px;bottom:2px}
.unit-art{width:96%;height:96%;object-fit:contain;image-rendering:pixelated;display:block;pointer-events:none;user-select:none;filter:drop-shadow(0 2px 1px #0009);transition:transform .16s}.unit-art.obsidian{filter:brightness(.56) saturate(1.2) sepia(.14) drop-shadow(0 0 1px #ff98d1) drop-shadow(0 2px 1px #000)}.square:hover .unit-art{transform:translateY(-3px)}.unit-badge{position:absolute;bottom:2px;left:3px;font-size:8px;line-height:12px;min-width:12px;text-align:center;pointer-events:none;color:#251124;background:#f6d9e8dd;border:1px solid #fbd7ec99;text-shadow:none;z-index:3}.unit-badge.obsidian{background:#28132eee;color:#ffc4e5;border-color:#bc6c98}.unit-card{background:none;border-color:#a8588233!important;position:relative;min-width:0;padding:7px 5px;gap:5px}.unit-card .unit-art{width:46px;height:61px;flex-shrink:0}.unit-card .unit-badge{display:none}.unit-card small{font-size:7px}.unit-card span{font-size:10px}.unit-card:after{display:none}
.brand-icon,.avatar{background:#180f20 url('assets/ai-panel.webp') center/100% 100% no-repeat!important;border:0;box-shadow:none}.avatar{width:42px;height:44px;color:#ffe1ed!important;text-shadow:0 0 7px #ff54a7}.avatar.dark{color:#d18bb5!important}.player{padding-inline:8px}.player small{color:#edb3d2}.player strong{color:#ffe0ef;text-shadow:0 1px 4px #000}.tip p{color:#e0bdce;text-shadow:0 1px 5px #000}.tip{padding-top:1px}.edition-mark{border:0}footer{color:#dab1c5;text-shadow:0 1px 4px #000}.unit-codex .unit-card:hover{background:#ff9ec810}
#promotion-options{gap:6px}#promotion-options button{width:76px;height:103px;padding:8px 4px;display:flex;justify-content:center;align-items:center;background-size:105% 120%!important}#promotion-options .unit-art{width:90%;height:90%}dialog{padding:40px!important}dialog h2{color:#ffd5e9}dialog::backdrop{background:#07030cda;backdrop-filter:blur(5px)}
/* Fixed overlays animate the same AI sprites without disturbing square layout. */
.battle-fx{position:fixed;pointer-events:none;z-index:100;display:flex;align-items:center;justify-content:center;will-change:transform,opacity}.battle-fx .unit-art{width:96%;height:96%}.battle-fx .unit-badge{display:none}.arrival-hidden>.unit-art,.arrival-hidden>.unit-badge{visibility:hidden}.fallen-unit{z-index:99}.impact-ring{z-index:102;opacity:0}.impact-ring>span{width:75%;height:75%;border:2px solid #ffc4e4;box-shadow:0 0 15px #ff389e,inset 0 0 12px #ff389e;transform:rotate(45deg)}.impact-particle{background:#ffd4e9;box-shadow:0 0 8px #ff3c9c;z-index:103;opacity:0}.flying-unit{z-index:101}
@media(min-width:1500px){.shell{max-width:1400px;padding-inline:60px}.game-layout{gap:42px}.intro{padding-top:43px;padding-bottom:39px}}
@media(max-width:1050px){.shell{padding:0 27px}.game-layout{gap:22px;grid-template-columns:minmax(320px,1fr) 310px}.panel,.controls{padding-left:29px;padding-right:29px}.unit-codex{padding:30px}.unit-card .unit-art{width:42px;height:56px}.edition-mark>span{font-size:27px}}
@media(max-width:820px){.game-layout{grid-template-columns:1fr;gap:22px}.shell{padding:0 24px}aside{gap:14px}.panel{margin:0}.controls{padding:31px 28px}.status-panel{padding:31px 28px}.history-panel{padding:30px 28px}.intro{padding:30px 0}.unit-codex{margin-top:23px}.board-frame{padding:14px}.unit-card .unit-art{width:48px;height:65px}}
@media(max-width:540px){.shell{padding:0 15px}.intro{padding:27px 0}.intro p{font-size:10px}.panel{margin-bottom:15px;padding:33px 35px}.board-frame{padding:10px}.unit-card .unit-art{width:31px;height:45px}.unit-card span{font-size:9px}.unit-codex{padding:28px 22px}.unit-card{padding:5px 2px;gap:2px}.unit-badge{font-size:7px;min-width:10px;line-height:10px;bottom:1px;left:1px}.square .coord{font-size:7px}.square .coord.file{font-size:7px}.battle-strip{font-size:7px;padding:11px 14px}.header-right button{padding:12px 16px;font-size:9px;min-width:75px}.edition-mark{display:none}.brand{font-size:17px;letter-spacing:1px}body{background-attachment:scroll}.controls button.primary{padding:21px 12px}dialog{padding:35px 24px!important}#promotion-options button{width:57px;height:85px}}
@media(prefers-reduced-motion:reduce){.unit-art,.controls button,.header-right button{transition:none!important}.square:hover .unit-art{transform:none}}
.square .unit-art.type-p{width:84%;height:84%;align-self:flex-end;margin-bottom:4%}.square .unit-art.type-r{width:89%;height:89%;align-self:flex-end;margin-bottom:3%}
.battle-fx .unit-art.type-p{width:84%;height:84%;align-self:flex-end;margin-bottom:4%}.battle-fx .unit-art.type-r{width:89%;height:89%;align-self:flex-end;margin-bottom:3%}
