:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-card:#ffffff08;--bg-glass:#ffffff0d;--border-glass:#ffffff1a;--text-primary:#fff;--text-secondary:#ffffffb3;--text-muted:#fff6;--accent-primary:#ff4d6d;--accent-secondary:#c9184a;--accent-glow:#ff4d6d4d;--gradient-festive:linear-gradient(135deg,#ff4d6d 0%,#ff8e53 50%,#ffd93d 100%);--gradient-card:linear-gradient(135deg,#ff4d6d1a 0%,#ff8e530d 100%);--gradient-glass:linear-gradient(135deg,#ffffff14 0%,#ffffff05 100%);--shadow-glow:0 0 40px #ff4d6d26;--shadow-card:0 8px 32px #0006;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--transition-fast:.15s ease;--transition-medium:.3s ease;--transition-slow:.5s ease}[data-theme=light]{--bg-primary:#f5f5f7;--bg-secondary:#fff;--bg-card:#00000005;--bg-glass:#ffffffb3;--border-glass:#0000001a;--text-primary:#1a1a2e;--text-secondary:#1a1a2eb3;--text-muted:#1a1a2e66;--shadow-glow:0 0 40px #ff4d6d33;--shadow-card:0 8px 32px #0000001a;--gradient-glass:linear-gradient(135deg,#ffffffe6 0%,#fff9 100%)}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(80% 50% at 20% 20%,#ff4d6d14 0%,#0000 50%),radial-gradient(60% 40% at 80% 80%,#ff8e530f 0%,#0000 50%),radial-gradient(50% 50%,#ffd93d0a 0%,#0000 50%);position:fixed;inset:0}#root{flex-direction:column;min-height:100vh;display:flex}.container{width:100%;max-width:480px;margin:0 auto;padding:24px}.container-wide{max-width:640px}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;font-weight:700;line-height:1.2}h1{font-size:2.5rem}h2{font-size:1.75rem}h3{font-size:1.25rem}.gradient-text{background:var(--gradient-festive);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass-card{background:var(--gradient-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-glass);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:28px}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-medium);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:14px 28px;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--gradient-festive);color:#fff;box-shadow:0 4px 20px var(--accent-glow)}.btn-primary:hover{box-shadow:0 8px 30px var(--accent-glow);transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-glass);color:var(--text-primary);border:1px solid var(--border-glass)}.btn-secondary:hover{background:var(--bg-card);border-color:var(--accent-primary)}.btn-ghost{color:var(--text-secondary);background:0 0;padding:8px 16px}.btn-ghost:hover{color:var(--text-primary)}.btn-lg{border-radius:var(--radius-lg);padding:18px 36px;font-size:1.125rem}.btn-full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.form-group{margin-bottom:20px}.form-label{color:var(--text-secondary);margin-bottom:8px;font-size:.875rem;font-weight:500;display:block}.form-input{width:100%;color:var(--text-primary);background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none;padding:14px 18px;font-size:1rem}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.form-helper{color:var(--text-muted);margin-top:6px;font-size:.75rem}.pin-input{justify-content:center;gap:12px;display:flex}.pin-digit{text-align:center;background:var(--bg-glass);border:2px solid var(--border-glass);border-radius:var(--radius-md);width:56px;height:64px;color:var(--text-primary);transition:all var(--transition-fast);outline:none;font-size:1.5rem;font-weight:700}.pin-digit:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.badge{background:var(--gradient-festive);color:#fff;border-radius:100px;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.participant-list{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.participant-chip{background:var(--bg-glass);border:1px solid var(--border-glass);color:var(--text-primary);border-radius:100px;align-items:center;gap:6px;padding:8px 14px;font-size:.875rem;display:inline-flex}.participant-chip.creator{border-color:var(--accent-primary);background:#ff4d6d1a}.header{justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.header-actions{align-items:center;gap:8px;display:flex}.logo{font-size:1.5rem;font-weight:800;text-decoration:none}.lang-switcher{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);display:flex;overflow:hidden}.lang-btn{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:8px 12px;font-size:.875rem;font-weight:500}.lang-btn.active{background:var(--accent-primary);color:#fff}.lang-btn:hover:not(.active){color:var(--text-primary)}.theme-toggle{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.theme-toggle:hover{color:var(--text-primary);border-color:var(--accent-primary)}.invite-box{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-md);align-items:center;gap:12px;margin-top:16px;padding:14px;display:flex}.invite-box input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:monospace;font-size:.875rem}.alert{border-radius:var(--radius-md);align-items:center;gap:10px;margin-bottom:20px;padding:14px 18px;font-size:.875rem;display:flex}.alert-error{color:#fca5a5;background:#ef44441a;border:1px solid #ef44444d}.alert-success{color:#86efac;background:#22c55e1a;border:1px solid #22c55e4d}.result-card{text-align:center;padding:48px 32px}.result-name{margin:24px 0 16px;font-size:2.5rem;font-weight:800}.countdown{background:var(--gradient-festive);color:#fff;text-shadow:0 4px 20px #0000004d;border-radius:50%;justify-content:center;align-items:center;width:200px;height:200px;margin:48px auto;font-size:6rem;font-weight:900;display:flex}.shuffle-container{flex-direction:column;align-items:center;gap:24px;padding:48px 24px;display:flex}.shuffle-names{flex-wrap:wrap;justify-content:center;gap:12px;max-width:400px;display:flex}.shuffle-name{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:10px 18px;font-weight:500;transition:all .15s}.hero{text-align:center;padding:48px 24px 32px}.hero-icon{margin-bottom:20px;font-size:4rem}.hero h1{margin-bottom:12px}.hero p{color:var(--text-secondary);max-width:320px;margin:0 auto}.action-buttons{flex-direction:column;gap:16px;margin-top:32px;display:flex}.divider{color:var(--text-muted);align-items:center;gap:16px;margin:24px 0;font-size:.875rem;display:flex}.divider:before,.divider:after{content:"";background:var(--border-glass);flex:1;height:1px}.spinner{border:3px solid var(--border-glass);border-top-color:var(--accent-primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{opacity:1;transition:all .4s;transform:translateY(0)}@media (max-width:480px){h1{font-size:2rem}h2{font-size:1.5rem}.container{padding:16px}.glass-card{padding:20px}.countdown{width:160px;height:160px;font-size:4.5rem}.result-name{font-size:2rem}.pin-digit{width:48px;height:56px;font-size:1.25rem}}.snowflakes{pointer-events:none;z-index:100;position:fixed;inset:0;overflow:hidden}.snowflake{color:#fff;opacity:.7;font-size:1rem;animation:linear infinite fall;position:absolute;top:-20px}@keyframes fall{to{transform:translateY(100vh)rotate(360deg)}}@keyframes reveal{0%{filter:blur(20px);opacity:0;transform:scale(.8)}to{filter:blur();opacity:1;transform:scale(1)}}.reveal{animation:.6s forwards reveal}@keyframes glow-pulse{0%,to{box-shadow:0 0 20px var(--accent-glow)}50%{box-shadow:0 0 40px var(--accent-glow),0 0 60px var(--accent-glow)}}.glow-pulse{animation:2s ease-in-out infinite glow-pulse}
