@font-face{font-family:AtlasSerif;src:local('Georgia')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#102a34;color:#f6eddb;font:14px/1.5 system-ui,sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,.button{border:1px solid #647775;border-radius:9px;background:#203d45;color:#f6eddb;min-height:42px;padding:9px 13px;cursor:pointer;font-weight:650}button:hover{border-color:#e1c17f;background:#31505a}button:disabled{opacity:.48;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #e9c56f;outline-offset:3px}a{color:#e5cd9b;text-decoration:none}.gold{background:linear-gradient(135deg,#edce8d,#c2a065);color:#152d34;border-color:#f1d49c;box-shadow:0 3px 0 #705730;font-weight:800}.gold:hover{background:#f4dca1;color:#17313a}.wide{display:block;width:100%;margin-top:12px}.small{font-size:11px;line-height:1.5;color:#b8c8c7}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.2em;color:#e9c886;text-transform:uppercase}h1,h2,p{margin-top:0}h2{font:500 26px/1.15 Georgia,serif;margin-bottom:12px}[hidden]{display:none!important}#app{position:fixed;inset:0;background:#102a34}#app:fullscreen{width:100%;height:100%}#world{position:absolute;inset:58px 310px 0 0;overflow:hidden;touch-action:none}body.lobby-open #world{right:0}#world canvas{display:block;width:100%;height:100%;touch-action:none}#topbar{height:58px;display:flex;align-items:center;justify-content:space-between;padding:6px 20px;border-bottom:1px solid #b9b08444;background:#102a34;position:relative;z-index:6;gap:12px}#topbar a{font-size:12px;font-weight:700}.wordmark{font:14px Georgia,serif;letter-spacing:.18em;color:#dbd4be}.wordmark b{color:#edd291}.header-actions{display:flex;gap:8px}.header-actions button{font-size:11px;background:transparent;min-height:36px;padding:6px 10px}.veil{position:absolute;inset:58px 0 0;background:linear-gradient(90deg,#0b222ddb 0%,#0b222d99 48%,#0b222d00);z-index:5;overflow:auto;padding:clamp(15px,3vh,40px) 6vw;display:flex;align-items:center}.lobby-card{width:390px;max-width:100%;padding:25px 30px;background:linear-gradient(155deg,#17323cf5,#102631ed);border:1px solid #82938777;box-shadow:0 18px 80px #0007;border-radius:16px;position:relative}.lobby-card h1{font:500 clamp(42px,5vh,62px)/.95 Georgia,serif;letter-spacing:-.035em;margin:14px 0 16px}.lobby-card h1 em{font-style:normal;color:#e6c587}.intro{color:#c3cfcb;font-size:13px}.lobby-tabs{display:flex;padding:4px;background:#0c2530;border:1px solid #516563;border-radius:10px;margin:20px 0 16px;gap:2px}.lobby-tabs button{flex:1;border:0;min-height:36px;border-radius:6px;padding:6px;font-size:11px;background:transparent}.lobby-tabs .active{background:#d7bf8a;color:#12303a}.field{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#d8e0d7;margin:9px 0}.field input,.field select,input[type=number],select{width:100%;min-height:40px;background:#0c2631;color:#f5ecd4;border:1px solid #526966;padding:8px 10px;border-radius:6px;outline-color:#e2c078}.checkbox{display:flex;align-items:center;gap:8px;font-size:11px}.checkbox input{width:18px;height:18px;accent-color:#deb973}.lobby-foot{font-size:10px;text-align:center;margin:16px 0 0;color:#9ab3b5}.seat-row{display:grid;grid-template-columns:10px 1fr 114px;gap:8px;align-items:center;margin:5px 0;font-size:11px}.seat-dot{height:9px;width:9px;border-radius:50%;background:var(--army)}.seat-row select{padding:4px 8px;min-height:32px;font-size:11px}#seats{margin-bottom:12px}.room-card h2{font-size:34px}.room-code{display:block;width:100%;letter-spacing:.2em;font-size:25px;color:#edcd8c}#room-seats{margin:20px 0}#room-seats>div{display:flex;gap:10px;align-items:center;padding:9px;border-bottom:1px solid #ffffff18}.error{color:#ffd0ac;margin:10px 0 0;font-size:12px}.map-labels{position:absolute;inset:0;pointer-events:none}.map-marker{position:absolute;left:0;top:0;min-height:25px;min-width:27px;padding:1px 5px;pointer-events:auto;border-radius:6px;border:1px solid #ecdfb97a;border-bottom:3px solid var(--army);background:#142e36eb;box-shadow:0 2px 4px #0005;line-height:20px;font-size:12px;color:white;white-space:nowrap;touch-action:manipulation}.map-marker:hover,.map-marker.selected{background:#ead197;color:#142e36;z-index:4;outline:2px solid #ecd494}.map-marker.legal{box-shadow:0 0 0 2px #7eeee0,0 0 18px #7eeee088}.territory-name{display:none;position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);background:#132e38f0;color:#f5e5c2;padding:1px 6px;border-radius:5px;font:10px/1.5 system-ui}.map-marker.selected .territory-name,.map-marker:hover .territory-name,.map-marker.detailed .territory-name{display:block}.map-tools{position:absolute;bottom:18px;left:18px;display:flex;gap:6px;z-index:2}.map-tools button{background:#102f3ceb;font-size:12px}.map-tools button:first-child,.map-tools button:nth-child(2){width:40px;padding:0;font-size:22px}#commanders{position:absolute;top:70px;left:12px;right:323px;display:flex;gap:6px;flex-wrap:wrap;pointer-events:none}.commander{padding:5px 10px;border:1px solid #778678;border-bottom:3px solid var(--army);background:#102d38e8;border-radius:8px;font-size:10px;box-shadow:0 4px 10px #0003}.commander strong{display:block;font-size:11px}.commander.current{outline:1px solid #d8c68d}.commander.defeated{opacity:.45}.ai-tag{font:700 8px system-ui;border:1px solid #839090;border-radius:3px;padding:0 3px;color:#bbd0c9;margin-left:4px}#command-panel{position:absolute;top:58px;right:0;bottom:0;width:310px;overflow:auto;padding:22px 20px;background:linear-gradient(140deg,#17323c,#102830);border-left:1px solid #a8996666;scrollbar-width:thin}.turn-heading{display:flex;justify-content:space-between;align-items:start;gap:6px}.turn-heading p{margin:0 0 10px}#network-status{font-size:9px;color:#9ec8b8}#phase-title{font-size:29px}#phase-help{font-size:12px;color:#c3d1cb}#action-content .field{margin:12px 0}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.amount-row{display:grid;grid-template-columns:1fr 88px;gap:8px;align-items:end}.amount-row .field{margin-bottom:0!important}.amount-row input{font-size:23px;font-weight:750;color:#ead093}.amount-row button{margin-bottom:0}.army-total{font-size:12px;color:#e9ce94;margin:6px 0}.dice-choice{display:flex;gap:5px}.dice-choice button{flex:1}.dice-choice button.active{background:#dcc18a;color:#16313a}.roll-action{padding:15px 10px;min-height:64px;font-size:16px}.roll-action small{display:block;font-size:10px;font-weight:500}.selection-card{border:1px solid #718679;border-radius:8px;padding:10px 12px;margin:17px 0;font-size:12px;background:#183b43}.selection-card h3{margin:0 0 4px;font-size:14px}.selection-card .army-number{font:32px Georgia,serif;color:#edd194}.selection-card .miniature-counts{font-size:11px;color:#cbdbd0}.selection-card button{font-size:10px;min-height:34px;padding:6px 9px;margin-top:8px}#legend{font-size:11px;color:#b9c7be;margin:15px 0}summary{cursor:pointer;color:#e2d2ab;padding:8px 0}#continent-bonuses{display:grid;grid-template-columns:1fr 1fr;gap:4px;font-size:10px}.controls-help{margin-top:14px}#battle-panel{position:absolute;bottom:70px;left:calc((100% - 310px)/2);transform:translateX(-50%);padding:14px 25px;border:1px solid #c8b58188;border-radius:12px;z-index:4;background:#102731ef;text-align:center;box-shadow:0 10px 40px #0006;max-width:calc(100% - 330px)}#battle-panel .eyebrow{margin:0 0 12px}.battle-dice{display:flex;gap:25px;justify-content:center}.battle-dice strong{font-size:9px;letter-spacing:.15em;display:block;margin-bottom:10px}.battle-dice>div>div{display:flex;gap:8px}.battle-dice .physical-die{--die-size:32px}#attack-dice{color:#f09b86}#battle-result{font-size:12px;margin:15px 0 8px}#skip-battle{font-size:11px;min-height:34px}#toast{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);padding:12px 18px;max-width:90%;border:1px solid #d7bd7b;border-radius:9px;background:#122c36;z-index:20;box-shadow:0 4px 24px #0007;font-size:12px}dialog{width:560px;max-width:calc(100% - 24px);max-height:calc(100dvh - 30px);border:1px solid #b49c69;border-radius:14px;background:#17323d;color:#eee7d4;padding:24px;overflow:auto;box-shadow:0 20px 80px #0009}dialog::backdrop{background:#07161dc9}.dialog-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.dialog-heading button{min-width:38px;font-size:22px;line-height:22px;padding:6px}dialog p,dialog li{font-size:13px;color:#c9d5ce;line-height:1.65}dialog li{margin-bottom:10px}dialog ol{padding-left:20px}.formation-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;font-size:11px}.formation-fields input{margin-top:8px}#card-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.territory-card{padding:14px 8px;min-height:115px;background:linear-gradient(135deg,#d3c49e,#bba46e);color:#17323d;border-radius:8px;font-size:11px;text-align:center;cursor:pointer;border:3px solid transparent}.territory-card:has(input:checked){border-color:#63dad3}.territory-card strong{display:block;margin:7px 0}.territory-card input{accent-color:#144954}.territory-card span{font-size:10px}.waiting-for{border-left:2px solid #dbc18b;padding-left:12px;color:#cfdbd3;font-size:12px}.winner{font:32px Georgia;color:#eacb84;margin:20px 0}#handoff{text-align:center}body.lobby-open #menu-button{display:none}
@media(max-width:1000px){#world{right:260px}#command-panel{width:260px;padding:18px 14px}#commanders{right:272px}#battle-panel{left:calc((100% - 260px)/2);max-width:calc(100% - 276px)}#topbar{padding:5px 12px}.wordmark{font-size:12px}.header-actions{gap:4px}.lobby-card{padding:22px}#phase-title{font-size:24px}.commander{font-size:9px;padding:4px 7px}.commander strong{font-size:10px}}
@media(max-width:600px) and (orientation:portrait){#topbar{height:50px;padding:4px 8px;gap:6px}#topbar a span,.wordmark{display:none}.header-actions button{font-size:10px;padding:5px 8px}.veil{inset:50px 0 0;padding:12px;justify-content:center;align-items:start}.lobby-card{padding:20px;width:360px;margin:auto 0}.lobby-card h1{font-size:43px}.lobby-card .intro{font-size:12px;margin-bottom:8px}.lobby-tabs{margin:12px 0}.lobby-foot{font-size:9px}.lobby-card .eyebrow{font-size:8px}#world{inset:50px 0 41% 0}#command-panel{top:59%;bottom:0;left:0;width:100%;padding:10px 16px;border-left:0;border-top:1px solid #a89966}#phase-title{font-size:22px;margin:0 0 6px}#phase-help{font-size:11px;margin:6px 0}#commanders{top:58px;right:8px;left:8px;gap:3px}.commander{font-size:8px;padding:3px 5px}.commander strong{font-size:9px}.map-tools{bottom:calc(41% + 10px);left:10px}.map-tools button{min-height:34px;font-size:10px}.map-tools button:first-child,.map-tools button:nth-child(2){width:34px;font-size:19px}.map-marker{min-height:21px;min-width:21px;padding:0 3px;font-size:10px;line-height:18px;border-radius:4px}#battle-panel{bottom:calc(41% + 10px);left:50%;max-width:95%;padding:10px 13px}#battle-panel .eyebrow{font-size:8px;margin-bottom:8px}.battle-dice .physical-die{--die-size:25px}.battle-dice{gap:16px}#battle-result{margin:8px 0;font-size:10px}#action-content .field{margin:8px 0}#command-panel .gold{min-height:42px;padding:9px}#command-panel .selection-card{margin:10px 0}dialog{padding:18px}.turn-heading .eyebrow{font-size:9px;margin-bottom:5px}}
@media(max-height:500px) and (orientation:landscape){#topbar{height:42px;padding:3px 10px}.header-actions button{min-height:31px}.wordmark{font-size:10px}#world{top:42px;right:235px}#command-panel{top:42px;width:235px;padding:12px}#commanders{top:48px;right:244px;gap:3px}.commander{font-size:8px;padding:2px 5px}.commander strong{font-size:9px}#phase-title{font-size:22px;margin-bottom:7px}#phase-help{font-size:11px}.veil{inset:42px 0 0;padding:14px;align-items:start}.lobby-card{margin:auto;width:650px;padding:18px;display:block}.lobby-card h1{font-size:30px;line-height:1;margin:4px 0}.lobby-card h1 br{display:none}.lobby-card .intro{font-size:10px;line-height:1.4}.lobby-tabs{margin:8px 0}#seats{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.seat-row{margin:0}.map-tools{bottom:10px;left:10px}#battle-panel{left:calc((100% - 235px)/2);max-width:calc(100% - 250px);bottom:12px;padding:8px 12px}.battle-dice .physical-die{--die-size:25px}#battle-panel .eyebrow{font-size:8px;margin:0 0 7px}#battle-result{font-size:10px;margin:7px 0}.battle-dice strong{margin-bottom:5px}#action-content .field{margin:8px 0}#action-content .wide{margin-top:9px}.roll-action{font-size:14px;min-height:50px;padding:10px}}
@supports(padding:max(0px)){#topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}#command-panel{padding-bottom:max(15px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
#toast{pointer-events:none}
@media(max-height:500px) and (orientation:landscape){#battle-panel{display:grid;grid-template-columns:auto 1fr auto;gap:4px 12px;width:calc(100% - 255px);max-width:none;text-align:left;bottom:8px}#battle-panel>.eyebrow{grid-column:1/-1;margin:0}#battle-panel .battle-dice{gap:12px}#battle-result{margin:0}#skip-battle{padding:4px 8px;white-space:nowrap}#battle-panel:has(.battle-dice[hidden]){grid-template-columns:1fr auto}}
