/* Setup is a lightweight, static selection screen. No renderer dependency. */
#game-shell[data-menu-route=campaign] #play-mode-setup{display:none}
#intro .campaign-info{padding:22px;margin-bottom:24px;border:1px solid #c9ab6655;background:linear-gradient(115deg,#292919,#111a1b);color:#d7ddce;line-height:1.7}
#intro .campaign-info p{margin:0 0 10px}#intro .campaign-info small{color:#a3afa4;font-size:11px}
#intro #campaign-progress{color:#e8c87d;font-weight:700;letter-spacing:.05em}
#intro #campaign-lock-note{font-size:12px}#intro #campaign-message:empty{display:none}
#intro .difficulty-tiers label:has(input:disabled){opacity:.5;cursor:not-allowed}
#intro .difficulty-tiers label:has(input:disabled) strong:after{content:' · LOCKED';font-size:10px;letter-spacing:.08em}
#game-shell[data-state=intro][data-menu=setup]>.topbar{top:0;left:0;right:0;min-height:76px;padding:20px 30px;background:#0a1113;border-bottom:1px solid #a6b09225}
#game-shell[data-state=intro] #intro{display:block;padding:102px max(28px,calc((100vw - 1200px)/2)) 28px;background:radial-gradient(ellipse at 80% 0,#34443835,transparent 48%),#090f11f7;scrollbar-color:#536056 #101718;scroll-padding-block:22px 120px}
#intro .intro-content{position:static;width:100%;padding:0;margin:0 0 26px}
#intro .eyebrow{font:10px var(--mono);letter-spacing:.21em;color:#a9b7a7;margin:0 0 12px}
#intro h1{font:400 clamp(35px,4vw,54px)/1.12 Georgia,serif;letter-spacing:-.03em;margin:0;color:#f0ecdf}
#intro h1 span{color:#dfc187;margin:0}
#intro .lead{font:14px/1.7 var(--sans);color:#a7b2ab;margin:12px 0 0;max-width:none}
#game-shell[data-state=intro] #intro .setup-panel{width:100%;padding:0;border:0;box-shadow:none;background:none;min-width:0}
#intro .setup-toolbar{display:flex;align-items:center;gap:18px;padding-bottom:20px;border-bottom:1px solid #a6b09225;font:10px var(--mono);letter-spacing:.12em}
#intro #setup-main-menu{margin:0;padding:9px 12px;font-size:9px}
#setup-route-title{color:#e0c68e}.setup-headstart{margin-left:auto;color:#8d9f94;font-size:9px}
#intro .library-trigger{display:flex;width:100%;align-items:center;gap:18px;text-align:left;margin:20px 0 30px;padding:17px 22px;border:1px solid #697e6955;background:linear-gradient(110deg,#23312890,#15211d80);color:#e9e7db;transition:background .18s,border-color .18s}
#intro .library-trigger:hover{background:#26392e;border-color:#a3ba8b}
.library-trigger .library-symbol{font:32px Georgia,serif;color:#c5b181}.library-trigger strong{display:block;font:500 16px var(--sans)}.library-trigger small{display:block;color:#9dae9e;font:12px/1.6 var(--sans);margin-top:4px}.library-trigger>b{margin-left:auto;color:#e4c895;font:26px Georgia,serif}
#intro .setup-section{margin:0 0 28px}
#intro label,#intro button,#intro summary{scroll-margin-block:85px 145px}
#intro .setup-section legend{font:500 17px var(--sans);letter-spacing:0;color:#e4e9df;margin-bottom:16px;gap:12px}
#intro .setup-section legend>b{display:grid;place-items:center;width:27px;height:27px;border:1px solid #b4bd982e;color:#c7ba92;font:10px var(--mono)}
#intro .setup-section legend small{font:9px var(--mono);letter-spacing:.08em;color:#859b8e}
#intro .difficulty-tiers{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
#intro .difficulty-tiers label{--tier:#a0d3b8;--tint:#85bda615}
#intro .difficulty-tiers .tier-medium{--tier:#e4c28e;--tint:#dab76c15}
#intro .difficulty-tiers .tier-hard{--tier:#e7a279;--tint:#d2905c15}
#intro .difficulty-tiers .tier-hardcore{--tier:#e89898;--tint:#cb656515}
#intro .difficulty-tiers label>span{position:relative;align-items:stretch;text-align:left;padding:20px 18px 17px;gap:0;min-height:184px;border:1px solid #a3b39e30;border-radius:4px;background:linear-gradient(140deg,var(--tint),#0d171a);transition:border-color .18s,background .18s,transform .18s}
#intro .difficulty-tiers label:hover>span{transform:translateY(-2px);border-color:var(--tier)}
#intro .difficulty-tiers input:checked+span{border-color:var(--tier);background:linear-gradient(140deg,var(--tint),#25302c);box-shadow:inset 0 3px var(--tier),0 8px 22px #0003}
#intro .difficulty-tiers input:checked+span:after{content:'✓';position:absolute;top:15px;right:16px;color:var(--tier);font-size:15px}
#intro .difficulty-tiers strong{font:500 24px/1.2 Georgia,serif;color:#f1eadb;margin:13px 0 5px}
#intro .difficulty-tiers em{font:12px var(--sans);font-style:normal;color:#a6b0a7;margin-bottom:17px}
#intro .difficulty-tiers small{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px;font:10px/1.8 var(--sans);color:#b4bfb6}
#intro .difficulty-tiers u{text-decoration:none;color:var(--tier)}
.threat-meter{display:flex;gap:4px;height:16px;align-items:end}.threat-meter b{width:5px;height:7px;transform:skew(-15deg);background:#778a7c40}.threat-meter b:nth-child(2){height:10px}.threat-meter b:nth-child(3){height:13px}.threat-meter b:nth-child(4){height:16px}
.tier-easy .threat-meter b:first-child,.tier-medium .threat-meter b:nth-child(-n+2),.tier-hard .threat-meter b:nth-child(-n+3),.tier-hardcore .threat-meter b{background:var(--tier)}
#intro .map-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#intro .map-choice{height:255px;padding:20px 17px;border-radius:4px;border:1px solid #bac6ab38;background:#142019;transition:border-color .2s,transform .2s;box-shadow:none}
#intro .map-choice img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .5s,filter .25s;filter:saturate(.75) brightness(.9)}
#intro .map-choice:after{z-index:-1;background:linear-gradient(180deg,#06101005 15%,#040b1090 62%,#040b10fa)}
#intro .map-choice:before{content:'';position:absolute;top:13px;right:13px;width:21px;height:21px;border:1px solid #ffffff6b;border-radius:50%;background:#06101480;text-align:center;color:#161d16;font:700 13px/21px var(--sans)}
#intro .map-choice em{font:9px var(--mono);letter-spacing:.11em;color:#e0c58f;font-style:normal;margin:0 0 9px}
#intro .map-choice strong{font:500 clamp(17px,1.65vw,23px)/1.2 Georgia,serif;letter-spacing:-.02em;text-shadow:0 2px 8px #000}
#intro .map-choice small{font:11px/1.6 var(--sans);letter-spacing:0;color:#bec7c0;margin-top:8px}
#intro .map-options label:hover .map-choice{border-color:#d6c39c;transform:translateY(-2px)}
#intro .map-options label:hover img{transform:scale(1.04);filter:saturate(1) brightness(1)}
#intro .map-options input:checked+.map-choice{border-color:#e4c38b;box-shadow:0 0 0 1px #e4c38b,0 10px 28px #0006;background:#142019}
#intro .map-options input:checked+.map-choice:before{content:'✓';background:#ead2a5;border-color:#ead2a5}
#intro .map-options input:checked+.map-choice img{filter:saturate(1) brightness(1)}
#intro .theme-art-note{font:10px/1.6 var(--sans);color:#8fa197;margin:10px 0 0}
#intro .map-options .map-unavailable{cursor:not-allowed}
#intro .map-options .map-unavailable .map-choice{transform:none;border-color:#bac6ab25;box-shadow:none;cursor:not-allowed}
#intro .map-options .map-unavailable img{transform:none;filter:saturate(.25) brightness(.55)}
#intro .map-options .map-unavailable .map-choice:before{display:none}
#intro .map-choice .coming-soon{position:absolute;top:27%;left:10px;right:10px;text-align:center;padding:12px 4px;background:#081012d9;border-block:1px solid #d6bf8170;color:#eed6a4;font:600 11px var(--mono);letter-spacing:.17em}
#intro .loadout-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
#intro .loadout-options label>span{position:relative;align-items:start;text-align:left;min-height:82px;padding:16px 25px 16px 56px;gap:6px;background:#14202480;border-color:#8b9c872e;border-radius:3px}
#intro .loadout-options i{position:absolute;left:18px;top:25px;font-size:26px}
#intro .loadout-options strong{font:500 13px var(--sans);color:#e1e5da}
#intro .loadout-options small{font:10px/1.6 var(--sans);color:#9fb1a5}
#intro .loadout-options input:checked+span{background:#29342b;border-color:#cdb783;box-shadow:inset 3px 0 #cdb783}
#intro .loadout-options input:checked+span:after{top:11px;right:10px;font-size:13px}
#intro .loadout-hint{font:12px/1.7 var(--sans);color:#a6b5a9;margin:12px 0}
#intro .setup-help{border-top:1px solid #99ac9027;padding:13px 0;margin:0}
#intro .setup-help summary{cursor:pointer;font:12px var(--sans);color:#bfcdbf}
#intro .setup-help .setup-note{font:12px/1.8 var(--sans);max-width:940px;margin:14px 0}
#intro .setup-help .gallery-link{margin:0 24px 0 0}
#intro .setup-launch{position:sticky;bottom:-28px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:25px -1px 0;padding:20px 22px;background:#13201efa;border:1px solid #bea87755;box-shadow:0 -12px 35px #050b0d99}
#intro .setup-launch>div{min-width:0}.launch-label{font:9px var(--mono);letter-spacing:.15em;color:#ccb987}
#intro #setup-summary{font:12px/1.6 var(--sans);color:#eceddf;margin:7px 0 4px}
#intro .setup-launch small{font:10px var(--sans);color:#99b0a3}
#intro .setup-launch .primary-button{width:270px;min-height:54px;flex-shrink:0;padding:17px 20px;background:#dec493;color:#111a18;font:600 12px var(--sans);letter-spacing:.08em;border:1px solid #dec493}
#intro .setup-launch .primary-button:hover{background:#f1d7a6}
#intro>.version{display:none}
#intro #online-setup{padding:20px;background:#152020;border:1px solid #7d988344;border-radius:4px;margin-bottom:25px}
#intro #play-mode-setup .difficulty-options{grid-template-columns:repeat(2,minmax(0,1fr))}
#intro #play-mode-setup .difficulty-options strong{font-size:16px}#intro #play-mode-setup .difficulty-options small{font-size:11px}
#intro #mode-description,#intro #online-setup .setup-note{font:12px/1.7 var(--sans)}
/* One modal surface at a time. The shared archive hands off to the all-maps browser. */
#map-library.setup-dialog,#map-browser{position:fixed;inset:0;z-index:90;margin:0;padding:5vh 24px;border:0;border-radius:0;background:#03090eef;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#697b6a #101718}
#map-library .library-window,#map-browser .catalog-panel{width:100%;max-width:900px;margin:0 auto;padding:30px;background:linear-gradient(140deg,#1c2927,#101a1d);border:1px solid #b9af8655;border-radius:6px;box-shadow:0 30px 100px #0008}
#map-library header,#map-browser header{display:flex;justify-content:space-between;align-items:start;gap:20px}
#map-library header .eyebrow{font:9px var(--mono);letter-spacing:.2em;color:#a9bca8;margin:0 0 14px}
#map-library h2,#map-browser h2{font:400 32px/1.15 Georgia,serif;letter-spacing:-.025em;margin:0;color:#f0ecdf}
#map-library h2 span{color:#dfc391}
#map-library .setup-note,#map-browser .setup-note{font:12px/1.7 var(--sans);color:#b1c1b5}
#map-library .map-record{padding:15px;background:#0a151a;border-left:2px solid #b69d68;margin:12px 0;overflow-wrap:anywhere}
#map-library .network-label{font:10px var(--mono);letter-spacing:.08em;margin:18px 0 12px}
#map-library input,#map-library select,#map-browser input{background:#0b181c;border:1px solid #7e958054;color:#eef1e5;font:13px var(--sans);padding:13px;border-radius:3px;min-width:0}
#map-library .quiet-button,#map-browser .quiet-button{font:10px var(--mono);min-height:38px;border-color:#aaba8a55;padding:10px 13px}
#map-library .catalog-actions .gallery-link{margin:0;font-size:9px}
#map-library #catalog-status{font:11px/1.6 var(--sans);color:#a5bfae;overflow-wrap:anywhere}
#map-library #map-library-message:not(:empty){padding:12px;border:1px solid #bfa97677;background:#2f3020;color:#f1d799}
#map-library footer{margin-top:20px;border-top:1px solid #91a98830;padding-top:18px;display:flex;gap:25px;align-items:center}
#map-library footer p{flex:1;margin:0;font-size:11px}
#map-library footer button{flex-shrink:0;padding:14px 18px;font-size:11px}
#map-browser label{display:block;margin-top:25px;margin-bottom:10px;font-size:12px;color:#bbcbbd}
#map-browser-list article{border-radius:4px;background:#0c181cd9;border-color:#a0b28d40;padding:20px}
#map-browser-list h3{font:500 21px/1.3 Georgia,serif;color:#e2c797}
#map-browser-list p{font:12px/1.7 var(--sans);color:#b5c1b5}
#game-shell[data-showcase=true] #open-map-library,#game-shell[data-showcase=true] .setup-headstart,#game-shell[data-showcase=true] #intro .setup-help{display:none}
@media(max-width:1000px){#intro .difficulty-tiers{grid-template-columns:repeat(2,minmax(0,1fr))}#intro .map-options{grid-template-columns:repeat(2,minmax(0,1fr))}#intro .map-choice{height:240px}#intro .map-choice strong{font-size:24px}#intro .loadout-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#game-shell[data-state=intro] #intro{padding:86px 18px 18px}#intro .intro-content{margin-bottom:22px}#intro h1{font-size:37px}#intro .lead{font-size:12px}#intro .setup-toolbar{gap:12px}#intro .setup-headstart{display:none}#intro .library-trigger{padding:16px 13px;gap:10px;margin-bottom:25px}.library-trigger strong{font-size:14px}.library-trigger small{font-size:11px}.library-trigger .library-symbol{font-size:26px}#intro .setup-section legend{font-size:16px}#intro .setup-section legend small{display:none}#intro .difficulty-tiers,#intro .map-options{gap:9px}#intro .difficulty-tiers label>span{padding:17px 13px;min-height:186px}#intro .difficulty-tiers strong{font-size:23px}#intro .difficulty-tiers small{font-size:10px;gap:1px 8px}#intro .map-choice{height:215px;padding:16px 12px}#intro .map-choice strong{font-size:21px}#intro .map-choice em{font-size:8px;line-height:1.5}#intro .map-choice small{font-size:10px}#intro .loadout-options label>span{padding:15px 20px 15px 13px;min-height:105px}#intro .loadout-options i{position:static;font-size:22px}#intro .loadout-options strong{font-size:12px}#intro .loadout-options small{font-size:10px}#intro .setup-launch{flex-direction:column;align-items:stretch;gap:13px;bottom:-18px;padding:16px}#intro .setup-launch .primary-button{width:100%;min-height:49px}#intro #setup-summary{font-size:11px}#intro .setup-launch small{display:none}#map-library.setup-dialog,#map-browser{padding:14px}#map-library .library-window,#map-browser .catalog-panel{padding:21px 17px}#map-library h2,#map-browser h2{font-size:26px}#map-library header,#map-browser header{gap:10px}#map-library header .quiet-button,#map-browser header .quiet-button{padding:8px;font-size:9px}#map-library footer{flex-direction:column;align-items:stretch;gap:18px}#map-library footer button{width:100%}}
@media(prefers-reduced-motion:reduce){#intro .setup-panel *{transition:none!important;transform:none!important}}
