/* Nightfall / Aegis art direction: ink, oxidised steel, warm paper and cure green. */
:root{--ink:#edf1e3;--muted:#a3b6ba;--lime:#d1dfac;--panel:#10232a;--edge:#3d575e}body{font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(ellipse at 50% 0,#213b49,#080f17 70%)}header{background:#0b1821e8;border-color:#31474f;height:58px;padding:0 26px}.brand{letter-spacing:4px;font-size:14px}.brand b{color:#d4d6ad}main{padding:14px}#stage{border:1px solid #476068;border-radius:12px;box-shadow:0 28px 80px #0008}button{border-radius:6px;background:#233b47;color:#e4ede1;border:1px solid #4c6570;min-height:44px;font-size:13px;letter-spacing:.2px;padding:11px 16px;transition:background .16s,border-color .16s}button:hover{background:#355462;border-color:#9cb5ab}button.primary,.tabs .selected{background:#d6dfb4;color:#172a31;border-color:#e1e8c9}.primary:hover{background:#e8edcf}button:disabled{opacity:.55;cursor:not-allowed}kbd{font:600 10px Segoe UI,Arial,sans-serif;display:inline-block;background:#2c4350;border:1px solid #506975;border-radius:3px;padding:3px 6px;color:#e0e6d4;margin:2px 1px}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#a6c7c5}h1,h2,h3{font-family:Trebuchet MS,Segoe UI,sans-serif}h2{font-size:34px;letter-spacing:-1px}p{color:#b5c7c6}#overlay{padding:18px;background:#06121ba8;backdrop-filter:blur(7px)}.panel{max-width:1110px;padding:28px;background:linear-gradient(125deg,#18313af7,#0c1b28fa);border:1px solid #536f76;border-radius:12px;box-shadow:0 24px 80px #0009;scrollbar-width:thin;scrollbar-color:#5d777b #10232c}.row{gap:8px}.panel .small{font-size:11px}.settings{padding-top:13px;border-top:1px solid #42575c66;gap:16px}.settings label{font-size:11px}.settings input[type=range]{width:88px}.settings input[type=checkbox]{width:16px;height:16px}.titleLayout{display:grid;grid-template-columns:1.65fr 1fr;gap:30px}.titleCopy h1{font-size:clamp(48px,6.1vw,84px);line-height:.87;letter-spacing:-4px;margin:20px 0 17px;color:#f1eacf}.titleCopy h1 span{color:#c9d8ac}.titleCopy h1 em{font-size:17px;display:block;font-style:normal;letter-spacing:13px;margin-top:18px;color:#8bbab9}.titleTagline{font-size:20px;color:#dbe5d3;font-weight:500;line-height:1.25}.titleCopy>p:not(.titleTagline){max-width:470px;font-size:13px}.titleChapters{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.titleChapters>div{padding:16px;border:1px solid #46626b;background:#0b1d28aa;border-radius:8px}.titleChapters h3{font-size:15px;color:#e1e7d8;margin:10px 0 8px}.titleChapters p{font-size:12px;line-height:1.6;min-height:58px}.titleChapters button{padding:9px 11px;font-size:11px}.titleChapters .row{margin-top:12px}.titleCast{display:flex;flex-direction:column;justify-content:center}.castHero{position:relative;background:linear-gradient(135deg,#4b6666,#132b3d);border:1px solid #658080;border-radius:9px 9px 0 0;overflow:hidden;height:250px}.castHero img{width:100%;height:100%;object-fit:cover;object-position:center 25%;image-rendering:auto}.heroCaption{padding:13px 18px;background:#102734;border:1px solid #4b6972;border-top:none;border-radius:0 0 9px 9px}.heroCaption p{font-size:18px;font-weight:500;color:#dce4ce;line-height:1.35;margin:8px 0}.controlsCard{padding:18px 2px 0}.controlsCard>b{font-size:10px;letter-spacing:2px;color:#b2c7bb}.controlsCard p{font-size:11px;line-height:1.8}.titleFooter{margin-top:22px;padding-top:15px;border-top:1px solid #4b626b77;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:10px;color:#8fa6ad}.titleFooter button{min-height:36px;font-size:11px}.continueButton{min-width:210px}.shopHead{padding-bottom:12px;border-bottom:1px solid #425e68}.shopHead h2{font-size:28px;margin-bottom:0}.credits{font-size:29px;letter-spacing:-1px;color:#e0dbb0}.credits .small{font-size:9px;letter-spacing:1.2px;color:#a0b3b4}.missionBrief{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:15px 0;background:#25434b99;border:1px solid #517372;border-left:3px solid #a8c7ac;border-radius:5px;padding:12px 15px}.missionBrief strong{display:block;font-size:15px;margin-top:5px;color:#e2e8d8}.missionBrief p{font-size:11px;max-width:295px;margin:0;color:#c2d1c6}.bossBrief{border-color:#9c815b;background:#4c393333;border-left-color:#d5ae79}.bossBrief .eyebrow{color:#d5ae79}.workbench{grid-template-columns:215px 1fr;gap:18px}.labSheet{background:#0b1c28b0;border-color:#3b5660;border-radius:7px;padding:15px}.labDiagram{display:flex;align-items:center;gap:10px;margin:12px 0 18px}.labDiagram .castPortrait{width:66px;height:72px;object-fit:cover;border-radius:6px;border:1px solid #566e71}.labDiagram>span{font-size:8px;line-height:1.7;letter-spacing:1px;color:#a1b9b9}.labDiagram b{font-size:11px;color:#e1e8d3}.labSheet .statline{line-height:2.1}.bankNote{background:#29413870;padding:11px;border:1px solid #536858;border-radius:4px;font-size:11px;line-height:1.9;color:#b5cbb2}.guru{margin-top:18px;border-color:#7f9c92}.guru>b{font-size:10px;letter-spacing:1px}.guru p{font-style:italic}.tabs{gap:5px;border-color:#3d5c66;padding-bottom:10px;position:sticky;top:-28px;z-index:2;background:#142a34;padding-top:6px}.tabs button{flex:1;font-size:10px;letter-spacing:1.4px;min-height:40px;border-radius:4px}.shopGrid{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.card{position:relative;background:linear-gradient(145deg,#28414b,#102733);border:1px solid #4e6972;border-radius:7px;padding:15px;gap:9px;min-width:0;overflow:hidden}.card h3{font-size:16px;color:#edf0dc}.card p{font-size:12px;line-height:1.55;min-height:34px}.card .tag{font-size:10px;color:#b8d5bd}.card.unavailable{background:linear-gradient(145deg,#243740,#13252f);border-color:#3b525c}.card.unavailable .equipmentArt{opacity:.7}.card button{min-height:42px;border-color:#607e7e;background:#324c54;font-size:12px;margin-top:5px}.equipmentArt{height:68px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse,#8ab7a51a,transparent);border-bottom:1px solid #7f9c9629;padding-bottom:6px}.equipmentArt svg{height:60px;max-width:100%}.weaponPortrait{width:100%;height:72px;object-fit:contain}.equipmentArt .castPortrait{height:68px;width:72px;object-fit:cover;border-radius:6px;border:1px solid #7c9993}.weaponStats{display:flex;gap:5px;border-top:1px solid #5d7b7544;padding:9px 0 2px}.weaponStats span{flex:1;font-size:8px;letter-spacing:.7px;color:#9eb7b6}.weaponStats b{font-size:15px;display:block;color:#d2deca;margin-bottom:3px}.crewIdentity{display:flex;align-items:center;gap:12px}.crewIdentity .castPortrait{width:58px;height:66px;object-fit:cover;border:1px solid #5c7675;border-radius:5px}.crewIdentity h3{margin-bottom:5px}.crewCard select{width:100%;margin-top:7px;border:1px solid #617b7b;background:#122934;color:#e4edda;min-height:40px;padding:6px;font-size:12px;border-radius:4px}.xpTrack{height:5px;margin:8px 0;background:#071c27;border-radius:3px;overflow:hidden}.xpTrack>div{height:100%;background:#b4d2ad}.stickyActions{position:sticky;bottom:-28px;background:#10232bf7;border-top:1px solid #526969;padding:13px 0 4px;z-index:3}.stickyActions .primary{margin-right:auto;min-width:175px}.storyLead{display:flex;align-items:center;gap:25px}.storyPortrait{flex:0 0 150px;height:165px;border:1px solid #678982;background:#23414a;border-radius:8px;overflow:hidden}.storyPortrait .castPortrait,.storyPortrait svg{width:100%;height:100%;object-fit:cover}.storyLead h2{font-size:35px}.storyBody{font-size:16px;line-height:1.8;margin:22px 0;max-width:800px}.debriefStats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:25px 0}.debriefStats>div{border:1px solid #4c6a70;border-radius:6px;background:#0b2230;padding:20px 12px;text-align:center}.debriefStats b{display:block;font-size:32px;color:#d3e1b4;margin-bottom:8px}.debriefStats span{font-size:9px;letter-spacing:1px;color:#a7bebd}.incomeRow{display:flex;gap:24px;flex-wrap:wrap;font-size:12px;color:#b3c6bc;border-top:1px solid #45616a;padding-top:16px}.incomeRow b{color:#e6dfb1;margin-left:6px}#hud .hudBox{border-color:#617a7977;background:linear-gradient(140deg,#102733ed,#0a1b28de);border-radius:6px;box-shadow:0 4px 18px #0003;min-width:155px}#hud .hudBox strong{font-size:23px;letter-spacing:.2px;color:#e6ead5}#hud .hudBox label{font-size:9px;color:#bac9ba;letter-spacing:2px}#tools button{background:#112a37ed;border-color:#637c76;border-radius:6px;min-width:110px;color:#e0e9d6;box-shadow:0 4px 18px #0004}#tools button span{font-size:10px;color:#a3bcb7}#tools button.power{border-color:#a49a62;color:#e8ddb0}#toast{top:23%;border-radius:5px;border-color:#6e8f87;background:#0a202deb;color:#e3edcd;font-size:13px}footer{color:#8da3aa;font-size:10px;letter-spacing:.6px}
@media(max-width:1000px){.titleLayout{gap:20px;grid-template-columns:1.5fr 1fr}.titleChapters{gap:8px}.titleChapters>div{padding:12px}.titleCopy h1{font-size:60px}.castHero{height:210px}.panel{padding:20px}.workbench{grid-template-columns:175px 1fr;gap:12px}.labSheet{padding:11px}.card{padding:12px}.card h3{font-size:14px}.tabs{top:-20px}.stickyActions{bottom:-20px}.missionBrief{gap:10px}.shopHead h2{font-size:25px}}
@media(max-width:700px){header{height:44px;padding:0 10px}.brand{letter-spacing:2px;font-size:12px}.topBtns button{min-height:32px;padding:4px 8px}.panel{padding:15px}.titleLayout{grid-template-columns:1fr}.titleCast{display:none}.titleCopy h1{font-size:58px}.titleChapters{grid-template-columns:1fr 1fr}.titleChapters p{min-height:0}.titleTagline{font-size:18px}.titleFooter{flex-wrap:wrap;gap:8px}.titleFooter span{font-size:9px}.workbench{grid-template-columns:1fr}.labSheet{display:none}.shopGrid{gap:8px}.card{padding:10px}.card p{font-size:11px}.tabs{top:-15px}.tabs button{font-size:9px;letter-spacing:.5px}.missionBrief{align-items:start}.missionBrief strong{font-size:12px}.missionBrief p{max-width:150px;font-size:10px}.shopHead h2{font-size:22px}.credits{font-size:22px}.stickyActions{bottom:-15px;gap:6px}.stickyActions button{font-size:10px;padding:8px 10px}.stickyActions .primary{min-width:130px}.storyPortrait{flex-basis:90px;height:110px}.storyLead{gap:15px}.storyLead h2{font-size:26px}.storyBody{font-size:14px;line-height:1.7}.debriefStats{grid-template-columns:repeat(2,1fr);gap:8px}.debriefStats>div{padding:14px 8px}.debriefStats b{font-size:27px}.settings{gap:10px}.settings input[type=range]{width:70px}.equipmentArt{height:55px}.weaponPortrait{height:55px}.equipmentArt .castPortrait{height:55px;width:60px}}
@media(orientation:landscape) and (max-height:600px){header{height:34px}main{padding:3px}#stage{width:min(100%,calc((100svh - 42px)*1.88235))}#overlay{padding:6px}.panel{padding:15px}.titleLayout{grid-template-columns:1.7fr 1fr}.titleCopy h1{font-size:49px}.titleChapters p{min-height:0}.titleCast{display:flex}.castHero{height:150px}.heroCaption{padding:9px 12px}.heroCaption p{font-size:14px}.controlsCard{display:none}.titleTagline{font-size:15px}.titleChapters{margin-top:12px}.titleChapters>div{padding:10px}.titleFooter{margin-top:12px}.shopHead{top:-15px;z-index:4;background:#142a34}.workbench{grid-template-columns:150px 1fr}.labSheet{display:block}.labDiagram{display:none}.labSheet .statline{font-size:10px}.labSheet .guru{display:none}.tabs{top:50px}.card{padding:10px}.missionBrief{margin:10px 0;padding:8px 12px}.missionBrief p{max-width:260px}.equipmentArt{height:44px}.weaponPortrait{height:44px}.equipmentArt .castPortrait{height:44px;width:48px}.stickyActions{bottom:-15px}.stickyActions button{min-height:36px}#hud .hudBox{min-width:90px;padding:5px 8px}#hud .hudBox strong{font-size:14px}#hud .hudBox label{font-size:7px;letter-spacing:1px}#tools button{min-width:80px;padding:6px 9px;min-height:38px;font-size:10px}#tools button span{font-size:8px}#toast{font-size:10px;padding:6px 10px}.storyBody{font-size:13px;margin:12px 0}.storyPortrait{flex-basis:90px;height:100px}.storyLead h2{font-size:25px}}
@media(max-width:600px) and (orientation:portrait){#stage{min-height:520px;height:calc(100svh - 115px)}canvas{top:22%}#hud .hudBox{min-width:0;padding:6px}#hud .hudBox strong{font-size:13px}#hud .hudBox label{font-size:7px;letter-spacing:.6px}#hud{gap:5px}#tools{gap:6px}#tools button{min-width:84px;min-height:46px;font-size:11px}.titleChapters{grid-template-columns:1fr}.titleChapters button{font-size:12px}.titleCopy>p:not(.titleTagline){font-size:12px}.titleCopy h1{font-size:54px}.shopGrid{grid-template-columns:1fr}.card p{min-height:0}.missionBrief{flex-direction:column}.missionBrief p{max-width:none}.stickyActions{flex-wrap:wrap}.stickyActions .primary{width:100%;margin:0}.storyLead{align-items:start}.storyPortrait{flex-basis:75px;height:96px}.storyLead h2{font-size:24px}.titleFooter{display:block}.titleFooter button{margin-top:8px}#toast{top:15%;font-size:11px}.incomeRow{gap:12px}.shopHead{align-items:start}.shopHead h2{font-size:21px}.credits .small{font-size:7px}.weaponStats span{font-size:9px}}

.journalCast{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.journalCast article{display:flex;gap:14px;padding:14px;background:#0b2230;border:1px solid #4a666f;border-radius:6px}.journalCast img{width:80px;height:100px;object-fit:cover;border:1px solid #607d7e;border-radius:5px}.journalCast h3{margin:8px 0;font-size:17px}.journalCast p{font-size:12px;margin:0}.journalCast .eyebrow{font-size:8px;letter-spacing:1px}@media(max-width:700px){.journalCast{grid-template-columns:1fr}.journalCast img{width:65px;height:85px}}

#tools{flex-wrap:wrap;gap:5px}#tools button[id^=dose_]{font-size:10px;padding:8px;min-height:38px}

/* Art preview: equipment images use their real proportions. */
.equipmentArt .castPortrait{height:64px;width:100%;object-fit:contain}.equipmentArt{height:64px}.journalCast .castPortrait{object-fit:contain}

/* Immediate embedded hero source avoids the asynchronous sprite fallback on first load. */
.castHero img{object-position:center top}

.castHero img{object-fit:contain;object-position:center bottom;}
