:root{color-scheme:dark;--cream:#eee5cf;--muted:#b9bea9;--leaf:#c6d497;--dark:#15221c}*{box-sizing:border-box}body{margin:0;background:#1e3029;color:var(--cream);font:14px Arial,sans-serif;overflow:hidden}button,input,a{font:inherit}button,a{color:inherit}button{cursor:pointer;border:1px solid #c6d49740;background:#c6d4970b;padding:14px 17px;border-radius:4px;transition:background .2s,transform .2s}button:hover{background:#c6d49723}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #dbe7aa;outline-offset:3px}button:disabled{opacity:.45;cursor:wait}button span{float:right;font-size:11px}a{text-decoration:none}small,.eyebrow,label,nav,footer{font-size:10px;letter-spacing:2px}p{line-height:1.65}h1,h2,h3{font-family:Georgia,serif;font-weight:normal}h2{font-size:30px;margin:10px 0 18px}#world,.film{position:fixed;inset:0;width:100%;height:100%}.film{pointer-events:none;background:linear-gradient(90deg,#0a211dbb,#0c211c30 65%,#0b1a1388),linear-gradient(0deg,#091b1cc0,transparent 30%);z-index:1}#home{position:relative;z-index:2;height:100dvh;overflow:auto;padding:30px 4vw;display:flex;flex-direction:column}nav{display:flex;justify-content:space-between;gap:20px;color:#d3d7be}nav a:hover{color:white}.home-content{flex:1;display:flex;align-items:center;justify-content:space-between;gap:5vw;padding:38px 2vw}.title{max-width:650px}.eyebrow{color:#d1dba9}h1{font-size:clamp(82px,9vw,155px);line-height:.86;letter-spacing:-7px;margin:30px 0 35px}h1 em{color:#e8dab1;font-weight:normal}.intro{font-family:Georgia,serif;font-size:23px;line-height:1.5}.story{max-width:420px;color:var(--muted);font-size:14px}.chapter-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.chapter-pills span{border:1px solid #d7dfac30;border-radius:30px;padding:9px 12px;font-size:11px;color:#d4dbc1}.expedition{width:410px;flex-shrink:0;padding:30px;background:#18281fd9;border:1px solid #c1c89b40;border-radius:8px;box-shadow:0 25px 90px #0004;backdrop-filter:blur(18px)}.expedition>small{color:#d5dfac}.expedition label{display:block;margin:18px 0 9px;letter-spacing:1px;text-transform:uppercase;color:#c2c9b2}input{width:100%;padding:12px;background:#07170f66;border:1px solid #d4ddb338;border-radius:4px;color:var(--cream)}#difficulty{display:flex;margin-bottom:20px;gap:6px}#difficulty button{flex:1;font:12px Georgia;padding:11px 3px}#difficulty small{display:block;font:9px Arial;letter-spacing:0;margin-top:7px;color:#aebaa2}#difficulty .selected{border-color:#d0daa1;background:#d0daa125}.expedition>button{width:100%;margin-bottom:9px;text-align:left}.primary{background:#c8d49b;color:#253625;border-color:#c8d49b;font-weight:bold}.primary:hover{background:#e0e7b8}.join{display:flex;gap:8px}.join input{flex:1;min-width:0;letter-spacing:2px;font-size:11px}.subtle{border:0;font-size:11px;color:#d5d9ac}#connection{color:#b6c09f;font-size:11px;margin:12px 0}details{border-top:1px solid #d6deac26;padding-top:12px;font-size:11px;color:#bac3ad}summary{cursor:pointer}details p{font-size:11px;line-height:1.8}footer{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#b4bda7;gap:20px}footer button{font-size:10px;letter-spacing:1px;border:0}.hidden{display:none!important}#hud{position:fixed;inset:0;pointer-events:none;z-index:3;text-shadow:0 2px 8px #000;font-family:"DM Sans","Avenir Next",Arial,sans-serif}.objective{position:absolute;top:26px;left:30px;max-width:380px;background:linear-gradient(90deg,#0f1d16d9,#0f1d1600);padding:16px 30px 16px 18px;border-left:2px solid #d2dca2}.objective small{color:#d0dea3;letter-spacing:2.5px}.objective h2{font-size:23px;margin:7px 0 6px;font-family:Georgia,serif}.objective p{font-size:12px;margin:0 0 8px;color:#cfd8c1}#objectives{font-size:11.5px;line-height:1.75;color:#e6dfb6}#topline{position:absolute;top:22px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center}#topline span{font-size:10px;letter-spacing:2.2px;background:#0f1d16b8;border:1px solid #d6dfac33;border-radius:30px;padding:8px 15px;color:#e8e2c0}#topline span:empty{display:none}#next-wave{color:#e8c98a}#boss{position:absolute;top:66px;left:50%;transform:translateX(-50%);width:min(520px,70vw);text-align:center}#boss small{letter-spacing:2.5px;color:#e6c29a}.bossbar{height:6px;background:#1c2a20;border:1px solid #c9a06a55;margin-top:6px;border-radius:3px;overflow:hidden}.bossbar i{display:block;height:100%;background:linear-gradient(90deg,#c9764f,#e8b06a);transition:width .25s}#feed{position:absolute;top:110px;left:50%;transform:translateX(-50%);text-align:center;font-size:11px;color:#cbd4b6}#feed p{margin:3px 0;opacity:.85}#feed b{color:#eee7c3}#feed i{color:#f0d48a;font-style:normal;letter-spacing:1px;font-size:9px}#banner{position:absolute;top:30%;width:100%;text-align:center;opacity:0;transform:translateY(-10px) scale(.96);transition:opacity .35s,transform .35s;pointer-events:none}#banner.show{opacity:1;transform:none}#banner b{display:block;font:normal clamp(34px,5vw,58px) Georgia,serif;letter-spacing:6px;color:#f0e6c2;text-shadow:0 4px 30px #000,0 0 40px #c9d47a55}#banner small{color:#dfc99a;letter-spacing:4px}#squad{position:absolute;top:26px;right:26px;text-align:right;font-size:11.5px;display:flex;flex-direction:column;gap:3px}#squad span{background:#0f1d16a8;padding:4px 10px;border-radius:4px;color:#dfe5cd}#squad b{color:#cfe09b;margin-left:8px;font-variant-numeric:tabular-nums}#squad .down b{color:#efb0a0}#squad .lost{opacity:.5}#minimap{position:absolute;right:25px;top:140px;width:180px;height:180px;opacity:.88;border:1px solid #c4cc9b50;border-radius:50%;box-shadow:0 8px 30px #0006}#objective-marker{position:absolute;left:0;top:0;opacity:0;transition:opacity .25s;text-align:center;will-change:transform}#objective-marker b{display:block;font:22px Georgia;color:#ffe6a8;text-shadow:0 0 14px #ffd98a99,0 2px 8px #000;animation:bob 1.8s ease-in-out infinite}#objective-marker span{font-size:9px;letter-spacing:1.5px;background:#0f1d16c9;border:1px solid #ffe6a844;padding:4px 9px;border-radius:20px;color:#f1e8c8;white-space:nowrap}@keyframes bob{50%{transform:translateY(-5px)}}#crosshair{position:absolute;left:50%;top:50%;width:26px;height:26px;transform:translate(-50%,-50%);transition:width .15s,height .15s}#crosshair i{position:absolute;background:#fffdeb;box-shadow:0 0 4px #000}#crosshair i:nth-child(1){left:50%;top:0;width:2px;height:7px;margin-left:-1px}#crosshair i:nth-child(2){left:50%;bottom:0;width:2px;height:7px;margin-left:-1px}#crosshair i:nth-child(3){top:50%;left:0;height:2px;width:7px;margin-top:-1px}#crosshair i:nth-child(4){top:50%;right:0;height:2px;width:7px;margin-top:-1px}#crosshair.wide{width:44px;height:44px}#hitmark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.6);font:34px Arial;color:#e6dda3;opacity:0;transition:opacity .1s,transform .1s}#hitmark.show{opacity:1;transform:translate(-50%,-50%) scale(1)}#hitmark.head{color:#ffd36b}#prompt{position:absolute;top:60%;width:100%;text-align:center;font-size:12px;letter-spacing:1.5px;color:#f3ecd2}#prompt:not(:empty)::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#d2df9c;margin-right:9px;vertical-align:middle}#channel{position:absolute;top:64.5%;left:44%;width:12%;height:4px;background:#17261a99;border-radius:2px;overflow:hidden}#channel i{height:100%;display:block;background:#d0df9e;width:0}.vitals{position:absolute;left:30px;bottom:30px;width:300px;background:linear-gradient(90deg,#0f1d16c9,#0f1d1600);padding:14px 18px;border-radius:6px}.hp-row{display:flex;align-items:center;gap:14px}.hp-row b{font:44px Georgia;color:#f3efd6;min-width:74px;font-variant-numeric:tabular-nums}.bars{flex:1;display:flex;flex-direction:column;gap:5px}.healthbar{height:8px;background:#1c2a22;border-radius:4px;overflow:hidden}.healthbar i{display:block;height:100%;background:linear-gradient(90deg,#9fbf6a,#d2df9c);transition:width .2s}.armorbar{height:4px;background:#1c2a22;border-radius:2px;overflow:hidden}.armorbar i{display:block;height:100%;background:#9fc4d3;transition:width .2s}.status-row{display:flex;justify-content:space-between;font-size:9.5px;letter-spacing:1.8px;color:#c2cbb0;margin-top:9px}#infection.hot{color:#f0b087;animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.45}}.infectionbar{height:3px;background:#1c2a22;margin-top:5px;border-radius:2px;overflow:hidden}.infectionbar i{display:block;height:100%;background:linear-gradient(90deg,#b7c97a,#d99a6a);transition:width .3s}.equipment{position:absolute;right:30px;bottom:30px;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:8px}#slots{display:flex;gap:5px}#slots span{font-size:9px;letter-spacing:1.5px;padding:5px 9px 5px 6px;border:1px solid #d6dfac33;border-radius:4px;background:#0f1d16a8;color:#b8c2aa;display:flex;gap:6px;align-items:center}#slots span.on{border-color:#d2dca2;color:#f3ecd2;background:#1d3324d6}#slots i{font-style:normal;font-size:8px;width:14px;height:14px;display:grid;place-items:center;border:1px solid #d6dfac55;border-radius:3px}#ammo{display:flex;align-items:baseline;gap:8px;background:linear-gradient(270deg,#0f1d16c9,#0f1d1600);padding:6px 14px;border-radius:6px}#ammo b{font:46px Georgia;color:#f3efd6;font-variant-numeric:tabular-nums}#ammo span{font-size:14px;color:#b8c1a7}#ammo em{font-style:normal;font-size:9px;letter-spacing:2px;color:#d0dea3;margin-left:8px}#ammo.low b{color:#f0b087}#items{display:flex;gap:5px}#items span{font-size:9px;letter-spacing:1px;padding:5px 8px 5px 5px;border-radius:4px;background:#0f1d16a8;border:1px solid #d6dfac22;color:#d8dcc2;display:flex;gap:6px;align-items:center}#items span.empty{opacity:.4}#items i{font-style:normal;font-size:8px;width:14px;height:14px;display:grid;place-items:center;border:1px solid #d6dfac55;border-radius:3px}#items b{color:#f0e6b8}.equipment small{letter-spacing:1.5px;color:#aab59b;font-size:9px}#damage{position:absolute;inset:0;box-shadow:inset 0 0 180px 50px #bc483a;opacity:0}#lowhp{position:absolute;inset:0;box-shadow:inset 0 0 220px 90px #5a1414;opacity:0;pointer-events:none}#down{position:absolute;top:40%;width:100%;text-align:center;background:#18231bbd;padding:20px;font:21px Georgia}#toast{position:fixed;z-index:10;left:50%;top:24px;transform:translateX(-50%);max-width:650px;text-align:center;background:#182b20ee;border:1px solid #d5dfac70;border-radius:5px;padding:16px 24px;opacity:0;pointer-events:none;transition:opacity .2s;line-height:1.6}#overlay{position:fixed;z-index:8;inset:0;display:flex;align-items:center;justify-content:center;background:#0a1a14b8;backdrop-filter:blur(9px);padding:30px}#panel{width:760px;max-width:100%;max-height:90vh;overflow:auto;padding:35px;background:#1b2b22;border:1px solid #c7d2a64d;border-radius:8px;box-shadow:0 30px 100px #0007}#panel>small{color:#c7d3a3}#panel>p{color:#bdc7b0}#panel .actions{display:flex;gap:10px;margin-top:24px}.recipe-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.recipe{padding:17px;border:1px solid #c9d6a32b;border-radius:4px}.recipe h3{font-size:20px;margin:0}.recipe p{font-size:11px;color:#bec9b1;min-height:34px}.recipe small{display:block;letter-spacing:.5px;color:#d8d0a1;margin-bottom:12px}.recipe button{width:100%;font-size:11px;padding:9px}.crew-row,.room-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #c9d6a32b;padding:12px 0}.room-row button{padding:9px}#map-overlay{position:fixed;z-index:9;inset:4vh 10vw;background:#19291ff5;border:1px solid #bfcca179;border-radius:8px;display:flex;flex-direction:column;padding:24px}#map-overlay header{display:flex;justify-content:space-between;align-items:center}#map-overlay h2{margin:5px 0;font-size:26px}#map-overlay canvas{min-height:0;flex:1;object-fit:contain;width:100%}#map-overlay p{font-size:11px;text-align:center;color:#c4cfaf}.result-coins{font:48px Georgia;color:#d5dea6}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:12px;border-bottom:1px solid #c9d6a329;font-size:12px}th{color:#b5c29f;font-weight:normal}@media(max-width:900px){#home{padding:20px}.home-content{flex-direction:column;align-items:flex-start;padding:30px 0;gap:25px}.title h1{font-size:90px}.expedition{width:100%}.story,.chapter-pills{display:none}footer{flex-wrap:wrap}.recipe-grid{grid-template-columns:1fr}.objective{max-width:290px;left:10px;top:10px}#squad{right:10px}#minimap{width:120px;height:120px;top:110px}.vitals{width:220px}#slots,#items{flex-wrap:wrap;justify-content:flex-end}#map-overlay{inset:2vh 3vw}.vitals{left:15px;bottom:15px}.equipment{right:15px;bottom:15px}nav{font-size:9px;letter-spacing:1px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
#team-chat{position:absolute;left:30px;bottom:155px;max-width:330px;font-size:11px;color:#d4dfbf}#team-chat p{margin:4px 0;background:#15251bac;padding:5px 9px;border-radius:3px}#team-chat b{color:#dee9b4;margin-right:8px}
#atlas-objectives{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 12px}#atlas-objectives span{font-size:11px;background:#273f31;padding:9px 13px;border:1px solid #b69d6550;border-radius:6px;color:#e6d3a3}#atlas-objectives b{display:inline-grid;place-items:center;border:1px solid #cfb576;border-radius:50%;width:22px;height:22px;margin-right:7px}

/* residents & jobs */
.npc-say{font-style:italic;font-size:15px;line-height:1.55;margin:0 0 12px;color:#efe6cf}
.npc-got{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#f3d27a;margin:0 0 12px}
.quest-card{border:1px solid #c9b47a55;border-radius:12px;padding:14px 16px;margin:6px 0 14px;background:#ffffff08;display:flex;flex-direction:column;gap:6px}
.quest-card small{font-size:9px;letter-spacing:2px;color:#bfd4b0}.quest-card b{font-size:15px}.quest-card span{font-size:12px;color:#d9d1b8}
#slots span.special{border-color:#f3a86b;color:#ffd9b0}

/* Compact dialogue stays above the equipment, leaving threats and health visible. */
#dialogue{position:absolute;left:50%;bottom:120px;width:min(660px,calc(100% - 32px));transform:translateX(-50%);padding:16px 20px;pointer-events:none;animation:dlg .18s ease-out}
#dlg-name{display:block;font:700 11px/1.2 'Courier New',monospace;letter-spacing:1.3px;color:#ecc0d0;margin:0 0 8px}
#dlg-text{margin:0;font:16px/1.5 'Avenir Next',Arial,sans-serif;color:#fff0d4;text-shadow:none}
#dlg-text.got{color:#c9dcae}#dlg-text.job{color:#f4d6a5}
#dlg-hint{margin-top:10px;font:11px/1.3 'Courier New',monospace;color:#ded0bd}
#dlg-hint b{display:inline-block;padding:2px 6px;border:1px solid #b69e8b;border-radius:3px;margin-right:4px;color:#fff0d4}
@keyframes dlg{from{opacity:0}to{opacity:1}}
@media(max-width:700px){#dialogue{bottom:135px;padding:12px 14px}#dlg-text{font-size:13px}}

#slots span.kit{border-color:#c9b47a88;color:#efe6cf}#slots span.kit b{margin-left:4px;color:#f3d27a}
#items .hint{font-size:10px;letter-spacing:1.5px;color:#f3d27a;text-transform:uppercase}
.pill{display:inline-block;border:1px solid #c9b47a66;border-radius:99px;padding:3px 10px;font-size:11px;margin:2px 4px 2px 0}
.recipe h3 small{font-size:11px;color:#f3d27a;margin-left:6px}
/* narrow windows: the horde readout would sit on the objective card, so it tucks under it on the left */
@media(max-width:900px){#topline{top:auto;bottom:auto;left:16px;transform:none;position:absolute;margin-top:0;top:calc(50px + var(--obj-h, 270px));flex-direction:column;align-items:flex-start;gap:6px}}

/* Gnomble's warm pixel panels, kept opaque enough to read in dark streets. */

:root{--cream:#fff0d4;--muted:#d1c0b3;--leaf:#e6b8c6;--dark:#282735}body{font-family:'Avenir Next',Arial,sans-serif}h1,h2,h3{font-family:'Avenir Next','Trebuchet MS',sans-serif;font-weight:700}h1{letter-spacing:-3px;line-height:.93}h1 em{font-style:normal;color:#e8b8c5}.intro{font-family:inherit;font-size:21px;font-weight:600}.film{background:linear-gradient(90deg,#161925b0,#1e213430 60%,#1b172cb0),linear-gradient(0deg,#1c1e30a0,transparent 55%)}button{border:2px solid #b49b86;border-radius:8px;box-shadow:0 3px 0 #655364;background:#fff1d817;color:#fff1d8;transition:background .12s,transform .12s}button:hover{background:#e9bdd233}button:active{transform:translateY(2px);box-shadow:0 1px 0 #655364}button:disabled{cursor:default}.primary{background:#e8b8c9;color:#422f43;border-color:#be8ea3;box-shadow:0 4px 0 #8b647a}.primary:hover{background:#f4d0dc}.expedition,#panel{background:#282736f5;border:3px solid #c5ac8d;border-radius:14px;box-shadow:0 6px 0 #786372,0 20px 55px #0005;backdrop-filter:none}.expedition>small,.eyebrow{color:#f1c9d4}input{border:2px solid #a79185;border-radius:7px;background:#1d202b;color:#fff1d8}.chapter-pills span{border:2px solid #c5ac8d70;border-radius:6px;color:#f3dfc9;background:#292d3c99}#difficulty .selected{background:#e8b8c92e;border-color:#e9b9ca}#difficulty button{font:13px 'Avenir Next',Arial,sans-serif}#difficulty small{color:#d8c8bd}.objective{background:#282736ed;border:2px solid #c5ac8d;border-radius:10px;box-shadow:3px 4px 0 #5d4b60;padding:12px 15px}.objective h2{font-family:'Avenir Next','Trebuchet MS',sans-serif;font-size:23px;letter-spacing:0}.objective p{color:#e5d5c5}.vitals,.equipment{filter:none}#dialogue{background:#2b2938f5;border:3px solid #c5ac8d;border-radius:12px;box-shadow:0 5px 0 #6b5367}#dlg-text{font-family:inherit;font-size:17px;line-height:1.5}#dlg-name{color:#ecc0d0}#map-overlay{background:#252735f5}#prompt{background:#292735e8;border:2px solid #bca48a;border-radius:8px;padding:9px 14px}#prompt:empty{display:none}#slots .slot{border-radius:6px;border-width:2px}#slots .slot.active{border-color:#efc3d4;background:#8f6b8644}.objective small{color:#e4b6ca}
@media(max-width:700px){.home-content{display:block;padding:12px 0}.title h1{font-size:66px}.title .intro{font-size:17px}.title .story,.chapter-pills{display:none}.expedition{width:100%;padding:20px;margin-top:25px}h1{margin:18px 0}.objective{left:10px;top:12px;max-width:250px}.objective h2{font-size:18px}.objective p{font-size:12px}footer>span{display:none}}

#prompt{width:max-content;max-width:calc(100% - 32px);left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.4px}#banner b,.hp-row b,#ammo b{font-family:inherit;font-weight:700}#banner b{letter-spacing:1px}

#hud.riding #crosshair,#hud.riding .equipment{display:none}#hud.riding #prompt{top:auto;bottom:28px}#hud.riding #channel{display:none}
