
:root {
    /* Modern OKLCH Colors (Light Mode) */
    --primary: oklch(45.2% 0.16 250.2); /* Deep Trustworthy Blue */
    --accent: oklch(65% 0.15 190.1);  /* Medical Teal/Aqua */
    --bg-main: oklch(98% 0.01 250);   /* Near White with a hint of cool blue */
    --bg-surface: oklch(100% 0 0);    /* Pure White */
    --text-bold: oklch(25% 0.02 250);
    --text-regular: oklch(45% 0.02 250);
    --header-bg: rgba(255, 255, 255, 0.8);
    --white: #ffffff;
    
    /* Shadows & Depth */
    --shadow-sm: 0 2px 4px oklch(0% 0 0 / 5%);
    --shadow-md: 0 8px 16px -4px oklch(0% 0 0 / 8%), 0 4px 8px -4px oklch(0% 0 0 / 4%);
    --shadow-lg: 0 20px 25px -5px oklch(0% 0 0 / 10%), 0 10px 10px -5px oklch(0% 0 0 / 4%);
    
    /* Spacing */
    --spacing-xs: 0.5rem;
    --spacing-sm: 1rem;
    --spacing-md: 2rem;
    --spacing-lg: 4rem;
    --spacing-xl: 8rem;

    transition: background-color 0.3s ease, color 0.3s ease;
}

[data-theme="dark"] {
    --primary: oklch(70% 0.12 250);   /* Brighter Blue for Dark Mode */
    --accent: oklch(75% 0.15 190);    /* Vibrant Teal */
    --bg-main: oklch(15% 0.02 250);   /* Deep Navy/Black */
    --bg-surface: oklch(20% 0.02 250); /* Darker Grey/Blue */
    --text-bold: oklch(95% 0.01 250);
    --text-regular: oklch(80% 0.02 250);
    --header-bg: rgba(21, 25, 36, 0.8);
    --shadow-sm: 0 2px 4px oklch(0% 0 0 / 30%);
    --shadow-md: 0 8px 16px -4px oklch(0% 0 0 / 40%), 0 4px 8px -4px oklch(0% 0 0 / 20%);
    --shadow-lg: 0 20px 25px -5px oklch(0% 0 0 / 50%), 0 10px 10px -5px oklch(0% 0 0 / 30%);
}

@layer base {
    * {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
    }

    html {
        scroll-behavior: smooth;
    }

    body {
        font-family: 'Noto Sans KR', system-ui, -apple-system, sans-serif;
        background-color: var(--bg-main);
        color: var(--text-regular);
        line-height: 1.6;
        overflow-x: hidden;
        /* Subtle noise texture */
        background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
        background-blend-mode: overlay;
        background-attachment: fixed;
    }

    h1, h2, h3 {
        color: var(--text-bold);
        font-weight: 700;
        line-height: 1.2;
    }

    a {
        text-decoration: none;
        color: inherit;
        transition: all 0.3s ease;
    }
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--spacing-md);
}

/* Global utility for consistent section spacing */
section {
    padding: var(--spacing-lg) 0;
}

/* Animations */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.animate-in {
    animation: fadeIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
