:root{color-scheme:dark;--bg:#0d1c29;--panel:#163140;--light:#244755;--edge:#476a76;--text:#f1faf8;--muted:#c2d3d9;--mint:#6cf0bd;--gold:#ffda8d;font-family:system-ui,-apple-system,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 50% 0%,#255461 0%,#0d1c29 60%);color:var(--text);line-height:1.6}button,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.53}a{color:var(--mint)}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.shell{max-width:960px;padding:0 18px 20px;margin:auto}.topbar{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:10px}.home-link{font-size:.92rem;font-weight:750;text-decoration:none}.topbar strong{font-size:1rem}.icon-button{min-width:42px;height:42px;color:var(--text);border:1px solid var(--edge);border-radius:12px;background:var(--panel)}.hero{text-align:center;padding:35px 20px;background:linear-gradient(140deg,#275963,#163446 70%,#122a3a);border:1px solid var(--edge);border-radius:26px}.eyebrow{font-size:.78rem;letter-spacing:.16em;color:var(--mint);font-weight:800}.mascot{font-size:4rem;margin:8px}.hero h1{font-size:clamp(1.85rem,5.6vw,3.1rem);line-height:1.23;margin:8px 0}.hero h1 span{display:block;color:var(--gold)}.hero p{max-width:620px;color:#e5f0ec;margin:8px auto 18px}.pills,.actions,.effects{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}.pills span{padding:4px 13px;border:1px solid var(--edge);border-radius:99px;font-size:.86rem}.section-head{margin:27px 0 12px}.section-head h2,.panel h2{font-size:1.24rem;margin:0 0 8px}.section-head p{font-size:.92rem;color:var(--muted);margin:0}.route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.route{border:1px solid var(--edge);border-radius:18px;background:var(--panel);color:var(--text);padding:20px;text-align:left;display:flex;flex-direction:column;gap:8px;min-height:240px;transition:transform .15s,border-color .15s}.route:hover{transform:translateY(-3px);border-color:var(--mint)}.route .icon{font-size:2.3rem}.route .name{font-size:1.16rem;font-weight:800}.route .desc{font-size:.9rem;color:var(--muted);flex:1}.route .go{color:var(--mint);font-weight:750}.panel{border:1px solid var(--edge);border-radius:20px;background:linear-gradient(150deg,#193b48,#122938);padding:21px;margin:17px 0;box-shadow:0 12px 35px #0002}.muted,.disclaimer{color:var(--muted);font-size:.88rem}.row-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.row-head h2{margin:0}.ending-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:14px}.ending{border:1px solid var(--edge);background:#102633;text-align:center;border-radius:12px;padding:8px 2px;min-height:87px}.ending .icon{display:block;font-size:1.5rem}.ending small{display:block;font-size:.65rem;line-height:1.25;margin-top:5px}.ending.locked{filter:grayscale(1);opacity:.52}.primary-btn,.secondary-btn,.danger-btn{padding:12px 18px;min-height:46px;border-radius:13px;font-weight:750}.primary-btn{border:1px solid var(--mint);background:var(--mint);color:#0b2a34}.primary-btn:not(:disabled):hover{background:#b5ffe3}.secondary-btn{border:1px solid var(--edge);background:var(--light);color:var(--text)}.secondary-btn:hover{border-color:var(--mint)}.danger-btn{border:1px solid #bb7078;background:#642c39;color:white}.hud{margin-top:3px}.chapter-counter{color:var(--gold)}.progress{height:9px;border-radius:9px;background:#304955;overflow:hidden;margin:14px 0}.progress>span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--mint),#9ad8ff);transition:width .2s}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stat{background:#102a36;border:1px solid #3d6268;border-radius:13px;padding:8px;text-align:center;font-size:.83rem;color:var(--muted)}.stat strong{display:block;font-size:1.45rem;color:var(--gold)}.case{padding:clamp(18px,4vw,30px)}.scene-icon{font-size:3.2rem}.case h2{font-size:clamp(1.55rem,4vw,2rem);margin:10px 0}.story{font-size:1.08rem;color:#e4f1f2;line-height:1.85}.separator{border-top:1px solid var(--edge);margin:23px 0}.case h3{font-size:1.06rem;margin:0}.text-btn{background:none;border:0;color:var(--gold);padding:8px;font-weight:750}.hint{border-radius:10px;background:#6c562b;padding:12px 14px;color:#fff3d8;font-size:.88rem}.choices{display:grid;gap:12px;margin-top:15px}.choice{width:100%;min-height:69px;border:1px solid #44737b;background:#244550;color:var(--text);border-radius:15px;padding:15px;display:flex;align-items:center;text-align:left;gap:11px}.choice:hover:not(:disabled){border-color:var(--mint);background:#305763}.choice.selected{opacity:1;background:#255748;border-color:var(--mint)}.choice .letter{min-width:32px;height:32px;background:#ffffff1b;border-radius:10px;display:grid;place-items:center;font-weight:800}.feedback{margin-top:19px;padding:16px;border-left:4px solid var(--mint);border-radius:10px;background:#19473f}.feedback strong{color:var(--mint)}.feedback p{margin:9px 0}.effects{justify-content:flex-start}.effect{border-radius:30px;border:1px solid #629989;padding:2px 10px;font-size:.84rem}.play-actions{display:flex;gap:12px;justify-content:space-between;position:sticky;bottom:0;z-index:2;background:linear-gradient(0deg,#0d1c29 85%,transparent);padding:14px 0 max(14px,env(safe-area-inset-bottom))}.play-actions button{min-width:135px}.disclaimer{text-align:center}.result-hero{text-align:center;padding:34px 20px}.trophy{font-size:4rem}.result-hero h1{font-size:clamp(1.7rem,5vw,2.5rem);margin:8px}.result-hero p{font-size:1.03rem}.advice{padding:14px;border-radius:12px;background:#245247}.case-history{padding-left:23px}.case-history li{margin:12px 0}.case-history small{display:block;color:var(--muted)}.end-actions{padding:13px 0 25px}footer{padding:20px;text-align:center;font-size:.78rem;color:var(--muted)}.dialog{color:var(--text);background:#193a48;border:1px solid #71949d;border-radius:20px;padding:20px;max-height:85dvh;overflow:auto;width:min(94vw,630px);box-shadow:0 20px 60px #0009}.dialog::backdrop{background:#000b}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-head h2{font-size:1.2rem}.setting{display:flex;align-items:center;gap:10px;margin:15px 0}.setting input{height:20px;width:20px;accent-color:var(--mint)}.dialog textarea,.dialog select{width:100%;padding:10px;border:1px solid var(--edge);border-radius:10px;background:#102936;color:var(--text);margin:7px 0}.dialog textarea{resize:vertical}.dialog label:not(.setting){display:block;margin-top:12px}.dialog-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}.glossary dt{color:var(--gold);font-weight:800;margin:12px 0 3px}.glossary dd{margin:0;color:#d8e9ed}.reduce-motion *, .reduce-motion *::before,.reduce-motion *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}@media(max-width:680px){.shell{padding:0 12px 15px}.topbar{min-height:60px}.topbar strong{font-size:.89rem}.hero{padding:24px 14px}.route-grid{grid-template-columns:1fr}.route{min-height:unset;padding:18px}.route .desc{flex:unset}.panel{padding:16px}.ending-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stats{gap:5px}.stat{font-size:.7rem;padding:6px 2px}.stat strong{font-size:1.2rem}.choice{padding:13px}.play-actions button{flex:1;min-width:0}.dialog{padding:15px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* V2 Reviewer hardening: visible persistence feedback, decision cost preview, keyboard focus */
.save-notice{margin:8px 0 16px;padding:12px 15px;border:2px solid #ffd78d;border-radius:12px;background:#4a3522;color:#fff3d6;font-weight:650}
.resource-note{margin:4px 0 12px;font-size:.83rem}
.choice{flex-wrap:wrap}
.choice .decision-hints{display:flex;flex-wrap:wrap;gap:6px;flex-basis:100%;padding-left:44px}
.choice .decision-hints small{font-size:.76rem;border-radius:8px;padding:2px 7px;background:#ffffff18;color:#e4f6f2}
.choice .decision-hints .down{color:#ffd99b}
.choice .decision-hints .up{color:#a0f4cc}
#sceneTitle:focus,#resultTitle:focus,#feedback:focus{outline:3px solid #ffd78d;outline-offset:6px}
@media(max-width:390px){.choice .decision-hints{padding-left:0}}