@charset "UTF-8";
:root{--teal:#075756;--teal-dark:#073d3e;--gold:#d2aa62;--paper:#fffaf0;--ink:#183e3b;--muted:#6f8177;--border:rgba(155,125,71,.24);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#f6f0e5}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button{border:0}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #c67f37;outline-offset:4px}button:hover{filter:brightness(1.05)}button:active{transform:translateY(1px)}button svg{pointer-events:none}button[hidden],[hidden]{display:none!important}.svg-defs{position:absolute;pointer-events:none}.topbar{height:84px;background:rgba(255,252,245,.97);display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:22px;border-bottom:1px solid var(--border);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:13px;color:var(--teal);text-decoration:none;flex-shrink:0}.brand>svg{width:42px;height:42px;background:var(--teal);color:#efd6a1;padding:8px;border-radius:13px}.brand>span{font-size:21px;font-weight:750;letter-spacing:2px}.brand small{font-size:11px;letter-spacing:2px;display:block;margin-top:5px;font-weight:450;color:#869289}.scene-nav{display:flex;align-items:center;gap:8px;padding:6px;background:#ececdf;border-radius:40px}.scene-nav button{padding:11px 18px;color:#5d756d;background:transparent;border-radius:30px;font-size:16px;white-space:nowrap}.scene-nav button span{font:13px Georgia;margin-right:7px;opacity:.6}.scene-nav button.active{background:var(--teal);color:white;box-shadow:0 5px 12px #004b4b20}.passport-btn{background:transparent;color:var(--teal);display:flex;align-items:center;gap:8px;font-size:15px;white-space:nowrap}.passport-btn svg{width:22px;height:22px}.passport-btn b{font:12px sans-serif;background:#eadcc0;border-radius:50%;width:24px;height:24px;display:grid;place-items:center}main{height:calc(100dvh - 118px);position:relative;overflow:hidden}#world{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#world.dragging{cursor:grabbing}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(246,242,226,.7),transparent 38%),linear-gradient(0deg,rgba(14,38,37,.28),transparent 30%);pointer-events:none}.scene-heading{position:absolute;left:40px;top:34px;pointer-events:none;max-width:440px;transition:opacity .25s}.scene-heading p{margin:0}#sceneKicker{font-size:12px;letter-spacing:3px;color:var(--teal);font-weight:700;margin-bottom:15px}h1{font-family:"STKaiti","KaiTi","Noto Serif SC",serif;font-size:clamp(34px,3.25vw,58px);line-height:1.3;letter-spacing:2px;margin:0 0 17px;color:#063f40;font-weight:700;text-shadow:0 1px 20px #fff8dc}#sceneSubtitle{font-size:15px;line-height:1.9;max-width:320px;color:#385e53;text-shadow:0 1px 8px white}.scene-tag{position:absolute;right:30px;top:26px;display:flex;align-items:center;gap:8px;background:#fff9e9d9;border:1px solid #fff6df;padding:9px 14px;font-size:12px;border-radius:30px;box-shadow:0 4px 18px #173b2f12;backdrop-filter:blur(10px)}.live-dot{height:6px;width:6px;border-radius:50%;background:#b78a43}.journey-hint{position:absolute;top:260px;left:42px;display:flex;align-items:center;gap:7px;font-size:12px;color:#4c6c62;pointer-events:none}.mouse-icon{width:23px;height:23px;border:1px solid #789b8d;border-radius:50%;display:grid;place-items:center}.scene-controls{position:absolute;bottom:32px;left:40px;z-index:5}.primary{border-radius:10px;padding:16px 23px;font-size:17px;letter-spacing:1px;background:var(--teal);color:#fff9e9;box-shadow:0 8px 30px #073d3e33;display:flex;gap:10px;align-items:center}.primary span{color:#f1ce8e}.control-hint{display:block;color:#fff;font-size:12px;letter-spacing:1px;margin-top:12px;text-shadow:0 1px 5px #123}.tools{position:absolute;right:30px;bottom:31px;display:flex;gap:6px;padding:7px;background:#fffaf0eb;border:1px solid #fffdf5;border-radius:14px;backdrop-filter:blur(15px);box-shadow:0 7px 25px #243a3522;z-index:6}.tools button{width:40px;height:40px;color:var(--teal);background:transparent;border-radius:9px;font-size:23px}.tools button:hover,.tools button.active{background:#e9eadc}.tools button:nth-child(4){font-size:17px}.tools button:last-child{font-size:17px}.compass{position:absolute;right:34px;bottom:110px;width:46px;height:46px;border:1px solid #fff7cf88;border-radius:50%;color:#fffdf0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-shadow:0 1px 5px #244d48;background:#164a431c}.compass div{font-size:20px;line-height:20px}.compass span{font-size:8px;letter-spacing:1px}#hotspots{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}.hotspot{position:absolute;top:0;left:0;display:flex;align-items:center;flex-direction:column;gap:7px;transform:translate(-50%,-50%);color:var(--teal);background:transparent;pointer-events:auto;transition:opacity .18s;filter:drop-shadow(0 4px 9px #143c3133);max-width:190px}.hotspot .dot{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fffae9ee;border:2px solid #d5b477;box-shadow:0 0 0 6px #fff2cb2b;transition:transform .2s,box-shadow .2s}.hotspot svg{width:25px;height:25px;color:#a73b34}.hotspot .label{white-space:nowrap;background:#fff9eee8;border:1px solid #decfa6;padding:7px 12px;border-radius:7px;font-weight:600;font-size:16px}.hotspot:hover .dot{transform:scale(1.15);box-shadow:0 0 0 10px #fff2cb55}.hotspot.done .dot{background:#0b6462;color:white}.hotspot.done svg{color:#f7d7a4}.hotspot small{font-size:11px;font-weight:400;display:block;margin-top:3px;opacity:.7}.hotspot.dim{pointer-events:none;opacity:0}.stations{display:flex;align-items:center;background:#fff8e9eb;border-radius:30px;padding:6px;border:1px solid #ffecc8;box-shadow:0 6px 25px #173b2f2b}.stations button{color:var(--teal);background:transparent;border-radius:24px;padding:12px 23px;font-size:16px}.stations button.active{background:var(--teal);color:#fff9eb}.stations i{width:12px;height:1px;background:#adbaa8}.light-btn{background:#fffae9e6;border:1px solid #f3dfb1;padding:13px 20px;border-radius:9px;color:var(--teal);font-size:15px}.light-btn span{margin-left:16px}#foodControls{display:flex;align-items:center;gap:12px}.time-card{padding:15px 20px 12px;background:#fffaf0ef;border-radius:14px;width:420px;box-shadow:0 5px 25px #082d3325;border:1px solid #fff3ce;backdrop-filter:blur(12px)}.time-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-weight:650;font-size:17px}.time-label button{background:transparent;font-size:12px;color:#557b70}.time-marks{display:flex;justify-content:space-between;margin-top:3px}.time-marks button{color:#4d766a;background:transparent;font-size:12px;padding:4px 0}input[type=range]{accent-color:#0b6665;width:100%;cursor:ew-resize;height:20px}.focus-pills{display:flex;gap:8px;margin-top:10px}.focus-pills button{color:#fffbe7;background:#145854c7;border:1px solid #f0deae70;border-radius:24px;padding:9px 15px;font-size:13px;backdrop-filter:blur(8px)}.focus-pills button.active{background:#f5dfac;color:#103f3f}.panel{position:absolute;right:24px;top:86px;bottom:110px;width:min(420px,calc(100% - 40px));z-index:12;background:#fffaf0f7;border:1px solid #e5d7b6;border-radius:18px;box-shadow:0 15px 60px #103f3d33;overflow:auto;backdrop-filter:blur(18px);animation:panelIn .3s ease}.close-panel{position:absolute;right:13px;top:12px;z-index:2;font-size:27px;color:#2e6257;border:1px solid #c3cbb8;background:#fffcf4d9;border-radius:50%;width:34px;height:34px;line-height:30px}.panel-inner{padding:28px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#9c7c42;margin:0 0 8px}.panel h2{font:700 29px/1.4 "STKaiti","KaiTi",serif;color:#064c4d;margin:0 0 15px;padding-right:25px}.panel h3{font-size:18px;margin:22px 0 10px;color:#145853}.panel p{font-size:16px;line-height:1.95;margin:10px 0;color:#48675b}.panel .small{font-size:12px;line-height:1.8;color:#7a887b}.quote{font-family:"STKaiti","KaiTi",serif;font-size:23px!important;line-height:1.8!important;border-left:3px solid #c8a369;padding:12px 17px!important;background:#f1ecdc;border-radius:0 9px 9px 0;color:#174d48!important;margin:18px 0!important}.quote em{font-style:normal;color:#ab6531;font-weight:bold;background:linear-gradient(transparent 70%,#e7d2a0 70%)}.choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.choices button,.sentence-card{background:#f3f0e3;color:#285f55;border:1px solid #cdd3c0;border-radius:9px;font-size:15px;padding:13px;line-height:1.5}.choices button.correct{background:#0d6965;color:white}.choices button.wrong{border-color:#c7804f;background:#fff0dc}.sentence-card{display:block;width:100%;margin-top:10px;text-align:left;font-size:16px;line-height:1.9}.sentence-card.selected{border-color:#a67b32;background:#f4e5bd;box-shadow:0 0 0 2px #d0b26f44}.sentence-card.complete{background:#dcebdd;border-color:#83aa8e}.match-targets{display:flex;gap:6px;margin-top:15px}.match-targets button{flex:1;background:#0d615e;color:#fff8e7;border-radius:8px;padding:12px 4px;font-size:14px}.feedback{font-size:14px!important;color:#99642d!important;min-height:28px}.dish-photo{width:100%;aspect-ratio:1.35;background-image:url('assets/foods.webp');background-size:400% 300%;border-radius:17px 17px 0 0;overflow:hidden}.dish-panel .panel-inner{padding-top:22px}.dish-panel h2{margin-bottom:5px}.collect-btn{display:block;width:100%;padding:15px;background:#0d625d;color:#fff6e6;border-radius:9px;font-size:16px;margin-top:16px}.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.shop-tile{background:#f3eddf;border:1px solid #e2d3b3;border-radius:9px;text-align:left;padding:0;overflow:hidden;color:#22534d;font-size:13px}.shop-tile .thumb{aspect-ratio:1.5;background-image:url('assets/foods.webp');background-size:400% 300%}.shop-tile strong{padding:8px;display:block;font-weight:500}.stamp-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.stamp{border:1px dashed #bcbca4;border-radius:12px;padding:18px 10px;text-align:center;min-height:90px;color:#94a18a;background:#f4f0e2}.stamp.earned{border:2px solid #aa8444;background:#efe2c2;color:#2d6656;transform:rotate(-2deg)}.stamp b{font-size:17px;display:block}.stamp small{display:block;margin-top:7px;font-size:11px}.panel-photo{width:100%;aspect-ratio:1.7;object-fit:cover;border-radius:11px}.reset-progress{font-size:12px;color:#7b8b7d;background:none;text-decoration:underline;margin-top:20px}.key-words{display:flex;gap:7px;flex-wrap:wrap}.key-words span{padding:7px 11px;background:#eadbbb;color:#805e2d;border-radius:5px;font-size:14px}.text-tabs{display:flex;gap:5px;margin-bottom:14px}.text-tabs button{padding:8px 10px;background:#e8eadb;color:#3c695d;border-radius:6px;font-size:13px}.text-tabs button.active{background:#0b615c;color:white}.trade-nav{display:flex;gap:8px;margin-top:18px}.trade-nav button{flex:1}.night .shade{background:linear-gradient(90deg,#051b2b72,transparent 40%),linear-gradient(0deg,#071c2a65,transparent 35%)}.night h1,.night #sceneKicker,.night #sceneSubtitle,.night .journey-hint{color:#fff3d5;text-shadow:0 2px 15px #001524}.night .mouse-icon{border-color:#f1e3bb66}.in-shop .scene-heading,.in-shop .journey-hint{opacity:0}.in-shop .scene-controls{opacity:.5}.panel-open .scene-tag{display:none}#toast{position:absolute;top:22px;left:50%;transform:translate(-50%,-20px);opacity:0;pointer-events:none;padding:12px 22px;background:#fff8e9f2;color:#18594f;border:1px solid #d4bc88;border-radius:30px;font-size:15px;z-index:45;box-shadow:0 4px 24px #113f3425;transition:all .25s;max-width:min(80%,600px);text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}#transition{position:absolute;inset:0;z-index:40;background:#f6f0e5;opacity:0;pointer-events:none;transition:opacity .45s;display:grid;place-items:center}#transition.visible{opacity:1;pointer-events:auto}.transition-flower{display:flex;flex-direction:column;align-items:center;gap:20px;color:var(--teal);font:26px "KaiTi",serif}.transition-flower svg{width:45px;height:45px;color:#af8b44;animation:gentleTurn 6s linear infinite}#loading{position:absolute;inset:0;z-index:50;background:#f6f0e5;display:grid;place-items:center;transition:opacity .5s}.loading-inner{text-align:center;color:#0c5553}.loading-inner svg{width:60px;height:60px;color:#ba934c;animation:gentleTurn 8s linear infinite}.loading-inner p{font:32px "KaiTi",serif;letter-spacing:3px;margin:23px 0 13px}.loading-inner>span{font-size:13px;letter-spacing:2px;color:#809080}.loading-line{width:180px;height:2px;background:#e3dac6;margin:25px auto;overflow:hidden}.loading-line i{display:block;width:35%;height:100%;background:#b49353;animation:loadMove 1.5s ease-in-out infinite}#fallback{position:absolute;inset:0;z-index:55;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f6f0e5;text-align:center;padding:30px}#fallback button{background:#0b615c;color:white;padding:14px 25px;border-radius:8px}footer{height:34px;padding:0 33px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#7b8c7d;letter-spacing:1px;background:#fffaf0;border-top:1px solid #e8e2d1}footer span:last-child{font-family:Georgia;letter-spacing:2px;color:#b08f54}@keyframes panelIn{from{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes gentleTurn{to{transform:rotate(360deg)}}@keyframes loadMove{0%{transform:translateX(-100%)}100%{transform:translateX(400%)}}@media(min-width:1700px){.panel{width:470px}.panel p{font-size:18px}.scene-heading{left:60px;top:45px}.journey-hint{left:62px;top:300px}.scene-controls{left:60px}.hotspot .label{font-size:18px}.hotspot .dot{width:48px;height:48px}}@media(max-width:1050px){.topbar{padding:0 18px;gap:12px}.brand>span{font-size:17px}.brand small{font-size:9px}.scene-nav button{padding:10px 12px;font-size:13px}.passport-btn>span{display:none}.scene-heading{left:25px;top:25px}.scene-controls{left:25px;bottom:25px}.journey-hint{left:27px;top:220px}.tools{right:20px;bottom:24px}.tools button{width:32px;height:34px;font-size:21px}.time-card{width:340px}.panel{right:18px;width:360px}.compass{right:23px}.stations button{padding:11px 17px}.scene-tag{right:20px}}@media(max-width:720px){.topbar{height:114px;flex-wrap:wrap;padding:12px 14px 8px;gap:8px}.brand>svg{width:32px;height:32px;padding:6px;border-radius:9px}.brand>span{font-size:16px;letter-spacing:1px}.brand small{display:none}.scene-nav{order:3;width:100%;justify-content:space-between;padding:4px;gap:2px}.scene-nav button{flex:1;padding:9px 5px;font-size:12px}.scene-nav button span{font-size:11px;margin-right:3px}.passport-btn{margin-left:auto}main{height:calc(100dvh - 142px)}footer{height:28px;padding:0 15px;font-size:9px}footer span:nth-child(2){display:none}.scene-heading{left:20px;top:23px;max-width:260px}h1{font-size:31px;margin-bottom:8px}#sceneKicker{font-size:10px;margin-bottom:10px}#sceneSubtitle{font-size:12px;max-width:240px}.scene-tag{display:none}.journey-hint{left:21px;top:175px;font-size:10px}.scene-controls{left:18px;bottom:76px;max-width:calc(100% - 36px)}.primary{font-size:14px;padding:13px 17px}.control-hint{font-size:10px}.tools{bottom:16px;right:18px;padding:4px;gap:4px;border-radius:10px}.tools button{width:31px;height:30px;font-size:21px}.compass{right:20px;bottom:82px;width:36px;height:36px}.hotspot .dot{width:33px;height:33px}.hotspot svg{width:20px;height:20px}.hotspot .label{font-size:12px;padding:5px 8px}.hotspot{gap:4px}.hotspot small{font-size:9px}.panel{right:12px;left:12px;top:15px;bottom:62px;width:auto;max-width:none}.panel-inner{padding:24px}.panel h2{font-size:26px}.panel p{font-size:16px}.dish-photo{aspect-ratio:1.7}.stations button{padding:9px 15px;font-size:13px}.stations i{width:5px}#foodControls{gap:8px;flex-wrap:wrap}.light-btn{font-size:12px;padding:12px}.light-btn span{margin-left:8px}.time-card{width:min(310px,calc(100vw - 36px));padding:12px 16px}.time-label{font-size:15px}.focus-pills{gap:6px}.focus-pills button{font-size:11px;padding:8px 11px}.night .scene-heading{max-width:250px}.panel-open .scene-controls{opacity:0;pointer-events:none}.panel-open .tools{opacity:.6}.close-panel{width:35px;height:35px}.hotspot small{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.hotspot:active{transform:translate(-50%,-50%)}
.panel{top:38px;bottom:100px}
.dish-photo{aspect-ratio:2.1;background-size:400% auto}
.dish-panel .panel-inner{padding:18px 24px}
.dish-panel h2{font-size:27px;margin:0 0 5px}
.dish-panel p{font-size:14px;line-height:1.7;margin:7px 0}
.dish-panel h3{font-size:16px;margin:13px 0 8px}
.dish-panel .choices{margin:10px 0}
.dish-panel .choices button{padding:10px;font-size:14px}
.dish-panel .small{font-size:11px}
.dish-photo{aspect-ratio:2.4}
.dish-panel p{font-size:16px}
.dish-panel .choices button{font-size:17px}
.dish-panel h3{font-size:18px}
.road-photo{position:relative;border-radius:10px;overflow:hidden;margin:14px 0;line-height:0}
.road-photo img{width:100%;display:block}
.road-photo svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 0 2px #fce9af)}
.road-photo svg path{fill:none;stroke:#fffbdc;stroke-width:.35;stroke-dasharray:2 7;animation:trafficFlow 3s linear infinite}
.road-photo svg path:nth-child(2){stroke:#ffb297;animation-direction:reverse}
.road-photo>span{position:absolute;top:7px;left:8px;font-size:10px;color:#fff2cc;background:#102d3bb8;line-height:1;padding:6px;border-radius:4px}
.is-paused .road-photo svg path{animation-play-state:paused}
@keyframes trafficFlow{to{stroke-dashoffset:-36}}
@media(max-width:720px){.panel{top:15px;bottom:62px}.dish-panel .panel-inner{padding:16px 20px}.dish-photo{aspect-ratio:2.1}}
