:root{--sat: env(safe-area-inset-top, 0px);--sar: env(safe-area-inset-right, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--navy-900: #060d1f;--navy-800: #0a1430;--navy-700: #101c3f;--navy-600: #172756;--line: rgba(140, 170, 255, .22);--line-strong: rgba(160, 190, 255, .45);--text: #eef3ff;--text-2: #aab6d8;--text-3: #7683a8;--gold: #ffd23f;--orange: #ff7a2f;--ok: #6ee7a8;--warn: #ffc466;--bad: #ff6f61;--face-f: #4fd1c5;--face-b: #f6ad55;--font: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, -apple-system, sans-serif;--mono: ui-monospace, "JetBrains Mono", Consolas, monospace;--vh: 1vh}@supports (height: 1dvh){:root{--vh: 1dvh}}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;background:var(--navy-900);color:var(--text)}body{position:fixed;inset:0;overflow:hidden;font-family:var(--font);font-size:14px;line-height:1.5;-webkit-user-select:none;user-select:none;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;background:radial-gradient(120% 80% at 50% -10%,#16295e 0%,var(--navy-800) 45%,var(--navy-900) 100%)}button{font:inherit;color:inherit}input{font:inherit}#app{position:absolute;inset:0;padding:var(--sat) var(--sar) var(--sab) var(--sal);overflow:hidden;display:grid;gap:8px;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(calc(var(--vh) * 42),1fr) auto;grid-template-areas:"hud" "stage" "controls"}.hud{grid-area:hud}.stage{grid-area:stage}.controls{grid-area:controls}.controls{min-height:0;max-height:calc(var(--vh) * 40);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 10px 10px;display:flex;flex-direction:column;gap:10px}.ops-sticky{position:sticky;top:0;z-index:2;display:flex;flex-direction:column;gap:8px;padding:2px 0 6px;background:linear-gradient(180deg,var(--navy-800) 0%,var(--navy-800) 88%,transparent 100%)}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media(orientation:landscape)and (min-width:560px){#app{grid-template-columns:minmax(0,1fr) clamp(220px,32vw,360px);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"hud controls" "stage controls";gap:8px 12px}.controls{max-height:none;height:100%;padding:10px 12px 12px 0;min-width:0}.ops-sticky{padding-top:0}.actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.btn-guess{padding:9px 6px;font-size:14px}}@media(max-width:420px){.heart-slots{gap:4px}.heart-slot{width:18px;height:18px}.hud-right{max-width:min(72%,16rem)}}.hud{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 12px 0;min-width:0}.hud-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:0;max-width:min(70%,28rem)}.coin-row{grid-row:2;min-height:0;min-width:0;display:block;position:relative;z-index:1;pointer-events:none}.hearts{position:absolute;z-index:5;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:0;padding:0;pointer-events:none}.heart-slots{list-style:none;margin:0;padding:0;display:flex;flex-direction:row;gap:6px;align-items:center}.heart-slot{width:20px;height:20px;position:relative;transform-origin:center;flex:0 0 auto}.heart-icon{width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(0 0 0 transparent);transition:filter .16s ease,transform .22s ease}.heart-path{fill:transparent;stroke:#a0beff8c;stroke-width:1.6;stroke-linejoin:round;transition:fill .16s ease,stroke .16s ease}.heart-slot.filled .heart-path{fill:#ff4d6d;stroke:#ff8fa3;stroke-width:1}.heart-slot.filled .heart-icon{filter:drop-shadow(0 0 6px rgba(255,77,109,.5))}.heart-slot.grow{animation:heart-grow .52s ease-out}.heart-slot.spent{animation:heart-spent .42s ease-in}@keyframes heart-grow{0%{transform:scale(.2);opacity:.2}60%{transform:scale(1.25);opacity:1}to{transform:scale(1)}}@keyframes heart-spent{0%{transform:scale(1)}to{transform:scale(.4);opacity:.35}}.heart-fly{position:fixed;z-index:40;width:22px;height:22px;pointer-events:none;background:radial-gradient(circle at 35% 30%,#ffb3c1,#ff4d6d 55%,#c9184a);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E") center / contain no-repeat;filter:drop-shadow(0 0 10px rgba(255,77,109,.55));offset-path:none;transform-origin:center;will-change:transform,left,top,opacity}.heart-fly.enlarged{filter:drop-shadow(0 0 18px rgba(255,120,150,.85))}.heart-fly.impact{filter:drop-shadow(0 0 22px rgba(255,220,230,.95))}@media(orientation:landscape)and (min-width:560px){.heart-slots{gap:5px}.heart-slot{width:18px;height:18px}}.lose-scene{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;border-radius:0}.lose-scene-wash,.lose-scene-dim,.lose-scene-grain,.lose-scene-vignette{position:absolute;inset:0;pointer-events:none}.lose-scene-wash{background:#7a7a7a;mix-blend-mode:saturation;opacity:calc(var(--lose-atmosphere, 0) * .92)}.lose-scene-dim{background:#06070a1a;opacity:var(--lose-atmosphere, 0)}.lose-scene-grain{opacity:calc(var(--lose-atmosphere, 0) * .14);mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.55'/%3E%3C/svg%3E");background-size:180px 180px}.lose-scene-vignette{background:radial-gradient(ellipse 88% 84% at 50% 48%,transparent 0%,transparent 70%,rgba(0,0,0,.12) 90%,rgba(0,0,0,.28) 100%);opacity:calc(var(--lose-atmosphere, 0) * .55)}@media(prefers-reduced-motion:reduce){.lose-scene-grain{opacity:calc(var(--lose-atmosphere, 0) * .1)}}.all-pass{position:absolute;inset:0;z-index:7;display:grid;place-items:center;pointer-events:none;overflow:hidden}.all-pass[hidden]{display:none!important}.all-pass-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:.12em;max-width:min(92vw,420px);text-align:center;padding:0 12px;transform:translateY(calc(-8% + 10px)) scale(.94);opacity:0;transition:opacity .28s ease-out,transform .28s ease-out}.all-pass.is-in .all-pass-copy{opacity:1;transform:translateY(-8%) scale(1)}.all-pass-line1,.all-pass-line2{display:block;font-family:Segoe UI Black,Arial Black,Impact,Noto Sans TC,sans-serif;font-weight:900;letter-spacing:.03em;line-height:1.05;color:#ffe566;text-shadow:0 0 2px #1a1204,1px 0 0 #3a2508,-1px 0 0 #3a2508,0 1px 0 #3a2508,0 -1px 0 #3a2508,2px 3px 0 #5c3a04,0 0 22px rgba(255,196,64,.7),0 0 4px rgba(255,250,220,.55);user-select:none;white-space:nowrap}.all-pass-line1{font-size:clamp(28px,7.2vw,52px)}.all-pass-line2{font-size:clamp(34px,9vw,64px);color:#fff0a0}.all-pass-coins{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.all-pass-coin{position:absolute;left:0;top:0;width:12px;height:12px;margin:0;border-radius:50%;pointer-events:none;will-change:transform,opacity;background:radial-gradient(circle at 32% 28%,#fff8d0,#f3cc5a 38%,#e2b53d 62%,#9c6e10);box-shadow:inset 0 -1px 1px #50300073,inset 0 1px 1px #ffffe68c,0 0 6px #ffc85059;opacity:.92}.all-pass-coin.is-static{opacity:.78;box-shadow:inset 0 -1px 1px #50300066,0 0 4px #ffc85040}@media(max-width:420px){.all-pass-line1,.all-pass-line2{white-space:normal}}@media(prefers-reduced-motion:reduce){.all-pass-copy{transition:none;opacity:1;transform:translateY(-8%)}.all-pass.is-in .all-pass-copy{transition:none}}.lose-fx{position:absolute;z-index:6;display:grid;place-items:center;pointer-events:none;width:min(72vw,220px);height:min(28vw,88px);transform:translate(-50%,-50%)}.lose-fx[hidden]{display:none!important}.lose-fx-text{font-family:Segoe UI Black,Arial Black,Impact,Noto Sans TC,sans-serif;font-size:clamp(42px,14vw,72px);font-weight:900;letter-spacing:.04em;line-height:1;color:#f2f4f8;text-shadow:0 2px 0 #1a1f2c,0 0 18px rgba(0,0,0,.55),0 0 2px rgba(255,255,255,.35);user-select:none}.lose-fx.shake .lose-fx-text{animation:lose-shake .28s ease-out}.lose-fx-flash{position:absolute;inset:-18%;border-radius:50%;background:radial-gradient(circle,rgba(255,240,245,.85) 0%,rgba(255,90,120,.35) 42%,transparent 70%);opacity:0;pointer-events:none}.lose-fx-flash[hidden]{display:none!important}.lose-fx-flash.burst{display:block!important;animation:lose-flash .32s ease-out forwards}.lose-fx-shards{position:absolute;inset:0;pointer-events:none}.lose-shard{position:absolute;left:50%;top:50%;font-family:Segoe UI Black,Arial Black,Impact,Noto Sans TC,sans-serif;font-size:clamp(18px,5vw,28px);font-weight:900;color:#e8ecf4;text-shadow:0 1px 0 #111;opacity:0;transform:translate(-50%,-50%);will-change:transform,opacity}.lose-shard.fly{animation:lose-shard-fly .52s cubic-bezier(.2,.7,.25,1) forwards}@keyframes lose-shake{0%{transform:translate(0) rotate(0)}20%{transform:translate(-5px,2px) rotate(-2deg)}40%{transform:translate(6px,-3px) rotate(2.5deg)}60%{transform:translate(-4px,-1px) rotate(-1.5deg)}80%{transform:translate(3px,2px) rotate(1deg)}to{transform:translate(0) rotate(0)}}@keyframes lose-flash{0%{opacity:0;transform:scale(.6)}35%{opacity:1;transform:scale(1.05)}to{opacity:0;transform:scale(1.35)}}@keyframes lose-shard-fly{0%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0);filter:none}to{opacity:0;transform:translate(calc(-50% + var(--dx, 40px)),calc(-50% + var(--dy, -30px))) scale(.55) rotate(var(--rot, 24deg));filter:blur(.6px)}}@media(prefers-reduced-motion:reduce){.lose-fx.shake .lose-fx-text{animation:none}.lose-shard.fly,.lose-fx-flash.burst{animation-duration:.16s}}.hash-box{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:0;max-width:100%;text-align:right;background:#0a143099;border:1px solid var(--line);border-radius:10px;padding:6px 10px;overflow:visible}.hash-box.is-renewing,.hash-box.is-renewing .hash,.hash-box.is-renewing .hash-incoming{-webkit-user-select:none;user-select:none}.hash-stack{position:relative;min-width:0;max-width:100%;isolation:isolate}.hash-incoming{position:absolute;left:0;right:0;top:0;opacity:0;pointer-events:none}.hash-stack.is-crossfading .hash{opacity:0;transition:opacity var(--hash-crossfade-ms, .52s) ease}.hash-stack.is-crossfading .hash-incoming{opacity:1;transition:opacity var(--hash-crossfade-ms, .52s) ease}.hash-orbit-ring{position:absolute;inset:-3px;border-radius:13px;pointer-events:none;opacity:0;z-index:0;padding:2.5px;background:conic-gradient(from var(--hash-orbit-angle, 0deg),transparent 0deg,transparent 220deg,rgba(255,196,102,.05) 255deg,rgba(255,154,170,.55) 285deg,rgba(255,210,63,.95) 312deg,rgba(158,197,255,.9) 335deg,transparent 355deg,transparent 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;filter:drop-shadow(0 0 4px rgba(255,196,102,.35));transition:opacity .16s ease}.hash-box.is-orbiting .hash-orbit-ring{opacity:1;animation:hash-orbit-spin 1.05s linear infinite}.hash-box.is-orbiting.is-orbit-static .hash-orbit-ring{animation:none;background:linear-gradient(#0a143026,#0a143026) padding-box,linear-gradient(135deg,#ffc466f2,#ff7a9abf,#9ec5ffb3) border-box;border:2px solid transparent;-webkit-mask:none;mask:none;padding:0;box-shadow:0 0 10px #ffc46647}@keyframes hash-orbit-spin{to{--hash-orbit-angle: 360deg}}@property --hash-orbit-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}@media(prefers-reduced-motion:reduce){.hash-box.is-orbiting .hash-orbit-ring{animation:none}.hash-stack.is-crossfading .hash,.hash-stack.is-crossfading .hash-incoming{transition-duration:.16s}}.hud-left{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.back-lobby{display:inline-flex;align-items:center;margin:0;padding:2px 0;border-radius:6px;color:var(--text-3);font-size:12px;font-weight:600;letter-spacing:.04em;line-height:1.2;text-decoration:none;white-space:nowrap;-webkit-tap-highlight-color:transparent}.back-lobby:hover{color:var(--gold)}.back-lobby:focus-visible{outline:2px solid var(--gold);outline-offset:2px;color:var(--text)}.title{margin:0;font-size:26px;font-weight:900;letter-spacing:.18em;line-height:1}.title span{background:linear-gradient(180deg,#fff2c4 0%,var(--gold) 45%,var(--orange) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 10px rgba(255,210,63,.35))}.mode{margin:0;font-size:11px;color:var(--warn);line-height:1.3}.hash-box .label{font-size:11px;color:var(--text-3);letter-spacing:.08em;position:relative;z-index:1}.hash{font-family:var(--mono);font-size:11px;color:var(--text);word-break:break-all;line-height:1.25;-webkit-user-select:text;user-select:text;position:relative;z-index:1}.hash-note{font-size:10px;color:var(--text-3);position:relative;z-index:1}.stage{position:relative;min-height:0;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:6px;padding:0 10px;overflow:visible}.coin-well{min-height:0;min-width:0;height:100%}#coin{position:absolute;left:0;right:0;width:100%;z-index:3;pointer-events:none;display:block;touch-action:none}.art-status{position:absolute;inset:18% 8% 28%;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px 16px;text-align:center;border-radius:14px;border:1px solid var(--line-strong);background:#060d1fe0;color:var(--text);pointer-events:auto}.art-status[hidden]{display:none}.art-status[data-kind=loading]{border-color:var(--line);color:var(--text-2)}.art-status[data-kind=error]{border-color:var(--bad)}.art-status p{margin:0;font-size:13px;line-height:1.45;max-width:28rem}.art-status .btn{min-width:8rem}.record{list-style:none;margin:0;padding:0;display:flex;flex-wrap:nowrap;justify-content:center;align-items:start;gap:5px;width:100%;max-width:100%;box-sizing:border-box;grid-row:1;position:relative;z-index:1}.record li{flex:0 0 auto;width:min(52px,calc((100% - 45px)*.1));aspect-ratio:1;border-radius:6px;border:1px solid var(--line);display:grid;place-items:center;font-weight:900;font-size:clamp(10px,2.4vw,14px);color:var(--text-3);background:#ffffff08;position:relative;overflow:hidden;padding:0;box-sizing:border-box}@media(max-width:360px){.record{gap:3px}.record li{width:min(52px,calc((100% - 27px)*.1))}}.record li .n{position:absolute;top:0;left:1px;z-index:2;font-size:8px;font-weight:700;line-height:1;letter-spacing:0;color:#eef3ffb8;pointer-events:none;text-shadow:0 0 4px rgba(6,13,31,1),0 0 2px rgba(6,13,31,1)}.record li .face-thumb{position:absolute;left:5%;top:5%;width:90%;height:90%;border-radius:50%;display:block;z-index:0}.record li .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.record li.face-F{border-color:var(--face-f);color:var(--face-f);background:#4fd1c524;box-shadow:0 0 10px #4fd1c54d}.record li.face-B{border-color:var(--face-b);color:var(--face-b);background:#f6ad5524;box-shadow:0 0 10px #f6ad554d}.record li.current{border-style:dashed;border-color:var(--line-strong)}.record li.lost{border-color:var(--bad);color:var(--bad);background:#ff6f6124}.record li[data-heart]:after{content:"♥";position:absolute;top:0;right:1px;z-index:2;font-size:9px;line-height:1;pointer-events:none;color:#ff8fa3b3;text-shadow:0 0 3px rgba(6,13,31,1)}.record li[data-heart=collected]:after{color:#ff4d6d}.stage-info{grid-row:3;display:flex;justify-content:center;gap:14px;flex-wrap:wrap;position:relative;z-index:1}.stat{display:flex;flex-direction:column;align-items:center;min-width:0}.stat .label{font-size:10px;color:var(--text-3);letter-spacing:.08em}.stat strong{font-size:16px;font-variant-numeric:tabular-nums}.btn{border:1px solid var(--line-strong);border-radius:12px;padding:10px 12px;background:linear-gradient(180deg,var(--navy-600),var(--navy-700));cursor:pointer;font-weight:700;letter-spacing:.04em;min-width:0;transition:transform .08s ease,filter .15s ease,opacity .15s ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-start{font-size:18px;padding:12px;background:linear-gradient(180deg,#ffe58a,var(--gold) 55%,var(--orange));color:#2a1a00;border-color:#ffe696b3}.btn-take{background:linear-gradient(180deg,#ffb27a,#ff7a2f);color:#2a1200;border-color:#ffc896b3;font-size:16px}.btn-guess{font-size:15px;padding:11px 8px}.btn-guess-f{background:linear-gradient(180deg,#58e0d2,#1fb7a8);color:#062a26;border-color:#78f0e6b3}.btn-guess-b{background:linear-gradient(180deg,#ffd08a,#f6ad55);color:#2a1200;border-color:#ffdcaab3}.hint{margin:0;font-size:12px;color:var(--text-2)}.muted{font-size:11px;color:var(--text-3)}.result-fx{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:#0a1430b8;min-width:0}.result-fx[hidden]{display:none!important}.result-fx-title{font-size:18px;font-weight:900;letter-spacing:.12em;line-height:1.2}.result-fx-detail{font-size:13px;font-variant-numeric:tabular-nums;color:var(--text-2)}.result-fx[data-kind=success]{border-color:#6ee7a88c;background:linear-gradient(135deg,#6ee7a829,#0a1430b3)}.result-fx[data-kind=success] .result-fx-title{color:var(--ok)}.result-fx[data-kind=success] .result-fx-detail{color:#c8f7dc}.result-fx[data-kind=fail]{border-color:#ff6f618c;background:linear-gradient(135deg,#ff6f6124,#0a1430b8)}.result-fx[data-kind=fail] .result-fx-title{color:var(--bad)}.result-fx[data-kind=fail] .result-fx-detail{color:#ffc4be}.result-fx[data-kind=revive]{border-color:#ffc46680;background:linear-gradient(135deg,#ffc4661f,#0a1430b8)}.result-fx[data-kind=revive] .result-fx-title{color:var(--warn)}.result-fx[data-kind=renew]{border-color:#7eb6ff8c;background:linear-gradient(135deg,#7eb6ff24,#0a1430b8)}.result-fx[data-kind=renew] .result-fx-title{color:#9ec5ff}.cheat-toast{position:fixed;left:50%;top:18%;transform:translate(-50%);z-index:50;pointer-events:none;padding:8px 14px;border-radius:10px;border:1px solid rgba(255,196,102,.55);background:#0a1430eb;color:var(--warn);font-weight:800;letter-spacing:.06em;font-size:13px;opacity:1;transition:opacity .18s ease}.cheat-toast[hidden]{display:none!important}.cheat-toast.is-leaving{opacity:0}@media(prefers-reduced-motion:reduce){.cheat-toast{transition:none}}.cheat-tip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0;padding:8px 10px;border-radius:10px;border:1px dashed rgba(255,196,102,.55);background:#ffc46614;pointer-events:none}.cheat-tip[hidden]{display:none!important}.cheat-tip-title{font-size:14px;font-weight:800;color:var(--warn);letter-spacing:.06em}.cheat-tip-detail{font-size:13px;color:var(--text-2)}.cheat-tip-thumb{width:40px;height:40px;border-radius:50%;display:block;flex:0 0 auto}.heart-cue{display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap;margin:0;padding:6px 10px;border-radius:10px;border:1px solid rgba(255,143,163,.55);background:linear-gradient(135deg,#ff4d6d29,#0a1430b8);pointer-events:none}.heart-cue[hidden]{display:none!important}.heart-cue-icon{width:18px;height:18px;flex:0 0 auto;display:block;fill:transparent;stroke:#ff8fa3;stroke-width:1.8;stroke-linejoin:round}.heart-cue-title{font-size:14px;font-weight:800;color:#ffb3c1;letter-spacing:.04em}.heart-cue-detail{font-size:12px;color:var(--text-2);min-width:0}.heart-cue[data-state=available] .heart-cue-icon{animation:heart-cue-pulse 1.4s ease-in-out infinite}.heart-cue[data-state=collected]{border-color:#ff8fa359;background:#ff4d6d14}.heart-cue[data-state=collected] .heart-cue-icon{fill:#ff4d6d;filter:drop-shadow(0 0 5px rgba(255,77,109,.5))}@keyframes heart-cue-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@media(prefers-reduced-motion:reduce){.heart-cue[data-state=available] .heart-cue-icon{animation:none}}@media(max-width:420px){.heart-cue{padding:5px 8px}.heart-cue-title{font-size:13px}.heart-cue-detail{font-size:11px}}.payout-stat strong{transition:color .15s ease,text-shadow .15s ease,transform .15s ease,opacity .15s ease}.payout-stat strong.payout-counting{color:var(--ok);text-shadow:0 0 12px rgba(110,231,168,.45)}.payout-stat strong.payout-zeroing{color:var(--bad);text-shadow:0 0 10px rgba(255,111,97,.4);animation:payout-shatter .55s ease-out both}@keyframes payout-shatter{0%{transform:scale(1);opacity:1;filter:none}35%{transform:scale(1.06) rotate(-1deg);opacity:.95;filter:blur(0)}70%{transform:scale(.96) translateY(1px);opacity:.55;filter:blur(.4px)}to{transform:scale(1);opacity:1;filter:none}}.panel{border:1px solid var(--line);border-radius:12px;padding:10px;background:#0a143080;min-width:0}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.panel h2{margin:0;font-size:13px;letter-spacing:.08em;color:var(--text-2)}.wallet{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:6px}.ladder{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:3px 10px;font-variant-numeric:tabular-nums;font-size:12px}.ladder li{display:flex;justify-content:space-between;gap:6px;padding:2px 6px;border-radius:6px}.ladder li.reached{background:#ffd23f1f}.ladder li.current{outline:1px solid var(--gold)}.ladder li .lv{color:var(--text-3)}.ladder li .st{font-size:10px;color:var(--text-3)}.ladder li .heart-tag{font-size:10px;font-weight:800;color:#ff8fa3;white-space:nowrap}.ladder li .heart-tag[data-state=collected]{color:#ff4d6d}.history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.history li{border:1px solid var(--line);border-radius:10px;padding:8px;font-size:12px}.history .row{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.history .faces{display:flex;gap:2px;flex-wrap:wrap;margin:4px 0;align-items:center}.history .faces .face-chip{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:5px;border:1px solid var(--line);overflow:hidden;background:#ffffff0a;flex:0 0 auto;padding:0}.history .faces .face-chip canvas{width:90%;height:90%;display:block;border-radius:50%}.history .faces .face-chip.F{border-color:var(--face-f);box-shadow:0 0 0 1px #4fd1c540}.history .faces .face-chip.B{border-color:var(--face-b);box-shadow:0 0 0 1px #f6ad5540}.history .faces .face-chip.unplayed{opacity:.4}.history .faces .face-chip.lost{border-color:var(--bad);background:#ff6f6124}.history .faces .face-chip.empty{width:28px;height:28px;border-style:dashed;opacity:.35;background:transparent}.history dl{margin:6px 0 0;display:grid;grid-template-columns:auto 1fr;gap:2px 8px}.history dt{color:var(--text-3)}.history dd{margin:0;font-family:var(--mono);font-size:11px;word-break:break-all;-webkit-user-select:text;user-select:text}.history .tools{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap;align-items:center}.history .tools .btn{padding:4px 10px;font-size:12px;border-radius:8px}.history .end-take{color:var(--ok)}.history .end-lose{color:var(--bad)}.history .end-complete{color:var(--gold)}.history .end-abandon{color:var(--text-3)}.verify-ok{color:var(--ok);font-weight:700}.verify-bad{color:var(--bad);font-weight:700}.field{display:flex;flex-direction:column;gap:2px;margin-bottom:6px;font-size:12px;color:var(--text-2)}.field input{width:100%;padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:#00000040;color:var(--text);font-family:var(--mono);font-size:12px;-webkit-user-select:text;user-select:text}.verify-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.verify-actions output{font-family:var(--mono);font-size:11px;word-break:break-all;-webkit-user-select:text;user-select:text}.notice{display:flex;gap:8px;border:1px solid var(--warn);border-radius:10px;padding:8px 10px;background:#ffc4661a}.notice[hidden]{display:none}.notice-body{flex:1;min-width:0;font-size:12px}.notice-body ul{margin:4px 0 0;padding-left:16px}.notice-close{border:0;background:transparent;font-size:18px;line-height:1;cursor:pointer;color:var(--text-2)}@media(prefers-reduced-motion:reduce){.btn,.payout-stat strong{transition:none}.payout-stat strong.payout-zeroing{animation:none}}
