@import url('fonts.css');
:root{--paper:#ededed;--ink:#222222;--muted:#6f6f6f;--line:#b8b8b8}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'IBM Plex Mono',monospace;font-size:14px;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:var(--paper);min-height:44px;touch-action:manipulation}button:hover{background:#dcdcdc}button:focus-visible{outline:3px solid #222;outline-offset:2px}button:disabled{opacity:.4;cursor:not-allowed}#game{height:100dvh;display:grid;grid-template:80px minmax(0,1fr)/minmax(0,1fr) 318px;padding:12px;gap:0}header{grid-column:1/-1;border:1px solid var(--ink);display:flex;align-items:center;justify-content:space-between;padding:12px 23px;background:var(--paper);z-index:3}.wordmark{font-family:'Barlow Condensed',Impact,sans-serif;font-size:30px;font-weight:800;letter-spacing:-.5px;line-height:.95}.wordmark span{font-weight:500;margin-left:5px}.wordmark small{display:block;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:2.3px;margin-top:7px}.resources{display:flex;gap:42px}.resources small{display:block;font-size:11px;letter-spacing:1px;color:var(--muted)}.resources strong{display:block;font-weight:500;font-size:23px;line-height:1.3}header button{width:44px;border-color:var(--ink);font-size:22px}#field{position:relative;overflow:hidden;border:1px solid var(--ink);border-top:0;background:#e5e5e5}#battle{width:100%;height:100%;display:block;touch-action:none}.mission{position:absolute;top:24px;left:25px;pointer-events:none}.mission small,.wave span{font-size:11px;letter-spacing:1.3px}.mission h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:46px;line-height:1;margin:7px 0}.mission p{font-size:12px;color:#5a5a5a;margin:0}.wave{position:absolute;right:22px;top:24px;text-align:right}.wave strong{display:block;font-size:28px;font-weight:500}.wave button{border:none;border-bottom:1px solid #999;background:transparent;font-size:11px;min-height:30px;padding:4px 0}.field-tools{position:absolute;left:18px;bottom:44px;display:flex;flex-direction:column;gap:5px}.field-tools button{width:42px;font-size:23px;background:#edededed;border:1px solid #969696}#notice{position:absolute;top:132px;left:50%;transform:translateX(-50%);max-width:90%;padding:9px 14px;background:#222222;color:#f1f1f1;font-size:12px;text-align:center;opacity:0;transition:opacity .2s;pointer-events:none}#notice.show{opacity:1}.coordinates{position:absolute;bottom:14px;left:18px;font-size:10px;letter-spacing:1px}.coordinates span{margin-left:18px;color:#666}#minimap{position:absolute;right:18px;bottom:18px;border:1px solid #333;background:#ededed;touch-action:none;width:144px;height:116px}#selection{position:absolute;bottom:22px;left:80px;font-size:12px;max-width:210px;background:#edededdc;padding:8px;display:none}#panel{border:1px solid var(--ink);border-top:0;border-left:0;display:flex;flex-direction:column;overflow:hidden;background:var(--paper)}.panel-heading{display:flex;justify-content:space-between;align-items:center;padding:22px 18px 19px;letter-spacing:1.4px;font-size:12px}.stamp{font-size:10px;border:1px solid #555;padding:3px 5px;transform:rotate(-4deg)}nav{display:flex;border-bottom:1px solid var(--line);padding:0 14px;gap:5px}nav button{flex:1;border:0;background:transparent;font-size:13px}nav button.active{border-bottom:3px solid var(--ink);font-weight:600}#cards{overflow:auto;padding:13px;display:grid;grid-template-columns:1fr 1fr;gap:8px;align-content:start;flex:1}.card{position:relative;text-align:left;padding:8px;min-height:128px;border:1px solid #b5b5b5;display:flex;flex-direction:column;justify-content:end;background:#e4e4e4}.card.chosen{outline:2px solid #222;background:#d2d2d2}.card .art{height:57px;position:relative;display:block;background-image:url('sprites.png');background-size:400% 400%;mix-blend-mode:multiply;align-self:center;width:66px;margin-bottom:5px}.card b{font-size:12px;font-weight:600;white-space:nowrap}.card .cost{display:flex;justify-content:space-between;font-size:11px;margin-top:4px;color:#616161}.card .lock{position:absolute;right:7px;top:6px;font-size:10px}.card.tech{grid-column:1/-1;min-height:88px;padding:13px;background:transparent}.card.tech b{font-size:14px}.card.tech p{font-size:11px;line-height:1.4;margin:5px 0}.card.tech .cost{font-size:12px}.orders{display:flex;gap:7px;padding:10px 13px 0}.orders button{font-size:11px;flex:1;border-color:#777}#hint{margin:12px 15px;font-size:11px;line-height:1.6;color:#646464}.base-health{padding:15px;border-top:1px solid var(--line)}.base-health div{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.6px}progress{width:100%;height:6px;appearance:none;margin-top:9px}progress::-webkit-progress-bar{background:#cbcbcb}progress::-webkit-progress-value{background:#333}progress::-moz-progress-bar{background:#333}#veil{position:fixed;inset:0;background:#25252588;z-index:10;display:grid;place-items:center;padding:20px;backdrop-filter:blur(4px)}#veil[hidden]{display:none}.modal{background:var(--paper);border:1px solid #222;box-shadow:8px 8px 0 #2228;padding:30px;max-width:450px}.modal small{font-size:10px;letter-spacing:1.5px}.modal h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:39px;line-height:1.1;margin:14px 0}.modal p,.modal li{font-size:13px;line-height:1.65}.modal ul{padding-left:18px}.modal li{margin:8px 0}.modal button{width:100%;margin-top:9px}.primary{background:#222;color:#efefef}.primary:hover{background:#444}@media(max-width:800px){#game{padding:0;grid-template:66px minmax(0,1fr) 236px/1fr}header{padding:9px 12px}.wordmark{font-size:24px}.wordmark small{font-size:8px;letter-spacing:1px}.resources{gap:15px}.resources small{font-size:9px}.resources strong{font-size:17px}header button{width:38px;min-height:38px}#panel{border-left:1px solid #222;border-top:0}.panel-heading{display:none}nav{height:42px;min-height:42px;padding:0 12px}#cards{display:flex;flex:1;gap:8px;padding:9px 12px;overflow-x:auto;overflow-y:hidden}.card{min-width:112px;min-height:109px;padding:6px}.card .art{height:44px;width:58px}.card.tech{min-width:240px;justify-content:center}.orders{padding:0 12px 8px;position:relative}.orders button{min-height:36px}#hint,.base-health{display:none}.mission{top:17px;left:16px}.mission small{font-size:9px}.mission h1{font-size:34px}.mission p{font-size:10px;max-width:200px}.wave{top:17px;right:14px}.wave span{font-size:9px}.wave strong{font-size:24px}.wave button{font-size:9px}.field-tools{left:12px;bottom:32px;gap:3px}.field-tools button{width:36px;min-height:36px;font-size:21px}.coordinates{bottom:10px;left:12px;font-size:8px}.coordinates span{display:none}#minimap{width:98px;height:79px;right:12px;bottom:12px}#notice{top:105px;font-size:11px;width:max-content;max-width:90%}#selection{left:56px;bottom:18px;max-width:160px;font-size:10px}.modal{padding:22px}.resources div:nth-child(3){display:none}}@media(max-height:540px) and (min-width:600px){#game{grid-template:58px minmax(0,1fr)/minmax(0,1fr) 230px}header{grid-column:1/-1}#panel{grid-column:2;grid-row:2}#cards{display:grid;grid-template-columns:1fr 1fr;overflow:auto}.card{min-width:0}.card.tech{min-width:0}.mission h1{font-size:30px}#hint{display:none}.mission p{max-width:170px}.wave{right:12px}.resources div:nth-child(3){display:block}}

#production{position:absolute;bottom:144px;right:18px;font-size:11px;max-width:205px;background:#edededee;border-left:2px solid #444;padding:7px 10px;display:none;line-height:1.6;pointer-events:none}@media(max-width:800px){#production{bottom:103px;right:12px;font-size:10px;max-width:165px}}

#battle,.art{filter:grayscale(1)}

.tactical-orders{display:flex;gap:6px;padding:8px 13px 0}.tactical-orders button{flex:1;min-height:38px;font-size:12px;padding:4px}.tactical-orders button.active{background:#222;color:#eee;border-color:#222}#battle{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.modal{max-height:92dvh;overflow-y:auto}.modal li{margin:6px 0}@media(max-width:800px){.tactical-orders{padding:0 12px 5px}.tactical-orders button{min-height:34px;font-size:11px}.orders{padding-top:0}#game{grid-template-rows:66px minmax(0,1fr) 264px}.card{min-height:105px}.wave strong{max-width:140px}.mission p{max-width:180px}}@media(max-height:540px) and (min-width:600px){#game{grid-template-rows:58px minmax(0,1fr)}.tactical-orders{padding:4px 8px}.tactical-orders button{font-size:10px}.modal h2{font-size:28px}.modal li,.modal p{font-size:12px}}

#titleScreen{position:fixed;inset:0;z-index:8;background:#eee url('menu-inkfall.png') center/cover no-repeat;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;padding:28px 42px;overflow:auto;filter:grayscale(1)}#titleScreen[hidden]{display:none}#titleScreen::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f0f0eee8 0%,#efefed9c 28%,transparent 68%);z-index:-1}.title-top,.title-bottom{display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px}.title-top{border-bottom:1px solid #555;padding-bottom:15px}.title-bottom{padding-top:16px}.title-content{padding:30px 0 32px 4vw;max-width:590px;animation:title-arrive .8s ease-out}.title-edition{font-size:11px;letter-spacing:2px;border-left:3px solid #222;padding-left:10px}.title-content h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(82px,12vw,170px);line-height:.79;letter-spacing:-3px;font-weight:800;margin:30px 0 24px}.title-content h1 span{font-weight:600}.title-caption{font-size:14px;letter-spacing:1px;margin-bottom:29px}.title-actions{display:grid;gap:8px;max-width:300px}.title-actions button{display:flex;justify-content:space-between;align-items:center;padding:0 18px;min-height:52px;font-size:14px;border:1px solid #333;background:#f0f0eecf}.title-actions button:first-child{background:#222;color:#f5f5f5}.title-actions button:hover{transform:translateX(3px)}.title-actions button span{font-size:22px}.title-spec{font-size:10px;letter-spacing:1.5px;margin-top:18px}@keyframes title-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){#titleScreen{padding:22px;background-position:62% center}.title-top,.title-bottom{font-size:9px;letter-spacing:1px}.title-content{padding:30px 0 24px;max-width:320px}.title-content h1{font-size:104px;line-height:.82;margin-top:26px}.title-caption{font-size:12px;letter-spacing:.3px;max-width:240px}.title-edition{font-size:9px;letter-spacing:1px}.title-actions{max-width:260px}#titleScreen::before{background:linear-gradient(90deg,#f1f1efee 0%,#efefedb8 38%,#eeeeee10 100%)}}@media(max-height:540px){#titleScreen{padding:16px 28px}.title-content{padding:15px 0;max-width:560px;display:grid;grid-template-columns:240px 230px;column-gap:30px;align-items:center}.title-edition{grid-column:1/-1}.title-content h1{font-size:84px;grid-row:2/5;margin:20px 0 10px}.title-caption{margin:15px 0 8px}.title-actions{gap:6px}.title-actions button{min-height:44px}.title-spec{margin-top:8px;font-size:9px}.title-bottom{font-size:9px;padding-top:8px}}@media(prefers-reduced-motion:reduce){.title-content{animation:none}.title-actions button:hover{transform:none}}

#optionsDialog{width:min(620px,calc(100vw - 24px));max-height:92dvh;overflow:auto;padding:25px;background:#eee;color:#222;border:2px solid #222;box-shadow:8px 8px 0 #2227}#optionsDialog::backdrop{background:#111b;backdrop-filter:blur(4px)}.options-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.options-head small{font-size:10px;letter-spacing:1px}.options-head h2{font:600 38px 'Barlow Condensed',Impact,sans-serif;margin:5px 0}.options-head button{width:44px;font-size:25px;flex-shrink:0}.options-intro,.options-note,#difficultyNote{font-size:12px;line-height:1.6}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 15px;margin:20px 0}.options-grid label{font-size:14px;display:flex;flex-direction:column;gap:6px}.options-grid select,.options-grid input{font:14px 'IBM Plex Mono',monospace;background:#fafafa;color:#222;border:1px solid #999;border-radius:0;min-height:46px;padding:9px;width:100%;min-width:0}.options-grid small{font-size:10px;line-height:1.4;color:#666}#difficultyNote{border-left:3px solid #222;padding-left:12px}.options-actions{display:flex;gap:10px;margin-top:20px}.options-actions button{flex:1;font-size:13px;padding:10px}.options-note{color:#666}@media(max-width:500px){#optionsDialog{padding:18px}.options-grid{gap:14px 10px}.options-grid label{font-size:12px}.options-grid select,.options-grid input{font-size:12px;padding:8px}.options-head h2{font-size:32px}.title-content h1{font-size:92px}.title-actions button{min-height:46px}.title-content{padding-top:20px;padding-bottom:20px}}@media(max-height:540px){.title-actions button{min-height:37px}.title-content h1{grid-row:2/5}.title-content{padding-top:8px;padding-bottom:8px}}

.faction-choice{grid-column:1/-1}.faction-choice small{font-size:12px;line-height:1.6}.title-top span:first-child{font-weight:bold;letter-spacing:3px}

#superFire{position:absolute;left:50%;transform:translateX(-50%);bottom:12px;z-index:2;background:#222;color:#fff;border:2px solid #555;padding:8px 15px;font-size:12px;max-width:250px}#superFire[hidden]{display:none}#superFire.armed{background:#fff;color:#222;border-style:dashed}.options-grid label[hidden]{display:none}@media(max-width:800px){#superFire{bottom:110px;left:60px;transform:none;max-width:190px;font-size:11px}}

.options-grid input[type=range]{accent-color:#222;padding:4px;min-height:44px}.title-edition{line-height:1.6}.options-grid label{font-size:14px}.options-grid small{font-size:12px}
#campaignDialog{width:min(620px,calc(100vw - 24px));max-height:90dvh;overflow:auto;background:#eee;color:#222;border:2px solid #222;padding:22px}#campaignDialog::backdrop{background:#111b}#campaignDialog p{font-size:14px;line-height:1.6}#campaignFaction{font:inherit;min-height:44px;background:#fafafa;color:#222;margin:8px;padding:8px;border:1px solid #444}#missionList{display:grid;gap:12px;margin-top:18px}.mission-card{padding:16px;text-align:left;background:#fafafa;border:1px solid #555}.mission-card b{font-size:18px}.mission-card span{font-size:14px;text-decoration:underline}.mission-card:disabled{opacity:.5}.extra-orders{display:flex;gap:6px;margin:6px 0}.extra-orders button{flex:1;min-height:44px;font-size:12px}.extra-orders button[hidden],#nextMission[hidden]{display:none}
.card b{white-space:normal;line-height:1.25}.extra-orders{padding:0 12px;flex-shrink:0}.mission h1{max-width:360px}.mission p{max-width:320px}#missionList .mission-card p{margin:10px 0}#panel nav,.tactical-orders,.orders{flex-shrink:0}@media(max-width:800px) and (min-height:541px){#game{grid-template-rows:66px minmax(0,1fr) 330px}.card{min-height:119px}.mission h1{max-width:175px;font-size:26px}.mission p{max-width:180px}.extra-orders{margin:3px 0}}@media(max-height:540px) and (min-width:600px){#panel{overflow:auto}#cards{flex:none;max-height:160px;min-height:100px}.extra-orders button{font-size:11px}.mission h1{max-width:170px}}
#researchDialog{width:min(1000px,calc(100vw - 20px));max-height:94dvh;overflow:auto;background:#eee;color:#222;border:2px solid #222;padding:22px}#researchDialog::backdrop{background:#111b}#researchSummary{font-size:15px;font-weight:bold;line-height:1.5}.research-note{font-size:12px;line-height:1.5;color:#555}#researchNodes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.research-branch h3{font-size:16px;border-bottom:3px solid #222;padding-bottom:10px}.research-node{display:flex;flex-direction:column;position:relative;gap:8px;text-align:left;background:#fafafa;padding:14px;width:100%;margin-bottom:16px;min-height:215px;border:1px solid #555}.research-node:disabled{opacity:1;color:#777;background:#e5e5e5}.research-node.complete{border:2px solid #222;color:#222;background:#f8f8f8}.research-node.researching{border:3px double #222;background:#fff;color:#222}.research-node small{font-size:12px;line-height:1.4}.research-node b{font-size:16px}.research-node p{font-size:13px;line-height:1.5;margin:0}.research-cost,.research-status{font-size:12px;line-height:1.5}.research-status{font-weight:bold;margin-top:auto}.research-progress{margin:0;height:7px}.research-node:not(:last-child)::after{content:'';height:16px;border-left:2px solid #777;position:absolute;bottom:-17px;left:50%}@media(max-width:650px){#researchNodes{grid-template-columns:1fr}#researchDialog{padding:16px}.research-node{min-height:0}.research-branch h3{position:sticky;top:-16px;background:#eee;padding:14px 0;z-index:1}}
#superFire{left:80px;bottom:12px;transform:none;width:190px;max-width:none;padding:7px 10px;background:linear-gradient(90deg,#444 var(--charge,0%),#222 var(--charge,0%));text-align:left}#superFire:disabled{opacity:1;color:#ddd}#superFire span,#superFire small,#enemySuper span,#enemySuper small{display:block;font-size:11px;line-height:1.5}#superFire strong,#enemySuper strong{display:block;font-size:18px;line-height:1.3}#superFire.armed{background:#fff;color:#222}#field.has-super #selection{bottom:85px}#enemySuper{position:absolute;right:18px;bottom:184px;z-index:2;width:185px;text-align:left;padding:7px 10px;background:#eee;border:2px solid #222}#enemySuper[hidden]{display:none}#enemySuper.incoming{background:#222;color:#fff;border:3px double #eee}@media(max-width:800px){#superFire{left:56px;bottom:10px;width:170px}#enemySuper{right:12px;bottom:147px;width:180px}#superFire strong,#enemySuper strong{font-size:16px}#field.has-super #selection{bottom:85px}}

.research-node p,.research-cost,.research-status{font-size:14px}

.card .art{mix-blend-mode:normal}
#production{pointer-events:auto;cursor:pointer;min-height:44px;text-align:left}#productionDialog{width:min(440px,92vw);max-height:78dvh;overflow:auto;background:#f2f2f2;color:#222;border:2px solid #222;padding:20px}#productionDialog::backdrop{background:#0009}#productionDialog h2{margin:0 0 12px}#productionDialog p{font-size:13px;line-height:1.5}#productionDialog h3{font-size:14px;border-bottom:1px solid #888;padding-bottom:8px} .production-order{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:7px 0;font-size:13px}.production-order button,#closeProduction{min-height:44px;border:1px solid #333;background:#fff;color:#222;padding:8px 12px}#closeProduction{width:100%;margin-top:14px}

.rally-action{min-height:44px;padding:8px 12px;margin:0 6px 6px 0;border:1px solid #333;background:#fff;color:#222}

#walkthroughDialog{width:min(480px,92vw);max-height:80dvh;overflow:auto;background:#efefef;color:#222;border:2px solid #222;padding:24px}#walkthroughDialog p{line-height:1.7}#walkthroughDialog button{min-height:44px;margin:8px 8px 0 0;padding:8px 14px;background:#fff;border:1px solid #222}#walkthroughDialog::backdrop{background:#000a}

#lanDialog{width:min(480px,92vw);max-height:85dvh;overflow:auto;background:#efefef;color:#222;border:2px solid #222;padding:24px}#lanDialog p{font-size:13px;line-height:1.6}#lanDialog label{display:block;margin:12px 0}#lanDialog input{display:block;width:100%;padding:10px;box-sizing:border-box}#lanDialog button{min-height:44px;padding:8px 12px;margin:6px;background:#fff;color:#222;border:1px solid #333}#lanDialog::backdrop{background:#000a}#lanBadge{position:absolute;bottom:16px;left:12px;min-height:36px;max-width:150px;background:#eee;border:1px solid #333;font:10px monospace;z-index:3}

#commanderDialog{width:min(520px,92vw);max-height:85dvh;overflow:auto;background:#eee;color:#222;padding:22px;border:2px solid #222}#commanderDialog p{font-size:13px;line-height:1.6}.commander-upgrade{display:block;width:100%;text-align:left;min-height:52px;margin:8px 0;padding:10px;background:#fff;color:#222;border:1px solid #555}#commanderDialog::backdrop{background:#000a}#closeCommander,#enableProfile{min-height:44px;padding:10px}

#internetDialog{width:min(480px,92vw);max-height:85dvh;overflow:auto;background:#eee;color:#222;padding:24px;border:2px solid #222}#internetDialog p{font-size:13px;line-height:1.6}#internetDialog label{display:block;margin:12px 0}#internetDialog input{display:block;width:100%;box-sizing:border-box;padding:10px}#internetDialog button{min-height:44px;margin:6px;padding:10px}#internetDialog::backdrop{background:#000a}

/* Field dossiers: monochrome paper, offset printing and folded surfaces. */
:root{--paper:#f2f2f2;--ink:#181818}
header,#panel,dialog,.modal{background-color:#f1f1f1;background-image:repeating-linear-gradient(0deg,transparent 0 3px,#00000004 3px 4px),linear-gradient(110deg,#fff8,transparent 38%,#00000005);box-shadow:inset 0 0 0 3px #fff7}
header{border-bottom:3px double #222}.wordmark{transform:rotate(-1deg)}
#panel{border-left:3px double #555}.panel-heading{border-bottom:1px dashed #999}
#titleScreen::before{background:linear-gradient(90deg,#f5f5f5f5 0%,#f5f5f5c4 34%,#f5f5f510 80%),repeating-linear-gradient(0deg,transparent 0 3px,#00000005 3px 4px)}
.title-edition,.stamp{border:2px solid #333;padding:7px 10px;width:fit-content;transform:rotate(-2deg);background:#f5f5f5aa;letter-spacing:1.2px}
.title-content h1{text-shadow:2px 2px 0 #eee,3px 3px 0 #555}.title-top{border-bottom:3px double #555}
.title-actions{max-width:460px;grid-template-columns:1fr 1fr;gap:10px}
.title-actions #launchGame{grid-column:1/-1;border:3px double #eee;min-height:58px}
.title-actions button{padding:8px 12px;font-size:14px;box-shadow:3px 3px 0 #2225;transition:transform .15s,box-shadow .15s;background:#f7f7f7ed}
.title-actions button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 #2225}
.title-actions #exitGame{border-style:dashed}
.card{background:linear-gradient(135deg,#fafafa,#ececec);box-shadow:2px 3px 0 #2222;border-color:#999;border-bottom:3px double #888;transition:background .15s,transform .15s}
.card.chosen{background:repeating-linear-gradient(135deg,#dedede 0 3px,#e5e5e5 3px 6px);outline-offset:-2px}
.card b{font-size:14px;white-space:normal}.card .cost{font-size:12px}
nav button.active{background:#222;color:#fafafa;border:0;box-shadow:inset 0 -4px 0 #666}
.mission,.wave{background:#f5f5f5e8;padding:10px 13px 15px;filter:drop-shadow(2px 3px 1px #0002);clip-path:polygon(0 0,100% 0,100% 94%,94% 97%,88% 94%,82% 100%,76% 96%,70% 99%,64% 95%,58% 98%,52% 94%,46% 100%,40% 96%,34% 98%,28% 95%,22% 100%,16% 96%,10% 98%,4% 95%,0 98%)}
.mission h1{font-size:36px}.mission p{font-size:12px}.wave{border-top:3px double #333}
#minimap{border:4px double #333;box-shadow:4px 4px 0 #2223;transform:rotate(.6deg)}
#notice{border:3px double #eee;box-shadow:3px 3px 0 #2225;transition:opacity .18s,margin-top .18s;margin-top:-5px}#notice.show{margin-top:0}
.field-tools button,.tactical-orders button,.orders button,.extra-orders button{box-shadow:2px 2px 0 #2222;border-bottom:3px double #777}
dialog,.modal{border:3px double #222!important;box-shadow:8px 8px 0 #2225!important;animation:dossier-open .18s ease-out}
dialog h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:36px;border-bottom:1px dashed #888;padding-bottom:7px}
.options-grid label{font-size:14px}.options-grid small{font-size:12px}.options-grid select,.options-grid input:not([type=range]){border:1px solid #888;border-bottom:3px double #444;border-radius:0;background:#fff;min-height:46px;font:14px 'IBM Plex Mono',monospace;max-width:100%;width:100%;padding:8px}.options-intro,.options-note,#difficultyNote{font-size:14px}
@keyframes dossier-open{from{opacity:0;transform:translateY(9px) rotate(-.5deg)}to{opacity:1;transform:none}}
@media(max-width:600px){.title-actions{max-width:340px}.title-actions button{min-height:50px;font-size:13px}.title-content{max-width:360px;padding:20px 0}.title-content h1{font-size:90px;margin:24px 0 18px}.title-caption{margin-bottom:20px}.mission{top:10px;left:10px;padding:8px 9px 13px;max-width:54%}.mission h1{font-size:26px}.mission p{font-size:11px}.wave{top:10px;right:10px;max-width:40%;padding:8px 8px 13px}.wave strong{font-size:13px!important}.card{min-width:124px}.card b{font-size:13px}#panel{border-left:1px solid #222}}
@media(max-height:540px) and (min-width:600px){.title-content{grid-template-columns:210px minmax(280px,400px);max-width:720px;gap:10px 24px}.title-actions{grid-column:2;grid-row:2/5}.title-content h1{grid-row:2/5;font-size:80px}.title-caption{display:none}.title-spec{grid-column:1/-1}.title-actions button{min-height:44px}.title-actions #launchGame{min-height:46px}.mission h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){dialog,.modal,.title-content{animation:none}button,#notice{transition:none!important}}
#operationsDialog{width:min(620px,94vw);max-height:90dvh;overflow:auto;background:#f2f2f2;color:#222;padding:22px}#operationsDialog::backdrop{background:#111a}#operationsDialog h3{border-bottom:1px dashed #888;padding-bottom:8px;margin-top:24px}#operationsDialog p{font-size:14px;line-height:1.65}#operationsDialog button,#formationChoice{min-height:46px;padding:9px 12px;font:14px 'IBM Plex Mono',monospace}#operationsDialog select{display:block;width:100%;margin:8px 0}.support-powers{display:flex;flex-wrap:wrap;gap:8px}.support-powers button{flex:1;min-width:140px}.battlegroup{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}#operationsBadge{font-weight:600;background:#222;color:#fff}.extra-orders{flex-wrap:nowrap}.extra-orders button{min-width:0}@media(max-width:600px){#operationsDialog{padding:16px}.extra-orders button{font-size:11px;padding:4px}.support-powers button{min-width:110px}}
#campaignDialog{width:min(1000px,96vw)}.conquest-lore{border-left:4px solid #222;padding:0 14px;max-width:760px}.conquest-lore p{font-size:15px;line-height:1.7}#campaignDialog label{display:block;font-size:14px;margin:12px 0}#campaignDialog select{display:block;width:100%;font:14px 'IBM Plex Mono',monospace;min-height:46px;margin-top:7px;padding:8px}#missionList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.conquest-continent{border:1px dashed #888;padding:10px;background:#f8f8f8}.conquest-continent h3{font:600 26px 'Barlow Condensed',sans-serif;margin:8px 0 16px}.province{display:block;text-align:left;width:100%;padding:12px;margin:10px 0;background:#eee;min-height:210px}.province b,.province small,.province span{display:block}.province b{font-size:17px;margin:8px 0}.province p{font-size:13px;line-height:1.6}.province small{font-size:12px;margin:8px 0}.province.secured{border:3px double #222}.province.ink-threat{background:linear-gradient(165deg,#fff 65%,#2222)}#conquestMap{overflow:auto;border:3px double #444;background:#fafafa;margin:18px 0}#conquestMap svg{display:block;width:100%;min-width:700px;height:auto}.conquest-node{cursor:pointer;outline:none}.conquest-node:focus circle{stroke-width:5}.conquest-node[aria-disabled="true"]{cursor:not-allowed;opacity:.45}@media(max-width:700px){#missionList{grid-template-columns:1fr}.province{min-height:0}.conquest-lore p{font-size:14px}}
/* Scanned-paper surfaces: shared image material, live text remains accessible. */
header,#panel,dialog,.modal,.mission,.wave,.card,.title-actions button,button:not(.art),.research-node,.production-order{background-image:url('paper-ui.png');background-size:100% 100%;background-blend-mode:multiply}
button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px dashed currentColor;outline-offset:3px}
#commanderDialog{width:min(650px,94vw);padding:24px;background-color:#f5f5f5}#commanderDialog[data-room=field]{background-color:#d0d0d0}#commanderDialog[data-room=night]{background-color:#b5b5b5}#commanderDialog h3{font:700 24px 'Barlow Condensed',sans-serif;border-bottom:2px solid;padding-bottom:6px;margin-top:28px}#commanderDialog p{font-size:14px}#commanderDialog label{display:block;font-size:14px;margin:12px 0}#commanderDialog input,#commanderDialog select{display:block;box-sizing:border-box;width:100%;min-height:46px;margin-top:6px;padding:10px;font:16px 'IBM Plex Mono',monospace;background:#fafafa;color:#111;border:1px solid #555}#commanderDialog button{min-height:46px;padding:10px;font-size:14px;color:#111;background-color:#f5f5f5;border:1px solid #333}.profile-slots{display:flex;align-items:end;gap:10px;margin-bottom:20px}.profile-slots label{flex:1;min-width:0}.profile-slots button{margin-bottom:12px;max-width:140px}#commanderDialog progress{width:100%;height:12px;accent-color:#161616}.commander-banner{position:relative;display:flex;gap:18px;align-items:center;min-height:130px;padding:22px;background:#eee url('paper-ui.png') center/100% 100%;border:2px solid #111;color:#111;box-shadow:4px 5px 0 #1115;overflow-wrap:anywhere}.commander-banner strong{font:700 30px/1.1 'Barlow Condensed',sans-serif}.commander-banner p{margin:10px 0 0;line-height:1.5}.commander-insignia{font-size:46px;flex:0 0 56px;text-align:center}.commander-banner[data-banner=stripe]{border-left:16px double #111}.commander-banner[data-banner=night],.commander-banner[data-banner=stars]{background-color:#151515;background-blend-mode:multiply;color:#fff;border-color:#555}.commander-banner[data-banner=stars]{background-image:radial-gradient(circle at 13px 19px,#ffffff88 1px,transparent 2px),url('paper-ui.png');background-size:41px 37px,100% 100%;background-blend-mode:normal,multiply}.persona-editor{border:1px dashed #444;padding:14px;margin:20px 0;background:#ffffff88}.persona-editor summary{cursor:pointer;min-height:30px;font-size:16px;font-weight:600}#achievementWall{display:grid;grid-template-columns:1fr 1fr;gap:12px}.honor{padding:14px;background:#fff url('paper-ui.png') center/100% 100%;border:1px dashed #777;position:relative}.honor.earned{border:2px solid #111;box-shadow:2px 3px 0 #1113}.honor h4{font:700 20px 'Barlow Condensed',sans-serif;margin:0 0 8px}.honor p{line-height:1.5}.honor span{display:block;font:12px monospace;margin-top:7px}.honor.earned span{font-weight:bold;letter-spacing:2px}#commanderRank{font-weight:700;letter-spacing:1px}#commanderNextRank{margin-top:5px}#lobbyBanner:empty{display:none}@media(max-width:400px){#commanderDialog{padding:16px}#achievementWall{gap:8px}.honor{padding:10px}.commander-banner{padding:16px;gap:10px}.commander-banner strong{font-size:26px}.commander-insignia{font-size:34px;flex-basis:38px}}
