:root{color-scheme:dark;--ink:#eaf0e9;--muted:#9eafb2;--panel:#13232bf5;--line:#526d7059;--accent:#9ddec9;--gold:#e0c88e;--danger:#e6a291;--ui:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#0b141a;color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased}body{overscroll-behavior:none}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:1px solid var(--line);background:#22343a;cursor:pointer;padding:13px 18px;min-height:44px;transition:background .15s,border-color .15s,transform .15s}button:hover{background:#31484d;border-color:#a7c6be80}button:active{transform:translateY(1px)}button:disabled{opacity:.35;cursor:default}button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button.primary{color:#132b29;background:var(--accent);border-color:var(--accent);font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:32px}button.primary:hover{background:#c0eddf}button.primary span{font-size:20px;font-weight:400}button.quiet{background:transparent;border-color:transparent;color:#adbfbd}button.quiet:hover{color:var(--ink);background:#d0e6da0b}button.compact{padding:8px 16px;min-height:40px}button.icon-button{font-family:system-ui;font-size:23px;width:44px;height:44px;padding:0;background:#12252aa3;border-color:#c6dfd92b}.danger-text{color:var(--danger)!important}kbd{font-family:ui-monospace,monospace;font-size:11px;font-weight:400;white-space:nowrap;border:1px solid #a4c3bc45;color:#d1dcd3;padding:2px 5px;border-radius:2px;background:#172d32a6}[hidden]{display:none!important}a{color:var(--accent);text-underline-offset:4px}p{line-height:1.8}h1,h2,p{margin-top:0}h2{font-size:30px;font-weight:500;letter-spacing:2px;margin-bottom:20px}.eyebrow,.tiny-label{font-family:ui-monospace,monospace;text-transform:uppercase;letter-spacing:2px;font-size:10px;color:var(--muted)}.eyebrow{display:block;margin-bottom:16px;letter-spacing:3px}.fine{color:var(--muted);font-size:12px;line-height:1.8}.menu-actions{display:grid;gap:9px}.menu-actions button{text-align:left}.confirm-actions{display:flex;gap:12px;flex-wrap:wrap}#campaign-app{position:relative;width:100%;height:100svh;isolation:isolate}#stage{position:absolute;top:0;right:0;bottom:0;left:0;outline:none}#stage canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges}#edge-shade{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(#071218b8,#07121852 22%,transparent 35%,transparent 84%,#0712185c);z-index:1}#hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}#hud button{pointer-events:auto}.hud-top{position:absolute;top:max(23px,env(safe-area-inset-top));left:max(28px,env(safe-area-inset-left));right:max(28px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:flex-start}.mission-cluster{min-width:170px}.mission-line{display:flex;gap:12px;align-items:center;text-shadow:0 2px 5px #061015}.mission-line b{color:var(--accent);font-family:ui-monospace,monospace;font-size:18px;font-weight:400;border-left:3px solid var(--accent);padding-left:10px}.mission-line span{font-size:15px;letter-spacing:2px}.health-line{display:flex;align-items:center;gap:10px;margin-top:11px}.health-line .tiny-label{font-size:8px;letter-spacing:1px}#health{display:flex;gap:3px;height:6px}#health i{width:15px;background:var(--accent)}#health i.empty{background:#a7c0bb23}#health.low i:not(.empty){background:var(--danger)}.hud-right{display:flex;gap:10px;align-items:center}.score-block{display:flex;flex-direction:column;align-items:flex-end;padding-right:9px;position:relative}.score-block .tiny-label{font-size:9px;letter-spacing:1px}.score-block strong{font:22px ui-monospace,monospace;letter-spacing:2px;line-height:1.3}#combo{position:absolute;top:50px;right:10px;font:13px ui-monospace,monospace;color:var(--gold);white-space:nowrap}.route-line{position:absolute;top:97px;left:29px;width:220px;display:grid;gap:6px;font-size:11px;color:#c8d9d3}#segment-name{letter-spacing:1px}#objective{font-size:10px;color:#a3b8b5;line-height:1.6}.route-track{height:2px;background:#b8d8c924;width:156px;margin-top:3px}.route-track i{height:100%;display:block;width:0;background:var(--accent)}#pressure-wrap{position:absolute;top:155px;left:29px;display:flex;align-items:center;gap:7px;font-size:9px;color:#d7b49a;opacity:.8}#pressure-wrap b{font-weight:400;font-family:ui-monospace,monospace}.pressure-track{height:3px;width:79px;background:#d3b49a24}.pressure-track i{display:block;height:100%;background:#d9a66c;width:0}#radio{position:absolute;top:30px;left:50%;transform:translate(-50%);max-width:410px;width:37%;padding:10px 15px 11px;border-left:2px solid #a2dac6;background:#0e202be8;display:grid;grid-template-columns:auto 1fr;column-gap:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.radio-wave{font-size:12px;color:var(--accent);letter-spacing:1px}#radio b{font-size:11px;color:#bed9d0;font-weight:500}#radio p{grid-column:1/3;margin:5px 0 0;font-size:13px;line-height:1.65;color:#e5eae2}#interact-prompt{position:absolute;left:50%;bottom:20%;transform:translate(-50%);padding:9px 13px;display:flex;align-items:center;gap:9px;background:#142b31eb;border:1px solid #cbe2d14d;font-size:12px}#interact-prompt kbd{background:#bfe2d7;color:#17332f}#notice{position:absolute;left:50%;top:22%;transform:translate(-50%);max-width:min(75%,500px);font-size:12px;color:var(--gold);text-align:center;background:#0f202bdd;padding:9px 16px}#abilities{position:absolute;left:28px;bottom:26px;display:flex;gap:17px}#abilities>div{min-width:66px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px;font-size:10px;color:#bdd2cb}#abilities kbd{font-size:9px;padding:2px 4px}#abilities i{grid-column:1/3;height:2px;background:var(--accent);transform-origin:left;transform:scaleX(1)}#abilities>div.cooldown{opacity:.55}#keyboard-help{position:absolute;bottom:26px;right:28px;display:flex;gap:13px;color:#b9c6bf;font-size:10px;opacity:.75}#keyboard-help span{white-space:nowrap}#keyboard-help kbd{font-size:9px;padding:1px 3px;margin-right:3px}#conversation{position:absolute;z-index:6;bottom:max(64px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:min(820px,calc(100% - 48px));display:grid;grid-template-columns:72px 1fr auto;gap:19px;align-items:center;background:#112630f5;border:1px solid #a2c3bf5c;border-left:3px solid var(--accent);box-shadow:0 15px 50px #0004;padding:20px 22px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.portrait-frame{width:64px;height:80px;background:#213c41;overflow:hidden;border-bottom:2px solid var(--accent)}#dialogue-portrait{image-rendering:pixelated;width:64px;height:85px;object-fit:contain}.speaker-line{display:flex;align-items:center;justify-content:space-between;gap:12px}#speaker{font-size:14px;letter-spacing:2px;color:var(--accent);font-weight:500}#dialogue-count{font:10px ui-monospace,monospace;color:#7d9799}#speech{margin:9px 0 0;font-size:15px;line-height:1.75;min-height:26px}.dialogue-actions{display:grid;gap:5px}.dialogue-actions button{font-size:12px}.dialogue-actions .primary span{font:10px ui-monospace,monospace}dialog{color:var(--ink);background:var(--panel);border:1px solid var(--line);padding:34px;width:min(440px,calc(100vw - 36px));max-height:calc(100svh - 40px);overflow:auto;box-shadow:0 30px 100px #0006}dialog::backdrop{background:#08131bbd;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}dialog p{font-size:14px;color:#b9c8c7}.title-dialog{width:100%;max-width:none;height:100%;max-height:none;top:0;right:0;bottom:0;left:0;margin:0;border:0;box-shadow:none;padding:0;background:linear-gradient(90deg,#0b1824f0,#0b1824e6 33%,#0b182482 62%,#0b182408)}.title-dialog::backdrop{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.title-content{position:absolute;left:max(7.5vw,24px);top:50%;transform:translateY(-50%);max-width:520px}.brand-mark{display:flex;align-items:center;gap:10px;color:#a8c8c1;margin-bottom:50px}.brand-mark svg{width:24px;height:31px}.brand-mark span{font:8px/1.8 ui-monospace,monospace;letter-spacing:1.6px}.brand-mark b{font-size:7px;font-weight:400;color:#718f90}.title-content .eyebrow{color:#a4c6bd;font-size:10px;margin-bottom:18px}.title-content h1{font-size:clamp(42px,4.8vw,72px);font-weight:400;letter-spacing:9px;line-height:1.25;margin:0 0 24px;color:#edf1e9}.title-content h1 span{display:block;font-size:clamp(18px,2vw,28px);letter-spacing:13px;margin-top:14px;color:#c3d3ca}.title-line{font-size:14px;line-height:1.9;color:#9eb4b4;margin-bottom:27px}.title-actions{display:flex;gap:10px}.title-actions .primary{min-width:205px;font-size:14px}.title-actions .quiet{font-size:12px}.chapter-strip{display:flex;gap:24px;margin-top:39px;font-size:10px;color:#9caeae}.chapter-strip span{display:flex;flex-direction:column;gap:7px;letter-spacing:1px}.chapter-strip b{font:10px ui-monospace,monospace;color:#a5c4b9}.title-footnote{margin:26px 0 0;font-size:9px;letter-spacing:1px;color:#6e898e}.about-link{position:absolute;right:30px;bottom:24px;background:transparent;border:0;font-size:11px;color:#a0b7b5}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:25px;padding-top:22px;border-top:1px solid var(--line);font-size:11px;color:#a7bbb7}.control-grid kbd{font-size:10px;display:inline-block;min-width:56px;margin-right:5px;text-align:center}.menu-dialog .fine{font-size:11px;margin:18px 0 0}.journal-dialog{width:min(650px,calc(100vw - 30px));padding:29px}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start}.dialog-heading h2{margin-bottom:20px}.dialog-heading .eyebrow{margin-bottom:10px}#chapter-list{display:grid;gap:10px}#chapter-list button{display:grid;grid-template-columns:47px 1fr auto;align-items:center;gap:12px;padding:16px;text-align:left;background:#192f37}#chapter-list .chapter-num{font:21px ui-monospace,monospace;color:var(--accent)}#chapter-list .chapter-copy{display:grid;gap:6px}#chapter-list strong{font-size:15px;letter-spacing:1px;font-weight:500}#chapter-list small{font-size:11px;color:var(--muted);line-height:1.5}#chapter-list .chapter-state{font-size:10px;color:#b8cebf;white-space:nowrap}.journal-note{padding:21px 0;font-size:12px}.journal-note b{font-weight:500;color:var(--accent)}.journal-note p{margin:8px 0;font-size:13px}.journal-note small{font-size:11px;color:#8ea6a4;line-height:1.7;display:block}.journal-dialog details{border-top:1px solid var(--line);padding:15px 0;font-size:12px}.journal-dialog summary{cursor:pointer;color:#a5c1ba;min-height:30px;line-height:30px}.journal-dialog details p{font-size:12px}.journal-dialog details a{display:block;margin:8px 0;font-size:12px}.journal-dialog #new-campaign{padding-left:0;font-size:11px}.result-dialog{width:min(490px,calc(100vw - 36px));padding:40px}.result-dialog h2{font-size:34px;line-height:1.4}.result-dialog>button{width:100%;margin-top:10px}.result-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin:25px 0}.result-stats div{display:grid;gap:10px}.result-stats span{font-size:10px;color:var(--muted)}.result-stats b{font:23px ui-monospace,monospace;color:#c1dfd2;font-weight:400}#touch-controls{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4}#touch-controls button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;padding:0;background:#142d35ad;border-color:#cae1d439;color:#d6e5d8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}#touch-controls button.held{background:#9bd9c993;color:#0e2827}.touch-move{position:absolute;bottom:max(19px,env(safe-area-inset-bottom));left:max(19px,env(safe-area-inset-left));display:flex;align-items:flex-end;gap:7px}.touch-move button{width:57px;height:57px;font-size:17px}.touch-move button[data-action=slide]{height:45px;width:45px;font-size:12px}.touch-actions{position:absolute;right:max(19px,env(safe-area-inset-right));bottom:max(19px,env(safe-area-inset-bottom));display:grid;grid-template-columns:47px 47px 58px;grid-template-rows:44px 52px;gap:7px}.touch-actions button{font-size:10px}.touch-actions .touch-main{border-color:#b6e0c669!important;background:#2151499e!important;font-size:13px}.touch-actions .attack{grid-column:2/4}.touch-actions #touch-interact{grid-column:1;grid-row:2}.touch-actions button[data-action=jump]{grid-column:3;grid-row:1}#load-error{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;background:#101e26;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center}#load-error p{color:var(--muted);max-width:600px;font-size:13px}.is-touch #keyboard-help{display:none}.is-touch #abilities{bottom:140px;left:26px;gap:13px}.is-touch #abilities>div{min-width:48px;font-size:9px}.is-touch #abilities kbd{display:none}.is-touch #interact-prompt{bottom:140px}.is-touch #conversation{bottom:132px}.is-touch.dialogue-active #touch-controls{display:none}@media(max-height:560px)and (orientation:landscape){.hud-top{top:14px;left:19px;right:19px}.mission-line span{font-size:12px}.mission-line b{font-size:15px}.health-line{margin-top:8px}.health-line .tiny-label{display:none}.route-line{top:77px;left:19px;font-size:10px;width:200px}#objective{max-width:175px;font-size:9px}#pressure-wrap{top:126px;left:19px}.hud-right{gap:7px}.score-block strong{font-size:18px}.score-block .tiny-label{font-size:8px}.hud-right button{width:36px;height:36px;min-height:36px;font-size:20px}#radio{top:14px;max-width:320px;width:39%;padding:8px 11px}#radio p{font-size:11px}#radio b{font-size:10px}#notice{top:30%;font-size:10px}.is-touch #abilities{bottom:124px;left:20px}.touch-move{left:19px;bottom:15px}.touch-move button{width:50px;height:50px}.touch-move button[data-action=slide]{width:40px;height:40px}.touch-actions{right:19px;bottom:15px;grid-template-columns:43px 43px 52px;grid-template-rows:40px 46px;gap:5px}#touch-controls button{min-height:40px}.is-touch #interact-prompt{bottom:116px}#conversation,.is-touch #conversation{bottom:20px;max-width:600px;padding:15px;gap:13px;grid-template-columns:50px 1fr auto}#speech{font-size:13px}.portrait-frame{width:48px;height:62px}#dialogue-portrait{width:48px;height:64px}.title-content{left:7vw}.brand-mark{margin-bottom:21px}.title-content h1{font-size:40px;letter-spacing:7px;margin-bottom:13px}.title-content h1 span{font-size:17px;letter-spacing:10px;margin-top:8px}.title-content .eyebrow{font-size:8px;margin-bottom:10px}.title-line{font-size:11px;margin-bottom:16px;line-height:1.7}.title-actions .primary{min-width:175px;font-size:12px;min-height:42px;padding:9px 15px}.title-actions .quiet{font-size:11px}.chapter-strip{margin-top:20px;gap:20px;font-size:9px}.title-footnote{margin-top:15px;font-size:8px}.about-link{font-size:9px;bottom:15px;right:15px}dialog{padding:25px;max-height:calc(100svh - 24px)}h2{font-size:24px}.menu-actions{gap:6px}.menu-actions button{padding:10px 14px;min-height:40px}.control-grid{gap:9px;padding-top:15px;margin-top:16px}.result-dialog{padding:25px}.result-dialog h2{font-size:27px}.result-stats{padding:17px 0;margin:18px 0}.title-dialog{padding:0;max-height:none}}@media(orientation:portrait){.hud-top{top:max(20px,env(safe-area-inset-top));left:20px;right:20px}.mission-cluster{min-width:150px}.mission-line span{font-size:12px;letter-spacing:1px}.mission-line b{font-size:16px}.health-line .tiny-label{display:none}.hud-right{gap:7px}.hud-right button{width:36px;height:40px;min-height:40px;font-size:21px}.score-block{padding-right:0}.score-block strong{font-size:15px;letter-spacing:1px}.score-block .tiny-label{font-size:8px}.route-line{top:93px;left:20px;width:calc(100% - 40px)}#objective{font-size:10px}.route-track{width:100%}#pressure-wrap{left:20px;top:153px}#radio{top:184px;left:20px;transform:none;width:calc(100% - 40px);max-width:none}#radio p{font-size:12px}.is-touch #abilities{bottom:175px;left:20px;gap:19px}.is-touch #interact-prompt{bottom:240px}#conversation,.is-touch #conversation{bottom:40px;width:calc(100% - 28px);grid-template-columns:44px 1fr;padding:17px;gap:13px}.portrait-frame,#dialogue-portrait{width:42px;height:56px}.dialogue-actions{grid-column:1/3;display:flex;justify-content:flex-end}#speech{font-size:14px}#speaker{font-size:13px}#keyboard-help{display:none}.touch-move{bottom:60px;left:16px;gap:5px}.touch-move button{width:45px;height:52px}.touch-move button[data-action=slide]{width:36px;height:43px}.touch-actions{bottom:49px;right:16px;grid-template-columns:42px 42px 49px;grid-template-rows:43px 49px;gap:5px}.title-dialog{background:linear-gradient(90deg,#0b1824ef,#0b1824be)}.title-content{left:28px;top:47%;max-width:calc(100% - 50px)}.brand-mark{margin-bottom:45px}.title-content h1{font-size:53px;letter-spacing:7px}.title-content h1 span{font-size:23px;letter-spacing:10px}.title-line{font-size:13px;margin-bottom:29px}.title-actions{flex-direction:column;align-items:flex-start;gap:5px}.title-actions .primary{min-width:210px}.title-actions .quiet{padding-left:0}.chapter-strip{gap:27px;margin-top:30px;font-size:9px}.title-footnote{font-size:8px;line-height:1.8;max-width:245px}.about-link{right:20px;bottom:20px;font-size:10px}.result-dialog{padding:27px}.result-dialog h2{font-size:28px}.result-stats{gap:8px}.result-stats b{font-size:20px}.journal-dialog{padding:22px}#chapter-list button{padding:13px;grid-template-columns:42px 1fr auto;gap:8px}#chapter-list strong{font-size:13px}#chapter-list small{font-size:10px}#chapter-list .chapter-num{font-size:17px}.menu-dialog{padding:26px}#notice{top:35%;max-width:85%}}@media(prefers-reduced-motion:reduce){button{transition:none}dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}.storage-notice{max-width:360px;font-size:11px!important;line-height:1.7;color:var(--gold)!important;margin:12px 0 0}#radio-history{max-height:260px;overflow:auto;padding-right:8px}.radio-entry{padding:10px 0;border-bottom:1px solid #9cbcaf16}.radio-entry b{font-size:11px;color:var(--accent);font-weight:500}.radio-entry p{font-size:12px;line-height:1.8;margin:5px 0}.route-line,#pressure-wrap{text-shadow:0 1px 3px #071821,0 0 5px #071821}.is-touch #touch-controls button,.is-touch .hud-right button{min-width:44px;min-height:44px}@media(max-height:560px)and (orientation:landscape){.is-touch{--touch-bottom:max(15px,env(safe-area-inset-bottom))}.is-touch #stage{bottom:calc(97px + var(--touch-bottom))}.is-touch .touch-move{bottom:var(--touch-bottom);left:max(19px,env(safe-area-inset-left))}.is-touch .touch-actions{bottom:var(--touch-bottom);right:max(19px,env(safe-area-inset-right))}.is-touch #abilities{left:50%;bottom:var(--touch-bottom);transform:translate(-50%);width:min(190px,calc(100% - 380px));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.is-touch #abilities>div{min-width:0;grid-template-columns:1fr;text-align:center;align-content:end}.is-touch #abilities i{grid-column:1/-1}}#dialogue-portrait[data-art=original-base-crop]{image-rendering:auto}#equipment-count{position:absolute;bottom:109px;left:36px;color:var(--accent);font-size:11px;letter-spacing:1px}#attack-ready.empty{opacity:.45}.controls-dialog{width:min(520px,calc(100% - 32px));text-align:left}.controls-dialog .control-grid{margin-top:18px;margin-bottom:22px}.controls-dialog .primary{width:100%}.touch-actions .attack{grid-column:2;grid-row:2}.touch-actions button[data-action=recall]{grid-column:3;grid-row:2}.is-touch #equipment-count{bottom:181px;left:26px}@media(max-height:560px)and (orientation:landscape){.controls-dialog{padding:20px 26px}.controls-dialog h2{font-size:22px}.controls-dialog .control-grid{margin:10px 0;gap:9px;padding-top:10px}.controls-dialog p{margin:9px 0;font-size:11px}.is-touch #equipment-count{bottom:112px;left:20px}.is-touch #abilities{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(orientation:portrait){#equipment-count{left:20px}.is-touch #equipment-count{bottom:214px;left:20px}.hud-right{gap:4px}.mission-cluster{min-width:125px}.mission-line span{font-size:10px}.controls-dialog .control-grid{grid-template-columns:1fr 1fr;gap:13px}.controls-dialog kbd{font-size:10px}}#result-copy{white-space:pre-line}.controls-dialog .fine{margin:12px 0 22px}.controls-dialog .primary{margin-top:4px}#radio-text{white-space:pre-line}#dialogue-portrait[data-art=ai-adapted-field-operator]{image-rendering:auto}
