:root{--ink:#20251b;--ink-soft:#20251b9e;--matcha:#6f8f35;--chip:#fafaf69e;--chip-border:#ffffffb3;--chip-shadow:0 1px 2px #1e221814, 0 8px 24px -12px #1e221847;--chip-height:44px;--backdrop:#bcc0b5;--gutter:clamp(14px, 3.2vw, 28px);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--font:"PingFang SC", "HarmonyOS Sans SC", "MiSans", "Noto Sans SC", "Hiragino Sans GB", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{background:var(--backdrop);height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;overflow:hidden}.app{position:fixed;inset:0}#scene{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:crosshair;outline:none;width:100%;height:100%;display:block}#scene:focus-visible{box-shadow:inset 0 0 0 3px #6f8f358c}.hud{pointer-events:none;padding:calc(env(safe-area-inset-top) + var(--gutter)) calc(env(safe-area-inset-right) + var(--gutter)) calc(env(safe-area-inset-bottom) + var(--gutter)) calc(env(safe-area-inset-left) + var(--gutter));opacity:0;transition:opacity .6s var(--ease-out);grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);display:grid;position:absolute;inset:0}.hud.is-ready{opacity:1}.hud-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.brand{flex-direction:column;gap:2px;margin:0;line-height:1;display:flex}.brand-cn{letter-spacing:.02em;font-size:clamp(22px,4.6vw,34px);font-weight:700}.brand-en{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);font-size:12px;font-weight:500}.hud-actions{gap:8px;display:flex}.icon-button{pointer-events:auto;border:1px solid var(--chip-border);background:var(--chip);width:44px;height:44px;box-shadow:var(--chip-shadow);-webkit-backdrop-filter:blur(14px)saturate(1.3);backdrop-filter:blur(14px)saturate(1.3);color:var(--ink);cursor:pointer;transition:transform .16s var(--ease-out), background-color .16s var(--ease-out);border-radius:999px;place-items:center;display:grid}.icon-button:hover{background:#fffffcd1}.icon-button:active{transform:scale(.94)}.icon-button:focus-visible{outline:2px solid var(--matcha);outline-offset:2px}.icon-button svg{fill:currentColor;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.icon-button svg path[fill=none]{fill:none}.chip{min-height:var(--chip-height);border:1px solid var(--chip-border);background:var(--chip);box-shadow:var(--chip-shadow);-webkit-backdrop-filter:blur(14px)saturate(1.3);backdrop-filter:blur(14px)saturate(1.3);border-radius:999px;grid-area:3/1;place-self:end center;align-items:center;margin:0;padding:0 18px;display:inline-flex}.counter{opacity:0;transition:opacity .32s var(--ease-out) .16s, transform .32s var(--ease-out) .16s;gap:6px;transform:translateY(8px)scale(.96)}.counter.is-visible{opacity:1;transform:none}.counter-label{color:var(--ink-soft);font-size:14px}.counter-value{font-variant-numeric:tabular-nums;color:var(--matcha);font-size:24px;font-weight:700;display:inline-block}.counter.is-pop .counter-value{animation:count-pop .42s var(--ease-spring)}.counter.is-feast .counter-value{animation:count-feast .72s var(--ease-spring)}@keyframes count-pop{0%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes count-feast{0%{transform:scale(1.6)rotate(-6deg)}60%{transform:scale(.95)rotate(2deg)}to{transform:none}}.hint{color:var(--ink-soft);text-align:center;transition:opacity .24s var(--ease-out), transform .24s var(--ease-out);font-size:14px}.hint.is-hidden{opacity:0;transform:translateY(6px)}.loader{background:var(--backdrop);color:var(--ink-soft);transition:opacity .7s var(--ease-out);place-content:center;justify-items:center;gap:18px;font-size:14px;display:grid;position:absolute;inset:0}.loader.is-done{opacity:0;pointer-events:none}.loader p{margin:0}.loader-blob{width:54px;height:40px;animation:wobble 1.1s var(--ease-out) infinite alternate;background:#5e3d31;border-radius:50% 50% 46% 46%/62% 62% 38% 38%}.loader.is-error .loader-blob{opacity:.4;animation:none}@keyframes wobble{0%{transform:scale(1.06,.92)}to{transform:scale(.95,1.06)}}@media (prefers-reduced-motion:reduce){.loader-blob,.counter.is-pop .counter-value,.counter.is-feast .counter-value{animation:none}.hud,.counter,.hint,.loader{transition-duration:1ms}}@media (pointer:coarse){#scene{cursor:default}}
