*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-card: #1a1a2e;--bg-card-hover: #222240;--bg-glass: rgba(26, 26, 46, .6);--border-subtle: rgba(255, 255, 255, .06);--border-accent: rgba(124, 92, 252, .3);--text-primary: #f0f0f5;--text-secondary: #9090a8;--text-muted: #5a5a72;--accent-purple: #7c5cfc;--accent-purple-light: #9b7dff;--accent-blue: #4facfe;--accent-cyan: #00f2fe;--accent-green: #43e97b;--accent-orange: #f7971e;--accent-red: #f85149;--accent-pink: #f093fb;--gradient-primary: linear-gradient(135deg, #7c5cfc, #4facfe);--gradient-success: linear-gradient(135deg, #43e97b, #38f9d7);--gradient-warm: linear-gradient(135deg, #f7971e, #ffd200);--gradient-hot: linear-gradient(135deg, #f85149, #f093fb);--gradient-bg: radial-gradient( ellipse at 20% 50%, rgba(124, 92, 252, .08) 0%, transparent 50% ), radial-gradient( ellipse at 80% 20%, rgba(79, 172, 254, .06) 0%, transparent 50% ), radial-gradient( ellipse at 50% 80%, rgba(67, 233, 123, .04) 0%, transparent 50% );--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 20px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .5);--shadow-glow: 0 0 30px rgba(124, 92, 252, .15);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}::selection{background:#7c5cfc4d;color:#fff}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-card);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-purple)}a{color:var(--accent-purple-light);text-decoration:none}button{font-family:var(--font-sans);cursor:pointer;border:none;outline:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes countUp{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes progressFill{0%{width:0}}@keyframes borderGlow{0%,to{border-color:#7c5cfc33}50%{border-color:#7c5cfc80}}@keyframes wordAppear{0%{opacity:0;transform:translateY(20px) scale(.9);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes ripple{to{transform:scale(2);opacity:0}}.animate-fade-in{animation:fadeIn .5s ease forwards}.animate-slide-up{animation:slideUp .6s ease forwards}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary);position:relative}.app:before{content:"";position:fixed;inset:0;background:var(--gradient-bg);pointer-events:none;z-index:0}.app-content{position:relative;z-index:1;flex:1;display:flex;flex-direction:column}.header{padding:20px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a0fb3;position:sticky;top:0;z-index:100}.logo{display:flex;align-items:center;gap:12px;background:none;border:none;padding:0;cursor:pointer}.logo-icon{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;color:#fff;box-shadow:var(--shadow-glow)}.logo-text{font-size:20px;font-weight:700;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.header-stats{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--text-secondary)}.header-stat{display:flex;align-items:center;gap:6px}.header-stat-value{color:var(--text-primary);font-weight:600;font-family:var(--font-mono)}.landing{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;text-align:center;animation:fadeIn .6s ease}.landing-hero{max-width:640px;margin-bottom:48px}.landing-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;background:#7c5cfc1a;border:1px solid rgba(124,92,252,.2);border-radius:var(--radius-full);font-size:13px;font-weight:500;color:var(--accent-purple-light);margin-bottom:24px;animation:fadeIn .5s ease .1s both}.landing-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-green);animation:pulse 2s ease infinite}.landing h1{font-size:52px;font-weight:800;line-height:1.1;letter-spacing:-1.5px;margin-bottom:20px;animation:fadeIn .5s ease .2s both}.landing h1 .gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-subtitle{font-size:18px;color:var(--text-secondary);line-height:1.7;max-width:500px;margin:0 auto 40px;animation:fadeIn .5s ease .3s both}.landing-cta{display:flex;flex-direction:column;align-items:center;gap:16px;animation:fadeIn .5s ease .4s both}.btn-primary{padding:14px 40px;font-size:16px;font-weight:600;color:#fff;background:var(--gradient-primary);border-radius:var(--radius-full);transition:all var(--transition-normal);box-shadow:0 4px 20px #7c5cfc4d;position:relative;overflow:hidden}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #7c5cfc66}.btn-primary:active{transform:translateY(0)}.btn-secondary{padding:10px 24px;font-size:14px;font-weight:500;color:var(--text-secondary);background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-full);transition:all var(--transition-normal)}.btn-secondary:hover{color:var(--text-primary);border-color:var(--border-accent);background:#7c5cfc0d}.landing-features{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:700px;margin-top:60px;animation:fadeIn .5s ease .5s both}.feature-card{padding:24px 20px;background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:left;transition:all var(--transition-normal)}.feature-card:hover{border-color:var(--border-accent);transform:translateY(-2px);box-shadow:var(--shadow-glow)}.feature-icon{font-size:28px;margin-bottom:12px}.feature-title{font-size:14px;font-weight:600;margin-bottom:6px}.feature-desc{font-size:12px;color:var(--text-muted);line-height:1.5}.test-screen{flex:1;display:flex;flex-direction:column;align-items:center;padding:40px 24px;animation:fadeIn .4s ease}.test-progress{width:100%;max-width:600px;margin-bottom:40px}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-label{font-size:13px;color:var(--text-secondary);font-weight:500}.progress-count{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--accent-purple-light)}.progress-bar{width:100%;height:6px;background:var(--bg-card);border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-fill{height:100%;background:var(--gradient-primary);border-radius:var(--radius-full);transition:width .4s cubic-bezier(.4,0,.2,1);position:relative}.progress-fill:after{content:"";position:absolute;right:0;top:0;height:100%;width:20px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3));border-radius:var(--radius-full)}.test-card{width:100%;max-width:480px;text-align:center;animation:wordAppear .4s ease}.test-instruction{font-size:14px;color:var(--text-muted);margin-bottom:32px;font-weight:400}.test-word-container{margin-bottom:48px;position:relative}.test-word{font-size:48px;font-weight:700;letter-spacing:-1px;color:var(--text-primary);padding:24px;animation:wordAppear .35s ease}.test-word-hint{font-size:12px;color:var(--text-muted);margin-top:8px;font-style:italic}.test-actions{display:flex;gap:16px;justify-content:center}.btn-know{padding:14px 48px;font-size:15px;font-weight:600;color:#fff;background:var(--gradient-success);border-radius:var(--radius-full);transition:all var(--transition-normal);box-shadow:0 4px 16px #43e97b33;min-width:160px}.btn-know:hover{transform:translateY(-2px);box-shadow:0 6px 24px #43e97b4d}.btn-dont-know{padding:14px 48px;font-size:15px;font-weight:600;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-full);transition:all var(--transition-normal);min-width:160px}.btn-dont-know:hover{color:var(--text-primary);border-color:#f851494d;background:#f8514914}.test-keyboard-hint{margin-top:24px;font-size:11px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;gap:16px}.kbd{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:4px;min-width:24px}.results-screen{flex:1;display:flex;flex-direction:column;align-items:center;padding:40px 24px 80px;animation:fadeIn .5s ease}.results-hero{text-align:center;margin-bottom:48px;max-width:500px}.results-label{font-size:14px;color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;font-weight:600;margin-bottom:16px}.results-number{font-size:80px;font-weight:900;font-family:var(--font-mono);letter-spacing:-3px;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:8px;animation:countUp .7s cubic-bezier(.34,1.56,.64,1) .2s both}.results-words-label{font-size:18px;color:var(--text-secondary);margin-bottom:20px}.results-category{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;background:#7c5cfc1f;border:1px solid rgba(124,92,252,.25);border-radius:var(--radius-full);font-size:15px;font-weight:600;color:var(--accent-purple-light);margin-bottom:12px;animation:fadeInScale .4s ease .5s both}.results-description{font-size:14px;color:var(--text-secondary);line-height:1.6;animation:fadeIn .4s ease .6s both}.results-percentile{font-size:13px;color:var(--text-muted);margin-top:12px;animation:fadeIn .4s ease .7s both}.results-percentile strong{color:var(--accent-cyan);font-family:var(--font-mono)}.bands-section{width:100%;max-width:640px;margin-bottom:40px}.section-title{font-size:16px;font-weight:600;margin-bottom:20px;display:flex;align-items:center;gap:10px}.section-title:before{content:"";width:3px;height:18px;background:var(--gradient-primary);border-radius:var(--radius-full)}.band-list{display:flex;flex-direction:column;gap:10px}.band-item{display:grid;grid-template-columns:180px 1fr 60px;align-items:center;gap:16px;padding:14px 18px;background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-md);animation:slideIn .3s ease both;transition:border-color var(--transition-normal)}.band-item:hover{border-color:var(--border-accent)}.band-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.band-bar-container{height:8px;background:var(--bg-card);border-radius:var(--radius-full);overflow:hidden}.band-bar{height:100%;border-radius:var(--radius-full);transition:width .6s cubic-bezier(.4,0,.2,1);animation:progressFill .8s ease both}.band-bar.band-0{background:var(--gradient-success)}.band-bar.band-1{background:linear-gradient(90deg,#43e97b,#4facfe)}.band-bar.band-2{background:var(--gradient-primary)}.band-bar.band-3{background:linear-gradient(90deg,#7c5cfc,#f093fb)}.band-bar.band-4{background:var(--gradient-hot)}.band-bar.band-5{background:linear-gradient(90deg,#f7971e,#f85149)}.band-bar.band-6{background:linear-gradient(90deg,#f85149,#c850c0)}.band-bar.band-7{background:linear-gradient(90deg,#c850c0,#7c5cfc)}.band-percent{font-family:var(--font-mono);font-size:13px;font-weight:600;text-align:right;color:var(--text-primary)}.stats-section{width:100%;max-width:640px;margin-bottom:40px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stat-card{padding:20px;background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-align:center;transition:all var(--transition-normal)}.stat-card:hover{border-color:var(--border-accent)}.stat-value{font-size:28px;font-weight:700;font-family:var(--font-mono);color:var(--text-primary);margin-bottom:4px}.stat-label{font-size:12px;color:var(--text-muted);font-weight:500}.stat-card-highlight{border-color:#7c5cfc40;background:#7c5cfc0f}.stat-card-highlight .stat-value{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-footer-stat strong{color:var(--accent-purple-light);font-family:var(--font-mono)}.landing-footer-stat-divider{margin:0 8px;color:var(--border-subtle)}.results-actions{display:flex;gap:12px;margin-top:24px}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:16px}.loading-spinner{width:32px;height:32px;border:3px solid var(--bg-card);border-top-color:var(--accent-purple);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:14px;color:var(--text-muted)}.error-bar{padding:12px 24px;background:#f851491a;border-bottom:1px solid rgba(248,81,73,.2);color:#f85149;font-size:14px;text-align:center}.language-selector{display:flex;gap:10px;justify-content:center;margin-bottom:32px;animation:fadeIn .5s ease .35s both}.lang-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-secondary);font-size:14px;font-weight:500;transition:all var(--transition-normal)}.lang-btn:hover{border-color:var(--border-accent);color:var(--text-primary);background:var(--bg-card-hover)}.lang-btn-active{border-color:var(--accent-purple);color:var(--text-primary);background:#7c5cfc1f;box-shadow:0 0 16px #7c5cfc26}.lang-flag{font-size:18px}.lang-name{font-size:13px}.landing-footer-stat{margin-top:40px;font-size:13px;color:var(--text-muted);animation:fadeIn .5s ease .6s both}.share-section{width:100%;max-width:500px;margin-bottom:40px;animation:fadeIn .4s ease .8s both}.share-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;font-weight:600;margin-bottom:10px;text-align:center}.share-url-box{display:flex;gap:0;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-subtle);background:var(--bg-card)}.share-url-input{flex:1;padding:10px 14px;font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);background:transparent;border:none;outline:none;min-width:0}.share-url-input:focus{color:var(--text-primary)}.share-copy-btn{padding:10px 20px;font-size:13px;font-weight:600;color:#fff;background:var(--gradient-primary);border:none;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.share-copy-btn:hover{filter:brightness(1.1)}.shared-badge{display:inline-block;padding:6px 16px;background:#4facfe1a;border:1px solid rgba(79,172,254,.2);border-radius:var(--radius-full);font-size:12px;font-weight:500;color:var(--accent-blue);margin-bottom:16px}.results-lang-badge{font-size:14px;color:var(--text-secondary);margin-bottom:12px}@media(max-width:768px){.landing h1{font-size:36px}.landing-features{grid-template-columns:1fr}.test-word{font-size:36px}.test-actions{flex-direction:column}.btn-know,.btn-dont-know{width:100%}.results-number{font-size:56px}.band-item{grid-template-columns:120px 1fr 50px;gap:10px;padding:10px 14px}.header{padding:16px 20px}.stats-grid{grid-template-columns:1fr}.language-selector{flex-wrap:wrap}.share-url-box{flex-direction:column}.share-url-input{text-align:center}}@media(max-width:480px){.landing h1{font-size:28px}.landing-subtitle{font-size:15px}.header-stats{display:none}.test-word{font-size:28px}}
