:root{--bg:#f3f5fa;--surface:#fff;--surface-2:#eef1f7;--border:#dbe1ec;--text:#182033;--text-muted:#5b6680;--accent:#3563f0;--accent-hover:#2a53d4;--accent-contrast:#fff;--accent-soft:#e2e9ff;--table:#dce6ff;--table-border:#b9cbf7;--card-back-1:#3563f0;--card-back-2:#5b82f7;--danger:#c2410c;--warning-bg:#fff4dc;--warning-border:#f3d18b;--shadow-sm:0 1px 2px #1018280f, 0 1px 3px #10182814;--shadow-lg:0 12px 32px #10182824;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1220;--surface:#161d2e;--surface-2:#1e2740;--border:#2a3550;--text:#e7ecf6;--text-muted:#9aa5bd;--accent:#7196ff;--accent-hover:#8aa9ff;--accent-contrast:#0b1020;--accent-soft:#1f2b4d;--table:#182545;--table-border:#2c4172;--card-back-1:#4f76f5;--card-back-2:#7a98fa;--danger:#fb923c;--warning-bg:#3a2c10;--warning-border:#6b5220;--shadow-sm:0 1px 2px #0006;--shadow-lg:0 16px 40px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d1220;--surface:#161d2e;--surface-2:#1e2740;--border:#2a3550;--text:#e7ecf6;--text-muted:#9aa5bd;--accent:#7196ff;--accent-hover:#8aa9ff;--accent-contrast:#0b1020;--accent-soft:#1f2b4d;--table:#182545;--table-border:#2c4172;--card-back-1:#4f76f5;--card-back-2:#7a98fa;--danger:#fb923c;--warning-bg:#3a2c10;--warning-border:#6b5220;--shadow-sm:0 1px 2px #0006;--shadow-lg:0 16px 40px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;transition:background-color .2s}#root{flex-direction:column;min-height:100vh;display:flex}button,input,select{font:inherit;color:inherit}a{color:var(--accent)}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}.btn{white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:600;text-decoration:none;transition:background-color .15s,transform .1s,box-shadow .15s;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--accent-contrast)}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.ghost{border-color:var(--border);background:0 0}.btn.ghost:hover{background:var(--surface-2)}.btn.big{width:100%;padding:12px 20px;font-size:16px}.icon-btn{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text-muted);cursor:pointer;border-radius:10px;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.app-header{z-index:20;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:10px 20px;display:flex;position:sticky;top:0}.brand{color:var(--text);flex-shrink:0;align-items:center;gap:10px;font-size:18px;font-weight:750;text-decoration:none;display:flex}:root{--logo-line:#fff;--cat-black-line:#101014;--wood:#9a6a42;--wood-line:#b98556;--felt:#3f68d6;--felt-text:#ffffffe6;--felt-btn-bg:#fff;--felt-btn-fg:var(--accent)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--logo-line:#141b33;--cat-black-line:#b9c1d6;--wood:#6b4226;--wood-line:#8a5a35;--felt:#1c3470;--felt-btn-bg:var(--accent);--felt-btn-fg:var(--accent-contrast)}}:root[data-theme=dark]{--logo-line:#141b33;--cat-black-line:#b9c1d6;--wood:#6b4226;--wood-line:#8a5a35;--felt:#1c3470;--felt-btn-bg:var(--accent);--felt-btn-fg:var(--accent-contrast)}.logo{display:block;overflow:visible}.brand-logo{flex-shrink:0;width:34px;height:34px}.logo-cat{fill:var(--accent)}.logo-tail{fill:none;stroke:var(--accent);stroke-width:5px;stroke-linecap:round}.logo-ears{fill:var(--accent);stroke:var(--accent);stroke-width:2px;stroke-linejoin:round}.logo-pink{fill:#f5a3bd}.logo-inner-ears{opacity:.85}.logo-blush{opacity:.55}.logo-line{fill:none;stroke:var(--logo-line);stroke-width:1.5px;stroke-linecap:round}.logo-mouth{stroke-width:1.1px}.logo-whiskers{stroke:#fff;stroke-width:.9px;stroke-linecap:round}.logo-card{fill:var(--surface);stroke:var(--accent);stroke-width:1.8px}.logo-card-num{fill:var(--accent);font:800 7px system-ui,sans-serif}.mascot{display:block;overflow:visible}.hero .hero-cat{width:190px;height:auto;margin-left:-8px}.mascot-card{fill:var(--surface);stroke:var(--accent);stroke-width:3px}.mascot-card.accent{fill:var(--accent)}.mascot-card-num{fill:var(--accent);text-anchor:middle;font:800 26px system-ui,sans-serif}.mascot-card-num.on-accent{fill:var(--surface)}.mascot .cat-tail{transform-box:fill-box;transform-origin:0 100%;animation:7s ease-in-out infinite cat-sway}.mascot .cat-ear-l,.mascot .cat-ear-r{transform-box:fill-box;transform-origin:50% 100%}.mascot .cat-ear-l{animation:11s ease-in-out infinite cat-twitch}.mascot .cat-breathe{transform-box:fill-box;transform-origin:50% 100%;animation:5s ease-in-out infinite cat-breathe}.mascot .cat-zzz text{fill:var(--felt-text);opacity:0;font:700 14px system-ui,sans-serif;animation:5s ease-in-out infinite cat-zzz}.mascot .cat-zzz text:nth-child(2){animation-delay:1.4s}.mascot .cat-poke{transform-box:fill-box;animation:2.6s ease-in-out infinite cat-poke}.table-area .table{background:var(--felt);box-shadow:inset 0 0 0 12px var(--wood), inset 0 0 0 15px var(--wood-line), 0 8px 24px #0000002e;color:var(--felt-text);border:0;border-radius:999px;padding:28px 40px;position:relative}.table-area .table:after{content:"";pointer-events:none;border:2px dashed #ffffff24;border-radius:999px;position:absolute;inset:22px}.table-area .table .table-hint,.table-area .table .table-count{z-index:1;color:var(--felt-text);position:relative}.table-area .table .btn.primary{z-index:1;background:var(--felt-btn-bg);color:var(--felt-btn-fg);position:relative}.timebox,.timebox-start,.timebox-hint{z-index:1;position:relative}.timebox{color:var(--felt-text);background:#ffffff24;border-radius:999px;align-items:center;gap:6px;padding:4px 5px 4px 12px;transition:background-color .3s;display:inline-flex}.timebox svg,.timebox-start svg{width:15px;height:15px}.timebox-time{font-variant-numeric:tabular-nums;align-items:center;gap:6px;min-width:62px;margin-right:2px;font-size:15px;font-weight:800;display:inline-flex}.timebox.warn .timebox-time{color:#fde68a}.timebox.expired{background:#fbbf244d;animation:1.4s ease-out 2 timebox-ping}.timebox-btn{color:inherit;cursor:pointer;background:#ffffff2e;border:0;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.timebox-btn:hover{background:#ffffff4d}.timebox-start{color:var(--felt-text);cursor:pointer;background:0 0;border:1px dashed #fff6;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.timebox-start:hover{background:#ffffff1f}.timebox-hint{max-width:60%;color:var(--felt-text);opacity:.9;margin:0;font-size:12.5px}.timebox-hint:empty{display:none}.timebox-settings{gap:10px;display:grid}.timebox-settings .chip{padding:6px 14px;font-size:13px}@keyframes timebox-ping{0%{box-shadow:0 0 #fbbf248c}to{box-shadow:0 0 0 12px #fbbf2400}}@media (prefers-reduced-motion:reduce){.timebox.expired{animation:none}}.table-cat{pointer-events:none;width:52px;height:auto;animation:.6s ease-out fade;position:absolute;bottom:16%;left:9%}.nudge-cat{z-index:4;pointer-events:none;width:46px;height:auto;animation:.5s ease-out both cat-arrive;position:absolute;top:56px;left:calc(50% + 4px)}.seat.nudged .seat-card{animation:2.6s ease-in-out infinite cat-nudge-shake}.hand-title.nudged{color:var(--accent)}@keyframes cat-sway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(5deg)}}@keyframes cat-twitch{0%,90%,to{transform:none}93%{transform:rotate(-14deg)}96%{transform:rotate(4deg)}}@keyframes cat-breathe{50%{transform:scale(1.015,1.035)}}@keyframes cat-zzz{0%{opacity:0;transform:translateY(6px)}30%{opacity:.8}to{opacity:0;transform:translateY(-12px)}}@keyframes cat-poke{0%,60%,to{transform:none}72%{transform:translate(-14px)}84%{transform:none}}@keyframes cat-nudge-shake{0%,70%,to{transform:none}74%{transform:translate(-3px)rotate(-5deg)}78%{transform:translate(2px)rotate(4deg)}82%{transform:none}}@keyframes cat-arrive{0%{opacity:0;transform:translate(16px)}}.table-cat.act-play{width:70px}.mascot .cat-head{transform-box:fill-box;transform-origin:50% 85%;transition:transform .4s ease-out}.mascot .cat-pupils{transition:transform .15s linear}.mascot .cat-bat,.mascot .cat-toy,.mascot .cat-paw-r,.mascot .cat-groom-paw,.mascot .cat-cup{transform-box:fill-box;transform-origin:50% 100%}.cat-act.playing .cat-bat{animation:1.3s ease-in-out cat-bat}.cat-act.playing .cat-toy{animation:1.3s ease-in-out cat-toy}.cat-act.swiping .cat-paw-r{animation:.7s ease-in-out cat-swipe}.cat-act.swiping .mascot{animation:.7s ease-out cat-hop}.mascot .cat-tongue{opacity:0}.cat-act.grooming .cat-groom-paw{animation:2.4s ease-in-out cat-groom}.cat-act.grooming .cat-tongue{animation:2.4s linear cat-tongue}.cat-act.sipping .cat-cup{animation:2.2s ease-in-out cat-sip}.mascot .cat-steam path{fill:none;stroke:#ffffffb3;stroke-width:2.5px;stroke-linecap:round;opacity:0;animation:4.5s ease-in-out infinite cat-steam}.mascot .cat-steam path:nth-child(2){animation-delay:2.2s}.table-fly{z-index:2;opacity:0;pointer-events:none;width:14px;height:10px;transition:opacity .3s;position:absolute;top:0;left:0}.table-fly.on{opacity:1}.table-fly svg{width:100%;height:100%;display:block;overflow:visible}.table-fly .fly-wing{fill:#e6f0ffbf;transform-box:fill-box;transform-origin:50% 100%;animation:90ms linear infinite alternate fly-flap}.nudge-meow{z-index:5;color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;font-size:12px;font-weight:800;animation:2.6s ease-in-out infinite cat-meow;position:absolute;top:42px;left:calc(50% + 36px)}.table .table-cat,.hero-cat-button{cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}.hero-cat-button{margin-left:-8px;display:block;position:relative}.hero-cat-button .hero-cat{margin-left:0}.table-cat .mascot,.hero-cat-button .mascot{transition:transform .2s ease-out}.table-cat:hover .mascot,.hero-cat-button:hover .mascot{transform:translateY(-2px)}.mascot .cat-eyes-open,.mascot .cat-eyes-happy{transition:opacity .2s}.mascot .cat-eyes-happy,.pet-purr .cat-eyes-open,.pet-heart .cat-eyes-open,.pet-nuzzle .cat-eyes-open,.pet-blep .cat-eyes-open{opacity:0}.pet-purr .cat-eyes-happy,.pet-heart .cat-eyes-happy,.pet-nuzzle .cat-eyes-happy,.pet-blep .cat-eyes-happy{opacity:1}.pet-nuzzle .cat-head{animation:1.7s ease-in-out pet-nuzzle}.pet-blep .cat-tongue{transform-box:fill-box;transform-origin:50% 0;animation:1.6s ease-in-out pet-blep}.pet-ears .cat-ear-l{animation:1.4s ease-in-out pet-ear-left}.pet-ears .cat-ear-r{animation:1.4s ease-in-out pet-ear-right}.pet-purr .mascot{animation:.12s linear infinite pet-purr}.pet-label{z-index:3;color:var(--text);white-space:nowrap;pointer-events:none;font-size:13px;font-weight:800;animation:1.5s ease-out forwards pet-label;position:absolute;bottom:100%;left:50%;translate:-50%}.table-cat .pet-label{color:var(--felt-text)}.pet-label.heart{color:#f472b6;font-size:20px}@keyframes pet-purr{0%{transform:translate(-.6px)}to{transform:translate(.6px)}}@keyframes pet-label{0%{opacity:0;transform:translateY(6px)scale(.8)}20%{opacity:1;transform:none}to{opacity:0;transform:translateY(-14px)}}@keyframes pet-nuzzle{15%{transform:rotate(-17deg)translateY(2px)}40%{transform:rotate(9deg)}65%{transform:rotate(-14deg)translateY(2px)}85%{transform:rotate(4deg)}}@keyframes pet-blep{0%{opacity:0;transform:scaleY(.3)}12%,78%{opacity:1;transform:scale(1.15,1.4)}to{opacity:0;transform:scaleY(.3)}}@keyframes pet-ear-left{20%{transform:rotate(-22deg)}45%{transform:rotate(8deg)}70%{transform:rotate(-16deg)}}@keyframes pet-ear-right{20%{transform:rotate(20deg)}45%{transform:rotate(-8deg)}70%{transform:rotate(15deg)}}@media (prefers-reduced-motion:reduce){.pet-purr .mascot,.pet-nuzzle .cat-head,.pet-ears .cat-ear-l,.pet-ears .cat-ear-r{animation:none}}.cat-gallery{width:100%;max-width:1100px;margin:0 auto;padding:24px 16px 48px}.cat-gallery h1{margin:0 0 4px;font-size:24px}.cat-gallery h2{margin:32px 0 12px;font-size:18px}.cat-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-top:16px;display:grid}.cat-gallery-item{margin:0}.cat-gallery-item figcaption{color:var(--text-muted);text-align:center;margin-top:8px;font-size:14px;font-weight:600}.table-area.gallery{display:block}.table-area.gallery .table{min-height:170px}.cat-gallery-seat{justify-content:center;padding:40px 0 20px;display:flex;position:relative}@keyframes cat-bat{30%{transform:translate(12px,-8px)rotate(-18deg)}55%{transform:translate(16px)}}@keyframes cat-toy{45%{transform:none}60%{transform:translate(6px)rotate(10deg)}80%{transform:translate(3px)rotate(-4deg)}}@keyframes cat-swipe{40%{transform:translate(8px,-34px)rotate(-20deg)}}@keyframes cat-hop{35%{transform:translateY(-5px)}}@keyframes cat-groom{0%,to{transform:none}20%,46%,72%{transform:translate(-14px,-30px)rotate(-12deg)}33%,59%{transform:translate(-11px,-24px)rotate(-8deg)}}@keyframes cat-tongue{0%,15%,85%,to{opacity:0}20%,80%{opacity:1}}@keyframes cat-sip{0%,to{transform:none}35%,65%{transform:translate(-18px,-24px)rotate(-14deg)}}@keyframes cat-steam{0%{opacity:0;transform:translateY(6px)}40%{opacity:.8}to{opacity:0;transform:translateY(-10px)}}@keyframes fly-flap{to{transform:scaleY(.55)}}@keyframes cat-meow{0%,62%{opacity:0;transform:translate(-4px,6px)scale(.85)}72%{opacity:1;transform:none}90%{opacity:0;transform:translate(4px,-8px)}to{opacity:0}}@media (width<=420px){.table-cat{display:none}}.header-slot{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.room-title{text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:16px;font-weight:600;overflow:hidden}.header-actions{align-items:center;gap:8px;display:flex}.profile-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:8px;max-width:180px;padding:3px 12px 3px 3px;display:flex}.profile-btn:hover{background:var(--surface-2)}.profile-btn .hide-sm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.avatar{background:var(--accent);width:30px;height:30px;color:var(--accent-contrast);border-radius:50%;flex-shrink:0;place-items:center;font-size:14px;font-weight:700;display:grid;position:relative;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.avatar.is-fx{background:var(--avatar-bg,var(--surface-2));overflow:visible}.avatar.is-fx .avatar-base{object-fit:contain;width:76%;height:76%;position:absolute;inset:12%}.avatar .avatar-acc{z-index:1;object-fit:contain;pointer-events:none;filter:drop-shadow(0 1px 1px #00000040);height:auto;position:absolute}.avatar-sm{width:22px;height:22px;font-size:11px}.avatar-lg{border:3px solid var(--surface);width:56px;height:56px;box-shadow:var(--shadow-sm);font-size:22px}.avatar-xl{border:4px solid var(--surface);width:88px;height:88px;box-shadow:var(--shadow-lg);font-size:34px}.profile-head{align-items:center;gap:16px;display:flex}.profile-head .field{flex:1}.avatar-picker{gap:10px;display:grid}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.chip:hover,.chip.active{border-color:var(--accent);color:var(--accent)}.avatar-grid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));grid-auto-rows:56px;gap:6px;max-height:248px;padding:2px;display:grid;overflow-y:auto}.avatar-tile,.option-tile{background:var(--surface-2);cursor:pointer;border:2px solid #0000;border-radius:12px;place-items:center;padding:4px;transition:transform .1s,border-color .1s;display:grid}.avatar-tile img{object-fit:contain;width:100%;height:100%}.avatar-tile:hover,.option-tile:hover,.swatch:hover{transform:scale(1.08)}.avatar-tile.selected,.option-tile.selected,.swatch.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.avatar-options{gap:6px;display:grid}.option-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700}.option-row{flex-wrap:wrap;gap:6px;padding:2px;display:flex}.option-tile{height:40px;color:var(--text-muted);flex:0 0 40px;font-weight:700}.option-tile img{object-fit:contain;width:28px;height:28px}.swatch{border:2px solid var(--border);background:var(--swatch,var(--surface-2));cursor:pointer;border-radius:50%;flex:0 0 32px;height:32px;margin:4px 0;transition:transform .1s,border-color .1s}.swatch.none{background:repeating-linear-gradient(45deg, var(--surface-2) 0 5px, var(--border) 5px 7px)}.dialog.wide{width:min(560px,100%)}.table-area .seat-row{min-height:150px}.seat-button,.seat-body{flex-direction:column;align-items:center;display:flex}.seat-avatar{z-index:1;margin-bottom:-12px;display:block;position:relative}.seat.hit .seat-avatar,.spectator-chip.hit{animation:.5s shake}.spectators .spectator-chip{align-items:center;gap:6px;padding-left:3px;display:inline-flex}.seat.spot{isolation:isolate}.seat.spot:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side,#facc1566,#0000);border-radius:50%;animation:1.6s ease-in-out infinite spot-pulse;position:absolute;inset:-22px -16px}.seat.spot .face,.seat.spot .avatar{box-shadow:0 0 0 3px #facc15,0 0 22px 6px #facc1580}.drumroll{margin:0;font-size:20px;font-weight:800;animation:.18s ease-in-out infinite alternate wobble}.table-area.suspense .card-slot.voted{animation:.12s ease-in-out infinite alternate jitter}.awards-backdrop{z-index:70;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#080c18b8;place-items:center;padding:16px;animation:.2s ease-out fade;display:grid;position:fixed;inset:0;overflow-y:auto}.awards{color:#fff;text-align:center;width:min(780px,100%)}.awards h2{margin:0 0 6px;font-size:clamp(26px,5vw,40px)}.awards>p{color:#ffffffc7;margin:0 0 22px}.award-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:24px;display:grid}.award-card{background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);border-radius:18px;padding:18px 14px;animation:.5s cubic-bezier(.3,.7,.4,1.4) both award-in}.award-emoji{font-size:40px;line-height:1}.award-title{margin:8px 0 12px;font-size:18px;font-weight:800}.award-winners{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.award-winner{justify-items:center;gap:4px;font-size:14px;font-weight:700;display:grid}.award-reason{color:var(--text-muted);margin:12px 0 0;font-size:13px}.awards .btn.big{width:auto;min-width:220px}@keyframes spot-pulse{50%{opacity:.55;transform:scale(1.08)}}@keyframes wobble{0%{transform:rotate(-3deg)scale(1)}to{transform:rotate(3deg)scale(1.06)}}@keyframes jitter{0%{transform:translateY(-2px)rotate(-3deg)}to{transform:translateY(1px)rotate(3deg)}}@keyframes award-in{0%{opacity:0;transform:translateY(20px)scale(.9)}}@media (width<=640px){.app-header .theme-toggle .opt-system{display:none}.app-header .icon-btn{width:34px;height:34px}.app-header .header-actions{gap:6px}.avatar-xl{width:64px;height:64px;font-size:26px}}.theme-toggle{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;flex-shrink:0;gap:2px;padding:3px;display:flex}.theme-toggle button{width:30px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;display:grid}.theme-toggle button:hover{color:var(--text)}.theme-toggle button.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.banner{background:var(--warning-bg);border-bottom:1px solid var(--warning-border);text-align:center;padding:8px 20px;font-size:14px}.home{flex:1;grid-template-columns:1.1fr 1fr;align-items:center;gap:48px;width:100%;max-width:1080px;margin:0 auto;padding:48px 24px;display:grid}.hero h1{letter-spacing:-.02em;margin:24px 0 16px;font-size:clamp(30px,4.5vw,46px);line-height:1.1}.hero p{color:var(--text-muted);margin:0 0 20px;font-size:18px;line-height:1.5}.hero .hero-tagline{color:var(--accent);letter-spacing:.02em;margin:20px 0 0;font-size:15px;font-weight:700}.feature-list{gap:10px;margin:0;padding:0;font-size:16px;list-style:none;display:grid}.card-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);border-radius:18px;padding:28px}.card-panel h2{margin:0;font-size:20px}.form{gap:18px;display:grid}.field{gap:6px;display:grid}.field>span{font-size:14px;font-weight:600}.field small,.switch-row small{color:var(--text-muted);font-size:13px}.field input,.field select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:10px;padding:10px 12px}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);outline:none}.form-error{color:var(--danger);margin:0}.hint{color:var(--text-muted);margin:0;font-size:14px}.deck-picker{gap:12px;display:grid}.deck-preview{flex-wrap:wrap;gap:6px;display:flex}.mini-card{border:1.5px solid var(--accent);background:var(--accent-soft);min-width:30px;height:40px;color:var(--accent);border-radius:6px;place-items:center;padding:0 6px;font-size:14px;font-weight:700;display:inline-grid}.switch-row{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;display:flex}.switch-row>span{gap:2px;display:grid}.switch{background:var(--border);appearance:none;cursor:pointer;border-radius:999px;flex-shrink:0;width:44px;height:26px;margin:0;transition:background-color .2s;position:relative}.switch:after{content:"";width:20px;height:20px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .2s;position:absolute;top:3px;left:3px}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(18px)}.dialog-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080c1873;place-items:center;padding:16px;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--border);background:var(--surface);width:min(440px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);border-radius:18px;padding:24px;animation:.18s ease-out pop;overflow:auto}.dialog h2{margin:0 0 18px;font-size:20px}.dialog-actions{justify-content:flex-end;gap:10px;display:flex}.room{flex-direction:column;flex:1;align-items:center;gap:24px;width:100%;padding:32px 16px 28px;display:flex}.table-area{grid-template-columns:auto minmax(220px,480px) auto;grid-template-areas:".top.""left table right"".bottom.";justify-content:center;align-items:center;gap:18px 24px;width:100%;margin:auto 0;display:grid}.seat-row,.seat-col{z-index:2;position:relative}:is(.seat-row:has(.throw-picker),.seat-col:has(.throw-picker),.seat:has(.throw-picker)){z-index:3}.seat-row{flex-wrap:wrap;justify-content:center;gap:20px;min-height:100px;display:flex}.seat-row.top{grid-area:top;align-items:flex-end}.seat-row.bottom{grid-area:bottom;align-items:flex-start}.seat-col{flex-direction:column;gap:18px;display:flex}.seat-col.left{grid-area:left}.seat-col.right{grid-area:right}.table{border:2px solid var(--table-border);background:var(--table);text-align:center;border-radius:32px;flex-direction:column;grid-area:table;justify-content:center;align-items:center;gap:10px;min-height:160px;padding:20px;display:flex;box-shadow:inset 0 2px 12px #0000000f}.table-hint{color:var(--text-muted);margin:0;font-size:17px;font-weight:600}.table-count{color:var(--text-muted);margin:0;font-size:13px}.seat{flex-direction:column;align-items:center;gap:8px;width:100px;display:flex;position:relative}.seat-button{cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0}.seat-card{display:block}.seat.hit .seat-card{animation:.5s shake}.card-slot{perspective:600px;width:46px;height:66px;transition:transform .15s;display:block}.seat-button:hover .card-slot{transform:translateY(-3px)}.card-slot.voted{animation:.3s ease-out drop}.card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.3,.7,.4,1.2);display:block;position:relative}.card-slot.revealed .card-inner{transform:rotateY(180deg)}.face{backface-visibility:hidden;border-radius:9px;place-items:center;font-size:20px;font-weight:800;display:grid;position:absolute;inset:0}.card-slot.empty .face.back{border:2px dashed var(--border);background:var(--surface-2)}.card-slot.voted .face.back,.card-slot.revealed .face.back{border:2px solid var(--card-back-1);background:repeating-linear-gradient(45deg, var(--card-back-1) 0 6px, var(--card-back-2) 6px 12px);box-shadow:var(--shadow-sm)}.face.front{border:2px solid var(--accent);background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm);transform:rotateY(180deg)}.seat-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:14px;font-weight:600;overflow:hidden}.seat.me .seat-name{color:var(--accent)}.you{color:var(--text-muted);font-weight:400}.spectators{color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:14px;display:flex}.spectators-label,.spectator-hint{align-items:center;gap:6px;display:inline-flex}.spectator-chip{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:999px;padding:3px 10px}.spectator-hint{color:var(--text-muted);margin:0}.throw-picker{--picker-content:348px;z-index:30;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);translate:calc(-50% + var(--shift,0px)) 0;border-radius:14px;padding:10px;animation:.15s ease-out pop;position:absolute;left:50%}@media (width<=640px){.throw-picker{--picker-content:304px}}.throw-picker.below{top:calc(100% + 8px)}.throw-picker.above{bottom:calc(100% + 8px)}.picker-tabs{background:var(--surface-2);border-radius:10px;gap:4px;margin-bottom:8px;padding:3px;display:flex}.picker-tabs button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:1;padding:6px;font-size:13px;font-weight:600}.picker-tabs button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.emoji-grid{width:var(--picker-content);grid-template-columns:repeat(auto-fill,40px);grid-auto-rows:40px;gap:4px;display:grid}.emoji-btn{cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0;font-size:24px;line-height:1;transition:transform .1s,background-color .1s}.emoji-btn:hover{background:var(--surface-2);transform:scale(1.15)}.meme-panel{width:var(--picker-content);gap:8px;display:grid}.meme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 6px;display:grid}.meme-btn{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;font-weight:600;display:flex}.meme-btn span{background:var(--meme);border-radius:7px;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.meme-btn:hover{background:var(--surface-2)}.throw-layer{z-index:50;pointer-events:none;position:fixed;inset:0;overflow:hidden}.projectile{position:absolute;top:0;left:0}.projectile,.projectile>div{will-change:transform}.emoji-projectile{filter:drop-shadow(0 3px 4px #00000040);font-size:34px;line-height:1;transform:translate(-50%,-50%)}.meme-sticker{background:var(--meme);color:#fff;white-space:nowrap;border:3px solid #fff;border-radius:12px;align-items:center;gap:8px;padding:7px 14px 7px 7px;font-size:15px;font-weight:800;display:flex;transform:translate(-50%,-50%);box-shadow:0 8px 20px #0000004d}.meme-emoji{background:#fff3;border-radius:8px;place-items:center;width:32px;height:32px;font-size:22px;display:grid}.particle{font-size:16px;position:absolute;transform:translate(-50%,-50%)}.hand-area{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.hand-title{color:var(--text-muted);margin:0;font-size:14px;font-weight:600}.hand{justify-content:safe center;gap:10px;max-width:100%;padding:14px 8px 6px;display:flex;overflow-x:auto}.hand-card{border:2px solid var(--accent);background:var(--surface);width:52px;height:80px;color:var(--accent);cursor:pointer;border-radius:10px;flex-shrink:0;font-size:20px;font-weight:800;transition:transform .15s,background-color .15s,color .15s,box-shadow .15s}.hand-card:hover{background:var(--accent-soft);transform:translateY(-6px)}.hand-card.selected{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--shadow-lg);transform:translateY(-12px)}.results{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:40px;padding:8px 16px;animation:.3s ease-out fade;display:flex}.results-empty{color:var(--text-muted);margin:0}.bars{align-items:flex-end;gap:18px;display:flex}.bar-col{flex-direction:column;align-items:center;gap:6px;display:flex}.bar-track{background:var(--surface-2);border-radius:999px;align-items:flex-end;width:10px;height:90px;display:flex;overflow:hidden}.bar{background:var(--accent);transform-origin:bottom;border-radius:999px;width:100%;animation:.6s cubic-bezier(.3,.7,.4,1) grow}.bar-count{color:var(--text-muted);font-size:12px}.stats{gap:28px;display:flex}.stat{text-align:center;gap:2px;display:grid}.stat-label{color:var(--text-muted);font-size:13px;font-weight:600}.stat-value{font-variant-numeric:tabular-nums;font-size:30px;font-weight:800}.confetti{z-index:45;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti span{font-size:22px;animation-name:fall;animation-timing-function:cubic-bezier(.3,.6,.6,1);animation-fill-mode:forwards;position:absolute;top:-40px}.center-message{text-align:center;flex:1;place-content:center;justify-items:center;gap:12px;padding:40px 16px;display:grid}.center-message h2{margin:0}.center-message p{max-width:460px;color:var(--text-muted);margin:0}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.96)translateY(6px)}}@keyframes drop{0%{transform:translateY(-10px)scale(1.08)}}@keyframes shake{0%,to{transform:none}20%{transform:translate(-6px)rotate(-6deg)}40%{transform:translate(5px)rotate(5deg)}60%{transform:translate(-4px)rotate(-3deg)}80%{transform:translate(2px)rotate(2deg)}}@keyframes grow{0%{transform:scaleY(0)}}@keyframes fall{to{transform:translateY(calc(100vh + 80px))rotate(540deg)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=820px){.home{grid-template-columns:1fr;gap:28px;padding:28px 16px}}@media (width<=640px){.app-header{gap:8px;padding:8px 12px}.brand-name,.hide-sm{display:none}.room-title{text-align:left;font-size:15px}.profile-btn{padding:3px}.table-area{grid-template-columns:minmax(0,1fr);grid-template-areas:"top""left""table""right""bottom"}.seat-col{flex-direction:row;justify-content:center}.seat{width:84px}.hand-card{width:46px;height:70px;font-size:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.seat-host{color:var(--accent);vertical-align:-3px;margin-right:4px;display:inline-flex}.seat-host svg{width:14px;height:14px}.dialog.wide:has(.kb){width:min(880px,100%)}.kb{grid-template-columns:minmax(180px,232px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.kb-list-side{gap:10px;display:grid}.kb-search{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:10px;padding:9px 12px}.kb-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);outline:none}.kb-list{gap:4px;max-height:46vh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.kb-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;grid-template-columns:22px 1fr;gap:2px 8px;padding:8px 10px;display:grid}.kb-item:hover{background:var(--surface-2)}.kb-item.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.kb-item-icon{grid-row:span 2;align-self:center;font-size:17px;line-height:1}.kb-item-title{font-size:14px;font-weight:700}.kb-item-cat,.kb-item-pinned{color:var(--text-muted);font-size:11.5px;font-weight:600}.kb-item.active .kb-item-cat{color:inherit}.kb-item-pinned{color:var(--accent);grid-column:2}.kb-empty{color:var(--text-muted);padding:8px 10px;font-size:14px}.kb-detail{min-width:0}.kb-detail h3{margin:0 0 6px;font-size:19px}.kb-detail h4{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:16px 0 6px;font-size:13px}.kb-detail-icon{font-size:20px}.kb-summary{margin:0;font-size:15px;line-height:1.5}.kb-points,.kb-sources{gap:5px;margin:0;padding-left:20px;font-size:14px;line-height:1.45;display:grid}.kb-sources{font-size:13px}.kb-sources a{color:var(--accent)}.kb-actions{margin-top:18px}.kb-host-hint{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pinned-backdrop{z-index:65;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080c1873;place-items:center;padding:16px;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}.pinned-overlay{border:1px solid var(--accent);background:var(--surface);width:min(620px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);border-radius:16px;padding:20px 22px;animation:.28s cubic-bezier(.3,.7,.4,1.3) both pin-pop;overflow-y:auto}@keyframes pin-pop{0%{opacity:0;transform:scale(.94)translateY(10px)}}@media (prefers-reduced-motion:reduce){.pinned-overlay{animation:.15s ease-out both fade}}.pinned-from{color:var(--text-muted);align-items:center;gap:6px;margin:0 0 6px;font-size:12.5px;font-weight:600;display:flex}.pinned-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.pinned-reopen{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);cursor:pointer;border-radius:999px;align-items:center;gap:7px;margin:0 auto;padding:7px 14px;font-size:13px;font-weight:650;display:inline-flex}.pinned-reopen:hover{background:var(--surface-2)}.pinned-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.pinned-title{color:var(--text);align-items:center;gap:8px;margin:0;font-size:20px;font-weight:780;display:flex}.pinned-summary{margin:6px 0 0;font-size:14px;line-height:1.5}.pinned-points{color:var(--text-muted);gap:3px;margin:8px 0 0;padding-left:20px;font-size:13px;display:grid}.pinned-source{color:var(--text-muted);margin:8px 0 0;font-size:12px}.kv-figure{margin:12px 0 0}.kv{width:100%;max-width:520px;height:auto;display:block;overflow:visible}.kv-small,.kv-label,.kv-num,.kv-dot-num{fill:var(--text)}.kv-small{font:600 9.5px system-ui,sans-serif}.kv-label{font:750 12px system-ui,sans-serif}.kv-num{fill:var(--accent);font:800 13px system-ui,sans-serif}.kv-num-lg{font-size:24px}.kv-muted{fill:var(--text-muted)}.kv-box,.kv-panel{fill:var(--surface-2);stroke:var(--border);stroke-width:1px}.kv-panel-on{fill:var(--accent-soft);stroke:var(--accent)}.kv-card{fill:var(--surface);stroke:var(--accent);stroke-width:1.6px}.kv-card-on{fill:var(--accent-soft)}.kv-card-lg{stroke-width:2px}.kv-chip{fill:var(--surface-2);stroke:var(--border);stroke-width:1px}.kv-chip-on{fill:color-mix(in srgb, var(--accent) 14%, transparent);stroke:var(--accent)}.kv-chip-off{fill:color-mix(in srgb, var(--danger) 12%, transparent);stroke:color-mix(in srgb, var(--danger) 45%, transparent)}.kv-dot{fill:var(--accent)}.kv-dot-num{fill:var(--accent-contrast);font:800 10px system-ui,sans-serif}.kv-arrow,.kv-loop,.kv-gate,.kv-line,.kv-check{fill:none;stroke:var(--text-muted);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.kv-check{stroke:var(--accent);stroke-width:2px}.kv-arrow-back{stroke:color-mix(in srgb, var(--danger) 70%, var(--text-muted))}.kv-loop{stroke-dasharray:4 4}.kv-gate{stroke:var(--border);stroke-width:2px}.kv-axis{stroke:var(--border);stroke-width:1.5px}.kv-bar{fill:var(--accent)}.kv-band{fill:color-mix(in srgb, var(--accent) 16%, transparent)}.kv-avg{stroke:var(--accent);stroke-width:1.6px;stroke-dasharray:5 4}.kv-cone{fill:color-mix(in srgb, var(--accent) 14%, transparent);stroke:var(--accent);stroke-width:1.2px;stroke-dasharray:4 4}.kv-no{fill:var(--surface);stroke:color-mix(in srgb, var(--danger) 60%, transparent);stroke-width:1.6px}.kv-no-x{fill:none;stroke:var(--danger);stroke-width:2.2px;stroke-linecap:round}@media (width<=700px){.kb{grid-template-columns:minmax(0,1fr)}.kb-list{max-height:30vh}}.ki{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;margin-top:12px;padding:12px 14px}.ki-controls{gap:10px;display:grid}.ki-slider{gap:4px;display:grid}.ki-slider label{justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;font-weight:650;display:flex}.ki-slider output{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:800}.ki-slider input[type=range]{width:100%;height:22px;accent-color:var(--accent);cursor:pointer;margin:0}.ki-result{margin:12px 0 0;font-size:15px;line-height:1.45}.ki-result strong{color:var(--accent);font-variant-numeric:tabular-nums}.ki-hint{color:var(--text-muted);margin:8px 0 0;font-size:12.5px;line-height:1.45}.ki-chart{max-width:100%;margin-top:10px}.ki-triangle{grid-template-columns:minmax(200px,1.1fr) minmax(180px,1fr);align-items:center;gap:16px;display:grid}.ki-preset{justify-self:start;padding:6px 12px;font-size:13px}.ki-outline{fill:none;stroke:var(--border);stroke-width:1.5px;stroke-dasharray:4 4}.ki-shape{fill:color-mix(in srgb, var(--accent) 22%, transparent);stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;transition:all .15s ease-out}@media (width<=620px){.ki-triangle{grid-template-columns:minmax(0,1fr)}}.ki-fill-warn{fill:color-mix(in srgb, var(--danger) 55%, transparent)}.ki-locked{color:var(--text-muted);align-items:center;gap:6px;margin:8px 0 0;font-size:12.5px;display:flex}.ki-slider input[type=range]:disabled{cursor:not-allowed;opacity:.6}.avatar-gallery-table{border-collapse:collapse;margin-top:16px}.avatar-gallery-table th,.avatar-gallery-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:10px 14px;font-size:13px}.avatar-gallery-table small{color:var(--text-muted)}.kg-item{border-bottom:1px solid var(--border);margin-bottom:28px;padding-bottom:18px}.kg-item h2{margin:0 0 8px;font-size:17px}.kg-item small{color:var(--text-muted);font-weight:500}
