:root{--gold:#e9c87e;--gold-strong:#f6d892;--cream:#fbf3e1;--glass:#0a121c99;--glass-strong:#0a121cc7;--line:#e9c87e47;--serif:"Songti SC", "STSong", "Noto Serif SC", "Noto Serif CJK SC", "Source Han Serif SC", serif;--sans:-apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--safe-top:calc(var(--tg-safe-area-inset-top,env(safe-area-inset-top,0px)) + var(--tg-content-safe-area-inset-top,0px));--safe-bottom:calc(var(--tg-safe-area-inset-bottom,env(safe-area-inset-bottom,0px)) + var(--tg-content-safe-area-inset-bottom,0px));--safe-left:calc(var(--tg-safe-area-inset-left,env(safe-area-inset-left,0px)) + var(--tg-content-safe-area-inset-left,0px));--safe-right:calc(var(--tg-safe-area-inset-right,env(safe-area-inset-right,0px)) + var(--tg-content-safe-area-inset-right,0px))}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;height:100%;color:var(--cream);font-family:var(--sans);-webkit-user-select:none;-moz-user-select:none;user-select:none;background:#0b1620;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#hud{pointer-events:none;z-index:10;position:fixed;top:0;bottom:0;left:0;right:0}#hud>*{pointer-events:auto}.watermark{left:50%;top:calc(var(--safe-top) + 4px);letter-spacing:.18em;white-space:nowrap;color:#ffffff9e;text-shadow:0 1px 3px #00000073;pointer-events:none;z-index:70;font-size:11px;font-weight:600;position:fixed;transform:translate(-50%)}.topbar{padding:calc(var(--safe-top) + 24px) calc(var(--safe-right) + 16px) 0 calc(var(--safe-left) + 16px);justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:0;left:0;right:0;pointer-events:none!important}.topbar>*{pointer-events:auto}.stats{pointer-events:none;flex-direction:column;align-items:flex-start;gap:6px;display:flex}.merit{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;align-items:baseline;gap:8px;padding:8px 14px;display:flex}.merit-label{font-family:var(--serif);color:var(--gold);letter-spacing:.15em;font-size:14px}#merit-value{font-variant-numeric:tabular-nums;color:var(--cream);font-size:20px;font-weight:600}#merit-value.bump{animation:.35s bump}@keyframes bump{40%{color:var(--gold-strong);transform:scale(1.18)}}.streak{color:#fbf3e1d1;text-shadow:0 1px 4px #0009;padding-left:6px;font-size:12px}.tools{gap:8px;display:flex}.chip{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);height:36px;color:var(--cream);border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.chip svg{width:18px;height:18px;color:var(--gold)}.chip.icon-only{justify-content:center;width:36px;padding:0}.merit,.chip{white-space:nowrap}.chip{flex-shrink:0}@media (max-width:389px){.chip{gap:4px;padding:0 10px}}@media (max-width:359px){.chip:not(.icon-only) svg{display:none}}#btn-sound .off,#btn-sound.muted .on{display:none}#btn-sound.muted .off{display:block}.vertical-title{right:calc(var(--safe-right) + 18px);top:calc(var(--safe-top) + 76px);writing-mode:vertical-rl;font-family:var(--serif);letter-spacing:.35em;color:var(--gold-strong);text-shadow:0 2px 12px #0000008c,0 0 18px #f6d89240;opacity:.92;font-size:22px;position:absolute;pointer-events:none!important}#hint{left:50%;bottom:calc(var(--safe-bottom) + 140px);white-space:nowrap;color:#fbf3e1e0;background:#0a121c6b;border-radius:999px;padding:6px 12px;font-size:12px;transition:opacity 1s;position:absolute;transform:translate(-50%);pointer-events:none!important}#hint.hide{opacity:0}.bar-open #hint{bottom:calc(var(--safe-bottom) + 216px)}#stick{opacity:0;z-index:15;background:#0a121c47;border:1px solid #e9c87e73;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;transition:opacity .15s;position:fixed;pointer-events:none!important}#stick.on{opacity:1}#stick i{background:radial-gradient(circle at 40% 35%,#f6d892bf,#c99a4899);border-radius:50%;width:48px;height:48px;margin:-24px 0 0 -24px;position:absolute;top:50%;left:50%;box-shadow:0 2px 10px #00000059}.online{color:#fbf3e1e6;text-shadow:0 1px 4px #0009;align-items:center;gap:6px;padding-left:6px;font-size:12px;display:flex}.online[hidden]{display:none}.online i{background:#6fdc8c;border-radius:50%;width:7px;height:7px;box-shadow:0 0 6px #6fdc8c}.emotes{left:calc(var(--safe-left) + 16px);bottom:calc(var(--safe-bottom) + 16px);z-index:2;flex-direction:column;gap:8px;transition:bottom .25s;display:flex;position:absolute}.bar-open .emotes{bottom:calc(var(--safe-bottom) + 112px)}.emote-pop{gap:6px;display:none;position:absolute;top:0;left:52px}.emotes.open .emote-pop{display:flex}.emotes button{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;width:44px;height:44px;font-size:22px;line-height:1}.emotes button:active{transform:scale(.9)}.emotes button.off{opacity:.45}#chat-log{left:calc(var(--safe-left) + 16px);top:calc(var(--safe-top) + 124px);flex-direction:column;align-items:flex-start;gap:4px;width:min(68vw,340px);display:flex;position:absolute;pointer-events:none!important}#chat-log p{max-width:100%;color:var(--cream);word-break:break-all;background:#0a121c6b;border-radius:10px;margin:0;padding:4px 9px;font-size:12px;line-height:1.4;transition:opacity .8s}#chat-log p b{color:var(--gold-strong);margin-right:4px;font-weight:600}#chat-log p.fade{opacity:0}#chat-bar{left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 12px);bottom:calc(var(--safe-bottom) + 12px);z-index:25;background:var(--glass-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:18px;max-width:520px;margin:0 auto;padding:10px;position:absolute}#chat-bar[hidden],#chat-bar:not([hidden])~#prompt{display:none}#chat-bar .quick{scrollbar-width:none;gap:6px;padding-bottom:8px;display:flex;overflow-x:auto}#chat-bar .quick::-webkit-scrollbar{display:none}#chat-bar .quick button{border:1px solid var(--line);color:var(--cream);background:#ffffff0f;border-radius:999px;flex:none;padding:6px 12px;font-size:13px}#chat-bar .row{gap:8px;display:flex}#chat-bar input{border:1px solid var(--line);min-width:0;height:42px;color:var(--cream);font:inherit;-webkit-user-select:text;-moz-user-select:text;user-select:text;background:#ffffff14;border-radius:12px;outline:none;flex:1;padding:0 12px;font-size:15px}#chat-bar input:focus{border-color:var(--gold)}#chat-bar button[type=submit]{color:#2a1a08;background:linear-gradient(#f2d48e,#c99a48);border-radius:12px;height:42px;padding:0 16px;font-weight:600}#chat-close{width:42px;height:42px;color:var(--cream);background:#ffffff0f;border-radius:12px}.actions button.near{background:#e9c87e38;box-shadow:inset 0 0 0 1px #f6d892a6}.actions button.near .label,.actions button.active .label{color:var(--gold-strong)}.actions button.active{background:#e9c87e4d;box-shadow:inset 0 0 0 1px #f6d892cc}.actions{left:calc(var(--safe-left) + 16px);right:calc(var(--safe-right) + 16px);bottom:calc(var(--safe-bottom) + 16px);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:22px;grid-template-columns:repeat(6,1fr) 26px;gap:2px;max-width:480px;margin:0 auto;padding:8px;display:grid;position:absolute}.actions button{border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:8px 0 6px;transition:background .2s,transform .12s;display:flex;position:relative;overflow:hidden}.actions button:active{background:#e9c87e1f;transform:scale(.94)}.actions svg{width:28px;height:28px;color:var(--gold-strong);position:relative}.actions .label{font-family:var(--serif);letter-spacing:.15em;padding-left:.15em;font-size:14px;position:relative}.actions .cd{border-radius:inherit;background:conic-gradient(#0a121c9e calc(var(--cd,0) * 360deg), transparent 0);pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.actions button.cooling svg,.actions button.cooling .label{opacity:.55}.actions .toggle{justify-content:center;padding:0}.actions .toggle>svg{color:#fbf3e1b3;width:20px;height:20px}.actions .toggle .when-closed{font-family:var(--serif);letter-spacing:.1em;color:var(--gold-strong);font-size:14px;display:none}.actions .toggle .when-closed svg{vertical-align:-3px;width:16px;height:16px;color:var(--gold-strong);margin-right:3px}.actions.collapsed{border-radius:999px;grid-template-columns:auto;padding:4px;left:50%;right:auto;transform:translate(-50%)}.actions.collapsed>button:not(.toggle){display:none}.actions.collapsed .toggle{flex-direction:row;gap:4px;padding:8px 14px}.actions.collapsed .toggle .when-closed{display:inline}.actions.collapsed .toggle>svg{width:16px;height:16px;transform:rotate(180deg)}#prompt{left:50%;bottom:calc(var(--safe-bottom) + 76px);color:#2a1a08;font-family:var(--serif);letter-spacing:.15em;background:linear-gradient(#f6dc9c,#cf9f4c);border-radius:999px;align-items:center;gap:6px;padding:10px 22px 10px 16px;font-size:17px;font-weight:700;animation:.25s prompt-in;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 6px 18px #00000059,0 0 0 4px #f6d89240}#prompt[hidden]{display:none}#prompt svg{color:#2a1a08;width:24px;height:24px}#prompt.cooling{filter:grayscale(.7)brightness(.8);box-shadow:0 6px 18px #00000059}#prompt:active{transform:translate(-50%)scale(.95)}@keyframes prompt-in{0%{opacity:0;transform:translate(-50%,10px)}}#zen{left:50%;bottom:calc(var(--safe-bottom) + 128px);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;align-items:center;gap:10px;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:calc(100vw - 32px);padding:6px 6px 6px 8px;animation:.35s prompt-in;display:flex;position:absolute;transform:translate(-50%)}#zen[hidden]{display:none}.bar-open #zen{bottom:calc(var(--safe-bottom) + 216px)}.zen #hint{opacity:0}.breath{flex:none;place-items:center;width:44px;height:44px;display:grid;position:relative}.breath i{background:radial-gradient(circle,#f6d8928c,#f6d8921f 62%,#0000 72%);border-radius:50%;animation:10s ease-in-out infinite breathe;position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 0 0 1px #f6d89280}.breath b{font-family:var(--serif);color:var(--gold-strong);text-shadow:0 1px 4px #00000080;font-size:15px;position:absolute}.breath .in{animation:10s linear infinite breath-in}.breath .out{animation:10s linear infinite breath-out}@keyframes breathe{0%,to{transform:scale(.55)}40%{transform:scale(1)}}@keyframes breath-in{0%,38%{opacity:1}42%,to{opacity:0}}@keyframes breath-out{0%,38%{opacity:0}42%,96%{opacity:1}to{opacity:0}}.zen-text{flex-direction:column;gap:1px;min-width:0;display:flex}#zen-time{font-family:var(--serif);letter-spacing:.08em;color:var(--cream);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px}#zen-note{color:#fbf3e1b3;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}#zen-stop{color:#2a1a08;height:38px;font-family:var(--serif);letter-spacing:.12em;background:linear-gradient(#f6dc9c,#cf9f4c);border-radius:999px;flex:none;padding:0 14px;font-size:15px;font-weight:700}#zen-stop:active{transform:scale(.95)}@media (prefers-reduced-motion:reduce){.breath i,.breath b{animation-duration:20s}}.muyu{right:calc(var(--safe-right) + 16px);bottom:calc(var(--safe-bottom) + 16px);background:radial-gradient(circle at 35% 30%,#3c2816bf,#0e0a08d1);border:1px solid #e9c87e73;border-radius:50%;place-items:center;width:64px;height:64px;transition:bottom .25s;display:grid;position:absolute;box-shadow:0 6px 20px #00000059,inset 0 0 12px #e9c87e26}.bar-open .muyu{bottom:calc(var(--safe-bottom) + 108px)}.muyu svg{stroke:none;width:46px;height:46px}.muyu.hit{animation:.18s knock}@keyframes knock{40%{transform:scale(.9)rotate(-4deg)}}#floaters{pointer-events:none;z-index:45;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.floater{font-family:var(--serif);white-space:nowrap;color:var(--gold-strong);text-shadow:0 2px 8px #000000b3;font-size:18px;font-weight:600;animation:1.4s ease-out forwards float-up;position:absolute;transform:translate(-50%,-50%)}.floater.big{font-size:22px}.floater.soft{color:var(--cream);font-size:16px;font-weight:400}@keyframes float-up{0%{opacity:0;transform:translate(-50%,-30%)scale(.8)}15%{opacity:1;transform:translate(-50%,-70%)scale(1.05)}to{opacity:0;transform:translate(-50%,-260%)scale(1)}}#toast{left:50%;top:calc(var(--safe-top) + 26%);z-index:45;opacity:0;background:var(--glass-strong);border:1px solid var(--line);text-align:center;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:calc(100% - 32px);color:var(--cream);white-space:pre-line;pointer-events:none;border-radius:14px;padding:10px 16px;font-size:14px;line-height:1.5;transition:opacity .35s,transform .35s;position:fixed;transform:translate(-50%,-12px)}#toast.show{opacity:1;transform:translate(-50%)}#modal{z-index:40;padding:calc(var(--safe-top) + 12px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 12px) calc(var(--safe-left) + 16px);overscroll-behavior:contain;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#04080c8c;place-items:center;animation:.25s fade-in;display:grid;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}#modal[hidden]{display:none}@keyframes fade-in{0%{opacity:0}}.sheet{border:1px solid var(--line);background:linear-gradient(#182430f5,#0c141ef7);border-radius:22px;width:100%;max-width:380px;margin:auto;padding:22px 20px 18px;animation:.3s rise;box-shadow:0 20px 60px #00000080}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}.sheet h2{font-family:var(--serif);letter-spacing:.2em;color:var(--gold-strong);text-align:center;margin:0 0 4px;font-size:20px;font-weight:600}.sheet .sub{color:#fbf3e1a6;text-align:center;margin:0 0 16px;font-size:13px}.wish-chips{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.wish-chips button{border:1px solid var(--line);background:#ffffff0a;border-radius:999px;padding:8px 14px;font-size:14px}.wish-chips button.on{border-color:var(--gold);color:var(--gold-strong);background:#e9c87e33}.sheet input{border:1px solid var(--line);width:100%;color:var(--cream);font:inherit;-webkit-user-select:text;-moz-user-select:text;user-select:text;background:#ffffff0d;border-radius:12px;outline:none;margin-top:14px;padding:12px 14px;font-size:15px}.sheet input:focus{border-color:var(--gold)}.sheet .row{gap:10px;margin-top:18px;display:flex}.btn{letter-spacing:.1em;border:1px solid var(--line);background:#ffffff0d;border-radius:14px;flex:1;height:46px;font-size:15px}.btn.primary{color:#2a1a08;background:linear-gradient(#f2d48e,#c99a48);border:0;font-weight:600}.lot-stage{place-items:center;height:190px;display:grid}#cup{left:50%;bottom:calc(var(--safe-bottom) + 92px);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:22px;align-items:center;gap:8px;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:calc(100vw - 140px);padding:7px 7px 7px 6px;animation:.3s prompt-in;display:flex;position:absolute;transform:translate(-50%)}#cup[hidden],body.cupping .actions,.cupping #prompt,.cupping #hint{display:none}body.cupping .emotes,body.cupping .muyu{bottom:calc(var(--safe-bottom) + 16px)}body.cupping #cup{bottom:calc(var(--safe-bottom) + 92px)}#cup-leave{color:#fbf3e1bf;background:#ffffff14;border-radius:50%;flex:none;width:24px;height:24px;font-size:12px}.cup-info{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}#cup-stat{color:#fbf3e1c7;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px}.cup-slots{gap:4px;display:flex}.cup-slots i{width:20px;height:20px;font-style:normal;font-family:var(--serif);color:#0000;border:1px dashed #e9c87e73;border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:grid}.cup-slots i.sheng{color:#2a1a08;background:linear-gradient(#f6dc9c,#cf9f4c);border:0}.cup-slots i.xiao{color:var(--cream);background:#fbf3e140;border:0}.cup-slots i.yin{color:#fbe3dc;background:#8e2a1e;border:0}#cup-throw{color:#2a1a08;height:40px;font-family:var(--serif);letter-spacing:.12em;background:linear-gradient(#f6dc9c,#cf9f4c);border-radius:999px;flex:none;padding:0 14px;font-size:15px;font-weight:700}#cup-throw:disabled{filter:grayscale(.6)brightness(.8)}#cup-throw:active{transform:scale(.95)}.lot-tube{transform-origin:50% 90%;width:110px;height:170px}.lot-tube.shake{animation:.16s ease-in-out infinite alternate shake}@keyframes shake{0%{transform:rotate(-9deg)}to{transform:rotate(9deg)translateY(-4px)}}.lot-card{color:#3a2410;background:linear-gradient(#f8eed8,#efdfbc);border-radius:14px;padding:22px 18px 18px;animation:.45s rise;position:relative;box-shadow:inset 0 0 0 1px #78461440,inset 0 0 0 6px #f8eed8,inset 0 0 0 7px #96281e59}.lot-card .no{font-family:var(--serif);letter-spacing:.2em;color:#7a4a20;text-align:center;font-size:15px}.lot-card .title{font-family:var(--serif);letter-spacing:.25em;text-align:center;margin-top:4px;padding-left:.25em;font-size:24px;font-weight:700}.lot-card .seal{writing-mode:vertical-rl;font-family:var(--serif);letter-spacing:.1em;color:#fff4ea;background:#a8322a;border-radius:4px;padding:4px 6px;font-size:14px;font-weight:700;position:absolute;top:14px;right:14px;transform:rotate(6deg);box-shadow:0 0 0 2px #a8322a40}.lot-card .poem{font-family:var(--serif);text-align:center;letter-spacing:.08em;margin:16px 0 12px;font-size:17px;line-height:1.9}.lot-card .meaning{color:#5a3a1a;border-top:1px dashed #78461459;padding-top:10px;font-size:14px;line-height:1.7}.lot-card .yiji{color:#6a4520;gap:14px;margin-top:8px;font-size:13px;display:flex}.lot-card .yiji b{color:#a8322a;margin-right:4px}.lot-note{text-align:center;color:#fbf3e199;margin-top:10px;font-size:12px}@media (min-width:720px){.actions{bottom:calc(var(--safe-bottom) + 24px)}.bar-open .muyu,.bar-open .emotes{bottom:calc(var(--safe-bottom) + 16px)}.bar-open .muyu{right:calc(50% - 330px)}.bar-open .emotes{left:calc(50% - 300px)}#hint,.bar-open #hint{bottom:calc(var(--safe-bottom) + 120px)}.bar-open #zen{bottom:calc(var(--safe-bottom) + 128px)}}
