:root {
    /* Color Palette - Elegant Dark Mode */
    --clr-primary: 345, 80%, 35%; /* Deep Burgundy */
    --clr-primary-light: 345, 70%, 50%;
    --clr-accent: 42, 87%, 55%; /* Champagne Gold */
    --clr-accent-dim: 42, 87%, 30%;
    
    /* True Dark Base (Replacing flat slate with a richer depth) */
    --clr-bg-base: 240, 6%, 6%; /* Almost black with a hint of blue */
    --clr-bg-card: 240, 6%, 10%; 
    --clr-bg-surface: 240, 6%, 14%; 
    
    /* Typography Colors */
    --clr-text-main: 0, 0%, 98%;
    --clr-text-muted: 220, 10%, 65%;
    --clr-text-subtle: 220, 10%, 45%;
    
    --clr-success: 140, 60%, 40%;
    --clr-warning: 30, 80%, 50%;
    --clr-danger: 0, 70%, 50%;

    /* Typography */
    --font-heading: 'Playfair Display', serif;
    --font-body: 'Outfit', sans-serif;

    /* Spacing & Layout */
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    
    --radius-sm: 0.5rem;
    --radius-md: 0.75rem;
    --radius-lg: 1.25rem;
    --radius-xl: 2rem;
    --radius-full: 9999px;

    /* Glassmorphism Effects */
    --shadow-soft: 0 8px 32px rgba(0, 0, 0, 0.4);
    --shadow-glow: 0 0 20px hsla(var(--clr-primary), 0.3);
    
    /* 
       The core of glassmorphism: 
       - Background is extremely sheer 
       - Border is delicate and crisp
       - Blur is heavy to diffuse whatever is behind it
    */
    --glass-bg: rgba(255, 255, 255, 0.03);
    --glass-bg-hover: rgba(255, 255, 255, 0.06);
    --glass-border: rgba(255, 255, 255, 0.1);
    --glass-border-hover: rgba(255, 255, 255, 0.2);
    --glass-blur: blur(16px);
    
    /* Transitions */
    --trans-fast: 0.15s ease-out;
    --trans-normal: 0.3s ease-out;
    --trans-bounce: 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--font-body);
    background-color: hsl(var(--clr-bg-base));
    color: hsl(var(--clr-text-main));
    line-height: 1.6;
    min-height: 100vh;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    /* Optional: A very subtle grain or radial gradient can be added here later */
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    line-height: 1.15;
    font-weight: 500;
    letter-spacing: -0.01em;
}

a {
    color: hsl(var(--clr-primary-light));
    text-decoration: none;
    transition: color var(--trans-fast);
}

a:hover {
    color: hsl(var(--clr-primary));
}

button {
    font-family: var(--font-body);
}

#app {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Mobile Overrides */
@media (max-width: 768px) {
    :root {
        /* Reduce overall spacing */
        --space-md: 0.75rem;
        --space-lg: 1rem;
        --space-xl: 1.5rem;
        --space-2xl: 2rem;

        /* Slightly tighten text */
        --font-size-base: 0.95rem;
    }

    h1 { font-size: 2.2rem; }
    h2 { font-size: 1.8rem; }
    h3 { font-size: 1.3rem; }
}
