.celebration{width:min(640px,calc(100% - 32px));padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text)}.celebration::backdrop{background:#0009}.celebration svg{display:block;width:100%;height:auto}.celebration .caption{margin:12px 0;font-size:1.1rem;font-weight:600;text-align:center}.celebration .actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.share h2{margin-bottom:12px}.share-preview{display:block;width:100%;height:auto;border-radius:8px}.share-label{margin:14px 0 8px;color:var(--muted);font-size:.9rem}.poses{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.poses .pose{display:grid;gap:4px;padding:6px;border:2px solid var(--line);border-radius:8px;background:transparent;color:var(--muted);font-size:.75rem;font-weight:600;line-height:1.2}.poses .pose img{display:block;width:100%;height:auto;border-radius:4px}.poses .pose[aria-pressed=true]{border-color:var(--accent);color:var(--text)}.share-option{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:.9rem}.share .hint{min-height:1.5em;margin:8px 0;text-align:center}@media(max-width:480px){.poses{grid-template-columns:repeat(2,1fr)}}.scene .ground{stroke:var(--line);stroke-width:2}.scene .mound{fill:#4a3f36}.scene .junk{fill:#6b5d50}.scene .junk-coin,.scene .coin,.scene .sack-coins circle{fill:#9a8a6a}.scene .sign line{stroke:#6b5d50;stroke-width:3}.scene .sign rect{fill:#2a2420;stroke:#6b5d50;stroke-width:2}.scene .sign text{fill:var(--muted);font:700 10px system-ui,sans-serif;letter-spacing:.08em;text-anchor:middle}.scene .booth-wall{fill:#2a2420;stroke:var(--line);stroke-width:2}.scene .booth-window{fill:var(--bg);stroke:var(--line);stroke-width:2}.scene .counter{fill:var(--line)}.scene .booth-roof{fill:var(--accent)}.scene .booth-sign{fill:var(--accent-ink);font:700 11px system-ui,sans-serif;text-anchor:middle}.scene .attendant circle{fill:#e8c9a0}.scene .attendant .cap{fill:var(--accent)}.scene .attendant .shoulders{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round}.scene .guy line,.scene .guy .head{fill:none;stroke:var(--text);stroke-width:3;stroke-linecap:round}.scene .sack path{fill:#8b6a43}.scene .bill rect{fill:var(--good)}.scene .bill text{fill:#10240f;font:700 7px system-ui,sans-serif;text-anchor:middle}.scene .sparkles path{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round}.scene .guy{transform:translate(360px)}.scene .leg-a,.scene .leg-b{transform-box:view-box;transform-origin:60px 164px}.scene .sack{transform-box:view-box;transform-origin:74px 150px}.scene .sack-coins{opacity:0}.scene .coin-1{--start-x: -49px;--start-y: 12px;--mid-x: -25px;--mid-y: -22px}.scene .coin-2{--start-x: -67px;--start-y: 18px;--mid-x: -34px;--mid-y: -26px}.scene .coin-3{--start-x: -85px;--start-y: 11px;--mid-x: -43px;--mid-y: -20px}.scene.play .guy{animation:walk 6s linear both}.scene.play .leg-a{animation:stride .3s ease-in-out 0s 5 alternate,stride .3s ease-in-out 2.7s 6 alternate}.scene.play .leg-b{animation:stride .3s ease-in-out 0s 5 alternate-reverse,stride .3s ease-in-out 2.7s 6 alternate-reverse}.scene.play .sack{animation:tip 6s ease-in-out both}.scene.play .sack-coins{animation:empty 6s step-end both}.scene.play .coin{animation:fly 6s ease-in-out both}.scene.play .bill{animation:pay 6s ease-in-out both}.scene.play .sparkles,.celebration:has(.scene.play) .caption{animation:appear 6s ease-out both}@keyframes walk{0%{transform:translate(-60px)}25%,45%{transform:translate(80px)}75%,to{transform:translate(360px)}}@keyframes stride{0%{transform:rotate(14deg)}to{transform:rotate(-14deg)}}@keyframes tip{0%,27%{transform:rotate(0)}33%,40%{transform:rotate(75deg)}45%,to{transform:rotate(0)}}@keyframes empty{0%{opacity:1}31%{opacity:0}}@keyframes fly{0%,29%{opacity:0;transform:translate(var(--start-x),var(--start-y))}31%{opacity:1;transform:translate(var(--start-x),var(--start-y))}37%{transform:translate(var(--mid-x),var(--mid-y))}43%,to{opacity:1;transform:translate(0)}}@keyframes pay{0%,74%{opacity:0;transform:translate(99px,-18px)}77%{opacity:1;transform:translate(99px,-18px)}88%,to{opacity:1;transform:translate(0)}}@keyframes appear{0%,86%{opacity:0}92%,to{opacity:1}}@media(prefers-reduced-motion:reduce){.scene.play *,.celebration .caption{animation:none!important}}
