:root{--ink:#f6f0e3;--ink-dim:#c7bea9;--gold:#e3b25a;--gold-2:#f0cf6a;--red:#b8322a;--glass:#181c2899;--glass-strong:#161a26e0;--line:#ffeecd24;--serif:"Noto Serif TC", "Songti TC", "Source Han Serif TC", "PMingLiU", "STSong", serif;--sans:"PingFang TC", "Noto Sans TC", "Microsoft JhengHei", system-ui, -apple-system, "Segoe UI", sans-serif;--top:calc(env(safe-area-inset-top,0px) + 10px);--bottom:calc(env(safe-area-inset-bottom,0px) + 12px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;-webkit-user-select:none;user-select:none;background:#1a2030;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,[tabindex]:focus-visible,input:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}[hidden]{display:none!important}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#labels{pointer-events:none;z-index:1;position:fixed;inset:0;overflow:hidden}.veil{z-index:2;pointer-events:none;opacity:0;background:radial-gradient(at 50% 55%,#fffffff7,#ecf1f8f0 60%,#d6e0eee6);transition:opacity .24s;position:fixed;inset:0}.veil.on{opacity:1}.nametag{white-space:nowrap;color:var(--ink);will-change:transform, opacity;background:#1216208c;border-radius:999px;padding:2px 9px;font-size:12px;line-height:1.5;position:absolute;top:0;left:0}.nametag.me{color:#2a1d08;background:#e3b25aeb;font-weight:600}.nametag.monk{color:#f6dc9a;font-family:var(--serif);letter-spacing:.08em;background:#7a1f17db}.floater{white-space:nowrap;color:var(--gold-2);text-shadow:0 1px 3px #000000b3;will-change:transform, opacity;font-size:15px;font-weight:700;position:absolute;top:0;left:0}.floater.gassho{font-size:22px}.floater.sparkle{font-size:13px}.floater.dot{color:#fff;font-size:30px}.floater.jiaobei{color:#fff;text-shadow:none;background:#b8322ae6;border-radius:999px;padding:3px 12px;font-size:14px}.floater.lamp-tip{color:#2a1d08;text-shadow:none;background:#ffe296f5;border-radius:9px;padding:5px 11px;font-size:13px}.floater.lamp{font-size:20px}.floater.puff{color:#fff;text-shadow:0 0 12px #ffffffe6;font-size:34px}.topbar{top:var(--top);z-index:10;pointer-events:none;align-items:center;gap:8px;display:flex;position:fixed;left:12px;right:12px}.topbar>*{pointer-events:auto}.chip{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;height:40px;padding:0 14px;font-size:14px;display:inline-flex}.chip.icon{justify-content:center;width:40px;padding:0}.chip.icon.off{color:var(--ink-dim)}.hall-chip .logo{display:inline-flex}.brand{font-family:var(--serif);letter-spacing:.08em;font-weight:700}.hall{color:var(--ink-dim)}.lang-label{letter-spacing:.02em;font-size:12px;font-weight:700}#lang-btn{width:auto;padding:0 12px}.spacer{flex:1}.dot{background:#999;border-radius:50%;flex:none;width:8px;height:8px}.dot.online{background:#86d694;box-shadow:0 0 8px #86d694}.dot.offline{background:#d98c6a}.dot.connecting{background:var(--gold);animation:1.2s ease-in-out infinite pulse}.counters span{color:var(--ink-dim);font-size:13px}.counters b{color:var(--gold-2);font-variant-numeric:tabular-nums;margin-left:2px;font-weight:600}.counters:empty{display:none}.chip.coins{gap:6px;padding:0 12px}.chip.coins b{color:var(--gold-2);font-variant-numeric:tabular-nums;font-weight:700}.coin{background:radial-gradient(circle at 35% 30%,#fff3c4,#e8b84a 45%,#a8741e 100%);border-radius:50%;flex:none;width:15px;height:15px;box-shadow:0 0 8px #ffce6e99,inset 0 0 0 1.5px #7a4e0e8c}.chip.coins.pulse .coin{animation:.9s ease-out coinpulse}@keyframes coinpulse{30%{transform:scale(1.35);box-shadow:0 0 16px #ffce6ef2}}.hint{top:calc(var(--top) + 52px);z-index:9;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:calc(100vw - 24px);margin:0;padding:7px 14px;font-size:13px;transition:opacity 1.2s 3s;position:fixed;left:50%;overflow:hidden;transform:translate(-50%)}.hint.fade{opacity:0}.toast{top:calc(var(--top) + 96px);z-index:25;opacity:0;pointer-events:none;background:var(--glass-strong);border:1px solid var(--line);text-align:center;border-radius:14px;max-width:min(460px,100vw - 32px);padding:10px 18px;font-size:14.5px;line-height:1.5;transition:opacity .35s,transform .35s;position:fixed;left:50%;transform:translate(-50%,-8px)}.toast.show{opacity:1;transform:translate(-50%)}.actions{bottom:var(--bottom);z-index:10;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);border-radius:22px;grid-template-columns:repeat(12,1fr);gap:2px;padding:6px;display:grid;position:fixed;left:50%;transform:translate(-50%)}.actions button{letter-spacing:.04em;background:0 0;border:0;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:70px;height:62px;font-size:12.5px;display:flex;position:relative}.actions button:hover{background:#ffffff12}.actions button:active{transform:scale(.96)}.actions button.on{color:var(--gold-2);background:#e3b25a38}.actions kbd{font:600 9px/1 var(--sans);opacity:.4;position:absolute;top:5px;right:7px}.scrim{z-index:15;background:#080a1238;position:fixed;inset:0}.panel{z-index:20;background:var(--glass-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);opacity:0;border-radius:22px;width:min(420px,100vw - 32px);max-height:calc(100vh - 170px);padding:16px 20px 20px;transition:opacity .25s,transform .25s;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-46%)scale(.98);box-shadow:0 24px 60px #00000059}.panel.show{opacity:1;transform:translate(-50%,-50%)}.panel>header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.panel h2,.sutra h2{font-family:var(--serif);letter-spacing:.12em;color:var(--gold-2);margin:0;font-size:20px;font-weight:700}.panel-close{background:#ffffff12;border:0;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;display:grid}.panel-close svg{width:18px;height:18px}.lead{text-align:center;margin:12px 4px;font-size:15px;line-height:1.75}.note{text-align:center;color:var(--ink-dim);margin:8px 0 0;font-size:13px;line-height:1.6}.hint-text{text-align:center;color:var(--ink-dim);margin:10px 0 0;font-size:12.5px}.row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px;display:flex}.row.col{flex-direction:column;align-items:center}.btn{border:1px solid var(--line);letter-spacing:.06em;background:#ffffff12;border-radius:999px;justify-content:center;align-items:center;gap:6px;height:42px;padding:0 20px;font-size:15px;display:inline-flex}.btn.primary{color:#2a1d08;background:linear-gradient(#ecc26a,#c99a3c);border:0;font-weight:700}.btn.small{height:32px;padding:0 12px;font-size:13px}.btn.small svg{width:16px;height:16px}.btn:disabled{opacity:.5;cursor:default}.link{color:var(--gold);text-underline-offset:3px;background:0 0;border:0;padding:4px;font-size:13.5px;text-decoration:underline}.strand{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:18px;outline:none;place-items:center;height:clamp(230px,40vh,340px);margin:0 -8px;display:grid;position:relative}.strand:active{cursor:grabbing}.strand:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.strand svg{width:100%;height:100%;overflow:hidden}#bead-halo{transform-box:fill-box;transform-origin:50%;opacity:.7}#bead-halo.push{animation:.42s ease-out halo}#bead-cue.on{animation:1.8s ease-in-out .6s infinite cue}.bead-floats{pointer-events:none;z-index:1;position:absolute;inset:0}.bead-float{font-family:var(--serif);letter-spacing:.12em;color:var(--gold-2);text-shadow:0 1px 4px #0009;white-space:nowrap;font-size:18px;font-weight:700;animation:1.5s ease-out forwards rise;position:absolute;top:40%;left:70%;transform:translate(-50%)}.bead-progress{background:#ffffff1a;border-radius:2px;width:min(220px,70%);height:4px;margin:4px auto 6px;position:relative}.bead-progress i{background:linear-gradient(90deg,#c99a3c,#f0cf7c);border-radius:2px;width:0;transition:width .25s;position:absolute;inset:0 auto 0 0}.bead-progress b{background:#5fa98a;border-radius:1px;width:2px;height:8px;margin-left:-1px;position:absolute;top:-2px}.big{text-align:center;font-family:var(--serif);color:var(--gold-2);font-variant-numeric:tabular-nums;font-size:34px}.sub{text-align:center;color:var(--ink-dim);font-size:14px}#panel-beads,#panel-mokugyo{background:#141722f7}.mk-stage{place-items:center;height:260px;display:grid;position:relative}.fish{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:18px;place-items:center;width:100%;height:100%;padding:0;display:grid}.fish:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.fish svg{width:min(320px,100%);height:100%;display:block;overflow:visible}.fish .mk-body{transform-box:view-box;transform-origin:152px 232px}.fish.hit .mk-body{animation:.24s ease-out knock}.fish .mallet{transform-box:view-box;transform-origin:280px 50px;transform:rotate(8deg)}.fish.hit .mallet{animation:.42s cubic-bezier(.2,.7,.3,1) mallet}.fish .mk-ripple{transform-box:view-box;transform-origin:150px 50px;opacity:0}.fish.hit .mk-ripple{animation:.5s ease-out ripple}.mk-floats{pointer-events:none;z-index:1;position:absolute;inset:0}.mk-float{font-family:var(--serif);color:var(--gold-2);letter-spacing:.08em;text-shadow:0 1px 4px #0009;white-space:nowrap;font-size:16px;font-weight:700;animation:1.3s ease-out forwards rise;position:absolute;top:18%;transform:translate(-50%)}.mk-count{flex-direction:column;align-items:center;gap:0;margin-top:2px;display:flex}.mk-label{color:var(--ink-dim);letter-spacing:.12em;font-size:13px}.mk-count .big{line-height:1.15}.mk-tempo{color:var(--ink-dim);justify-content:center;align-items:center;gap:6px;margin:12px 0 4px;font-size:13.5px;display:flex}.mk-tempo span{margin-right:4px}.mk-tempo button{border:1px solid var(--line);min-width:44px;height:32px;color:var(--ink);background:#ffffff0d;border-radius:16px;padding:0 10px;font-size:13.5px}.mk-tempo button[aria-pressed=true]{border-color:var(--gold);color:var(--gold-2);background:#e3b25a33}.check{cursor:pointer;align-items:center;gap:10px;margin:12px 0;font-size:14px;display:flex}.check.center{justify-content:center}.check input{accent-color:var(--gold);width:18px;height:18px}.beads-mute{background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;margin:4px auto 0;padding:0;display:grid}.beads-mute:hover{background:#ffffff12}.beads-mute[aria-pressed=true]{color:var(--gold-2)}.beads-mute svg{width:20px;height:20px}.fortune-body{flex-direction:column;justify-content:center;min-height:260px;display:flex}.tube{transform-origin:50% 90%;width:96px;height:160px;margin:8px auto 0;position:relative}.tube.shaking{animation:.13s ease-in-out infinite alternate shake}.tube .cup{background:linear-gradient(90deg,#9c7835,#dcbd6f 45%,#a8843f);border-radius:8px 8px 14px 14px;height:100px;position:absolute;bottom:0;left:10px;right:10px;box-shadow:inset 0 -10px #00000024,inset 0 6px #ffffff2e}.tube .sticks{justify-content:space-between;align-items:flex-end;height:92px;display:flex;position:absolute;bottom:62px;left:20px;right:20px}.tube .sticks i{background:linear-gradient(#c0392b 0 12%,#ead39f 12%);border-radius:2px;width:4px;height:100%}.tube .sticks i:nth-child(2n){height:86%}.tube .sticks i:nth-child(3n){height:94%}.stick-drawn{background:linear-gradient(#c0392b 0 12%,#ecd6a2 12%);border-radius:7px;place-items:center;width:50px;height:196px;margin:8px auto 0;animation:.55s cubic-bezier(.2,.8,.3,1.2) drop;display:grid;box-shadow:0 6px 18px #0000004d}.stick-drawn span{writing-mode:vertical-rl;font-family:var(--serif);color:#5a2410;letter-spacing:.12em;margin-top:18px;font-size:17px;font-weight:700}.blocks{justify-content:center;align-items:flex-end;gap:28px;height:130px;display:flex}.block{width:92px;overflow:visible}.block path:first-child{fill:#b8322a}.block.flat path:first-child{fill:#dc5e43}.block.round path:first-child{fill:#8c2119}.block .shine{stroke:#ffffff59;stroke-width:4px;fill:none;stroke-linecap:round}.block .grain{stroke:#5a0f0866;stroke-width:2px;fill:none}.blocks.tossing .block{animation:1.15s cubic-bezier(.3,.7,.4,1) toss}.blocks.tossing .block:nth-child(2){animation-duration:1.08s;animation-delay:50ms}.blocks.landed .block{animation:.3s ease-out land}.result{text-align:center;font-family:var(--serif);letter-spacing:.24em;margin:10px 0 0;font-size:28px;font-weight:700}.result.r0{color:var(--gold-2)}.result.r1{color:#f3c9a3}.result.r2{color:var(--ink-dim)}.poem{color:#3a2210;-webkit-user-select:text;user-select:text;background:#f4e8cb;border-radius:12px;margin-top:4px;padding:16px 18px;box-shadow:inset 0 0 0 2px #b8322a,inset 0 0 0 6px #f4e8cb,inset 0 0 0 7px #b8322a}.poem-head{font-family:var(--serif);justify-content:space-between;font-size:15px;font-weight:700;display:flex}.tier{color:#b8322a;letter-spacing:.1em}.poem-zh{writing-mode:vertical-rl;height:8.8em;font-family:var(--serif);letter-spacing:.18em;text-align:start;margin:12px auto 4px;font-size:21px;line-height:2;display:block}.poem-zh span{display:block}.lang-en .poem-zh{font-size:17px}.poem-en p{text-align:center;margin:2px 0;font-size:14px;font-style:italic;line-height:1.55}.meaning{margin:12px 0 0;font-size:14.5px;line-height:1.7}.meaning b{color:#b8322a;margin-right:4px}.lamp-art{place-items:center;height:116px;display:grid}.lamp{background:#4a2a1c;border:3px solid #c99a3c;border-radius:12px;width:66px;height:84px;transition:background .8s,box-shadow .8s;position:relative}.lamp:after{content:"";background:#6b3d24;border-radius:50% 50% 8px 8px;transition:background .8s;position:absolute;inset:14px 17px 18px}.lamp.on{background:#ffd27a;box-shadow:0 0 46px 12px #ffc86480}.lamp.on:after{background:#fff3cc}.wishes{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.wish{border:1px solid var(--line);letter-spacing:.08em;background:#ffffff0d;border-radius:12px;height:46px;font-size:15px}.wish.on{border-color:var(--gold);color:var(--gold-2);background:#e3b25a3d}.my-lamps{border:1px solid var(--line);border-radius:12px;margin:4px 0 14px;padding:10px 12px}.my-lamps .label{color:var(--ink-dim);margin-bottom:6px;font-size:12.5px}.my-lamps ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.my-lamps li{justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.note.left{text-align:left;margin:0 0 8px}.auto-close-note{opacity:.7;margin:6px 0 0;font-size:12px}.auto-close{background:var(--gold);transform-origin:0;width:60%;height:3px;animation:run-out var(--ms) linear forwards;opacity:.7;border-radius:2px;margin:16px auto 0}@keyframes run-out{to{transform:scaleX(0)}}.field{flex-direction:column;gap:8px;margin:14px 0;display:flex}.field>span,.slider>span{color:var(--ink-dim);font-size:13px}.seg{gap:6px;display:flex}.seg button{border:1px solid var(--line);background:#ffffff0d;border-radius:10px;flex:1;height:38px}.seg button.on{border-color:var(--gold);color:var(--gold-2);background:#e3b25a3d}.slider{grid-template-columns:84px 1fr;align-items:center;gap:10px;margin:8px 0;display:grid}input[type=range]{width:100%;accent-color:var(--gold)}.swatches{gap:10px;justify-content:inherit;flex-wrap:wrap;display:flex}.swatch{background:var(--c);border:2px solid #ffffff40;border-radius:50%;width:34px;height:34px;padding:0}.swatch.on{border-color:var(--gold-2);box-shadow:0 0 0 3px #e3b25a59}.name-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.name-row b{font-family:var(--serif);color:var(--gold-2);font-size:18px}.about{margin-top:8px}.about summary{cursor:pointer;color:var(--ink-dim);font-size:14px}.about p{color:var(--ink);-webkit-user-select:text;user-select:text;font-size:13.5px;line-height:1.75}.hall-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:11px 4px;display:flex}.hall-row.here .hall-name{color:var(--gold-2)}.hall-name{font-family:var(--serif);flex:1;font-size:16px}.hall-n{color:var(--ink-dim);font-size:13px}.tag{color:var(--gold-2);font-size:12.5px}.stat{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;padding:11px 2px;display:flex}.stat b{color:var(--gold-2);font-variant-numeric:tabular-nums;font-size:19px;font-weight:600}.sutra{left:16px;top:calc(var(--top) + 54px);z-index:12;background:var(--glass-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:20px;flex-direction:column;width:340px;max-height:calc(100vh - 220px);padding:14px 16px 12px;display:flex;position:fixed}.sutra header{align-items:center;gap:8px;display:flex}.sutra h2{flex:1;font-size:16px}.sutra-lines{scrollbar-width:none;margin:6px 0;padding:22% 2px;overflow:auto;-webkit-mask-image:linear-gradient(#0000,#000 18% 82%,#0000);mask-image:linear-gradient(#0000,#000 18% 82%,#0000)}.sutra-lines::-webkit-scrollbar{display:none}.line{opacity:.32;margin:0 0 14px;transition:opacity .9s,transform .9s}.line.done{opacity:.55}.line.now{opacity:1}.line .zh{font-family:var(--serif);letter-spacing:.12em;font-size:18px;line-height:1.7;display:block}.line .c{transition:color .25s,text-shadow .25s}.line.now .c.said{color:var(--gold-2);text-shadow:0 0 10px #ffce6e8c}.sutra-voices{color:var(--ink-dim);justify-content:center;align-items:center;gap:4px;font-size:12.5px;display:flex}.sutra-voices span{margin-right:4px}.sutra-voices button{border:1px solid var(--line);background:#ffffff0d;border-radius:999px;padding:3px 10px;font-size:12.5px}.sutra-voices button.on{border-color:var(--gold);color:var(--gold-2);background:#e3b25a3d}.line .en{color:var(--ink-dim);margin-top:2px;font-size:13px;line-height:1.5;display:none}.lang-en .line .en{display:block}.intro{z-index:30;overscroll-behavior:contain;background:radial-gradient(at 50% 40%,#1a203059,#080a12d1);place-items:safe center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}body.landing>:not(#intro,script){display:none}.intro-card{text-align:center;background:var(--glass-strong);border:1px solid var(--line);border-radius:26px;width:min(420px,100%);padding:28px 26px 20px;box-shadow:0 30px 80px #0006}.intro-logo{border-radius:12px}.intro h1{font-family:var(--serif);letter-spacing:.22em;color:var(--gold-2);margin:6px 0 4px;font-size:40px;font-weight:700}.lang-en .intro h1{letter-spacing:.06em;font-size:34px}.tagline{color:var(--ink-dim);margin:0;font-size:15px;line-height:1.75}.you{color:var(--ink-dim);flex-direction:column;align-items:center;gap:4px;margin:18px 0 6px;font-size:14px;display:flex}.you strong{font-family:var(--serif);color:#fff;letter-spacing:.08em;font-size:28px}.intro .field{align-items:center}.big-btn{letter-spacing:.32em;width:100%;height:52px;margin-top:8px;font-size:18px}.lang-en .big-btn{letter-spacing:.12em}@media (height<=560px){.panel{max-height:calc(100vh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}#panel-beads{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;column-gap:18px;width:min(640px,100vw - 32px);display:grid}#panel-beads>header{grid-column:1/-1}#panel-beads .strand{grid-area:2/1;height:calc(100vh - 120px);min-height:180px}#panel-beads .beads-meta{grid-area:2/2}#panel-mokugyo{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;column-gap:18px;width:min(640px,100vw - 32px);display:grid}#panel-mokugyo>header{grid-column:1/-1}#panel-mokugyo .mk-stage{grid-area:2/1/span 3;height:calc(100vh - 120px);min-height:170px;max-height:236px}#panel-mokugyo .mk-count,#panel-mokugyo .mk-tempo,#panel-mokugyo .hint-text{grid-column:2}.intro-card{width:min(560px,100%);padding:16px 22px 12px}.intro-logo{display:none}.intro h1{margin-top:0;font-size:30px}.tagline{font-size:13px;line-height:1.55}.you{flex-direction:row;justify-content:center;gap:10px;margin:8px 0 2px}.you strong{font-size:22px}.big-btn{height:44px;margin-top:4px}.intro .note{margin:6px 0 2px;font-size:12px}}@keyframes pulse{50%{opacity:.35}}@keyframes knock{22%{transform:scale(1.012,.972)}55%{transform:scale(.996,1.006)}}@keyframes mallet{0%{transform:rotate(4deg)}14%{transform:rotate(0)}30%{transform:rotate(3deg)}to{transform:rotate(8deg)}}@keyframes halo{0%{opacity:1;transform:scale(.8)}40%{opacity:1;transform:scale(1.15)}to{opacity:.7;transform:scale(1)}}@keyframes cue{0%,to{opacity:0;transform:translateY(-6px)}50%{opacity:.85;transform:translateY(6px)}}@keyframes ripple{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(2.6)}}@keyframes rise{0%{opacity:0;transform:translate(-50%,10px)}15%{opacity:1}to{opacity:0;transform:translate(-50%,-76px)}}@keyframes shake{0%{transform:rotate(-9deg)translateY(-2px)}to{transform:rotate(9deg)translateY(2px)}}@keyframes drop{0%{opacity:0;transform:translateY(-60px)rotate(-6deg)}to{opacity:1;transform:none}}@keyframes toss{0%{transform:translateY(0)rotate(0)}45%{transform:translateY(-120px)rotate(320deg)}80%{transform:translateY(0)rotate(700deg)}90%{transform:translateY(-10px)rotate(712deg)}to{transform:translateY(0)rotate(720deg)}}@keyframes land{0%{transform:translateY(-8px)}to{transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.places{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px;display:grid}.place{border:1px solid var(--line);text-align:left;background:#ffffff0d;border-radius:14px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;display:flex}.place:hover{border-color:var(--gold);background:#e3b25a1f}.place b{font:700 16px/1.3 var(--serif);letter-spacing:.08em;color:var(--gold-2)}.place span{color:var(--ink-dim);font-size:12px}.place.here{opacity:.55}.merit-body .coins-row{flex-wrap:wrap;justify-content:center;gap:6px;min-height:22px;margin:14px 0 4px;display:flex}.merit-body .coins-row .coin{width:20px;height:20px}.merit-body .coins-row .coin.spent{opacity:.18;box-shadow:none}.merit-body .coins-row .coin.give{outline:2px solid var(--gold-2);outline-offset:2px}.stepper{justify-content:center;align-items:center;gap:18px;margin:12px 0 4px;display:flex}.stepper button{border:1px solid var(--line);background:#ffffff0f;border-radius:50%;width:44px;height:44px;font-size:22px;line-height:1}.stepper b{text-align:center;min-width:3ch;font:700 30px/1 var(--serif);color:var(--gold-2);font-variant-numeric:tabular-nums}.merit-thanks{text-align:center;font:700 30px/1.4 var(--serif);letter-spacing:.3em;color:var(--gold-2);margin:18px 0 4px;animation:.6s ease-out land}.merit-donation{border-top:1px solid var(--line);text-align:center;margin-top:12px;padding-top:8px}.merit-donation-link{min-height:44px;color:var(--gold-2);background:#e3b25a17;border:1px solid #e3b25a66;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:6px 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.merit-donation-link:hover{border-color:var(--gold);background:#e3b25a29}.merit-donation-link:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.merit-donation-link [data-icon]{flex:none;display:flex}.merit-donation-link svg{width:15px;height:15px}.merit-donation .note{margin:4px 0 0}.panel.library{flex-direction:column;width:min(760px,100vw - 32px);height:min(680px,100vh - 150px);display:flex;overflow:hidden}.library-body{flex-direction:column;flex:1;min-height:0;display:flex}.shelf{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:10px;display:grid}.book{border:1px solid var(--line);color:#f2dfae;background:linear-gradient(#5a2a1c,#3e1b12);border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:14px 6px 12px;display:flex}.book:hover{border-color:var(--gold)}.book .spine{writing-mode:vertical-rl;font:700 19px/1.2 var(--serif);letter-spacing:.12em;color:#3a2416;background:#f1e5c8;border-radius:3px;min-height:190px;padding:10px 6px;box-shadow:inset 0 0 0 2px #b88a3a}.book-en{text-align:center;color:var(--ink);flex-direction:column;gap:4px;font-size:12.5px;line-height:1.4;display:flex}.book-en small{color:var(--gold-2);font-size:11.5px}.reader-bar{flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0 8px;display:flex}.reader-bar .spacer{flex:1}.about-sutra{color:var(--ink-dim);margin:0 0 8px;font-size:13.5px;line-height:1.6}.about-sutra summary{cursor:pointer;color:var(--gold-2);font-family:var(--serif)}.about-sutra p{margin:6px 0 0}.sutra-text{color:#2b2018;min-height:0;font:400 var(--fs,21px)/1.95 var(--serif);letter-spacing:.06em;background:#f3ead6;border-radius:12px;flex:1;padding:18px 22px;overflow-y:auto;box-shadow:inset 0 0 0 1px #7a5a3666,inset 0 0 40px #7a5a362e}.sutra-text p{text-indent:2em;margin:0 0 .8em}.sutra-text h2.sutra-title{color:#7a1f17;letter-spacing:.25em;text-align:center;margin:0 0 .2em;font-size:1.3em}.sutra-text h3{color:#7a1f17;letter-spacing:.15em;margin:1.2em 0 .5em;font-size:1em}.sutra-text .by{text-indent:0;text-align:center;color:#7a5a36;margin-bottom:1.4em;font-size:.8em}.sutra-text .source{text-indent:0;color:#8a7458;font:12px/1.5 var(--sans);letter-spacing:0;margin-top:2em}.sutra-text.vertical{writing-mode:vertical-rl;padding:22px 18px;overflow:auto hidden}.sutra-text.vertical p{margin:0 0 0 .8em}.sutra-text.vertical h3{margin:0 1.2em 0 .5em}.sutra-text.vertical .by{text-align:start;margin:0 0 0 1.4em}.sutra-text.vertical .source{writing-mode:horizontal-tb;align-self:end}.sutra-text:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}@media (width<=600px){.shelf{grid-template-columns:repeat(2,1fr)}.book .spine{min-height:140px;font-size:17px}.panel.library{height:84vh}}.panel.talk{flex-direction:column;width:min(460px,100vw - 32px);height:min(620px,100vh - 170px);display:flex;overflow:hidden}.talk-list{overscroll-behavior:contain;flex-direction:column;flex:1;gap:8px;padding:8px 2px;display:flex;overflow-y:auto}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:16px;max-width:86%;padding:9px 13px;font-size:15px;line-height:1.65}.bubble.assistant{font-family:var(--serif);background:#ffffff17;border-bottom-left-radius:5px;align-self:flex-start}.bubble.user{background:#e3b25a3d;border-bottom-right-radius:5px;align-self:flex-end}.bubble.note{color:var(--ink-dim);text-align:center;background:0 0;align-self:center;font-size:13px}.bubble.typing:empty:after{content:"⋯";animation:1.4s ease-in-out infinite breathe}.bubble.waiting{color:var(--ink-dim);font-size:13.5px}@keyframes breathe{50%{opacity:.3}}.talk-compose{align-items:flex-end;gap:8px;margin-top:6px;display:flex}.talk-compose textarea{resize:none;border:1px solid var(--line);min-height:44px;max-height:120px;color:inherit;font:inherit;background:#0000002e;border-radius:14px;flex:1;padding:10px 12px;font-size:15px;line-height:1.5}.talk-compose textarea:focus-visible{outline:2px solid var(--gold-2);outline-offset:1px}.talk-compose .btn{height:44px}.talk-foot{justify-content:flex-end;align-items:center;gap:6px;margin-top:4px;display:flex}.talk-count{color:var(--ink-dim);margin-right:auto;font-size:12px}.talk-help{color:#ffd9a0!important}.panel.talk .note.left{margin:6px 0 0;font-size:12px}@media (width>=761px){.panel.talk{left:auto;right:24px;transform:translateY(-46%)}.panel.talk.show{transform:translateY(-50%)}}@media (pointer:coarse){.actions kbd{display:none}}@media (width<=760px){.brand,.counters span:not(:first-child){display:none}.actions{grid-template-columns:repeat(5,1fr);left:10px;right:10px;transform:none}.actions button{width:auto;height:54px;font-size:12px}.panel{width:100%;max-height:84vh;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 20px);opacity:0;border-radius:22px 22px 0 0;inset:auto 0 0;transform:translateY(12%)}.panel.show{transform:none}.sutra{width:auto;max-height:40vh;left:10px;right:10px}.toast{top:auto;bottom:calc(var(--bottom) + 136px)}.strand{height:min(300px,40vh)}}@media (width<=520px){.topbar{gap:6px;left:10px;right:10px}.chip{padding:0 11px}.chip.icon{flex:0 0 44px;width:44px;height:44px}.chip.counters{flex:0 auto;min-width:0;overflow:hidden}.chip.counters span{text-overflow:ellipsis;overflow:hidden}#lang-btn,.presence #status-text,.hall-chip .hall{display:none}.presence{justify-content:center;width:40px;padding:0}.hint{white-space:normal;text-align:center;border-radius:14px;width:max-content}}.bubble.user.unanswered{opacity:.6;border-style:dashed}.garden-intro{color:var(--ink);margin:16px 0;font-size:15px;line-height:1.8}.garden-wishes{flex-direction:column;gap:8px;display:flex}.garden-wishes .wish{text-align:left;height:auto;min-height:44px;padding:10px 14px;line-height:1.5}.garden-panel .btn{height:auto;min-height:44px;padding:10px 16px}.garden-panel .panel-close{width:44px;height:44px}.garden-state{min-height:42px;margin-top:16px}.garden-foot{margin-top:18px}.garden-wishes .wish:hover{border-color:var(--gold)}.garden-panel .btn:disabled{opacity:.55;cursor:default}body:has(.garden-panel:not([hidden])) .actions{visibility:hidden}.lang-en .garden-wishes .wish{letter-spacing:0}@media (width>=961px){.garden-panel{width:330px;left:auto;right:24px;transform:translateY(-46%)}.garden-panel.show{transform:translateY(-50%)}}@media (width<=960px){.actions{grid-template-columns:repeat(6,minmax(0,1fr));left:10px;right:10px;transform:none}.actions button{letter-spacing:0;width:auto;height:54px;font-size:12px}.garden-panel{width:100%;max-height:52svh;padding:12px 18px calc(env(safe-area-inset-bottom,0px) + 16px);border-radius:22px 22px 0 0;inset:auto 0 0;transform:translateY(12px)}.garden-panel.show{transform:none}.garden-intro{margin:8px 0 12px;font-size:14px}.garden-wishes{flex-direction:row;gap:6px}.garden-wishes .wish{text-align:center;flex:1;min-width:0;padding:8px 5px;font-size:12px}.garden-state{min-height:0;margin-top:12px}.garden-foot{margin-top:12px}}.lookout-dock{z-index:5;left:50%;bottom:calc(var(--bottom) + 90px);justify-items:center;gap:5px;width:max-content;max-width:calc(100% - 24px);display:grid;position:fixed;transform:translate(-50%)}.lookout-controls{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.lookout-controls .btn{background:#252820;height:auto;min-height:44px;padding:8px 14px;line-height:1.45}.lookout-controls .btn:hover{background:#34392c}.lookout-controls .btn[aria-pressed=true]{color:var(--gold-2);border-color:#a28a55}.lookout-hint{color:var(--ink-dim);background:#252820;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;column-gap:10px;padding:0 12px;font-size:13px;line-height:1.4;display:flex}.lookout-link{min-height:44px;color:var(--gold-2);text-underline-offset:3px;align-items:center;text-decoration:underline;display:inline-flex}.lookout-link:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.lookout-sky{z-index:4;top:clamp(104px,17vh,172px);text-align:center;pointer-events:none;position:fixed;inset-inline:12px}body:has(.lookout-sky:not([hidden])) #hint{visibility:hidden}@font-face{font-family:Zhonghua Xinhuo;src:url(./zhonghua-xinhuo-lookout-9cMGFWk8.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}.lookout-sky blockquote{color:#5c391b;max-inline-size:min(42rem,96%);font:500 clamp(11.5px, 1.55vw, 21px)/1.6 "Zhonghua Xinhuo", var(--serif);text-wrap:balance;margin:0 auto}.sky-dark .lookout-sky blockquote{color:#ffe0a0}@media (width<=960px){.lookout-dock{bottom:calc(var(--bottom) + 132px)}.lookout-controls .btn{font-size:14px}}@media (width<=760px){.lookout-sky{top:max(clamp(104px, 17svh, 148px), calc(var(--top) + 80px))}.lookout-sky blockquote{overflow-wrap:anywhere;max-inline-size:min(24em,96%);font-size:clamp(1.125rem,5vw,1.375rem);line-height:1.65}}@media (pointer:coarse) and (orientation:landscape) and (height<=520px){.lookout-sky{top:calc(var(--top) + 60px);inset-inline:max(12px, env(safe-area-inset-left,0px)) max(12px, env(safe-area-inset-right,0px))}.lookout-sky blockquote{overflow-wrap:anywhere;max-inline-size:min(42rem,96%);font-size:1.125rem;line-height:1.5}body:has(.lookout-controls [data-lookout=stand]:not([hidden])) .actions{inset-inline:max(10px, env(safe-area-inset-left,0px)) max(10px, env(safe-area-inset-right,0px));grid-template-columns:repeat(12,minmax(0,1fr));transform:none}body:has(.lookout-controls [data-lookout=stand]:not([hidden])) .actions button{width:auto;min-width:0;height:48px;font-size:11px}.lookout-dock:has([data-lookout=stand]:not([hidden])){bottom:calc(var(--bottom) + 70px)}}
