@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Space+Mono:wght@400;700&display=swap";
:root{--bg:#050508;--bg-glass:#0c0c16b8;--surface:#0d0d1a;--surface-2:#12122a;--border:#7878ff1f;--text-primary:#e8e8f0;--text-secondary:#e8e8f08c;--accent:#7b7bff;--accent-glow:#7b7bff4d;--accent-dim:#7b7bff26;--danger:#f57;--success:#4fa;--font-sans:"Inter", system-ui, sans-serif;--font-mono:"Space Mono", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);height:100%;color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--accent-dim);border-radius:2px}.mono{font-family:var(--font-mono)}.glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px)saturate(1.4);backdrop-filter:blur(20px)saturate(1.4);border:1px solid var(--border)}.btn{font-family:var(--font-sans);letter-spacing:.03em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:none;border-radius:8px;outline:none;justify-content:center;align-items:center;gap:8px;padding:12px 28px;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 0 24px var(--accent-glow)}.btn-primary:hover:not(:disabled){box-shadow:0 0 36px var(--accent-glow);transform:translateY(-1px)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--text-primary);border-color:#7b7bff59}.input{background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text-primary);font-family:var(--font-mono);letter-spacing:.04em;border-radius:8px;outline:none;padding:14px 18px;font-size:15px;transition:border-color .2s,box-shadow .2s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.input::placeholder{color:var(--text-secondary)}
