@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap");:root{--bg-base:#08090b;--bg-surface:#111318;--bg-elevated:#191c24;--bg-glass:hsla(0,0%,100%,.03);--border:hsla(0,0%,100%,.08);--accent:#7c6ff7;--accent-glow:rgba(124,111,247,.3);--success:#34d399;--danger:#f87171;--text-primary:#f0f1f5;--text-secondary:#9ea3b5;--text-muted:#4d5262;--font-sans:"Inter",system-ui,sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-lg:0 8px 32px rgba(0,0,0,.6);--transition:180ms cubic-bezier(0.4,0,0.2,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:15px;line-height:1.6;background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh}h1{font-size:32px;font-weight:700;letter-spacing:-.5px}h2{font-size:22px;font-weight:600}p{color:var(--text-secondary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.1);border-radius:99px}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border:none;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;transition:background var(--transition),transform var(--transition)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.15)}.btn-ghost{background:var(--bg-glass);border:1px solid var(--border);color:var(--text-secondary)}.btn-ghost:hover{background:hsla(0,0%,100%,.07);color:var(--text-primary)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:600;letter-spacing:.3px}.badge-accent{background:rgba(124,111,247,.15);color:var(--accent)}.badge-success{background:rgba(52,211,153,.15);color:var(--success)}.badge-danger{background:hsla(0,91%,71%,.15);color:var(--danger)}.badge-muted{background:var(--bg-elevated);color:var(--text-muted)}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeUp .38s cubic-bezier(.4,0,.2,1) both}