/* ===========================================
   TABMARK DESIGN SYSTEM
   Shared CSS variables, reset, and base styles
   =========================================== */

/* ===========================================
   CSS VARIABLES & DESIGN TOKENS
   =========================================== */
:root {
    /* Colors */
    --lavender-bg: #e8d5ff;
    --lavender-light: #f3eaff;
    --lavender-dark: #cdb4f5;
    --gradient-primary: linear-gradient(135deg, #5B3BA1 0%, #FFB088 100%);
    --gradient-subtle: linear-gradient(135deg, rgba(91, 59, 161, 0.05) 0%, rgba(255, 176, 136, 0.05) 100%);
    --purple: #5B3BA1;
    --orange: #FFB088;
    --green: #4CAF50;
    --green-hover: #45a049;
    --dark: #2d3748;
    --medium: #4a5568;
    --light: #718096;
    --very-light: #e2e8f0;
    --white: #ffffff;

    /* Typography */
    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    /* Spacing Scale */
    --space-xs: 0.5rem;
    --space-sm: 1rem;
    --space-md: 1.5rem;
    --space-lg: 2rem;
    --space-xl: 3rem;
    --space-2xl: 4rem;
    --space-3xl: 6rem;

    /* Shadows (purple-tinted) */
    --shadow-sm: 0 2px 4px rgba(91, 59, 161, 0.08);
    --shadow-md: 0 4px 12px rgba(91, 59, 161, 0.12);
    --shadow-lg: 0 8px 24px rgba(91, 59, 161, 0.16);
    --shadow-xl: 0 16px 48px rgba(91, 59, 161, 0.2);

    /* Border Radius */
    --radius-sm: 0.5rem;
    --radius-md: 1rem;
    --radius-lg: 1.5rem;
    --radius-full: 9999px;

    /* Transitions */
    --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ===========================================
   RESET & BASE STYLES
   =========================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 80px;
}

body {
    font-family: var(--font-sans);
    font-size: 1rem;
    line-height: 1.6;
    color: var(--dark);
    background: var(--lavender-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* ===========================================
   ACCESSIBILITY
   =========================================== */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    html {
        scroll-behavior: auto;
    }
}

/* ===========================================
   ANIMATIONS
   =========================================== */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes float {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

@keyframes subtle-pulse {
    0%, 100% {
        box-shadow: 0 4px 16px rgba(76, 175, 80, 0.25),
                    0 0 40px rgba(76, 175, 80, 0.2),
                    0 8px 32px rgba(91, 59, 161, 0.1);
    }
    50% {
        box-shadow: 0 4px 16px rgba(76, 175, 80, 0.35),
                    0 0 50px rgba(76, 175, 80, 0.25),
                    0 8px 32px rgba(91, 59, 161, 0.12);
    }
}

/* Scroll-triggered fade-in utility */
.fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}
