body[data-mobile-game]{--ink:#0a0b0f;--panel:#16191f;--muted:#9299a6;--gold:#b3ddf2;--white:#fafafa;background:var(--ink);font-family:Arial,Helvetica,sans-serif}
body[data-mobile-game] main{max-width:1180px;padding:0 24px;min-height:100svh}
body[data-mobile-game] header{min-height:76px;justify-content:space-between;border-bottom:1px solid #ffffff12;gap:18px}
body[data-mobile-game] .brand{font-size:26px;letter-spacing:-1.1px;font-weight:900;line-height:1;color:#fff}
.game-type{font-size:14px;color:var(--muted)}
body[data-mobile-game] .section-top{display:block;padding:24px 0 18px}
body[data-mobile-game] .eyebrow{font-size:12px;letter-spacing:1.4px}
body[data-mobile-game] h1{font-size:32px;line-height:1.12;font-weight:900;letter-spacing:-1.2px;margin-top:7px}
body[data-mobile-game] .selection-layout{grid-template-columns:320px 1fr;gap:24px}
body[data-mobile-game] .spotlight{border:1px solid #ffffff1b;border-radius:20px;background:radial-gradient(ellipse at 50% 40%,#2b3341,#151920 75%);top:16px;box-shadow:none}
body[data-mobile-game] .spotlight-art{height:350px}
body[data-mobile-game] .selected-info{padding:22px;border-top:2px solid var(--crew);gap:10px}
body[data-mobile-game] .selected-info strong{font-size:29px;line-height:1.03;letter-spacing:-.8px}
body[data-mobile-game] .selected-info>span:last-child{font-size:14px;line-height:1.35}
body[data-mobile-game] .preview-number{font-size:60px;color:#ffffff12}
.roster-caption{display:none}
body[data-mobile-game] .roster{gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}
body[data-mobile-game] .player-card{border:1px solid #ffffff1e;background:#171c24;border-radius:14px;transition:background .15s,border-color .15s}
body[data-mobile-game] .player-card.selected{border:2px solid var(--gold);background:#2d3034;box-shadow:none}
body[data-mobile-game] .roster-portrait{height:132px}
body[data-mobile-game] .card-top{font-size:12px;top:8px;left:8px;padding:3px 5px;border-radius:4px}
body[data-mobile-game] .card-name{border:0;border-top:2px solid var(--crew);padding:10px;min-height:70px;background:#101319}
body[data-mobile-game] .card-name strong{font-size:13px;line-height:1.22}
body[data-mobile-game] .setup{margin-top:20px;padding:16px 0;background:var(--ink);border-top:1px solid #ffffff16;gap:12px}
body[data-mobile-game] .opponent label{font-size:12px;letter-spacing:1px}
body[data-mobile-game] select{font-size:15px;background:#1a1e26;border:1px solid #ffffff25;border-radius:12px;min-height:56px}
body[data-mobile-game] .primary{border-radius:12px;font-size:16px;font-weight:900;letter-spacing:.5px;padding:16px 28px;min-height:56px}
body[data-mobile-game] #assetStatus,body[data-mobile-game] .fiction{font-size:13px;color:var(--muted)}
body[data-mobile-game] .quiet{min-height:44px;border:1px solid #ffffff22;border-radius:11px;background:#171b23;font-size:14px}
body[data-mobile-game] .match-top{margin:16px 0 12px}
body[data-mobile-game] .match-top>span{font-size:12px;letter-spacing:1px}
body[data-mobile-game] .scoreboard{border:0;background:transparent;padding:10px 2px 16px;gap:16px;border-radius:0}
body[data-mobile-game] .scoreboard>div{gap:6px 10px;min-width:0}
body[data-mobile-game] .scoreboard strong{font-size:15px;line-height:1.2;overflow-wrap:normal}
body[data-mobile-game] .scoreboard .eyebrow{font-size:12px;letter-spacing:.8px}
body[data-mobile-game] .score{font-size:38px;line-height:1}
body[data-mobile-game] .score-center strong{font-size:12px;white-space:nowrap}
body[data-mobile-game] .stage{border:1px solid #ffffff12;border-radius:20px;overflow:hidden}
body[data-mobile-game] .cartoon-call{top:14px;left:12%;right:12%;gap:6px}
body[data-mobile-game] .cartoon-call strong{font-size:26px;letter-spacing:-.6px}
body[data-mobile-game] .cartoon-call span{font-size:13px;border-color:#ffffff25;background:#0a0b0fe6}
body[data-mobile-game] .intro{padding:24px;background:#0a0b0fe8}
body[data-mobile-game] .intro h2{font-size:32px;line-height:1.05}
body[data-mobile-game] .intro p{font-size:15px}
body[data-mobile-game] .play-controls{padding:18px 0 8px}
body[data-mobile-game] .play-controls>p:first-child{font-size:15px;line-height:1.35;margin:0 0 12px;color:#d5d8df;min-height:21px}
body[data-mobile-game] .choices{max-width:620px;gap:10px}
body[data-mobile-game] .choices button{border:1px solid #ffffff22;background:#1b202a;border-radius:15px;min-height:94px;flex-direction:column;gap:6px;padding:12px;touch-action:manipulation}
body[data-mobile-game] .choices button span{font-size:36px;line-height:1}
body[data-mobile-game] .choices button strong{font-size:14px}
body[data-mobile-game] .choices button small{display:none}
body[data-mobile-game] .choices button:hover:not(:disabled),body[data-mobile-game] .choices button:active:not(:disabled){background:#343239;border-color:var(--gold)}
body[data-mobile-game] .play-controls>.primary{margin-top:0;min-height:94px;max-width:620px}
body[data-mobile-game] .rules,body[data-mobile-game] .throw-log{display:none}
body[data-mobile-game] footer{font-size:13px;justify-content:center;border-top:0;padding:16px 0 24px;color:var(--muted)}
@media(max-width:800px){
 body[data-mobile-game] main{padding:0 16px}
 body[data-mobile-game] header{min-height:62px}
 body[data-mobile-game] .brand{font-size:24px;letter-spacing:-1px}
 .game-type{display:none}
 body[data-mobile-game] .section-top{padding:20px 0 16px}
 body[data-mobile-game] h1{font-size:30px}
 body[data-mobile-game] .selection-layout{display:flex;flex-direction:column;gap:0}
 body[data-mobile-game] .spotlight{position:relative;top:0;display:grid;grid-template-columns:47% 53%;width:100%;min-height:214px;border-radius:18px;background:radial-gradient(ellipse at 25% 50%,#2e3848,#151920 75%)}
 body[data-mobile-game] .spotlight-art{height:214px}
 body[data-mobile-game] .preview-number{font-size:48px;left:12px;top:12px}
 body[data-mobile-game] .selected-info{border:0;padding:16px 16px 16px 0;gap:10px;min-width:0}
 body[data-mobile-game] .selected-info strong{font-size:25px;line-height:1.05;letter-spacing:-.7px;overflow-wrap:normal}
 body[data-mobile-game] .selected-info>span:last-child{font-size:13px}
 .roster-caption{display:flex;justify-content:space-between;width:100%;font-size:13px;color:var(--muted);margin:20px 0 10px}
 body[data-mobile-game] .roster{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;gap:10px;max-width:100%;padding:2px 0 12px;scrollbar-width:thin;scrollbar-color:#414753 transparent}
 body[data-mobile-game] .player-card{flex:0 0 124px;display:flex;flex-direction:column;align-items:stretch;scroll-snap-align:center;min-height:188px;min-width:0}
 body[data-mobile-game] .roster-portrait,body[data-mobile-game] .player-card img{width:100%;height:124px;object-fit:contain}
 body[data-mobile-game] .card-name{display:block;border-left:0;border-top:2px solid var(--crew);min-height:64px;padding:9px 8px;flex:1}
 body[data-mobile-game] .card-name strong{font-size:13px;line-height:1.18}
 body[data-mobile-game] .card-top{font-size:11px}
 body[data-mobile-game] #selection{padding-bottom:120px}
 body[data-mobile-game] .setup{position:fixed;left:0;right:0;bottom:0;z-index:8;display:grid;grid-template-columns:minmax(0,1fr) 104px;align-items:end;padding:12px 16px calc(12px + env(safe-area-inset-bottom));margin:0;background:#0a0b0ff5;border-top:1px solid #ffffff19;backdrop-filter:blur(18px)}
 body[data-mobile-game] .opponent{max-width:none;min-width:0;gap:6px}
 body[data-mobile-game] .setup .primary{width:100%;font-size:15px;padding:16px 10px;min-height:56px}
 body[data-mobile-game] select{font-size:16px;padding:14px 10px}
 body[data-mobile-game] .fiction{margin-top:6px}
 body[data-mobile-game] #assetStatus{margin:6px 0}
 body[data-mobile-game] #match{padding-bottom:155px}
 body[data-mobile-game] .match-top{margin:12px 0 8px}
 body[data-mobile-game] .scoreboard{gap:10px;padding:8px 0 14px}
 body[data-mobile-game] .scoreboard strong{font-size:13px;line-height:1.12}
 body[data-mobile-game] .scoreboard .eyebrow{font-size:11px}
 body[data-mobile-game] .scoreboard>div{gap:5px 6px}
 body[data-mobile-game] .score{font-size:34px}
 body[data-mobile-game] .score-center strong{font-size:11px}
 body[data-mobile-game] .stage{height:clamp(270px,calc(100svh - 340px),500px);aspect-ratio:auto;border-radius:18px}
 body[data-mobile-game] .cartoon-call strong{font-size:23px}
 body[data-mobile-game] .play-controls{position:fixed;left:0;right:0;bottom:0;z-index:8;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #ffffff19;background:#0a0b0ff5;backdrop-filter:blur(18px)}
 body[data-mobile-game] .play-controls>p:first-child{font-size:14px;margin:0 0 10px;min-height:19px}
 body[data-mobile-game] .choices{gap:8px}
 body[data-mobile-game] .choices button{min-height:90px;border-radius:13px;padding:10px 4px}
 body[data-mobile-game] .choices button strong{font-size:13px}
 body[data-mobile-game] .play-controls>.primary{min-height:90px;max-width:none;margin:0}
 body[data-mobile-game] footer{padding-top:0;padding-bottom:16px}
}
@media(max-width:359px){body[data-mobile-game] main{padding:0 12px}body[data-mobile-game] .brand{font-size:22px}body[data-mobile-game] .selected-info strong{font-size:22px}body[data-mobile-game] .setup,body[data-mobile-game] .play-controls{padding-left:12px;padding-right:12px}}
@media(max-height:700px) and (max-width:800px){body[data-mobile-game] .section-top{padding:14px 0 12px}body[data-mobile-game] .spotlight,body[data-mobile-game] .spotlight-art{height:186px;min-height:186px}.roster-caption{margin-top:14px}body[data-mobile-game] .player-card{min-height:170px}body[data-mobile-game] .roster-portrait{height:106px}}

[hidden]{display:none!important}
.nation-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0 28px}
.nation-options button{min-height:180px;border:1px solid #ffffff26;border-radius:18px;background:linear-gradient(145deg,#29313f,#16191f);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;cursor:pointer;touch-action:manipulation}
.nation-options strong{font-size:clamp(26px,6vw,44px);font-weight:900;letter-spacing:-1px}
.nation-options span{font-size:16px;color:#c4cad4}
.nation-options button:hover,.nation-options button:focus-visible{border-color:var(--gold);background:#31313a}
.nation-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.nation-heading .quiet{font-size:13px;padding:8px 12px}
.auto-opponent{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}
.auto-opponent strong{font-size:17px;color:#fff}
.auto-opponent>span:last-child{font-size:12px;color:var(--muted)}
#campaignProgress{text-align:right;line-height:1.4}
@media(max-width:359px){.nation-options{gap:10px}.nation-options button{min-height:150px}.auto-opponent>span:last-child{font-size:12px}}

.nation-fork{height:64px;width:48px;color:var(--gold)}.nation-fork.down{transform:rotate(180deg)}
.nation-options button{min-height:240px;gap:12px}
#soundToggle{white-space:nowrap;font-size:12px;padding:9px 12px}
.nation-mark{display:inline-flex;gap:6px;align-items:center}.nation-mark .nation-fork{height:21px;width:16px;flex-shrink:0}
.run-lineup{margin:0 0 10px;border:1px solid #ffffff1b;border-radius:12px;background:#141821;font-size:13px}
.run-lineup summary{cursor:pointer;padding:12px;min-height:44px;color:#d5d8df}
.run-lineup ol{display:flex;gap:8px;overflow-x:auto;list-style:none;padding:0 12px 12px;margin:0}
.run-lineup li{flex:0 0 105px;padding:10px;border:1px solid #ffffff22;border-radius:8px;font-size:12px;line-height:1.3}
.run-lineup li.current{border-color:var(--gold)}.run-lineup li.beaten{color:#b3ddf2;background:#352f1e}.run-lineup li span{display:block;color:var(--muted);font-size:12px;margin-top:5px}
#resumeRun{width:100%;margin-top:8px}#savedRunLabel{margin-bottom:24px}
@media(max-width:800px){body[data-mobile-game] .brand{font-size:21px}.nation-options button{min-height:220px}.nation-fork{height:58px}body[data-mobile-game] .scoreboard .nation-mark{font-size:10px;letter-spacing:0}.run-lineup{margin-bottom:8px}}
@media(max-width:359px){body[data-mobile-game] .brand{font-size:18px}#soundToggle{padding:8px;font-size:12px}}

/* All nine roster cards are available in three rows; no horizontal carousel. */
body[data-mobile-game] .roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;scroll-snap-type:none;gap:10px}
body[data-mobile-game] .player-card{min-width:0;min-height:0;flex:none}
body[data-mobile-game] .roster-caption{display:none}
.nation-options button{position:relative;overflow:hidden;isolation:isolate;background:#1c2230;min-height:260px}
.nation-options button>strong,.nation-options button>.nation-symbol{position:relative;z-index:2;text-shadow:0 2px 12px #000}
.nation-symbol{height:70px;width:70px;object-fit:contain;filter:invert(1)}
.nation-backdrop{position:absolute;inset:0;z-index:0;pointer-events:none}
.nation-backdrop img{position:absolute;width:100%;height:160%;object-fit:contain;object-position:center top;top:-10%;opacity:0;transition:opacity .45s ease}
.nation-backdrop img.visible{opacity:.20}
.nation-mark .nation-symbol{height:21px;width:18px;margin-right:5px}
.championship{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:20px;background:#080c14dc;backdrop-filter:blur(3px)}
.championship .trophy{font-size:66px;margin-bottom:12px}.championship h2{font-size:clamp(24px,4vw,42px);margin:12px 0;color:var(--gold)}.championship p{font-size:15px;line-height:1.6;color:#ddd}
body[data-mobile-game] .scouting{font-size:12px;line-height:1.3;color:var(--muted);margin:0 0 8px;min-height:0}
@media(max-width:800px){
 body[data-mobile-game] .spotlight{display:none}
 body[data-mobile-game] .selection-layout{display:block}
 body[data-mobile-game] .roster{gap:8px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}
 body[data-mobile-game] .player-card{width:100%;display:flex;min-height:0;border-radius:10px}
 body[data-mobile-game] .roster-portrait,body[data-mobile-game] .player-card img{height:88px;width:100%}
 body[data-mobile-game] .card-name{min-height:49px;padding:7px 5px;text-align:center}
 body[data-mobile-game] .card-name strong{font-size:12px;line-height:1.18}
 body[data-mobile-game] .card-name small{display:none}
 body[data-mobile-game] .section-top{padding:14px 0 16px}
 body[data-mobile-game] .card-top{font-size:10px;top:5px;left:5px}
 .nation-options{gap:12px}.nation-symbol{height:62px;width:62px}
}
@media(max-height:700px) and (max-width:800px){body[data-mobile-game] .roster-portrait{height:72px}body[data-mobile-game] .card-name{min-height:45px}}
@media(prefers-reduced-motion:reduce){.nation-backdrop img{transition:none}}

@media(max-width:800px){body[data-mobile-game] #match{padding-bottom:190px}body[data-mobile-game] .scouting{font-size:13px}}

/* Arcade app shell. Existing artwork and game rules stay intact. */
body[data-mobile-game]{background:#0a0b0f;overscroll-behavior-y:none}
body[data-mobile-game] header{min-height:60px;padding-top:env(safe-area-inset-top);border-bottom:0}
body[data-mobile-game] .brand{font-size:20px;letter-spacing:-.6px}
body[data-mobile-game] .game-type{margin-left:auto}
.icon-button{width:44px;height:44px;min-width:44px;display:grid;place-items:center;border:1px solid #ffffff18;border-radius:50%;background:#191d25;color:#fff;padding:0;font-size:25px;touch-action:manipulation}
.icon-button:active{background:#303642;transform:scale(.96)}
body[data-mobile-game] .section-top{padding:22px 0 18px}
body[data-mobile-game] h1{font-size:36px;letter-spacing:-1.4px}
body[data-mobile-game] .eyebrow{font-size:12px;letter-spacing:1.5px;color:#a5adbb}
body[data-mobile-game] .nation-options button{align-items:flex-start;justify-content:center;padding:32px;gap:12px;min-height:270px;border-radius:24px;background:linear-gradient(120deg,#242b38,#12151d);border-color:#ffffff1c}
body[data-mobile-game] .nation-options button:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#0c101b66,transparent 75%);pointer-events:none}
body[data-mobile-game] .nation-options strong{font-size:46px;letter-spacing:-1.5px;line-height:1}
body[data-mobile-game] .nation-options .nation-symbol{height:78px;width:78px;filter:invert(1);margin-bottom:4px}
body[data-mobile-game] .nation-action{position:relative;z-index:2;font-size:14px;font-weight:600;color:#c4cad5}
body[data-mobile-game] .nation-backdrop{left:34%;right:-15%;top:-5%;bottom:-30%}
body[data-mobile-game] .nation-backdrop img{top:0;height:170%;width:100%;object-position:50% 0;object-fit:contain}
body[data-mobile-game] .nation-backdrop img.visible{opacity:.22}
body[data-mobile-game] .nation-options button:hover,body[data-mobile-game] .nation-options button:focus-visible{border-color:var(--gold)}
body[data-mobile-game] .nation-options button:active{transform:scale(.985)}
body[data-mobile-game] .player-card{border:1px solid #ffffff1a;border-radius:16px;background:radial-gradient(ellipse at 50% 25%,#343c48,#171c25 75%);transition:border-color .15s,transform .15s,background .15s}
body[data-mobile-game] .player-card.selected{border:1px solid var(--gold);box-shadow:0 0 0 2px var(--gold);background:radial-gradient(ellipse at 50% 25%,#4c4b40,#24252b 75%)}
body[data-mobile-game] .player-card.selected:after{content:'✓';position:absolute;top:7px;right:7px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--gold);color:#0a0b0f;font-size:14px;font-weight:900}
body[data-mobile-game] .player-card:active{transform:scale(.97)}
body[data-mobile-game] .card-top{display:none}
body[data-mobile-game] .card-name{border-top:3px solid var(--crew);background:#11151dcc;display:flex;align-items:center;justify-content:center;padding:9px 6px;min-height:58px}
body[data-mobile-game] .card-name strong{font-size:14px;line-height:1.18;text-align:center}
body[data-mobile-game] .card-name small{display:none}
body[data-mobile-game] .roster-portrait{height:150px}
body[data-mobile-game] .setup .primary{border-radius:16px}
body[data-mobile-game] .scoreboard{grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr);gap:8px;padding:10px 0 12px}
body[data-mobile-game] .scoreboard>div{grid-template-columns:minmax(0,1fr) auto;gap:5px 8px}
body[data-mobile-game] .scoreboard strong{font-size:14px;line-height:1.2;overflow-wrap:anywhere}
body[data-mobile-game] .scoreboard .cpu{grid-template-columns:auto minmax(0,1fr)}
body[data-mobile-game] .scoreboard .cpu>.eyebrow,body[data-mobile-game] .scoreboard .cpu>strong{grid-column:2}
body[data-mobile-game] .scoreboard .cpu>.eyebrow{grid-row:1}
body[data-mobile-game] .scoreboard .cpu>strong{grid-row:2}
body[data-mobile-game] .scoreboard .nation-mark{font-size:12px;letter-spacing:0;color:#a5adbb;gap:3px}
body[data-mobile-game] .scoreboard .score-center>.eyebrow{display:none}
body[data-mobile-game] .score-center strong{font-size:12px;white-space:normal;line-height:1.4}
body[data-mobile-game] .score{font-size:36px;color:#fff}
body[data-mobile-game] .stage{border:0;border-radius:20px;background:#151c28}
body[data-mobile-game] .cartoon-call{left:5%;right:5%;top:15px}
body[data-mobile-game] .cartoon-call strong{font-size:22px;line-height:1.1;max-width:90%;text-shadow:0 2px 8px #000,0 0 24px #000}
body[data-mobile-game] .cartoon-call span{display:none}
body[data-mobile-game] .run-lineup{background:transparent;border:0;margin:0 0 8px}
body[data-mobile-game] .run-lineup summary{padding:8px 0;min-height:36px;font-size:12px;color:#969fae}
body[data-mobile-game] .scouting{display:none}
body[data-mobile-game] #prompt{font-size:14px;line-height:1.35;margin:0 0 10px;color:#bbc3d0}
body[data-mobile-game] .choices button{border-radius:18px;background:#202631;border-color:#ffffff18;transition:transform .12s,background .12s,border-color .12s}
body[data-mobile-game] .choices button:active:not(:disabled){transform:scale(.95);background:#3d382a;border-color:var(--gold)}
body[data-mobile-game] .choices button:disabled{opacity:.45}
body[data-mobile-game] .choices button span{font-size:34px}
body[data-mobile-game] .choices button strong{font-size:14px;letter-spacing:.2px}
body[data-mobile-game] .play-controls>.primary{border-radius:18px}
body[data-mobile-game] #nationSelection:not([hidden]),body[data-mobile-game] #selection:not([hidden]),body[data-mobile-game] #match:not([hidden]){animation:app-enter .2s ease-out}
@keyframes app-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.settings-sheet{width:min(460px,calc(100% - 24px));padding:24px;border:1px solid #ffffff24;border-radius:24px;background:#161b24;color:white}
.settings-sheet::backdrop{background:#0009;backdrop-filter:blur(6px)}
.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.sheet-heading h2{font-size:23px;margin:0;letter-spacing:-.5px}
.setting-row{display:flex;align-items:center;justify-content:space-between;font-size:16px;padding:16px 0;border-top:1px solid #ffffff18}
.setting-value{border-radius:20px;background:#2a303b;padding:6px 14px;font-size:14px;color:#aab3c2}
.settings-sheet .setting-note{font-size:14px;margin:0 0 24px;color:#929cab}
.settings-sheet h3{font-size:16px;margin:0 0 12px}.settings-sheet p{font-size:16px;line-height:1.55;color:#bbc3d0}.settings-sheet .primary{width:100%;margin-top:12px;border-radius:14px}
@media(max-width:800px){
 body[data-mobile-game] main{max-width:560px;padding:0 16px}
 body[data-mobile-game] header{min-height:58px}
 body[data-mobile-game] .brand{font-size:19px}
 body[data-mobile-game] .section-top{padding:16px 0}
 body[data-mobile-game] h1{font-size:30px}
 body[data-mobile-game] .nation-options{grid-template-columns:1fr;gap:12px;margin:4px 0 18px}
 body[data-mobile-game] .nation-options button{min-height:clamp(180px,26svh,230px);padding:22px 24px;gap:8px;border-radius:22px}
 body[data-mobile-game] .nation-options .nation-symbol{width:64px;height:64px}
 body[data-mobile-game] .nation-options strong{font-size:36px}
 body[data-mobile-game] .nation-backdrop{left:36%;right:-10%;bottom:-40%}
 body[data-mobile-game] .roster{gap:10px;padding:3px;grid-template-columns:repeat(3,minmax(0,1fr))}
 body[data-mobile-game] .player-card{border-radius:14px;min-height:0;display:flex;flex-direction:column;width:100%}
 body[data-mobile-game] .roster-portrait{height:clamp(82px,24vw,112px);width:100%}
 body[data-mobile-game] .card-name{min-height:54px;width:100%;padding:8px 4px;flex:1}
 body[data-mobile-game] .card-name strong{font-size:clamp(12px,3.4vw,14px)}
 body[data-mobile-game] #selection{padding-bottom:108px}
 body[data-mobile-game] .setup{grid-template-columns:minmax(0,1fr) 124px;padding:14px 16px calc(14px + env(safe-area-inset-bottom));align-items:center}
 body[data-mobile-game] .auto-opponent .eyebrow,body[data-mobile-game] .auto-opponent>span:last-child{display:none}
 body[data-mobile-game] .auto-opponent strong{font-size:14px}
 body[data-mobile-game] .setup .primary{min-height:54px;font-size:16px}
 body[data-mobile-game] #selection>.fiction,body[data-mobile-game] #assetStatus:empty{display:none}
 body[data-mobile-game] #assetStatus{font-size:12px}
 body[data-mobile-game] .match-top{margin:2px 0 4px;min-height:42px}
 body[data-mobile-game] .match-top .quiet{border:0;background:transparent;padding:8px 0;color:#c0c7d2;font-size:14px}
 body[data-mobile-game] #campaignProgress{font-size:11px;letter-spacing:.3px}
 body[data-mobile-game] .scoreboard{padding:6px 0 10px;min-height:70px}
 body[data-mobile-game] .scoreboard .nation-symbol{height:16px;width:16px;margin-right:2px}
 body[data-mobile-game] .scoreboard strong{font-size:13px}
 body[data-mobile-game] .scoreboard .nation-mark{font-size:10px}
 body[data-mobile-game] .score{font-size:30px}
 body[data-mobile-game] .stage{margin:0 -16px;width:calc(100% + 32px);height:clamp(280px,calc(100svh - 338px - env(safe-area-inset-top) - env(safe-area-inset-bottom)),720px);border-radius:0}
 body[data-mobile-game] .cartoon-call strong{font-size:20px}
 body[data-mobile-game] .intro h2{font-size:30px}
 body[data-mobile-game] #match{padding-bottom:164px}
 body[data-mobile-game] .play-controls{padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#11151ef5;border-top:1px solid #ffffff0c}
 body[data-mobile-game] #prompt{margin-bottom:10px;font-size:14px;min-height:19px}
 body[data-mobile-game] .choices{max-width:528px;gap:10px}
 body[data-mobile-game] .choices button,body[data-mobile-game] .play-controls>.primary{min-height:88px}
 body[data-mobile-game] .play-controls>.primary{max-width:528px;margin:auto}
 body[data-mobile-game] footer{font-size:12px;padding:20px 0 24px}
 .settings-sheet{margin:auto auto 12px;max-height:calc(100svh - 40px);overflow:auto;padding:24px 20px calc(24px + env(safe-area-inset-bottom))}
}
@media(max-width:359px){body[data-mobile-game] .brand{font-size:18px}body[data-mobile-game] .roster{gap:8px}body[data-mobile-game] .player-card.selected:after{width:19px;height:19px;top:5px;right:5px}body[data-mobile-game] .card-name strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){body[data-mobile-game] section{animation:none!important}body[data-mobile-game] .player-card,body[data-mobile-game] .choices button{transition:none}}

/* Keep faces inside the nation card instead of sizing an oversized off-card box. */
body[data-mobile-game] .nation-backdrop{inset:0}
body[data-mobile-game] .nation-backdrop img{left:32%;top:-2%;width:64%;height:auto;max-width:none;object-fit:contain;object-position:center top}
body[data-mobile-game] .nation-backdrop img.visible{opacity:.32}
@media(max-width:800px){body[data-mobile-game] .nation-backdrop{inset:0}body[data-mobile-game] .nation-backdrop img{left:30%;top:-2%;width:66%;height:auto}}
