:root{color-scheme:dark;--bg:#0c1620;--panel:#152330;--line:#2d3d48;--gold:#f0bc61;--muted:#a3b0b6;--ink:#edf0ea}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 15%,#22333e 0,transparent 50%),var(--bg);color:var(--ink);font:15px/1.55 system-ui,sans-serif}header{height:78px;max-width:1500px;margin:auto;display:flex;align-items:center;gap:25px;padding:0 4%;border-bottom:1px solid var(--line)}a{color:inherit;text-decoration:none}.brand{font-weight:900;font-size:22px;margin-right:auto}.brand span{color:var(--gold);padding:0 5px}.brand small{font-size:10px;letter-spacing:2px;margin-left:12px}button,input,select{font:inherit;border:1px solid #435360;border-radius:8px;padding:11px 14px;background:#1a2c3b;color:var(--ink)}button{cursor:pointer;font-weight:650;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#334654;transform:translateY(-1px)}button:disabled{opacity:.38;cursor:not-allowed}button.primary{background:var(--gold);color:#171c20;border-color:var(--gold)}button.primary:hover:not(:disabled){background:#ffd18a}button.quiet{background:transparent;border-color:var(--line)}input,select{width:100%;margin-top:7px}label{display:block;font-size:12px;font-weight:650;letter-spacing:.3px;margin-bottom:16px;color:#c7d2d5}main{max-width:1500px;margin:auto;padding:35px 4%}h1,h2,h3,p{margin-top:0}h2{font-size:27px;line-height:1.2}h3{color:var(--gold);margin-bottom:8px}.eyebrow{font-size:10px;letter-spacing:2.3px;color:var(--gold);font-weight:750}.setup{display:grid;grid-template-columns:1.35fr 1fr;gap:7%;max-width:1150px;margin:30px auto}.intro h1{font:900 clamp(45px,6.5vw,82px)/1.05 Georgia,serif;letter-spacing:-3px;margin:19px 0}.intro h1 span{color:var(--gold)}.tagline{font:26px/1.4 Georgia,serif}.sub{max-width:410px;color:var(--muted)}.pills{display:flex;flex-wrap:wrap;gap:8px}.pills span{font-size:11px;border:1px solid #42515a;border-radius:30px;padding:5px 11px;color:#c2cbcc}.hero{width:100%;max-height:300px;object-fit:contain;margin-top:22px}.setup-card,.panel{border:1px solid var(--line);border-radius:16px;background:linear-gradient(125deg,#1b2b38,#12212d);padding:25px}.setup-card{box-shadow:0 25px 80px #0004}.setup-card h2{margin:12px 0 25px}.setup-card button{width:100%;margin-bottom:9px}.primary span{float:right}.divider{text-align:center;font-size:9px;letter-spacing:2px;color:var(--muted);margin:14px 0}.fine{font-size:11px;color:var(--muted);margin:10px 0 0}.lobby{max-width:650px;margin:40px auto}.lobby h1{font:50px Georgia,serif;margin:12px 0}.lobby button{margin:5px}.seat{border-bottom:1px solid var(--line);padding:12px}.game-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.game-top h2{margin:5px 0}.top-actions{display:flex;gap:15px;align-items:center;color:var(--muted);font-size:12px}.scoreboard{display:flex;gap:9px;margin-bottom:20px;flex-wrap:wrap}.score{flex:1;min-width:125px;border:1px solid var(--line);border-top:3px solid var(--player);border-radius:8px;padding:10px 14px;background:#15222c}.score.active{box-shadow:0 0 0 1px var(--player);background:#22323c}.score.dead{opacity:.35}.score b{display:block;font-size:12px;color:var(--player);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score small{font-size:10px;color:var(--muted)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px}.map-panel{border:1px solid var(--line);border-radius:16px;align-self:start;overflow:hidden;background:radial-gradient(ellipse at center,#203946,#101f2b)}.map-caption{display:flex;justify-content:space-between;padding:17px 20px;font-size:9px;letter-spacing:2px;color:#a6b6bf;border-bottom:1px solid #ffffff0c}.map-caption span:last-child{letter-spacing:0;color:#80939f}#map{display:block;width:100%;min-width:610px}.map-scroll{overflow:auto}.territory{cursor:pointer;outline:none}.territory polygon{stroke:#12232d;stroke-width:2;transition:fill .2s,stroke .2s;fill:var(--player);fill-opacity:.34}.territory:hover polygon,.territory:focus polygon{fill-opacity:.65;stroke:#fff}.territory.selected polygon{stroke:#fff;stroke-width:4;fill-opacity:.75}.territory.target polygon{stroke:var(--gold);stroke-width:4;fill-opacity:.8}.territory.eligible polygon{stroke:var(--gold);stroke-dasharray:4 3}.territory text{pointer-events:none;text-anchor:middle;fill:#f4f4eb}.land-name{font-size:9px;font-weight:650}.land-armies{font-size:22px;font-weight:850}.land-owner{font-size:8px;opacity:.65}.sea{stroke:#718b98;stroke-width:2;stroke-dasharray:5 6;opacity:.55}.realm-title{font-size:12px;fill:#d0bea0;letter-spacing:3px;text-anchor:middle;font-family:Georgia,serif}.realm-legend{display:flex;flex-wrap:wrap;gap:8px 18px;padding:14px 20px;border-top:1px solid var(--line);font-size:10px;color:#aab9bd}.realm-legend b{color:var(--gold)}.orders h2{margin-bottom:8px;font-size:23px}.orders p{font-size:12px;color:var(--muted)}.orders{padding:20px}.steps{display:flex;gap:5px;margin-bottom:20px}.steps span{flex:1;font-size:9px;text-transform:uppercase;border-top:2px solid #41505b;padding-top:8px;color:#748692}.steps .on{border-color:var(--gold);color:var(--gold)}.selection{font-size:12px;background:#0d1c27;padding:12px;border-radius:8px;min-height:47px;margin-bottom:15px}.order-buttons{display:grid;gap:8px}.cards{margin-top:20px;font-size:12px;color:var(--muted)}#trade{margin-top:9px;width:100%;font-size:12px}#battle{font-size:11px;margin-top:15px;color:var(--muted)}.dice{display:flex;gap:5px;margin:7px 0}.die{display:inline-flex;width:27px;height:27px;border:1px solid var(--gold);color:var(--gold);border-radius:5px;align-items:center;justify-content:center;font-size:16px;font-weight:bold;animation:roll .3s ease-out}.die.def{border-color:#96b4d0;color:#96b4d0}@keyframes roll{from{transform:rotate(-25deg) scale(.4)}to{transform:none}}.history{margin-top:14px;padding:15px 20px;font-size:12px}summary{cursor:pointer;color:#d8ddd7}#journal{padding-left:16px;max-height:180px;overflow:auto;font-size:11px;color:#96a9b3}#journal li{padding:4px 0}.danger{color:#e8a2a2;width:100%;margin-top:12px;font-size:11px}dialog{max-width:620px;max-height:85vh;background:#182a37;color:var(--ink);border:1px solid #657078;border-radius:18px;padding:32px}dialog::backdrop{background:#020a12bc}dialog h2{margin-top:12px}dialog p{color:#c2ced2;font-size:13px}.dialog-close{float:right;font-size:22px;padding:0 10px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);max-width:90%;background:#efd5a3;color:#17212a;border-radius:10px;padding:12px 22px;box-shadow:0 10px 30px #0006;z-index:5;display:none}footer{text-align:center;color:#627781;font-size:10px;letter-spacing:1px;padding:25px}[hidden]{display:none!important}@media(max-width:1000px){main{padding:25px 3%}.game-layout{grid-template-columns:minmax(0,1fr) 260px}.orders{padding:15px}}@media(max-width:760px){header{height:62px;font-size:12px;gap:14px}.brand small{display:none}.setup{grid-template-columns:1fr;gap:20px;margin-top:0}.intro h1{font-size:55px}.hero{max-height:180px}.tagline{font-size:22px}.setup-card{padding:22px}.game-layout{grid-template-columns:1fr}.score{min-width:95px;padding:7px 10px}.scoreboard{gap:6px}.game-top h2{font-size:22px}.top-actions{flex-direction:column;gap:5px}.map-caption{letter-spacing:1px}.game-layout aside{display:grid;grid-template-columns:1fr}.history{margin-top:12px}.map-scroll{padding-bottom:5px}.intro .sub{display:none}dialog{width:92%;padding:25px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* World board: continent-colored coastlines, player-colored army pieces. */
.map-panel{background:radial-gradient(ellipse at 50% 35%,#284553,#132936)}
.map-tools{display:flex;align-items:center;gap:7px;padding:8px 16px;border-bottom:1px solid #ffffff0b}
.map-tools button{padding:2px 12px;font-size:20px;line-height:1.3}
.map-tools span{font-size:10px;color:#a7bdc7;margin-left:6px}
.territory .country{fill:var(--continent);fill-opacity:.8;stroke:#263b43;stroke-width:1.25;stroke-linejoin:round;filter:url(#landShadow);transition:fill-opacity .2s,stroke .2s}
.territory:hover .country,.territory:focus .country{fill-opacity:1;stroke:#fff;stroke-width:2}
.territory.selected .country{fill:var(--player);fill-opacity:.95;stroke:#fff;stroke-width:2.8}
.territory.target .country{fill:var(--player);fill-opacity:.95;stroke:#ffdc91;stroke-width:2.8}
.territory.eligible .country{stroke:#fff0b9;stroke-width:2;stroke-dasharray:4 2}
.army-marker{cursor:pointer}.army-marker .army-base{fill:#152632;stroke:var(--player);stroke-width:2;filter:drop-shadow(0 2px 2px #0008)}
.army-marker:hover .army-base,.army-marker.selected .army-base,.army-marker.target .army-base{stroke:#fff;stroke-width:3;fill:#2f4050}
.army-marker .land-armies{fill:#fff;text-anchor:middle;font-size:18px;font-weight:850}
.army-marker .land-name{fill:#fff8e6;text-anchor:middle;font-size:10px;font-weight:700;paint-order:stroke;stroke:#152936;stroke-width:3;stroke-linejoin:round;pointer-events:none}
.army-marker .land-owner{fill:var(--player);font-size:9px;font-weight:900;paint-order:stroke;stroke:#132330;stroke-width:2;text-anchor:middle;pointer-events:none}
.sea{stroke:#e6d9b9;stroke-width:1.8;stroke-dasharray:5 6;opacity:.68;fill:none}
.ocean-label{font:12px Georgia,serif;letter-spacing:4px;fill:#9bb6c4;opacity:.55;text-anchor:middle}
.wrap-label{font:8px system-ui;letter-spacing:1px;fill:#bcced4;text-anchor:middle}
.compass{stroke:#b4c1bc;fill:#b4c1bc;opacity:.4;stroke-width:1}.compass circle{fill:none}.compass text{text-anchor:middle;font:12px Georgia,serif;stroke:none}
#map{min-width:900px}.map-scroll{max-height:74vh;overflow:auto}.map-caption{letter-spacing:2px}
.hero{max-height:310px;border-radius:12px}
@media(max-width:760px){.map-tools span{font-size:9px}.map-scroll{max-height:470px}.map-caption{letter-spacing:1px}.map-caption span:last-child{font-size:8px}.map-tools{padding:7px 12px}}
