@charset "UTF-8";
:root{color-scheme:dark;--bg:#10191d;--panel:#182428;--line:#3c4641;--gold:#e3bf7a;--text:#f6f0df;--muted:#b4beb9;--red:#a53339;--blue:#305c91;--duration:300ms;font-family:Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 60% 0,#25332f 0,transparent 65%),var(--bg);color:var(--text);min-height:100vh}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{border:1px solid #59615b;background:#253338;color:var(--text);border-radius:5px;padding:10px 13px;cursor:pointer;transition:background .15s,border-color .15s}button:hover{background:#3a494d;border-color:var(--gold);color:#fff9e8}button:active{background:#4c5146;color:white}button:disabled{cursor:not-allowed;background:#252e30;color:#aab1ae;border-color:#4c5555;opacity:.78}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ffe19c;outline-offset:3px}a{color:#e3c88f;text-decoration:none}a:hover{color:#fff0cb;text-decoration:underline}input,select{min-width:0;background:#111d22;color:var(--text);border:1px solid #586260;border-radius:5px;padding:10px;width:100%}input[type=checkbox]{width:18px;height:18px;accent-color:#dabb80;vertical-align:middle}label{display:block;font-size:12px;line-height:1.5;color:#d1d8d1}label input, label select{margin-top:5px}p{line-height:1.6}h1,h2,h3,p{margin-top:0}h2{font-family:Georgia,serif;font-weight:400}small,.fine{font-size:11px;color:var(--muted);line-height:1.6}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:2px;font-weight:650}.masthead{height:90px;max-width:1360px;margin:auto;padding:18px 38px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #a78b4e33}.brand{display:flex;gap:13px;align-items:center;font-family:Georgia,serif;font-size:25px;letter-spacing:4px;color:#f3ddb2}.brand small{display:block;font-family:Segoe UI,Arial,sans-serif;font-size:8px;letter-spacing:2px;color:var(--muted);margin-top:3px}.masthead nav{display:flex;gap:20px;align-items:center;font-size:12px}.quiet{background:transparent;border-color:transparent;padding:8px}.quiet:hover{background:#344243;border-color:#667166}.primary{background:var(--gold);border-color:var(--gold);color:#162022;font-weight:700;padding:13px 16px;display:flex;justify-content:space-between;align-items:center;gap:15px}.primary:hover{color:#111b1d;background:#f4d597;border-color:#ffe5ad}.primary:active{background:#c8a263;color:#111}.primary:disabled{color:#b7bbb5;background:#343f3e;border-color:#667069}.secondary{background:#293c3c;color:#f4ddb0;border-color:#938059}.secondary:hover{background:#415650;color:#fff1cd}.full{width:100%;justify-content:center;margin-top:12px}.text-button{border:0;border-bottom:1px solid #998459;border-radius:0;padding:12px 0;color:var(--gold);background:none;font-size:13px;letter-spacing:.4px}.text-button span{margin-left:40px}#lobby{max-width:1284px;margin:auto;padding:0 32px}.hero{display:grid;grid-template-columns:1fr 1.15fr;gap:35px;align-items:center;padding:48px 0 38px}.hero h1{font:normal clamp(42px,4.8vw,66px)/1.05 Georgia,serif;letter-spacing:-2px;margin:21px 0}.lede{font-size:14px;color:#c2ccc5;line-height:1.75}.hero-tags{display:flex;gap:14px;margin:24px 0 8px;color:#abb9b0;font-size:8px;letter-spacing:1.2px}.hero-map{position:relative;padding:10px 14px 0;transform:rotate(-3deg);max-width:520px;justify-self:end;width:100%;filter:drop-shadow(0 22px 20px #0007)}#preview{display:grid;grid-template-columns:repeat(10,1fr);aspect-ratio:1.22;border:12px solid #564633;border-radius:6px;outline:1px solid #9c8459;background:#67715d;box-shadow:inset 0 0 0 2px #c1a777,0 0 0 5px #1d2522;overflow:hidden}#preview .cell{border-radius:0;min-height:0;padding:3px}#preview .piece{width:76%;height:90%;min-height:0;box-shadow:1px 3px 2px #0009}#preview .insignia{height:32%;min-height:0}#preview .rank{font-size:17px}#preview .army-mark{display:none}.map-caption{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;padding:14px 0;color:#c3b389}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.mode-card{border:1px solid #475249;background:linear-gradient(140deg,#26332eaa,#172327e8);padding:25px;border-radius:7px;display:flex;flex-direction:column;gap:11px}.card-index{font-size:9px;letter-spacing:1.8px;color:var(--gold);margin-bottom:7px}.mode-card h2{font-size:27px;margin:0}.mode-card p{font-size:12px;color:#b4c0b8;margin:0 0 5px}.mode-card>.primary{margin-top:3px}.name-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.online-actions,.join-row{display:flex;gap:8px}.online-actions .primary{flex:1;justify-content:center}.join-row input{letter-spacing:2px}.lobby-options{padding:24px 4px 0}.lobby-options label{font-size:13px}.lobby-options .fine{padding-left:9px}footer{font-size:10px;color:#94a29b;text-align:center;padding:24px 0 28px;border-top:1px solid #3a4840;margin-top:22px}#lobbyMessage{color:#f5cc8e;font-size:13px;margin-top:16px}#game{max-width:1220px;margin:auto;padding:23px 30px}.game-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.game-top h1{font:normal 31px/1.1 Georgia,serif;margin:7px 0}.game-top .eyebrow{margin-bottom:7px}.game-meta{display:flex;flex-direction:column;align-items:end;gap:5px;font-size:11px}.connection{color:#d2c7ab}.connection.bad{color:#ffc192}.battle-layout{display:grid;grid-template-columns:minmax(0,720px) minmax(275px,340px);gap:24px;align-items:start}.board-stage{min-width:0}.board-frame{border:14px solid #554732;border-radius:6px;box-shadow:0 14px 30px #0006,inset 0 0 0 2px #aa9161;outline:1px solid #aa8d55;background:#7b8068;padding:3px;position:relative}.board{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));aspect-ratio:1;position:relative;touch-action:none;user-select:none}.cell{background:linear-gradient(120deg,#8d9479,#77836d);border:1px solid #3e514d60;border-radius:0;padding:3px;position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;transition:background .15s}.cell.shade{background:linear-gradient(110deg,#768671,#647864)}.cell.deployment{background:linear-gradient(130deg,#9b9979,#8b9578)}.cell:hover{background:#b1b697;border-color:#ede0b4;z-index:1}.cell:active{background:#c4caa9}.cell:focus-visible{outline:3px solid #fff2bd;outline-offset:-3px;z-index:3}.cell.lake{background:repeating-radial-gradient(ellipse at 70% 25%,#386b7390 0 3px,#36666b99 5px 7px),linear-gradient(#2d626c,#204850);border-color:#32606a55;cursor:default}.cell.lake:after{content:'≈';color:#96c4bb6b;font-size:23px}.cell.legal:after{content:'';width:24%;height:24%;border:2px solid #fff2b9;border-radius:50%;background:#17272d8a;position:absolute;z-index:2;box-shadow:0 0 0 2px #183332}.cell.legal:has(.piece):after{width:87%;height:88%;background:transparent;border-radius:5px;border:3px solid #fff2b9}.cell.selected{background:#e3c17d;box-shadow:inset 0 0 0 3px #fff2b2;z-index:2}.cell.last{box-shadow:inset 0 0 0 2px #eddbb066}.cell .square-label{position:absolute;left:2px;top:0;font-size:8px;color:#23362e;font-weight:700;pointer-events:none}.piece{width:83%;height:92%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #f4c0a76b;border-radius:5px 5px 7px 7px;box-shadow:0 3px 0 #3a1d1d,1px 5px 5px #0006,inset 0 1px 0 #ffffff55;color:#fff4d7;position:relative;pointer-events:none}.piece.red{background:linear-gradient(145deg,#c44c4c,#8e292f 55%,#64242c)}.piece.blue{background:linear-gradient(145deg,#477dac,#2b5384 55%,#223951);box-shadow:0 3px 0 #122735,1px 5px 5px #0006,inset 0 1px 0 #ffffff55;border-color:#bed9e36b}.insignia{width:44%;height:35%;color:#f3d499;stroke:currentColor;stroke-width:1.8;fill:none;min-height:9px}.rank{font-family:Georgia,serif;font-size:clamp(15px,2.1vw,30px);line-height:1;font-weight:bold;text-shadow:0 1px 2px #0006}.piece.unknown .insignia{width:64%;height:66%}.army-mark{position:absolute;bottom:2px;right:3px;font-size:7px;font-weight:bold;line-height:1}.piece.confirmed:before{content:'•';position:absolute;left:3px;top:-1px;color:#ffe8a6;font-size:14px}.piece.guess:after{content:'?';position:absolute;left:2px;bottom:2px;color:#fff;font-size:10px}.piece.fresh{animation:arrive var(--duration) ease-out}@keyframes arrive{from{transform:translateY(-8px) scale(1.06);filter:brightness(1.8)}to{transform:none;filter:none}}.army-band{display:flex;justify-content:space-between;padding:13px 4px;font-size:12px;letter-spacing:.3px}.army-band.enemy{padding-top:2px}.army-band span:first-child{font-weight:700}.army-band span:last-child{font-size:11px;color:#c7c6b6}.status{min-height:42px;font-size:12px;padding:11px 12px;background:#202e2e;border:1px solid #46534a;border-radius:5px;color:#e9e0c5}.command-panel{display:flex;flex-direction:column;gap:13px}.panel{background:linear-gradient(130deg,#22312e,#17252a);border:1px solid #46524b;border-radius:6px;padding:18px}.panel>.eyebrow{margin-bottom:14px}.selection{display:flex;align-items:center;gap:14px;min-height:72px;margin-bottom:14px}.selection .piece{width:49px;height:65px;flex-shrink:0}.selection .rank{font-size:27px}.selection h3{font-family:Georgia,serif;font-size:20px;margin:0 0 4px}.selection p{font-size:11px;color:#c4cec4;margin:0;line-height:1.45}.setup-hint{font-size:11px;color:#bdc6be;line-height:1.5;margin:5px 0 12px}.tray{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-bottom:13px}.tray button{padding:5px 1px;font-size:16px;font-weight:bold;border-color:#697463}.tray button small{display:block;font:10px Segoe UI,sans-serif;color:#dfd8ba}.tray button.active{background:#efd18e;color:#102125;border-color:#ffe4a5}.tray button.active small{color:#243536}.toolbar{display:flex;gap:6px;margin-top:8px;align-items:center}.toolbar>*{min-width:0}.toolbar button{font-size:10px;white-space:nowrap;padding:9px}.toolbar input,.toolbar select{font-size:11px;padding:9px 6px}.toolbar.wrap{flex-wrap:wrap}.toolbar.wrap button{flex:1}.section-title{display:flex;justify-content:space-between;align-items:center;gap:8px}.section-title h2{font-size:19px;margin:0}.section-title button{font-size:10px}.battle-log{padding:0 0 0 22px;margin-bottom:0;max-height:200px;overflow:auto;font-size:11px;line-height:1.5;color:#d0d6c9}.battle-log li{padding:8px 0;border-bottom:1px solid #53615350}.battle-log li:first-child{color:#ffdda0}.panel summary{font-size:12px;cursor:pointer;color:#e8d2a4}.capture-row{font-size:11px;line-height:1.8;margin:14px 0 0}.room-banner{padding:12px 18px;border:1px solid #7f7452;border-radius:6px;background:#34392b;margin-bottom:18px;font-size:11px;display:flex;justify-content:space-between;align-items:center;gap:10px}.room-banner strong{font-size:23px;letter-spacing:3px;color:#ffe4ac;margin:0 12px}.room-banner button{font-size:10px}.curtain{position:fixed;inset:0;background:radial-gradient(ellipse at center,#2c3e37,#101b21 65%);z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px}.curtain .eyebrow{margin-top:30px}.curtain h1{font:normal 40px Georgia,serif;max-width:600px}.curtain p:not(.eyebrow){max-width:580px}.curtain .primary{margin:22px auto}.curtain .fine{font-size:12px}dialog{border:1px solid #89774f;border-radius:8px;padding:0;color:var(--text);background:#1c2c2e;width:min(520px,92vw);max-height:88vh;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#060f15d9;backdrop-filter:blur(5px)}.modal-content{padding:28px}.modal-content h2{font-size:29px;margin-bottom:17px}.modal-content p{font-size:14px;color:#d4d9c9}.modal-actions{display:flex;justify-content:end;gap:12px;margin-top:24px}.setting{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:14px 0;border-bottom:1px solid #4d5b50;font-size:14px}.setting select{width:140px}.setting input{margin:0}#guessPanel{padding-bottom:10px}#guessPanel small{font-size:10px}#mobileSelection{display:none}[hidden]{display:none!important}.reduced-motion .piece{animation:none!important}.reduced-motion *{transition:none!important}
@media(min-width:1450px){#game{max-width:1280px}.battle-layout{grid-template-columns:minmax(0,760px) 340px}}
@media(max-width:900px){.masthead{padding:15px 22px}.hero{gap:20px}.hero h1{font-size:46px}.mode-card{padding:18px}.mode-card h2{font-size:22px}.battle-layout{grid-template-columns:minmax(0,1fr) 280px;gap:15px}#game{padding:22px 18px}.panel{padding:13px}.board-frame{border-width:10px}.rank{font-size:20px}.cell .square-label{font-size:6px}.insignia{height:25%}.army-mark{font-size:5px}.name-row{grid-template-columns:1fr}.hero-map{transform:rotate(-2deg)}.mode-card p br{display:none}}
@media(max-width:700px){.masthead{height:72px;padding:12px 16px}.brand{font-size:20px;letter-spacing:2px;gap:8px}.brand small{font-size:6px;letter-spacing:1.2px}.brand img{width:29px;height:34px}.masthead nav{gap:5px;font-size:10px}.masthead nav button{font-size:10px}.masthead nav a span,.masthead nav #settingsBtn span{display:none}#lobby{padding:0 17px}.hero{padding:28px 0 25px;grid-template-columns:1fr;gap:25px}.hero .eyebrow{font-size:8px}.hero h1{font-size:50px;margin:18px 0}.hero-copy{position:relative}.hero-map{width:65%;position:absolute;right:12px;top:127px;opacity:.28;z-index:-1;transform:rotate(-9deg)}.map-caption{display:none}.lede{font-size:13px}.hero-tags{font-size:7px;gap:12px}.mode-grid{grid-template-columns:1fr;gap:12px}.mode-card{padding:21px}.mode-card h2{font-size:28px}.name-row{grid-template-columns:1fr 1fr}.lobby-options .fine{display:block;padding:8px 0 0 26px}.battle-layout{grid-template-columns:1fr;gap:15px}#game{padding:15px 9px}.game-top{padding:0 5px;margin-bottom:12px}.game-top h1{font-size:25px}.game-top .eyebrow{font-size:8px;letter-spacing:1.2px}.game-meta{font-size:9px;max-width:130px;text-align:right}.game-meta button{font-size:10px}.board-frame{border-width:7px;padding:2px;border-radius:4px}.cell{padding:2px}.piece{width:91%;height:88%;border-radius:3px 3px 4px 4px;box-shadow:0 2px 0 #371515,1px 3px 2px #0006}.piece.blue{box-shadow:0 2px 0 #142a40,1px 3px 2px #0006}.rank{font-size:clamp(14px,4.8vw,24px)}.insignia{height:26%;min-height:6px}.army-mark{font-size:5px;bottom:1px;right:2px}.cell .square-label{font-size:5px;left:1px}.piece.confirmed:before{font-size:10px;left:1px}.army-band{padding:9px 3px;font-size:10px}.army-band span:last-child{font-size:9px}.status{font-size:11px;padding:9px;min-height:36px}.command-panel{gap:10px}.selection{min-height:54px;margin-bottom:10px}.selection .piece{width:40px;height:54px}.selection .rank{font-size:23px}.selection h3{font-size:19px}.panel{padding:14px}.panel>.eyebrow{margin-bottom:10px}.tray{grid-template-columns:repeat(6,1fr);gap:6px}.tray button{padding:5px;font-size:18px}.toolbar button{font-size:11px}.setup-hint{font-size:11px}.room-banner{flex-wrap:wrap;padding:9px;margin-bottom:13px}.room-banner strong{font-size:21px}.room-banner>span{font-size:10px}.battle-log{max-height:140px}.curtain h1{font-size:32px}.curtain p{font-size:13px}.primary{min-height:44px}.modal-content{padding:22px}.dispatch .section-title h2{font-size:20px}}
@media(max-height:530px) and (orientation:landscape){.masthead{height:60px}.battle-layout{grid-template-columns:minmax(260px,65vh) 1fr}.board-stage{max-width:65vh}.rank{font-size:14px}.insignia{height:24%}.army-mark{display:none}#game{max-width:950px}.board-frame{border-width:6px}.game-top{margin-bottom:9px}.game-top h1{font-size:22px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Keep every field exactly square, regardless of hidden or visible insignia. */
.board,#preview{grid-template-rows:repeat(10,minmax(0,1fr))}
.tray button{touch-action:none}
