:root{color-scheme:light;--ink:#273e35;--paper:#f5f0de;--muted:#727b63;--line:#d6d8bb;--accent:#bd633d;--night:#243b32;--cream:#fff4cf}
*{box-sizing:border-box}body{margin:0;background:#e9ebdc;color:var(--ink);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #e6b35c;outline-offset:3px}button[hidden],[hidden]{display:none!important}.shell{max-width:1280px;height:100svh;height:100dvh;margin:auto;padding:0 32px;display:flex;flex-direction:column}.masthead{height:90px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between}.wordmark{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink);font-weight:800;font-size:21px;letter-spacing:2px}.wordmark small{display:block;font-size:10px;font-weight:500;letter-spacing:3px;margin-top:5px;color:var(--muted)}.brand-icon{display:grid;place-items:center;background:var(--ink);color:#e6c991;width:39px;height:44px;font-size:27px;border-radius:3px}.square-button{width:34px;height:34px;border:1px solid #b3bca3;border-radius:50%;color:var(--ink);background:transparent;font-family:Georgia,serif;font-weight:bold;font-size:18px}.game-frame{position:relative;flex:1;min-height:0;overflow:hidden;background:#637e4b;border:5px solid var(--night);border-radius:8px;box-shadow:0 8px 0 #d7dcc6;isolation:isolate}canvas{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none;outline:none}.location-plaque{position:absolute;top:20px;left:20px;display:flex;gap:12px;align-items:center;pointer-events:none;background:#263e35ed;color:var(--cream);padding:11px 17px;border:1px solid #a1ab7360;box-shadow:3px 3px 0 #25352b55;border-radius:3px}.location-plaque>span{font-family:Georgia,serif;font-size:32px;color:#c2c994;border-right:1px solid #b8c19350;padding-right:12px}.location-plaque small{font-size:10px;letter-spacing:2px;color:#c2cba8}.location-plaque h1{font-size:16px;letter-spacing:1px;margin:3px 0 0;font-weight:600}#area-tag{position:absolute;right:22px;top:26px;font-size:10px;letter-spacing:2px;color:#fff8df;text-shadow:1px 1px #355344;pointer-events:none}.controls{position:absolute;bottom:22px;left:22px;right:22px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}#joystick{width:108px;height:108px;border:2px solid #f5efd059;border-radius:50%;background:#263e353d;position:relative;touch-action:none;pointer-events:auto;user-select:none}.joystick-arrows{position:absolute;inset:0;display:grid;place-items:center;color:#faf5da48;font-size:68px;font-weight:200}#stick{position:absolute;left:31px;top:31px;width:42px;height:42px;border:2px solid #f4e8bf95;border-radius:50%;background:#f5edc935;box-shadow:0 2px 0 #223c3438;pointer-events:none}#interact{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:9px;min-height:49px;max-width:240px;padding:9px 17px;border:2px solid #ebc77b;background:#f3e6ba;color:#314339;border-radius:5px;box-shadow:0 4px 0 #304534a0;font-size:13px;font-weight:700;touch-action:manipulation}#interact:disabled{background:#2d473fdd;border-color:#bdc8a259;color:#e0e6c9;font-weight:400}kbd{font-family:inherit;font-size:11px;display:inline-block;border:1px solid currentColor;border-radius:3px;padding:2px 5px;opacity:.8}.dialogue{position:absolute;z-index:4;bottom:148px;left:50%;transform:translateX(-50%);width:min(380px,calc(100% - 32px));background:#fff5ddec;color:#364535;border:2px solid #7e714d;border-radius:6px;padding:15px 33px 15px 19px;box-shadow:0 4px 0 #2e3b3540;pointer-events:auto}.dialogue:after{content:"";position:absolute;left:50%;bottom:-10px;width:14px;height:14px;background:#fff5dd;border-bottom:2px solid #7e714d;border-right:2px solid #7e714d;transform:rotate(45deg)}.speaker{font-size:10px;letter-spacing:2px;font-weight:800;color:#b65e36}.dialogue p{margin:5px 0 0;line-height:1.7;font-size:13px}.dialogue button{position:absolute;right:7px;top:5px;background:none;border:0;font-size:22px;color:#8b8d70;padding:4px 7px}.arrival{position:absolute;top:43%;left:0;right:0;text-align:center;color:#fff9df;font-size:25px;font-weight:600;letter-spacing:6px;text-shadow:2px 3px #243c35;opacity:0;pointer-events:none;transition:opacity .4s}.arrival.visible{opacity:1}.help{position:absolute;z-index:6;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(380px,calc(100% - 24px));max-height:calc(100% - 20px);overflow:auto;background:var(--paper);border:3px solid #425b45;border-radius:6px;padding:24px;box-shadow:0 0 0 100vmax #162f3570}.help h2{font-size:18px;margin:0 0 17px}.help p{font-size:12px;line-height:2}.help small{font-size:10px;color:var(--muted)}.help>button{display:block;background:var(--ink);color:var(--cream);padding:11px 20px;border:0;border-radius:3px;margin-top:19px;width:100%}.field-notes{display:flex;align-items:center;gap:14px;flex-shrink:0;min-height:86px;padding:18px 8px 8px}.note-icon{font-size:29px;color:#8c9676}.field-notes small{font-size:10px;letter-spacing:2px;color:var(--muted)}.field-notes p{font-size:13px;margin:4px 0 0;line-height:1.6}.field-notes>div{flex:1}#inventory{font-size:11px;color:#6c785e;white-space:nowrap;border-left:1px solid #bcc5ac;padding-left:20px}.desktop-hint{display:flex;justify-content:space-between;font-size:10px;color:#879079;padding:10px 8px 18px;letter-spacing:1px}@media(hover:hover) and (pointer:fine){#joystick{opacity:.55;width:82px;height:82px}#stick{left:23px;top:23px;width:32px;height:32px}.joystick-arrows{font-size:49px}#joystick:hover{opacity:1}}
@media(max-width:600px){.shell{padding:0 10px;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.masthead{height:68px;padding:0 5px}.wordmark{font-size:17px;letter-spacing:1px;gap:10px}.wordmark small{font-size:9px;letter-spacing:2px}.brand-icon{width:31px;height:36px;font-size:22px}.game-frame{border-width:3px;border-radius:6px}.location-plaque{top:12px;left:12px;padding:8px 12px;gap:8px}.location-plaque>span{font-size:25px;padding-right:8px}.location-plaque small{font-size:9px}.location-plaque h1{font-size:13px}#area-tag{display:none}.controls{left:13px;right:13px;bottom:16px}#interact{max-width:190px;padding:9px 12px;font-size:12px;min-height:48px}#interact kbd{display:none}.dialogue{bottom:138px;padding:12px 30px 12px 15px}.dialogue p{font-size:12px}.field-notes{gap:10px;min-height:94px;padding:15px 5px 12px;align-items:flex-start;position:relative}.field-notes p{font-size:11px;margin:3px 0 16px}.note-icon{font-size:24px;margin-top:5px}#inventory{position:absolute;bottom:8px;left:39px;font-size:9px;border:0;padding:0}.desktop-hint{display:none}.arrival{font-size:20px;letter-spacing:3px}}
@media(max-height:650px){.masthead{height:55px}.field-notes{min-height:77px;padding-top:12px}.wordmark small{display:none}.dialogue{bottom:115px}.controls{bottom:10px}#joystick{width:86px;height:86px}#stick{left:23px;top:23px;width:36px;height:36px}.desktop-hint{display:none}.help{padding:16px}.help p{line-height:1.7}}
@media(prefers-reduced-motion:reduce){.arrival{transition:none}}
/* Pixel menus keep the same paper, dark outlines and hard shadows as the world. */
.pixel-toolbar{display:flex;gap:6px;margin-left:auto;margin-right:12px}.pixel-toolbar button,.pixel-panel button{border:2px solid #607358;background:#f1e7c9;color:#304737;padding:8px 12px;box-shadow:2px 2px 0 #bcc4a6;border-radius:2px;font-size:12px;min-height:37px}.pixel-toolbar button:hover,.pixel-panel button:hover{background:#e3d39f}.pixel-panel button:disabled{opacity:.55;cursor:wait}.pixel-overlay{position:fixed;z-index:20;inset:0;background:#1c302c8f;display:flex;align-items:center;justify-content:flex-end;padding:24px;overscroll-behavior:contain}.pixel-panel{width:min(540px,100%);height:min(800px,100%);display:flex;flex-direction:column;overflow:hidden;background:#f4efd9;border:4px solid #344c3d;box-shadow:6px 6px 0 #172c3355;image-rendering:pixelated}.pixel-panel-head{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:3px solid #b8bea0;background:#e2e6cf}.pixel-panel-head small{font-size:9px;letter-spacing:3px;color:#6d7b5f}.pixel-panel h2{font-size:20px;letter-spacing:1px;margin:6px 0 0}.pixel-panel .panel-close{box-shadow:none;background:transparent;border:0;font-size:25px;min-width:44px}.pixel-status{font-size:12px;line-height:1.6;padding:0 20px;margin:8px 0;color:#9a542f;flex-shrink:0}.pixel-status:empty{display:none}.pixel-content{padding:18px 20px;overflow:auto;min-height:0;flex:1;overscroll-behavior:contain}.pixel-content h3{font-size:15px;margin:20px 0 12px}.pixel-note{font-size:12px;line-height:1.8;color:#727960}.pixel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.world-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.pixel-panel .map-place{font-size:11px;padding:13px 6px;white-space:normal;line-height:1.7;background:#e4e6d4;border-color:#a1ad8e}.map-place small{display:block;font-size:9px;color:#7d886c;margin-top:8px}.pixel-panel .map-place.current{border-color:#bf7747;background:#f3d9a0}.pixel-panel .map-place.discovered{border-color:#4c6e4b}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;font-size:13px}.setting-row input[type=checkbox]{width:22px;height:22px;accent-color:#52724f}.pixel-panel input:not([type=checkbox]):not([type=file]),.pixel-panel textarea,.pixel-panel select{font:inherit;font-size:14px;color:#2f4839;border:2px solid #a2ac8c;background:#fff9e8;border-radius:0;padding:10px;max-width:100%;min-width:0}.pixel-panel textarea{width:100%;resize:vertical;line-height:1.7;min-height:88px}.pixel-panel label.field{display:grid;gap:7px;font-size:12px;line-height:1.6;margin:12px 0}.pixel-panel .row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0}.pixel-panel .row input{flex:1;width:130px}.pixel-panel .tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px}.pixel-panel [aria-pressed=true],.pixel-panel .primary{background:#3f6046;color:#fff4cd;border-color:#314e38;box-shadow:2px 2px 0 #263e32}.pixel-panel article{padding:14px 12px;border:2px solid #c4c8ab;margin:10px 0;background:#faf5e4;overflow-wrap:anywhere}.pixel-panel article h3{margin:0 0 6px}.pixel-panel article p{white-space:pre-wrap;font-size:13px;line-height:1.8}.pixel-panel article small{display:block;color:#778369;font-size:10px;line-height:1.8}.pixel-panel audio{max-width:100%;width:100%;height:38px;margin-top:12px}.pixel-panel hr{border:0;border-top:2px solid #ced1b7;margin:18px 0}.pixel-confirm{border:2px solid #b7844f;background:#f0e2ba;padding:12px;margin:12px 0;font-size:12px;line-height:1.8}.pixel-confirm button{margin-right:8px;margin-top:7px}.chat-log{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.chat-line{max-width:92%;padding:12px 14px;border:2px solid #bac5a4;background:#e6ead5;font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.chat-line.you{align-self:flex-end;background:#eee1be;border-color:#c8b37c}.chat-line b{display:block;font-size:10px;letter-spacing:2px;color:#8f6948;margin-bottom:5px}.pixel-panel .recording{background:#b15e3e;color:#fff4d4}.pixel-panel .avatar-preview{width:56px;height:56px;object-fit:cover;image-rendering:auto;border:3px solid #778966}.pixel-player{position:fixed;z-index:12;bottom:10px;left:50%;transform:translateX(-50%);background:#2c473b;color:#f3e8c2;border:2px solid #b4bd91;padding:8px 13px;display:flex;align-items:center;gap:12px;max-width:calc(100% - 20px);box-shadow:3px 3px 0 #172b3155;font-size:12px}.pixel-player span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:220px}.pixel-player button{background:#e4d5a7;color:#304636;border:0;padding:7px;font:inherit;min-width:35px}.pixel-panel .danger{color:#984a36}.pixel-panel button,a,input,select,textarea{touch-action:manipulation}
@media(max-width:700px){.masthead{height:95px;position:relative;align-items:flex-start;padding-top:14px}.masthead>.square-button{position:absolute;right:5px;top:14px}.pixel-toolbar{position:absolute;left:5px;right:5px;bottom:9px;justify-content:space-between;margin:0}.pixel-toolbar button{padding:5px 9px;font-size:10px;min-height:31px;box-shadow:1px 1px 0 #bcc4a6}.pixel-overlay{padding:10px;padding-top:max(10px,env(safe-area-inset-top));padding-bottom:max(10px,env(safe-area-inset-bottom));align-items:stretch}.pixel-panel{height:100%;max-height:100%;width:100%;border-width:3px}.pixel-panel-head{padding:12px 14px}.pixel-panel h2{font-size:18px}.pixel-content{padding:14px}.pixel-status{padding:0 14px}.world-map{gap:6px}.pixel-panel .map-place{font-size:10px;padding:9px 4px}.pixel-panel button{min-height:40px}.pixel-panel input:not([type=checkbox]),.pixel-panel textarea,.pixel-panel select{font-size:16px}.pixel-player{bottom:max(6px,env(safe-area-inset-bottom))}.pixel-player span{max-width:160px}.wordmark{font-size:16px}}
@media(max-height:550px) and (min-width:701px){.pixel-overlay{padding:8px}.pixel-panel{height:100%}.pixel-panel-head{padding:8px 14px}}

.route-chart{width:100%;height:auto;aspect-ratio:600/440;border:2px solid #b0bb97;margin:12px 0 6px}.pixel-panel blockquote{margin:12px 0;border-left:4px solid #a98a52;padding:8px 12px;line-height:1.9;font-size:15px}.pixel-player input[type=range]{width:90px;min-width:45px;accent-color:#e6d5a2}.pixel-player span{min-width:30px}@media(max-width:420px){.pixel-player{gap:7px;padding:7px}.pixel-player span{max-width:100px}.pixel-player input[type=range]{width:55px}}

.pixel-panel .share-preview{display:block;width:min(100%,420px);height:auto;image-rendering:auto;border:3px solid #456650;margin:12px auto}.share-save{display:inline-block;padding:10px;color:#334f39;background:#e5d6ab;border:2px solid #788e63;font-size:13px}.pixel-player{flex-wrap:wrap;justify-content:center}.pixel-player input[aria-label=音乐音量]{width:55px}

.pixel-panel>.pixel-player{position:static;transform:none;flex-shrink:0;align-self:stretch;max-width:none;margin:0 12px 12px;box-shadow:none}
