:root{color-scheme:dark;--bg:#101a1c;--panel:#1a292d;--line:#425156;--ink:#f2eddf;--quiet:#b9c8c7;--gold:#e6ba6a;--danger:#ff9990;--radius:12px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 system-ui,sans-serif}header,main,footer{max-width:1420px;margin:auto;padding:22px 28px}header{display:flex;align-items:center;justify-content:space-between;gap:16px}h1,h2,h3,p{margin:0 0 12px}h1{font-size:30px}h2{font-size:21px}h3{font-size:16px;margin-top:24px}small,.quiet,footer,.controls{color:var(--quiet)}header small{color:var(--gold);letter-spacing:2px;font-size:11px}.panel{padding:20px;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius)}.build-badge{border:1px solid var(--line);padding:8px 12px;border-radius:8px;font-size:12px;color:var(--quiet)}button,select{font:inherit;background:#263c40;color:var(--ink);border:1px solid #617676;padding:10px 14px;border-radius:7px;min-height:44px}button{cursor:pointer}button:hover:not(:disabled){background:#345055}button:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--gold);color:#152125;font-weight:700}.primary:hover:not(:disabled){background:#f7d18a}#lobby{max-width:700px;margin:20px auto}#lobby select,#lobby button{margin:16px 12px 16px 0}.hud{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px;padding:12px 20px}.hud b{font-variant-numeric:tabular-nums;color:var(--gold)}.counts{display:flex;gap:18px;flex-wrap:wrap;padding:8px 20px;margin-bottom:12px;font-size:13px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px}.play-wrap{position:relative;align-self:start}canvas{display:block;width:100%;background:#22302e;border-radius:var(--radius)}.actions{display:grid;grid-template-columns:1fr;gap:8px}.actions button{text-align:left}progress{width:100%;accent-color:var(--gold)}#feedback{min-height:50px;color:var(--gold);margin-top:16px}#events{padding-left:20px;font-size:13px;color:var(--quiet)}#events li{margin-bottom:8px}.map-overlay{position:absolute;inset:20px;background:#101a1cf2;border:2px solid var(--gold);padding:24px;border-radius:12px;overflow:auto;pointer-events:none}.map-overlay h2 small{font-size:12px}#map-rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.map-room{padding:12px;border:1px solid var(--line);border-radius:7px;min-height:100px;font-size:13px}.map-room.current{border:2px solid var(--gold)}.map-room.closed{background:#4d2728;color:#ffc3ba}.map-room.safe{background:#244a3a}#map-route{margin-top:16px}#danger{position:absolute;left:16px;right:16px;top:16px;background:#4c1f21e8;color:#ffd9d3;padding:10px 14px;border:1px solid #ef9085;border-radius:8px;font-weight:700;pointer-events:none}.result-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px}.mine{color:var(--gold)}[hidden]{display:none!important}footer{text-align:center;font-size:13px}@media(max-width:1000px){.layout{grid-template-columns:1fr}.actions{grid-template-columns:repeat(3,1fr)}aside{padding:16px}}@media(max-width:600px){header,main,footer{padding:16px 12px}header{display:block}h1{font-size:25px}.build-badge{display:block}.hud{font-size:14px}.actions{grid-template-columns:1fr 1fr}.map-overlay{inset:8px;padding:12px}.map-room{padding:6px;font-size:11px;min-height:70px}.counts{gap:8px}.controls{font-size:13px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
/* Field operations: warm brass, charcoal panels and a clear gameplay hierarchy. */
:root{--bg:#101415;--panel:#1b2121;--line:#39413d;--quiet:#a9b5ad;--gold:#e4bc72;--radius:8px}body{background:radial-gradient(ellipse at 15% 0,#34403755,transparent 60%),#101415}header,main,footer{max-width:1500px}header{padding-top:28px;padding-bottom:12px;border-bottom:1px solid #39413d;margin-bottom:10px}header h1{letter-spacing:-1px;font-size:26px;margin:4px 0}header p{font-size:12px;color:var(--quiet);margin:0}.build-badge{font:11px ui-monospace,monospace;letter-spacing:1px;border-color:#8e7851;color:var(--gold)}main{padding-top:16px}.panel{box-shadow:0 8px 30px #0002}.hud{padding:0;display:grid;grid-template-columns:1fr 1.2fr 1.2fr 1fr;gap:0;overflow:hidden}.hud>div{padding:15px 22px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.hud>div:last-child{border:0}.hud small{font-size:11px;letter-spacing:1px}.hud strong,.hud b{font-size:26px;line-height:1.5;font-variant-numeric:tabular-nums}.hud em{font-size:17px;color:#a9b5ad;font-style:normal}.hud .quiet{font-size:10px}.role-stat{background:linear-gradient(100deg,#344138,#1e2824);border-left:3px solid var(--gold)}.cash-stat{background:#e4bc7209}.counts{background:transparent;box-shadow:none;border:0;border-bottom:1px solid var(--line);padding:10px 0 15px;color:#b9c6bc;font-size:12px}.layout{grid-template-columns:minmax(0,1fr) 310px;gap:18px}.play-wrap{border:1px solid #596052;border-radius:8px;overflow:hidden;box-shadow:0 16px 40px #0005}.scene-heading{display:flex;align-items:center;justify-content:space-between;background:#202824;padding:14px 20px;border-bottom:1px solid #596052;gap:12px}.scene-heading small{font:10px ui-monospace,monospace;letter-spacing:2px;color:var(--gold)}.scene-heading h2{font-size:19px;margin:2px 0 0}.scene-heading>span{font-size:12px;color:#c0cfc1;border:1px solid #55644e;padding:5px 9px;border-radius:4px}canvas{border-radius:0}aside.panel{padding:22px;background:linear-gradient(150deg,#252c28,#181e1d)}.eyebrow{font:10px ui-monospace,monospace;letter-spacing:2px;color:var(--gold)}aside h2{margin:5px 0 18px;font-size:23px}.item-card{background:#101715;border:1px solid #465044;border-top:2px solid #ad925e;border-radius:6px;padding:16px;margin-bottom:18px}.item-card small{font-size:11px}.item-card h3{font-size:20px;margin:7px 0}.item-card>strong{font:26px ui-monospace,monospace;color:var(--gold)}#target{font-size:12px;color:var(--quiet);margin:10px 0 0;line-height:1.8}progress{height:7px;border:0;border-radius:4px;display:block}progress::-webkit-progress-bar{background:#101715;border-radius:4px}progress::-webkit-progress-value{background:var(--gold);border-radius:4px}#action-state{font-size:12px;color:#c7d0c8;margin:8px 0 16px}.actions{grid-template-columns:1fr 1fr;gap:7px}.actions button{font-size:12px;padding:10px;background:#2a3430;border-color:#4e5b4f;transition:background .18s,border-color .18s}.actions #interact{grid-column:1/-1;background:var(--gold);color:#1b231e;border-color:var(--gold);font-weight:750;font-size:14px}.actions #map-button{grid-column:1/-1;text-align:center}.actions #interact:hover{background:#f5d28b}#feedback{font-size:12px;min-height:42px;padding:10px 12px;border-left:2px solid var(--gold);background:#e4bc7208}aside h3{margin-top:18px}#events{list-style:none;padding:0;margin-bottom:0;font-size:11px}#events li{padding:8px 0 8px 12px;border-left:1px solid #596052;border-bottom:1px solid #39413d;margin:0}aside>.quiet{font-size:10px;margin:16px 0 0}.controls{font-size:12px;padding:12px 0;color:#b8c0b7}footer{border-top:1px solid #39413d;font-size:11px;padding-top:14px}.map-overlay{top:90px;z-index:4}.map-room{white-space:pre-line}#danger{top:86px;z-index:5}#popups{position:absolute;top:39%;left:12%;right:12%;z-index:3;pointer-events:none;display:flex;align-items:center;flex-direction:column;gap:8px}.money-popup{background:#18221bf2;border:1px solid #b29660;border-radius:8px;box-shadow:0 12px 36px #0009;padding:14px 25px;text-align:center;animation:reward 2.6s ease-out forwards}.money-popup strong{display:block;color:#f3d79e;font-size:28px;line-height:1.3}.money-popup span{font-size:12px;color:#d0d8ca}.money-popup.earned{border-color:#dcbc6b;background:#34301ef5}.money-popup.earned strong{font-size:38px;color:#ffe6a8}@keyframes reward{0%{opacity:0;transform:translateY(15px)}12%,76%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-22px)}}#lobby{max-width:850px;padding:52px;margin:32px auto;background:radial-gradient(ellipse at top right,#8f774433,transparent 65%),linear-gradient(135deg,#29362d,#171d1a);border-color:#766947}#lobby h2{font-size:44px;letter-spacing:-2px;line-height:1.25;margin:16px 0 28px}#lobby>p{max-width:590px;color:#b9c6bb;font-size:14px}.lobby-steps{display:flex;gap:12px;margin:0 0 24px}.lobby-steps span{font-size:12px;border-bottom:1px solid #a28a5a;padding:8px 16px 8px 0;color:var(--gold)}#lobby .quiet{font-size:12px}.result-row{font-variant-numeric:tabular-nums}
@media(max-width:1000px){.layout{grid-template-columns:1fr}.actions{grid-template-columns:repeat(3,1fr)}.actions #interact,.actions #map-button{grid-column:auto}.hud>div{padding:12px}.hud strong,.hud b{font-size:22px}}
@media(max-width:600px){header{padding-top:18px}header .build-badge{display:inline-block;margin-top:10px}.hud{grid-template-columns:1fr 1fr}.hud>div{border-bottom:1px solid var(--line)}.hud strong,.hud b{font-size:23px}.counts{font-size:11px}.scene-heading{padding:10px}.scene-heading h2{font-size:16px}.scene-heading>span{font-size:10px;padding:4px}.actions{grid-template-columns:1fr 1fr}.actions #interact,.actions #map-button{grid-column:1/-1}#lobby{padding:26px 20px;margin:12px auto}#lobby h2{font-size:32px}#lobby select,#lobby button{width:100%;margin:8px 0}.lobby-steps{gap:8px}.lobby-steps span{font-size:11px}.money-popup{padding:8px 12px}.money-popup strong,.money-popup.earned strong{font-size:24px}.money-popup span{font-size:10px}.map-overlay{top:73px}#danger{top:76px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.money-popup{animation:none}.actions button{transition:none}}
/* Reuse the original mockup illustration and readable blue ownership accents. */
#illustrated-banner{max-width:1500px;margin:0 auto;border-bottom:1px solid #594550;background:#21182c}#illustrated-banner svg{display:block;width:100%;height:auto;max-height:165px}#item-art{float:right;width:78px;height:78px;margin:0 -6px 4px 8px;image-rendering:auto}.item-card{display:flow-root}.item-card h3{margin-top:7px}header{padding-top:14px}header h1{font-size:21px}header p{display:none}.scene-heading small{color:#8bbfff}.play-wrap{border-color:#485263}.money-popup.earned:before,.money-popup.earned:after{content:'G';position:absolute;top:-14px;width:23px;height:23px;line-height:23px;border-radius:50%;background:#f2cc5b;border:2px solid #aa822c;color:#725016;font-weight:800}.money-popup.earned:before{left:8px;transform:rotate(-20deg)}.money-popup.earned:after{right:8px;transform:rotate(20deg)}.money-popup{position:relative}
@media(max-width:600px){#illustrated-banner{overflow:hidden}#illustrated-banner svg{width:700px;max-width:none;height:88px;transform:translateX(-105px)}header h1{font-size:20px}#item-art{width:70px;height:70px}}
@media(min-width:1001px){body:has(#game:not([hidden])) #illustrated-banner svg{height:100px;width:100%}body:has(#game:not([hidden])) header{padding-top:8px;padding-bottom:8px}body:has(#game:not([hidden])) header h1{display:none}body:has(#game:not([hidden])) main{padding-top:8px}.hud>div{padding-top:10px;padding-bottom:10px}.layout{grid-template-columns:minmax(0,1fr) 310px}canvas{max-height:calc(100dvh - 330px);object-fit:contain;background:#101a1b}.scene-heading{padding-top:8px;padding-bottom:8px}}
/* Brass field kit: playable scene first, sanctions within a clearly bounded control panel. */
:root{--panel:#202628;--line:#495354;--gold:#e6c181;--alert:#eea087;--cold:#91d8e2}
body{background:radial-gradient(ellipse at 50% -10%,#4a4a3b55,transparent 60%),#111719}
.playtest-tools{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px;flex-wrap:wrap}.playtest-tools select{font-size:13px;min-height:44px}.playtest-tools span{color:var(--quiet)}
.sanction-panel{margin-top:22px;padding:16px;border:1px solid #926653;border-top:3px solid var(--alert);border-radius:6px;background:linear-gradient(130deg,#46342e66,#201e20)}.sanction-panel h3{margin:3px 0 8px;font-size:20px}.sanction-panel label{display:block;font-size:12px;color:var(--quiet)}.sanction-panel select,.sanction-panel>button{width:100%;margin-top:7px}.sanction-panel select{font-size:13px;max-width:100%}#sanction{background:#b5674e;color:#fff4e8;font-weight:700;border-color:#e5a081}#sanction:hover:not(:disabled){background:#d17c5f}#sanction-status{font-size:13px;color:#ffd1b9}#sanction-help{font-size:12px;color:#d0c2b6;margin:10px 0}.counter-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.counter-actions button{font-size:11px;padding:6px}.scene-heading{background:linear-gradient(90deg,#303b3c,#202a2a)}.play-wrap{border:1px solid #7e7b63;box-shadow:0 0 0 4px #101719,0 25px 60px #0008}aside.panel{border-top:3px solid var(--gold)}.build-badge{border-radius:2px}.item-card{background:radial-gradient(circle at 85% 20%,#72776b33,transparent 65%),#121d20}.actions button:active:not(:disabled),.counter-actions button:active:not(:disabled){background:#465850}#sanction:disabled{background:#534239;color:#c5b4a8}.hud .cash-stat b{color:#f5d48d}
@media(min-width:1001px){body:has(#game:not([hidden])) #illustrated-banner{display:none}canvas{max-height:none}.layout{grid-template-columns:minmax(0,1fr) 320px}aside.panel{padding:16px}.hud strong,.hud b{font-size:24px}}
@media(max-width:600px){.playtest-tools{gap:6px}.playtest-tools span{width:100%;font-size:11px}.sanction-panel{padding:12px}#sanction-target{width:100%}}
.sanction-panel{margin:0 0 18px}.sanction-panel h3{font-size:18px}.sanction-panel .eyebrow{display:none}.sanction-panel select{min-height:36px}.sanction-panel>button{min-height:42px}aside h2{margin-bottom:12px}.counter-actions button{min-height:36px}
@media(min-width:1001px){canvas{max-height:calc(100dvh - 330px);object-fit:contain;background:#101719}aside.panel{max-height:calc(100dvh - 285px);overflow:auto;scrollbar-gutter:stable}aside.panel:focus-within{border-color:var(--gold)}}
/* Full-browser play surface with HUD overlays. */
body:has(#game:not([hidden])){overflow:hidden;background:#0b1317}
body:has(#game:not([hidden]))>header,body:has(#game:not([hidden]))>#illustrated-banner,body:has(#game:not([hidden]))>footer{display:none}
body:has(#game:not([hidden])) main{max-width:none;margin:0;padding:0}
#game{position:fixed;inset:0;isolation:isolate}
#game .layout{display:block}#game .play-wrap{position:absolute;inset:0;border:0;border-radius:0;box-shadow:none}
#game canvas{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:contain;background:radial-gradient(ellipse,#283639,#0b1317)}
#game .hud{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:min(760px,calc(100% - 32px));z-index:2;background:#152126e8;backdrop-filter:blur(12px);border:1px solid #8e815a;box-shadow:0 6px 30px #0007;border-radius:6px}
#game .hud>div{padding:8px 16px}#game .hud strong,#game .hud b{font-size:22px}#game .hud small{font-size:10px}#game .hud .quiet{display:none}
#game .counts{position:absolute;top:84px;left:50%;transform:translateX(-50%);width:min(800px,95%);z-index:2;border:0;background:#101a20c9;padding:5px 12px;font-size:11px;border-radius:4px;text-align:center;display:block}
#game .scene-heading{position:absolute;left:18px;top:135px;z-index:2;display:block;border:0;background:#142127c9;padding:10px 14px;border-left:2px solid var(--gold);pointer-events:none}
#game .scene-heading>span{display:block;border:0;padding:0;font-size:11px}#game .scene-heading h2{font-size:17px}
#game .playtest-tools{position:absolute;left:18px;bottom:55px;z-index:2;background:#142127de;border:1px solid var(--line);padding:5px 8px;border-radius:5px}
#game .playtest-tools label{font-size:10px}#game .playtest-tools span{display:none}#game .playtest-tools select{min-height:34px;padding:4px;font-size:12px}
#game .controls{position:absolute;left:0;right:0;bottom:0;z-index:2;margin:0;padding:10px;text-align:center;background:#0d171ee6;font-size:12px}
#work-toggle{position:absolute;right:18px;bottom:55px;z-index:5;background:#d5b273;color:#182227;border-color:#eed5a1;font-weight:700;box-shadow:0 4px 20px #0008}
#game #work-panel{position:absolute;right:18px;bottom:110px;z-index:5;width:300px;max-height:calc(100dvh - 250px);overflow:auto;background:#18252bf5;backdrop-filter:blur(15px);box-shadow:0 12px 40px #0008;padding:14px}
#game .broadcast{position:absolute;right:18px;top:140px;z-index:2;width:260px;pointer-events:none;background:linear-gradient(90deg,transparent,#111d26bb);padding:10px;text-shadow:0 1px 3px #000}
.broadcast h3{font-size:11px;letter-spacing:2px;color:var(--gold);margin:0}.broadcast #events li{font-size:11px;padding:5px 0;border:0;text-align:right}
#game #feedback{position:absolute;top:115px;left:50%;transform:translateX(-50%);z-index:10;width:max-content;max-width:calc(100% - 32px);min-height:0;margin:0;padding:12px 20px;background:#172b33f5;border:1px solid #8ebdc5;border-radius:6px;color:#e2f7f8;text-align:center;font-size:15px;box-shadow:0 8px 30px #0008;pointer-events:none}
#game #feedback.error{border-color:#f2a075;background:#4c2922f5;color:#ffe5cf}
#game #danger{position:absolute;top:175px;left:30%;right:30%;z-index:3;font-size:13px;text-align:center}
#game .map-overlay{position:absolute;inset:130px max(18px,20%) 110px;z-index:4;background:#101c24ed;backdrop-filter:blur(12px)}
#game #popups{top:42%;left:25%;right:25%}
body:has(#game:not([hidden])) #result:not([hidden]){position:fixed;inset:15% 20%;overflow:auto;z-index:20;background:#17242af5}
#sanction[aria-disabled=true]{background:#554238;color:#d7c4b6}
@media(max-width:700px){#game .hud{top:6px;width:calc(100% - 12px);grid-template-columns:repeat(4,1fr)}#game .hud>div{padding:6px;border-bottom:0}#game .hud strong,#game .hud b{font-size:15px}#game .hud em{font-size:11px}#game .hud small{font-size:8px;letter-spacing:0}#game .counts{top:65px;font-size:9px;width:96%;padding:4px}#game .scene-heading{top:125px;left:8px;padding:5px}#game .scene-heading h2{font-size:13px}#game .scene-heading>span{font-size:9px}#game .broadcast{top:180px;right:8px;width:150px;opacity:.85}#game .broadcast #events li:nth-child(n+3){display:none}#game #feedback{top:105px;font-size:12px;padding:9px;width:calc(100% - 20px)}#game .controls{font-size:9px;padding:8px}#game .playtest-tools{left:8px;bottom:44px;gap:4px}#game .playtest-tools label{display:none}#work-toggle{right:8px;bottom:44px;font-size:12px}#game #work-panel{right:8px;bottom:96px;width:min(300px,calc(100% - 16px));max-height:calc(100dvh - 215px)}#game .map-overlay{inset:155px 8px 100px}#game #danger{top:145px;left:8px;right:8px;font-size:11px}body:has(#game:not([hidden])) #result:not([hidden]){inset:15% 8px}}
#game .play-wrap{height:100%;width:100%;align-self:stretch}
/* Approved mole cartoon direction: flat color, bold edges, readable game overlays. */
:root{--bg:#292c3b;--panel:#34394c;--line:#202331;--ink:#fff7e8;--quiet:#d0d5e2;--gold:#ffda78;--radius:14px}
body{background:#292c3b}button,select{border:3px solid #202331;border-radius:10px;background:#505a74;box-shadow:0 3px 0 #202331;font-weight:650}button:hover:not(:disabled){background:#657491}button:active:not(:disabled){background:#7484a2;box-shadow:0 1px 0 #202331}.primary{background:#ffda78;color:#292c3b}.panel{border:3px solid #202331;box-shadow:0 4px 0 #202331;background:#34394c}#illustrated-banner{background:#292c3b;border-bottom:3px solid #202331}.build-badge{border:2px solid #202331;border-radius:8px}.scene-heading{background:#34394c}.item-card{background:#292e40;border:2px solid #202331;border-radius:10px}.sanction-panel{background:#41465a;border:2px solid #202331;border-radius:10px}#sanction{background:#d97963;border:3px solid #202331}#sanction[aria-disabled=true]{background:#66545b;color:#ead3d4}
#game canvas{background:#292c3b}#game .hud{background:#34394cf5;border:3px solid #202331;border-radius:14px;box-shadow:0 4px 0 #202331;backdrop-filter:none}#game .hud>div{border-color:#202331}#game .counts{background:#34394cf0;border:2px solid #202331;border-radius:9px}#game .scene-heading{background:#34394cf0;border:2px solid #202331;border-radius:9px;border-left:5px solid #5aa6ff}#game .playtest-tools{background:#34394cf0;border:2px solid #202331;border-radius:10px}#game .controls{background:#292e40f5;color:#e5e6ee}#work-toggle{background:#ffda78;border:3px solid #202331;box-shadow:0 4px 0 #202331;border-radius:12px}#game #work-panel{background:#34394cfa;border:3px solid #202331;border-radius:12px;backdrop-filter:none}#game .broadcast{background:#34394cd9;border:2px solid #202331;border-radius:10px;text-shadow:none}#game #feedback{background:#315764;border:3px solid #202331;border-radius:12px;box-shadow:0 4px 0 #202331;font-weight:750}#game #feedback.error{background:#764036;border-color:#ffcb69;color:#fff2d4}#game .map-overlay{background:#33394df5;border:3px solid #202331;backdrop-filter:none;border-radius:16px}.map-room{color:#222637;font-weight:700;border:3px solid #343547;border-radius:12px;white-space:pre-line;box-shadow:0 3px 0 #202331}.map-room.current{border:4px solid #ffe18a;outline:2px solid #202331}.map-room.closed{color:#ffe2d9}.money-popup{background:#353b50;border:3px solid #202331;border-radius:13px}.scene-heading small{color:#9dccff}

/* Map owns detailed HUD; keep the playfield clear. */
#game #map .hud,#game #map .counts{position:static;transform:none;width:100%;margin:0 0 12px;}
#game .map-overlay{inset:20px max(18px,15%) 70px;pointer-events:auto;}
#game #feedback{top:16px;}#game .scene-heading{top:16px;}#game .broadcast{top:auto;bottom:100px;}
@media(max-width:700px){#game .map-overlay{inset:8px 8px 90px;}#game #map .hud{grid-template-columns:1fr 1fr;}#game #feedback{top:80px;}#game .scene-heading{top:12px;}#game .broadcast{bottom:110px;}}

.relic-dialog{position:fixed;z-index:100;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;background:#f3e9d3;color:#343442;border:3px solid #343442;border-radius:18px;padding:22px;box-shadow:0 16px 60px #0008;box-sizing:border-box}
.relic-dialog[hidden]{display:none}.relic-dialog img{display:block;width:100px;height:100px;margin:0 auto 8px}.relic-dialog h2{margin:8px 0}.relic-dialog p{color:#575369;font-size:14px;line-height:1.6}.relic-dialog strong{font-size:23px;color:#65502c}.relic-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.relic-choices button{min-height:46px;background:#39485b;color:#fff;border:0;border-radius:8px;padding:10px}.relic-choices button:disabled{opacity:.45}.relic-choices button:focus-visible{outline:3px solid #d18b35;outline-offset:2px}
.relic-dialog small{color:#696477}

#lift-routes svg{display:block;width:min(100%,320px);height:180px;margin:auto}#lift-routes p{color:#b5e4dc;font-size:13px;text-align:center}

/* design pass 2026-10: ticker, keycaps, role chip, map closing bar */
#game .ticker{position:absolute;z-index:6;left:50%;top:64px;transform:translateX(-50%);width:min(60%,560px);overflow:hidden;white-space:nowrap;background:#1f2330b3;border-radius:999px;padding:4px 0;font-size:13px;color:#fff;pointer-events:none;-webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
#game .ticker>span{display:inline-block;padding-left:100%;animation:tk 18s linear infinite}#game .ticker b{color:#f0c96a}
@keyframes tk{to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){#game .ticker>span{animation:none;padding-left:12px}}
@media (max-width:700px){#game .ticker{top:120px;width:86%}}
#game .controls{display:flex;flex-wrap:wrap;gap:6px 12px;justify-content:center}#game .controls span{white-space:nowrap}
#game .controls kbd{background:#f3eedf;color:#1f2330;border-radius:4px;padding:1px 6px;margin-right:4px;font:700 12px ui-monospace,monospace;box-shadow:0 2px 0 #9b927c}
.role-chip{display:inline-block;color:#fff;font-weight:700;font-size:13px;padding:3px 9px;border-radius:999px;margin-bottom:4px}
.role-chip[hidden]{display:none}
.map-room{position:relative;overflow:hidden}
.map-room .closing-bar{position:absolute;left:0;bottom:0;height:5px;background:#f0c96a}
.map-room.urgent{border-color:#e5484d!important;box-shadow:0 0 0 2px #e5484d inset}.map-room.urgent .closing-bar{background:#e5484d}
.relic-choices button:disabled{opacity:1;border-style:dashed;background:transparent;color:#a39c8c}
.relic-dialog,.relic-choices button{word-break:keep-all}
.role-roster{font-size:14px}.role-roster .soon{opacity:.6;border:1px dashed currentColor;border-radius:999px;padding:0 8px}
/* Four-player entry and rotating specialist selection. */
.mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:30px 0}.mode-buttons button{padding:28px;font-size:23px;text-align:left}.mode-buttons small{display:block;font-size:13px;margin-top:12px;font-weight:400}.duration-setting{margin-top:26px;display:flex;gap:14px;align-items:center}.duration-setting select{width:auto}.selection-heading{display:flex;align-items:center;gap:24px}.selection-heading button{width:auto}.role-stage{height:290px;perspective:900px;overflow:hidden;position:relative;background:radial-gradient(ellipse at 50% 85%,#cda45c30,transparent 65%)}#role-wheel{position:absolute;inset:0;transform-style:preserve-3d;touch-action:pan-y}.role-mole{position:absolute;left:50%;top:50%;width:210px;height:240px;padding:0;border:0;background:none;box-shadow:none;transition:transform .4s,opacity .4s;cursor:pointer}.role-mole svg{width:100%;height:100%;filter:drop-shadow(0 16px 10px #0004)}.role-navigation{display:flex;justify-content:center;align-items:center;gap:40px}.role-navigation button{width:54px;font-size:23px}.role-navigation h3{margin:0 0 5px}.role-navigation div{text-align:center;width:150px}.role-card-backdrop{position:fixed;inset:0;z-index:100;background:#16141cbb;display:grid;place-items:center;padding:24px}.role-card{background:#f3e8ce;color:#302b2d;border:3px solid #89704a;border-radius:18px;max-width:420px;padding:26px;box-shadow:0 24px 100px #0008;text-align:center;position:relative}.role-card p{color:#514738;line-height:1.8}.role-card h2{font-size:28px;margin:8px}.role-card small{letter-spacing:3px;color:#896b3e}#role-card-art{height:185px}#role-card-art svg{height:100%;width:100%}#role-card-close{position:absolute;right:10px;top:10px;width:36px}.online-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.online-controls button{width:auto}#room-code{background:#fff3db;color:#29232c;border-radius:8px;padding:12px;width:125px;text-transform:uppercase;font-size:18px}#online-status{min-height:48px}#inventory-button,#home-button{position:relative;z-index:12;width:auto;margin:0 8px 12px 0}.inventory-dialog{position:absolute;z-index:40;inset:50px 7% auto;background:#242b3bf5;border:2px solid #d4b878;border-radius:14px;padding:22px;max-height:80%;overflow:auto;box-shadow:0 18px 70px #0007}.inventory-dialog h2{font-size:24px}.inventory-row{display:flex;align-items:center;gap:15px;padding:14px 0;border-top:1px solid #ffffff25}.inventory-row img{width:65px}.inventory-row .item-info{flex:1}.inventory-row small{display:block;color:#d5c8ad;margin-top:5px}.inventory-row button{width:auto}#inventory-close{float:right;width:auto}#inventory-summary{color:#f3d38c;line-height:1.8}[hidden]{display:none!important}@media(max-width:650px){.mode-buttons{grid-template-columns:1fr}.selection-heading{display:block}.role-stage{height:240px}.role-mole{width:170px;height:200px}.inventory-dialog{inset:20px 2% auto;padding:12px}.inventory-row{gap:7px}.inventory-row img{width:40px}.duration-setting{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.role-mole{transition:none}}
#lobby:has(#single-select:not([hidden])){padding:28px 40px}#lobby:has(#single-select:not([hidden]))>h2{display:none}#lobby .role-mole{margin:0}#lobby .mode-buttons button{margin:0}#lobby .role-navigation button{margin:0}.role-card-backdrop .role-card h2{display:block}@media(max-width:650px){#lobby:has(#single-select:not([hidden])){padding:20px 12px}.role-card{max-height:90vh;overflow:auto}}
/* ui fixes 2026-10-15: overlay stacking, contrast, result panel, counts chips */
#game:has(#map:not([hidden])) .ticker{visibility:hidden}
#game:has(#map:not([hidden])) #feedback,#game:has(#inventory-dialog:not([hidden])) #feedback{top:auto;bottom:60px}
#game:has(#inventory-dialog:not([hidden])) #popups{visibility:hidden}
#game .scene-heading{top:64px}
#lobby .mode-buttons .primary small{color:#5b4a24}
body:has(#result:not([hidden])) #work-toggle,body:has(#result:not([hidden])) #work-panel{display:none}
body:has(#game:not([hidden])) #result:not([hidden]){inset:auto;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,calc(100% - 16px));max-height:80vh;padding:28px 30px 26px;border:3px solid #202331;border-radius:16px}
.result-row{justify-content:flex-start;gap:14px;align-items:baseline}
.result-row .rank{flex:none;width:40px;font-weight:800;color:#9aa3bd}
.result-row .who{flex:1}
.result-row.winner{background:#ffda7814;border-radius:8px}
.result-row.winner .rank{color:#ffda78}
#game #map .counts{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;font-size:12px}
.count-chip{background:#252c3e;border:1px solid #4a5370;border-radius:999px;padding:4px 10px;white-space:nowrap}
.count-chip b{color:#ffda78;font-weight:700}
@media(max-width:700px){#game #feedback{top:150px}#game .map-overlay{top:60px}#game:has(#map:not([hidden])) #feedback,#game:has(#inventory-dialog:not([hidden])) #feedback{top:auto;bottom:96px}}

#camera-toggle{position:absolute;top:4px;right:12px;z-index:6;background:#444e68;border:3px solid #58647e;color:#fff2ca;font-weight:700}#camera-toggle[aria-pressed="true"]{border-color:#d7b365;background:#635235}#camera-toggle[hidden]{display:none}
@media(max-width:700px){#camera-toggle{font-size:11px;padding:6px;min-height:38px;right:6px;top:6px}}

#camera-hint{position:absolute;top:49px;right:12px;z-index:6;font-size:11px;color:#fff2ca;background:#171f30cc;padding:4px 8px;border-radius:5px;pointer-events:none}
#camera-hint[hidden]{display:none}
