/* Nightwatch: touch-first, full-screen game presentation. */
:root{--bg:#07101e;--panel:#101c2c;--line:#9cc9e626;--text:#eef4ff;--muted:#a2b5cf;--mint:#73e4e0;--gold:#f3c67e;--amber:#ffa46b;--cyan:#7ceaff;--safe-bottom:env(safe-area-inset-bottom,0px)}
html,body{height:100%;overscroll-behavior:none}body{overflow:hidden;background:#07101e;user-select:none;-webkit-user-select:none;touch-action:manipulation}button{touch-action:manipulation}#app{height:100dvh;min-height:0;background:#07101e;overflow:hidden}#header{position:absolute;top:0;left:0;right:0;height:78px;border:0;padding:0 30px;background:linear-gradient(#07101ed9,transparent);z-index:8}.brand-mark{border-color:#86dfff70;background:#73c9ff0a;color:#a9e9ff;border-radius:8px;transform:rotate(0deg)}.brand{font-size:18px;letter-spacing:4px}.brand small{color:#7e9fbd;letter-spacing:4px}.header-center{font-size:10px;color:#92b4ce;letter-spacing:2px}.header-actions{gap:8px}.icon-button{background:#10253b77;border-color:#9ac4e323;border-radius:50%;width:38px;height:38px;color:#c0d4e7;backdrop-filter:blur(10px)}.icon-button:hover{background:#34517188;border-color:#89dfff66}.score-pill{color:#f6cf8b;border:0;font-size:14px}.mini-role{display:none}
.is-playing #main,.phase-plan #main,.is-lobby #main{position:absolute;inset:0;display:block;min-height:0;height:auto;max-height:none;overflow:hidden}#scene-stage,.phase-plan .scene-stage,.phase-night .scene-stage,.phase-emergency .scene-stage,.phase-result .scene-stage{position:absolute;inset:0;height:100%;min-height:0;width:100%;background:#07101e}.scene-vignette{background:radial-gradient(ellipse at 50% 45%,transparent 30%,#050c1e99 100%),linear-gradient(0deg,#050b16b0,transparent 30%,transparent 75%,#050b1677)}#scene canvas{opacity:1;filter:none}.phase-plan #scene canvas{opacity:.6;filter:blur(4px)}.phase-night #scene canvas,.phase-emergency #scene canvas{opacity:.8;filter:none}.phase-result #scene canvas{opacity:.7;filter:blur(2px)}#scene-top{top:90px;left:30px;right:30px}.scene-location{font-size:10px;letter-spacing:1px;color:#bdd9ee;border:1px solid #91cdfa30;padding:8px 11px;background:#0b1a2e88;backdrop-filter:blur(8px);align-self:start;border-radius:3px}.scene-location small{color:#7cb0d5}.scene-time{color:#e8f4ff}.scene-time b{font-size:34px;font-weight:300;letter-spacing:4px;text-shadow:0 0 30px #68bfff44}.scene-time span{font-size:8px;color:#7a9dbb}.live-dot{background:#7fe5dc;box-shadow:0 0 12px #7fe5dc77}#scene-controls{right:30px;bottom:190px}.camera-tools{border-color:#83c2f42a;background:#0b1c30a0;padding:3px;border-radius:30px}.camera-tools .icon-button{border:0;background:none;width:30px;height:30px}#scene-bottom{left:50%;transform:translateX(-50%);bottom:35px}.explore-hint{display:flex;align-items:center;gap:7px;font-size:10px;color:#a4b8cc;white-space:nowrap}.explore-hint i{height:12px;width:1px;background:#ffffff21;margin:0 7px}kbd{border-color:#b4d7f244;background:#142b4488;color:#d7eaff;font-size:9px;padding:4px 7px}
#left-panel,.phase-plan #left-panel{position:absolute;inset:144px auto 0 30px;width:270px;height:auto;padding:0;border:0;background:none;overflow:visible;pointer-events:none;display:block}.mission-hud{pointer-events:auto;border-left:2px solid #efbf79;padding:5px 0 5px 16px;background:linear-gradient(90deg,#071324bb,transparent)}.mission-kicker{font-size:9px;color:var(--gold);letter-spacing:2px}.mission-hud h2{font-size:17px;font-weight:600;letter-spacing:1px;margin:11px 0 8px}.mission-hud p{color:#99aec7;font-size:11px;max-width:230px;line-height:1.8}.mission-progress{display:flex;align-items:center;gap:4px;margin-top:14px;max-width:215px}.mission-progress i{height:4px;width:20px;background:#a1c8df22;transform:skewX(-20deg)}.mission-progress i.seen{background:#f2b86b}.mission-progress i.done{background:#81e5da;box-shadow:0 0 8px #81e5da55}.mission-progress b{font-size:10px;color:#cce3ef;margin-left:10px;font-weight:500}.mission-next{display:flex;align-items:center;gap:10px;padding:9px 13px;background:#e9bb74;color:#102033;font-size:11px;border-radius:3px;margin-top:16px}.mission-next .icon{width:14px;height:14px}.patient-hud{pointer-events:auto;position:absolute;top:190px;left:0;display:flex;align-items:center;gap:10px;width:220px;background:linear-gradient(90deg,#0e2035dd,#0e203544);border:1px solid #8acefa21;padding:12px;border-radius:6px;text-align:left;backdrop-filter:blur(5px)}.patient-hud b{font-size:11px;display:block}.patient-hud b small{font-size:9px;color:#83a4c1;font-weight:400;margin-left:5px}.patient-hud span{font-size:9px;color:#99acc4;display:block;margin-top:5px}.patient-hud strong{color:#f5c47e;margin-left:8px;font-size:13px;font-weight:500}.vital-icon{width:27px;height:27px;color:#77e4d3;display:grid;place-items:center}.vital-icon .icon{width:20px;height:20px;animation:heartbeat 2s infinite}.ecg{width:45px;height:25px;stroke:#7eebdc;fill:none;stroke-width:2;margin-left:auto;filter:drop-shadow(0 0 4px #77ecda);stroke-dasharray:150;animation:ecg-run 3s linear infinite}.player-hud{position:fixed;bottom:24px;left:30px;display:flex;gap:11px;align-items:center;pointer-events:auto}.player-hud .portrait{width:45px;height:51px;border-radius:8px;border-color:#8dd6ff66;box-shadow:0 0 22px #6db8ff18}.player-hud small{display:block;font-size:8px;letter-spacing:1px;color:#8db6d3}.player-hud b{font-size:13px;display:block;margin-top:3px}.player-hud span{font-size:9px;color:#92adc5;margin-top:4px;display:block}.portrait{background:#183248;border-color:#8bb3cf40}
.phase-plan #left-panel,.phase-night #left-panel,.phase-emergency #left-panel,.phase-result #left-panel{display:none}#right-panel{display:none}.clue-open #right-panel{display:block;position:absolute;right:28px;top:145px;bottom:165px;max-height:620px;width:300px;border:1px solid #79c4ef3b;border-top:2px solid #a1e1ff;background:linear-gradient(135deg,#14283fed,#09172af2);padding:24px;border-radius:8px;backdrop-filter:blur(20px);box-shadow:0 20px 70px #0006;overflow:auto;z-index:6;animation:drawer-in .3s ease}.clue-open .mission-hud{opacity:.65}.clue-open #footer{opacity:.25;pointer-events:none}.back-link{margin-bottom:25px;font-size:11px;color:#94cfef}.panel-heading{font-family:var(--sans);font-size:23px;font-weight:700;letter-spacing:1px;color:#f0f7ff}.clue-description{font-size:12px;line-height:2;color:#b6cbe1}.insight-card{border-color:#79c4ef20;background:#62c9ff08;border-radius:4px}.insight-card>span{color:#85dfff;font-size:11px}.insight-card p{color:#9db9d5;font-size:11px}.assigned{color:#89b4d6}.assigned b{color:#d5e8f6}.text-link{color:#9ccce9}.button{border-radius:4px;min-height:46px;font-size:12px}.button.primary{background:linear-gradient(115deg,#f5cf91,#dca35c);border-color:#fbd79c;color:#172434;box-shadow:0 4px 25px #e7b56822}.button.primary:hover:not(:disabled){background:linear-gradient(115deg,#ffe2ac,#f2be7e);box-shadow:0 0 32px #e7b56844}.button.ghost{border-color:#79b1db40;color:#c1d8ec;background:#152a3c55}.button.ghost:hover{background:#244460aa;border-color:#8bd8ff}.button.success{background:#6adccc0c;border-color:#6adccc55;color:#82e4d5}.eyebrow{color:#e8bc79}.tag.amber{color:#ffca8a;border-color:#ffaa5a44}.clue-next{border-color:#9dcbea22}
.hotspot{width:34px;height:34px;border-radius:7px;border-color:#ffd39d;background:#14223bdd;box-shadow:0 0 0 5px #ffbe6d10,0 0 24px #f9b96033;backdrop-filter:blur(4px)}.hotspot span{font-size:10px;color:#ffdb9e}.hotspot:before{content:'';position:absolute;inset:-7px;border:1px solid #ffd39d35;border-radius:10px;animation:beacon 3s infinite}.hotspot:hover,.hotspot.selected{background:#f2c37e;box-shadow:0 0 0 8px #ffc26622,0 0 35px #f9b96066}.hotspot:hover span,.hotspot.selected span{color:#12233b}.hotspot.fixed{background:#103c42d9;border-color:#75ecd9;box-shadow:0 0 20px #75ecd933}.hotspot.fixed span{color:#b3fff0}.hotspot.fixed:before{border-color:#75ecd933}.hotspot.fixed span:after{background:#7ce7d1;border-color:#185c57;color:#103e39}.pin-name{position:absolute;white-space:nowrap;font-size:9px;font-weight:400;color:#e7edfa;top:41px;padding:5px 8px;background:#061326dc;border:1px solid #92ccf32b;border-radius:4px;opacity:0;transform:translateY(-3px);transition:.2s;pointer-events:none}.hotspot:hover .pin-name,.hotspot.selected .pin-name,.hotspot.nearby .pin-name{opacity:1;transform:none}.hotspot.hint{animation:scan-pin .8s 6}.player-nameplate{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:5px;font:8px var(--sans);letter-spacing:1px;color:#7de6ff;pointer-events:none;z-index:1;text-shadow:0 1px 3px #000}.player-nameplate span{height:4px;width:4px;background:#7de6ff;border-radius:50%;box-shadow:0 0 8px #7de6ff}.player-nameplate b{font-size:9px;font-weight:500;color:#e4f6ff;letter-spacing:.5px;background:#07172b99;padding:4px 6px;border-radius:3px}
#footer{position:absolute;left:0;right:0;bottom:0;height:90px;border:0;padding:0 30px;background:linear-gradient(transparent,#050e1ee6);pointer-events:none;z-index:7}#footer button,#footer .touch-controls{pointer-events:auto}.chapter-track{gap:16px}.chapter-node{color:#6488a7}.chapter-node>b{font-size:10px;font-weight:500}.chapter-node.active{color:#ffd18c}.chapter-node>span{border-color:#83b3d438;background:#07172ba6;border-radius:4px}.chapter-node.complete{color:#80d8d6}.footer-action .button{min-width:165px}.autosave{color:#799aba;font-size:10px;letter-spacing:1px}.touch-controls{position:absolute;inset:auto 30px 90px 30px;height:130px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none!important}.joystick-zone{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:10px;touch-action:none}.joystick-zone>span{font-size:9px;letter-spacing:3px;color:#8bb3d4}.joystick-base{width:108px;height:108px;border-radius:50%;background:radial-gradient(circle,#76bbff0a,#6cadf416);border:1px solid #83cfff35;box-shadow:inset 0 0 25px #9bd1ff08,0 0 0 8px #78bafa04;display:grid;place-items:center;position:relative;touch-action:none;cursor:grab}.joystick-thumb{width:45px;height:45px;border-radius:50%;border:1px solid #96ddff88;background:radial-gradient(circle at 35% 30%,#a3dfff55,#5ba5db22);box-shadow:0 0 20px #7ecbff26,inset 0 1px 4px #c4eaff44;touch-action:none}.joystick-base>i{position:absolute;width:5px;height:5px;border-top:1px solid #7cb8e384;border-left:1px solid #7cb8e384}.joy-up{top:13px;transform:rotate(45deg)}.joy-down{bottom:13px;transform:rotate(225deg)}.joy-left{left:13px;transform:rotate(-45deg)}.joy-right{right:13px;transform:rotate(135deg)}.touch-actions{display:flex;align-items:flex-end;gap:22px;pointer-events:auto}.secondary-actions{display:flex;gap:13px;padding-bottom:8px}.ability-button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;width:57px;height:62px;border:1px solid #83c9fa44;background:linear-gradient(#24415eaa,#0a1c32cc);color:#b6e5ff;border-radius:10px;box-shadow:0 5px 25px #0003;backdrop-filter:blur(8px)}.ability-button .icon{width:22px;height:22px}.ability-button small{font-size:8px;letter-spacing:.5px}.ability-button:disabled{opacity:.4}.interact-button{width:89px;height:89px;border-radius:50%;border:1px solid #f8ce8a99;background:radial-gradient(circle at 45% 30%,#f3c77c3d,#93723d16);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#ffdb9c;box-shadow:0 0 0 6px #f6c2760b,0 0 35px #efb96a18;backdrop-filter:blur(10px)}.interact-button .icon{width:25px;height:25px}.interact-button span{font-size:12px;letter-spacing:2px}.interact-button small{position:absolute;font-size:8px;margin-top:105px;color:#9ebed6}.interact-button:active{background:#f3c77c66;box-shadow:0 0 0 10px #f6c27622}.ability-button:active{background:#5084ad77}
/* Main menu key art, entirely separate from the playable 3D ward. */
.is-lobby #scene-stage{display:none}.is-lobby #header{background:linear-gradient(#040b19bb,transparent)}.is-lobby #lobby{position:absolute;inset:0;overflow:hidden}.keyart{position:absolute;inset:-1%;background:url('./assets/nightwatch-keyart.png') center/cover no-repeat;animation:keyart-breathe 25s ease-in-out infinite alternate}.keyart:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#040b1bd9 0,#040b1b73 32%,transparent 65%),linear-gradient(0deg,#040b1be0,transparent 35%,transparent 80%,#040b1b66)}.lobby-copy{left:7%;top:50%;transform:translateY(-35%);width:45%;z-index:2}.lobby-copy .eyebrow{font-size:10px;letter-spacing:4px;color:#95bddb}.lobby-copy h1{font-family:var(--serif);font-size:clamp(62px,7vw,110px);font-weight:800;letter-spacing:8px;margin:17px 0 4px;line-height:1.3;color:#f5f4e9;text-shadow:0 2px 30px #0008;white-space:nowrap}.lobby-copy h1>span:not(.title-period){font-family:inherit;font-size:inherit;letter-spacing:8px;color:#edce97;padding:0;font-weight:800}.game-wordmark{font-family:Georgia,serif;font-size:13px;letter-spacing:4px;color:#bbd7ed;margin:8px 0 24px}.lobby-subtitle{font-size:13px;line-height:2.1;letter-spacing:3px;color:#b4c6db;margin-top:0;text-shadow:0 2px 10px #000}.lobby-start{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:32px}.lobby-start .primary{width:280px;min-height:60px;font-size:16px;letter-spacing:5px;justify-content:space-between;border-radius:3px;clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px));box-shadow:0 0 40px #ffbe6133}.start-arrow{font-size:32px;line-height:1;letter-spacing:0}.lobby-start .ghost{border:0;background:none;color:#d2dfeb;font-size:12px;letter-spacing:2px;padding:4px 0;min-height:25px}.lobby-meta{color:#709bbf;font-size:9px;letter-spacing:1px;margin-top:22px}.menu-chapter{position:absolute;top:112px;left:7%;color:#b4cce0;font-size:10px;letter-spacing:3px;display:flex;align-items:center;gap:10px}.menu-sidecode{position:absolute;right:35px;bottom:115px;font-size:9px;letter-spacing:3px;color:#cadde9;text-align:right;display:flex;flex-direction:column;gap:12px}.menu-sidecode b{font-weight:300;letter-spacing:5px;font-size:32px}.menu-sidecode span{font-size:10px;line-height:2;letter-spacing:2px;color:#95b1c9}.is-lobby #footer{height:66px}.lobby-footer{padding:0 4%;pointer-events:auto}.lobby-footer>span:first-child{font-size:9px;color:#8faecb;letter-spacing:2px}.lobby-footer button{font-size:10px;color:#b8d3ea;gap:12px}.lobby-footer .edition{font-size:8px;letter-spacing:2px;color:#7499bb}.menu-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none}.menu-atmosphere i{position:absolute;width:4px;height:4px;border-radius:50%;background:#a9e4ff;box-shadow:0 0 15px #7fcfff;left:18%;top:75%;opacity:.3;animation:float-mote 11s ease-in-out infinite}.menu-atmosphere i:nth-child(2){left:38%;top:60%;animation-delay:-3s;width:2px;height:2px}.menu-atmosphere i:nth-child(3){left:61%;top:80%;animation-delay:-5s;background:#ffc887}.menu-atmosphere i:nth-child(4){left:83%;top:40%;animation-delay:-7s;width:2px;height:2px}.menu-atmosphere i:nth-child(5){left:52%;top:30%;animation-delay:-9s}
/* Dialogue and squad selection remain in-world rather than becoming sidebars. */
#stage-overlay,.phase-plan #stage-overlay,.phase-night #stage-overlay,.phase-emergency #stage-overlay,.phase-result #stage-overlay{position:absolute;inset:0;padding:145px 35px 105px;align-items:center;overflow-y:auto;pointer-events:none}.planning{max-width:1030px;background:linear-gradient(140deg,#112239e8,#0a1628e0);padding:28px;border:1px solid #8fc2eb24;border-radius:9px;backdrop-filter:blur(18px)}.planning-head h2{font-family:var(--sans);font-weight:700;font-size:30px;letter-spacing:2px}.planning-head p{color:#9bb3cd;font-size:12px}.action-budget{border-color:#e9b77855;width:82px;height:82px;border-radius:8px;background:#efbc7410}.action-budget span{color:#aaafbb}.plan-grid{gap:14px}.plan-card{padding:20px;background:linear-gradient(145deg,#1e3652cc,#102239cc);border:1px solid #91c9ee33;border-radius:6px;min-height:175px;box-shadow:0 8px 20px #0002;transition:.25s}.plan-card:before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,#8edaff88,transparent)}.plan-card:hover:not(:disabled){background:linear-gradient(#294a6c,#142e49);transform:translateY(-4px);border-color:#92dfff77}.plan-card.chosen{background:linear-gradient(145deg,#50402d,#223444);border-color:#edc17b;box-shadow:0 0 25px #e8b66c14,inset 0 0 30px #e8b66c08}.plan-card.chosen:before{background:#edc17b}.plan-card .portrait{width:52px;height:60px}.plan-card h3{font-size:13px;font-weight:600}.plan-card-top span{font-size:10px;color:#9fb9d3}.plan-card>p{font-size:11px;color:#9eb8cf;line-height:1.8}.plan-effect{color:#b6c8dc;font-size:10px}.plan-card .check-circle{color:#ebc789}.planning-note{color:#8fa9c6;font-size:10px}.event-card{max-width:710px;background:linear-gradient(125deg,#142944ee,#081729f5);border:1px solid #8bd0fa55;border-top:2px solid #98dcff;border-radius:7px;padding:27px;box-shadow:0 18px 75px #0008}.event-card h2{font-family:var(--sans);font-size:26px;font-weight:700;letter-spacing:2px}.event-heading .eyebrow{color:#94dfff;font-size:9px}.dialogue .patient-portrait{width:56px;height:67px;border:1px solid #91c8f444;background:#7b94a1}.dialogue p{font-size:14px;color:#e2edfb;line-height:1.85}.dialogue>div:nth-child(2)>span{color:#f0c183}.event-context{color:#93adc8;font-size:11px}.option{background:#83b9ee08;border-color:#8bc3ee35;border-radius:4px;padding:15px;min-height:68px;gap:14px}.option:hover{background:#81c3ff18;border-color:#9de0ff}.option-letter{background:#253f5d;border-color:#8ec8ef66;color:#bce7ff;border-radius:4px;width:31px;height:34px}.option b{font-size:13px;color:#e5effb}.option small{color:#84a7c9;font-size:10px}.option>.icon{color:#92c2e2}.event-hint{color:#7eb2cf;font-size:10px}.decision-timer{border:1px solid #74ccfa66;background:#74ccfa0e;padding:5px 10px;border-radius:4px;color:#a7e8ff;font-size:13px}.decision-timer.urgent{border-color:#ff9477;color:#ffb79e;background:#ff7d5d11}.feedback-card{background:radial-gradient(ellipse at top,#1d3a53,#0c1b31);border:1px solid #8bc9ec44;border-radius:8px;box-shadow:0 20px 90px #0009}.feedback-symbol{width:73px;height:73px;background:#7ee8df0a;border-color:#7ee8df88;box-shadow:0 0 45px #7ee8df26}.feedback-card h2{font-family:var(--sans);font-weight:600;font-size:23px}.feedback-card>p{color:#a6bdd6;font-size:13px}.feedback-stats{color:#87abc8}.feedback-card.bad{border-color:#ef936a55;background:radial-gradient(ellipse at top,#483036,#101c31)}.feedback-card.bad .feedback-symbol{box-shadow:0 0 40px #e77d5333}.result-card{max-width:650px;background:radial-gradient(ellipse at top,#293448,#0d1b2e);border:1px solid #eac28266;border-radius:8px;box-shadow:0 0 80px #efb9600f;padding:34px}.result-card h2{font-family:var(--serif);font-size:30px}.result-story{color:#a4bdd6;font-size:12px}.rank{height:80px;width:70px;font-size:57px;border-color:#ead09f88;background:#f5d39508;box-shadow:0 0 25px #f5d3951c;text-shadow:0 0 20px #ffda96aa}.result-score>div:nth-child(2)>b{font-size:40px;font-weight:400}.result-score small,.result-score>div:nth-child(2)>span,.result-facts{color:#8caac7}.result-achievements>span{border-color:#eac28230;background:#edc98708;font-size:9px}.result-actions .button{min-height:49px}.result-kicker{font-size:10px}
.modal-backdrop{background:#030a18cc;backdrop-filter:blur(12px)}.modal{background:linear-gradient(145deg,#142841,#0a1729);border-color:#81bfef44;border-radius:9px}.modal-header h2{font-family:var(--sans);font-size:22px;font-weight:600;color:#ecf6ff}.modal-intro{color:#a3b9d1}.modal-body{user-select:text;-webkit-user-select:text}.role-card{background:#95c7ee08;border-color:#95c7ee30;border-radius:5px}.role-card.selected{border-color:#f2c789;background:#f2c78912;box-shadow:inset 0 0 25px #f2c78908}.role-card>b{color:#f2c789}.role-card small,.role-card p{color:#8faac6}.mode-option{border-color:#8ec4eb33}.mode-option.active{border-color:#f2c78999}.mode-option small,.mode-picker p,.setting-row p,.case-top p,.case-facts p,.journal-note p,.rules-list p,.journal-grid details,.review-answer p{color:#9eb6cf}.mode-option .icon{color:#a4d8f1}.case-facts b,.journal-note b{color:#d5deee}.toggle{background:#10243d;border-color:#8ec4eb44}.toggle.on{background:#81c9ee44}.toggle.on i{background:#a0eaff}.badge{border-color:#8ec4eb30;background:#8ec4eb07}.badge small{color:#96adca}.badge.earned{border-color:#e9c27c66}.review-clues>.done{color:#8be5d8}.review-answer .recommended{color:#9edcda}.evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.evidence-grid button{display:flex;flex-direction:column;gap:10px;min-height:110px;padding:17px;text-align:left;border:1px solid #89c8f244;background:#8bc5f00a;border-radius:5px}.evidence-grid span{font-size:12px;color:#e9be79}.evidence-grid b{font-size:12px;font-weight:500}.evidence-grid small{font-size:10px;color:#8caccc}#toast{background:#142e48f2;border-color:#8ad5ff66;color:#d7ebfb;bottom:120px;font-size:12px}#toast>.icon{color:#86eadb}
/* Physical interventions: tool choice + intentional hold, with an accessible alternative. */
.repair-layer{position:fixed;inset:0;z-index:35;background:#040b1ace;backdrop-filter:blur(10px);display:grid;place-items:center;padding:20px}.repair-terminal{position:relative;width:440px;max-width:100%;padding:32px;background:linear-gradient(135deg,#19344f,#0b1b30);border:1px solid #95deff77;border-top:3px solid #8fe9ff;border-radius:8px;box-shadow:0 0 90px #62bdff18;animation:arrive .3s ease}.repair-exit{position:absolute;right:12px;top:10px;width:36px;height:36px;font-size:28px;color:#accce0;background:none}.terminal-label{font-size:9px;color:#8fe0ff;letter-spacing:2px}.repair-terminal h2{font-size:24px;margin:18px 0 12px;font-weight:600}.repair-terminal>p{font-size:12px;color:#9fbbd6;line-height:1.8}.repair-tools{display:flex;gap:9px;margin:25px 0}.repair-tools button{flex:1;min-height:94px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#83c2ee0a;border:1px solid #83c2ee44;border-radius:5px}.repair-tools button span{font:22px Georgia,serif;color:#829fbf}.repair-tools button b{font-size:11px;font-weight:500}.repair-tools button.ready{background:#77e4dc15;border-color:#7fe9de;box-shadow:0 0 20px #7fe9de19}.repair-tools button.ready span{color:#95f7e6}.repair-tools button.incorrect{border-color:#e6987777}.repair-status{font-size:11px;line-height:1.7;color:#a8c7df;min-height:38px}.repair-meter{height:5px;background:#7899b322;margin:15px 0}.repair-meter i{display:block;width:0;height:100%;background:#80edde;box-shadow:0 0 16px #80edde}.hold-button{display:flex;width:100%;justify-content:center;align-items:center;gap:12px;min-height:61px;border:1px solid #93defa66;background:#1c4b66;color:#d9f4ff;border-radius:5px;touch-action:none;user-select:none;-webkit-user-select:none}.hold-button:active{background:#2b7690}.keycap{width:25px;height:27px;border:1px solid #a3eaff66;border-radius:4px;display:grid;place-items:center;font-size:12px}.hold-label{font-size:12px}.repair-simple{display:block;margin:17px auto 0;background:none;color:#8baac4;font-size:10px;padding:8px;text-decoration:underline;text-underline-offset:5px}
.cinema-layer{position:fixed;inset:0;z-index:50;background:#020715f5;display:grid;place-items:center;overflow:hidden}.cinema-layer:before{content:'';position:absolute;inset:0;background:url('./assets/nightwatch-keyart.png') center/cover;opacity:.14;filter:blur(5px)}.cinema-content{position:relative;text-align:center;animation:cinema-reveal 1.7s ease both;padding:25px}.cinema-content>span{font-size:11px;letter-spacing:4px;color:#8faec6}.cinema-content h2{font:500 clamp(36px,8vw,100px) var(--serif);letter-spacing:6px;color:#eee5cb;margin:24px 0;text-shadow:0 0 55px #f6cb7633}.cinema-content p{font-size:15px;letter-spacing:3px;color:#b9cce0}.cinema-content i{display:block;height:1px;width:90px;background:#f4c47d;margin:30px auto;box-shadow:0 0 20px #f4c47d55}.cinema-skip{position:absolute;right:25px;bottom:30px;padding:14px 20px;font-size:12px;letter-spacing:2px;background:#9fcaf010;border:1px solid #9fcaf033;color:#b9d1e3;border-radius:4px}.cinema-grain{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#ffffff03 3px 4px);pointer-events:none}.reward-effect{position:fixed;top:34%;left:50%;transform:translate(-50%,-50%);z-index:15;text-align:center;pointer-events:none;animation:reward 2s ease both;white-space:nowrap;text-shadow:0 3px 20px #000,0 0 30px #a0e9ff66}.reward-effect>span{display:block;color:#ffdf9c;font-size:45px;margin-bottom:8px}.reward-effect strong{display:block;color:#d5fbff;font-size:23px;font-weight:600;letter-spacing:3px}.reward-effect small{display:block;color:#91b9d5;font-size:8px;letter-spacing:3px;margin-top:12px}
@keyframes heartbeat{0%,30%,60%,100%{transform:scale(1)}15%,45%{transform:scale(1.13)}}@keyframes ecg-run{from{stroke-dashoffset:150}to{stroke-dashoffset:0}}@keyframes beacon{0%,100%{opacity:.4;transform:scale(1)}50%{opacity:.9;transform:scale(1.14)}}@keyframes scan-pin{50%{box-shadow:0 0 0 16px #7eeaff22,0 0 45px #7eeaffaa;border-color:#b7f5ff}}@keyframes keyart-breathe{from{transform:scale(1)}to{transform:scale(1.045)}}@keyframes float-mote{0%{transform:translate(0,0);opacity:0}20%{opacity:.7}80%{opacity:.3}100%{transform:translate(-50px,-180px);opacity:0}}@keyframes drawer-in{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}@keyframes cinema-reveal{0%{opacity:0;transform:scale(1.05)}20%,85%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.99)}}@keyframes reward{0%{opacity:0;margin-top:15px}15%,70%{opacity:1;margin-top:0}100%{opacity:0;margin-top:-20px}}
@media(max-width:1100px) and (min-width:701px){#left-panel{width:225px;left:24px}.mission-hud h2{font-size:15px}.patient-hud{width:200px}.clue-open #right-panel{width:280px;right:24px}.planning{padding:22px}.plan-card{padding:16px}.plan-card h3{font-size:12px}.plan-card .portrait{width:40px;height:46px}.lobby-copy h1{font-size:65px}.lobby-copy{left:6%;width:54%}.menu-chapter{left:6%}.phase-plan #stage-overlay{padding-top:135px}.planning-head h2{font-size:25px}.scene-caption{display:none}}
/* Phone is the primary target: fixed portrait viewport, two-thumb controls, bottom sheets. */
@media(max-width:700px){
 html,body{height:100%;overflow:hidden}#app{height:100dvh;min-height:0}#header{height:67px;padding:0 16px;padding-top:env(safe-area-inset-top,0px)}.brand{font-size:14px;letter-spacing:2px;gap:8px}.brand small{font-size:6px;letter-spacing:3px;margin-top:3px}.brand-mark{width:29px;height:33px}.brand-mark .icon{width:19px;height:19px}.header-center{display:none}.header-actions{gap:6px}.header-actions .icon-button{width:33px;height:33px}.header-actions .icon{width:16px;height:16px}.score-pill{gap:4px;padding:0;margin-right:3px}.score-pill b{font-size:15px}.score-pill small{font-size:8px}.score-pill>.icon{width:14px;height:14px}.is-playing #main,.phase-plan #main,.is-lobby #main{position:absolute;inset:0;min-height:0;height:100%;max-height:none;display:block}.scene-stage,.phase-plan .scene-stage,.phase-night .scene-stage,.phase-emergency .scene-stage,.phase-result .scene-stage{height:100%;min-height:0;position:absolute;inset:0}.scene-vignette{background:linear-gradient(0deg,#030a19e6,transparent 27%,transparent 60%,#030a1977),radial-gradient(ellipse,transparent 35%,#050e2077)}#scene-top{top:77px;left:17px;right:17px}.scene-location{font-size:9px;padding:7px 9px;border-radius:3px;gap:6px}.scene-location small{display:none}.scene-time b{font-size:26px;letter-spacing:3px}.scene-time span{font-size:6px;letter-spacing:.5px;margin-top:0}#left-panel{display:block;top:124px;left:17px;width:235px;bottom:0;padding:0}.mission-hud{padding:2px 0 2px 11px;max-width:230px}.mission-kicker{font-size:7px;letter-spacing:1.4px}.mission-hud h2{font-size:15px;margin:7px 0 6px;letter-spacing:.5px}.mission-hud p{font-size:10px;line-height:1.7;max-width:210px;color:#9ab3cb}.mission-progress{gap:3px;margin-top:10px;max-width:200px}.mission-progress i{width:16px;height:3px}.mission-progress b{font-size:9px;margin-left:7px}.mission-next{padding:7px 10px;font-size:10px;margin-top:11px;min-height:34px}.patient-hud{position:fixed;top:auto;bottom:calc(216px + var(--safe-bottom));left:17px;width:163px;padding:9px;gap:6px;border-radius:4px}.patient-hud b{font-size:10px}.patient-hud b small{font-size:7px;margin-left:3px}.patient-hud span{font-size:8px;margin-top:4px}.patient-hud strong{font-size:11px;margin-left:5px}.vital-icon{width:22px;height:24px}.vital-icon .icon{width:17px;height:17px}.ecg{width:30px;height:22px}.player-hud{bottom:calc(20px + var(--safe-bottom));left:20px;gap:9px}.player-hud .portrait{width:33px;height:39px}.player-hud small{font-size:7px}.player-hud b{font-size:11px;margin-top:2px}.player-hud span{font-size:8px;margin-top:3px}.phase-plan #left-panel,.phase-night #left-panel,.phase-emergency #left-panel,.phase-result #left-panel{display:none}#scene-controls{right:17px;bottom:calc(210px + var(--safe-bottom))}.camera-tools{padding:2px}.camera-tools .icon-button{width:28px;height:28px}.camera-tools .icon{width:15px;height:15px}#scene-bottom{display:none}.hotspot{width:31px;height:31px;border-radius:6px}.hotspot span{font-size:9px}.hotspot:before{inset:-5px}.pin-name{font-size:8px;padding:4px 6px;top:36px}.player-nameplate{font-size:6px;gap:3px}.player-nameplate b{font-size:7px;padding:3px 4px;letter-spacing:0}#footer{position:absolute;bottom:0;height:calc(80px + var(--safe-bottom));min-height:0;padding:0 17px;padding-bottom:var(--safe-bottom);background:linear-gradient(transparent,#030a19dd);border:0}.touch-controls{inset:auto 20px calc(76px + var(--safe-bottom)) 22px;height:115px;display:flex;align-items:flex-end}.joystick-base{width:102px;height:102px}.joystick-thumb{width:43px;height:43px}.joystick-zone{gap:7px}.joystick-zone>span{font-size:8px;letter-spacing:2px}.touch-actions{position:relative;gap:0}.interact-button{width:83px;height:83px;margin-bottom:17px}.interact-button .icon{width:24px;height:24px}.interact-button span{font-size:12px}.interact-button small{display:none}.secondary-actions{position:absolute;right:0;bottom:116px;gap:10px;padding:0}.ability-button{width:48px;height:53px;border-radius:9px;gap:4px}.ability-button .icon{width:20px;height:20px}.ability-button small{font-size:7px}.clue-open #right-panel{position:fixed;inset:auto 0 0;bottom:0;width:100%;max-height:62dvh;padding:23px 23px calc(24px + var(--safe-bottom));border:1px solid #85c9ef66;border-top:2px solid #9ce9ff;border-radius:17px 17px 0 0;box-shadow:0 -20px 70px #0006;z-index:12;background:linear-gradient(130deg,#18334af5,#09192cf9);animation:sheet-up .28s ease}.clue-open #right-panel:before{content:'';position:absolute;top:9px;left:calc(50% - 18px);width:36px;height:3px;background:#8bc8e75a;border-radius:3px}.clue-open #footer,.clue-open .patient-hud,.clue-open .player-hud{visibility:hidden}.back-link{margin:4px 0 18px;font-size:10px}.clue-open .eyebrow{font-size:8px;letter-spacing:2px}.panel-heading{font-size:22px;margin:10px 0}.tag{font-size:9px}.clue-description{font-size:12px;line-height:1.9;margin:16px 0}.insight-card{padding:13px;margin:14px 0}.insight-card p{font-size:11px;margin-top:6px}.assigned{margin:14px 0 12px;font-size:10px}.clue-next{margin-top:15px;padding-top:12px}.button{min-height:48px;font-size:12px}.button+.micro{font-size:9px}.clue-next .button{min-height:40px;font-size:11px}.chapter-track{gap:8px}.chapter-node{gap:5px}.chapter-node>span{width:25px;height:25px;font-size:8px;border-radius:4px}.chapter-node>b{font-size:8px;display:none}.chapter-node.active>b{display:block}.chapter-track>i{width:9px}.footer-action .button{font-size:11px;min-width:154px;padding:12px 13px;min-height:46px}.autosave{font-size:9px;max-width:130px;line-height:1.8;text-align:right}
 .is-lobby #header{background:linear-gradient(#020916cc,transparent)}.is-lobby #header .brand{opacity:.85}.is-lobby .keyart{background-position:66% center;inset:0;animation:none}.keyart:after{background:linear-gradient(0deg,#030917 0%,#030917ee 13%,#0309178f 40%,transparent 64%,#03091766 100%),linear-gradient(90deg,#03091755,transparent 60%)}.lobby-copy{position:absolute;left:27px;right:27px;top:auto;bottom:105px;width:auto;transform:none}.lobby-copy .eyebrow{font-size:7px;letter-spacing:2.5px;color:#a1c0d9}.lobby-copy h1{font-size:56px;font-weight:800;letter-spacing:5px;line-height:1.3;margin:9px 0 5px;white-space:nowrap}.lobby-copy h1>span:not(.title-period){letter-spacing:5px}.game-wordmark{font-size:9px;letter-spacing:2.5px;margin:4px 0 17px}.lobby-subtitle{font-size:11px;line-height:1.9;letter-spacing:2px;margin:0;color:#b6cbe2}.lobby-subtitle br{display:block}.lobby-start{position:static;left:auto;right:auto;bottom:auto;display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:24px}.lobby-start .primary{width:100%;max-width:none;min-width:0;height:57px;min-height:57px;flex:none;font-size:15px;padding:13px 23px;letter-spacing:4px}.lobby-start .ghost{font-size:11px;min-height:25px;padding:4px!important;background:none;border:0;text-align:center;justify-content:center;letter-spacing:2px}.lobby-meta{position:static;justify-content:center;font-size:8px;letter-spacing:.5px;margin-top:16px}.lobby-meta .live-dot{width:4px;height:4px}.menu-chapter{top:88px;left:25px;font-size:8px;letter-spacing:1.5px}.menu-sidecode{right:21px;top:123px;bottom:auto;font-size:7px;letter-spacing:2px;gap:8px}.menu-sidecode b{font-size:24px;letter-spacing:3px}.menu-sidecode span{display:none}.is-lobby #footer{height:66px;min-height:0;padding:0 22px;padding-bottom:var(--safe-bottom)}.lobby-footer{padding:0}.lobby-footer>span:first-child{font-size:8px;letter-spacing:1px}.lobby-footer button{font-size:9px;gap:7px}.lobby-footer .edition{display:none}.lobby-footer .icon{width:14px;height:14px}
 #stage-overlay,.phase-plan #stage-overlay,.phase-night #stage-overlay,.phase-emergency #stage-overlay,.phase-result #stage-overlay{position:absolute;inset:0;padding:130px 14px calc(90px + var(--safe-bottom));overflow-y:auto;align-items:flex-end;display:flex}.phase-plan #stage-overlay{align-items:flex-start;padding:135px 14px calc(100px + var(--safe-bottom))}.planning{padding:0;background:none;backdrop-filter:none;border:0;margin:0}.planning-head{gap:10px;margin-bottom:17px;align-items:center}.planning-head .eyebrow{font-size:8px;letter-spacing:2px}.planning-head h2{font-size:23px;line-height:1.5;letter-spacing:1px;margin-top:9px}.planning-head p{font-size:10px;line-height:1.8;margin-top:9px}.action-budget{width:60px;height:67px;margin:12px 0 0;align-self:center;flex-shrink:0;border-radius:6px}.action-budget b{font-size:28px}.action-budget span{font-size:7px;margin-top:3px}.plan-grid{grid-template-columns:repeat(2,1fr);gap:10px}.plan-card{padding:15px 12px;min-height:180px;backdrop-filter:blur(14px);border-radius:5px}.plan-card-top{display:flex;flex-wrap:wrap;gap:9px}.plan-card .portrait{width:39px;height:46px}.plan-card-top>div:nth-child(2){min-width:80px;flex:1}.plan-card-top span{font-size:9px}.plan-card h3{font-size:12px;margin-top:5px}.plan-card .check-circle{position:absolute;right:11px;top:12px;width:17px;height:17px}.plan-card>p{font-size:10px;line-height:1.8;min-height:54px;margin:12px 0}.plan-effect{font-size:8px;padding-top:10px}.plan-effect>span:last-child{display:none}.planning-note{font-size:9px;line-height:1.8;margin-top:15px;align-items:flex-start}.event-card{margin:0 auto;padding:23px 17px 20px;border-radius:12px;max-height:calc(100dvh - 230px);overflow:auto;box-shadow:0 -15px 80px #0004}.event-card h2{font-size:23px;letter-spacing:1px;margin:12px 0 18px}.dialogue{gap:11px}.dialogue .patient-portrait{width:45px;height:55px;border-radius:8px}.dialogue p{font-size:12px;line-height:1.9;margin-top:4px}.dialogue>div:nth-child(2)>span{font-size:9px}.event-context{font-size:10px;line-height:1.8;margin:13px 0;padding-top:11px}.options{gap:9px;margin-top:13px}.option{padding:13px 10px;gap:10px;min-height:65px}.option b{font-size:12px;line-height:1.7}.option small{font-size:9px;line-height:1.7;margin-top:4px}.option-letter{width:27px;height:31px;font-size:14px}.option>.icon{display:none}.event-hint{font-size:9px;line-height:1.8;margin-top:14px}.decision-timer{font-size:12px;padding:4px 8px}.feedback-card{margin:auto;padding:30px 23px;max-height:calc(100dvh - 220px);overflow:auto}.feedback-card h2{font-size:21px;line-height:1.6;margin:18px 0}.feedback-card>p{font-size:12px;line-height:2}.feedback-symbol{width:65px;height:65px;margin-bottom:20px}.feedback-stats{font-size:10px;margin:24px 0}.phase-result #stage-overlay{align-items:center;padding-top:92px}.result-card{margin:auto;padding:27px 23px;max-height:calc(100dvh - 190px);overflow:auto}.result-card h2{font-size:25px;line-height:1.6;margin:20px 0 14px}.result-story{font-size:12px;line-height:1.9}.result-score{gap:15px;padding:20px 0;margin:20px 0}.rank{width:65px;height:73px;font-size:53px}.result-score>div:nth-child(2)>b{font-size:36px}.result-facts{display:none}.result-achievements{gap:6px}.result-achievements>span{font-size:8px;padding:6px 7px}.result-actions{gap:9px;flex-direction:column;margin-top:23px}.result-actions .button{font-size:12px;min-height:47px}.result-kicker{font-size:8px;letter-spacing:.5px}
 .modal-backdrop{padding:10px;align-items:center}.modal{max-height:92dvh;border-radius:12px}.modal-header{padding:19px 18px 15px}.modal-header h2{font-size:19px}.modal-body{padding:20px 18px 23px}.role-grid{gap:9px;grid-template-columns:repeat(2,1fr)}.role-card{padding:14px 9px}.role-card .portrait{width:46px;height:52px}.role-card h3{font-size:13px}.role-card>b{font-size:11px}.role-card p{font-size:10px;line-height:1.8}.role-card small{font-size:8px}.mode-picker{grid-template-columns:1fr 1fr;display:grid;margin:20px 0;gap:10px}.mode-picker>div:first-child{grid-column:1/-1}.mode-picker p{max-width:none}.mode-option{min-height:61px;padding:10px}.mode-option span{font-size:11px}.mode-option small{font-size:8px}.modal-body .large{font-size:13px;min-height:53px}.setting-row h3{font-size:13px}.setting-row p{font-size:11px}.keyboard-guide{font-size:9px}.journal-grid{grid-template-columns:1fr}.journal-note p,.rules-list p{font-size:11px}.repair-layer{padding:16px;align-items:end;padding-bottom:calc(26px + var(--safe-bottom))}.repair-terminal{width:100%;padding:27px 21px;border-radius:14px;animation:sheet-up .3s ease}.repair-terminal h2{font-size:23px;margin:17px 0 11px}.repair-terminal>p{font-size:12px}.repair-tools{margin:22px 0;gap:8px}.repair-tools button{min-height:94px}.repair-tools button b{font-size:11px}.hold-button{min-height:66px;font-size:13px}.hold-label{font-size:12px}.repair-status{font-size:11px;min-height:36px}.repair-simple{padding:11px;font-size:10px}.terminal-label{font-size:8px;letter-spacing:1.6px}.cinema-content h2{font-size:43px;line-height:1.6;letter-spacing:3px;margin:22px 0}.cinema-content>span{font-size:9px;line-height:1.9;letter-spacing:2px}.cinema-content p{font-size:13px;line-height:2;letter-spacing:2px}.cinema-skip{bottom:calc(30px + var(--safe-bottom));right:20px;font-size:11px;min-height:45px}.reward-effect{top:36%}.reward-effect strong{font-size:20px;letter-spacing:2px}.reward-effect small{font-size:7px;letter-spacing:2px}#toast{bottom:calc(235px + var(--safe-bottom));font-size:11px;max-width:calc(100% - 30px);padding:12px 15px}
}
@media(max-width:380px){.lobby-copy{left:23px;right:23px;bottom:95px}.lobby-copy h1{font-size:49px;letter-spacing:3px}.lobby-copy h1>span:not(.title-period){letter-spacing:3px}.game-wordmark{font-size:8px;letter-spacing:2px}.header-actions{gap:3px}.header-actions .icon-button{width:30px;height:30px}.score-pill{font-size:12px}.mission-hud h2{font-size:14px}.plan-card h3{font-size:11px}.plan-card{padding:13px 10px}.event-card{padding:20px 14px}.option b{font-size:11px}.option small{font-size:8px}.player-hud{bottom:17px}.lobby-start{margin-top:20px}}
@media(max-height:730px) and (max-width:700px){.lobby-copy{bottom:88px}.lobby-copy h1{font-size:47px}.game-wordmark{margin-bottom:12px}.lobby-start{margin-top:17px}.lobby-start .primary{height:51px;min-height:51px}.lobby-meta{margin-top:12px;font-size:7px}.lobby-subtitle{font-size:10px}.menu-chapter{top:80px}.menu-sidecode{top:110px}.patient-hud{display:none}.mission-hud p{display:none}.mission-progress{margin-top:8px}.mission-hud h2{font-size:14px}.mission-next{margin-top:9px;padding:5px 9px;min-height:29px}.touch-controls{bottom:65px;height:100px}.joystick-base{width:88px;height:88px}.joystick-thumb{width:38px;height:38px}.interact-button{width:75px;height:75px}.secondary-actions{bottom:103px}.ability-button{width:44px;height:48px}.event-card{max-height:calc(100dvh - 206px);padding:18px 15px}.event-card h2{font-size:20px;margin-bottom:13px}.event-context{display:none}.dialogue p{font-size:11px}.options{gap:7px}.option{padding:11px 9px;min-height:57px}.option b{font-size:11px}.event-hint{font-size:8px}.feedback-card{padding:25px 20px}.result-card{padding:22px 20px}.result-card h2{font-size:23px}.result-story{font-size:11px}.result-score{margin:15px 0;padding:17px 0}}
@media(orientation:landscape) and (max-height:500px){.lobby-copy{top:28%;bottom:auto;width:55%;transform:none}.lobby-copy h1{font-size:47px;margin-top:5px}.lobby-copy .eyebrow,.lobby-subtitle,.lobby-meta{display:none}.game-wordmark{margin-bottom:12px}.lobby-start{margin-top:13px;flex-direction:row;align-items:center}.lobby-start .primary{width:200px;height:48px;min-height:48px}.menu-chapter{top:78px}.is-lobby #footer{height:45px}.mission-hud p,.patient-hud,.player-hud{display:none}.touch-controls{bottom:35px;height:90px}.joystick-base{width:80px;height:80px}.interact-button{width:70px;height:70px}.secondary-actions{position:static;padding-right:15px}.phase-plan #stage-overlay,.phase-night #stage-overlay,.phase-emergency #stage-overlay,.phase-result #stage-overlay{padding:80px 90px 70px}.event-card,.result-card,.feedback-card{max-height:calc(100dvh - 155px);overflow:auto}.scene-time{display:none}.clue-open #right-panel{top:80px;bottom:65px;max-height:none;width:300px;right:20px;left:auto;border-radius:9px}.planning-head h2{font-size:22px}.plan-grid{grid-template-columns:repeat(3,1fr)}.plan-card{min-height:145px;padding:12px}.planning{padding:18px}.phase-plan #stage-overlay{overflow-y:auto}#footer{height:65px}.mission-hud h2{font-size:13px}.mission-kicker{font-size:7px}}
@keyframes sheet-up{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important}
