@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;600&display=swap";.navbar{z-index:100;-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#0a0d1ad9;height:72px;position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;gap:2rem;height:100%;display:flex}.navbar-logo{flex-shrink:0;align-items:center;gap:.6rem;text-decoration:none;display:flex}.logo-icon{color:var(--accent-light);filter:drop-shadow(0 0 8px var(--accent-glow));font-family:JetBrains Mono,monospace;font-size:1.4rem}.logo-text{color:var(--text-primary);letter-spacing:-.03em;font-family:Gill Sans,Gill Sans MT,Calibri,Trebuchet MS,sans-serif;font-size:1.25rem;font-weight:800}.logo-accent{color:var(--accent-light)}.navbar-nav{flex:1;justify-content:center;align-items:center;gap:.25rem;display:flex}.nav-link{border-radius:var(--radius-full);color:var(--text-secondary);transition:all var(--transition-normal);border:1px solid #0000;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{color:var(--text-primary);background:var(--bg-card);border-color:var(--border)}.nav-link--active{color:var(--accent-light)!important;background:#7c3aed1f!important;border-color:#7c3aed4d!important}.nav-icon{font-size:.85rem}.navbar-cta{flex-shrink:0}@media (width<=640px){.navbar-nav{display:none}.navbar-inner{justify-content:space-between}}.devlore-banner{justify-content:center;align-items:center;width:100%;height:80vh;padding:0;display:flex;position:relative;overflow:hidden}.devlore-word{text-align:center;letter-spacing:-.04em;background:linear-gradient(135deg,#fff 0%,#ede9fe 20%,#c4b5fd 45%,#a78bfa 70%,#fff 100%);-webkit-text-fill-color:transparent;-webkit-user-select:none;user-select:none;-webkit-background-clip:text;background-clip:text;width:100%;font-family:Gill Sans,Gill Sans MT,Calibri,Trebuchet MS,sans-serif;font-size:clamp(3rem,19.5vw,99rem);font-weight:900;line-height:1;display:block}.devlore-scroll-hint{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;opacity:.7;flex-direction:column;align-items:center;gap:.5rem;font-size:.85rem;animation:2s ease-in-out infinite bounceHint;display:flex;position:absolute;bottom:2rem}@keyframes bounceHint{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}.home-hero{text-align:center;max-width:1000px;margin:0 auto;padding:4rem 0 3rem}.hero-title{margin:1rem 0 1.25rem;line-height:1.1}.hero-subtitle{color:var(--text-secondary);max-width:520px;margin:0 auto 2rem;font-size:1.1rem;line-height:1.7}.hero-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.home-stats{grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2.5rem;display:grid}.stat-card{text-align:center;transition:transform var(--transition-normal), box-shadow var(--transition-normal);position:relative;overflow:hidden}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.stat-card--highlight{background:#7c3aed0f;border-color:#7c3aed4d}.stat-card--highlight:before{content:"";background:linear-gradient(90deg, var(--accent), var(--teal));height:2px;position:absolute;top:0;left:0;right:0}.stat-icon{margin-bottom:.75rem;font-size:2rem}.stat-value{color:var(--text-primary);letter-spacing:-.03em;margin-bottom:.35rem;font-size:2rem;font-weight:800;line-height:1}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.2rem;font-size:.8rem;font-weight:600}.stat-sub{color:var(--text-secondary);font-size:.82rem}.home-recent{margin-bottom:3rem}.section-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.section-title{font-size:1.25rem;font-weight:700}.recent-list{flex-direction:column;gap:.75rem;display:flex}.recent-item{transition:transform var(--transition-fast), box-shadow var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.recent-item:hover{box-shadow:var(--shadow-sm);transform:translate(4px)}.recent-item-left{align-items:center;gap:1rem;display:flex}.recent-grade{text-shadow:0 0 12px;min-width:2.5rem;font-family:JetBrains Mono,monospace;font-size:1.6rem;font-weight:900}.recent-category{color:var(--text-primary);margin-bottom:.3rem;font-weight:600}.recent-meta{align-items:center;gap:.6rem;display:flex}.recent-date{color:var(--text-muted);font-size:.78rem}.recent-score{flex-direction:column;align-items:flex-end;gap:.2rem;display:flex}.recent-score>span:first-child{font-family:JetBrains Mono,monospace;font-size:1.4rem;font-weight:800}.recent-fraction{color:var(--text-muted);font-size:.78rem}.empty-state{text-align:center;max-width:480px;margin:0 auto 3rem;padding:5rem 2rem}.empty-icon{margin-bottom:1.25rem;font-size:4rem;animation:3s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.empty-state h2{margin-bottom:.75rem}.features-section{perspective:1000px;max-width:800px;margin:0 auto;padding:6rem 0}.features-grid{flex-direction:column;gap:1.5rem;display:flex;position:relative}.feature-card{opacity:0;transition:all .8s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--card-i) * .15s);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;position:relative;overflow:hidden;transform:translateY(50px)rotateX(-10deg)}.feature-card-stack-shadow{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);opacity:.5;z-index:-1;height:20px;transition:all .3s;position:absolute;top:-10px;left:2%;right:2%}.feature-card:hover{border-color:var(--border-bright);z-index:10;box-shadow:0 10px 30px #00000080;transform:translateY(-5px)scale(1.02)!important}.feature-card:hover .feature-card-stack-shadow{opacity:0;top:5px}.cards-revealed .feature-card{opacity:1;transform:translateY(0)rotateX(0)}.feature-card-inner{flex-direction:column;gap:.5rem;display:flex}.feature-icon{margin-bottom:.5rem;font-size:2rem}.feature-title{color:var(--text-primary);font-size:1.25rem;font-weight:700}.feature-desc{color:var(--text-secondary);font-size:.95rem;line-height:1.6}@media (width<=900px){.home-stats{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.home-stats{grid-template-columns:1fr}.home-hero{padding:2.5rem 0 2rem}.features-section{padding:3rem 1rem}}.setup-wrapper{flex-direction:column;gap:1.5rem;max-width:560px;margin:0 auto;display:flex}.setup-header{padding:1rem 0}.setup-header h1{margin:.5rem 0;font-size:clamp(1.75rem,4vw,2.5rem)}.form-group{margin-bottom:1.75rem}.form-group:last-of-type{margin-bottom:0}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.9rem;font-weight:600;display:flex}.form-label-icon{font-size:1rem}.select-wrapper{position:relative}.select-wrapper select{cursor:pointer;padding-right:2.5rem}.select-arrow{color:var(--text-muted);pointer-events:none;font-size:1rem;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.difficulty-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.difficulty-btn{border-radius:var(--radius-md);cursor:pointer;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);transition:all var(--transition-normal);text-align:center;white-space:nowrap;text-overflow:ellipsis;padding:.75rem .5rem;font-family:inherit;font-size:.85rem;font-weight:600;overflow:hidden}.difficulty-btn:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--border-bright);color:var(--text-primary);transform:translateY(-2px)}.difficulty-btn--active{box-shadow:0 0 0 1px var(--accent-glow);border-color:var(--accent)!important;color:var(--accent-light)!important;background:#7c3aed26!important}.setup-summary{border:1px solid var(--border);border-radius:var(--radius-md);background:#ffffff08;flex-direction:column;gap:.6rem;margin:1.75rem 0;padding:1rem 1.25rem;display:flex}.summary-row{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.summary-row span{color:var(--text-secondary)}.summary-row strong{color:var(--text-primary);font-weight:600}.setup-error{border-radius:var(--radius-md);color:var(--red);background:#ef44441a;border:1px solid #ef44444d;margin-bottom:1rem;padding:.85rem 1rem;font-size:.9rem}.btn-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}.setup-tips{flex-direction:column;gap:.75rem;display:flex}.tip-card{color:var(--text-secondary);align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;font-size:.88rem;display:flex}.tip-icon{flex-shrink:0;font-size:1.1rem}@media (width<=480px){.difficulty-grid{grid-template-columns:repeat(2,1fr)}}.quiz-wrapper{flex-direction:column;gap:1.25rem;max-width:680px;margin:0 auto;display:flex}.quiz-topbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.quiz-progress-label{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:.95rem}.quiz-progress-label strong{color:var(--text-primary);font-size:1.1rem}.quiz-timer{justify-content:center;align-items:center;width:54px;height:54px;display:flex;position:relative}.timer-ring{width:54px;height:54px;position:absolute;transform:rotate(-90deg)}.timer-track{fill:none;stroke:var(--border);stroke-width:3px}.timer-fill{fill:none;stroke-width:3px;stroke-linecap:round;transition:stroke-dashoffset 1s linear,stroke .3s}.timer-text{color:var(--text-primary);z-index:1;font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:700;transition:color .3s;position:relative}.quiz-timer--danger .timer-text{color:var(--red);animation:.5s ease-in-out infinite alternate pulse}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.15)}}.quiz-bar-track{background:var(--border);border-radius:var(--radius-full);height:4px;overflow:hidden}.quiz-bar-fill{background:linear-gradient(90deg, var(--accent), var(--teal));border-radius:var(--radius-full);height:100%;transition:width .4s var(--transition-slow)}.quiz-card{animation:.35s cubic-bezier(.4,0,.2,1) both cardIn}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.quiz-category-badge{margin-bottom:1.25rem;display:inline-flex}.quiz-question{color:var(--text-primary);letter-spacing:-.01em;margin-bottom:2rem;font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:600;line-height:1.5}.quiz-answers{flex-direction:column;gap:.75rem;display:flex}.answer-btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);text-align:left;cursor:pointer;transition:all var(--transition-normal);align-items:center;gap:1rem;width:100%;padding:1rem 1.25rem;font-family:inherit;font-size:.95rem;display:flex;position:relative}.answer-btn:hover:not(:disabled):not(.answer-btn--dimmed){border-color:var(--accent);background:#7c3aed14;transform:translate(4px)}.answer-btn:active:not(:disabled){transform:translate(2px)scale(.99)}.answer-letter{border-radius:var(--radius-sm);border:1px solid var(--border);width:30px;height:30px;transition:all var(--transition-fast);background:#ffffff0f;flex-shrink:0;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:700;display:flex}.answer-text{flex:1;line-height:1.4}.answer-check,.answer-cross{flex-shrink:0;font-size:1.1rem;font-weight:900}.answer-btn--correct{animation:.3s both correctPop;border-color:var(--green)!important;background:#22c55e1f!important}.answer-btn--correct .answer-letter{background:var(--green);border-color:var(--green);color:#000}.answer-check{color:var(--green)}.answer-btn--wrong{animation:.4s both shake;border-color:var(--red)!important;background:#ef44441f!important}.answer-btn--wrong .answer-letter{background:var(--red);border-color:var(--red);color:#fff}.answer-cross{color:var(--red)}.answer-btn--dimmed{opacity:.35;cursor:default}.answer-btn--selected{border-color:var(--accent-light);background:#7c3aed1a}@keyframes correctPop{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.quiz-skip-row{justify-content:flex-end;display:flex}.results-wrapper{flex-direction:column;gap:2rem;max-width:720px;margin:0 auto;display:flex}.results-hero{align-items:center;gap:2.5rem;padding:2rem 0 1rem;display:flex}.score-ring-wrapper{flex-shrink:0;width:130px;height:130px;position:relative}.score-ring{width:130px;height:130px;transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--border);stroke-width:6px}.ring-fill{fill:none;stroke-width:6px;stroke-linecap:round;stroke-dashoffset:327px;animation:1.2s cubic-bezier(.4,0,.2,1) forwards ringFill}@keyframes ringFill{0%{stroke-dashoffset:327px}}.score-ring-inner{flex-direction:column;justify-content:center;align-items:center;gap:.1rem;display:flex;position:absolute;inset:0}.score-ring-percent{filter:drop-shadow(0 0 8px);font-family:JetBrains Mono,monospace;font-size:1.7rem;font-weight:900;line-height:1}.score-ring-grade{opacity:.8;font-size:.9rem;font-weight:700}.results-title-block h1{margin-bottom:.75rem;font-size:clamp(1.5rem,4vw,2.2rem)}.results-subtitle{color:var(--text-secondary);align-items:center;gap:.75rem;font-size:.95rem;display:flex}.results-stats .card{transition:transform var(--transition-normal)}.results-stats .card:hover{transform:translateY(-4px)}.rs-icon{margin-bottom:.5rem;font-size:1.75rem}.rs-value{margin-bottom:.3rem;font-family:JetBrains Mono,monospace;font-size:2.5rem;font-weight:900;line-height:1}.rs-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.8rem;font-weight:600}.results-actions{flex-wrap:wrap;gap:1rem;display:flex}.wrong-list{flex-direction:column;gap:.75rem;display:flex}.wrong-item{cursor:pointer;transition:all var(--transition-normal)}.wrong-item:hover{border-color:#ef44444d}.wrong-item--open{background:#ef44440a!important;border-color:#ef444466!important}.wrong-header{align-items:flex-start;gap:.75rem;display:flex}.wrong-num{color:var(--red);flex-shrink:0;padding-top:2px;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:700}.wrong-q{color:var(--text-primary);flex:1;font-size:.92rem;line-height:1.5}.wrong-toggle{color:var(--text-muted);transition:transform var(--transition-fast);flex-shrink:0;padding-top:3px;font-size:.75rem}.wrong-detail{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;margin-top:1rem;padding-top:1rem;animation:.2s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.wrong-answer-row{border-radius:var(--radius-sm);align-items:flex-start;gap:.75rem;padding:.65rem .85rem;font-size:.9rem;display:flex}.wrong-answer-row--correct{color:var(--green);background:#22c55e1a;border:1px solid #22c55e40}.wrong-answer-row--wrong{color:var(--red);background:#ef44441a;border:1px solid #ef444440}.wrong-answer-row--skip{color:var(--yellow);background:#eab3081a;border:1px solid #eab30840}.war-label{white-space:nowrap;flex-shrink:0;font-weight:700}@media (width<=600px){.results-hero{text-align:center;flex-direction:column}.results-subtitle{justify-content:center}.results-actions{flex-direction:column}.results-actions .btn{width:100%}}.score-bar-wrapper{flex-direction:column;gap:.5rem;display:flex}.score-bar-meta{justify-content:space-between;align-items:center;gap:1rem;display:flex}.score-bar-label{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:500;overflow:hidden}.score-bar-right{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.score-bar-attempts{color:var(--text-muted);font-size:.78rem}.score-bar-value{text-align:right;min-width:3rem;font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:700}.score-bar-track{border-radius:var(--radius-full);background:#ffffff0f;height:8px;overflow:hidden}.score-bar-fill{border-radius:var(--radius-full);width:0;height:100%;animation:.8s cubic-bezier(.4,0,.2,1) .1s forwards barFill}@keyframes barFill{0%{opacity:.6;width:0}to{opacity:1}}.dash-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2rem;display:flex}.dash-header h1{font-size:clamp(1.5rem,3vw,2rem)}.dash-header-actions{flex-shrink:0;align-items:center;display:flex}.confirm-clear{color:var(--text-secondary);align-items:center;gap:.75rem;padding:.65rem 1rem;font-size:.88rem;display:flex}.dash-grid{grid-template-columns:1fr 380px;align-items:start;gap:1.5rem;display:grid}.dash-left{flex-direction:column;gap:1.5rem;display:flex}.dash-right{position:sticky;top:90px}.dash-section-title{margin-bottom:.35rem;font-size:1rem;font-weight:700}.dash-section-sub{color:var(--text-muted);margin-bottom:1.25rem;font-size:.82rem}.bars-list{flex-direction:column;gap:1.25rem;display:flex}.insight-card{text-align:center;transition:transform var(--transition-normal)}.insight-card:hover{transform:translateY(-4px)}.insight-card--best{background:#22c55e0a;border-color:#22c55e40}.insight-card--worst{background:#ef44440a;border-color:#ef444440}.insight-icon{margin-bottom:.5rem;font-size:1.75rem}.insight-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.4rem;font-size:.72rem;font-weight:700}.insight-cat{color:var(--text-primary);margin-bottom:.35rem;font-size:.92rem;font-weight:600}.insight-score{font-family:JetBrains Mono,monospace;font-size:1.6rem;font-weight:900}.trend-chart{align-items:flex-end;gap:.5rem;height:160px;padding-top:2rem;display:flex}.trend-bar-col{flex-direction:column;flex:1;align-items:center;gap:.3rem;height:100%;display:flex}.trend-score-label{white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:700}.trend-bar-track{border-radius:var(--radius-sm) var(--radius-sm) 2px 2px;background:#ffffff0a;flex:1;align-items:flex-end;width:100%;display:flex;overflow:hidden}.trend-bar-fill{border-radius:var(--radius-sm) var(--radius-sm) 2px 2px;width:100%;height:0;animation:.7s cubic-bezier(.4,0,.2,1) forwards trendFill}@keyframes trendFill{0%{opacity:.4;height:0}to{opacity:1}}.trend-date{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;text-align:center;max-width:100%;font-size:.65rem;overflow:hidden}.history-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.history-count{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:.8rem}.history-list{max-height:520px;overflow-y:auto}.history-row{border-bottom:1px solid var(--border);transition:background var(--transition-fast);align-items:center;gap:.85rem;padding:.9rem 1.5rem;display:flex}.history-row:last-child{border-bottom:none}.history-row:hover{background:var(--bg-card-hover)}.history-grade{text-align:center;min-width:2.2rem;font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:900}.history-main{flex:1;min-width:0}.history-cat{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin-bottom:.25rem;font-size:.9rem;font-weight:600;overflow:hidden}.history-meta{align-items:center;gap:.5rem;display:flex}.history-date{color:var(--text-muted);white-space:nowrap;font-size:.72rem}.history-score-col{flex-direction:column;flex-shrink:0;align-items:flex-end;display:flex}.history-score{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:800}.history-fraction{color:var(--text-muted);font-size:.72rem}.dash-empty{max-width:480px;margin:0 auto;padding:5rem 2rem}.dash-empty-icon{margin-bottom:1.25rem;font-size:4rem}@media (width<=900px){.dash-grid{grid-template-columns:1fr}.dash-right{position:static}.history-list{max-height:400px}}@media (width<=560px){.trend-chart{gap:.3rem}.trend-score-label{display:none}}:root{--bg-primary:#000;--bg-secondary:#050505;--bg-card:#ffffff0a;--bg-card-hover:#ffffff12;--border:#ffffff14;--border-bright:#ffffff26;--accent:#7c3aed;--accent-light:#a78bfa;--accent-glow:#7c3aed59;--teal:#14b8a6;--teal-glow:#14b8a64d;--green:#22c55e;--green-glow:#22c55e4d;--yellow:#eab308;--yellow-glow:#eab3084d;--orange:#f97316;--red:#ef4444;--red-glow:#ef44444d;--text-primary:#f0f0ff;--text-secondary:#94a3b8;--text-muted:#475569;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--radius-full:999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 8px 24px #0006;--shadow-lg:0 20px 60px #00000080;--shadow-glow:0 0 30px var(--accent-glow)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,system-ui,sans-serif;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 60% at 10% 10%,#7c3aed1f 0%,#0000 60%),radial-gradient(60% 50% at 90% 80%,#14b8a614 0%,#0000 50%),radial-gradient(50% 40%,#7c3aed0a 0%,#0000 70%);position:fixed;inset:0}#root{z-index:1;min-height:100vh;position:relative}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;font-weight:700;line-height:1.2}h1{font-size:clamp(2rem,5vw,3.5rem)}h2{font-size:clamp(1.5rem,3vw,2.25rem)}h3{font-size:clamp(1.2rem,2.5vw,1.75rem)}p{color:var(--text-secondary)}a{color:var(--accent-light);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--text-primary)}.container{width:100%;max-width:1100px;margin:0 auto;padding:0 1.5rem}.page{min-height:calc(100vh - 72px);padding:2.5rem 0 4rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);transition:border-color var(--transition-normal), transform var(--transition-normal), box-shadow var(--transition-normal)}.card:hover{border-color:var(--border-bright);box-shadow:var(--shadow-md)}.card-padding{padding:1.75rem}.card-padding-lg{padding:2.5rem}.btn{border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap;letter-spacing:.01em;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.75rem;font-family:inherit;font-size:.95rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;transition:opacity var(--transition-fast);background:#ffffff1a;position:absolute;inset:0}.btn:hover:after{opacity:1}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--accent), #6d28d9);color:#fff;box-shadow:0 4px 20px var(--accent-glow)}.btn-primary:hover{box-shadow:0 6px 30px var(--accent-glow), 0 0 0 1px var(--accent);transform:translateY(-1px)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-bright)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--accent-light);transform:translateY(-1px)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover{color:var(--text-primary);border-color:var(--border-bright)}.btn-danger{color:var(--red);background:#ef444426;border:1px solid #ef44444d}.btn-danger:hover{background:#ef444440;transform:translateY(-1px)}.btn-lg{padding:1rem 2.5rem;font-size:1.05rem}.btn-sm{padding:.5rem 1rem;font-size:.85rem}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.badge{border-radius:var(--radius-full);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:.3rem;padding:.3rem .75rem;font-size:.78rem;font-weight:600;display:inline-flex}.badge-easy{color:var(--green);background:#22c55e26;border:1px solid #22c55e4d}.badge-medium{color:var(--yellow);background:#eab30826;border:1px solid #eab3084d}.badge-hard{color:var(--red);background:#ef444426;border:1px solid #ef44444d}.badge-accent{color:var(--accent-light);background:#7c3aed26;border:1px solid #7c3aed4d}select,input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);width:100%;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);appearance:none;outline:none;padding:.75rem 1rem;font-family:inherit;font-size:.95rem}select:focus,input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}select option{background:var(--bg-secondary);color:var(--text-primary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.gap-4{gap:2rem}.text-center{text-align:center}.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}.w-full{width:100%}.grid-2{grid-template-columns:repeat(2,1fr);gap:1.25rem;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:1.25rem;display:grid}@media (width<=768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.container{padding:0 1rem}.page{padding:1.5rem 0 3rem}}.gradient-text{background:linear-gradient(135deg, var(--accent-light), var(--teal));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.divider{background:var(--border);height:1px;margin:1.5rem 0}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-state{min-height:300px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.toast{background:var(--bg-secondary);border:1px solid var(--green);border-radius:var(--radius-md);color:var(--green);box-shadow:var(--shadow-lg), 0 0 20px var(--green-glow);z-index:1000;animation:toastIn .3s var(--transition-normal), toastOut .3s var(--transition-normal) 2.7s forwards;align-items:center;gap:.75rem;padding:1rem 1.5rem;font-weight:600;display:flex;position:fixed;bottom:2rem;right:2rem}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(20px)scale(.95)}}.page-enter{animation:pageIn .4s var(--transition-slow) both}@keyframes pageIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#000}::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}
