:root{--ink:#11161d;--panel:#19212a;--paper:#ebdfc3;--muted:#929793;--gold:#dcbb76;--red:#dc7667;--blue:#72b4d3;--line:rgba(216,188,129,.21);--radius:9px;color-scheme:dark;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#0c1016;color:var(--paper)}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;border:0}button:disabled{cursor:default}button:focus-visible{outline:2px solid #fff1bd;outline-offset:2px}button,input{font-size:16px}h1,h2,h3,p{margin:0}button svg{pointer-events:none}button small{pointer-events:none}::-webkit-scrollbar{height:3px;width:5px}::-webkit-scrollbar-thumb{background:#766442;border-radius:10px}::selection{background:#7d6340;color:white}.ambient{position:fixed;inset:0;background:linear-gradient(90deg,#0b101be6,#0b101bba,#0b101be8),url('assets/concept.webp') center 20%/cover;filter:blur(6px);transform:scale(1.04);pointer-events:none}.app{position:relative;margin:0 auto;padding:max(8px,env(safe-area-inset-top)) 20px max(10px,env(safe-area-inset-bottom));width:min(1140px,100%);height:100vh;height:100dvh;display:flex;flex-direction:column;gap:12px;isolation:isolate}.masthead{display:flex;justify-content:space-between;align-items:center;flex:0 0 62px;border-bottom:1px solid var(--line);padding:0 2px 10px}.brand{display:flex;align-items:center;gap:13px}.brand-war{font-family:Georgia,serif;letter-spacing:-3px;font-size:47px;text-shadow:0 3px 7px #000;line-height:.85;color:#eee4cd}.brand-dot{color:var(--gold)}h1{font-family:Georgia,serif;font-weight:400;letter-spacing:2.3px;font-size:19px;line-height:1.3}.eyebrow{font-size:9px;letter-spacing:1.5px;color:var(--muted);font-weight:600}.eyebrow b{color:var(--gold);font-size:9px;margin-left:6px}.head-controls{display:flex;gap:7px}.icon-btn{border:1px solid var(--line);background:#171c22ad;border-radius:7px;height:37px;width:37px;font-size:19px;color:#cebd9b}.icon-btn.on{background:#3d3725;color:#f3d793}.workspace{display:flex;flex:1;gap:23px;min-height:0}.game-space{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.commander{height:31px;display:flex;align-items:center;gap:8px;flex-shrink:0;padding:0 2px}.commander strong{font-size:10px;letter-spacing:1.4px}.crest{font-size:23px;line-height:1}.enemy-crest{color:#c28779}.ally-crest{color:#aaaed1}.commander-spacer{flex:1}.tag{font-size:8px;font-weight:700;letter-spacing:1px;border:1px solid var(--line);border-radius:4px;color:#a7a99f;padding:2px 4px;background:#161b24}.tag-btn{font-size:8px;color:var(--gold);cursor:pointer}.card-count{font-size:10px;color:#aca899}.crowns{display:flex;gap:3px;font-size:14px;color:#53585e}.crowns .scored{color:var(--gold);filter:drop-shadow(0 0 4px #d5b67850)}.lane-heads{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;height:40px;flex-shrink:0;margin-top:4px}.lane-heading{--lane:var(--red);position:relative;background:linear-gradient(180deg,color-mix(in srgb,var(--lane) 16%,#13191f),#13191f);border:1px solid color-mix(in srgb,var(--lane) 40%,transparent);border-bottom:0;border-radius:8px 8px 0 0;display:flex;align-items:center;justify-content:center;gap:7px;padding:4px}.lane-heading span{font-size:21px;color:var(--lane)}.lane-heading strong{display:block;font-family:Georgia,serif;font-size:13px;font-weight:400;letter-spacing:1px}.lane-heading small{font-size:7px;letter-spacing:1.4px;color:var(--lane);display:block;margin-top:1px}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;flex:1;min-height:240px}.lane{--lane:var(--red);position:relative;display:grid;grid-template-rows:1fr 1fr 1.1fr 30px 1.1fr 1fr 1fr;gap:4px;padding:7px 9px;border:1px solid color-mix(in srgb,var(--lane) 37%,transparent);border-top:0;border-radius:0 0 9px 9px;background:linear-gradient(90deg,#080d12 0,#1e242bd9 4%,#0d141bc2 8%,#0d141bc2 92%,#252626 96%,#080d12 100%);box-shadow:inset 0 0 25px #0009}.lane:before,.lane:after{content:"";position:absolute;top:0;bottom:5px;width:3px;background:repeating-linear-gradient(180deg,#756b55 0 3px,#272726 4px 10px);opacity:.5;pointer-events:none}.lane:before{left:3px}.lane:after{right:3px}.lane.selected{box-shadow:inset 0 0 0 1px var(--gold),0 0 14px #e7b96026}.slot{position:relative;min-height:0;overflow:hidden;border:1px solid #55564c54;border-radius:5px;background:#0b141bd9;display:flex;align-items:center;justify-content:center;text-align:center;width:100%;padding:0;isolation:isolate;box-shadow:inset 0 1px 3px #0005}.slot:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#070c1699,#0c111b4f),var(--zone-image) center 53%/cover;opacity:.76;z-index:-1;transition:opacity .2s}.slot:after{content:"";position:absolute;left:5px;right:5px;top:50%;height:10px;border-top:1px solid #cdbc7c15;border-bottom:1px solid #cdbc7c0a;transform:translateY(-50%);pointer-events:none;z-index:-1}.slot.enemy-slot:before{filter:saturate(.7)}.slot.front-slot{border:1px solid color-mix(in srgb,var(--lane) 40%,transparent);background:linear-gradient(180deg,#161d25c9,#0a1119c9)}.slot.can-deploy{border-style:dashed;border-color:#c5b6838c;cursor:pointer}.slot.can-deploy:hover{border-color:#f0d089;background:#343629}.slot.can-deploy:before{opacity:.9}.slot.pending{border:1px solid #edce8e;box-shadow:0 0 12px #eec57635}.slot .travel{position:absolute;top:3px;left:4px;color:#d0ccba;font-size:7px;letter-spacing:1px;font-weight:600;opacity:.9;z-index:2}.slot .upgrade-label{position:absolute;bottom:3px;left:3px;right:3px;color:#d5c295;font-size:8px;letter-spacing:.3px;text-shadow:0 1px 4px #000;background:#0c141ccb;padding:2px 0;border-radius:3px;z-index:2}.slot .empty-arrow{font-size:21px;color:#d7bc8366}.slot .deploy-plus{font-size:27px;color:#f1d195a8;font-weight:200}.slot .empty-front{font-family:Georgia,serif;font-size:9px;letter-spacing:2px;color:#83898c88}.slot.occupied:before{opacity:.6}.unit{position:absolute;inset:3px;overflow:hidden;display:flex;align-items:center;justify-content:space-between;border-radius:4px;border:1px solid #c3b79199;padding:2px 7px;background:linear-gradient(90deg,#171e26ed,#171c2322 48%,#151c24ed),var(--unit-image) center 38%/auto 170% no-repeat #19212b;box-shadow:0 2px 6px #0008;color:#f6ead2}.unit.ATT{--mode-color:#e09484;border-left:3px solid #c65f4c}.unit.DEF{--mode-color:#88c3e1;border-left:3px solid #62a6c7}.unit.CLAIM{--mode-color:#f0ce77;border-left:3px solid #c5a557}.unit .rank{font-family:Georgia,serif;font-size:24px;font-weight:600;line-height:1;text-shadow:0 2px 3px #000;position:relative}.unit .rank .suit{font-family:Georgia,serif;font-size:12px;display:inline-block;margin-left:2px;vertical-align:middle}.red-suit{color:#f1a798}.unit .unit-stat{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}.unit .unit-stat b{font-size:16px;color:var(--mode-color);font-weight:750;text-shadow:0 2px 2px #000}.unit .unit-stat small{font-size:7px;font-weight:800;letter-spacing:.8px;color:#ded7c1}.unit .hp-track{position:absolute;bottom:0;left:0;right:0;height:2px;background:#092e40}.unit .hp-track i{display:block;height:100%;background:#70c0e0}.unit .unit-buff{font-size:8px;color:#cbd9a2;position:absolute;top:2px;left:50%;transform:translateX(-50%)}.unit .hold-pin{position:absolute;bottom:2px;left:42%;font-size:10px;color:#fee1a0}.unit.army{border:1px solid #fae1a0;background:linear-gradient(90deg,#49412ce8,#241c1244 50%,#241c12e8),var(--unit-image) center 38%/auto 170% no-repeat #292417;box-shadow:inset 0 0 8px #d8c79280,0 0 8px #d9b66b40}.unit.army .rank{font-size:14px;letter-spacing:1px}.unit.ghost{opacity:.55;border-style:dashed}.battle-line{display:flex;align-items:center;justify-content:center;gap:4px;position:relative;font-size:8px;letter-spacing:.7px;color:#b3ab98;min-width:0;text-align:center;padding:0 2px}.battle-line:before,.battle-line:after{content:"";height:1px;background:linear-gradient(90deg,transparent,var(--lane));flex:1;opacity:.6}.battle-line:after{transform:rotate(180deg)}.battle-line .clash-icon{font-size:14px;color:var(--lane)}.lane.locked .slot{opacity:.28;filter:grayscale(.7);pointer-events:none}.lane.locked .battle-line{color:#f1d69d;font-size:9px}.lane.locked.enemy-owned .battle-line{color:#e3a092}.seal{position:absolute;z-index:4;top:50%;left:50%;transform:translate(-50%,-50%);width:82%;display:flex;flex-direction:column;align-items:center;pointer-events:none;background:linear-gradient(180deg,#161b22f7,#22221af7);border:1px solid #d2b571;border-radius:8px;padding:13px 6px;box-shadow:0 10px 25px #000a;color:#ecd49c}.seal .seal-icon{font-size:33px;line-height:1;margin-bottom:7px}.seal strong{font-family:Georgia,serif;font-size:15px;letter-spacing:.5px}.seal small{font-size:8px;margin-top:5px;letter-spacing:1.2px;color:#b7ab8c}.enemy-owned .seal{border-color:#bb7970;color:#e2a9a0;background:linear-gradient(#241a1a,#251e1b)}.lane.in-war{animation:war-pulse 1.8s infinite}.lane.in-war .battle-line{color:#ffe0a2}.hand-heading{display:flex;align-items:center;justify-content:space-between;height:23px;flex-shrink:0;padding:0 2px}.hand-heading>span{font-size:8px;color:#c5c1ab;letter-spacing:1.2px}.link-btn{background:none;padding:3px 0;color:var(--gold);font-size:8px;letter-spacing:.6px;min-height:20px}.hand{display:flex;gap:5px;flex-shrink:0;height:82px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;padding:4px 2px 5px;scrollbar-width:thin;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.hand-card{position:relative;flex:0 0 53px;height:70px;scroll-snap-align:start;border:1px solid #aa9e7daa;border-radius:5px;background:linear-gradient(180deg,#eee2cce6 0,#d8c9aad8 43%,#2b2c30c4 82%),var(--unit-image) 50% 55%/cover;box-shadow:0 4px 4px #0009;color:#242b34;overflow:hidden;text-align:left;padding:4px 5px;transition:transform .15s,filter .15s,border-color .15s}.hand-card .hand-rank{font-family:Georgia,serif;font-weight:700;font-size:23px;display:block;line-height:1}.hand-card .hand-suit{font-size:14px;line-height:1;display:block;margin-top:2px}.hand-card.red .hand-suit{color:#843e3b}.hand-card .hand-value{position:absolute;right:5px;bottom:4px;font-size:10px;letter-spacing:1px;color:#f3e4c4;text-shadow:0 1px 4px #000}.hand-card.active{transform:translateY(-3px);border:2px solid #ffdf98;box-shadow:0 0 10px #ffd47740,0 4px 6px #0008;padding:3px 4px}.hand-card:focus-visible{outline-offset:-3px}.hand-card:hover{filter:brightness(1.1)}.action-dock{display:flex;gap:6px;flex-shrink:0;height:40px;margin-top:5px}.mode-button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:6px;border:1px solid #777e7738;background:#171d25;box-shadow:inset 0 1px #ffffff08;color:#a9a899;padding:0 4px}.mode-button>span{font-size:20px}.mode-button b{font-size:10px;letter-spacing:.6px}.mode-button small{font-size:13px;font-weight:750;margin-left:2px}.mode-button.att.active{border-color:#ce8471;background:linear-gradient(180deg,#533631,#302226);color:#f2c4b0}.mode-button.def.active{border-color:#70adc5;background:linear-gradient(180deg,#254757,#1c2d39);color:#bee2ef}.mode-button.claim.active{border-color:#c2a569;background:linear-gradient(180deg,#51462c,#302b21);color:#f3dda3}.turn-dock{display:flex;align-items:stretch;gap:8px;margin-top:9px;height:43px;flex-shrink:0}.turn-info{display:flex;flex-direction:column;justify-content:center;flex-shrink:0;min-width:90px}.turn-info small{color:#b9ab8a;font-size:7px;letter-spacing:1px}.turn-info strong{font-size:12px;letter-spacing:1px;font-weight:600;margin-top:3px}.secondary-btn{background:#161e27;border:1px solid #6f756b59;border-radius:6px;padding:8px 14px;font-size:11px;letter-spacing:.7px;font-weight:600}.primary-btn{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;flex:1;border:1px solid #c9b17f;border-radius:6px;background:linear-gradient(180deg,#d3b777,#ac8950);color:#181c22;font-size:11px;letter-spacing:.7px;font-weight:850;padding:8px 15px;box-shadow:inset 0 1px #ffebac70,0 3px 8px #0004}.primary-btn span{font-size:24px;line-height:1}.primary-btn:disabled{background:linear-gradient(180deg,#393b36,#252a29);border-color:#5a5b4c;color:#a2a291;box-shadow:none}.status{height:17px;flex-shrink:0;text-align:center;color:#a19d8c;font-size:8px;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:5px}.sidebar{flex:0 0 275px;padding-top:13px;display:flex;flex-direction:column;gap:18px;min-height:0}.side-kicker{font-size:9px;letter-spacing:2px;color:#b7a176;border-bottom:1px solid var(--line);padding-bottom:14px}.sidebar h2{font-family:Georgia,serif;font-weight:400;font-size:34px;line-height:1.12;letter-spacing:-.7px}.sidebar h2 em{font-weight:400;color:#b89d67}.side-intro{font-size:11px;line-height:1.8;color:#a9a89b}.side-card{border:1px solid var(--line);border-radius:9px;background:#141b22bb;padding:17px}.side-card h3{font-family:Georgia,serif;font-weight:400;font-size:22px;margin:9px 0}.side-card p{font-size:11px;color:#a8aa9d;line-height:1.7}.mission-score{display:flex;justify-content:space-between;gap:7px;margin-top:12px}.mission-icon{font-size:23px;border:1px solid #71664455;background:#0e151c;border-radius:6px;flex:1;text-align:center;padding:8px;color:#727771}.mission-icon.won{color:#e3be74;border-color:#bea56a}.mission-icon.lost{color:#ca8b7e;border-color:#946054}.field-log{min-height:100px;flex:1;overflow:hidden}.side-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.dispatch{font-size:10px;color:#b9b6a6;line-height:1.5;padding:7px 0;border-bottom:1px solid #a6977222}.dispatch span{color:#897e67;margin-right:5px;font-size:8px}.dispatch.claim,.dispatch.war{color:#dec996}.workshop-link{display:flex;align-items:center;gap:10px;padding:15px;background:linear-gradient(130deg,#2b2921,#141c25);border:1px solid var(--line);border-radius:8px;text-align:left}.workshop-link>span:first-child{font-size:25px;color:var(--gold)}.workshop-link>span:last-child{margin-left:auto;color:var(--gold)}.workshop-link strong{font-size:9px;letter-spacing:1px}.workshop-link small{display:block;font-size:9px;color:#a29e8a;margin-top:6px}.side-foot{font-size:8px;letter-spacing:1px;color:#8b8f89;line-height:1.8}.side-foot span{font-size:8px;letter-spacing:.3px}.toast{position:fixed;bottom:calc(196px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,10px);z-index:35;width:min(380px,calc(100% - 30px));background:#18202af5;border:1px solid #bda57599;border-radius:8px;box-shadow:0 10px 30px #000b;padding:11px 15px;color:#e8d9b5;text-align:center;font-size:12px;line-height:1.4;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.war-flash{position:fixed;left:50%;top:43%;transform:translate(-50%,-50%);background:linear-gradient(90deg,#170f08f7,#33281efb,#170f08f7);border-top:1px solid #dfbb73;border-bottom:1px solid #dfbb73;color:#fff0c6;width:100%;z-index:45;pointer-events:none;text-align:center;opacity:0;padding:25px 12px;box-shadow:0 0 100px #000d}.war-flash.visible{animation:war-banner 2.1s forwards}.war-flash b{display:block;font-family:Georgia,serif;letter-spacing:6px;font-size:30px}.war-flash span{display:block;font-size:11px;letter-spacing:1px;margin-top:10px}.modal-backdrop{position:fixed;inset:0;background:#050a11cb;backdrop-filter:blur(8px);z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}.modal{position:relative;width:min(640px,100%);max-height:calc(100dvh - 40px - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;border:1px solid #a490605e;border-radius:16px;background:linear-gradient(145deg,#242829,#121a24 55%);box-shadow:0 30px 100px #0009;padding:24px;scrollbar-width:thin}.modal-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.modal-title h2{font-family:Georgia,serif;font-size:27px;letter-spacing:.2px;font-weight:400}.close-btn{height:34px;width:34px;border:1px solid var(--line);border-radius:50%;background:#111923b0;color:#cfbf9a;font-size:20px;flex-shrink:0}.modal p{font-size:12px;color:#b8b8a8;line-height:1.65;margin:12px 0}.modal .primary-btn{min-height:44px;justify-content:center;flex:initial;width:100%;margin-top:17px}.modal .secondary-btn{min-height:42px}.modal-kicker{font-size:9px;letter-spacing:2px;color:#c6ad76;margin-bottom:8px}.modal-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.modal-actions button{flex:1}.intro-art{height:180px;background:linear-gradient(180deg,#141a2210,#141a22ff),url('assets/concept.webp') 50% 30%/cover;border-radius:11px;margin:-9px -9px 16px;position:relative;display:flex;align-items:flex-end;padding:15px}.intro-art h2{font-family:Georgia,serif;font-size:38px;font-weight:400;line-height:1}.intro-art h2 small{font-size:15px;display:block;letter-spacing:4px;margin-top:5px;color:#d7bd83}.intro-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.intro-step{border:1px solid var(--line);border-radius:7px;padding:11px 8px;font-size:10px;color:#b8b7a6;line-height:1.5}.intro-step b{display:block;font-size:19px;color:var(--gold);font-family:Georgia,serif;margin-bottom:4px}.intro-fine{font-size:9px!important;color:#838e92!important;text-align:center}.manual-section{margin:20px 0}.manual-section h3{font-family:Georgia,serif;font-size:20px;font-weight:400;color:#d6c29b;margin-bottom:9px}.rules-table{width:100%;border-collapse:collapse;font-size:11px;line-height:1.6}.rules-table td{vertical-align:top;padding:8px 5px;border-bottom:1px solid #a08b6026;color:#bfc0b0}.rules-table td:first-child{width:100px;color:#e2cfab;font-size:10px;font-weight:700;white-space:nowrap}.help-small{font-size:10px!important}.chip-row{display:flex;gap:6px;flex-wrap:wrap}.chip{background:#111a25;border:1px solid #8c785451;border-radius:6px;padding:7px 10px;font-size:10px;color:#caba92}.chip.active{border-color:#d8b877;color:#f7d59b}.workshop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:15px 0}.workshop-front h3{font-family:Georgia,serif;font-size:13px;text-align:center;font-weight:400;margin-bottom:10px;color:var(--lane)}.zone-select{width:100%;border:1px solid color-mix(in srgb,var(--lane) 50%,transparent);border-radius:8px;padding:0;overflow:hidden;background:#131b24;margin-bottom:9px;min-height:110px;position:relative;text-align:left}.zone-select .zone-art{height:88px;background:var(--zone-image) center/cover;position:relative}.zone-select .zone-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,#141b24 100%)}.zone-select b{font-family:Georgia,serif;font-size:13px;font-weight:400;display:block;padding:0 7px 5px;color:#e7d3a6}.zone-select small{display:block;padding:0 7px 9px;font-size:9px;color:#abb9b8}.zone-select .zone-pos{position:absolute;top:6px;left:6px;font-size:7px;background:#101620ce;border:1px solid var(--line);padding:3px 4px;border-radius:3px;color:#e6d0a2;letter-spacing:.5px}.zone-select .cycle{position:absolute;right:5px;top:6px;font-size:14px;background:#111924de;border-radius:50%;width:21px;height:21px;text-align:center;color:#eccb8c}.loadout-note{background:#111b25;border:1px solid var(--line);border-radius:7px;padding:10px;font-size:10px;line-height:1.6;color:#bfc1b1}.armoury-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:15px}.armoury-grid .hand-card{width:100%;height:77px;min-width:0;transform:none}.inspector-card{display:flex;align-items:center;gap:18px;padding:16px;border:1px solid var(--line);border-radius:9px;background:#101923}.inspector-rank{font-family:Georgia,serif;font-size:40px;color:#e9d4a7}.inspector-stats{flex:1}.inspector-stats strong{font-size:24px;color:#e8ce91}.inspector-stats small{display:block;margin-top:4px;font-size:11px;color:#9caead}.info-pills{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.info-pill{padding:6px 9px;border:1px solid var(--line);border-radius:5px;font-size:10px;color:#c5bda0}.result-trophy{text-align:center;font-size:65px;line-height:1;margin:7px 0 15px;color:#e3c275;text-shadow:0 0 30px #d0b46144}.result-title{text-align:center;font-family:Georgia,serif;font-size:33px;color:#ebd39c;font-weight:400}.result-sub{text-align:center}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.result-stats strong{display:block;font-size:22px;color:#e3cfac}.result-stats small{font-size:8px;letter-spacing:1px;color:#aaa18c}.result-seed{text-align:center;font-size:9px!important;color:#9ca29d!important}.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.menu-grid button{text-align:left;padding:13px;min-height:55px;border:1px solid var(--line);border-radius:7px;background:#111c27}.menu-grid button b{display:block;font-size:11px;color:#d9cba9}.menu-grid button small{display:block;font-size:9px;margin-top:6px;color:#a2aca5}.no-script{position:fixed;inset:20px;background:#151d27;border:1px solid #bea56e;padding:30px;z-index:100}.micro-note{font-size:9px;color:#85908a;margin-top:7px}.switch-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);gap:10px}.switch-row span{font-size:11px;color:#c7bfa7}.switch-row input{accent-color:#d2b376;width:18px;height:18px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@keyframes war-pulse{0%,100%{box-shadow:inset 0 0 15px #faca5610}50%{box-shadow:inset 0 0 25px #faca5650}}@keyframes war-banner{0%{opacity:0;transform:translate(-50%,-50%) scale(1.04)}15%,78%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0}}@keyframes slot-flash{0%{filter:brightness(1)}40%{filter:brightness(1.8)}100%{filter:brightness(1)}}.slot.just-upgraded{animation:slot-flash .65s}
@media(min-width:850px) and (min-height:850px){.masthead{flex-basis:74px}.lane-heads{height:48px}.lane-heading strong{font-size:15px}.board{gap:10px}.lane{gap:6px;grid-template-rows:1fr 1fr 1.1fr 38px 1.1fr 1fr 1fr;padding:9px 12px}.unit .rank{font-size:31px}.unit .unit-stat b{font-size:20px}.unit .unit-stat small{font-size:9px}.slot .upgrade-label{font-size:9px}.hand{height:96px;gap:7px}.hand-card{height:84px;flex-basis:63px}.hand-card .hand-rank{font-size:29px}.action-dock{height:46px}.turn-dock{height:48px}.commander{height:36px}.status{height:22px}}
@media(max-width:849px){.app{width:min(550px,100%);padding: max(6px,env(safe-area-inset-top)) 10px max(6px,env(safe-area-inset-bottom));gap:4px}.masthead{flex-basis:43px;padding:0 1px 6px}.brand{gap:9px}.brand-war{font-size:34px;letter-spacing:-2px}h1{font-size:13px;letter-spacing:1.7px}.brand .eyebrow{font-size:6px;letter-spacing:1px}.eyebrow b{font-size:6px;margin-left:3px}.head-controls{gap:5px}.icon-btn{width:31px;height:31px;font-size:17px}.sidebar{display:none}.workspace{gap:0}.commander{height:25px;gap:6px}.commander strong{font-size:8px;letter-spacing:1px}.crest{font-size:20px}.card-count{font-size:9px}.crowns{font-size:12px}.lane-heads{height:32px;gap:6px;margin-top:1px}.lane-heading{gap:4px;padding:2px}.lane-heading span{font-size:17px}.lane-heading strong{font-size:10px;letter-spacing:.5px}.lane-heading small{font-size:6px;letter-spacing:1px}.board{gap:6px;min-height:220px}.lane{padding:4px 5px;gap:3px;grid-template-rows:1fr 1fr 1.09fr 25px 1.09fr 1fr 1fr}.lane:before,.lane:after{width:2px}.lane:before{left:1px}.lane:after{right:1px}.unit{inset:2px;padding:1px 4px;border-left-width:2px!important}.unit .rank{font-size:23px}.unit .rank .suit{font-size:10px;margin-left:1px}.unit .unit-stat b{font-size:14px}.unit .unit-stat small{font-size:6px;letter-spacing:.4px}.unit .unit-buff{font-size:7px;left:51%}.slot .travel{font-size:6px;left:3px;top:2px;letter-spacing:.7px}.slot .upgrade-label{font-size:7px;padding:1px 0;bottom:2px}.slot .empty-arrow{font-size:19px}.slot .empty-front{font-size:8px;letter-spacing:1px}.battle-line{font-size:6px;letter-spacing:.4px;gap:2px}.battle-line .clash-icon{font-size:13px}.seal{padding:12px 4px}.seal strong{font-size:11px}.seal small{font-size:6px}.seal .seal-icon{font-size:29px}.hand-heading{height:19px}.hand-heading>span{font-size:7px;letter-spacing:.7px}.link-btn{font-size:7px}.hand{height:78px;gap:5px;padding:4px 1px}.hand-card{flex-basis:48px;height:67px;padding:4px 5px}.hand-card .hand-rank{font-size:23px}.hand-card .hand-suit{font-size:12px}.action-dock{height:38px;margin-top:4px;gap:5px}.mode-button{gap:4px}.mode-button>span{font-size:17px}.mode-button b{font-size:9px;letter-spacing:.4px}.mode-button small{font-size:12px}.turn-dock{height:43px;gap:7px;margin-top:7px}.turn-info{min-width:67px}.turn-info small{font-size:6px;letter-spacing:.5px}.turn-info strong{font-size:10px;letter-spacing:.8px}.secondary-btn{font-size:10px;padding:8px 10px}.primary-btn{padding:8px 12px;font-size:10px;letter-spacing:.4px}.status{font-size:7px;height:15px;padding-top:4px}.modal-backdrop{padding:12px}.modal{max-height:calc(100dvh - 24px - env(safe-area-inset-bottom));padding:19px;border-radius:13px}.modal-title h2{font-size:25px}.intro-art{height:155px}.intro-step{font-size:9px;padding:9px 7px}.armoury-grid{grid-template-columns:repeat(6,1fr);gap:6px}.armoury-grid .hand-card{height:68px}.zone-select .zone-art{height:79px}.zone-select b{font-size:11px}.zone-select small{font-size:8px}.workshop-grid{gap:6px}.workshop-front h3{font-size:12px}.modal p{font-size:11px}.toast{bottom:204px;font-size:11px}.war-flash b{font-size:24px;letter-spacing:4px}}
@media(max-height:735px) and (max-width:849px){.masthead{flex-basis:36px}.brand-war{font-size:29px}h1{font-size:11px}.commander{height:22px}.lane-heads{height:28px}.hand{height:65px}.hand-card{height:56px;flex-basis:44px}.hand-card .hand-rank{font-size:19px}.hand-card .hand-suit{font-size:10px}.action-dock{height:33px}.turn-dock{height:38px;margin-top:5px}.status{height:12px;font-size:6px}.hand-heading{height:16px}.board{min-height:210px}.unit .rank{font-size:20px}.unit .unit-stat b{font-size:12px}.slot .upgrade-label{font-size:6px}.slot .travel{font-size:5px}.lane{grid-template-rows:1fr 1fr 1.08fr 21px 1.08fr 1fr 1fr}.intro-art{height:115px}.modal .primary-btn{margin-top:10px}.intro-steps{margin:10px 0}.toast{bottom:173px}}
@media(max-width:360px){.app{padding-left:6px;padding-right:6px}.board,.lane-heads{gap:4px}.unit .rank{font-size:19px}.unit .rank .suit{font-size:9px}.unit .unit-stat b{font-size:12px}.mode-button b{font-size:8px}.armoury-grid{grid-template-columns:repeat(5,1fr)}.brand .eyebrow{font-size:5px}.commander strong{font-size:7px}.zone-select b{font-size:10px}}
@media(max-height:520px) and (min-width:650px){.app{width:100%;padding:4px 9px;gap:3px}.masthead{flex-basis:35px;padding-bottom:4px}.brand-war{font-size:30px}h1{font-size:11px}.brand .eyebrow{font-size:6px}.workspace{position:relative;padding-right:213px}.game-space{position:relative}.sidebar{display:none}.commander{height:20px}.lane-heads{height:25px}.board{min-height:190px}.lane{grid-template-rows:1fr 1fr 1fr 19px 1fr 1fr 1fr;padding:3px 5px;gap:2px}.unit .rank{font-size:18px}.unit .unit-stat b{font-size:12px}.unit .unit-stat small{font-size:5px}.slot .travel{font-size:5px}.slot .upgrade-label{font-size:6px}.hand-heading{position:absolute;right:-213px;top:0;width:199px;height:20px}.hand{position:absolute;right:-213px;top:22px;width:199px;height:calc(100% - 144px);display:grid;grid-template-columns:repeat(4,1fr);overflow-y:auto;overflow-x:hidden;align-content:start;gap:5px;scroll-snap-type:none}.hand-card{width:44px;height:55px}.hand-card .hand-rank{font-size:18px}.hand-card .hand-suit{font-size:10px}.hand-card .hand-value{font-size:8px}.action-dock{position:absolute;right:-213px;bottom:79px;width:199px;height:34px;gap:3px}.mode-button{gap:2px}.mode-button b{font-size:7px;letter-spacing:0}.mode-button>span{font-size:12px}.mode-button small{font-size:10px}.turn-dock{position:absolute;right:-213px;bottom:20px;width:199px;display:grid;grid-template-columns:56px 1fr;height:52px;gap:3px}.turn-info{display:none}.primary-btn{padding:5px 7px;font-size:9px}.secondary-btn{font-size:9px;padding:5px}.status{position:absolute;bottom:0;right:-213px;width:199px;height:18px;font-size:7px}.ally{height:23px}.toast{bottom:75px;width:350px}.modal-backdrop{padding:8px}.modal{max-height:calc(100dvh - 16px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}body.reduce-motion *,body.reduce-motion *:before,body.reduce-motion *:after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}

.unit.planting{border-color:#ffe3a2;box-shadow:inset 0 0 10px #f8db7f35,0 0 9px #ffcf7166}.unit.planting .unit-stat small{color:#ffe8a5;letter-spacing:.2px}.dispatch.plant{color:#d5c38f}

@media(max-width:849px){.unit .unit-stat small{font-size:8px;letter-spacing:.2px}}
@media(max-height:735px) and (max-width:849px){.unit .unit-stat small{font-size:6px}}
/* v0.2 tactile battlefield / cinematic feedback */
.queued-orders{min-height:27px;display:flex;gap:5px;align-items:center;overflow-x:auto;white-space:nowrap;color:#bdaa85;font-size:9px;letter-spacing:.5px;padding:3px 5px;background:#171b21;border:1px solid #625339;border-radius:6px;flex-shrink:0}
.order-chip{padding:5px 8px;border:1px solid #b79152;border-radius:5px;background:#413324;color:#ffdf99;font-size:10px;flex-shrink:0}
.hand-card{touch-action:pan-x;user-select:none;-webkit-user-select:none}.hand-card.queued{opacity:.4;filter:grayscale(.45)}.war-dragging .hand-card{touch-action:none}.slot.drag-target{box-shadow:inset 0 0 0 3px #f7d890,0 0 30px #f5c768b0!important;filter:brightness(1.5);transform:scale(1.035);z-index:5}.slot.your-slot[data-pos="0"]{outline:1px dashed #ba995e55;outline-offset:-4px}
.battle-cinema{position:fixed;z-index:150;inset:0;background:#060a10aa;display:none;justify-content:center;align-items:center;padding:16px;pointer-events:none}.battle-cinema.visible{display:flex}.cinema-panel{border:2px solid #a58a55;border-radius:13px;padding:22px 18px;background:linear-gradient(145deg,#343026,#141c25 70%);text-align:center;width:min(420px,92vw);box-shadow:0 0 80px #000,0 0 36px #c9984b33;animation:cinema-enter .35s ease both}.cinema-front{font-size:11px;letter-spacing:3px;display:block;color:#e9cb91}.cinema-panel strong{display:block;font-family:Georgia,serif;font-size:30px;margin:9px 0;color:#f6d79b;letter-spacing:1px}.cinema-panel p{font-size:14px;line-height:1.5;color:#e9e4da}.cinema-panel small{display:block;font-size:9px;letter-spacing:2px;margin-top:15px;color:#a79d8d}.cinema-panel.war{border-color:#fd8f51;background:radial-gradient(ellipse at center,#5d2e18,#151923 78%)}.cinema-panel.damage,.cinema-panel.combat{border-color:#ed7772}.cinema-panel.claim,.cinema-panel.plant{border-color:#f8d37e}
@keyframes cinema-enter{from{opacity:0;transform:scale(.85) translateY(18px);filter:brightness(2)}to{opacity:1;transform:scale(1) translateY(0);filter:brightness(1)}}
/* Improve recognition of lavish upgrade paintings without sacrificing legibility. */
.slot:before{opacity:.93;background:linear-gradient(180deg,#03070b70,#07101b18 45%,#03070b70),var(--zone-image) center 50%/cover}.lane{box-shadow:inset 0 0 25px #0009,0 0 16px color-mix(in srgb,var(--lane) 10%,transparent)}.slot.occupied:before{opacity:.9}.slot .upgrade-label{border-top:1px solid #d7bb7c55;backdrop-filter:blur(3px)}
@media(max-width:849px){.queued-orders{min-height:23px;font-size:8px}.order-chip{font-size:9px;padding:4px 5px}.cinema-panel strong{font-size:25px}}

/* Combat spotlight floats above the board instead of obscuring it. */
.battle-cinema{background:linear-gradient(180deg,#050911a8,transparent 28%,transparent 72%,#05091166);align-items:flex-start;padding-top:clamp(62px,12vh,115px);pointer-events:auto}.cinema-panel{padding:12px 16px;width:min(370px,88vw);background:linear-gradient(160deg,#382c20f0,#151b26f0);box-shadow:0 8px 28px #000b,0 0 30px #deac5433}.cinema-panel strong{font-size:23px;margin:4px 0}.cinema-panel p{font-size:12px}.cinema-panel small{margin-top:6px}.lane.cinema-active{animation:frontSpot 0.6s infinite alternate;z-index:3}.lane.cinema-active .battle-line{background:radial-gradient(ellipse,#d8a45577,transparent);color:#fff2ce}.lane.cinema-active .unit{animation:impactJolt .3s ease-in-out 2}.lane.cinema-active .battle-line .clash-icon{transform:scale(1.35);filter:drop-shadow(0 0 9px #ffd079)}@keyframes frontSpot{from{box-shadow:inset 0 0 15px #f7b75420,0 0 6px var(--lane)}to{box-shadow:inset 0 0 25px #f7b75470,0 0 21px var(--lane)}}@keyframes impactJolt{0%{transform:translateX(0)}30%{transform:translateX(-3px)}60%{transform:translateX(3px)}100%{transform:translateX(0)}}

/* FGS 0.3 : brass-and-canvas battlefield skin; visuals remain genuinely interactive */
:root{--paper:#fff0cd;--muted:#c0b8a8;--gold:#efc36f;--red:#ef8167;--blue:#83caf0;--line:rgba(245,202,122,.35)}
.ambient{background:radial-gradient(ellipse at top,#a0c9d055,transparent 45%),linear-gradient(150deg,#3e3226da,#14191fed 64%),url('assets/concept.webp') center/cover;filter:blur(3px) saturate(1.14)}
.app{background:linear-gradient(90deg,#2c241a31,transparent,#2d241a31)}
.masthead{border-bottom:2px solid #ad8549}.brand-war{color:#ffe1a2;text-shadow:0 2px 2px #1c1010,0 0 12px #edb45066}.brand h1{color:#f6e8cc}
.lane-heading{border-width:2px;border-bottom-width:0;background:linear-gradient(180deg,color-mix(in srgb,var(--lane) 25%,#5d4432),#302f35);box-shadow:inset 0 1px 0 #efd9a352}
.lane{border-width:2px;background:linear-gradient(90deg,#2f241d,#62523d 5%,#374552 9%,#23313c 49%,#374552 91%,#62523d 95%,#2f241d);box-shadow:inset 0 0 18px #14110b,0 3px 10px #0a0b0c}
.lane:before,.lane:after{width:4px;opacity:.9;background:repeating-linear-gradient(180deg,#ccae78 0 7px,#654931 7px 11px,#261f1b 11px 15px)}
.slot{border-color:#b49a6b8a;box-shadow:inset 0 2px 6px #060a0cc9,0 1px 0 #e5c49354;background-color:#1f313d}
.slot:before{opacity:.82;background:linear-gradient(180deg,#060e1573,transparent 40%,#03050ac2),var(--zone-image) center/cover}
.slot .upgrade-label{background:#3f301dcf;color:#ffe7a9;border-color:#cda66a;font-weight:700;text-shadow:0 1px 2px #000}
.slot .travel{background:#20343bad;color:#fff0c7;padding:2px;border-radius:2px}
.unit{box-shadow:0 2px 4px #000e,0 0 0 1px #f6d7a5a8;filter:saturate(1.12)}.unit.ATT{border-color:#f9a079}.unit.DEF{border-color:#9bd4fa}.unit.CLAIM{border-color:#f3d78e}
.battle-line{background:linear-gradient(90deg,#37291e,#755a38,#30271f);border-top:1px solid #edc7839c;border-bottom:1px solid #edc7839c;color:#ffe9b4}
.hand{background:linear-gradient(180deg,#2b241d77,transparent);border-radius:8px}.hand-card{box-shadow:0 3px 0 #6e5336,0 5px 8px #090b0c99;border-color:#c5a37c}.hand-card.active{box-shadow:0 0 0 2px #ffcc63,0 0 18px #f5be6980;transform:translateY(-4px)}
.primary-btn{background:linear-gradient(180deg,#f5d288,#b78a3e);border:1px solid #ffe0a1;color:#251b15;text-shadow:none;box-shadow:0 3px 0 #6b421b,0 5px 10px #090909a8}.mode-button.active{box-shadow:inset 0 0 18px #ffd88b20,0 0 0 1px #ffd88b}
.queued-orders{border-color:#c6a477;background:linear-gradient(90deg,#46362e,#222a30)}.replay-button{background:linear-gradient(90deg,#473321,#1a2e3d);border:1px solid #dbb678;color:#ffe4a9;border-radius:4px;padding:5px 10px;font-size:10px;font-weight:800;letter-spacing:.8px;width:100%}
.battle-cinema{background:transparent;align-items:center;justify-content:center;padding-top:0;pointer-events:none}
.cinema-panel{margin-top:-8vh;width:min(370px,84vw);background:linear-gradient(155deg,#4d3422ed,#192b3be8);border:2px solid #f2cc81;box-shadow:0 6px 15px #000a,0 0 12px #f0bb5a77;pointer-events:auto}
.cinema-panel strong{text-shadow:0 2px 5px #000;font-size:23px}.cinema-panel p{font-weight:600}
.lane.cinema-active{filter:brightness(1.25)}.lane.cinema-active .unit{animation:impactJolt .28s ease-in-out 3}
@media(max-width:849px){.lane{padding:4px 5px}.unit .rank{font-weight:900}.queued-orders{min-height:25px}.replay-button{font-size:9px;padding:4px}}

/* 0.4: direct input and chronological board playback. */
.hand-card{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.armoury-grid .hand-card{touch-action:pan-y}
.slot{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.drag-ghost{position:fixed!important;width:54px!important;height:73px!important;z-index:250;pointer-events:none;opacity:.94;transform:rotate(-5deg)!important;border:2px solid #ffe5a6;box-shadow:0 12px 22px #000a!important}
.motion-ghost{animation:none!important;transition:none!important;overflow:hidden}
.reservation{position:absolute;bottom:2px;left:2px;right:2px;z-index:6;background:#573b16ed;border:1px dashed #ffe3a0;color:#fff4d7;padding:2px 1px;border-radius:3px;font:700 7px/1.3 system-ui;pointer-events:none}
.slot:has(.reservation){border:2px dashed #f5d18c}
.wait-tag{position:absolute;bottom:0;left:0;right:0;background:#253e52ef;color:#ffe5a9;font:700 7px/1.2 system-ui;letter-spacing:.5px;text-align:center}
.effect-number{position:fixed;z-index:130;pointer-events:none;font:900 23px/1 system-ui;text-shadow:0 2px 3px #000,0 0 5px #000;color:#e9f6a3}
.effect-number.damage{color:#ff9a80}
.lane.cinema-active{animation:none;filter:none;box-shadow:inset 0 0 0 2px var(--lane),0 0 12px #e9bd7044}
.lane.cinema-active .unit{animation:none}
.lane.cinema-active .battle-line{color:#fff7df}
.battle-cinema{position:fixed;inset:auto;z-index:120;padding:0;pointer-events:none;display:none;align-items:stretch;background:#151b20}
.battle-cinema.visible{display:flex}
.timeline-panel{pointer-events:auto;width:100%;height:100%;border:1px solid #d3ae6a;border-radius:8px;padding:12px 14px;background:linear-gradient(135deg,#43331ff7,#182937fa);display:flex;flex-direction:column;justify-content:center;gap:9px;text-align:left;box-shadow:0 5px 18px #0008}
.timeline-top{display:flex;align-items:center;justify-content:space-between;gap:4px;font:600 9px/1.2 system-ui;letter-spacing:.7px;color:#d1bc97}
.timeline-top>div{display:flex;gap:5px;flex-shrink:0}
.timeline-top button{min-width:40px;min-height:34px;border:1px solid #c5a46a;background:#352c21;border-radius:5px;font:700 10px/1 system-ui;color:#ffe3aa;padding:7px}
.timeline-panel>strong{font:400 23px/1.05 Georgia,serif;color:#ffe1a6}
.timeline-panel>p{font:500 13px/1.45 system-ui;color:#fff1d4;max-width:580px}
.timeline-panel>small{font:500 9px/1.4 system-ui;color:#b7c2c7}
#boot-status{position:fixed;inset:0;z-index:300;background:radial-gradient(ellipse at center,#403324,#141b22 70%);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;padding:25px;text-align:center}
#boot-status>strong{font:400 25px Georgia,serif;letter-spacing:2px;color:#f2d196}
#boot-status>p{font:13px/1.5 system-ui;color:#cecebc}
#boot-retry{border:1px solid #e1bb77;border-radius:6px;padding:12px 22px;background:#47361e;color:#ffe4b4}
@media(max-height:735px){.timeline-panel{gap:5px;padding:9px 12px}.timeline-panel>strong{font-size:19px}.timeline-panel>p{font-size:11px}}
@media(max-height:520px) and (min-width:650px){.queued-orders{position:absolute;right:-213px;bottom:113px;width:199px;min-height:24px}.hand{height:calc(100% - 166px)}.timeline-panel{padding:9px}.timeline-top{flex-wrap:wrap;gap:7px}.timeline-panel>strong{font-size:18px}.timeline-panel>p{font-size:11px}}

/* Seven cards fit together; a smaller exhausted hand keeps the same card scale. */
#hand{gap:4px;justify-content:center}
#hand .hand-card{flex:0 1 calc((100% - 24px)/7);min-width:0;max-width:76px;width:100%}
.hand-heading #hand-hint{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hand-heading #all-cards{flex-shrink:0;margin-left:6px}

/* 0.5 — distinct next-order sockets, persistent zone levels, visible capture. */
.queued-orders{height:53px;min-height:53px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;overflow:visible;padding:0;border:0;background:none;white-space:normal}
.order-slot{position:relative;min-width:0;border:1px dashed color-mix(in srgb,var(--lane) 65%,#444);border-radius:6px;background:#181f23;box-shadow:inset 0 0 12px #0008}
.queue-drop{width:100%;height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 3px 3px;background:transparent;border-radius:5px;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.queue-label{font:600 6px/1 system-ui;letter-spacing:.5px;color:var(--lane)}
.queue-drop>b{font:700 19px/1.15 Georgia,serif;color:#ffe9bc;text-shadow:0 2px 3px #000}
.queue-drop>b>em{font:800 8px system-ui;letter-spacing:.3px;padding-left:2px;font-style:normal}
.queue-card{background:linear-gradient(90deg,#18232bea,#18212b4d,#18232bea),var(--unit-image) center 35%/cover}
.order-slot.filled{border-style:solid;border-color:#f6d18a;box-shadow:inset 0 0 0 1px #c7995155}
.queue-cancel{position:absolute;right:-3px;top:-4px;width:21px;height:21px;z-index:3;border:1px solid #b39a69;border-radius:50%;background:#302719;font-size:14px;line-height:1;padding:1px}
.order-slot.open .queue-empty{color:#e9c989}.order-slot:not(.open) .queue-empty{font:700 9px system-ui;color:#978e7b}
.queue-drop.drag-target{box-shadow:inset 0 0 0 2px #ffe8b0,0 0 18px #f4d38580;background-color:#77623a44}
.lane{grid-template-rows:1fr 1fr 1.1fr 49px 1.1fr 1fr 1fr}
.claim-meter{position:relative;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:3px;padding:3px 4px;background:linear-gradient(110deg,#3b2d1f,#624829,#332c25);line-height:1}
.claim-meter:before,.claim-meter:after{display:none}
.claim-caption{background:none;color:#ffe2a4;padding:0;min-height:12px;font:700 7px/1 system-ui;letter-spacing:.4px;text-align:center}
.claim-caption>span{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d7b479;border-radius:50%;width:10px;height:10px;margin-left:1px;font-size:7px}
.capture-row{display:flex;align-items:center;gap:3px;height:10px;font:700 6px/1 system-ui;letter-spacing:0}
.capture-row>span{width:14px;text-align:left;color:#d1c1a4}.capture-row>small{font:600 6px/1 system-ui;width:29px;text-align:right;color:#e3ce9e}
.capture-track{position:relative;flex:1;height:7px;border:1px solid #9b824e;border-radius:3px;background:#151a1b;overflow:hidden}
.capture-track>i{display:block;background:linear-gradient(90deg,#bd8b30,#ffe5a2);height:100%;transition:width .5s ease;box-shadow:0 0 8px #ffe198}
.capture-row.enemy .capture-track>i{background:linear-gradient(90deg,#913e36,#f8a27c)}
.capture-track>b{position:absolute;left:50%;top:0;bottom:0;border-left:1px solid #5b462b}
.mode-button.claim b>em{display:block;font:600 6px/1 system-ui;color:#e5bc63;letter-spacing:1px;font-style:normal;padding-top:2px}
.mode-button.claim:not(.active){border-color:#b9984a88;color:#e3c184}
.mode-button.claim.active b>em{color:#ffedb7}
.zone-level{position:absolute;right:2px;top:2px;border:1px solid #d4b87377;padding:1px 3px;border-radius:3px;background:#191d22e6;color:#ffdc8d;font:700 7px/1.1 system-ui;z-index:4;pointer-events:none}
.zone-output{position:absolute;bottom:2px;left:2px;right:2px;background:#2b2117df;color:#ffe6a7;border-top:1px solid #b7976466;border-radius:2px;font:700 7px/1.3 system-ui;padding:2px 0;pointer-events:none}
.slot.occupied .zone-output{display:none}.slot.occupied .zone-level{top:auto;bottom:1px;right:2px;font-size:6px;padding:1px 2px}
.grown-zone{border-color:#f1c56d9c}.slot.just-upgraded{animation:zone-level-pop .5s ease}
.zone-level-up{position:absolute;inset:0;display:grid;place-items:center;color:#fff5ae;font:900 23px/1 system-ui;text-shadow:0 2px 3px #000,0 0 8px #e7c36b;z-index:6;background:#392a1366;pointer-events:none}
@keyframes zone-level-pop{0%{filter:brightness(1)}40%{filter:brightness(2);box-shadow:0 0 15px #ffe4a2}100%{filter:brightness(1)}}
.unit .hp-track{height:4px}.unit .hp-track i{transition:width .45s ease}.unit .attack-track{background:#452022}.unit .attack-track i{background:linear-gradient(90deg,#ca674a,#ffd185)}
.unit .rank{font-size:clamp(16px,2vw,25px)}
.battle-note{position:absolute;top:50%;left:3%;right:3%;transform:translateY(-50%);z-index:16;pointer-events:none;text-align:center;padding:6px 2px;border:1px solid #f0c478;border-radius:6px;background:linear-gradient(150deg,#432f22f5,#1b242cf5);box-shadow:0 5px 15px #000a}
.battle-note>small{display:block;color:#d4c6a8;font:800 7px/1.2 system-ui;letter-spacing:.1px}.battle-note>strong{display:block;color:#ffe9b2;font:800 clamp(14px,2vw,23px)/1.5 system-ui;white-space:nowrap}.battle-note>span{display:block;color:#f6d391;font:700 6px/1.1 system-ui}
.battle-note.damage,.battle-note.duel{border-color:#f89971}.battle-note.claim,.battle-note.plant{border-color:#ffe185;background:linear-gradient(150deg,#654622f7,#1b2c30f5)}
.flying-flag{position:fixed;z-index:180;pointer-events:none;font:700 36px/1 Georgia,serif;color:#ffda79;text-shadow:0 0 16px #fdc256,0 2px 4px #000}
.impact-flash{animation:impact-light .28s ease-out}.claim-celebrate{animation:claim-light .8s ease-out}
@keyframes impact-light{0%,100%{filter:brightness(1)}22%{filter:brightness(1.6)}50%{filter:brightness(1.05)}}
@keyframes claim-light{0%,100%{box-shadow:inset 0 0 0 1px #dec174}40%{box-shadow:inset 0 0 45px #f9d15b77,0 0 18px #ffdd9888}}
.status{width:100%;background:none;border:0;cursor:pointer;padding-left:3px;padding-right:3px;text-align:center}
#replay-turn{margin-left:4px;font-size:8px;color:#e4c589}
.claim-lesson{display:flex;flex-direction:column;gap:12px;margin:15px 0}.claim-lesson>div{position:relative;padding:5px 4px 5px 38px}.claim-lesson>div>b{position:absolute;left:0;top:3px;border:1px solid #d3b174;background:#4a3725;color:#ffe2a2;border-radius:50%;width:27px;height:27px;display:grid;place-items:center;font:700 14px Georgia}.claim-lesson strong{font-size:13px;color:#ffe4ac}.claim-lesson p{margin-top:4px!important;font-size:11px!important}
.recap-list>article{border-bottom:1px solid #b19c6355;padding:8px 0}.recap-list small{color:#e2c388;letter-spacing:1px;font:700 8px system-ui}.recap-list p{margin:4px 0!important}
@media(max-width:849px){.lane{grid-template-rows:1fr 1fr 1.1fr 44px 1.1fr 1fr 1fr}.queued-orders{height:48px;min-height:48px;gap:6px}.battle-note>strong{font-size:15px}.unit .hp-track{height:3px}}
@media(max-height:735px) and (max-width:849px){.board{min-height:175px}.queued-orders{height:43px;min-height:43px}.queue-label{font-size:5px}.queue-drop>b{font-size:16px}.lane{grid-template-rows:1fr 1fr 1.08fr 38px 1.08fr 1fr 1fr;gap:2px}.hand{height:60px}.hand-card{height:52px}.claim-caption{font-size:6px;min-height:9px}.capture-row{height:8px}.capture-track{height:6px}.zone-output{font-size:5px;padding:1px}.zone-level{font-size:5px}.slot .travel{font-size:5px;padding:0}.unit .rank{font-size:16px}.battle-note{padding:4px 1px}.battle-note>strong{font-size:13px}.battle-note>small{font-size:6px}}
@media(max-height:520px) and (min-width:650px){.queued-orders{height:46px;min-height:46px;bottom:113px;width:199px;gap:3px}.hand{height:calc(100% - 189px)}.queue-label{font-size:4px;letter-spacing:0}.queue-drop>b{font-size:14px}.queue-drop>b>em{font-size:6px}.lane{grid-template-rows:1fr 1fr 1fr 35px 1fr 1fr 1fr}.queue-cancel{width:18px;height:18px;font-size:12px}.claim-caption{font-size:6px}.capture-row{height:7px}}

/* 0.7 — fixed troop roles, readable attack styles and five permanent claim ticks. */
.unit.HEAL{--mode-color:#9ce1b2;border-left:3px solid #64ce95;background-color:#163a2c}
.unit.HEAL .hp-track i{background:#8ae5ad}
.unit.ranged{border-top:2px solid #cfb6ff}.unit.siege{border-top:2px solid #ffa650}
.hand-card.role-ATT{border-bottom:3px solid #e58875}.hand-card.role-DEF{border-bottom:3px solid #73c7e6}
.hand-card.role-CLAIM{border-bottom:3px solid #f6d469}.hand-card.role-HEAL{border-bottom:3px solid #79dca1}
.hand-type{position:absolute;bottom:2px;left:0;right:0;font-size:7px;line-height:12px;letter-spacing:0;text-align:center;font-weight:800;color:#fff4d8;background:#111923d9}
.mode-button.heal.active{border-color:#71c899;background:linear-gradient(#27533b,#182c24);color:#bcebcf}
.action-dock .mode-button{min-width:0;gap:3px}.action-dock .mode-button b{font-size:8px;letter-spacing:0}.action-dock .mode-button>span{font-size:15px}
.action-dock .mode-button b em{display:none}
.capture-track>b{inset:0;border:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),#42351f 20%);pointer-events:none}
.effect-number.heal{color:#a4ffd0}.battle-note.heal{border-color:#78dba1}.healing-target{box-shadow:0 0 15px #72efb2!important}.ranged-target{box-shadow:0 0 15px #ffc374!important}
.support-projectile{position:fixed;z-index:150;pointer-events:none;font-size:25px;color:#ffe3a0;text-shadow:0 0 10px #ff8737}.support-projectile.heal{color:#91ffc3;text-shadow:0 0 10px #2fde85}
@media(max-width:400px){.hand-type{font-size:6px}.action-dock .mode-button{gap:2px}.action-dock .mode-button>span{font-size:13px}.action-dock .mode-button small{font-size:10px;margin-left:0}.action-dock .mode-button b{font-size:7px}}
@media(max-height:520px) and (min-width:650px){.action-dock .mode-button{flex-direction:column;gap:0;position:relative}.action-dock .mode-button>span{display:none}.action-dock .mode-button b{font-size:6px}.action-dock .mode-button small{font-size:10px}}

/* Combat reads directly on the board. */
.battle-cinema{background:transparent;align-items:flex-end;padding:0 0 8px}.combat-controls{pointer-events:auto;display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid #a0885266;border-radius:8px;background:#111820ed;box-shadow:0 4px 18px #0008}.combat-controls span{font-size:9px;letter-spacing:1px;white-space:nowrap}.combat-controls>i{flex:1;height:3px;background:linear-gradient(to right,#e5c178 var(--progress),#47505a var(--progress))}.combat-controls button{background:#2b333b;padding:8px;border-radius:4px;font-size:10px;color:#efdab0}.lane.cinema-active .unit{animation:none}.lane.cinema-active{animation:none}
.pierce-beam{position:fixed;height:12px;margin-top:-6px;transform-origin:left center;z-index:145;pointer-events:none}.pierce-beam>i{display:block;height:100%;width:100%;transform-origin:left center;background:linear-gradient(90deg,#e17b2900,#ffb546 25%,#fff8c8);box-shadow:0 0 9px #ffbe55,0 0 22px #ff8024;border-radius:8px}.pierce-beam>i:after{content:'';position:absolute;right:-12px;top:-9px;border-left:24px solid #fff1b0;border-top:15px solid transparent;border-bottom:15px solid transparent;filter:drop-shadow(0 0 7px #ffc15c)}
.impact-ring,.shield-impact,.cleave-sweep{position:fixed;z-index:148;pointer-events:none}.impact-ring{width:32px;height:32px;border:3px solid #ffe0a8;border-radius:50%;box-shadow:0 0 15px #f16d38}.shield-impact{font-size:58px;font-weight:900;color:#adf0ff;text-shadow:0 0 12px #32baff,0 0 28px #71cfff}.cleave-sweep{height:58px;border-top:9px solid #ffe2a1;border-radius:50%;filter:drop-shadow(0 0 7px #fc773a)}
.aura-wash{position:absolute;inset:0;pointer-events:none;z-index:3;border:1px solid #7eebaa66;border-radius:5px;box-shadow:inset 0 0 14px #4fdc8438;background:radial-gradient(ellipse at bottom,#6bec9b20,transparent 70%)}.slot.heal-covered{border-color:#6bdd9e99}.slot.healer-source{box-shadow:inset 0 0 12px #70ec9855,0 0 7px #65dca544}.slot.healer-source:after{inset:2px;height:auto;border:2px solid #9df8b7aa;border-radius:50%;transform:none;z-index:4;animation:aura-breathe 1.8s ease-in-out infinite}.unit.overhealed{box-shadow:inset 0 0 9px #74e4a55c}.claim-damage{position:absolute;bottom:5px;left:42%;font-size:9px;color:#f4d684}.effect-number.damage{text-shadow:0 2px 3px #000,0 0 8px #f04722}
@keyframes aura-breathe{50%{opacity:.3;transform:scale(.9)}}
@media(prefers-reduced-motion:reduce){.slot.healer-source:after{animation:none}}
body.reduce-motion .slot.healer-source:after{animation:none}
@media(max-height:520px) and (min-width:650px){.queued-orders{bottom:76px}.hand{height:calc(100% - 152px)}}

/* Matching troops and their evolutions retain the original card artwork. */
.unit.evolved{border:2px solid #abed8b;box-shadow:inset 0 0 12px #83d94b44,0 0 7px #c4f68655}.unit.evo-2{border-color:#e8beff;box-shadow:inset 0 0 14px #bf8ef844,0 0 9px #da9eff66}.unit.evo-melee{--mode-color:#ffab78}.unit.evo-ranged,.unit.evo-siege{--mode-color:#b6ef87}.unit.evo-def{--mode-color:#a5ddff}.unit.evo-heal{--mode-color:#a5f7d4}.evolved .rank{font-size:20px}.evolved .unit-stat small{font-size:6px;max-width:100px}.evo-stars{position:absolute;top:1px;left:45%;font-size:8px;color:#e8d2a0}.status-mark{position:absolute;left:32%;bottom:5px;font-size:15px;text-shadow:0 0 5px #000}.poison-mark{color:#bced76}.stun-mark{color:#a5e0ff;left:55%;font-size:21px}.guard-charge{position:absolute;bottom:3px;left:51%;font-size:7px;color:#c2e5ff}.merge-ready{outline:2px solid #dfca7c;outline-offset:-2px}.merge-ready:after{content:'⇈';z-index:5;top:auto;bottom:0;left:46%;height:16px;border:0;color:#ffeb9b;font-size:16px;transform:none}.evolution-burst{position:fixed;z-index:160;pointer-events:none;padding:7px 12px;border:1px solid #e1c879;border-radius:5px;background:#152122ed;color:#f9e6ac;font-weight:800;text-transform:uppercase;letter-spacing:1px;font-size:12px;white-space:nowrap;box-shadow:0 0 24px #bfe68788}.evolution-info{color:#d6b8f8}

/* Dedicated eight-tile evolution artwork, separate from the retained base art. */
.unit.evolved{isolation:isolate;background:#101821;border-radius:6px}.unit.evolved:before{content:'';position:absolute;inset:0;z-index:-2;background-image:url('assets/evolution-atlas.png');background-size:200% 400%;background-position:var(--evo-x) var(--evo-y)}.unit.evolved:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0b1014d9,transparent 30%,transparent 63%,#0b1014ed);pointer-events:none}.unit.evolved .rank{font-size:18px;text-shadow:0 2px 4px #000}.unit.evolved .unit-stat small{font-size:6px;max-width:90px;text-shadow:0 2px 3px #000}.unit.evo-1{border-color:#bdc7a3}.unit.evo-2{border-color:#ffd082;box-shadow:0 0 9px #f3cf6970,inset 0 0 9px #f3cf6926}.unit.evo-ranged{border-color:#bbeb68}.unit.evo-def{border-color:#6ccafa}.unit.evo-heal{border-color:#5ff2d5}.unit.evo-melee{border-color:#ff9b64}
.fx-blade{--fx:#ff6950}.fx-venom{--fx:#b6f44f}.fx-shield{--fx:#7cdbff}.fx-siphon{--fx:#52f1cd}.fx-rally{--fx:#ffdc78}.fx-arrow{--fx:#fff2b5}.pierce-beam[class*='fx-']>i{background:linear-gradient(90deg,transparent,var(--fx) 35%,#fff);box-shadow:0 0 9px var(--fx),0 0 18px var(--fx)}.pierce-beam[class*='fx-']>i:after{border-left-color:var(--fx);filter:drop-shadow(0 0 6px var(--fx))}.pierce-beam.fx-tier-2{height:17px;margin-top:-8px}.pierce-beam.fx-tier-2>i{border-top:2px solid #fff9;border-bottom:2px solid #fff9}.pierce-beam.fx-siphon{height:4px}.pierce-beam.fx-shield{height:6px}.pierce-beam.fx-rally{height:3px}.pierce-beam.fx-rally>i:after,.pierce-beam.fx-siphon>i:after,.pierce-beam.fx-shield>i:after{display:none}.pierce-beam.fx-blade>i{clip-path:polygon(0 15%,85% 15%,100% 50%,85% 85%,0 85%)}
.ability-wave{position:fixed;z-index:145;border:2px solid var(--fx);border-radius:45%;box-shadow:0 0 12px var(--fx),inset 0 0 7px var(--fx);pointer-events:none}.ability-wave.fx-shield{border-radius:12% 12% 45% 45%;border-width:4px}.ability-wave.fx-siphon{border-style:dashed}.merge-spark{position:fixed;width:7px;height:7px;border-radius:2px;z-index:153;background:var(--fx);box-shadow:0 0 9px var(--fx);pointer-events:none}.evolved-slash{border-top-color:#ff8065;border-top-width:10px;filter:drop-shadow(0 0 8px #f94c39)}.command-bonus{position:absolute;bottom:5px;left:33%;font-size:8px;color:#ffe298;text-shadow:0 1px 3px #000}.command-wash{position:absolute;inset:0;border:1px solid #e5bd65;box-shadow:inset 0 0 12px #e5bd653f;z-index:4;pointer-events:none}.slot.command-source{box-shadow:inset 0 0 12px #fb80504d,0 0 6px #ffbb6677}.slot.command-covered{border-color:#f1cc81}.evolution-burst{font-size:10px;letter-spacing:.5px}

/* Source → contact → return damage: short, anchored combat cues. */
.impact-tag{position:fixed;z-index:158;pointer-events:none;font-size:10px;font-weight:900;letter-spacing:1px;white-space:nowrap;color:var(--fx,#ffdb9c);padding:4px 7px;border:1px solid currentColor;border-radius:4px;background:#0d1622ed;text-shadow:0 1px 3px #000;box-shadow:0 0 12px #0008}.impact-tag.fx-shield{background:#102c3be8}.modal [data-action="dismiss"]{margin-top:7px;margin-bottom:5px;min-height:42px;background:linear-gradient(110deg,#57392c,#332a26);border:1px solid #bd8b67;color:#ffe2c4}.modal [data-action="dismiss"]+p{margin-bottom:16px}.effect-number{z-index:159}.effect-number.heal{color:#96ffc1;text-shadow:0 1px 3px #000,0 0 8px #36b485}.effect-number.upgrade{color:#ffe29b;text-shadow:0 1px 3px #000,0 0 8px #e6a64b}.unit .hp-track{height:4px}.unit .hp-track i{box-shadow:0 0 5px currentColor}

/* 0.12 — weapon silhouettes remain legible independently of portrait and color. */
.style-melee{--weapon:#ff9b83;--weapon-dark:#542820}
.style-ranged{--weapon:#c2ee84;--weapon-dark:#243d24}
.weapon-icon{width:21px;height:21px;display:inline-block;vertical-align:middle;flex:none}
.unit.ATT.style-melee{--mode-color:#ffa58d;border-color:#bd6b57;border-top:2px solid #cf7058;border-radius:2px 9px 2px 2px}
.unit.ATT.style-ranged{--mode-color:#c2ee84;border-color:#93ba60;border-top:2px solid #a5d570;border-left-color:#a5d570;border-radius:12px 3px 12px 3px}
.unit.ATT:not(.evolved){background-image:linear-gradient(90deg,#151b22f0,color-mix(in srgb,var(--weapon-dark) 42%,transparent) 47%,#141d23ee),var(--unit-image)}
.unit.ATT .rank .suit{display:none}
.weapon-crest{position:absolute;left:36%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:26px;height:26px;color:var(--weapon);background:var(--weapon-dark);border:1px solid currentColor;box-shadow:0 1px 4px #0008;pointer-events:none}
.style-melee .weapon-crest{clip-path:polygon(0 0,100% 0,100% 73%,50% 100%,0 73%)}
.style-ranged .weapon-crest{border-radius:50%}
.unit.ATT .reach-mark{position:absolute;bottom:4px;left:3px;font:800 5px/1 system-ui;letter-spacing:.2px;color:var(--weapon)}
.unit.ATT .hp-track i{background:var(--weapon)}
.hand-card.role-ATT{color:#fff1de;background:linear-gradient(125deg,#171e24df,var(--weapon-dark),#101b22b0),var(--unit-image) center/cover;border-color:var(--weapon);border-bottom:3px solid var(--weapon)}
.hand-card.style-melee{border-radius:2px 13px 2px 2px}
.hand-card.style-ranged{border-radius:13px 3px 13px 3px}
.hand-card.role-ATT .hand-suit{position:absolute;right:4px;top:3px;margin:0;display:grid;place-items:center;width:24px;height:26px;background:var(--weapon-dark);color:var(--weapon);border:1px solid currentColor}
.hand-card.style-melee .hand-suit{clip-path:polygon(0 0,100% 0,100% 73%,50% 100%,0 73%)}
.hand-card.style-ranged .hand-suit{border-radius:50%;height:24px}
.hand-card .hand-reach{position:absolute;left:0;right:0;bottom:16px;text-align:center;color:var(--weapon);font:800 7px/1 system-ui;letter-spacing:.15px}
.hand-card.role-ATT .hand-type{color:var(--weapon);font-size:6px}
.queue-card.style-melee,.queue-card.style-ranged{box-shadow:inset 3px 0 var(--weapon);background:linear-gradient(90deg,var(--weapon-dark),#17202ccc),var(--unit-image) center/cover}
.queue-card .weapon-icon{margin:0 3px;color:var(--weapon)}
.queue-card.style-ranged{border-radius:12px 3px 12px 3px}
.queue-drop>b>em{font-size:7px}
.inspector-card .weapon-icon{width:35px;height:35px;margin-left:8px;color:var(--weapon)}
.finish-score{border-collapse:collapse;width:100%;margin:18px 0;color:#e5d6b5;font-size:12px}
.finish-score th,.finish-score td{padding:9px 7px;border-bottom:1px solid #b9a67c35;text-align:center}
.finish-score th:first-child{text-align:left;font-size:10px;font-weight:500}
.finish-score thead{color:#cbb480;font-size:9px}
@media(max-width:849px){.weapon-crest{width:16px;height:19px;left:35%}.weapon-crest .weapon-icon{width:14px;height:14px}.hand-card.role-ATT .hand-suit{right:2px;width:19px;height:21px}.hand-card.role-ATT .hand-suit .weapon-icon{width:17px;height:17px}.hand-card.style-ranged .hand-suit{height:19px}.unit.ATT .reach-mark{font-size:4.5px;bottom:4px}}
@media(max-width:360px){.hand-card.role-ATT .hand-suit{top:3px;right:2px;width:15px;height:17px}.hand-card.role-ATT .hand-suit .weapon-icon{width:13px;height:13px}.hand-card.role-ATT .hand-rank{font-size:17px}.hand-card .hand-reach{font-size:6px}.weapon-crest{left:35%;width:16px;height:18px}.weapon-crest .weapon-icon{width:14px;height:14px}}

/* Claim lineage: banners gather into a gold-and-violet hook commander. */
.style-hunter{--weapon:#f2c975;--weapon-dark:#3d2453}
.unit.evo-claim:before{background-image:linear-gradient(110deg,#58402555,#51276366),url('assets/standard.webp');background-size:cover;background-position:center 38%}
.unit.evo-claim{--mode-color:#ffe19d;border-color:#e9c36c;box-shadow:0 0 9px #e9c36c55}
.unit.range-killer{--mode-color:#f0c88e;border:2px solid #d0a0f2;border-left-color:#ecc66e;border-radius:3px 12px 3px 12px}
.unit.range-killer .weapon-crest{border-radius:50% 50% 4px 4px;box-shadow:0 0 9px #cd8fe277}
.unit.range-killer .hp-track i{background:#d8a2f4}
.fx-hook{--fx:#e0a4ff}.pierce-beam.fx-hook{height:4px}.pierce-beam.fx-hook>i{background:repeating-linear-gradient(90deg,#ffe3a9 0 5px,#8b599e 5px 8px);border-radius:5px}.ability-wave.fx-hook{border-color:#e5b877;border-style:dashed;border-radius:18%}
.upgrade-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:17px 0}
.upgrade-choice{position:relative;min-width:0;min-height:116px;padding:12px 5px 9px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--lane) 55%,#20262b);border-radius:8px;background:linear-gradient(180deg,#11192344,#101821fa 80%),var(--zone-image) center/cover;color:#f6e7c7}
.upgrade-choice.chosen{outline:2px solid #ffe3a1;outline-offset:2px}
.upgrade-choice b{font:600 12px/1.1 Georgia,serif;text-align:center}
.upgrade-choice small{font:600 8px/1.3 system-ui;color:var(--lane);text-align:center}
.upgrade-choice-icon{font-size:25px;color:var(--lane);text-shadow:0 2px 5px #000;margin-bottom:auto}
.upgrade-choice:focus-visible{outline:3px solid #fff2c8;outline-offset:2px}
@media(max-width:420px){.upgrade-picker{gap:7px}.upgrade-choice{min-height:108px}.upgrade-choice b{font-size:11px}.upgrade-choice small{font-size:7px}.zone-select .cycle{font-size:7px}}
/* 0.14: readable cause, contact, consequence. */
.battle-cinema{flex-direction:column;justify-content:flex-end;gap:7px}
.combat-caption{width:100%;padding:10px 13px;border-left:3px solid #e9c378;background:#101923f2;border-radius:5px;box-shadow:0 3px 15px #0008}
.combat-caption strong{display:block;color:#ffe3a1;font-size:12px;letter-spacing:.7px}
.combat-caption span{display:block;margin-top:4px;font-size:11px;line-height:1.4;color:#e0e6e7;max-height:3em;overflow:hidden}
.unit.action-muted{opacity:.42;filter:saturate(.45)}
.unit.action-source{outline:2px solid #ffe1a0;outline-offset:2px;box-shadow:0 0 20px #ffcb7777;z-index:8}
.unit.action-target{outline:2px solid #fff2d7;outline-offset:1px;z-index:7}
.unit.HEAL.action-source{outline-color:#86ffc0;box-shadow:0 0 22px #5effa977}
.unit.DEF.action-target{outline-color:#9edfff}
.hp-cap-label{position:absolute;right:4px;top:3px;font-size:8px;color:#fff;background:#0b131ddd;padding:1px 3px;border-radius:3px;z-index:5}
.pierce-beam.fx-arrow i{height:7px;box-shadow:0 0 12px #ffd795}
.shield-impact{font-size:50px;background:#76c6ff33;border:3px solid #a1ddff;box-shadow:0 0 25px #64beff99}
@media(max-width:600px){.combat-caption{padding:7px 9px}.combat-caption strong{font-size:10px}.combat-caption span{font-size:10px}.combat-controls{gap:8px;padding:6px 8px}}
@media(prefers-reduced-motion:reduce){.unit .hp-track i{transition:none}}
/* 0.15: distinct role silhouettes and illustrated Claim evolutions. */
.style-def{--weapon:#91d5ff;--weapon-dark:#172e48;--portrait-x:0%;--portrait-y:0%}
.style-heal{--weapon:#91ffbc;--weapon-dark:#183c2a;--portrait-x:100%;--portrait-y:0%}
.style-claim{--weapon:#ffe19a;--weapon-dark:#443419}
.unit.DEF:not(.evolved),.unit.HEAL:not(.evolved),.hand-card.style-def,.hand-card.style-heal,.queue-card.style-def,.queue-card.style-heal{isolation:isolate;background:#101923}
.unit.DEF:not(.evolved):before,.unit.HEAL:not(.evolved):before,.hand-card.style-def:before,.hand-card.style-heal:before,.queue-card.style-def:before,.queue-card.style-heal:before{content:'';position:absolute;inset:0;z-index:-2;background-image:url('assets/roles-claim-atlas.png');background-size:200% 200%;background-position:var(--portrait-x) var(--portrait-y);pointer-events:none}
.unit.DEF:not(.evolved):after,.unit.HEAL:not(.evolved):after,.hand-card.style-def:after,.hand-card.style-heal:after,.queue-card.style-def:after,.queue-card.style-heal:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#071018ce,transparent 35%,transparent 60%,#071018da);pointer-events:none}
.unit.DEF{border-color:#84caff;border-radius:4px 4px 15px 15px}
.unit.HEAL{border-color:#91ecad;border-radius:16px 4px 16px 4px}
.hand-card.style-def,.queue-card.style-def{border-color:#91caff;color:#effaff;border-radius:4px 4px 13px 13px;text-shadow:0 2px 4px #000}
.hand-card.style-heal,.queue-card.style-heal{border-color:#8fedac;color:#effff4;border-radius:13px 4px 13px 4px;text-shadow:0 2px 4px #000}
.unit.evo-claim:before{background-image:url('assets/roles-claim-atlas.png');background-size:200% 200%;background-position:0% 100%}
.unit.evo-claim.evo-2:before{background-position:100% 100%}
.unit.evo-claim.evo-1{border:2px solid #f3d486;border-radius:3px 3px 12px 12px}
.unit.CLAIM:not(.evolved){border-color:#edc86c;border-style:double;border-width:3px}
.evolution-guide{display:grid;gap:10px;margin:16px 0}.evolution-guide article{padding:13px;border:1px solid var(--weapon,#b6af9b);border-left-width:4px;border-radius:7px;background:#101922}.evolution-guide strong{font-size:12px;color:var(--weapon,#f0d4b3)}.evolution-guide strong span{color:#9bafa9;margin:0 3px}.evolution-guide p{font-size:11px;margin-top:7px}
/* Base Claims must be illustrated in the hand too; no pale card wash. */
.style-smith{--weapon:#ffbb78;--weapon-dark:#4a281a;--portrait-x:100%;--portrait-y:0%}
.unit.CLAIM:not(.evolved),.unit.SMITH,.hand-card.style-claim,.hand-card.style-smith,.queue-card.style-claim,.queue-card.style-smith{isolation:isolate;background:#171b22;color:#fff0d2;text-shadow:0 2px 4px #000}
.unit.CLAIM:not(.evolved):before,.unit.SMITH:before,.hand-card.style-claim:before,.hand-card.style-smith:before,.queue-card.style-claim:before,.queue-card.style-smith:before{content:'';position:absolute;inset:0;z-index:-2;background-image:url('assets/claim-smith-atlas.png');background-size:200% 200%;background-position:var(--portrait-x,0%) var(--portrait-y,0%);pointer-events:none}
.unit.CLAIM:not(.evolved):after,.unit.SMITH:after,.hand-card.style-claim:after,.hand-card.style-smith:after,.queue-card.style-claim:after,.queue-card.style-smith:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#100d15c9,transparent 35%,transparent 60%,#100d15ca);pointer-events:none}
.unit.SMITH.evo-1:before{background-position:0% 100%}.unit.SMITH.evo-2:before{background-position:100% 100%}
.unit.SMITH{border:2px solid #eea460;border-radius:3px 13px 3px 3px}.unit.SMITH.evo-2{border-color:#7fedd7;box-shadow:0 0 10px #f8a24d88}.unit.SMITH .hp-track i{background:#f8b47c}
.hand-card.style-smith,.queue-card.style-smith{border-color:#ffbb78;border-radius:3px 13px 3px 3px}.hand-card.style-claim,.queue-card.style-claim{border-color:#ffe19a;border-radius:3px 3px 12px 12px}
.hand-card.style-claim .hand-rank,.hand-card.style-smith .hand-rank,.hand-card.style-claim .hand-suit,.hand-card.style-smith .hand-suit{color:#fff0ce;text-shadow:0 2px 4px #000}
.hand-card.style-claim .hand-type,.hand-card.style-smith .hand-type{background:#16121bd9;padding:3px;left:0;right:0;text-align:center;color:#ffe6b6;font-size:8px}
.unit.SMITH .unit-stat small{font-size:7px}.hand-card.style-smith .hand-suit{font-size:20px}
/* One health number, inside the card's themed bar. */
.unit{padding-bottom:15px}.unit .hp-track{height:13px;overflow:hidden;background:#101820e8;border-top:1px solid #ffffff30}.unit .hp-cap-label{inset:0;top:0;right:0;padding:0;background:transparent;text-align:center;font-size:10px;line-height:12px;font-weight:800;color:#fff;text-shadow:0 1px 3px #000,0 0 3px #000;border-radius:0}.unit .rank{font-size:17px}.unit .rank .weapon-icon{width:22px;height:22px}.unit-stat{max-width:70%;padding-bottom:3px}.unit .unit-stat small{font-size:8px;white-space:normal;max-width:100%;text-align:right}.unit .weapon-crest{display:none}.unit .reach-mark{bottom:16px}.unit .claim-damage{bottom:17px}.unit .unit-buff{display:none}
.queue-forge{position:absolute;right:5px;bottom:4px;font-size:9px;color:#ffe0a0;background:#1b1a21df;padding:2px 4px;border-radius:4px}.engineering-tile{padding:10px;border:1px solid #8e744e66;background:#16202a;border-radius:5px;margin-top:6px}.engineering-tile b{font-size:11px;display:block}.engineering-tile small{font-size:10px;display:block;margin-top:5px;color:#b7c4c3}.later-card{padding:12px 5px;border:1px solid #71654f;background:#1a2430;border-radius:7px;min-height:80px;font-size:20px}.later-card small{display:block;font-size:10px;margin-top:7px}.later-card.chosen{border:2px solid #ffe2a0;background:#4a3c28}.hand-heading{gap:5px}#cycle-hand{white-space:nowrap;font-size:9px;color:#f2d390}.brand-war{font-size:42px;letter-spacing:-2px}.brand h1{font-size:16px}
@media(max-width:600px){.unit .hp-track{height:11px}.unit .hp-cap-label{font-size:9px;line-height:10px}.unit .unit-stat small{font-size:6px}.unit{padding-bottom:12px}.brand-war{font-size:35px}.brand h1{font-size:13px}.hand-heading #hand-hint{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}}

/* Campaign v1: the field grows inside its own scroll area; orders stay in reach. */
.campaign-strip{display:grid;grid-template-columns:1fr auto;gap:4px 8px;flex-shrink:0;padding:9px 10px;margin:2px 0 4px;border:1px solid #b99a6055;border-radius:7px;background:linear-gradient(110deg,#3b3024d9,#16222c)}
.campaign-strip strong{display:block;font-size:12px;letter-spacing:1px;color:#ffe0a0}.campaign-strip small{display:block;margin-top:4px;font-size:10px;color:#c8c5b6}.campaign-strip p{grid-column:1/-1;font-size:10px;line-height:1.4;color:#e5cb95}.campaign-strip .link-btn{font-size:9px;min-height:44px;padding:0 7px;grid-column:2;grid-row:1/3;align-self:center}
.battlefield-scroll{flex:1;min-height:150px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-x pan-y;border-radius:7px;-webkit-overflow-scrolling:touch}
.battlefield-content{min-width:100%;min-height:100%;width:max-content;display:flex;flex-direction:column}
.battlefield-content .board,.battlefield-content .lane-heads{width:100%;min-width:100%;gap:6px}
.battlefield-content .board{flex:1}.battlefield-content .lane-heads{position:sticky;top:0;z-index:9;margin-top:0;height:36px;background:#1e242a}
.battlefield-content .lane{padding:5px;gap:3px}.battlefield-content .slot{min-height:44px;touch-action:pan-x pan-y}
.battlefield-content .lane-heading small{font-size:7px;letter-spacing:0;white-space:normal}.battlefield-content .lane-heading strong{font-size:11px;letter-spacing:.3px}.battlefield-content .lane-heading span{font-size:17px}
.battlefield-content .claim-caption{min-height:16px;font-size:7px}.claim-help-target{position:absolute;inset:0;z-index:2;width:100%;height:100%;background:transparent;border:0;border-radius:4px}.claim-caption{pointer-events:none;display:block}.battlefield-content .capture-row{height:9px;pointer-events:none}.battlefield-content .unit .unit-stat small{font-size:7px;letter-spacing:0}.battlefield-content .slot .travel{font-size:7px;letter-spacing:0}.battlefield-content .unit .hp-cap-label{font-size:10px;line-height:12px}.battlefield-content .unit .hp-track{height:13px}
.queued-orders{overflow-x:auto;overflow-y:hidden;min-height:58px;height:58px;padding:3px 1px;scrollbar-width:thin;touch-action:pan-x}.queue-drop{min-height:48px;touch-action:pan-x}.queue-label{font-size:8px;letter-spacing:0}.queue-cancel{width:44px;height:44px;top:0;right:0;background:#252a30e0;border-radius:0 5px 0 7px}.order-slot.filled .queue-drop{padding-right:35px}.queue-cancel{font-size:22px}
.primary-btn,.secondary-btn,.icon-btn,.close-btn,.tag-btn,.combat-controls button{min-height:44px}.icon-btn,.close-btn{min-width:44px}.turn-dock{min-height:48px}.hand-heading{min-height:44px}.hand-heading .link-btn,.commander .link-btn{min-height:44px}.hand-heading .link-btn{font-size:9px}.hand-heading #hand-hint{font-size:9px;letter-spacing:0}.ally{min-height:44px}.status{min-height:29px;height:auto;flex-shrink:0;padding:5px 2px;font-size:10px;line-height:1.35}.turn-info small{font-size:8px}.turn-info strong{font-size:11px}
.modal .secondary-btn,.modal .link-btn{min-height:44px}.finish-run{width:100%;margin-top:12px}.milestone-unlocked{padding:12px;margin:12px 0;color:#ffe4a6;border:1px solid #c4a268;background:#493923;font-size:12px;line-height:1.5;text-align:center;border-radius:7px}.workshop-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.engineering-tile small{line-height:1.5}.modal .claim-lesson p{font-size:12px}
.style-joker{--weapon:#e3b1ff;--weapon-dark:#392747}.unit.JOKER,.hand-card.style-joker,.queue-card.style-joker{border:2px solid #d8acf3;border-radius:12px 3px 12px 3px;background:radial-gradient(ellipse at top,#78538199,#19212bf0),var(--unit-image) center/cover;color:#ffe5ff}.style-joker .hand-type{color:#f5d1ff;font-size:8px}.style-joker .hand-suit{color:#f5d1ff}.joker-affinity{position:absolute;top:2px;right:4px;color:#f2c1ff;font-size:10px;font-weight:800;text-shadow:0 1px 3px #000}.unit.evo-3{border-color:#9ff3ee;box-shadow:0 0 9px #8bf0ee77}.unit.evo-4{border-color:#fff0b7;box-shadow:0 0 12px #ffd26c99}.evo-3 .evo-stars{color:#a7ffff}.evo-4 .evo-stars{color:#fff0b7}.unit.evo-3 .unit-stat small,.unit.evo-4 .unit-stat small{font-size:6px}
#hand .hand-card{min-width:44px}#hand{overflow-x:auto}
.advanced-merge-path{display:block;margin-top:8px;color:#c4e4e0;font-size:10px;line-height:1.5}.unit.evo-claim.evo-3:before,.unit.evo-claim.evo-4:before,.unit.SMITH.evo-3:before,.unit.SMITH.evo-4:before{background-position:100% 100%}

/* Divine assemblies have their own sigil and progress, separate from troop roles. */
.style-divine{--weapon:#e6d1ff;--weapon-dark:#342943}.unit.divine-unit{display:block;isolation:isolate;border:2px solid #c8a3ee;border-radius:12px 4px 12px 4px;background:radial-gradient(ellipse at 18% 30%,#765292aa,#192a35 60%,#111a28);box-shadow:inset 0 0 12px #dbbaff33,0 0 7px #bb86e24d;padding:0 0 13px;color:#f2e4ff}.divine-sigil{width:45px;height:45px;color:#e9cfff;filter:drop-shadow(0 0 5px #b28bd87a)}.divine-unit>.divine-sigil{position:absolute;width:33px;height:33px;top:0;left:0}.divine-unit-name{position:absolute;top:3px;left:34px;right:25px;text-transform:uppercase;font-size:6px;line-height:1.15;letter-spacing:.2px;color:#f6e8ff;font-weight:800;text-align:left}.divine-count{position:absolute;top:3px;right:3px;font-size:10px;color:#fff0c6}.divine-part-slots{display:inline-flex;align-items:center;gap:5px}.divine-part{display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--part-color);border-radius:50%;font-size:15px;color:var(--part-color);background:#13212f}.divine-part.missing{opacity:.28;filter:grayscale(1)}.divine-part.present{box-shadow:0 0 8px color-mix(in srgb,var(--part-color) 35%,transparent)}.divine-unit>.divine-part-slots{position:absolute;right:3px;bottom:15px;gap:3px}.divine-unit .divine-part{width:15px;height:15px;font-size:10px}.divine-unit .hp-track i{background:linear-gradient(90deg,#a88bdf,#e1c2ff)}.divine-count-2{border-color:#f5d99c!important;box-shadow:inset 0 0 12px #f4d6a533,0 0 9px #e2c8976b!important}.divine-count-3{border-color:#fff0b7!important;background:radial-gradient(ellipse at center,#73634b,#2d2842 65%,#142b32)!important}.divine-wound{position:absolute;left:29px;bottom:16px;font-size:10px;color:#b5e98f}.divine-inspector{text-align:center;padding:16px 12px;margin:12px 0;border:1px solid #c4a1e777;border-radius:8px;background:radial-gradient(ellipse,#493951,#152330 75%)}.divine-inspector>.divine-sigil{display:block;width:83px;height:83px;margin:0 auto 7px}.divine-inspector>strong{display:block;font-size:28px;color:#ffdf9b;margin-bottom:10px}.divine-inspector p{font-size:12px;color:#f0deff}.divine-recipe-intro{margin:18px 0 10px}.divine-recipe-intro>strong{color:#e4c8ff;font-size:11px;letter-spacing:1px}.divine-recipe-intro p{font-size:12px}.divine-recipes{border-collapse:collapse;width:100%;font-size:12px;line-height:1.5;margin:12px 0 18px}.divine-recipes th,.divine-recipes td{padding:11px 7px;border-bottom:1px solid #bb9bca4a;text-align:left;vertical-align:middle}.divine-recipes th{font-size:8px;letter-spacing:1px;color:#bcaec8}.divine-recipes td:first-child{color:#e8dec9;width:54%}.divine-recipes td>span{color:#a3c8d5;padding:0 2px}.divine-recipes td b{color:var(--part-color);font-size:11px}.divine-recipes td small{display:block;margin-top:3px;color:#d1bbc7;font-size:10px}.divine-current{padding:13px;border:1px solid #bc94da77;border-radius:7px;background:#1a2530;margin-top:15px}.divine-current>strong{font-size:10px;color:#e3c7fb;letter-spacing:1px}.divine-current .divine-part-slots{margin-left:5px;vertical-align:middle}.fx-divine{--fx:#e5c1ff}.ability-wave.fx-divine{border-radius:20% 50%;border-width:3px}.evolution-burst:has(+.fx-divine){color:#efd5ff}
.hand-card.hand-veteran{border-width:2px;border-color:#cbeee3;box-shadow:0 0 7px #98c9c644,0 3px 0 #6e5336}.hand-veteran .veteran-mark{position:absolute;left:2px;right:2px;bottom:24px;text-align:center;color:#e7ffd9;font-size:6px;font-weight:800;letter-spacing:.6px;text-shadow:0 1px 3px #000}.hand-card.hand-veteran .hand-type{font-size:6px!important;line-height:1.1;white-space:normal;text-align:center;padding:3px 1px!important;left:0;right:0;bottom:0;background:#101b25e8;min-height:20px;display:grid;place-items:center;letter-spacing:0}.hand-veteran.evo-4{border-color:#ffe2a1}.queue-card em{max-width:100%;overflow-wrap:anywhere}.armoury-grid .hand-veteran .hand-type{font-size:8px!important}
.divine-unit-name{white-space:nowrap;font-size:6px;letter-spacing:0}
@media(max-width:600px){.divine-recipes{font-size:11px}.divine-recipes td b{font-size:10px}.divine-recipes th,.divine-recipes td{padding:9px 5px}.divine-unit-name{font-size:6px;left:28px;right:24px}.divine-unit>.divine-sigil{width:29px;height:29px}.divine-count{font-size:9px}.divine-unit .divine-part{width:13px;height:13px;font-size:9px}.divine-unit>.divine-part-slots{gap:2px}}

/* Short, replayable chapters tie each saved expansion to its new battlefield. */
.comic-kicker{font-size:10px;letter-spacing:2px;color:#d8b67a;margin:-5px 0 14px}.war-comic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:14px}.comic-panel{min-width:0;overflow:hidden;border:2px solid #b99a68;background:#171b23;box-shadow:3px 3px 0 #06090b}.comic-scene{position:relative;min-height:136px;isolation:isolate;background:linear-gradient(180deg,#10192400,#11182188),url('assets/war-changed-atlas.png');background-size:auto,500% 100%;background-position:center,var(--chapter-position) center}.comic-scene:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(140deg,transparent 45%,#dec07822 46%,transparent 47%),linear-gradient(0deg,#090f19b0,transparent 65%)}.comic-panel-1 .comic-scene{filter:saturate(.55) sepia(.2)}.comic-panel-2 .comic-scene{filter:contrast(1.12)}.comic-panel-3 .comic-scene{filter:saturate(1.2)}.comic-number{position:absolute;top:5px;left:5px;display:grid;place-items:center;width:22px;height:22px;background:#161b22e8;border:1px solid #dbbb80;color:#ffe5ac;font:800 12px Georgia,serif}.comic-rail-symbols{position:absolute;bottom:11px;left:0;right:0;color:#ffe7ab;text-shadow:0 3px 4px #000,0 0 15px #000;font:800 29px/1 Georgia,serif;letter-spacing:4px;text-align:center}.comic-panel p{margin:0;padding:10px 8px;min-height:91px;font:500 12px/1.45 Georgia,serif;color:#f3e1bd;background:linear-gradient(150deg,#352c23,#1b242e)}.field-guide{padding:12px;border:1px solid #bda07177;border-left:3px solid #e4be78;border-radius:5px;background:#111c25}.field-guide>strong{display:block;font-size:13px;color:#ffe2a4}.field-guide p{font-size:11px;margin:9px 0 0;line-height:1.5;color:#cdd1ca}.field-before-after{display:flex;flex-wrap:wrap;gap:9px 18px;margin-top:11px}.field-before-after span{font-size:8px;color:#b9b7a8;letter-spacing:.7px}.field-before-after b{display:block;margin-top:3px;font-size:18px;color:#ffe3a7;letter-spacing:1px}.comic-skip{display:block;width:100%;margin-top:6px;color:#cbbfa6}.chronicle-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px;margin-top:15px}.chronicle-card{position:relative;min-height:131px;padding:15px 12px;text-align:left;border:1px solid #b79b69;border-radius:7px;background:linear-gradient(0deg,#0c1626f5,#101b2580),url('assets/war-changed-atlas.png');background-size:auto,500% 100%;background-position:center,var(--chapter-position) center}.chronicle-card>span,.chronicle-card>strong,.chronicle-card>small{display:block}.chronicle-card>span{font-size:9px;letter-spacing:2px;color:#ffe3a8}.chronicle-card>strong{font:400 18px/1.2 Georgia,serif;color:#fff0cd;margin-top:9px}.chronicle-card>small{font-size:9px;margin-top:12px;color:#c6e4d7}.chronicle-card:disabled{filter:grayscale(1);opacity:.45}
.field-transition{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:46px;padding:2px 6px 2px 10px;border:1px solid #d9b875;background:#352c22;border-radius:6px;flex-shrink:0}.field-transition[hidden]{display:none}.field-transition strong{font-size:10px;letter-spacing:.7px;color:#ffe6ad;line-height:1.3}.field-transition button{min-height:44px;min-width:60px;padding:6px 10px;color:#ffe9b7;background:#17232f;border:1px solid #bba17177;border-radius:4px;font-size:10px;font-weight:700}.milestone-dormant{opacity:0;transform:scaleX(.03);transform-origin:center;pointer-events:none}.milestone-lane-reveal{animation:field-open .8s cubic-bezier(.2,.7,.25,1) both;transform-origin:center;outline:2px solid #ffe7a5;outline-offset:-2px}.milestone-tile-reveal{animation:rail-extend 1s cubic-bezier(.2,.7,.25,1) both;outline:2px solid #ffe7a5;outline-offset:-2px}.milestone-field-ready{outline:2px solid #ffe7a5;outline-offset:-2px}.lane.milestone-lane-reveal:before,.lane.milestone-lane-reveal:after{filter:brightness(2)}
@keyframes field-open{0%{opacity:0;transform:scaleX(.03);filter:brightness(2.4)}55%{opacity:1;filter:brightness(1.6)}100%{opacity:1;transform:scaleX(1);filter:brightness(1)}}@keyframes rail-extend{0%{transform:scaleY(.05);filter:brightness(2.2)}65%{transform:scaleY(1);filter:brightness(1.6)}100%{transform:scaleY(1);filter:brightness(1)}}
@media(max-width:600px){.comic-scene{min-height:100px}.comic-panel p{font-size:11px;padding:8px 6px;min-height:99px}.comic-rail-symbols{font-size:22px;letter-spacing:1px}.comic-kicker{font-size:9px;margin-bottom:10px}.field-guide{padding:10px}.field-guide>strong{font-size:12px}.field-guide p{font-size:11px}.war-comic{gap:5px}.chronicle-library{grid-template-columns:repeat(2,minmax(0,1fr))}.chronicle-card{padding:12px 9px}.chronicle-card>strong{font-size:15px}.field-transition strong{font-size:9px}}
@media(prefers-reduced-motion:reduce){.milestone-lane-reveal,.milestone-tile-reveal{animation:none;transform:none;opacity:1;filter:none}}
@media(max-width:849px){.app{padding-left:max(7px,env(safe-area-inset-left));padding-right:max(7px,env(safe-area-inset-right));gap:4px}.masthead{flex-basis:47px;padding-bottom:3px}.campaign-strip{padding:6px 8px;gap:2px 6px}.campaign-strip strong{font-size:11px}.campaign-strip p,.campaign-strip small{font-size:9px}.hand{flex-shrink:0;height:70px}.hand-card{height:61px}.turn-dock{margin-top:4px}.turn-dock .primary-btn{font-size:10px;padding:7px}.turn-dock .secondary-btn{font-size:9px;padding:7px}.commander.enemy{height:28px}.board .unit .rank{font-size:17px}.modal p{font-size:12px}.status{font-size:9px}.battlefield-content .zone-output{font-size:7px}.battlefield-content .zone-level{font-size:7px}}
@media(max-height:700px) and (max-width:849px){.campaign-strip{padding:4px 7px}.campaign-strip p{font-size:8px}.hand{height:63px}.hand-card{height:55px}.hand-heading{min-height:40px}.ally{min-height:40px}.status{min-height:25px}.battlefield-scroll{min-height:100px}}
@media(max-height:520px) and (min-width:650px){.campaign-strip{max-width:100%;padding:3px 8px;gap:1px}.campaign-strip .link-btn{min-height:44px}.battlefield-scroll{min-height:95px}.hand-heading{right:-213px;min-height:44px}.hand{top:47px;height:calc(100% - 200px)}.queued-orders{bottom:84px;height:58px;min-height:58px}.turn-dock{bottom:30px;min-height:44px}.status{bottom:0;min-height:28px}.ally{min-height:44px}.turn-info{display:none}.hand-heading #hand-hint{display:none}.hand-heading #all-cards{margin-left:0}.turn-dock .primary-btn{font-size:9px}.turn-dock .secondary-btn{font-size:8px}}

.command-controls{display:contents}.field-orders{display:none}
/* Desktop is an explicit presentation profile, independent of touch support. */

body[data-ui="desktop"] .app{width:min(1440px,100%);padding:8px 16px 10px;gap:6px;min-height:0}
body[data-ui="desktop"] .masthead{flex-basis:50px;padding-bottom:5px}
body[data-ui="desktop"] .workspace{gap:0;min-height:0}
body[data-ui="desktop"] .sidebar{display:none}
body[data-ui="desktop"] .game-space{--field-min-height:0px;--field-slot-min:0px;--field-lane-min:0px;--field-claim-height:34px;display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-template-rows:auto auto 30px minmax(0,1fr) 54px 38px;column-gap:16px;row-gap:0;min-height:0;overflow:hidden}
body[data-ui="desktop"] .campaign-strip{grid-column:1/-1;grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 10px;min-height:46px;margin:0 0 4px}
body[data-ui="desktop"] .campaign-strip>div{display:flex;align-items:center;gap:12px;flex-shrink:0}
body[data-ui="desktop"] .campaign-strip strong{font-size:12px}
body[data-ui="desktop"] .campaign-strip small{margin:0;font-size:10px}
body[data-ui="desktop"] .campaign-strip p{flex:1;text-align:right;font-size:10px}
body[data-ui="desktop"] .campaign-strip .link-btn{min-height:36px;flex-shrink:0;order:3}
body[data-ui="desktop"] .field-transition{grid-column:1/-1;grid-row:2;min-height:44px;margin-bottom:4px}
body[data-ui="desktop"] .commander.enemy{grid-column:1;grid-row:3;height:30px;min-height:0}
body[data-ui="desktop"] .commander.ally{grid-column:1;grid-row:6;height:38px;min-height:0}
body[data-ui="desktop"] .ally .tag-btn,body[data-ui="desktop"] .ally .link-btn{min-height:32px}
body[data-ui="desktop"] .commander strong{font-size:10px}
body[data-ui="desktop"] .battlefield-scroll{grid-column:1;grid-row:4;min-height:0;min-width:0;overflow:hidden;scrollbar-width:none;touch-action:auto}
body[data-ui="desktop"] .battlefield-content{width:100%;height:100%;min-width:0;min-height:0;max-height:100%;overflow:hidden}
body[data-ui="desktop"] .battlefield-content .lane-heads{height:32px;min-height:0;position:static;flex:0 0 32px;gap:6px}
body[data-ui="desktop"] .battlefield-content .board{min-height:0;min-width:0;flex:1 1 0;gap:6px;overflow:hidden}
body[data-ui="desktop"] .battlefield-content .lane{min-height:0;min-width:0;gap:3px;padding:3px 5px;overflow:hidden}
body[data-ui="desktop"] .battlefield-content .slot{min-height:0;min-width:0;touch-action:manipulation}
body[data-ui="desktop"] .battlefield-content .claim-meter{min-height:0;gap:2px;padding:2px 4px}
body[data-ui="desktop"] .battlefield-content .claim-caption{min-height:10px;font-size:7px}
body[data-ui="desktop"] .battlefield-content .capture-row{height:8px}
body[data-ui="desktop"] .battlefield-content .capture-track{height:6px}
body[data-ui="desktop"] .battlefield-content .lane-heading strong{font-size:12px}
body[data-ui="desktop"] .battlefield-content .lane-heading small{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-ui="desktop"] .command-controls{grid-column:2;grid-row:3/7;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:42px minmax(150px,1fr) auto 36px;gap:7px;min-height:0;min-width:0;padding:0 0 0 12px;border-left:1px solid var(--line);overflow:hidden}
body[data-ui="desktop"] .command-controls .hand-heading{grid-row:1;height:42px;min-height:0;flex-wrap:wrap;align-content:center;justify-content:space-between;gap:0 5px;padding:0}
body[data-ui="desktop"] .command-controls #hand-hint{flex-basis:100%;font-size:8px;line-height:13px;letter-spacing:0}
body[data-ui="desktop"] .command-controls .hand-heading .link-btn{min-height:26px;font-size:8px}
body[data-ui="desktop"] .command-controls #all-cards{margin:0;font-size:8px}
body[data-ui="desktop"] .command-controls #cycle-hand{font-size:8px}
body[data-ui="desktop"] .command-controls #hand{grid-row:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,84px));align-content:center;justify-items:center;gap:7px 5px;width:100%;height:auto;min-height:0;margin:0;padding:4px 0;overflow:hidden;scroll-snap-type:none}
body[data-ui="desktop"] .command-controls #hand .hand-card{width:100%;min-width:0;max-width:76px;height:100%;min-height:0;padding:4px 5px}
body[data-ui="desktop"] .command-controls .hand-card .hand-rank{font-size:23px}
body[data-ui="desktop"] .command-controls .hand-card .hand-type{font-size:7px}
body[data-ui="desktop"] .command-controls .hand-card.hand-veteran .hand-type{font-size:7px!important}
body[data-ui="desktop"] .field-orders{display:block;grid-column:1;grid-row:5;min-width:0;min-height:0;padding:4px 0 2px;overflow:hidden}
body[data-ui="desktop"] .field-orders #queued-orders{display:grid;grid-auto-rows:48px;align-content:start;gap:6px;width:100%;height:48px;min-height:48px;padding:0;margin:0;overflow:hidden}
body[data-ui="desktop"] .field-orders .queue-drop{height:48px;min-height:44px;touch-action:manipulation}
body[data-ui="desktop"] .field-orders .queue-label{font-size:8px}
body[data-ui="desktop"] .field-orders .queue-drop>b{font-size:16px}
body[data-ui="desktop"] .field-orders .queue-drop>b>em{font-size:7px}
body[data-ui="desktop"] .command-controls .turn-dock{grid-row:3;display:grid;grid-template-columns:62px minmax(0,1fr);grid-template-rows:25px 44px;gap:4px;margin:0;height:auto;min-height:0}
body[data-ui="desktop"] .command-controls .turn-info{grid-column:1/-1;grid-row:1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;min-width:0;gap:5px}
body[data-ui="desktop"] .command-controls .turn-info small{font-size:8px}
body[data-ui="desktop"] .command-controls .turn-info strong{font-size:11px;margin:0}
body[data-ui="desktop"] .command-controls #pass{grid-column:1;grid-row:2;padding:5px;font-size:9px;min-height:44px}
body[data-ui="desktop"] .command-controls #deploy{grid-column:2;grid-row:2;min-width:0;min-height:44px;padding:6px 8px;font-size:10px;letter-spacing:0}
body[data-ui="desktop"] .command-controls #status{grid-row:4;width:100%;height:36px;min-height:0;margin:0;padding:2px 0;font-size:9px;line-height:1.35;white-space:normal;display:flex;align-items:center;justify-content:center}
body[data-ui="desktop"] .battlefield-content .unit{inset:1px;padding:1px 5px 12px}
body[data-ui="desktop"] .battlefield-content .unit .rank{font-size:18px}
body[data-ui="desktop"] .battlefield-content .unit .rank .weapon-icon{width:18px;height:18px}
body[data-ui="desktop"] .battlefield-content .unit .unit-stat{max-width:70%;padding-bottom:0}
body[data-ui="desktop"] .battlefield-content .unit .unit-stat small{font-size:8px;line-height:1.1}
body[data-ui="desktop"] .battlefield-content .unit .hp-track{height:11px}
body[data-ui="desktop"] .battlefield-content .unit .hp-cap-label{font-size:10px;line-height:10px}
body[data-ui="desktop"] .battlefield-content .slot .travel{font-size:7px}
body[data-ui="desktop"] .battlefield-content .zone-output{font-size:7px}
body[data-ui="desktop"] .battlefield-content .zone-level{font-size:7px}
body[data-ui="desktop"] .battlefield-content .reach-mark,body[data-ui="desktop"] .battlefield-content .claim-damage{bottom:12px}
body[data-ui="desktop"] .battlefield-content .unit.divine-unit{padding:0 0 11px}
body[data-ui="desktop"] .toast{bottom:24px;left:auto;right:24px;transform:translateY(10px);width:270px}
body[data-ui="desktop"] .toast.visible{transform:translateY(0)}

@media(max-height:800px){
body[data-ui="desktop"] .game-space{grid-template-columns:minmax(0,1fr) 260px;column-gap:12px;--field-claim-height:30px}
body[data-ui="desktop"] .campaign-strip{min-height:42px;padding:2px 8px}
body[data-ui="desktop"] .campaign-strip small{font-size:9px}
body[data-ui="desktop"] .campaign-strip p{font-size:9px}
body[data-ui="desktop"] .command-controls{gap:5px;grid-template-rows:38px minmax(122px,1fr) auto 30px;padding-left:10px}
body[data-ui="desktop"] .command-controls #hand{grid-template-rows:repeat(2,minmax(0,68px));gap:5px}
body[data-ui="desktop"] .command-controls .hand-heading{height:38px}


body[data-ui="desktop"] .command-controls #status{height:30px;font-size:8px}
body[data-ui="desktop"] .command-controls .turn-dock{grid-template-rows:22px 44px;gap:3px}
body[data-ui="desktop"] .battlefield-content .lane-heads{height:28px;flex-basis:28px}
body[data-ui="desktop"] .battlefield-content .lane-heading strong{font-size:11px}
body[data-ui="desktop"] .battlefield-content .lane-heading small{font-size:7px}
body[data-ui="desktop"] .battlefield-content .lane{gap:2px;padding:2px 4px}
body[data-ui="desktop"] .battlefield-content .unit .rank{font-size:15px}
body[data-ui="desktop"] .battlefield-content .unit .rank .weapon-icon{width:15px;height:15px}
body[data-ui="desktop"] .battlefield-content .unit .unit-stat small{font-size:7px}
body[data-ui="desktop"] .battlefield-content .unit .hp-track{height:10px}
body[data-ui="desktop"] .battlefield-content .unit .hp-cap-label{font-size:9px;line-height:9px}
body[data-ui="desktop"] .battlefield-content .unit{padding-bottom:10px}
body[data-ui="desktop"] .battlefield-content .reach-mark{display:none}
body[data-ui="desktop"] .battlefield-content .claim-damage{bottom:10px;font-size:7px}
body[data-ui="desktop"] .battlefield-content .unit.divine-unit>.divine-sigil{width:21px;height:21px}
body[data-ui="desktop"] .battlefield-content .divine-unit-name{left:24px;right:28px;top:2px;font-size:6px}
body[data-ui="desktop"] .battlefield-content .divine-count{top:2px;right:3px;font-size:10px}
body[data-ui="desktop"] .battlefield-content .divine-unit>.divine-part-slots{left:24px;right:auto;bottom:11px;height:5px;gap:3px}
body[data-ui="desktop"] .battlefield-content .divine-unit .divine-part{width:9px;height:5px;border-radius:1px;font-size:0}
body[data-ui="desktop"] .battlefield-content .divine-unit .divine-part.present{background:var(--part-color)}

}

/* Phone keeps the original brass, illustrated cards and reachable bottom dock. */
.phone-tool{display:none}.layout-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px 0 4px}.layout-setting label{font-size:13px;color:#e8d5ac}.layout-setting select{font:inherit;font-size:16px;min-height:48px;min-width:150px;max-width:60%;padding:8px 12px;border:1px solid #b99a6077;border-radius:7px;background:#111d29;color:#f1dfba}.layout-setting select:focus-visible{outline:2px solid #fff1bd;outline-offset:2px}
body[data-ui="phone"] .app{width:min(600px,100%);min-height:0;padding:max(6px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));gap:4px}
body[data-ui="phone"] .masthead{flex:0 0 52px;min-height:52px;padding:0 1px 4px}
body[data-ui="phone"] .brand{gap:9px}body[data-ui="phone"] .brand-war{font-size:37px;letter-spacing:-2px}body[data-ui="phone"] .brand h1{font-size:13px;letter-spacing:1.7px}body[data-ui="phone"] .brand .eyebrow{font-size:6px;letter-spacing:1px}body[data-ui="phone"] .eyebrow b{font-size:7px;margin-left:3px}body[data-ui="phone"] .head-controls{gap:5px}body[data-ui="phone"] .icon-btn{width:48px;height:48px;min-width:48px;min-height:48px;font-size:21px;background:#19222bde}
body[data-ui="phone"] .workspace{display:flex;position:static;gap:0;padding:0;min-height:0}body[data-ui="phone"] .sidebar{display:none}body[data-ui="phone"] .game-space{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0}
body[data-ui="phone"] .campaign-strip{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:0 6px;min-height:50px;padding:3px 7px;margin:0 0 3px;border-color:#b99a6044;border-radius:8px;background:linear-gradient(110deg,#3b3024e6,#17242ee6)}
body[data-ui="phone"] .campaign-strip>div{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;min-width:0}body[data-ui="phone"] .campaign-strip strong{font-size:11px;letter-spacing:.7px}body[data-ui="phone"] .campaign-strip small{margin:0;font-size:9px;color:#c7c6b5}body[data-ui="phone"] .campaign-strip p{grid-column:1;grid-row:2;font-size:9px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#e7cd96}
body[data-ui="phone"] .campaign-strip .link-btn{grid-column:2;grid-row:1/3;min-height:44px;width:44px;max-width:44px;overflow:hidden;padding:0;font-size:0;border:1px solid #d2b47844;border-radius:50%;background:#1b242b}body[data-ui="phone"] .campaign-strip .link-btn:after{content:'?';font-family:Georgia,serif;font-size:22px;color:#e5c987}
body[data-ui="phone"] .commander.enemy{height:24px;min-height:24px;gap:6px;padding:0 3px}body[data-ui="phone"] .commander strong{font-size:8px;letter-spacing:1px}body[data-ui="phone"] .crest{font-size:19px}body[data-ui="phone"] .card-count{font-size:9px}body[data-ui="phone"] .crowns{font-size:13px}body[data-ui="phone"] .commander.ally{display:none}
body[data-ui="phone"] .battlefield-scroll{flex:1 1 0;min-height:80px;min-width:0;margin-bottom:5px;border:1px solid #b2996c33;border-radius:9px;background:#101820;overflow:auto;touch-action:pan-x pan-y;scrollbar-width:thin;box-shadow:0 5px 14px #0005}
body[data-ui="phone"] .battlefield-content{width:max-content;min-width:100%;min-height:100%;height:auto;max-height:none;overflow:visible}body[data-ui="phone"] .battlefield-content .board{flex:1;gap:5px;min-width:100%;overflow:visible}body[data-ui="phone"] .battlefield-content .lane-heads{position:sticky;top:0;height:34px;flex:0 0 34px;gap:5px;margin:0;background:#19242d}
body[data-ui="phone"] .battlefield-content .lane-heading{padding:3px;gap:4px}body[data-ui="phone"] .battlefield-content .lane-heading strong{font-size:11px;letter-spacing:.3px}body[data-ui="phone"] .battlefield-content .lane-heading small{font-size:7px;letter-spacing:0;white-space:normal}body[data-ui="phone"] .battlefield-content .lane-heading span{font-size:18px}
body[data-ui="phone"] .battlefield-content .lane{gap:3px;padding:5px;min-height:0}body[data-ui="phone"] .battlefield-content .slot{min-height:48px;touch-action:pan-x pan-y}body[data-ui="phone"] .battlefield-content .unit{inset:2px;padding:2px 5px 13px;border-left-width:2px}body[data-ui="phone"] .battlefield-content .unit .rank{font-size:19px}body[data-ui="phone"] .battlefield-content .unit .rank .weapon-icon{width:22px;height:22px}body[data-ui="phone"] .battlefield-content .unit .unit-stat{max-width:70%;padding-bottom:2px}body[data-ui="phone"] .battlefield-content .unit .unit-stat small{font-size:7px;line-height:1.2;letter-spacing:0}body[data-ui="phone"] .battlefield-content .unit .hp-track{height:13px}body[data-ui="phone"] .battlefield-content .unit .hp-cap-label{font-size:10px;line-height:12px}body[data-ui="phone"] .battlefield-content .reach-mark{bottom:15px;font-size:6px}body[data-ui="phone"] .battlefield-content .claim-damage{bottom:15px}body[data-ui="phone"] .battlefield-content .slot .travel{font-size:7px;letter-spacing:0;padding:0}body[data-ui="phone"] .battlefield-content .zone-output,body[data-ui="phone"] .battlefield-content .zone-level{font-size:7px}
body[data-ui="phone"] .battlefield-content .claim-caption{min-height:16px;font-size:7px}body[data-ui="phone"] .battlefield-content .capture-row{height:9px}body[data-ui="phone"] .battlefield-content .capture-track{height:6px}
body[data-ui="phone"] .command-controls{display:flex;position:relative;flex:0 0 auto;flex-direction:column;gap:3px;min-width:0;min-height:0;padding:3px 5px 4px;border:1px solid #b99a6044;border-radius:11px;background:linear-gradient(155deg,#252b2c,#141e29 70%);box-shadow:inset 0 1px #f2d69b0d,0 -5px 18px #0004}
body[data-ui="phone"] .command-controls .hand-heading{position:static;display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:center;width:100%;height:44px;min-height:44px;gap:3px;padding:0}body[data-ui="phone"] #hand-hint{display:none}body[data-ui="phone"] .phone-tool{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;min-width:44px;border:1px solid #c8ab6d40;border-radius:7px;background:#131d27;color:#e0c288;font-size:22px}body[data-ui="phone"] .phone-tool[hidden]{display:none}body[data-ui="phone"] #phone-workshop{margin-right:auto}
body[data-ui="phone"] .hand-heading .link-btn{height:44px;min-height:44px;padding:0 7px;font-size:9px;letter-spacing:.1px;border-radius:6px;white-space:nowrap}body[data-ui="phone"] #all-cards{margin:0;background:#131e2899}body[data-ui="phone"] #cycle-hand{font-size:9px}
body[data-ui="phone"] #queued-orders{position:static;display:grid;flex:0 0 54px;grid-auto-rows:48px;width:100%;height:54px;min-height:54px;gap:5px;margin:0;padding:2px 0 4px;overflow-x:auto;overflow-y:hidden;touch-action:pan-x}body[data-ui="phone"] .queue-drop{height:48px;min-height:48px;touch-action:pan-x}body[data-ui="phone"] .queue-label{font-size:8px;letter-spacing:0}body[data-ui="phone"] .queue-drop>b{font-size:18px}body[data-ui="phone"] .queue-drop>b>em{font-size:7px}body[data-ui="phone"] .queue-cancel{width:44px;height:44px;min-height:44px;font-size:22px}body[data-ui="phone"] .queue-forge{font-size:8px}
body[data-ui="phone"] #hand{position:static;display:flex;flex:0 0 84px;align-items:stretch;justify-content:flex-start;gap:5px;width:100%;height:84px;min-height:84px;margin:0;padding:4px 1px 5px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity}body[data-ui="phone"] #hand .hand-card{flex:0 0 clamp(48px,calc((100vw - 64px)/7),70px);width:auto;min-width:48px;max-width:70px;height:74px;min-height:74px;padding:5px;border-radius:6px;box-shadow:0 4px 6px #0009}body[data-ui="phone"] #hand .hand-card.active{padding:4px;transform:translateY(-3px)}body[data-ui="phone"] .hand-card .hand-rank{font-size:24px}body[data-ui="phone"] .hand-card .hand-suit{font-size:17px}body[data-ui="phone"] .hand-card .hand-type{font-size:8px}body[data-ui="phone"] .hand-card.hand-veteran .hand-type{font-size:7px!important;line-height:1.15}body[data-ui="phone"] .hand-card .hand-reach{font-size:7px}body[data-ui="phone"] .hand-card.role-ATT .hand-suit{width:22px;height:25px;right:2px;top:5px}body[data-ui="phone"] .hand-card.role-ATT .hand-suit .weapon-icon{width:20px;height:23px}
body[data-ui="phone"] .turn-dock{position:static;display:grid;grid-template-columns:66px 54px minmax(0,1fr);width:100%;height:48px;min-height:48px;margin:0;gap:5px}body[data-ui="phone"] .turn-info{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:2px;padding-left:2px}body[data-ui="phone"] .turn-info small{font-size:7px;line-height:1.2;letter-spacing:.2px}body[data-ui="phone"] .turn-info strong{font-size:10px;letter-spacing:.3px;margin:0;white-space:nowrap}body[data-ui="phone"] .turn-dock .primary-btn,body[data-ui="phone"] .turn-dock .secondary-btn{min-width:0;min-height:48px;height:48px;padding:6px;font-size:10px;letter-spacing:.1px}body[data-ui="phone"] .turn-dock .primary-btn{box-shadow:inset 0 1px #ffebac70,0 2px 5px #0005}body[data-ui="phone"] .turn-dock .primary-btn span{font-size:21px}
body[data-ui="phone"] #status{position:static;display:flex;align-items:center;justify-content:center;width:100%;height:44px;min-height:44px;margin:0;padding:2px 3px;font-size:9px;line-height:1.3;white-space:normal;text-align:center;background:transparent;color:#c5c1ac;overflow:hidden}
body[data-ui="phone"] .field-transition{min-height:44px;margin:0 0 4px}body[data-ui="phone"] .field-transition strong{font-size:9px}body[data-ui="phone"] .field-transition button{min-width:44px;min-height:44px}
body[data-ui="phone"] .modal-backdrop{padding:10px}body[data-ui="phone"] .modal{padding:18px;max-height:calc(100dvh - 20px - env(safe-area-inset-bottom));border-radius:14px}body[data-ui="phone"] .modal-title h2{font-size:26px}body[data-ui="phone"] .modal p{font-size:12px}body[data-ui="phone"] .modal button{min-height:44px}body[data-ui="phone"] .modal .primary-btn,body[data-ui="phone"] .modal .secondary-btn,body[data-ui="phone"] .close-btn{min-height:48px}body[data-ui="phone"] .close-btn{min-width:48px}body[data-ui="phone"] .toast{bottom:calc(286px + env(safe-area-inset-bottom));left:50%;right:auto;width:min(380px,calc(100% - 30px));transform:translate(-50%,10px);font-size:12px}body[data-ui="phone"] .toast.visible{transform:translate(-50%,0)}
/* Landscape Phone keeps touch controls together; the scene still pans freely. */
@media(min-width:650px) and (max-height:520px){
 body[data-ui="phone"] .app{width:100%;padding-top:max(3px,env(safe-area-inset-top));padding-bottom:max(3px,env(safe-area-inset-bottom));gap:3px}body[data-ui="phone"] .masthead{flex-basis:48px;min-height:48px;padding-bottom:2px}body[data-ui="phone"] .brand-war{font-size:34px}body[data-ui="phone"] .game-space{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:auto auto 24px minmax(0,1fr);gap:0 9px;overflow:hidden}body[data-ui="phone"] .campaign-strip{grid-column:1;grid-row:1;min-height:48px;margin-bottom:0}body[data-ui="phone"] .field-transition{grid-column:1;grid-row:2}body[data-ui="phone"] .commander.enemy{grid-column:1;grid-row:3}body[data-ui="phone"] .battlefield-scroll{grid-column:1;grid-row:4;min-height:0;margin:0}body[data-ui="phone"] .command-controls{grid-column:2;grid-row:1/5;align-self:stretch;justify-content:space-between;gap:2px;overflow:hidden}body[data-ui="phone"] #hand{flex:0 0 80px;min-height:80px;height:80px}body[data-ui="phone"] #hand .hand-card{flex-basis:48px;min-width:48px;height:70px;min-height:70px}body[data-ui="phone"] .hand-heading .link-btn{padding:0 4px;font-size:8px}body[data-ui="phone"] #cycle-hand{font-size:8px}body[data-ui="phone"] .turn-dock{grid-template-columns:58px 46px minmax(0,1fr);gap:4px}body[data-ui="phone"] .turn-dock .primary-btn{font-size:9px}body[data-ui="phone"] .turn-info strong{font-size:9px}body[data-ui="phone"] #status{height:44px;min-height:44px;font-size:9px}body[data-ui="phone"] .toast{bottom:20px;width:300px}
}

body[data-ui="phone"] .battlefield-content .claim-meter,body[data-ui="phone"] .claim-help-target{min-height:44px}
body[data-ui="phone"] #battle-cinema button{min-width:44px;min-height:44px}

/* 1.3.2: keep every conveyor row in view, with exposed upgrade rails. */
.field-details{display:none}
.belt-marker{position:absolute;inset:1px auto 1px 1px;width:21px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;z-index:8;background:#14232ef5;border-right:1px solid #dab96c99;color:#ffe0a0;pointer-events:none}
.belt-marker b{font-size:14px;line-height:1}.belt-marker small{font:700 8px/1.1 system-ui}.belt-marker em{font:700 5px/1.2 system-ui;letter-spacing:0}
.battlefield-content .belt-slot .unit{left:24px}
.battlefield-content .belt-slot .zone-output{left:24px}
.battlefield-content .belt-slot .travel{left:25px}
.belt-inspector{padding:10px;border:1px solid #d4b16b88;border-radius:6px;background:#49351f66;color:#ffe1a5!important}
body[data-ui="phone"] .field-details{display:block;transition:transform .2s}
body[data-ui="phone"].phone-details .field-details{transform:rotate(180deg)}
body[data-ui="phone"] .game-space{--field-min-height:0px;--field-slot-min:0px;--field-claim-height:40px}
body[data-ui="phone"]:not(.phone-details) .campaign-strip{display:none}
body[data-ui="phone"]:not(.phone-details) .brand .eyebrow{display:none}
body[data-ui="phone"] .masthead{flex-basis:44px;min-height:44px;padding-bottom:0}
body[data-ui="phone"] .brand-war{font-size:29px}
body[data-ui="phone"] .brand h1{font-size:10px;letter-spacing:1px}
body[data-ui="phone"] .head-controls{gap:2px}
body[data-ui="phone"] .head-controls .icon-btn{width:44px;min-width:44px;height:44px;min-height:44px}
body[data-ui="phone"] .commander.enemy{height:20px;min-height:20px}
body[data-ui="phone"] .battlefield-scroll{min-height:0;overflow-x:auto;overflow-y:hidden;touch-action:pan-x}
body[data-ui="phone"] .battlefield-content{height:100%;min-height:0;max-height:100%;display:flex;flex-direction:column}
body[data-ui="phone"] .battlefield-content .board{min-height:0;flex:1 1 0;overflow:hidden}
body[data-ui="phone"] .battlefield-content .lane-heads{position:static;height:28px;flex-basis:28px}
body[data-ui="phone"] .battlefield-content .lane-heading strong{font-size:9px}
body[data-ui="phone"] .battlefield-content .lane-heading small{display:none}
body[data-ui="phone"] .battlefield-content .lane{min-height:0;gap:2px;padding:2px 3px}
body[data-ui="phone"] .battlefield-content .slot{min-height:0;touch-action:pan-x}
body[data-ui="phone"] .battlefield-content .unit .rank{font-size:15px}
body[data-ui="phone"] .battlefield-content .unit .rank .weapon-icon{width:16px;height:16px}
body[data-ui="phone"] .battlefield-content .unit .unit-stat small{font-size:6px}
body[data-ui="phone"] .battlefield-content .claim-meter,body[data-ui="phone"] .claim-help-target{min-height:0}
body[data-ui="phone"] #status{height:28px;min-height:28px;font-size:8px;line-height:1.2}
body[data-ui="phone"] #hand{height:72px;min-height:72px;flex-basis:72px}
body[data-ui="phone"] #hand .hand-card{height:62px;min-height:62px}
body[data-ui="phone"] .toast{bottom:250px}
@media(min-width:650px) and (max-height:520px){
 body[data-ui="phone"] .game-space{grid-template-rows:auto auto 20px minmax(0,1fr)}
 body[data-ui="phone"] .battlefield-content .lane-heads{height:24px;flex-basis:24px}
 body[data-ui="phone"] .game-space{--field-claim-height:32px}
 body[data-ui="phone"] .toast{bottom:20px}
}
