:root{color-scheme:dark;--bg:#0d1419;--panel:#152128;--line:#35434a;--text:#ecebdc;--muted:#a7b6b8;--gold:#e6c27a;--teal:#6bc7b2;--bad:#ef9b8f}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 25% 0,#26332e,transparent 50%),var(--bg);color:var(--text);font:15px/1.55 system-ui,sans-serif}a{color:var(--gold);text-underline-offset:4px}button,input,select{font:inherit}button,select,input{border:1px solid #50616b;border-radius:7px;background:#1d3038;color:var(--text);padding:9px}button{cursor:pointer}button:hover:not(:disabled){border-color:var(--gold);background:#2b3d41}button:disabled{opacity:.43;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.shell{width:min(1420px,calc(100% - 40px));margin:auto;padding:24px 0 40px}.top{display:flex;justify-content:space-between;gap:20px;font-size:12px;margin-bottom:42px}.top a{text-decoration:none}.hero{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:28px}.eyebrow{font:11px ui-monospace,monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}h1{font:clamp(3.4rem,7vw,6.5rem)/1.02 Georgia,serif;letter-spacing:-.055em;margin:10px 0 13px}h1 em{color:var(--gold);font-weight:normal}.lede{max-width:63ch;margin:0;color:var(--muted)}.campaign{text-align:right;min-width:190px}.campaign strong{display:block;font:20px Georgia,serif;color:var(--gold)}.campaign span{display:block;font-size:12px;color:var(--muted);margin:5px 0 13px}.toolbar{display:flex;justify-content:end;gap:8px}.toolbar button{font-size:12px;padding:7px 10px}.ledger{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#111d23;margin-bottom:18px}.stat{padding:15px 19px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat small{display:block;text-transform:uppercase;font:10px monospace;letter-spacing:.1em;color:var(--muted)}.stat strong{font:24px ui-monospace,monospace;display:block;margin:6px 0}.stat span{font-size:11px;color:var(--muted)}.positive{color:var(--teal)!important}.negative{color:var(--bad)!important}.game{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:20px;align-items:start}.map-card,.panel{border:1px solid var(--line);background:#111d23;border-radius:14px;overflow:hidden}.map-top{padding:13px 16px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.map-top label{white-space:nowrap}.map-top select{max-width:65%;font-size:12px;padding:6px}.map-scroll{overflow:auto;border-block:1px solid var(--line);scrollbar-color:#70816d #142126}canvas{display:block;width:100%;height:auto;min-width:650px;cursor:crosshair;touch-action:pan-x pan-y}.legend{display:flex;gap:14px;flex-wrap:wrap;font:11px ui-monospace,monospace;padding:13px 16px;color:var(--muted)}.legend i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%}.map-tip{margin:0;padding:0 16px 16px;font-size:11px;color:var(--muted)}.season-plan{margin:18px 0;padding:19px;border:1px solid #485246;border-radius:12px;background:#1d2823}.season-plan h2{font:20px Georgia,serif;margin:0 0 8px}.season-plan p{margin:0;color:#b8c4b3;font-size:13px}.season-controls{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:16px}.primary{background:var(--gold);color:#292418;border-color:var(--gold);font-weight:700}.primary:hover:not(:disabled){color:var(--text)}.orders{font:12px monospace;color:var(--gold)}.panel{padding:20px}.panel h2{font:26px Georgia,serif;margin:6px 0}.owner{font-size:12px;color:var(--muted);margin-bottom:17px}.province-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px 16px;margin:16px 0;font-size:12px}.province-stats div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #2a3b42;padding-bottom:5px;color:var(--muted)}.province-stats strong{color:var(--text)}.feature{font-size:11px;color:var(--gold);margin-bottom:20px}.command-section{border-top:1px solid var(--line);padding-top:16px;margin-top:17px}.command-section h3{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin:0 0 10px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions button{text-align:left;font-size:12px;min-height:61px;padding:9px}.actions small{display:block;color:#b5c2c4;font-size:10px;margin-top:3px;font-weight:normal}.action-hint{font-size:11px;color:var(--muted);margin:9px 0 0}.army-form label{display:block;font-size:12px;margin:10px 0 5px}.army-form select{width:100%;font-size:12px}.army-form input[type=range]{width:100%;padding:0;accent-color:var(--gold)}.army-readout{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.battle-preview{padding:10px;background:#0d171d;border:1px solid #34464f;border-radius:7px;margin:11px 0;font-size:12px;color:#c8d1d0;min-height:60px}.army-form button{width:100%;font-size:12px;font-weight:600}.danger{background:#623c35;border-color:#ab7664}.notice{padding:12px 16px;border-left:3px solid var(--gold);background:#202a28;border-radius:0 8px 8px 0;font-size:13px;margin-bottom:18px;min-height:44px}.chronicle{margin-top:20px}.chronicle h2{font:23px Georgia,serif;margin:0 0 12px}.log{height:205px;overflow:auto;padding:12px 16px;background:#101b21;border:1px solid var(--line);border-radius:12px;font-size:12px}.log p{padding:8px 0;margin:0;border-bottom:1px solid #23333b}.log small{display:block;font-size:10px;color:#81999d}.good{color:var(--teal)}.bad{color:var(--bad)}.gold{color:var(--gold)}.guide{margin-top:20px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:13px}.guide summary{cursor:pointer;color:var(--text);font-weight:600}.guide h3{color:var(--gold);font:18px Georgia,serif}.guide li{margin:7px 0}.credits{border-top:1px solid var(--line);margin-top:34px;padding-top:22px;font-size:12px;color:var(--muted);display:flex;gap:35px;justify-content:space-between}.credits p{max-width:65ch;margin:0}.credits strong{color:var(--text)}dialog{border:1px solid #a18d5b;background:#152229;color:var(--text);border-radius:16px;padding:27px;max-width:480px;width:calc(100% - 36px)}dialog::backdrop{background:#070c12bb}dialog h2{font:30px Georgia,serif;color:var(--gold);margin:0 0 15px}dialog p{color:var(--muted)}dialog .buttons{display:flex;gap:10px;justify-content:end;margin-top:20px}.skip-link{position:absolute;top:-90px;background:var(--bg);padding:12px;z-index:20}.skip-link:focus{top:8px}.save-status{font-size:11px;color:var(--muted);margin-top:12px}.shortcuts{font-size:11px;color:var(--muted)}@media(max-width:1050px){.game{grid-template-columns:minmax(0,1fr) 300px}.stat{padding:12px}.hero{align-items:start}.campaign{padding-top:18px}.shell{width:calc(100% - 28px)}}@media(max-width:800px){.game{grid-template-columns:1fr}.panel{display:grid;grid-template-columns:1fr 1fr;gap:18px}.command-section{margin:0}.province-summary{grid-column:1/-1}.hero{display:block}.campaign{text-align:left;display:flex;justify-content:space-between;align-items:center;gap:15px}.campaign span{margin-bottom:0}.ledger{grid-template-columns:repeat(3,1fr)}.stat:nth-child(3){border-right:0}.stat:nth-child(-n+3){border-bottom:1px solid var(--line)}.credits{flex-direction:column;gap:15px}.top{margin-bottom:28px}.season-controls{flex-wrap:wrap}}@media(max-width:480px){.panel{display:block}.command-section{margin-top:18px}.map-top{padding:12px}.map-top select{max-width:60%}.stat{padding:10px}.stat strong{font-size:21px}.campaign{align-items:start}.toolbar{flex-direction:column}.top{gap:10px;font-size:11px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.game > *{min-width:0}.map-card,.map-scroll{max-width:100%}
