:root{color-scheme:dark;--bg: #101417;--surface: #181e22;--surface-raised: #22292d;--ink: #f2ede3;--muted: #b5b3ac;--subtle: #8d9395;--gold: #dda65a;--gold-bright: #efbf7e;--line: #465057;--line-soft: #323b40;--danger: #ef9585;--safe: #b8cabb;--font-sans: "Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;--font-title: "Songti SC","SimSun","Noto Serif CJK SC",serif;--font-mono: "Cascadia Code","Consolas",monospace;--radius: 3px;--edge: clamp(20px,3.4vw,56px);--ease: cubic-bezier(.2,.7,.3,1);font-family:var(--font-sans);font-size:14px;color:var(--ink);background:var(--bg)}.high-contrast{--bg: #0d1114;--surface: #12181c;--surface-raised: #20282d;--ink: #fffaf0;--muted: #e3ded3;--subtle: #c7c9c6;--gold: #ffd08c;--line: #a2abae;--line-soft: #727e84}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}body{overflow:hidden}button,input,select{font:inherit}button{color:inherit;cursor:pointer;border:0;background:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}button:disabled{cursor:default}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold-bright);outline-offset:4px}button,input,select,summary{-webkit-touch-callout:none}button{transition:background-color .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease)}button:active:not(:disabled){opacity:.85}input,select{font-size:16px}[hidden]{display:none!important}#game-canvas{position:fixed;inset:0;width:100%;height:100%;outline:none;touch-action:none;display:block}#app{position:fixed;inset:0;pointer-events:none}#app button,#app a,#app input,#app select,#app summary,#app dialog{pointer-events:auto}.icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}.eyebrow,.small-label{font-size:11px;line-height:1.6;letter-spacing:1.8px;color:var(--gold)}.eyebrow{display:flex;align-items:center;gap:10px}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);flex-shrink:0}.button{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:52px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--radius);font-size:14px;line-height:1.6;text-align:left}.button.primary{background:var(--gold);color:var(--bg);border-color:var(--gold);font-weight:600}.button.primary:hover{background:var(--gold-bright);border-color:var(--gold-bright)}.button.secondary{background:var(--surface-raised)}.button.secondary:hover{background:#303a40;border-color:var(--muted)}.button.quiet{border-color:transparent;color:var(--muted)}.button.quiet:hover{background:var(--surface-raised);color:var(--ink)}.button:disabled{opacity:.5}.icon-button{display:grid;place-items:center;width:44px;height:44px;min-width:44px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.icon-button:hover{border-color:var(--gold);color:var(--gold)}kbd{display:inline-block;padding:2px 6px;border:1px solid #657079;border-radius:2px;background:#222b31;color:var(--ink);font:11px/1.5 var(--font-mono);white-space:nowrap}.game-dialog{width:min(540px,calc(100vw - 40px));max-height:calc(100dvh - 40px);margin:auto;padding:28px 30px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-top:2px solid var(--gold);border-radius:var(--radius);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 24px 80px #0006;scrollbar-width:thin;scrollbar-color:#778187 var(--surface)}.game-dialog.wide{width:min(920px,calc(100vw - 40px))}.game-dialog::backdrop{background:#090d11d6}.game-dialog[open]{animation:panel-in .18s var(--ease)}.panel-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.panel-top .eyebrow{font:10px/1.5 var(--font-mono);letter-spacing:1.7px}.panel-top .icon-button{background:transparent;border-color:transparent}.game-dialog h2{margin:22px 0 12px;font:400 clamp(25px,3vw,34px)/1.45 var(--font-title);letter-spacing:2px}.panel-description{margin:0 0 26px;max-width:62ch;color:var(--muted);font-size:14px;line-height:1.85}.dialog-feedback{margin:0 0 16px;padding:10px 12px;background:#dda65a12;border-left:2px solid var(--gold);color:var(--gold-bright);font-size:12px;line-height:1.8;flex-shrink:0}.panel-actions{display:flex;flex-direction:column;gap:10px}.game-dialog[data-kind=pause] .panel-actions{border-top:1px solid var(--line-soft);padding-top:22px}.game-dialog[data-kind=failed]{border-top-color:var(--danger)}.game-dialog[data-kind=failed] h2:before{content:"旅程中断 / ";display:block;color:var(--danger);font:11px/1.6 var(--font-sans);letter-spacing:2px;margin-bottom:8px}.result-detail{border-block:1px solid var(--line-soft);padding:18px 0;margin-bottom:24px}.result-detail>span{font-size:11px;color:var(--gold);letter-spacing:1px}.result-detail strong{display:block;margin-top:9px;font-size:20px;font-weight:500}.result-detail p{color:var(--muted);line-height:1.8;font-size:13px}.ending-art{display:flex;align-items:center;gap:26px;border-block:1px solid var(--line-soft);padding:24px 0;margin:24px 0;color:var(--gold)}.ending-art>.icon{width:46px;height:60px}.ending-art>span{font:52px/1 var(--font-mono)}.ending-art small{display:block;margin-top:12px;font:10px/1.6 var(--font-sans);letter-spacing:6px}.ending-stats{display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:16px}.ending-stats span{display:block;margin-bottom:8px;font-size:11px;color:var(--muted)}.ending-stats strong{font-size:14px;font-weight:500}.game-dialog blockquote{margin:24px 0;color:var(--ink);font:18px/1.8 var(--font-title);letter-spacing:2px}.chapter-list{border-top:1px solid var(--line-soft)}.chapter-list button{display:grid;grid-template-columns:40px 1fr 20px;gap:0 16px;width:100%;min-height:84px;padding:16px 10px;border-bottom:1px solid var(--line-soft);text-align:left}.chapter-list button:hover:not(:disabled){background:var(--surface-raised)}.chapter-list button>span:first-child{grid-row:1/3;align-self:center;color:var(--gold);font:26px/1 var(--font-mono)}.chapter-list button>div{grid-row:1/3;align-self:center;min-width:0}.chapter-list strong{display:block;font-size:16px;line-height:1.5;font-weight:500}.chapter-list small{display:block;margin-top:6px;font:10px/1.5 var(--font-mono);color:var(--muted);letter-spacing:1px}.chapter-list .icon{width:18px;align-self:end}.chapter-list .chapter-state{font-size:10px;color:var(--muted);grid-column:3;white-space:nowrap;justify-self:center}.chapter-list button:disabled{color:var(--subtle)}.chapter-list button:disabled>span:first-child{color:var(--subtle)}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:24px}.help-grid h3,.source-list h3{font-size:15px;line-height:1.65;font-weight:500;color:var(--gold)}.help-grid p,.source-list p{font-size:13px;color:var(--muted);line-height:1.9}.source-list{padding-bottom:18px}.source-list h3:not(:first-child){margin-top:28px}.source-list a{color:var(--ink)}.code-label{display:block;margin-bottom:10px;color:var(--muted);font-size:13px}.code-input{width:100%;min-width:0;margin-bottom:24px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);color:var(--gold);background:var(--bg);text-align:center;font:32px/1.4 var(--font-mono);letter-spacing:12px}.loading{position:absolute;inset:0;padding:24px;display:grid;place-items:center;text-align:center;background:var(--bg);color:var(--ink);pointer-events:auto}.loading-frame{width:min(440px,100%);padding-block:30px;border-block:1px solid var(--line-soft)}.loading-frame .eyebrow{justify-content:center;font:10px/1.6 var(--font-mono);letter-spacing:2px}.loading-mark{margin:32px auto;width:56px;height:66px;color:var(--gold)}.loading-mark>.icon{width:100%;height:100%}.loading h1{font:400 38px/1.5 var(--font-title);letter-spacing:4px;margin:16px 0}.loading h1>span{color:var(--gold)}.loading p{font-size:14px;color:var(--muted);line-height:1.85}.loading-note{display:block;color:var(--subtle);font-size:12px;margin-top:24px}.loading .button{width:100%;margin-top:24px}.loading.is-error h1{font-size:28px;letter-spacing:1px}@keyframes panel-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal{0%{opacity:0}to{opacity:1}}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:700px){:root{--edge:16px}.game-dialog,.game-dialog.wide{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:20px}.game-dialog h2{margin-top:15px;font-size:27px}.panel-description{font-size:13px;margin-bottom:20px}.panel-top .eyebrow{font-size:9px;letter-spacing:1px}.help-grid{grid-template-columns:1fr;gap:8px}.ending-stats{gap:10px}.ending-stats strong{font-size:13px}.chapter-list button{gap:0 10px;padding-inline:4px;grid-template-columns:32px 1fr 20px}.chapter-list strong{font-size:14px}}.menu{position:absolute;inset:0;display:grid;grid-template-rows:auto 1fr auto;padding:max(24px,env(safe-area-inset-top)) var(--edge) max(20px,env(safe-area-inset-bottom));overflow-y:auto;pointer-events:auto;background:linear-gradient(90deg,#101417fa,#101417ed 28%,#101417a3 55%,#10141745),linear-gradient(0deg,#101417ed 0%,transparent 40%,#10141745 100%)}.menu-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:42px}.brand{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;font:600 13px/1.4 var(--font-sans);letter-spacing:3px}.brand>.icon{width:25px;height:32px;color:var(--gold)}.brand small{display:block;margin-top:5px;color:var(--muted);font-size:10px;font-weight:400;letter-spacing:1px}.building{font:10px/1.5 var(--font-mono);letter-spacing:2px;color:var(--muted)}.building b{margin-left:20px;padding-left:20px;border-left:1px solid var(--line);color:var(--ink);font-size:16px;font-weight:400}.menu-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.6fr);align-items:center;gap:32px;padding:38px 3.8vw 40px}.menu-copy{width:min(100%,640px)}.menu-copy>.eyebrow{margin:0 0 22px;color:var(--gold);font:10px/1.5 var(--font-mono);letter-spacing:2px}.menu h1{margin:0;color:var(--ink);font:400 clamp(48px,6.3vw,98px)/1.25 var(--font-title);letter-spacing:.09em;white-space:nowrap}.title-period{color:var(--gold)}.title-english{margin:12px 0 30px;font:11px/1.5 var(--font-sans);letter-spacing:9px;color:var(--muted)}.tagline{margin:0 0 12px;font-size:17px;line-height:1.8;letter-spacing:2px}.menu-description{margin:0;color:var(--muted);font-size:13px;line-height:1.9;letter-spacing:.5px}.menu-navigation{max-width:370px;margin-top:30px}.menu-actions{display:flex;flex-direction:column;gap:0}.menu-action{display:grid;grid-template-columns:24px minmax(0,1fr) 20px;align-items:center;gap:18px;width:100%;padding:13px 16px;min-height:68px;border:1px solid transparent;border-left:2px solid var(--line);text-align:left}.menu-action .action-index{color:var(--subtle);font:10px/1.6 var(--font-mono)}.action-copy{display:block;min-width:0}.action-copy strong{display:block;font-size:17px;letter-spacing:1px;font-weight:500}.action-copy small{display:block;margin-top:5px;font-size:11px;line-height:1.6;color:var(--muted)}.menu-action>.icon{width:19px}.menu-action.is-primary{background:var(--gold);border-color:var(--gold);color:var(--bg);border-radius:0 var(--radius) var(--radius) 0}.menu-action.is-primary .action-index,.menu-action.is-primary small{color:#30322d}.menu-action.is-primary:hover{background:var(--gold-bright);border-color:var(--gold-bright)}.menu-action:not(.is-primary):hover:not(:disabled){background:#252c30;border-left-color:var(--gold)}.menu-action:disabled{color:var(--subtle)}.menu-action:disabled small{color:var(--subtle)}.menu-action:disabled>.icon{opacity:.35}.menu-links{display:flex;flex-direction:column;border-left:2px solid var(--line)}.menu-links button{display:grid;grid-template-columns:24px 1fr 20px;align-items:center;gap:18px;min-height:44px;padding:10px 16px;color:var(--muted);font-size:13px;text-align:left}.menu-links button>span{font:10px/1.5 var(--font-mono);color:var(--subtle)}.menu-links button>.icon{width:16px;height:16px}.menu-links button:hover{color:var(--ink);background:#252c30}.difficulty{display:flex;max-width:370px;gap:8px;padding:0;margin:24px 0 0;border:0}.difficulty legend{color:var(--muted);font-size:10px;letter-spacing:2px;padding:0 0 9px}.difficulty-option{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;flex:1;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);font-size:12px;color:var(--muted)}.difficulty-option span{font-size:10px}.difficulty-option.selected{border-color:var(--gold);color:var(--gold);background:#dda65a0d}.difficulty-option:hover{background:#dda65a16}.difficulty-note{color:var(--muted);font-size:10px;line-height:1.7;margin:8px 0 0}.departure-note{justify-self:end;align-self:end;margin:0 0 15px;width:min(300px,100%);padding-left:24px;border-left:1px solid #b6b3a55e}.departure-time{display:block;font:200 clamp(64px,8vw,120px)/.9 var(--font-sans);letter-spacing:-7px;color:#e6e1d18c}.departure-time>span{font:20px/1 var(--font-mono);letter-spacing:0;margin-left:6px}.departure-rule{width:32px;height:2px;background:var(--gold);margin:28px 0 20px}.departure-note .small-label{font-size:10px}.departure-note strong{display:block;color:var(--ink);font:20px/1.7 var(--font-title);margin-top:10px;letter-spacing:1px}.departure-note p{font-size:12px;line-height:1.9;color:var(--muted)}.departure-route{display:flex;align-items:center;gap:8px;margin-top:25px;color:var(--muted);font:9px/1.6 var(--font-mono)}.departure-route>i{height:1px;background:var(--line);flex:1}.departure-route>.icon{width:20px;color:var(--gold)}.menu-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line-soft);padding-top:14px;color:var(--muted);font-size:10px;line-height:1.6;letter-spacing:.5px}.menu-footer>div{display:flex;align-items:center;gap:24px}.menu-footer button{min-height:44px;padding:8px 0;font-size:11px;color:var(--muted)}.menu-footer button:hover{color:var(--gold)}@media(min-width:1500px){.menu-stage{padding-left:5vw;padding-right:4vw}.menu-navigation{margin-top:34px}.menu h1{font-size:104px}}@media(max-height:950px)and (min-width:701px){.menu-stage{padding-block:18px}.menu-copy>.eyebrow{margin-bottom:10px}.menu h1{font-size:clamp(48px,5.4vw,78px)}.title-english{margin:8px 0 18px}.menu-navigation{margin-top:20px}.menu-action{min-height:60px;padding-block:9px}.difficulty{margin-top:18px}.menu-description br{display:none}.menu-description{font-size:12px}.tagline{font-size:16px;margin-bottom:6px}}@media(max-width:1000px){.menu-stage{grid-template-columns:minmax(0,1fr) 220px;padding-inline:0}.menu h1{font-size:clamp(48px,7vw,72px);letter-spacing:.05em}.departure-note{padding-left:18px}}@media(max-width:700px){.menu{padding:max(18px,env(safe-area-inset-top)) 24px max(16px,env(safe-area-inset-bottom));background:linear-gradient(90deg,#101417f5,#101417b8),linear-gradient(0deg,#101417ee,transparent)}.menu-header{min-height:40px}.brand{font-size:11px;letter-spacing:2px;gap:10px}.brand small{font-size:9px}.brand>.icon{width:23px}.building{font-size:9px;letter-spacing:.5px}.building b{margin-left:8px;padding-left:8px;font-size:14px}.menu-stage{display:block;padding:36px 0 28px}.menu-copy{width:100%}.menu-copy>.eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:17px}.menu h1{font-size:clamp(43px,11.5vw,76px);letter-spacing:.07em}.title-english{font-size:10px;letter-spacing:7px;margin:10px 0 24px}.tagline{font-size:15px;letter-spacing:1px}.menu-description{font-size:12px;line-height:1.8}.menu-description br{display:none}.menu-navigation{max-width:none;margin-top:24px}.menu-action{min-height:64px}.action-copy strong{font-size:16px}.menu-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-left:0;border-bottom:1px solid var(--line-soft);padding-top:4px}.menu-links button{display:flex;gap:7px;padding:10px 6px;min-height:48px;justify-content:center;font-size:12px}.menu-links button>.icon{display:none}.menu-links button>span{font-size:9px}.difficulty{max-width:none;margin-top:20px}.difficulty-option{padding:8px;gap:8px}.difficulty-option span{font-size:9px}.departure-note{display:none}.menu-footer{font-size:9px;gap:12px;padding-top:8px}.menu-footer>div{gap:14px}.menu-footer button{font-size:10px}}@media(max-width:380px){.menu{padding-inline:18px}.brand small{display:none}.menu-stage{padding-top:25px}.menu-copy>.eyebrow{font-size:8px}.menu h1{font-size:43px}.action-copy small{font-size:10px}.difficulty-option{gap:6px}.difficulty-note{font-size:9px}}@media(max-height:500px)and (min-width:701px){.menu{padding-block:14px}.brand small{display:none}.menu-header{min-height:28px}.menu-stage{display:block;padding:18px 0}.menu-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:32px;width:100%;max-width:none;min-width:0}.menu-copy>.eyebrow{grid-column:1;margin-bottom:8px}.menu h1{grid-column:1;grid-row:2;font-size:48px}.title-english{grid-column:1;grid-row:3;margin-bottom:12px}.tagline{grid-column:1;grid-row:4;font-size:14px}.menu-description{grid-column:1;grid-row:5;font-size:11px}.menu-navigation{grid-column:2;grid-row:1/6;margin:0}.menu-action{min-height:52px;padding-block:7px}.action-copy strong{font-size:14px}.action-copy small{font-size:10px}.menu-links{flex-direction:row}.menu-links button{display:block;padding:8px;text-align:center;font-size:11px;flex:1}.menu-links button>.icon,.menu-links button>span{display:none}.difficulty{grid-column:1;grid-row:6;margin-top:12px}.difficulty legend{padding-bottom:5px}.difficulty-option{min-height:44px}.difficulty-note{grid-column:1;grid-row:7;font-size:9px;margin-top:4px}.departure-note{display:none}.menu-footer{padding-top:4px}.menu-footer button{min-height:44px}}.hud{position:absolute;inset:0;background:linear-gradient(180deg,#0c1115a6,transparent 125px)}.hud-top{position:absolute;top:max(var(--edge),env(safe-area-inset-top));left:var(--edge);right:var(--edge);display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.area-label>span{display:block;color:var(--muted);font:10px/1.6 var(--font-mono);letter-spacing:1.3px}.area-label>strong{display:block;font-size:20px;font-weight:500;line-height:1.5;margin-top:5px;letter-spacing:1px}.route-progress{display:flex;gap:5px;margin-top:12px}.route-progress i{width:23px;height:2px;background:#737b7d88}.route-progress i.visited{background:var(--gold)}.clock{position:absolute;left:50%;transform:translate(-50%);text-align:center;padding:0 16px}.clock>span{display:block;font-size:10px;color:var(--muted);letter-spacing:1.4px}.clock>strong{display:block;margin-top:3px;font:36px/1.25 var(--font-mono);letter-spacing:2px}.clock>small{display:block;margin-top:6px;font-size:10px;color:var(--muted)}.hud-tools{display:flex;gap:8px}.hud-tools .icon-button{background:#141b20f0}.hud-tools .muted{color:var(--gold)}.objective{position:absolute;top:146px;left:var(--edge);width:286px;background:#141b20f2;border:1px solid var(--line);border-left:2px solid var(--gold);border-radius:var(--radius)}.objective summary{position:relative;list-style:none;padding:16px 36px 16px 16px;cursor:pointer}.objective summary::-webkit-details-marker{display:none}.objective .small-label{display:block;font-size:10px}.objective summary>strong{display:block;margin-top:7px;font-size:17px;font-weight:500;line-height:1.6}.disclosure-mark{position:absolute;top:18px;right:14px;color:var(--muted);font:16px/1 var(--font-mono)}.objective[open] .disclosure-mark{transform:rotate(45deg)}.objective-details{padding:0 16px 16px}.objective-details>span{font-size:12px;color:var(--muted);line-height:1.8}.objective ul{padding:12px 0 0;margin:12px 0 0;border-top:1px solid var(--line-soft);list-style:none}.objective li{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted);line-height:1.9;margin:5px 0 0}.objective li>i{width:13px;height:13px;border:1px solid #8a9395;display:grid;place-items:center;font-size:9px;font-style:normal;flex-shrink:0}.objective li.complete{color:var(--safe)}.objective li.complete>i{border-color:var(--safe)}.alert-indicator{position:absolute;top:112px;right:var(--edge);display:grid;grid-template-columns:18px minmax(0,1fr) 24px;align-items:center;gap:8px;width:212px;padding:12px 14px;color:var(--safe);background:#141b20f2;border:1px solid var(--line);border-radius:var(--radius);font-size:11px}.alert-indicator>.icon{width:17px;height:17px}.alert-indicator>#alert-number{text-align:right;font:11px/1.6 var(--font-mono)}.alert-track{grid-row:2;grid-column:1/-1;height:3px;background:#69717455}.alert-track>i{display:block;height:3px;background:currentColor;transition:width .1s linear}.alert-indicator[data-level=warning]{color:var(--gold-bright);border-color:#ac7b3e}.alert-indicator[data-level=danger]{color:var(--danger);border-color:#b77565;background:#2b1e1cf2}.minimap{position:absolute;left:var(--edge);bottom:76px;width:142px;padding:10px;background:#141b20f2;border:1px solid var(--line);border-radius:var(--radius)}.minimap>div{display:flex;justify-content:space-between;padding-bottom:9px;font-size:10px;color:var(--muted)}.minimap canvas{display:block;width:120px;height:150px}.map-legend{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:3px;padding-top:8px;color:var(--muted);font-size:8px;white-space:nowrap}.map-legend i,.map-legend b,.map-legend em{display:inline-block;width:4px;height:4px;background:var(--ink);border-radius:50%}.map-legend b{background:#d2a673}.map-legend em{background:var(--gold);border-radius:0}.inventory{position:absolute;right:var(--edge);bottom:76px;display:flex;align-items:center;gap:9px;color:var(--ink);background:#141b20e6;padding:10px 13px;border-left:1px solid var(--gold);font-size:11px}.inventory>.icon{width:17px;height:17px;color:var(--gold)}.desktop-controls{position:absolute;bottom:22px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:20px;color:var(--muted);font-size:10px;white-space:nowrap;padding:7px 13px;background:#141b20e6;border-radius:var(--radius)}.desktop-controls>span{display:flex;align-items:center;gap:6px}.interact-prompt{position:absolute;bottom:100px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:14px 20px 16px;width:max-content;max-width:min(430px,calc(100% - 32px));min-height:70px;overflow:hidden;background:#191f23f5;color:var(--ink);border:1px solid var(--gold);border-radius:var(--radius);text-align:left}.interact-key{display:grid;place-items:center;width:34px;height:34px;color:var(--bg);background:var(--gold);font:16px/1 var(--font-mono);border-radius:2px;flex-shrink:0}.interact-prompt strong{display:block;font-size:15px;line-height:1.5;font-weight:500}.interact-prompt small{display:block;font-size:11px;color:var(--muted);line-height:1.65;margin-top:4px}.interaction-meter{position:absolute;left:0;right:0;bottom:0;height:3px;background:#dda65a20}.interaction-meter i{display:block;height:3px;background:var(--gold)}.touch-controls{display:none}.fps{position:absolute;bottom:25px;right:var(--edge);font:10px/1.6 var(--font-mono);color:var(--muted);background:#101417e6;padding:2px 5px}.region-intro{position:absolute;top:39%;left:50%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 40px);text-align:center;padding:22px 38px;background:#101417e8;border-block:1px solid #a49c7f6b;animation:reveal .2s var(--ease);z-index:10}.region-intro>span{font:10px/1.5 var(--font-mono);color:var(--gold);letter-spacing:4px}.region-intro strong{display:block;font:30px/1.5 var(--font-title);letter-spacing:3px;margin:12px 0}.region-intro p{color:var(--muted);font-size:12px;line-height:1.7;margin-bottom:0}.toast{position:absolute;top:116px;left:50%;transform:translate(-50%);width:max-content;max-width:min(540px,calc(100% - 40px));padding:12px 18px;color:var(--ink);background:#1b2328fa;border:1px solid var(--line);border-left:2px solid var(--gold);border-radius:var(--radius);font-size:12px;line-height:1.9;z-index:30;animation:reveal .15s var(--ease)}.discovered-vignette{position:absolute;inset:0;background:radial-gradient(ellipse,transparent 25%,#a2392c66);pointer-events:none;z-index:12}@media(max-height:700px)and (min-width:701px){.objective{top:122px}.minimap{width:116px;padding:8px;bottom:64px}.minimap canvas{width:98px;height:122px}.minimap .map-legend{display:none}.hud-top{top:22px}.desktop-controls{gap:12px;font-size:9px}.inventory{bottom:65px}.alert-indicator{top:93px}}@media(any-pointer:coarse),(max-width:700px),(max-width:1024px)and (max-height:500px){.hud-top{top:max(16px,env(safe-area-inset-top));left:16px;right:16px;gap:12px}.area-label>span{font-size:8px;letter-spacing:.6px}.area-label>strong{font-size:16px;margin-top:3px}.route-progress{margin-top:8px}.route-progress i{width:18px}.clock{position:relative;left:auto;transform:none;padding:0;margin-left:auto;text-align:right}.clock>span{font-size:9px;letter-spacing:.3px}.clock>strong{font-size:28px;margin-top:1px}.clock>small{display:none}.hud-tools{position:absolute;top:65px;right:0;gap:8px}.hud-tools .icon-button{width:44px;height:44px;min-width:44px}.hud-tools .icon{width:18px;height:18px}.objective{top:90px;left:16px;width:calc(100% - 200px);min-width:120px;max-width:280px}.objective summary{padding:11px 26px 11px 12px}.objective summary>strong{font-size:14px;line-height:1.55;margin-top:5px}.objective .small-label{font-size:9px}.objective-details{padding:0 12px 12px}.objective-details>span{font-size:11px}.objective ul{padding-top:8px;margin-top:8px}.objective li{font-size:10px}.disclosure-mark{font-size:13px;top:14px;right:10px}.alert-indicator{top:132px;right:16px;width:148px;min-height:52px;gap:6px;padding:9px 10px;font-size:10px;grid-template-columns:15px minmax(0,1fr) 18px}.alert-indicator>.icon{width:15px;height:15px}.alert-indicator>#alert-number{font-size:10px}.inventory{top:195px;bottom:auto;right:16px;max-width:148px;padding:8px;font-size:10px;line-height:1.5;gap:6px}.inventory>.icon{width:15px;height:15px}.desktop-controls{display:none}.touch-controls{display:block;position:absolute;inset:0;pointer-events:none}.joystick{--stick-size:min(var(--joystick-size,120px), calc(100vw - 220px) );position:absolute;left:max(18px,env(safe-area-inset-left));bottom:max(26px,env(safe-area-inset-bottom));width:var(--stick-size);height:var(--stick-size);display:grid;place-items:center;pointer-events:auto;touch-action:none;border:1px solid #a7aaa499;border-radius:50%;background:#171e22d9;opacity:var(--button-opacity,.8)}.joystick:before{content:"";position:absolute;inset:12px;border:1px dashed #a7aaa450;border-radius:50%}.joystick-knob{width:40%;height:40%;background:#a5a99e66;border:1px solid #b6bbb2;border-radius:50%}.joystick-label{position:absolute;bottom:11px;font-size:10px;color:var(--ink)}.touch-actions{position:absolute;right:max(18px,env(safe-area-inset-right));bottom:max(26px,env(safe-area-inset-bottom));display:grid;grid-template-columns:48px 48px 56px;grid-template-rows:48px 48px;gap:8px;opacity:var(--button-opacity,.8)}.touch-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;pointer-events:auto;touch-action:none;border:1px solid #9b9f9b;border-radius:8px;background:#192125f0;color:var(--ink);width:48px;height:48px}.touch-actions .icon{width:19px;height:19px}.touch-actions span{font-size:9px}.touch-actions .touch-interact{grid-column:3;grid-row:1/3;width:56px;height:104px;color:var(--bg);background:var(--gold);border-color:var(--gold)}.touch-actions [aria-pressed=true]{color:var(--gold);border-color:var(--gold);background:#3c3325}.touch-actions .used{opacity:.45}.interact-prompt{bottom:150px;min-height:60px;padding:10px 14px 12px;gap:10px;max-width:calc(100% - 32px)}.interact-prompt strong{font-size:13px}.interact-prompt small{font-size:10px}.interact-key{width:28px;height:28px;font-size:13px}.minimap{left:16px;bottom:170px;width:105px;padding:7px}.minimap canvas{width:89px;height:111px}.minimap>div{padding-bottom:6px;font-size:8px}.minimap .map-legend,.has-interaction .minimap,.has-tutorial .minimap{display:none}.region-intro{top:42%;padding:16px 24px}.region-intro strong{font-size:24px;margin-block:8px}.region-intro p{font-size:11px}.toast{top:245px;max-width:calc(100% - 32px);padding:9px 13px;font-size:11px}.hud:has(.objective[open]) .minimap{display:none}.fps{right:16px;bottom:3px;font-size:8px;max-width:calc(100% - 32px)}}@media(max-width:380px){.hud-top{left:14px;right:14px}.area-label>strong{font-size:14px}.objective{left:14px;width:calc(100% - 196px)}.alert-indicator,.inventory{right:14px;width:148px}.touch-actions{right:14px}.joystick{left:14px}}@media(max-height:500px)and (min-width:701px){.hud-top{top:12px}.area-label>strong{font-size:16px}.clock{position:absolute;left:50%;transform:translate(-50%);text-align:center;margin:0}.clock>strong{font-size:27px}.hud-tools{position:static}.alert-indicator{top:65px;width:184px;min-height:40px;grid-template-columns:16px 1fr 20px}.inventory{top:118px;width:auto;max-width:200px}.objective{top:90px;width:250px}.objective-details ul,.minimap{display:none}.joystick{width:100px;height:100px;bottom:18px}.touch-actions{bottom:18px}.interact-prompt{bottom:30px;max-width:calc(100% - 440px)}.toast{top:65px;max-width:360px}.region-intro{top:43%}.region-intro strong{font-size:23px}}.game-dialog[data-kind=settings]{height:min(740px,calc(100dvh - 40px));max-height:calc(100dvh - 24px);overflow:hidden}.game-dialog[data-kind=settings] #dialog-body{height:100%;display:flex;flex-direction:column;min-height:0}.game-dialog[data-kind=settings] h2{margin-top:16px;font-size:30px}.game-dialog[data-kind=settings] .panel-description{font-size:13px;margin-bottom:20px}.settings-layout{display:grid;grid-template-columns:150px minmax(0,1fr);grid-template-rows:minmax(0,1fr);flex:1;min-height:0;border-block:1px solid var(--line-soft)}.settings-tabs{display:flex;flex-direction:column;min-height:0;overflow-y:auto;gap:4px;padding:16px 16px 16px 0;border-right:1px solid var(--line-soft)}.settings-tabs button{display:flex;align-items:center;gap:12px;min-height:58px;padding:10px 12px;text-align:left;border-left:2px solid transparent;color:var(--muted)}.settings-tabs button>.icon{width:18px}.settings-tabs button>span{font-size:14px;line-height:1.5}.settings-tabs small{display:block;margin-top:3px;font:8px/1.5 var(--font-mono);letter-spacing:.8px}.settings-tabs button[aria-selected=true]{color:var(--gold);background:#dda65a12;border-left-color:var(--gold)}.settings-tabs button:hover{background:var(--surface-raised)}.settings-content{padding:22px 2px 24px 25px;overflow-y:auto;overscroll-behavior:contain;min-width:0;min-height:0;scrollbar-width:thin;scrollbar-color:#778187 var(--surface)}.settings-section-heading h3{font-size:20px;line-height:1.5;font-weight:500;margin:0 0 9px}.settings-section-heading p,.setting-help{font-size:12px;line-height:1.9;color:var(--muted);margin:0 0 18px}.setting-select{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:8px 18px;font-size:13px;border-bottom:1px solid var(--line-soft)}.setting-select select{min-height:44px;padding:8px 12px;min-width:136px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink);font-size:13px}.setting-feature{margin:16px 0 4px;padding:10px 14px;background:#dda65a0c;border-left:2px solid var(--gold)}.setting-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 24px;padding-top:4px}.setting-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:60px;padding-block:12px;border-bottom:1px solid var(--line-soft);cursor:pointer;font-size:12px;line-height:1.6}.setting-toggle>span{min-width:0}.setting-toggle small{display:block;font-size:11px;line-height:1.8;color:var(--muted);margin-top:5px}.setting-toggle input{appearance:none;flex-shrink:0;position:relative;width:38px;height:22px;border:1px solid #7b858c;border-radius:20px;margin:0;background:var(--bg);cursor:pointer}.setting-toggle input:before{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--muted);transition:transform .18s var(--ease)}.setting-toggle input:checked{border-color:var(--gold);background:#dda65a22}.setting-toggle input:checked:before{transform:translate(16px);background:var(--gold)}.setting-range{display:flex;flex-direction:column;gap:12px;min-width:0;padding:18px 0 12px;font-size:12px}.setting-range>span{display:flex;justify-content:space-between;gap:12px}.setting-range output{font:12px/1.6 var(--font-mono);color:var(--gold)}.setting-range input{width:100%;min-width:0;max-width:100%;height:26px;margin:0;accent-color:var(--gold);cursor:pointer}.setting-subtitle{font-size:14px;font-weight:500;margin:24px 0 8px}.keybindings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}.keybindings label{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;font-size:12px}.keybinding{min-height:44px;min-width:54px;max-width:120px;padding:8px;overflow-wrap:anywhere;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);font:11px/1.5 var(--font-mono)}.keybinding:hover{border-color:var(--gold);color:var(--gold)}.settings-footer{display:flex;align-items:center;gap:12px;padding-top:18px;flex-shrink:0}.settings-footer>span{margin-right:auto;color:var(--muted);font-size:11px}.settings-footer .button{min-width:120px;font-size:13px}.touch-diagram{display:flex;align-items:center;justify-content:center;gap:35px;padding:25px 0;color:var(--subtle)}.touch-diagram-stick,.touch-diagram-action{display:grid;place-items:center;width:84px;height:84px;border:1px solid var(--line);border-radius:50%;font-size:12px;color:var(--muted)}.touch-diagram-action{width:58px;height:58px;border-color:var(--gold);color:var(--gold);border-radius:12px}@media(max-width:700px){.game-dialog[data-kind=settings]{height:calc(100dvh - 24px);padding:16px 18px}.game-dialog[data-kind=settings] h2{font-size:24px;letter-spacing:1px;margin:10px 0 8px}.game-dialog[data-kind=settings] .panel-description{font-size:12px;margin-bottom:12px}.settings-layout{display:flex;flex-direction:column}.settings-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;border-right:0;border-bottom:1px solid var(--line-soft);padding:8px 0;flex-shrink:0}.settings-tabs button{min-width:0;min-height:48px;padding:8px 2px;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;text-align:center;border-left:0;border-bottom:2px solid transparent}.settings-tabs button>span{font-size:11px}.settings-tabs button>.icon{width:16px;height:16px}.settings-tabs small{display:none}.settings-tabs button[aria-selected=true]{border-left:0;border-bottom-color:var(--gold)}.settings-content{padding:18px 2px;flex:1}.settings-section-heading h3{font-size:18px}.settings-section-heading p{font-size:12px}.setting-grid{grid-template-columns:minmax(0,1fr);gap:0}.setting-toggle{min-height:56px;font-size:13px}.setting-range{padding-top:18px}.setting-feature{padding-inline:10px}.setting-select{font-size:13px}.setting-select select{min-width:130px}.settings-footer{padding-top:12px;gap:10px}.settings-footer>span{display:none}.settings-footer .button{min-width:0;min-height:48px;flex:1;padding-inline:12px;gap:10px}.settings-footer .button>span{white-space:nowrap}.keybindings{column-gap:16px}}@media(max-height:500px)and (min-width:701px){.game-dialog[data-kind=settings]{height:calc(100dvh - 24px);padding:12px 20px}.game-dialog[data-kind=settings] h2{font-size:23px;margin:6px 0}.game-dialog[data-kind=settings] .panel-description{margin-bottom:8px}.settings-tabs{padding-block:8px;gap:0}.settings-tabs button{min-height:40px;padding-block:6px}.settings-tabs small{display:none}.settings-content{padding-top:14px}.settings-footer{padding-top:10px}.settings-footer .button{min-height:44px;padding-block:8px}}.hud.has-tutorial .objective{display:none}.first-tutorial{position:absolute;top:146px;left:var(--edge);width:286px;color:var(--ink);background:#141b20f5;border:1px solid var(--line);border-left:2px solid var(--gold);border-radius:var(--radius)}.first-tutorial summary{display:block;position:relative;list-style:none;padding:15px 16px;cursor:pointer;pointer-events:auto}.first-tutorial summary::-webkit-details-marker{display:none}.tutorial-heading{display:flex;justify-content:space-between;gap:10px;color:var(--gold);font-size:10px;line-height:1.6;letter-spacing:1px}#tutorial-title{display:block;margin-top:8px;color:var(--ink);font-size:17px;font-weight:500;line-height:1.6}.tutorial-summary-note{position:absolute;right:16px;bottom:18px;font-size:10px;color:var(--muted)}.tutorial-summary-note i{display:inline-block;font:13px/1 var(--font-mono);font-style:normal;margin-left:4px}.first-tutorial[open] .tutorial-summary-note i{transform:rotate(45deg)}.tutorial-body{padding:0 16px 16px}.tutorial-steps{display:flex;justify-content:space-between;gap:7px;padding:13px 0;margin:0 0 12px;border-block:1px solid var(--line-soft);list-style:none;color:var(--muted);font-size:9px}.tutorial-steps li{display:flex;align-items:center;gap:3px;white-space:nowrap}.tutorial-steps li>span{display:grid;place-items:center;width:15px;height:15px;border:1px solid #778384;border-radius:50%;font:8px/1 var(--font-mono)}.tutorial-steps li[aria-current]{color:var(--gold-bright)}.tutorial-steps li[aria-current]>span{background:var(--gold);color:var(--bg);border-color:var(--gold)}.tutorial-steps li.complete{color:var(--safe)}#tutorial-instruction{margin:0;font-size:12px;line-height:1.9;color:var(--ink)}.tutorial-destination{display:flex;flex-direction:column;gap:5px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft);font-size:10px;line-height:1.6;color:var(--muted)}.tutorial-destination>strong{color:var(--gold-bright);font-size:12px;font-weight:500}.tutorial-next{margin:10px 0 0;font-size:10px;line-height:1.8;color:var(--muted)}.tutorial-next>span{color:var(--ink);margin-left:6px}.first-tutorial[data-ready=true]{border-color:var(--gold)}.first-tutorial[data-busy=true]{border-left-color:var(--safe)}.tutorial-target{position:absolute;top:0;left:0;z-index:5;padding:7px 12px;text-align:center;white-space:nowrap;color:var(--ink);background:#171d21fa;border:1px solid var(--gold);border-radius:2px;pointer-events:none}.tutorial-target>span{display:block;margin-bottom:3px;color:var(--gold);font-size:9px;letter-spacing:1px}.tutorial-target>strong{font-size:12px;font-weight:500}.tutorial-target:after{content:"";position:absolute;top:100%;left:calc(50% - 5px);border:5px solid transparent;border-top-color:var(--gold)}.tutorial-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.touch-actions .tutorial-ready{border:2px solid var(--ink);background:var(--gold-bright);color:var(--bg)}@media(max-height:700px)and (min-width:701px){.first-tutorial{top:122px}.tutorial-body{padding-bottom:12px}.tutorial-steps{padding-block:9px;margin-bottom:10px}.tutorial-destination{margin-top:10px;padding-top:9px}.tutorial-next{margin-top:7px}}@media(max-width:700px),(max-width:1024px)and (max-height:500px){.first-tutorial{top:90px;left:16px;width:calc(100% - 200px);min-width:120px;max-width:280px}.first-tutorial summary{padding:11px 12px 31px}.tutorial-heading{font-size:9px;letter-spacing:.3px}#tutorial-title{font-size:14px;margin-top:6px;line-height:1.55}.tutorial-summary-note{right:12px;bottom:11px;font-size:9px}.tutorial-body{padding:0 12px 12px}.tutorial-steps{display:none}#tutorial-instruction{font-size:11px;line-height:1.8}.tutorial-destination{margin-top:10px;padding-top:9px;font-size:9px}.tutorial-destination>strong{font-size:10px}.tutorial-next{display:none}.tutorial-target{padding:6px 9px}.tutorial-target>strong{font-size:11px}}@media(max-width:380px){.first-tutorial{left:14px;width:calc(100% - 196px)}.tutorial-heading{font-size:8px}#tutorial-title{font-size:13px}}@media(max-height:500px)and (min-width:701px){.first-tutorial{top:90px;width:240px}.first-tutorial summary{padding:10px 12px}#tutorial-title{font-size:15px;margin-top:4px}.tutorial-summary-note{bottom:14px}.tutorial-destination{display:none}}
