@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{color-scheme:light;--ink: #10212a;--ink-soft: #2a3a44;--cream: #f7f3ee;--mint: #dff4f1;--sea: #1aa6b7;--sun: #ff7a59;--card: rgba(255, 255, 255, .88);--stroke: rgba(16, 33, 42, .08);--shadow: 0 30px 80px rgba(16, 33, 42, .18)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Space Grotesk,system-ui,-apple-system,sans-serif;color:var(--ink);background:radial-gradient(circle at top right,#fff2e6 0%,transparent 55%),radial-gradient(circle at 10% 20%,#d6f5f4 0%,transparent 50%),linear-gradient(135deg,#fdf8f3,#e8f7f5)}#root{min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:40px 24px 64px;display:flex;flex-direction:column;gap:32px}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:var(--ink-soft);margin:0 0 8px}.hero h1{font-family:Fraunces,serif;font-size:clamp(2.4rem,4vw,3.6rem);margin:0 0 10px}.subtitle{margin:0;color:var(--ink-soft);max-width:520px;line-height:1.5}.hero-badge{background:linear-gradient(135deg,var(--sea),#57c6b7);color:#fff;padding:12px 20px;border-radius:999px;font-weight:600;box-shadow:0 12px 30px #1aa6b759}.content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:32px}.panel,.wheel-panel{background:var(--card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:28px;padding:28px;border:1px solid var(--stroke);box-shadow:var(--shadow)}.panel h2,.wheel-panel h2{margin:0 0 16px}.input-row{display:flex;gap:12px;margin-bottom:18px}input,textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid rgba(16,33,42,.16);font:inherit;background:#fff}textarea{resize:vertical}.btn{border:none;border-radius:999px;padding:12px 18px;font-weight:600;color:#fff;background:linear-gradient(140deg,var(--sun),#ffb45b);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 8px 20px #ff7a594d}.btn:hover:not(:disabled){transform:translateY(-1px) scale(1.01)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.ghost{background:#fff;color:var(--ink);border:1px solid rgba(16,33,42,.15);box-shadow:none}.bulk{display:grid;gap:10px;margin-bottom:20px}.bulk label{font-weight:600}.list{background:#ffffffb3;border-radius:18px;padding:16px;border:1px dashed rgba(16,33,42,.16)}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;color:var(--ink-soft)}.list ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.list li{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:10px 14px;border-radius:12px;border:1px solid rgba(16,33,42,.08)}.list li button{border:none;background:transparent;color:var(--sun);font-weight:600;cursor:pointer}.empty{margin:0;color:var(--ink-soft)}.wheel-panel{display:flex;flex-direction:column;gap:18px}.wheel-header p{margin:4px 0 0;color:var(--ink-soft)}.wheel-stage{display:flex;flex-direction:column;align-items:center;gap:16px}.pointer{width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:24px solid var(--ink);filter:drop-shadow(0 6px 8px rgba(16,33,42,.2))}.wheel{position:relative;width:min(380px,80vw);aspect-ratio:1;border-radius:50%;border:none;box-shadow:none;transition:transform 3s cubic-bezier(.15,.85,.1,1);display:grid;place-items:center;cursor:pointer;background:transparent}.wheel.spinning{filter:drop-shadow(0 0 18px rgba(26,166,183,.4))}.wheel:after{content:none}.wheel-svg{width:100%;height:100%;border-radius:50%;display:block}.btn.spin{padding:14px 30px;font-size:1rem}.winner{min-height:120px;display:grid;place-items:center}.winner-card{background:#fff;border-radius:20px;padding:18px 28px;border:1px solid rgba(16,33,42,.12);text-align:center;box-shadow:0 12px 30px #10212a26;animation:winnerPop .6s ease}.winner-card p{margin:0 0 6px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}.winner-card h3{margin:0;font-size:1.6rem}.winner-placeholder{color:var(--ink-soft)}.winner.show .winner-card{animation:winnerPop .6s ease,glow 1.2s ease}@keyframes winnerPop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}@keyframes glow{0%{box-shadow:0 0 #ff7a5900}50%{box-shadow:0 0 30px #ff7a5973}to{box-shadow:0 0 #ff7a5900}}@media (max-width: 980px){.content{grid-template-columns:1fr}.hero{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion: reduce){.winner-card{animation:none}}
