/* Project-level variables and global resets */
:root {
    /* Colors */
    --bg-dark: #050505;
    --bg-light: #111111;
    --accent: rgb(5, 170, 161);
    --text-primary: #f5f5f5;
    --text-secondary: #a3a3a3;

    /* Accent tints derived dynamically from --accent */
    /* Uses color-mix for broad modern browser support */
    --accent-05: color-mix(in srgb, var(--accent) 5%, transparent);
    --accent-08: color-mix(in srgb, var(--accent) 8%, transparent);
    --accent-10: color-mix(in srgb, var(--accent) 10%, transparent);
    --accent-12: color-mix(in srgb, var(--accent) 12%, transparent);
    --accent-16: color-mix(in srgb, var(--accent) 16%, transparent);
    --accent-35: color-mix(in srgb, var(--accent) 35%, transparent);
    /* Back-compat alias */
    --accent-soft: var(--accent-12);

    /* Spacing scale */
    --space-2: 2px;
    --space-4: 4px;
    --space-6: 6px;
    --space-8: 8px;
    --space-10: 10px;
    --space-12: 12px;
    --space-14: 14px;
    --space-16: 16px;
    --space-18: 18px;
    --space-20: 20px;
    --space-24: 24px;
    --space-28: 28px;
    --space-32: 32px;
    --space-36: 36px;
    --space-40: 40px;
    --space-48: 48px;
    --space-52: 52px;
    --space-56: 56px;
    --space-64: 64px;
    --space-72: 72px;
    --space-80: 80px;
    --space-96: 96px;
    --space-120: 120px;

    /* Radius tokens */
    --radius-12: 12px;
    --radius-14: 14px;
    --radius-16: 16px;
    --radius-18: 18px;
    --radius-20: 20px;
    --radius-24: 24px;
    --radius-28: 28px;
    --radius-pill: 999px;

    /* Typography */
    --font-family: 'Inter', 'Segoe UI', sans-serif;
    --font-size-sm: 0.85rem;
    --font-size-base: 0.95rem;
    --font-size-md: 1.05rem;
    --font-size-lg: 1.2rem;
    --font-size-xl: 2rem;
    --font-size-xxl: clamp(2.6rem, 3.8vw, 3.8rem);
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;

    /* Layout tokens */
    --max-width: 1080px;
    --shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
    --transition: all 0.2s ease;
    /* Sticky header height reference */
    --header-height: 84px;
    font-family: var(--font-family);
}

/* Native smooth scrolling for in-page anchors */
html { scroll-behavior: smooth; }

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

body {
    background: radial-gradient(circle at top left, rgba(255, 255, 255, 0.08), transparent 45%),
                radial-gradient(circle at top right, rgba(255, 255, 255, 0.06), transparent 40%),
                var(--bg-dark);
    color: var(--text-primary);
    font-family: 'Inter', 'Segoe UI', sans-serif;
    line-height: 1.6;
    min-height: 100vh;
}

/* Decorative background image layer (under content) */
.bg-arcs {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: url('images/stripes.png');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    opacity: 0.18;
}

@media (max-width: 768px) {
    .bg-arcs { opacity: 0.18; }
}

/* On small screens, disable scroll snapping to avoid
   unintended snap-back to the hero during anchor navigation */
@media (max-width: 768px) {
    html { scroll-snap-type: none; }
}

/* Offset anchor targets to account for sticky header */
[id] { scroll-margin-top: var(--header-height); }

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}
