@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
    --radius: 0.75rem;
    /* Dark by default */
    --background: oklch(0.16 0.015 260);
    --foreground: oklch(0.96 0.005 250);
    --surface: oklch(0.20 0.018 260);
    --surface-elevated: oklch(0.24 0.02 260);
    --card: oklch(0.20 0.018 260);
    --card-foreground: oklch(0.96 0.005 250);
    --popover: oklch(0.20 0.018 260);
    --popover-foreground: oklch(0.96 0.005 250);
    --primary: oklch(0.68 0.18 270);            /* indigo */
    --primary-foreground: oklch(0.16 0.015 260);
    --secondary: oklch(0.26 0.02 260);
    --secondary-foreground: oklch(0.96 0.005 250);
    --muted: oklch(0.24 0.018 260);
    --muted-foreground: oklch(0.72 0.02 260);
    --accent: oklch(0.78 0.15 200);              /* cyan */
    --accent-foreground: oklch(0.16 0.015 260);
    --cyan-accent: oklch(0.78 0.15 200);
    --emerald-accent: oklch(0.78 0.16 165);
    --destructive: oklch(0.62 0.22 25);
    --destructive-foreground: oklch(0.98 0.005 250);
    --border: oklch(1 0 0 / 8%);
    --input: oklch(1 0 0 / 10%);
    --ring: oklch(0.68 0.18 270);
    --gradient-hero: radial-gradient(ellipse at top, oklch(0.30 0.12 270 / 0.35), transparent 60%),
                     radial-gradient(ellipse at bottom right, oklch(0.30 0.10 200 / 0.25), transparent 55%);
    --gradient-primary: linear-gradient(135deg, oklch(0.68 0.18 270), oklch(0.78 0.15 200));
    --gradient-text: linear-gradient(135deg, oklch(0.96 0.005 250), oklch(0.78 0.15 200));
    --shadow-glow: 0 20px 60px -20px oklch(0.68 0.18 270 / 0.5);
    --shadow-card: 0 8px 30px -10px oklch(0 0 0 / 0.5);
}

html {
    scroll-behavior: smooth;
}

body {
    background-color: var(--background);
    color: var(--foreground);
    background-image: var(--gradient-hero);
    background-attachment: fixed;
    -webkit-font-smoothing: antialiased;
}

::selection {
    background: oklch(0.68 0.18 270 / 0.35);
}

.text-gradient {
    background: var(--gradient-text);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.bg-gradient-primary {
    background: var(--gradient-primary);
}

.shadow-glow {
    box-shadow: var(--shadow-glow);
}

.shadow-card {
    box-shadow: var(--shadow-card);
}

.glass-card {
    background: color-mix(in oklab, var(--surface) 70%, transparent);
    backdrop-filter: blur(12px);
    border: 1px solid var(--border);
}

.input-base {
    width: 100%;
    background: var(--surface-elevated);
    border: 1px solid var(--border);
    border-radius: 0.75rem;
    padding: 0.75rem 1rem;
    font-size: 0.9rem;
    color: var(--foreground);
    transition: border-color .15s, box-shadow .15s;
    outline: none;
}

.input-base::placeholder {
    color: oklch(0.55 0.02 260);
}

.input-base:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 25%, transparent);
}
