*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--brand:#6c47ff;--brand-dark:#4f2fe0;--accent:#ff6b6b;--bg:#0f0f13;--surface:#1a1a24;--border:#2e2e40;--text:#f0f0f5;--muted:#88a;--radius:12px;--max:780px}html{font-size:16px}body{background:var(--bg);color:var(--text);min-height:100dvh;font-family:Segoe UI,system-ui,sans-serif;line-height:1.6}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 1.25rem}.nav{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex;position:sticky;top:0}.nav-logo{color:var(--text);letter-spacing:-.5px;font-size:1.25rem;font-weight:800}.nav-logo span{color:var(--brand)}.nav-links{gap:1.5rem;list-style:none;display:flex}.nav-links a{color:var(--muted);font-size:.9rem;font-weight:500;transition:color .15s}.nav-links a:hover{color:var(--text);text-decoration:none}.hero{text-align:center;padding:4rem 0 2rem}.hero h1{letter-spacing:-1px;font-size:clamp(2rem,5vw,3.5rem);font-weight:900;line-height:1.1}.hero h1 .highlight{color:var(--brand)}.hero p{color:var(--muted);max-width:500px;margin-top:1rem;margin-left:auto;margin-right:auto;font-size:1.1rem}.hero-actions{flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:2rem;display:flex}.btn{border-radius:var(--radius);cursor:pointer;border:none;align-items:center;gap:.5rem;padding:.7rem 1.5rem;font-size:.95rem;font-weight:600;transition:opacity .15s,transform .1s;display:inline-flex}.btn:hover{opacity:.88;text-decoration:none;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--brand);color:#fff}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.card+.card{margin-top:1rem}.badge{text-transform:uppercase;letter-spacing:.5px;border-radius:999px;padding:.2rem .65rem;font-size:.75rem;font-weight:700;display:inline-block}.badge-easy{color:#4caf50;background:#1a3a1a}.badge-medium{color:#ff9800;background:#3a2a10}.badge-hard{color:#f44336;background:#3a1010}.form-group{flex-direction:column;gap:.4rem;margin-bottom:1.25rem;display:flex}label{color:var(--muted);font-size:.85rem;font-weight:600}input,textarea,select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;padding:.7rem 1rem;font-family:inherit;font-size:.95rem;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--brand);outline:none}.form-hint{color:var(--muted);font-size:.78rem}.form-error{color:var(--accent);margin-top:.25rem;font-size:.82rem}.alert{border-radius:var(--radius);margin-bottom:1.5rem;padding:1rem 1.25rem;font-size:.9rem;font-weight:500}.alert-success{color:#81c784;background:#1a3a1a;border:1px solid #2e6b2e}.alert-error{color:#ef9a9a;background:#3a1010;border:1px solid #7a2020}.leaderboard{border-collapse:collapse;width:100%}.leaderboard th,.leaderboard td{text-align:left;border-bottom:1px solid var(--border);padding:.85rem 1rem;font-size:.9rem}.leaderboard th{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:.78rem;font-weight:600}.leaderboard tr:last-child td{border-bottom:none}.leaderboard tr:hover td{background:#ffffff08}.rank-1{color:gold;font-weight:800}.rank-2{color:silver;font-weight:700}.rank-3{color:#cd7f32;font-weight:700}.votes-pill{color:var(--brand);background:#6c47ff26;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .65rem;font-size:.85rem;font-weight:700;display:inline-flex}.section{padding:2.5rem 0}.section-title{letter-spacing:-.3px;margin-bottom:1.5rem;font-size:1.4rem;font-weight:800}.footer{text-align:center;color:var(--muted);border-top:1px solid var(--border);margin-top:4rem;padding:2.5rem 1rem;font-size:.82rem}.spinner{border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;width:28px;height:28px;margin:2rem auto;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--muted);padding:3rem 1rem}.empty-icon{margin-bottom:.75rem;font-size:2.5rem}@media (max-width:520px){.nav-links{gap:1rem}.hero{padding:2.5rem 0 1.5rem}.leaderboard th:nth-child(3),.leaderboard td:nth-child(3){display:none}}
