:root{--void: #030308;--deep: #070710;--surface: #0F0F1C;--card: #141426;--card-h: #1C1C34;--violet: #7B5EA7;--vl: #A78BFA;--cyan: #22D3EE;--pink: #EC4899;--amber: #F59E0B;--green: #22C55E;--grad: linear-gradient(135deg, #A78BFA 0%, #22D3EE 100%);--grad-warm: linear-gradient(135deg, #A78BFA 0%, #EC4899 100%);--grad-text: linear-gradient(125deg, #C4B5FD 0%, #22D3EE 100%);--text: #F0F4F8;--text2: #8B9EC0;--text3: #475A7A;--border: rgba(140,160,200,.1);--bord2: rgba(140,160,200,.18);--r-sm: 8px;--r-md: 16px;--r-lg: 24px;--r-xl: 32px;--hf: "Syne", sans-serif;--bf: "Figtree", sans-serif}.film-grain{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;opacity:.038;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E") repeat}@keyframes wbPulse{0%,to{transform:scaleY(var(--s0, .15))}50%{transform:scaleY(var(--s1, .75))}}@keyframes flFloat{0%{opacity:0;transform:translateY(12px)}15%{opacity:.65}85%{opacity:.65}to{opacity:0;transform:translateY(-28px)}}@keyframes glowBreathe{0%,to{opacity:.55}50%{opacity:1}}@keyframes dotBeat{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.login-gradient-text{background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-stat-gradient{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-hero-orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(90px);opacity:.45}.login-waveform-bar{flex:1;border-radius:2px 2px 0 0;background:var(--grad);transform-origin:bottom;animation:wbPulse var(--d, 2.2s) ease-in-out infinite;animation-delay:var(--dl, 0s)}.login-float-label{position:absolute;font-size:12px;font-weight:500;color:var(--text3);pointer-events:none;opacity:0;animation:flFloat var(--d, 8s) ease-in-out infinite;animation-delay:var(--dl, 0s)}.login-card-glow{box-shadow:0 0 60px #7b5ea72e,0 24px 64px #0000008c}.login-voice-card{transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}.login-voice-card:hover{transform:translateY(-4px);border-color:#8ca0c840;box-shadow:0 16px 48px #00000073}.login-btn-gradient{background:var(--grad);transition:opacity .2s,transform .2s}.login-btn-gradient:hover:not(:disabled){opacity:.85;transform:translateY(-2px)}.login-btn-outline{border:1px solid var(--bord2);transition:border-color .2s,color .2s,background .2s}.login-btn-outline:hover:not(:disabled){border-color:#a78bfa66;background:#7b5ea71a}html,body,#root{height:100%;min-height:100%}body,#root{overflow-y:auto;overflow-x:hidden}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#a1a1aa;border-radius:4px;border:2px solid #0b0b0f}::-webkit-scrollbar-thumb:hover{background:#d4d4d8}::-webkit-scrollbar-track{background:#18181b}.scrollable-zoom-container{overflow:auto;scrollbar-gutter:stable;overflow-y:scroll;overflow-x:scroll;width:100vw;height:100vh;scrollbar-width:thin;scrollbar-color:rgb(63,63,70) rgb(39,39,42)}@supports (scrollbar-gutter: stable both-edges){.scrollable-zoom-container{scrollbar-gutter:stable both-edges}}.scrollable-zoom-container::-webkit-scrollbar{width:15px;height:15px}.scrollable-zoom-container::-webkit-scrollbar-track{background:#27272a}.scrollable-zoom-container::-webkit-scrollbar-thumb{background:#3f3f46;border-radius:8px;border:2px solid rgb(24,24,27)}.scrollable-zoom-container::-webkit-scrollbar-thumb:hover{background:#52525b}@keyframes confetti-fall{0%{transform:translateY(-10vh) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:200;overflow:hidden}.confetti-piece{position:absolute;top:-10px;width:10px;height:10px;border-radius:2px;animation:confetti-fall var(--duration, 3s) ease-in forwards;animation-delay:var(--delay, 0s);left:var(--x, 50%);background:var(--color, #A78BFA);opacity:.9}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.animate-modal-in{animation:modal-scale-in .3s ease-out}
