@import 'tailwindcss';
@import 'tw-animate-css';
@import '@fontsource-variable/geist';
@import '@fontsource-variable/geist-mono';
@import '@fontsource-variable/inter';
@plugin '@tailwindcss/forms';

@source '../views/**/*.blade.php';
@source '../js/**/*.tsx';

@custom-variant dark (&:is(.dark *));

:root {
    --radius: 0.75rem;
    --background: oklch(0.99 0 0);
    --foreground: oklch(0.2 0.01 270);
    --card: oklch(1 0 0);
    --card-foreground: var(--foreground);
    --popover: oklch(1 0 0);
    --popover-foreground: var(--foreground);
    --primary: oklch(0.45 0.12 275);
    --primary-foreground: oklch(0.99 0 0);
    --secondary: oklch(0.96 0.003 270);
    --secondary-foreground: oklch(0.25 0.01 270);
    --muted: oklch(0.96 0.003 270);
    --muted-foreground: oklch(0.5 0.01 270);
    --accent: oklch(0.95 0.01 275);
    --accent-foreground: oklch(0.25 0.02 275);
    --destructive: oklch(0.577 0.2 25);
    --border: oklch(0.92 0.004 270);
    --input: oklch(0.92 0.004 270);
    --ring: oklch(0.55 0.1 275);
    --glass: oklch(1 0 0 / 0.7);
}

.dark {
    --background: oklch(0.145 0.004 270);
    --foreground: oklch(0.96 0.003 270);
    --card: oklch(0.175 0.005 270);
    --card-foreground: var(--foreground);
    --popover: oklch(0.18 0.005 270);
    --popover-foreground: var(--foreground);
    --primary: oklch(0.75 0.1 275);
    --primary-foreground: oklch(0.15 0.01 270);
    --secondary: oklch(0.22 0.005 270);
    --secondary-foreground: oklch(0.95 0.003 270);
    --muted: oklch(0.22 0.005 270);
    --muted-foreground: oklch(0.68 0.01 270);
    --accent: oklch(0.25 0.01 275);
    --accent-foreground: oklch(0.96 0.003 270);
    --destructive: oklch(0.65 0.19 25);
    --border: oklch(1 0 0 / 0.08);
    --input: oklch(1 0 0 / 0.1);
    --ring: oklch(0.65 0.09 275);
    --glass: oklch(0.16 0.005 270 / 0.65);
}

@theme inline {
    --font-sans: 'Geist Variable', 'Inter Variable', ui-sans-serif, system-ui, sans-serif;
    --font-mono: 'Geist Mono Variable', ui-monospace, monospace;
    --color-background: var(--background);
    --color-foreground: var(--foreground);
    --color-card: var(--card);
    --color-card-foreground: var(--card-foreground);
    --color-popover: var(--popover);
    --color-popover-foreground: var(--popover-foreground);
    --color-primary: var(--primary);
    --color-primary-foreground: var(--primary-foreground);
    --color-secondary: var(--secondary);
    --color-secondary-foreground: var(--secondary-foreground);
    --color-muted: var(--muted);
    --color-muted-foreground: var(--muted-foreground);
    --color-accent: var(--accent);
    --color-accent-foreground: var(--accent-foreground);
    --color-destructive: var(--destructive);
    --color-border: var(--border);
    --color-input: var(--input);
    --color-ring: var(--ring);
    --color-glass: var(--glass);
    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
}

@layer base {
    * {
        @apply border-border outline-ring/50;
    }
    html {
        color-scheme: light;
    }
    html.dark {
        color-scheme: dark;
    }
    body {
        @apply bg-background text-foreground font-sans antialiased;
        font-feature-settings: 'cv11', 'ss01';
    }
}

/* Type scale: one place to tune hierarchy */
@utility text-display {
    font-size: clamp(2.5rem, 5vw + 1rem, 4rem);
    line-height: 1.03;
    letter-spacing: -0.035em;
    font-weight: 600;
}
@utility text-h1 {
    font-size: clamp(1.75rem, 2vw + 1rem, 2.5rem);
    line-height: 1.1;
    letter-spacing: -0.028em;
    font-weight: 600;
}
@utility text-h2 {
    font-size: 1.375rem;
    line-height: 1.25;
    letter-spacing: -0.02em;
    font-weight: 600;
}
@utility text-h3 {
    font-size: 1.0625rem;
    line-height: 1.35;
    letter-spacing: -0.012em;
    font-weight: 600;
}
@utility text-body {
    font-size: 0.9375rem;
    line-height: 1.65;
}
@utility text-caption {
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--muted-foreground);
}
@utility text-overline {
    font-size: 0.6875rem;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--muted-foreground);
}

@utility shadow-soft {
    box-shadow: 0 1px 0 0 oklch(1 0 0 / 0.04) inset, 0 1px 2px oklch(0 0 0 / 0.12), 0 8px 24px -8px oklch(0 0 0 / 0.25);
}
@utility shadow-lift {
    box-shadow: 0 1px 0 0 oklch(1 0 0 / 0.06) inset, 0 4px 8px oklch(0 0 0 / 0.14), 0 24px 48px -12px oklch(0 0 0 / 0.4);
}

@utility glass {
    background: var(--glass);
    backdrop-filter: blur(16px) saturate(140%);
    -webkit-backdrop-filter: blur(16px) saturate(140%);
}

@keyframes shimmer {
    to { transform: translateX(100%); }
}

@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}
