:root{--son-900:#3f0f0b;--son-800:#5a1510;--son-700:#7a1f17;--son-600:#962a1f;--son-500:#b0382a;--kim-300:#f6dfa4;--kim-400:#eec571;--kim-500:#d9a441;--kim-600:#b8822b;--kim-700:#8a5f1c;--khoi-900:#22140ed1;--khoi-800:#342018c7;--khoi-700:#4a3024b8;--khoi-line:#ffebc824;--giay-100:#f7f1e4;--giay-200:#efe7d6;--giay-300:#e6dcc8;--giay-400:#d6cab3;--muc:#2b241e;--muc-nhat:#6b5f52;--cap-so-tam:#f3e9d6;--cap-phat-tam:#8fd8ae;--cap-tinh-tan:#8cc3ef;--cap-giac-ngo:#f2c879;--den-long:#ff9a3c;--huong:#ffd9a8;--font-ui:"Be Vietnam Pro","Inter",-apple-system,"Segoe UI",Roboto,sans-serif;--r-pill:999px;--r-card:22px;--shadow-soft:0 10px 30px #00000059}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font-ui);color:var(--giay-100);-webkit-font-smoothing:antialiased;background:#15100e}html,body{background:var(--son-900);touch-action:manipulation;overscroll-behavior:none;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;height:100%;margin:0;overflow:hidden}#app{height:100vh;height:100dvh;position:fixed;inset:0}#scene{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:absolute;inset:0}#scene[hidden],.hud[hidden]{display:none}.boot{z-index:100;text-align:center;background:var(--giay-200);color:#4d5144;font-family:var(--font-ui);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex;position:fixed;inset:0}.boot-mark{color:var(--kim-700);margin-bottom:6px;display:flex}.boot-mark svg{width:36px;height:36px}.boot h1{letter-spacing:6px;color:var(--son-700);margin:0;padding-left:6px;font-size:26px;font-weight:500}.boot p{color:#8a7f70;max-width:100%;margin:0;font-size:13px;line-height:1.7}.boot-dot{background:var(--kim-500);border-radius:50%;width:5px;height:5px;margin-top:14px;animation:1.8s ease-in-out infinite boot-breathe}.boot-retry{bottom:max(24px, env(safe-area-inset-bottom));color:#64664f;text-underline-offset:3px;visibility:hidden;justify-content:center;align-items:center;min-height:44px;padding:0 16px;font-size:13px;text-decoration:underline;animation:0s 15s forwards boot-retry;display:inline-flex;position:absolute}.boot-credit{bottom:max(8px, env(safe-area-inset-bottom));letter-spacing:.4px;color:#b1a48f;margin:0;font-size:11px;position:absolute}.boot.is-error h1{letter-spacing:0;padding:0;font-size:20px}.boot.is-error .boot-dot{display:none}.boot.is-error .boot-retry{visibility:visible;animation:none;position:static}.boot.is-done{opacity:0;pointer-events:none;transition:opacity .6s}@keyframes boot-breathe{50%{opacity:.25}}@keyframes boot-retry{to{visibility:visible}}@media (prefers-reduced-motion:reduce){.boot-dot{animation:none}}.hud{z-index:10;pointer-events:none;font-family:var(--font-ui);-webkit-user-select:none;user-select:none;position:absolute;inset:0}.hud input{-webkit-user-select:text;user-select:text}.hud *{pointer-events:auto}.hud .top{top:calc(12px + env(safe-area-inset-top));justify-content:space-between;align-items:center;display:flex;position:absolute;left:16px;right:16px}.hud .credit{right:16px;bottom:calc(12px + env(safe-area-inset-bottom));letter-spacing:.4px;color:#c9b9a5;opacity:.55;pointer-events:none;font-size:11px;position:absolute}.hud .fps{left:16px;bottom:calc(12px + env(safe-area-inset-bottom));color:#c9b9a5;opacity:.7;font-variant-numeric:tabular-nums;font-size:12px;position:absolute}.pill{border-radius:var(--r-pill);height:48px;color:var(--muc);white-space:nowrap;-webkit-backdrop-filter:blur(8px);background:#f7f1e4eb;border:1px solid #d9a4418c;align-items:center;gap:8px;padding:0 18px;font-size:17px;font-weight:500;display:inline-flex;box-shadow:0 4px 14px #00000040}.pill .dim{color:var(--muc-nhat);font-weight:400}.pill.ico{justify-content:center;width:48px;padding:0}.pill svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.pill.lang{letter-spacing:.5px;color:var(--kim-700);cursor:pointer;font-family:inherit;font-size:14px;font-weight:600}.pill.lang:hover{background:var(--giay-100)}.pill.rank{color:var(--kim-700)}.pill.rank b{color:var(--muc);font-size:20px;font-weight:600}.pill.rank span{color:var(--muc)}.hud .joy{left:24px;bottom:calc(64px + env(safe-area-inset-bottom));touch-action:none;-webkit-user-select:none;user-select:none;background:#f7f1e429;border:1px solid #f7f1e440;border-radius:50%;width:150px;height:150px;position:absolute}.hud .joy.active{background:#f7f1e438}.hud .joy .knob{background:#f7f1e499;border-radius:50%;width:68px;height:68px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 12px #0000004d}.hud .hint{left:50%;bottom:calc(14px + env(safe-area-inset-bottom));border-radius:var(--r-pill);color:var(--muc-nhat);white-space:nowrap;background:#f7f1e4cc;border:1px solid #d9a44159;padding:6px 14px;font-size:12px;position:absolute;transform:translate(-50%)}.hud .layer{pointer-events:none;position:absolute;inset:0}.hud .layer *{pointer-events:auto}.hud .group{gap:8px;display:flex}.pill.ico svg{width:22px;height:22px}.boot-bar{background:var(--giay-400);border-radius:2px;width:160px;height:3px;margin-top:6px;overflow:hidden}.boot-bar i{background:linear-gradient(90deg, var(--kim-500), var(--kim-400));width:0;height:100%;transition:width .2s;display:block}.toasts{top:calc(72px + env(safe-area-inset-top));pointer-events:none;flex-direction:column;gap:8px;display:flex;position:absolute;left:16px;right:16px}.toast{border:1px solid var(--kim-500);min-height:44px;color:var(--muc);opacity:0;background:#f7f1e4f0;border-radius:14px;align-items:center;gap:10px;padding:8px 14px;font-size:15px;transition:opacity .3s,transform .3s;display:flex;transform:translateY(-8px);box-shadow:0 6px 18px #0000004d}.toast.in{opacity:1;transform:none}.toast b{color:var(--son-600);font-weight:600}.toast svg{width:18px;height:18px;stroke:var(--kim-600);fill:none;stroke-width:1.8px;flex:none}.toast .t{text-align:center;flex:1}.sheet{z-index:20;background:var(--giay-100);color:var(--muc);font-family:var(--font-ui);border-radius:28px 28px 0 0;padding:14px 20px 30px;transition:transform .25s;position:absolute;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -20px 50px #00000080}.sheet.in{transform:none}.sheet[hidden]{display:none}@media (min-width:768px){.sheet{width:420px;left:50%;right:auto;transform:translate(-50%,100%)}.sheet.in{transform:translate(-50%)}}.sheet .grab{background:var(--giay-400);border-radius:2px;width:40px;height:4px;margin:0 auto 14px}.sheet h3{color:var(--son-700);align-items:center;gap:8px;margin:0 0 6px;font-size:20px;display:flex}.sheet h3 svg{width:22px;height:22px;stroke:var(--kim-600);fill:none;stroke-width:1.8px}.sheet h3 .x{background:var(--giay-200);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;margin-left:auto;display:flex}.sheet h3 .x svg{stroke:var(--muc-nhat);width:18px;height:18px}.sheet .srow{border-bottom:1px solid var(--giay-300);justify-content:space-between;align-items:center;gap:12px;padding:14px 4px;font-size:16px;display:flex}.sheet .srow small{color:var(--muc-nhat);margin-top:2px;font-size:12px;display:block}.sheet p.d{color:var(--muc-nhat);margin:12px 0 0;font-size:12px;line-height:1.5}.seg{border-radius:var(--r-pill);background:var(--giay-200);border:1px solid var(--giay-400);flex:none;padding:3px;display:flex}.seg button{border-radius:var(--r-pill);font:inherit;color:var(--muc-nhat);cursor:pointer;background:0 0;border:0;padding:6px 12px;font-size:13px}.seg button.on{background:var(--son-700);color:var(--kim-300);font-weight:600}.pill.rank svg{stroke:var(--kim-600)}.hud .actions{right:16px;bottom:calc(34px + env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:14px;display:flex;position:absolute}.act{color:#fff;font:inherit;text-shadow:0 1px 3px #000c;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:0;font-size:14px;display:flex}.act .btn{background:#f7f1e4eb;border:1px solid #d9a4418c;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;display:flex;box-shadow:0 6px 16px #00000059}.act svg{width:28px;height:28px;stroke:var(--son-700);fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.act.primary .btn{background:linear-gradient(160deg, var(--son-500), var(--son-800));border-color:var(--kim-400)}.act.primary svg{stroke:var(--kim-300)}.act:active .btn{transform:scale(.94)}.hud .bar{left:50%;bottom:calc(58px + env(safe-area-inset-bottom));box-shadow:var(--shadow-soft);background:#f7f1e4eb;border:1px solid #d9a4418c;border-radius:24px;gap:10px;padding:10px;display:flex;position:absolute;transform:translate(-50%)}.hud .bar:empty{display:none}.bar .a{background:var(--giay-200);border:1px solid var(--giay-400);width:86px;height:86px;color:var(--muc);font:inherit;cursor:pointer;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex;position:relative}.bar .a svg{width:28px;height:28px;stroke:var(--son-700);fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.bar .a kbd{background:var(--giay-400);color:var(--muc-nhat);border-radius:5px;padding:1px 6px;font-family:inherit;font-size:10px;position:absolute;top:6px;right:8px}.bar .a.primary{background:linear-gradient(160deg, var(--son-500), var(--son-800));border-color:var(--kim-400);color:var(--kim-300)}.bar .a.primary svg{stroke:var(--kim-300)}.bar .a.primary kbd{color:var(--kim-300);background:#00000040}.bar .a:hover{filter:brightness(1.05)}.hud .hint{bottom:calc(14px + env(safe-area-inset-bottom))}.hud .ctxhint{left:50%;bottom:calc(160px + env(safe-area-inset-bottom));border-radius:var(--r-pill);color:var(--muc);white-space:nowrap;text-overflow:ellipsis;background:#f7f1e4e0;border:1px solid #d9a44180;max-width:calc(100% - 32px);padding:7px 14px;font-size:13px;position:absolute;overflow:hidden;transform:translate(-50%)}.hud .ctxhint[hidden]{display:none}@media (pointer:coarse){.hud .ctxhint{bottom:auto;top:calc(112px + env(safe-area-inset-top))}}.hud .nametag{border-radius:var(--r-pill);color:var(--muc);white-space:nowrap;pointer-events:none;will-change:transform;background:#f7f1e4e6;border:1px solid #d9a44180;align-items:center;gap:6px;margin-top:-10px;padding:4px 10px 4px 4px;font-size:13px;font-weight:600;transition:opacity .2s;display:inline-flex;position:absolute;top:0;left:0}.hud .nametag .lv{background:var(--son-700);min-width:20px;height:20px;color:var(--kim-300);border-radius:10px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;display:inline-flex}.namebox{gap:6px;display:flex}.namebox input{border:1px solid var(--giay-400);background:var(--giay-200);width:130px;height:34px;color:var(--muc);font:inherit;border-radius:10px;padding:0 10px;font-size:14px}.namebox button{border:1px solid var(--kim-600);background:var(--giay-100);height:34px;color:var(--son-700);font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;padding:0 10px;font-size:12px}.beads{z-index:15;opacity:0;-webkit-user-select:none;user-select:none;touch-action:none;font-family:var(--font-ui);background:#1405048c;transition:opacity .25s;position:absolute;inset:0}.beads.in{opacity:1}.beads[hidden]{display:none}.beads-top{top:calc(12px + env(safe-area-inset-top));justify-content:space-between;align-items:center;display:flex;position:absolute;left:16px;right:16px}.beads .pill.ico.on{background:var(--son-700);color:var(--kim-300);border-color:var(--kim-500)}.beads-ring{flex-direction:column;justify-content:center;align-items:center;width:260px;height:260px;display:flex;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.beads-ring svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.beads-ring .track{fill:none;stroke:#eec5714d;stroke-width:2px}.beads-ring .fill{fill:none;stroke:var(--kim-400);stroke-width:4px;stroke-linecap:round;transition:stroke-dashoffset .25s}.beads-num{color:var(--kim-300);letter-spacing:2px;text-shadow:0 0 30px #eec57180;font-size:76px;font-weight:300;line-height:1}.beads-num.pop{animation:.3s ease-out beadpop}@keyframes beadpop{0%{transform:scale(1.12)}to{transform:scale(1)}}.beads-lbl{color:var(--giay-200);letter-spacing:3px;text-transform:uppercase;opacity:.85;text-align:center;margin-top:10px;font-size:13px}.beads-hint{text-align:center;color:var(--giay-200);opacity:.8;font-size:14px;position:absolute;top:calc(42% + 160px);left:16px;right:16px}.beads-auto{left:16px;right:16px;bottom:calc(40px + env(safe-area-inset-bottom));text-align:center;color:var(--kim-400);font-size:13px;position:absolute}.hud .chatbar{left:12px;right:12px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:14;opacity:0;align-items:center;gap:8px;transition:opacity .2s,transform .2s;display:flex;position:absolute;transform:translateY(8px)}.hud .chatbar.in{opacity:1;transform:none}.hud .chatbar[hidden]{display:none}.hud .chatbar input{border-radius:var(--r-pill);min-width:0;height:48px;color:var(--muc);font:inherit;background:#f7f1e4f2;border:1px solid #d9a4418c;flex:1;padding:0 18px;font-size:16px;box-shadow:0 6px 16px #0000004d}.hud .chatbar .send{border:1px solid var(--kim-400);background:linear-gradient(160deg, var(--son-500), var(--son-800));cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.hud .chatbar .send svg{width:22px;height:22px;stroke:var(--kim-300);fill:none;stroke-width:1.8px}@media (min-width:768px){.hud .chatbar{width:520px;left:50%;right:auto;transform:translate(-50%,8px)}.hud .chatbar.in{transform:translate(-50%)}}.hud .headbubble{background:var(--son-800);max-width:260px;color:var(--giay-100);border:1px solid var(--kim-600);pointer-events:none;opacity:0;will-change:transform;border-radius:16px;padding:10px 16px;font-size:15px;line-height:1.35;transition:opacity .25s;position:absolute;top:0;left:0;box-shadow:0 8px 20px #0000004d}.hud .headbubble:after{content:"";background:var(--son-800);border-right:1px solid var(--kim-600);border-bottom:1px solid var(--kim-600);width:12px;height:12px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.hud .headbubble.in{opacity:1}.hud .headbubble[hidden]{display:none}.sheet.chatlog .log{max-height:46vh;padding:4px 0;overflow-y:auto}.sheet.chatlog .msg{border-bottom:1px solid var(--giay-300);padding:8px 4px;font-size:14px}.sheet.chatlog .msg .who{color:var(--son-700);font-weight:600}.sheet.chatlog .msg.mine .who{color:var(--kim-700)}.sheet.chatlog .msg .time{color:var(--muc-nhat);margin-left:8px;font-size:11px}.sheet.chatlog .msg .txt{color:var(--muc);margin-top:2px}.sheet.chatlog h3 .cnt{color:var(--muc-nhat);background:var(--giay-200);border-radius:10px;padding:2px 8px;font-size:12px;font-weight:500}.sheet.chatlog .more{border:1px dashed var(--kim-600);background:var(--giay-200);width:100%;color:var(--son-700);font:inherit;cursor:pointer;border-radius:10px;margin:0 0 8px;padding:8px;font-size:13px;display:block}.hud.beads-open>.layer,.hud.chat-open .bar,.hud.chat-open .hint,.hud.chat-open .ctxhint,.hud.chat-open .actions{display:none}.sw{background:var(--giay-400);cursor:pointer;border:0;border-radius:15px;flex:none;width:50px;height:30px;padding:0;position:relative}.sw:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.sw.on{background:var(--son-600)}.sw.on:after{background:var(--kim-300);left:23px}@media (max-width:520px){.pill{gap:6px;height:40px;padding:0 13px;font-size:14px}.pill.ico{width:40px}.pill.ico svg{width:19px;height:19px}.pill.rank b{font-size:16px}.pill.lang{font-size:12px}.hud .top{top:calc(10px + env(safe-area-inset-top));left:10px;right:10px}.hud .group{gap:6px}.toasts{top:calc(58px + env(safe-area-inset-top));left:10px;right:10px}.toast{min-height:38px;padding:6px 10px;font-size:13px}.hud .nametag{gap:5px;padding:3px 8px 3px 3px;font-size:11px}.hud .nametag .lv{min-width:17px;height:17px;font-size:10px}.hud .ctxhint{max-width:calc(100% - 20px);padding:6px 11px;font-size:12px}.hud .joy{width:120px;height:120px;left:16px;bottom:calc(40px + env(safe-area-inset-bottom))}.hud .joy .knob{width:54px;height:54px}.hud .actions{right:12px;bottom:calc(28px + env(safe-area-inset-bottom));gap:10px}.act{gap:4px;font-size:12px}.act .btn{width:54px;height:54px}.act svg{width:24px;height:24px}.hud .fps,.hud .credit{bottom:calc(6px + env(safe-area-inset-bottom));font-size:10px}.hud .headbubble{max-width:220px;padding:8px 12px;font-size:13px}.hud .chatbar{left:8px;right:8px;bottom:calc(10px + env(safe-area-inset-bottom))}.hud .chatbar input{height:42px;font-size:15px}.hud .chatbar .send,.hud .chatbar .pill.ico{width:42px;height:42px}.beads-ring{width:220px;height:220px}.beads-num{font-size:64px}.beads-hint{font-size:13px;top:calc(42% + 135px)}.sheet{padding:12px 16px 24px}.sheet h3{font-size:18px}.sheet .srow{padding:11px 2px;font-size:15px}.namebox input{width:110px}}.hud .layer.tags{z-index:5}.hud .nametag.remote{opacity:.95;background:#f7f1e4d1}.hud .headbubble.remote{opacity:1}.phonebox{align-items:center;gap:6px;display:flex}.phonebox input{border:1px solid var(--giay-400);background:var(--giay-200);width:140px;height:34px;color:var(--muc);font:inherit;border-radius:10px;padding:0 10px;font-size:14px}.phonebox button{border:1px solid var(--kim-600);background:linear-gradient(160deg, var(--son-500), var(--son-800));height:34px;color:var(--kim-300);font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;padding:0 12px;font-size:12px;font-weight:600}.phonebox button:disabled{opacity:.6}.phonebox .linked{color:var(--son-700);letter-spacing:.5px;font-size:14px;font-weight:600}.phonebox #phoneunlink{background:var(--giay-100);color:var(--muc-nhat);border-color:var(--giay-400);font-weight:500}.hud .praybtn{left:16px;bottom:calc(40px + env(safe-area-inset-bottom));width:48px;height:48px;color:var(--son-700);position:absolute}.hud .praybtn svg{width:20px;height:20px}@media (pointer:coarse){.hud .praybtn{left:16px;bottom:calc(230px + env(safe-area-inset-bottom));width:44px;height:44px}}@media (pointer:coarse) and (max-width:520px){.hud .praybtn{bottom:calc(172px + env(safe-area-inset-bottom))}}.reload-sheet{z-index:60;opacity:0;font-family:var(--font-ui);background:#14050499;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;inset:0}.reload-sheet.in{opacity:1}.reload-sheet .card{background:var(--giay-100);width:min(340px,100% - 40px);color:var(--muc);text-align:center;border:1px solid var(--kim-500);border-radius:22px;padding:26px 22px 22px;box-shadow:0 20px 50px #00000080}.reload-sheet svg{width:36px;height:36px;stroke:var(--kim-600);fill:none;stroke-width:1.6px}.reload-sheet h3{color:var(--son-700);margin:10px 0 6px;font-size:21px}.reload-sheet p{color:var(--muc-nhat);margin:0 0 18px;font-size:14px;line-height:1.5}.reload-sheet button{border-radius:var(--r-pill);border:1px solid var(--kim-400);background:linear-gradient(160deg, var(--son-500), var(--son-800));height:46px;color:var(--kim-300);font:inherit;cursor:pointer;padding:0 28px;font-size:16px;font-weight:600}.pill.lunar{color:var(--muc);font-size:14px}.pill.lunar svg{stroke:var(--kim-600);width:18px;height:18px}.pill.lunar.holy{border-color:var(--kim-500);background:linear-gradient(160deg,#f7f1e4f5,#f6dfa4f5)}.pill.lunar b{color:var(--kim-300);background:var(--son-700);border-radius:10px;padding:2px 7px;font-size:12px}.sheet.petition{max-height:86vh;overflow-y:auto}.sheet.petition .paper{border:1px solid var(--kim-500);background:linear-gradient(#fbf6ea,#f3ebd9);padding:16px 16px 12px;position:relative;box-shadow:inset 0 0 0 4px #fbf6ea,inset 0 0 0 5px #d9a44180}.sheet.petition .seal{border:2px solid var(--son-600);width:40px;height:40px;color:var(--son-600);opacity:.8;justify-content:center;align-items:center;font-family:Noto Serif SC,SimSun,serif;font-size:20px;display:flex;position:absolute;top:12px;right:14px;transform:rotate(-8deg)}.sheet.petition .ttl{color:var(--son-700);letter-spacing:3px;text-align:center;margin-bottom:8px;font-family:Noto Serif SC,SimSun,serif;font-size:20px}.sheet.petition .fl{color:var(--muc-nhat);margin:8px 0 2px;font-size:12px}.sheet.petition .fv{box-sizing:border-box;border:0;border-bottom:1px solid var(--kim-500);width:100%;font:inherit;color:var(--muc);resize:none;background:0 0;padding:6px 2px;font-size:16px;display:block}.sheet.petition .chips{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.sheet.petition .chip{border-radius:var(--r-pill);font:inherit;background:var(--giay-200);border:1px solid var(--giay-400);color:var(--muc);cursor:pointer;padding:7px 12px;font-size:13px}.sheet.petition .chip.on{background:var(--son-700);border-color:var(--son-800);color:var(--kim-300);font-weight:600}.sheet.petition .cta{border-radius:var(--r-pill);width:100%;height:50px;font:inherit;color:var(--kim-300);background:linear-gradient(160deg, var(--son-500), var(--son-800));border:1px solid var(--kim-600);cursor:pointer;justify-content:center;align-items:center;gap:8px;margin-top:14px;font-size:16px;font-weight:600;display:flex}.sheet.petition .cta svg{width:20px;height:20px;stroke:var(--kim-300);fill:none;stroke-width:1.8px}.sheet.petition .cta:disabled{opacity:.6}.sheet.petition .link{color:var(--son-700);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin:10px auto 0;font-size:13px;text-decoration:underline;display:block}.sheet.petition .plist{max-height:46vh;margin-top:6px;overflow-y:auto}.sheet.petition .pitem{border-bottom:1px solid var(--giay-300);padding:10px 2px}.sheet.petition .ph{align-items:center;gap:8px;font-size:13px;display:flex}.sheet.petition .k{color:var(--kim-300);background:var(--son-700);border-radius:8px;padding:2px 8px;font-size:11px;font-weight:600}.sheet.petition .who{color:var(--muc);font-weight:600}.sheet.petition .tl{color:var(--muc-nhat);margin-left:auto;font-size:11px}.sheet.petition .for{color:var(--muc-nhat);margin-top:4px;font-size:13px}.sheet.petition .wish{color:var(--muc);margin:4px 0 8px;font-size:15px;line-height:1.4}.sheet.petition .bless{border-radius:var(--r-pill);border:1px solid var(--kim-600);background:var(--giay-100);height:32px;color:var(--son-700);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.sheet.petition .bless svg{width:16px;height:16px;stroke:var(--kim-600);fill:none;stroke-width:1.8px}.sheet.petition .bless b{color:var(--kim-700)}.sheet.petition .bless.done{background:var(--son-700);color:var(--kim-300);border-color:var(--son-800)}.sheet.petition .bless.done svg{stroke:var(--kim-300)}.sheet.petition .bless.done b{color:var(--kim-300)}.sheet.fortune{max-height:86vh;overflow-y:auto}.sheet.fortune .tube{border:2px solid var(--kim-700);transform-origin:50% 100%;background:linear-gradient(90deg,#a88850,#d9b876 40%,#b8954f);border-radius:14px 14px 20px 20px;width:120px;height:150px;margin:10px auto 6px;position:relative;box-shadow:inset 0 -18px 30px #00000040}.sheet.fortune .tube .sticks{gap:4px;display:flex;position:absolute;bottom:100px;left:50%;transform:translate(-50%)}.sheet.fortune .tube .sticks i{background:#efe2b8;border:1px solid #b8954f;border-radius:2px;width:7px;height:70px;display:block}.sheet.fortune .tube .sticks i:nth-child(odd){height:62px;margin-top:8px}.sheet.fortune .tube.shaking{animation:.16s linear infinite tube-shake}.sheet.fortune .tube.drop .sticks i:nth-child(5){animation:.7s ease-in forwards stick-drop}@keyframes tube-shake{0%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}to{transform:rotate(-9deg)}}@keyframes stick-drop{0%{transform:translateY(0)}40%{transform:translateY(-50px)}to{opacity:0;transform:translateY(120px)rotate(60deg)}}.sheet.fortune .wait{text-align:center;color:var(--muc-nhat);margin:8px 0 0;font-size:14px}.sheet.fortune .wait b{color:var(--son-700)}.sheet.fortune .cta{border-radius:var(--r-pill);width:100%;height:50px;font:inherit;color:var(--kim-300);background:linear-gradient(160deg, var(--son-500), var(--son-800));border:1px solid var(--kim-600);cursor:pointer;justify-content:center;align-items:center;gap:8px;margin-top:10px;font-size:16px;font-weight:600;display:flex}.sheet.fortune .cta svg{width:20px;height:20px;stroke:var(--kim-300);fill:none;stroke-width:1.8px}.sheet.fortune .cta:disabled{opacity:.7}.sheet.fortune .link{color:var(--son-700);font:inherit;cursor:pointer;background:0 0;border:0;margin:8px auto 0;font-size:13px;text-decoration:underline;display:block}.sheet.fortune .card{border:1px solid var(--kim-500);text-align:center;background:linear-gradient(#fbf6ea,#f3ebd9);padding:18px 18px 14px;box-shadow:inset 0 0 0 4px #fbf6ea,inset 0 0 0 5px #d9a44180}.sheet.fortune .num{letter-spacing:2px;color:var(--muc-nhat);text-transform:uppercase;font-size:12px}.sheet.fortune .grade{color:var(--kim-300);background:var(--son-700);border-radius:10px;margin:6px 0;padding:3px 12px;font-size:12px;font-weight:600;display:inline-block}.sheet.fortune .grade-thuong .grade{background:var(--kim-600);color:#2b1a08}.sheet.fortune .grade-ha .grade{background:#5a5a5a}.sheet.fortune .grade-vui .grade{color:#f7f1e4;background:#3f6f5a}.sheet.fortune .ttl{color:var(--son-700);margin:4px 0 10px;font-family:Noto Serif SC,SimSun,serif;font-size:22px}.sheet.fortune .poem{color:var(--muc);margin-bottom:10px;font-size:15px;font-style:italic;line-height:1.6}.sheet.fortune .sec{letter-spacing:2px;color:var(--kim-700);text-transform:uppercase;margin-top:10px;font-size:11px}.sheet.fortune p{color:var(--muc);margin:4px 0;font-size:14px;line-height:1.5}.sheet.fortune .foot{color:var(--muc-nhat);margin-top:12px;font-size:11px;font-style:italic}.sheet.fortune .d.center{text-align:center;margin-top:10px}.hud.quiet #chatbtn{display:none}.btnsm{border:1px solid var(--kim-600);background:linear-gradient(160deg, var(--son-500), var(--son-800));height:34px;color:var(--kim-300);font:inherit;cursor:pointer;border-radius:10px;padding:0 14px;font-size:12px;font-weight:600}.sheet.look{max-height:86vh;overflow-y:auto}.sheet.look .lbl{color:var(--muc-nhat);margin:12px 0 6px;font-size:12px}.sheet.look .opts{flex-wrap:wrap;gap:6px;display:flex}.sheet.look .opt{border-radius:var(--r-pill);font:inherit;background:var(--giay-200);border:1px solid var(--giay-400);color:var(--muc);cursor:pointer;padding:8px 14px;font-size:13px}.sheet.look .opt.on{background:var(--muc);border-color:var(--muc);color:var(--giay-100);font-weight:600}.sheet.look .swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:36px;height:36px;padding:0}.sheet.look .swatch.on{border-color:var(--son-700);box-shadow:0 0 0 2px var(--giay-100) inset}.sheet.look .cta{border-radius:var(--r-pill);width:100%;height:46px;font:inherit;color:var(--kim-300);background:linear-gradient(160deg, var(--son-500), var(--son-800));border:1px solid var(--kim-600);cursor:pointer;margin-top:16px;font-size:15px;font-weight:600}.sheet.look{grid-template-columns:1fr;display:grid}.sheet.look .lookpv{z-index:2;background:linear-gradient(180deg, var(--giay-100) 85%, #f7f1e400);justify-content:center;margin:-14px -20px 6px;padding:10px 0 4px;display:flex;position:sticky;top:0}.sheet.look .lookpv canvas{background:radial-gradient(at 50% 70%,#d9a44138,#f7f1e400 70%);border-radius:16px;width:170px;height:190px}@media (min-width:768px){.sheet.look{grid-template-columns:200px 1fr;column-gap:16px;width:560px}.sheet.look .lookpv{background:0 0;align-items:flex-start;margin:0;padding:0;position:static}.sheet.look .lookpv canvas{width:200px;height:300px}.sheet.look>div:last-child{min-width:0}}.sheet.look[hidden],.sheet.look .grab{display:none}.sheet.look .lookpv canvas{touch-action:none;cursor:grab}.sheet.look .lookpv canvas.dragging{cursor:grabbing}@media (max-width:520px){.sheet.look{max-height:86dvh;padding-bottom:calc(14px + env(safe-area-inset-bottom))}.sheet.look .lbl{margin:8px 0 4px}.sheet.look .opts{gap:5px}.sheet.look .opt{padding:6px 11px}.sheet.look .swatch{width:32px;height:32px}.sheet.look .cta{height:44px;margin-top:12px}}@media (max-width:767px){.sheet.look .lookpv{background:var(--giay-100)}}.hud .top{gap:8px}.hud .group.left,.hud .group.right{flex:none}.pill.chip{cursor:pointer;gap:6px;padding:0 14px;font-family:inherit;font-size:15px}.pill.chip svg{width:20px;height:20px}.pill.chip b{font-weight:600}.pill.chip:hover{background:var(--giay-100)}.pill.chip.on{border-color:var(--son-600);background:var(--giay-100)}#peoplebtn svg{stroke:var(--kim-600)}.pill.lunar b{line-height:1.2}.hudpop{z-index:12;box-sizing:border-box;background:var(--giay-100);border:1px solid var(--kim-500);width:min(280px,100vw - 20px);color:var(--muc);border-radius:16px;padding:12px 14px;font-size:14px;position:absolute;box-shadow:0 10px 26px #00000059}.hudpop[hidden]{display:none}.hudpop h4{color:var(--son-700);margin:0 0 4px;font-size:16px;font-weight:600}.hudpop .sub{color:var(--muc-nhat);margin:2px 0;font-size:13px;line-height:1.45}.hudpop .sub b{color:var(--muc)}.hudpop .note{color:var(--kim-700);margin-top:6px}.hudpop .meter{background:var(--giay-400);border-radius:4px;height:8px;margin:8px 0 6px;overflow:hidden}.hudpop .meter i{background:linear-gradient(90deg, var(--kim-500), var(--kim-400));height:100%;display:block}.hudpop .ppl{touch-action:pan-y;max-height:40vh;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.hudpop .ppl li{border-top:1px solid var(--giay-300);align-items:center;gap:8px;min-width:0;padding:5px 0;display:flex}.hudpop .ppl .lv{box-sizing:border-box;background:var(--son-700);min-width:20px;height:20px;color:var(--kim-300);border-radius:10px;flex:none;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:600;display:inline-flex}.hudpop .ppl .nm{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.hudpop .ppl small{color:var(--muc-nhat);flex:none;margin-left:auto;font-size:12px}.btnsm{white-space:nowrap;flex:none}.btnsm:disabled{opacity:.6}.sheet{max-height:86vh;box-sizing:border-box;max-height:86dvh;overflow-y:auto}@media (max-width:520px){.pill.chip{gap:4px;padding:0 10px;font-size:14px}.pill.chip svg{width:17px;height:17px}.pill.chip.rank b{font-size:14px}.pill.lunar b{display:none}.hud .group.left{gap:5px}}@media (max-width:460px){.pill.chip.rank span{display:none}}@media (max-width:430px){.hud .top,.hud .group.right{gap:5px}.hud .group.right .pill.ico{width:38px;height:38px}.hud .group.left .pill{height:38px}}@media (max-width:375px){.pill.chip{gap:3px;padding:0 7px}.pill.chip svg{width:16px;height:16px}.hud .group.left,.hud .top{gap:4px}}.hud .top.tight .pill.lunar span{display:none}@media (max-width:340px){#lang{display:none}}.hud .mapbtn{left:16px;bottom:calc(98px + env(safe-area-inset-bottom));width:48px;height:48px;color:var(--kim-700);position:absolute}.hud .mapbtn svg{width:22px;height:22px}@media (pointer:coarse){.hud .mapbtn{bottom:calc(284px + env(safe-area-inset-bottom));width:44px;height:44px}}@media (pointer:coarse) and (max-width:520px){.hud .mapbtn{bottom:calc(226px + env(safe-area-inset-bottom))}}.hud .guidebar{left:50%;bottom:calc(160px + env(safe-area-inset-bottom));border-radius:var(--r-pill);background:var(--son-700);border:1px solid var(--kim-600);color:var(--kim-300);z-index:5;white-space:nowrap;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:6px 6px 6px 14px;font-size:14px;font-weight:600;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 6px 18px #0000004d}.hud .guidebar[hidden]{display:none}.hud .guidebar>svg{width:18px;height:18px;stroke:var(--kim-300);fill:none;stroke-width:1.8px;flex:none;animation:6s linear infinite gspin}.hud .guidebar span{text-overflow:ellipsis;overflow:hidden}.hud .guidebar button{width:30px;height:30px;color:var(--kim-300);cursor:pointer;background:#ffffff2e;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.hud .guidebar button svg{stroke:currentColor;fill:none;stroke-width:2px;width:16px;height:16px}@keyframes gspin{to{transform:rotate(360deg)}}@media (pointer:coarse){.hud .guidebar{bottom:auto;top:calc(112px + env(safe-area-inset-top))}}.hud.guiding .ctxhint,.hud.chat-open .guidebar,.hud.beads-open .guidebar{display:none}.sheet.guide h3 svg{stroke:var(--son-700)}.sheet.guide .gmap{margin:6px 0 4px}.sheet.guide .gmap svg{width:100%;height:auto;max-height:36vh;max-height:36dvh;margin:0 auto;display:block}.sheet.guide .gmap .hall{fill:#f3e6cf;stroke:none}.sheet.guide .gmap .yard{fill:#e6dcc8}.sheet.guide .gmap .garden{fill:#d3e1b6}.sheet.guide .gmap .tree{fill:#7a9a4a;opacity:.75}.sheet.guide .gmap .censer,.sheet.guide .gmap .bridge{fill:#5a3a26}.sheet.guide .gmap .wall{fill:none;stroke:#8a2b1e;stroke-width:.5px;stroke-linecap:round}.sheet.guide .gmap .gate{fill:none;stroke:var(--kim-600);stroke-width:.7px;stroke-dasharray:.6 .5}.sheet.guide .gmap .altar{fill:var(--kim-600);opacity:.75}.sheet.guide .gmap .statue{fill:var(--kim-400);stroke:var(--kim-700);stroke-width:.2px}.sheet.guide .gmap .mat{fill:none;stroke:var(--kim-600);stroke-width:.18px}.sheet.guide .gmap .stream{fill:none;stroke:#5f9ab4;stroke-width:1.1px;stroke-linecap:round;stroke-linejoin:round}.sheet.guide .gmap text{font-family:var(--font-ui);fill:var(--muc-nhat);text-anchor:middle;letter-spacing:.08px;pointer-events:none;font-size:1.7px;font-weight:600}.sheet.guide .gmap .pin{cursor:pointer}.sheet.guide .gmap .pin circle{fill:var(--son-700);stroke:var(--kim-300);stroke-width:.3px;transition:fill .15s}.sheet.guide .gmap .pin:hover circle{fill:var(--kim-600)}.sheet.guide .gmap .pin text{fill:var(--kim-300);dominant-baseline:central;font-size:1.6px;font-weight:700}.sheet.guide .gmap .me .dot{fill:#2b241e;stroke:#fff;stroke-width:.3px}.sheet.guide .gmap .me .pulse{fill:none;stroke:#2b241e;stroke-width:.3px;transform-box:fill-box;transform-origin:50%;animation:1.6s ease-out infinite gpulse}@keyframes gpulse{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(2.6)}}.sheet.guide .garea{letter-spacing:2px;text-transform:uppercase;color:var(--kim-700);align-items:center;gap:8px;margin-top:10px;font-size:11px;display:flex}.sheet.guide .garea:after{content:"";background:var(--giay-300);flex:1;height:1px}.sheet.guide .spot{border:0;border-bottom:1px solid var(--giay-300);width:100%;font:inherit;color:var(--muc);text-align:left;cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:10px;padding:9px 4px;display:flex}.sheet.guide .spot:hover{background:var(--giay-200)}.sheet.guide .spot .n{background:var(--son-700);width:22px;height:22px;color:var(--kim-300);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.sheet.guide .spot .ic{background:var(--giay-200);border:1px solid var(--giay-400);border-radius:12px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.sheet.guide .spot .ic svg{width:20px;height:20px;stroke:var(--son-700);fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.sheet.guide .spot .tx{flex:1;min-width:0}.sheet.guide .spot .tx b{font-size:15px;display:block}.sheet.guide .spot .tx small{color:var(--muc-nhat);margin-top:1px;font-size:12px;line-height:1.35;display:block}.sheet.guide .spot .mer{color:var(--kim-700);background:var(--kim-300);white-space:nowrap;border-radius:10px;flex:none;padding:3px 8px;font-size:12px;font-weight:700}.sheet.guide .spot .mer.zero{background:var(--giay-200);color:var(--muc-nhat);font-weight:600}.sheet.guide .spot .go{color:var(--son-700);white-space:nowrap;flex:none;align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.sheet.guide .spot .go svg{stroke:currentColor;fill:none;stroke-width:2px;width:16px;height:16px}.sheet.guide .foot{color:var(--muc-nhat);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:12px;line-height:1.4;display:flex}.sheet.guide .foot svg{width:16px;height:16px;stroke:var(--kim-600);fill:none;stroke-width:1.8px;vertical-align:-3px;margin-right:4px}@media (max-width:520px){.sheet.guide .spot{gap:8px;padding:8px 2px}.sheet.guide .spot .tx b{font-size:14px}.sheet.guide .spot .tx small{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sheet.guide .spot .ic{width:32px;height:32px}.sheet.guide .spot .go span{display:none}}
