:root{color-scheme:dark;--ink:#f7faf6;--glass:#102e28c7;--line:#ffffff38;--gold:#e7c477;--ease:cubic-bezier(.2,.8,.2,1)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#b9d4dc;color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}body>canvas{position:absolute;inset:0;display:block;touch-action:none}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button{border:0}button:not(:disabled):active{transform:scale(.97)}.glass{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(15px);box-shadow:0 8px 30px #09221b20;border-radius:16px}.hud{position:absolute;z-index:2}header{top:0;left:0;right:0;padding:25px 30px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(#0b241cb0,transparent);pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:12px}.brand-icon{font-size:34px;color:#f4e6bf}.brand h1{font-size:24px;font-weight:650;margin:0;letter-spacing:.15em}.subtitle{font-size:10px;letter-spacing:.26em;opacity:.75}.header-actions{display:flex;gap:9px}.header-actions button{padding:10px 16px}.header-actions span{display:inline-block;margin-left:12px;font-size:12px;color:var(--gold)}.location{left:30px;bottom:193px;max-width:500px;text-shadow:0 2px 16px #000b;pointer-events:none}.location>span{font-size:11px;letter-spacing:.16em;color:#ffefc9}.location h2{font-size:28px;font-weight:500;letter-spacing:.05em;margin:6px 0}.location p{font-size:12px;margin:0;opacity:.85}.mission{right:28px;top:110px;width:235px;padding:16px}.mission-top{display:flex;justify-content:space-between;align-items:center;color:var(--gold);font-size:11px}.mission-top button{background:transparent;font-size:20px;padding:0 5px}.mission b{display:block;font-size:18px;margin:7px 0}.mission p{font-size:12px;color:#e4ece5bb;margin:7px 0 14px}.primary{background:#e9d49e;color:#253b30;border:1px solid #fff4ce99;padding:11px 18px;border-radius:12px;font-weight:600;text-decoration:none;display:inline-block;text-align:center}.mission .primary{width:100%}.mission.collapsed>*:not(.mission-top){display:none}.mission.collapsed{width:120px}.minimap-wrap{left:30px;bottom:24px;width:144px;text-align:center}.minimap-wrap canvas{width:144px;height:144px;border:1px solid #ffffff4d;border-radius:50%;background:#0c2925c9;box-shadow:0 5px 25px #0002}.minimap-wrap>span{display:block;font-size:9px;letter-spacing:.14em;text-shadow:0 1px 4px #000}.joystick{display:none;left:28px;bottom:92px;width:94px;height:94px;border:1px solid #ffffff70;border-radius:50%;background:#16352f70;touch-action:none;place-items:center}.joystick>span{width:37px;height:37px;background:#f0f3e9d9;border:1px solid #fff9;border-radius:50%;pointer-events:none}body[data-mode=walk] .joystick{display:grid}body[data-mode=walk] .minimap-wrap{left:auto;right:28px;width:108px;bottom:24px}body[data-mode=walk] .minimap-wrap canvas{width:108px;height:108px}footer{bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:grid;gap:10px;justify-items:center}.modes{padding:5px;display:flex;gap:3px;border-radius:40px;white-space:nowrap}.modes button{background:transparent;border-radius:30px;padding:12px 19px;color:#eef4eaab;font-size:13px;transition:background .3s}.modes button[aria-pressed=true]{background:#f1e7cb;color:#244136;box-shadow:0 2px 12px #0001}.bottom-row{display:flex;gap:8px}.seasons{display:flex;padding:4px;border-radius:26px}.seasons button{width:35px;height:30px;border-radius:50%;background:transparent;color:#f0f3e8b0}.seasons button[aria-pressed=true]{background:#f0f3e8;color:#244136}.bottom-row>button{font-size:11px;padding:8px 13px;border-radius:24px}#markers{inset:0;pointer-events:none;overflow:hidden}.world-pin{position:absolute;pointer-events:auto;transform:translate(-50%,-100%);padding:7px 12px;border-radius:24px;background:#12342be6;box-shadow:0 4px 20px #0003;border:1px solid #e3eac15a;color:#fff;font-size:11px;white-space:nowrap}.world-pin:after{content:'';position:absolute;left:50%;bottom:-9px;width:1px;height:9px;background:#f8eab8b0}.world-pin.gold{color:#322b1b;background:#f1d28e;border-color:#fff1cd}.world-pin.active{outline:2px solid #e8c88855;outline-offset:3px}.world-pin.hidden{display:none}#toast{position:absolute;z-index:8;left:50%;top:100px;transform:translate(-50%,-8px);max-width:90vw;padding:12px 22px;border-radius:30px;background:#17372fef;box-shadow:0 4px 25px #0002;border:1px solid #e9d99a77;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{color:#284235;border:1px solid #fff8;border-radius:22px;padding:25px;background:#f4f3e9;box-shadow:0 30px 100px #0004;width:min(530px,calc(100vw - 30px));max-height:85dvh;overflow:auto}dialog::backdrop{background:#0c231c88;backdrop-filter:blur(5px)}dialog h2{margin:0;font-size:24px;font-weight:600}dialog p{font-size:12px;color:#728074}.dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:15px}.dialog-head>button{background:#e2e6da;width:32px;height:32px;border-radius:50%;font-size:23px;color:#324b3d;flex-shrink:0}.eyebrow{font-size:9px;letter-spacing:.2em;color:#8c947f}.journal-row{display:flex;align-items:center;gap:13px;padding:16px 0;border-bottom:1px solid #28423515}.journal-seal{width:43px;height:43px;border:1px dashed #a9b3a5;border-radius:50%;display:grid;place-items:center;color:#a2ab9e;font-size:19px}.journal-row.done .journal-seal{background:#e9d9a9;border:1px solid #b9994f;color:#57734b}.journal-row>div:nth-child(2){flex:1}.journal-row b{font-size:14px}.journal-row p{margin:3px 0;font-size:11px}.journal-row button{background:#e2e7dc;color:#3d5d49;padding:6px 11px;border-radius:20px;font-size:11px}.journal-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:19px;font-size:10px;color:#82907e}.journal-bottom button{background:transparent;text-decoration:underline;color:#738372;font-size:11px}#achievement{text-align:center;padding:23px;background:#e8eddc;margin-top:20px;border-radius:12px}#achievement>span{font-size:42px;color:#b2964e}#achievement h3{margin:4px}#environment label{display:block;font-size:13px;margin:20px 0 8px}#environment label span{float:right;color:#938665}#environment input{width:100%;accent-color:#496f55}#environment select{width:100%;padding:12px;border-radius:8px;background:#e5e9df;color:#254035;border:1px solid #becabd}.range-labels{display:flex;justify-content:space-between;font-size:10px;color:#939a8c}#photo-image{width:100%;display:block;border-radius:10px;margin-bottom:15px}#photo-dialog{text-align:center;width:min(850px,95vw)}#loading{position:absolute;z-index:10;inset:0;background:radial-gradient(ellipse at 50% 25%,#355b4a,#102b25);display:grid;place-items:center;text-align:center}#loading[hidden]{display:none}.loading-inner{padding:30px;width:min(420px,95vw)}.loading-icon{display:block;font-size:60px;color:#e6d7a9;animation:breathe 2s ease-in-out infinite}.loading-inner h2{font-weight:400;font-size:26px;margin:22px 0}.loading-inner p{font-size:12px;color:#c7d9ca}.loading-inner small{font-size:10px;color:#90af9d}.loading-inner button{display:block;margin:20px auto}.loading-inner button[hidden]{display:none}.load-line{height:2px;background:#ffffff20;margin:22px 0 14px}.load-line i{display:block;width:5%;height:100%;background:#e9d1a1;transition:width .3s}#snow{display:none;position:absolute;inset:0;pointer-events:none;z-index:1;background-image:radial-gradient(2px 2px at 20px 35px,#fff9 90%,transparent),radial-gradient(2px 2px at 95px 100px,#fff7 90%,transparent);background-size:220px 200px;animation:snowfall 16s linear infinite}body.winter #snow{display:block}@keyframes snowfall{to{background-position:50px 600px}}@keyframes breathe{50%{opacity:.45;transform:rotate(30deg)}}
@media(max-width:650px){header{padding:17px 16px}.brand{gap:8px}.brand-icon{font-size:25px}.brand h1{font-size:19px}.subtitle{font-size:8px}.header-actions{gap:6px}.header-actions button{font-size:11px;padding:9px 11px;border-radius:13px}.header-actions span{margin-left:6px}.mission{right:15px;top:87px;width:180px;padding:12px}.mission b{font-size:15px}.mission p{font-size:11px}.mission .primary{font-size:12px;padding:9px}.location{left:18px;bottom:208px;max-width:75vw}.location h2{font-size:21px}.location p{font-size:10px;max-width:240px}.minimap-wrap{left:18px;bottom:120px;width:74px}.minimap-wrap canvas{width:74px;height:74px}.minimap-wrap>span{font-size:7px}footer{bottom:max(16px,env(safe-area-inset-bottom));gap:8px}.modes button{padding:10px 16px;font-size:12px}.bottom-row{gap:8px}.joystick{left:18px;bottom:116px;width:78px;height:78px}.joystick>span{width:32px;height:32px}body[data-mode=walk] .minimap-wrap{right:16px;bottom:126px;width:70px}body[data-mode=walk] .minimap-wrap canvas{width:70px;height:70px}.world-pin{font-size:10px;padding:6px 9px}#toast{top:83px;font-size:12px;white-space:normal}dialog{padding:20px}.mission.collapsed{width:100px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-height:500px){.mission{top:80px}.location{bottom:125px}.location h2{font-size:20px}.minimap-wrap{width:80px;bottom:12px}.minimap-wrap canvas{width:80px;height:80px}footer{bottom:12px}.joystick{bottom:25px}.mission p{display:none}}

#photo-image{max-height:55dvh;object-fit:contain}#photo-dialog .dialog-head{position:sticky;top:-1px;background:#f4f3e9;z-index:1}#photo-dialog{scroll-padding-top:65px}

/* The landscape carries the screen; controls form a light, quiet frame. */
:root{--glass:#172c25a6;--line:#ffffff26;--gold:#edce8e}.glass{backdrop-filter:blur(10px);box-shadow:0 4px 18px #07170f15}header{padding:23px 28px;background:linear-gradient(#10271b70,transparent)}.brand-icon{font-size:27px}.brand h1{font-size:20px;letter-spacing:.2em}.subtitle{font-size:9px;opacity:.65}.header-actions button{font-size:12px;padding:9px 14px;border-radius:30px}.location{bottom:155px}.location h2{font-family:var(--font-display);font-size:32px;letter-spacing:.1em}.location p{opacity:.65}.modes{padding:4px}.modes button{padding:11px 22px;font-size:12px}.modes button[aria-pressed=true]{background:#f1dfae;color:#26392d}.bottom-row>button{font-size:10px;padding:7px 12px}.world-pin{background:#152e25b8;border-color:#fff5;font-size:10px}.world-pin.gold{background:#f1d18be0;color:#392c18;box-shadow:0 0 18px #eac76b33}.mission.collapsed{width:110px;padding:12px}.mission.collapsed .mission-top{font-size:10px}.minimap-wrap{opacity:.7}.joystick{background:#23382e50;width:80px;height:80px;bottom:105px}.joystick>span{width:30px;height:30px}body[data-mode=walk] .minimap-wrap{bottom:25px;right:28px;width:90px}body[data-mode=walk] .minimap-wrap canvas{width:90px;height:90px}
@media(max-width:650px){header{padding:18px 16px}.brand h1{font-size:17px}.brand-icon{font-size:22px}.header-actions button{font-size:10px;padding:8px 10px}.location{bottom:225px;max-width:85vw}.location h2{font-size:25px}.mission.collapsed{top:84px;right:15px;width:102px}.modes button{padding:10px 17px}.bottom-row{gap:6px}.bottom-row>button{padding:6px 10px;font-size:10px}.joystick{width:72px;height:72px;bottom:130px}body[data-mode=walk] .minimap-wrap{bottom:136px;right:17px;width:66px}body[data-mode=walk] .minimap-wrap canvas{width:66px;height:66px}}

#skip-intro{left:50%;top:25px;transform:translateX(-50%);padding:9px 18px;border-radius:22px;font-size:11px;z-index:4}#skip-intro[hidden]{display:none}@media(max-width:650px){#skip-intro{top:83px}}

footer{width:max-content;max-width:calc(100vw - 24px)}.bottom-row>button{white-space:nowrap;flex-shrink:0}.seasons{flex-shrink:0}

#environment .primary{margin-top:8px;margin-right:8px}

/* Keep the landscape in focus. Frost only the instrument surfaces. */
:root {
  --font-ui: "Microsoft YaHei", "微软雅黑", "PingFang SC", system-ui, sans-serif;
  --font-display: KaiTi, "楷体", "Kaiti SC", STKaiti, var(--font-ui);
  --gold: #e7c477;
  --lens-edge: inset 1px 1px 1px #e1eee040, inset -1px -1px 2px #01181059, 0 5px 18px #051a122c;
}
body, button, input, select { font-family: var(--font-ui); }
.brand h1, .location h2, .dialog-head h2, .loading-inner h2 {
  font-family: var(--font-display); font-weight: 500; letter-spacing: .07em;
}
.atlas-return {
  display: grid; place-items: center; flex: none; width: 44px; height: 44px;
  border-radius: 50%; color: #f8e7bd; text-decoration: none;
}
.glass, .atlas-return {
  background: #20372f; border: 1px solid #263e35;
  box-shadow: var(--lens-edge);
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
@supports ((backdrop-filter: blur(4px)) or (-webkit-backdrop-filter: blur(4px))) {
  .glass, .atlas-return {
    background: linear-gradient(128deg, #233c32d4, #163129ba 53%, #1f392ddd);
    border-color: #e4f9eb24;
    -webkit-backdrop-filter: blur(4px) saturate(1.12);
    backdrop-filter: blur(4px) saturate(1.12);
  }
}
header { padding-top: max(16px, env(safe-area-inset-top)); }
.header-actions button, .bottom-row > button, .modes button, .seasons button,
.dialog-head > button, .mission-top button, .journal-row button, #skip-intro { min-height: 44px; }
.modes button, .seasons button { color: #f7faf6; }
.modes button[aria-pressed=true], .seasons button[aria-pressed=true] {
  background: linear-gradient(115deg, #f8e8bc, #e8cd8d);
  color: #262f22; box-shadow: inset 0 1px 1px #fffae2a0;
}
.mission.collapsed { padding: 0 6px 0 14px; }
.mission-top button, .dialog-head > button { min-width: 44px; }
.seasons button { width: 44px; }
.location { max-width: min(480px, 80vw); padding: 8px 26px 10px 14px; border-radius: 10px; background: linear-gradient(90deg,#10231ecc,#10231e99 75%,transparent); }
.location p { color: #f2f6ef; opacity: 1; font-size: 12px; }
.subtitle { opacity: 1; color: #e4efe4; }
dialog { background: #f4f7f1; color: #203a2f; }
dialog p, .journal-bottom { color: #476355; }
@media (max-width:650px) {
  .brand { gap: 6px; }
  .header-actions button { padding: 7px 10px; font-size: 12px; }
  .bottom-row { gap: 4px; }
  .bottom-row > button { font-size: 12px; padding-inline: 8px; }
  .seasons { padding: 2px; }
  .joystick { bottom: calc(136px + env(safe-area-inset-bottom)); }
  body[data-mode=walk] .minimap-wrap { bottom: calc(140px + env(safe-area-inset-bottom)); }
  .location { bottom: calc(220px + env(safe-area-inset-bottom)); }
}
@media (max-width:355px) {
  .bottom-row { display: grid; grid-template-columns: auto 48px 48px; }
  .bottom-row > button { padding: 4px; white-space: normal; line-height: 1.2; }
  .header-actions span { margin-left: 2px; }
}
@media (prefers-reduced-transparency: reduce) {
  .glass, .atlas-return, .world-pin:not(.gold), .location { background: #20372f; -webkit-backdrop-filter:none; backdrop-filter:none; }
  dialog::backdrop { -webkit-backdrop-filter:none; backdrop-filter:none; }
}

@media (min-width:651px) and (min-height:501px) {
  body:not([data-mode=walk]) .location { bottom: 204px; }
}
