:root{--raised:inset 0 1.5px 0 #ffffff8c, inset 1px 0 0 #ffffff2e, inset -1px 0 0 #00000014, inset 0 -4px 0 #0000002e, 0 1px 1px #0000002e, 0 4px 8px -2px #00000047;--raised-strong:inset 0 2px 0 #fff9, inset 1px 0 0 #fff3, inset -1px 0 0 #0000001a, inset 0 -5px 0 #00000038, 0 2px 2px #0003, 0 8px 14px -4px #00000059;--pressed:inset 0 3px 5px #0003, inset 0 1px 1px #0000001f, inset 0 -1px 0 #ffffff4d;--tray:inset 0 4px 10px #00000042, inset 0 -1px 0 #ffffff4d, 0 0 0 1px #ffffff59, 0 1px 0 #fff6, 0 14px 30px -10px #00000059;--sheen:radial-gradient(ellipse 70% 50% at 30% 18%, #ffffff47, #fff0 70%), linear-gradient(180deg, #ffffff29, #fff0 55%);--ambient:radial-gradient(ellipse 70% 45% at 50% 28%, #fff8e673, transparent 70%), radial-gradient(ellipse 120% 60% at 50% 110%, #00000014, transparent 70%);--shade:radial-gradient(ellipse 120% 95% at 50% 40%, transparent 52%, #0000002e)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ambient:radial-gradient(ellipse 80% 60% at 50% 32%, #ffffff0f, transparent 70%);--shade:radial-gradient(ellipse 130% 100% at 50% 40%, transparent 55%, #00000059);--sheen:linear-gradient(180deg, #ffffff1a, #fff0 55%)}}:root[data-theme=dark]{--ambient:radial-gradient(ellipse 80% 60% at 50% 32%, #ffffff0f, transparent 70%);--shade:radial-gradient(ellipse 130% 100% at 50% 40%, transparent 55%, #00000059);--sheen:linear-gradient(180deg, #ffffff1a, #fff0 55%)}@keyframes art-pop{0%{opacity:0;transform:scale(.4)}70%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes art-pulse{0%{transform:scale(1)}45%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes art-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@keyframes art-press{0%{transform:scale(1)}40%{transform:scale(.9)}to{transform:scale(1)}}.art-pop{animation:.22s ease-out art-pop}.art-pulse{animation:.22s ease-out art-pulse}.art-shake{animation:.32s ease-in-out art-shake}.art-press{animation:.18s ease-out art-press}@media (prefers-reduced-motion:reduce){.art-pop,.art-pulse,.art-shake,.art-press{animation:none}}.sound-toggle{background:var(--btn,#00000040);width:36px;min-width:36px;height:36px;color:var(--ink,#fff);cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.sound-toggle svg{width:20px;height:20px}.sound-toggle[aria-pressed=true]{opacity:.7}.sound-toggle:focus-visible{outline:3px solid var(--focus,#ffd54a);outline-offset:2px}:root{--bg:#f1e6d2;--ink:#2a2118;--btn:#00000014;--btn-on:#2a6fdb;--btn-on-ink:#fff;--focus:#2a6fdb;--dialog:#fffdf8;--dialog-ink:#2a2118;--back:#2a6fdb;--back2:#1b4fa8;--face:#fffdf8;--gold:#e9b22e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1e1a16;--ink:#f1e9dc;--btn:#ffffff1a;--dialog:#2a241e;--dialog-ink:#f1e9dc;--face:#f4ecde;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#1e1a16;--ink:#f1e9dc;--btn:#ffffff1a;--dialog:#2a241e;--dialog-ink:#f1e9dc;--face:#f4ecde;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--ambient), var(--shade), var(--grain,none), radial-gradient(ellipse 80% 60% at 50% 35%, color-mix(in srgb, var(--bg) 85%, #fff), var(--bg));color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font:14px/1.3 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#app.pu{grid-template-rows:auto auto auto auto 1fr;justify-items:center;gap:5px;height:100dvh;padding:8px 10px 12px;display:grid;position:relative}.pu-bar{flex-wrap:wrap;grid-row:1;justify-content:center;gap:6px;display:flex}.group{gap:3px;display:flex}.btn{font:inherit;color:var(--ink);background:var(--btn);cursor:pointer;border:0;border-radius:9px;min-height:34px;padding:7px 11px;box-shadow:inset 0 1px #ffffff1f,0 2px 6px #00000026}.btn:disabled{opacity:.45;cursor:default}.btn[aria-pressed=true]{background:var(--btn-on);color:var(--btn-on-ink);font-weight:700}.btn.primary{background:var(--btn-on);color:var(--btn-on-ink);font-weight:800}.btn:focus-visible,.pu-card:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sound-toggle{width:34px;height:34px}.pu-info{opacity:.9;font-variant-numeric:tabular-nums;flex-wrap:wrap;grid-row:2;justify-content:center;gap:14px;font-size:13px;display:flex}.pu-seats{grid-row:3;gap:10px;display:flex}.pu-seats[hidden]{display:none}.pu-seat{background:var(--btn);border-radius:999px;align-items:center;gap:8px;padding:3px 12px;font-size:13px;display:flex}.pu-seat.active{background:var(--btn-on);color:var(--btn-on-ink);box-shadow:0 0 0 2px color-mix(in srgb, var(--btn-on) 40%, transparent)}.pu-status{text-align:center;grid-row:4;min-height:1.3em;margin:0;padding:0 6px;font-weight:700}.pu-stage{grid-row:5;place-items:center;width:100%;min-height:0;display:grid;container-type:size}.pu-grid{--gap:8px;--w:min(100cqw, calc(100cqh * var(--cols) / var(--rows) * .8), 640px);width:var(--w);grid-template-columns:repeat(var(--cols), 1fr);gap:var(--gap);box-shadow:var(--tray);background:#0000000f;border-radius:16px;padding:10px;display:grid}.pu-card{appearance:none;aspect-ratio:4/5;perspective:600px;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0}.pu-card:disabled{cursor:default}.pu-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .35s cubic-bezier(.4,.2,.2,1);position:relative}.pu-card.open .pu-inner{transform:rotateY(180deg)}.pu-back,.pu-face{backface-visibility:hidden;border-radius:10px;place-items:center;display:grid;position:absolute;inset:0}.pu-back{background:radial-gradient(circle at 30% 30%, #ffffff40, transparent 50%), repeating-linear-gradient(45deg, var(--back) 0 6px, var(--back2) 6px 12px);box-shadow:var(--raised), inset 0 0 0 3px #ffffff8c}.pu-back:after{content:"";border:3px solid #ffffffb3;border-radius:50%;width:38%;height:38%}.pu-face{background:var(--face);box-shadow:var(--raised), inset 0 0 0 2px #00000014;color:#2a2118;transform:rotateY(180deg)}.pu-face svg{filter:drop-shadow(0 2px 2px #0000002e);width:62%;height:62%}.pu-card.matched .pu-face{box-shadow:0 0 0 3px var(--gold), 0 0 14px color-mix(in srgb, var(--gold) 70%, transparent)}.pu-card.matched{animation:.5s ease-out pu-match}@keyframes pu-match{0%{transform:scale(1)}40%{transform:scale(1.1)}to{transform:scale(1)}}.pu-card.peek .pu-face{opacity:.85}@media (prefers-reduced-motion:reduce){.pu-inner{transition:none}.pu-card.matched{animation:none}}.overlay{z-index:30;background:#140e0873;place-items:center;padding:12px;display:grid;position:absolute;inset:0}.overlay[hidden]{display:none}.overlay.later{animation:1s step-end both pu-later}@keyframes pu-later{0%{opacity:0}to{opacity:1}}.dialog{background:var(--dialog);color:var(--dialog-ink);text-align:center;border-radius:16px;flex-direction:column;gap:10px;width:min(100%,380px);padding:18px 20px;display:flex;box-shadow:0 12px 40px #00000059}.dialog h2{margin:0;font:800 20px/1.2 Trebuchet MS,Segoe UI,sans-serif}.dialog p{opacity:.85;margin:0}.pu-stars{color:var(--gold);letter-spacing:4px;font-size:30px;line-height:1}.pu-best{color:var(--btn-on);font-weight:800}@media (max-width:420px){.btn{padding:6px 8px;font-size:13px}.pu-info{gap:8px;font-size:12px}}@media (max-height:560px) and (min-aspect-ratio:1){#app.pu{gap:3px;padding:6px 8px 8px}.btn{min-height:28px;padding:4px 8px;font-size:12px}.sound-toggle{width:28px;height:28px}.pu-info,.pu-status{font-size:12px}.pu-grid{--gap:5px;--w:min(100cqw, calc(100cqh * var(--cols) / var(--rows) * .8), 640px);padding:6px}}@media (max-height:300px){.pu-status,.pu-info{display:none}.pu-grid{--gap:3px;padding:4px}.dialog{gap:6px;padding:8px 10px}.dialog h2{font-size:15px}.pu-stars{font-size:20px}}
