:root{--ink: #fbefe2;--muted: #d9bfa8;--accent: #e0463a;--gold: #e7b84a;--glass: rgba(34, 16, 12, .55);--glass-strong: rgba(30, 14, 10, .88);--line: rgba(231, 184, 74, .35);font-family:"Noto Serif TC",PingFang TC,Songti TC,serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#2a1410;overscroll-behavior:none}#stage{position:fixed;inset:0;touch-action:none}#stage canvas{display:block;width:100%;height:100%;cursor:grab}#stage canvas.pointer{cursor:pointer}button{font:inherit;color:var(--ink);cursor:pointer}svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}#splash{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:16px;background:radial-gradient(ellipse at center,#2a141040,#140806cc);transition:opacity .9s ease}#splash.leaving{opacity:0;pointer-events:none}.splash-inner{text-align:center;max-width:34rem}#splash h1{font-size:clamp(2.2rem,7vw,3.6rem);letter-spacing:.12em;margin:0;color:#fff3e0;text-shadow:0 2px 18px rgba(0,0,0,.5)}.subtitle{color:var(--muted);letter-spacing:.05em}.enter{width:116px;height:116px;margin:28px auto 8px;display:grid;place-items:center;border-radius:50%;background:#a8231b59;border:1.5px solid var(--gold);box-shadow:0 0 0 10px #e7b84a14,0 0 50px #ff783c80;animation:breathe 3.2s ease-in-out infinite}.enter svg{width:52px;height:52px;stroke:var(--gold);stroke-width:2.2}.tap{margin:6px 0 22px;font-weight:600}.disclaimer{color:var(--muted);font-size:.8rem;line-height:1.6}@keyframes breathe{50%{box-shadow:0 0 0 18px #e7b84a0a,0 0 70px #ff8c46b3}}#hud{position:fixed;inset:0;z-index:10;pointer-events:none}#hud>*,#hud button{pointer-events:auto}.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:max(12px,env(safe-area-inset-top)) 16px 0;pointer-events:none}.topbar>*{pointer-events:auto}.tools,.chip,.icon{background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line)}.tools{display:flex;gap:2px;padding:4px;border-radius:999px}.chip{padding:8px 16px;border-radius:999px;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;padding:0}.tools .icon{border:0;background:transparent}.icon.text{width:auto;padding:0 12px;border-radius:999px;font-size:.85rem}.icon svg{width:20px;height:20px}#sound-btn[aria-pressed=false] .wave{opacity:.15}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}#guide{position:absolute;top:72px;left:16px;width:min(270px,calc(100vw - 32px));padding:12px 16px;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:14px;font-size:.88rem}#guide h2{margin:0 0 6px;font-size:.95rem;color:var(--gold);letter-spacing:.08em}#guide ol{margin:0;padding-left:1.3em;line-height:1.7}#guide li.done{color:var(--muted)}#guide li.done:after{content:" ✓";color:var(--gold)}#guide h2{cursor:pointer;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none}#guide h2:after{content:"▾";font-size:.8rem;transition:transform .2s}#guide.collapsed h2:after{transform:rotate(-90deg)}#guide.collapsed ol,#guide.collapsed .pending{display:none}#guide li.current{color:#fff;font-weight:700}#guide-next{margin:8px 0 0;color:#ffd9a8}.pending{color:var(--muted);font-size:.78rem;margin:6px 0 0}#hint{position:absolute;bottom:calc(108px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);margin:0;padding:6px 14px;border-radius:999px;background:var(--glass);font-size:.82rem;color:var(--muted);white-space:nowrap;max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis;transition:opacity .6s}#hint.faded{opacity:0}#toast{position:absolute;top:calc(72px + env(safe-area-inset-top));left:50%;transform:translate(-50%,-8px);max-width:min(30rem,calc(100vw - 32px));padding:12px 22px;border-radius:14px;background:var(--glass-strong);border:1px solid var(--line);text-align:center;font-size:1.05rem;line-height:1.6;opacity:0;transition:opacity .4s,transform .4s;pointer-events:none}#toast.show{opacity:1;transform:translate(-50%)}#dock{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;gap:4px;padding:6px;border-radius:22px;background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);max-width:calc(100vw - 32px)}#dock button{display:grid;justify-items:center;gap:3px;min-width:58px;padding:8px 6px;border:0;border-radius:16px;background:transparent;font-size:.75rem}#dock button svg{width:24px;height:24px;stroke:var(--gold)}#dock button:hover,#dock button.suggested{background:#e0463a59}#dock button.suggested svg{stroke:#fff}#dock button:disabled{opacity:.4;cursor:default}#labels{position:fixed;inset:0;z-index:5;pointer-events:none}#labels span{opacity:0;position:absolute;transform:translate(-50%,-100%);padding:3px 10px;border-radius:999px;font-size:.78rem;background:#1e0e0a99;border:1px solid var(--line);white-space:nowrap;transition:opacity .3s}#labels span.result{font-size:1.4rem;padding:6px 18px;color:#fff3e0;background:#a8231bbf;border-color:var(--gold);letter-spacing:.1em}.picker{display:flex;justify-content:center;gap:8px;margin:0 0 18px}.picker button{padding:7px 16px;border-radius:999px;border:1px solid var(--line);background:var(--glass);font-size:.9rem}.picker button[aria-pressed=true]{background:#a8231bbf;border-color:var(--gold)}@media(min-width:761px){.splash-inner{margin-right:32vw}}#presence[hidden]{display:none}#presence{display:flex;align-items:center;gap:6px;padding:0 12px;font-size:.82rem;white-space:nowrap}#presence svg{width:18px;height:18px}#presence .total{color:var(--muted)}#labels span.next{background:#a8231bd9;border-color:var(--gold);color:#fff3e0;font-weight:700;font-size:.86rem;padding:4px 12px}#labels span.next:after{content:" ▾";color:var(--gold)}#labels span.name{font-size:.72rem;padding:2px 9px;background:#1e0e0a8c}#labels span.name.me{border-color:var(--gold);color:#ffe3b0}#labels span.bubble{font-size:.8rem;background:#a8231bcc;border-color:var(--gold)}#introduce-form .say{display:none}#introduce-form[data-mode=heaven] label.for-heaven,#introduce-form[data-mode=reason] label.for-reason,#introduce-form[data-mode=volunteer] label.for-volunteer{display:grid}#introduce-form[data-mode=heaven] p.for-heaven,#introduce-form[data-mode=reason] p.for-reason,#introduce-form[data-mode=volunteer] p.for-volunteer{display:block}.say-hint{color:var(--muted);font-size:.86rem;line-height:1.6;margin:0 0 6px}#guide-carry{margin:6px 0 0;font-size:.8rem;color:var(--gold)}#guide-carry:empty{display:none}#dock button.extra:not(:disabled){opacity:.85}.facts{padding-left:1.2em;margin:4px 0}.facts li{margin:4px 0}dialog.lot{text-align:center;background:linear-gradient(180deg,#3c120cf2,#1e0a08f2)}.lot-head{display:flex;justify-content:center;align-items:center;gap:12px}.lot-head .lot-number{margin:0}.lot-rating{padding:3px 12px;border-radius:999px;border:1px solid var(--gold);color:var(--gold);font-weight:700}.lot-rating:empty{display:none}.lot-poem{writing-mode:vertical-rl;margin:14px auto;padding:18px 22px;max-width:100%;overflow-x:auto;font-size:1.35rem;line-height:2.1;letter-spacing:.18em;color:#fff3e0;border:1px solid var(--line);border-radius:10px;background:#a8231b2e;display:inline-block;text-align:start}.lot-poem p{margin:0 .15em}.lot-from{color:var(--gold);font-size:.9rem}.lot-from:empty,#lot-variant[hidden]{display:none}.lot-source{font-size:.72rem}dialog{color-scheme:dark;border:1px solid var(--line);border-radius:18px;background:var(--glass-strong);color:var(--ink);width:min(30rem,calc(100vw - 32px));max-height:calc(100vh - 64px);padding:20px 22px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}dialog::backdrop{background:#0a040373}dialog h2{margin-top:0;color:var(--gold);letter-spacing:.06em}dialog h3{color:var(--gold);font-size:1rem;margin:18px 0 4px}dialog p,dialog li{line-height:1.7}dialog label{display:grid;gap:4px;margin:10px 0;font-size:.9rem}dialog input,dialog textarea{font:inherit;color:var(--ink);background:#ffffff0f;border:1px solid var(--line);border-radius:10px;padding:8px 10px;color-scheme:dark}dialog form button,dialog .row button,.ghost{padding:8px 18px;border-radius:999px;border:1px solid var(--gold);background:#a8231b99}.ghost{background:transparent}.row{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.lot-number{font-size:2rem;text-align:center;color:#fff3e0;letter-spacing:.2em}@media(max-width:760px){#splash{place-items:stretch;padding:max(28px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom))}.splash-inner{display:flex;flex-direction:column;justify-content:space-between;height:100%;max-width:none}.enter{width:84px;height:84px;margin:0 auto 4px}.enter svg{width:40px;height:40px}.tap{margin:2px 0 12px}.picker{margin-bottom:12px}.disclaimer{font-size:.72rem;margin-bottom:0}}@media(max-width:640px){#guide{top:auto;bottom:calc(150px + env(safe-area-inset-bottom));font-size:.8rem;padding:10px 12px}#guide ol,#guide .pending,#guide h2{display:none}#guide-next{margin:0}#guide-carry{font-size:.72rem}#dock button span{font-size:.64rem}.chip,#presence .total{display:none}#dock button{min-width:0;flex:1;padding:8px 2px;font-size:.7rem}#dock{width:calc(100vw - 32px);justify-content:space-between}}@media(prefers-reduced-motion:reduce){.enter{animation:none}}
