:root{--bg-base:#050714;--bg-surface:#0b0d1f;--bg-elevated:#111429;--bg-glass:#111429a6;--violet:#7c3aed;--violet-light:#9d5ff5;--violet-glow:#7c3aed59;--cyan:#06b6d4;--cyan-light:#22d3ee;--cyan-glow:#06b6d44d;--pink:#ec4899;--pink-glow:#ec489940;--text-primary:#f0f1ff;--text-secondary:#8b8fa8;--text-muted:#4b4f6e;--border:#7c3aed2e;--border-bright:#7c3aed73;--success:#10b981;--warning:#f59e0b;--error:#ef4444;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-xl:32px;--radius-full:9999px;--font-display:"Outfit", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"JetBrains Mono", monospace;--shadow-violet:0 0 40px #7c3aed40, 0 0 80px #7c3aed1a;--shadow-cyan:0 0 40px #06b6d433, 0 0 80px #06b6d414;--shadow-card:0 4px 24px #00000073;--shadow-glow:0 0 0 1px var(--border), 0 4px 32px #00000080;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background-color:var(--bg-base);color:var(--text-primary);font-family:var(--font-body);min-height:100vh;line-height:1.6;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--violet);border-radius:var(--radius-full)}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.page{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem 1.5rem;display:flex;position:relative;overflow:hidden}.container{width:100%;max-width:960px;margin:0 auto}.glass-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);transition:border-color .3s var(--ease-smooth), box-shadow .3s var(--ease-smooth);padding:2.5rem}.glass-card:hover{border-color:var(--border-bright);box-shadow:var(--shadow-violet)}.btn{border-radius:var(--radius-full);font-family:var(--font-display);cursor:pointer;transition:all .25s var(--ease-smooth);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.6rem;padding:.85rem 2rem;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";opacity:0;background:#ffffff14;transition:opacity .2s;position:absolute;inset:0}.btn:hover:before{opacity:1}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--violet) 0%, var(--violet-light) 100%);color:#fff;box-shadow:0 4px 20px var(--violet-glow)}.btn-primary:hover{box-shadow:0 6px 30px var(--violet-glow), 0 0 0 1px #7c3aed66;transform:translateY(-2px)}.btn-secondary{background:linear-gradient(135deg, var(--cyan) 0%, #0891b2 100%);color:#fff;box-shadow:0 4px 20px var(--cyan-glow)}.btn-secondary:hover{box-shadow:0 6px 30px var(--cyan-glow), 0 0 0 1px #06b6d466;transform:translateY(-2px)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover{border-color:var(--border-bright);color:var(--text-primary);background:#7c3aed14}.btn-danger{color:#fff;background:linear-gradient(135deg,#dc2626 0%,#ef4444 100%);box-shadow:0 4px 20px #ef44444d}.btn-danger:hover{transform:translateY(-2px);box-shadow:0 6px 30px #ef444466}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.btn-lg{padding:1.1rem 2.6rem;font-size:1.1rem}.btn-sm{padding:.5rem 1.2rem;font-size:.875rem}.bg-animated{z-index:-1;background:var(--bg-base);position:fixed;inset:0;overflow:hidden}.bg-orb{filter:blur(80px);pointer-events:none;border-radius:50%;animation:8s ease-in-out infinite float-orb;position:absolute}.bg-orb-1{background:radial-gradient(circle,#7c3aed2e 0%,#0000 70%);width:500px;height:500px;animation-delay:0s;top:-15%;left:-10%}.bg-orb-2{background:radial-gradient(circle,#06b6d424 0%,#0000 70%);width:400px;height:400px;animation-delay:-3s;bottom:-10%;right:-10%}.bg-orb-3{background:radial-gradient(circle,#ec48991a 0%,#0000 70%);width:300px;height:300px;animation-delay:-6s;top:40%;left:55%}.bg-grid{background-image:linear-gradient(#7c3aed0a 1px,#0000 1px),linear-gradient(90deg,#7c3aed0a 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0}@keyframes float-orb{0%,to{transform:translateY(0)scale(1)}33%{transform:translateY(-30px)scale(1.05)}66%{transform:translateY(20px)scale(.95)}}.brand{font-family:var(--font-display);color:var(--text-primary);align-items:center;gap:.75rem;font-size:1.5rem;font-weight:800;display:flex}.brand-icon{background:linear-gradient(135deg, var(--violet), var(--cyan));width:44px;height:44px;box-shadow:0 4px 16px var(--violet-glow);border-radius:12px;justify-content:center;align-items:center;font-size:1.3rem;display:flex}.brand-name span{color:var(--cyan-light)}.hero-title{font-family:var(--font-display);letter-spacing:-.03em;background:linear-gradient(135deg, #fff 0%, #c4b5fd 50%, var(--cyan-light) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:900;line-height:1.1}.hero-subtitle{color:var(--text-secondary);max-width:520px;font-size:1.15rem;line-height:1.7}.label{letter-spacing:.12em;text-transform:uppercase;color:var(--cyan-light);border-radius:var(--radius-full);background:#06b6d41a;border:1px solid #06b6d433;align-items:center;gap:.4rem;padding:.3rem .85rem;font-size:.75rem;font-weight:600;display:inline-flex}.divider{background:linear-gradient(90deg, transparent, var(--border-bright), transparent);width:100%;height:1px;margin:1.5rem 0}.status-badge{border-radius:var(--radius-full);font-size:.8rem;font-weight:600;font-family:var(--font-display);align-items:center;gap:.5rem;padding:.4rem 1rem;display:inline-flex}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-idle{color:var(--text-muted);background:#4b4f6e40;border:1px solid #4b4f6e4d}.status-idle .status-dot{background:var(--text-muted)}.status-waiting{color:var(--warning);background:#f59e0b1f;border:1px solid #f59e0b40}.status-waiting .status-dot{background:var(--warning);animation:1.5s ease-in-out infinite pulse-dot}.status-connected{color:var(--success);background:#10b9811f;border:1px solid #10b98140}.status-connected .status-dot{background:var(--success);animation:2s ease-in-out infinite pulse-dot}.status-streaming{color:var(--violet-light);background:#7c3aed26;border:1px solid #7c3aed4d}.status-streaming .status-dot{background:var(--violet-light);animation:1s ease-in-out infinite pulse-dot}.status-error{color:var(--error);background:#ef44441f;border:1px solid #ef444440}.status-error .status-dot{background:var(--error)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.otp-display{flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;display:flex}.otp-digit{width:66px;height:80px;font-family:var(--font-mono);color:var(--text-primary);border:1px solid var(--border-bright);border-radius:var(--radius-md);animation:digit-pop .4s var(--ease-spring) both;background:#7c3aed1a;justify-content:center;align-items:center;font-size:2.2rem;font-weight:700;display:flex;position:relative;overflow:hidden;box-shadow:0 0 20px #7c3aed26}.otp-digit:after{content:"";background:linear-gradient(#ffffff0a 0%,#0000 100%);position:absolute;inset:0}.otp-digit:first-child{animation-delay:50ms}.otp-digit:nth-child(2){animation-delay:.1s}.otp-digit:nth-child(3){animation-delay:.15s}.otp-digit:nth-child(4){animation-delay:.2s}.otp-digit:nth-child(5){animation-delay:.25s}.otp-digit:nth-child(6){animation-delay:.3s}.otp-separator{color:var(--text-muted);font-size:1.8rem;font-weight:300}@keyframes digit-pop{0%{opacity:0;transform:translateY(12px)scale(.85)}to{opacity:1;transform:translateY(0)scale(1)}}.otp-input-wrapper{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.otp-input-box{width:62px;height:74px;font-family:var(--font-mono);text-align:center;border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);transition:all .2s var(--ease-smooth);caret-color:var(--violet-light);background:#0b0d1fb3;outline:none;font-size:2rem;font-weight:700}.otp-input-box:focus{border-color:var(--violet-light);background:#7c3aed0f;box-shadow:0 0 0 3px #7c3aed2e,0 0 20px #7c3aed26}.otp-input-box.filled{border-color:var(--cyan);color:var(--cyan-light);box-shadow:0 0 0 2px #06b6d426}.otp-input-box.error{border-color:var(--error);animation:.4s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.video-container{border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-violet), 0 0 0 1px var(--border);aspect-ratio:16/9;background:#000;position:relative;overflow:hidden}.stream-video{object-fit:contain;width:100%;height:100%;display:block}.video-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:1;background:#050714b3;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:absolute;inset:0}.video-overlay.hidden{opacity:0;pointer-events:none}.video-controls{opacity:0;background:linear-gradient(#0000,#000c);justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem;transition:opacity .3s;display:flex;position:absolute;bottom:0;left:0;right:0}.video-container:hover .video-controls{opacity:1}.steps{flex-direction:column;gap:1rem;display:flex}.step{align-items:flex-start;gap:1rem;display:flex}.step-num{background:linear-gradient(135deg, var(--violet), var(--cyan));width:30px;height:30px;font-family:var(--font-mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:.8rem;font-weight:700;display:flex}.step-text{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.step-text strong{color:var(--text-primary)}.timer{font-family:var(--font-mono);color:var(--text-muted);font-size:.85rem}.timer.warning{color:var(--warning)}.spinner{border:3px solid var(--border);border-top-color:var(--violet-light);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.connecting-visual{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.wave-rings{width:80px;height:80px;position:relative}.wave-ring{border:2px solid var(--violet-light);border-radius:50%;animation:2s ease-out infinite wave-expand;position:absolute}.wave-ring:first-child{animation-delay:0s;inset:0}.wave-ring:nth-child(2){animation-delay:.5s;inset:-15px}.wave-ring:nth-child(3){animation-delay:1s;inset:-30px}.wave-core{background:linear-gradient(135deg, var(--violet), var(--cyan));border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;display:flex;position:absolute;inset:20px}@keyframes wave-expand{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2)}}.text-center{text-align:center}.text-muted{color:var(--text-secondary)}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.gap-4{gap:2rem}.w-full{width:100%}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.fade-in{animation:.5s ease-out both fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.slide-up{animation:slideUp .6s var(--ease-spring) both}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.toast{background:var(--bg-elevated);border:1px solid var(--border-bright);border-radius:var(--radius-full);z-index:1000;transition:transform .35s var(--ease-spring);box-shadow:var(--shadow-violet);white-space:nowrap;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.875rem;font-weight:500;display:flex;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)translateY(120%)}.toast.show{transform:translate(-50%)translateY(0)}@media (width<=640px){.otp-digit{width:48px;height:62px;font-size:1.7rem}.otp-input-box{width:46px;height:60px;font-size:1.6rem}.glass-card{padding:1.75rem 1.25rem}.hero-title{font-size:clamp(2rem,8vw,3rem)}.otp-display,.otp-input-wrapper{gap:.4rem}}
