@charset "UTF-8";
/* Disable double-tap zoom; preserve scrolling, pinch zoom and game-specific gestures. */
:where(*) { touch-action: manipulation; }

:root{color-scheme:dark;--ink:#111611;--panel:#141c18;--edge:#3a4030;--gold:#d8b56d;--gold-bright:#f4d58e;--text:#e9e5d9;--muted:#909b8a;--red:#cb6248;--jade:#7db8a1;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--text);overflow:hidden}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold-bright);outline-offset:4px}button{border:0}button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.hidden,[hidden]{display:none!important}.screen{position:absolute;inset:0}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);font-weight:700}.subtle{font-size:11px;color:var(--muted);line-height:1.6}.panel{background:linear-gradient(135deg,rgba(30,38,30,.98),rgba(13,21,18,.98));border:1px solid #5c5840;box-shadow:0 12px 44px #0007}.text-button{background:transparent;color:#c8c7b8;font-size:10px;letter-spacing:1.5px;padding:10px 0}.text-button:hover{color:var(--gold-bright)}.primary,.secondary{min-height:47px;padding:13px 24px;letter-spacing:1.5px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:30px;transition:.18s}.primary{background:linear-gradient(125deg,#c8a05d,#e7c986);color:#202317;border:1px solid #f4d998;box-shadow:0 3px 24px #d2a75c15}.primary:hover{background:#f0d599;box-shadow:0 0 24px #d2a75c35;transform:translateY(-1px)}.primary span{font-size:23px;line-height:16px}.secondary{background:#1a251c;border:1px solid #666348;color:#dacba5}.secondary:hover{background:#293324;border-color:var(--gold)}.button-row{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}label{display:flex;flex-direction:column;gap:8px;font-size:9px;letter-spacing:1.8px;color:#9ca48e;font-weight:bold}select,input{height:43px;border:1px solid #55563f;background:#151e17;color:var(--text);padding:0 13px;letter-spacing:.2px;font-size:12px;border-radius:0;min-width:0}select:hover,input:hover{border-color:#9b8b59}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#92b78d;margin-right:7px;box-shadow:0 0 7px #92b78d66}
#boot{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:22px;background:radial-gradient(ellipse,#233025,#0b0f0c)}#boot h1{font-family:Georgia,serif;letter-spacing:6px;font-size:28px}#boot h1 span{color:var(--gold)}#boot p{font-size:11px;letter-spacing:1px;color:#a3ad9d}.boot-crest{font-size:45px;color:var(--gold);animation:pulse 2s infinite}@keyframes pulse{50%{opacity:.35;transform:scale(.9)}}
#menu{overflow:auto;background:#10160f}.menu-backdrop{position:fixed;inset:0;background:linear-gradient(90deg,#10190feb,#10180fe8),url('./assets/iron-crown-v7.png') center 35%/cover;filter:saturate(.6)}.grain{position:fixed;inset:0;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E")}.menu-header{position:relative;height:82px;border-bottom:1px solid #86916c1c;display:flex;align-items:center;justify-content:space-between;padding:0 5.1vw}.wordmark{font-family:Georgia,serif;font-size:16px;letter-spacing:2px;display:flex;align-items:center;gap:9px}.wordmark i,.battle-brand i{font-style:normal;color:var(--gold)}.crest{color:var(--gold);font-size:27px;line-height:1}.menu-header nav{display:flex;align-items:center;gap:34px}.menu-content{position:relative;max-width:1480px;padding:35px 5.1vw 0;margin:auto}.title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.title-row h1{font-family:Georgia,'Times New Roman',serif;font-weight:normal;font-size:clamp(36px,4.8vw,76px);line-height:1.08;letter-spacing:1.5px;margin:13px 0 12px;text-shadow:0 4px 24px #0009}.title-row h1 span{font-size:.7em;color:var(--gold);font-style:italic}.title-sub{font-family:Georgia,serif;font-size:15px;color:#aeb9a5;letter-spacing:.3px}.chapter-mark{padding:10px 0 0 28px;min-width:150px;border-left:1px solid #bca66b33;text-align:right}.chapter-mark>span{font-size:9px;color:#a4ad95;letter-spacing:3px}.chapter-mark strong{font-family:Georgia,serif;font-weight:normal;display:block;font-size:18px;line-height:1.45;letter-spacing:2px;margin:9px 0}.ornament{font-size:10px;color:#aa945a;letter-spacing:5px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-head h2{font-size:10px;font-weight:500;letter-spacing:2.4px;color:#c4cbbb}.tabs{display:flex;gap:5px;background:#0b110b80;padding:4px;border:1px solid #44503b66}.tabs button{background:none;color:#929e87;padding:9px 13px;font-size:9px;letter-spacing:1.3px;white-space:nowrap}.tabs button.active{background:#3c442e;color:var(--gold-bright)}.tabs button:hover{color:var(--text)}.faction-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.faction-card{height:clamp(280px,35vh,400px);position:relative;text-align:left;overflow:hidden;border:1px solid #5a634144;background:#21291b;transition:.25s;padding:0}.faction-card:after{content:'';position:absolute;inset:0;border:1px solid transparent;pointer-events:none;transition:.25s}.faction-card.active{border-color:#d6b76e;box-shadow:0 0 28px #d4ac4e14}.faction-card.active:after{inset:5px;border-color:#debc733b}.faction-card:hover{border-color:#c4b077;transform:translateY(-3px)}.faction-portrait{position:absolute;inset:0;background-size:cover;background-position:center 20%;transition:transform .7s,filter .4s;filter:saturate(.75) brightness(.78)}.faction-card.active .faction-portrait,.faction-card:hover .faction-portrait{filter:saturate(1) brightness(.95);transform:scale(1.025)}.faction-card .portrait-shade{position:absolute;inset:0;background:linear-gradient(0deg,#0b110efc 2%,#0e140ed9 17%,#0b110e33 55%,#0b110e0a 75%)}.faction-insignia{position:absolute;top:17px;left:19px;font-family:Georgia,serif;color:#f4d99c;font-size:23px;text-shadow:0 2px 10px #000}.faction-check{position:absolute;top:19px;right:20px;width:19px;height:19px;border:1px solid #dcc28b88;background:#1c211c77;color:transparent;display:grid;place-items:center;font-size:11px}.active .faction-check{color:#202418;background:var(--gold);border-color:#e5c986}.faction-copy{position:absolute;left:23px;right:23px;bottom:21px}.faction-copy .peoples{font-size:9px;letter-spacing:1.8px;color:#b6bca8;margin-bottom:9px}.faction-copy h3{font-family:Georgia,serif;font-weight:normal;font-size:26px;letter-spacing:.4px}.faction-copy .tagline{font-family:Georgia,serif;font-style:italic;color:#c8b688;font-size:12px;margin-top:7px}.faction-traits{border-top:1px solid #bca96d35;display:flex;gap:10px;margin-top:14px;padding-top:12px;font-size:8px;letter-spacing:1.4px;color:#a7b09a}.faction-traits b{font-weight:normal;color:#7d896d}.match-config{display:grid;grid-template-columns:1.2fr 1.1fr .85fr 1fr 1.1fr;gap:16px;align-items:end;border-top:1px solid #818d692f;border-bottom:1px solid #818d692f;margin-top:25px;padding:20px 0}.match-config .primary,.match-config .secondary{height:43px;min-height:43px}.match-config#online-panel{grid-template-columns:1.1fr 1.2fr 1fr 1.2fr}.mode-note{color:#9da78f;font-size:11px;line-height:1.6;margin-top:15px}.menu-footer{display:flex;align-items:center;justify-content:space-between;padding:26px 0 24px;color:#7c896f;font-size:8px;letter-spacing:1.2px}.menu-footer b{font-weight:normal;color:#555f49;margin:0 8px}.menu-footer .text-button{font-size:8px;color:#a0a991}.lobby-art{position:absolute;inset:0;background:linear-gradient(90deg,#0b120bf5,#0b120ba0),url('./assets/ashen-horde.png') right center/cover}.lobby-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(640px,94vw);padding:38px}.lobby-content h1{font-family:Georgia,serif;font-weight:normal;font-size:38px;margin:15px 0}.lobby-content p{color:#a8b29d;font-size:13px;line-height:1.6}.room-code{display:block;width:100%;background:#0e160f;border:1px solid #716744;color:var(--gold-bright);font-family:Georgia,serif;font-size:30px;letter-spacing:6px;padding:16px;margin:22px 0 8px}.lobby-player{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid #58604477;font-size:12px}.lobby-player small{display:block;color:#a0aa94;font-size:10px;margin-top:6px}.lobby-player em{font-style:normal;color:var(--gold);font-size:10px}.lobby-options{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0}#network-status{font-size:10px;color:var(--gold);text-align:center;margin-bottom:10px}
#game{background:#222c20}#battlefield,#world-overlay{position:absolute;inset:0;width:100%;height:100%;display:block}#world-overlay{pointer-events:none}.game-top{position:absolute;top:0;left:0;right:0;height:64px;display:flex;align-items:center;padding:0 24px;gap:24px;background:linear-gradient(#121d15fc,#152015f0);border-bottom:1px solid #7f7452;box-shadow:0 3px 20px #0005}.battle-brand{display:flex;align-items:center;gap:12px;min-width:230px}.battle-brand strong{font-family:Georgia,serif;font-size:13px;letter-spacing:1px}.battle-brand>span:last-child{font-size:8px;letter-spacing:1px;color:#8e9a83;margin-left:5px}.resource-bar{display:flex;gap:30px;align-items:center;justify-content:center;flex:1}.resource-bar>div{display:grid;grid-template-columns:20px auto;column-gap:7px;align-items:center}.resource-bar>div>span{grid-row:1/3;font-size:24px;color:#b3b99a}.resource-bar>div .ore-symbol{font-size:21px;color:#d6b061}.resource-bar>div .aether-symbol{font-size:28px;color:#8cb4d9}.resource-bar strong{font-size:16px;letter-spacing:.5px;font-weight:500}.resource-bar small{font-size:7px;letter-spacing:1.6px;color:#919f85;margin-top:3px}.match-clock{display:flex;flex-direction:column;align-items:center;min-width:70px;gap:4px}.match-clock span{font-size:7px;letter-spacing:1.5px;color:#9eaa92}.match-clock strong{font-size:14px;letter-spacing:2px;font-variant-numeric:tabular-nums;font-weight:500}.icon-button{width:33px;height:33px;background:#2b3424;border:1px solid #6c6448;color:var(--gold);font-size:17px}.objective{position:absolute;top:84px;left:24px;text-shadow:0 2px 5px #000;background:linear-gradient(90deg,#142018cc,#14201800);padding:12px 30px 12px 14px;border-left:2px solid #bca56c}.objective .eyebrow{font-size:8px;letter-spacing:2px}.objective p{font-family:Georgia,serif;font-size:12px;margin-top:7px;color:#d4d8c6}.game-bottom{position:absolute;bottom:14px;left:14px;right:14px;height:212px;display:grid;grid-template-columns:252px minmax(260px,1fr) 354px;gap:10px;pointer-events:none}.game-bottom>section{pointer-events:auto;border-color:#80734e;position:relative}.minimap-panel{padding:8px;display:flex;flex-direction:column}.mini-heading{display:flex;justify-content:space-between;font-size:7px;letter-spacing:1.3px;height:15px;color:#c3c9ae}.mini-heading .subtle{font-size:7px}.minimap-panel canvas{width:100%;height:158px;image-rendering:pixelated;background:#121b13;cursor:crosshair;border:1px solid #4a553d}.mini-controls{display:flex;justify-content:space-around;padding-top:6px}.mini-controls button{font-size:7px;letter-spacing:.8px;color:#aeb79f;background:none;padding:0 3px}.mini-controls button:hover{color:var(--gold-bright)}.selection-panel{padding:17px 20px;overflow:hidden}.selection-empty{text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;gap:10px}.large-crest{font-size:32px;color:#7c845c}.selection-empty h3{font-size:10px;letter-spacing:2px;color:#c1c9af}.selection-empty p{font-size:11px;color:#869379;line-height:1.5}.selection-head{display:flex;gap:16px;align-items:center}.unit-portrait{width:70px;height:74px;border:1px solid #7c7350;background:radial-gradient(ellipse at 50% 30%,#59614277,#101b12);display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;color:var(--gold)}.unit-portrait svg{width:40px;height:40px;fill:none;stroke:currentColor;stroke-width:1.2}.portrait-tier{position:absolute;bottom:3px;right:5px;font-family:Georgia,serif;font-size:10px}.unit-title{flex:1;min-width:0}.unit-title h3{font-family:Georgia,serif;font-weight:normal;font-size:21px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}.unit-title small{font-size:8px;color:#a8b298;letter-spacing:1.3px;text-transform:uppercase}.hp-bar{height:4px;background:#333b29;margin:12px 0 5px}.hp-bar span{display:block;height:100%;background:linear-gradient(90deg,#65945a,#a6c16f)}.hp-caption{font-size:8px;color:#a0ad91;letter-spacing:.7px}.unit-stats{display:flex;gap:20px;margin:15px 0 10px;border-top:1px solid #6e74412e;padding-top:11px}.unit-stats div{font-size:10px;color:#c6cfb5;display:flex;gap:5px;align-items:center}.unit-stats small{font-size:7px;color:#8e9c7f;letter-spacing:.6px}.unit-stats svg{width:13px;height:13px;fill:none;stroke:var(--gold);stroke-width:1.5}.unit-order{font-size:10px;color:#9eab8a}.queue-row{display:flex;gap:5px;margin-top:12px}.queue-item{position:relative;width:40px;height:33px;border:1px solid #635d3f;background:#252e1f;font-size:9px;padding:3px;color:#d5c694}.queue-item>i{position:absolute;height:2px;background:var(--gold);bottom:0;left:0}.queue-item small{position:absolute;top:2px;left:3px;font-size:6px}.selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:5px;margin-top:12px;max-height:110px;overflow:auto}.selection-tile{height:35px;position:relative;background:#303a28;border:1px solid #69714e;color:#d5c691;display:flex;align-items:center;justify-content:center}.selection-tile svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.2}.selection-tile i{position:absolute;bottom:0;left:0;height:2px;background:#9ec66d}.commands-panel{padding:10px 12px}.command-heading{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.4px;color:#c3c9ad;padding-bottom:8px;border-bottom:1px solid #6e744133}.command-heading>span:last-child{font-size:7px;color:#8a977c;letter-spacing:.7px}.action-strip{display:flex;gap:4px;margin:8px 0}.action-button{height:29px;min-width:30px;flex:1;background:#293321;border:1px solid #535c40;color:#bcc9a5;font-size:7px;position:relative}.action-button svg{width:16px;height:16px}.action-button:hover,.command-card:hover{border-color:var(--gold);background:#3c432b;color:#eed49b}.action-button.active{background:#6a5d34;border-color:var(--gold)}.action-button small{position:absolute;bottom:1px;right:2px;font-size:6px;color:#a6b28e}.command-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;max-height:132px;overflow:auto}.command-card{position:relative;text-align:left;height:59px;min-width:0;border:1px solid #505b3e;background:linear-gradient(140deg,#2b3526,#1a251c);padding:6px 5px 5px;display:flex;flex-direction:column;gap:4px;align-items:flex-start;color:#cbd2b9}.command-card>svg{width:20px;height:20px;color:#d8c697}.command-card .card-name{font-size:7px;line-height:1.25;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.command-card .card-cost{font-size:6px;color:#b5ae7d;letter-spacing:.1px}.command-card .hotkey{position:absolute;right:5px;top:4px;font-size:6px;color:#a9b397}.command-card.locked{opacity:.48}.command-card.locked:hover{opacity:.85}.command-card .research-done{position:absolute;right:4px;top:4px;color:#b6d58a}.command-placeholder{font-size:10px;line-height:1.8;color:#8b9a7d;padding:12px 0;grid-column:1/-1}.control-groups{position:absolute;left:280px;bottom:233px;display:flex;gap:5px}.control-group{width:30px;height:27px;position:relative;border:1px solid #87925a88;color:#e0ce95;background:#122013b8;font-size:11px}.control-group.empty{opacity:.4}.control-group small{position:absolute;right:2px;bottom:1px;font-size:6px;color:#a2b28e}.target-prompt{position:absolute;left:50%;bottom:246px;transform:translateX(-50%);padding:11px 22px;color:#ead49b;border:1px solid #a38c4d;background:#142016e8;font-size:11px;letter-spacing:.5px;text-align:center;pointer-events:none}.target-prompt small{display:block;color:#a6ae95;font-size:9px;margin-top:5px}#notices{position:absolute;top:90px;right:24px;display:flex;flex-direction:column;align-items:flex-end;gap:7px;pointer-events:none;max-width:360px}.notice{padding:11px 15px;background:#142018ed;border-left:2px solid #d8bc6c;font-size:11px;line-height:1.4;color:#dce4c9;animation:noticein .2s ease-out;box-shadow:0 4px 14px #0004}.notice.error{border-color:#c8765b;color:#e6b79b}@keyframes noticein{from{opacity:0;transform:translateX(12px)}}#drag-box{position:absolute;border:1px solid #e0c77b;background:#e0c77b16;display:none;pointer-events:none;box-shadow:0 0 7px #e0c77b22}.tutorial{position:absolute;left:24px;top:155px;padding:17px;width:310px}.tutorial h3{font-family:Georgia,serif;font-weight:normal;font-size:20px;margin:9px 0}.tutorial p{font-size:11px;color:#b3bda3;line-height:1.7}.tutorial button{margin-top:13px;font-size:9px;min-height:30px;padding:8px 12px}.tutorial-progress{display:flex;gap:4px;margin-top:12px}.tutorial-progress i{height:3px;flex:1;background:#4e5a3c}.tutorial-progress i.done{background:var(--gold)}#fps{position:absolute;top:70px;right:24px;font:10px monospace;color:#c6d5b4}
.modal-backdrop{position:fixed;inset:0;z-index:100;background:#060b08b5;backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:24px}.modal{position:relative;max-width:720px;width:100%;max-height:90vh;overflow:auto;padding:34px 38px}.modal.wide{max-width:1040px}.modal h2{font-family:Georgia,serif;font-size:34px;font-weight:normal;line-height:1.2;margin:8px 0 19px}.modal h3{font-family:Georgia,serif;font-size:20px;font-weight:normal;margin:18px 0 12px;color:#e3d4ab}.modal p{color:#aeb9a0;font-size:12px;line-height:1.8;margin:10px 0}.modal .close-modal{position:absolute;right:17px;top:13px;background:none;color:#b9bfa6;font-size:25px;line-height:1}.modal .primary,.modal .secondary{font-size:10px}.modal-menu{display:flex;flex-direction:column;gap:10px;margin-top:25px}.modal-menu button{justify-content:center;min-height:40px}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid #64704e55;font-size:12px;color:#d2d8c0}.settings-row input[type=range]{padding:0;border:0;accent-color:var(--gold);height:16px}.settings-row input[type=checkbox]{accent-color:var(--gold);height:17px;width:17px}.settings-row select{height:34px}.manual-tabs{display:flex;gap:6px;margin-bottom:20px}.manual-tabs button{flex:1;font-size:9px;padding:11px 8px;background:#263021;color:#a5b397;letter-spacing:1px;border:1px solid #5b6345}.manual-tabs button.active{color:var(--gold);border-color:var(--gold)}.manual-unit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.manual-unit{padding:13px;border:1px solid #4c583a;background:#192418}.manual-unit h4{font-family:Georgia,serif;font-weight:normal;margin:0 0 6px;font-size:16px}.manual-unit .role{font-size:8px;color:var(--gold);text-transform:uppercase;letter-spacing:.6px}.manual-unit p{font-size:10px;line-height:1.5;margin:8px 0}.manual-unit .stats{font-size:9px;color:#b1bd9d}.controls-table{border-collapse:collapse;width:100%;font-size:11px;color:#bdc7ac}.controls-table td{padding:10px 0;border-bottom:1px solid #56614244;line-height:1.6}.controls-table td:first-child{width:38%;color:var(--gold)}.result-hero{height:160px;background-size:cover;background-position:center 30%;margin:-34px -38px 27px;position:relative}.result-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#172218,transparent)}.result-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:23px 0}.result-metrics>div{border:1px solid #6b6d4455;padding:17px;text-align:center}.result-metrics strong{display:block;font-size:24px;font-family:Georgia,serif;font-weight:normal;color:var(--gold)}.result-metrics small{font-size:8px;color:#a1af8c;letter-spacing:1px;display:block;margin-top:8px}.tooltip{position:fixed;z-index:200;pointer-events:none;max-width:280px;background:#111c14f8;border:1px solid #a4925d;padding:14px;box-shadow:0 7px 25px #0009;color:#d7dec7}.tooltip h4{font-family:Georgia,serif;font-weight:normal;font-size:17px;margin:0 0 7px;color:#ead49e}.tooltip p{font-size:10px;line-height:1.6;margin:4px 0;color:#b9c4a8}.tooltip .cost{color:#d8ba70;font-size:10px;margin:8px 0}.tooltip .requires{color:#d39a78}.tooltip kbd{font-size:9px;background:#34422c;padding:2px 5px;float:right}body.targeting #battlefield{cursor:crosshair}body.placing #battlefield{cursor:cell}
@media(min-height:950px){.menu-content{padding-top:50px}.title-row{margin-bottom:40px}.match-config{padding:24px 0}.menu-footer{padding-top:35px}}
@media(max-width:1100px){.menu-header{height:65px}.menu-content{padding-top:25px}.faction-card{height:300px}.faction-copy{left:17px;right:17px}.faction-copy h3{font-size:22px}.faction-traits{font-size:7px;gap:6px}.match-config{gap:9px}.battle-brand{min-width:150px}.battle-brand strong{font-size:10px}.battle-brand>span:last-child{display:none}.resource-bar{gap:17px}.game-bottom{grid-template-columns:215px minmax(200px,1fr) 310px;height:207px;left:8px;right:8px;bottom:8px;gap:6px}.selection-panel{padding:14px}.command-grid{gap:4px}.unit-title h3{font-size:18px}.unit-portrait{width:55px}.control-groups{left:234px;bottom:222px}.commands-panel{padding:9px}.target-prompt{bottom:230px}.minimap-panel canvas{height:153px}.unit-stats{gap:12px}}
@media(max-width:800px){.menu-header{padding:0 22px}.menu-header nav{gap:16px}.wordmark{font-size:12px}.menu-content{padding:25px 22px 0}.chapter-mark{display:none}.section-head{align-items:flex-start;gap:14px;flex-direction:column}.faction-cards{gap:10px}.faction-card{height:290px}.faction-copy{left:12px;right:12px;bottom:16px}.faction-copy h3{font-size:19px}.faction-copy .peoples{font-size:7px;letter-spacing:.8px}.faction-copy .tagline{font-size:10px;line-height:1.5}.faction-traits{display:none}.match-config{grid-template-columns:1fr 1fr;gap:15px}.match-config>.primary{grid-column:1/-1}.match-config#online-panel{grid-template-columns:1fr 1fr}.menu-footer{gap:15px;flex-wrap:wrap}.game-top{padding:0 12px;gap:12px}.battle-brand{min-width:auto}.battle-brand strong{display:none}.resource-bar{gap:12px}.resource-bar strong{font-size:13px}.resource-bar small{font-size:6px}.game-bottom{grid-template-columns:170px minmax(160px,1fr) 250px;height:195px}.minimap-panel canvas{height:140px}.unit-portrait{display:none}.selection-panel{padding:10px}.unit-stats{flex-wrap:wrap;gap:9px}.unit-title h3{font-size:16px}.command-card{height:55px}.command-card .card-name{font-size:6px}.control-groups{left:186px;bottom:211px}.manual-unit-grid{grid-template-columns:1fr 1fr}.modal{padding:25px}.result-hero{margin:-25px -25px 23px}}
@media(max-width:580px){body{overflow:auto}.faction-cards{grid-template-columns:1fr}.faction-card{height:220px}.faction-portrait{background-position:center 25%}.faction-copy{left:20px;bottom:20px}.faction-copy h3{font-size:26px}.faction-copy .peoples{font-size:9px}.faction-copy .tagline{font-size:12px}.faction-traits{display:flex}.menu-header .text-button{font-size:8px}.menu-content .title-row h1{font-size:40px}.tabs button{padding:8px 9px;font-size:8px}.game-bottom{grid-template-columns:110px 1fr;height:200px}.selection-panel{display:none}.commands-panel{grid-column:2}.minimap-panel canvas{height:105px;margin-top:12px}.mini-heading{font-size:6px}.mini-heading .subtle{display:none}.mini-controls{flex-direction:column;gap:8px}.control-groups{left:126px;bottom:212px}.resource-bar{gap:10px}.resource-bar>div{column-gap:3px;grid-template-columns:14px auto}.resource-bar>div>span{font-size:15px!important}.resource-bar strong{font-size:12px}.game-top{height:56px;gap:7px}.match-clock{min-width:45px}.match-clock span{font-size:6px}.match-clock strong{font-size:11px}.objective{left:10px;top:68px}.tutorial{left:10px;top:135px;width:270px}.manual-unit-grid{grid-template-columns:1fr}.modal{padding:25px 20px}.result-metrics{gap:6px}.result-metrics>div{padding:12px 5px}.lobby-content{padding:24px}.lobby-content .button-row{gap:7px}.lobby-content .button-row button{padding:12px;font-size:8px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.scenario-options{display:flex;align-items:center;gap:24px;margin-top:16px;border-top:1px solid #bba96524;padding-top:14px}.scenario-options label{font-size:10px;letter-spacing:.13em;color:var(--muted);min-width:240px}.scenario-options select{display:block;width:100%;margin-top:6px}.scenario-options p{font-size:12px;color:var(--muted);line-height:1.6;max-width:600px}.objective .objective-meter{height:4px;background:#080e0b;margin-top:9px;max-width:200px}.objective .objective-meter span{display:block;height:100%;background:#c7af69}.objective.warning{border-color:#e78c5b}.objective small{display:block;color:#b5bda7;margin-top:5px;font-size:11px}.objective button{padding:0;text-align:left;color:inherit;background:none;border:0;cursor:pointer}.tabs button{white-space:nowrap}@media(max-width:1000px){.section-head{align-items:flex-start;gap:12px;flex-direction:column}.scenario-options{align-items:flex-start;gap:12px;flex-direction:column}.tabs button{padding-left:10px;padding-right:10px}}

.network-banner{position:absolute;z-index:12;top:78px;left:50%;transform:translateX(-50%);max-width:490px;padding:12px 20px;border:1px solid #bda76b77;background:#101a14ee;color:#e7d8ac;font-size:12px;text-align:center;box-shadow:0 6px 20px #0004;pointer-events:none}.network-banner.failed{border-color:#cf7559;color:#edb39d}

.objective>.eyebrow{display:block}.objective button{display:block;margin-top:5px}.action-button{min-width:23px}

/* Alpha playtest: readable command surfaces and explicit battlefield feedback. */
:root{--hud-height:282px}
.visibility-config{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0 0}.check-option{display:flex;align-items:center;gap:12px;font-size:12px;color:#dfdfc9;letter-spacing:.02em}.check-option input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:#d8bd7a}.check-option span{display:block}.check-option small{display:block;font-size:10px;color:#a4b095;letter-spacing:0;margin-top:5px;line-height:1.5}.config-hint{font-size:10px;color:#aeb89f;line-height:1.5}.lobby-fog-option{grid-column:1/-1;padding:12px;border:1px solid #8c805344;background:#15201799}.lobby-options .check-option input{flex:0 0 18px}.lobby-content{width:min(680px,94vw)}
.game-top{height:68px;box-shadow:0 3px 24px #0007}.resource-bar small{font-size:9px;letter-spacing:1.2px}.resource-bar strong{font-size:19px}.match-clock span{font-size:9px}.match-clock strong{font-size:17px}.battle-brand>span:last-child{font-size:9px;max-width:94px;line-height:1.5}.objective .eyebrow{font-size:10px}.objective p{font-size:14px}.objective{top:84px}
.game-bottom{bottom:30px;left:14px;right:14px;height:var(--hud-height);grid-template-columns:246px minmax(295px,1fr) 420px;gap:10px}.game-bottom>section{background:linear-gradient(145deg,#1b281df5,#101a14f8);border:1px solid #88764d;box-shadow:inset 0 1px #d6c6931c,0 5px 24px #0007;min-height:0}.minimap-panel{padding:10px;gap:7px}.mini-heading{font-size:9px;letter-spacing:1px;min-height:15px}.mini-heading .subtle{font-size:8px}.minimap-panel canvas{height:100%;min-height:0;flex:1;image-rendering:auto;border:1px solid #82905e77}.mini-controls{padding-top:4px;min-height:24px;align-items:center;gap:4px}.mini-controls button{font-size:9px;padding:5px 3px;letter-spacing:.3px}.mini-controls button:hover{background:#45523555}
.selection-panel{padding:14px 16px;overflow:auto;scrollbar-width:thin;scrollbar-color:#786d47 #101a14}.selection-head{gap:13px;min-height:72px}.unit-portrait{width:76px;height:76px;overflow:hidden;border-color:#9b8654;background:radial-gradient(ellipse at 50% 20%,#596751aa,#172219 72%);box-shadow:inset 0 0 20px #070e0b99}.unit-portrait img{width:100%;height:100%;object-fit:contain}.unit-portrait svg{width:44px;height:44px}.portrait-tier{right:5px;bottom:4px;color:#f2ddab;text-shadow:0 1px 3px #000;font-size:12px}.unit-title h3{font-size:22px;line-height:1.15;margin-bottom:7px}.unit-title small{font-size:10px;letter-spacing:.8px;line-height:1.5}.hp-bar{height:5px;margin:10px 0 5px;border:1px solid #b2b28a22}.hp-caption{font-size:9px;letter-spacing:.4px}.unit-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:11px 0 9px;padding-top:9px;border-top-color:#72805d44}.unit-stats div{display:flex;flex-direction:column;align-items:flex-start;gap:4px;white-space:nowrap}.unit-stats strong{font-weight:500;font-size:14px;color:#eadcba;font-variant-numeric:tabular-nums}.unit-stats small{font-size:8px;letter-spacing:.15px;text-transform:uppercase;color:#a6b39a}.tactical-summary,.unit-tip{font-size:11px;line-height:1.6;color:#b9c6ad;margin:8px 0}.unit-tip{color:#d8c69b}.selection-empty{gap:11px}.selection-empty h3{font-size:11px;letter-spacing:1.8px}.selection-empty p{font-size:12px;line-height:1.8;color:#afbc9f}.selection-empty kbd{display:inline-block;padding:0 4px;background:#35432c;border:1px solid #6c7955;border-radius:2px;color:#dec990;font-size:10px}
.subgroup-row{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:10px 0 4px}.subgroup-chip{display:flex;align-items:center;gap:5px;max-width:190px;padding:5px 7px;background:#223222;border:1px solid #637052;color:#a6b89c;font-size:10px}.subgroup-chip svg{width:14px;height:14px}.subgroup-chip span{max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subgroup-chip b{color:#e0d5ac;font-size:10px;font-weight:500}.subgroup-chip.active{border-color:#e4c576;background:#544c2d;color:#f0dcac;box-shadow:inset 0 -2px #d9b96b}.subgroup-row>small{font-size:8px;color:#90a080;margin-left:auto}.selection-grid{grid-template-columns:repeat(auto-fill,minmax(32px,1fr));gap:4px;margin-top:8px;max-height:78px}.selection-tile{height:33px}.selection-extra{display:grid;place-items:center;font-size:11px;color:#c9bc96}.work-state{position:relative;font-size:11px;color:#d9cda9;line-height:1.5;padding:7px 0 8px;margin-top:5px}.work-dot{display:inline-block;width:6px;height:6px;background:#89947a;border-radius:50%;margin:0 7px 1px 0}.work-dot.working{background:#c8c685;box-shadow:0 0 5px #e4d88d66}.work-state>small{float:right;font-size:9px;color:#a6b698}.work-meter{height:3px;background:#34422b;margin-top:6px}.work-meter i{display:block;height:100%;background:linear-gradient(90deg,#8b9d59,#e0c474);transition:width .15s linear}.queue-label{font-size:8px;letter-spacing:.8px;color:#98aa89;margin-top:7px}.queue-row{margin-top:6px;gap:6px}.queue-item{width:58px;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px}.queue-item svg{width:20px;height:20px;stroke:#d7c083;fill:none}.queue-item span{font-size:7px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-item small{font-size:8px;left:4px;top:3px}.queue-item em{position:absolute;inset:auto 0 3px;background:#542d23;color:#f0b092;font-style:normal;font-size:6px;padding:2px 0}.queue-item:hover{border-color:#d8bd75;background:#4c3926}
.commands-panel{display:flex;flex-direction:column;padding:12px;overflow:hidden}.command-heading{font-size:10px;min-height:21px;padding-bottom:8px;letter-spacing:1.5px}.command-heading>span:last-child{font-size:9px;letter-spacing:.6px}.action-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));flex-shrink:0;gap:4px;margin:8px 0}.action-strip:empty{margin:4px 0}.action-button{min-width:0;height:39px;padding:4px 2px 3px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;background:linear-gradient(#34402b,#243020);border-color:#5e6c47}.action-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4}.action-button>span{font-size:9px;line-height:1;letter-spacing:.1px}.action-button small{font-size:8px;right:4px;top:3px;bottom:auto;color:#dfc686}.command-grid{flex:1;min-height:0;max-height:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;align-content:start;overflow:auto;scrollbar-width:thin;scrollbar-color:#897249 #172219}.command-card{height:72px;padding:7px 6px;gap:4px;background:linear-gradient(135deg,#35412e,#1a281d);border-color:#66704c}.command-card>svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.35}.command-card .card-name{font-size:10px;line-height:1.2;color:#e0e1c9;width:100%}.command-card .card-cost{font-size:9px;letter-spacing:0;color:#d2bc82}.command-card .hotkey{right:6px;top:5px;font-size:9px;color:#ead19a}.command-card.locked{opacity:.57}.command-card.locked:hover{opacity:1}.command-card.unaffordable .card-cost{color:#d2a088}.card-lock{position:absolute;right:6px;top:24px;font-size:13px;color:#d6b490}.command-placeholder{font-size:12px;line-height:1.9;padding:9px 2px;color:#aebd9f}.command-placeholder b{color:#dfcea5;font-weight:500}.unit-intel{grid-column:1/-1;font-size:11px;line-height:1.6;padding:5px 2px;color:#afc0a0}.unit-intel strong{font-size:12px;color:#e1cb91;font-weight:500}.unit-intel p{margin-top:5px}.unit-intel b{font-weight:500;color:#cebd95}.unit-intel .target-layers{color:#90b9bf;font-size:10px;border-top:1px solid #66754b44;padding-top:7px}.resource-portrait.ore{color:#e6c66e}.resource-portrait.aether{color:#92d7ee}
.control-groups{left:270px;bottom:calc(var(--hud-height) + 40px);gap:5px}.control-group{width:32px;height:29px;font-size:12px;border-color:#9b955c;background:#142315ec}.control-group small{font-size:8px}.control-group.empty{opacity:.55}.target-prompt{bottom:calc(var(--hud-height) + 78px);font-size:13px;letter-spacing:.2px;max-width:620px}.target-prompt small{font-size:11px;line-height:1.5}.battle-help{position:absolute;left:16px;right:16px;bottom:6px;height:19px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;color:#b7c5a4;text-shadow:0 1px 3px #000;font-size:10px;letter-spacing:.3px}.battle-help button{pointer-events:auto;color:#e9cc86;background:#17251be8;border:1px solid #817344;padding:2px 9px;font-size:9px;letter-spacing:1px}.hover-info{position:absolute;pointer-events:none;z-index:20;width:280px;padding:11px 13px;background:#111c17f5;border:1px solid #9a8b5f;box-shadow:0 6px 18px #0008}.hover-info>*{display:block}.hover-info strong{font-family:Georgia,serif;font-size:17px;color:#eddaaf;font-weight:normal;margin:5px 0}.hover-info>span{font-size:10px;color:#bdcbb4;line-height:1.6}.hover-info .hover-relation{font-size:8px;letter-spacing:1px;color:#d5c181}.hover-info small{font-size:10px;line-height:1.5;color:#c2bd91;margin-top:5px}.tooltip{max-width:340px;padding:15px 17px}.tooltip h4{font-size:20px}.tooltip p{font-size:11px;line-height:1.6}.tooltip .cost{font-size:11px;line-height:1.7}.tooltip .tooltip-role{color:#94b2b5;font-size:10px;text-transform:uppercase;letter-spacing:.6px}.tooltip .tooltip-help{border-top:1px solid #7f805144;margin-top:8px;padding-top:8px;color:#d3c18e}.tooltip b{color:#ddd1aa;font-weight:500}
.settings-row label{font-size:12px;color:#d7ddc4;letter-spacing:0}.settings-row select{max-width:300px;font-size:11px}.sound-preview{display:flex;align-items:center;gap:10px;padding:16px 0;border-bottom:1px solid #64704e55}.sound-preview>span{margin-right:auto;font-size:12px;color:#c7d0b7}.sound-preview button{min-height:31px;padding:6px 10px;font-size:9px}.manual-unit p{font-size:11px;line-height:1.6}.manual-unit .stats{font-size:10px;line-height:1.6}.controls-table{font-size:12px}.controls-table td{padding:11px 8px 11px 0}.manual-unit .role{font-size:9px}.manual-unit h4{font-size:18px}
@media(min-height:950px){:root{--hud-height:298px}}
@media(max-width:1180px){.game-bottom{grid-template-columns:205px minmax(255px,1fr) 360px;left:9px;right:9px;gap:7px}.control-groups{left:224px}.selection-panel{padding:12px}.unit-portrait{width:64px;height:68px}.unit-title h3{font-size:19px}.command-card .card-name{font-size:9px}.battle-brand>span:last-child{display:none}.unit-stats{gap:4px}.unit-stats small{font-size:7px}.mini-heading{font-size:8px}.mini-controls button{font-size:8px}.config-hint{max-width:300px}.resource-bar{gap:22px}}
@media(max-height:760px) and (min-width:801px){:root{--hud-height:248px}.unit-portrait{height:62px;width:62px}.selection-head{min-height:62px}.selection-panel{padding:10px 12px}.unit-title h3{font-size:19px}.unit-stats{margin:8px 0;padding-top:7px}.tactical-summary{font-size:10px;line-height:1.5}.command-card{height:65px}.action-button{height:34px}.action-button>span{font-size:8px}.game-top{height:60px}.objective{top:74px}}
@media(max-width:900px){:root{--hud-height:260px}.game-bottom{grid-template-columns:170px minmax(195px,1fr) 305px;gap:6px}.control-groups{left:188px}.unit-portrait{display:none}.unit-title h3{font-size:18px}.unit-title small{font-size:9px}.unit-stats{grid-template-columns:repeat(3,1fr)}.unit-stats div{flex-direction:row;align-items:center}.unit-stats strong{font-size:12px}.command-card{height:67px}.command-card .card-name{font-size:8px}.command-card .card-cost{font-size:8px}.commands-panel{padding:9px}.action-button>span{font-size:8px}.action-button small{font-size:7px;right:2px;top:2px}.resource-bar{gap:12px}.resource-bar strong{font-size:16px}.resource-bar small{font-size:8px}.visibility-config{align-items:flex-start}.config-hint{font-size:9px;max-width:225px}.selection-panel{padding:10px}.tactical-summary{font-size:10px}.sound-preview{flex-wrap:wrap}}
@media(max-width:700px){.game-bottom{grid-template-columns:125px 1fr}.selection-panel{display:none}.commands-panel{grid-column:2}.minimap-panel{padding:7px}.control-groups{left:143px;gap:4px}.control-group{width:26px}.mini-controls{flex-direction:column;gap:3px}.mini-controls button{font-size:9px}.battle-help>span{font-size:8px}.battle-brand{display:none}.command-card .card-name{font-size:10px}.command-card .card-cost{font-size:9px}.target-prompt{max-width:88vw;font-size:11px}.visibility-config{flex-direction:column;gap:10px}.config-hint{max-width:none}.settings-row{gap:10px}.settings-row select{max-width:200px}}
.command-card .command-portrait{position:absolute;width:43px;height:43px;left:2px;top:-2px;object-fit:contain;pointer-events:none}.command-card:has(.command-portrait){padding-top:36px}.selection-tile img{width:34px;height:33px;object-fit:contain;pointer-events:none}.manual-unit .manual-tip{color:#d2c08f}.manual-unit b{font-weight:500;color:#d8d2ae}
.replay-controls{position:absolute;right:16px;bottom:calc(var(--hud-height) + 40px);display:flex;align-items:center;gap:7px;padding:3px 7px;background:#111e16f0;border:1px solid #9b8654;color:#b7c5a6}.replay-controls>span{font-size:9px;letter-spacing:1px;padding-right:4px}.replay-controls button{padding:6px 9px;background:#34402a;color:#e4cc90;border:1px solid #7d754f;font-size:10px}.replay-controls button:hover{background:#525234}.replay-controls button:disabled{color:#acd49a;border-color:#77945c}

/* v0.3 — inset bronze, painted portraits and compact tactical information. */
:root{--hud-height:266px;--bronze:#9b784d;--bronze-light:#d0ad76;--ink:#111411;--bone:#eee1c3}
.game-bottom{grid-template-columns:218px minmax(310px,1fr) 390px;gap:9px;left:13px;right:13px;bottom:29px}
.game-bottom>section{border:1px solid #987449;background:linear-gradient(130deg,#29291ff7,#161c18fa 44%,#101714fa);box-shadow:inset 0 0 0 3px #11140f,inset 0 0 0 4px #80633a66,inset 0 10px 24px #8d73400c,0 8px 25px #0009}
.panel{border-radius:2px}.selection-panel{padding:12px 14px}.commands-panel{padding:12px}.minimap-panel{padding:10px}.minimap-panel canvas{box-shadow:inset 0 0 12px #000,0 0 0 2px #10140e;border-color:#9c815555}.mini-controls button{font-size:10px;letter-spacing:.2px}
.game-top{background:linear-gradient(#25271ff7,#141b17f7);border-bottom-color:#98764a;box-shadow:0 2px #0a100d,inset 0 -3px #5f4a2b33,0 5px 25px #0008}.resource-bar strong{color:#f0dfb8;font-size:20px;font-variant-numeric:tabular-nums}.resource-bar small{color:#c1b18c}.resource-bar{gap:30px}.menu-header nav{gap:22px}.text-button{color:#dac496}.text-button:hover{color:#fff0c5}.menu-footer{letter-spacing:1px}
.painted-portrait{display:block;flex-shrink:0;background-repeat:no-repeat;image-rendering:auto;background-color:#111811;overflow:hidden}.geometry-portrait{object-fit:contain}.unit-portrait{width:72px;height:78px;border:2px solid #a17d49;box-shadow:0 0 0 1px #11170f,inset 0 0 0 3px #d4ab6240,0 3px 10px #0007;background:radial-gradient(ellipse at 50% 20%,#6e6245,#141b13 80%)}.unit-portrait:after{content:'';position:absolute;pointer-events:none;inset:0;box-shadow:inset 0 0 15px #0007;border:2px solid #f1ce831f}.selection-portrait{width:100%;height:100%}.portrait-tier{z-index:1;background:#172019c9;border-top:1px solid #b8a06d;color:#ffe4aa;font-size:11px;padding:2px 5px;right:0;bottom:0}.selection-head{min-height:78px;gap:13px}.unit-title h3{font-size:21px;color:#f1dfb8}.unit-title small{font-size:10px;color:#bec5b0;letter-spacing:.4px}.hp-caption{font-size:10px}.hp-bar{background:#080e0b;border-color:#625a3d;height:6px}.hp-bar span{background:linear-gradient(90deg,#536a3d,#b5c77c)}.unit-stats{margin:9px 0 7px;padding-top:7px}.unit-stats small{font-size:8px;color:#b3b79f}.unit-stats strong{font-size:14px}.tactical-summary{font-size:11px;line-height:1.55}
.selection-empty{display:flex;align-items:center;justify-content:flex-start;gap:20px;min-height:135px;text-align:left;padding:10px 2px}.selection-empty .large-crest{font-size:50px;color:#a98c50;margin:0}.selection-empty p{font-size:11px;line-height:1.7;margin:10px 0}.selection-empty h3{font-family:Georgia,serif;font-size:15px;color:#e3cf9c;letter-spacing:.5px}.selection-empty .text-button{font-size:10px;letter-spacing:.7px}.commander-summary{display:flex;gap:14px;justify-content:space-between;border-top:1px solid #a18a4f33;padding-top:13px;color:#aeb8a1;font-size:10px}.commander-summary b{display:block;font-family:Georgia,serif;font-size:24px;font-weight:normal;color:#e7c98b;margin-bottom:6px}
.subgroup-row{gap:4px;margin:8px 0 5px}.subgroup-chip{padding:2px 5px 2px 2px;border-color:#6b6347;background:#202b21;max-width:190px;height:28px}.subgroup-chip .subgroup-portrait{width:23px;height:23px}.subgroup-chip span:not(.painted-portrait){font-size:10px}.subgroup-chip.active{border-color:#c39d5d;background:#4a3d25;box-shadow:inset 0 -1px #e3c57a}.subgroup-row>small{font-size:8px}.selection-grid{max-height:73px;grid-template-columns:repeat(auto-fill,minmax(32px,1fr));margin-top:6px}.selection-tile{padding:0;height:33px;border-color:#8e744a}.selection-tile .tile-portrait{width:100%;height:100%}.selection-tile .geometry-portrait{height:33px;width:100%}.selection-tile i{height:3px;box-shadow:0 0 0 1px #0008}.work-state{padding:5px 0;font-size:10px;margin-top:3px}
.command-heading{font-size:10px;letter-spacing:1px;min-height:24px;border-bottom:1px solid #a38a5333;padding-bottom:6px}.command-armory{padding:0;border:0;background:none;color:#e7c98c;font-size:11px;letter-spacing:1.6px;cursor:pointer}.command-armory small{font-size:9px;color:#b9b398;padding-left:6px}.command-armory:hover{color:#fff2c7}.command-heading>span:last-child{font-size:8px;color:#aeb9a1;letter-spacing:.7px}.action-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:6px 0}.action-button{height:35px;padding:4px 2px 3px;background:linear-gradient(#3a3b2c,#252c20);border-color:#796441;gap:3px;box-shadow:inset 0 1px #e5c38617}.action-button svg{height:14px;width:14px}.action-button>span{font-size:9px}.action-button small{font-size:8px;right:2px;top:2px}.action-button:hover{border-color:#d5b57b;background:#514a2d}.action-button.enabled{border-color:#acbf7f;background:linear-gradient(#3d5336,#223224);color:#deebbd}.autocast-button{min-width:55px;grid-column:span 2}.autocast-button>span{font-size:10px}.autocast-button small{color:#e4e6a5;font-size:8px}.tech-action{grid-column:span 2}
.command-grid{gap:5px;grid-template-columns:repeat(4,minmax(0,1fr));scrollbar-color:#927448 #101712}.command-card{height:86px;background:linear-gradient(125deg,#3b3b2b,#1c271d);border-color:#8b7047;padding:40px 4px 5px;overflow:hidden;justify-content:flex-start}.command-card:has(.command-portrait){padding-top:40px}.command-card .command-portrait{position:absolute;display:block;left:4px;top:4px;width:32px;height:32px;border:1px solid #af8a51;box-shadow:0 2px 6px #0007}.command-card>.geometry-portrait{object-fit:contain}.command-card>svg{position:absolute;left:8px;top:7px;width:27px;height:27px}.command-card .card-name{font-size:10px;color:#eee3c9;line-height:1.13;text-align:left;min-height:22px;letter-spacing:0}.command-card .card-cost{font-size:9px;line-height:1.1;text-align:left;width:100%;white-space:nowrap}.command-card .hotkey{top:6px;right:5px;font-size:9px;color:#ecd6a3}.command-card.locked{opacity:.7}.command-card.locked:hover{opacity:1}.command-card .card-state{position:absolute;top:24px;left:39px;right:3px;color:#c5ba97;font-size:7px;line-height:1.15;text-align:right;letter-spacing:.2px}.command-card .card-state.complete{color:#b7d497}.command-card .card-state.queued{color:#d7c582}.ability-cooldown{pointer-events:none;position:absolute;inset:auto 0 0;height:3px;background:#c5b58e;transform:scaleX(var(--cooldown));transform-origin:left;transition:transform .15s linear}.ability-card{border-color:#799083;background:linear-gradient(125deg,#32483e,#1d2b23)}.command-placeholder{font-size:11px;line-height:1.9;padding:8px 2px}.command-placeholder .text-button{margin-top:9px;font-size:10px}.unit-intel{font-size:11px;line-height:1.5;padding:5px 1px}.unit-intel .target-layers{color:#bed1d0;font-size:9px;letter-spacing:.3px;line-height:1.5;border-color:#899d7933}.unit-intel .text-button{font-size:9px;margin-top:7px}
.production-roster{margin-top:8px}.queue-label{font-size:8px;color:#b9ad8e;line-height:1.4;margin-top:0}.producer-row{position:relative;display:grid;grid-template-columns:110px minmax(0,1fr);gap:5px 7px;align-items:center;padding:8px 0;border-bottom:1px solid #8b754233}.producer-row.active-producer{border-bottom-color:#b3904d66}.producer-name{display:flex;gap:6px;align-items:center;background:none;border:0;color:#decaa0;padding:0;text-align:left;min-width:0;cursor:pointer}.producer-name .producer-portrait{height:33px;width:29px;object-fit:contain;border:1px solid #886c44}.producer-name>span:not(.painted-portrait){font-size:10px;line-height:1.3;word-break:normal;min-width:0}.producer-name small{display:block;font-size:8px;letter-spacing:.3px;color:#97a78f;margin-top:4px}.producer-name:hover{color:#fff0c5}.queue-row{display:flex;gap:4px;margin:0;min-width:0;overflow-x:auto;padding:2px 1px 4px;scrollbar-width:thin}.queue-item{flex:0 0 49px;width:49px;height:62px;padding:2px;position:relative;display:flex;flex-direction:column;justify-content:flex-start;gap:2px;border:1px solid #6d6a48;background:#142017;color:#d8d6bd;overflow:hidden}.queue-item .queue-portrait{width:29px;height:29px;border:1px solid #87714a;object-fit:contain}.queue-item>svg{width:27px;height:27px}.queue-item>small{position:absolute;left:3px;top:3px;font-size:8px;background:#121912d9;color:#e8ce94;padding:1px 2px;z-index:1}.queue-item>span:not(.painted-portrait){font-size:7px;line-height:1.1;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.queue-item>b{font-size:10px;font-weight:500;letter-spacing:.1px;color:#d6c89a;line-height:1}.queue-item:not(.active-entry)>b{font-size:7px;color:#99a48c;margin-top:3px}.queue-item.active-entry{border-color:#d6ad64;background:#303923;box-shadow:0 0 0 1px #100d08}.queue-item>i{position:absolute;left:0;bottom:0;height:3px;background:#d2b670}.queue-item.blocked{border-color:#da8c61}.queue-item.blocked>b{font-size:6px;color:#ffc4a2}.queue-idle{font-size:10px;color:#99a18b;border:1px dashed #8f7d4a44;padding:14px 10px;width:100%}.producer-progress{position:relative;grid-column:1/-1;display:flex;justify-content:space-between;gap:9px;font-size:9px;color:#bbc0a6;padding-bottom:6px;white-space:nowrap;overflow:hidden}.producer-progress>span{overflow:hidden;text-overflow:ellipsis}.producer-progress>b{font-weight:normal;color:#e0c38b;font-variant-numeric:tabular-nums}.producer-progress>i{position:absolute;bottom:0;left:0;height:2px;background:linear-gradient(90deg,#7d9666,#d7bb6c)}
.support-guidance{grid-column:1/-1;background:linear-gradient(130deg,#2a3829,#1b291e);border:1px solid #79845b66;padding:9px 10px;margin-top:2px}.support-guidance strong{font-size:9px;letter-spacing:.6px;color:#d2dba6;font-weight:500}.support-guidance p{font-size:10px;line-height:1.5;color:#b5c5a7;margin:6px 0 0}.support-counts{display:flex;gap:11px;flex-wrap:wrap;margin-top:8px;font-size:10px;color:#b5c49d}.support-counts b{color:#d6dfaf;font-weight:500}.battle-help>div{display:flex;gap:7px}.control-groups{left:240px;bottom:calc(var(--hud-height) + 39px)}.target-prompt{bottom:calc(var(--hud-height) + 78px);background:#151d18ee;border-color:#b4965d;padding:12px 20px;line-height:1.5}.replay-controls{bottom:calc(var(--hud-height) + 39px)}
.modal{background:linear-gradient(135deg,#292b20,#172119 48%,#111b16);border:1px solid #a08453;box-shadow:0 20px 80px #000c,inset 0 0 0 3px #0e160f,inset 0 0 0 4px #87734477}.modal.wide{width:min(1140px,95vw)}.modal h2{color:#f0dfb8}.modal h3{color:#dec99a}.modal>p{font-size:12px;line-height:1.75;color:#b9c4ad}.manual-tabs{flex-wrap:wrap;gap:6px}.manual-tabs button{font-size:10px;letter-spacing:.6px;padding:8px 10px}.manual-portrait{width:58px;height:64px;float:right;margin:0 0 8px 10px;border:1px solid #a27f4b;box-shadow:0 3px 12px #0007}.manual-unit{background:linear-gradient(125deg,#34382b55,#121e1777);border-color:#89734766}.manual-unit .role{line-height:1.5}
.armory-toolbar{display:flex;flex-direction:column;gap:14px;margin:20px 0 10px}.armory-toolbar .manual-tabs{margin:0}.armory-filters{display:grid;grid-template-columns:170px 1fr;gap:15px}.armory-filters label{font-size:9px;letter-spacing:1px;color:#b7b799}.armory-filters select,.armory-filters input{width:100%;display:block;margin-top:6px;height:37px;font-size:12px;background:#111c16;border-color:#80734d}.armory-context{font-size:11px!important;color:#aab99c!important;margin:10px 0 15px}.armory-path{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:13px 0 20px}.armory-path section{border:1px solid #93805177;background:linear-gradient(135deg,#3b3d2944,#1c2b2055);padding:12px}.armory-path strong{display:block;font-size:11px;color:#ead3a1;font-weight:500;margin:7px 0}.armory-path p{font-size:11px;color:#b7c2aa;line-height:1.5;margin:6px 0}.armory-path small{font-size:10px;color:#d0b985}.armory-content{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;align-items:start}.tech-tier>header{display:flex;align-items:center;gap:9px;border-bottom:1px solid #b2945866;padding:0 0 9px;margin-bottom:12px}.tech-tier>header>span{font-family:Georgia,serif;font-size:26px;color:#d4b36c}.tech-tier>header h3{font-family:Arial,sans-serif;font-size:11px;letter-spacing:2px;margin:0}.tech-tier>header small{font-size:9px;color:#93a486;margin-left:auto}.tech-card{padding:12px;background:linear-gradient(135deg,#293323,#17251ce6);border:1px solid #6c744855;margin-bottom:12px;scroll-margin-top:20px;box-shadow:inset 0 1px #f0dca00c}.tech-card.locked{background:linear-gradient(135deg,#262a21,#152019);border-color:#72603c66}.tech-card.highlighted{border:2px solid #d7b16a;box-shadow:0 0 20px #cfad5133}.tech-card-head{display:flex;align-items:center;gap:10px;min-height:65px}.tech-portrait{width:51px;height:61px;object-fit:contain;border:1px solid #ae8750;box-shadow:0 3px 8px #0008;flex-shrink:0}.tech-card-head>svg{width:36px;height:36px;flex-shrink:0;stroke:#d9c082;fill:none;margin:8px}.tech-card-head>div{min-width:0}.tech-card h3{font-size:18px;font-family:Georgia,serif;font-weight:normal;line-height:1.15;margin:4px 0 6px;color:#ebd8af}.tech-kind{font-size:8px;letter-spacing:1.5px;color:#a4b395}.tech-status{display:inline-block;padding:2px 5px;border:1px solid #8d856344;font-size:8px;letter-spacing:.7px;color:#b9baa2;background:#172018}.tech-status.available,.tech-status.completed{color:#c0da9e;border-color:#84986a66}.tech-status.locked,.tech-status.resources,.tech-status.supply{color:#d5b38c;border-color:#9c754866}.tech-status.queued{color:#f2d48e;border-color:#baa25f66}.tech-card p{font-size:11px;line-height:1.55;color:#b2c0a5;margin:8px 0}.tech-card .tech-role{font-size:9px;line-height:1.4;text-transform:uppercase;color:#b7c5b4;letter-spacing:.4px;margin-top:10px}.tech-cost{font-size:10px;color:#e0c38e;border-top:1px solid #9f885133;border-bottom:1px solid #9f885133;padding:7px 0;margin-top:7px}.tech-card .tech-targets{font-size:9px;color:#b3cecb;letter-spacing:.2px;line-height:1.5}.tech-card .tech-tip{color:#cdbf99}.tech-card .tech-counter{font-size:10px;color:#c6b6a1}.tech-card .tech-missing{font-size:10px;color:#dca580}.tech-card .tech-queued{font-size:10px;color:#e2ca8c}.tech-producer button,.tech-prerequisites button{background:none;border:0;border-bottom:1px dotted #9a8e5d;padding:1px 0;color:#e0cb96;text-align:left;font-size:10px;cursor:pointer;line-height:1.4}.tech-producer button:hover,.tech-prerequisites button:hover{color:#fff0c4}.tech-prerequisites{display:flex;gap:4px 7px;flex-wrap:wrap;border-top:1px solid #8f875133;padding-top:7px;margin-top:8px}.tech-prerequisites>span{font-size:8px;letter-spacing:.8px;color:#9eac91;width:100%;padding-bottom:2px}.tech-empty{font-size:11px;color:#9eaa92;padding:14px 2px}.tech-counter b{font-weight:500;color:#dcc39b}
.lab-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:24px 0}.lab-choice{position:relative;background:linear-gradient(145deg,#30392a,#18231b);border:1px solid #8a7147;padding:19px 16px;display:flex;flex-direction:column;box-shadow:inset 0 0 0 3px #0c140c66}.lab-number{font-family:Georgia,serif;position:absolute;right:12px;top:12px;font-size:28px;color:#b6955b88}.lab-roster{display:flex;gap:8px;min-height:76px;margin-bottom:15px;align-items:flex-end}.lab-roster>span{position:relative}.lab-portrait{height:68px;width:59px;border:1px solid #c19651;box-shadow:0 4px 10px #0007;object-fit:contain}.lab-roster b{position:absolute;right:-3px;bottom:-4px;background:#192216;color:#edce8f;padding:2px 4px;border:1px solid #8f7746;font-size:11px}.lab-choice .eyebrow{font-size:8px;letter-spacing:1.2px;margin:0 0 8px;color:#c5b084}.lab-choice h3{font-size:23px;font-family:Georgia,serif;font-weight:normal;margin:0 0 12px}.lab-choice p{font-size:12px;color:#b6c3a9;line-height:1.6;margin:0 0 12px}.lab-choice .lab-lesson{font-size:11px;color:#d1c09b;border-top:1px solid #8a814b44;padding-top:12px;margin-top:auto}.lab-choice .primary{font-size:10px;letter-spacing:.8px;padding:13px 10px;margin-top:8px}.lab-controls{position:absolute;top:82px;left:16px;width:352px;padding:13px 15px;z-index:7;background:linear-gradient(135deg,#263325ee,#121e17ef);border-color:#a1844d;box-shadow:0 5px 20px #0007}.lab-controls .eyebrow{font-size:8px;letter-spacing:1.4px}.lab-controls h3{font-size:21px;font-family:Georgia,serif;font-weight:normal;color:#ecd5a0;margin:6px 0 8px}.lab-controls p{font-size:11px;line-height:1.55;color:#bdc9ae;margin:0 0 10px}.lab-buttons{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.lab-buttons button{font-size:9px;padding:8px 10px;letter-spacing:.4px;min-height:29px}.lab-buttons .text-button{font-size:8px;padding:6px 2px;margin-left:auto}.lab-buttons button:disabled{opacity:.65;cursor:default}.lab-controls #lab-score{display:flex;gap:15px;margin:10px 0 12px;border-top:1px solid #8a895244;padding-top:8px;font-size:10px;color:#b8c7a5}.lab-controls #lab-score b{color:#ebd191;font-size:13px;font-weight:500}
:focus-visible{outline:2px solid #e7c77e;outline-offset:3px}.battle-help{font-size:10px}.tooltip{background:linear-gradient(140deg,#262f22f8,#101b15fa);border-color:#af8e52;box-shadow:0 8px 28px #000c}.tooltip h4{color:#efdbb0}.tooltip .tooltip-help{color:#d9c499}
@media(min-height:950px){:root{--hud-height:276px}}
@media(max-width:1180px){.game-bottom{grid-template-columns:190px minmax(260px,1fr) 340px;left:9px;right:9px;gap:7px}.control-groups{left:207px}.producer-row{grid-template-columns:88px minmax(0,1fr);gap:5px}.producer-name .producer-portrait{display:none}.producer-name>span:not(.painted-portrait){font-size:9px}.queue-item{flex-basis:45px;width:45px}.unit-title h3{font-size:19px}.command-card .card-name{font-size:9px}.resource-bar{gap:22px}.menu-header nav{gap:12px}.menu-header nav button{font-size:9px}.lab-controls{width:320px}}
@media(max-height:760px) and (min-width:901px){:root{--hud-height:248px}.selection-head{min-height:63px}.unit-portrait{height:64px;width:60px}.command-card{height:78px;padding-top:36px}.command-card:has(.command-portrait){padding-top:36px}.command-card .command-portrait{height:28px;width:28px}.command-card .card-name{font-size:9px;min-height:20px}.command-card .card-state{font-size:6px;left:35px;top:22px}.lab-controls{top:74px;padding:10px 12px}.lab-controls p{font-size:10px}.lab-controls h3{font-size:19px}}
@media(max-width:900px){.game-bottom{grid-template-columns:155px minmax(210px,1fr) 300px}.control-groups{left:172px}.unit-portrait{display:block;width:46px;height:54px}.selection-head{gap:8px;min-height:54px}.unit-title h3{font-size:16px}.unit-title small{font-size:9px}.producer-row{grid-template-columns:72px minmax(0,1fr)}.producer-name>span:not(.painted-portrait){font-size:8px}.producer-name small{font-size:7px}.queue-item{flex-basis:43px;width:43px}.armory-content{grid-template-columns:repeat(2,minmax(0,1fr))}.armory-path{gap:8px}.lab-choices{gap:10px}.lab-choice{padding:15px 11px}.lab-choice h3{font-size:20px}.lab-choice p{font-size:11px}.lab-roster{gap:5px}.lab-portrait{width:45px;height:55px}.menu-header nav{gap:8px}.menu-header nav button{font-size:8px;letter-spacing:.4px}.selection-empty .large-crest{display:none}.selection-empty{gap:0}.commander-summary{gap:7px;font-size:9px}}
@media(max-width:700px){.game-bottom{grid-template-columns:122px 1fr}.selection-panel{display:none}.control-groups{left:140px}.armory-content{grid-template-columns:1fr}.armory-path{grid-template-columns:1fr}.lab-choices{grid-template-columns:1fr}.lab-choice{display:grid;grid-template-columns:100px 1fr;gap:8px 15px}.lab-choice .lab-roster{grid-row:1/5;flex-direction:column;justify-content:flex-start;margin-bottom:0}.lab-choice h3,.lab-choice p,.lab-choice .primary{grid-column:2;margin:0}.lab-choice .lab-lesson{padding-top:8px}.lab-choice .primary{margin-top:8px}.lab-number{display:none}.lab-controls{width:290px;top:68px;left:10px}.lab-controls p{font-size:10px}.battle-help>span{display:none}.battle-help>div{margin-left:auto}.armory-filters{grid-template-columns:120px 1fr}.menu-header nav button[data-action=codex]{display:none}}
.lab-collapse{float:right;border:0;border-bottom:1px dotted #9c8752;background:none;color:#d8c393;padding:1px 0;font-size:8px;letter-spacing:.6px;cursor:pointer}.lab-controls.collapsed #lab-summary,.lab-controls.collapsed #lab-score{display:none}.lab-controls.collapsed{width:305px}.lab-controls .lab-order-feedback{font-size:10px;color:#dec796;line-height:1.5;margin:7px 0 10px}.lab-controls .lab-order-feedback:empty{display:none}

/* v0.4: stable command gestures, inspectable progression, restrained world hover. */
.camera-speed-control{width:220px;max-width:48%;display:flex;flex-direction:column;gap:6px}
.camera-speed-control input{width:100%;margin:0}.camera-speed-control span{display:flex;justify-content:space-between;font-size:9px;color:#aeb99d}.camera-speed-control b{font-weight:400}.settings-row output{margin-left:7px;color:#e6c88d;font-size:10px}
.hover-info{width:245px;padding:9px 11px;max-width:calc(100vw - 24px)}.hover-info.compact{width:auto;min-width:140px;max-width:230px;padding:7px 10px;border-color:#88734b88;background:#111b16e8;box-shadow:0 3px 10px #0006}.hover-info.compact strong{font-size:12px}.hover-info.compact small{font-size:10px;line-height:1.45;margin-top:3px;color:#aebd9e}
.producer-lanes{grid-column:1/-1;display:grid;gap:5px}.producer-progress{min-height:17px;padding:0 1px 5px}.producer-progress span{overflow:hidden;text-overflow:ellipsis}.producer-progress b{flex-shrink:0}.producer-assist{grid-column:1/-1;font-size:9px;color:#c9c49b;margin:0;padding:3px 0}.producer-row.root-paused{border-left:2px solid #b58165;padding-left:6px}.queue-item.paused-entry b{color:#e2ac87}.queue-item.paused-entry i{background:#ad7a59}.production-doctrine,.construction-guidance,.root-guidance{grid-column:1/-1;font-size:11px;line-height:1.55;color:#b9c6aa;padding:9px 10px;background:#19251c;border:1px solid #7e704844}.construction-guidance strong,.root-guidance strong{font-size:10px;letter-spacing:.6px;color:#e1c28e}.construction-guidance p,.root-guidance p{margin:7px 0 0}.root-guidance{border-color:#aa795777;background:#38271d66}.action-button:disabled{opacity:.45;cursor:default}.action-button[data-order^=gate-]{grid-column:span 2;font-size:10px}.construction-note{color:#d6c394!important;border-left:2px solid #9d8150;padding-left:9px!important}
.modal.tech-modal{width:min(1320px,96vw);max-width:1320px;height:min(930px,94vh);max-height:94vh;display:flex;flex-direction:column;overflow:hidden;padding:23px 25px 22px;gap:12px}
.tech-title{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-right:27px;flex-shrink:0}.tech-title .eyebrow{font-size:9px;margin:0 0 6px;letter-spacing:2px;color:#bfa77a}.tech-title h2{font-size:30px;line-height:1.05;margin:0}.tech-live-label{font-size:9px;letter-spacing:.6px;color:#b7c4a4;max-width:160px;text-align:right;line-height:1.5}
.tech-navigation{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;flex-shrink:0}.tech-navigation .manual-tabs{margin:0;gap:5px}.tech-navigation .manual-tabs button{padding:8px 10px;font-size:10px}.tech-view-tabs{display:flex;gap:4px;border:1px solid #8b744544;padding:3px;background:#111c16}.tech-view-tabs button{font-size:9px;letter-spacing:.5px;padding:8px 10px;background:none;border:0;color:#a8b699}.tech-view-tabs button.active{background:#4c432c;color:#eed7a5;box-shadow:inset 0 0 0 1px #a88b5355}
.doctrine-banner{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.8fr);gap:12px;background:linear-gradient(100deg,#463d2855,#1c2b2099);border:1px solid #9d845244;border-left:3px solid #b49353;padding:9px 12px;flex-shrink:0;max-height:130px;overflow:auto}.doctrine-banner>div>span{font-size:8px;letter-spacing:1.1px;color:#acb69c;display:inline-block;margin-right:8px}.doctrine-banner strong{font-size:16px;font-family:Georgia,serif;font-weight:400;color:#ebd4a3}.doctrine-banner p{font-size:11px;line-height:1.55;margin:5px 0 0;color:#c1c9b0}.doctrine-banner summary{cursor:pointer;font-size:10px;color:#ddc28c;padding-top:3px}.doctrine-banner details p{font-size:10px}
.tech-tools{display:flex;gap:10px;align-items:flex-end;flex-shrink:0}.tech-branches{display:flex;gap:4px;flex-wrap:wrap;flex:1}.tech-branches button{font-size:10px;padding:7px 8px;line-height:1.1;border:1px solid #766b4944;background:#1a261c;color:#abbc9e}.tech-branches button.active{color:#f0d69d;background:#4b452b;border-color:#b89554}.tech-search{min-width:190px;flex:0 1 230px}.tech-search>span,.tech-kind-filter{font-size:8px;letter-spacing:.7px;color:#b8bca2}.tech-search input,.tech-kind-filter select{font-size:11px;display:block;width:100%;height:31px;margin-top:5px;background:#101d16;border-color:#7e6c47;padding:6px 9px}.tech-kind-filter{min-width:130px}.tech-kind-filter select{padding:4px 6px}
.tech-workspace{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:16px;flex:1;min-height:0;border-top:1px solid #a18a5244;padding-top:10px}.tech-board-wrap{min-height:0;display:flex;flex-direction:column;overflow:hidden}.tech-path-caption{flex-shrink:0;margin-bottom:10px}.tech-path-caption>span{font-size:9px;letter-spacing:1px;color:#e0c490}.tech-path-caption p{font-size:10px;line-height:1.5;color:#a8b69c;margin:5px 0 0}.progression-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:10px;overflow:auto;min-height:0;padding:0 5px 8px 1px;scrollbar-width:thin;scrollbar-color:#937849 #111e16}.progression-tier{min-width:0}.progression-tier>header{display:flex;align-items:center;gap:8px;padding:7px 3px 10px;border-bottom:1px solid #8d774d88;margin-bottom:10px;position:sticky;top:0;z-index:1;background:#1c271d}.progression-tier>header>b{font:28px Georgia,serif;color:#ddbb76;min-width:23px}.progression-tier>header strong{font-size:10px;letter-spacing:1.3px;color:#ded0a4}.progression-tier>header small{display:block;font-size:9px;color:#9baa8d;margin-top:3px;line-height:1.35}
.progression-node{border:1px solid #6a715045;background:linear-gradient(135deg,#2c3729,#142219);margin-bottom:10px;box-shadow:inset 0 1px #e6d49a0a;scroll-margin-top:65px}.progression-node.path-ancestor{border-color:#b28f55;background:linear-gradient(130deg,#4a432b66,#1e2b1d)}.progression-node.selected{border-color:#f0cf87;box-shadow:inset 0 0 0 1px #d6b87888,0 0 18px #ad85352b}.progression-node.age-node{background:linear-gradient(125deg,#4c422c,#263222);border-color:#b28e50aa}.tech-node-main{width:100%;text-align:left;display:flex;align-items:flex-start;gap:8px;padding:9px 8px;border:0;background:none;min-width:0;cursor:pointer}.tech-node-main:hover{background:#afa36d12}.tech-node-main>span:not(.painted-portrait){display:block;min-width:0;flex:1}.tech-node-main strong{display:block;font-size:13px;font-weight:500;line-height:1.2;color:#e9d5ac;margin:3px 0 5px}.tech-node-main small{font-size:8px;text-transform:uppercase;line-height:1.35;color:#a5b699;display:block;letter-spacing:.2px}.tech-node-main em{display:block;font-size:9px;font-style:normal;color:#d0b882;line-height:1.45;margin-bottom:5px}.tree-portrait{width:34px;height:42px;border:1px solid #9c7c48;flex-shrink:0;object-fit:contain;box-shadow:0 2px 7px #0008}.tech-node-main>svg{height:28px;width:28px;stroke:#c8b47f;fill:none;flex-shrink:0;margin-top:7px}.tree-requires{display:flex;flex-wrap:wrap;gap:3px 5px;align-items:center;padding:6px 8px;border-top:1px solid #8f805233;background:#101c1633;line-height:1.35}.tree-requires>span{font-size:7px;letter-spacing:.8px;color:#93a287}.tree-requires b{font-size:9px;color:#bda469;font-weight:400}.tree-requires button{font-size:9px;color:#c0b88e;background:none;border:0;border-bottom:1px dotted #8c7e4d66;padding:0;cursor:pointer;text-align:left;line-height:1.35}.tree-requires button:hover{color:#f4dba3}.tree-roster{display:flex;flex-wrap:wrap;gap:4px;padding:6px 7px;border-top:1px solid #8f805222}.tree-roster button{position:relative;flex:1 1 44px;max-width:64px;min-width:43px;display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid transparent;background:#0f1c1544;padding:4px 2px;color:#c2c9ac;cursor:pointer}.tree-roster button:hover{border-color:#a78b52;background:#6d644a22}.tree-unit-portrait{height:33px;width:29px;border:1px solid #776744}.tree-roster button>b{position:absolute;right:4px;top:3px;color:#ead5a2;font-size:8px;background:#131d14dd;padding:1px 2px}.tree-roster button>span:not(.painted-portrait){font-size:8px;line-height:1.25;max-width:100%;overflow-wrap:break-word}.tree-roster svg{height:30px;width:26px;stroke:#bdad7e;fill:none}.catalog-board{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}.catalog-board .tree-roster{display:none}.catalog-board .tech-node-main{min-height:95px}.catalog-board .tree-portrait{width:43px;height:53px}.catalog-board .tech-node-main strong{font-size:14px}.catalog-board .tech-node-main em{font-size:10px}
.tech-inspector{min-height:0;overflow:auto;background:linear-gradient(155deg,#33372a88,#101e1777);border:1px solid #96805266;padding:15px;scrollbar-width:thin;scrollbar-color:#9b7e4e #111e16}.tech-inspector-head{display:flex;gap:12px;align-items:center;min-height:75px}.tech-inspector-head>div{min-width:0}.inspector-portrait{height:72px;width:61px;border:1px solid #b18c52;object-fit:contain;box-shadow:0 4px 12px #0009;flex-shrink:0}.tech-inspector-head>svg{width:50px;height:55px;stroke:#e1c48b;fill:none;flex-shrink:0}.tech-inspector h3{font-family:Georgia,serif;font-weight:400;font-size:23px;line-height:1.12;margin:5px 0 8px}.tech-inspector p{font-size:11px;line-height:1.6;color:#b8c3a9;margin:10px 0}.tech-inspector .tech-role{font-size:9px;text-transform:uppercase;letter-spacing:.7px;color:#d3c59e;margin:9px 0 4px}.tech-inspector .tech-cost{font-size:11px;line-height:1.5;padding:9px 0}.tech-inspector .tech-targets{font-size:10px;color:#b3d1cf}.tech-inspector .tech-runtime{font-size:10px;border:1px solid #8d805144;padding:7px 9px;background:#17251b;color:#decc9f}.tech-inspector h4{font:9px Arial,sans-serif;letter-spacing:1.2px;color:#e2c891;margin:18px 0 9px;border-top:1px solid #9e885344;padding-top:12px}.tech-requirement-list{list-style:none;margin:0;padding:0}.tech-requirement-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 0}.tech-requirement-list button,.tech-next-steps button{border:0;border-bottom:1px dotted #b2955566;background:none;text-align:left;color:#e0d0aa;font-size:11px;padding:2px 0;line-height:1.3;cursor:pointer}.tech-requirement-list span,.tech-next-steps small{font-size:8px;color:#d1a27e;white-space:nowrap;flex-shrink:0}.tech-requirement-list .met,.tech-next-steps .met{color:#b9d18c}.tech-next-steps{padding-left:20px;margin:0;color:#ba9d63}.tech-next-steps li{font-size:11px;padding:3px 0}.tech-next-steps button{margin-right:7px}.tech-next-steps small{font-size:7px}.tech-inspector .tech-ready{color:#c6dba8;font-size:10px}.tech-unlocks{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tech-unlocks button{display:flex;align-items:center;gap:7px;padding:5px;background:#17271c;border:1px solid #85734444;min-width:0;text-align:left;cursor:pointer}.tech-unlocks button:hover{border-color:#c3a365}.unlock-portrait{width:26px;height:31px;border:1px solid #8d7446;object-fit:contain;flex-shrink:0}.tech-unlocks svg{width:22px;height:25px;stroke:#c8b37b;fill:none;flex-shrink:0}.tech-unlocks button>span:not(.painted-portrait){font-size:9px;color:#e0cea3;line-height:1.25}.tech-unlocks small{display:block;font-size:8px;margin-top:3px;color:#9cad8d}.tech-inspector .tech-tip{color:#d2c199}.tech-inspector .tech-counter{color:#bcae98;font-size:10px}.tech-inspector-actions{display:flex;flex-direction:column;gap:8px;margin-top:15px}.tech-inspector-actions button{font-size:10px;letter-spacing:.7px;padding:11px 9px}.tech-status.constructing{color:#e3c78b;border-color:#ad995966}
@media(max-width:1100px){.modal.tech-modal{padding:20px 18px}.tech-workspace{grid-template-columns:minmax(0,1fr) 285px;gap:11px}.tech-title h2{font-size:27px}.tech-navigation .manual-tabs button{font-size:9px;padding:7px 8px}.tech-view-tabs button{font-size:8px;padding:7px 8px}.tech-search{min-width:160px;flex-basis:180px}.tree-portrait{width:27px;height:35px}.tech-node-main{padding:8px 6px;gap:5px}.tech-node-main strong{font-size:12px}.tree-requires{padding:5px 6px}.tech-inspector{padding:12px}.tech-inspector h3{font-size:22px}.doctrine-banner{grid-template-columns:1fr minmax(180px,.6fr)}}
@media(max-height:800px) and (min-width:801px){.modal.tech-modal{padding:18px 20px;gap:9px}.tech-title h2{font-size:26px}.tech-title .eyebrow{margin-bottom:3px}.doctrine-banner{padding:7px 10px;max-height:110px}.doctrine-banner p{font-size:10px}.tech-path-caption{margin-bottom:7px}.tech-path-caption p{font-size:9px}.tech-inspector-head{min-height:60px}.inspector-portrait{height:61px;width:51px}}
@media(max-width:800px){.modal.tech-modal{overflow:auto;height:94vh;display:block;padding:18px}.tech-title,.tech-navigation,.doctrine-banner,.tech-tools{margin-bottom:12px}.tech-workspace{display:flex;flex-direction:column;min-height:750px}.tech-board-wrap{min-height:400px;max-height:50vh}.tech-inspector{max-height:50vh;min-height:320px}.tech-tools{flex-wrap:wrap}.tech-branches{flex-basis:100%}.tech-search{flex:1}.doctrine-banner{grid-template-columns:1fr;max-height:none}.tech-live-label{font-size:8px}.tech-title h2{font-size:24px}.progression-board{gap:7px}.tech-node-main strong{font-size:11px}.tech-node-main small{font-size:7px}.tree-portrait{display:none}.catalog-board .tree-portrait{display:block}.tech-unlocks{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Construction stays distinct from transforming an existing Court individual. */
.worker-modes{display:flex;gap:5px;flex-shrink:0;margin:3px 0}
.worker-modes[hidden],.build-help[hidden]{display:none}
.worker-modes button{display:flex;align-items:center;justify-content:center;gap:6px;flex:1;min-width:0;min-height:32px;padding:5px 6px;border:1px solid #8f8058;background:#202c22;color:#ded2b2;font-size:11px;cursor:pointer}
.worker-modes button[aria-pressed="true"]{background:#605033;border-color:#efd18a;color:#fff0c8;box-shadow:inset 0 -2px #d5af62}
.worker-modes button svg{width:17px;height:17px;stroke:currentColor;fill:none;flex-shrink:0}
.worker-modes kbd{font:9px Arial,sans-serif;border:1px solid #bdab78;padding:1px 3px}
.build-help{font-size:10px;line-height:1.3;color:#ecd49a;margin:2px 0;flex-shrink:0}
.commands-panel.build-palette{border-color:#c7a663}
.build-palette #command-hint{color:#f1d38c;font-size:10px}

.commands-panel.build-palette{padding:10px;--build-row:52px}
.build-palette .command-heading{min-height:21px;padding-bottom:4px;flex-shrink:0}
.build-palette .action-strip{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:3px;margin:5px 0;scrollbar-width:thin;scrollbar-color:#8c7045 #162017;min-height:29px}
.build-palette .action-button{flex:0 0 35px;height:27px;min-width:35px;padding:3px 2px;gap:0}
.build-palette .action-button svg{height:13px;width:13px}
.build-palette .action-button>span{font-size:7px;line-height:9px;letter-spacing:0}
.build-palette .action-button small{font-size:6px;right:2px;top:1px}
.build-palette .command-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;scroll-padding:3px;overscroll-behavior:contain}
.build-palette .command-card,.build-palette .command-card:has(.command-portrait){height:var(--build-row);min-height:var(--build-row);padding:5px 4px 4px 31px;gap:0;justify-content:flex-start}
.build-palette .command-card .command-portrait{height:23px;width:23px;left:4px;top:5px}
.build-palette .command-card>svg{height:21px;width:21px;left:5px;top:6px}
.build-palette .command-card .card-name{font-size:9px;line-height:10px;min-height:20px;max-height:20px;white-space:normal;overflow:hidden;padding-right:7px;text-wrap:pretty}
.build-palette .command-card .card-cost{position:absolute;left:4px;right:3px;bottom:4px;width:auto;font-size:9px;line-height:10px;white-space:nowrap;letter-spacing:-.15px}
.build-palette .command-card .hotkey{top:4px;right:3px;font-size:8px;color:#f6df9d}
.build-palette .command-card .card-state{left:31px;right:3px;top:27px;font-size:6px;line-height:7px;text-align:left;background:#152016e0}
.build-palette .command-card.locked{opacity:.65}
.palette-navigation{display:flex;align-items:center;gap:5px;height:19px;min-height:19px;flex-shrink:0;padding-top:3px;color:#c5c2a5;font-size:9px;letter-spacing:.1px;position:relative;z-index:1}
.palette-navigation>span:first-child{margin-right:auto}
.palette-navigation .palette-scroll-label{display:none;font-size:7px;letter-spacing:1px;color:#b9a77b}
.palette-scroll-above .palette-scroll-label,.palette-scroll-below .palette-scroll-label{display:inline}
.palette-navigation button{width:24px;height:17px;padding:0;background:#3b402b;border:1px solid #9a7e49;color:#f2d399;font-size:13px;line-height:13px}
.palette-navigation button:disabled{opacity:.3}
.commands-panel.palette-scroll-below:after,.commands-panel.palette-scroll-above:before{content:'';position:absolute;left:10px;right:16px;height:17px;pointer-events:none;z-index:1}
.commands-panel.palette-scroll-below:after{bottom:29px;background:linear-gradient(transparent,#d4aa5544,#171e15)}
.commands-panel.palette-scroll-above:before{top:87px;background:linear-gradient(#171e15,#d4aa5533,transparent)}
.commands-panel:has(.worker-modes:not([hidden])).palette-scroll-above:before{top:125px}
@media(min-width:1181px){.game-bottom:has(.build-palette){grid-template-columns:218px minmax(260px,1fr) 440px}}
@media(max-height:760px) and (min-width:901px){.commands-panel.build-palette{--build-row:46px}.build-palette .command-card .card-cost{bottom:3px;font-size:8px}.build-palette .command-card .card-state{top:25px;font-size:6px}.build-palette .command-card .card-name{font-size:9px;line-height:9px;min-height:18px;max-height:18px}}
@media(max-width:1180px){.build-palette .command-card,.build-palette .command-card:has(.command-portrait){padding-left:26px}.build-palette .command-card .command-portrait{height:19px;width:19px}.build-palette .command-card>svg{height:18px;width:18px}.build-palette .command-card .card-name{font-size:8px;line-height:9px}.build-palette .command-card .card-state{left:27px}.build-palette .command-card .card-cost{font-size:8px}.palette-navigation{font-size:8px}}
@media(max-height:620px){.commands-panel.build-palette{--build-row:52px}.game-bottom:has(.build-palette){height:214px}.palette-navigation{height:23px;min-height:23px}.commands-panel.palette-scroll-below:after{bottom:33px}}
.target-prompt .placement-cost{display:block;font-size:12px;color:#f3d58f;margin-top:3px;letter-spacing:.2px}
.target-prompt>strong{font-size:14px;font-weight:500;letter-spacing:.3px}
.target-prompt.invalid{border-color:#c27c5b;background:#291c17ef}
.target-prompt.invalid .placement-cost{color:#e8bda1}
.target-prompt.resource-wait{border-color:#d9b66b}
.target-prompt.resource-wait small:first-of-type{color:#dbc596}
.role-coverage{margin:18px 0 24px;border-top:1px solid #a68c5266;padding-top:3px}.role-coverage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.role-coverage-grid article{padding:11px;background:linear-gradient(135deg,#3b36284d,#142018aa);border:1px solid #98804c66}.role-coverage-grid h4{margin:0 0 9px;color:#e5cea0;font-size:12px;font-weight:500;letter-spacing:.35px}.role-coverage-grid article>div{display:flex;flex-wrap:wrap;gap:5px}.role-coverage-grid button{display:flex;align-items:center;gap:6px;min-height:34px;padding:4px 6px;background:#18251d;border:1px solid #6c735044;color:#d5d9bd;text-align:left;font-size:10px}.role-coverage-grid button:hover,.role-coverage-grid button:focus-visible{border-color:#c7a866;color:#fff0c8}.role-coverage-grid button span{line-height:1.3}.role-coverage-grid button small{display:block;font-size:8px;letter-spacing:.6px;color:#aab399;margin-top:2px}.role-coverage-grid .role-portrait{width:26px;height:29px;flex-shrink:0;object-fit:contain;border:1px solid #8e754c66}.role-coverage-grid article p{font-size:10px;line-height:1.55;margin:9px 0 0}.role-gap{padding:7px 0;color:#b7ac95;font-size:11px;font-style:italic}@media(max-width:850px){.role-coverage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.role-coverage-grid{grid-template-columns:1fr}}
/* v0.6: keep formation, visibility and launch decisions in separate rows. */
.local-match-config{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 24px;align-items:start;padding:22px 0;margin-top:22px}
.local-match-config>label{min-width:0}
.local-match-config select{width:100%;min-height:43px}
.ffa-options{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:18px 24px;align-items:end;padding:16px 18px;border:1px solid #9f825d40;background:#0f191a88}
.ffa-options p{margin:0 0 3px;color:#b9c3ad;font-size:12px;line-height:1.6}
.local-match-config .visibility-config,.lobby-visibility{display:grid;grid-template-columns:1fr 1fr;grid-column:1/-1;gap:12px 20px;padding:0;align-items:stretch}
.local-match-config .check-option,.lobby-visibility .check-option{flex-direction:row;align-items:flex-start;padding:13px 15px;min-height:73px;border:1px solid #9a9b7040;background:linear-gradient(120deg,#1c2722bb,#111b18bb);font-size:13px}
.local-match-config .check-option input,.lobby-visibility .check-option input{margin-top:2px;flex:0 0 18px}
.local-match-config .check-option small,.lobby-visibility .check-option small{font-size:11px;line-height:1.6;margin-top:5px;color:#b2bea5}
.visibility-summary{grid-column:1/-1;margin:0;padding-left:2px;color:#d2c6a1;font-size:12px;line-height:1.5;letter-spacing:0}
.match-launch-row{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:28px;padding-top:4px}
.match-launch-row .primary{min-width:215px;min-height:48px;flex-shrink:0}
.match-briefing{min-width:0;max-width:880px}
.match-briefing p{margin:0 0 5px;line-height:1.5;color:#c4ccb5;font-size:12px}
.match-briefing #formation-summary{font-size:13px;color:#eee1bd}
.match-briefing .config-hint{display:block;max-width:none;margin-top:8px}
.lobby-visibility-rule{grid-column:1/-1;color:#a9b69d;line-height:1.5;font-size:11px}
.transport-guidance{grid-column:1/-1;border:1px solid #7d966e4d;background:#15251e80;padding:12px 14px;color:#c9d6bf}
.transport-guidance.locked{border-color:#a58c5c66;background:#30261977}
.transport-guidance strong{font-size:10px;letter-spacing:.08em;color:#e3d5b0}
.transport-guidance p{margin:6px 0;font-size:11px;line-height:1.5}
.weapon-profile{font-size:11px;line-height:1.5;color:#d9c693;margin:5px 0 7px}
@media(max-width:1050px){.local-match-config{column-gap:16px}.ffa-options{grid-template-columns:1fr 1fr}.ffa-options p{grid-column:1/-1}.match-launch-row{gap:20px}.match-launch-row .primary{min-width:180px}}
@media(max-width:850px){.local-match-config{grid-template-columns:1fr 1fr;row-gap:18px}.local-match-config .visibility-config,.lobby-visibility{gap:12px}.match-launch-row{align-items:flex-start}.match-briefing .config-hint{font-size:10px}}
@media(max-width:600px){.local-match-config,.ffa-options,.local-match-config .visibility-config,.lobby-visibility{grid-template-columns:1fr}.local-match-config{gap:16px}.match-launch-row{flex-direction:column;gap:16px}.match-launch-row .primary{width:100%}.ffa-options{padding:14px}.local-match-config .check-option,.lobby-visibility .check-option{min-height:0}.lobby-options{gap:16px}}
/* v0.7: a shared, explicit war council for local and direct-peer matches. */
.local-match-config>.slots-panel{grid-column:1/-1;min-width:0}.slots-panel{margin:4px 0;padding:16px;background:linear-gradient(145deg,#171c1ae8,#0d1312ee);border:1px solid #66573c;border-radius:4px;box-shadow:inset 0 1px #d6bc7220}.slots-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.slots-heading h3{margin:0;color:#d7c492;font-size:12px;letter-spacing:.16em}.slots-heading p,.slots-help{margin:7px 0 0;font-size:12px;line-height:1.5;color:#a8b0a6}.slots-heading .secondary{padding:10px 14px;font-size:10px}.slot-list{display:grid;gap:6px}.player-slot{display:grid;grid-template-columns:110px minmax(85px,.85fr) minmax(115px,1.25fr) 96px 96px minmax(125px,1.35fr) minmax(135px,1.5fr);gap:8px;align-items:center;padding:10px 12px;background:#0c1211cc;border:1px solid #48504466;border-left:3px solid var(--player-color);border-radius:3px}.player-slot.closed{opacity:.57}.slot-identity{display:flex;align-items:center;gap:8px;min-width:0}.slot-identity>i{width:7px;height:25px;border-radius:2px;background:var(--player-color);box-shadow:0 0 10px color-mix(in srgb,var(--player-color) 25%,transparent)}.slot-identity>b{color:var(--player-color);font:20px Georgia,serif}.slot-identity>span{font-size:12px;color:#d8d8c8;overflow:hidden;text-overflow:ellipsis}.slot-identity small{display:block;font-size:8px;letter-spacing:.08em;margin-top:5px;color:#9da899}.player-slot label{min-width:0;display:block!important}.player-slot label>span{display:block;margin-bottom:5px;font-size:8px;letter-spacing:.13em;color:#a99e84}.player-slot select{width:100%;height:32px;min-width:0;padding:4px 19px 4px 7px;font-size:11px;letter-spacing:0;text-transform:none;background-color:#141b17}.player-slot select:disabled{opacity:.62}.lobby-content{width:min(1180px,96vw);max-width:none;max-height:94vh;overflow:auto;padding:28px}.lobby-content h1{margin-bottom:5px}.lobby-content>.room-code{font-size:24px;padding:9px 28px}.lobby-content>#network-status{margin:10px 0;font-size:12px}.lobby-slot-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin:15px 0}.lobby-slot-controls label{display:grid;gap:7px;font-size:10px;letter-spacing:.12em;color:#c2b38d}.lobby-slot-controls>p{grid-column:1/-1;margin:0;font-size:12px;color:#afb8a8}.lobby-options{margin-top:18px}.lobby-options>.lobby-visibility{grid-column:1/-1}.lobby-content .subtle{font-size:12px;line-height:1.5}.research-levels{display:flex;gap:4px;margin:3px 0;color:#7f8878;font-size:10px}.research-levels i{font-style:normal;border:1px solid #6c715354;border-radius:2px;padding:0 4px}.research-levels .done{color:#d9c08c;background:#8a703233}.research-levels .current{border-color:#c3a667;color:#e8d7ac}.command.research-track .card-label{font-size:10px}
@media(max-width:1050px){.player-slot{grid-template-columns:110px 100px minmax(115px,1fr) 96px 96px}.player-slot .slot-difficulty{grid-column:2/4}.player-slot .slot-personality{grid-column:4/6}.slots-heading{align-items:flex-start}.lobby-content{padding:20px}}
@media(max-width:760px){.player-slot{grid-template-columns:1fr 1fr;gap:9px}.slot-identity{grid-column:1/-1}.player-slot .slot-difficulty,.player-slot .slot-personality{grid-column:auto}.slots-heading{display:block}.slots-heading .secondary{margin-top:12px}.lobby-slot-controls{grid-template-columns:1fr 1fr}.lobby-slot-controls>button{grid-column:1/-1}.slots-panel{padding:10px}}
.bulk-computers{display:grid;grid-template-columns:155px auto;gap:8px;align-items:end}.bulk-computers label{display:grid;gap:5px;font-size:9px;letter-spacing:.1em;color:#b8ab8a}.bulk-computers select{font-size:11px;height:34px;padding:5px 22px 5px 8px}.bulk-computers small{grid-column:1/-1;max-width:380px;font-size:10px;line-height:1.4;color:#9eaa99}.lobby-slot-controls{grid-template-columns:1fr 1fr 1fr auto}@media(max-width:850px){.lobby-slot-controls{grid-template-columns:1fr 1fr}}@media(max-width:650px){.bulk-computers{margin-top:12px;grid-template-columns:1fr}.bulk-computers small{grid-column:auto}}

/* Command feedback and keyboard continuity: no simulation or hit-box changes. */
.order-feedback{position:absolute;right:16px;bottom:calc(var(--hud-height) + 39px);max-width:min(43vw,520px);padding:7px 11px;border-left:2px solid #bca16a;background:#101913ee;color:#ded9ba;font-size:12px;line-height:1.4;pointer-events:none;text-align:right;box-shadow:0 3px 12px #0005}
.order-feedback:empty{display:none}.order-feedback.error{border-color:#da9974;color:#f0c1a5}.placing .order-feedback,.targeting .order-feedback{visibility:hidden}
#game:has(#replay-controls:not(.hidden)) .order-feedback{bottom:calc(var(--hud-height) + 79px)}
button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,#command-grid:focus-visible,#selection-panel:focus-visible,#control-groups:focus-visible{outline:2px solid #f1d491;outline-offset:3px;box-shadow:0 0 0 4px #111a16}
#battlefield:focus-visible{outline:2px solid #d8bd80;outline-offset:-3px}.settings-row output{display:inline-block;min-width:38px;text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.settings-help{font-size:12px;line-height:1.6}.storage-warning{color:#edb58e!important}
.producer-progress{font-size:10px}.player-slot label>span{font-size:9px}.slot-identity small{letter-spacing:0}.tech-search input{min-height:36px}.tech-empty{line-height:1.6}
@media(max-width:1100px) and (min-width:701px){.build-palette .command-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.commands-panel.build-palette{--build-row:54px}.build-palette .command-card .card-name{font-size:9px;line-height:11px;max-height:22px}.build-palette .command-card .card-cost{font-size:9px}.build-palette .command-card .card-state{font-size:7px;line-height:8px;top:27px}.palette-navigation{font-size:9px}.build-palette .action-button{min-width:39px;flex-basis:39px}.build-palette .action-button>span{font-size:8px}}
@media(max-width:900px){.order-feedback{bottom:calc(var(--hud-height) + 79px);max-width:calc(100vw - 30px);right:15px;font-size:11px}}
@media(max-width:600px){.settings-row{align-items:flex-start;flex-wrap:wrap;gap:10px}.settings-row label{flex:1;min-width:160px}.settings-row select{max-width:100%;width:100%}.settings-row input[type=range]{min-width:160px}}

.site-links{display:flex;gap:1.5rem;flex-wrap:wrap;padding:1rem 0;font-size:.8rem}.site-links a{color:#dfbd83}.player-chat-overlay{z-index:100}

.ranking-table{width:100%;border-collapse:collapse;margin:1.2rem 0}.ranking-table th,.ranking-table td{text-align:left;padding:.6rem;border-bottom:1px solid #dfbd8333}.ranking-table a{color:#dfbd83}

/* Navigation stays available above every screen and dialog. */
.lobby-content{max-height:calc(100dvh - 96px)}.launch-actions{display:grid;gap:9px;min-width:220px}.launch-actions .secondary{font-size:10px}.public-rooms-panel{padding:24px 0;border-bottom:1px solid #64704a55}.public-rooms-panel>p{color:#acb5a1;font-size:12px;margin-bottom:14px;line-height:1.6}.public-room{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;margin:8px 0;background:#121d16;border:1px solid #5f6343}.public-room strong{font-family:Georgia,serif;font-size:19px;font-weight:normal}.public-room p,#public-rooms>p{color:#aab69e;font-size:12px;line-height:1.6;margin-top:7px}.public-room .secondary{white-space:nowrap}.kick-commander{grid-column:2/-1;justify-self:end;min-height:30px;padding:7px 12px;font-size:9px}.room-invitation{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:20px 0}.room-invitation>strong{font:26px Georgia,serif;letter-spacing:4px;color:var(--gold)}.room-invitation input,.room-invitation p{width:100%}.room-invitation p{font-size:12px!important}.room-roster{margin:16px 0 24px;display:grid;gap:8px}.room-roster-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;background:#0d1711;border:1px solid #4e5a40}.room-roster-row small{display:block;margin-top:6px;color:#aab49a;font-size:11px}.room-roster-row em{font-style:normal;font-size:10px;color:var(--gold)}.room-roster-row .secondary{min-height:34px;font-size:10px;padding:8px 12px}.room-roster-row select{max-width:48%}#room-manager>p{margin-top:14px}
@media(max-width:600px){.launch-actions{width:100%;min-width:0}.public-room{align-items:flex-start;flex-direction:column}.public-room .secondary{width:100%}.room-roster-row{padding:10px;gap:10px}.room-roster-row select{font-size:10px;padding:0 4px}.room-roster-row strong{font-size:12px}.room-roster-row small{font-size:10px}}
/* Keep battlefield overlays inside the viewport on narrow screens. */
#game{overflow:hidden}

/* Keep setup focused on the roster and the next action. */
.title-row{gap:24px;margin-bottom:24px}.title-row>h1{margin:10px 0;font-size:clamp(34px,4.6vw,66px)}.rank-preview{flex:0 0 210px;display:grid;gap:7px;padding:18px 22px;text-align:left;border:1px solid #9b824956;background:linear-gradient(135deg,#38412c80,#111b13cc);color:var(--text)}.rank-preview>span{font-size:9px;letter-spacing:1.6px;color:#aeb89d}.rank-preview>strong{font:30px Georgia,serif;color:var(--gold-bright)}.rank-preview>small{font-size:10px;color:#b2bc9f}.rank-preview:hover{border-color:var(--gold)}.local-match-config{grid-template-columns:repeat(3,minmax(0,1fr))}.local-match-config .visibility-config{grid-column:1/-1}.local-match-config .check-option small:empty{display:none}.visibility-summary[hidden]{display:none!important}.local-match-config .check-option,.lobby-visibility .check-option{min-height:0}.local-match-config .visibility-config{padding:12px 0}.match-launch-row{justify-content:flex-end}.launch-actions{display:flex;gap:12px}.slots-heading p:empty,.lobby-slot-controls>p:empty{display:none}.player-slot{grid-template-columns:130px minmax(100px,1fr) minmax(140px,1.4fr) minmax(100px,1fr) minmax(100px,1fr)}.player-slot .slot-difficulty{grid-column:auto}.slot-identity small{letter-spacing:.1em}.lobby-slot-controls{grid-template-columns:1fr 1fr auto}.slots-panel{padding:14px}.slots-heading{margin-bottom:10px}.bulk-computers{grid-template-columns:145px auto}.bulk-computers label{font-size:8px}.bulk-computers .secondary{font-size:9px;min-height:34px;padding:8px 12px}.setup-hints{max-width:680px;border:1px solid #77805144;background:#16221999;padding:12px 16px;margin:22px 0 0;color:#b6c0a7}.hint-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:7px}.hint-heading>span{font-size:8px;letter-spacing:1.8px;color:#c4b37e}.hint-heading>div{display:flex;gap:8px}.hint-heading button{width:26px;height:26px;font-size:18px;background:transparent;color:#9faa91}.hint-heading button:hover{color:var(--gold-bright)}.setup-hints p{font-size:12px;line-height:1.6;margin:0;max-width:60ch}.show-hints{font-size:9px;margin-top:12px}.lobby-content>.setup-hints{margin-top:14px;max-width:none}.lobby-content h1{font-size:30px;margin:10px 0}.lobby-content>.room-code{margin-top:14px}.lobby-options{margin-top:14px}.lobby-visibility{padding-top:10px}.menu-footer{padding-top:20px}.mode-note:empty{display:none}
@media(max-width:850px){.player-slot{grid-template-columns:110px 1fr 1.2fr 1fr 1fr;gap:7px;padding:10px}.title-row{gap:12px}.rank-preview{flex-basis:180px}.local-match-config{grid-template-columns:1fr 1fr}.lobby-slot-controls{grid-template-columns:1fr 1fr}.lobby-slot-controls>button{grid-column:1/-1}}
@media(max-width:600px){.title-row{align-items:center}.title-row>h1{font-size:30px;max-width:52%;line-height:1.05}.rank-preview{flex-basis:145px;padding:12px;gap:6px}.rank-preview>strong{font-size:23px}.rank-preview>span{font-size:8px;letter-spacing:1px}.player-slot{grid-template-columns:1fr 1fr}.slot-identity{grid-column:1/-1}.player-slot .slot-difficulty{grid-column:auto}.local-match-config{grid-template-columns:1fr 1fr}.local-match-config .visibility-config{gap:10px}.launch-actions{flex-direction:column;width:100%}.setup-hints{padding:10px 12px}.bulk-computers{grid-template-columns:1fr}.slots-heading{display:flex;align-items:flex-start}.slots-heading h3{padding-top:8px}.menu-header nav{gap:12px;flex-wrap:wrap}.menu-header .text-button{font-size:8px}}
@media(min-width:851px){.menu-header{height:64px}.menu-content{padding-top:22px}.title-row>h1{font-size:54px}.faction-card{height:clamp(210px,25vh,260px)}.rank-preview>strong{font-size:26px}.rank-preview{padding:15px 20px}}
@media(max-width:600px){.menu-header{height:auto;min-height:88px;flex-wrap:wrap;gap:8px;padding:12px 22px}.menu-header .wordmark{font-size:13px}.menu-header nav{width:100%;flex-wrap:nowrap;gap:16px;overflow-x:auto;padding-bottom:2px}.menu-header nav .text-button{display:block;flex-shrink:0;font-size:9px;white-space:nowrap}}
@media(max-width:600px){.menu-header nav{gap:12px}.menu-header nav button.text-button{display:block}}
@media(max-width:600px){.menu-header nav{gap:6px;justify-content:space-between}.menu-header nav button.text-button{letter-spacing:.4px}}

/* Forged brass, midnight slate and parchment: shared battlefield treatment. */
:root{--panel:#15212a;--edge:#53605e;--gold:#d7b77c;--gold-bright:#ffe0a2;--text:#eee9dc;--muted:#a0b0af}
.game-top{background:linear-gradient(110deg,#18252bf7,#111a21fa 60%,#222724f7);border-bottom:1px solid #b99b615e;box-shadow:inset 0 1px #f5deb91a,0 6px 28px #0006}
.game-bottom>section{background:linear-gradient(140deg,#253138f7,#111c24f7 55%,#10191ffb);border:1px solid #ae91615e;box-shadow:inset 0 1px #e6cf9924,inset 0 0 0 3px #0a121977,0 8px 28px #0008;border-radius:3px}
.game-bottom>section:before{content:'';position:absolute;pointer-events:none;left:11px;right:11px;top:0;height:1px;background:linear-gradient(90deg,transparent,#e6c88980,transparent)}
.resource-bar>div{border-right:1px solid #b4c4c21a;padding-right:22px;min-width:76px}.resource-bar>div:last-child{border-right:0;padding-right:0}
.resource-bar strong{color:#f6e7c8;text-shadow:0 2px 8px #0006}.resource-bar small{color:#a9b5b6;letter-spacing:1.5px}
.objective{background:linear-gradient(90deg,#101b24eb,#101b2400);border-left-color:#dbba78}.objective p{color:#e0e8df}
.command-card{background:linear-gradient(135deg,#2b3b43,#19262e);border-color:#96aca333;box-shadow:inset 0 1px #c5d5cc10,0 2px 4px #0004;border-radius:2px}
.command-card:hover:not(:disabled){background:linear-gradient(135deg,#465350,#283b43);border-color:#dec38b;box-shadow:inset 0 1px #fce7b133,0 0 15px #c5a36218}
.command-card .hotkey{color:#ffe1a1}.command-card .card-name{color:#eee6d5}.command-card .card-cost{color:#c1cbbf}
.action-button,.control-group{background:linear-gradient(#293a43,#17232b);border-color:#92a29b40;color:#decba4}
.control-group.empty{opacity:.65}.control-group:not(.empty){box-shadow:inset 0 2px #c9ad70}
.unit-portrait,.selection-tile{border-color:#d2b47a80;background-color:#1b2b34;box-shadow:0 3px 12px #0006}
.unit-title h3{color:#f1dfb8;text-shadow:0 2px 8px #0004}.unit-title small,.hp-caption{color:#aabbbb}
.hp-bar{background:#09151b;border-radius:2px}.hp-bar span{background:linear-gradient(90deg,#508979,#b0d7a2);box-shadow:0 0 8px #8cbf9730}
.command-heading,.mini-heading{color:#d9c8a4}.minimap-panel canvas{border-color:#b7a17460;box-shadow:0 0 0 2px #0a141a,0 3px 14px #0005}
.order-feedback,.target-prompt,.hover-info,.tooltip{background:linear-gradient(130deg,#26343bf5,#111d25fa);border-color:#bd9c6066;color:#e0dfd0}
.selection-empty h3{color:#dfc998}.selection-empty .large-crest{color:#bda06b;text-shadow:0 0 24px #d1b06d20}
.modal{background:linear-gradient(145deg,#243139,#101a22 65%);border-color:#c5a57080;box-shadow:inset 0 1px #f7deb126,0 24px 90px #000b}
@media(max-width:900px){.resource-bar>div{padding-right:10px;min-width:0}}
@media(prefers-reduced-motion:reduce){.primary,.secondary,.faction-card,.faction-portrait{transition:none}}

/* Navigation belongs to each screen's existing header. */
.menu-brand{display:flex;align-items:center;gap:24px;flex-shrink:0}.playsible-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;color:#b7bdb5;font-size:12px;white-space:nowrap}.playsible-link:hover{color:var(--gold-bright)}.menu-brand>.playsible-link{padding-right:24px;border-right:1px solid #b99b613b}.lobby-header{position:relative;padding:16px 24px}.room-shortcut{max-width:190px;min-height:34px;padding:7px 12px;background:#253139;border:1px solid #a88c575e;color:#ddcfac;font-size:11px;line-height:1.4}.room-shortcut:hover{border-color:var(--gold)}.game-top{gap:18px}.battle-brand{min-width:0;flex-shrink:0}.game-top>.playsible-link{padding-right:15px;border-right:1px solid #b99b613b}.resource-bar{min-width:0;gap:24px}.game-top>#pause-button{flex-shrink:0}.modal-menu>.playsible-link{margin-top:4px}
/* Notices and persistent order feedback share the same dismissal control. */
.notice,.order-feedback,.mode-note,#network-status{position:relative}.notice,.order-feedback{padding-right:39px;pointer-events:auto}.order-feedback{position:absolute}.message-close{position:absolute;right:4px;top:3px;width:30px;height:30px;display:grid;place-items:center;background:transparent;color:#d7d3be;font-size:20px;line-height:1}.message-close:hover{color:#fff;background:#d3ba7622}.mode-note:has(.message-close),#network-status:has(.message-close){padding-right:38px;min-height:32px}.mode-note:empty,#network-status:empty{display:none}.order-feedback{min-height:36px}#notices{max-width:min(360px,calc(100vw - 32px))}
/* Portrait paintings retain their full composition on results. */
.modal:has(.result-layout){width:min(960px,95vw);max-width:960px;padding:0}.result-layout{display:grid;grid-template-columns:minmax(250px,.85fr) minmax(0,1.15fr);align-items:stretch}.result-layout .result-hero{height:auto;min-height:0;margin:0;display:flex;align-items:center;background:#101820;overflow:hidden}.result-hero img{display:block;width:100%;height:100%;max-height:660px;object-fit:contain}.result-layout .result-hero:after{display:none}.result-content{padding:48px 32px 32px;align-self:center}.result-content h2{margin:12px 0 16px}.result-content>p{color:#b9c4b9;font-size:13px;line-height:1.75}.result-content>.eyebrow{color:var(--gold);font-size:10px}.result-content .button-row{flex-wrap:wrap}.result-content .button-row>button{flex:1;font-size:10px;padding:14px 12px}.result-content .result-metrics{gap:8px;margin:24px 0}.result-content .result-metrics>div{padding:14px 6px}.result-content .result-metrics strong{font-size:23px}
@media(max-width:1180px){.game-top{gap:12px;padding:0 16px}.game-top>.playsible-link>span{display:none}.game-top>.playsible-link{font-size:20px;padding-right:12px}.game-top .battle-brand>span:last-child{display:none}.resource-bar{gap:18px}.room-shortcut{max-width:135px;font-size:10px}.menu-brand{gap:15px}.menu-brand>.playsible-link{padding-right:15px}.menu-header nav{gap:18px}}
@media(max-width:900px){.game-top .battle-brand strong{display:none}.game-top .battle-brand{display:flex}.menu-brand>.playsible-link{font-size:11px}.menu-header nav{gap:12px}.result-content{padding:42px 22px 24px}}
@media(max-width:600px){.menu-brand{gap:14px}.menu-brand>.playsible-link{padding-right:14px}.game-top{gap:8px;padding:0 8px}.game-top .battle-brand{display:none}.game-top>.playsible-link{border:0;padding-right:0;min-width:26px}.game-top .resource-bar{gap:10px}.game-top .resource-bar>div{column-gap:3px;grid-template-columns:14px auto}.game-top .resource-bar strong{font-size:12px}.game-top .resource-bar small{font-size:7px;letter-spacing:.3px}.game-top .resource-bar>div>span{font-size:17px}.game-top .match-clock{min-width:42px}.game-top .match-clock span{font-size:6px;letter-spacing:.3px}.game-top .match-clock strong{font-size:12px;letter-spacing:.5px}.room-shortcut{font-size:9px;padding:4px 6px;max-width:75px}.game-top .icon-button{width:30px}.modal-backdrop{padding:12px}.result-layout{grid-template-columns:1fr}.result-layout .result-hero{height:min(38dvh,320px);justify-content:center}.result-hero img{width:auto;max-width:100%}.result-content{padding:24px 22px}.result-content h2{font-size:32px}.result-content .result-metrics{margin:18px 0}.modal:has(.result-layout){max-height:94dvh}.lobby-content{top:64px;transform:translateX(-50%);max-height:calc(100dvh - 80px)}}

.modal:has(.result-layout)>.close-modal{z-index:2;background:#101a22dd;border:1px solid #c5a57060;border-radius:50%}
@media(max-width:600px){.game-top .resource-bar>div[title="Technology tier"]{display:none}.game-top .resource-bar strong{white-space:nowrap}}

/* Canonical faction commitments, mirrored in the world feedback. */
.faction-state{padding:8px 10px;margin:7px 0;border-left:3px solid #c6a6f2;background:#252138;color:#e7d9fa;font-size:11px;line-height:1.4}.faction-state.low{border-color:#edbf68;color:#f5d79b}.faction-state.hungry{border-color:#ff7d69;color:#ffb5a6}.form-guidance{grid-column:1/-1;padding:7px;color:#d7c7ef;font-size:10px;line-height:1.45}.command-card[data-kind="morph"]{border-color:#79648e;background:linear-gradient(140deg,#33263f,#1c2029)}.command-card[data-kind="breed"]{border-color:#9d7150;background:linear-gradient(140deg,#3e2b23,#241f1b)}

.faction-state.faction-clans{border-color:#e3a25c;background:#35291d;color:#f4d29c}.faction-state.faction-forge{border-color:#d5bd72;background:#2e2c21;color:#ead9a8}
