/* Medical thriller: neutral photography, charcoal, white and restrained alarm red. */
:root{--bg:#111213;--panel:#1e2021;--text:#f4f3ef;--muted:#b4b6b5;--line:#ffffff28;--mint:#c9d3ce;--gold:#e96755;--amber:#e96755;--cyan:#e9e9e5}body,#app{background:#111213;color:#f4f3ef}#header,.is-lobby #header{background:linear-gradient(#101112ed,transparent)}.brand-mark{background:none;border-color:#aaa;color:#eee}.brand small,.header-center{color:#b5b9b8}.icon-button,.header-actions .icon-button{background:#181a1bd9;border:1px solid #ffffff30;color:#eaece9;backdrop-filter:none}.icon-button:hover{background:#343739;border-color:#ccc}.score-pill,.score-pill b{color:#f3f2ec}.score-pill .icon{color:#e96755}.keyart{background-image:url('./assets/hospital-scene.png');filter:grayscale(.8) brightness(.6) contrast(1.25);animation:none}.keyart:after{background:linear-gradient(90deg,#070808eb,transparent 85%),linear-gradient(0deg,#080909,transparent 70%)}.lobby-copy h1{font-family:'Songti SC','STSong',serif;font-weight:900;letter-spacing:5px;color:#fff;text-shadow:0 4px 30px #000}.lobby-copy h1>span:not(.title-period){color:#ec6957;letter-spacing:5px}.lobby-subtitle{color:#dddcd7;text-shadow:0 2px 10px #000}.lobby-copy .eyebrow,.game-wordmark,.lobby-meta,.menu-chapter,.menu-sidecode,.lobby-footer>span,.lobby-footer button{color:#c3c5c2}.menu-atmosphere{display:none}.live-dot{background:#df5b4a;box-shadow:none}.lobby-start .primary,.button.primary,.mission-next,.cinema-skip{background:#c84738;border-color:#e26554;color:#fff;box-shadow:none;border-radius:3px}.button.primary:hover:not(:disabled){background:#dc5544;box-shadow:none}.button.ghost{background:#ffffff05;border-color:#ffffff38;color:#e3e6e3}.button.ghost:hover{background:#ffffff12;border-color:#aaa}.button.success{color:#bdd2c3;border-color:#7e9a85;background:#2f49342b}.lobby-start .ghost{color:#deded7}.lobby-footer .edition{color:#aaa}#footer{background:linear-gradient(transparent,#111213f5)}#scene-stage{background:#111213}.scene-vignette{background:radial-gradient(ellipse at 50% 40%,transparent 45%,#101112aa),linear-gradient(0deg,#111213,transparent 30%,transparent 65%,#11121366)}.scene-location{background:#151718de;color:#ebebe8;border-color:#ffffff38;backdrop-filter:none}.scene-location small,.scene-time span{color:#aaa}.scene-time b{color:#fff;text-shadow:none}.mission-hud{background:#181a1be8;border-color:#c95041;box-shadow:none}.mission-hud p,.mission-kicker,.patient-hud span{color:#bbb}.mission-progress i{background:#ffffff24}.mission-progress i.seen{background:#d26b59}.mission-progress i.done{background:#b7c9bd;box-shadow:none}.mission-progress b{color:#eee}.patient-hud{background:#1b1e1ee0;border-color:#8885}.patient-hud b,.patient-hud strong{color:#eee}.patient-hud small,.player-hud span,.player-hud small{color:#aaa}.vital-icon,.ecg{color:#ddd;stroke:#aaa;filter:none}.player-nameplate{color:#eee;text-shadow:0 1px 4px #000}.player-nameplate b{background:#222a;color:#eee}.player-nameplate span{background:#ccc;box-shadow:none}.hotspot{background:#292b2ce8;border:1px solid #f4f3eacc;border-radius:50%;box-shadow:0 3px 12px #0006}.hotspot span{color:#fff}.hotspot:before{display:none}.hotspot:hover,.hotspot.selected{background:#c84738;box-shadow:none}.hotspot:hover span,.hotspot.selected span{color:#fff}.hotspot.fixed{background:#445e4be8;border-color:#c7d6cb;box-shadow:none}.hotspot.fixed span{color:#eee}.pin-name{background:#181a1be8;color:#eee;border-color:#aaa5}.camera-tools{background:#222a;border-color:#8885}.ability-button,.interact-button{background:#222c;color:#eee;border-color:#aaa6;box-shadow:none}.joystick-base,.joystick-thumb{background:#ffffff0d;border-color:#aaa5;box-shadow:none}.joystick-zone>span,.explore-hint{color:#bbb}.chapter-node,.chapter-node.active{color:#d6d8d4}.chapter-node>span{background:#222;border-color:#999}.chapter-node.active>span{border-color:#d95a49;color:#ee8274}
.clue-open #right-panel,.planning,.personal-task,.modal,.event-card,.feedback-card,.result-card,.repair-terminal{background:#202223f7;border-color:#a9afad4a;box-shadow:0 18px 55px #0005;backdrop-filter:none}.clue-open #right-panel{border-top-color:#d55b4a}.back-link,.text-link,.panel-heading,.modal-header h2{color:#ebebe6}.clue-description,.clue-explanation,.modal-intro,.modal-body p,.modal-body summary,.personal-task>p,.result-story,.feedback-card>p{color:#d1d4d1}.eyebrow,.tag.amber,.assigned b{color:#e99583}.tag.amber{border-color:#ac675a}.clue-open #right-panel:before{background:#999}.insight-card{background:#ffffff05;border-color:#ffffff20}.insight-card>span,.insight-card p{color:#c8d2cb}.micro,.muted,.assigned,.planning-head p,.planning-note,.personal-task .personal-note{color:#aeb5b1}.plan-card{background:#252829e8;border-color:#a4aeaa45;box-shadow:none;border-radius:4px}.plan-card:before{display:none}.plan-card:hover:not(:disabled){background:#333737;border-color:#babfbc;transform:translateY(-2px)}.plan-card.chosen{background:#3f2e2c;border-color:#d36555;box-shadow:none}.plan-card h3,.planning-head h2,.plan-card-top span{color:#eee}.plan-card>p,.plan-effect{color:#c0c7c2}.plan-card .check-circle{color:#e27765}.action-budget{background:#ffffff05;border-color:#888;color:#efeee8}.action-budget span{color:#bbb}.portrait{filter:saturate(.35) contrast(1.08);border-color:#a2aaa5}.option{background:#ffffff04;border-color:#9aa39f55;border-radius:3px}.option:hover{background:#ffffff0b;border-color:#d97a68}.option b,.dialogue p{color:#efeee8}.option small,.event-context{color:#b5bdb7}.option-letter{background:#303433;border-color:#989f99;color:#eee;border-radius:2px}.event-card{border-top:0}.story-shot{background-image:linear-gradient(0deg,#202223,transparent 65%),url('./assets/hospital-scene.png');filter:grayscale(.7) contrast(1.18);border-radius:3px 3px 0 0}.story-shot:before{display:none}.shot-tag{background:#151718bb;border-color:#eee;color:#eee}.speaker-name{color:#fff;text-shadow:0 2px 12px #000}.speaker-name small{color:#ddd}.story-shot.handover{background-image:linear-gradient(0deg,#202223,transparent),url('./assets/role-atlas.png');background-size:100% 100%,300% 200%;background-position:center,0% 0%}.story-shot.incident{background-image:linear-gradient(0deg,#202223aa,#25131599),url('./assets/hospital-scene.png');border-color:#bd5042}.voice-replay{background:#ffffff07;border-color:#ffffff30;color:#dce1dc;border-radius:3px}.voice-bars b{background:#d1dad3}.spoken-reply{background:#ffffff04;border-color:#c55d4c}.spoken-reply>span{color:#eaa08f}.spoken-reply p{color:#eee}.feedback-card.bad{background:#2a2020;border-color:#9b4a40}.feedback-symbol,.feedback-card.good .feedback-symbol{box-shadow:none;background:#80968618;border-color:#8ba894;color:#d3e4d8}.feedback-card.bad .feedback-symbol{box-shadow:none}.feedback-stats{color:#b9c2bb}.rank,.rank.gold{background:#ffffff05;border-color:#d66a56;color:#f0e8df;box-shadow:none;text-shadow:none}.result-score small,.result-score>div:nth-child(2)>span,.result-facts{color:#bfc3bd}.result-achievements>span{background:#ffffff06;border-color:#9aaba048;color:#ddd}.modal-backdrop{background:#080909d9;backdrop-filter:blur(5px)}.setting-row h3{color:#eee}.setting-row p,.keyboard-guide{color:#b9bdb8}.toggle{background:#454b47}.toggle.on{background:#bb5141}.repair-tools button{background:#ffffff06;border-color:#929b9655;color:#ddd}.repair-tools button.ready{background:#42554755;border-color:#9eafa3}.repair-status{color:#bdc8c0}.hold-button{background:#bb4d3c;color:#fff;border-color:#d47461}.repair-meter{background:#555}.repair-meter i{background:#d16754}.repair-simple{color:#bfc8c1}.repair-exit{color:#eee}.reward-effect{color:#fff;text-shadow:0 3px 20px #000}.reward-effect strong{color:#eee}.reward-effect span{color:#d9705c}.reward-effect small{color:#ccc}#toast{background:#2a2f2cf2;color:#eee;border-color:#9da89e77}
/* Full-screen casting, closer to a film cast introduction than a settings form. */
.role-select-screen{background:#111213;color:#eee}.role-select-screen:before{background:url('./assets/hospital-scene.png') center/cover;filter:grayscale(1);opacity:.07}.role-select-header>div>span{color:#df7766}.role-select-header h2{color:#eee}.role-hero{border-radius:2px;border:0;border-left:4px solid #c34e3e;box-shadow:none;background:#161819}.role-hero .portrait.hero{filter:grayscale(.7) contrast(1.12);mask-image:linear-gradient(#000 64%,transparent 98%)}.role-hero-caption>span{color:#eee;letter-spacing:3px}.role-hero-caption h3{font-family:'Songti SC',serif;color:#fff}.role-hero-caption p{color:#ddd}.route-brief>span{color:#df7766}.route-brief h3{color:#f0eee8}.route-brief p{color:#b6beb8}.roster-card{border-radius:3px;background:#202324;color:#ccc;border-color:#6f787344;filter:grayscale(.7)}.roster-card.selected{filter:none;background:#3d2c29;color:#fff;border-color:#d46854;box-shadow:none}.roster-card .portrait{border:0;border-radius:1px}.role-modes button{background:#1b1e1d;color:#b6bfb8;border-color:#747e7666;border-radius:3px}.role-modes button.selected{background:#3c2926;border-color:#c76350;color:#f3d1c9}.role-task-heading span{color:#e28b77}.save-replace-note{color:#a7b0a9}
/* Chapters are title cards. No task UI is visible beneath them. */
.cinema-layer.chapter-title{background:#101112}.chapter-title:before{background:linear-gradient(110deg,#ffffff05,transparent 60%);border-left:9px solid #bd4b3a;inset:12% 7%}.chapter-title .cinema-content h2{font-family:'Songti SC',serif;font-size:clamp(64px,10vw,120px);font-weight:800;color:#f6f3eb;letter-spacing:10px}.chapter-title .cinema-content p{color:#e57a65}.chapter-title .cinema-content>span{color:#b6bcb7}.cinema-content i{background:#b95341}.cinema-grain{background:repeating-linear-gradient(0deg,transparent 0 3px,#ffffff04 4px)}.incident-memory{background-image:linear-gradient(#111a,#111e),url('./assets/hospital-scene.png');filter:grayscale(.85)}.incident-memory .cinema-content h2{font-family:monospace;color:#f4eeeb}.opening-cry{background:#030303!important}.cinema-skip{background:#c34c3c;color:#fff}.cinema-layer:not(.chapter-title) .cinema-content p{color:#eee}
@media(max-width:700px){.keyart:after{background:linear-gradient(0deg,#090a0b 0%,#090a0be8 15%,#090a0b66 55%,transparent 85%)}.is-lobby .keyart{background-position:65% center;filter:grayscale(.85) brightness(.65) contrast(1.22)}.lobby-copy{bottom:110px}.lobby-copy h1,.lobby-copy h1>span:not(.title-period){font-size:58px;letter-spacing:2px}.lobby-subtitle{font-size:18px;line-height:1.8}.lobby-start .primary{letter-spacing:2px;border-radius:2px;clip-path:none}.scene-vignette{background:linear-gradient(0deg,#111213,transparent 30%,transparent 65%,#11121388)}#footer{background:linear-gradient(transparent,#111213 35%)}.mission-hud{border-radius:3px;border-left:3px solid #bc5140}.clue-open #right-panel{background:#222526fa;border-radius:6px 6px 0 0}.personal-task,.event-card,.feedback-card,.result-card,.modal,.repair-terminal{border-radius:5px}.event-card{border-top:1px solid #8885}.role-hero{height:290px;min-height:290px}.role-select-header h2{color:#aaa}.role-hero-caption h3{font-size:38px}.story-shot{height:240px;background-position:65% 40%}.chapter-title .cinema-content h2{font-size:68px;letter-spacing:5px}.chapter-title .cinema-content p{font-size:27px}.chapter-title .cinema-content>span{font-size:17px}.button,.guided-investigate,.footer-action .button{border-radius:3px}}
.personal-mode #stage-overlay{display:flex;align-items:center}.personal-mode .personal-task{flex-shrink:0}@media(max-width:700px){.personal-mode #stage-overlay{align-items:flex-start}}
/* Dialogue first, then a distinct consequence reveal. */
.reply-scene{width:min(600px,100%);margin:auto;background:#191b1c;border:1px solid #72787555;overflow:hidden}.reply-cast{height:270px;position:relative;background:#292b2b;overflow:hidden}.reply-cast .portrait.hero{width:100%;height:100%;border:0;border-radius:0;background-size:300% 200%;filter:grayscale(.7);mask-image:linear-gradient(#000 45%,transparent)}.reply-cast>span{position:absolute;bottom:18px;left:24px;color:white;font-weight:700;font-size:22px}.reply-script{padding:28px}.reply-script>span{color:#d78474;letter-spacing:3px}.reply-script>p{font-size:24px;line-height:1.8;color:#f4f1eb}.reply-script .reply-wait{font-size:16px;color:#aaa;line-height:1.6}.decision-backdrop{position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:20px;background:#050606cf;backdrop-filter:blur(9px);overflow:auto}.decision-dialog{width:min(540px,100%);padding:34px;background:#232726;border:1px solid #8ea291;border-top:5px solid #a2b8a6;box-shadow:0 24px 90px #000;animation:decision-arrive .35s ease-out}.decision-dialog.warn,.decision-dialog.bad{background:#2b2020;border-color:#cb6351}.decision-dialog h2{font-size:30px;line-height:1.4;margin:20px 0}.decision-dialog p,.decision-dialog summary{font-size:19px;line-height:1.8;color:#eee}.decision-dialog .feedback-symbol{margin:22px 0 0;width:60px;height:60px}.decision-dialog details{margin:18px 0;color:#c8c9c5}.decision-dialog .feedback-stats{margin:22px 0;display:flex;gap:25px}.decision-dialog .feedback-stats b{font-size:25px;color:#fff}.decision-stamp{color:#d6ded6;font-size:15px;letter-spacing:3px}.decision-dialog.bad .decision-stamp,.decision-dialog.warn .decision-stamp{color:#ec907c}@keyframes decision-arrive{from{transform:translateY(24px) scale(.96);opacity:0}to{transform:none;opacity:1}}
.event-resources{display:flex;justify-content:space-between;gap:12px;margin:12px 0 22px}.event-resources .text-link{font-size:15px;min-height:44px;text-decoration:underline;text-underline-offset:5px}.risk-patient{height:230px;position:relative;background:linear-gradient(90deg,#111c,#1113),url('./assets/hospital-scene.png') 58% 40%/cover;filter:grayscale(.7);display:flex;align-items:end;margin-bottom:18px}.risk-patient>div{padding:22px}.risk-patient span{color:#eee;font-size:16px}.risk-patient h2{font-size:29px;line-height:1.45;margin:12px 0}.risk-patient b{font-size:14px;background:#992e25;padding:5px 9px;color:#fff}.risk-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.risk-chip{display:flex;text-align:left;flex-direction:column;gap:9px;background:#191b1d;border:1px solid #7a837755;padding:14px;color:#eee;min-height:94px}.risk-chip span{color:#b5bbb7;font-size:15px}.risk-chip b{font-size:18px;line-height:1.5}.risk-chip.active{background:#3a2926;border-color:#d77460}.risk-detail{padding:18px 0}.risk-detail h3{font-size:21px}.risk-detail p{font-size:18px;line-height:1.8}.care-chain{margin:12px 0 24px;padding:18px;background:#1117;border:1px solid #aaa4}.care-chain ol{display:flex;list-style:none;margin:18px 0;padding:0;gap:5px}.care-chain li{flex:1;min-width:0}.care-chain li button{width:100%;display:flex;flex-direction:column;gap:9px;align-items:center;background:#ffffff07;border:1px solid #ffffff20;color:#ddd;padding:12px 1px;min-height:72px}.care-chain li button b{font-size:16px;font-family:monospace}.care-chain li button span{font-size:15px}.care-chain li button.active{border-color:#de7965;background:#733d2d66;color:#fff}.care-chain article h3{font-size:21px;margin:16px 0 10px}.care-chain article p{font-size:18px;line-height:1.8}.care-chain>small{font-size:14px;line-height:1.7;color:#aaa;display:block}.outcome-mode #scene{opacity:.12}.outcome-mode #stage-overlay{background:#090a0b;display:flex;align-items:center;min-height:80vh}.outcome-mode #scene-top,.outcome-mode #left-panel,.outcome-mode #right-panel{display:none}.ending-reveal{max-width:690px;width:100%;padding:48px 32px;margin:auto;color:#f0eeea}.ending-clock{font-family:monospace;letter-spacing:8px;font-size:20px;color:#aaa}.ending-signal{margin:25px 0}.ending-signal svg{width:100%;height:60px;fill:none;stroke:#b1c3b4;stroke-width:2;stroke-dasharray:480;animation:trace-line 2.2s ease-out both}.ending-reveal.injury .ending-signal svg{stroke:#d15c49}.ending-label{font-size:19px;color:#c4d4c7}.injury .ending-label{color:#f18f7b}.ending-reveal h2{font-family:'Songti SC',serif;font-size:clamp(36px,6vw,58px);line-height:1.4;margin:22px 0}.ending-reveal>p{font-size:21px;line-height:1.85}.ending-reveal blockquote{border-left:3px solid #b45744;margin:25px 0;padding:12px 20px;font-size:23px;line-height:1.8;background:#ffffff05}.ending-reveal blockquote span{display:block;color:#aaa;font-size:16px;margin-top:12px}.ending-reveal .ending-cost{font-size:18px;color:#b9bebb}.fiction-label{display:block;color:#a9afab;font-size:13px;line-height:1.7;margin:18px 0}.ending-reveal>.button{margin-top:20px}.result-outcome{display:inline-block;margin:18px 0;color:#f3ac97;font-size:22px;font-weight:bold}.legacy-story{display:none}.motto-card{text-align:left;margin:32px 0;padding:26px 22px;border-top:2px solid #c35340;border-bottom:1px solid #ffffff30;background:#1117}.motto-card>span{font-size:14px;color:#aaa;letter-spacing:1px}.motto-card h3{font-family:'Songti SC',serif;font-size:28px;margin:14px 0 24px}.motto-card p{display:flex;gap:12px;font-size:21px;line-height:1.8;margin:14px 0;color:#ede8df}.motto-card p b{color:#bd7360;font-size:13px;font-family:monospace;padding-top:7px}.motto-card small{display:block;font-size:13px;line-height:1.7;color:#aaa;margin-top:18px}.motto-card .button{margin-top:12px}.reduced-motion .decision-dialog,.reduced-motion .ending-signal svg{animation:none}@keyframes trace-line{from{stroke-dashoffset:480}to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.decision-dialog,.ending-signal svg{animation:none}}
@media(max-width:700px){.reply-scene{margin:0}.reply-cast{height:300px}.reply-script{padding:24px}.reply-script>p{font-size:23px}.decision-backdrop{padding:16px}.decision-dialog{padding:25px 22px;max-height:calc(100dvh - 32px);overflow:auto}.decision-dialog h2{font-size:27px}.decision-dialog p{font-size:19px}.ending-reveal{padding:45px 22px}.outcome-mode #stage-overlay{min-height:calc(100dvh - 80px)}.ending-reveal h2{font-size:39px}.ending-reveal>p{font-size:19px}.motto-card{padding:24px 15px}.motto-card p{font-size:18px;gap:8px;white-space:nowrap}.event-resources .text-link{font-size:15px}.risk-grid{gap:8px}.risk-chip{padding:12px}.care-chain{padding:12px}.risk-patient h2{font-size:27px}}
.reply-scene,.ending-reveal{pointer-events:auto}.outcome-mode #footer{display:none}

@media(max-width:700px){.outcome-mode #stage-overlay{padding-top:65px;padding-bottom:24px}.ending-reveal{padding-top:35px}.ending-reveal h2{font-size:36px}.ending-reveal .ending-signal{margin:18px 0}.ending-reveal blockquote{font-size:21px}}
