*,*:before,*:after{box-sizing:border-box}*{margin:0}html{interpolate-size:allow-keywords}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}#root,#app{isolation:isolate}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;color-scheme:light dark;--color-cherry: #e8433a;--color-marigold: #f5a623;--color-tangerine: #f2782f;--color-butter: #ffd447;--color-cream: #fff8e9;--color-ink: #1a1414;--color-surface: var(--color-cream);--color-text: var(--color-ink);--color-panel: #ffffff;--color-border: rgba(26, 20, 20, .1);--font-display: ui-rounded, "SF Pro Rounded", system-ui, -apple-system, sans-serif;--radius-pill: 999px;--radius-lg: 28px;--shadow-soft: 0 10px 24px rgba(26, 20, 20, .12)}@media(prefers-color-scheme:dark){:root{--color-surface: #1f1512;--color-text: #fff8e9;--color-panel: #2a1e19;--color-border: rgba(255, 248, 233, .14);--shadow-soft: 0 10px 24px rgba(0, 0, 0, .4)}}body{min-height:100dvh;background:var(--color-surface);color:var(--color-text)}.page{max-width:80ch;margin-inline:auto;padding:2rem}.button{font-family:var(--font-display);font-weight:800;font-size:1rem;border:none;border-radius:var(--radius-pill);padding:.75rem 1.5rem;cursor:pointer;box-shadow:var(--shadow-soft);transition:transform .15s ease,box-shadow .15s ease}.button:hover:not(:disabled){transform:translateY(-2px)}.button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.button--primary{background:var(--color-cherry);color:var(--color-cream)}.button--secondary{background:var(--color-butter);color:var(--color-ink)}.button--pill{background:var(--color-panel);color:var(--color-text);border:2px solid var(--color-border);box-shadow:none;padding:.5rem 1.1rem;font-size:.9rem}.button--ghost{background:transparent;color:var(--color-text);border:2px solid var(--color-border);box-shadow:none}.sign-in{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:2rem}.sign-in__card{width:min(420px,100%);background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:2.5rem 2rem;text-align:center}.sign-in__clapper{font-size:3rem;display:block}.sign-in__title{font-family:var(--font-display);font-weight:900;font-size:2.5rem;color:var(--color-cherry);margin-block:.5rem .25rem}.sign-in__subtitle{margin-bottom:1.5rem;opacity:.8}.sign-in__form{display:flex;flex-direction:column;gap:.75rem;text-align:left}.sign-in__label{font-weight:700}.sign-in__input,.suggestion-form__input{font:inherit;padding:.75rem 1rem;border-radius:var(--radius-pill);border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.dashboard{max-width:960px;margin-inline:auto;padding:2rem 1.5rem 4rem;display:flex;flex-direction:column;gap:1.5rem}.dashboard__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.dashboard__title{font-family:var(--font-display);font-weight:900;font-size:2rem;color:var(--color-cherry);margin:0}.dashboard__greeting{margin:0;opacity:.75}.sync-banner{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;padding:.4rem .9rem;border-radius:var(--radius-pill);font-size:.85rem;font-weight:700}.sync-banner--connecting{background:#f5a6232e;color:var(--color-tangerine)}.sync-banner--error{background:#e8433a26;color:var(--color-cherry)}.dashboard__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}.dashboard__panel{background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:1.75rem;display:flex;flex-direction:column;gap:1rem}.dashboard__panel h2{font-family:var(--font-display);font-weight:800;margin:0}.suggestion-form{display:flex;flex-direction:column;gap:.5rem}.suggestion-form__label{font-weight:700}.suggestion-form__row{display:flex;gap:.5rem;flex-wrap:wrap}.suggestion-form__input{flex:1;min-width:0}.suggestion-form__error{color:var(--color-cherry);font-weight:700;margin:0}.suggestion-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.suggestion-list__empty{opacity:.7;font-style:italic}.suggestion-list__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--color-surface);border-radius:var(--radius-lg);padding:.75rem 1.1rem}.suggestion-list__title{font-weight:800;margin:0}.suggestion-list__meta{margin:0;font-size:.85rem;opacity:.7}.suggestion-list__remove{border:none;background:transparent;color:var(--color-cherry);font-weight:900;font-size:1.1rem;cursor:pointer;border-radius:var(--radius-pill);padding:.25rem .6rem}.suggestion-list__remove:hover{background:var(--color-border)}.countdown{align-self:flex-start;background:var(--color-butter);color:var(--color-ink);font-family:var(--font-display);font-weight:800;border-radius:var(--radius-pill);padding:.6rem 1.25rem;box-shadow:var(--shadow-soft)}.countdown--done{background:var(--color-cherry);color:var(--color-cream);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.winner-banner{position:relative;overflow:hidden;text-align:center;background:linear-gradient(135deg,var(--color-cherry),var(--color-tangerine));color:var(--color-cream);border-radius:var(--radius-lg);padding:2rem 1.5rem;box-shadow:var(--shadow-soft)}.winner-banner--celebrate{animation:winnerPop .55s cubic-bezier(.34,1.56,.64,1) both}.winner-banner__eyebrow{margin:0;font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:.85rem}.winner-banner__title{font-family:var(--font-display);font-weight:900;font-size:2.25rem;margin:.25rem 0;animation:winnerTitleBounce .6s ease .2s both}.winner-banner__meta{margin:0;opacity:.9}@keyframes winnerPop{0%{transform:scale(.85);opacity:0}60%{transform:scale(1.04);opacity:1}to{transform:scale(1)}}@keyframes winnerTitleBounce{0%{transform:translateY(10px) scale(.9);opacity:0}60%{transform:translateY(-4px) scale(1.05);opacity:1}to{transform:translateY(0) scale(1)}}.confetti{position:absolute;inset:0;pointer-events:none}.confetti__piece{position:absolute;top:-12px;width:8px;height:14px;border-radius:2px;opacity:0;animation:confettiFall 1.6s ease-in both}.confetti__piece:nth-child(4n+1){background:var(--color-butter)}.confetti__piece:nth-child(4n+2){background:var(--color-cream)}.confetti__piece:nth-child(4n+3){background:var(--color-marigold)}.confetti__piece:nth-child(4n){background:var(--color-ink)}.confetti__piece:nth-child(1){left:4%;animation-delay:0s}.confetti__piece:nth-child(2){left:12%;animation-delay:.12s}.confetti__piece:nth-child(3){left:20%;animation-delay:.04s}.confetti__piece:nth-child(4){left:30%;animation-delay:.18s}.confetti__piece:nth-child(5){left:40%;animation-delay:.08s}.confetti__piece:nth-child(6){left:50%;animation-delay:.22s}.confetti__piece:nth-child(7){left:58%;animation-delay:.02s}.confetti__piece:nth-child(8){left:66%;animation-delay:.16s}.confetti__piece:nth-child(9){left:74%;animation-delay:.1s}.confetti__piece:nth-child(10){left:82%;animation-delay:.2s}.confetti__piece:nth-child(11){left:90%;animation-delay:.06s}.confetti__piece:nth-child(12){left:96%;animation-delay:.14s}.confetti__piece:nth-child(odd){animation-name:confettiFall}.confetti__piece:nth-child(2n){animation-name:confettiFallReverse}@keyframes confettiFall{0%{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translateY(150px) rotate(340deg);opacity:0}}@keyframes confettiFallReverse{0%{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translateY(150px) rotate(-340deg);opacity:0}}@media(prefers-reduced-motion:reduce){.winner-banner--celebrate,.winner-banner__title,.confetti__piece{animation:none}}.host-panel{display:flex;flex-direction:column;gap:1.25rem}.host-panel--empty,.host-panel--info{align-items:flex-start}.host-panel__header{display:flex;align-items:center;justify-content:space-between}.host-panel__header h2{font-size:1.1rem}.host-panel__timer p{margin:0 0 .5rem;font-size:.9rem;opacity:.8}.host-panel__timer-options{display:flex;flex-wrap:wrap;gap:.5rem}.host-panel__next-round{display:flex;flex-direction:column;gap:.75rem}.host-panel__next-round p{margin:0;font-size:.9rem;opacity:.8}.host-panel__next-round-actions{display:flex;flex-wrap:wrap;gap:.75rem}.wheel-wrap{position:relative;width:min(280px,100%);aspect-ratio:1;margin-inline:auto;display:flex;align-items:center;justify-content:center}.wheel-pointer{position:absolute;top:-4px;left:50%;translate:-50% 0;width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:22px solid var(--color-ink);z-index:2;transform-origin:50% 0%}.wheel-pointer--active{animation:pointerWiggle .25s ease-in-out infinite}@keyframes pointerWiggle{0%,to{rotate:-8deg}50%{rotate:8deg}}.wheel-wrap--spinning{animation:wheelWrapGlow .7s ease-in-out infinite}@keyframes wheelWrapGlow{0%,to{filter:drop-shadow(0 0 0 rgba(232,67,58,0))}50%{filter:drop-shadow(0 0 20px rgba(245,166,35,.55))}}.wheel{position:absolute;inset:0;border-radius:50%;border:6px solid var(--color-ink);transition-property:transform;transition-timing-function:cubic-bezier(.22,1.6,.36,1);box-shadow:var(--shadow-soft)}.wheel--spinning{box-shadow:0 0 0 6px #ffd44766,var(--shadow-soft)}.wheel__label{position:absolute;inset:0}.wheel__label span{position:absolute;top:8%;left:50%;transform:translate(-50%) rotate(90deg);font-weight:800;font-size:.7rem;color:var(--color-ink);white-space:nowrap;max-width:90px;overflow:hidden;text-overflow:ellipsis}.wheel__hub{position:relative;z-index:1;width:64px;height:64px;border-radius:50%;border:4px solid var(--color-ink);background:var(--color-cream);color:var(--color-cherry);font-family:var(--font-display);font-weight:900;cursor:pointer;box-shadow:var(--shadow-soft)}.wheel__hub:disabled{cursor:not-allowed;opacity:.6}.wheel__hub--spinning{font-size:1.5rem;animation:hubSpin .5s linear infinite}@keyframes hubSpin{0%{rotate:0deg}to{rotate:360deg}}@media(prefers-reduced-motion:reduce){.wheel-pointer--active,.wheel-wrap--spinning,.wheel__hub--spinning{animation:none}}.wheel-wrap__hint{position:absolute;bottom:-2rem;left:0;right:0;text-align:center;font-size:.85rem;opacity:.7}
