*,:before,:after{box-sizing:border-box}:root{--ink:#1c1820;--muted:#5e5563;--bg:#fff4ea;--bg-glow:#ffc48a;--bg-deep:#ffe0c2;--surface:#fffaf5;--line:#e8d2c0;--hit:#d6452e;--hit-text:#fffaf5;--hit-press:#b53622;--focus:#2a6f6b;--font-display:"Baloo 2", system-ui, sans-serif;--font-ui:"Nunito", system-ui, sans-serif;--fs-xs:.75rem;--fs-sm:.9rem;--fs-md:1rem;--fs-lg:1.15rem;--fs-xl:1.85rem;--fs-2xl:2.35rem;--fs-countdown:5.5rem;--radius-control:.9rem;--radius-chip:1rem;--radius-panel:1.25rem;--avatar-radius:50%;--page-max:28rem;--page-pad:1.25rem;--stack-gap:.95rem;--brand-mark-size:2.75rem;--avatar-size:2.5rem;--avatar-size-sm:1.85rem;--avatar-size-lg:5.5rem;--ease-pop:cubic-bezier(.22, 1.2, .36, 1);--ease-soft:cubic-bezier(.22, 1, .36, 1);--dur-fast:.14s;--dur-reveal:.42s;font-family:var(--font-ui);color:var(--ink);background-color:var(--bg);background-image:radial-gradient(120% 80% at 10% -10%, var(--bg-glow) 0%, transparent 55%), radial-gradient(90% 70% at 100% 0%, color-mix(in srgb, var(--bg-deep) 80%, white) 0%, transparent 50%), linear-gradient(180deg, var(--bg) 0%, var(--bg-deep) 100%);background-attachment:fixed;font-weight:600;line-height:1.4}body{min-height:100svh;margin:0}#root{min-height:100svh}button,input{font:inherit}.page{max-width:var(--page-max);padding:var(--page-pad) 1rem 3rem;gap:var(--stack-gap);flex-direction:column;margin:0 auto;display:flex}.page.stage-countdown{justify-content:center;min-height:100svh}.brand{flex-direction:column;align-items:flex-start;gap:.65rem;display:flex}.brand-mark{width:var(--brand-mark-size);height:var(--brand-mark-size);border-radius:calc(var(--radius-chip) - .15rem);background:var(--hit);color:var(--hit-text);box-shadow:0 .35rem 0 color-mix(in srgb, var(--hit) 55%, var(--ink));flex-shrink:0;place-items:center;display:grid;overflow:hidden}.brand-mark img{object-fit:cover;width:100%;height:100%;display:block}.brand-mark:after{content:"?";font-family:var(--font-display);font-size:1.55rem;font-weight:800;line-height:1}.brand-mark:has(img):after{content:none}.brand-title,h1{font-family:var(--font-display);font-size:var(--fs-xl);letter-spacing:-.01em;margin:0;font-weight:800;line-height:1.1}.lede{color:var(--muted);font-size:var(--fs-md);margin:0;font-weight:600}.muted{color:var(--muted);font-size:var(--fs-sm);font-weight:600}.top{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.group-name{background:var(--surface);border:2px solid var(--line);cursor:pointer;color:var(--ink);transition:transform var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft);border-radius:999px;padding:.4rem .95rem;font-weight:800}.group-name:hover{border-color:color-mix(in srgb, var(--hit) 45%, var(--line))}.group-name:active{transform:translateY(1px)}.field{font-size:var(--fs-sm);color:var(--muted);flex-direction:column;gap:.35rem;display:flex}.field input{border:2px solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);padding:.85rem .9rem;font-weight:700}.field input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--focus)}.hit,.ghost,.tiny,.group-row{cursor:pointer}.hit{background:var(--hit);color:var(--hit-text);border-radius:var(--radius-control);font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);letter-spacing:.01em;box-shadow:0 .4rem 0 color-mix(in srgb, var(--hit) 55%, var(--ink));transition:transform var(--dur-fast) var(--ease-soft), box-shadow var(--dur-fast) var(--ease-soft), background-color var(--dur-fast) var(--ease-soft);border:0;padding:1.15rem 1rem}.hit:hover:not(:disabled){background:color-mix(in srgb, var(--hit) 92%, white)}.hit:active:not(:disabled){box-shadow:0 .15rem 0 color-mix(in srgb, var(--hit) 55%, var(--ink));background:var(--hit-press);transform:translateY(.2rem)}.hit:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.hit:focus-visible,.ghost:focus-visible,.group-row:focus-visible,.chip:focus-visible,.chip-photo:focus-visible,.chip-add-label:focus-visible,.group-name:focus-visible,.tiny:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ghost{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius-control);color:var(--ink);transition:transform var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft);padding:.75rem 1rem;font-weight:800}.ghost:hover{border-color:color-mix(in srgb, var(--ink) 18%, var(--line))}.ghost:active{transform:translateY(1px)}.tiny{color:var(--muted);font-size:var(--fs-xs);background:0 0;border:0;padding:.2rem .35rem;font-weight:700}.tiny:hover{color:var(--ink)}.row{flex-wrap:wrap;gap:.5rem;display:flex}.chips{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.chips>*{min-width:0}.chip-wrap{flex-direction:column;align-items:stretch;gap:.2rem;display:flex}.avatar{width:var(--avatar-size);height:var(--avatar-size);border-radius:var(--avatar-radius);background:var(--chip,#888);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--ink) 8%, transparent);flex-shrink:0;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.avatar-sm{width:var(--avatar-size-sm);height:var(--avatar-size-sm)}.avatar-lg{width:var(--avatar-size-lg);height:var(--avatar-size-lg);box-shadow:inset 0 0 0 3px #ffffff8c, 0 .45rem 0 color-mix(in srgb, var(--chip,#888) 45%, var(--ink))}.chip,.chip.add{border-radius:var(--radius-chip);border:2px solid var(--line);background:var(--surface);text-align:left;min-height:4.6rem;color:var(--ink);transition:transform var(--dur-fast) var(--ease-soft), opacity var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft);flex-wrap:wrap;align-items:center;gap:.55rem .65rem;padding:.85rem .8rem;font-weight:800;display:flex}.chip:hover{border-color:color-mix(in srgb, var(--chip,var(--line)) 40%, var(--line))}.chip:active{transform:translateY(1px)}.chip.out{opacity:.42}.chip.add{color:var(--muted);cursor:default;border-style:dashed;flex-wrap:nowrap;justify-content:flex-start;min-height:4.6rem}.chip.add:focus-within{border-style:solid;border-color:var(--focus)}.chip-photo{width:var(--avatar-size);height:var(--avatar-size);border-radius:var(--avatar-radius);border:2px dashed color-mix(in srgb, var(--muted) 55%, var(--line));background:color-mix(in srgb, var(--bg) 65%, white);color:var(--muted);cursor:pointer;transition:color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft);flex-shrink:0;place-items:center;padding:0;display:grid;overflow:hidden}.chip-photo:hover{color:var(--ink);border-color:var(--focus)}.chip-photo.has-image{border-style:solid;border-color:color-mix(in srgb, var(--ink) 12%, transparent)}.chip-photo img{object-fit:cover;width:100%;height:100%;display:block}.photo-icon{width:1.35rem;height:1.35rem;display:block}.chip-add-label,.chip-add-input{text-align:left;min-width:0;font:inherit;color:var(--muted);background:0 0;border:0;flex:auto;margin:0;padding:.35rem 0;font-weight:800}.chip-add-label{cursor:pointer;align-self:stretch;align-items:center;display:flex}.chip-add-input{width:100%;color:var(--ink);border-radius:0}.chip-add-input::placeholder{color:var(--muted);font-weight:800}.chip-add-input:focus{outline:none}.chip-name{min-width:0;font-size:var(--fs-md);flex:auto;line-height:1.15}.chip-state{width:100%;font-size:var(--fs-xs);color:var(--muted);padding-left:calc(var(--avatar-size) + .65rem);font-weight:700}.winner{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius-panel);text-align:center;box-shadow:0 .9rem 0 color-mix(in srgb, var(--line) 70%, var(--ink));animation:reveal-in var(--dur-reveal) var(--ease-pop) both;flex-direction:column;align-items:center;gap:.55rem;padding:2rem 1.1rem 1.75rem;display:flex}.winner-name{font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:-.02em;margin:0;font-weight:800;line-height:1.05}.winner-label{color:var(--muted);font-weight:800;font-size:var(--fs-md);margin:0}.countdown{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.65rem;min-height:14rem;display:flex}.countdown-number{font-family:var(--font-display);font-size:var(--fs-countdown);color:var(--hit);font-variant-numeric:tabular-nums;animation:countdown-pulse 1s var(--ease-pop) infinite;text-shadow:0 .35rem 0 color-mix(in srgb, var(--hit) 30%, transparent);margin:0;font-weight:800;line-height:1}.group-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.group-list li{align-items:stretch;gap:.35rem;display:flex}.group-actions{flex-shrink:0;align-items:center;display:flex}.group-row{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius-chip);text-align:left;color:var(--ink);transition:transform var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft);flex:1;justify-content:space-between;gap:.5rem;padding:.95rem 1rem;font-weight:800;display:flex}.group-row:hover{border-color:color-mix(in srgb, var(--hit) 35%, var(--line))}.group-row:active{transform:translateY(1px)}.group-row.current{border-color:var(--hit);box-shadow:0 0 0 2px color-mix(in srgb, var(--hit) 25%, transparent)}.remaining,.order{flex-direction:column;gap:.5rem;display:flex}.remaining-list,.order-list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.remaining-item,.order-item{border:2px solid var(--line);border-radius:var(--radius-chip);background:var(--surface);align-items:center;gap:.65rem;padding:.65rem .8rem;font-weight:800;display:flex}.order-rank{min-width:1.5rem;font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--muted);font-weight:800}.order-final .order-item{padding:.75rem .9rem}.order-final .order-rank{color:var(--hit)}.toast-host{z-index:50;pointer-events:none;padding-left:max(.75rem, env(safe-area-inset-left));padding-right:max(.75rem, env(safe-area-inset-right));font-family:var(--font-ui);justify-content:center;display:flex;position:fixed;inset-inline:0}.toast-host[data-style=android]{padding-bottom:max(1rem, env(safe-area-inset-bottom));bottom:0}.toast-host[data-style=ios]{padding-top:max(.75rem, env(safe-area-inset-top));top:0}.toast{pointer-events:auto;max-width:min(22rem,100%);animation:toast-in .18s var(--ease-soft);align-items:center;gap:.75rem;display:flex}.toast-message{flex:auto;margin:0;font-weight:700}.toast-action{cursor:pointer;font:inherit;background:0 0;border:0;flex:none;padding:.2rem .15rem;font-weight:800}.toast[data-style=android]{border-radius:calc(var(--radius-control) - .35rem);color:#fff;background:#323232;width:min(22rem,100%);padding:.85rem 1rem;box-shadow:0 2px 8px #00000047}.toast[data-style=android] .toast-action{color:#a5d6a7;text-transform:uppercase;letter-spacing:.02em;font-size:.85rem}.toast[data-style=ios]{border-radius:var(--radius-control);color:#fff;-webkit-backdrop-filter:blur(12px);background:#3c3c43eb;padding:.7rem 1rem;box-shadow:0 8px 28px #00000038}.toast[data-style=ios] .toast-message{text-align:center;font-size:.92rem}.toast[data-style=ios] .toast-action{color:#7dd3fc;font-size:.92rem}@keyframes toast-in{0%{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:translateY(0)}}.toast-host[data-style=ios] .toast{animation-name:toast-in-ios}@keyframes toast-in-ios{0%{opacity:0;transform:translateY(-.4rem)}to{opacity:1;transform:translateY(0)}}@keyframes countdown-pulse{0%{transform:scale(1)}35%{transform:scale(1.08)}to{transform:scale(1)}}.glitter{z-index:30;pointer-events:none;position:fixed;inset:0;overflow:hidden}.glitter-piece{width:var(--size);height:var(--size);border-radius:var(--radius);background:var(--color);box-shadow:0 0 .35rem var(--color);opacity:0;animation:glitter-burst var(--dur) var(--ease-soft) var(--delay) both;margin:0;position:absolute;top:38%;left:50%}@keyframes glitter-burst{0%{opacity:1;transform:translate(-50%,-50%)scale(.2)rotate(0)}18%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1) rotate(var(--rot))}}@keyframes reveal-in{0%{opacity:0;transform:translateY(.7rem)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.hit,.ghost,.group-row,.chip,.chip-photo,.group-name,.countdown-number,.winner,.glitter-piece,.toast{transition:none!important;animation:none!important}}
