:root{color-scheme:light;--ink:#354b3f;--muted:#7e8978;--paper:#f5f3e8;--line:#d7dccb;--accent:#597760}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft Yahei",sans-serif;color:var(--ink)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b19b64;outline-offset:5px}button:disabled{opacity:.5;cursor:wait}button:hover{filter:brightness(1.04)}[hidden]{display:none!important}#world{position:absolute;inset:0}canvas{display:block;touch-action:none}.shade{pointer-events:none;position:absolute;inset:0;background:linear-gradient(90deg,#e9eaddba 0,transparent 38%),linear-gradient(0deg,#e8e8dad9,transparent 28%)}header{position:absolute;left:40px;right:40px;top:30px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}header>*{pointer-events:auto}.brand{text-decoration:none;color:var(--ink);display:flex;gap:13px;align-items:center}.brand svg{width:38px;height:46px;fill:#61765b}.brand>span{font-family:serif;font-size:25px;letter-spacing:6px}.brand small{font-family:sans-serif;display:block;font-size:8px;letter-spacing:3.2px;margin-top:4px}.header-right{display:flex;gap:12px;align-items:center}.day{font-size:12px;margin-right:14px;color:#6f7e6b}.day i,.status i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#a0a66c;margin-right:8px}.round{border:1px solid #fff9;background:#f7f6eeaa;backdrop-filter:blur(14px);border-radius:50px;height:44px;display:flex;align-items:center;padding:0 15px;gap:8px;font-size:12px}.round svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.icon-only{width:44px;padding:12px}.intro{position:absolute;top:23%;left:52px;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:3px;color:#89917e}.intro h1{font-family:"Songti SC","SimSun",serif;font-weight:400;font-size:clamp(30px,3.3vw,48px);line-height:1.65;letter-spacing:5px;margin:19px 0}.intro p{font-size:12px;line-height:2.2;color:#7c8877;letter-spacing:1px}.intro-line{height:1px;width:28px;background:#98a38a;margin:26px 0 15px}.intro-note{font-size:10px;color:#89917e}.dock{position:absolute;bottom:45px;left:50%;transform:translateX(-50%);display:flex;padding:14px 12px 12px;border:1px solid #fff9;border-radius:24px;background:#f7f5eccc;backdrop-filter:blur(20px);box-shadow:0 12px 40px #3b543518;gap:3px}.dock button{background:none;min-width:90px;padding:1px 14px 3px;border-radius:14px;display:flex;flex-direction:column;align-items:center;gap:5px;transition:background .2s,transform .2s}.dock button:hover{background:#dbe3d0;transform:translateY(-3px)}.dock svg{width:27px;height:27px;fill:none;stroke:#5d745d;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.dock span{font-size:13px;letter-spacing:2px}.dock small{font-size:9px;letter-spacing:1px;color:#8d9582}.footer-note{position:absolute;bottom:12px;margin:0;left:0;right:0;text-align:center;font-size:9px;letter-spacing:4px;color:#95a08b;pointer-events:none}.status{position:absolute;left:50%;bottom:158px;transform:translateX(-50%);font-size:12px;background:#f7f5ece0;padding:10px 18px;border-radius:30px;white-space:nowrap;pointer-events:none;box-shadow:0 3px 15px #4f654508}.overview{position:absolute;bottom:57px;right:40px;background:transparent;display:flex;align-items:center;gap:9px;font-size:22px}.overview span{font-size:11px;letter-spacing:2px}.place{position:absolute;transform:translate(-50%,-100%);border:1px solid #ffffffab;background:#f8f6e8d9;backdrop-filter:blur(6px);border-radius:20px;padding:7px 12px;box-shadow:0 5px 16px #304b3012;font-size:10px;letter-spacing:1px;white-space:nowrap}.place::after{content:'';position:absolute;width:3px;height:12px;background:#6b8366;top:100%;left:50%;opacity:.65}.place:hover{background:#fffbea}dialog{border:1px solid #fff;box-shadow:0 30px 90px #243c3440;background:#f7f5ea;color:var(--ink);border-radius:26px;padding:36px;width:min(430px,calc(100vw - 32px));max-height:86dvh;overflow:auto;text-align:center}dialog::backdrop{background:#37483c45;backdrop-filter:blur(5px)}.close{position:absolute;right:15px;top:12px;background:none;font-size:27px;font-weight:200;color:#778472;width:32px;height:32px}h2{font-family:"Songti SC",serif;font-size:29px;font-weight:400;letter-spacing:2px;margin:15px 0}dialog p{font-size:12px;line-height:1.9;color:#7d8775}.muted{font-size:10px!important;color:#939b8a!important}.primary{border-radius:12px;background:#59745f;color:#fffcef;padding:14px 22px;font-size:13px;letter-spacing:1px}.secondary{border-radius:10px;border:1px solid #d0d7c6;padding:9px 14px;font-size:11px;background:#eeefe3}.counter b{font-size:33px;font-weight:300;letter-spacing:3px}.counter span{display:block;font-size:10px;color:#8f9887;margin:4px 0 18px}#wood-hit{display:block;width:100%;background:transparent;padding:0;margin-top:12px}#wood-hit svg{width:100%;max-width:280px;display:block;margin:auto}#wood-hit span{font-size:10px;color:#969f8b}#wood-hit.hit svg{animation:hit .16s}#wood-hit.hit #mallet{transform-origin:230px 30px;animation:mallet .16s}@keyframes hit{50%{transform:scale(.96,.94)}}@keyframes mallet{50%{transform:rotate(-15deg)}}.coin-art{width:80px;height:80px;border-radius:50%;border:5px double #b79d66;color:#aa8c50;display:grid;place-items:center;margin:24px auto;font-family:serif;font-size:35px;background:#ecdfbb}.setting{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:15px 0;border-bottom:1px solid var(--line);font-size:12px;gap:12px}.setting small{display:block;font-size:10px;color:#929a86;margin-top:6px}.setting input{width:110px;accent-color:#647d61}h3{font-size:12px;font-weight:500;margin-top:23px;text-align:left}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;font-size:10px;color:#87917f}.stats b{display:block;font-size:23px;font-weight:300;margin:4px;color:#4f6855}details{font-size:10px;color:#919987;text-align:left;border-top:1px solid var(--line);padding-top:12px;margin-top:20px}details a{color:#58715c}#bead-turn{width:240px;height:240px;margin:15px auto;position:relative;background:none;display:grid;place-items:center}#bead-turn strong{font-size:34px;font-weight:300}#bead-ring{position:absolute;inset:0;transition:transform .25s}#bead-ring i{position:absolute;left:calc(50% - 10px);top:calc(50% - 10px);width:20px;height:20px;background:radial-gradient(circle at 30% 25%,#d0ac78,#967146);border-radius:50%;box-shadow:1px 3px 4px #6b53392b}#rest-screen{position:fixed;inset:0;background:#e4e8d9f2;backdrop-filter:blur(24px);z-index:30;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}#rest-screen h2{font-size:40px;line-height:1.7;margin:24px}#rest-screen p{font-size:12px;color:#819079}#rest-screen small{font-size:10px;color:#89957f;margin-top:24px}.rest-circle{width:160px;height:160px;border:1px solid #b5c0a5;border-radius:50%;margin-bottom:25px;box-shadow:0 0 0 20px #b6c4a713,0 0 0 40px #b6c4a708;animation:breathe 8s infinite}@keyframes breathe{50%{transform:scale(1.12);opacity:.55}}.stop{position:absolute;bottom:200px;left:50%;transform:translateX(-50%);background:#647d63;color:white;padding:11px 20px;border-radius:25px;font-size:12px}#load-error{position:absolute;inset:30%;padding:25px;background:var(--paper);border-radius:15px;z-index:50}#mobile-pad{display:none}.cinematic .intro{opacity:0}.cinematic .place{opacity:0;pointer-events:none}.cinematic .dock{opacity:.65}.intro{transition:opacity .5s}
@media(max-width:700px){header{top:20px;left:20px;right:20px}.brand svg{width:28px}.brand>span{font-size:21px}.brand small{font-size:6px}.header-right{gap:7px}.day{display:none}.round{padding:0 11px;height:38px}.round span{display:none}.icon-only{width:38px}.intro{left:24px;top:13%}.intro h1{font-size:28px;line-height:1.5;margin:10px 0;letter-spacing:3px}.intro p{display:none}.intro .eyebrow{font-size:8px;letter-spacing:2px}.intro-line{display:none}.intro-note{font-size:9px}.dock{bottom:35px;border-radius:20px;padding:11px 5px;width:calc(100% - 30px);justify-content:space-around;gap:0}.dock button{min-width:0;flex:1;padding:2px}.dock svg{width:24px;height:24px}.dock small{display:none}.dock span{font-size:11px;letter-spacing:1px}.footer-note{bottom:14px;font-size:8px}.status{bottom:119px;max-width:90%;white-space:normal;text-align:center;font-size:11px;width:max-content}.overview{right:18px;bottom:160px;background:#f3f3e8b8;border-radius:18px;padding:8px;font-size:18px}.overview span{font-size:10px}.place{font-size:9px;padding:5px 8px}.stop{bottom:160px}dialog{padding:29px 24px}#mobile-pad{position:absolute;left:16px;bottom:158px;display:grid;grid-template-columns:repeat(3,28px);grid-template-rows:repeat(2,28px);gap:2px;opacity:.7}#mobile-pad button{border-radius:7px;background:#f8f6e8b0;font-size:15px}#mobile-pad [data-dir=up]{grid-column:2}#mobile-pad [data-dir=left]{grid-column:1;grid-row:2}#mobile-pad [data-dir=down]{grid-column:2;grid-row:2}#mobile-pad [data-dir=right]{grid-column:3;grid-row:2}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.fortune-topic{display:flex;align-items:center;justify-content:center;gap:15px;font-size:12px;color:#79816f;margin:18px 0 0}.fortune-topic select{font:inherit;color:#4c6553;background:#eeeee0;border:1px solid #cbd2bf;border-radius:9px;padding:9px 28px 9px 12px}.fortune-vessel{width:220px;margin:0 auto -10px}.fortune-vessel svg{width:100%;display:block}.fortune-flying-stick{opacity:0}.fortune-shaker{transform-origin:130px 163px}.shaking .fortune-shaker{animation:fortune-shake .24s ease-in-out infinite}.shaking .fortune-flying-stick{animation:fortune-release .8s 2.4s both}#fortune-shake:disabled{opacity:.55;cursor:wait}#fortune-note{min-height:23px;margin:8px 0 18px}.fortune-result{position:relative;border:1px solid #d3c5a3;border-radius:15px;background:linear-gradient(135deg,#faf6e8,#f1ead6);padding:24px 20px;margin:16px 0 22px;box-shadow:inset 0 0 0 5px #fff8}.fortune-result small{font-size:10px;letter-spacing:2px;color:#8c826b}.fortune-result h3{font-family:"Songti SC",serif;font-size:27px;font-weight:400;letter-spacing:4px;text-align:center;margin:18px 0;color:#765d39}.fortune-result h3:focus-visible{outline:1px solid #b3ba9d;outline-offset:5px}.fortune-seal{display:inline-flex;gap:8px;align-items:center;border:1px solid #b4654b;border-radius:6px;padding:7px 12px;color:#a4553c;font-size:13px;margin-bottom:13px}.fortune-seal b{font-family:serif;font-size:19px;font-weight:400}#fortune-number{display:block}#fortune-verse{white-space:pre-line;font-family:"Songti SC",serif;font-size:16px;line-height:2.05;letter-spacing:2px;color:#6d7059;margin:15px 0}#fortune-meaning{font-size:12px;text-align:left;line-height:1.95;border-top:1px solid #d7cdb4;padding-top:15px}#fortune-wish{font-size:12px;letter-spacing:2px;color:#a26746;margin-top:18px}#fortune-dialog.has-result .fortune-vessel{display:none}#fortune-dialog.has-result #fortune-note{margin-bottom:0;font-size:10px}.fortune-result{animation:fortune-reveal .45s ease-out}@keyframes fortune-shake{0%,100%{transform:rotate(-9deg) translateY(0)}50%{transform:rotate(9deg) translateY(-5px)}}@keyframes fortune-release{0%{opacity:0;transform:translateY(10px)}20%{opacity:1}60%{opacity:1;transform:translateY(-22px) rotate(8deg)}100%{opacity:0;transform:translate(28px,36px) rotate(22deg)}}@keyframes fortune-reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.dock svg{width:22px;height:22px}.dock span{font-size:10px}.fortune-result{padding:20px 15px}#fortune-verse{font-size:15px;letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.shaking .fortune-shaker,.shaking .fortune-flying-stick,.fortune-result{animation:none!important}}
/* Explicit viewport centering also stays stable when rotating an open dialog. */
#fortune-dialog{position:fixed;inset:auto;left:50vw;top:50dvh;transform:translate(-50%,-50%);margin:0}
#labels{position:absolute;inset:0;overflow:hidden;pointer-events:none}#labels .place{pointer-events:auto}

.sit-controls{position:absolute;bottom:200px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;white-space:nowrap}.sit-controls .stop{position:static;transform:none}.sit-controls #sit-chant{border-radius:25px;padding:11px 18px}.sit-controls #sit-chant[aria-pressed="true"]{background:#d8e1cc;border-color:#8b9b7c}@media(max-width:700px){.sit-controls{bottom:207px}.sit-controls .stop,.sit-controls #sit-chant{font-size:11px;padding:10px 16px}}

.pond-controls{position:absolute;bottom:200px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;white-space:nowrap}.pond-controls button{border-radius:25px;font-size:12px;padding:11px 18px}#pond-feed:disabled{opacity:.65;cursor:default}@media(max-width:700px){.pond-controls{bottom:207px}.pond-controls button{font-size:11px;padding:10px 16px}}
