:root{--ink:#203d39;--ink-soft:#526b62;--paper:#fffaf0;--paper-deep:#f0e3bd;--moss:#377565;--sun:#f3c861;--coral:#db765c;--shadow:0 18px 54px #183a342c;--safe-t:max(14px,env(safe-area-inset-top));--safe-r:max(14px,env(safe-area-inset-right));--safe-b:max(14px,env(safe-area-inset-bottom));--safe-l:max(14px,env(safe-area-inset-left));font-family:ui-rounded,"SF Pro Rounded","PingFang TC","Noto Sans TC",system-ui,sans-serif;color:var(--ink)}
*{box-sizing:border-box}html,body,#game{width:100%;height:100%;margin:0;overflow:hidden}body{background:#78bfc2;overscroll-behavior:none;-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit}button:focus-visible{outline:3px solid #fff;outline-offset:3px}.hidden{display:none!important}
#world{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline:none}#world.dragging{cursor:grabbing}.screen{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:24px;text-align:center;background:linear-gradient(#78bfc2,#c3dba4 68%,#efc872)}#loading{color:#173d3b;transition:opacity .35s}.loading-sigil{position:relative;display:grid;place-items:center;width:92px;height:92px;margin:auto;border:2px solid #327066;border-radius:50%;font-size:43px;color:#fff9da;animation:turn 6s linear infinite}.loading-sigil:after{position:absolute;inset:9px;content:"";border:1px dashed #fff8;transform:rotate(17deg)}.eyebrow{margin:0 0 8px;color:#557166;font-size:11px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.screen h1,.welcome-card h1,.bottom-card h2,.journal h2{font-family:Georgia,"Songti TC","STSong",serif}.screen h1{margin:4px 0 0;font-size:clamp(38px,7vw,70px);line-height:1.05}.english{margin:8px 0 0;font-size:12px;font-weight:900;letter-spacing:.37em}.load-track{width:min(360px,72vw);height:7px;margin:25px auto 10px;overflow:hidden;border-radius:99px;background:#fff9}.load-track i{display:block;width:0;height:100%;border-radius:inherit;background:#286a62;transition:width .18s}#load-text{font-size:13px}
.paper{background:linear-gradient(135deg,#fffdf6,#f6e9c9);border:1px solid #fff;box-shadow:var(--shadow);border-radius:24px}.welcome-card{position:relative;width:min(580px,calc(100vw - 32px));padding:clamp(26px,5vw,48px);overflow:hidden;text-align:left}.welcome-card:after{position:absolute;right:-28px;top:-55px;content:"✦";font-size:170px;color:#edbc4b24;pointer-events:none}.welcome-card h1{position:relative;margin:4px 0 17px;font-size:clamp(31px,6vw,52px);line-height:1.05}.welcome-card>p:not(.eyebrow){position:relative;max-width:470px;margin-bottom:0;color:var(--ink-soft);line-height:1.8}.gesture-grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0}.gesture-grid div{display:grid;gap:4px;padding:13px 8px;border-radius:15px;background:#efe2bd;text-align:center}.gesture-grid span{font-size:23px}.gesture-grid b{font-size:14px}.gesture-grid small{font-size:11px;color:#62746b}.primary{position:relative;min-height:50px;border:0;border-radius:99px;padding:0 22px;background:var(--ink);color:#fff;font-weight:850;cursor:pointer}.primary span{padding-left:21px;font-size:18px}
.hud{position:fixed;z-index:10;top:var(--safe-t);right:var(--safe-r);left:var(--safe-l);display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.place-card{display:flex;align-items:center;gap:10px;padding:9px 16px 9px 9px;border-radius:99px;background:#fffde9e8;box-shadow:0 5px 20px #24413324;backdrop-filter:blur(8px);pointer-events:auto}.compass{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--sun);font-size:21px;transition:background .45s,color .45s}.place-card.market .compass{background:#ee9b68}.place-card.forest .compass{background:#83b772}.place-card.graveyard .compass{background:#9388b8;color:#fff}.place-card small,.place-card strong{display:block}.place-card small{color:#708078;font-size:10px;letter-spacing:.08em}.place-card strong{font-family:Georgia,"Songti TC",serif;font-size:17px}.hud nav{display:flex;gap:8px;pointer-events:auto}.hud nav button{display:grid;place-items:center;grid-auto-flow:column;gap:5px;min-width:48px;height:48px;padding:0 14px;border:1px solid #fff;border-radius:99px;background:#fffde9e8;box-shadow:0 5px 20px #24413324;backdrop-filter:blur(8px);font-size:19px;font-weight:800;cursor:pointer}.hud nav em{font-style:normal;font-size:13px}.hint{position:fixed;z-index:7;bottom:calc(var(--safe-b) + 18px);left:50%;margin:0;padding:9px 16px;border-radius:99px;transform:translateX(-50%);background:#203a34cc;color:#fff;font-size:12px;pointer-events:none;transition:opacity .3s}.hint.fade{opacity:0}.toast{position:fixed;z-index:30;top:calc(var(--safe-t) + 72px);left:50%;max-width:calc(100vw - 32px);margin:0;padding:11px 18px;border-radius:99px;transform:translate(-50%,-13px);background:#fff9da;color:#27443a;box-shadow:var(--shadow);font-size:14px;font-weight:800;opacity:0;pointer-events:none;transition:.28s}.toast.show{opacity:1;transform:translate(-50%,0)}
.bottom-card{position:fixed;z-index:25;bottom:calc(var(--safe-b) + 16px);left:50%;width:min(590px,calc(100vw - 32px));padding:24px 56px 22px 26px;transform:translateX(-50%)}.bottom-card h2,.journal h2{margin:0 0 12px;font-size:28px}.bottom-card>p:not(.eyebrow){min-height:52px;margin-bottom:16px;font-size:16px;line-height:1.7}.close{position:absolute;top:12px;right:12px;width:44px;height:44px;border:0;border-radius:50%;background:#e8dcc0;font-size:25px;line-height:1;cursor:pointer}.choices{display:grid;gap:8px}.choices button{min-height:48px;padding:10px 15px;border:1px solid #cfbd9f;border-radius:13px;background:#fffdf7;text-align:left;font-weight:720;line-height:1.35;cursor:pointer}.choices button:hover{background:#eee1bd}.choices button:active,.primary:active{transform:translateY(1px)}
.journal{position:fixed;z-index:25;top:calc(var(--safe-t) + 65px);right:var(--safe-r);bottom:var(--safe-b);width:min(430px,calc(100vw - 32px));padding:26px;overflow:auto}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0 18px}.summary span{padding:9px 4px;border-radius:12px;background:#e8dfc4;text-align:center}.summary b,.summary small{display:block}.summary b{font-size:20px}.summary small{font-size:10px}.tabs{display:flex;gap:6px;overflow:auto;padding-bottom:10px}.tabs button{min-height:44px;flex:0 0 auto;border:0;border-radius:99px;padding:0 13px;background:#e7dec5;cursor:pointer}.tabs button.active{background:var(--ink);color:#fff}.journal-list{display:grid;gap:8px}.journal-list article{display:flex;align-items:center;gap:12px;min-height:58px;padding:9px 12px;border:1px solid #ded3b7;border-radius:14px}.journal-list article i{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:#f2cd6e;font-style:normal}.journal-list article b,.journal-list article small{display:block}.journal-list article small{margin-top:3px;color:#6e7e75;font-size:12px}.journal-list .locked{opacity:.46;filter:grayscale(1)}.journal-note{margin:20px 0 0;color:#718078;text-align:center;font-size:12px}.fatal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px;background:#203d39;color:#fff;text-align:center}.fatal .paper{max-width:430px;padding:28px;color:var(--ink)}.fatal button{min-height:44px;padding:0 18px;border:0;border-radius:99px;background:var(--ink);color:#fff;font-weight:800;cursor:pointer}
@keyframes turn{to{transform:rotate(360deg)}}
@media(max-width:600px){.hud nav button{width:44px;min-width:44px;padding:0}.hud nav em{display:none}.place-card{padding-right:12px}.compass{width:36px;height:36px}.place-card strong{font-size:15px}.gesture-grid{gap:6px}.gesture-grid div{padding:11px 3px}.bottom-card{padding:21px 53px 18px 20px}.bottom-card h2{font-size:24px}.bottom-card>p:not(.eyebrow){font-size:15px}.journal{top:calc(var(--safe-t) + 60px);padding:22px}.hint{bottom:calc(var(--safe-b) + 10px)}}
@media(max-height:540px) and (orientation:landscape){.welcome-card{max-height:calc(100vh - 20px);padding:20px;overflow:auto}.welcome-card h1{margin-bottom:8px;font-size:29px}.welcome-card>p:not(.eyebrow){line-height:1.45}.gesture-grid{margin:10px 0}.journal{top:calc(var(--safe-t) + 56px);width:min(420px,61vw)}.bottom-card{bottom:var(--safe-b);left:var(--safe-l);width:min(540px,59vw);max-height:78vh;overflow:auto;transform:none}.hint{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
