/* =====================================================
   ARK FORTUNE - Premium IT Consulting Website
   World-Class Design System v2.0
   Multi-Page Version
   ===================================================== */

/* CSS Variables */
:root {
    interpolate-size: allow-keywords;
    /* Primary Colors — ARK Fortune deep royal purple (var names kept for compatibility) */
    --primary-blue: #6D4AE6;        /* deep royal violet — the signature */
    --primary-blue-light: #8B6BF0;  /* lighter accent / hover */
    --primary-blue-dark: #5938C9;   /* deep pressed/active */
    --royal-blue: #4B2FA8;          /* deepest royal */

    /* Accent Colors */
    --gold: #f59e0b;
    --gold-light: #fbbf24;
    --gold-dark: #d97706;

    /* Neutral Colors */
    --navy-900: #0a0f1a;
    --navy-800: #0f172a;
    --navy-700: #1e293b;
    --navy-600: #334155;
    --slate-500: #64748b;
    --slate-400: #94a3b8;
    --slate-300: #cbd5e1;
    --slate-200: #e2e8f0;
    --white: #ffffff;

    /* Gradients */
    --gradient-primary: linear-gradient(135deg, #6D4AE6 0%, #8B6BF0 100%);
    --gradient-gold: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);
    --gradient-dark: linear-gradient(180deg, #0a0f1a 0%, #1e293b 100%);
    --gradient-card: linear-gradient(145deg, rgba(30, 41, 59, 0.8) 0%, rgba(15, 23, 42, 0.95) 100%);
    --gradient-glow: radial-gradient(circle, rgba(109, 74, 230, 0.3) 0%, transparent 70%);

    /* Glass Effect */
    --glass-bg: var(--tint-05);
    --glass-border: var(--tint-10);
    --glass-blur: blur(20px);

    /* Shadows */
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.1);
    --shadow-md: 0 4px 20px rgba(0, 0, 0, 0.15);
    --shadow-lg: 0 8px 40px rgba(0, 0, 0, 0.2);
    --shadow-xl: 0 20px 60px rgba(0, 0, 0, 0.3);
    --shadow-glow: 0 0 40px rgba(109, 74, 230, 0.4);
    --shadow-gold: 0 0 30px rgba(245, 158, 11, 0.3);

    /* Typography — site-wide system: General Sans (display/headings) + Inter (body).
       General Sans = the geometric-humanist display font (Fontshare). Space Grotesk
       kept only as a fallback while General Sans loads. Single source of truth. */
    --font-secondary: 'Inter', sans-serif;
    --font-display: 'General Sans', var(--font-display);

    /* Spacing */
    --section-padding: 100px;
    --container-padding: 24px;

    /* Transitions */
    --transition-fast: 0.2s ease;
    --transition-normal: 0.3s ease;
    --transition-slow: 0.5s ease;
    --transition-elastic: 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* Theme surface tints — translucent white washes used throughout the dark UI
   (glass fills, hairline borders, highlight overlays). Each dark value is
   byte-identical to the literal it replaces, so dark mode renders unchanged.
   In light mode these flip to dark washes. Definitions are written WITHOUT
   internal spaces so the literal-replacement pass can't match them. */
:root {
    --tint-02: rgba(255,255,255,0.02);
    --tint-03: rgba(255,255,255,0.03);
    --tint-04: rgba(255,255,255,0.04);
    --tint-05: rgba(255,255,255,0.05);
    --tint-06: rgba(255,255,255,0.06);
    --tint-07: rgba(255,255,255,0.07);
    --tint-08: rgba(255,255,255,0.08);
    --tint-10: rgba(255,255,255,0.1);
    --tint-12: rgba(255,255,255,0.12);
    --tint-14: rgba(255,255,255,0.14);
    --tint-15: rgba(255,255,255,0.15);
    --tint-18: rgba(255,255,255,0.18);
    --tint-20: rgba(255,255,255,0.2);
    --tint-25: rgba(255,255,255,0.25);
    --tint-30: rgba(255,255,255,0.3);
    /* Text that always sits on a colored/accent fill — stays light in both themes */
    --on-accent: #ffffff;
    /* Mobile slide-out menu backdrop (frosted) */
    --nav-mobile-bg: rgba(10,15,26,0.6);
}

/* =====================================================
   LIGHT THEME  ([data-theme="light"] on <html>)
   Opt-in. Dark remains the default brand identity.
   Brand accents (blue / gold / purple) are intentionally
   unchanged across themes.
   ===================================================== */
[data-theme="light"] {
    /* ============================================================
       ENTERPRISE LIGHT PALETTE (§2 of the light-theme audit).
       Single source of truth for the crisp, Stripe/Linear-grade
       light theme. Named --l-* below, then wired into the legacy
       --navy-*/--slate-*/--white ramp so every existing rule that
       reads those vars cascades to the new palette with no markup
       changes. Rolls to the other 4 pages later by design.
       ============================================================ */
    /* WARM enterprise off-white (workless.ai-inspired, 2026-07-01). Was a cold
       blue-white (#FBFBFD / #F4F5F8 / #E6E8EE) that read clinical + let the hero
       aurora bleed grey. Nudged into a RESTRAINED warm neutral: warm + premium,
       but subtle enough to still read professional B2B (not a cream event site).
       Whole light theme is now cohesively warm — no warm-hero / cool-body clash. */
    --l-page:         #F8F5EF;   /* app canvas — warm off-white (restrained) */
    --l-surface:      #FFFDFA;   /* card / panel — faintest warm white (lifts off base) */
    --l-surface-2:    #F2EDE4;   /* raised surface, table headers, tint band — warm neutral */
    --l-border:       #E7E1D6;   /* hairline dividers + card borders — warm-neutral */
    --l-ink:          #0E1220;   /* primary heading / display ink */
    --l-ink-2:        #4A5163;   /* secondary body ink */
    --l-ink-3:        #656B7A;   /* tertiary / muted / captions (AA 4.5:1 on surface-2) */
    /* ============================================================
       LIGHT-MODE ACCENT = FERN / MONEY GREEN (client-approved 2026-07-01,
       "this looks better" — replaces the purple accent in LIGHT MODE ONLY).
       Dark mode is UNTOUCHED and stays royal purple.

       Two greens, split by WCAG AA contrast on the warm paper/white/tint:
         • #2F8F4E (fern)  — passes AA-LARGE (3:1) only → use for FILLS &
           white-text-on-green buttons (--gradient-primary below). NOT for small text.
         • #24713D (deep)  — passes AA-BODY (4.5:1 → ~5.1–5.9:1) on paper, white,
           AND the tint → the safe default for ALL accent text/icons/lines/dots,
           small or large. So --l-accent uses the DEEP green: nothing that reads
           it can ever fall below AA, whatever the size.
       Verified: #24713D on #F8F5EF=5.51, on #FFFDFA=5.90, on #E4F1E8=5.15 (all ≥4.5).
       ============================================================ */
    --l-accent:       #24713D;   /* accent text/icons/lines/dots — deep fern, AA-body everywhere */
    --l-accent-fill:  #2F8F4E;   /* bright fern for FILLS / white-text buttons (AA-large) */
    --l-accent-hover: #24713D;   /* deeper hover / pressed */
    --l-accent-tint:  #E4F1E8;   /* chip / active-card ground — deep-green ink sits on THIS */
    --l-positive:     #0E7C5A;   /* success / positive metric */

    /* Re-point the legacy purple accent ramp to GREEN in light mode only.
       Every rule that reads --primary-blue* / --royal-blue / --gradient-primary
       / --gradient-glow cascades to fern here with no per-rule edits. */
    --primary-blue:       #2F8F4E;   /* was #6D4AE6 — fern fill/large-accent */
    --primary-blue-light: #3EA85F;   /* was #8B6BF0 — lighter fern (hover/glow) */
    --primary-blue-dark:  #24713D;   /* was #5938C9 — deep pressed fern */
    --royal-blue:         #24713D;   /* was #4B2FA8 — deepest fern */
    --gradient-primary:   linear-gradient(135deg, #2F8F4E 0%, #3EA85F 100%);
    --gradient-glow:      radial-gradient(circle, rgba(47,143,78,0.30) 0%, transparent 70%);

    /* Shared white-card style — one elevation system, reused everywhere.
       Hairline border + two-layer soft shadow = real enterprise depth. */
    --l-card-border:  1px solid var(--l-border);
    --l-card-shadow:  0 1px 2px rgba(16,18,32,0.04), 0 8px 24px -12px rgba(16,18,32,0.10);

    /* Legacy ramp wired to the new palette (compat cascade) */
    --navy-900: var(--l-page);      /* page background */
    --navy-800: var(--l-surface);   /* card / panel background */
    --navy-700: var(--l-surface-2); /* raised surface, table headers */
    --navy-600: var(--l-border);    /* hover surface / deepest chrome */
    --slate-500: var(--l-ink-3);    /* tertiary text */
    --slate-400: var(--l-ink-2);    /* secondary text */
    --slate-300: var(--l-ink);      /* primary body text (AA on white) */
    --slate-200: var(--l-ink-2);
    --white: var(--l-ink);          /* heading / display text */

    /* Gradients reworked for light surfaces */
    --gradient-dark: linear-gradient(180deg, var(--l-surface) 0%, var(--l-surface-2) 100%);
    --gradient-card: linear-gradient(145deg, rgba(255,255,255,0.92) 0%, rgba(244,245,248,0.96) 100%);

    /* Glass → light frosted */
    --glass-bg: rgba(14,18,32,0.03);
    --glass-border: var(--l-border);
    --nav-mobile-bg: rgba(251,251,253,0.82);

    /* Shadows → real elevation on light (tuned to the card system) */
    --shadow-sm: 0 1px 2px rgba(16,18,32,0.04);
    --shadow-md: 0 4px 16px rgba(16,18,32,0.08);
    --shadow-lg: 0 8px 24px -12px rgba(16,18,32,0.10);
    --shadow-xl: 0 20px 48px -16px rgba(16,18,32,0.14);

    /* Surface tints flip white washes → dark ink washes (on the new ink #0E1220) */
    --tint-02: rgba(14,18,32,0.025);
    --tint-03: rgba(14,18,32,0.035);
    --tint-04: rgba(14,18,32,0.04);
    --tint-05: rgba(14,18,32,0.045);
    --tint-06: rgba(14,18,32,0.055);
    --tint-07: rgba(14,18,32,0.06);
    --tint-08: rgba(14,18,32,0.070);
    --tint-10: rgba(14,18,32,0.10);
    --tint-12: rgba(14,18,32,0.12);
    --tint-14: rgba(14,18,32,0.13);
    --tint-15: rgba(14,18,32,0.14);
    --tint-18: rgba(14,18,32,0.15);
    --tint-20: rgba(14,18,32,0.16);
    --tint-25: rgba(14,18,32,0.19);
    --tint-30: rgba(14,18,32,0.22);
}

/* Reset & Base */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    font-size: 16px;
    overflow-x: hidden;
    overflow-x: clip;   /* clip ≠ scroll container — keeps position:sticky alive */
}

body {
    font-family: var(--font-secondary);
    background: var(--navy-900);
    color: var(--slate-300);
    line-height: 1.6;
    overflow-x: hidden;
    overflow-x: clip;   /* clip ≠ scroll container — keeps position:sticky alive */
}

a {
    text-decoration: none;
    color: inherit;
}

button {
    cursor: pointer;
    border: none;
    background: none;
    font-family: inherit;
}

input,
textarea,
select {
    font-family: inherit;
}

ul {
    list-style: none;
}

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

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

/* =====================================================
   PRELOADER - IT CONSULTING THEME
   ===================================================== */
.preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--navy-900);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10002;
    transition: opacity 0.75s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}

.preloader.hidden {
    opacity: 0;
    visibility: hidden;
}

/* Seamless hand-off: the loader content gently lifts + fades as the panel
   dissolves to reveal the page underneath (instead of a flat cut). */
.preloader-content {
    transition: opacity 0.55s cubic-bezier(0.4, 0, 0.2, 1), transform 0.75s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: opacity, transform;
}
.preloader.hidden .preloader-content {
    opacity: 0;
    transform: translateY(-14px) scale(0.985);
}
@media (prefers-reduced-motion: reduce) {
    .preloader-content { transition: opacity 0.4s ease; }
    .preloader.hidden .preloader-content { transform: none; }
}

/* Circuit Background */
.preloader-circuit {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.circuit-svg {
    width: 100%;
    height: 100%;
    opacity: 0.6;
}

.circuit-path {
    fill: none;
    stroke: rgba(109, 74, 230, 0.15);
    stroke-width: 1;
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: drawCircuit 3s ease forwards;
}

.circuit-path.v {
    animation-delay: 0.5s;
}

@keyframes drawCircuit {
    to {
        stroke-dashoffset: 0;
    }
}

.circuit-nodes .node {
    fill: rgba(109, 74, 230, 0.3);
    animation: nodeGlow 2s ease-in-out infinite;
}

.circuit-nodes .node:nth-child(odd) {
    animation-delay: 0.5s;
}

.circuit-nodes .node:nth-child(3n) {
    animation-delay: 1s;
}

@keyframes nodeGlow {

    0%,
    100% {
        opacity: 0.3;
        r: 4;
    }

    50% {
        opacity: 1;
        r: 6;
    }
}

.data-pulses .pulse {
    fill: var(--primary-blue);
    filter: drop-shadow(0 0 8px var(--primary-blue));
}

/* Floating Tech Icons */
.preloader-icons {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.tech-icon {
    position: absolute;
    width: 50px;
    height: 50px;
    background: rgba(109, 74, 230, 0.1);
    border: 1px solid rgba(109, 74, 230, 0.2);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary-blue);
    font-size: 1.2rem;
    animation: floatIcon 6s ease-in-out infinite;
}

.icon-1 {
    top: 15%;
    left: 10%;
    animation-delay: 0s;
}

.icon-2 {
    top: 20%;
    right: 15%;
    animation-delay: 1s;
}

.icon-3 {
    bottom: 25%;
    left: 8%;
    animation-delay: 2s;
}

.icon-4 {
    bottom: 20%;
    right: 12%;
    animation-delay: 0.5s;
}

.icon-5 {
    top: 50%;
    left: 5%;
    animation-delay: 1.5s;
}

.icon-6 {
    top: 45%;
    right: 8%;
    animation-delay: 2.5s;
}

@keyframes floatIcon {

    0%,
    100% {
        transform: translateY(0) rotate(0deg);
        opacity: 0.5;
    }

    50% {
        transform: translateY(-20px) rotate(5deg);
        opacity: 1;
    }
}

/* Main Content */
.preloader-content {
    position: relative;
    z-index: 10;
    text-align: center;
}

/* Code Brackets Animation */
.code-brackets {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 30px;
}

.bracket {
    font-family: 'Space Grotesk', monospace;
    font-size: 3rem;
    font-weight: 700;
    color: var(--primary-blue);
    text-shadow: 0 0 30px var(--primary-blue);
}

.bracket.left {
    animation: bracketLeft 2s ease-in-out infinite;
}

.bracket.slash {
    animation: bracketSlash 2s ease-in-out infinite;
    animation-delay: 0.3s;
}

.bracket.right {
    animation: bracketRight 2s ease-in-out infinite;
    animation-delay: 0.6s;
}

@keyframes bracketLeft {

    0%,
    100% {
        transform: translateX(0);
        opacity: 0.5;
    }

    50% {
        transform: translateX(-10px);
        opacity: 1;
    }
}

@keyframes bracketSlash {

    0%,
    100% {
        transform: scale(1);
        opacity: 0.5;
    }

    50% {
        transform: scale(1.2);
        opacity: 1;
    }
}

@keyframes bracketRight {

    0%,
    100% {
        transform: translateX(0);
        opacity: 0.5;
    }

    50% {
        transform: translateX(10px);
        opacity: 1;
    }
}

.preloader-logo {
    font-family: var(--font-display);
    font-size: 3.5rem;
    font-weight: 700;
    margin-bottom: 15px;
}

.preloader-logo .logo-ark {
    color: var(--white);
}

.preloader-logo .logo-fortune {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Tagline */
.preloader-tagline {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    margin-bottom: 40px;
}

.tagline-text {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--slate-400);
    text-transform: uppercase;
    letter-spacing: 2px;
    animation: fadeInTag 1s ease forwards;
    opacity: 0;
}

.tagline-text:nth-child(1) {
    animation-delay: 0.5s;
}

.tagline-text:nth-child(3) {
    animation-delay: 0.7s;
}

.tagline-text:nth-child(5) {
    animation-delay: 0.9s;
}

@keyframes fadeInTag {
    to {
        opacity: 1;
    }
}

.tagline-divider {
    color: var(--primary-blue);
    font-size: 1.2rem;
}

.preloader-bar {
    width: 280px;
    height: 4px;
    background: var(--navy-700);
    border-radius: 2px;
    overflow: hidden;
    margin: 0 auto 20px;
    position: relative;
}

.preloader-bar::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(90deg,
            transparent,
            transparent 10px,
            var(--tint-03) 10px,
            var(--tint-03) 20px);
}

.preloader-progress {
    width: 0%;
    height: 100%;
    background: var(--gradient-primary);
    border-radius: 2px;
    animation: preloaderProgress 2.2s ease forwards;
    box-shadow: 0 0 20px var(--primary-blue);
}

@keyframes preloaderProgress {
    to {
        width: 100%;
    }
}

/* Status Text */
.preloader-status {
    height: 24px;
}

.status-text {
    color: var(--slate-400);
    font-size: 0.85rem;
    letter-spacing: 1px;
    font-family: 'Space Grotesk', monospace;
    transition: opacity 0.28s ease;
}


/* Navigation */
.navbar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 20px 0;
    z-index: 1000;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
}

.navbar.scrolled {
    background: rgba(10, 15, 26, 0.95);
    backdrop-filter: var(--glass-blur);
    padding: 15px 0;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}

[data-theme="light"] .navbar.scrolled {
    background: rgba(244, 246, 251, 0.9);
    box-shadow: 0 4px 30px rgba(15, 23, 42, 0.08);
}

.nav-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.nav-logo {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 700;
    display: flex;
    gap: 8px;
}

.nav-logo .logo-ark {
    color: var(--white);
}

.nav-logo .logo-fortune {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.nav-menu {
    display: flex;
    align-items: center;
    gap: 40px;
}

.nav-link {
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--slate-300);
    position: relative;
    padding: 8px 0;
    transition: color var(--transition-fast);
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--gradient-primary);
    transition: width var(--transition-normal);
}

.nav-link:hover,
.nav-link.active {
    color: var(--white);
}

.nav-link:hover::after,
.nav-link.active::after {
    width: 100%;
}

.nav-link.nav-cta {
    background: var(--gradient-primary);
    padding: 12px 24px;
    border-radius: 50px;
    color: var(--white);
    display: flex;
    align-items: center;
    gap: 8px;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.nav-link.nav-cta::after {
    display: none;
}

.nav-link.nav-cta:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-glow);
}

.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 6px;
    padding: 10px;
    cursor: pointer;
}

.nav-toggle span {
    width: 28px;
    height: 2px;
    background: var(--white);
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
}

/* =====================================================
   THEME TOGGLE  (light / dark switch — ported & rethemed
   from the DME Reporting Tool; real <button role="switch">)
   ===================================================== */
.theme-toggle {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-left: 4px;
    padding-left: 24px;
    border-left: 1px solid var(--glass-border);
    background: none;
    line-height: 1;
}

.theme-toggle .theme-icon-sun,
.theme-toggle .theme-icon-moon {
    font-size: 13px;
    transition: color var(--transition-normal), opacity var(--transition-normal);
}

.theme-toggle .theme-icon-sun  { color: var(--slate-400); opacity: 0.45; }
.theme-toggle .theme-icon-moon { color: var(--white);     opacity: 1; }

[data-theme="light"] .theme-toggle .theme-icon-sun  { color: var(--white);     opacity: 1; }
[data-theme="light"] .theme-toggle .theme-icon-moon { color: var(--slate-400); opacity: 0.45; }

.theme-toggle .toggle-track {
    position: relative;
    width: 44px;
    height: 24px;
    border-radius: 50px;
    background: var(--tint-10);
    border: 1px solid var(--glass-border);
    transition: background var(--transition-normal), border-color var(--transition-normal);
    flex-shrink: 0;
}

.theme-toggle .toggle-thumb {
    position: absolute;
    top: 50%;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--gradient-primary);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
    /* Dark (default): thumb sits right, under the moon */
    transform: translateY(-50%) translateX(20px);
    transition: transform var(--transition-elastic), background var(--transition-normal);
}

[data-theme="light"] .theme-toggle .toggle-thumb {
    /* Light: thumb sits left, under the sun — single brand accent in both themes */
    transform: translateY(-50%) translateX(0);
    background: var(--gradient-primary);
}

.theme-toggle:hover .toggle-track { border-color: var(--tint-20); }

.theme-toggle:focus-visible {
    outline: 2px solid var(--primary-blue-light);
    outline-offset: 3px;
    border-radius: 6px;
}

/* FOUC guard: head script adds .no-transition on <html> before first paint,
   JS removes it after two frames — so the initial theme application never animates. */
.no-transition,
.no-transition * {
    transition: none !important;
}

/* =====================================================
   CINEMATIC HOMEPAGE SYSTEM  (BridgeAgent-inspired)
   Pure near-black canvas · one accent · massive air.
   Light theme is a deliberate soft, eye-soothing variant.
   ===================================================== */
:root {
    --font-hero: var(--font-display);  /* unified — hero headings now match all other headings (Space Grotesk) */
    --cine-bg: #0A0912;           /* near-black with faint royal-purple depth (not void-black) */
    --cine-bg-soft: #0E0C1A;
    --cine-hairline: rgba(255, 255, 255, 0.09);
    --cine-line: rgba(255, 255, 255, 0.07);
    --cine-muted: #8B8597;
    --cine-accent-glow: rgba(109, 74, 230, 0.20);
    --cine-node: #4A4458;
    --cine-node-lit: #8B6BF0;
    --cine-headline-bright: rgb(245, 247, 252);  /* two-tone hero: bright key words */
    --cine-headline-soft: rgb(168, 178, 200);    /* two-tone hero: muted connective words */
}
[data-theme="light"] {
    --cine-bg: var(--l-page);            /* app canvas — crisp near-white */
    --cine-bg-soft: var(--l-surface-2);  /* alternating band ground */
    --cine-hairline: var(--l-border);
    --cine-line: rgba(14, 18, 32, 0.08);
    --cine-muted: var(--l-ink-3);
    --cine-accent-glow: rgba(91, 56, 201, 0.05);   /* LIGHT: near-killed corner glow — was 0.12, added to the grey murk (2026-07-01) */
    --cine-node: #B4B9C6;
    --cine-node-lit: var(--l-accent);
    /* Two-tone hero fixed: BRIGHT = full ink (the key words that must pop),
       SOFT = secondary ink (connective words). Previously both were the same
       mid-slate, so the whole headline read flat and weak (finding H1). */
    --cine-headline-bright: var(--l-ink);        /* two-tone hero: bright key words */
    --cine-headline-soft: var(--l-ink-2);        /* two-tone hero: muted connective words */
}

/* ============================================================
   ENTERPRISE LIGHT — HOMEPAGE SECTION FIXES
   Scoped to home for now (the 4 other pages roll later).
   Core rule fixed here: filled/active states = DARK INK on a
   LIGHT TINT, never white-on-mid-purple. Every override maps to
   a --l-* token so the palette stays single-source.
   Findings addressed: H2 (stat row), H3 (active talent card),
   H4 (dashboard KPI), H5 (eyebrow chips), H6 (alternating bands),
   H7 (card elevation on mocks), H8 (ghost/outline words).
   ============================================================ */

/* Shared white-card utility for the light homepage — one elevation system.
   Applied to the hero visual panel + capability mocks (H7). */
[data-theme="light"] .home-cine .cine-cap-panel {
    background: var(--l-surface);
    border: var(--l-card-border);
    box-shadow: var(--l-card-shadow);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

/* H6 — structured alternating bands (was one flat grey wash).
   Odd content bands sit on the page canvas, the two "quiet" sections
   (trust marquee + closing) drop to surface-2 so the page has rhythm. */
[data-theme="light"] .home-cine .cine-marquee-sec,
[data-theme="light"] .home-cine .cine-stats {
    background: var(--l-surface-2);
    border-top: 1px solid var(--l-border);
}
[data-theme="light"] .home-cine .cine-stats { border-bottom: 1px solid var(--l-border); }

/* H2 — by-the-numbers stat row. .cine-outnum was hardcoded white
   (rgba(255,255,255,0.82)) → invisible on light. Dark ink now.
   .cine-bignum already uses --white (flips to ink) — left as-is. */
[data-theme="light"] .cine-outnum { color: var(--l-ink); }

/* H3 — active talent / capability row. Filled active state was
   white text on a mid-purple wash. Flip to: light accent-tint ground
   + dark ink text + accent icon. (Core rule.) */
[data-theme="light"] .cine-cap-row.is-active {
    background: var(--l-accent-tint);
}
[data-theme="light"] .cine-cap-row.is-active .cine-cap-text h3 { color: var(--l-ink); }
[data-theme="light"] .cine-cap-row.is-active .cine-cap-ico {
    background: var(--l-accent-tint);
    border-color: rgba(91,56,201,0.30);
    box-shadow: none;
    color: var(--l-accent);
}
[data-theme="light"] .cine-cap-row:hover { background: var(--l-accent-tint); }
[data-theme="light"] .cine-cap-row + .cine-cap-row { border-top: 1px solid var(--l-border); }
/* base (non-active) heading — --white flips to ink already; keep explicit for clarity */
[data-theme="light"] .cine-cap-text h3 { color: var(--l-ink); }

/* H4 — dashboard / KPI mock SVG labels. .diag-name.lit + .diag-kpi-val
   were hardcoded fill:#fff → invisible on the light card ($2.4M etc). */
[data-theme="light"] .cine-diagram .diag-name.lit { fill: var(--l-ink); }
[data-theme="light"] .cine-diagram .diag-kpi-val { fill: var(--l-ink); }

/* H5 — eyebrow chips + numbered manifesto pills. The purple-fill pill
   read as a dark chip; give it a light tint ground + accent ink. */
[data-theme="light"] .cine-mani-label-num {
    background: var(--l-accent-tint);
    border-color: rgba(91,56,201,0.30);
    color: var(--l-accent);
}

/* H8 — ghost / outline / low-opacity words that vanished on white.
   All were hardcoded white or near-white; re-ground on ink. */
[data-theme="light"] .cine-mani-label-txt { color: var(--l-ink-3); }
[data-theme="light"] .cine-mani-body strong { color: var(--l-ink); }
/* quote-voice pre-ignite dim words: ink-3 x 0.4 opacity was ~invisible.
   Raise the floor so unlit words stay legible before the scroll reveal. */
[data-theme="light"] .cine-quote-voice .w { color: var(--l-ink-3); opacity: 0.62; }

/* Homepage canvas */
body.home-cine { background: var(--cine-bg); }

/* Scroll-progress bar (pinned top) */
.cine-progress {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 2px;
    z-index: 10001;
    background: transparent;
    pointer-events: none;
}
.cine-progress span {
    display: block;
    height: 100%;
    width: 100%;
    background: var(--gradient-primary);
    box-shadow: 0 0 12px rgba(109, 74, 230, 0.6);
    /* JS drives transform: scaleX() per frame — composited, never layout.
       No transition: it would fight the per-frame write. */
    transform: scaleX(0);
    transform-origin: left center;
}

/* ---- Hero ---- */
.cine-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--cine-bg);
    padding: 190px 0 96px;   /* lifted so the proof-stats row clears the fold */
}
.cine-hero-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
/* Premium aurora — a slow-morphing field of soft purple light, weighted to the
   right to balance the left headline. This is the hero's high-end "$50k brand"
   glow (Stripe/Linear energy); the refined network sits on top of it. */
.cine-aurora {
    position: absolute; inset: -12%;
    background:
        radial-gradient(40% 46% at 70% 28%, rgba(139, 107, 240, 0.42), transparent 70%),
        radial-gradient(36% 42% at 58% 60%, rgba(91, 56, 201, 0.36), transparent 72%),
        radial-gradient(30% 36% at 86% 62%, rgba(167, 139, 250, 0.26), transparent 70%),
        radial-gradient(28% 34% at 40% 22%, rgba(109, 74, 230, 0.20), transparent 72%);
    filter: blur(58px) saturate(1.15);
    opacity: 0.9;
    /* STATIC by design (perf): the 24s sway was imperceptible under the
       0.92-opacity canvas, but animating a 58px-blurred full-hero layer forced
       the GPU to re-composite it every frame while the canvas repainted the
       same pixels. A static blurred layer rasterizes once. The canvas is the
       hero's living element. */
}
/* LIGHT: kill the murk (2026-07-01). The dark aurora dumped a cold grey-lavender
   vignette over the hero — client called it trash. In light mode we remove it
   outright: the calm warm off-white base IS the workless.ai aesthetic (negative
   space, not a glow field). Dark mode keeps the full aurora untouched. */
[data-theme="light"] .cine-aurora { display: none; }

/* LIGHT: paint the hero base with an EXPLICIT warm off-white (2026-07-01).
   Done with a literal hex rather than the --cine-bg → --l-page var chain because
   that double-indirection was resolving transparent in-browser, leaving the hero
   with no fill so only the grey aurora blur showed through = the murk. A direct,
   high-specificity [data-theme="light"] declaration is bulletproof. Values match
   the --l-* warm palette (page #F8F5EF). Whole page reads cohesively warm; the
   card (--l-surface #FFFDFA) still lifts off this base. Rolls to the 4 other
   pages next by reusing this same warm literal set. */
[data-theme="light"] body.home-cine { background: #F8F5EF; }
[data-theme="light"] .cine-hero { background: #F8F5EF; }

/* ============ Themed hero background — floating objects that crossfade with the
   typewriter (build = software, staff = people, deliver = data). Large, very
   faint, slow-drifting; only the active theme is shown, gently. ============ */
.cine-hero-themes { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.cine-theme { position: absolute; inset: 0; opacity: 0; transition: opacity 1.5s ease; }
.cine-hero.th-build   .theme-build,
.cine-hero.th-staff   .theme-staff,
.cine-hero.th-deliver .theme-deliver { opacity: 1; }

.cobj { position: absolute; will-change: transform; }
/* card-style objects (glass cards) */
.obj-window, .obj-profile, .obj-chart, .obj-kpi {
    border-radius: 14px; padding: 16px;
    background: rgba(139, 107, 240, 0.025);
    border: 1px solid rgba(139, 107, 240, 0.14);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
.cobj-ln { display: block; height: 6px; border-radius: 3px; background: rgba(139, 107, 240, 0.18); width: 82%; margin-bottom: 10px; }
.cobj-ln.s { width: 54%; }

/* shared positions: each theme reuses the same 3 zones so objects morph in place */
/* placed in the MEASURED empty pockets: card centred in the center-right gap
   (between the sub/CTAs and the panel); the two smaller objects in the bottom
   band below the proof row (left + right) — a balanced triangle, nothing crowded */
.obj-window, .obj-profile, .obj-chart { left: 48%; top: 52%;  width: 190px; height: 126px; animation: cobjDrift1 30s ease-in-out infinite; display: none; }
.obj-glyph, .obj-avatars, .obj-kpi     { left: 60%; top: 14%;  animation: cobjDrift2 38s ease-in-out infinite; display: none; }
.obj-braces, .obj-people, .obj-bars    { left: 35%; top: 71%;  animation: cobjDrift3 34s ease-in-out infinite; display: none; }

/* --- build / software --- */
/* code editor window — window dots + a faint code snippet (clearly "software") */
.obj-window { display: flex; flex-direction: column; gap: 7px; justify-content: center; }
.obj-window .cobj-dots { display: flex; gap: 5px; margin-bottom: 4px; }
.obj-window .cobj-dots i { width: 7px; height: 7px; border-radius: 50%; background: rgba(139, 107, 240, 0.32); }
.obj-window .cobj-code { font-family: ui-monospace, 'SFMono-Regular', Menlo, monospace; font-size: 11px; line-height: 1; color: rgba(139, 107, 240, 0.34); white-space: nowrap; }
.obj-window .cobj-code.in1 { padding-left: 14px; }
.obj-window .cobj-code .kw { color: rgba(183, 148, 246, 0.5); }
.obj-window .cobj-code .fn { color: rgba(138, 180, 248, 0.45); }
.obj-glyph { font-family: var(--font-display); font-size: 5rem; font-weight: 700; color: rgba(139, 107, 240, 0.22); line-height: 1; }
.obj-braces { font-family: var(--font-display); font-size: 5rem; font-weight: 700; letter-spacing: 2px; color: rgba(139, 107, 240, 0.22); line-height: 1; }

/* --- staff / people --- */
.obj-profile { display: grid; grid-template-columns: 38px 1fr; grid-template-rows: auto auto; gap: 9px 14px; align-content: center; }
.obj-profile .cobj-av { grid-row: 1 / 3; width: 38px; height: 38px; border-radius: 50%; background: rgba(139, 107, 240, 0.22); }
.obj-profile .cobj-ln { margin: 0; width: 100%; }
.obj-profile .cobj-ln.s { width: 64%; }
.obj-avatars { display: flex; }
.obj-avatars i { width: 40px; height: 40px; border-radius: 50%; background: rgba(139, 107, 240, 0.16); border: 1px solid rgba(167, 139, 250, 0.22); margin-left: -12px; }
.obj-avatars i:first-child { margin-left: 0; }
.obj-people { font-size: 3rem; color: rgba(139, 107, 240, 0.17); line-height: 1; }

/* --- deliver / data --- */
.obj-chart { padding: 14px 16px; }
.obj-chart svg { width: 100%; height: 100%; }
.obj-chart polyline { fill: none; stroke: rgba(139, 107, 240, 0.4); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.obj-kpi { width: 132px; height: 92px; display: flex; flex-direction: column; justify-content: center; gap: 12px; }
.obj-kpi .cobj-num { display: block; width: 64%; height: 16px; border-radius: 5px; background: rgba(139, 107, 240, 0.26); }
.obj-kpi .cobj-cap { display: block; width: 90%; height: 7px; border-radius: 4px; background: rgba(139, 107, 240, 0.14); }
.obj-bars { display: flex; align-items: flex-end; gap: 8px; height: 70px; }
.obj-bars i { width: 14px; border-radius: 4px 4px 0 0; background: rgba(139, 107, 240, 0.2); }
.obj-bars i:nth-child(1) { height: 40%; }
.obj-bars i:nth-child(2) { height: 70%; }
.obj-bars i:nth-child(3) { height: 52%; }
.obj-bars i:nth-child(4) { height: 90%; }

@keyframes cobjDrift1 { 0%,100% { transform: translate(0,0) rotate(0); } 50% { transform: translate(16px,-22px) rotate(1.5deg); } }
@keyframes cobjDrift2 { 0%,100% { transform: translate(0,0) rotate(0); } 50% { transform: translate(-20px,16px) rotate(-1.5deg); } }
@keyframes cobjDrift3 { 0%,100% { transform: translate(0,0); } 50% { transform: translate(14px,18px); } }

.obj-window, .obj-profile, .obj-chart,
.obj-glyph, .obj-avatars, .obj-kpi,
.obj-braces, .obj-people, .obj-bars { display: none !important; }

.cine-glow {
    position: absolute;
    top: -12%; right: -6%;
    width: 60vw; height: 60vw;
    max-width: 780px; max-height: 780px;
    background: radial-gradient(circle, var(--cine-accent-glow) 0%, transparent 62%);
    filter: blur(30px);
}
/* Flowing premium surface — organic rolling-wave field (nixtio-style) */
.cine-hero-field {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    display: block;
    opacity: 0.92;
    /* HARD exclusion over the headline column (2026-07-21): drifting nodes +
       their faint link lines painted ANYWHERE on this canvas — including behind
       the hero text, where a passing 2-node link reads as a rendering-glitch
       scrap on the letters (the marked "purple box" saga; DOM probes can't see
       canvas paint, which is why it survived three fixes). This mask zeroes
       every canvas pixel left of the focal cluster — text column stays
       untouchable; the convergence network lives fully on the right, where it
       was always aimed (focus at 72%/33%). Light mode already display:none's
       the canvas for the same collided-with-headline reason. */
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent 56%, #000 76%);
    mask-image: linear-gradient(90deg, transparent 0%, transparent 56%, #000 76%);
}
/* LIGHT: remove the neural-network canvas entirely in light mode (2026-07-01).
   The canvas node/link colors are hardcoded purple (js initNeuralHero) with no
   theme awareness — on a warm base, dozens of overlapping faint purple links +
   node glows composited into the exact muddy lavender-grey wash the client
   rejected, and collided with the black headline. Dimming to a ghost would read
   as "broken/unloaded" (a known rejected pattern), so we cleanly hide it: the
   deliberate calm negative space IS the workless.ai aesthetic. The headline +
   capability panel carry the hero. Dark mode keeps the full network untouched. */
[data-theme="light"] .cine-hero-field { display: none; }

.cine-container {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

/* Two-column hero: left content column (headline left + straight-line) balanced
   by a signature "intelligence core" on the right, with the proof stats grounded
   as a full-width row beneath both — a designed, balanced composition (not a flat
   left column). */
.cine-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.62fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(24px, 4vw, 56px);
}
.cine-hero-main {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    min-width: 0;
}
.cine-hero-main .cine-eyebrow { margin-left: 0; margin-right: auto; }
.cine-hero-main .cine-hero-title { max-width: none; margin: 0 0 30px; }
.cine-hero-main .cine-hero-sub { margin: 0 0 36px; max-width: 52ch; }
.cine-hero-main .cine-cta-group { justify-content: flex-start; }

/* The proof row spans the full hero width and sits below the grid — grounds the
   whole composition like a baseline rule. */
.cine-hero .cine-proof {
    justify-content: flex-start;
    margin: 44px 0 0;
    max-width: none;
    padding-top: 26px;
}

/* ---- Three-capability glass panel — the right-column anchor ---- */
.cine-hero-visual {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    /* lift the panel so its top lines up with the headline (it was sitting lower
       because the grid vertically centres it) */
    align-self: start;
    margin-top: 49px;
}
.cine-cap-panel {
    width: 100%;
    max-width: 420px;
    padding: 12px;
    border-radius: 22px;
    position: relative;
    overflow: hidden;
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.02));
    border: 1px solid rgba(139, 107, 240, 0.20);
    -webkit-backdrop-filter: blur(18px) saturate(1.25);
    backdrop-filter: blur(18px) saturate(1.25);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.10),
        0 34px 80px -36px rgba(0, 0, 0, 0.85);
}
.cine-cap-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 16px;
    border-radius: 16px;
    position: relative;
    z-index: 1;
    transition: background 0.45s ease, opacity 0.45s ease, transform 0.45s ease;
}
.cine-cap-row + .cine-cap-row { border-top: 1px solid rgba(255, 255, 255, 0.06); }
.cine-cap-row:hover { background: rgba(139, 107, 240, 0.09); }
/* Spotlight — synced to the typewriter (build/staff/deliver). When a verb is
   typing, its matching row brightens + its icon glows; the other two dim. */
.cine-cap-panel.has-active .cine-cap-row:not(.is-active) { opacity: 0.4; }
.cine-cap-row.is-active { background: rgba(139, 107, 240, 0.10); }
.cine-cap-row.is-active .cine-cap-ico {
    background: rgba(109, 74, 230, 0.30);
    border-color: rgba(167, 139, 250, 0.55);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 0 26px rgba(139, 107, 240, 0.5);
    color: #cdbcff;
    transition: background 0.45s ease, border-color 0.45s ease, box-shadow 0.45s ease, color 0.45s ease;
}
.cine-cap-row.is-active .cine-cap-text h3 { color: #fff; }
.cine-cap-ico {
    flex: none;
    width: 48px; height: 48px;
    display: grid; place-items: center;
    border-radius: 13px;
    background: rgba(109, 74, 230, 0.16);
    border: 1px solid rgba(139, 107, 240, 0.30);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 0 22px rgba(109, 74, 230, 0.22);
    color: var(--primary-blue-light);
    font-size: 1.1rem;
    transition: background 0.45s ease, border-color 0.45s ease, box-shadow 0.45s ease, color 0.45s ease;
}
.cine-cap-text h3 {
    font-family: var(--font-display);
    font-size: 1.08rem; font-weight: 600;
    color: #fff; margin: 0 0 4px;
    letter-spacing: -0.01em;
}
.cine-cap-text p {
    font-family: var(--font-secondary);
    font-size: 0.85rem; line-height: 1.5;
    color: var(--slate-400); margin: 0;
}
/* Active-row mini-visual — a small, on-brand graphic (matching the site's
   diagrams) revealed ONLY on the spotlit row; inactive rows show nothing. Panel
   height stays constant because exactly one row is expanded at a time. */
/* Mini-visual revealed ONLY on the active row (inactive rows show nothing). The
   panel's total height stays constant since exactly one row is expanded at a time. */
.cine-cap-viz {
    height: 0; opacity: 0; overflow: hidden; margin-top: 0;
    display: flex; align-items: center;
    transition: height 0.55s ease, opacity 0.45s ease, margin-top 0.55s ease;
}
.cine-cap-row.is-active .cine-cap-viz { height: 30px; opacity: 1; margin-top: 12px; }
/* Custom Software — a clean one-line code snippet */
.cap-code {
    font-family: ui-monospace, 'SFMono-Regular', Menlo, monospace;
    font-size: 0.82rem; letter-spacing: -0.01em;
    color: var(--slate-400); white-space: nowrap;
}
.cap-code .kw { color: #b794f6; }
.cap-code .fn { color: #8ab4f8; }
.cap-code .str { color: #a5b4fc; }
/* Vetted Talent — overlapping avatar chips + a vetted tag */
.cap-avatars { display: flex; align-items: center; }
.cap-avatars .av {
    width: 24px; height: 24px; border-radius: 50%;
    background: var(--gradient-primary);
    border: 2px solid var(--cine-bg-soft);
    margin-left: -7px;
}
.cap-avatars .av:first-child { margin-left: 0; }
.cap-chip {
    margin-left: 12px;
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 0.74rem; font-weight: 500;
    color: var(--primary-blue-light);
}
.cap-chip i { font-size: 0.66rem; }
/* Live Intelligence — a small upward sparkline + a metric */
.cap-spark-wrap { display: flex; align-items: center; }
.cap-spark { width: 112px; height: 26px; }
.cap-spark polyline {
    fill: none; stroke: var(--primary-blue-light);
    stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
/* Hero verbs carry NO drop-shadow filter: the typewriter splits them into
   per-letter gradient-clipped spans, and a filter forces Chrome to rasterize
   that subtree — at fractional zoom/DPR the glow tiles into visible lighter
   rectangles over the letters (the 2026-07-21 glitch). Overrides the generic
   .cine-accent glow; the gradient alone is the pop. */
.cine-hero .cine-accent { filter: none; }
/* Glow sits behind the right-weighted convergence cluster (matches the canvas
   FOCUS at ~70%/36%) — balances the left headline, like About's globe on the right */
.cine-hero .cine-glow {
    top: 0%; left: 72%; right: auto;
    transform: translate(-50%, -10%);
    width: 64vw; max-width: 760px; height: 52vw; max-height: 640px;
    background: radial-gradient(circle, rgba(109, 74, 230, 0.24) 0%, transparent 64%);
}
/* Tighter, brighter focal bloom right at the cluster core — the "intelligence
   emerging" point. Sits behind the canvas so the glowing nodes read as luminous. */
.cine-hero-bg::before {
    content: '';
    position: absolute;
    top: 33%; left: 72%;
    transform: translate(-50%, -50%);
    width: 32vw; max-width: 440px; height: 32vw; max-height: 440px;
    background: radial-gradient(circle, rgba(139, 107, 240, 0.16) 0%, transparent 62%);
    filter: blur(22px);
    pointer-events: none;
}
/* Whisper-faint tech grid — structural depth without competing with the streams */
.cine-hero-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.015) 1px, transparent 0),
        linear-gradient(90deg, rgba(255,255,255,0.015) 1px, transparent 0);
    background-size: 84px 84px;
    pointer-events: none;
}
/* Vignette — pull focus to center like ViewCreator */
.cine-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(80% 70% at 50% 45%, transparent 0%, rgba(7,10,17,0.42) 100%);
    pointer-events: none;
    z-index: 0;
}

/* ============================================================
   LIGHT: THE REAL MURK FIX (2026-07-01).
   The grey vignette the client hated was NOT only the aurora — it was
   .cine-hero::after painting a near-black radial (rgba(7,10,17,0.42),
   darkest at the EDGES) straight over the warm base. On a light canvas a
   dark vignette just reads as dirty grey corners. In light mode:
     • kill the dark vignette entirely (light needs no darkening-for-focus)
     • kill the purple glow blob (::before) — it added lavender haze
     • re-tint the whisper grid from white→warm ink so it reads as faint
       structure on the warm paper instead of invisible white-on-white
   Result: hero is clean, flat, warm off-white. Dark mode keeps all three
   layers untouched. Reuse this block when rolling warmth to other pages. */
[data-theme="light"] .cine-hero::after { display: none; }
[data-theme="light"] .cine-hero-bg::before { display: none; }
[data-theme="light"] .cine-hero-bg::after {
    background-image:
        linear-gradient(rgba(14,18,32,0.022) 1px, transparent 0),
        linear-gradient(90deg, rgba(14,18,32,0.022) 1px, transparent 0);
}

.cine-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    font-family: var(--font-secondary);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--cine-muted);
    margin-bottom: 30px;
}
.cine-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--primary-blue-light);
    box-shadow: 0 0 10px var(--primary-blue-light);
    animation: cinePulse 2.4s ease infinite;
}
@keyframes cinePulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.45; transform: scale(0.8); } }

.cine-hero-title {
    font-family: var(--font-hero);
    font-size: clamp(2.3rem, 4.4vw, 3.95rem);   /* sized to its column so each clause holds one line */
    font-weight: 700;                          /* General Sans BOLD — heroic, not a polite medium */
    line-height: 0.98;                         /* lines packed tight (the spacing Rakesh likes) */
    letter-spacing: -0.035em;                  /* heavy negative tracking — dense, confident, premium */
    color: var(--cine-headline-soft);          /* two-tone: connective words sit a touch muted */
    margin-bottom: 30px;
    /* NO text-shadow here — the lines below are gradient-clipped (transparent
       fill), and a shadow paints THROUGH see-through glyphs as white fog with
       hard rectangular tile edges around each word (the 2026-07-21 "purple
       box / smudged letters" glitch). The metallic gradient is the lift. */
}
/* Each clause owns its own line — verbs align under "We", no mid-phrase wrapping.
   white-space:nowrap keeps "We deliver the intelligence." on ONE line (kills the
   orphaned 4th line); the <=600 mobile clamp below shrinks it to fit a phone. */
.cine-hero-line {
    display: block;
    white-space: nowrap;
    /* "Vibe Coding for Builders" metallic: each line shimmers bright-white (top of
       the letters) → silver-grey (bottom). The purple .cine-accent verbs override
       this with their own gradient, so only the non-accent words get the chrome. */
    background: linear-gradient(180deg, #ffffff 0%, #e2e6ef 28%, #9aa3ba 74%, #7d869f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    /* DESCENDER FIX (2026-07-21, same family as the f/v/r white-edge fix but
       vertical): the gradient only paints inside this block's box, and with
       line-height 0.98 the box is shorter than the glyphs — the "g" tail in
       "intelligence." hangs BELOW it and got no paint (bottom of the g cut
       off). Padding extends the paint box under the descender (+ a hair above
       for ascenders); negative margins cancel it so the tight line stacking
       Rakesh likes is pixel-identical. */
    padding: 0.06em 0 0.26em;
    margin: -0.06em 0 -0.26em;
}
/* Light theme: keep the safe flat tone (white→grey chrome would vanish on white) */
[data-theme="light"] .cine-hero-line {
    background: none;
    -webkit-text-fill-color: var(--cine-headline-soft);
    color: var(--cine-headline-soft);
}
/* Two-tone hero: the WHOLE clause sits muted (We / the / the noun), and ONLY the
   purple verb pops — like the reference's grey bulk + bright key words. */
.cine-hero-key {
    color: var(--cine-headline-soft);
}
.cine-accent {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    /* Accent glow replaces white glow on the colored words */
    filter: drop-shadow(0 0 32px rgba(109, 74, 230, 0.45));
    /* PAINT-BOX INSURANCE (2026-07-21): background-clip:text only paints
       inside the element's box; glyph ink that overhangs it (bold f/v/r arms,
       descender tails, italic slants) renders unpainted — chopped or wrong-
       colored edges. Padding widens the paint box; the negative margins
       cancel it so layout is pixel-identical. Applies to every accent
       site-wide. Same law as the hero .tw-char / .cine-hero-line fixes. */
    padding: 0.08em 0.14em 0.14em 0.08em;
    margin: -0.08em -0.14em -0.14em -0.08em;
}

/* --- Hero verb typewriter (build / staff / deliver), scoped to the hero only --- */
.cine-hero-title .tw-word { position: relative; }
/* Un-typed letters sit as faint GHOSTS (not invisible): the headline reads
   complete the moment you land, and the typewriter "inks in" each verb over
   its ghost — no empty holes in lines 2/3 during the first pass.
   HOW: the word-level background-clip:text gradient paints beneath every
   glyph regardless of the glyph's own fill (it's a background stenciled to
   the letter shapes), so a ghost is impossible while the PARENT carries the
   gradient. The hero typewriter words therefore drop the word background and
   each TYPED letter carries its own clipped gradient; un-typed letters are
   plain faint ink. Opacity is not used (a child's opacity layer breaks the
   parent clip in Chrome and the letter vanishes). */
.cine-hero-title .tw-word.tw-word { background: none !important; }
.cine-hero-title .tw-char {
    -webkit-text-fill-color: rgba(255, 255, 255, 0.22);   /* ghost: neutral pencil-grey */
    transition: -webkit-text-fill-color 0.18s ease;
    /* THE WHITE-EDGE FIX (2026-07-21, Rakesh's cropped screenshots): bold
       f/v/r arms overhang their span's advance width, and a background
       clipped to text only paints within the span's border box — so the
       overhanging ink sliver missed the purple gradient and showed the
       line's white chrome underlay instead ("part of F is white"). Padding
       widens the paint box past the overhang on both sides; the negative
       margins cancel it in layout so spacing is pixel-identical. */
    padding: 0 0.14em 0 0.06em;
    margin: 0 -0.14em 0 -0.06em;
}
.cine-hero-title .tw-char.in {
    background-image: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
[data-theme="light"] .cine-hero-title .tw-char { -webkit-text-fill-color: rgba(14, 18, 32, 0.18); }  /* ghost ink */
[data-theme="light"] .cine-hero-title .tw-char.in { -webkit-text-fill-color: transparent; }
.cine-hero-title .tw-caret {
    position: absolute;
    top: 0.17em;
    left: 0;
    width: 0.055em;
    height: 0.78em;
    border-radius: 1px;
    background: var(--primary-blue-light);
    box-shadow: 0 0 9px rgba(139, 107, 240, 0.9);
    opacity: 0;
    /* JS rides the caret via transform (composited) — never `left` (layout) */
    transition: transform 0.06s linear, opacity 0.28s ease;
    pointer-events: none;
}
.cine-hero-title .tw-caret.on { opacity: 1; }
.cine-hero-title .tw-caret.blink { animation: twBlink 1.05s steps(1) infinite; }
.cine-hero-title .tw-caret.off { opacity: 0; animation: none; }
/* A caret that is NOT lit must leave no trace — kill the glow too, so a
   transform-parked caret can never smear as a purple block on the letters
   (Chrome keeps painting box-shadow under opacity:0). Only the lit `.on`
   caret carries its glow. */
.cine-hero-title .tw-caret:not(.on) { box-shadow: none; }
@keyframes twBlink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    .cine-hero-title .tw-char { opacity: 1; transition: none; }
}

/* CTA title stays bold General Sans — closing power statement */
.cine-cta-title {
    font-family: var(--font-hero);
    font-weight: 600;
}
/* Section chapter headings get the editorial serif — distinct from the hero hammer */
.cine-section-title {
    font-family: 'Fraunces', serif;
    font-weight: 300;
    letter-spacing: -0.02em;
}

.cine-hero-sub {
    font-size: 1.1rem;
    line-height: 1.7;
    color: var(--slate-400);
    max-width: 50ch;
    margin-bottom: 40px;
}

.cine-cta-group {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 30px;   /* tightened to bring the stats row up into view */
}
/* Frosted-glass pill buttons — smoked glass, top sheen, buttery eased hover.
   --btn-ease is a slow ease-out-expo so motion glides in and settles, never snaps. */
.cine-btn {
    --btn-ease: cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 13px 24px;
    border-radius: 50px;
    font-family: var(--font-secondary);
    font-weight: 600;
    font-size: 0.97rem;
    -webkit-backdrop-filter: blur(14px) saturate(1.4);
    backdrop-filter: blur(14px) saturate(1.4);
    transition: transform 0.5s var(--btn-ease),
                box-shadow 0.5s var(--btn-ease),
                border-color 0.5s var(--btn-ease),
                background 0.5s var(--btn-ease);
}
/* PRIMARY — frosted purple glass: brand-forward fill + bright top edge + soft glow + icon badge */
.cine-btn-primary {
    color: #ffffff;
    background: linear-gradient(180deg, rgba(139, 107, 240, 0.92) 0%, rgba(109, 74, 230, 0.88) 100%);
    border: 1px solid rgba(167, 139, 250, 0.55);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.38),
        0 8px 30px rgba(109, 74, 230, 0.38),
        0 0 48px -14px rgba(124, 92, 230, 0.45);   /* faint resting bloom — alive before hover */
}
.cine-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.48),
        0 16px 46px rgba(109, 74, 230, 0.55);
}
/* arrow tucked into its own circular badge (like the reference's download chip) */
.cine-btn-primary i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    margin: -3px -8px -3px 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    font-size: 0.74rem;
    transition: background 0.5s var(--btn-ease), transform 0.5s var(--btn-ease);
}
.cine-btn-primary:hover i { background: rgba(255, 255, 255, 0.34); transform: translateX(3px); }
/* GHOST — frosted neutral glass pill (the reference's translucent secondary chips) */
.cine-btn-ghost {
    color: var(--white);
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10);
}
.cine-btn-ghost:hover {
    transform: translateY(-3px);
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(255, 255, 255, 0.26);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 10px 30px rgba(0, 0, 0, 0.30);
}

.cine-proof {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    max-width: 640px;
    padding-top: 30px;
    border-top: 1px solid var(--cine-hairline);
    font-size: 0.85rem;
    color: var(--cine-muted);
}
.cine-proof strong { color: var(--white); font-weight: 700; }
.cine-proof-sep { opacity: 0.4; }

.cine-scroll-cue {
    position: absolute;
    bottom: 34px; left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    font-size: 0.64rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--cine-muted);
    z-index: 1;
}
.cine-scroll-line {
    width: 1px; height: 38px;
    background: linear-gradient(var(--cine-muted), transparent);
    animation: cineScrollPulse 2.2s ease-in-out infinite;
}
@keyframes cineScrollPulse { 0%, 100% { opacity: 0.4; transform: scaleY(0.7); transform-origin: top; } 50% { opacity: 1; transform: scaleY(1); } }

@media (max-width: 768px) {
    .cine-hero { padding: 116px 0 70px; min-height: 92vh; }
    .cine-constellation { opacity: 0.3; right: -20%; width: 80vw; }
    .cine-hero-sub { font-size: 1rem; margin-bottom: 28px; }
    .cine-scroll-cue { display: none; }
    /* phones are too narrow for nowrap — let each clause wrap; the &nbsp; keeps
       "the intelligence." together so it never splits mid-phrase */
    .cine-hero-line { white-space: normal; }
    .cine-hero-title { font-size: clamp(1.95rem, 8vw, 3rem); margin-bottom: 26px; }
    /* phone: stack to one column and drop the core (text-in-glass over the aurora
       is the established mobile look — the two-column balance is a desktop concern) */
    .cine-hero-grid { grid-template-columns: 1fr; gap: 0; }
    .cine-hero-visual { display: none; }
    /* the loved frosted "iOS glass" card over the living network (same recipe as
       About / Services / Industries) — keeps the copy crisp on a phone */
    .cine-hero .cine-container {
        max-width: 540px; margin: 0 auto;
        background: rgba(16, 13, 32, 0.5);
        -webkit-backdrop-filter: blur(16px) saturate(1.3);
        backdrop-filter: blur(16px) saturate(1.3);
        border: 1px solid rgba(139, 107, 240, 0.24);
        border-radius: 26px;
        padding: 30px 24px;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10), 0 26px 64px -26px rgba(0, 0, 0, 0.8);
    }
    .cine-hero .cine-eyebrow { margin-bottom: 22px; }
    .cine-hero .cine-proof { padding-top: 22px; margin-top: 4px; }
}

/* ---- Manifesto — Direction C + Label 2 ---- */
.cine-manifesto {
    position: relative;
    background: var(--cine-bg);
    padding: 130px 0;
    overflow: hidden;
}
/* Ghost background word */
.cine-mani-ghost {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-family: 'Fraunces', serif;
    font-size: clamp(14rem, 28vw, 22rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.06em;
    color: rgba(109,74,230,0.055);
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}
.cine-manifesto-inner {
    position: relative;
    z-index: 1;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
}
.cine-manifesto .cine-eyebrow { margin-bottom: 44px; }
.cine-mani-headline {
    font-family: 'Fraunces', serif;
    font-weight: 400;
    font-size: clamp(2.8rem, 5.5vw, 4.6rem);
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: var(--white);
    margin-bottom: 64px;
}
.cine-mani-headline .cine-accent {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: none;
}
/* Three-column bottom grid */
.cine-mani-cols {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 48px;
    padding-top: 44px;
    border-top: 1px solid var(--cine-hairline);
    align-items: start;
}
/* Numbered pill label */
.cine-mani-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}
.cine-mani-label-num {
    font: 600 10px/1 'Fraunces', serif;
    letter-spacing: 0.04em;
    background: rgba(109,74,230,0.18);
    border: 1px solid rgba(109,74,230,0.35);
    border-radius: 4px;
    padding: 4px 8px;
    color: var(--primary-blue-light);
}
.cine-mani-label-txt {
    font: 600 10px/1 'Inter', sans-serif;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
}
.cine-mani-body {
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    line-height: 1.75;
    color: var(--cine-muted);
}
.cine-mani-body strong { color: rgba(200,190,220,0.82); font-weight: 500; }
/* Third column: invisible spacer matches pill label height so all 3 columns top-align */
.cine-mani-label-spacer { height: 24px; margin-bottom: 14px; }
.cine-mani-col--closing { margin-top: 0; }
.cine-mani-closing {
    font-family: 'Fraunces', serif;
    font-size: clamp(1.15rem, 1.8vw, 1.45rem);
    font-weight: 300;
    font-style: italic;
    line-height: 1.6;
    color: rgba(200,190,220,0.82);
    letter-spacing: -0.01em;
    border-left: 2px solid var(--primary-blue);
    padding-left: 24px;
}
@media (max-width: 800px) {
    .cine-mani-cols { grid-template-columns: 1fr; gap: 36px; }
    .cine-mani-label-spacer { display: none; }
}

/* Manifesto accent (still used by quote section below) */
.cine-mani-accent {
    font-family: 'Fraunces', serif;
    font-style: italic;
    font-weight: 400;
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

@media (max-width: 760px) {
    .cine-mani-cols { grid-template-columns: 1fr; gap: 28px; }
}

/* ---- Stat moments ---- */
.cine-stats { background: var(--cine-bg); padding: 70px 0 110px; }
.cine-stat-head { display: flex; justify-content: center; margin-bottom: 58px; }
.cine-orbit {
    position: relative;
    width: min(440px, 86vw);
    aspect-ratio: 1;
    margin: 0 auto 90px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cine-orbit-ring { position: absolute; inset: 0; border: 1px solid var(--cine-hairline); border-radius: 50%; }
.cine-orbit-ring::after { content: ''; position: absolute; inset: 15%; border: 1px solid var(--cine-line); border-radius: 50%; }
.cine-orbit-icon {
    position: absolute;
    top: 50%; left: 50%;
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    background: var(--cine-bg-soft);
    border: 1px solid var(--cine-hairline);
    border-radius: 12px;
    color: var(--slate-400);
    font-size: 14px;
    animation: cineTwinkle 4.5s ease-in-out infinite;
}
.o1 { transform: translate(-50%,-50%) rotate(0deg)   translateY(calc(var(--orbit-r) * -1)) rotate(0deg); }
.o2 { transform: translate(-50%,-50%) rotate(60deg)  translateY(calc(var(--orbit-r) * -1)) rotate(-60deg); animation-delay: .8s; }
.o3 { transform: translate(-50%,-50%) rotate(120deg) translateY(calc(var(--orbit-r) * -1)) rotate(-120deg); animation-delay: 1.6s; }
.o4 { transform: translate(-50%,-50%) rotate(180deg) translateY(calc(var(--orbit-r) * -1)) rotate(-180deg); animation-delay: 2.2s; }
.o5 { transform: translate(-50%,-50%) rotate(240deg) translateY(calc(var(--orbit-r) * -1)) rotate(-240deg); animation-delay: 1.1s; }
.o6 { transform: translate(-50%,-50%) rotate(300deg) translateY(calc(var(--orbit-r) * -1)) rotate(-300deg); animation-delay: 3s; }
.o2, .o4, .o6 { color: var(--primary-blue-light); border-color: rgba(109, 74, 230, 0.30); }
.cine-orbit-center { position: relative; z-index: 1; text-align: center; }
/* soft aurora glow behind the big number (echoes the hero) */
.cine-orbit-center::before {
    content: '';
    position: absolute;
    inset: -70% -45%;
    background: radial-gradient(circle, rgba(139, 107, 240, 0.18) 0%, transparent 64%);
    filter: blur(22px);
    z-index: -1;
    pointer-events: none;
}
.cine-bignum {
    font-family: var(--font-display);
    font-size: clamp(3.4rem, 9vw, 6rem);
    font-weight: 800; line-height: 1; letter-spacing: -0.04em;
    color: var(--white);
}
.cine-bignum .suffix { background: var(--gradient-primary); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.cine-bignum-cap { margin-top: 12px; font-size: 0.92rem; color: var(--cine-muted); letter-spacing: 0.04em; }

.cine-stat-row {
    display: flex; justify-content: center; flex-wrap: wrap;
    gap: clamp(30px, 7vw, 100px);
    max-width: 1000px; margin: 0 auto; padding: 0 var(--container-padding);
}
.cine-stat-out { text-align: center; }
.cine-outnum {
    font-family: var(--font-display);
    font-size: clamp(2.8rem, 6vw, 4.6rem);
    font-weight: 800; line-height: 1; letter-spacing: -0.03em;
    color: rgba(255,255,255,0.82);
}
.cine-outnum .suffix { background: var(--gradient-primary); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.cine-stat-out p { margin-top: 16px; font-size: 0.9rem; color: var(--cine-muted); letter-spacing: 0.02em; }

@media (max-width: 600px) {
    .cine-orbit-icon { width: 36px; height: 36px; font-size: 12px; }
    .cine-hero .cine-container { padding: 24px 20px; border-radius: 22px; }
    .cine-hero-sub { font-size: 0.96rem; }
}

/* ---- Capability feature beats ---- */
/* overflow:visible overrides global section{overflow:hidden} — required for position:sticky inside the driver to pin to the viewport */
.cine-features { background: var(--cine-bg); padding: 30px 0 70px; overflow: visible; }
.cine-feat-head {
    max-width: 1180px;
    margin: 0 auto 70px;
    padding: 0 var(--container-padding);
}
.cine-section-title {
    font-family: 'Fraunces', serif;
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 300;
    line-height: 1.18;
    letter-spacing: -0.02em;
    color: var(--white);
    margin-top: 18px;
}

.cine-feat {
    max-width: 1180px;
    margin: 0 auto;
    padding: 72px var(--container-padding);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(40px, 6vw, 100px);
    align-items: center;
    border-top: 1px solid var(--cine-hairline);
}
.cine-feat:first-of-type { border-top: none; }
.cine-feat-reverse .cine-feat-text { order: 2; }
.cine-feat-reverse .cine-feat-visual { order: 1; }

.cine-feat-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px; height: 48px;
    border-radius: 13px;
    background: rgba(109, 74, 230, 0.12);
    border: 1px solid rgba(109, 74, 230, 0.26);
    color: var(--primary-blue-light);
    font-size: 18px;
    margin-bottom: 24px;
}
.cine-feat-title {
    font-family: 'Fraunces', serif;
    font-size: clamp(1.9rem, 3.2vw, 2.8rem);
    font-weight: 500;
    letter-spacing: -0.02em;
    color: var(--white);
    margin-bottom: 16px;
}
.cine-feat-sub {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--slate-400);
    max-width: 46ch;
    margin-bottom: 26px;
}
.cine-feat-list { display: flex; flex-direction: column; gap: 13px; }
.cine-feat-list li {
    position: relative;
    padding-left: 26px;
    font-size: 0.95rem;
    color: var(--slate-300);
}
.cine-feat-list li::before {
    content: '';
    position: absolute;
    left: 0; top: 0.62em;
    width: 13px; height: 1px;
    background: var(--primary-blue-light);
}

/* Generative diagrams */
.cine-feat-visual { display: flex; justify-content: center; transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1); }
.cine-feat:hover .cine-feat-visual { transform: translateY(-6px); }
.cine-diagram {
    width: 100%; max-width: 440px; height: auto;
    filter: drop-shadow(0 26px 56px rgba(0, 0, 0, 0.45));
    transition: filter 0.55s ease;
}
.cine-feat:hover .cine-diagram { filter: drop-shadow(0 22px 52px rgba(109, 74, 230, 0.30)); }

/* ── Horizontal scroll carousel ─────────────────────────────────────────── */
/* 700vh tall — generous scroll room for 4 panels (title + 3 capabilities).   */
/* Each panel-to-panel span DWELLS first (panel sits still, readable) then     */
/* glides — see dwellPanelFloat + END_HOLD in main.js for the timing map.      */
/* The sticky window lives inside it; the track slides as you scroll.          */
.cine-horiz-driver {
    height: 700vh;
    position: relative;
}
/* Sticky window: pins to top of viewport, one screen tall, clips the track  */
/* position:sticky already makes this a positioned ancestor for the abs dots  */
.cine-horiz-sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* NOTE: do NOT add position:relative here — it would override sticky */
}
/* Track: four panels wide (title + 3 capabilities). JS eases translateX in   */
/* its own render loop — no CSS transition here (it would fight the lerp).     */
.cine-horiz-track {
    display: flex;
    width: 400vw;
    will-change: transform;
}
/* Each panel = one viewport width; inner .cine-feat handles max-width/centering */
.cine-horiz-panel {
    width: 100vw;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    padding: 0 var(--container-padding);
}
/* Cancel the vertical-stack border that made sense before */
.cine-horiz-panel .cine-feat {
    border-top: none;
    width: 100%;
}

/* Panel 0 — the title card. Centered in its own viewport, leads the deck. */
.cine-horiz-title {
    justify-content: center;
}
.cine-horiz-title .cine-feat-head {
    max-width: 1180px;
    margin: 0 auto;
    width: 100%;
    text-align: left;
}
/* Bigger, more confident on the title card than the small inline version */
.cine-horiz-title .cine-section-title {
    font-size: clamp(2.6rem, 5.2vw, 4.4rem);
    margin-top: 22px;
}
/* Soft "scroll to explore" cue under the title */
.cine-title-cue {
    margin-top: 38px;
    font-family: var(--font-body);
    font-size: 0.82rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--cine-muted, rgba(255,255,255,0.4));
    display: flex;
    align-items: center;
    gap: 10px;
}
.cine-title-cue span {
    display: inline-block;
    animation: titleCueNudge 1.8s ease-in-out infinite;
}
@keyframes titleCueNudge {
    0%, 100% { transform: translateX(0); opacity: 0.55; }
    50%      { transform: translateX(6px); opacity: 1; }
}
/* Progress dots — bottom-center of the sticky container */
.cine-horiz-dots {
    position: absolute;
    bottom: 32px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    align-items: center;
}
.cine-hdot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255,255,255,0.2);
    transition: background 0.3s ease, transform 0.3s ease;
    cursor: default;
}
.cine-hdot.active {
    background: var(--primary-blue);
    transform: scale(1.55);
}

/* ── Mobile: revert to vertical stack at ≤860px ─────────────────────────── */
@media (max-width: 860px) {
    .cine-horiz-driver { height: auto; }
    .cine-horiz-sticky {
        position: static;
        height: auto;
        overflow: visible;
        display: block;
    }
    .cine-horiz-track {
        display: block;
        width: 100%;
        transform: none !important;
        transition: none;
    }
    .cine-horiz-panel {
        width: 100%;
        display: block;
        padding: 0;
    }
    .cine-horiz-panel .cine-feat { border-top: 1px solid var(--cine-hairline); }
    .cine-horiz-panel:first-child .cine-feat { border-top: none; }
    .cine-horiz-dots { display: none; }
    /* Title card behaves as a normal heading block on mobile */
    .cine-horiz-title { display: block; padding: 0 0 8px; }
    .cine-title-cue { display: none; }
}

/* ── Reduced-motion: no slide transition or cue nudge ───────────────────── */
@media (prefers-reduced-motion: reduce) {
    .cine-horiz-track { transition: none; }
    .cine-title-cue span { animation: none; }
}

/* ═══ About "deck" — Founder / Mission / Vision panel content ═══════════════
   Reuses the .cine-horiz carousel; these classes only style the panel insides. */
.about-deck { background: #0A0712; }   /* solid — covers the ambient globe */
/* Inherits the base .cine-horiz-sticky position:sticky — native pinning works
   here since section/html/body switched to overflow:clip (no scroll container). */
/* Giant faint "FORTUNE" wordmark behind every slide (same as the home manifesto).
   Lives in the pinned window so it stays centred while the panels slide across it. */
.deck-ghost {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-family: 'Fraunces', serif;
    font-size: clamp(14rem, 28vw, 22rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.06em;
    color: rgba(109,74,230,0.014);   /* ~25% of the original 5.5% — a quiet ghost */
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}
.about-deck .cine-horiz-track { position: relative; z-index: 1; }   /* panels above the wordmark */
.about-deck .cine-horiz-dots  { z-index: 2; }
.about-deck .cine-feat { align-items: center; }
.about-deck .cine-feat-text > .cine-eyebrow { margin-bottom: 16px; }
.deck-role {
    font: 600 12px/1 var(--font-body); letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--primary-blue-light); margin: 0 0 22px;
}
.deck-quote {
    font-family: 'Fraunces', serif; font-weight: 300; font-style: italic;
    font-size: clamp(1.15rem, 1.7vw, 1.55rem); line-height: 1.5;
    color: rgba(255,255,255,0.84); margin: 0 0 30px; max-width: 32ch;
}
.deck-quote .fsig-hi { font-style: italic; }
.deck-stats { display: flex; gap: 40px; margin-bottom: 28px; flex-wrap: wrap; }
.deck-stat { display: flex; flex-direction: column; gap: 5px; }
.deck-n { font-family: var(--font-display); font-weight: 600; font-size: 1.5rem; color: #fff; line-height: 1; }
.deck-n.deck-n-sm { font-size: 1.05rem; padding-top: 6px; }
.deck-l { font: 500 11px/1.3 var(--font-body); color: rgba(255,255,255,0.45); }
.deck-link {
    display: inline-flex; align-items: center; gap: 9px;
    font: 600 13px/1 var(--font-body); letter-spacing: 0.04em; color: #fff; text-decoration: none;
    transition: color 0.3s ease;
}
.deck-link i { font-size: 15px; color: var(--primary-blue-light); }
.deck-link:hover { color: var(--primary-blue-light); }
/* Founder photo — rounded portrait, sharp (rendered from the full-res source) */
.deck-photo {
    position: relative; width: min(360px, 30vw); aspect-ratio: 4 / 5;
    border-radius: 20px; overflow: hidden;
    border: 1px solid rgba(139,107,240,0.35);
    box-shadow: 0 30px 70px -25px rgba(109,74,230,0.55);
}
.deck-photo::after {
    content:''; position:absolute; inset:-20px; z-index:-1; border-radius:28px;
    background: radial-gradient(circle at 50% 40%, rgba(109,74,230,0.4), transparent 70%); filter: blur(20px);
}
.deck-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
/* eager-loaded + smooth fade so the founder photo never "pops in" late */
.deck-photo-img { opacity: 0; transition: opacity 0.6s ease; }
.deck-photo-img.loaded, .deck-photo-img[data-loaded] { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .deck-photo-img { transition: none; opacity: 1; } }
/* Mission / Vision emblem — large dual-tone line-art with a soft glow */
.deck-emblem { position: relative; width: min(330px, 30vw); aspect-ratio: 1; display: grid; place-items: center; }
.deck-emblem::after {
    content:''; position:absolute; inset:14%; z-index:-1; border-radius:50%;
    background: radial-gradient(circle, rgba(109,74,230,0.34), transparent 70%); filter: blur(24px);
}
.deck-emblem-svg { width: 100%; height: 100%; overflow: visible; }
/* Bespoke deck illustrations — Mission (converging streams → one hub) and
   Vision (ascending trajectory → horizon star). Dual-tone purple, alive. */
.deck-art { width: 100%; height: 100%; overflow: visible; }
.da-orbit { fill: none; stroke: rgba(159,127,255,0.14); stroke-width: 1; }
/* Mission */
.da-flow  { fill: none; stroke: rgba(159,127,255,0.5); stroke-width: 1.6; stroke-linecap: round;
            stroke-dasharray: 4 9; animation: daFlow 1.5s linear infinite; }
.da-in    { fill: var(--primary-blue-light); }
.da-glow  { fill: rgba(124,86,240,0.55); filter: blur(9px);
            transform-box: fill-box; transform-origin: center; animation: daPulse 3s ease-in-out infinite; }
.da-hub   { fill: #B9A3FF; }
.da-hub-c { fill: #fff; }
/* Vision */
.da-track { fill: none; stroke: var(--primary-blue-light); stroke-width: 2; stroke-linecap: round;
            stroke-linejoin: round; stroke-dasharray: 360; stroke-dashoffset: 360; animation: daDraw 2.2s ease forwards; }
.da-wp    { fill: #0A0712; stroke: var(--primary-blue-light); stroke-width: 2; }
.da-ray   { stroke: rgba(185,163,255,0.85); stroke-width: 1.8; stroke-linecap: round;
            transform-box: fill-box; transform-origin: center; animation: daPulse 3s ease-in-out infinite; }
.da-star  { fill: #fff; }
@keyframes daFlow  { to { stroke-dashoffset: -26; } }
@keyframes daPulse { 0%,100% { opacity: .55; transform: scale(1); } 50% { opacity: .95; transform: scale(1.16); } }
@keyframes daDraw  { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
    .da-flow, .da-glow, .da-track, .da-ray { animation: none; }
    .da-track { stroke-dashoffset: 0; }
}
/* Cinematic Parallax & Glassmorphism Sections */
.cinematic-parallax {
    position: relative;
    width: 100%;
    min-height: 80vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    margin: 0;
    padding: var(--space-3xl) 0;
    z-index: 1;
}

.parallax-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-attachment: fixed; /* Parallax effect */
    z-index: 1;
    transform: translateZ(0); /* Force GPU */
}
.parallax-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(8, 12, 20, 0.4);
    z-index: 2;
}

.parallax-container {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.glass-card {
    background: rgba(10, 14, 20, 0.65);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid rgba(245, 166, 35, 0.15); /* Amber accent */
    border-radius: 4px;
    padding: var(--space-2xl);
    max-width: 800px;
    box-shadow: 0 24px 48px rgba(0,0,0,0.4);
}

.glass-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: var(--text-sm);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--theme-accent);
    margin-bottom: var(--space-lg);
    font-weight: 600;
}

.glass-content-split {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-2xl);
}

.glass-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(2.5rem, 5vw, 4rem);
    line-height: 1.1;
    color: var(--theme-light);
    margin-bottom: var(--space-md);
    font-weight: 400;
}

.glass-desc {
    font-size: var(--text-lg);
    color: var(--theme-muted);
    line-height: 1.6;
    max-width: 500px;
}

.glass-metric {
    display: flex;
    align-items: center;
    justify-content: center;
}

.metric-number {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(6rem, 12vw, 10rem);
    line-height: 0.8;
    color: transparent;
    -webkit-text-stroke: 1px rgba(255,255,255,0.15);
    background: linear-gradient(180deg, var(--theme-light) 0%, rgba(255,255,255,0) 100%);
    -webkit-background-clip: text;
    font-weight: 300;
}

@media (max-width: 768px) {
    .glass-content-split {
        flex-direction: column;
        gap: var(--space-xl);
    }
    .metric-number {
        font-size: 6rem;
    }
}
.spin-reverse-medium {
    transform-origin: center;
    animation: spinRotateReverse 16s linear infinite;
}
.spin-fast {
    transform-origin: center;
    animation: spinRotate 6s linear infinite;
}
.pulse-scale {
    transform-origin: center;
    animation: pulseScale 3s ease-in-out infinite;
}
.pulse-scale-intense {
    transform-origin: center;
    animation: pulseScaleIntense 2s ease-in-out infinite alternate;
}
.float-subtle {
    animation: floatSubtle 4s ease-in-out infinite;
}

@keyframes spinRotate {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
@keyframes spinRotateReverse {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(-360deg); }
}
@keyframes pulseScale {
    0%, 100% { transform: scale(1); opacity: 0.8; }
    50% { transform: scale(1.15); opacity: 1; }
}
@keyframes pulseScaleIntense {
    0% { transform: scale(0.85); opacity: 0.6; }
    100% { transform: scale(1.15); opacity: 1; }
}
@keyframes floatSubtle {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

.deck-emblem-img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; box-shadow: 0 0 40px rgba(245, 166, 35, 0.15); border: 1px solid rgba(255, 255, 255, 0.05); }
@media (max-width: 860px) {
    .deck-photo, .deck-emblem { width: min(280px, 72vw); margin: 18px 0; }
    .deck-stats { gap: 24px; }
}
/* ─────────────────────────────────────────────────────────────────────────── */

.cine-diagram .diag-lines path {
    stroke: var(--cine-line);
    stroke-width: 1.5;
    stroke-dasharray: 3 7;
    animation: diagFlow 2.6s linear infinite;
}
@keyframes diagFlow { to { stroke-dashoffset: -20; } }
.cine-diagram .diag-nodes circle { fill: var(--cine-node); }
.cine-diagram .diag-nodes circle.n-lit {
    fill: var(--cine-node-lit);
    animation: cineTwinkle 3s ease-in-out infinite;
}
.cine-diagram .diag-nodes circle.n-root {
    fill: var(--primary-blue-light);
    filter: drop-shadow(0 0 8px rgba(109, 74, 230, 0.6));
}
.cine-diagram .diag-bars rect { fill: var(--cine-line); }
.cine-diagram .diag-bars rect.b-lit { fill: rgba(109, 74, 230, 0.5); }
.cine-diagram .diag-trend {
    stroke: var(--primary-blue-light);
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: drop-shadow(0 0 6px rgba(109, 74, 230, 0.5));
}
/* Peak data-point — glowing core + expanding halo + soft glow ring */
.cine-diagram .diag-peak-grp { transform-box: fill-box; }
.cine-diagram .diag-peak-glow {
    fill: none;
    stroke: #8B6BF0;
    stroke-width: 1.25;
    opacity: 0;
    transform-origin: 240px 196px;
    animation: peakRipple 2.6s cubic-bezier(0.16, 0.8, 0.3, 1) infinite;
}
.cine-diagram .diag-peak-halo {
    fill: rgba(96, 165, 250, 0.18);
    transform-origin: 240px 196px;
    animation: peakHalo 2.6s ease-in-out infinite;
}
.cine-diagram .diag-peak-core {
    fill: #B49BF5;
    filter: drop-shadow(0 0 5px rgba(139, 107, 240, 0.9));
    transform-origin: 240px 196px;
    animation: peakCore 2.6s ease-in-out infinite;
}
@keyframes peakRipple {
    0%   { opacity: 0.85; transform: scale(0.4); }
    70%  { opacity: 0;    transform: scale(2.6); }
    100% { opacity: 0;    transform: scale(2.6); }
}
@keyframes peakHalo {
    0%, 100% { opacity: 0.5;  transform: scale(0.85); }
    50%      { opacity: 0.95; transform: scale(1.25); }
}
@keyframes peakCore {
    0%, 100% { transform: scale(0.92); }
    50%      { transform: scale(1.12); }
}

/* Code-editor window (BUILD capability) */
.cine-diagram .diag-win {
    fill: rgba(255, 255, 255, 0.018);
    stroke: var(--cine-hairline);
    stroke-width: 1.5;
}
.cine-diagram .diag-bar { stroke: var(--cine-hairline); stroke-width: 1.5; }
.cine-diagram .diag-dot { fill: var(--cine-node); }
.cine-diagram .diag-tab { fill: var(--cine-line); }
.cine-diagram .diag-num rect { fill: var(--cine-node); opacity: 0.55; }
.cine-diagram .diag-code { fill: var(--cine-line); }
.cine-diagram .diag-code.lit { fill: var(--cine-node-lit); }
.cine-diagram .diag-caret {
    fill: var(--primary-blue-light);
    filter: drop-shadow(0 0 5px rgba(109, 74, 230, 0.6));
    animation: caretBlink 1.1s steps(1) infinite;
}
@keyframes caretBlink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }

/* Legible source code (BUILD capability) */
.cine-diagram .diag-tab-label {
    font: 600 9px/1 'Inter', sans-serif;
    fill: var(--cine-node-lit);
    text-anchor: middle;
    letter-spacing: 0.02em;
}
.cine-diagram .diag-ln {
    font: 11px/1 'SFMono-Regular', 'JetBrains Mono', ui-monospace, monospace;
    fill: var(--cine-node);
    opacity: 0.55;
    text-anchor: middle;
}
.cine-diagram .diag-src {
    font: 12px/1 'SFMono-Regular', 'JetBrains Mono', ui-monospace, monospace;
    fill: var(--slate-300);
    letter-spacing: -0.01em;
}
.cine-diagram .diag-src .kw   { fill: #c084fc; }   /* keyword — violet */
.cine-diagram .diag-src .fn   { fill: var(--cine-node-lit); }  /* function — blue */
.cine-diagram .diag-src .var  { fill: #5eead4; }   /* variable — teal */
.cine-diagram .diag-src .str  { fill: #fbbf24; }   /* string — amber */
.cine-diagram .diag-src.diag-comment { fill: var(--cine-muted); font-style: italic; }
.cine-diagram .diag-caret-t {
    fill: var(--primary-blue-light);
    animation: caretBlink 1.1s steps(1) infinite;
}

/* Talent-match cards (STAFF capability) */
.cine-diagram .diag-win.matched {
    fill: rgba(109, 74, 230, 0.06);
    stroke: rgba(109, 74, 230, 0.4);
}
.cine-diagram .diag-avatar { fill: var(--cine-line); }
.cine-diagram .diag-avatar.lit {
    fill: var(--cine-node-lit);
    filter: drop-shadow(0 0 6px rgba(109, 74, 230, 0.45));
}
.cine-diagram .diag-badge { fill: var(--cine-line); opacity: 0.7; }
.cine-diagram .diag-check-ring {
    fill: rgba(109, 74, 230, 0.14);
    stroke: var(--primary-blue-light);
    stroke-width: 1.5;
}
.cine-diagram .diag-check-mark {
    stroke: var(--primary-blue-light);
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
}
.cine-diagram .diag-check { animation: cinePulse 2.4s ease infinite; transform-origin: 320px 160px; }
/* Legible candidate cards (STAFF capability) */
.cine-diagram .diag-avatar-init {
    font: 600 11px/1 'Inter', sans-serif;
    fill: var(--cine-muted);
    text-anchor: middle;
}
.cine-diagram .diag-avatar-init.lit { fill: var(--cine-node-lit); }
.cine-diagram .diag-name {
    font: 600 13px/1 'Inter', sans-serif;
    fill: var(--slate-300);
}
.cine-diagram .diag-name.lit { fill: #fff; }
.cine-diagram .diag-meta {
    font: 10.5px/1 'Inter', sans-serif;
    fill: var(--cine-muted);
}
.cine-diagram .diag-badge-txt {
    font: 600 10px/1 'Inter', sans-serif;
    fill: var(--cine-node-lit);
    text-anchor: middle;
}

/* BI dashboard card (DELIVER capability) */
.cine-diagram .diag-kpi {
    fill: rgba(255, 255, 255, 0.022);
    stroke: var(--cine-hairline);
    stroke-width: 1.5;
}
.cine-diagram .diag-chart-bars rect { fill: var(--cine-line); }
.cine-diagram .diag-chart-bars rect.lit { fill: rgba(109, 74, 230, 0.5); }
.cine-diagram .diag-dash-title {
    font: 600 12px/1 'Inter', sans-serif;
    fill: var(--slate-300);
}
.cine-diagram .diag-live {
    font: 600 9px/1 'Inter', sans-serif;
    fill: var(--cine-muted);
    text-anchor: end;
    letter-spacing: 0.04em;
}
/* Live status — radar ripple: expanding signal rings + steady glowing core */
.cine-diagram .diag-live-ring {
    fill: none;
    stroke: #34d399;
    stroke-width: 1.25;
    opacity: 0;
    transform-origin: 330px 63px;
    animation: liveRipple 2.4s cubic-bezier(0.16, 0.8, 0.3, 1) infinite;
}
.cine-diagram .diag-live-ring.delay { animation-delay: 1.2s; }
.cine-diagram .diag-live-core {
    fill: #34d399;
    filter: drop-shadow(0 0 4px rgba(52, 211, 153, 0.85));
    transform-origin: 330px 63px;
    animation: liveCore 2.4s ease-in-out infinite;
}
@keyframes liveRipple {
    0%   { opacity: 0.8; transform: scale(0.5); }
    75%  { opacity: 0;   transform: scale(2.8); }
    100% { opacity: 0;   transform: scale(2.8); }
}
@keyframes liveCore {
    0%, 100% { transform: scale(0.9);  opacity: 0.85; }
    50%      { transform: scale(1.08); opacity: 1; }
}

/* Respect reduced-motion — hold a calm steady state */
@media (prefers-reduced-motion: reduce) {
    .cine-aurora { animation: none; }
    .cobj { animation: none; }
    .cine-theme { transition: none; }
    .cine-diagram .diag-live-ring,
    .cine-diagram .diag-peak-glow { animation: none; opacity: 0; }
    .cine-diagram .diag-live-core,
    .cine-diagram .diag-peak-core,
    .cine-diagram .diag-peak-halo { animation: none; }
}
.cine-diagram .diag-kpi-val {
    font: 700 17px/1 'Inter', sans-serif;
    fill: #fff;
}
.cine-diagram .diag-kpi-val.up { fill: var(--cine-node-lit); }
.cine-diagram .diag-kpi-lbl {
    font: 9.5px/1 'Inter', sans-serif;
    fill: var(--cine-muted);
}
.cine-diagram .diag-chart-title {
    font: 9.5px/1 'Inter', sans-serif;
    fill: var(--cine-muted);
}

@media (max-width: 860px) {
    .cine-feat {
        grid-template-columns: 1fr;
        gap: 34px;
        padding: 52px var(--container-padding);
    }
    .cine-feat-reverse .cine-feat-text { order: 1; }
    .cine-feat-reverse .cine-feat-visual { order: 2; }
    .cine-diagram { max-width: 340px; }
}

/* ---- Industries marquee ---- */
.cine-marquee-sec { background: var(--cine-bg); padding: 46px 0 34px; border-top: 1px solid var(--cine-hairline); }
.cine-marquee-label { text-align: center; font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--cine-muted); margin-bottom: 26px; }
.cine-marquee {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.cine-marquee-track {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    white-space: nowrap;
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 2.6vw, 2.1rem);
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--slate-500);
    animation: cineMarquee 45s linear infinite;
}
.cine-marquee:hover .cine-marquee-track { animation-play-state: paused; }
.cine-marquee-track .sep { color: var(--primary-blue-light); opacity: 0.5; font-weight: 400; }
.cine-marquee-track .lit { color: var(--white); }
@keyframes cineMarquee { to { transform: translateX(-50%); } }

/* ---- Founder quote — editorial split (quote left, photo right) ---- */
.cine-quote-sec { background: var(--cine-bg); padding: 120px 0; position: relative; overflow: hidden; }
/* soft aurora glow behind the quote (cohesion with the hero) */
.cine-quote-sec::before {
    content: '';
    position: absolute;
    top: 50%; left: 30%;
    transform: translate(-50%, -50%);
    width: 60vw; max-width: 720px; height: 70%;
    background: radial-gradient(ellipse, rgba(109, 74, 230, 0.1) 0%, transparent 68%);
    filter: blur(30px);
    pointer-events: none;
}
.cine-quote-grid {
    position: relative;
    z-index: 1;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 80px;
    align-items: center;
}
.cine-quote-body { display: flex; flex-direction: column; }
.cine-quote-body .cine-eyebrow { margin-bottom: 34px; }
.cine-quote-voice {
    font-family: 'Fraunces', serif;
    font-size: clamp(1.45rem, 2.3vw, 1.9rem);
    font-weight: 300;
    line-height: 1.55;
    letter-spacing: -0.015em;
    color: var(--cine-headline-soft);
    text-align: left;
}
.cine-quote-voice .w {
    color: var(--cine-muted);
    opacity: 0.4;
    transition: opacity 0.35s ease, color 0.35s ease;
}
.cine-quote-voice .w.lit { color: var(--white); opacity: 1; }
.cine-quote-sec .cine-mani-accent {
    display: block;
    margin-top: 0.6em;
    text-align: left;
    font-size: clamp(1.2rem, 1.8vw, 1.55rem);
}
.cine-quote-author {
    display: flex; align-items: center; gap: 14px;
    margin-top: 40px; padding-top: 28px;
    border-top: 1px solid var(--cine-hairline);
}
.cine-quote-meta { font-size: 0.9rem; color: var(--cine-muted); }
.cine-quote-meta strong { color: var(--white); font-weight: 600; }
.cine-quote-photo-wrap { position: relative; }
.cine-quote-photo {
    display: block;
    width: 100%;
    border-radius: 14px;
    filter: grayscale(0.15) brightness(0.95);
}
.cine-quote-photo-wrap::after {
    content: '';
    position: absolute; inset: 0;
    border-radius: 14px;
    border: 1px solid var(--cine-hairline);
    pointer-events: none;
}
@media (max-width: 820px) {
    .cine-quote-grid { grid-template-columns: 1fr; gap: 44px; }
    .cine-quote-photo { max-height: 420px; object-fit: cover; object-position: top center; }
}

/* ---- Closing CTA ---- */
/* ── MERGE CTA (closing section: three vendors → one team) ── */
.cine-cta {
    position: relative;
    background: linear-gradient(180deg, #0A0712 0%, #0C0817 100%);
    padding: 48px var(--container-padding);
    overflow: hidden;
    isolation: isolate;
}
.cine-cta::before {
    content: '';
    position: absolute; top: 0; left: 8%; right: 8%; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(139,107,240,0.35) 50%, transparent);
}
.cta-glow {
    position: absolute; right: 8%; top: 50%; transform: translateY(-50%);
    width: 560px; height: 560px; z-index: 0; pointer-events: none;
    background: radial-gradient(circle, rgba(109,74,230,0.22) 0%, transparent 65%);
    filter: blur(30px);
}
.cta-inner {
    position: relative; z-index: 2;
    max-width: 1080px; margin: 0 auto;
    display: grid; grid-template-columns: 1.25fr 0.75fr;
    gap: clamp(32px, 4vw, 56px); align-items: center;
}

/* Left: closing copy */
.cta-copy .cine-eyebrow { margin-bottom: 18px; }
.cta-headline {
    font-family: 'Fraunces', serif; font-weight: 300;
    font-size: clamp(1.7rem, 2.6vw, 2.4rem);
    line-height: 1.18; letter-spacing: -0.025em;
    color: var(--white); margin-bottom: 14px; max-width: none;
}
.cta-headline em {
    font-style: italic; font-weight: 400;
    background: linear-gradient(135deg, #A98AFF 0%, #D4C0FF 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    /* PAINT-BOX INSURANCE, italic edition (2026-07-21): the italic "?" in
       "at once?" leaned past the em's paint box and rendered chopped (red-
       boxed since the first screenshot). Italic slant needs extra right
       room; negative margins cancel the layout shift. */
    padding: 0.06em 0.22em 0.14em 0.1em;
    margin: -0.06em -0.22em -0.14em -0.1em;
}
.cta-subline {
    font: 400 0.9rem/1.55 'Inter', sans-serif;
    color: rgba(255,255,255,0.5); max-width: none; margin-bottom: 26px;
}

/* Schedule button */
.cta-btn-schedule {
    display: inline-flex; align-items: center; gap: 18px;
    background: linear-gradient(135deg, #6D4AE6 0%, #9B7CFF 100%);
    color: #fff; padding: 22px 30px; border-radius: 14px;
    text-decoration: none; position: relative; overflow: hidden;
    box-shadow: 0 0 0 1px rgba(189,157,255,0.4), 0 14px 44px rgba(109,74,230,0.5), 0 2px 0 rgba(255,255,255,0.16) inset;
    transition: box-shadow .3s, transform .2s cubic-bezier(.22,1,.36,1);
}
.cta-btn-schedule:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 0 1px rgba(212,192,255,0.6), 0 20px 60px rgba(109,74,230,0.65), 0 2px 0 rgba(255,255,255,0.18) inset;
}
.cta-btn-schedule::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,0.15) 50%, transparent 75%);
    /* sheen sweeps via transform (composited); animating background-position
       repainted the whole button for the full 0.8s */
    transform: translateX(-100%);
    transition: transform .8s;
}
.cta-btn-schedule:hover::after { transform: translateX(100%); }
.cta-btn-text { position: relative; z-index: 1; display: flex; flex-direction: column; }
.cta-btn-label { font: 400 .66rem/1 'Inter', sans-serif; opacity: .65; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 5px; }
.cta-btn-cta { font: 700 1.05rem/1 var(--font-display); letter-spacing: -0.01em; }
.cta-btn-arrow {
    width: 44px; height: 44px; border-radius: 11px; flex-shrink: 0;
    background: rgba(255,255,255,0.18);
    display: flex; align-items: center; justify-content: center;
    position: relative; z-index: 1;
    transition: transform .25s cubic-bezier(.22,1,.36,1);
}
.cta-btn-arrow svg { width: 20px; height: 20px; }
.cta-btn-schedule:hover .cta-btn-arrow { transform: translateX(5px); }

/* Right: the merge diagram */
.cta-merge { position: relative; width: 100%; height: 230px; }
.cta-merge svg { width: 100%; height: 100%; overflow: visible; }

/* Strands drawn in via .is-in (added by JS on scroll) */
.cta-strand { fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke .3s ease; }
.cta-merge.is-in .cta-strand { animation: ctaDraw 1.6s ease-out forwards; }
.cta-merge.is-in .cta-s1 { animation-delay: .15s; }
.cta-merge.is-in .cta-s2 { animation-delay: .30s; }
.cta-merge.is-in .cta-s3 { animation-delay: .45s; }
.cta-s1, .cta-s3 { stroke: rgba(139,107,240,0.5); }
.cta-s2 { stroke: rgba(159,127,255,0.55); }
@keyframes ctaDraw { to { stroke-dashoffset: 0; } }

.cta-unified { fill: none; stroke: url(#ctaUg); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.cta-merge.is-in .cta-unified { animation: ctaDraw 1s ease-out 1.1s forwards; }

/* Arrows (hidden until draw completes) */
.cta-flow { opacity: 0; }
.cta-merge.is-in .cta-flow { animation: ctaFlowFade .3s ease 1.6s forwards; }
@keyframes ctaFlowFade { to { opacity: 1; } }

/* Arrival flash + node beat, synced to arrow arrival */
.cta-arrive-flash { opacity: 0; transform-origin: center; transform-box: fill-box; }
.cta-merge.is-in .cta-arrive-flash { animation: ctaArriveFlash 3.4s ease-out 2.6s infinite; }
@keyframes ctaArriveFlash { 0%{opacity:0;r:8} 8%{opacity:.9;r:10} 40%{opacity:0;r:34} 100%{opacity:0;r:34} }
.cta-merge-node { opacity: 0; }
.cta-merge.is-in .cta-merge-node { animation: ctaNodeIn .55s cubic-bezier(.22,1,.36,1) 1.4s forwards; }
@keyframes ctaNodeIn { 0%{opacity:0} 60%{opacity:1} 100%{opacity:1} }
.cta-node-core { transform-origin: center; transform-box: fill-box; }
.cta-merge.is-in .cta-node-core { animation: ctaNodeBeat 3.4s ease-out 2.6s infinite; }
@keyframes ctaNodeBeat { 0%,7%{transform:scale(1)} 11%{transform:scale(1.4)} 25%,100%{transform:scale(1)} }

/* Labels */
.cta-vendor-g { cursor: pointer; }
.cta-vendor-label { font: 500 12px/1 'Inter', sans-serif; fill: rgba(255,255,255,0.55); letter-spacing: .02em; opacity: 0; transition: fill .25s ease; }
.cta-merge.is-in .cta-vendor-label { animation: ctaFadeIn .6s ease .5s forwards; }
.cta-vendor-g:hover .cta-vendor-label { fill: #D4C0FF; }
.cta-arrive-label { font: 600 12px/1 var(--font-display); fill: rgba(212,192,255,0.95); letter-spacing: .04em; opacity: 0; }
.cta-merge.is-in .cta-arrive-label { animation: ctaFadeIn .6s ease 1.6s forwards; }
@keyframes ctaFadeIn { to { opacity: 1; } }

@media (max-width: 860px) {
    .cta-inner { grid-template-columns: 1fr; gap: 48px; }
    .cta-merge { height: 260px; }
}
@media (prefers-reduced-motion: reduce) {
    .cta-strand, .cta-unified { stroke-dashoffset: 0 !important; animation: none !important; }
    .cta-flow, .cta-merge-node, .cta-vendor-label, .cta-arrive-label { opacity: 1 !important; animation: none !important; }
    .cta-arrive-flash, .cta-node-core { animation: none !important; }
}

/* ============================================================
   H1 — CLOSING CTA BAND (light).  Was a dark near-black slab in
   both themes. Convert to a soft accent-tint light band with
   dark-ink copy (core rule). Purple stays on the action button
   + the merge diagram; the em accent deepens so it reads on tint.
   ============================================================ */
[data-theme="light"] .cine-cta {
    background: var(--l-accent-tint);
    border-top: 1px solid var(--l-border);
    border-bottom: 1px solid var(--l-border);
}
[data-theme="light"] .cine-cta::before {
    background: linear-gradient(90deg, transparent, rgba(91,56,201,0.30) 50%, transparent);
}
[data-theme="light"] .cta-glow {
    background: radial-gradient(circle, rgba(91,56,201,0.10) 0%, transparent 65%);
}
[data-theme="light"] .cta-headline { color: var(--l-ink); }        /* --white flips too; explicit for the band */
[data-theme="light"] .cta-headline em {
    /* Fern green (2026-07-01). Large italic display → #2F8F4E→#24713D reads AA-large,
       and the deep stop keeps it legible on the light-green CTA band. */
    background: linear-gradient(135deg, #2F8F4E 0%, #24713D 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
[data-theme="light"] .cta-subline { color: var(--l-ink-2); }
/* merge diagram: strands + labels re-grounded for a light band */
[data-theme="light"] .cta-s1, [data-theme="light"] .cta-s3 { stroke: rgba(91,56,201,0.55); }
[data-theme="light"] .cta-s2 { stroke: rgba(123,84,232,0.60); }
[data-theme="light"] .cta-vendor-label { fill: var(--l-ink-3); }
[data-theme="light"] .cta-vendor-g:hover .cta-vendor-label { fill: var(--l-accent); }
[data-theme="light"] .cta-arrive-label { fill: var(--l-accent); }

/* ============================================================
   SERVICES HERO — CONVERGENCE (four streams → one team)
   Forks the home .cta-merge system, scaled 3→4 streams, and
   sized up as a hero. Reuses the same @keyframes (ctaDraw,
   ctaFlowFade, ctaArriveFlash, ctaNodeIn, ctaNodeBeat, ctaFadeIn).
   ============================================================ */
.svc-hero {
    position: relative;
    min-height: 92vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--cine-bg);
    padding: 170px 0 90px;
}
.svc-hero-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.svc-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    align-items: center;
    gap: 48px;
}
.svc-hero-main { max-width: 560px; }
.svc-hero-title {
    font-family: var(--font-hero, 'General Sans', sans-serif);
    font-weight: 700;
    font-size: clamp(2.6rem, 5vw, 4.4rem);
    line-height: 1.04;
    letter-spacing: -0.02em;
    margin: 22px 0 22px;
    color: var(--cine-text-bright, #f5f7fc);
}
.svc-hero-sub {
    color: var(--cine-muted, #8B8597);
    font-size: 1.06rem;
    line-height: 1.65;
    max-width: 50ch;
}

/* the diagram */
.svc-converge { position: relative; width: 100%; height: 380px; }
.svc-converge svg { width: 100%; height: 100%; overflow: visible; }

/* strands drawn in via .is-in (added by JS on scroll) */
.svc-strand { fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke .3s ease; }
.svc-converge.is-in .svc-strand { animation: ctaDraw 1.6s ease-out forwards; }
.svc-converge.is-in .sv1 { animation-delay: .15s; }
.svc-converge.is-in .sv2 { animation-delay: .30s; }
.svc-converge.is-in .sv3 { animation-delay: .45s; }
.svc-converge.is-in .sv4 { animation-delay: .60s; }
.sv1, .sv4 { stroke: rgba(139,107,240,0.5); }
.sv2, .sv3 { stroke: rgba(159,127,255,0.55); }

.svc-unified { fill: none; stroke: url(#svcUg); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.svc-converge.is-in .svc-unified { animation: ctaDraw 1s ease-out 1.2s forwards; }

.svc-flow { opacity: 0; }
.svc-converge.is-in .svc-flow { animation: ctaFlowFade .3s ease 1.7s forwards; }

.svc-arrive-flash { opacity: 0; transform-origin: center; transform-box: fill-box; }
.svc-converge.is-in .svc-arrive-flash { animation: ctaArriveFlash 3.4s ease-out 2.6s infinite; }
.svc-merge-node { opacity: 0; }
.svc-converge.is-in .svc-merge-node { animation: ctaNodeIn .55s cubic-bezier(.22,1,.36,1) 1.5s forwards; }
.svc-node-core { transform-origin: center; transform-box: fill-box; }
.svc-converge.is-in .svc-node-core { animation: ctaNodeBeat 3.4s ease-out 2.6s infinite; }

.svc-vendor-g { cursor: pointer; }
.svc-vendor-label { font: 500 12px/1 'Inter', sans-serif; fill: rgba(255,255,255,0.55); letter-spacing: .02em; opacity: 0; transition: fill .25s ease; }
.svc-converge.is-in .svc-vendor-label { animation: ctaFadeIn .6s ease .5s forwards; }
.svc-vendor-g:hover .svc-vendor-label { fill: #D4C0FF; }
.svc-arrive-label { font: 600 12px/1 var(--font-display); fill: rgba(212,192,255,0.95); letter-spacing: .04em; opacity: 0; }
.svc-converge.is-in .svc-arrive-label { animation: ctaFadeIn .6s ease 1.7s forwards; }

[data-theme="light"] .svc-vendor-label { fill: rgba(17,25,44,0.6); }

@media (max-width: 980px) {
    .svc-hero-grid { grid-template-columns: 1fr; gap: 8px; }
    .svc-hero-main { max-width: none; }
    .svc-converge { height: 300px; order: -1; }
}
@media (prefers-reduced-motion: reduce) {
    .svc-strand, .svc-unified { stroke-dashoffset: 0 !important; animation: none !important; }
    .svc-flow, .svc-merge-node, .svc-vendor-label, .svc-arrive-label { opacity: 1 !important; animation: none !important; }
    .svc-arrive-flash, .svc-node-core { animation: none !important; }
}

/* ============================================================
   CLOSING CTA — "SIGNAL" VARIANT (centered)
   Used on About / Services / Industries only (NOT home).
   Applied via .cine-cta.cine-cta--signal — overrides the 2-col
   layout above with a centered composition: faint concentric
   purple rings radiate from behind the button, with a
   "Houston · Founder-led" sign-off. Home keeps the plain layout.
   ============================================================ */
.cine-cta--signal {
    padding: 116px var(--container-padding) 120px;
    text-align: center;
}
.cine-cta--signal::before {
    left: 50%; right: auto; transform: translateX(-50%);
    width: min(720px, 64%);
    background: linear-gradient(90deg, transparent, rgba(139,107,240,0.45) 50%, transparent);
}
/* concentric signal rings, centered on the button zone (lower third) */
.cine-cta--signal .cta-signal {
    position: absolute; left: 50%; bottom: 108px; transform: translateX(-50%);
    z-index: 0; pointer-events: none;
    width: min(1200px, 150%); aspect-ratio: 1;
}
.cine-cta--signal .cta-signal svg { width: 100%; height: 100%; overflow: visible; }
.cine-cta--signal .cta-signal circle {
    fill: none; transform-origin: center; transform-box: fill-box;
    opacity: 0; animation: ctaSignalRing 1.2s cubic-bezier(.22,1,.36,1) forwards;
}
.cine-cta--signal .cta-signal .sr1 { animation-delay: .45s; }
.cine-cta--signal .cta-signal .sr2 { animation-delay: .58s; }
.cine-cta--signal .cta-signal .sr3 { animation-delay: .71s; }
.cine-cta--signal .cta-signal .sr4 { animation-delay: .84s; }
@keyframes ctaSignalRing { from { opacity: 0; transform: scale(.82); } to { opacity: 1; transform: scale(1); } }
.cine-cta--signal .cta-signal-core {
    position: absolute; left: 50%; bottom: 108px; transform: translate(-50%, 50%);
    width: 300px; height: 300px; z-index: 0; pointer-events: none;
    background: radial-gradient(circle, rgba(109,74,230,0.18) 0%, transparent 64%);
    filter: blur(16px); opacity: 0;
    animation: ctaSignalAura 1s ease-out .6s forwards;
}
@keyframes ctaSignalAura { to { opacity: 1; } }
/* centered copy column */
.cine-cta--signal .cta-inner {
    display: flex; flex-direction: column; align-items: center;
    max-width: 700px; gap: 0;
    opacity: 0; transform: translateY(16px);
    animation: ctaSignalRise .8s cubic-bezier(.22,1,.36,1) .4s forwards;
}
.cine-cta--signal .cta-copy { display: contents; }
@keyframes ctaSignalRise { to { opacity: 1; transform: none; } }
.cine-cta--signal .cine-eyebrow { justify-content: center; margin-bottom: 24px; }
.cine-cta--signal .cta-headline {
    font-size: clamp(2.1rem, 3.4vw, 3rem); line-height: 1.1;
    margin-bottom: 20px; max-width: 22ch;
}
.cine-cta--signal .cta-subline {
    font: 400 1.02rem/1.62 'Inter', sans-serif;
    color: rgba(255,255,255,0.56); max-width: 60ch; margin-bottom: 38px;
}
.cine-cta--signal .cta-btn-schedule { margin: 0; }
.cine-cta--signal .cta-signoff {
    margin-top: 34px; font: 400 12px/1 var(--font-display);
    letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,0.3);
    display: inline-flex; align-items: center; gap: 12px;
}
.cine-cta--signal .cta-signoff::before,
.cine-cta--signal .cta-signoff::after {
    content: ''; width: 30px; height: 1px; background: rgba(139,107,240,0.15);
}
@media (max-width: 860px) {
    .cine-cta--signal { padding: 88px var(--container-padding) 92px; }
    .cine-cta--signal .cta-inner { grid-template-columns: 1fr; gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .cine-cta--signal .cta-signal circle { animation: none !important; opacity: 1; transform: none; }
    .cine-cta--signal .cta-signal-core { animation: none !important; opacity: 1; }
    .cine-cta--signal .cta-inner { animation: none !important; opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .cine-net-nodes circle, .cine-dot, .cine-scroll-line,
    .cine-diagram .diag-lines path, .cine-diagram .diag-nodes circle,
    .cine-diagram .diag-peak, .cine-diagram .diag-caret, .cine-diagram .diag-check,
    .cine-orbit-icon, .cine-marquee-track { animation: none; }
}

/* =====================================================
   PREMIUM HERO SECTION
   ===================================================== */
.hero {
    min-height: 100vh;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    padding: 120px 0 80px;
}

/* Hero Background */
.hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero-gradient-mesh {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 80% 50% at 20% 40%, rgba(109, 74, 230, 0.2) 0%, transparent 50%),
        radial-gradient(ellipse 60% 40% at 80% 20%, rgba(124, 58, 237, 0.2) 0%, transparent 50%),
        radial-gradient(ellipse 50% 30% at 60% 80%, rgba(124, 92, 230, 0.15) 0%, transparent 50%),
        linear-gradient(180deg, var(--navy-900) 0%, var(--navy-800) 100%);
}

.hero-grid-pattern {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(var(--tint-03) 1px, transparent 1px),
        linear-gradient(90deg, var(--tint-03) 1px, transparent 1px);
    background-size: 60px 60px;
    mask-image: radial-gradient(ellipse 70% 50% at 50% 50%, black 20%, transparent 70%);
}

/* Floating 3D Shapes */
.hero-shapes {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.orb-accent {
    width: 300px;
    height: 300px;
    background: rgba(245, 158, 11, 0.08);
    bottom: 0;
    left: 30%;
    animation-delay: 6s;
}

/* Light Rays */
.hero-rays {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 200%;
    height: 100%;
    pointer-events: none;
    overflow: hidden;
}

/* Hero Noise Texture */
.hero-noise {
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
    opacity: 0.03;
    pointer-events: none;
}

/* Hero Container */
.hero-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: clamp(48px, 5vw, 96px);
    align-items: center;
    position: relative;
    z-index: 1;
}

/* Hero Content — vertically self-centred as one block so it never floats
   with dead space above/below against the taller pillar stack. */
.hero-content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

/* Trust Bar */
.hero-trust-bar {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px;
    animation: fadeInUp 0.8s ease forwards;
}

.trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.trust-icon {
    width: 36px;
    height: 36px;
    background: linear-gradient(135deg, rgba(109, 74, 230, 0.2) 0%, rgba(124, 58, 237, 0.2) 100%);
    border: 1px solid rgba(109, 74, 230, 0.3);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.trust-icon i {
    font-size: 0.9rem;
    color: var(--primary-blue-light);
}

.trust-item span {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--slate-300);
}

.trust-divider {
    width: 1px;
    height: 24px;
    background: linear-gradient(to bottom, transparent, var(--slate-600), transparent);
}

/* Hero Headline */
.hero-headline {
    margin-bottom: clamp(28px, 3vw, 40px);
    animation: fadeInUp 0.8s ease 0.2s forwards;
    opacity: 0;
}

.headline-prefix {
    display: block;
    font-size: 1.1rem;
    font-weight: 500;
    color: var(--primary-blue-light);
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 15px;
}

.headline-main {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 800;
    line-height: 1.1;
    color: var(--white);
}

.word-line {
    display: block;
}

.word {
    display: inline-block;
}

.gradient-text {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Hero Description */
.hero-description {
    font-size: clamp(1.02rem, 1.15vw, 1.15rem);
    color: var(--slate-400);
    line-height: 1.65;
    margin-bottom: clamp(30px, 3.2vw, 40px);
    max-width: 50ch;
    animation: fadeInUp 0.8s ease 0.4s forwards;
    opacity: 0;
}

.hero-description strong {
    color: var(--white);
    font-weight: 600;
}

/* Hero CTA Group */
.hero-cta-group {
    display: flex;
    gap: 16px;
    margin-bottom: clamp(8px, 1.5vw, 16px);
    animation: fadeInUp 0.8s ease 0.6s forwards;
    opacity: 0;
}

/* Hero Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 32px;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 50px;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
    position: relative;
    overflow: hidden;
}

.btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, var(--tint-20), transparent);
    transition: left 0.5s ease;
}

.btn:hover::before {
    left: 100%;
}

.btn-primary {
    background: var(--gradient-primary);
    color: var(--white);
    box-shadow: 0 4px 20px rgba(109, 74, 230, 0.3);
}

.btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 30px rgba(109, 74, 230, 0.5);
}

.btn-hero-primary {
    background: var(--gradient-primary);
    color: var(--white);
    padding: 18px 36px;
    font-size: 1.05rem;
    position: relative;
}

.btn-hero-primary .btn-glow {
    position: absolute;
    inset: -3px;
    background: var(--gradient-primary);
    border-radius: 50px;
    z-index: -1;
    filter: blur(15px);
    opacity: 0;
    transition: opacity var(--transition-normal);
}

.btn-hero-primary:hover {
    transform: translateY(-3px);
}

.btn-hero-primary:hover .btn-glow {
    opacity: 0.5;
}

.btn-hero-secondary {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    color: var(--white);
    backdrop-filter: var(--glass-blur);
    padding: 18px 36px;
}

.btn-hero-secondary:hover {
    background: var(--tint-10);
    border-color: var(--tint-20);
    transform: translateY(-3px);
}

.btn-secondary {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    color: var(--white);
    backdrop-filter: var(--glass-blur);
}

.btn-secondary:hover {
    background: var(--tint-10);
    border-color: var(--tint-20);
    transform: translateY(-3px);
}

.btn-light {
    background: var(--white);
    color: var(--navy-800);
}

.btn-light:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 30px var(--tint-20);
}

.btn-white {
    background: var(--white);
    color: var(--navy-800);
}

.btn-white:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 30px var(--tint-30);
}

.btn-outline-white {
    border: 2px solid var(--tint-30);
    color: var(--white);
    background: transparent;
}

.btn-outline-white:hover {
    background: var(--tint-10);
    border-color: var(--white);
    transform: translateY(-3px);
}

/* Hero Stats Row */
.hero-stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    animation: fadeInUp 0.8s ease 0.8s forwards;
    opacity: 0;
}

.hero-stat {
    text-align: left;
}

.stat-value {
    display: flex;
    align-items: baseline;
    margin-bottom: 8px;
}

.stat-number {
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--white);
}

/* Word-based stat (e.g. "Nationwide") — scales the display font down so the
   word fits the narrow stat column while matching the numeric stats' style. */
.stat-number.stat-text {
    font-size: 1.6rem;
    line-height: 1.2;
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.stat-plus {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--primary-blue);
    margin-left: 4px;
}

.stat-label {
    font-size: 0.85rem;
    color: var(--slate-400);
    margin-bottom: 10px;
}

.stat-bar {
    height: 4px;
    background: var(--navy-700);
    border-radius: 2px;
    overflow: hidden;
}

.stat-bar-fill {
    height: 100%;
    background: var(--gradient-primary);
    border-radius: 2px;
    animation: statBarFill 2s ease forwards;
    transform-origin: left;
}

@keyframes statBarFill {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

/* Hero Visual */
.hero-visual {
    position: relative;
    animation: fadeInRight 1s ease 0.5s forwards;
    opacity: 0;
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(50px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.hero-card-stack {
    position: relative;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
}

/* Main Feature Card */
.hero-feature-card {
    position: relative;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    overflow: hidden;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
}

.hero-feature-card.main-card {
    padding: 40px;
}

.hero-feature-card .card-glow {
    position: absolute;
    inset: -2px;
    background: var(--gradient-primary);
    border-radius: 26px;
    opacity: 0;
    z-index: -1;
    filter: blur(20px);
    transition: opacity var(--transition-normal);
}

.hero-feature-card:hover .card-glow {
    opacity: 0.4;
}

.hero-feature-card .card-border {
    position: absolute;
    inset: 0;
    border-radius: 24px;
    padding: 1px;
    background: linear-gradient(135deg, rgba(109, 74, 230, 0.5), transparent, rgba(124, 58, 237, 0.3));
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask-composite: xor;
    -webkit-mask-composite: xor;
    pointer-events: none;
}

.card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.card-icon {
    width: 60px;
    height: 60px;
    background: var(--gradient-primary);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-glow);
}

.card-icon i {
    font-size: 1.5rem;
    color: var(--white);
}

.card-badge {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: rgba(34, 197, 94, 0.2);
    border: 1px solid rgba(34, 197, 94, 0.3);
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    color: #22c55e;
    text-transform: uppercase;
}

.card-badge::before {
    content: '';
    width: 8px;
    height: 8px;
    background: #22c55e;
    border-radius: 50%;
    animation: pulse 2s ease infinite;
}

@keyframes pulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.5;
    }
}

.hero-feature-card.main-card h3 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    color: var(--white);
    margin-bottom: 12px;
}

.hero-feature-card.main-card p {
    color: var(--slate-400);
    margin-bottom: 25px;
}

.card-metrics {
    display: flex;
    gap: 30px;
}

.metric {
    text-align: left;
}

.metric-value {
    display: block;
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--primary-blue-light);
}

.metric-label {
    font-size: 0.8rem;
    color: var(--slate-500);
}

/* Floating Cards */
.float-card {
    position: absolute;
    padding: 16px 20px;
    animation: floatCard 6s ease-in-out infinite;
}

.float-1 {
    top: -30px;
    right: 20px;
    animation-delay: 0s;
}

.float-2 {
    bottom: 40%;
    left: -40px;
    animation-delay: 2s;
}

.float-3 {
    bottom: -20px;
    right: 40px;
    animation-delay: 4s;
}

@keyframes floatCard {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-15px);
    }
}

.card-mini-content {
    display: flex;
    align-items: center;
    gap: 12px;
}

.card-mini-content i {
    font-size: 1.2rem;
    color: var(--primary-blue-light);
}

.card-mini-content span {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--white);
}

/* Hero Decorations */
.hero-deco {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.deco-ring {
    position: absolute;
    border: 1px dashed rgba(109, 74, 230, 0.2);
    border-radius: 50%;
}

.ring-1 {
    width: 400px;
    height: 400px;
    top: -200px;
    left: -200px;
    animation: spinSlow 40s linear infinite;
}

.ring-2 {
    width: 500px;
    height: 500px;
    top: -250px;
    left: -250px;
    animation: spinSlow 60s linear infinite reverse;
}

@keyframes spinSlow {
    to {
        transform: rotate(360deg);
    }
}

/* =====================================================
   HERO PILLARS — Three-capability accordion (homepage)
   ===================================================== */
.hero-pillars {
    position: relative;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Verb headline — each line color-matched to its pillar and spotlight-synced
   one confident statement. The three value verbs (build / staff / deliver)
   carry the brand's single accent; the active verb — in step with the
   cycling pillar card on the right — gets a soft glow. One accent, not a
   rainbow. The cards on the right hold the per-capability colour. */
.hero-statement {
    font-family: var(--font-display);
    font-size: clamp(2.15rem, 3.9vw, 3.3rem);
    font-weight: 600;
    line-height: 1.22;
    letter-spacing: -0.022em;
    color: var(--white);
    max-width: 15ch;            /* wraps to a clean ~3-line editorial block */
    text-wrap: balance;
}

/* clauses flow inline — natural word-boundary wrapping, no mid-phrase breaks */
.hero-statement .clause { display: inline; }

/* The value verbs — always the single brand accent (blue→violet), never a
   per-word rainbow. This is the one accent the headline is allowed. */
.accent-verb {
    position: relative;
    font-weight: 700;
    background-image: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    transition: filter 0.55s ease;
}

/* Active verb (matches the open card) lifts with a soft brand glow — a quiet
   pulse moving build → staff → deliver, never a colour change. */
.accent-verb.active {
    filter: drop-shadow(0 0 22px rgba(109, 74, 230, 0.45));
}

.pillar-card {
    position: relative;
    border-radius: 18px;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    overflow: hidden;
    cursor: pointer;
    transition: border-color 0.45s ease, box-shadow 0.45s ease, transform 0.4s ease;
}

/* Inactive card lifts on hover — engineered, alive, but never competes with
   the open (active) card which already carries its own glow. */
.pillar-card:not(.active):hover {
    transform: translateY(-4px);
    border-color: var(--tint-18);
    box-shadow: var(--shadow-lg);
}

/* Left accent bar — scales up on active */
.pillar-bar {
    position: absolute;
    left: 0; top: 10px; bottom: 10px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    opacity: 0;
    transform: scaleY(0.3);
    transform-origin: center;
    transition: opacity 0.4s ease, transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.pillar-build .pillar-bar { background: var(--gradient-primary); }
.pillar-staff .pillar-bar { background: linear-gradient(180deg, #7C5CE6, #8B6BF0); }
.pillar-intel .pillar-bar  { background: var(--gradient-gold); }
.pillar-card.active .pillar-bar { opacity: 1; transform: scaleY(1); }

/* Collapsed row — always visible */
.pillar-head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 22px;
}

.pillar-icon-wrap {
    width: 40px; height: 40px;
    border-radius: 11px;
    display: flex; align-items: center; justify-content: center;
    font-size: 15px;
    flex-shrink: 0;
    border: 1px solid transparent;
    transition: transform 0.35s ease;
}
.pillar-build .pillar-icon-wrap {
    background: rgba(109, 74, 230, 0.12);
    border-color: rgba(109, 74, 230, 0.2);
    color: var(--primary-blue);
}
.pillar-staff .pillar-icon-wrap {
    background: rgba(139, 107, 240, 0.12);
    border-color: rgba(139, 107, 240, 0.2);
    color: #8B6BF0;
}
.pillar-intel .pillar-icon-wrap {
    background: rgba(245, 158, 11, 0.12);
    border-color: rgba(245, 158, 11, 0.2);
    color: var(--gold);
}
.pillar-card.active .pillar-icon-wrap { transform: scale(1.08); }

.pillar-head-text { flex: 1; }
.pillar-head-text h3 {
    font-family: var(--font-display);
    font-size: 0.975rem;
    font-weight: 700;
    color: var(--white);
    letter-spacing: 0.01em;
    margin-bottom: 2px;
    line-height: 1;
}
.pillar-head-text span {
    font-size: 0.72rem;
    color: var(--slate-500);
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.pillar-chevron {
    color: var(--slate-500);
    font-size: 11px;
    flex-shrink: 0;
    transition: transform 0.4s ease, color 0.3s ease;
}
.pillar-card.active .pillar-chevron  { transform: rotate(180deg); }
.pillar-build.active .pillar-chevron { color: var(--primary-blue); }
.pillar-staff.active .pillar-chevron { color: #8B6BF0; }
.pillar-intel.active  .pillar-chevron { color: var(--gold); }

/* Expandable body (max-height accordion) */
.pillar-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.pillar-card.active .pillar-body { max-height: 180px; }

.pillar-body-inner {
    padding: 16px 22px 22px;
    border-top: 1px solid var(--glass-border);
}

.pillar-desc {
    font-size: 0.855rem;
    line-height: 1.65;
    color: var(--slate-400);
    margin-bottom: 14px;
}

.pillar-stat-row { display: flex; align-items: center; }

.pillar-stat-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 14px;
    border-radius: 50px;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}
.pillar-build .pillar-stat-badge {
    background: rgba(109, 74, 230, 0.1);
    border: 1px solid rgba(109, 74, 230, 0.22);
    color: var(--primary-blue-light);
}
.pillar-staff .pillar-stat-badge {
    background: rgba(139, 107, 240, 0.1);
    border: 1px solid rgba(139, 107, 240, 0.22);
    color: #c084fc;
}
.pillar-intel .pillar-stat-badge {
    background: rgba(245, 158, 11, 0.1);
    border: 1px solid rgba(245, 158, 11, 0.22);
    color: var(--gold-light);
}
.pillar-stat-badge .stat-num {
    font-size: 1rem;
    font-weight: 800;
    font-family: var(--font-display);
}

/* Active glow per pillar color */
.pillar-build.active {
    border-color: rgba(109, 74, 230, 0.32);
    box-shadow: var(--shadow-lg), 0 0 30px rgba(109, 74, 230, 0.1);
}
.pillar-staff.active {
    border-color: rgba(139, 107, 240, 0.32);
    box-shadow: var(--shadow-lg), 0 0 30px rgba(139, 107, 240, 0.1);
}
.pillar-intel.active {
    border-color: rgba(245, 158, 11, 0.32);
    box-shadow: var(--shadow-lg), 0 0 30px rgba(245, 158, 11, 0.1);
}

/* Progress dot strip */
.pillar-indicators {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 6px;
}
.pillar-dot {
    width: 6px; height: 6px;
    border-radius: 3px;
    background: var(--tint-12);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: width 0.35s ease, background 0.35s ease;
}
.pillar-dot.active { width: 22px; }
.pillar-dot[data-idx="0"].active { background: var(--primary-blue); }
.pillar-dot[data-idx="1"].active { background: #8B6BF0; }
.pillar-dot[data-idx="2"].active { background: var(--gold); }

/* Hero Scroll Indicator */
.hero-scroll-indicator {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    animation: fadeIn 1s ease 1.5s forwards;
    opacity: 0;
}

.scroll-text {
    font-size: 0.75rem;
    color: var(--slate-500);
    text-transform: uppercase;
    letter-spacing: 2px;
}

.scroll-line {
    width: 2px;
    height: 60px;
    background: linear-gradient(to bottom, transparent, var(--slate-600), transparent);
    position: relative;
}

/* Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    to {
        opacity: 1;
    }
}

/* =====================================================
   SECTIONS & COMPONENTS
   ===================================================== */

/* Section Common Styles */
section {
    position: relative;
    padding: var(--section-padding) 0;
    /* clip, not hidden: identical visual clipping, but hidden turns every
       section into a scroll container that DEFEATS position:sticky inside it
       (the reason the carousels were JS-pinned with layout-shifting is-fixed
       toggles). clip keeps sticky working. hidden kept as old-browser fallback. */
    overflow: hidden;
    overflow: clip;
}

.section-bg-dark {
    position: absolute;
    inset: 0;
    background: var(--navy-800);
    z-index: -1;
}

.section-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(109, 74, 230, 0.1);
    border: 1px solid rgba(109, 74, 230, 0.2);
    padding: 10px 20px;
    border-radius: 50px;
    margin-bottom: 20px;
}

.section-badge.light {
    background: var(--tint-05);
    border-color: var(--tint-10);
}

.section-badge i {
    color: var(--primary-blue);
    font-size: 0.9rem;
}

.section-badge span {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--primary-blue-light);
    letter-spacing: 1px;
    text-transform: uppercase;
}

.section-header {
    margin-bottom: 60px;
}

.section-header.centered {
    text-align: center;
}

.section-title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    color: var(--white);
    line-height: 1.2;
    margin-bottom: 20px;
}

.section-title.light {
    color: var(--white);
}

.section-description {
    font-size: 1.1rem;
    color: var(--slate-400);
    max-width: 600px;
    margin: 0 auto;
}

.section-text {
    color: var(--slate-400);
    font-size: 1.05rem;
    line-height: 1.8;
}

.section-cta {
    text-align: center;
    margin-top: 50px;
}

/* Services Preview Grid */
.services-preview {
    background: var(--navy-900);
}

.services-preview-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.preview-card {
    position: relative;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    padding: 40px 30px;
    overflow: hidden;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
}

.preview-card:hover {
    transform: translateY(-10px);
    border-color: rgba(109, 74, 230, 0.5);
}

.preview-card-glow {
    position: absolute;
    inset: -2px;
    background: var(--gradient-primary);
    border-radius: 26px;
    opacity: 0;
    z-index: -1;
    filter: blur(20px);
    transition: opacity var(--transition-normal);
}

.preview-card:hover .preview-card-glow {
    opacity: 0.4;
}

.preview-shimmer {
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, var(--tint-08), transparent);
    transition: left 0.6s ease;
}

.preview-card:hover .preview-shimmer {
    left: 100%;
}

.preview-icon {
    width: 70px;
    height: 70px;
    background: var(--gradient-primary);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    box-shadow: var(--shadow-glow);
}

.preview-icon i {
    font-size: 1.75rem;
    color: var(--white);
}

.preview-card h3 {
    font-family: var(--font-display);
    font-size: 1.35rem;
    color: var(--white);
    margin-bottom: 15px;
}

.preview-card p {
    color: var(--slate-400);
    margin-bottom: 25px;
    line-height: 1.7;
}

.preview-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--primary-blue-light);
    font-weight: 600;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);
}

.preview-link i {
    transition: transform var(--transition-fast);
}

.preview-card:hover .preview-link {
    color: var(--white);
}

.preview-card:hover .preview-link i {
    transform: translateX(5px);
}

/* Why Choose Home Section */
.why-choose-home {
    position: relative;
}

.why-choose-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

.why-choose-content {
    position: relative;
}

.features-list {
    margin: 40px 0;
}

.feature-row {
    display: flex;
    gap: 20px;
    margin-bottom: 25px;
    padding: 20px;
    background: var(--tint-02);
    border-radius: 16px;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);
}

.feature-row:hover {
    background: rgba(109, 74, 230, 0.1);
}

.feature-check {
    width: 40px;
    height: 40px;
    background: var(--gradient-primary);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.feature-check i {
    color: var(--white);
    font-size: 1rem;
}

.feature-content h4 {
    font-family: var(--font-display);
    font-size: 1.1rem;
    color: var(--white);
    margin-bottom: 6px;
}

.feature-content p {
    color: var(--slate-400);
    font-size: 0.95rem;
}

/* Why Choose Visual - Elite Architectural Minimalist Rebuild */
.why-choose-visual {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    min-height: 400px;
}

.stat-showcase-elite {
    position: relative;
    width: 340px;
    height: 340px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Perfect Circular Mask to contain glowing artifacts */
.showcase-mask {
    position: relative;
    width: 300px;
    height: 300px;
    border-radius: 50%;
    border: 1px solid var(--tint-04);
    background: rgba(10, 15, 26, 0.4);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 60px rgba(109, 74, 230, 0.05);
}

.ambient-core-glow {
    position: absolute;
    width: 150%;
    height: 150%;
    top: -25%;
    left: -25%;
    background: radial-gradient(circle at center, rgba(109, 74, 230, 0.15) 0%, transparent 60%);
    pointer-events: none;
    z-index: 0;
    animation: slowBreathe 6s ease-in-out infinite alternate;
}

.grid-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid var(--tint-03);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 1;
}

.ring-1 { width: 90%; height: 90%; }
.ring-2 { width: 75%; height: 75%; border-color: rgba(109, 74, 230, 0.1); }
.ring-3 { width: 60%; height: 60%; border-style: dashed; animation: rotateSlowElite 30s linear infinite; }

.stat-content {
    position: relative;
    z-index: 2;
    text-align: center;
}

.stat-value {
    font-family: var(--font-display);
    font-size: 5rem;
    font-weight: 300;
    line-height: 1;
    color: var(--white);
    letter-spacing: -2px;
    margin-bottom: 4px;
}

.stat-value .percent {
    font-size: 2.5rem;
    color: var(--primary-blue-light);
    font-weight: 400;
}

.stat-label {
    font-size: 0.8rem;
    color: var(--slate-400);
    text-transform: uppercase;
    letter-spacing: 4px;
    font-weight: 400;
}

/* Sleek, Tightly Bound Pills */
.sleek-orbit-badge {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(10, 15, 26, 0.6);
    border: 1px solid var(--tint-06);
    padding: 8px 16px;
    border-radius: 50px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s ease;
    z-index: 10;
}

.sleek-orbit-badge:hover {
    border-color: rgba(109, 74, 230, 0.3);
    transform: translateY(-2px) scale(1.02);
}

.badge-icon {
    width: 16px;
    height: 16px;
}

.sleek-orbit-badge span {
    font-size: 0.75rem;
    color: var(--slate-200);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 500;
    white-space: nowrap;
}

/* Precisely anchored positions within the 340x340 parent bounds */
/* No negative offsets that break grid */
.badge-top-right {
    top: 20px;
    right: 0px;
}

.badge-mid-left {
    top: 50%;
    left: -20px;
    transform: translateY(-50%);
}

.badge-mid-left:hover {
    transform: translateY(calc(-50% - 2px)) scale(1.02);
}

.badge-bot-right {
    bottom: 30px;
    right: -10px;
}

@keyframes rotateSlowElite {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes slowBreathe {
    from { opacity: 0.4; }
    to { opacity: 0.8; }
}

/* Industries Preview */
.industries-preview {
    background: var(--navy-900);
    padding: 80px 0;
}

.industries-scroll {
    overflow: hidden;
    margin: 40px 0;
}

.industries-track {
    display: flex;
    gap: 20px;
    animation: scrollTrack 30s linear infinite;
    width: max-content;
}

@keyframes scrollTrack {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

.industry-chip {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 28px;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 50px;
    white-space: nowrap;
    color: var(--white);
    font-weight: 500;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);
}

.industry-chip i {
    color: var(--primary-blue);
}

.industry-chip:hover {
    border-color: var(--primary-blue);
    background: rgba(109, 74, 230, 0.1);
}

/* Testimonials Preview */
.testimonials-preview {
    position: relative;
}

.testimonials-showcase {
    max-width: 800px;
    margin: 0 auto;
}

.testimonial-card-large {
    position: relative;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 30px;
    padding: 50px;
    text-align: center;
}

.testimonial-quote-icon {
    width: 60px;
    height: 60px;
    background: var(--gradient-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 30px;
}

.testimonial-quote-icon i {
    font-size: 1.5rem;
    color: var(--white);
}

.testimonial-card-large blockquote {
    font-size: 1.25rem;
    color: var(--slate-300);
    line-height: 1.8;
    margin-bottom: 35px;
    font-style: italic;
}

.testimonial-author {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

.author-avatar {
    width: 60px;
    height: 60px;
    background: var(--gradient-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--white);
}

.author-info {
    text-align: left;
}

.author-info strong {
    display: block;
    color: var(--white);
    font-size: 1.1rem;
}

.author-info span {
    color: var(--slate-500);
    font-size: 0.9rem;
}

.author-rating {
    display: flex;
    gap: 4px;
}

.author-rating i {
    color: var(--gold);
    font-size: 1rem;
}

/* CTA Section */
.cta-section {
    position: relative;
    padding: 100px 0;
}

.cta-bg {
    position: absolute;
    inset: 0;
}

.cta-gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--primary-blue-dark) 0%, var(--royal-blue) 50%, #581c87 100%);
}

.cta-pattern {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 2px 2px, var(--tint-10) 1px, transparent 0);
    background-size: 30px 30px;
}

.cta-content {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
}

.cta-content h2 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 2.75rem);
    font-weight: 700;
    color: var(--white);
    margin-bottom: 20px;
}

.cta-content p {
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: 40px;
}

.cta-buttons {
    display: flex;
    gap: 20px;
    justify-content: center;
    flex-wrap: wrap;
}

/* The CTA band keeps its dark/purple accent gradient in BOTH themes, so inside it
   the neutral ramp must stay "on-dark" — restore the dark-mode values for light theme
   so the heading is white and the white/outline buttons read as intended. */
[data-theme="light"] .cta-section {
    --white: #ffffff;
    --navy-800: #0f172a;
    --tint-10: rgba(255,255,255,0.1);
    --tint-30: rgba(255,255,255,0.3);
}

/* =====================================================
   PAGE SPECIFIC STYLES
   ===================================================== */

/* Page Header */
.page-header {
    min-height: 400px;
    display: flex;
    align-items: center;
    padding-top: 120px;
    position: relative;
    overflow: hidden;
}

.page-header-bg {
    position: absolute;
    inset: 0;
    z-index: -1;
}

.header-gradient {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 30% 50%, rgba(109, 74, 230, 0.2) 0%, transparent 50%),
        radial-gradient(ellipse at 70% 30%, rgba(124, 58, 237, 0.15) 0%, transparent 50%),
        var(--gradient-dark);
}

.header-pattern {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(var(--tint-02) 1px, transparent 1px),
        linear-gradient(90deg, var(--tint-02) 1px, transparent 1px);
    background-size: 50px 50px;
}

.page-header-content {
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
}

.breadcrumb {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 25px;
    font-size: 0.9rem;
}

.breadcrumb a {
    color: var(--slate-400);
    transition: color var(--transition-fast);
}

.breadcrumb a:hover {
    color: var(--primary-blue);
}

.breadcrumb i {
    color: var(--slate-600);
    font-size: 0.7rem;
}

.breadcrumb span {
    color: var(--white);
}

.page-header h1 {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 800;
    color: var(--white);
    margin-bottom: 20px;
}

.page-header p {
    font-size: 1.15rem;
    color: var(--slate-400);
    line-height: 1.7;
}

/* About Page Styles */
.about-intro {
    background: var(--navy-900);
}

.about-intro-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

.about-text-large {
    font-size: 1.2rem;
    color: var(--slate-300);
    line-height: 1.8;
    margin-bottom: 25px;
}

.about-text {
    color: var(--slate-400);
    line-height: 1.8;
    margin-bottom: 20px;
}

/* ── Statement reveal — full-screen isolated stage (BridgeAgent-style) ──
   The divider between the hero and WHO WE ARE: a 100vh dark stage with one
   bold centred sentence whose words ignite white→purple word-by-word on
   scroll. Reuses the .cine-manifesto-text word-reveal from initManifesto(). */
/* PINNED SCROLL (BridgeAgent-style). The section is a TALL runway; the stage
   inside is `position:sticky` so the ring + text FREEZE dead-centre and stay
   pinned while you scroll the whole runway. During the pin the words ignite
   one-by-one and the ring's arc rotates — all driven by one scroll-progress
   value (--ab-p, set by initStatementPin). Same pin trick as the What-We-Do
   carousel. */
.ab-statement {
    position: relative;
    height: 220vh;              /* the scroll runway — how long the pin lasts */
    padding: 0;                 /* override global section padding */
    overflow: visible;          /* MUST stay visible — overflow:hidden here would
                                   make this a scroll container and break the
                                   sticky pin below. The stage clips the ring. */
    --ab-p: 0;                  /* 0→1 progress through the runway (set by JS) */
}
/* Natively pinned: sticky freezes the stage for the runway's length. The old
   JS is-fixed/is-bottom toggling caused ~1.0 layout shifts at pin/unpin. */
.ab-statement-stage {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;              /* exactly one screen */
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
/* Pitch-dark backdrop — fully opaque, globe cannot bleed through at any edge.
   Apple-style depth: a barely-visible overhead glow (~5% max opacity) so the
   text feels like it's floating in a dimly lit dark room, not a flat black box.
   Two layered gradients:
     1. Soft white breath at top-centre (like a ceiling light 2m above)
     2. Faint brand-purple pulse at middle (gives the black warmth and depth)
   Both are so subtle a screenshot looks pitch-black — it only registers live. */
.ab-statement-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-color: #06040C;   /* fully opaque near-black — blocks globe 100% */
    background-image:
        radial-gradient(ellipse 55% 22% at 50% 0%,
            rgba(220,210,255,0.055) 0%, transparent 100%),
        radial-gradient(ellipse 65% 55% at 50% 40%,
            rgba(109,74,230,0.045) 0%, transparent 100%);
}
/* One giant ring behind the text — sized WIDER than the viewport so only its
   gentle curve shows, edges off-screen (the BridgeAgent scale). */
.ab-statement-ring {
    position: absolute;
    top: 50%; left: 50%;
    width: min(125vmin, 1100px);
    height: min(125vmin, 1100px);
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 1;
}
.ab-ring-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}
/* Faint complete outline — razor thin (stroke is in viewBox units, /100). */
.ab-ring-base-svg circle {
    fill: none;
    stroke: rgba(159,127,255,0.10);
    stroke-width: 0.14;
}
/* Bright travelling arc — a short 16% segment that ROTATES with scroll.
   --ab-p drives the rotation; -90deg so it begins at the top (12 o'clock). */
.ab-ring-arc-svg {
    transform-origin: 50% 50%;
    transform: rotate(calc(var(--ab-p) * 360deg - 90deg));
    filter: drop-shadow(0 0 5px rgba(139,107,240,0.55));
}
.ab-ring-arc-svg circle {
    fill: none;
    stroke: var(--primary-blue-light);
    stroke-width: 0.32;
    stroke-dasharray: 0.16 1;   /* draw 16% of the circle, gap the rest */
    stroke-linecap: round;
}
@media (prefers-reduced-motion: reduce) {
    .ab-ring-arc-svg { transform: rotate(-90deg); }
}
.ab-statement-inner {
    position: relative;
    z-index: 2;
    max-width: 560px;          /* narrow block — sits comfortably inside the ring */
    margin: 0 auto;
    padding: 0 var(--container-padding);
}
.ab-statement-text {
    font-family: var(--font-display);
    font-size: clamp(1.7rem, 3vw, 2.7rem);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: -0.015em;
    text-align: left;
}
/* Word states: dim grey by default (still readable), ignite to bright white,
   the final phrase glows purple as the branded payoff.
   .w / .w.lit selectors are shared with the home manifesto so the JS works. */
.ab-statement-text .w {
    color: rgba(255,255,255,0.28);
    transition: color 0.3s ease;
}
.ab-statement-text .w.lit { color: #fff; }
.ab-statement-text .w.lit:nth-last-child(-n+5) {
    color: var(--primary-blue-light);
}
@media (max-width: 860px) {
    .ab-statement { height: 180vh; }              /* shorter runway on phones */
    .ab-statement-ring { width: 150vmin; height: 150vmin; }
    .ab-ring-arc-svg circle { stroke-width: 0.4; }
}
@media (prefers-reduced-motion: reduce) {
    .ab-statement-text .w { color: #fff; transition: none; }
    .ab-statement-text .w:nth-last-child(-n+5) { color: var(--primary-blue-light); }
}

/* ═══════════════════════════════════════════════════════════════════════
   MEET THE FOUNDER — Signature Statement
   One centred, reverent moment: photo (breathing glow) → the founder's own
   words → a signature that DRAWS ITSELF on scroll-in → stats → LinkedIn.
   Distinct motion from the ring statement above (gentle staggered entrance,
   not scroll-scrubbed ignite) so the page never feels repetitive.
   ═══════════════════════════════════════════════════════════════════════ */
.founder-signature {
    position: relative;
    padding: clamp(90px, 12vh, 150px) 0;
}
/* Isolate the founder moment from the ambient globe — dark across the full width
   (kills the globe bleeding in on the sides), fading only at top/bottom so it
   blends into the globe sections above and below. Apple-style faint glow on top. */
.founder-signature::before {
    content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background:
        radial-gradient(ellipse 50% 26% at 50% 32%, rgba(220,210,255,0.04), transparent 72%),
        radial-gradient(ellipse 58% 48% at 50% 52%, rgba(109,74,230,0.05), transparent 76%),
        linear-gradient(180deg, transparent 0, #06040C 100px, #06040C calc(100% - 100px), transparent 100%);
}
.founder-signature .container { position: relative; z-index: 1; }
[data-theme="light"] .founder-signature::before {
    background: linear-gradient(180deg, transparent 0, #F4F2F8 100px, #F4F2F8 calc(100% - 100px), transparent 100%);
}
.fsig {
    max-width: 820px;
    margin: 0 auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.fsig-eyebrow {
    display: inline-flex; align-items: center; gap: 9px;
    font: 600 12px/1 var(--font-body); letter-spacing: 0.28em; text-transform: uppercase;
    color: var(--primary-blue-light); margin-bottom: 34px;
}
.fsig-eyebrow .cine-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--primary-blue-light); }
/* Photo — round, soft purple glow that gently breathes */
.fsig-photo { position: relative; width: 140px; height: 140px; margin-bottom: 36px; }
/* Clip wrapper — lets the photo zoom IN (tight head-and-shoulders) without the
   busy stage-screen background. The glow ::after stays on the outer .fsig-photo
   so it isn't clipped. */
.fsig-photo-ring {
    position: relative; z-index: 1; display: block;
    width: 140px; height: 140px; border-radius: 50%; overflow: hidden;
    border: 1px solid rgba(139,107,240,0.45);
}
/* Zoom by rendering the image LARGER than the circle and panning with position
   — the browser samples from the full-res 832×1248 source, so it stays sharp.
   (Do NOT use transform:scale to zoom — that upscales the shrunk bitmap = blur.) */
.fsig-photo-ring img {
    position: absolute;
    max-width: none;              /* override the global img{max-width:100%} cap */
    width: 250px; height: auto;   /* 250px wide drawn from an 832px source = sharp */
    left: -56px; top: -104px;     /* frame head & shoulders, face centred */
}
.fsig-photo::after {
    content: ''; position: absolute; inset: -20px; border-radius: 50%; z-index: 0;
    background: radial-gradient(circle, rgba(109,74,230,0.5), transparent 70%);
    filter: blur(16px); animation: fsigBreathe 5s ease-in-out infinite;
}
@keyframes fsigBreathe { 0%,100% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.85; transform: scale(1.06); } }
/* The quote — readable bright display type, one accent word in purple */
.fsig-quote {
    font-family: var(--font-display); font-weight: 500;
    font-size: clamp(1.4rem, 2.5vw, 1.95rem); line-height: 1.45; letter-spacing: -0.015em;
    color: #fff; margin: 0 0 34px; max-width: 18ch;
}
.fsig-quote { max-width: 720px; }
.fsig-hi { color: var(--primary-blue-light); }
/* Word-by-word ignite on scroll — same effect as the ring statement up top.
   Words sit dim, then light to white as you scroll through; "directly" lands
   in purple. Spans + .lit toggling are built in JS (initFounderQuoteReveal). */
.fsig-quote .w { color: rgba(255,255,255,0.20); transition: color 0.35s ease; }
.fsig-quote .w.lit { color: #fff; }
.fsig-quote .w.w-hi { color: rgba(139,107,240,0.32); }
.fsig-quote .w.w-hi.lit { color: var(--primary-blue-light); }
/* Signature — name in editorial italic + a flourish that draws itself in */
.fsig-signature { position: relative; display: inline-flex; flex-direction: column; align-items: center; }
.fsig-name { font-family: 'Fraunces', serif; font-style: italic; font-weight: 400; font-size: clamp(1.7rem, 3vw, 2.1rem); color: #fff; line-height: 1; }
.fsig-flourish { width: 150px; height: 14px; margin-top: 8px; overflow: visible; }
.fsig-flourish path {
    stroke: var(--primary-blue-light); stroke-width: 1.6; fill: none; stroke-linecap: round;
    stroke-dasharray: 230; stroke-dashoffset: 230;   /* hidden until drawn */
}
.fsig-role {
    font: 600 11px/1 var(--font-body); letter-spacing: 0.22em; text-transform: uppercase;
    color: rgba(255,255,255,0.5); margin: 14px 0 36px;
}
.fsig-stats { display: flex; gap: clamp(28px, 5vw, 54px); justify-content: center; margin-bottom: 30px; flex-wrap: wrap; }
.fsig-stat { display: flex; flex-direction: column; gap: 5px; }
.fsig-stat .n { font-family: var(--font-display); font-weight: 600; font-size: 1.4rem; color: var(--primary-blue-light); line-height: 1; }
.fsig-stat .n.n-sm { font-size: 1.05rem; padding-top: 5px; }
.fsig-stat .l { font: 500 11px/1.3 var(--font-body); color: rgba(255,255,255,0.45); }
.fsig-link {
    display: inline-flex; align-items: center; gap: 9px;
    font: 600 13px/1 var(--font-body); letter-spacing: 0.04em; color: #fff; text-decoration: none;
    transition: color 0.3s ease;
}
.fsig-link i { font-size: 15px; color: var(--primary-blue-light); }
.fsig-link:hover { color: var(--primary-blue-light); }

/* ── Entrance: gentle staggered rise on scroll-in (NOT scroll-scrubbed) ── */
/* The whole founder block slides in from the right (.reveal-right on #fsig).
   The quote ignites word-by-word on scroll; the signature draws itself in. */
.fsig.animated .fsig-flourish path { stroke-dashoffset: 0; transition: stroke-dashoffset 0.9s ease 0.6s; }

/* Light theme — clean white version, same purple accents */
[data-theme="light"] .fsig-quote { color: var(--ink, #14101D); }
[data-theme="light"] .fsig-name { color: #14101D; }
[data-theme="light"] .fsig-role { color: rgba(20,16,29,0.55); }
[data-theme="light"] .fsig-stat .l { color: rgba(20,16,29,0.5); }
[data-theme="light"] .fsig-link { color: #14101D; }
[data-theme="light"] .fsig-photo::after { background: radial-gradient(circle, rgba(109,74,230,0.28), transparent 70%); }

@media (max-width: 600px) {
    .fsig-stats { gap: 24px; }
    .fsig-stat .n { font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .fsig-eyebrow, .fsig-photo, .fsig-quote, .fsig-signature, .fsig-role, .fsig-stats, .fsig-link {
        opacity: 1; transform: none; transition: none;
    }
    .fsig-flourish path { stroke-dashoffset: 0; }
    .fsig-photo::after { animation: none; }
    /* no scroll-ignite — show the quote fully lit */
    .fsig-quote .w { color: #fff; transition: none; }
    .fsig-quote .w.w-hi { color: var(--primary-blue-light); }
}

.about-intro { position: relative; }

/* ── About intro left column: Founder Brief rows (quiet staggered fade) ── */
.ab-rows {
    margin: 32px 0 28px;
    border-left: 1px solid rgba(139,107,240,0.2);
    padding-left: 24px;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.ab-row {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 16px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    position: relative;
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.55s cubic-bezier(0.22,1,0.36,1), transform 0.55s cubic-bezier(0.22,1,0.36,1);
}
.ab-row:first-child { border-top: 1px solid rgba(255,255,255,0.06); }
.ab-rows--in .ab-row:nth-child(1) { opacity: 1; transform: none; transition-delay: 0s; }
.ab-rows--in .ab-row:nth-child(2) { opacity: 1; transform: none; transition-delay: 0.1s; }
.ab-rows--in .ab-row:nth-child(3) { opacity: 1; transform: none; transition-delay: 0.2s; }
.ab-row-label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding-top: 2px;
}
.ab-row-num {
    font: 600 11px/1 'Inter';
    color: var(--primary-blue-light);
    letter-spacing: 0.05em;
    flex-shrink: 0;
    margin-top: 1px;
}
.ab-row-txt {
    font: 600 11px/1 'Inter';
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.35);
}
.ab-row-body {
    font: 400 0.975rem/1.65 'Inter';
    color: rgba(255,255,255,0.72);
}
.ab-row-body strong { color: var(--white); font-weight: 600; }
.ab-closing {
    font-family: 'Fraunces', serif;
    font-style: italic;
    font-weight: 300;
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    line-height: 1.6;
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    max-width: 36ch;
}
@media (max-width: 860px) {
    .ab-row { grid-template-columns: 1fr; gap: 6px; }
    .ab-row-label { margin-bottom: 2px; }
}
@media (prefers-reduced-motion: reduce) {
    .ab-row { opacity: 1; transform: none; transition: none; }
}

/* Visual Stack */
.visual-stack {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 40px;
}

.stack-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 25px;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 16px;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
}

.stack-card:hover {
    transform: translateX(10px);
    border-color: rgba(109, 74, 230, 0.5);
}

.stack-icon {
    width: 50px;
    height: 50px;
    background: var(--gradient-primary);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.stack-icon i {
    font-size: 1.2rem;
    color: var(--white);
}

.stack-card span {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--white);
}

/* Visual Stats Circle */
.visual-stats {
    display: flex;
    justify-content: center;
}

.stat-circle-large {
    width: 200px;
    height: 200px;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.stat-circle-large::before {
    content: '';
    position: absolute;
    inset: -10px;
    border: 2px solid var(--primary-blue);
    border-radius: 50%;
    border-left-color: transparent;
    border-bottom-color: transparent;
    animation: spinSlow 10s linear infinite;
}

.stat-circle-large .circle-content {
    text-align: center;
}

.stat-circle-large .number {
    font-family: var(--font-display);
    font-size: 3.5rem;
    font-weight: 800;
    color: var(--white);
}

.stat-circle-large .plus {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 700;
    color: var(--primary-blue);
}

.stat-circle-large .label {
    display: block;
    font-size: 0.85rem;
    color: var(--slate-400);
    margin-top: 5px;
}

/* Mission & Vision */
.mission-vision {
    position: relative;
}

.mv-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.mv-card {
    position: relative;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 30px;
    padding: 50px 40px;
    text-align: center;
    overflow: hidden;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
}

.mv-card:hover {
    transform: translateY(-10px);
    border-color: rgba(109, 74, 230, 0.5);
}

.mv-card-glow {
    position: absolute;
    inset: -2px;
    background: var(--gradient-primary);
    border-radius: 32px;
    opacity: 0;
    z-index: -1;
    filter: blur(25px);
    transition: opacity var(--transition-normal);
}

.mv-card:hover .mv-card-glow {
    opacity: 0.3;
}

.mv-icon {
    width: 80px;
    height: 80px;
    background: var(--gradient-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 25px;
    box-shadow: var(--shadow-glow);
}

.mv-icon i {
    font-size: 2rem;
    color: var(--white);
}

.mv-card h3 {
    font-family: var(--font-display);
    font-size: 1.75rem;
    color: var(--white);
    margin-bottom: 20px;
}

.mv-card p {
    color: var(--slate-400);
    line-height: 1.8;
    font-size: 1.05rem;
}

.mv-decoration {
    margin-top: 30px;
}

.deco-line {
    width: 60px;
    height: 4px;
    background: var(--gradient-primary);
    border-radius: 2px;
    margin: 0 auto;
}

/* Core Values */
.core-values {
    background: var(--navy-900);
}

.values-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.value-card {
    position: relative;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    padding: 40px 30px;
    text-align: center;
    overflow: hidden;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
}

.value-card:hover {
    transform: translateY(-10px);
    border-color: rgba(109, 74, 230, 0.5);
}

.value-number {
    position: absolute;
    top: 20px;
    right: 25px;
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 800;
    color: rgba(109, 74, 230, 0.1);
}

.value-icon {
    width: 70px;
    height: 70px;
    background: var(--gradient-primary);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 25px;
    box-shadow: var(--shadow-glow);
}

.value-icon i {
    font-size: 1.75rem;
    color: var(--white);
}

.value-card h4 {
    font-family: var(--font-display);
    font-size: 1.25rem;
    color: var(--white);
    margin-bottom: 15px;
}

.value-card p {
    color: var(--slate-400);
    font-size: 0.95rem;
    line-height: 1.7;
}

/* Advantages Grid */
.why-choose-about {
    position: relative;
}

.advantages-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.advantage-card {
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 20px;
    padding: 35px 30px;
    text-align: center;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
}

.advantage-card:hover {
    transform: translateY(-8px);
    border-color: rgba(109, 74, 230, 0.4);
}

/* "What Sets Us Apart" — cards ASSEMBLE from alternating directions on scroll-in
   (left column from the left, middle rises up, right column from the right).
   .in is added by initAdvantages; direction is by column via nth-child. */
.advantages-grid .advantage-card {
    opacity: 0;
    transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1),
                transform 0.7s cubic-bezier(0.22,1,0.36,1),
                border-color 0.3s ease;
    will-change: opacity, transform;
}
.advantages-grid .advantage-card:nth-child(3n+1) { transform: translateX(-46px) translateY(12px); }
.advantages-grid .advantage-card:nth-child(3n+2) { transform: translateY(42px); }
.advantages-grid .advantage-card:nth-child(3n)   { transform: translateX(46px) translateY(12px); }
.advantages-grid .advantage-card.in { opacity: 1; transform: none; }
.advantages-grid .advantage-card.settled { will-change: auto; }
@media (prefers-reduced-motion: reduce) {
    .advantages-grid .advantage-card { opacity: 1 !important; transform: none !important; transition: none; }
}

.advantage-icon {
    width: 60px;
    height: 60px;
    background: var(--gradient-primary);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
}

.advantage-icon i {
    font-size: 1.5rem;
    color: var(--white);
}

.advantage-card h4 {
    font-family: var(--font-display);
    font-size: 1.15rem;
    color: var(--white);
    margin-bottom: 12px;
}

.advantage-card p {
    color: var(--slate-400);
    font-size: 0.9rem;
}

/* Services Page Styles */
.services-main {
    padding-bottom: 40px;
}

.service-detail {
    padding: 80px 0;
}

.service-detail.alt-bg {
    position: relative;
}

.service-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

.service-detail-grid.reverse {
    direction: rtl;
}

.service-detail-grid.reverse>* {
    direction: ltr;
}

.service-number {
    font-family: var(--font-display);
    font-size: 5rem;
    font-weight: 900;
    color: rgba(109, 74, 230, 0.1);
    line-height: 1;
    margin-bottom: 10px;
}

.service-number.light {
    color: var(--tint-05);
}

.service-detail h2 {
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--white);
    margin-bottom: 25px;
}

.service-detail h2.light {
    color: var(--white);
}

.service-intro {
    font-size: 1.1rem;
    color: var(--slate-400);
    line-height: 1.8;
    margin-bottom: 35px;
}

.service-intro.light {
    color: var(--slate-400);
}

.service-features {
    margin-bottom: 35px;
}

.service-features.light .feature-icon {
    color: var(--primary-blue-light);
}

.service-features .feature {
    display: flex;
    gap: 16px;
    margin-bottom: 20px;
}

.service-features .feature-icon {
    color: var(--primary-blue);
    font-size: 1.2rem;
    margin-top: 3px;
}

.service-features .feature-text h4 {
    font-family: var(--font-display);
    font-size: 1.05rem;
    color: var(--white);
    margin-bottom: 6px;
}

.service-features .feature-text p {
    color: var(--slate-400);
    font-size: 0.95rem;
}

/* Service Visual Cards */
.visual-card-stack {
    position: relative;
}

.visual-main-card {
    position: relative;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    overflow: hidden;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
}

.visual-main-card:hover {
    transform: translateY(-10px);
}

.visual-main-card .card-glow {
    position: absolute;
    inset: -2px;
    background: var(--gradient-primary);
    border-radius: 26px;
    opacity: 0;
    z-index: -1;
    filter: blur(20px);
    transition: opacity var(--transition-normal);
}

.visual-main-card:hover .card-glow {
    opacity: 0.4;
}

.visual-main-card .card-inner {
    padding: 50px 40px;
    text-align: center;
}

.visual-main-card .card-icon {
    width: 80px;
    height: 80px;
    background: var(--gradient-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 25px;
    box-shadow: var(--shadow-glow);
}

.visual-main-card .card-icon i {
    font-size: 2rem;
    color: var(--white);
}

.visual-main-card h3 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    color: var(--white);
    margin-bottom: 25px;
}

.card-stats {
    display: flex;
    justify-content: center;
    gap: 40px;
}

.card-stat {
    text-align: center;
}

.card-stat .stat-value {
    display: block;
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--primary-blue-light);
}

.card-stat .stat-label {
    font-size: 0.8rem;
    color: var(--slate-500);
}

.card-tech-stack {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.tech-badge {
    padding: 8px 16px;
    background: rgba(109, 74, 230, 0.15);
    border: 1px solid rgba(109, 74, 230, 0.3);
    border-radius: 20px;
    font-size: 0.8rem;
    color: var(--primary-blue-light);
    font-weight: 500;
}

/* Process Timeline */
.our-process {
    position: relative;
}

.process-timeline {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.process-step {
    position: relative;
    text-align: center;
}

.step-number {
    width: 70px;
    height: 70px;
    background: var(--gradient-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 25px;
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--white);
    box-shadow: var(--shadow-glow);
}

.step-content h4 {
    font-family: var(--font-display);
    font-size: 1.25rem;
    color: var(--white);
    margin-bottom: 12px;
}

.step-content p {
    color: var(--slate-400);
    font-size: 0.9rem;
    line-height: 1.7;
}

.step-line {
    position: absolute;
    top: 35px;
    left: 50%;
    width: 100%;
    height: 2px;
    background: linear-gradient(to right, var(--primary-blue), var(--slate-700));
    z-index: -1;
}

.process-step:last-child .step-line {
    display: none;
}

/* =====================================================
   INDUSTRIES PAGE STYLES
   ===================================================== */

.industries-intro {
    padding-bottom: 40px;
}

.industries-grid-section {
    position: relative;
    background: var(--cine-bg);   /* same canvas as the dossier — no jarring colour step */
    padding: clamp(70px, 10vh, 120px) 0 clamp(60px, 9vh, 110px);
}
/* a soft seam where the dossier hands off to "We Also Staff" */
.industries-grid-section::before {
    content: ""; position: absolute; left: 50%; top: 0; transform: translateX(-50%);
    width: min(1040px, 88vw); height: 1px;
    background: linear-gradient(90deg, transparent, rgba(139,107,240,.22), transparent);
}

.industries-full-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.industry-detail-card {
    position: relative;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    overflow: hidden;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
}

.industry-detail-card:hover {
    transform: translateY(-10px);
    border-color: rgba(109, 74, 230, 0.5);
}

.industry-card-glow {
    position: absolute;
    inset: -2px;
    background: var(--gradient-primary);
    border-radius: 26px;
    opacity: 0;
    z-index: -1;
    filter: blur(20px);
    transition: opacity var(--transition-normal);
}

.industry-detail-card:hover .industry-card-glow {
    opacity: 0.4;
}

.industry-shimmer {
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, var(--tint-08), transparent);
    transition: left 0.6s ease;
}

.industry-detail-card:hover .industry-shimmer {
    left: 100%;
}

.industry-card-content {
    padding: 40px 30px;
}

.industry-icon-large {
    width: 80px;
    height: 80px;
    background: var(--gradient-primary);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    box-shadow: var(--shadow-glow);
    transition: transform var(--transition-normal);
}

.industry-detail-card:hover .industry-icon-large {
    transform: scale(1.1);
}

.industry-icon-large i {
    font-size: 2rem;
    color: var(--white);
}

.industry-card-content h3 {
    font-family: var(--font-display);
    font-size: 1.35rem;
    color: var(--white);
    margin-bottom: 15px;
}

.industry-card-content p {
    color: var(--slate-400);
    line-height: 1.7;
    margin-bottom: 20px;
}

.industry-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.industry-tags span {
    padding: 6px 14px;
    background: rgba(109, 74, 230, 0.15);
    border: 1px solid rgba(109, 74, 230, 0.25);
    border-radius: 20px;
    font-size: 0.8rem;
    color: var(--primary-blue-light);
    font-weight: 500;
}

/* =====================================================
   CONTACT PAGE STYLES
   ===================================================== */

.contact-main {
    background: var(--navy-900);
}

.contact-grid {
    display: grid;
    grid-template-columns: 1.3fr 0.7fr;
    gap: 50px;
}

.contact-form-wrapper {
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 30px;
    padding: 50px;
}

.form-header {
    margin-bottom: 40px;
}

.form-header h2 {
    font-family: var(--font-display);
    font-size: 2rem;
    color: var(--white);
    margin-bottom: 12px;
}

.form-header p {
    color: var(--slate-400);
}

.contact-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.form-group {
    position: relative;
}

.input-wrapper {
    position: relative;
}

.input-wrapper i {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--slate-500);
    font-size: 0.9rem;
    transition: color var(--transition-fast);
    z-index: 1;
}

.input-wrapper.textarea-wrapper i {
    top: 25px;
    transform: none;
}

.input-wrapper input,
.input-wrapper select,
.input-wrapper textarea {
    width: 100%;
    padding: 18px 20px 18px 50px;
    background: var(--tint-03);
    border: 1px solid var(--glass-border);
    border-radius: 12px;
    color: var(--white);
    font-size: 1rem;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);
    outline: none;
}

.input-wrapper textarea {
    resize: none;
    min-height: 140px;
}

.input-wrapper select {
    appearance: none;
    cursor: pointer;
}

.select-wrapper::after {
    content: '\f107';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--slate-500);
    pointer-events: none;
}

.input-wrapper label {
    position: absolute;
    left: 50px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--slate-500);
    font-size: 1rem;
    pointer-events: none;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);
}

.input-wrapper.textarea-wrapper label {
    top: 25px;
    transform: none;
}

.input-wrapper input:focus,
.input-wrapper select:focus,
.input-wrapper textarea:focus {
    border-color: var(--primary-blue);
    background: rgba(109, 74, 230, 0.05);
}

.input-wrapper input:focus+label,
.input-wrapper input:not(:placeholder-shown)+label,
.input-wrapper select:focus+label,
.input-wrapper select:valid+label,
.input-wrapper textarea:focus+label,
.input-wrapper textarea:not(:placeholder-shown)+label {
    top: -10px;
    left: 20px;
    font-size: 0.8rem;
    color: var(--primary-blue);
    background: var(--navy-700);
    padding: 0 8px;
}

.input-wrapper input:focus~i,
.input-wrapper select:focus~i,
.input-wrapper textarea:focus~i {
    color: var(--primary-blue);
}

.btn-submit {
    width: 100%;
    padding: 18px 32px;
    position: relative;
}

.btn-submit .btn-text {
    transition: opacity var(--transition-fast);
}

.btn-submit .btn-loading {
    position: absolute;
    opacity: 0;
}

.btn-submit.loading .btn-text {
    opacity: 0;
}

.btn-submit.loading .btn-loading {
    opacity: 1;
}

/* Contact Info Card */
.info-card-large {
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 30px;
    padding: 40px;
    height: fit-content;
    position: relative;
    overflow: hidden;
}

.info-card-glow {
    position: absolute;
    inset: -2px;
    background: var(--gradient-primary);
    border-radius: 32px;
    opacity: 0.1;
    z-index: -1;
    filter: blur(30px);
}

.info-header {
    margin-bottom: 35px;
}

.info-header h3 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    color: var(--white);
    margin-bottom: 10px;
}

.info-header p {
    color: var(--slate-400);
    font-size: 0.95rem;
}

.info-items {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.info-item {
    display: flex;
    gap: 16px;
}

.info-icon {
    width: 50px;
    height: 50px;
    background: var(--gradient-primary);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.info-icon i {
    font-size: 1.1rem;
    color: var(--white);
}

.info-content h4 {
    font-family: var(--font-display);
    font-size: 1rem;
    color: var(--white);
    margin-bottom: 6px;
}

.info-content p {
    color: var(--slate-400);
    font-size: 0.9rem;
    line-height: 1.6;
}

.social-section {
    margin-top: 40px;
    padding-top: 30px;
    border-top: 1px solid var(--glass-border);
}

.social-section h4 {
    font-family: var(--font-display);
    font-size: 1rem;
    color: var(--white);
    margin-bottom: 20px;
}

.social-links-large {
    display: flex;
    gap: 15px;
}

.social-link {
    width: 50px;
    height: 50px;
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--slate-300);
    font-size: 1.1rem;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);
}

.social-link:hover {
    background: var(--gradient-primary);
    border-color: transparent;
    color: var(--white);
    transform: translateY(-5px);
}

/* Map Section */
.map-section {
    padding: 0 0 var(--section-padding);
    background: var(--navy-900);
}

.map-wrapper {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    border: 1px solid var(--glass-border);
}

.map-wrapper iframe {
    display: block;
    filter: grayscale(100%) invert(92%) contrast(83%);
}

.map-overlay {
    position: absolute;
    top: 30px;
    left: 30px;
    z-index: 10;
}

.map-card {
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 20px;
    padding: 25px 30px;
    backdrop-filter: var(--glass-blur);
}

.map-card h3 {
    font-family: var(--font-display);
    font-size: 1.1rem;
    color: var(--white);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.map-card h3 i {
    color: var(--primary-blue);
}

.map-card p {
    color: var(--slate-400);
    margin-bottom: 20px;
    font-size: 0.95rem;
}

.btn-sm {
    padding: 12px 20px;
    font-size: 0.9rem;
}

/* FAQ Section */
.faq-section {
    position: relative;
}

.faq-grid {
    max-width: 800px;
    margin: 0 auto;
}

.accordion {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.accordion-item {
    position: relative;
    z-index: 1;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 16px;
    overflow: hidden;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
}

.accordion-item:hover {
    border-color: rgba(109, 74, 230, 0.3);
}

.accordion-item[open] {
    border-color: rgba(109, 74, 230, 0.5);
}

.accordion-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 30px;
    cursor: pointer;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);
    list-style: none; /* Hide default marker */
}

.accordion-header::-webkit-details-marker {
    display: none;
}

.accordion-header:hover {
    background: var(--tint-02);
}

.accordion-header span {
    font-family: var(--font-display);
    font-size: 1.05rem;
    color: var(--white);
    font-weight: 600;
}

.accordion-toggle {
    color: var(--slate-400);
    transition: transform var(--transition-fast), color var(--transition-fast);
}

.accordion-item[open] .accordion-toggle {
    transform: rotate(180deg);
    color: var(--primary-blue);
}

.accordion-content {
    display: block;
    overflow: hidden;
    block-size: 0;
    transition: block-size var(--transition-slow) ease-out;
}

.accordion-item[open] .accordion-content {
    block-size: auto;
}

.accordion-content p {
    padding: 0 30px 24px;
    color: var(--slate-400);
    line-height: 1.7;
}

/* =====================================================
   FOOTER STYLES
   ===================================================== */

.footer {
    background: var(--navy-900);
    border-top: 1px solid var(--glass-border);
}

.footer-top {
    padding: 80px 0 60px;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
    gap: 50px;
}

.footer-logo {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 700;
    display: inline-flex;
    gap: 8px;
    margin-bottom: 20px;
}

.footer-logo .logo-ark {
    color: var(--white);
}

.footer-logo .logo-fortune {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.footer-brand p {
    color: var(--slate-400);
    margin-bottom: 25px;
    line-height: 1.7;
}

.footer-socials {
    display: flex;
    gap: 12px;
}

.footer-socials a {
    width: 42px;
    height: 42px;
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--slate-300);
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);
}

.footer-socials a:hover {
    background: var(--gradient-primary);
    border-color: transparent;
    color: var(--white);
    transform: translateY(-3px);
}

.footer-links h4,
.footer-contact h4 {
    font-family: var(--font-display);
    font-size: 1.1rem;
    color: var(--white);
    margin-bottom: 25px;
    font-weight: 600;
}

.footer-links ul {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.footer-links a {
    color: var(--slate-400);
    transition: color var(--transition-fast);
    position: relative;
}

.footer-links a:hover {
    color: var(--white);
}

.footer-contact ul {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.footer-contact li {
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.footer-contact i {
    color: var(--primary-blue);
    margin-top: 4px;
}

.footer-contact span {
    color: var(--slate-400);
    font-size: 0.95rem;
}

.footer-bottom {
    padding: 16px 0;
    border-top: 1px solid var(--glass-border);
}

.footer-bottom-content {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 24px;
}
/* left item hugs left, center item is screen-centered, right item hugs right */
.footer-bottom-content > p:first-child { justify-self: start; }
.footer-bottom-content > .credit-line-text { justify-self: center; }
.footer-bottom-content > .footer-legal { justify-self: end; }

.footer-bottom p {
    color: var(--slate-500);
    font-size: 0.9rem;
}

.footer-legal {
    display: flex;
    gap: 30px;
}

.footer-legal a {
    color: var(--slate-500);
    font-size: 0.9rem;
    transition: color var(--transition-fast);
}

.footer-legal a:hover {
    color: var(--primary-blue);
}

/* Back to Top Button */
.back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    background: var(--gradient-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 1.1rem;
    box-shadow: var(--shadow-glow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
    z-index: 999;
    cursor: pointer;
}

.back-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.back-to-top:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 40px rgba(109, 74, 230, 0.5);
}

/* =====================================================
   RESPONSIVE STYLES
   ===================================================== */

@media (max-width: 1200px) {
    .hero-container {
        grid-template-columns: 1fr;
        gap: 60px;
        text-align: center;
    }

    /* Single-column: re-centre the left block and the "We"+verb composition */
    .hero-content {
        align-items: center;
    }

    .hero-verbs {
        grid-template-columns: auto auto;
        justify-content: center;
    }

    .hero-headline,
    .hero-description {
        max-width: 100%;
    }

    .hero-description {
        margin-left: auto;
        margin-right: auto;
    }

    .hero-trust-bar {
        justify-content: center;
    }

    .hero-cta-group {
        justify-content: center;
    }

    .hero-stats-row {
        justify-content: center;
    }

    .hero-stat {
        text-align: center;
    }

    .hero-visual {
        display: none;
    }

    .services-preview-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .values-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .advantages-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .industries-full-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .process-timeline {
        grid-template-columns: repeat(2, 1fr);
    }

    .step-line {
        display: none;
    }
}

@media (max-width: 992px) {
    :root {
        --section-padding: 80px;
    }

    .nav-menu {
        position: fixed;
        top: 0;
        right: 0;
        width: min(300px, 86vw);
        height: 100vh;
        background: var(--nav-mobile-bg);
        backdrop-filter: blur(20px) saturate(180%);
        -webkit-backdrop-filter: blur(20px) saturate(180%);
        border-left: 1px solid var(--tint-08);
        box-shadow: -10px 0 30px rgba(0, 0, 0, 0.5);
        flex-direction: column;
        padding: 100px 40px 40px;
        gap: 30px;
        /* Slide off-canvas with transform (not right:-100%) so the closed drawer
           never extends document width / triggers horizontal scroll. */
        transform: translateX(100%);
        transition: transform var(--transition-normal);
        z-index: 999;
        will-change: transform;
    }

    .nav-menu.active {
        transform: translateX(0);
    }

    .theme-toggle {
        margin-left: 0;
        padding-left: 0;
        border-left: none;
        margin-top: 8px;
        padding-top: 28px;
        border-top: 1px solid var(--glass-border);
        width: 100%;
        justify-content: center;
        gap: 12px;
    }

    .nav-toggle {
        display: flex;
        z-index: 1000;
    }

    .nav-toggle.active span:nth-child(1) {
        transform: rotate(45deg) translate(6px, 6px);
    }

    .nav-toggle.active span:nth-child(2) {
        opacity: 0;
    }

    .nav-toggle.active span:nth-child(3) {
        transform: rotate(-45deg) translate(6px, -6px);
    }

    .about-intro-grid,
    .why-choose-grid,
    .service-detail-grid,
    .contact-grid,
    .mv-grid {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .service-detail-grid.reverse {
        direction: ltr;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }
}

@media (max-width: 768px) {
    .hero-stats-row {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }

    .hero-trust-bar {
        flex-wrap: wrap;
        gap: 15px;
    }

    .trust-divider {
        display: none;
    }

    .hero-cta-group {
        flex-direction: column;
        align-items: center;
    }

    .btn {
        width: 100%;
        max-width: 300px;
        justify-content: center;
    }

    .services-preview-grid {
        grid-template-columns: 1fr;
    }

    .values-grid,
    .advantages-grid,
    .industries-full-grid,
    .process-timeline {
        grid-template-columns: 1fr;
    }

    .form-row {
        grid-template-columns: 1fr;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }

    .footer-bottom-content {
        flex-direction: column;
        gap: 15px;
        text-align: center;
    }

    .cta-buttons {
        flex-direction: column;
        align-items: center;
    }

    .floating-badges {
        display: none;
    }

    .map-overlay {
        position: relative;
        top: auto;
        left: auto;
        margin-bottom: -1px;
    }

    .map-card {
        border-radius: 24px 24px 0 0;
    }
}

@media (max-width: 576px) {
    :root {
        --section-padding: 60px;
        --container-padding: 16px;
    }

    .headline-main {
        font-size: 2rem;
    }

    .hero-description {
        font-size: 1rem;
    }

    .section-title {
        font-size: 1.75rem;
    }

    .contact-form-wrapper {
        padding: 30px 20px;
    }

    .info-card-large {
        padding: 30px 20px;
    }

    .mv-card {
        padding: 35px 25px;
    }

    .page-header {
        min-height: 300px;
    }

    .page-header h1 {
        font-size: 2rem;
    }
}

/* Animation Classes */
/* Status text transition */
.status-text {
    transition: opacity 0.2s ease;
}

/* =====================================================
   ENHANCED ANIMATIONS - FADE-IN-UP & SHIMMER EFFECTS
   ===================================================== */

/* Scroll Animation Classes — fast, GPU-accelerated reveal.
   Stagger is applied per-section in JS (capped); no compounding nth-child delays. */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.5s cubic-bezier(0.22, 0.61, 0.36, 1),
                transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.animate-on-scroll.animated {
    opacity: 1;
    transform: translateY(0);
}

/* Drop GPU hint once the element has settled so we don't pin a layer forever */
.animate-on-scroll.animated.settled {
    will-change: auto;
}

/* ── Directional scroll reveals — opt in with .reveal-right / .reveal-down ──
   Fired by a DEDICATED observer (initDirectionalReveals) that waits until the
   element is comfortably IN view, so the slide is actually watched — not
   finished off-screen at the bottom edge like the early generic reveal. */
.reveal-right, .reveal-down {
    opacity: 0;
    transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}
.reveal-right { transform: translateX(220px); }
.reveal-down  { transform: translateY(-46px); }
.reveal-right.animated, .reveal-down.animated { opacity: 1; transform: none; }
.reveal-right.settled, .reveal-down.settled { will-change: auto; }
/* Some cards (.mv-card) carry their own transition shorthand — force ours while
   revealing; once settled this stops applying and hover transitions resume. */
.reveal-right:not(.settled), .reveal-down:not(.settled) {
    transition-property: opacity, transform !important;
    transition-duration: 0.85s !important;
    transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
}
/* Vision waits a beat so it lands AFTER Mission (the two sit side by side) */
.mv-card.vision.reveal-down:not(.settled) { transition-delay: 0.45s !important; }
@media (prefers-reduced-motion: reduce) {
    .reveal-right, .reveal-down { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Respect users who ask for reduced motion — show everything instantly */
@media (prefers-reduced-motion: reduce) {
    .animate-on-scroll {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* Shimmer Effect Base */
.shimmer-effect {
    position: relative;
    overflow: hidden;
}

.shimmer-effect::after {
    content: '';
    position: absolute;
    top: 0;
    left: -150%;
    width: 150%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        var(--tint-03) 25%,
        var(--tint-08) 50%,
        var(--tint-03) 75%,
        transparent 100%
    );
    transform: skewX(-20deg);
    transition: left 0s;
}

.shimmer-effect:hover::after {
    left: 150%;
    transition: left 0.8s ease;
}

/* Apply shimmer to cards */
.mv-card,
.value-card,
.advantage-card,
.preview-card,
.industry-detail-card,
.stack-card,
.feature-row,
.testimonial-card-large,
.info-card-large,
.visual-main-card,
.hero-feature-card {
    position: relative;
    overflow: hidden;
}

.mv-card::after,
.value-card::after,
.advantage-card::after,
.preview-card .preview-shimmer,
.industry-detail-card .industry-shimmer,
.stack-card::after,
.feature-row::after,
.testimonial-card-large::after,
.info-card-large::after,
.visual-main-card::after,
.hero-feature-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: -150%;
    width: 150%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        var(--tint-02) 25%,
        var(--tint-06) 50%,
        var(--tint-02) 75%,
        transparent 100%
    );
    transform: skewX(-20deg);
    pointer-events: none;
    z-index: 10;
}

.mv-card:hover::after,
.value-card:hover::after,
.advantage-card:hover::after,
.stack-card:hover::after,
.feature-row:hover::after,
.testimonial-card-large:hover::after,
.info-card-large:hover::after,
.visual-main-card:hover::after,
.hero-feature-card:hover::after {
    left: 150%;
    transition: left 0.7s ease;
}

/* Enhanced card hover effects with lift */
.mv-card,
.value-card,
.advantage-card,
.preview-card,
.industry-detail-card,
.stack-card,
.testimonial-card-large,
.visual-main-card {
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                box-shadow 0.4s ease,
                border-color 0.3s ease;
}

.mv-card:hover,
.value-card:hover,
.advantage-card:hover,
.preview-card:hover,
.industry-detail-card:hover,
.stack-card:hover,
.testimonial-card-large:hover,
.visual-main-card:hover {
    transform: translateY(-12px);
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.3), 
                0 0 40px rgba(109, 74, 230, 0.15);
}

/* Icon scale on card hover */
.mv-card:hover .mv-icon,
.value-card:hover .value-icon,
.advantage-card:hover .advantage-icon,
.preview-card:hover .preview-icon,
.industry-detail-card:hover .industry-icon-large,
.stack-card:hover .stack-icon {
    transform: scale(1.1);
    box-shadow: 0 0 30px rgba(109, 74, 230, 0.5);
}

.mv-icon,
.value-icon,
.advantage-icon,
.preview-icon,
.industry-icon-large,
.stack-icon {
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                box-shadow 0.4s ease;
}

/* Text reveal animation */
.text-reveal {
    overflow: hidden;
}

.text-reveal span {
    display: inline-block;
    transform: translateY(100%);
    opacity: 0;
    animation: textReveal 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

@keyframes textReveal {
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* Glow pulse on hover */
.glow-on-hover {
    transition: box-shadow 0.3s ease;
}

.glow-on-hover:hover {
    box-shadow: 0 0 30px rgba(109, 74, 230, 0.4),
                0 0 60px rgba(109, 74, 230, 0.2);
}

/* Floating animation for badges/icons */
@keyframes gentleFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px);
    }
}

.floating-badge,
.trust-icon,
.card-icon {
    animation: gentleFloat 4s ease-in-out infinite;
}

.floating-badge:nth-child(1) { animation-delay: 0s; }
.floating-badge:nth-child(2) { animation-delay: 0.5s; }
.floating-badge:nth-child(3) { animation-delay: 1s; }

/* Enhanced button shimmer */
.btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg, 
        transparent, 
        var(--tint-25), 
        transparent
    );
    transition: left 0.5s ease;
}

.btn:hover::before {
    left: 100%;
}

/* Section badge entrance */
.section-badge {
    animation: badgeEntrance 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
    opacity: 0;
    transform: translateY(20px) scale(0.9);
}

@keyframes badgeEntrance {
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Decoration line animation */
.deco-line {
    width: 0;
    transition: width 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.mv-card:hover .deco-line {
    width: 60px;
}

/* Progress bar animation on scroll */
.stat-bar-fill {
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.animated .stat-bar-fill,
.hero-stat .stat-bar-fill {
    transform: scaleX(1);
}

/* Ripple effect for buttons */
.btn-ripple {
    position: relative;
    overflow: hidden;
}

.btn-ripple::after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    background: var(--tint-30);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: width 0.5s, height 0.5s;
}

.btn-ripple:active::after {
    width: 300px;
    height: 300px;
}

/* Smooth border glow animation */
@keyframes borderGlow {
    0%, 100% {
        border-color: rgba(109, 74, 230, 0.2);
    }
    50% {
        border-color: rgba(109, 74, 230, 0.5);
    }
}

.mv-card:hover,
.value-card:hover,
.industry-detail-card:hover {
    animation: borderGlow 2s ease-in-out infinite;
}

/* Typewriter effect for hero text */
@keyframes typewriter {
    from { width: 0; }
    to { width: 100%; }
}

/* Parallax-ready elements */
.parallax-slow {
    will-change: transform;
}

/* Smooth appearance for lazy-loaded content */
.fade-in-ready {
    opacity: 0;
    animation: smoothFadeIn 0.6s ease forwards;
}

@keyframes smoothFadeIn {
    to { opacity: 1; }
}

/* Enhanced shimmer specifically for MV cards */
.mv-card.shimmer-effect::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        var(--tint-03) 20%,
        var(--tint-08) 50%,
        var(--tint-03) 80%,
        transparent 100%
    );
    z-index: 1;
    pointer-events: none;
}

.mv-card.shimmer-effect:hover::before {
    left: 100%;
    transition: left 0.8s ease;
}

/* Ensure content is above shimmer */
.mv-card .mv-card-glow,
.mv-card .mv-icon,
.mv-card h3,
.mv-card p,
.mv-card .mv-decoration {
    position: relative;
    z-index: 2;
}

/* Enhanced lift and glow on hover */
.mv-card:hover {
    transform: translateY(-15px) scale(1.02);
    box-shadow: 
        0 30px 60px rgba(0, 0, 0, 0.3),
        0 0 50px rgba(109, 74, 230, 0.2),
        inset 0 1px 0 var(--tint-10);
}

/* Icon animation on hover */
.mv-card:hover .mv-icon {
    transform: scale(1.15) rotate(5deg);
    box-shadow: 0 0 40px rgba(109, 74, 230, 0.6);
}

/* Decoration line expand on hover */
.mv-card .deco-line {
    width: 0;
    height: 3px;
    background: var(--gradient-primary);
    border-radius: 2px;
    transition: width 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.mv-card:hover .deco-line {
    width: 80px;
}

/* =====================================================
   PREMIUM LOGO STYLES
   ===================================================== */

/* Enhanced Nav Logo */
.nav-logo {
    font-family: var(--font-display);
    font-size: 1.85rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    position: relative;
}

.nav-logo .logo-ark {
    color: var(--white);
    text-shadow: 0 0 20px var(--tint-30);
    font-weight: 900;
}

.nav-logo .logo-fortune {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 30%, #8B6BF0 60%, #8B6BF0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    background-size: 200% auto;
    animation: gradientFlow 4s ease-in-out infinite;
    font-weight: 900;
    filter: drop-shadow(0 0 20px rgba(124, 92, 230, 0.5));
}

@keyframes gradientFlow {
    0%, 100% { background-position: 0% center; }
    50% { background-position: 100% center; }
}

/* Preloader Logo - Larger & More Premium */
.preloader-logo {
    font-family: var(--font-display);
    font-size: 4.5rem;
    font-weight: 900;
    margin-bottom: 20px;
    letter-spacing: 2px;
    text-transform: uppercase;
    display: flex;
    justify-content: center;
    gap: 15px;
}

.preloader-logo .logo-ark {
    color: var(--white);
    text-shadow: 
        0 0 30px rgba(255, 255, 255, 0.4),
        0 0 60px var(--tint-20);
    animation: logoGlow 3s ease-in-out infinite;
}

@keyframes logoGlow {
    0%, 100% { text-shadow: 0 0 30px rgba(255, 255, 255, 0.4), 0 0 60px var(--tint-20); }
    50% { text-shadow: 0 0 40px rgba(255, 255, 255, 0.6), 0 0 80px var(--tint-30); }
}

.preloader-logo .logo-fortune {
    background: linear-gradient(135deg, 
        #6D4AE6 0%, 
        #7C5CE6 20%, 
        #8B6BF0 40%, 
        #6D4AE6 60%,
        #8B6BF0 80%,
        #6D4AE6 100%
    );
    background-size: 300% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: premiumGradient 4s linear infinite;
    filter: drop-shadow(0 0 30px rgba(124, 92, 230, 0.6));
    position: relative;
}

@keyframes premiumGradient {
    0% { background-position: 0% center; }
    100% { background-position: 300% center; }
}

/* Preloader — fit the big "ARK FORTUNE" title to small screens so it never
   bleeds off the edges. Fluid size: scales with viewport width, capped at 4.5rem. */
@media (max-width: 600px) {
    .preloader-logo {
        font-size: clamp(2rem, 13vw, 4.5rem);
        gap: 10px;
        letter-spacing: 1px;
        flex-wrap: wrap;
        padding: 0 16px;
    }
    .preloader-tagline {
        gap: 8px;
        flex-wrap: wrap;
        padding: 0 16px;
    }
    .preloader-tagline .tagline-text { font-size: 0.78rem; letter-spacing: 1.5px; }
    .code-brackets { font-size: clamp(1.8rem, 9vw, 3rem); }
    .preloader-bar { max-width: 78vw; }

    /* ---- phone preloader polish: tighter, balanced, more premium ---- */
    /* code brackets — a touch more air below, gentle spacing */
    .code-brackets { margin-bottom: 22px; letter-spacing: 2px; }
    /* wordmark — pull ARK / FORTUNE into one tight stacked block */
    .preloader-logo {
        gap: 4px;
        line-height: 0.96;
        margin-bottom: 26px;
        font-size: clamp(2.2rem, 14vw, 4.2rem);
    }
    /* tagline — even rhythm above the bar */
    .preloader-tagline { gap: 6px 10px; margin-bottom: 26px; }
    .tagline-divider { font-size: 0.7rem; }
    /* progress bar — slimmer, fully rounded, soft glow; centred */
    .preloader-bar {
        max-width: 200px; height: 3px; border-radius: 999px; margin-bottom: 18px;
        background: rgba(139, 107, 240, 0.14);
    }
    .preloader-progress { border-radius: 999px; box-shadow: 0 0 14px rgba(124, 92, 230, 0.7); }
    .status-text { font-size: 0.8rem; letter-spacing: 2px; }
    /* floating circuit icons — pull them toward the corners so they frame the
       wordmark instead of crowding it, and dim them a little */
    .preloader-icons .tech-icon { opacity: 0.5; }
}

/* Footer Logo */
.footer-logo {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 800;
    display: inline-flex;
    gap: 10px;
    margin-bottom: 20px;
    letter-spacing: 1px;
    text-transform: uppercase;
    transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease;
}

.footer-logo:hover {
    transform: scale(1.02);
}

.footer-logo .logo-ark {
    color: var(--white);
    text-shadow: 0 0 15px var(--tint-20);
}

.footer-logo .logo-fortune {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 50%, #8B6BF0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    filter: drop-shadow(0 0 15px rgba(124, 92, 230, 0.4));
}

/* Page Header Enhancement */
.page-header h1 {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 900;
    color: var(--white);
    margin-bottom: 25px;
    text-shadow: 0 0 30px var(--tint-10);
    letter-spacing: -0.5px;
}

.page-header h1 .gradient-text {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 30%, #8B6BF0 60%, #8B6BF0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    filter: drop-shadow(0 0 20px rgba(124, 92, 230, 0.5));
}

/* Hero Headline Enhancement */
.headline-main {
    font-family: var(--font-display);
    font-size: clamp(2.8rem, 5.5vw, 4.5rem);
    font-weight: 900;
    line-height: 1.05;
    color: var(--white);
    text-shadow: 0 0 40px var(--tint-10);
    letter-spacing: -1px;
}

.headline-main .gradient-text {
    background: linear-gradient(135deg, 
        #6D4AE6 0%, 
        #7C5CE6 25%, 
        #8B6BF0 50%, 
        #8B6BF0 75%,
        #6D4AE6 100%
    );
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: gradientFlow 4s ease-in-out infinite;
    filter: drop-shadow(0 0 25px rgba(124, 92, 230, 0.6));
}

/* Global gradient-text enhancement */
.gradient-text {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 30%, #8B6BF0 60%, #8B6BF0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    filter: drop-shadow(0 0 15px rgba(124, 92, 230, 0.4));
}

/* Section Title Enhancement */
.section-title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4.5vw, 3.2rem);
    font-weight: 800;
    color: var(--white);
    line-height: 1.15;
    margin-bottom: 20px;
    letter-spacing: -0.5px;
}

/* Enhanced Gradient for Primary Button */
.btn-primary,
.btn-hero-primary {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 50%, #8B6BF0 100%);
    box-shadow: 
        0 4px 20px rgba(109, 74, 230, 0.4),
        0 0 40px rgba(124, 92, 230, 0.2);
}

.btn-primary:hover,
.btn-hero-primary:hover {
    box-shadow: 
        0 8px 30px rgba(109, 74, 230, 0.6),
        0 0 60px rgba(124, 92, 230, 0.4);
}

/* Enhanced CTA button glow */
.nav-link.nav-cta {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 50%, #8B6BF0 100%);
    box-shadow: 0 4px 15px rgba(109, 74, 230, 0.3);
}

.nav-link.nav-cta:hover {
    box-shadow: 
        0 8px 25px rgba(109, 74, 230, 0.5),
        0 0 30px rgba(124, 92, 230, 0.3);
}

/* Hero card icon gradient */
.card-icon,
.preview-icon,
.mv-icon,
.value-icon,
.advantage-icon,
.industry-icon-large,
.stack-icon,
.info-icon,
.step-number {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 50%, #8B6BF0 100%);
    box-shadow: 
        0 8px 25px rgba(109, 74, 230, 0.4),
        0 0 30px rgba(124, 92, 230, 0.2);
}

/* Trust bar icon gradient */
.trust-icon {
    background: linear-gradient(135deg, rgba(109, 74, 230, 0.2) 0%, rgba(124, 92, 230, 0.3) 100%);
    border: 1px solid rgba(124, 92, 230, 0.3);
}

.trust-icon i {
    color: #8B6BF0;
}

/* Section badge enhancement */
.section-badge {
    background: rgba(109, 74, 230, 0.1);
    border: 1px solid rgba(124, 92, 230, 0.25);
}

.section-badge i {
    color: #8B6BF0;
}

.section-badge span {
    background: linear-gradient(135deg, #7C5CE6 0%, #8B6BF0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Code brackets in preloader */
.bracket {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 50%, #8B6BF0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-shadow: none;
    filter: drop-shadow(0 0 20px rgba(124, 92, 230, 0.8));
}

/* Tagline divider */
.tagline-divider {
    background: linear-gradient(135deg, #6D4AE6, #8B6BF0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Progress bar gradient */
.preloader-progress,
.stat-bar-fill {
    background: linear-gradient(90deg, #6D4AE6 0%, #7C5CE6 50%, #8B6BF0 100%);
    box-shadow: 0 0 25px rgba(124, 92, 230, 0.6);
}

/* Circuit nodes glow */
.circuit-nodes .node {
    fill: #7C5CE6;
}

.data-pulses .pulse {
    fill: #8B6BF0;
    filter: drop-shadow(0 0 10px #8B6BF0);
}

/* Tech icons glow */
.tech-icon {
    background: rgba(124, 92, 230, 0.1);
    border-color: rgba(124, 92, 230, 0.25);
    color: #8B6BF0;
}

/* Card glow enhancement */
.hero-feature-card .card-glow,
.mv-card-glow,
.industry-card-glow,
.preview-card-glow,
.visual-main-card .card-glow {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 50%, #8B6BF0 100%);
}

/* CTA section gradient */
.cta-gradient {
    background: linear-gradient(135deg, #5938C9 0%, #6D4AE6 30%, #7C5CE6 70%, #581c87 100%);
}

/* Showcase ring */
.showcase-ring {
    border-color: #7C5CE6;
}

/* Showcase number gradient */
.showcase-number {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 50%, #8B6BF0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Back to top button */
.back-to-top {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 50%, #8B6BF0 100%);
    box-shadow: 0 0 30px rgba(124, 92, 230, 0.5);
}

.back-to-top:hover {
    box-shadow: 0 0 50px rgba(124, 92, 230, 0.7);
}

/* Footer social links */
.footer-socials a:hover,
.social-link:hover {
    background: linear-gradient(135deg, #6D4AE6 0%, #7C5CE6 50%, #8B6BF0 100%);
}

/* Stat plus sign */
.stat-plus {
    color: #8B6BF0;
}

/* Value number */
.value-number {
    color: rgba(124, 92, 230, 0.15);
}

/* Metric value */
.metric-value,
.card-stat .stat-value {
    color: #8B6BF0;
}

/* Tech badges */
.tech-badge {
    background: rgba(124, 92, 230, 0.15);
    border-color: rgba(124, 92, 230, 0.3);
    color: #8B6BF0;
}

.industry-tags span {
    background: rgba(124, 92, 230, 0.15);
    border-color: rgba(124, 92, 230, 0.3);
    color: #8B6BF0;
}

/* Floating badge bg */
.floating-badge i {
    color: #8B6BF0;
}

/* =====================================================
   PREMIUM CREDIT SECTION - KAYASTRA
   ===================================================== */
/* ============ Agency credit — quiet inline signature ============
   Sits on the footer bottom row, between copyright and legal links.
   No box, no decorative bar — a subtle designer signature. */
/* Footer credit — "∞ CRAFTED BY Rakesh Ralla" (infinity mark + Syne name).
   The whole line is one hoverable signed mark. */
.credit-line-text {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.7em;
    font-family: var(--font-secondary);
    white-space: nowrap;
}
.credit-line-text .credit-glyph {
    display: inline-flex;
    width: 1.7em;
    color: #8B6BF0;
    opacity: 0.75;
    transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.credit-line-text .credit-glyph svg { width: 100%; height: auto; display: block; }
.credit-line-text .credit-label {
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--slate-500);
}
.credit-line-text .credit-brand {
    font-family: "Syne", var(--font-secondary), sans-serif;
    font-weight: 700;
    font-size: 1.02rem;
    letter-spacing: 0.005em;
    text-decoration: none;
    background: linear-gradient(135deg, #B49BF5 0%, #D4C7F9 50%, #B49BF5 100%);
    background-size: 200% auto;
    background-position: 0% center;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    /* Paint-Box Law: pad the clip box so bold glyph arms never get chopped */
    padding: 0.06em 0.1em 0.06em 0.02em;
    margin: -0.06em -0.1em -0.06em -0.02em;
    transition: background-position 0.6s ease, filter 0.4s ease;
}
/* Hover the whole line: glyph brightens + drifts, name's gradient sweeps + glows */
.credit-line-text:hover .credit-glyph {
    opacity: 1;
    transform: translateX(2px) scale(1.06);
}
.credit-line-text:hover .credit-brand {
    background-position: 100% center;
    filter: drop-shadow(0 0 10px rgba(180, 155, 245, 0.4));
}
@media (prefers-reduced-motion: reduce) {
    .credit-line-text .credit-glyph,
    .credit-line-text .credit-brand { transition: none; }
    .credit-line-text:hover .credit-glyph { transform: none; }
}

/* =====================================================================
   ENTERPRISE SECTIONS — additive components in the existing
   dark + gradient design language (reuses existing tokens & fonts).
   Used by the About / Services / Industries / Contact builds.
   ===================================================================== */

/* ---- Founder / leadership block ---- */
.founder-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 36px;
    align-items: start;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    padding: 44px;
}
.founder-avatar {
    width: 128px;
    height: 128px;
    border-radius: 24px;
    background: var(--gradient-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 2.6rem;
    font-weight: 800;
    color: #fff;
    box-shadow: var(--shadow-glow);
    overflow: hidden;
    flex-shrink: 0;
}
.founder-avatar img { width: 100%; height: 100%; object-fit: cover; object-position: center 34%; }
.founder-name { font-family: var(--font-display); font-size: 1.7rem; font-weight: 700; color: var(--white); }
.founder-role { color: var(--primary-blue-light); font-weight: 600; font-size: 0.95rem; margin: 4px 0 18px; }
.founder-bio { color: var(--slate-300); line-height: 1.7; margin-bottom: 22px; }
/* About — Floating Stat Card (sits over the hero/section seam) */
.stat-bar-section {
    position: relative;
    z-index: 5;
    /* pull the card up so it floats over the hero/dark-section boundary */
    margin-top: -3.25rem;
    margin-bottom: 80px;
}

/* Who We Are spacing — statement panel above provides the section break */
.about-intro {
    padding-top: 20px !important;
    padding-bottom: 100px;
}

.stat-bar-section .founder-meta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: center;
    max-width: 980px;
    margin: 0 auto;
    padding: 2rem 1rem;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 20px;
    box-shadow: var(--shadow-xl);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    animation: statCardRise 0.7s ease-out both;
}

.stat-bar-section .founder-stat {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
    padding: 0 1.25rem;
}

/* subtle dividers between the 4 stats */
.stat-bar-section .founder-stat + .founder-stat::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 48px;
    background: var(--glass-border);
}

/* Base founder-stat (also used by the nested founder-bio card) */
.founder-meta { display: flex; flex-wrap: wrap; gap: 28px; padding-top: 22px; border-top: 1px solid var(--glass-border); }
.founder-stat .num { font-family: var(--font-display); font-size: 1.6rem; font-weight: 800; background: var(--gradient-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.founder-stat .lbl { color: var(--slate-400); font-size: 0.8rem; }

.stat-bar-section .founder-stat .num {
    font-size: 2rem;
    line-height: 1.1;
}

.stat-bar-section .founder-stat .lbl {
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: 0.2px;
}

@keyframes statCardRise {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Tablet — 2x2 grid */
@media (max-width: 768px) {
    .stat-bar-section { margin-top: -2.5rem; }
    .stat-bar-section .founder-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.75rem 0;
        padding: 1.75rem 0.75rem;
        border-radius: 16px;
    }
    .stat-bar-section .founder-stat { padding: 0 0.75rem; }
    .stat-bar-section .founder-stat .num { font-size: 1.7rem; word-break: break-word; }
    /* drop the inline vertical dividers; show one only between the two columns */
    .stat-bar-section .founder-stat + .founder-stat::before { display: none; }
    .stat-bar-section .founder-stat:nth-child(even)::before {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 1px;
        height: 44px;
        background: var(--glass-border);
    }
}

/* Mobile — 2x2 grid stays, tighten spacing */
@media (max-width: 640px) {
    .stat-bar-section { margin-top: -2.25rem; }
    .stat-bar-section .founder-meta {
        gap: 1.5rem 0;
        padding: 1.5rem 0.5rem;
    }
    .stat-bar-section .founder-stat { padding: 0 0.5rem; }
    .stat-bar-section .founder-stat .num { font-size: 1.75rem; }
    .stat-bar-section .founder-stat .lbl { font-size: 0.75rem; }
}

@media (prefers-reduced-motion: reduce) {
    .stat-bar-section .founder-meta { animation: none; }
}
.founder-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; color: var(--primary-blue-light); font-weight: 600; font-size: 0.9rem; }

/* ---- Comparison table (engagement models) ---- */
.compare-wrap { overflow-x: auto; border: 1px solid var(--glass-border); border-radius: 16px; background: var(--gradient-card); }
.compare-table { width: 100%; border-collapse: collapse; min-width: 680px; }
.compare-table th, .compare-table td { padding: 16px 22px; text-align: left; border-bottom: 1px solid var(--tint-06); }
.compare-table thead th { background: rgba(109, 74, 230, 0.1); font-family: var(--font-display); color: var(--white); font-size: 0.95rem; font-weight: 600; }
.compare-table td { color: var(--slate-300); font-size: 0.92rem; }
.compare-table tbody tr:last-child td { border-bottom: none; }
.compare-table .model-name { color: var(--primary-blue-light); font-weight: 700; }

/* ---- Healthcare / DME hero band ---- */
.hc-band { position: relative; background: var(--gradient-card); border: 1px solid var(--glass-border); border-radius: 28px; padding: 48px; overflow: hidden; }
.hc-band::before { content: ""; position: absolute; top: -40%; right: -10%; width: 480px; height: 480px; background: var(--gradient-glow); filter: blur(40px); pointer-events: none; }
.hc-band-inner { position: relative; z-index: 1; }
.hc-band h2 { font-family: var(--font-display); }
/* ---- HC Bento Grid System ---- */
.hc-bento-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-top: 44px;
}
.hc-bento-card {
    background: rgba(255, 255, 255, 0.015);
    border: 1px solid var(--glass-border);
    border-radius: 20px;
    padding: 36px;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}
.hc-bento-card:hover {
    transform: translateY(-4px);
    border-color: rgba(109, 74, 230, 0.35);
    background: rgba(109, 74, 230, 0.05);
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.25);
}
.hc-bento-wide {
    grid-column: span 2;
}
.hc-bento-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 28px;
}
.hc-bento-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: rgba(109, 74, 230, 0.08);
    border: 1px solid rgba(109, 74, 230, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
}
.hc-bento-icon svg {
    width: 22px;
    height: 22px;
}
.hc-bento-header h3 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    color: var(--white);
    margin: 0;
}

/* Roles List */
.hc-bento-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 14px;
}
.hc-bento-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--slate-300);
    font-size: 0.96rem;
}
.hc-bento-list li::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--primary-blue-light);
    box-shadow: 0 0 10px var(--primary-blue);
    flex-shrink: 0;
}

/* Systems Tags */
.hc-system-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.hc-sys-tag {
    background: var(--glass-bg);
    border: 1px solid var(--tint-06);
    padding: 10px 18px;
    border-radius: 8px;
    font-size: 0.9rem;
    color: var(--slate-200);
    font-weight: 500;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);
}
.hc-sys-tag:hover {
    border-color: var(--primary-blue-light);
    color: var(--white);
    background: rgba(109, 74, 230, 0.15);
}

/* Compliance Grid */
.hc-compliance-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}
.hc-comp-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 20px;
    background: rgba(109, 74, 230, 0.05);
    border: 1px solid rgba(109, 74, 230, 0.2);
    border-radius: 50px;
    color: var(--slate-200);
    font-size: 0.95rem;
}
.comp-dot {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background: var(--gradient-primary);
}

@media (max-width: 768px) {
    .hc-bento-grid { grid-template-columns: 1fr; }
    .hc-bento-wide { grid-column: span 1; }
}
/* ---- Shared Glowing Layer ---- */
.hc-bento-card, .hc-stat-card {
    position: relative;
    overflow: hidden;
    z-index: 1;
}
.hc-card-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 140%;
    height: 140%;
    background: radial-gradient(circle, rgba(109, 74, 230, 0.25) 0%, transparent 65%);
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
    z-index: 0;
}
.hc-bento-card:hover .hc-card-glow, 
.hc-stat-card:hover .hc-card-glow,
.next-card:hover .hc-card-glow,
.accordion-item:hover .hc-card-glow {
    opacity: 1;
}

/* Make sure bento contents stay above the glow */
.hc-bento-header, .hc-bento-list, .hc-system-tags, .hc-compliance-grid {
    position: relative;
    z-index: 2;
}

/* ---- Glowy Stats Bento ---- */
.hc-stats-bento {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 44px;
}
.hc-stat-card {
    background: rgba(255, 255, 255, 0.015);
    border: 1px solid var(--glass-border);
    border-radius: 20px;
    padding: 36px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}
.hc-stat-card:hover {
    transform: translateY(-4px);
    border-color: rgba(109, 74, 230, 0.4);
    background: rgba(109, 74, 230, 0.05);
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.25);
}
.hc-stat-card .stat-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.hc-stat-card .num {
    font-family: var(--font-display);
    font-size: 3.5rem;
    font-weight: 800;
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1.1;
    margin-bottom: 8px;
    filter: drop-shadow(0 4px 12px rgba(109, 74, 230, 0.3));
}
.hc-stat-card .lbl {
    color: var(--slate-300);
    font-size: 0.96rem;
    letter-spacing: 0.5px;
    font-weight: 500;
}
@media (max-width: 768px) {
    .hc-stats-bento { grid-template-columns: 1fr; }
}

/* ---- Compliance marquee (BridgeAgent-style scrolling mono row) ---- */
.comp-marquee {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.comp-marquee-track {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    font-family: 'SFMono-Regular', ui-monospace, 'JetBrains Mono', 'Menlo', monospace;
    font-size: clamp(1rem, 1.6vw, 1.35rem);
    font-weight: 500;
    letter-spacing: 0.02em;
    will-change: transform;
    animation: compMarquee 34s linear infinite;
}
.comp-marquee:hover .comp-marquee-track { animation-play-state: paused; }
.comp-word { color: var(--slate-300); transition: color .3s ease; }
.comp-arr  { color: var(--primary-blue-light); opacity: .55; font-weight: 400; margin: 0 22px; }
@keyframes compMarquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
    /* no scroll — show the unique items once, evenly spaced, no run-on */
    .comp-marquee { mask-image: none; -webkit-mask-image: none; }
    .comp-marquee-track { animation: none; display: flex; flex-wrap: wrap; gap: 10px 0; }
    .comp-marquee-track .comp-word:nth-child(n+11),
    .comp-marquee-track .comp-arr:nth-child(n+11) { display: none; }
    .comp-arr { margin: 0 16px; }
}

/* ════════════════════════════════════════════════════════════════════
   HEALTHCARE — three illustrated panels (Roles / Systems / Compliance),
   each with its own animated SVG emblem, then a divided figures band.
   ════════════════════════════════════════════════════════════════════ */
.hc-panels { position: relative; padding: clamp(72px, 10vh, 130px) 0; }
.hc-head { text-align: center; max-width: 760px; margin: 0 auto 56px; }
.hc-head .cine-eyebrow { justify-content: center; margin-bottom: 20px; }
.hc-head-title {
    font-family: var(--font-display); font-weight: 700;
    font-size: clamp(2.1rem, 3.6vw, 3rem); line-height: 1.06; letter-spacing: -.01em;
    color: var(--white); margin-bottom: 16px;
}
.hc-head-sub { color: var(--slate-400); font-size: 1.04rem; line-height: 1.6; max-width: 56ch; margin: 0 auto; }

.hc-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.hc-panel {
    position: relative; display: flex; flex-direction: column;
    border: 1px solid rgba(139,107,240,.18); border-radius: 20px; overflow: hidden;
    background: radial-gradient(420px circle at 50% -8%, rgba(109,74,230,.13), transparent 62%),
                linear-gradient(165deg, rgba(24,18,44,.55), rgba(10,9,18,.95));
    transition: border-color .35s ease, transform .35s ease;
}
.hc-panel:hover { border-color: rgba(139,107,240,.4); transform: translateY(-4px); }
.hc-p-head { display: flex; align-items: center; gap: 12px; padding: 24px 26px 0; }
.hc-p-no { font-family: var(--font-display); font-weight: 700; font-size: .78rem; letter-spacing: .12em; color: var(--primary-blue-light); opacity: .85; }
.hc-p-rule { flex: 1; height: 1px; background: var(--cine-hairline); }
.hc-p-label { font: 600 .7rem/1 'Inter', sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--slate-400); }
.hc-pic { height: 184px; display: flex; align-items: center; justify-content: center; padding: 14px 26px 0; }
.hc-pic svg { width: 200px; height: 160px; overflow: visible; }
.hc-p-body { padding: 20px 26px 28px; display: flex; flex-direction: column; flex: 1; }
.hc-p-body h3 { font-family: var(--font-display); font-weight: 600; color: var(--white); font-size: 1.22rem; letter-spacing: -.01em; margin-bottom: 16px; }
.hc-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.hc-tags span {
    font-size: .83rem; color: var(--slate-300); background: rgba(109,74,230,.08);
    border: 1px solid rgba(139,107,240,.2); border-radius: 8px; padding: 6px 12px; line-height: 1;
    transition: border-color .25s ease;
}
.hc-panel:hover .hc-tags span { border-color: rgba(139,107,240,.32); }
.hc-panel.hc-mono .hc-tags span { font-family: ui-monospace, 'JetBrains Mono', 'Menlo', monospace; font-size: .78rem; }

/* divided figures band */
.hc-figures-band {
    display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 24px;
    border: 1px solid var(--cine-hairline); border-radius: 18px; overflow: hidden;
}
.hc-fig { padding: 30px 28px; text-align: center; }
.hc-fig + .hc-fig { border-left: 1px solid var(--cine-hairline); }
.hc-fig-n {
    font-family: var(--font-display); font-weight: 800; font-size: clamp(2.2rem, 3.2vw, 2.7rem); line-height: 1;
    background: var(--gradient-primary); -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; filter: drop-shadow(0 4px 14px rgba(109,74,230,.3));
}
.hc-fig-l { display: block; margin-top: 8px; font-size: .76rem; letter-spacing: .05em; text-transform: uppercase; color: var(--slate-400); }

@media (max-width: 900px) {
    .hc-trio { grid-template-columns: 1fr; }
    .hc-figures-band { grid-template-columns: 1fr; }
    .hc-fig + .hc-fig { border-left: 0; border-top: 1px solid var(--cine-hairline); }
}
@media (prefers-reduced-motion: reduce) {
    .hc-pic svg * { animation: none !important; }
}

/* ---- Secondary "We Also Staff" — editorial row list (no boxes) ---- */
.also-list { border-top: 1px solid var(--cine-hairline); max-width: 1040px; margin: 0 auto; }
.also-row {
    position: relative;
    display: grid; grid-template-columns: 56px minmax(180px, 0.7fr) minmax(0, 1.3fr) 28px;
    align-items: center; gap: 24px;
    padding: 26px 14px; border-bottom: 1px solid var(--cine-hairline);
    transition: background .3s ease, padding-left .3s ease;
}
/* a thin accent bar that grows on the left on hover */
.also-row::before {
    content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
    background: var(--gradient-primary); transform: scaleY(0); transform-origin: center;
    transition: transform .35s cubic-bezier(.22,1,.36,1);
}
.also-row:hover { background: rgba(109,74,230,.04); padding-left: 22px; }
.also-row:hover::before { transform: scaleY(1); }
.also-row-ic {
    display: inline-flex; align-items: center; justify-content: center;
    width: 48px; height: 48px; border-radius: 12px;
    background: rgba(109,74,230,.1); border: 1px solid rgba(139,107,240,.22);
    transition: background .3s ease;
}
.also-row-ic .about-ico { width: 23px; height: 23px; }
.also-row-ic .ico-line { stroke: rgba(206,192,255,.9); }
.also-row:hover .also-row-ic { background: var(--gradient-primary); }
.also-row:hover .also-row-ic .ico-line { stroke: #fff; }
.also-row:hover .also-row-ic .ico-fill { fill: rgba(255,255,255,.18); }
.also-row-name {
    font-family: var(--font-display); font-weight: 600; color: var(--white);
    font-size: clamp(1.15rem, 1.8vw, 1.45rem); margin: 0; transition: color .3s ease;
}
.also-row-desc { color: var(--slate-400); font-size: .96rem; line-height: 1.55; margin: 0; }
.also-row-arr { color: var(--slate-500); opacity: 0; transform: translateX(-6px); transition: opacity .3s ease, transform .3s ease, color .3s ease; }
.also-row-arr svg { width: 22px; height: 22px; }
.also-row:hover .also-row-arr { opacity: 1; transform: translateX(0); color: var(--primary-blue-light); }
@media (max-width: 760px) {
    .also-row { grid-template-columns: 44px 1fr; gap: 8px 16px; padding: 22px 4px; row-gap: 6px; }
    .also-row-ic { width: 44px; height: 44px; }
    .also-row-name { grid-column: 2; }
    .also-row-desc { grid-column: 2; }
    .also-row-arr { display: none; }
}

/* ---- Dual-audience cards ---- */
.audience-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 24px; }
.audience-card { background: var(--gradient-card); border: 1px solid var(--glass-border); border-radius: 24px; padding: 36px; }
.audience-card.primary { border-color: rgba(109, 74, 230, 0.45); box-shadow: var(--shadow-glow); }
.audience-card h3 { font-family: var(--font-display); color: var(--white); font-size: 1.4rem; margin-bottom: 8px; }
.audience-card p { color: var(--slate-400); font-size: 0.95rem; margin-bottom: 20px; }

/* ---- Roles & tech coverage grid ---- */
.roles-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.role-col h4 { font-family: var(--font-display); color: var(--white); font-size: 1rem; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.role-col ul { list-style: none; }
.role-col li { color: var(--slate-300); font-size: 0.9rem; padding: 5px 0 5px 18px; position: relative; }
.role-col li::before { content: ""; position: absolute; left: 0; top: 12px; width: 6px; height: 6px; border-radius: 50%; background: var(--primary-blue); }

/* ---- Credentials / approach strip ---- */
.cred-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 3rem; }
@media (max-width: 768px) { .cred-strip { grid-template-columns: 1fr; } }
.cred-item { display: flex; align-items: center; gap: 9px; padding: 11px 18px; border: 1px solid var(--glass-border); border-radius: 50px; background: var(--glass-bg); color: var(--slate-200); font-size: 0.86rem; }
.cred-item i { color: var(--primary-blue-light); flex-shrink: 0; }

/* ---- Response SLA pill ---- */
.sla-pill { display: flex; align-items: center; gap: 12px; padding: 13px 20px; border: 1px solid rgba(109, 74, 230, 0.35); border-radius: 12px; background: rgba(109, 74, 230, 0.08); color: var(--slate-200); font-size: 0.9rem; }
/* fills the form-header width instead of hugging content and leaving a lopsided right gap */
.sla-pill i { color: var(--primary-blue-light); }

/* ---- Journey Stepper (horizontal timeline) ---- */
.journey-stepper {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    padding-top: 60px;
    margin-top: 1rem;
}
/* Horizontal connecting track behind the nodes */
.journey-track {
    position: absolute;
    top: 82px;
    left: calc(16.666% - 2px);
    right: calc(16.666% - 2px);
    height: 3px;
    background: linear-gradient(90deg, var(--primary-blue), var(--primary-blue-light), var(--primary-blue));
    border-radius: 2px;
    box-shadow: 0 0 16px rgba(109, 74, 230, 0.4);
    z-index: 1;
}
.journey-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    z-index: 2;
}
/* Numbered node circle */
.journey-node {
    width: 48px;
    height: 48px;
    background: var(--gradient-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 28px;
    box-shadow: var(--shadow-glow);
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
    flex-shrink: 0;
}
.journey-step:hover .journey-node {
    transform: scale(1.15);
    box-shadow: 0 0 50px rgba(109, 74, 230, 0.6);
}
.journey-num {
    font-family: var(--font-display);
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--on-accent);
    letter-spacing: 0.05em;
}
/* Card body */
.journey-card {
    position: relative;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    padding: 36px 28px 32px;
    overflow: hidden;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
    flex: 1;
}
.journey-step:hover .journey-card {
    transform: translateY(-8px);
    border-color: rgba(109, 74, 230, 0.5);
}
/* Purple glow behind card on hover */
.journey-card-glow {
    position: absolute;
    inset: -2px;
    background: var(--gradient-primary);
    border-radius: 26px;
    opacity: 0;
    z-index: -1;
    filter: blur(25px);
    transition: opacity var(--transition-normal);
}
.journey-step:hover .journey-card-glow {
    opacity: 0.25;
}
.journey-year {
    display: inline-block;
    font-family: var(--font-display);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--primary-blue-light);
    background: rgba(109, 74, 230, 0.1);
    border: 1px solid rgba(109, 74, 230, 0.3);
    border-radius: 50px;
    padding: 5px 16px;
    margin-bottom: 16px;
}
.journey-card h4 {
    font-family: var(--font-display);
    font-size: 1.2rem;
    color: var(--white);
    margin-bottom: 12px;
}
.journey-card p {
    color: var(--slate-400);
    font-size: 0.92rem;
    line-height: 1.7;
    margin: 0;
}
@media (max-width: 768px) {
    .journey-stepper { grid-template-columns: 1fr; padding-top: 0; gap: 24px; }
    .journey-track { display: none; }
    .journey-node { margin-bottom: 16px; }
    .journey-card { padding: 28px 24px; }
}

/* ── Scroll-DRAW timeline: the line fills L→R as you scroll, nodes ignite as
   the fill reaches them, cards rise in. Driven by --jp (0→1) set in initJourney. */
.journey-track {
    background: rgba(139,107,240,0.16);   /* faint base rail */
    box-shadow: none;
    overflow: visible;
}
.journey-track::after {                    /* bright fill that grows with scroll */
    content: ''; position: absolute; inset: 0; border-radius: 2px;
    background: linear-gradient(90deg, var(--primary-blue), var(--primary-blue-light));
    box-shadow: 0 0 16px rgba(109,74,230,0.55);
    transform: scaleX(var(--jp, 0)); transform-origin: left center;
    /* smoothing: the fill GLIDES toward the latest scroll value instead of
       snapping each notch — kills the steppy "too fast" feel. */
    transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}
.journey-track::before {                   /* glowing head dot riding the fill */
    content: ''; position: absolute; top: 50%; left: calc(var(--jp, 0) * 100%);
    width: 11px; height: 11px; border-radius: 50%; background: #fff;
    box-shadow: 0 0 16px 5px rgba(184,157,255,0.85);
    transform: translate(-50%, -50%); opacity: var(--jp-dot, 0);
    transition: left 0.32s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
}
.journey-node {                            /* dim until the fill reaches it */
    filter: grayscale(0.6) brightness(0.55); box-shadow: 0 0 0 rgba(109,74,230,0);
    transition: filter 0.5s ease, box-shadow 0.5s ease, transform 0.45s ease;
}
.journey-node.lit { filter: none; box-shadow: 0 0 30px rgba(109,74,230,0.6); animation: jNodePop 0.5s ease; }
@keyframes jNodePop { 0% { transform: scale(0.82); } 55% { transform: scale(1.2); } 100% { transform: scale(1); } }
.journey-card {                            /* rise in as its step activates */
    opacity: 0; transform: translateY(26px);
    transition: opacity 0.6s cubic-bezier(0.22,1,0.36,1), transform 0.6s cubic-bezier(0.22,1,0.36,1), border-color 0.3s ease;
}
.journey-step.in .journey-card { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .journey-track::after { transform: scaleX(1); }
    .journey-track::before { opacity: 0; }
    .journey-node { filter: none; }
    .journey-card { opacity: 1; transform: none; }
}

/* ── PIN: freeze the Our Story section like the carousel so the line draws over a
   long, deliberate scroll runway — native position:sticky (overflow:clip keeps it alive).
   .journey-driver = the tall scroll room; .journey-sticky = the pinned stage. */
.journey-driver {
    position: relative;
    height: 240vh;                 /* runway: ~1.4 screens of deliberate draw */
}
.journey-sticky {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
@media (max-width: 768px) {
    /* no pin on mobile — let it flow naturally and reveal via the reduced fallback */
    .journey-driver { height: auto; }
    .journey-sticky { position: static; height: auto; display: block; }
}

/* ---- Engagement Models 3-column grid ---- */
.value-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    align-items: stretch;
}

/* ---- Responsive for enterprise sections ---- */
@media (max-width: 992px) {
    .value-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
    .audience-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .value-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .founder-card { grid-template-columns: 1fr; gap: 24px; padding: 32px 24px; text-align: left; }
    .founder-avatar { width: 96px; height: 96px; font-size: 2rem; }
    .hc-band { padding: 32px 24px; }
}

/* =========================================================
   CONTACT PAGE — premium pass (hero, audience split, next
   strip, trust band, form polish). Tokens only.
   ========================================================= */

/* ---- Hero lead + sub ---- */
.page-header-content .hero-lead {
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 3.2vw, 1.9rem);
    font-weight: 600;
    line-height: 1.25;
    color: var(--white);
    margin-bottom: 14px;
    max-width: 30ch;
}
.page-header-content .hero-sub {
    color: var(--slate-400);
    font-size: 1.02rem;
    line-height: 1.6;
    max-width: 52ch;
}
.page-header-content .hero-sub::before {
    content: "";
    display: inline-block;
    width: 26px;
    height: 2px;
    margin: 0 12px 5px 0;
    vertical-align: middle;
    background: var(--gradient-primary);
    border-radius: 2px;
}

/* ---- Audience split: asymmetric 60/40 with OR divider ---- */
.audience-grid {
    grid-template-columns: minmax(0, 1.55fr) auto minmax(0, 1fr);
    align-items: stretch;
    gap: 0;
}
.audience-card {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform var(--transition-base, 0.3s ease),
                border-color var(--transition-base, 0.3s ease),
                box-shadow var(--transition-base, 0.3s ease);
}
.audience-card p { flex: 1; }
.audience-card .btn { align-self: flex-start; }

/* Primary "door" — elevated, gradient glow border */
.audience-card.primary {
    border: 1px solid transparent;
    background:
        linear-gradient(var(--navy-800), var(--navy-800)) padding-box,
        var(--gradient-primary) border-box;
    box-shadow: 0 24px 60px -22px rgba(109, 74, 230, 0.55),
                var(--shadow-xl);
}
.audience-card.primary::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(120% 90% at 0% 0%, rgba(109, 74, 230, 0.16) 0%, transparent 55%);
    pointer-events: none;
}
.audience-card.primary > * { position: relative; z-index: 1; }
.audience-card.primary:hover { transform: translateY(-4px); }

/* Secondary "door" — quieter */
.audience-card:not(.primary):hover {
    transform: translateY(-4px);
    border-color: var(--tint-18);
}

.audience-tag {
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    font-family: var(--font-secondary);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 6px 12px;
    margin-bottom: 18px;
    border-radius: 50px;
    color: var(--primary-blue-light);
    background: rgba(109, 74, 230, 0.12);
    border: 1px solid rgba(109, 74, 230, 0.3);
}
.audience-tag.muted {
    color: var(--slate-400);
    background: var(--tint-04);
    border-color: var(--glass-border);
}
.audience-card h3 i { color: var(--primary-blue-light); margin-right: 6px; }

/* Vertical OR divider between the two doors */
.audience-divider {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 0 28px;
    align-self: stretch;
}
.audience-divider-line {
    width: 1px;
    flex: 1;
    background: linear-gradient(180deg, transparent, var(--glass-border) 25%, var(--glass-border) 75%, transparent);
}
.audience-divider-or {
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 3px;
    color: var(--slate-400);
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--navy-800);
    border: 1px solid var(--glass-border);
    box-shadow: var(--shadow-md);
}

/* ---- Form polish ---- */
.btn-submit i.fas { transition: transform var(--transition-fast); }
.btn-submit:hover i.fas { transform: translateX(4px); }
.btn-submit:focus-visible,
.audience-card .btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(109, 74, 230, 0.45);
}
.form-reassure {
    margin-top: 16px;
    text-align: center;
    font-size: 0.85rem;
    color: var(--slate-500);
}

/* ---- "What happens next" strip ---- */
/* ---- "What Happens Next" — collapsible toggle + vertical timeline ---- */
/* top padding (not child margin) — the child's 40px margin collapsed through the
   section edge, so overflow:clip sliced the pill's glow + hover lift at the top */
.next-section { padding: 40px 0 var(--section-padding); }

/* ════════════════════════════════════════════════════════════════════
   WHAT HAPPENS NEXT — collapsed by default. The pill IS the toggle;
   clicking it reveals a clean 3-step panel with a smooth grid-rows expand.
   ════════════════════════════════════════════════════════════════════ */
.next-reveal { width: 100%; max-width: 760px; margin: 0 auto; }

.next-reveal { display: flex; flex-direction: column; align-items: center; }

/* the pill trigger (JS toggles .is-open on .next-reveal) */
.next-trigger {
    cursor: pointer; user-select: none; appearance: none;
    display: inline-flex; align-items: center; gap: 12px;
    padding: 13px 18px 13px 22px; border-radius: 50px;
    background: rgba(109,74,230,.08); border: 1px solid rgba(139,107,240,.3);
    color: var(--primary-blue-light);
    font: 600 .82rem/1 var(--font-secondary, 'Inter'); letter-spacing: .14em; text-transform: uppercase;
    transition: background .3s ease, border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.next-trigger:hover { background: rgba(109,74,230,.26); border-color: rgba(139,107,240,.7); transform: translateY(-2px); box-shadow: 0 12px 40px rgba(109,74,230,.4); }
.next-reveal.is-open .next-trigger { background: rgba(109,74,230,.18); border-color: rgba(139,107,240,.55); }
.next-trigger-ic { display: inline-flex; width: 18px; height: 18px; }
.next-trigger-ic svg { width: 18px; height: 18px; }
/* chevron points DOWN when closed (= "expand"), rotates UP when open */
.next-trigger-chev { display: inline-flex; width: 16px; height: 16px; transition: transform .4s cubic-bezier(.22,1,.36,1); }
.next-trigger-chev svg { width: 16px; height: 16px; }
.next-reveal.is-open .next-trigger-chev { transform: rotate(180deg); }

/* the revealed panel — collapse with block-size (reliable on this site) */
.next-panel {
    width: 100%; display: block; overflow: hidden;
    block-size: 0; opacity: 0;
    transition: block-size .5s cubic-bezier(.22,1,.36,1), opacity .4s ease, margin-top .5s ease;
    margin-top: 0;
}
.next-reveal.is-open .next-panel { block-size: auto; opacity: 1; margin-top: 36px; }
.next-panel-inner { overflow: hidden; }
.next-reveal.is-open .next-panel-inner { animation: nextReveal .5s cubic-bezier(.22,1,.36,1) both; }
@keyframes nextReveal {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .next-panel { transition: opacity .2s ease; }
    .next-reveal.is-open .next-panel-inner { animation: none; }
}

.next-panel-title {
    text-align: center; margin: 0 0 30px;
    font-family: var(--font-display); font-weight: 700;
    font-size: clamp(1.8rem, 3vw, 2.6rem); letter-spacing: -.02em; color: var(--white);
}

/* the three steps — a clean card stack with a connecting rail */
.next-steps {
    position: relative; list-style: none; margin: 0 auto; padding: 0; max-width: 620px;
    display: flex; flex-direction: column; gap: 14px;
}
.next-step {
    position: relative; display: grid; grid-template-columns: 52px 1fr; gap: 20px; align-items: center;
    padding: 22px 26px; border-radius: 18px;
    background: linear-gradient(160deg, rgba(24,18,44,.5), rgba(10,9,18,.92));
    border: 1px solid rgba(139,107,240,.18);
    transition: border-color .3s ease, transform .3s ease, background .3s ease;
}
.next-step:hover { border-color: rgba(139,107,240,.4); transform: translateX(4px); background: linear-gradient(160deg, rgba(30,22,56,.6), rgba(12,10,22,.95)); }
.next-step-num {
    display: flex; align-items: center; justify-content: center;
    width: 52px; height: 52px; border-radius: 14px;
    font-family: var(--font-display); font-weight: 800; font-size: 1.15rem; color: #fff;
    background: var(--gradient-primary); box-shadow: 0 10px 26px rgba(109,74,230,.45);
}
.next-step-body h4 { font-family: var(--font-display); font-weight: 600; color: var(--white); font-size: 1.12rem; margin: 0 0 5px; letter-spacing: -.01em; }
.next-step-body p { color: var(--slate-400); font-size: .96rem; line-height: 1.5; margin: 0; }

@media (prefers-reduced-motion: reduce) {
    .next-panel, .next-trigger-chev, .next-step { transition: none; }
}
@media (max-width: 600px) {
    .next-step { grid-template-columns: 44px 1fr; gap: 16px; padding: 18px 20px; }
    .next-step-num { width: 44px; height: 44px; font-size: 1rem; }
}

/* ---- Trust / availability band — premium card system ---- */
.trust-band-section { padding: 0 0 var(--section-padding); }

.trust-band {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    padding: 16px;
    border-radius: 24px;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    backdrop-filter: var(--glass-blur);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

/* animated purple gradient line across the top edge */
.trust-band__edge {
    position: absolute;
    top: 0; left: 0;
    height: 1px;
    width: 100%;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(109,74,230,0) 12%,
        var(--primary-blue) 38%,
        var(--primary-blue-light) 50%,
        var(--primary-blue) 62%,
        rgba(109,74,230,0) 88%,
        transparent 100%);
    background-size: 220% 100%;
    animation: trustEdgeSweep 6s linear infinite;
    opacity: 0.9;
}
@keyframes trustEdgeSweep {
    from { background-position: 120% 0; }
    to   { background-position: -120% 0; }
}

/* each stat card */
.trust-card {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;   /* center the icon+text group so wide cards don't leave a lopsided right gap */
    gap: 16px;
    padding: 22px 22px;
    border-radius: 18px;
    background: var(--tint-03);
    border: 1px solid var(--tint-06);
    text-decoration: none;
    overflow: hidden;
    transition: transform var(--transition-normal),
                border-color var(--transition-normal),
                box-shadow var(--transition-normal),
                background var(--transition-normal);
}

/* soft purple glow bloom, revealed on hover/focus */
.trust-card__glow {
    position: absolute;
    inset: -40% -20% auto -20%;
    height: 160%;
    background: radial-gradient(60% 80% at 22% 0%, rgba(109,74,230,0.22) 0%, transparent 70%);
    opacity: 0;
    transition: opacity var(--transition-normal);
    pointer-events: none;
}

/* icon tile */
.trust-card__icon {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 13px;
    background: rgba(109,74,230,0.10);
    border: 1px solid rgba(139,107,240,0.22);
    transition: transform var(--transition-normal),
                background var(--transition-normal),
                border-color var(--transition-normal);
}
.trust-card__icon svg { width: 23px; height: 23px; display: block; }

.trust-card__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.trust-card__label {
    font-family: var(--font-secondary);
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: 2.6px;
    text-transform: uppercase;
    color: var(--slate-500);
}
.trust-card__value {
    font-family: var(--font-display);
    font-size: 1.12rem;
    font-weight: 600;
    line-height: 1.15;
    color: var(--slate-200);
    transition: color var(--transition-fast);
}
.trust-card__value--email {
    font-size: 0.98rem;
    word-break: break-word;
}

/* live "available now" chip on the response-time card */
.trust-card__status {
    position: absolute;
    top: 14px;
    right: 14px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 10px 5px 9px;
    border-radius: 999px;
    background: rgba(34,197,94,0.10);
    border: 1px solid rgba(34,197,94,0.28);
    font-family: var(--font-secondary);
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #4ade80;
    white-space: nowrap;
}
.trust-card__ping {
    position: relative;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 6px rgba(34,197,94,0.7);
}
.trust-card__ping::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(34,197,94,0.55);
    animation: trustPing 1.8s cubic-bezier(0,0,0.2,1) infinite;
}
@keyframes trustPing {
    0%   { transform: scale(1);   opacity: 0.7; }
    80%, 100% { transform: scale(2.6); opacity: 0; }
}

/* chevron cue on actionable cards */
.trust-card__cue {
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    color: var(--slate-500);
    opacity: 0;
    transition: opacity var(--transition-normal),
                transform var(--transition-normal),
                color var(--transition-normal);
}
.trust-card__cue svg { width: 100%; height: 100%; display: block; }

/* interactive states (link cards) */
.trust-card--link:hover,
.trust-card--link:focus-visible {
    transform: translateY(-4px);
    background: var(--tint-04);
    border-color: rgba(139,107,240,0.40);
    box-shadow: 0 14px 34px rgba(109,74,230,0.22), var(--shadow-md);
    outline: none;
}
.trust-card--link:hover .trust-card__glow,
.trust-card--link:focus-visible .trust-card__glow { opacity: 1; }
.trust-card--link:hover .trust-card__value,
.trust-card--link:focus-visible .trust-card__value { color: var(--primary-blue-light); }
.trust-card--link:hover .trust-card__icon,
.trust-card--link:focus-visible .trust-card__icon {
    transform: scale(1.06);
    background: rgba(109,74,230,0.16);
    border-color: rgba(139,107,240,0.42);
}
.trust-card--link:hover .trust-card__cue,
.trust-card--link:focus-visible .trust-card__cue {
    opacity: 1;
    transform: translateY(-50%) translateX(2px);
    color: var(--primary-blue-light);
}
.trust-card--link:focus-visible {
    box-shadow: 0 0 0 3px rgba(109,74,230,0.45), 0 14px 34px rgba(109,74,230,0.22);
}
.trust-card--link:active { transform: translateY(-1px); }

/* ---- Responsive: contact premium pass ---- */
@media (max-width: 900px) {
    .audience-grid { grid-template-columns: 1fr; }
    .audience-card.primary,
    .audience-card:not(.primary) { transform: none; }
    .audience-card.primary:hover,
    .audience-card:not(.primary):hover { transform: translateY(-4px); }
    .audience-divider {
        flex-direction: row;
        padding: 6px 0;
        gap: 16px;
    }
    .audience-divider-line { width: auto; height: 1px; flex: 1;
        background: linear-gradient(90deg, transparent, var(--glass-border) 25%, var(--glass-border) 75%, transparent); }
}
@media (max-width: 860px) {
    .trust-band { grid-template-columns: 1fr; gap: 12px; padding: 14px; }
}
@media (max-width: 540px) {
    .trust-card { flex-wrap: wrap; padding: 18px 16px; gap: 13px; }
    .trust-card__label { letter-spacing: 2px; }
    .trust-card__status {
        position: static;
        order: 3;
        flex-basis: 100%;
        margin-left: 62px;   /* aligns under the body, past the icon column */
        align-self: flex-start;
    }
    .trust-card__value--email { font-size: 0.92rem; }
    .trust-card__cue { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .audience-card, .btn-submit i.fas,
    .trust-card, .trust-card__icon, .trust-card__value,
    .trust-card__cue, .trust-card__glow { transition: none; }
    .trust-band__edge { animation: none; opacity: 0.7; }
    .trust-card__ping::after { animation: none; }
    .trust-card--link:hover, .trust-card--link:focus-visible { transform: none; }
}
/* ============================================================
   HERO REINVENTION — Software-First (2026-06-14)
   Software development is the hero. Staffing is secondary.
   Stays within existing palette/fonts (Space Grotesk / Inter,
   navy + blue→purple gradient).
   ============================================================ */

/* Eyebrow / live status */
.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    margin-bottom: 32px;
    background: rgba(109, 74, 230, 0.08);
    border: 1px solid rgba(109, 74, 230, 0.22);
    border-radius: 100px;
    animation: fadeInUp 0.8s ease forwards;
}

.hero-eyebrow-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--primary-blue-light);
    box-shadow: 0 0 10px var(--primary-blue-light);
    animation: pulse 2.4s ease infinite;
}

.hero-eyebrow-text {
    font-family: var(--font-secondary);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--slate-300);
}

/* Headline — big software-first moment */
.hero-headline .headline-main {
    font-family: var(--font-display);
    font-size: clamp(2.6rem, 6vw, 4.75rem);
    font-weight: 700;
    line-height: 1.04;
    letter-spacing: -0.02em;
    color: var(--white);
}

.hero-headline .word-line {
    display: block;
}

.hero-headline .gradient-line {
    margin-top: 0.04em;
}

/* Subline */
.hero-description {
    max-width: 52ch;   /* readable measure (~45–75 char target) */
}

/* Secondary staffing pill — small, supporting, not a co-headline */
.hero-secondary-pill {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 26px;
    padding: 11px 18px;
    background: var(--tint-03);
    border: 1px solid var(--glass-border);
    border-radius: 100px;
    text-decoration: none;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
    animation: fadeInUp 0.8s ease 0.5s forwards;
    opacity: 0;
}

.hero-secondary-pill:hover {
    background: rgba(109, 74, 230, 0.08);
    border-color: rgba(109, 74, 230, 0.3);
    transform: translateY(-2px);
}

.hero-secondary-pill:focus-visible {
    outline: 2px solid var(--primary-blue-light);
    outline-offset: 3px;
}

.pill-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(109, 74, 230, 0.18);
    color: var(--primary-blue-light);
    font-size: 0.72rem;
    flex-shrink: 0;
}

.pill-text {
    font-family: var(--font-secondary);
    font-size: 0.86rem;
    font-weight: 500;
    color: var(--slate-300);
}

.pill-arrow {
    font-size: 0.72rem;
    color: var(--slate-500);
    transition: transform var(--transition-normal), color var(--transition-normal);
}

.hero-secondary-pill:hover .pill-arrow {
    transform: translateX(3px);
    color: var(--primary-blue-light);
}

/* Proof row — replaces staffing-stat bars */
.hero-proof-row {
    display: flex;
    align-items: center;
    gap: 28px;
    margin-top: 8px;
    padding-top: 30px;
    border-top: 1px solid var(--glass-border);
    animation: fadeInUp 0.8s ease 0.7s forwards;
    opacity: 0;
}

.proof-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.proof-value {
    font-family: var(--font-display);
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--white);
    line-height: 1;
}

.proof-label {
    font-family: var(--font-secondary);
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.3px;
    color: var(--slate-500);
}

.proof-divider {
    width: 1px;
    height: 38px;
    background: linear-gradient(to bottom, transparent, var(--glass-border), transparent);
}

/* ---- Build Console card (replaces staffing-stats card) ---- */
.build-console .card-header {
    margin-bottom: 26px;
}

.console-window-dots {
    display: flex;
    gap: 7px;
}

.console-window-dots span {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--tint-14);
}

.console-window-dots span:nth-child(1) { background: rgba(124, 58, 237, 0.55); }
.console-window-dots span:nth-child(2) { background: rgba(109, 74, 230, 0.55); }
.console-window-dots span:nth-child(3) { background: rgba(139, 107, 240, 0.55); }

.console-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 22px;
}

.console-prompt {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--primary-blue-light);
}

.console-title-text {
    font-family: var(--font-secondary);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--slate-400);
}

.capability-list {
    list-style: none;
    margin: 0 0 26px;
    padding: 0;
    display: grid;
    gap: 12px;
}

.capability-chip {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 13px 16px;
    background: var(--tint-03);
    border: 1px solid var(--tint-07);
    border-radius: 14px;
    transition: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);
    opacity: 0;
    animation: fadeInUp 0.6s ease forwards;
}

.capability-chip:nth-child(1) { animation-delay: 0.55s; }
.capability-chip:nth-child(2) { animation-delay: 0.7s; }
.capability-chip:nth-child(3) { animation-delay: 0.85s; }
.capability-chip:nth-child(4) { animation-delay: 1s; }

.build-console:hover .capability-chip {
    border-color: rgba(109, 74, 230, 0.22);
}

.chip-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: 11px;
    background: linear-gradient(135deg, rgba(109, 74, 230, 0.2) 0%, rgba(124, 58, 237, 0.2) 100%);
    border: 1px solid rgba(109, 74, 230, 0.25);
    color: var(--primary-blue-light);
    font-size: 0.95rem;
}

.chip-text {
    font-family: var(--font-secondary);
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--slate-200);
}

.console-footer {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 18px;
    border-top: 1px solid var(--tint-06);
}

.console-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 8px rgba(34, 197, 94, 0.6);
    flex-shrink: 0;
}

.console-footer-text {
    font-family: var(--font-secondary);
    font-size: 0.85rem;
    color: var(--slate-400);
}

.console-footer-text strong {
    color: var(--white);
    font-weight: 600;
}

/* Mobile: surface the console as a clean capability strip
   (the .hero-visual is display:none ≤1200px, so we give
   mobile its own software-first capability row instead) */
.hero-mobile-caps {
    display: none;
}

@media (max-width: 1200px) {
    .hero-eyebrow,
    .hero-proof-row,
    .hero-secondary-pill {
        justify-content: center;
    }
    .hero-proof-row {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
    }
    .hero-secondary-pill {
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 768px) {
    .hero-proof-row {
        gap: 18px;
    }
    .proof-value { font-size: 1.25rem; }
    .proof-label { font-size: 0.72rem; }
    .hero-secondary-pill {
        max-width: 100%;
    }
    .pill-text { font-size: 0.8rem; }
}

@media (max-width: 480px) {
    .hero-proof-row {
        gap: 14px;
    }
    .proof-divider { height: 30px; }
}

@media (prefers-reduced-motion: reduce) {
    .hero-eyebrow,
    .hero-secondary-pill,
    .hero-proof-row,
    .capability-chip {
        animation: none !important;
        opacity: 1 !important;
    }
    .hero-eyebrow-dot { animation: none; }
    .hero-secondary-pill:hover,
    .hero-secondary-pill:hover .pill-arrow { transform: none; }
}

/* ============================================================
   ABOUT — "THE PROOF STACK" (about-intro-visual redesign)
   Editorial layered composition: a hero satisfaction panel
   anchored centre, three asymmetric satellite metrics, hairline
   gradient connectors, glassmorphism + scroll-stagger reveal.
   Reuses existing tokens / keyframes (gradientFlow, spinSlow,
   .animate-on-scroll). No new fonts, no palette changes.
   ============================================================ */
.about-intro-visual {
    display: flex;
    justify-content: center;
    align-items: center;
}

.proof-stack {
    position: relative;
    width: 100%;
    max-width: 440px;
    aspect-ratio: 1 / 1.18;
    margin: 0 auto;
}

/* --- ambient depth --- */
.proof-glow {
    position: absolute;
    inset: 8% 8% 14% 8%;
    background: radial-gradient(circle at 55% 45%, rgba(109, 74, 230, 0.22) 0%, transparent 68%);
    filter: blur(20px);
    z-index: 0;
    pointer-events: none;
}

.proof-ring {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 92%;
    height: 92%;
    transform: translate(-50%, -50%);
    border: 1px solid transparent;
    border-radius: 50%;
    border-top-color: rgba(139, 107, 240, 0.28);
    border-right-color: rgba(124, 58, 237, 0.18);
    animation: spinSlow 28s linear infinite;
    z-index: 0;
    pointer-events: none;
}

.proof-connectors {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

/* --- HERO metric panel --- */
.proof-hero {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
    width: 60%;
    min-width: 210px;
    padding: 26px 24px 22px;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 22px;
    box-shadow: var(--shadow-xl), inset 0 1px 0 var(--tint-05);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
}

/* Hero card keeps its centring transform while the scroll-reveal
   plays — so we animate opacity + a small intrinsic lift instead. */
.proof-hero.animate-on-scroll {
    transform: translate(-50%, calc(-50% + 24px));
}

.proof-hero.animate-on-scroll.animated {
    transform: translate(-50%, -50%);
}

.proof-hero-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.proof-eyebrow {
    font-family: var(--font-secondary);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--slate-400);
}

.proof-pulse {
    position: relative;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.5);
    animation: proofPulse 2.4s ease-out infinite;
    flex-shrink: 0;
}

@keyframes proofPulse {
    0% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.5); }
    70% { box-shadow: 0 0 0 9px rgba(52, 211, 153, 0); }
    100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0); }
}

.proof-hero-figure {
    display: flex;
    align-items: baseline;
    gap: 2px;
    line-height: 1;
}

.proof-num {
    font-family: var(--font-display);
    font-weight: 800;
    background: linear-gradient(120deg, #8B6BF0 0%, #818cf8 45%, #8B6BF0 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gradientFlow 6s ease infinite;
}

.proof-hero-figure .proof-num {
    font-size: 3.4rem;
}

.proof-unit {
    font-family: var(--font-display);
    font-weight: 700;
    color: var(--primary-blue-light);
}

.proof-hero-figure .proof-unit {
    font-size: 1.6rem;
}

.proof-hero-sub {
    margin: 8px 0 16px;
    font-family: var(--font-secondary);
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--slate-400);
}

/* CSS bar-graph accent — pure CSS, no images */
.proof-bars {
    display: flex;
    align-items: flex-end;
    gap: 5px;
    height: 42px;
}

.proof-bars span {
    flex: 1;
    height: var(--h);
    border-radius: 3px 3px 0 0;
    background: linear-gradient(180deg, rgba(139, 107, 240, 0.9) 0%, rgba(124, 58, 237, 0.35) 100%);
    transform-origin: bottom;
    transform: scaleY(0);
    transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.proof-hero.animated .proof-bars span { transform: scaleY(1); }
.proof-hero.animated .proof-bars span:nth-child(1) { transition-delay: 0.20s; }
.proof-hero.animated .proof-bars span:nth-child(2) { transition-delay: 0.26s; }
.proof-hero.animated .proof-bars span:nth-child(3) { transition-delay: 0.32s; }
.proof-hero.animated .proof-bars span:nth-child(4) { transition-delay: 0.38s; }
.proof-hero.animated .proof-bars span:nth-child(5) { transition-delay: 0.44s; }
.proof-hero.animated .proof-bars span:nth-child(6) { transition-delay: 0.50s; }
.proof-hero.animated .proof-bars span:nth-child(7) { transition-delay: 0.56s; }
.proof-hero.animated .proof-bars span:nth-child(8) { transition-delay: 0.62s; }

/* --- satellite metric cards (asymmetric, editorial positions) --- */
.proof-sat {
    position: absolute;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 16px;
    background: var(--gradient-card);
    border: 1px solid var(--glass-border);
    border-radius: 16px;
    box-shadow: var(--shadow-lg);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    transition: transform var(--transition-normal), border-color var(--transition-normal),
                box-shadow var(--transition-normal);
}

.proof-sat:hover {
    transform: translateY(-4px);
    border-color: rgba(139, 107, 240, 0.5);
    box-shadow: var(--shadow-xl), 0 0 24px rgba(109, 74, 230, 0.18);
}

/* asymmetric placement — not clock positions */
.sat-years  { top: 8%;  left: 0; }
.sat-placed { top: 32%; right: 0; }
.sat-reach  { bottom: 2%; left: 6%; }

.proof-sat-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: var(--gradient-primary);
    flex-shrink: 0;
}

.proof-sat-icon i {
    font-size: 0.95rem;
    color: var(--white);
}

.proof-sat-body { display: flex; flex-direction: column; gap: 1px; }

.proof-sat-figure {
    display: flex;
    align-items: baseline;
    line-height: 1;
}

.proof-sat-figure .proof-num { font-size: 1.5rem; }
.proof-sat-figure .proof-unit { font-size: 1rem; }

.proof-sat-figure--text {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 1.2rem;
    background: linear-gradient(120deg, #8B6BF0 0%, #8B6BF0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.proof-sat-label {
    font-family: var(--font-secondary);
    font-size: 0.68rem;
    font-weight: 500;
    letter-spacing: 0.3px;
    color: var(--slate-400);
}

/* satellite scroll-reveal stagger (overrides .animate-on-scroll delay) */
.proof-sat.animate-on-scroll { transition-delay: 0.12s; }
.sat-years.animate-on-scroll  { transition-delay: 0.18s; }
.sat-placed.animate-on-scroll { transition-delay: 0.28s; }
.sat-reach.animate-on-scroll  { transition-delay: 0.38s; }

/* --- responsive: stack vertically below the prose on small screens --- */
@media (max-width: 992px) {
    .proof-stack {
        max-width: 380px;
        aspect-ratio: 1 / 1.15;
    }
}

@media (max-width: 600px) {
    .proof-stack {
        max-width: 100%;
        aspect-ratio: auto;
        display: flex;
        flex-direction: column;
        gap: 14px;
        padding: 8px 0;
    }

    .proof-glow, .proof-ring, .proof-connectors { display: none; }

    .proof-hero {
        position: static;
        transform: none;
        width: 100%;
        min-width: 0;
    }

    .proof-hero.animate-on-scroll { transform: translateY(24px); }
    .proof-hero.animate-on-scroll.animated { transform: translateY(0); }

    .proof-sat {
        position: static;
        width: 100%;
    }

    .proof-hero-figure .proof-num { font-size: 2.9rem; }
}

/* respect reduced motion — show everything, kill ambient + bar motion */
@media (prefers-reduced-motion: reduce) {
    .proof-ring,
    .proof-pulse,
    .proof-num { animation: none !important; }

    .proof-bars span {
        transform: scaleY(1) !important;
        transition: none !important;
    }

    .proof-hero.animate-on-scroll,
    .proof-hero.animate-on-scroll.animated {
        transform: translate(-50%, -50%) !important;
    }
}

/* =====================================================================
   FROSTED-GLASS DESIGN SYSTEM — site-wide consistency pass (2026-06-20)
   Every chrome element now speaks the same "smoked glass" language as the
   hero buttons: translucent fill, thin lit border, soft top sheen, real
   backdrop blur, buttery ease-out-expo motion. Purple = accent (theme-safe
   on both dark + light); neutral surfaces use theme-adaptive vars so they
   survive the light theme. Appended last so it wins by source order.
   ===================================================================== */
:root { --glass-ease: cubic-bezier(0.16, 1, 0.3, 1); }

/* 1. Nav "Contact Us" CTA → frosted purple glass (matches hero primary) */
.nav-link.nav-cta {
    background: linear-gradient(180deg, rgba(139, 107, 240, 0.92) 0%, rgba(109, 74, 230, 0.88) 100%);
    border: 1px solid rgba(167, 139, 250, 0.55);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.34), 0 6px 22px rgba(109, 74, 230, 0.34);
    -webkit-backdrop-filter: blur(12px) saturate(1.3);
    backdrop-filter: blur(12px) saturate(1.3);
    transition: transform 0.45s var(--glass-ease), box-shadow 0.45s var(--glass-ease),
                background 0.45s var(--glass-ease);
}
.nav-link.nav-cta:hover {
    transform: translateY(-2px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45), 0 12px 34px rgba(109, 74, 230, 0.50);
}
.nav-link.nav-cta i { transition: transform 0.45s var(--glass-ease); }
.nav-link.nav-cta:hover i { transform: translateX(3px); }

/* 2. Theme toggle → glassy track + glowing thumb */
.theme-toggle .toggle-track {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}
.theme-toggle .toggle-thumb {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35), 0 0 10px rgba(139, 107, 240, 0.55);
}

/* 3. Section eyebrow pills ("WHO WE ARE" etc.) → glass pill */
.section-badge {
    background: rgba(109, 74, 230, 0.12);
    border: 1px solid rgba(139, 107, 240, 0.30);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10);
    -webkit-backdrop-filter: blur(12px) saturate(1.3);
    backdrop-filter: blur(12px) saturate(1.3);
}

/* 4. Testimonial avatar → purple glass + soft glow ring */
.cine-quote-avatar {
    border: 1px solid rgba(167, 139, 250, 0.55);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.40),
                0 0 0 4px rgba(109, 74, 230, 0.12),
                0 6px 20px rgba(109, 74, 230, 0.40);
}

/* 5. Social circles (footer + contact page) → glass, purple-glass on hover */
.social-link, .footer-socials a {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10);
    -webkit-backdrop-filter: blur(12px) saturate(1.3);
    backdrop-filter: blur(12px) saturate(1.3);
    transition: transform 0.45s var(--glass-ease), background 0.45s var(--glass-ease),
                border-color 0.45s var(--glass-ease), box-shadow 0.45s var(--glass-ease),
                color 0.45s var(--glass-ease);
}
.social-link:hover, .footer-socials a:hover {
    transform: translateY(-4px);
    background: linear-gradient(180deg, rgba(139, 107, 240, 0.92) 0%, rgba(109, 74, 230, 0.88) 100%);
    border-color: rgba(167, 139, 250, 0.55);
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.40), 0 12px 30px rgba(109, 74, 230, 0.45);
}

/* 6. Footer contact icons → small purple glass chips */
.footer-contact i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-top: 0;
    border-radius: 10px;
    background: rgba(109, 74, 230, 0.12);
    border: 1px solid rgba(139, 107, 240, 0.28);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    color: var(--primary-blue-light);
    font-size: 0.9rem;
    flex-shrink: 0;
    transition: transform 0.45s var(--glass-ease), background 0.45s var(--glass-ease),
                border-color 0.45s var(--glass-ease);
}
.footer-contact li:hover i {
    transform: translateY(-2px);
    background: rgba(109, 74, 230, 0.20);
    border-color: rgba(139, 107, 240, 0.5);
}

/* 7. Back-to-top FAB → frosted purple glass (keeps its show/hide transform) */
.back-to-top {
    background: linear-gradient(180deg, rgba(139, 107, 240, 0.90) 0%, rgba(109, 74, 230, 0.85) 100%);
    border: 1px solid rgba(167, 139, 250, 0.5);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 8px 26px rgba(109, 74, 230, 0.40);
    -webkit-backdrop-filter: blur(14px) saturate(1.3);
    backdrop-filter: blur(14px) saturate(1.3);
}
.back-to-top:hover {
    transform: translateY(-5px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45), 0 16px 40px rgba(109, 74, 230, 0.55);
}

/* 8 + 9. About stat bar + floating proof cards (already glass) → add top sheen
   + a buttery hover so they match the new motion language. */
.stat-bar-section .founder-meta {
    box-shadow: var(--shadow-xl), inset 0 1px 0 rgba(255, 255, 255, 0.10);
}
.proof-hero {
    box-shadow: var(--shadow-xl), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}
.proof-sat {
    transition: transform 0.5s var(--glass-ease), border-color 0.5s var(--glass-ease),
                box-shadow 0.5s var(--glass-ease);
}
.proof-sat:hover {
    transform: translateY(-4px);
    border-color: rgba(139, 107, 240, 0.55);
    box-shadow: var(--shadow-xl), 0 0 26px rgba(109, 74, 230, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}
.proof-sat-icon {
    border: 1px solid rgba(167, 139, 250, 0.40);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.30);
}

/* 10. Full .btn family → one glass language everywhere (CTA bands, inner pages) */
/* Purple primaries → frosted purple glass + circular arrow badge (match hero) */
.btn-primary, .btn-hero-primary {
    background: linear-gradient(180deg, rgba(139, 107, 240, 0.92) 0%, rgba(109, 74, 230, 0.88) 100%);
    color: #fff;
    border: 1px solid rgba(167, 139, 250, 0.55);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.34), 0 8px 28px rgba(109, 74, 230, 0.36);
    -webkit-backdrop-filter: blur(12px) saturate(1.3);
    backdrop-filter: blur(12px) saturate(1.3);
    transition: transform 0.45s var(--glass-ease), box-shadow 0.45s var(--glass-ease),
                background 0.45s var(--glass-ease);
}
.btn-primary:hover, .btn-hero-primary:hover {
    transform: translateY(-3px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45), 0 16px 44px rgba(109, 74, 230, 0.55);
}
/* Bright/white primaries (purple bands + dark) → frosted bright glass + dark arrow badge */
.btn-white, .btn-light {
    background: rgba(255, 255, 255, 0.96);
    color: var(--navy-800);
    border: 1px solid rgba(255, 255, 255, 0.70);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.90), 0 8px 26px rgba(0, 0, 0, 0.20);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    transition: transform 0.45s var(--glass-ease), box-shadow 0.45s var(--glass-ease),
                background 0.45s var(--glass-ease);
}
.btn-white:hover, .btn-light:hover {
    transform: translateY(-3px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.90), 0 16px 40px rgba(0, 0, 0, 0.30);
}
/* Ghost on the purple CTA band → frosted white (band is purple in both themes) */
.btn-outline-white {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.32);
    color: var(--white);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
    -webkit-backdrop-filter: blur(12px) saturate(1.2);
    backdrop-filter: blur(12px) saturate(1.2);
    transition: transform 0.45s var(--glass-ease), background 0.45s var(--glass-ease),
                border-color 0.45s var(--glass-ease);
}
.btn-outline-white:hover {
    transform: translateY(-3px);
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.60);
}
/* Theme-adaptive secondaries (already glass) → just add sheen + buttery ease */
.btn-secondary, .btn-hero-secondary {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
    transition: transform 0.45s var(--glass-ease), background 0.45s var(--glass-ease),
                border-color 0.45s var(--glass-ease);
}
/* Circular arrow badge inside the primaries */
.btn-primary i, .btn-hero-primary i {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; margin: -3px -10px -3px 0; border-radius: 50%;
    background: rgba(255, 255, 255, 0.18); font-size: 0.74rem;
    transition: background 0.45s var(--glass-ease), transform 0.45s var(--glass-ease);
}
.btn-primary:hover i, .btn-hero-primary:hover i { background: rgba(255, 255, 255, 0.32); transform: translateX(3px); }
.btn-white i, .btn-light i {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; margin: -3px -10px -3px 0; border-radius: 50%;
    background: rgba(16, 18, 34, 0.10); font-size: 0.74rem;
    transition: background 0.45s var(--glass-ease), transform 0.45s var(--glass-ease);
}
.btn-white:hover i, .btn-light:hover i { background: rgba(16, 18, 34, 0.18); transform: translateX(3px); }

/* 11. FAQ accordion cards → glass + soft purple glow when open */
.accordion-item {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    transition: border-color 0.4s var(--glass-ease), box-shadow 0.4s var(--glass-ease);
}
.accordion-item:hover { border-color: rgba(139, 107, 240, 0.40); }
.accordion-item[open] {
    border-color: rgba(139, 107, 240, 0.55);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 0 28px rgba(109, 74, 230, 0.14);
}

/* ===================================================================
   Dual-tone .about-ico icon system (sizing + fill/stroke). Restored —
   a to-EOF replace wiped it; without it every .about-ico SVG renders
   full-size (the 615px icon that blew up the contact cards).
   =================================================================== */
.about-ico {
    width: 1em;
    height: 1em;
    display: block;
    color: var(--cine-node-lit);
    flex-shrink: 0;
    overflow: visible;
}
.about-ico .ico-line {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.about-ico .ico-fill {
    fill: currentColor;
    opacity: 0.12;
    stroke: none;
}
.about-badge .about-ico { width: 1.05rem; height: 1.05rem; }
.cred-item .about-ico  { width: 1.15rem; height: 1.15rem; }
.contact-intent-ico { display: inline-flex; align-items: center; }
.contact-intent-ico .about-ico { width: 1.15rem; height: 1.15rem; }
.proof-sat-icon .about-ico,
.mv-icon .about-ico,
.value-icon .about-ico,
.advantage-icon .about-ico { color: #ffffff; }
.proof-sat-icon .about-ico .ico-fill,
.mv-icon .about-ico .ico-fill,
.value-icon .about-ico .ico-fill,
.advantage-icon .about-ico .ico-fill { opacity: 0.28; }

/* ===================================================================
   CONTACT VIDEO HERO  (.cta-hero*) — cinematic inset video hero.
   Restored (recovered from session transcript after an EOF-replace wiped
   it). Heading = --font-display (General Sans); ARK purple; letters rise +
   fade (no overflow clip — the "Let's talk" cut-off fix).
   =================================================================== */
.cta-hero { padding: 88px 1rem 1rem; background: #000; }
@media (min-width: 768px) { .cta-hero { padding: 96px 1.5rem 1.5rem; } }
.cta-hero-inner { position: relative; width: 100%; min-height: 84vh; border-radius: 1.25rem; overflow: hidden; isolation: isolate; }
@media (min-width: 768px) { .cta-hero-inner { border-radius: 2rem; min-height: 86vh; } }
.cta-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }

/* Houston skyline — watercolor cursor reveal (sketch always visible, glowing
   color hidden under a mask that follows the pointer; ambient auto-sweep on
   touch devices via .is-ambient, driven by js/main.js initContactSkyline). */
/* Contact hero = the site's own dark canvas — a real, detailed watercolor Houston
   illustration (transparent-background art, true ink/wash colors kept intact) sits
   dim and desaturated at rest; its real colors bloom in under the cursor, workless-style. */
.cta-skyline { position: absolute; inset: 0; z-index: 0; background: radial-gradient(130% 100% at 50% 100%, #0E0A18 0%, #08060E 60%, #050409 100%); overflow: hidden; }
/* Both layers show the SAME dark-native night illustration (glowing white-ink Houston on
   black). Rest layer is DIMMED to a quiet ghost; colour layer glows at full brightness,
   revealed only inside the cursor mask — the city lights up where you move. */
.cta-skyline-sketch, .cta-skyline-color { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 74%; }
.cta-skyline-sketch { filter: brightness(0.14) saturate(0.4); opacity: 1; }
/* Reveal = TWO unioned soft spotlights over the colour layer:
   (1) a gentle ALWAYS-ON bloom over the central landmark cluster (a focal point),
   (2) a soft circle following the cursor — "paint the city in" as you move. */
/* Single soft spotlight that follows the cursor — the ONLY place the lit city shows.
   No always-on bloom: at rest the hero is near-black; the city appears only where you move. */
.cta-skyline-mask { position: absolute; inset: 0;
  -webkit-mask-image: radial-gradient(circle 150px at var(--mx, 50%) var(--my, 60%), #000 0%, #000 28%, transparent 100%);
  mask-image: radial-gradient(circle 150px at var(--mx, 50%) var(--my, 60%), #000 0%, #000 28%, transparent 100%);
  transition: -webkit-mask-position 0.05s linear, opacity 0.45s ease; }
.cta-skyline-color { filter: brightness(1.15) saturate(1.15); opacity: 1; }
.cta-skyline-mask.is-ambient { transition: none; }
/* Scene caption over the lit towers — small, on-brand, gives the skyline a subject. */
/* Location stamp — anchored top-left to the hero's content margin (matching .cta-hero-content
   padding) so it aligns with the headline's left edge and reads as one intentional inline
   caption, not a floating corner column. */
.cta-city-marker { position: absolute; z-index: 3; top: 1.5rem; left: 1.5rem; display: flex; flex-direction: row; align-items: center; gap: 0.6rem; pointer-events: none; opacity: 0; transform: translateY(-8px); animation: cta-city-in 1s cubic-bezier(0.16,1,0.3,1) 0.9s forwards; }
@media (min-width: 1024px) { .cta-city-marker { top: 3rem; left: 3.5rem; } }
.cta-city-dot { width: 7px; height: 7px; border-radius: 50%; background: #8B6BF0; box-shadow: 0 0 12px rgba(139,107,240,0.8); flex-shrink: 0; }
.cta-city-label { font-family: var(--font-display); font-weight: 600; font-size: 0.82rem; letter-spacing: 0.26em; text-transform: uppercase; color: rgba(214,203,255,0.92); }
.cta-city-divider { width: 22px; height: 1px; background: rgba(201,187,247,0.28); flex-shrink: 0; }
.cta-city-sub { font-family: var(--font-secondary); font-size: 0.66rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(201,187,247,0.5); }
@keyframes cta-city-in { to { opacity: 1; transform: translateY(0); } }
@media (max-width: 640px) { .cta-city-label { font-size: 0.7rem; letter-spacing: 0.2em; } .cta-city-divider { width: 16px; } .cta-city-sub { font-size: 0.6rem; } }
@media (prefers-reduced-motion: reduce) { .cta-city-marker { animation: none; opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .cta-skyline-mask { -webkit-mask-image: none; mask-image: none; } .cta-skyline-color { opacity: 1; } }
.cta-hero-noise { position: absolute; inset: 0; z-index: 1; opacity: 0.6; mix-blend-mode: overlay; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
/* Dark vignette so the lavender headline + lower-right text stay crisp over the illustration. */
.cta-hero-gradient { position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(to bottom, rgba(0,0,0,0.30) 0%, rgba(0,0,0,0) 45%, rgba(0,0,0,0.62) 100%); }
.cta-hero-content { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: end; padding: 1.5rem; }
@media (min-width: 1024px) { .cta-hero-content { grid-template-columns: 8fr 4fr; padding: 3rem 3.5rem; gap: 2rem; } }
/* the grid is 2 tracks (8fr 4fr) — placing by span-12/span-8 made the browser invent
   phantom empty tracks + gaps, stranding the right block ~130px short of the edge.
   Headline owns a full-width row (stays one line); the copy block sits below-right. */
.cta-hero-heading-wrap { grid-column: 1 / -1; min-width: 0; }
.cta-hero-heading { position: relative; display: block; margin: 0; font-family: var(--font-display); font-size: clamp(3.5rem, 20vw, 14rem); font-weight: 600; line-height: 0.85; letter-spacing: -0.06em; color: #C9BBF7; text-shadow: 0 2px 40px rgba(0, 0, 0, 0.35); }
@media (min-width: 1024px) { .cta-hero-heading { font-size: clamp(5rem, 18vw, 16rem); } }
.cta-pull-word { display: inline-block; }
.cta-pull-letter { display: inline-block; transform: translateY(0.4em); opacity: 0; transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.6s ease; }
.cta-pull-letter.in { transform: translateY(0); opacity: 1; }
.cta-asterisk-host { position: relative; }
.cta-asterisk { position: absolute; top: 0.05em; right: -0.42em; font-size: 0.36em; color: #8B6BF0; }
.cta-hero-right { grid-column: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; }
@media (min-width: 1024px) { .cta-hero-right { grid-column: 2; align-items: flex-end; text-align: right; padding-bottom: 0.6rem; }
  /* keep the paragraph a comfortable measure but anchor the whole block to the right edge
     so it reads as intentional, not floating with a dead gap beside it */
  .cta-hero-right .cta-hero-desc { max-width: 30ch; }
}
/* Small uppercase eyebrow anchors the paragraph so it reads as an intentional block,
   with a short purple accent rule before it. */
.cta-hero-eyebrow { display: inline-flex; align-items: center; gap: 0.55rem; font-family: var(--font-secondary); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(201,187,247,0.6); opacity: 0; transform: translateY(20px); animation: cta-city-in 1s cubic-bezier(0.16,1,0.3,1) 0.5s forwards; }
.cta-hero-eyebrow::before { content: ""; width: 26px; height: 1px; background: linear-gradient(to right, transparent, #8B6BF0); }
@media (prefers-reduced-motion: reduce) { .cta-hero-eyebrow { animation: none; opacity: 1; transform: none; } }
.cta-hero-desc { margin: 0; max-width: 32ch; font-family: var(--font-secondary); font-size: 1rem; line-height: 1.55; color: rgba(214, 203, 255, 0.85); opacity: 0; transform: translateY(20px); transition: opacity 1s ease 0.5s, transform 1s cubic-bezier(0.16, 1, 0.3, 1) 0.5s; }
.cta-hero-desc strong { font-weight: 600; color: #fff; }
.cta-hero-desc.in { opacity: 1; transform: translateY(0); }
.cta-hero-btn { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.5rem 0.5rem 1.4rem; background: #8B6BF0; color: #000; font-family: var(--font-secondary); font-weight: 600; font-size: 0.95rem; border-radius: 999px; text-decoration: none; opacity: 0; transform: translateY(20px); transition: opacity 1s ease 0.7s, transform 1s cubic-bezier(0.16, 1, 0.3, 1) 0.7s, background 0.25s ease; }
.cta-hero-btn.in { opacity: 1; transform: translateY(0); }
.cta-hero-btn:hover { background: #9B7DFF; }
.cta-hero-circle { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: #000; border-radius: 999px; transition: transform 0.3s ease; }
.cta-hero-btn:hover .cta-hero-circle { transform: scale(1.1); }
@media (min-width: 768px) { .cta-hero-circle { width: 40px; height: 40px; } }
.cta-hero-circle svg { width: 18px; height: 18px; stroke: #fff; }
/* Hero stays the dark watercolor-city canvas in BOTH site themes. DARK mode keeps
   the lavender headline; LIGHT mode recolors it to a light mint/white so ZERO purple
   remains in the light theme while staying legible+premium on the dark skyline.
   (The surrounding hero accents are already green — the mint headline matches them.) */
[data-theme="light"] .cta-hero { background: #000; }
[data-theme="light"] .cta-hero-heading { color: #EAF6EE; }                  /* light mint, ~14:1 on #000 */
[data-theme="light"] .cta-hero-desc { color: rgba(212, 238, 220, 0.78); }   /* soft mint body on dark */
/* Fern green in light mode (was #8B6BF0 purple). Button = bright fill (white/ink text
   ok at AA-large); asterisk is a small accent glyph → deep green #24713D for AA-body. */
[data-theme="light"] .cta-hero-btn { background: var(--gradient-primary); color: #fff; }
[data-theme="light"] .cta-asterisk { color: var(--l-accent); }
@media (prefers-reduced-motion: reduce) { .cta-pull-letter, .cta-hero-desc, .cta-hero-btn { transition: none !important; transform: none !important; opacity: 1 !important; } }

/* =====================================================================
   NATIONWIDE REACH — the complete dotted globe as its own moment.
   Copy on the left, whole globe centered on the right (contained, not bled).
   ===================================================================== */
.reach-section {
    position: relative;
    z-index: 2;
    overflow: hidden;
    background: var(--cine-bg);
    padding: clamp(70px, 11vh, 130px) 0;
}
.reach-ghost {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--font-display);
    font-size: clamp(14rem, 28vw, 22rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.06em;
    color: rgba(109,74,230,0.045);
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}
.reach-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 40px;
}
.reach-copy { max-width: 520px; }
.reach-copy .cine-eyebrow { margin-bottom: 22px; }
.reach-title {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: clamp(2.2rem, 4.4vw, 3.5rem);
    line-height: 1.02;
    letter-spacing: -0.03em;
    color: var(--cine-headline-soft, #eef1f8);
    margin: 0 0 22px;
}
.reach-title .cine-accent {
    background: var(--gradient-primary);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; color: transparent;
    filter: drop-shadow(0 0 22px rgba(139, 107, 240, 0.40));
}
.reach-sub {
    font-size: clamp(1rem, 1.4vw, 1.15rem);
    line-height: 1.65;
    color: var(--slate-300, rgba(226,232,240,0.74));
    margin: 0 0 30px;
}
.reach-stat { display: flex; align-items: baseline; gap: 14px; }
.reach-num {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2.4rem, 4vw, 3.2rem);
    line-height: 1;
    background: var(--gradient-primary);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; color: transparent;
    filter: drop-shadow(0 0 18px rgba(139, 107, 240, 0.30));
}
.reach-lbl {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--slate-400, rgba(148,163,184,0.85));
    max-width: 190px;
    line-height: 1.35;
}

/* the globe stage — whole sphere, centered, soft halo behind it */
.reach-globe-wrap {
    position: relative;
    justify-self: center;
    width: min(46vw, 520px);
    aspect-ratio: 1 / 1;
}
.reach-globe-ring {
    position: absolute; inset: 8%;
    border-radius: 50%;
    background: radial-gradient(circle at center, rgba(109, 74, 230, 0.14) 0%, transparent 58%);
    filter: blur(28px);
    pointer-events: none;
}
.reach-globe {
    position: relative;
    width: 100%; height: 100%;
    opacity: 0;
    transition: opacity 1.2s ease;
}
.reach-globe.is-ready { opacity: 1; }
/* light mode shows the SAME globe in fern-on-paper (palette lives in reach-globe.js) —
   the old opacity:0 hide made the fixed hero globe bleed through as a "different globe" */
[data-theme="light"] .reach-globe-ring { opacity: 0.4; }

@media (max-width: 860px) {
    .reach-grid { grid-template-columns: 1fr; gap: 30px; justify-items: center; text-align: center; }
    .reach-copy { max-width: 560px; }
    .reach-copy .cine-eyebrow, .reach-stat { justify-content: center; }
    .reach-stat { flex-direction: column; align-items: center; gap: 6px; text-align: center; }
    .reach-lbl { max-width: none; }
    .reach-globe-wrap { width: min(80vw, 420px); }
}

/* =====================================================================
   ABOUT HERO — heroic "command center" treatment (headline + glass HUD).
   Scoped to .about-ambient-page so nothing else is affected.
   ===================================================================== */
.about-ambient-page .about-hero {
    position: relative;
    z-index: 2;
    padding: clamp(120px, 16vh, 190px) 0 70px;
    min-height: 100vh;
    display: flex;
    align-items: center;
}
/* the flex hero was shrink-wrapping .container to its text; force full width
   so all hero content shares the page's real left edge (aligns with the HUD) */
.about-ambient-page .about-hero .container { width: 100%; }
.about-ambient-page .about-hero-inner {
    max-width: 640px;
}
.about-hero .cine-eyebrow { margin-bottom: 26px; }

.about-hero-title {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: clamp(3rem, 7.2vw, 5.6rem);
    line-height: 0.97;
    letter-spacing: -0.035em;
    margin: 0 0 28px;
}
/* About hero headline is set in CAPS (Rakesh's choice — keep this committed so
   the Antigravity editor can't silently revert it) */
.about-ambient-page .about-hero-title { text-transform: uppercase; }
.about-hero-line {
    display: block;
    background: linear-gradient(180deg, #ffffff 0%, #e2e6ef 28%, #9aa3ba 74%, #7d869f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.about-hero-soft {
    font-weight: 400;
    font-size: 0.6em;
    letter-spacing: 0.15em;
    margin-bottom: -0.1em;
    opacity: 0.85;
}
[data-theme="light"] .about-hero-line {
    background: none;
    -webkit-text-fill-color: var(--cine-headline-soft);
    color: var(--cine-headline-soft);
}
/* the brand word keeps the purple gradient + glow (overrides the chrome) */
.about-hero-line .cine-accent {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    filter: drop-shadow(0 0 26px rgba(139, 107, 240, 0.42));
}
.about-hero-sub {
    max-width: 600px;
    font-size: clamp(1.05rem, 1.5vw, 1.26rem);
    line-height: 1.62;
    color: var(--slate-300, rgba(226,232,240,0.78));
    margin: 0;
}

/* heroic hero typography now applies to every .about-hero page. Non-About
   pages get a centered, contained hero column (no globe layout). */
.svc-ambient-page .about-hero,
.ind-ambient-page .about-hero { padding: clamp(108px, 15vh, 168px) 0 44px; }
.svc-ambient-page .about-hero-inner,
.ind-ambient-page .about-hero-inner { max-width: 760px; margin: 0 auto; text-align: center; }
.ind-ambient-page .about-hero-sub { margin-left: auto; margin-right: auto; }
/* Services + About heroes match the Industries hero: full-height, vertically centered */
.svc-ambient-page .about-hero { min-height: 100vh; display: flex; align-items: center; }
.svc-ambient-page .about-hero .container { width: 100%; }
.svc-ambient-page .about-hero-sub { margin-left: auto; margin-right: auto; }


/* entrance: rise the hero pieces in on load (reduced-motion safe) */
@keyframes aboutHeroRise {
    from { opacity: 0; transform: translateY(26px); }
    to   { opacity: 1; transform: translateY(0); }
}
.about-ambient-page .about-hero-inner > * {
    opacity: 0;
    animation: aboutHeroRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.about-ambient-page .about-hero .cine-eyebrow { animation-delay: 0.05s; }
.about-ambient-page .about-hero-title        { animation-delay: 0.18s; }
.about-ambient-page .about-hero-sub          { animation-delay: 0.34s; }

/* =========== the credential HUD (stat bar reframed as glass) =========== */
.about-ambient-page .about-stat-section {
    position: relative;
    z-index: 2;
    padding: 0 0 64px;
    margin-top: -34px;          /* lift the panel up onto the hero/map seam */
}
.about-ambient-page .about-stat-hud {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-left: 0;          /* left-align the HUD with the headline's left edge */
    margin-right: auto;
    max-width: 940px;
    padding: 30px 14px;
    border: 1px solid rgba(167, 139, 250, 0.22);
    border-radius: 22px;
    background:
        linear-gradient(180deg, rgba(28, 22, 48, 0.66), rgba(14, 12, 26, 0.58));
    -webkit-backdrop-filter: blur(18px) saturate(1.25);
    backdrop-filter: blur(18px) saturate(1.25);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.10),
        0 30px 70px -28px rgba(5, 4, 14, 0.85),
        0 0 60px -20px rgba(109, 74, 230, 0.40);
    overflow: hidden;
    /* reset the old generic .founder-meta look */
    flex-wrap: nowrap;
    border-top: 1px solid rgba(167, 139, 250, 0.22);
    animation: aboutHeroRise 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.46s both;
}
/* top sheen hairline */
.about-ambient-page .about-stat-hud::before {
    content: "";
    position: absolute;
    top: 0; left: 12%; right: 12%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(180,150,255,0.7), transparent);
}
.about-ambient-page .about-stat {
    position: relative;
    text-align: center;
    padding: 6px 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
}
/* divider rails between cells */
.about-ambient-page .about-stat + .about-stat::before {
    content: "";
    position: absolute;
    left: 0; top: 12%; bottom: 12%;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(167,139,250,0.30), transparent);
}
.about-ambient-page .about-stat .num {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2.1rem, 3.6vw, 3.1rem);
    line-height: 1;
    letter-spacing: -0.02em;
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 0 18px rgba(139, 107, 240, 0.30));
}
.about-ambient-page .about-stat .lbl {
    font-family: var(--font-secondary, 'Inter', sans-serif);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--slate-400, rgba(148,163,184,0.85));
    line-height: 1.3;
}

@media (max-width: 900px) {
    .about-ambient-page .about-hero { min-height: 70vh; padding-top: 110px; }
    .about-ambient-page .about-stat-hud { grid-template-columns: repeat(2, 1fr); gap: 22px 0; padding: 26px 10px; }
    .about-ambient-page .about-stat + .about-stat::before { display: none; }
    .about-ambient-page .about-stat:nth-child(odd)::after {
        content: ""; position: absolute; right: 0; top: 14%; bottom: 14%; width: 1px;
        background: linear-gradient(180deg, transparent, rgba(167,139,250,0.25), transparent);
    }
}

@media (prefers-reduced-motion: reduce) {
    .about-ambient-page .about-hero-inner > *,
    .about-ambient-page .about-stat-hud { animation: none; opacity: 1; transform: none; }
}

/* Industries hero: full-height, contains the Industry Universe */
.ind-ambient-page { background: var(--cine-bg); }
.ind-ambient-page .about-hero { position: relative; overflow: hidden; min-height: 100vh; display: flex; align-items: center; }
.ind-ambient-page .about-hero .container { width: 100%; position: relative; z-index: 2; }

/* =====================================================================
   INDUSTRIES PAGE — "Depth Rings" ambient (2026-06-22, v3)
   Radius = how deep our expertise goes. ARK is the centre (the headline);
   inner ring = Healthcare/DME (deepest), mid = adjacent, outer = breadth.
   Rings rotate at different speeds; icons stay upright. NO centre dot.
   ===================================================================== */
.ind-ambient { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden;
    /* fade in at the top AND dissolve out toward the bottom so orbit tiles melt
       into the next section instead of getting hard-clipped at the seam */
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 15%, #000 64%, transparent 96%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 15%, #000 64%, transparent 96%); }
/* dark vignette behind the centred headline for readability (a shadow, NOT a glow) */
.ind-scrim { position: absolute; top: 50%; left: 50%; width: 900px; height: 540px; transform: translate(-50%, -50%);
    background: radial-gradient(ellipse at center, var(--cine-bg) 0%, rgba(10, 9, 18, 0.62) 40%, transparent 72%); z-index: 1; }
/* concentric depth rings */
.ind-ring { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: 50%; border: 1px solid rgba(139, 107, 240, 0.11); }
.ind-ring.r1 { width: 680px; height: 680px; }
.ind-ring.r2 { width: 960px; height: 960px; }
.ind-ring.r3 { width: 1240px; height: 1240px; }
/* orbiting groups — each ring spins at its own speed/direction (Keplerian calm) */
.ind-orbiters { position: absolute; top: 50%; left: 50%; width: 0; height: 0; z-index: 2; animation: indSpin var(--dur) linear infinite var(--dir); }
.ind-orbiters.o1 { --dur: 48s;  --dir: normal;  --dirRev: reverse; --r: 340px; }
.ind-orbiters.o2 { --dur: 72s;  --dir: reverse; --dirRev: normal;  --r: 480px; }
.ind-orbiters.o3 { --dur: 104s; --dir: normal;  --dirRev: reverse; --r: 620px; }
@keyframes indSpin { to { transform: rotate(360deg); } }
/* place each node on its ring; the tile counter-rotates to stay upright */
.ind-node { position: absolute; top: 0; left: 0; transform: rotate(var(--a)) translateY(calc(var(--r) * -1)) rotate(calc(var(--a) * -1)); }
.ind-node-tile { position: absolute; top: 0; left: 0; width: 48px; height: 48px; margin: -24px 0 0 -24px;
    display: flex; align-items: center; justify-content: center; border-radius: 14px;
    background: rgba(109, 74, 230, 0.12); border: 1px solid rgba(139, 107, 240, 0.30);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 0 20px rgba(109, 74, 230, 0.28);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: var(--cine-node-lit); font-size: 1.1rem;
    animation: indSpin var(--dur) linear infinite var(--dirRev); }
/* the deepest (Healthcare/DME) — emphasised so the inner ring reads as "where we go deepest" */
.ind-node-tile.deep { border-color: rgba(167, 139, 250, 0.55); background: rgba(109, 74, 230, 0.20);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.20), 0 0 30px rgba(139, 107, 240, 0.5); color: #cdbcff; }
@media (prefers-reduced-motion: reduce) { .ind-orbiters, .ind-node-tile { animation: none; } }

/* ── THE DESCENT — hero dissolves into the dossier below (one depth metaphor) ── */
.ind-ambient-page .about-hero { padding-bottom: 132px; }   /* keep orbiters off the seam */
.ind-seam {
    position: absolute; left: 0; right: 0; bottom: 0; height: 220px; z-index: 3; pointer-events: none;
    background: linear-gradient(180deg, transparent 0%, rgba(10,9,18,.45) 55%, var(--cine-bg) 100%);
}
.ind-seam-arc { position: absolute; left: 0; bottom: 0; width: 100%; height: 220px; opacity: .9; }
/* a quiet scroll cue riding the seam: a dot that drifts downward = "go deeper" */
.ind-seam-cue {
    position: absolute; left: 50%; bottom: 30px; transform: translateX(-50%);
    width: 22px; height: 36px; border-radius: 12px; border: 1px solid rgba(139,107,240,.35);
}
.ind-seam-cue span {
    position: absolute; left: 50%; top: 7px; width: 3px; height: 7px; border-radius: 2px;
    background: var(--primary-blue-light); transform: translateX(-50%);
    animation: indSeamDrift 1.9s ease-in-out infinite;
}
@keyframes indSeamDrift { 0%,100% { opacity: 0; transform: translate(-50%, 0); } 45% { opacity: 1; } 80% { opacity: 0; transform: translate(-50%, 12px); } }
@media (prefers-reduced-motion: reduce) { .ind-seam-cue span { animation: none; opacity: .8; } }

/* the healthcare panels receive the descent: a touch more top room under the seam */
.hc-panels { padding-top: clamp(56px, 7vh, 92px); }

/* =====================================================================
   SERVICES PAGE — ambient circuit-and-tiles background (2026-06-20)
   A fixed, full-viewport layer behind the WHOLE Services page: faint
   circuit wiring + glowing nodes + traveling data-pulses + drifting
   glass icon tiles (the intro/preloader's identity, made persistent).
   Radial centre-fade keeps headlines crisp. Pure SVG/CSS — no JS.
   Everything scoped to .svc-ambient-page; the homepage preloader
   (.tech-icon / .circuit-path) and all other pages are untouched.
   ===================================================================== */
.svc-ambient-page { background: var(--cine-bg); }

.svc-ambient {
    position: fixed;
    inset: 0;
    z-index: -1;                 /* behind all content, above the body base colour */
    pointer-events: none;
    /* subtle ambient: present at the edges, fades out behind the centre text */
    -webkit-mask-image: radial-gradient(78% 76% at 50% 40%, transparent 0%, #000 72%);
    mask-image: radial-gradient(78% 76% at 50% 40%, transparent 0%, #000 72%);
}
/* let the fixed layer show through the hero (other sections are already transparent) */
.svc-ambient-page .about-hero { background: transparent; }

/* --- circuit wiring + nodes + pulses --- */
.svc-ambient .svc-circuit { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0.55; }
.svc-ambient .svc-line {
    fill: none;
    stroke: var(--cine-line);
    stroke-width: 1;
    stroke-dasharray: 1400;
    stroke-dashoffset: 1400;
    animation: svcDraw 2.4s ease forwards;
}
.svc-ambient .svc-line.v { animation-delay: 0.4s; }
.svc-ambient .svc-node {
    fill: var(--primary-blue);
    opacity: 0.28;
    animation: svcNodeGlow 2.6s ease-in-out infinite;
}
.svc-ambient .svc-node:nth-child(odd) { animation-delay: 0.6s; }
.svc-ambient .svc-node:nth-child(3n)  { animation-delay: 1.1s; }
.svc-ambient .svc-pulse {
    fill: var(--primary-blue-light);
    opacity: 0.55;
    filter: drop-shadow(0 0 6px rgba(139, 107, 240, 0.8));
}
@keyframes svcDraw { to { stroke-dashoffset: 0; } }
@keyframes svcNodeGlow {
    0%, 100% { opacity: 0.22; r: 4; }
    50%      { opacity: 0.80; r: 6; }
}

/* --- drifting glass icon tiles (the circled intro tiles) --- */
.svc-ambient .svc-tiles { position: absolute; inset: 0; }
.svc-ambient .svc-tile {
    position: absolute;
    width: 50px; height: 50px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 14px;
    background: rgba(109, 74, 230, 0.10);
    border: 1px solid rgba(139, 107, 240, 0.22);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    color: var(--cine-node-lit);
    font-size: 1.15rem;
    opacity: 0.5;
    animation: svcFloat 8s ease-in-out infinite;
}
.svc-ambient .svc-tile.t1 { top: 14%; left: 8%;   animation-delay: 0s;   }
.svc-ambient .svc-tile.t2 { top: 18%; right: 10%; animation-delay: 1.1s; }
.svc-ambient .svc-tile.t3 { top: 44%; left: 5%;   animation-delay: 2.0s; }
.svc-ambient .svc-tile.t4 { top: 40%; right: 7%;  animation-delay: 0.6s; }
.svc-ambient .svc-tile.t5 { top: 74%; left: 9%;   animation-delay: 1.6s; }
.svc-ambient .svc-tile.t6 { top: 70%; right: 11%; animation-delay: 2.5s; }
.svc-ambient .svc-tile.t7 { top: 26%; left: 21%;  animation-delay: 3.0s; }
.svc-ambient .svc-tile.t8 { top: 82%; right: 23%; animation-delay: 0.3s; }
@keyframes svcFloat {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50%      { transform: translateY(-18px) rotate(4deg); }
}

/* reduced-motion: freeze to a calm static composition (the intro lacks this guard) */
@media (prefers-reduced-motion: reduce) {
    .svc-ambient .svc-line { animation: none; stroke-dashoffset: 0; }
    .svc-ambient .svc-node { animation: none; opacity: 0.3; }
    .svc-ambient .svc-tile { animation: none; }
    .svc-ambient .svc-pulse { display: none; }
}

/* =====================================================================
   RESPONSIVE FIXES (mobile/tablet) — added for small-screen polish
   ===================================================================== */
/* The right-bleed hero globe (About) overlaps the headline/sub on narrow
   screens. Hide it below 900px; the Nationwide Reach section keeps the globe. */
@media (max-width: 1100px) {
    /* keep the globe visible as a soft backdrop, scoped to the hero viewport so it
       doesn't bleed behind the sections below */
    .about-ambient-page .am-ambient { position: absolute; top: 0; left: 0; right: 0; height: 100vh; overflow: hidden; }
    .about-ambient-page .am-ambient .am-globe {
        display: block; top: 36%; left: 50%; right: auto;
        transform: translate(-50%, -50%);
        width: min(125vw, 760px); height: min(125vw, 760px);
    }
    .about-ambient-page .am-ambient .am-globe.is-ready { opacity: 0.5; }
    .about-ambient-page .am-ambient .am-glow { opacity: 0.55; }
    /* hero content sits inside a frosted "iOS-style" glass card so it stays crisp over the globe */
    .about-ambient-page .about-hero-inner,
    .svc-ambient-page .about-hero-inner {
        max-width: 560px; margin: 0 auto;
        background: rgba(16, 13, 32, 0.5);
        -webkit-backdrop-filter: blur(16px) saturate(1.3);
        backdrop-filter: blur(16px) saturate(1.3);
        border: 1px solid rgba(139, 107, 240, 0.24);
        border-radius: 26px;
        padding: 30px 26px;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10), 0 26px 64px -26px rgba(0, 0, 0, 0.8);
    }
}
@media (max-width: 600px) {
    .about-ambient-page .about-hero-inner,
    .svc-ambient-page .about-hero-inner { padding: 24px 20px; border-radius: 22px; }
    .about-ambient-page .about-stat .num { font-size: 1.4rem; letter-spacing: -0.02em; }
    .about-ambient-page .about-stat { padding: 6px 8px; }
    .about-ambient-page .about-stat-hud { padding: 22px 6px; }

    /* Industries depth-ring orbit — desktop rings (680/960/1240px) are far wider
       than a phone, so the sector icons sit off-screen. Shrink rings + node radii
       + tiles so the whole orbit fits and the icons are actually visible. */
    .ind-ambient .ind-scrim { width: 340px; height: 340px; }
    .ind-ambient .ind-ring.r1 { width: 240px; height: 240px; }
    .ind-ambient .ind-ring.r2 { width: 340px; height: 340px; }
    .ind-ambient .ind-ring.r3 { width: 432px; height: 432px; }
    .ind-ambient .ind-orbiters.o1 { --r: 120px; }
    .ind-ambient .ind-orbiters.o2 { --r: 170px; }
    .ind-ambient .ind-orbiters.o3 { --r: 216px; }
    .ind-ambient .ind-node-tile { width: 40px; height: 40px; margin: -20px 0 0 -20px; border-radius: 12px; font-size: 0.95rem; }
    /* fade the orbit right down so it reads as a subtle texture behind the
       headline, not icons competing with the words; strong centre scrim keeps
       the text crisp on top */
    .ind-ambient .ind-orbiters { opacity: 0.2; }
    .ind-ambient .ind-node-tile { box-shadow: none; background: rgba(109, 74, 230, 0.10); border-color: rgba(139, 107, 240, 0.22); }
    .ind-ambient .ind-node-tile.deep { box-shadow: none; background: rgba(109, 74, 230, 0.12); }
    .ind-ambient .ind-ring { border-color: rgba(139, 107, 240, 0.07); }
    .ind-ambient .ind-scrim {
        width: 420px; height: 420px;
        background: radial-gradient(ellipse at center, rgba(10, 9, 18, 0.96) 0%, rgba(10, 9, 18, 0.85) 38%, rgba(10, 9, 18, 0.45) 60%, transparent 78%);
    }
}

/* =====================================================================
   ABOUT PAGE — premium dark DOTTED USA map (nationwide), Houston hub.
   Background ONLY (panels keep their normal styling). Pure SVG/CSS.
   Scoped to .about-ambient-page so other pages are untouched.
   ===================================================================== */
.about-ambient-page { background: var(--cine-bg); }
.about-ambient-page .about-hero,
.about-ambient-page .about-intro,
.about-ambient-page .core-values,
.about-ambient-page .section-bg-dark { background: transparent; }

.am-ambient { position: fixed; inset: 0; z-index: -1; pointer-events: none; }
.am-ambient .am-glow {
    position: absolute; top: 50%; right: 5%; left: auto;
    width: 52vw; height: 52vw; max-width: 800px; max-height: 800px;
    transform: translateY(-50%);
    background: radial-gradient(circle at center, var(--cine-accent-glow) 0%, transparent 62%);
    filter: blur(60px);
    opacity: 0.8;
}
/* premium dotted globe (cobe/WebGL) — right-anchored so the headline stays clear */
.am-ambient .am-globe {
    position: absolute;
    top: 50%; right: -3%;
    transform: translateY(-50%);
    width: min(46vw, 1000px);
    height: min(46vw, 1000px);
    opacity: 0;
    transition: opacity 1.2s ease;
}
.am-ambient .am-globe.is-ready { opacity: 1; }
/* Light mode: NO ambient globe — it competed with the statement section and
   rim-fringed on paper (rejected 2026-07-02). Clean paper; dark keeps its own. */
[data-theme="light"] .am-ambient { display: none; }
.am-ambient .am-map { position: absolute; inset: 0; width: 100%; height: 100%; }
/* crisp US edge */
.am-ambient .am-usline {
    fill: none; stroke: rgba(139, 107, 240, 0.30);
    stroke-width: 1; vector-effect: non-scaling-stroke;
}
/* dotted halftone fill */
.am-ambient .am-dot { fill: var(--cine-node-lit); }
.am-ambient .am-dots { opacity: 0.5; }
/* subtle Houston arcs */
.am-ambient .am-arc {
    fill: none; stroke: rgba(139, 107, 240, 0.14); stroke-width: 1;
    stroke-dasharray: 1600; stroke-dashoffset: 1600; animation: amDraw 2.6s ease forwards;
}
.am-ambient .am-arc.lit { stroke: rgba(139, 107, 240, 0.26); animation-delay: 0.3s; }
/* glowing city hubs */
.am-ambient .am-city {
    fill: var(--primary-blue-light); opacity: 0.5;
    animation: amCityGlow 2.8s ease-in-out infinite;
}
.am-ambient .am-city.hub {
    fill: #c9bbff; opacity: 1;
    filter: drop-shadow(0 0 8px rgba(139, 107, 240, 0.9));
}
.am-ambient .am-city:nth-child(odd) { animation-delay: 0.7s; }
/* Houston radar ping */
.am-ambient .am-radar {
    fill: none; stroke: rgba(139, 107, 240, 0.55); stroke-width: 1;
    transform-box: fill-box; transform-origin: center;
    animation: amRadar 3.2s ease-out infinite;
}
.am-ambient .am-radar.d2 { animation-delay: 1.6s; }
.am-ambient .am-pulse {
    fill: var(--primary-blue-light); opacity: 0.6;
    filter: drop-shadow(0 0 6px rgba(139, 107, 240, 0.85));
}
@keyframes amDraw { to { stroke-dashoffset: 0; } }
@keyframes amCityGlow { 0%,100% { opacity: 0.35; } 50% { opacity: 0.85; } }
@keyframes amRadar {
    0%   { transform: scale(0.6); opacity: 0.8; }
    80%  { transform: scale(4.2); opacity: 0; }
    100% { transform: scale(4.2); opacity: 0; }
}

/* drifting trust-icon glass tiles */
.am-ambient .am-tiles { position: absolute; inset: 0; }
.am-ambient .am-tile {
    position: absolute; width: 50px; height: 50px;
    display: flex; align-items: center; justify-content: center; border-radius: 14px;
    background: rgba(109, 74, 230, 0.10); border: 1px solid rgba(139, 107, 240, 0.22);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
    color: var(--cine-node-lit); opacity: 0.5; animation: amFloat 8.5s ease-in-out infinite;
}
.am-ambient .am-tile .about-ico { width: 1.35rem; height: 1.35rem; }
.am-ambient .am-tile.t1 { top: 16%; left: 8%;   animation-delay: 0s; }
.am-ambient .am-tile.t2 { top: 20%; right: 10%; animation-delay: 1.2s; }
.am-ambient .am-tile.t3 { top: 46%; left: 5%;   animation-delay: 2.1s; }
.am-ambient .am-tile.t4 { top: 42%; right: 7%;  animation-delay: 0.6s; }
.am-ambient .am-tile.t5 { top: 74%; left: 9%;   animation-delay: 1.7s; }
.am-ambient .am-tile.t6 { top: 70%; right: 11%; animation-delay: 2.6s; }
@keyframes amFloat { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-18px) rotate(4deg); } }

@media (prefers-reduced-motion: reduce) {
    .am-ambient .am-arc { animation: none; stroke-dashoffset: 0; }
    .am-ambient .am-city, .am-ambient .am-tile { animation: none; }
    .am-ambient .am-radar, .am-ambient .am-pulse { display: none; }
}

/* ---- About Pills (Premium Credentials) ---- */
.about-pills-container {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
    margin-top: 1rem;
}
.about-pill-item {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 12px 24px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 50px;
    background: linear-gradient(145deg, rgba(30, 30, 40, 0.8) 0%, rgba(15, 15, 22, 0.6) 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 8px 24px rgba(0,0,0,0.6);
    color: var(--slate-200);
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: color 0.4s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    cursor: default;
}
.about-pill-item:hover {
    border-color: rgba(245, 158, 11, 0.4);
    background: linear-gradient(145deg, rgba(40, 30, 20, 0.9) 0%, rgba(20, 15, 10, 0.8) 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), 0 12px 32px rgba(245, 158, 11, 0.2);
    transform: translateY(-3px);
    color: var(--white);
}
.about-pill-item .about-ico {
    width: 1.3rem;
    height: 1.3rem;
    transition: color 0.4s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.about-pill-item .about-ico .ico-fill { 
    fill: var(--primary-blue-light); 
    transition: fill 0.4s ease; 
}
.about-pill-item .about-ico .ico-line { 
    stroke: var(--primary-blue-light); 
    transition: stroke 0.4s ease; 
}
.about-pill-item:hover .about-ico {
    transform: scale(1.15);
}
.about-pill-item:hover .about-ico .ico-fill { fill: var(--gold); }
.about-pill-item:hover .about-ico .ico-line { stroke: var(--gold); }

/* ═══════════════════════════════════════════════════════════════════════
   PROGRESSIVE EDGE BLUR — frosted dissolve at the bottom of the viewport.
   (Apple/iOS toolbar technique, seen on humbleops.com.) The band holds 8
   stacked layers, each blurrier than the last and masked to its own thin
   strip, so blur RAMPS UP smoothly toward the bottom edge instead of a hard
   cut. Layers + per-layer blur/mask are generated in JS (initEdgeBlur).
   Sits below the nav (z1000) and back-to-top (z999) so those stay sharp. */
.edge-blur {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    height: 170px;
    z-index: 900;
    pointer-events: none;
    /* fades out near the very end of the page so the footer isn't left blurred */
    opacity: 1;
    transition: opacity 0.4s ease;
}
.edge-blur.is-hidden { opacity: 0; }
.edge-blur__layer {
    position: absolute;
    inset: 0;
}
@media (prefers-reduced-motion: reduce) {
    .edge-blur { transition: none; }
}

/* ═══════════════════════════════════════════════════════════════════════
   APART DECK — pinned cinematic "What Sets Us Apart" scroll deck
   ═══════════════════════════════════════════════════════════════════════ */
@keyframes ap-spin  { to { transform: rotate(360deg); } }
@keyframes ap-bob   { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes ap-flow  { to { stroke-dashoffset: -22; } }
@keyframes ap-pulse { 0%,100% { opacity: .45; } 50% { opacity: 1; } }

.apart-driver {
    position: relative;
    height: 720vh;
}
.apart-sticky {
    position: sticky; top: 0; width: 100%;
    height: 100vh;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding-bottom: 12px;
}
.apart-deck-head { text-align: center; margin-bottom: 22px; }
.apart-deck-head .section-title { margin-top: 10px; }
.apart-stage {
    position: relative;
    width: min(1160px, 90vw);
    height: 460px;
    border: 1px solid rgba(139,107,240,.2);
    border-radius: 28px;
    overflow: hidden;
    background:
        radial-gradient(900px circle at 76% 34%, rgba(109,74,230,.14), transparent 56%),
        linear-gradient(160deg, rgba(28,20,52,.5), rgba(10,9,18,.96));
}
.apart-ghost {
    position: absolute; right: 2%; top: 50%; transform: translateY(-50%);
    font-family: 'Fraunces', serif; font-weight: 700; font-size: 17rem; line-height: .8;
    color: rgba(139,107,240,.055);
    pointer-events: none; user-select: none;
    transition: opacity .5s ease;
}
.apart-slide {
    position: absolute; inset: 0;
    padding: 50px 54px;
    display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: center; gap: 14px;
    transition: opacity .6s ease, transform .6s ease;
    will-change: opacity, transform;
}
.apart-slide.is-prev,
.apart-slide.is-next  { opacity: 0; transform: scale(0.985); pointer-events: none; }
.apart-slide.is-active { opacity: 1; transform: none; }
/* Smooth (JS-lerp) deck: the rAF loop sets opacity/transform inline every frame,
   so the CSS transition must NOT also ease (that double-eases → lag/jank). */
.apart-driver.apart-smooth .apart-slide { transition: none; }
.apart-left { display: flex; flex-direction: column; }
.apart-s-step {
    font: 700 13px/1 'Inter'; letter-spacing: .2em;
    color: var(--primary-blue-light); margin-bottom: 22px;
}
.apart-s-ic {
    width: 64px; height: 64px; border-radius: 18px;
    display: flex; align-items: center; justify-content: center;
    background: var(--gradient-primary);
    box-shadow: 0 14px 40px rgba(109,74,230,.5);
    margin-bottom: 24px;
}
.apart-s-ic svg {
    width: 30px; height: 30px;
    stroke: rgba(220,210,255,.95); stroke-width: 1.6;
    fill: none; stroke-linecap: round; stroke-linejoin: round;
}
.apart-slide h3 {
    font-family: var(--font-display); font-weight: 700;
    font-size: clamp(1.8rem, 2.4vw, 2.2rem); line-height: 1.06;
    margin-bottom: 14px; color: var(--white);
}
.apart-slide p {
    color: var(--slate-200); font-size: 1.02rem; line-height: 1.62; max-width: 40ch;
}
.apart-art {
    position: relative; height: 100%;
    display: flex; align-items: center; justify-content: center;
    min-width: 0; overflow: visible;
}
.apart-art svg { width: 100%; height: 100%; max-height: 390px; overflow: visible; }
.apart-dots {
    position: absolute; bottom: 26px; left: 54px;
    display: flex; gap: 8px; z-index: 6;
}
.apart-dot {
    width: 26px; height: 4px; border-radius: 2px;
    background: rgba(139,107,240,.22);
    transition: color .4s, background-color .4s, border-color .4s, transform .4s, opacity .4s, box-shadow .4s;
}
.apart-dot.on { background: var(--primary-blue-light); width: 42px; }
@media (max-width: 900px) {
    .apart-driver  { height: auto; }
    .apart-sticky  { position: static; height: auto; padding-bottom: 0; }
    .apart-stage   { height: auto; overflow: visible; }
    .apart-slide   {
        position: static; display: flex; flex-direction: column; gap: 20px;
        opacity: 1 !important; transform: none !important; pointer-events: auto;
        padding: 28px; margin-bottom: 18px;
        border: 1px solid rgba(139,107,240,.18); border-radius: 20px;
    }
    .apart-slide.is-prev, .apart-slide.is-next { display: flex; }
    .apart-art  { height: 220px; }
    .apart-ghost, .apart-dots { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .apart-slide { transition: none; }
    .apart-art * { animation: none !important; }
}

/* Services deck — in-slide CTA + slightly roomier copy column.
   The CTA-bearing slides are taller, so give the stage more height and TOP-align
   the column (not centre) so the button always floats with room below it. */
.svc-deck { height: 660vh; }   /* 3 slides — ~220vh each + per-slide dwell (JS) so each holds, not a fast blur */
.svc-deck .apart-stage { height: 520px; }
.svc-deck .apart-slide { grid-template-columns: 0.95fr 1.05fr; align-items: center; padding: 48px 54px 56px; }
.svc-deck .apart-left { justify-content: center; }
.svc-slide-cta {
    margin-top: 28px;
    align-self: flex-start;
    display: inline-flex; align-items: center; gap: 13px;
    padding: 12px 20px; border-radius: 14px;
    background: var(--gradient-primary);
    box-shadow: 0 12px 34px rgba(109,74,230,.4);
    transition: transform .3s ease, box-shadow .3s ease;
}
.svc-slide-cta .cta-btn-cta { font: 600 .95rem/1 'Inter', sans-serif; color: #fff; letter-spacing: .01em; }
.svc-slide-cta .cta-btn-arrow { display: inline-flex; color: #fff; }
.svc-slide-cta .cta-btn-arrow svg { width: 18px; height: 18px; }
.svc-slide-cta:hover { transform: translateY(-2px); box-shadow: 0 16px 42px rgba(109,74,230,.55); }
.svc-slide-cta:hover .cta-btn-arrow { transform: translateX(4px); transition: transform .3s ease; }
@media (max-width: 900px) {
    .svc-deck .apart-slide { grid-template-columns: 1fr; }
}

/* ═══ ROLES — interactive tabs ═══ */
.roles-tabs {
    display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 28px;
    align-items: start; margin-top: 2.4rem;
}
.roles-rail { display: flex; flex-direction: column; gap: 12px; }
.roles-tab {
    display: flex; align-items: center; gap: 16px; text-align: left;
    padding: 18px 20px; border-radius: 16px; cursor: pointer;
    background: var(--gradient-card); border: 1px solid var(--glass-border);
    transition: border-color .3s ease, background .3s ease, transform .3s ease;
}
.roles-tab:hover { border-color: rgba(109,74,230,.32); transform: translateX(3px); }
.roles-tab.is-active { border-color: rgba(109,74,230,.55); background: rgba(109,74,230,.10); }
.roles-tab-ic {
    flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(109,74,230,.12); border: 1px solid rgba(139,107,240,.22);
    transition: background .3s ease;
}
.roles-tab.is-active .roles-tab-ic { background: var(--gradient-primary); box-shadow: 0 8px 24px rgba(109,74,230,.45); }
.roles-tab-ic .about-ico { width: 22px; height: 22px; }
.roles-tab-ic .ico-line { stroke: rgba(206,192,255,.9); }
.roles-tab.is-active .roles-tab-ic .ico-line { stroke: #fff; }
.roles-tab.is-active .roles-tab-ic .ico-fill { fill: rgba(255,255,255,.18); }
.roles-tab-tx { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.roles-tab-tx strong { font-family: var(--font-display); font-weight: 600; color: var(--white); font-size: 1.02rem; }
.roles-tab-tx em { font-style: normal; color: var(--slate-400); font-size: .82rem; }
.roles-panels { position: relative; }
.roles-panel {
    padding: 28px 30px; border-radius: 20px;
    background: var(--gradient-card); border: 1px solid var(--glass-border);
    animation: rolesPanelIn .45s ease both;
}
.roles-panel[hidden] { display: none; }
@keyframes rolesPanelIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.roles-panel-note { display: block; color: var(--slate-300); font-size: .96rem; line-height: 1.55; margin-bottom: 20px; max-width: 52ch; }
.roles-list { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 28px; }
.roles-list li {
    position: relative; padding: 9px 0 9px 22px; color: var(--slate-200);
    font-size: .96rem; border-bottom: 1px solid rgba(255,255,255,.05);
    transition: color .25s ease, padding-left .25s ease;
}
.roles-list li::before {
    content: ""; position: absolute; left: 2px; top: 50%; transform: translateY(-50%);
    width: 6px; height: 6px; border-radius: 50%; background: var(--primary-blue);
    box-shadow: 0 0 0 0 rgba(139,107,240,.5); transition: box-shadow .25s ease, transform .25s ease;
}
.roles-list li:hover { color: #fff; padding-left: 27px; }
.roles-list li:hover::before { box-shadow: 0 0 12px 1px rgba(139,107,240,.8); transform: translateY(-50%) scale(1.25); }
@media (max-width: 820px) {
    .roles-tabs { grid-template-columns: 1fr; gap: 18px; }
    .roles-list { grid-template-columns: 1fr; }
    .roles-tab-tx em { display: none; }
}

/* ═══ VETTING — scroll-drawn timeline ═══ */
.vet-timeline {
    position: relative; margin-top: 3rem;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
    --vp: 0;   /* scroll progress 0→1, set by JS */
}
.vet-track {
    position: absolute; left: 6%; right: 6%; top: 27px; height: 2px;
    background: rgba(139,107,240,.18); border-radius: 2px; overflow: hidden;
}
.vet-fill {
    position: absolute; inset: 0; transform-origin: left center;
    transform: scaleX(var(--vp));
    background: linear-gradient(90deg, var(--primary-blue), var(--primary-blue-light));
    box-shadow: 0 0 16px rgba(109,74,230,.7);
}
.vet-step { position: relative; text-align: center; z-index: 1; }
.vet-node {
    width: 56px; height: 56px; margin: 0 auto 22px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: #15112a; border: 1.5px solid rgba(139,107,240,.3);
    color: var(--slate-400); font-family: var(--font-display); font-weight: 700; font-size: 1.05rem;
    transition: color .45s ease, background-color .45s ease, border-color .45s ease, transform .45s ease, opacity .45s ease, box-shadow .45s ease;
}
.vet-node.lit {
    background: var(--gradient-primary); border-color: transparent; color: #fff;
    box-shadow: 0 0 30px rgba(109,74,230,.6); transform: scale(1.06);
}
.vet-card {
    opacity: 0; transform: translateY(14px);
    transition: opacity .5s ease, transform .5s ease;
}
.vet-step.in .vet-card { opacity: 1; transform: none; }
.vet-card h4 { font-family: var(--font-display); font-weight: 600; color: var(--white); font-size: 1.12rem; margin-bottom: 10px; }
.vet-card p { color: var(--slate-400); font-size: .92rem; line-height: 1.6; max-width: 28ch; margin: 0 auto; }
/* scrub polish — same recipe as .journey-track: the fill GLIDES toward the scroll
   value instead of snapping, and a comet head rides the fill tip. */
.vet-track { overflow: visible; }
.vet-fill {
    border-radius: 2px;
    transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}
.vet-track::after {
    content: ''; position: absolute; top: 50%; left: calc(var(--vp, 0) * 100%);
    width: 11px; height: 11px; border-radius: 50%; background: #fff;
    box-shadow: 0 0 16px 5px rgba(184,157,255,0.85);
    transform: translate(-50%, -50%); opacity: var(--vp-dot, 0);
    transition: left 0.32s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
}
/* the vetting section unpins below 820px (its own vertical breakpoint — the
   shared .journey-* unpin only covers ≤768px); comet is horizontal-only. */
@media (max-width: 820px) {
    .our-process.journey-driver { height: auto; }
    .our-process .journey-sticky { position: static; height: auto; display: block; }
    .vet-track::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .vet-track::after { opacity: 0; }
}
@media (max-width: 820px) {
    .vet-timeline { grid-template-columns: 1fr; gap: 14px; }
    .vet-track { left: 27px; right: auto; top: 6%; bottom: 6%; width: 2px; height: auto; }
    .vet-fill { transform: scaleY(var(--vp)); transform-origin: top center; }
    .vet-step { display: grid; grid-template-columns: 56px 1fr; gap: 18px; text-align: left; align-items: center; }
    .vet-node { margin: 0; }
    .vet-card p { margin: 0; max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
    .vet-fill { transform: scaleX(1); }
    .vet-card { opacity: 1; transform: none; }
    .vet-node.lit { transition: none; }
}

/* ═══ FAQ accordion — premium polish (build on existing .accordion-*) ═══ */
.accordion-item {
    background: linear-gradient(160deg, rgba(28,20,52,.4), rgba(14,12,26,.7));
    transition: border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.accordion-item[open] { box-shadow: 0 14px 40px rgba(109,74,230,.16); }
.accordion-toggle {
    width: 22px; height: 22px; flex: 0 0 auto;
    transition: transform .35s cubic-bezier(.22,1,.36,1), color .3s ease;
}
.accordion-item[open] .accordion-toggle { transform: rotate(180deg); color: var(--primary-blue-light); }
.accordion-header span { transition: color .3s ease; }
.accordion-item[open] .accordion-header span { color: var(--primary-blue-light); }

/* Reporting slide — keep the small source labels inside their nodes */
.svc-deck .apart-art text { font-feature-settings: "tnum"; }

/* =====================================================================
   SWIPE-TO-SEND — contact form submit control.
   Drag the white thumb to the right to submit (iOS "slide to unlock").
   Keyboard: focus the pill + Enter/Space submits. Reduced-motion safe.
   ===================================================================== */
.swipe-submit { position: relative; width: 100%; height: 62px; border-radius: 999px; background: linear-gradient(135deg, #5938C9, #8B6BF0); overflow: hidden; cursor: grab; user-select: none; -webkit-user-select: none; touch-action: pan-y; box-shadow: 0 12px 34px -10px rgba(109,74,230,0.65); }
.swipe-submit:active { cursor: grabbing; }
.swipe-submit:focus-visible { outline: 2px solid #C9BBF7; outline-offset: 3px; }
/* filled state that appears once completed */
.swipe-submit::before { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, #6D4AE6, #9B7DFF); opacity: 0; transition: opacity 0.35s ease; }
.swipe-submit.done::before { opacity: 1; }
.swipe-label { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: center; padding-left: 46px; color: rgba(255,255,255,0.95); font-family: var(--font-secondary); font-weight: 600; font-size: 1rem; letter-spacing: 0.06em; pointer-events: none; transition: opacity 0.2s ease; }
.swipe-success { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: center; color: #fff; font-family: var(--font-secondary); font-weight: 600; font-size: 1rem; letter-spacing: 0.04em; opacity: 0; pointer-events: none; transition: opacity 0.35s ease; }
.swipe-submit.done .swipe-label { opacity: 0; }
.swipe-submit.done .swipe-success { opacity: 1; }
.swipe-thumb { position: absolute; top: 6px; left: 6px; z-index: 2; width: 50px; height: 50px; border-radius: 50%; background: #fff; color: #5938C9; display: flex; align-items: center; justify-content: center; font-size: 1rem; box-shadow: 0 4px 14px rgba(0,0,0,0.28); transition: left 0.28s cubic-bezier(0.16,1,0.3,1); animation: swipe-hint 1.9s ease-in-out infinite; }
.swipe-submit.dragging .swipe-thumb { transition: none; animation: none; }
.swipe-submit.done .swipe-thumb { animation: none; }
@keyframes swipe-hint { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@media (prefers-reduced-motion: reduce) { .swipe-thumb { animation: none; transition: none; } }

/* ============================================================================
   LIGHT-MODE FERN GREEN — consolidated override  (client-approved 2026-07-01)
   ----------------------------------------------------------------------------
   WHY THIS BLOCK EXISTS
   The base accent ramp (--primary-blue* / --gradient-primary / --gradient-glow)
   is re-pointed to fern green inside [data-theme="light"] up top, so anything
   that READS those tokens already turns green in light mode. But a set of later
   "enhancement" rules (nav logo animation, the pill buttons, the closing-CTA
   band) HARDCODE the old purple (#6D4AE6 / #8B6BF0 / rgba(109,74,230) /
   rgba(139,107,240)) and out-rank the tokenized base by cascade order — so they
   stayed purple in light mode. This one block, appended last and scoped to
   [data-theme="light"], re-greens exactly those hardcoded components at the
   highest priority.

   DARK MODE IS PROVABLY UNTOUCHED: every selector here is [data-theme="light"]-
   scoped, so none of it matches in the default (dark) theme. Purple stays purple
   in dark, byte-for-byte.

   GREENS USED (see the AA note in the :root light block up top):
     fill / large accent  = #2F8F4E  (gradient: #2F8F4E → #3EA85F)
     small accent text     = #24713D  (--l-accent, AA-body on paper/white/tint)
     deeper hover/press    = #24713D
   ============================================================================ */

/* --- Animated FORTUNE wordmark: nav, footer, preloader (was purple gradient) - */
[data-theme="light"] .nav-logo .logo-fortune,
[data-theme="light"] .footer-logo .logo-fortune,
[data-theme="light"] .preloader-logo .logo-fortune {
    background: linear-gradient(135deg, #2F8F4E 0%, #3EA85F 60%, #2F8F4E 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 12px rgba(47,143,78,0.28));
}

/* --- Hero accent verbs (build/staff/deliver): green fill via token already;
       swap the purple glow to a fern glow -------------------------------------- */
[data-theme="light"] .cine-accent {
    filter: drop-shadow(0 0 22px rgba(47,143,78,0.32));
}
[data-theme="light"] .cine-hero .cine-accent {
    /* Same no-filter rule as dark: a filter on the letter-split hero verbs
       rasterizes into visible glow tiles (2026-07-21 glitch). */
    filter: none;
}

/* --- Primary pill buttons (Contact Us / Get in touch / hero CTA) --------------
   These hardcode a purple gradient + purple border/glow. Repaint to fern.
   White text on fern = AA-large; kept white for consistency with dark-mode. */
[data-theme="light"] .nav-cta,
[data-theme="light"] .btn-primary,
[data-theme="light"] .btn-hero-primary,
[data-theme="light"] .cine-btn-primary,
[data-theme="light"] .btn-hero-primary:hover,
[data-theme="light"] .btn-primary:hover,
[data-theme="light"] .cine-btn-primary:hover,
[data-theme="light"] .nav-cta:hover {
    background: linear-gradient(180deg, #3EA85F 0%, #2F8F4E 100%);
    border-color: rgba(36,113,61,0.55);
    color: #fff;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.34),
        0 8px 26px rgba(47,143,78,0.34);
}
[data-theme="light"] .nav-cta span,
[data-theme="light"] .btn-primary,
[data-theme="light"] .cine-btn-primary { color: #fff; }
[data-theme="light"] .cine-btn-primary:hover,
[data-theme="light"] .btn-primary:hover,
[data-theme="light"] .nav-cta:hover {
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.45),
        0 14px 38px rgba(47,143,78,0.5);
}
/* arrow-badge inside the hero button */
[data-theme="light"] .cine-btn-primary i {
    background: rgba(36,113,61,0.16);
}

/* --- Closing CTA band: city dot, asterisk, eyebrow hairline (hardcoded purple) - */
[data-theme="light"] .cta-city-dot {
    background: #2F8F4E;
    box-shadow: 0 0 12px rgba(47,143,78,0.55);
}
[data-theme="light"] .cta-asterisk { color: #24713D; }               /* small glyph → deep green (AA) */
[data-theme="light"] .cta-hero-eyebrow { color: #24713D; }           /* small label → deep green (AA) */
[data-theme="light"] .cta-hero-eyebrow::before {
    background: linear-gradient(to right, transparent, #2F8F4E);
}
[data-theme="light"] .cta-hero-btn {
    background: linear-gradient(180deg, #3EA85F 0%, #2F8F4E 100%);
    color: #fff;
}
[data-theme="light"] .cta-hero-btn:hover {
    background: linear-gradient(180deg, #4CB86D 0%, #3EA85F 100%);
}

/* --- Capability card code sample: syntax tokens were purple/periwinkle. On the
       green active card they clashed — shift to a green-family syntax palette.
       All AA-body (~5:1) on the green card tint. ---------------------------------- */
[data-theme="light"] .cap-code .kw  { color: #24713D; }   /* keyword  → deep green */
[data-theme="light"] .cap-code .fn  { color: #3A6B2E; }   /* function → olive-green */
[data-theme="light"] .cap-code .str { color: #1B6B57; }   /* string   → teal-green */

/* --- Capability card: inactive icon tiles + panel chrome (hardcoded purple) ----
   Active card/tile already greened by the [data-theme="light"] .cine-cap-row.is-active
   rules up top (they use --l-accent-tint / --l-accent). Here we green the INACTIVE
   tiles, the panel hairline, and the row hover so no lavender remains. */
[data-theme="light"] .cine-cap-panel {
    border-color: rgba(47,143,78,0.18);
}
[data-theme="light"] .cine-cap-ico {
    background: rgba(47,143,78,0.10);
    border-color: rgba(47,143,78,0.24);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.5), 0 0 16px rgba(47,143,78,0.14);
    color: #2F8F4E;
}
[data-theme="light"] .cine-cap-row:hover { background: rgba(47,143,78,0.08); }
[data-theme="light"] .cine-cap-row.is-active .cine-cap-ico {
    background: var(--l-accent-tint);
    border-color: rgba(47,143,78,0.45);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.6), 0 0 22px rgba(47,143,78,0.28);
    color: #24713D;
}

/* --- Closing-CTA "Schedule a consultation" button (hardcoded purple gradient) -- */
[data-theme="light"] .cta-btn-schedule {
    background: linear-gradient(135deg, #2F8F4E 0%, #3EA85F 100%);
    color: #fff;
    box-shadow: 0 0 0 1px rgba(36,113,61,0.4), 0 14px 44px rgba(47,143,78,0.42), 0 2px 0 rgba(255,255,255,0.16) inset;
}
[data-theme="light"] .cta-btn-schedule:hover {
    box-shadow: 0 0 0 1px rgba(36,113,61,0.6), 0 20px 60px rgba(47,143,78,0.55), 0 2px 0 rgba(255,255,255,0.18) inset;
}

/* --- Footer credit "∞ CRAFTED BY Rakesh Ralla" — light theme (fern) ------------
   Name → deep green #24713D for AA-body on the warm footer; glyph matches. */
[data-theme="light"] .credit-line-text .credit-glyph { color: #2F8F4E; }
[data-theme="light"] .credit-line-text .credit-brand {
    background: linear-gradient(135deg, #24713D 0%, #2F8F4E 50%, #24713D 100%);
    background-size: 200% auto;
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
[data-theme="light"] .credit-line-text:hover .credit-brand {
    filter: drop-shadow(0 0 8px rgba(47,143,78,0.35));
}

/* --- Footer contact icon tiles (location / mail / phone) — purple → fern -------- */
[data-theme="light"] .footer-contact i {
    background: rgba(47,143,78,0.10);
    border-color: rgba(47,143,78,0.24);
    color: #2F8F4E;
}
[data-theme="light"] .footer-contact li:hover i {
    background: rgba(47,143,78,0.18);
    border-color: rgba(47,143,78,0.45);
}

/* --- Giant faint "FORTUNE" ghost watermarks: tint the hue green (very low alpha,
       barely perceptible either way, but keeps the palette 100% consistent). ----- */
[data-theme="light"] .cine-mani-ghost { color: rgba(47,143,78,0.055); }
[data-theme="light"] .deck-ghost      { color: rgba(47,143,78,0.05); }

/* --- Footer links: hover accent → deep green (small text = AA) ---------------- */
[data-theme="light"] .footer-links a:hover { color: #24713D; }

/* ══════════════════════════════════════════════════════════════════════════════
   LIGHT-MODE ROLLOUT — ABOUT · SERVICES · INDUSTRIES · CONTACT (2026-07-01)
   Final pass of the warm-paper + fern-green enterprise light system. Converts the
   remaining dark showcase sections that did NOT cascade automatically (they carry
   hardcoded #06040C / white / purple values, not the --l-* / legacy-ramp vars).
   Everything here is [data-theme="light"]-scoped → DARK MODE IS 100% UNTOUCHED.
   Green accents only: deep #24713D for text/lines (AA-body), #2F8F4E for fills.
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── Shared: section-badge chips (OUR STORY / WHO WE ARE / WHAT WE DO …) ────────
   Were hardcoded PURPLE tint + light-fern text (failed AA on the pale tint).
   → green tint ground, green hairline, DEEP-green ink text + icon (AA everywhere). */
[data-theme="light"] .section-badge {
    background: var(--l-accent-tint);
    border-color: rgba(36,113,61,0.22);
}
[data-theme="light"] .section-badge.light {
    background: var(--l-accent-tint);
    border-color: rgba(36,113,61,0.22);
}
[data-theme="light"] .section-badge i,
[data-theme="light"] .section-badge span { color: var(--l-accent); }

/* ── Shared: closing-CTA subline was faint white-on-tint → readable ink ───────── */
[data-theme="light"] .cta-hero-sub,
[data-theme="light"] .cine-cta--signal .cta-subline,
[data-theme="light"] .cta-signal-sub { color: var(--l-ink-2); }

/* ══ ABOUT ════════════════════════════════════════════════════════════════════ */

/* A1 — MANIFESTO ("We are one founder-led team…"): pitch-dark stage → warm paper.
   Ignite text recolors: pre-ignite = legible faded ink, ignited = full ink,
   payoff phrase = deep fern (AA). Ring/arc → green so nothing reads purple. */
[data-theme="light"] .ab-statement-bg {
    background-color: var(--l-page);
    background-image:
        radial-gradient(ellipse 55% 22% at 50% 0%, rgba(36,113,61,0.05) 0%, transparent 100%),
        radial-gradient(ellipse 65% 55% at 50% 40%, rgba(47,143,78,0.045) 0%, transparent 100%);
}
[data-theme="light"] .ab-statement-text .w { color: rgba(14,18,32,0.34); }   /* faded ink, still legible */
[data-theme="light"] .ab-statement-text .w.lit { color: var(--l-ink); }
[data-theme="light"] .ab-statement-text .w.lit:nth-last-child(-n+5) { color: var(--l-accent); }
[data-theme="light"] .ab-ring-base-svg circle { stroke: rgba(36,113,61,0.14); }
[data-theme="light"] .ab-ring-arc-svg { filter: drop-shadow(0 0 5px rgba(47,143,78,0.45)); }
[data-theme="light"] .ab-ring-arc-svg circle { stroke: var(--l-accent-fill); }

/* A2 — FOUNDER deck ("Meet the founder / Know the firm"): dark slab → warm paper.
   .about-deck bg is a solid dark hex; deck text is hardcoded white/purple. */
[data-theme="light"] .about-deck { background: var(--l-page); }
[data-theme="light"] .about-deck .deck-role { color: var(--l-accent); }
[data-theme="light"] .about-deck .deck-quote { color: var(--l-ink-2); }
[data-theme="light"] .about-deck .deck-quote .fsig-hi { color: var(--l-accent); }
[data-theme="light"] .about-deck .deck-n { color: var(--l-ink); }
[data-theme="light"] .about-deck .deck-l { color: var(--l-ink-3); }
[data-theme="light"] .about-deck .deck-link { color: var(--l-accent); }
[data-theme="light"] .about-deck .cine-section-title { color: var(--l-ink); }

/* A6 — "Our Story" journey timeline: the year chip ("2022") was hardcoded PURPLE
   tint + light-fern text → green tint + deep-green ink (AA). Node/glow re-greened. */
[data-theme="light"] .journey-year {
    color: var(--l-accent);
    background: var(--l-accent-tint);
    border: 1px solid rgba(36,113,61,0.24);
}
[data-theme="light"] .journey-step:hover .journey-node { box-shadow: 0 0 40px rgba(47,143,78,0.45); }
[data-theme="light"] .journey-step:hover .journey-card { border-color: rgba(47,143,78,0.45); }

/* ══ SHARED APART-DECK (About "What Sets Us Apart" A5 + Services main deck S1) ══
   The pinned-slide stage: dark glass gradient + purple chrome → white card system.
   Slide h3/p already cascade to ink via --white/--slate-200; here we fix the
   STAGE bg, ghost word, step label, dots, and the icon-tile glow. */
[data-theme="light"] .apart-stage {
    border: 1px solid var(--l-border);
    background:
        radial-gradient(900px circle at 76% 34%, rgba(47,143,78,0.06), transparent 56%),
        var(--l-surface);
    box-shadow: var(--l-card-shadow);
}
[data-theme="light"] .apart-ghost { color: rgba(36,113,61,0.06); }
[data-theme="light"] .apart-s-step { color: var(--l-accent); }
[data-theme="light"] .apart-slide h3 { color: var(--l-ink); }
[data-theme="light"] .apart-slide p  { color: var(--l-ink-2); }
[data-theme="light"] .apart-s-ic { box-shadow: 0 10px 28px rgba(47,143,78,0.28); }   /* green glow, not purple */
[data-theme="light"] .apart-dot { background: rgba(36,113,61,0.22); }
[data-theme="light"] .apart-dot.on { background: var(--l-accent-fill); }
[data-theme="light"] .apart-slide { border-color: var(--l-border); }   /* mobile stacked cards */

/* ══ SERVICES ════════════════════════════════════════════════════════════════ */
/* S3 — Vetting-process nodes (02/03/04 = inactive): dark "off" circles (#15112a
   + purple border) read as DEAD → give them a legible "next/upcoming" state:
   deep-green ink on green tint. Active node (.lit) stays the solid green fill. */
[data-theme="light"] .vet-node {
    background: var(--l-accent-tint);
    color: var(--l-accent);
    border: 1.5px solid rgba(36,113,61,0.30);
}
[data-theme="light"] .vet-node.lit {
    background: var(--l-accent-fill);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 0 24px rgba(47,143,78,0.40);
}

/* ══ INDUSTRIES ══════════════════════════════════════════════════════════════ */
/* I1 — Hero: the dark-mode ambient bleeds grey onto warm paper. Kill every layer
   that carries a hardcoded dark value (the "light-mode dark-overlay bleed" trap):
   • .ind-scrim = a dark radial vignette (rgba(10,9,18,.62) mid-stop) → the grey
     smudge behind the headline. Swap to a faint GREEN wash on paper.
   • .ind-seam  = dark gradient dissolve at the bottom → fade to paper, not navy.
   • .ind-ring / .ind-node-tile = purple chrome → faint green.
   Headline text already cascades to ink on clean paper. */
[data-theme="light"] .ind-scrim {
    background: radial-gradient(ellipse at center,
        rgba(47,143,78,0.05) 0%, rgba(47,143,78,0.02) 42%, transparent 72%);
}
[data-theme="light"] .ind-seam {
    background: linear-gradient(180deg, transparent 0%, rgba(242,237,228,0.55) 55%, var(--l-page) 100%);
}
[data-theme="light"] .ind-ring { border-color: rgba(36,113,61,0.10); }
[data-theme="light"] .ind-node-tile {
    background: var(--l-accent-tint);
    border: 1px solid rgba(36,113,61,0.24);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.6), 0 6px 18px -8px rgba(16,18,32,0.14);
    color: var(--l-accent);
}
[data-theme="light"] .ind-node-tile.deep {
    background: rgba(47,143,78,0.16);
    border-color: rgba(36,113,61,0.42);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.7), 0 8px 22px -8px rgba(16,18,32,0.18);
    color: var(--l-accent);
}

/* I2 — Feature cards (Roles / Systems / Compliance): dark glass → white cards;
   chip tags (DME Billing, HIPAA…) → ink-on-green-tint, readable. */
[data-theme="light"] .hc-panel {
    border: 1px solid var(--l-border);
    background:
        radial-gradient(420px circle at 50% -8%, rgba(47,143,78,0.06), transparent 62%),
        var(--l-surface);
    box-shadow: var(--l-card-shadow);
}
[data-theme="light"] .hc-panel:hover { border-color: rgba(47,143,78,0.40); }
[data-theme="light"] .hc-p-no { color: var(--l-accent); }
[data-theme="light"] .hc-p-label { color: var(--l-ink-3); }
[data-theme="light"] .hc-p-body h3 { color: var(--l-ink); }
[data-theme="light"] .hc-tags span {
    color: var(--l-ink);
    background: var(--l-accent-tint);
    border: 1px solid rgba(36,113,61,0.20);
}
[data-theme="light"] .hc-panel:hover .hc-tags span { border-color: rgba(47,143,78,0.34); }

/* ══ CONTACT ═════════════════════════════════════════════════════════════════ */
/* C1 — FAQ accordion: a later .accordion-item rule HARDCODES a dark purple glass
   gradient (rgba(28,20,52,.4)→rgba(14,12,26,.7)) that beats --gradient-card, so the
   closed cards stayed dark-on-dark. Force the white surface + green chrome. */
[data-theme="light"] .accordion-item {
    background: var(--l-surface);
    border: 1px solid var(--l-border);
    box-shadow: var(--l-card-shadow);
}
[data-theme="light"] .accordion-item[open] { box-shadow: 0 14px 40px -18px rgba(47,143,78,0.30); }
[data-theme="light"] .accordion-item:hover { border-color: rgba(47,143,78,0.30); }
[data-theme="light"] .accordion-item[open] { border-color: rgba(47,143,78,0.45); }
[data-theme="light"] .accordion-item[open] .accordion-toggle { color: var(--l-accent); }
/* open question was light-fern #3EA85F (fails AA on white) → deep green #24713D (AA). */
[data-theme="light"] .accordion-item[open] .accordion-header span { color: var(--l-accent); }

/* C3 — Nav over the ONE intentional dark skyline hero ("Let's talk"). The navbar
   is transparent at the top (JS removes .scrolled at scrollY<100) → in light mode
   its dark ink links vanish on the dark hero. Fix ONLY the top/transparent state:
   force light text/logo/toggle so the nav reads on the hero. Once scrolled past
   the hero onto light content, .navbar.scrolled keeps the NORMAL light nav (dark
   text on light bg) — we deliberately DON'T touch that. Scoped to .contact-page. */
[data-theme="light"] .contact-page .navbar:not(.scrolled) .nav-link { color: rgba(255,255,255,0.85); }
[data-theme="light"] .contact-page .navbar:not(.scrolled) .nav-link:hover,
[data-theme="light"] .contact-page .navbar:not(.scrolled) .nav-link.active { color: #fff; }
[data-theme="light"] .contact-page .navbar:not(.scrolled) .nav-logo .logo-ark { color: #fff; }
[data-theme="light"] .contact-page .navbar:not(.scrolled) .theme-toggle .theme-icon-sun  { color: #fff; opacity: 1; }
[data-theme="light"] .contact-page .navbar:not(.scrolled) .theme-toggle .theme-icon-moon { color: rgba(255,255,255,0.55); }

/* ══ MOBILE HERO GLASS CARD (About / Services / home) ════════════════════════
   On phones (≤860px) the hero copy sits in a frosted "iOS glass" card that is
   hardcoded DARK (rgba(16,13,32,0.5)) → in light mode that's a dark slab bleeding
   over warm paper behind the headline. Flip it to a frosted WHITE card so the
   mobile light hero stays clean. (Desktop heroes have no card → unaffected.) */
@media (max-width: 860px) {
    [data-theme="light"] .about-ambient-page .about-hero-inner,
    [data-theme="light"] .svc-ambient-page .about-hero-inner,
    [data-theme="light"] .cine-hero .cine-container {
        background: rgba(255,253,250,0.72);
        border: 1px solid var(--l-border);
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.6), 0 20px 48px -26px rgba(16,18,32,0.22);
    }
}

/* C2 — Embedded map: dark-mode uses grayscale+INVERT (turns the light Google map
   dark). In light mode the invert washes it out/blank → drop the invert, keep a
   gentle light greyscale so the map reads clean and fits the paper theme. */
[data-theme="light"] .map-section { background: var(--l-page); }
[data-theme="light"] .map-wrapper { border-color: var(--l-border); box-shadow: var(--l-card-shadow); }

/* ═══════════════════════════════════════════════════════════════════════════
   FINAL LIGHT-THEME GREEN CLEANUP  (light-scoped only — dark mode untouched)
   Bespoke components that hardcode purple (they don't read the accent token) and
   so were missed by the earlier green roll-out. Every value below is scoped to
   [data-theme="light"]; DARK MODE KEEPS ITS PURPLE. Green map:
     solid fill / dot / big accent  → #2F8F4E  (or gradient 135deg #2F8F4E→#3EA85F)
     small text / icon / stroke     → #24713D  (AA-body on light)
     faint tint fill                → rgba(47,143,78,0.10)  /  #E4F1E8
     faint border (was purple-alpha)→ rgba(47,143,78,0.28)
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- Theme toggle thumb glow (all pages) — was rgba(139,107,240,.55) ---------- */
[data-theme="light"] .theme-toggle .toggle-thumb {
    box-shadow: 0 2px 8px rgba(47,143,78,0.45), 0 0 0 1px rgba(47,143,78,0.10) inset;
}

/* --- Back-to-top FAB (ALL pages) — border/glow were lavender ------------------ */
[data-theme="light"] .back-to-top {
    background: linear-gradient(135deg, #2F8F4E 0%, #3EA85F 100%);
    border-color: rgba(47,143,78,0.5);
    box-shadow: 0 0 30px rgba(47,143,78,0.42);
}
[data-theme="light"] .back-to-top:hover {
    box-shadow: 0 0 50px rgba(47,143,78,0.6);
}

/* ── CONTACT ─────────────────────────────────────────────────────────────── */
/* City eyebrow on the dark hero — lavender labels → light mint (legible on #000) */
[data-theme="light"] .cta-city-label { color: rgba(219,240,225,0.94); }
[data-theme="light"] .cta-city-sub   { color: rgba(200,226,208,0.60); }
/* info-icon tiles (contact cards) — periwinkle inner glow → green tint */
[data-theme="light"] .info-icon {
    box-shadow: 0 6px 18px rgba(47,143,78,0.16);
}
/* "What happens next" collapsible: trigger + step rows — purple tint/border */
[data-theme="light"] .next-trigger { border-color: rgba(47,143,78,0.30); }
[data-theme="light"] .next-trigger:hover {
    background: rgba(47,143,78,0.14);
    border-color: rgba(47,143,78,0.55);
    box-shadow: 0 12px 40px rgba(47,143,78,0.28);
}
[data-theme="light"] .next-reveal.is-open .next-trigger {
    background: rgba(47,143,78,0.10);
    border-color: rgba(47,143,78,0.45);
}
[data-theme="light"] .next-step { border-color: rgba(47,143,78,0.18); }
[data-theme="light"] .next-step:hover { border-color: rgba(47,143,78,0.40); }
/* trust cards icon tile — purple-alpha border → green tint */
[data-theme="light"] .trust-card__icon {
    border-color: rgba(47,143,78,0.28);
    background: rgba(47,143,78,0.08);
}
[data-theme="light"] .trust-card__icon svg { color: #24713D; stroke: #24713D; }
/* audience tags + SLA pill — purple tint chips → green tint */
[data-theme="light"] .audience-tag,
[data-theme="light"] .sla-pill {
    border-color: rgba(47,143,78,0.35);
    background: rgba(47,143,78,0.08);
}
[data-theme="light"] .audience-tag i,
[data-theme="light"] .sla-pill i { color: #24713D; }
/* swipe-to-submit control: track gradient + done overlay + focus ring were purple */
[data-theme="light"] .swipe-submit {
    background: linear-gradient(135deg, #2F8F4E, #3EA85F);
    box-shadow: 0 12px 34px -10px rgba(47,143,78,0.65);
}
[data-theme="light"] .swipe-submit::before {
    background: linear-gradient(135deg, #3EA85F, #4CB86D);
}
[data-theme="light"] .swipe-submit:focus-visible { outline-color: #2F8F4E; }
/* thumb arrow was #5938C9 → deep green */
[data-theme="light"] .swipe-thumb { color: #24713D; }
[data-theme="light"] .swipe-thumb i,
[data-theme="light"] .swipe-thumb .fa-arrow-right { color: #24713D; }
/* the small SVG diagram inside the "next" reveal — purple circles/paths → green */
[data-theme="light"] .next-step svg circle,
[data-theme="light"] .trust-card__icon svg circle { stroke: #24713D; fill: rgba(47,143,78,0.12); }
[data-theme="light"] .next-step svg path,
[data-theme="light"] .trust-card__icon svg path { stroke: #24713D; }
/* trust-card glyph: inline fill/stroke attrs on path + rect (attrs lose to CSS) */
[data-theme="light"] .trust-card__icon svg path,
[data-theme="light"] .trust-card__icon svg rect,
[data-theme="light"] .trust-card__icon svg line,
[data-theme="light"] .trust-card__icon svg polyline { stroke: #24713D; }
[data-theme="light"] .trust-card__icon svg path[fill]:not([fill="none"]),
[data-theme="light"] .trust-card__icon svg rect[fill]:not([fill="none"]) { fill: rgba(47,143,78,0.12); }

/* ── SERVICES ────────────────────────────────────────────────────────────── */
/* floating capability tiles (svc-tile t1..t8) — lavender borders → green tint */
[data-theme="light"] .svc-tile { border-color: rgba(47,143,78,0.28); }
[data-theme="light"] .svc-tile svg,
[data-theme="light"] .svc-tile i { color: #24713D; }
/* roles tab active icon — was gradient purple + lavender glow */
[data-theme="light"] .roles-tab.is-active .roles-tab-ic {
    background: linear-gradient(135deg, #2F8F4E, #3EA85F);
    box-shadow: 0 8px 24px rgba(47,143,78,0.35);
}
[data-theme="light"] .roles-tab-ic { border-color: rgba(47,143,78,0.28); }
/* vetting progress track — purple fill → green fill */
[data-theme="light"] .vet-track { background: rgba(47,143,78,0.18); }
/* deck slide captions + connector diagram (paths/text nodes were periwinkle) */
[data-theme="light"] .svc-ambient-page svg text,
[data-theme="light"] .svc-hero-field text { fill: #24713D; }
[data-theme="light"] .svc-ambient-page svg path[stroke],
[data-theme="light"] .svc-hero-field path[stroke] { stroke: rgba(47,143,78,0.28); }
[data-theme="light"] .svc-ambient-page svg circle[stroke],
[data-theme="light"] .svc-hero-field circle[stroke] { stroke: rgba(47,143,78,0.28); }

/* ── ABOUT ───────────────────────────────────────────────────────────────── */
/* left rail + proof ring + satellite icons — purple-alpha chrome → green */
[data-theme="light"] .ab-rows--in { border-left-color: rgba(47,143,78,0.20); }
[data-theme="light"] .proof-ring {
    border-top-color: rgba(47,143,78,0.28);
    border-right-color: rgba(47,143,78,0.18);
}
[data-theme="light"] .proof-sat-icon { border-color: rgba(47,143,78,0.40); }
[data-theme="light"] .proof-sat-icon svg,
[data-theme="light"] .proof-sat-icon i { color: #24713D; }
/* founder deck photo frame — purple border → green */
[data-theme="light"] .deck-photo { border-color: rgba(47,143,78,0.35); }
/* about diagram: orbit / flow / glow / hub / ray — periwinkle line-art → green */
[data-theme="light"] .da-orbit  { stroke: rgba(47,143,78,0.14); }
[data-theme="light"] .da-flow   { stroke: rgba(47,143,78,0.50); }
[data-theme="light"] .da-glow   { fill: rgba(47,143,78,0.45); }
[data-theme="light"] .da-hub    { fill: #2F8F4E; }
[data-theme="light"] .da-ray    { stroke: rgba(47,143,78,0.85); }
/* journey roadmap: track + node rings + connector paths + step labels → green */
[data-theme="light"] .journey-track { background: rgba(47,143,78,0.16); }
[data-theme="light"] .journey-svg circle[stroke],
[data-theme="light"] .ab-journey svg circle[stroke] { stroke: rgba(47,143,78,0.22); }
[data-theme="light"] .journey-svg path[stroke],
[data-theme="light"] .ab-journey svg path[stroke] { stroke: rgba(47,143,78,0.20); }
[data-theme="light"] .journey-svg text,
[data-theme="light"] .ab-journey svg text { fill: #24713D; }

/* ── INDUSTRIES ──────────────────────────────────────────────────────────── */
/* seam cue + "also serve" row icons — purple chrome → green */
[data-theme="light"] .ind-seam-cue { border-color: rgba(47,143,78,0.35); }
[data-theme="light"] .also-row-ic { border-color: rgba(47,143,78,0.28); }
[data-theme="light"] .also-row-ic svg,
[data-theme="light"] .also-row-ic i { color: #24713D; }
/* industries backdrop circuit paths/rings — hardcoded #8B6BF0 → green */
[data-theme="light"] .ind-ambient-page .ind-hero-field path[stroke],
[data-theme="light"] .ind-hero-field path[stroke] { stroke: rgba(47,143,78,0.20); }
[data-theme="light"] .ind-ambient-page .ind-hero-field circle[stroke],
[data-theme="light"] .ind-hero-field circle[stroke] { stroke: rgba(47,143,78,0.22); }
/* hero seam arc (ambient chrome) — inline stroke attr → green */
[data-theme="light"] .ind-seam-arc path,
[data-theme="light"] .ind-seam path { stroke: rgba(47,143,78,0.14); }
/* NOTE: .hc-pic glyph SVGs (person node / </> sphere / shield) are the signed-off
   bespoke glass-3D ARK illustrations — INTENTIONALLY LEFT PURPLE in both themes. */

/* closing CTA "signal" rings (.sr1..4) appear on multiple pages — faint chrome → green */
[data-theme="light"] .cta-signal .sr1,
[data-theme="light"] .cta-signal .sr2,
[data-theme="light"] .cta-signal .sr3,
[data-theme="light"] .cta-signal .sr4,
[data-theme="light"] .cine-cta--signal .sr1,
[data-theme="light"] .cine-cta--signal .sr2,
[data-theme="light"] .cine-cta--signal .sr3,
[data-theme="light"] .cine-cta--signal .sr4 { stroke: rgba(47,143,78,0.05); }   /* whisper — 0.10 read as dark arcs on the wash (2026-07-02) */
/* the ambient pages paint EVERY svg circle at 0.22–0.28 (page-wide rules above);
   these outrank the whisper rule, so re-assert it with more weight for the CTA */
[data-theme="light"] .svc-ambient-page .cine-cta--signal svg circle[stroke],
[data-theme="light"] .ind-ambient-page .cine-cta--signal svg circle[stroke],
[data-theme="light"] .about-ambient-page .cine-cta--signal svg circle[stroke] { stroke: rgba(47,143,78,0.05); }

/* ── HOME ────────────────────────────────────────────────────────────────── */
/* code-window illustration chrome (cobj) — periwinkle fills/borders → green tint */
[data-theme="light"] .cobj { border-color: rgba(47,143,78,0.14); }
[data-theme="light"] .cobj-code { color: rgba(36,113,61,0.5); border-color: rgba(47,143,78,0.30); }
[data-theme="light"] .cobj-code .kw { color: rgba(36,113,61,0.7); }
[data-theme="light"] .cobj-av,
[data-theme="light"] .cobj-ln,
[data-theme="light"] .cobj-num,
[data-theme="light"] .cobj-cap { background: rgba(47,143,78,0.20); }
[data-theme="light"] .cobj-glyph,
[data-theme="light"] .cobj-braces,
[data-theme="light"] .cobj-people { color: rgba(47,143,78,0.20); border-color: rgba(47,143,78,0.20); }
[data-theme="light"] .cobj-chart polyline,
[data-theme="light"] .cobj svg polyline { stroke: rgba(47,143,78,0.45); }
/* typewriter caret + hero mini-diagram peak → green */
[data-theme="light"] .tw-caret { box-shadow: 0 0 8px rgba(47,143,78,0.9); background: #2F8F4E; }
[data-theme="light"] .diag-peak-glow { stroke: #2F8F4E; }
[data-theme="light"] .diag-peak-core { fill: #3EA85F; }
[data-theme="light"] .cine-diagram tspan.kw,
[data-theme="light"] .cine-diagram .kw { fill: #24713D; }
/* closing CTA merge diagram: purple strands/flow/nodes → green (blue glow, if any,
   is defined elsewhere and stays; these strands were periwinkle, not blue) */
[data-theme="light"] .cta-strand,
[data-theme="light"] .cta-s1,
[data-theme="light"] .cta-s2,
[data-theme="light"] .cta-s3 { stroke: rgba(47,143,78,0.55); }
[data-theme="light"] .cta-flow { color: #2F8F4E; }
[data-theme="light"] .cta-flow use,
[data-theme="light"] .cta-merge use { color: #2F8F4E; }
[data-theme="light"] .cta-flow circle,
[data-theme="light"] .cta-merge circle[fill] { fill: #2F8F4E; stroke: #3EA85F; }

/* ── HOME: preloader (flashes on load; dark-styled purple icons) → green ─────── */
[data-theme="light"] .preloader .circuit-svg .node,
[data-theme="light"] .preloader .circuit-svg .pulse,
[data-theme="light"] .preloader .circuit-svg .pulse animatemotion { fill: #3EA85F; }
[data-theme="light"] .preloader .tech-icon {
    color: #24713D;
    background: rgba(47,143,78,0.10);
    border-color: rgba(47,143,78,0.25);
}
[data-theme="light"] .preloader .tech-icon i { color: #24713D; border-color: #2F8F4E; }
[data-theme="light"] .preloader .preloader-progress { box-shadow: 0 0 12px rgba(47,143,78,0.6); }

/* ── HOME: cine-hero code/staff/deliver theme illustration chrome (faint cobj) ─ */
[data-theme="light"] .cobj-dots i,
[data-theme="light"] .cobj-av,
[data-theme="light"] .obj-avatars i,
[data-theme="light"] .obj-bars i { background: rgba(47,143,78,0.24); }
[data-theme="light"] .obj-avatars i,
[data-theme="light"] .cobj-avatars i { border-color: rgba(47,143,78,0.22); }
[data-theme="light"] .obj-glyph,
[data-theme="light"] .obj-braces,
[data-theme="light"] .obj-people,
[data-theme="light"] .obj-people i,
[data-theme="light"] .obj-people i.fas { color: rgba(47,143,78,0.20); border-color: rgba(47,143,78,0.20); }

/* ── ABOUT: "what sets us apart" animated deck — SVG diagram (labels/paths/nodes)
   inline fill/stroke attrs → green. NOT a glass-3D glyph, so it greens. ──────── */
[data-theme="light"] .apart-art text,
[data-theme="light"] .apart-slide text,
[data-theme="light"] #apartStage text { fill: #24713D; }
[data-theme="light"] .apart-art path[stroke],
[data-theme="light"] .apart-slide path[stroke],
[data-theme="light"] #apartStage path[stroke] { stroke: rgba(47,143,78,0.55); }
[data-theme="light"] .apart-art circle[stroke],
[data-theme="light"] .apart-slide circle[stroke],
[data-theme="light"] #apartStage circle[stroke] { stroke: rgba(47,143,78,0.28); }
[data-theme="light"] .apart-art path[fill]:not([fill="none"]):not([fill^="url("]),
[data-theme="light"] .apart-slide path[fill]:not([fill="none"]):not([fill^="url("]),
[data-theme="light"] #apartStage path[fill]:not([fill="none"]):not([fill^="url("]) { fill: #2F8F4E; }
/* Gradient-filled circles (url(#…-halo/-glass/-refl)) are translucent glow
   layers — flattening them to solid green produced the giant opaque disc that
   swallowed the art. Exclude them here; their STOPS are recolored below. */
[data-theme="light"] .apart-art circle[fill]:not([fill="none"]):not([fill^="url("]),
[data-theme="light"] #apartStage circle[fill]:not([fill="none"]):not([fill^="url("]) { fill: #2F8F4E; }

/* Recolor the halo/reflection gradient STOPS purple -> fern, keeping their
   original near-transparent opacities (that's what makes them a glow, not a disc) */
[data-theme="light"] #sd-halo stop,
[data-theme="light"] #ap-halo stop,
[data-theme="light"] #sd-refl stop,
[data-theme="light"] #ap-refl stop { stop-color: #2F8F4E; }

/* Glass gradient (shield/badge 3D shading): purple ramp -> fern ramp,
   preserving the light->mid->deep modelling that makes it read as glass */
[data-theme="light"] #sd-glass stop:nth-of-type(1),
[data-theme="light"] #ap-glass stop:nth-of-type(1) { stop-color: #9FD4AF; }
[data-theme="light"] #sd-glass stop:nth-of-type(2),
[data-theme="light"] #ap-glass stop:nth-of-type(2) { stop-color: #3EA85F; }
[data-theme="light"] #sd-glass stop:nth-of-type(3),
[data-theme="light"] #ap-glass stop:nth-of-type(3) { stop-color: #1F6136; }

/* ── GRADIENT-TEXT + GRADIENT-FILL leaks (background-clip:text keeps the purple
   gradient even when `color` is set — must override the BACKGROUND gradient). ── */
/* section eyebrow badges ("Who We Are" / "What we do" / "FAQ" …) — gradient text */
[data-theme="light"] .section-badge span,
[data-theme="light"] .about-badge span {
    background: linear-gradient(135deg, #24713D 0%, #2F8F4E 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: #24713D;   /* fallback for non-clip renderers → AA green */
}
/* ABOUT proof stats: big gradient numbers + reach text + bar fill */
[data-theme="light"] .proof-num,
[data-theme="light"] .proof-sat-figure--text {
    background: linear-gradient(135deg, #24713D 0%, #2F8F4E 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: #24713D;
}
[data-theme="light"] .proof-bars span,
[data-theme="light"] .proof-bar {
    background: linear-gradient(180deg, #2F8F4E, #3EA85F);
}
/* CONTACT + shared: .info-icon / .step-number tiles carry a HARDCODED purple
   gradient (overrides the green token) → force green gradient in light mode. */
[data-theme="light"] .info-icon,
[data-theme="light"] .step-number {
    background: linear-gradient(135deg, #2F8F4E 0%, #3EA85F 100%);
    box-shadow: 0 8px 25px rgba(47,143,78,0.35), 0 0 30px rgba(47,143,78,0.16);
}
/* trust bar icon (hardcoded purple tint gradient + border) */
[data-theme="light"] .trust-icon {
    background: linear-gradient(135deg, rgba(47,143,78,0.16) 0%, rgba(47,143,78,0.24) 100%);
    border-color: rgba(47,143,78,0.30);
}
/* HOME preloader gradient chrome (flashes on load) + hidden aurora → green */
[data-theme="light"] .preloader .bracket,
[data-theme="light"] .preloader .tagline-divider {
    background: linear-gradient(135deg, #2F8F4E 0%, #3EA85F 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
[data-theme="light"] .preloader .preloader-progress {
    background: linear-gradient(90deg, #2F8F4E 0%, #3EA85F 100%);
}
[data-theme="light"] .cine-aurora {
    background: radial-gradient(circle, rgba(47,143,78,0.30) 0%, transparent 70%);
}

/* ═══════════════════════════════════════════════════════════════════════════
   PASS 2 — #6D4AE6 (rgb 109,74,230) family leaks. These core-brand-purple
   rgba tints sit right on the purple/blue boundary and were only surfaced after
   tightening the detector. All light-scoped; dark mode keeps them purple.
   ═══════════════════════════════════════════════════════════════════════════ */

/* shared: hero feature-icon tiles + orbit icons + manifest label numbers */
[data-theme="light"] .cine-feat-icon {
    background: rgba(47,143,78,0.12);
    border-color: rgba(47,143,78,0.26);
}
[data-theme="light"] .cine-feat-icon svg,
[data-theme="light"] .cine-feat-icon i { color: #24713D; }
[data-theme="light"] .cine-orbit-icon { border-color: rgba(47,143,78,0.30); }
[data-theme="light"] .cine-orbit-icon svg,
[data-theme="light"] .cine-orbit-icon i { color: #24713D; }
[data-theme="light"] .cine-mani-label-num { border-color: rgba(47,143,78,0.30); }

/* HOME: hero mini-diagram (matched window / check ring / lit bars) + circuit paths */
[data-theme="light"] .diag-win.matched { fill: rgba(47,143,78,0.06); stroke: rgba(47,143,78,0.40); }
[data-theme="light"] .diag-check-ring { fill: rgba(47,143,78,0.14); }
[data-theme="light"] .cine-diagram .lit,
[data-theme="light"] rect.lit { fill: rgba(47,143,78,0.50); }
[data-theme="light"] .circuit-path { stroke: rgba(47,143,78,0.15); }
[data-theme="light"] .cta-glow { background: radial-gradient(circle, rgba(47,143,78,0.10) 0%, transparent 70%); }
/* the lone tw-caret shadow span */
[data-theme="light"] .tw-caret,
[data-theme="light"] .cine-hero .tw-caret { box-shadow: 0 0 8px rgba(47,143,78,0.6); }

/* ABOUT: ambient glows + proof glow + deck-photo shadow + reach ghost/globe/signal */
[data-theme="light"] .am-glow { background: radial-gradient(circle, rgba(47,143,78,0.05) 0%, transparent 70%); }
[data-theme="light"] .proof-glow { background: radial-gradient(circle, rgba(47,143,78,0.22) 0%, transparent 70%); }
[data-theme="light"] .deck-photo { box-shadow: 0 24px 60px -24px rgba(47,143,78,0.45); }
[data-theme="light"] .reach-ghost { color: rgba(47,143,78,0.05); border-color: rgba(47,143,78,0.05); outline-color: rgba(47,143,78,0.05); }
[data-theme="light"] .reach-globe-ring { background: radial-gradient(circle, rgba(47,143,78,0.14) 0%, transparent 70%); }
[data-theme="light"] .cta-signal-core { background: radial-gradient(circle, rgba(47,143,78,0.18) 0%, transparent 70%); }

/* SERVICES: svc-tile tile FILL (bg) + active roles tab bg/border + tab-icon bg
   + vetting fill glow + connector ico-line strokes + node rect fill/stroke */
[data-theme="light"] .svc-tile { background: rgba(47,143,78,0.10); }
[data-theme="light"] .roles-tab.is-active {
    background: rgba(47,143,78,0.10);
    border-color: rgba(47,143,78,0.55);
}
[data-theme="light"] .roles-tab:not(.is-active) .roles-tab-ic { background: rgba(47,143,78,0.12); }
[data-theme="light"] .vet-fill { box-shadow: 0 0 12px rgba(47,143,78,0.7); }
[data-theme="light"] .ico-line { stroke: rgba(36,113,61,0.9); }
[data-theme="light"] .svc-ambient-page rect[fill]:not([fill="none"]),
[data-theme="light"] .svc-hero-field rect[fill]:not([fill="none"]) { fill: #2F8F4E; }
[data-theme="light"] .svc-ambient-page rect[stroke],
[data-theme="light"] .svc-hero-field rect[stroke] { stroke: rgba(47,143,78,0.55); }

/* CONTACT: city divider hairline + primary audience card shadow + next-trigger bg
   + step-number glow + trust-card glow */
[data-theme="light"] .cta-city-divider { background: rgba(47,143,78,0.28); }
[data-theme="light"] .audience-card.primary { box-shadow: 0 20px 50px -20px rgba(47,143,78,0.45); }
[data-theme="light"] .next-trigger { background: rgba(47,143,78,0.08); }
[data-theme="light"] .next-step-num { box-shadow: 0 4px 14px rgba(47,143,78,0.45); }
[data-theme="light"] .trust-card__glow { background: radial-gradient(circle, rgba(47,143,78,0.22) 0%, transparent 70%); }

/* PASS 2b — remaining #6D4AE6 glow box-shadows + the diag chart lit bars + nodes */
[data-theme="light"] .cine-diagram .diag-chart-bars rect.lit { fill: rgba(47,143,78,0.5); }
[data-theme="light"] .tw-caret-progress,
[data-theme="light"] .cine-hero-title .tw-caret,
[data-theme="light"] .type-caret,
[data-theme="light"] .caret-progress { box-shadow: 0 0 12px rgba(47,143,78,0.6); }
[data-theme="light"] .mv-card:hover .mv-icon { box-shadow: 0 0 40px rgba(47,143,78,0.6); }
[data-theme="light"] .journey-node.lit { box-shadow: 0 0 30px rgba(47,143,78,0.6); }
[data-theme="light"] .journey-node { box-shadow: 0 0 0 rgba(47,143,78,0.07); }
[data-theme="light"] .journey-step:hover .journey-node { box-shadow: 0 0 50px rgba(47,143,78,0.6); }
[data-theme="light"] .vet-node.lit { box-shadow: 0 0 30px rgba(47,143,78,0.6); }
/* catch-all: any progress/scan bar that uses var(--gradient-primary) + purple glow */
[data-theme="light"] .cine-hero-title span[class*="caret"] { box-shadow: 0 0 12px rgba(47,143,78,0.6); }
/* top scroll-progress bar glow */
[data-theme="light"] .cine-progress span { box-shadow: 0 0 12px rgba(47,143,78,0.6); }
[data-theme="light"] .map-wrapper iframe { filter: grayscale(38%) contrast(96%) brightness(1.02); }


/* Final purple sweep — Industries "We Also Staff" icon tiles + one orbiter kept a
   purple-tint background/border in light mode; green them to match. */
[data-theme="light"] .also-row-ic { background: rgba(47, 143, 78, 0.10); }
[data-theme="light"] .ind-orbiters.o2 { border-color: rgba(47, 143, 78, 0.28); }


/* ════════════════════════════════════════════════════════════════════
   GLOBAL REDUCED-MOTION SAFETY NET (WCAG 2.3.3)
   The per-component reduced-motion blocks above handle elements needing a
   specific static end-state; this universal fallback guarantees NOTHING
   keeps spinning/drifting/sweeping for vestibular-sensitive users — the
   heaviest infinite animations (aurora orbs, marquees, ring spins) had no
   individual override. Duration 0.001ms + single iteration = every
   animation snaps to its final frame instantly.
   ════════════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
    }
    html { scroll-behavior: auto !important; }
}


/* ════════════════════════════════════════════════════════════════════
   LIGHT-MODE BUG SWEEP (2026-07-01 review) — hardcoded dark-theme literals
   that the light token remap could not reach.
   ════════════════════════════════════════════════════════════════════ */

/* About "Who we are" rows — label + body were hardcoded white-on-paper */
[data-theme="light"] .ab-row-txt  { color: var(--l-ink-3); }
[data-theme="light"] .ab-row-body { color: var(--l-ink-2); }

/* Home manifesto closing pull-quote — was lavender rgba(200,190,220,.82) on cream
   (≈1.5:1 contrast). Ink text, fern rail. */
[data-theme="light"] .cine-mani-closing {
    color: var(--l-ink-2);
    border-left-color: var(--l-accent-fill);
}

/* About journey traveling head-dot — halo was lavender in the green theme */
[data-theme="light"] .journey-track::before {
    box-shadow: 0 0 16px 5px rgba(47, 143, 78, 0.6);
}

/* Contact "What happens next" — the 3 step cards were dark slabs with
   near-invisible grey body text on paper. Proper light cards. */
[data-theme="light"] .next-panel-title { color: var(--l-ink); }
[data-theme="light"] .next-step {
    background: var(--l-surface);
    border: var(--l-card-border);
    box-shadow: var(--l-card-shadow);
}
[data-theme="light"] .next-step:hover {
    border-color: rgba(47, 143, 78, 0.45);
    background: #FFFFFF;
}
[data-theme="light"] .next-step-num { box-shadow: 0 10px 26px rgba(47, 143, 78, 0.30); }
[data-theme="light"] .next-step-body h4 { color: var(--l-ink); }
[data-theme="light"] .next-step-body p  { color: var(--l-ink-2); }

/* Services + Industries closing CTA sign-off ("Houston · Founder-led") —
   was white @ 30% on the light band: invisible */
[data-theme="light"] .cine-cta--signal .cta-signoff { color: var(--l-ink-3); }

/* Light footer must be OPAQUE: the fixed .svc-ambient / page ambient layers
   (z-index:-1) showed their icon tiles + orbit lines through the transparent
   footer, littering the columns. Dark footers were already visually opaque. */
[data-theme="light"] .footer,
[data-theme="light"] footer {
    background: #F8F5EF;   /* literal, not var(--l-page): that var mysteriously drops in Chrome (see hero paper-bg note) */
}

/* The white-over-skyline nav links (contact page, un-scrolled navbar) must NOT
   leak into the OPEN mobile drawer — the drawer panel is light in light mode,
   so white links were unreadable there. Ink wins inside the active drawer. */
[data-theme="light"] .contact-page .navbar:not(.scrolled) .nav-menu.active .nav-link { color: var(--l-ink); }
[data-theme="light"] .contact-page .navbar:not(.scrolled) .nav-menu.active .nav-link:hover { color: var(--l-accent); }
[data-theme="light"] .contact-page .navbar:not(.scrolled) .nav-menu.active .nav-link.nav-cta { color: var(--on-accent); }

/* Preloader must be OPAQUE in light mode. Its background reads var(--navy-900)
   -> [light] var(--l-page) -> the one custom property Chrome silently drops,
   so the overlay went TRANSPARENT and its logo/grid/status text floated over
   the page on every refresh (the "ghost logo" glitch). Literal hex, like the
   footer + hero paper-bg workarounds. */
[data-theme="light"] .preloader {
    background: #F8F5EF;
}

/* ════════════════════════════════════════════════════════════════════
   FIRST-VISIT THEME CUE — one-time callout under the theme toggle.
   "Dark by default, yours by choice." Built by initThemeCue() in main.js;
   shows once per browser (localStorage arkfortune-theme-cue), desktop only.
   ════════════════════════════════════════════════════════════════════ */
.theme-cue {
    position: fixed;
    z-index: 10003;
    width: 296px;
    padding: 18px 20px 16px;
    border-radius: 16px;
    background: rgba(22, 17, 40, 0.92);
    -webkit-backdrop-filter: blur(14px) saturate(150%);
    backdrop-filter: blur(14px) saturate(150%);
    border: 1px solid rgba(139, 107, 240, 0.35);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(139, 107, 240, 0.08) inset;
    opacity: 0;
    transform: translateY(-8px) scale(0.98);
    transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: none;
}
.theme-cue.is-in { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
/* little diamond arrow pointing up at the toggle */
.theme-cue::before {
    content: '';
    position: absolute;
    top: -7px;
    right: var(--arrow-right, 28px);
    width: 12px; height: 12px;
    background: rgba(22, 17, 40, 0.92);
    border-left: 1px solid rgba(139, 107, 240, 0.35);
    border-top: 1px solid rgba(139, 107, 240, 0.35);
    transform: rotate(45deg);
}
.theme-cue-title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.98rem;
    letter-spacing: -0.01em;
    color: #fff;
    margin: 0 0 6px;
}
.theme-cue-body {
    font-family: var(--font-secondary);
    font-size: 0.84rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.62);
    margin: 0 0 14px;
}
.theme-cue-btn {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 0.8rem;
    color: #fff;
    background: var(--gradient-primary);
    border-radius: 10px;
    padding: 8px 16px;
    transition: transform 0.2s ease, box-shadow 0.25s ease;
}
.theme-cue-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(109, 74, 230, 0.45); }
.theme-cue-btn:focus-visible { outline: 2px solid rgba(139, 107, 240, 0.8); outline-offset: 2px; }

[data-theme="light"] .theme-cue {
    background: #FFFDFA;
    border: 1px solid #E7E1D6;
    box-shadow: 0 18px 44px -10px rgba(16, 18, 32, 0.18), 0 2px 8px rgba(16, 18, 32, 0.06);
}
[data-theme="light"] .theme-cue::before {
    background: #FFFDFA;
    border-left-color: #E7E1D6;
    border-top-color: #E7E1D6;
}
[data-theme="light"] .theme-cue-title { color: var(--l-ink); }
[data-theme="light"] .theme-cue-body  { color: var(--l-ink-2); }
[data-theme="light"] .theme-cue-btn:hover { box-shadow: 0 8px 22px rgba(47, 143, 78, 0.4); }

/* =====================================================
   ASK AI — AI-ready site widget (button + modal)
   ===================================================== */

.ask-ai-trigger {
    position: fixed;
    /* Bottom-right, beside back-to-top (which owns right:30 and appears on
       scroll) — 30 + 50px circle + 16px gap; bottom centers the 40px pill
       against the 50px circle. */
    bottom: 35px;
    right: 96px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 18px;
    background: var(--tint-05);
    border: 1px solid var(--tint-10);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border-radius: 999px;
    color: var(--slate-300);
    font-family: var(--font-secondary);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    cursor: pointer;
    z-index: 998;
    transition: color var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-normal);
}

.ask-ai-trigger svg { color: var(--primary-blue-light); flex-shrink: 0; }

.ask-ai-trigger:hover {
    color: var(--white);
    border-color: rgba(139, 107, 240, 0.55);
    box-shadow: 0 0 30px rgba(109, 74, 230, 0.35);
    transform: translateY(-2px);
}

.ask-ai-overlay {
    position: fixed;
    inset: 0;
    background: rgba(8, 9, 18, 0.72);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--transition-normal), visibility var(--transition-normal);
    z-index: 2000;
}

.ask-ai-overlay.open { opacity: 1; visibility: visible; }

.ask-ai-modal {
    position: relative;
    width: 100%;
    max-width: 600px;
    max-height: 86vh;
    overflow-y: auto;
    background: linear-gradient(160deg, #14111F 0%, #0A0912 100%);
    border-radius: 24px;
    padding: 48px;
    /* One material story: deep lift shadow + inset top-light (no border+glow
       combo — that pairing is a logged rejected pattern). */
    box-shadow: 0 32px 80px -16px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transform: translateY(18px) scale(0.97);
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
    .ask-ai-modal { transition: none; transform: none; }
}

.ask-ai-overlay.open .ask-ai-modal { transform: translateY(0); }

.ask-ai-close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--slate-400);
    font-family: var(--font-secondary);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color var(--transition-fast), background var(--transition-fast);
}
.ask-ai-close:hover { color: var(--white); background: var(--tint-05); }
.ask-ai-close:focus-visible,
.ask-ai-copy:focus-visible {
    outline: 2px solid rgba(139, 107, 240, 0.8);
    outline-offset: 2px;
}

.ask-ai-eyebrow {
    display: inline-block;
    color: var(--primary-blue-light);
    font-family: var(--font-secondary);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    margin-bottom: 16px;
}

.ask-ai-title {
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    font-weight: 600;
    color: var(--white);
    line-height: 1.05;
    margin-bottom: 16px;
}

.ask-ai-body {
    color: var(--slate-400);
    font-size: 0.95rem;
    line-height: 1.65;
    margin-bottom: 28px;
}

/* Recessed prompt well — reads as a carved-in surface, not another outlined box */
.ask-ai-promptbox {
    background: rgba(5, 4, 10, 0.55);
    border: 1px solid var(--tint-10);
    border-radius: 16px;
    overflow: hidden;
}

.ask-ai-prompthead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 18px;
    border-bottom: 1px solid var(--tint-10);
    color: var(--slate-500);
    font-family: var(--font-secondary);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.ask-ai-copy {
    background: rgba(109, 74, 230, 0.14);
    border: 1px solid rgba(139, 107, 240, 0.35);
    border-radius: 999px;
    padding: 6px 14px;
    color: var(--primary-blue-light);
    font-family: var(--font-secondary);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);
}
.ask-ai-copy:hover { color: var(--white); background: rgba(109, 74, 230, 0.28); }
.ask-ai-copy.copied {
    color: #34d399;
    border-color: rgba(52, 211, 153, 0.4);
    background: rgba(52, 211, 153, 0.1);
}

.ask-ai-prompt {
    margin: 0;
    padding: 18px 16px;
    color: var(--slate-300);
    font-family: 'SF Mono', 'JetBrains Mono', ui-monospace, Menlo, monospace;
    font-size: 0.78rem;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-word;
}

.ask-ai-steps {
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
    margin-top: 28px;
    color: var(--slate-500);
    font-family: var(--font-secondary);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.ask-ai-steps span { display: inline-flex; align-items: baseline; gap: 9px; }

/* Serif numerals — the house Fraunces accent, real sequence not decoration */
.ask-ai-steps em {
    font: italic 400 1.05rem 'Fraunces', serif;
    color: var(--primary-blue-light);
    letter-spacing: 0;
}

.ask-ai-title em {
    font-family: 'Fraunces', serif;
    font-style: italic;
    font-weight: 380;
    color: var(--primary-blue-light);
}

/* Light theme — paper surfaces (literal hex: Chrome drops the paper var) */
[data-theme="light"] .ask-ai-trigger {
    background: rgba(255, 255, 255, 0.75);
    color: #3d3a45;
}
[data-theme="light"] .ask-ai-trigger:hover { color: #14121c; }
[data-theme="light"] .ask-ai-overlay { background: rgba(20, 18, 28, 0.45); }
[data-theme="light"] .ask-ai-modal {
    /* Approved light card system: white card + hairline + soft shadow */
    background: #FFFDFA;
    border: 1px solid #E7E1D6;
    box-shadow: 0 24px 64px -12px rgba(16, 18, 32, 0.20);
}
[data-theme="light"] .ask-ai-promptbox {
    background: #F4F0E8;
    border-color: #E7E1D6;
}
[data-theme="light"] .ask-ai-copy {
    background: rgba(47, 143, 78, 0.10);
    border-color: rgba(47, 143, 78, 0.30);
}
[data-theme="light"] .ask-ai-copy:hover { background: rgba(47, 143, 78, 0.18); color: #14121c; }
[data-theme="light"] .ask-ai-steps em,
[data-theme="light"] .ask-ai-title em { color: var(--primary-blue-dark); }
[data-theme="light"] .ask-ai-close:hover { background: rgba(14, 18, 32, 0.05); }
[data-theme="light"] .ask-ai-title { color: #14121c; }
[data-theme="light"] .ask-ai-body { color: #4a4652; }
[data-theme="light"] .ask-ai-prompt { color: #34313c; }
[data-theme="light"] .ask-ai-close:hover { color: #14121c; }
[data-theme="light"] .ask-ai-copy:hover { color: #14121c; }
[data-theme="light"] .ask-ai-eyebrow,
[data-theme="light"] .ask-ai-copy { color: var(--primary-blue-dark); }

@media (max-width: 640px) {
    .ask-ai-trigger { bottom: 35px; right: 88px; padding: 10px 14px; }
    .ask-ai-trigger span { display: none; }
    .ask-ai-modal { padding: 32px 24px; border-radius: 20px; }
    .ask-ai-steps { gap: 14px; }
}

/* Ask AI glyph — the infinity redraws itself once on hover (life via motion,
   not satellite specks). pathLength=100 on the path normalizes the length. */
.ask-ai-glyph path {
    stroke-dasharray: 100;
    stroke-dashoffset: 0;
}

/* Gradient stops read the theme accents (CSS stop-color beats the SVG
   attribute), so the glyph flips purple -> fern with the light theme. */
.ask-ai-glyph stop:first-child { stop-color: var(--primary-blue); }
.ask-ai-glyph stop:last-child  { stop-color: var(--primary-blue-light); }

[data-theme="light"] .ask-ai-trigger:hover {
    border-color: rgba(36, 113, 61, 0.45);
    box-shadow: 0 0 30px rgba(47, 143, 78, 0.25);
}

.ask-ai-trigger:hover .ask-ai-glyph path {
    animation: askAiDraw 0.9s ease-out;
}

@keyframes askAiDraw {
    from { stroke-dashoffset: 100; }
    to   { stroke-dashoffset: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .ask-ai-trigger:hover .ask-ai-glyph path { animation: none; }
}
