:root{--text:#9ca3af;--text-h:#f3f4f6;--text-muted:#8b93a1;--bg:#16171d;--surface:#1e202a;--border:#2e303a;--code-bg:#1f2028;--accent:#e8a020;--accent-bg:#e8a0201f;--accent-border:#e8a02073;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--sans:"Geist", system-ui, sans-serif;--heading:"Geist", system-ui, sans-serif;--mono:ui-monospace, Consolas, monospace;--danger:#f87171;--danger-bg:#f871711a;--danger-border:#f8717159;--success:#4ade80;--success-bg:#4ade801a;--warning:#fbbf24;--warning-bg:#fbbf241a;--difficulty-easy:#22c55e;--difficulty-medium:#f59e0b;--difficulty-hard:#ef4444;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-xxl:24px;--focus-ring:0 0 0 3px var(--accent-bg);--focus-border:var(--accent-border);--text-inverse:#fff;--transition-fast:.1s ease-out;--transition-base:.15s ease;--transition-slow:.3s ease;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}a{color:inherit;text-decoration:none}::selection{background:var(--accent-bg);color:var(--text-h)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-2.5px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{letter-spacing:-1px;margin:20px 0;font-size:36px}}h2{letter-spacing:-.3px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.toast-container{z-index:200;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:24px;right:24px}.toast{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow);pointer-events:all;border-left:3px solid;align-items:center;gap:10px;min-width:260px;max-width:380px;padding:12px 14px;animation:.25s forwards toast-in;display:flex}.toast--leaving{animation:.2s forwards toast-out}.toast--success{border-color:var(--success)}.toast--error{border-color:var(--danger)}.toast--info{border-color:var(--accent)}.toast__icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:13px;font-weight:700;display:flex}.toast--success .toast__icon{color:var(--success)}.toast--error .toast__icon{color:var(--danger)}.toast--info .toast__icon{color:var(--accent)}.toast__message{color:var(--text-h);flex:1;font-size:14px;line-height:1.4}.toast__close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:18px;line-height:1;transition:color .15s}.toast__close:hover{color:var(--text-h)}@keyframes toast-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}.error-boundary{flex:1;justify-content:center;align-items:center;padding:80px 24px;display:flex}.error-boundary__content{text-align:center;flex-direction:column;align-items:center;gap:16px;max-width:520px;display:flex}.error-boundary__icon{color:var(--danger);font-size:48px}.error-boundary__title{color:var(--text-h);margin:0;font-size:28px}.error-boundary__subtitle{color:var(--text-muted);margin:0;font-size:15px}.error-boundary__details{font-family:var(--mono);color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);white-space:pre-wrap;text-align:left;border-radius:6px;max-width:100%;margin:8px 0;padding:8px 12px;font-size:12px;overflow-x:auto}.error-boundary__actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px;display:flex}.error-boundary__btn{font:inherit;cursor:pointer;border-radius:8px;padding:8px 18px;font-size:14px;font-weight:500;transition:opacity .15s,background .15s}.error-boundary__btn--primary{background:var(--accent);color:var(--text-inverse);border:none}.error-boundary__btn--primary:hover{opacity:.85}.error-boundary__btn--ghost{color:var(--text);border:1px solid var(--border);background:0 0}.error-boundary__btn--ghost:hover{color:var(--text-h);background:var(--accent-bg);border-color:var(--accent-border)}.header{border-bottom:1px solid var(--border);padding:0 32px}@media (width<=1024px){.header{padding:0 16px}}.header-inner{align-items:center;gap:32px;height:60px;display:flex}.header-logo{color:var(--text-h);letter-spacing:-.3px;font-size:18px;font-weight:700;text-decoration:none}.header-logo:hover{color:var(--accent)}.header-nav{flex:1;align-items:center;gap:24px;display:flex}.header-nav a{color:var(--text);font-size:15px;text-decoration:none;transition:color .15s}.header-nav a:hover{color:var(--text-h)}.header-dropdown{position:relative}.header-dropdown:after{content:"";height:12px;position:absolute;top:100%;left:0;right:0}.header-dropdown__trigger{font:inherit;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;padding:0;font-size:15px;transition:color .15s}.header-dropdown__trigger:hover,.header-dropdown__trigger[aria-expanded=true]{color:var(--text-h)}.header-dropdown__trigger:focus-visible{outline:2px solid var(--accent-border);outline-offset:4px;border-radius:2px}.header-dropdown__menu{background:var(--surface);border:1px solid var(--border);opacity:0;pointer-events:none;border-radius:8px;min-width:160px;padding:4px;transition:opacity .15s,transform .15s;position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%)translateY(-4px);box-shadow:0 4px 16px #0000001f}.header-dropdown__menu--open{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.header-dropdown__item{color:var(--text);border-radius:6px;padding:8px 12px;font-size:14px;text-decoration:none;transition:background .1s,color .1s;display:block}.header-dropdown__item:hover,.header-dropdown__item:focus-visible{background:var(--bg);color:var(--text-h);outline:none}.header-auth{align-items:center;gap:8px;margin-left:auto;display:flex}.header-btn{font:inherit;cursor:pointer;border-radius:8px;padding:7px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:opacity .15s,background .15s}--primary.header-btn{background:var(--accent);color:var(--text-inverse);border:none}--primary.header-btn:hover{opacity:.85}--ghost.header-btn{color:var(--text);border:1px solid var(--border);background:0 0}--ghost.header-btn:hover{color:var(--text-h);background:var(--accent-bg);border-color:var(--accent-border)}.footer{border-top:1px solid var(--border);margin-top:auto}.footer-inner{gap:64px;padding:48px 32px;display:flex}@media (width<=1024px){.footer-inner{flex-direction:column;gap:40px;padding:40px 24px}}.footer-brand{flex-direction:column;flex-shrink:0;gap:10px;display:flex}.footer-brand p{color:var(--text);max-width:200px;font-size:14px;line-height:1.5}.footer-logo{color:var(--text-h);letter-spacing:-.3px;font-size:17px;font-weight:600;text-decoration:none}.footer-logo:hover{color:var(--accent)}.footer-nav{flex-wrap:wrap;flex:1;gap:48px;display:flex}@media (width<=1024px){.footer-nav{gap:32px}}.footer-nav-col{flex-direction:column;gap:12px;display:flex}.footer-nav-col ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.footer-nav-col a{color:var(--text);font-size:14px;text-decoration:none;transition:color .15s}.footer-nav-col a:hover{color:var(--text-h)}.footer-nav-title{color:var(--text-h);text-transform:uppercase;letter-spacing:.6px;font-size:13px;font-weight:600}.footer-bottom{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:16px 32px;display:flex}.footer-bottom p,.footer-bottom a{color:var(--text);font-size:13px;text-decoration:none}:is(.footer-bottom p,.footer-bottom a):hover{color:var(--text-h)}@media (width<=1024px){.footer-bottom{flex-direction:column;align-items:flex-start;gap:4px;padding:16px 24px}}.page-fallback{flex:1;justify-content:center;align-items:center;min-height:50vh;display:flex}.page-fallback__spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite page-fallback-spin}@keyframes page-fallback-spin{to{transform:rotate(360deg)}}.home-page{flex-direction:column;flex:1;display:flex}.home-hero{text-align:center;border-bottom:1px solid var(--border);flex-direction:column;align-items:center;padding:80px 32px 72px;display:flex}@media (width<=1024px){.home-hero{padding:48px 24px}}.home-title{letter-spacing:-2.5px;margin:0 0 24px;font-size:64px;font-weight:700;line-height:1.1}@media (width<=1024px){.home-title{letter-spacing:-1px;font-size:40px}}.home-title-accent{color:var(--accent)}.home-subtitle{color:var(--text);max-width:520px;margin:0 0 40px;font-size:18px;line-height:1.6}@media (width<=1024px){.home-subtitle{font-size:16px}}.home-cta{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.btn{font:inherit;cursor:pointer;border-radius:8px;align-items:center;padding:11px 24px;font-size:15px;font-weight:500;text-decoration:none;transition:opacity .15s,background .15s;display:inline-flex}--primary.btn{background:var(--accent);color:var(--text-inverse);border:none}--primary.btn:hover{opacity:.85}--ghost.btn{color:var(--text-h);border:1px solid var(--border);background:0 0}--ghost.btn:hover{background:var(--accent-bg);border-color:var(--accent-border)}.home-features{grid-template-columns:repeat(3,1fr);gap:0;display:grid}@media (width<=1024px){.home-features{grid-template-columns:1fr}}.feature-card{border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;padding:40px 32px;transition:background .15s}.feature-card:last-child{border-right:none}.feature-card:hover{background:var(--surface)}.feature-card:nth-last-child(-n+3){border-bottom:none}@media (width<=1024px){.feature-card{border-right:none;padding:28px 24px}.feature-card:nth-last-child(-n+3){border-bottom:1px solid var(--border)}.feature-card:last-child{border-bottom:none}}.feature-card h2{letter-spacing:-.3px;color:var(--text-h);margin:0 0 10px;font-size:18px;font-weight:600}.feature-card p{color:var(--text);font-size:15px;line-height:1.6}.login-page{flex:1;justify-content:center;align-items:center;padding:48px 24px;display:flex}.login-card{background:var(--bg);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:12px;padding:40px}.login-title{letter-spacing:-.5px;text-align:center;margin:0 0 32px;font-size:28px}.login-form{flex-direction:column;gap:20px;display:flex}.form-field{flex-direction:column;gap:6px;display:flex}.form-field label{color:var(--text-h);font-size:14px;font-weight:500}.form-field input{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:8px;padding:10px 14px;font-size:15px;transition:border-color .15s}.form-field input::placeholder{color:var(--text);opacity:.6}.form-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.login-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:8px;margin:0;padding:10px 14px;font-size:14px}.login-submit{background:var(--accent);color:var(--text-inverse);font:inherit;cursor:pointer;border:none;border-radius:8px;margin-top:4px;padding:11px;font-size:15px;font-weight:500;transition:opacity .15s}.login-submit:hover:not(:disabled){opacity:.85}.login-submit:disabled{opacity:.5;cursor:not-allowed}.login-switch{text-align:center;color:var(--text);margin:24px 0 0;font-size:14px}.login-switch button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.login-switch button:hover{text-decoration:underline}
