@font-face{font-family:Fallout;src:url('/assets/fallout.ttf')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#100f0c;color:#cbd49a;font-family:Fallout,'Courier New',monospace;font-size:17px}button,input,select{font:inherit}button{min-height:44px;padding:9px 18px;color:#d3dca6;background-color:#3b4030;background-image:var(--button);background-size:auto;border:1px solid #837f5a;text-shadow:1px 1px #000;cursor:pointer;box-shadow:inset 0 0 8px #0008}button:hover{filter:brightness(1.25)}button:active{transform:translateY(1px);filter:brightness(.85)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #d5ce75;outline-offset:3px}button:disabled{opacity:.45;cursor:default}button.primary{color:#e0d18a;border-color:#b5a968}input,select{background:#181f16;color:#d4d6a8;border:1px solid #717653;padding:8px;max-width:150px;min-height:44px}input[type=checkbox]{width:22px;height:22px;min-height:22px;vertical-align:middle;accent-color:#99b574}label{display:inline-flex;gap:8px;align-items:center}h1,h2,p{margin:0}h1{font-size:30px;line-height:1.15;color:#ded9ac;font-weight:normal}h2{font-size:21px;color:#d5c88d;font-weight:normal}p{line-height:1.5}small,.muted{color:#adb18f}.note{font-size:15px;line-height:1.45}.lead{font-size:24px;color:#d1b578}.eyebrow{font-size:13px;letter-spacing:3px;color:#bfbc87}.game-title{font-family:Fallout,serif;letter-spacing:7px;font-size:clamp(36px,5vw,64px);color:#dfd2a6;text-shadow:3px 3px #000;margin:5px 0}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.actions.vertical{flex-direction:column;align-items:stretch}.panel-head{padding-bottom:12px;border-bottom:1px solid #626a43;margin-bottom:14px}.panel-head p{margin-top:6px}.panel{width:min(950px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;background:#171f15f7;border:24px solid transparent;border-image:var(--frame) 30 / 24px / 0 repeat;box-shadow:0 15px 60px #000c;padding:20px;display:flex;flex-direction:column;gap:16px;overscroll-behavior:contain}.panel.menu{width:min(1020px,calc(100vw - 32px));background:linear-gradient(90deg,#11190ff9,#11190fe0);border:1px solid #77765c;border-image:none;padding:30px}.menu-overlay:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#000b,#0005),var(--menu) right center/cover no-repeat;z-index:-1;image-rendering:pixelated}#overlay{position:fixed;inset:0;background:#03080399;display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);z-index:10;isolation:isolate}#overlay[hidden],#hud[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none;user-select:none}.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.class-card{padding:12px;border:1px solid #565b3d;background:#10180fe8;display:flex;flex-direction:column;gap:8px}.class-card.selected{border-color:#d2ba79;box-shadow:inset 0 0 30px #9fa85d17}.class-card p{font-size:15px}.class-card button{margin-top:auto}.class-preview{height:100px;width:130px;align-self:center;image-rendering:pixelated}.menu-controls{display:flex;gap:20px;flex-wrap:wrap}.upgrade-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.upgrade-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:18px 12px;background:#152010;border:1px solid #858056;min-width:0}.upgrade-card p{font-size:17px}.upgrade-card button{margin-top:auto;width:100%}.upgrade-card .item-icon{width:70px;height:55px}.item-icon{object-fit:contain;width:58px;height:45px;image-rendering:pixelated}.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.shop-card{padding:12px;border:1px solid #68684b;display:grid;grid-template-columns:60px 1fr;gap:8px;align-items:center}.shop-card p,.shop-card button{grid-column:1/-1}.shop-card p{font-size:15px}.companion{padding:12px;border:1px solid #4e5e3e;display:flex;flex-direction:column;gap:10px}#hud{position:fixed;inset:0;pointer-events:none;z-index:3}#hud button{pointer-events:auto}.topbar{position:absolute;top:max(10px,env(safe-area-inset-top));left:14px;right:14px;display:flex;justify-content:space-between;gap:10px;text-shadow:2px 2px #000;background:#121b10bd;border-bottom:1px solid #768160;padding:8px 12px;font-size:17px}.region{color:#e0d49b}.console{position:absolute;bottom:max(0px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:640px;max-width:100%;min-height:99px;background:#25291f var(--hud) center bottom/640px 99px no-repeat;display:flex;gap:20px;align-items:center;padding:14px 18px}.status-block{background:#101b12f5;padding:6px 9px;display:flex;flex-direction:column;gap:4px;min-width:175px}.status-block strong{font-weight:normal;color:#b9e09c}.status-block small{font-size:13px}.status-block progress{width:100%;height:8px;accent-color:#87b457}.hud-actions{display:flex;gap:6px;flex:1;flex-wrap:wrap}.hud-actions button{font-size:15px;padding:8px 12px}.objective{position:absolute;top:65px;left:18px;max-width:calc(100% - 135px);font-size:15px;text-shadow:1px 1px #000;background:#111a10b8;padding:8px;border-left:2px solid #bf9f63}.ally-status{position:absolute;bottom:112px;left:14px;font-size:15px;color:#bee097;text-shadow:2px 2px #000}#toast{position:fixed;left:50%;top:25%;transform:translateX(-50%);max-width:min(600px,85vw);padding:12px 20px;background:#172012ee;border:1px solid #afa56c;opacity:0;pointer-events:none;z-index:30;transition:opacity .2s;text-align:center}#toast.visible{opacity:1}.inventory-content{display:grid;grid-template-columns:350px 1fr;gap:20px}.paperdoll{background:var(--inventory) center top/100% auto no-repeat;min-height:275px;position:relative;padding-top:15px;display:flex;align-items:center;flex-direction:column}.doll-preview{width:140px;height:145px;margin-left:145px}.equip-zone{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#131a11ed;border:1px solid #726849;padding:6px 8px;font-size:13px;width:100%}.equip-zone button{font-size:13px;padding:4px 8px}.inventory-list{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow:auto}.inventory-item{display:flex;gap:10px;align-items:center;padding:6px;background:#11190e;border:1px solid #505d3a}.inventory-item.selected{border-color:#c9b575}.inventory-item button{flex:1}.comparison{border:1px solid #7d8151;padding:12px;display:flex;flex-direction:column;gap:10px}.bestiary-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.bestiary-entry{padding:12px;background:#0e180de0;border:1px solid #4c6040}.bestiary-entry canvas{float:left;image-rendering:pixelated}.bestiary-entry p{font-size:15px}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid #3a4b2b;text-align:left;padding:8px;font-weight:normal}td{color:#d1bb83}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}canvas{image-rendering:pixelated}
@media(max-width:650px){html,body{font-size:16px}.panel{border-width:16px;border-image-width:16px;padding:10px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px);gap:12px}.panel.menu{padding:18px}.game-title{letter-spacing:3px}.eyebrow{font-size:11px;letter-spacing:1px}.class-grid{grid-template-columns:1fr}.class-card{display:grid;grid-template-columns:65px 1fr;gap:6px 10px}.class-preview{grid-row:1/4;width:65px;height:70px}.class-card h2,.class-card p{grid-column:2}.class-card .note{display:none}.class-card button{grid-column:1/-1}.class-card p{font-size:14px}.class-card h2{font-size:19px}.class-card{padding:8px}.menu .lead{font-size:19px}.menu .note{font-size:13px}.menu-controls{gap:8px;justify-content:space-between}.menu-controls input{width:100px}.menu-controls select{max-width:110px}.menu .actions{gap:6px}.menu .actions button{flex:1;font-size:14px;padding:8px}.upgrade-grid{grid-template-columns:1fr;gap:8px}.upgrade-card{display:grid;grid-template-columns:44px 1fr 80px;padding:9px;gap:5px 8px;text-align:left;align-items:center}.upgrade-card .item-icon{width:42px;height:40px;grid-row:1/3}.upgrade-card h2{font-size:18px;grid-column:2;grid-row:1}.upgrade-card p{font-size:14px;grid-column:2;grid-row:2;line-height:1.35}.upgrade-card button{grid-column:3;grid-row:1/3;min-width:75px;padding:8px}.panel.choices{gap:8px}.choices .panel-head{margin-bottom:0;padding-bottom:8px}.choices h1{font-size:25px}.choices .panel-head p{font-size:14px}.topbar{left:6px;right:6px;font-size:14px;padding:8px}.console{padding:10px 8px;gap:8px;background-color:#25291f;min-height:104px;background-size:640px 99px;border-top:2px solid #7e7d57}.status-block{min-width:125px;font-size:14px;padding:5px}.status-block small{font-size:11px}.hud-actions{gap:4px}.hud-actions button{font-size:14px;min-height:44px;padding:7px 9px}.objective{font-size:12px;top:57px;left:8px;max-width:calc(100% - 112px);padding:6px}.inventory-content{grid-template-columns:1fr;gap:12px}.paperdoll{width:300px;max-width:100%;margin:auto;min-height:240px}.doll-preview{height:125px;margin-left:110px}.inventory-list{max-height:240px}.shop-grid,.bestiary-list{grid-template-columns:1fr}.shop-card{padding:8px}.panel-head h1{font-size:26px}.panel .actions button{flex:1}.ally-status{bottom:115px;font-size:13px}}
@media(max-height:500px) and (min-width:500px){.upgrade-grid{grid-template-columns:repeat(3,1fr)}.upgrade-card{display:flex;gap:6px;padding:8px}.upgrade-card .item-icon{width:40px;height:30px}.upgrade-card h2{font-size:17px}.upgrade-card p{font-size:14px}.upgrade-card button{min-height:44px;padding:8px}.choices h1{font-size:24px}.panel.choices{padding:8px;gap:8px}.choices .panel-head{margin-bottom:0;padding-bottom:6px}.choices .panel-head p{font-size:13px}.console{min-height:70px;padding:6px 14px;width:620px}.status-block{font-size:13px}.status-block small{font-size:11px}.hud-actions button{font-size:13px}.topbar{font-size:13px;padding:5px}.objective{top:44px;font-size:12px}.class-preview{display:none}.class-grid{grid-template-columns:repeat(3,1fr)}.class-card{display:flex}.class-card .note{display:none}.menu .note{font-size:12px}.panel.menu{gap:10px;padding:18px}.game-title{font-size:36px}.menu .lead{display:none}}

.abilitybar{position:absolute;bottom:112px;left:14px;display:flex;gap:6px;align-items:center}.ability-slot{width:46px;min-width:46px;height:46px;padding:2px}.ability-slot .item-icon{width:34px;height:34px}.ability-empty{width:44px;height:44px;border:1px solid #65704c;background:#131c10c9;display:flex;align-items:center;justify-content:center;font-size:12px;color:#a5aa81}.ally-status{bottom:168px}@media(max-height:500px){.abilitybar{bottom:80px}.ally-status{bottom:134px}}

.console:before{content:'';position:absolute;left:70%;top:15%;width:15%;height:70%;background:#1b2317;box-shadow:inset 0 0 8px #080d07;pointer-events:none}.status-block,.hud-actions{position:relative;z-index:1}@media(max-width:650px){.console:before{left:auto;right:0;width:64px}}

.escape-action{width:94px}.console{pointer-events:auto}.abilitybar{bottom:calc(var(--console-height,104px) + 8px)}.ally-status{bottom:calc(var(--console-height,104px) + 64px)}

button{background-image:none;border-image:var(--button) 8 / 8px / 0 repeat}

@media(max-width:650px){.console:before{left:60%;right:0;width:40%}}

/* Menu controls share the widest natural label, without stretching their cards. */
.menu button{width:var(--menu-button-width,max-content);max-width:100%;align-self:center;justify-self:center}
.menu .actions{justify-content:center}
.menu .actions button{flex:0 0 auto}

/* Native frame corners scale equally on both axes; edges repeat, never stretch.
   Interiors use solid colors instead of stretching a complete source dialog. */
button{background-color:#34372a}
.panel.pause{width:min(460px,calc(100vw - 32px))}
.panel.end{width:min(780px,calc(100vw - 32px))}
.pause .actions.vertical{align-items:center}
.panel.pause button,.panel.end button{width:var(--menu-button-width,max-content);max-width:100%;align-self:center;flex:0 0 auto}
.class-preview{height:auto;aspect-ratio:180 / 140}
.doll-preview{height:auto;aspect-ratio:230 / 240}

.inspection-window[hidden]{display:none}.inspection-window{position:fixed;right:12px;top:12px;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 24px);z-index:60;background:#10190ff7;color:#dbd6a6;border:2px solid #a29562;box-shadow:0 10px 40px #000b;padding:10px;display:flex;flex-direction:column;gap:8px;font-size:14px;pointer-events:auto}.inspection-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.inspection-head button{font-size:13px;min-height:40px;padding:6px;flex:0 0 auto}.inspection-scroll{overflow:auto;overscroll-behavior:contain}.inspection-window table{table-layout:fixed;font-size:13px}.inspection-window td,.inspection-window th{overflow-wrap:anywhere;padding:6px;vertical-align:top}.inspection-window thead{position:sticky;top:0;background:#1c2817}.inspection-window th:first-child{width:38%}.inspection-window p{font-size:12px;line-height:1.45;margin:10px 0}.dps-row{background:#354326}.upgrade-category{font-size:12px;color:#b8b379;text-transform:uppercase}.inspect-action{font-size:12px;min-height:32px;padding:4px 8px}.primary-weapon-slot{width:46px;height:46px;min-width:46px;padding:2px;margin-right:10px;border-color:#d2bf7d}.primary-weapon-slot .item-icon{width:34px;height:34px}.gear-label{font-size:10px;color:#c4bd96;writing-mode:vertical-rl}.ability-slot{position:relative}.tool-rank{position:absolute;right:1px;bottom:0;background:#10190fe8;padding:0 3px;font-size:11px}.upgrade-card{position:relative}.inventory-item .inspect-action{flex:0 0 auto}.skill-row{padding:8px;border:1px solid #50613c}
@media(max-width:650px){.inspection-window{top:auto;bottom:8px;right:8px;width:calc(100vw - 16px);max-height:70dvh}.inspection-head strong{font-size:14px}.upgrade-card .upgrade-category{grid-column:2;grid-row:auto;font-size:10px}.upgrade-card .inspect-action{grid-column:3;grid-row:auto}.upgrade-card{grid-template-columns:40px 1fr 78px}.upgrade-card h2,.upgrade-card p{grid-row:auto}.upgrade-card>button.primary{grid-row:1/4}.abilitybar{gap:4px;left:8px}.primary-weapon-slot{margin-right:3px}.inventory-item{flex-wrap:wrap}.inventory-item .inspect-action{margin-left:auto}}

.inspection-head button{pointer-events:auto}

.inspection-head button{pointer-events:inherit}
@media(max-height:500px){.choices .upgrade-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.choices .upgrade-card{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:14px 32px 42px 34px;padding:7px;gap:3px 5px;align-items:center;text-align:left}.choices .upgrade-card .item-icon{grid-column:1;grid-row:1/3;width:32px;height:34px}.choices .upgrade-card .upgrade-category{grid-column:2;grid-row:1;font-size:9px}.choices .upgrade-card h2{grid-column:2;grid-row:2;font-size:14px;line-height:1.1;margin:0}.choices .upgrade-card p{grid-column:1/-1;grid-row:3;font-size:11px;line-height:1.2;max-height:40px;overflow:auto;margin:0}.choices .upgrade-card .inspect-action{grid-column:1/-1;grid-row:4;justify-self:start;min-height:32px;font-size:11px;padding:3px 5px;width:48%;min-width:0}.choices .upgrade-card>button.primary{grid-column:1/-1;grid-row:4;justify-self:end;min-height:32px;font-size:12px;padding:3px 5px;width:48%;min-width:0}.choices .panel-head h1{font-size:22px}.choices .panel-head p{font-size:12px}.choices .panel-head{padding-bottom:4px}}

.upgrade-grid.two-choices{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:650px) and (min-height:501px){.upgrade-grid.two-choices{grid-template-columns:1fr}}
.rarity-label{display:block;margin:8px 0;font-size:13px;color:#d6d4b0}
.rarity-uncommon{color:#9fd987}.rarity-rare{color:#8ec4ff}.rarity-epic{color:#d5a6f5}.rarity-legendary{color:#ffd778}
.shop-card .rarity-label,.upgrade-card .rarity-label{grid-column:1/-1;width:100%;min-width:0}
@media(max-height:500px){.choices .upgrade-card .rarity-label{grid-row:5;font-size:10px;margin:2px 0}}

.upgrade-category .rarity-label{display:inline;width:auto;grid-column:auto;grid-row:auto;margin:0;font-size:inherit}

#hud{--xp-height:20px}
.xp-strip{position:absolute;left:0;right:0;bottom:0;height:calc(var(--xp-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#10190f;box-shadow:0 -1px #7f905b;pointer-events:auto}
.xp-progress{display:block;appearance:none;-webkit-appearance:none;width:100%;height:var(--xp-height);margin:0;border:0;background:#172012;color:#879f50;accent-color:#879f50}
.xp-progress::-webkit-progress-bar{background:#172012}.xp-progress::-webkit-progress-value{background:#879f50}.xp-progress::-moz-progress-bar{background:#879f50}
.xp-label{position:absolute;top:0;left:0;right:0;text-align:center;font-size:12px;line-height:var(--xp-height);color:#f0edc3;text-shadow:1px 1px #000;white-space:nowrap;pointer-events:none}
.console{bottom:calc(var(--xp-height) + env(safe-area-inset-bottom))}
.abilitybar{bottom:calc(var(--console-height,104px) + var(--xp-height) + env(safe-area-inset-bottom) + 8px)}
.ally-status{bottom:calc(var(--console-height,104px) + var(--xp-height) + env(safe-area-inset-bottom) + 64px)}

.inspection-head{flex-shrink:0}.inspection-scroll{min-height:0}
