:root {
  --forest: #102f31;
  --forest-2: #17494a;
  --forest-3: #246663;
  --paper: #f3f0e6;
  --paper-2: #e9e6da;
  --white: #fffdf7;
  --ink: #173638;
  --muted: #748482;
  --line: rgba(28, 67, 66, .15);
  --orange: #ed9163;
  --orange-dark: #c96745;
  --mint: #82b8a9;
  --gold: #d7b56c;
  --red: #c75a4c;
  --shadow: 0 25px 80px rgba(8, 39, 39, .15);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: var(--paper); font-family: Manrope, "Noto Sans SC", sans-serif; }
button, a { font: inherit; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
.hidden { display: none !important; }
.noise { position: fixed; z-index: 20; inset: 0; opacity: .035; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }

.game-header { position: fixed; z-index: 10; top: 0; left: 0; right: 0; height: 76px; display: flex; align-items: center; justify-content: space-between; padding: 0 42px; color: white; background: rgba(16,47,49,.96); border-bottom: 1px solid rgba(255,255,255,.1); backdrop-filter: blur(16px); }
.game-brand { display: flex; align-items: center; gap: 13px; }.game-brand b,.game-brand small { display:block; }.game-brand b { font-size:12px; letter-spacing:.13em; }.game-brand small { margin-top:3px; color:#8db5ae; font-size:9px; }
.brand-symbol { display:flex; align-items:end; gap:3px; width:29px; height:25px; transform:skew(-14deg); }.brand-symbol i { display:block; width:7px; background:white; }.brand-symbol i:first-child{height:13px}.brand-symbol i:nth-child(2){height:24px}.brand-symbol i:last-child{height:18px;background:var(--orange)}
.header-actions { display:flex; align-items:center; gap:17px; }.save-status { display:flex; align-items:center; gap:7px; color:#9fbdb8; font-size:9px; }.save-status i { width:5px;height:5px;border-radius:50%;background:#67bc9b; }.circle-button { width:31px;height:31px;border:1px solid rgba(255,255,255,.15);border-radius:50%;color:#b6ccc8;background:transparent;cursor:pointer; }.exit-link { padding-left:17px;border-left:1px solid rgba(255,255,255,.15);color:#c7d8d4;font-size:10px; }

main { min-height:100vh; padding-top:76px; }
.intro-screen { position:relative; min-height:calc(100vh - 76px); overflow:hidden; display:grid; grid-template-columns:1fr 1fr; align-items:center; padding:70px clamp(45px,8vw,135px) 105px; color:white; background:var(--forest); }
.intro-screen::before { content:""; position:absolute; width:720px;height:720px;left:-390px;bottom:-500px;border-radius:50%;background:var(--orange);opacity:.17;filter:blur(1px); }.intro-screen::after { content:""; position:absolute; inset:auto 0 0; height:1px;background:rgba(255,255,255,.08); }
.intro-copy { position:relative; z-index:2; max-width:630px; }.kicker { margin:0 0 24px;color:#91beb3;font-family:"DM Mono",monospace;font-size:10px;letter-spacing:.2em; }.intro-copy h1 { margin:0;font-size:clamp(75px,9vw,138px);font-weight:700;line-height:.83;letter-spacing:-.08em; }.intro-copy h1 em { color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.65);font-style:normal; }.intro-subtitle { margin:27px 0 16px;font-size:19px;font-weight:600;letter-spacing:.08em; }.intro-description { max-width:540px;margin:0;color:#aec9c3;font-size:12px;line-height:1.9; }.intro-actions { display:flex;align-items:center;gap:22px;margin-top:34px; }.primary-button,.secondary-button { min-height:48px;padding:0 24px;border:0;border-radius:4px;font-weight:700;font-size:11px;cursor:pointer;transition:.2s; }.primary-button { color:var(--forest);background:var(--orange);box-shadow:0 13px 35px rgba(237,145,99,.16); }.primary-button:hover { transform:translateY(-2px);background:#f3a077; }.primary-button span { margin-left:20px;font-size:15px; }.secondary-button { border:1px solid var(--line);background:white; }.text-button { padding:10px 0;border:0;color:#bdd0cc;background:transparent;font-size:10px;cursor:pointer; }.compliance-note { margin-top:38px;color:#668e88;font-size:8px; }
.intro-visual { position:relative; z-index:1; width:min(560px,42vw);aspect-ratio:1;margin-left:auto; }.radar-ring { position:absolute;inset:50% auto auto 50%;border:1px solid rgba(255,255,255,.1);border-radius:50%;transform:translate(-50%,-50%); }.ring-1{width:80%;height:80%}.ring-2{width:58%;height:58%}.ring-3{width:34%;height:34%;border-color:rgba(237,145,99,.32)}.intro-visual::before,.intro-visual::after{content:"";position:absolute;left:10%;right:10%;top:50%;height:1px;background:rgba(255,255,255,.08)}.intro-visual::after{top:10%;bottom:10%;left:50%;width:1px;height:auto}
.hospital-card { position:absolute;z-index:2;left:50%;top:50%;width:150px;height:105px;padding:18px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.18);background:rgba(21,72,72,.72);box-shadow:var(--shadow);backdrop-filter:blur(8px); }.hospital-card span,.hospital-card small{display:block;color:#82aaa4;font-family:"DM Mono",monospace;font-size:7px;letter-spacing:.1em}.hospital-card b{display:block;margin:10px 0 4px;font-size:28px;color:white}.route-card{position:absolute;z-index:2;display:flex;align-items:center;gap:8px;width:166px;padding:12px;border:1px solid rgba(255,255,255,.12);background:rgba(16,47,49,.8);font-size:9px}.route-card i{width:7px;height:7px;border-radius:50%;background:var(--orange)}.route-card b{margin-left:auto;color:#668d87;font-family:"DM Mono"}.route-a{left:2%;top:24%}.route-b{right:0;bottom:20%}.route-b i{background:var(--mint)}.pulse-dot{position:absolute;left:50%;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);border:2px solid white;border-radius:50%;box-shadow:0 0 0 10px rgba(237,145,99,.12);animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 24px rgba(237,145,99,0)}}
.intro-stats { position:absolute;z-index:2;left:clamp(45px,8vw,135px);bottom:35px;display:flex;align-items:center;gap:24px; }.intro-stats div{display:flex;align-items:baseline;gap:7px}.intro-stats b{font-family:"DM Mono";font-size:18px}.intro-stats span{color:#7ca29c;font-size:8px}.intro-stats>i{width:35px;height:1px;background:rgba(255,255,255,.16)}

.game-screen { min-height:calc(100vh - 76px); display:grid; grid-template-columns:220px minmax(520px,1fr) 250px; background:#eeeade; }
.mission-rail,.status-rail { padding:32px 24px;background:#e7e4d9; }.mission-rail{border-right:1px solid var(--line)}.status-rail{border-left:1px solid var(--line)}.mission-label{margin-bottom:20px;color:#889591;font-family:"DM Mono";font-size:8px;letter-spacing:.2em}.mission-list{position:relative;display:grid;gap:12px}.mission-list::before{content:"";position:absolute;left:16px;top:22px;bottom:22px;width:1px;background:#cbd2cd}.chapter-marker{position:relative;z-index:1;display:flex;gap:11px;opacity:.38;transition:.3s}.chapter-marker.active{opacity:1}.chapter-marker>span{display:grid;place-items:center;width:32px;height:32px;flex:none;border:1px solid #9db2ad;border-radius:50%;background:#e7e4d9;font-family:"DM Mono";font-size:9px}.chapter-marker.active>span{color:white;border-color:var(--forest);background:var(--forest)}.chapter-marker b,.chapter-marker small{display:block}.chapter-marker b{font-size:9px}.chapter-marker small{margin-top:2px;color:var(--muted);font-size:7px;line-height:1.4}.mission-meta{margin-top:25px;padding-top:17px;border-top:1px solid var(--line)}.mission-meta small{color:var(--muted);font-size:8px}.mission-meta p{font-size:9px;line-height:1.6}
.story-stage { position:relative;max-width:950px;width:100%;margin:0 auto;padding:34px clamp(28px,4vw,66px) 55px; }.scene-topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.scene-topline>div:first-child span,.scene-topline>div:first-child b{display:block}.scene-topline span{color:var(--orange-dark);font-family:"DM Mono";font-size:8px;letter-spacing:.12em}.scene-topline b{margin-top:4px;font-size:11px}.node-counter{display:flex;align-items:center;gap:8px;color:#a1aaa6;font-family:"DM Mono"}.node-counter span{color:var(--ink);font-size:14px}.node-counter i{width:25px;height:1px;background:#aeb8b3}.node-counter small{font-size:8px}
.dialogue-panel{display:grid;grid-template-columns:145px 1fr;min-height:275px;overflow:hidden;color:white;background:var(--forest);box-shadow:0 20px 55px rgba(18,54,53,.13)}.npc-portrait{position:relative;overflow:hidden;display:grid;place-items:center;background:linear-gradient(145deg,#285b59,#143a3b)}.npc-portrait::before{content:"";position:absolute;width:110px;height:110px;border:1px solid rgba(255,255,255,.13);border-radius:50%}.npc-portrait span{position:relative;z-index:1;display:grid;place-items:center;width:74px;height:74px;border-radius:50%;color:#ffcfb1;background:rgba(237,145,99,.15);font-size:37px;font-weight:700}.npc-portrait i{position:absolute;left:20px;right:20px;bottom:22px;height:3px;background:linear-gradient(90deg,var(--orange) 36%,rgba(255,255,255,.1) 36%)}.portrait-lines{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 20px,rgba(255,255,255,.025) 20px 21px)}.dialogue-content{padding:31px 36px}.npc-title{display:flex;align-items:baseline;gap:11px}.npc-title span{font-size:16px;font-weight:700}.npc-title small{color:#85aaa3;font-size:8px}.npc-action{margin:14px 0 5px;color:var(--orange);font-size:8px}.dialogue-content blockquote{margin:0;padding:0;border:0;font-family:"Noto Sans SC";font-size:clamp(15px,1.5vw,19px);font-weight:500;line-height:1.85;letter-spacing:.01em}
.decision-area{margin-top:24px}.decision-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:12px}.decision-heading span{color:var(--orange-dark);font-family:"DM Mono";font-size:7px;letter-spacing:.14em}.decision-heading h2{margin:4px 0 0;font-size:15px}.decision-heading>small{color:#8b9793;font-size:8px}.choice-list{display:grid;gap:10px}.choice-button{position:relative;width:100%;display:grid;grid-template-columns:42px 1fr 22px;align-items:center;gap:13px;padding:15px 17px;border:1px solid var(--line);border-radius:2px;background:rgba(255,253,247,.75);text-align:left;cursor:pointer;transition:.2s}.choice-button:hover{border-color:#799d95;background:white;transform:translateX(3px);box-shadow:0 9px 25px rgba(26,70,67,.08)}.choice-button:disabled{cursor:default;transform:none}.choice-button.selected{border-color:var(--forest-3);background:#e7f0ea}.choice-button.rejected{opacity:.38}.choice-letter{display:grid;place-items:center;width:34px;height:34px;border:1px solid #b8c6c1;border-radius:50%;font-family:"DM Mono";font-size:10px}.choice-button.selected .choice-letter{color:white;border-color:var(--forest);background:var(--forest)}.choice-text{font-size:10px;line-height:1.75}.choice-arrow{color:#92a19d;font-size:15px}
.outcome-panel{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:14px;margin-top:15px;padding:16px 18px;border-left:3px solid var(--mint);background:#dfece5;animation:slideIn .35s ease}@keyframes slideIn{from{opacity:0;transform:translateY(8px)}}.outcome-panel.danger{border-color:var(--red);background:#f2e2dc}.outcome-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:white;background:var(--forest-3)}.danger .outcome-icon{background:var(--red)}.outcome-copy>div{display:flex;gap:10px;align-items:center}.outcome-copy span{font-size:8px;font-weight:700}.outcome-copy b{color:var(--orange-dark);font-size:8px}.outcome-copy h3{margin:4px 0;font-size:12px}.outcome-copy p{margin:0;color:#627572;font-size:8px;line-height:1.6}.continue-button{height:38px;padding:0 16px;border:0;color:white;background:var(--forest);font-size:9px;cursor:pointer}.continue-button span{margin-left:9px}
.status-rail{display:flex;flex-direction:column;gap:18px}.trust-card,.state-card,.intel-card{padding:18px;background:rgba(255,253,247,.65);border:1px solid var(--line)}.trust-head{display:flex;align-items:end;justify-content:space-between}.trust-head span,.rail-heading span,.intel-card>span{color:var(--muted);font-family:"DM Mono";font-size:7px;letter-spacing:.14em}.trust-head b{font-size:27px}.trust-meter{position:relative;height:7px;margin-top:15px;overflow:hidden;background:#d9ddd7}.trust-meter>i{position:relative;z-index:2;display:block;width:30%;height:100%;background:linear-gradient(90deg,var(--orange),var(--mint));transition:width .5s}.danger-zone{position:absolute;left:20%;top:0;width:1px;height:100%;background:rgba(161,55,45,.5)}.trust-scale{display:flex;justify-content:space-between;margin-top:6px;color:#9aa5a1;font-size:7px}.rail-heading{display:flex;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--line)}.rail-heading small{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;color:white;background:var(--forest);font-size:7px}.state-list{display:grid;gap:7px;margin-top:11px}.state-pill{display:flex;align-items:center;gap:7px;padding:7px;color:#54706b;background:#e4eee8;font-size:8px}.state-pill::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--mint)}.state-pill.negative{color:#8f5b4c;background:#f2e5df}.state-pill.negative::before{background:var(--red)}.empty-state{margin:15px 0;color:#a1aaa7;font-size:8px;line-height:1.6}.intel-card{margin-top:auto}.intel-card>span{color:var(--orange-dark)}.intel-card p{margin:10px 0 0;font-size:9px;line-height:1.7}

.ending-screen{position:relative;min-height:calc(100vh - 76px);display:grid;place-items:center;overflow:hidden;padding:50px 20px;background:var(--forest)}.ending-aura{position:absolute;width:650px;height:650px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 90px rgba(255,255,255,.018),0 0 0 180px rgba(255,255,255,.012)}.ending-card{position:relative;z-index:2;width:min(720px,100%);padding:45px;color:var(--ink);background:var(--white);box-shadow:var(--shadow);text-align:center}.ending-seal{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 20px;border-radius:50%;color:white;background:var(--forest);font-size:25px}.ending-card>.kicker{margin-bottom:10px;color:var(--orange-dark)}.ending-card h1{margin:0;font-size:44px;letter-spacing:-.05em}.ending-card>p:not(.kicker){max-width:500px;margin:12px auto 23px;color:var(--muted);font-size:10px;line-height:1.8}.ending-score{display:flex;justify-content:center;align-items:center;gap:27px;padding:18px;border-block:1px solid var(--line)}.ending-score div{min-width:90px}.ending-score b,.ending-score span{display:block}.ending-score b{font-size:22px}.ending-score span{margin-top:3px;color:var(--muted);font-size:7px}.ending-score>i{width:1px;height:29px;background:var(--line)}.journey-review{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin:22px 0}.review-step{display:flex;align-items:center;gap:5px;padding:6px 8px;background:#edf2ed;font-size:7px}.review-step.bad{background:#f2e4de}.review-step b{font-family:"DM Mono"}.ending-actions{display:flex;justify-content:center;align-items:center;gap:14px}.ending-actions .text-button{color:var(--muted)}.ending-card.failure .ending-seal{background:var(--red)}
.chapter-transition{position:fixed;z-index:50;inset:0;display:grid;place-content:center;color:white;background:var(--forest);text-align:center;animation:chapterIn .5s ease}.chapter-transition span{color:var(--orange);font-family:"DM Mono";font-size:10px;letter-spacing:.2em}.chapter-transition h2{margin:12px 0 8px;font-size:42px}.chapter-transition p{color:#9dbbb5;font-size:11px}@keyframes chapterIn{from{opacity:0}}

@media(max-width:1050px){.game-screen{grid-template-columns:170px minmax(480px,1fr) 210px}.mission-rail,.status-rail{padding:30px 18px}.dialogue-panel{grid-template-columns:115px}.dialogue-content{padding:27px}.intro-screen{padding-inline:50px}}
@media(max-width:820px){.game-header{height:66px;padding:0 18px}.game-header .save-status,.circle-button{display:none}main{padding-top:66px}.intro-screen{min-height:calc(100vh - 66px);grid-template-columns:1fr;padding:55px 26px 110px}.intro-copy h1{font-size:78px}.intro-visual{position:absolute;right:-160px;top:80px;width:420px;opacity:.45}.intro-description{max-width:430px}.intro-stats{left:26px}.game-screen{grid-template-columns:1fr}.mission-rail{display:none}.status-rail{grid-row:1;display:grid;grid-template-columns:1fr 1fr;padding:13px 20px;border:0;border-bottom:1px solid var(--line)}.trust-card,.state-card{padding:11px}.intel-card{display:none}.state-list{display:flex;overflow:auto;margin-top:7px}.state-pill{white-space:nowrap}.story-stage{padding:23px 20px 45px}.dialogue-panel{min-height:230px}}
@media(max-width:540px){.game-brand small{display:none}.exit-link{font-size:9px}.intro-screen{align-items:start;padding-top:70px}.intro-copy h1{font-size:67px}.intro-visual{right:-230px;top:170px}.intro-actions{align-items:flex-start;flex-direction:column;gap:7px}.intro-stats{gap:11px}.intro-stats>i{width:15px}.status-rail{grid-template-columns:1fr}.state-card{display:none}.dialogue-panel{grid-template-columns:1fr}.npc-portrait{height:82px}.npc-portrait::before{width:65px;height:65px}.npc-portrait span{width:46px;height:46px;font-size:22px}.npc-portrait i{display:none}.dialogue-content{padding:22px}.npc-title{align-items:flex-start;flex-direction:column;gap:3px}.choice-button{grid-template-columns:34px 1fr 12px;padding:13px 11px;gap:9px}.choice-letter{width:29px;height:29px}.outcome-panel{grid-template-columns:36px 1fr}.continue-button{grid-column:1/-1;width:100%}.ending-card{padding:34px 18px}.ending-score{gap:8px}.ending-score div{min-width:72px}.ending-actions{flex-direction:column}.ending-actions>*{width:100%}.journey-review{justify-content:flex-start}}
