:root{font-family:"Segoe UI","Microsoft YaHei",sans-serif;color:#203d36;background:#dce3dc;font-synthesis:none;--ink:#203d36;--muted:#6d7c73;--paper:#f7f6ee;--line:#203d361b;--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}body{margin:0;overflow:hidden;height:100dvh}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #c28049;outline-offset:4px}button:disabled{cursor:wait;opacity:.65}button:hover:not(:disabled){filter:brightness(.92)}[hidden]{display:none!important}#world{display:block;width:100%;height:100dvh;touch-action:none;outline:none}#vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,#2c453225,transparent 25%,transparent 70%,#1e372f33)}.glass{background:#f7f6eeeF;border:1px solid #ffffffe0;box-shadow:0 8px 35px #1c322b13;backdrop-filter:blur(18px)}header{position:fixed;top:max(24px,env(safe-area-inset-top));left:28px;right:28px;display:flex;justify-content:space-between;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:12px;padding:14px 20px;text-decoration:none;color:var(--ink);border-radius:14px;font-weight:650;letter-spacing:2px}.brand svg{width:33px;height:37px;fill:none;stroke:var(--ink);stroke-width:1.35}.brand small{display:block;font-size:8px;letter-spacing:1.9px;margin-top:4px;color:var(--muted);font-weight:500}nav{display:flex;align-items:center;align-self:flex-start;border-radius:12px;padding:7px}nav button{padding:9px 13px;font-size:12px;border-right:1px solid var(--line)}nav button:last-child{border:0;font-size:21px;line-height:15px}nav #help{font-family:Georgia,serif;font-weight:700}.location{position:fixed;top:118px;left:28px;display:flex;gap:10px;align-items:center;padding:9px 13px;border-radius:30px;font-size:10px;color:#54695c}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#6c9865;flex:none}.location-divider{opacity:.3}.welcome{position:fixed;left:28px;bottom:72px;width:386px;padding:29px;border-radius:16px}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--muted);display:flex;gap:10px;justify-content:space-between}.eyebrow span{font-size:8px;letter-spacing:.3px}h1{font-family:Georgia,"Songti SC","SimSun",serif;font-size:52px;letter-spacing:3px;line-height:1.22;font-weight:500;margin:24px 0 16px}h1 span{color:#c28454}.welcome p{font-size:12px;line-height:1.95;color:#637468;letter-spacing:.6px}.welcome-rule{height:1px;background:var(--line);margin:22px 0}label{font-size:11px;display:block;margin:14px 0 9px}label span{float:right;color:#849087;font-size:9px}.name-row{display:flex;gap:9px}.name-row input{min-width:0;width:42%;font-size:12px;background:#e7ece357;border:1px solid var(--line);border-radius:7px;padding:12px;color:var(--ink)}.primary{background:var(--ink);color:#f5f4e9;padding:13px 16px;border-radius:7px;font-size:12px;display:flex;justify-content:space-between;align-items:center;gap:20px}.name-row .primary{flex:1;white-space:nowrap}.primary span{font-size:18px}.swatches{display:flex;gap:9px;margin-top:18px;align-items:center}.swatches button{background:var(--swatch);width:17px;height:17px;border-radius:50%;padding:0;position:relative}.swatches button[aria-pressed=true]:after{content:"";position:absolute;inset:-4px;border:1px solid var(--swatch);border-radius:50%}.swatches span{font-size:9px;color:var(--muted);margin-left:5px}.source-note{font-size:8px;display:block;color:#859187;letter-spacing:.5px;margin-top:23px}#map-panel{position:fixed;bottom:72px;right:28px;border-radius:14px;width:234px;padding:14px}#map-toggle{display:flex;justify-content:space-between;width:100%;font-size:11px;letter-spacing:1px;padding:0 0 10px}#minimap{width:204px;height:186px;display:block;touch-action:none;border-radius:7px;cursor:crosshair;background:#dce1d3}.map-caption{display:flex;justify-content:space-between;color:var(--muted);font-size:8px;margin:7px 0 11px}.destinations{display:grid;grid-template-columns:1fr 1fr;gap:5px}.destinations button{font-size:10px;padding:7px;background:#e5e9df7a;border-radius:4px}footer{position:fixed;bottom:max(22px,var(--safe-bottom));left:30px;right:30px;display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:10px;color:#f7f7ed;text-shadow:0 1px 8px #1238}#stream-status{max-width:65%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.stats{display:flex;align-items:center;gap:8px;color:inherit;font-size:9px;text-shadow:inherit}.stats #quality-label{opacity:.7;border-left:1px solid #ffffff70;padding-left:8px}#controls{position:fixed;left:50%;bottom:72px;transform:translateX(-50%);padding:6px;border-radius:12px;white-space:nowrap}.mode-switch{display:flex;gap:4px}.mode-switch button{font-size:11px;padding:11px 14px;border-radius:7px;color:#748074}.mode-switch .active{background:#203d36;color:#f7f6ee}kbd{font-family:inherit;font-size:8px;padding:2px 4px;border:1px solid currentColor;border-radius:3px;opacity:.6;margin-left:4px}.control-hint{text-align:center;color:var(--muted);font-size:9px;padding:12px 10px 8px}.control-hint span{padding:0 7px;opacity:.5}#crosshair{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff9;text-shadow:0 1px 3px #0008;font-size:18px;pointer-events:none}dialog{border:1px solid #fff;border-radius:18px;background:var(--paper);color:var(--ink);width:min(440px,calc(100% - 32px));padding:30px;box-shadow:0 20px 80px #152e3340}dialog::backdrop{background:#163a3250;backdrop-filter:blur(5px)}dialog h2{font-family:Georgia,"SimSun",serif;font-size:27px;font-weight:500;margin:22px 0}dialog p,dialog dd{font-size:12px;line-height:1.85;color:#6c786f}dialog dt{font-size:12px;margin-top:15px}dialog dd{margin:6px 0 14px}dialog .primary{width:100%;justify-content:center;margin-top:25px}dialog select{width:100%;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff8;color:inherit;font-size:12px}dialog input[type=range]{width:100%;accent-color:var(--ink)}.checkbox{display:flex;align-items:center;gap:6px}.checkbox input{accent-color:var(--ink)}.close{position:absolute;top:10px;right:14px;font-size:25px;color:var(--muted)}#details{display:block;font-size:10px;line-height:1.7;white-space:pre-line;color:var(--muted)}#toast{position:fixed;top:105px;left:50%;transform:translateX(-50%);background:#203d36ec;color:#fff;padding:12px 18px;border-radius:10px;font-size:12px;max-width:90%;text-align:center;z-index:10}#pointer-lock{position:fixed;left:50%;top:26px;transform:translateX(-50%);border-radius:8px;padding:10px 16px;font-size:11px}#touch-controls{position:fixed;inset:0;pointer-events:none}#joystick{position:absolute;left:30px;bottom:140px;width:108px;height:108px;border-radius:50%;background:#f7f6ee30;border:1px solid #fff8;touch-action:none;pointer-events:auto}#stick{width:44px;height:44px;position:absolute;top:31px;left:31px;border-radius:50%;background:#f7f6eecc;border:1px solid #fff;box-shadow:0 3px 15px #1233;pointer-events:none}#joystick span{position:absolute;top:115px;width:100%;text-align:center;color:#fff;font-size:9px;opacity:.8}.touch-hint{position:absolute;bottom:185px;right:24px;font-size:10px;color:#fff9}#run{position:absolute;right:30px;bottom:125px;border-radius:50%;width:55px;height:55px;pointer-events:auto;background:#f7f6eeaf;font-size:11px;border:1px solid #fff8}#run[aria-pressed=true]{background:var(--ink);color:white}.playing #map-panel{bottom:76px}.playing #controls{bottom:72px}.map-collapsed #map-content{display:none}.map-collapsed #map-panel{width:135px}.map-collapsed #map-toggle{padding:0}.touch .control-hint{display:none}.touch .mode-switch kbd{display:none}.touch #controls{bottom:72px}.touch .mode-switch button{padding:11px 14px}.touch #map-panel{bottom:auto;top:113px}.touch .location{top:91px}.touch #map-toggle{font-size:10px}.touch header{top:max(16px,env(safe-area-inset-top))}.touch .brand{padding:10px 13px}.touch .brand svg{width:25px;height:30px}.touch .brand small{font-size:6px}.touch nav button{padding:8px 10px}.touch nav{padding:4px}
@media(max-width:760px){header{left:16px;right:16px}.brand{padding:10px 13px;font-size:14px}.brand small{font-size:6px}.brand svg{width:26px}.location{left:16px;top:102px;font-size:9px}.welcome{left:16px;bottom:62px;width:min(355px,calc(100% - 32px));padding:23px}.welcome h1{font-size:42px;margin:18px 0 11px}.welcome p{font-size:11px;margin:0}.welcome-rule{margin:15px 0}.source-note{margin-top:17px}#map-panel{right:16px;width:180px;padding:11px;bottom:auto;top:154px}#minimap{width:156px;height:142px}.welcome~#map-panel{display:none}.playing #map-panel{display:block}.playing #controls{bottom:61px;width:max-content;max-width:calc(100% - 24px)}.control-hint{font-size:8px}.mode-switch button{padding:10px 9px;font-size:10px}footer{left:18px;right:18px;bottom:max(18px,var(--safe-bottom));font-size:9px}.stats #quality-label{display:none}#stream-status{max-width:75%}.touch #map-panel{top:128px}.touch .location{max-width:calc(100% - 32px)}#pointer-lock{top:99px}#toast{top:100px}.touch-hint{right:20px;bottom:175px;font-size:9px}}
@media(max-height:640px){.welcome{padding:19px;bottom:57px}.welcome h1{font-size:34px;margin:12px 0}.welcome p{font-size:10px}.welcome-rule{margin:12px 0}.source-note{margin-top:12px}.location{display:none}.welcome .eyebrow span{display:none}#map-panel{width:174px}#minimap{width:144px;height:131px}.touch #map-panel{top:90px}.touch #joystick{bottom:100px}.touch #run{bottom:95px}.touch .touch-hint{bottom:150px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
