:root{--c-bg: #fff7ec;--c-bg-2: #ffefd8;--c-surface: #ffffff;--c-ink: #2b2540;--c-ink-soft: #6b6480;--c-border: #eadfce;--c-primary: #ff6f61;--c-primary-ink: #ffffff;--c-primary-dark: #e85a4d;--c-accent: #2fb8b0;--c-accent-dark: #24968f;--c-sun: #f4c430;--c-violet: #9b6dd6;--c-danger: #e04848;--c-danger-bg: #ffe6e3;--c-ok: #4caf6d;--c-letterbox: #f3eee6;--radius-sm: 10px;--radius: 16px;--radius-lg: 24px;--radius-pill: 999px;--shadow-sm: 0 2px 6px rgba(43, 37, 64, .08);--shadow: 0 8px 24px rgba(43, 37, 64, .12);--shadow-pop: 0 12px 32px rgba(255, 111, 97, .28);--bw-hair: 1px;--bw: 2px;--bw-strong: 3px;--font-display: "Fredoka", "Baloo 2", "Trebuchet MS", system-ui, sans-serif;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-caption: .8rem;--text-sm: .9rem;--text-body: 1rem;--text-lg: 1.15rem;--text-xl: 1.4rem;--text-2xl: 1.8rem;--text-display: clamp(2rem, 6vw, 3.2rem);--fw-regular: 400;--fw-semibold: 600;--fw-bold: 700;--leading-tight: 1.1;--leading-normal: 1.5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-normal);color:var(--c-ink);background:radial-gradient(circle at 15% 0%,var(--c-bg-2),var(--c-bg) 60%);background-attachment:fixed;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:var(--fw-bold);line-height:var(--leading-tight);margin:0 0 var(--space-3)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}a{color:var(--c-accent-dark)}.screen{min-height:100%;display:flex;flex-direction:column;align-items:center;padding:var(--space-6) var(--space-4);gap:var(--space-5)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.row{display:flex;gap:var(--space-3);align-items:center}.brand{font-family:var(--font-display);font-size:var(--text-display);font-weight:var(--fw-bold);line-height:var(--leading-tight);text-align:center;color:var(--c-ink);margin:0}.brand .brand-accent{color:var(--c-primary)}.brand-sub{text-align:center;color:var(--c-ink-soft);font-size:var(--text-lg);margin:0}.panel{background:var(--c-surface);border:var(--bw-hair) solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-5);width:100%}.panel-muted{background:var(--c-bg);box-shadow:none}.panel-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--fw-bold);margin:0 0 var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.btn{font-family:var(--font-display);font-size:1.05rem;font-weight:600;border:none;border-radius:var(--radius-pill);padding:.7em 1.5em;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,filter .12s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);line-height:1.1}.btn:active:not(:disabled){transform:translateY(1px) scale(.98)}.btn:focus-visible{outline:3px solid var(--c-violet);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--c-primary);color:var(--c-primary-ink);box-shadow:var(--shadow-pop)}.btn-primary:hover:not(:disabled){background:var(--c-primary-dark);transform:translateY(-2px)}.btn-accent{background:var(--c-accent);color:#fff;box-shadow:0 8px 24px #2fb8b047}.btn-accent:hover:not(:disabled){background:var(--c-accent-dark);transform:translateY(-2px)}.btn-ghost{background:transparent;color:var(--c-ink);border:2px solid var(--c-border)}.btn-ghost:hover:not(:disabled){background:var(--c-bg-2)}.btn-block{width:100%}.btn-lg{font-size:1.2rem;padding:.85em 1.8em}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field-label{font-weight:var(--fw-semibold);font-size:var(--text-sm);color:var(--c-ink-soft)}.input,.select{font-family:var(--font-body);font-size:1.05rem;padding:.7em 1em;border:2px solid var(--c-border);border-radius:var(--radius);background:#fff;color:var(--c-ink);width:100%}.input:focus,.select:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px #2fb8b033}.input-code{text-transform:uppercase;letter-spacing:.35em;font-family:var(--font-display);font-size:1.4rem;text-align:center}.color-grid{display:flex;flex-wrap:wrap;gap:var(--space-2)}.color-swatch{width:40px;height:40px;border-radius:var(--radius-pill);border:3px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;transition:transform .12s ease,border-color .12s ease;position:relative}.color-swatch:hover:not(:disabled){transform:scale(1.12)}.color-swatch[aria-pressed=true]{border-color:var(--c-ink);transform:scale(1.12)}.color-swatch:disabled{opacity:.35;cursor:not-allowed}.color-swatch:focus-visible{outline:3px solid var(--c-violet);outline-offset:2px}.player-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.player-badge{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--c-bg);border:var(--bw-hair) solid var(--c-border)}.player-badge.is-me{border:var(--bw) solid var(--c-accent);background:#f0fbfa}.player-badge.is-offline{opacity:.55}.player-avatar{width:40px;height:40px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:1.1rem;flex:0 0 auto;position:relative}.player-avatar .player-symbol{position:absolute;right:-2px;bottom:-2px;font-size:.7rem;background:#fff;border-radius:var(--radius-pill);width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--c-ink);box-shadow:var(--shadow-sm)}.player-name{font-weight:600;flex:1}.tag{font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.04em}.tag-host{background:var(--c-sun);color:#3a2f00}.tag-offline{background:#eee;color:var(--c-ink-soft)}.dot-online{width:10px;height:10px;border-radius:50%;background:var(--c-ok);flex:0 0 auto}.banner{border-radius:var(--radius);padding:var(--space-3) var(--space-4);font-weight:600;display:flex;align-items:center;gap:var(--space-2);width:100%}.banner-error{background:var(--c-danger-bg);color:var(--c-danger);border:2px solid #f4b6b0}.banner-warn{background:#fff6df;color:#8a6d00;border:2px solid #f2d98a}.banner-info{background:#eaf5ff;color:#2a6aa8;border:2px solid #bcdcf5}.status-pill{font-size:.8rem;font-weight:700;padding:3px 10px;border-radius:var(--radius-pill);background:var(--c-bg-2);color:var(--c-ink-soft)}.status-pill.is-open{background:#e4f7ea;color:#2a7d47}.status-pill.is-down{background:var(--c-danger-bg);color:var(--c-danger)}.home-card{max-width:460px}.divider{display:flex;align-items:center;gap:var(--space-3);color:var(--c-ink-soft);font-weight:600}.divider:before,.divider:after{content:"";flex:1;height:2px;background:var(--c-border);border-radius:2px}.room-shell{width:100%;max-width:900px}.room-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.room-code{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--fw-bold)}.room-code strong{letter-spacing:.25em;color:var(--c-primary)}.room-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:var(--space-4);align-items:start}@media(max-width:720px){.room-grid{grid-template-columns:1fr}}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0}.setting-row+.setting-row{border-top:var(--bw-hair) solid var(--c-border)}.setting-row .field-label{margin:0}.setting-control{min-width:120px}.setting-static{font-family:var(--font-display);font-weight:var(--fw-semibold)}.placeholder-card{text-align:center;max-width:520px}.placeholder-emoji{font-size:3rem}.copied-hint{color:var(--c-ok);font-weight:700;font-size:.85rem}.game-shell{width:100%;max-width:960px;display:flex;flex-direction:column;gap:var(--space-4)}.game-topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);background:var(--c-surface);border:var(--bw-hair) solid var(--c-border);border-radius:var(--radius);padding:var(--space-2) var(--space-4);box-shadow:var(--shadow-sm)}.game-manche{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--text-lg)}.countdown{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--text-xl);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--c-bg-2)}.countdown.is-urgent{background:var(--c-danger-bg);color:var(--c-danger);animation:pulse 1s ease-in-out infinite}.countdown.is-over{background:var(--c-danger-bg);color:var(--c-danger)}@keyframes pulse{50%{transform:scale(1.08)}}.finishers{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.finishers-label{color:var(--c-ink-soft);font-weight:600;font-size:.9rem}.finishers-count{font-weight:700;color:var(--c-ink-soft)}.player-token{display:inline-flex;align-items:center;gap:var(--space-2)}.player-token-dot{width:28px;height:28px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:.85rem;position:relative;flex:0 0 auto}.player-token-symbol{position:absolute;right:-3px;bottom:-3px;font-size:.6rem;background:#fff;border-radius:var(--radius-pill);width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;color:var(--c-ink);box-shadow:var(--shadow-sm)}.player-token-name{font-weight:600;font-size:.95rem}.card-face{border-radius:var(--radius);overflow:hidden;background:var(--c-letterbox);border:var(--bw) solid var(--c-border);display:flex;align-items:center;justify-content:center;aspect-ratio:1 / 1}.card-face-sm{width:64px}.card-face-md{width:100%}.card-face-lg{width:160px}.card-img{width:100%;height:100%;object-fit:contain;display:block;-webkit-user-select:none;user-select:none}.card-fallback{padding:var(--space-2);text-align:center;font-weight:600;font-size:.8rem;color:var(--c-ink-soft)}.formation-layout{display:grid;grid-template-columns:1fr minmax(260px,320px);gap:var(--space-4);align-items:start}.pool-area{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3);padding:var(--space-3);background:var(--c-surface);border:2px dashed var(--c-border);border-radius:var(--radius-lg);min-height:200px;align-content:start;transition:border-color .15s ease,background .15s ease}.pool-area.is-over{border-color:var(--c-accent);background:#f0fbfa}.card-cell{position:relative;display:block}.playable-card{display:block;width:100%;padding:0;border:3px solid transparent;border-radius:calc(var(--radius) + 2px);background:transparent;cursor:grab;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.playable-card:hover:not(:disabled){transform:translateY(-3px);box-shadow:var(--shadow)}.playable-card:active:not(:disabled){cursor:grabbing}.playable-card.is-selected{border-color:var(--c-primary);box-shadow:var(--shadow-pop)}.playable-card.is-pair-target{border-color:var(--c-accent)}.playable-card:focus-visible{outline:3px solid var(--c-violet);outline-offset:2px}.playable-card:disabled{cursor:default}.card-zoom-btn{position:absolute;top:6px;right:6px;width:34px;height:34px;border-radius:var(--radius-pill);border:none;background:#ffffffeb;box-shadow:var(--shadow-sm);font-size:1rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;z-index:2;transition:transform .12s ease,background .12s ease}.card-zoom-btn:hover{transform:scale(1.12);background:#fff}.card-zoom-btn:focus-visible{outline:3px solid var(--c-violet);outline-offset:2px}.card-cell.is-compact .card-zoom-btn{width:24px;height:24px;font-size:.75rem;top:3px;right:3px}.pairs-panel{position:sticky;top:var(--space-3)}.pairs-area{display:flex;flex-direction:column;gap:var(--space-2);background:var(--c-surface);border:var(--bw-hair) solid var(--c-border);border-radius:var(--radius-lg);padding:var(--space-3)}.pair-slot{position:relative;display:flex;align-items:center;gap:var(--space-2);background:var(--c-bg);border:2px solid var(--c-border);border-radius:var(--radius);padding:var(--space-2);cursor:pointer;transition:border-color .15s ease,background .15s ease}.pair-slot.is-over{border-color:var(--c-accent);background:#f0fbfa}.pair-slot.is-full{border-color:var(--c-ok)}.pair-slot:focus-visible{outline:3px solid var(--c-violet);outline-offset:2px}.slot-index{font-family:var(--font-display);font-weight:700;color:var(--c-ink-soft);font-size:.85rem;flex:0 0 1.2em;text-align:center}.slot-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);flex:1}.slot-hole{aspect-ratio:1 / 1;border:2px dashed var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface)}.slot-label{font-weight:700;color:var(--c-ink-soft);font-size:.85rem}.slot-empty{color:var(--c-ink-soft);font-size:.85rem;font-style:italic}.pomme-slot{display:flex;align-items:center;gap:var(--space-2);background:#fff6df;border:2px solid #f2d98a;border-radius:var(--radius);padding:var(--space-2)}.pomme-slot .slot-label{flex:1}.pomme-drop{width:64px;flex:0 0 auto}.game-actions{display:flex;gap:var(--space-3);justify-content:center}.pairs-panel .game-actions{margin-top:var(--space-1)}@media(max-width:720px){.formation-layout{display:block}.pool-area{grid-template-columns:repeat(2,1fr)}.pairs-panel{position:sticky;bottom:0;top:auto;margin-top:var(--space-3);z-index:5}.pairs-area{box-shadow:0 -8px 24px #2b25401f}.pairs-area{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;align-items:stretch}.pair-slot{flex:0 0 auto;width:128px;flex-direction:column;align-items:stretch;gap:var(--space-1)}.pomme-slot{flex:0 0 auto;width:128px;flex-direction:column;align-items:stretch;text-align:center}.pomme-drop{width:100%}.pomme-slot .slot-label{flex:0 0 auto}.pairs-panel .game-actions{flex:0 0 auto;min-width:150px;align-items:center}}@media(max-width:380px){.pool-area{grid-template-columns:1fr}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#141022d1;display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:lightbox-in .12s ease}@keyframes lightbox-in{0%{opacity:0}}.lightbox-inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);max-width:100%}.lightbox .card-face{width:min(88vw,78vh,560px);box-shadow:var(--shadow-pop);border-color:#fff}.lightbox-subject{color:#fff;font-family:var(--font-display);font-weight:600;font-size:1.2rem;text-align:center}.lightbox-close{position:absolute;top:var(--space-4);right:var(--space-4);width:44px;height:44px;border-radius:var(--radius-pill);border:none;background:#ffffffeb;font-size:1.2rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.lightbox-close:focus-visible{outline:3px solid var(--c-violet);outline-offset:2px}.zoomable-card{padding:0;border:3px solid transparent;border-radius:calc(var(--radius) + 2px);background:transparent;cursor:zoom-in;transition:transform .12s ease,box-shadow .12s ease}.zoomable-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.zoomable-card:focus-visible{outline:3px solid var(--c-violet);outline-offset:2px}.reveal-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.reveal-header h2{font-size:var(--text-2xl);margin:0}.reveal-sub{color:var(--c-ink-soft);font-size:var(--text-sm);margin:0}.reveal-stage{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.reveal-history{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);width:100%}.pair-reveal{background:var(--c-surface);border:var(--bw-hair) solid var(--c-border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.pair-reveal-hero{width:100%;max-width:520px;padding:var(--space-5);gap:var(--space-4);border-width:var(--bw);box-shadow:var(--shadow)}.pair-reveal-hero .pair-heart{font-size:2rem}.pair-reveal-hero .pair-reveal-points{font-size:var(--text-lg)}.pair-reveal-history{flex-direction:row;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);opacity:.68;transition:opacity .15s ease}.pair-reveal-history:hover{opacity:1}.pair-reveal-history .pair-reveal-cards{width:auto}.pair-reveal-history .pair-reveal-cards .zoomable-card{flex:0 0 auto}.pair-reveal-history .pair-reveal-cards .card-face{width:48px}.pair-reveal-history .pair-heart{font-size:.95rem}.pair-reveal-history .pair-reveal-makers{justify-content:flex-start}.pair-reveal.pair-reveal-history .pair-reveal-points{font-size:var(--text-caption)}.pair-reveal.is-solo,.pair-reveal.is-unanime{opacity:.9;background:var(--c-bg)}.pair-reveal.is-solo{animation:reveal-pop .4s ease-out both,deflate .6s ease-out .35s both}.pair-reveal.is-unanime{animation:reveal-pop .4s ease-out both,wobble .6s ease-in-out .35s both}.pair-reveal.is-plus{border-color:var(--c-ok);box-shadow:0 0 0 3px #4caf6d2e}.pair-reveal-cards{display:flex;align-items:center;gap:var(--space-2);width:100%}.pair-reveal-cards .zoomable-card{flex:1;min-width:0}.pair-reveal-cards .card-face{width:100%}.pair-heart{font-size:1.4rem}.pair-reveal-makers{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.makers-none{color:var(--c-ink-soft);font-style:italic}.pair-reveal-points{font-family:var(--font-display);font-weight:700}.pair-reveal-points{position:relative}.pair-reveal-points.is-plus{color:var(--c-ok);font-size:1.15rem}.pair-reveal-points.is-solo,.pair-reveal-points.is-unanime{color:var(--c-ink-soft)}.points-fly{position:absolute;left:50%;bottom:100%;transform:translate(-50%);font-family:var(--font-display);font-weight:700;color:var(--c-ok);pointer-events:none;animation:points-fly 1.1s ease-out both}@keyframes points-fly{0%{opacity:0;transform:translate(-50%,8px) scale(.6)}25%{opacity:1;transform:translate(-50%,-4px) scale(1.2)}to{opacity:0;transform:translate(-50%,-32px) scale(.9)}}.reveal-pop{animation:reveal-pop .4s ease-out both}@keyframes reveal-pop{0%{opacity:0;transform:translateY(14px) scale(.94)}60%{transform:translateY(-3px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes deflate{0%{transform:scale(1)}40%{transform:scale(1.04) rotate(-1deg)}to{transform:scale(.97)}}@keyframes wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-2.5deg)}75%{transform:rotate(2.5deg)}}.reveal-progress{position:relative;height:22px;margin:var(--space-3) auto 0;max-width:320px;background:var(--c-bg-2);border-radius:var(--radius-pill);overflow:hidden;border:2px solid var(--c-border)}.reveal-progress-bar{height:100%;background:linear-gradient(90deg,var(--c-accent),var(--c-primary));border-radius:var(--radius-pill);transition:width .45s cubic-bezier(.34,1.56,.64,1)}.reveal-progress-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:.8rem;color:var(--c-ink)}.reveal-waiting{grid-column:1 / -1;text-align:center;color:var(--c-ink-soft);font-style:italic;padding:var(--space-5) 0}.score-bump{display:inline-block;animation:score-bump .4s ease-out}@keyframes score-bump{0%{transform:scale(1)}40%{transform:scale(1.35);color:var(--c-ok)}to{transform:scale(1)}}.reveal-pommes h3{font-family:var(--font-display)}.pommes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3)}.pomme-reveal{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius);border:var(--bw-hair) solid var(--c-border);background:var(--c-surface)}.pomme-reveal.is-gold{border-color:var(--c-sun);background:#fff6df}.pomme-reveal .zoomable-card{flex:0 0 72px}.pomme-reveal .card-face{width:100%}.pomme-reveal-makers{display:flex;gap:2px;flex-wrap:wrap}.pomme-reveal-points{font-size:.85rem;font-weight:600}.score-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.score-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--c-bg);border:var(--bw-hair) solid var(--c-border)}.score-rank{font-family:var(--font-display);font-weight:var(--fw-bold);width:1.5em;color:var(--c-ink-soft)}.score-total{margin-left:auto;font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--text-lg)}.score-delta{color:var(--c-ink-soft);font-weight:600;min-width:3ch;text-align:right}.score-delta.is-plus{color:var(--c-ok)}.victory-shell{align-items:center;text-align:center;position:relative}.victory-header{position:relative;z-index:1}.victory-crown{font-size:2.6rem;animation:crown-bounce 1.6s ease-in-out infinite}@keyframes crown-bounce{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-8px) rotate(4deg)}}.victory-header h1{font-size:clamp(2rem,6vw,3rem);background:linear-gradient(90deg,var(--c-primary),var(--c-sun),var(--c-accent));-webkit-background-clip:text;background-clip:text;color:transparent}.victory-winner{font-size:1.5rem;display:flex;justify-content:center;animation:reveal-pop .5s ease-out both}.podium{display:flex;align-items:flex-end;justify-content:center;gap:var(--space-3);width:100%;position:relative;z-index:1}.podium-step{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);background:var(--c-surface);border:2px solid var(--c-border);border-radius:var(--radius);padding:var(--space-3);min-width:96px;transform-origin:bottom center;animation:podium-rise .55s cubic-bezier(.34,1.56,.64,1) both}.podium-2{animation-delay:.1s}.podium-3{animation-delay:.25s}@keyframes podium-rise{0%{opacity:0;transform:scaleY(.5) translateY(30px)}to{opacity:1;transform:scaleY(1) translateY(0)}}.podium-medal{font-size:1.8rem;animation:crown-bounce 2s ease-in-out infinite}.podium-1{padding-bottom:var(--space-6);border-color:var(--c-sun);background:#fff6df;box-shadow:var(--shadow-pop);animation-delay:.35s}.podium-1 .podium-medal{font-size:2.4rem}.podium-2{padding-bottom:var(--space-5)}.podium-score{font-family:var(--font-display);font-weight:700;font-size:1.2rem}.podium-plinth{font-family:var(--font-display);font-weight:700;color:var(--c-ink-soft);background:var(--c-bg-2);border-radius:var(--radius-sm);padding:2px 10px;font-size:.9rem}.score-row.is-winner{border:var(--bw) solid var(--c-sun);background:#fff6df}.victory-shell .panel{max-width:480px;position:relative;z-index:1}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.confetti-piece{position:absolute;top:-16px;width:9px;height:14px;opacity:.9;animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:infinite}.confetti-piece.is-round{border-radius:50%}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translate(var(--drift, 0),105vh) rotate(540deg);opacity:.8}}@media(prefers-reduced-motion:reduce){.confetti,.points-fly{display:none}.reveal-pop,.victory-winner,.podium-step,.crown-bounce,.victory-crown,.podium-medal,.score-bump,.pair-reveal.is-solo,.pair-reveal.is-unanime{animation:none}}
