        /* =========================================================
       1. DESIGN TOKENS
       ========================================================= */
        :root {
            --navy: #060B14;
            /* deep space canvas */
            --navy-surface: rgba(13, 24, 44, 0.72);
            /* glassmorphic cards */
            --navy-surface-hover: rgba(18, 34, 62, 0.85);
            --navy-raised: #10223D;
            /* inputs, raised elements */
            --cyan: #00E5FF;
            /* neon cyan accent */
            --cyan-glow: rgba(0, 229, 255, 0.35);
            --cyan-dim: rgba(0, 229, 255, 0.12);
            --blue-accent: #3B82F6;
            --sky-accent: #38BDF8;
            --white: #FFFFFF;
            --grey: #94A3B8;
            --grey-light: #CBD5E1;
            --line: rgba(255, 255, 255, 0.08);
            --line-strong: rgba(0, 229, 255, 0.35);

            --font: "Sora", "Segoe UI", system-ui, -apple-system, sans-serif;
            --mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

            --radius: 16px;
            --radius-sm: 8px;
            --radius-lg: 24px;
            --header-h: 72px;
            --container: 1180px;
            --ease: cubic-bezier(0.16, 1, 0.3, 1);
        }

        /* =========================================================
       2. RESET AND BASE
       ========================================================= */
        *,
        *::before,
        *::after {
            box-sizing: border-box;
        }

        html {
            scroll-padding-top: calc(var(--header-h) + 8px);
            -webkit-text-size-adjust: 100%;
        }

        body {
            margin: 0;
            font-family: var(--font);
            font-size: 1rem;
            line-height: 1.7;
            color: var(--grey);
            background-color: #070D18;
            background-image: 
                linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
                linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
            background-size: 64px 64px;
            background-attachment: fixed;
            -webkit-font-smoothing: antialiased;
            overflow-x: hidden;
        }

        body.menu-open {
            overflow: hidden;
        }

        h1,
        h2,
        h3,
        p,
        ul {
            margin: 0;
        }

        ul {
            padding: 0;
            list-style: none;
        }

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

        img,
        svg {
            display: block;
            max-width: 100%;
        }

        h1,
        h2,
        h3 {
            color: var(--white);
            font-weight: 600;
        }

        h2 {
            font-size: clamp(1.9rem, 4.2vw, 2.9rem);
            line-height: 1.15;
            letter-spacing: -0.02em;
            max-width: 22ch;
        }

        h3 {
            font-size: 1.25rem;
            line-height: 1.3;
            letter-spacing: -0.01em;
        }

        :focus-visible {
            outline: 2px solid var(--cyan);
            outline-offset: 3px;
            border-radius: 4px;
        }

        .container {
            width: 100%;
            max-width: var(--container);
            margin-inline: auto;
            padding-inline: 1.25rem;
        }

        .section {
            padding-block: clamp(4.5rem, 10vw, 8rem);
        }

        .section-head {
            margin-bottom: clamp(2rem, 5vw, 3.5rem);
        }

        .section-head p {
            margin-top: 1.1rem;
            max-width: 52ch;
        }

        .skip-link {
            position: absolute;
            left: 1rem;
            top: -4rem;
            z-index: 100;
            padding: 0.6rem 1rem;
            background: var(--cyan);
            color: var(--navy);
            font-weight: 600;
            border-radius: var(--radius-sm);
            transition: top 0.2s;
        }

        .skip-link:focus {
            top: 1rem;
        }

        /* =========================================================
       3. BUTTONS
       ========================================================= */
        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            padding: 0.85rem 1.6rem;
            font: inherit;
            font-weight: 600;
            font-size: 0.95rem;
            line-height: 1.2;
            border-radius: var(--radius-sm);
            border: 1.5px solid transparent;
            cursor: pointer;
            transition: background-color 0.25s var(--ease), color 0.25s var(--ease),
                border-color 0.25s var(--ease), box-shadow 0.25s var(--ease),
                transform 0.25s var(--ease);
        }

        .btn-primary {
            background: #00E5FF;
            color: #060B14;
            font-weight: 700;
            border: 1px solid #00E5FF;
            box-shadow: none !important;
        }

        .btn-primary:hover {
            background: #00d8bc;
            border-color: #00d8bc;
            box-shadow: none !important;
            transform: translateY(-2px);
        }

        .btn-outline {
            border: 1.5px solid rgba(0, 229, 255, 0.45);
            color: var(--white);
            background: rgba(0, 229, 255, 0.04);
            backdrop-filter: blur(8px);
            box-shadow: none !important;
        }

        .btn-outline:hover {
            background: rgba(0, 229, 255, 0.12);
            border-color: var(--cyan);
            color: var(--cyan);
            box-shadow: none !important;
            transform: translateY(-2px);
        }

        .btn[disabled] {
            opacity: 0.6;
            cursor: progress;
            transform: none;
            box-shadow: none;
        }

        /* =========================================================
       4. NAVBAR (fixed, blurred)
       ========================================================= */
        .site-header {
            position: fixed;
            inset: 0 0 auto 0;
            z-index: 50;
            background: rgba(6, 11, 20, 0.8);
            -webkit-backdrop-filter: blur(16px) saturate(160%);
            backdrop-filter: blur(16px) saturate(160%);
            border-bottom: 1px solid rgba(255, 255, 255, 0.06);
            transition: all 0.3s ease;
        }

        .site-header.is-scrolled {
            background: rgba(6, 11, 20, 0.94);
            border-bottom-color: rgba(0, 229, 255, 0.25);
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
        }

        @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
            .site-header {
                background: rgba(6, 11, 20, 0.98);
            }
        }

        .nav {
            display: flex;
            align-items: center;
            justify-content: space-between;
            height: var(--header-h);
        }

        .logo {
            display: inline-flex;
            align-items: center;
            gap: 0.75rem;
            font-size: 1.35rem;
            font-weight: 700;
            letter-spacing: -0.02em;
            color: var(--white);
            text-decoration: none;
            transition: opacity 0.25s var(--ease);
        }

        .logo:hover {
            opacity: 0.95;
        }

        .logo-badge {
            position: relative;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 40px;
            height: 40px;
            border-radius: 10px;
            background: #ffffff;
            border: 1.5px solid rgba(0, 229, 255, 0.45);
            box-shadow: 0 0 16px rgba(0, 229, 255, 0.22), 0 2px 6px rgba(0, 0, 0, 0.35);
            overflow: hidden;
            flex-shrink: 0;
            transition: transform 0.25s var(--ease), border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
        }

        .logo:hover .logo-badge {
            transform: scale(1.06);
            border-color: var(--cyan);
            box-shadow: 0 0 22px rgba(0, 229, 255, 0.5), 0 4px 12px rgba(0, 0, 0, 0.4);
        }

        .logo-img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center 38%;
            transform: scale(1.28);
            display: block;
        }

        .logo-text {
            color: var(--white);
            letter-spacing: -0.02em;
            font-weight: 700;
        }

        /* Screen reader only utility for SEO accessibility */
        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border: 0;
        }

        .nav-toggle {
            display: inline-flex;
            flex-direction: column;
            justify-content: center;
            gap: 5px;
            width: 44px;
            height: 44px;
            padding: 0 11px;
            background: none;
            border: 0;
            cursor: pointer;
        }

        .nav-toggle span {
            display: block;
            height: 2px;
            background: var(--white);
            border-radius: 2px;
            transition: transform 0.3s var(--ease), opacity 0.2s;
        }

        .nav-toggle[aria-expanded="true"] span:nth-child(1) {
            transform: translateY(7px) rotate(45deg);
        }

        .nav-toggle[aria-expanded="true"] span:nth-child(2) {
            opacity: 0;
        }

        .nav-toggle[aria-expanded="true"] span:nth-child(3) {
            transform: translateY(-7px) rotate(-45deg);
        }

        /* Mobile menu panel */
        .nav-menu {
            position: absolute;
            top: 100%;
            left: 0;
            right: 0;
            display: none;
            flex-direction: column;
            gap: 0.25rem;
            padding: 1rem 1.25rem 1.75rem;
            background: rgba(10, 25, 47, 0.98);
            border-bottom: 1px solid var(--line);
            max-height: calc(100vh - var(--header-h));
            overflow-y: auto;
        }

        .nav-menu.is-open {
            display: flex;
        }

        .nav-menu a:not(.btn) {
            padding: 0.85rem 0;
            font-weight: 500;
            color: var(--grey-light);
            border-bottom: 1px solid var(--line);
            transition: color 0.2s;
            text-decoration: none;
        }

        .nav-menu a:not(.btn):hover,
        .nav-menu a[aria-current="true"] {
            color: var(--cyan);
        }

        .nav-menu .btn {
            margin-top: 1rem;
        }

        /* ── Dropdown Menus ── */
        .nav-dropdown {
            display: flex;
            flex-direction: column;
            width: 100%;
            border-bottom: 1px solid var(--line);
            padding-bottom: 0.35rem;
        }

        .nav-dropdown-trigger {
            display: inline-flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.4rem;
            cursor: pointer;
            font-weight: 500;
            color: var(--grey-light);
            background: none;
            border: none;
            font-size: 1rem;
            font-family: inherit;
            padding: 0.85rem 0 0.4rem;
            text-decoration: none;
            transition: color 0.2s;
            width: 100%;
        }

        .nav-dropdown-trigger svg {
            transition: transform 0.25s ease;
            stroke: var(--grey);
        }

        .nav-dropdown-menu {
            display: flex;
            flex-direction: column;
            width: 100%;
            background: rgba(6, 14, 30, 0.6);
            border-left: 2px solid rgba(0, 229, 255, 0.4);
            padding: 0.35rem 0 0.5rem 0.85rem;
            gap: 0.15rem;
        }

        .nav-dropdown-menu a {
            padding: 0.4rem 0 !important;
            font-size: 0.88rem !important;
            color: #CBD5E1 !important;
            border-bottom: none !important;
            text-decoration: none;
        }

        .nav-dropdown-menu a:hover {
            color: var(--cyan) !important;
        }

        .nav-dropdown-menu .dropdown-overview {
            font-weight: 600;
            color: var(--cyan) !important;
            padding-bottom: 0.4rem !important;
            margin-bottom: 0.2rem;
            border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
        }

        @media (min-width: 860px) {
            .nav-toggle {
                display: none;
            }

            .nav-menu {
                position: static;
                display: flex;
                flex-direction: row;
                align-items: center;
                gap: 1.85rem;
                padding: 0;
                background: none;
                border: 0;
                max-height: none;
                overflow-y: visible;
            }

            .nav-menu a:not(.btn) {
                position: relative;
                padding: 0.4rem 0;
                border: 0;
                font-size: 0.92rem;
            }

            .nav-menu a:not(.btn)::after {
                content: "";
                position: absolute;
                left: 0;
                right: 0;
                bottom: 0;
                height: 2px;
                background: var(--cyan);
                transform: scaleX(0);
                transform-origin: left;
                transition: transform 0.3s var(--ease);
            }

            .nav-menu a:not(.btn):hover::after,
            .nav-menu a[aria-current="true"]::after {
                transform: scaleX(1);
            }

            .nav-dropdown {
                display: inline-flex;
                flex-direction: row;
                align-items: center;
                width: auto;
                border-bottom: none;
                padding-bottom: 0;
                position: relative;
            }

            .nav-dropdown-trigger {
                padding: 0.4rem 0;
                font-size: 0.92rem;
                border-bottom: none;
                width: auto;
                justify-content: flex-start;
                gap: 0.3rem;
            }

            .nav-dropdown:hover .nav-dropdown-trigger,
            .nav-dropdown:focus-within .nav-dropdown-trigger {
                color: var(--cyan);
            }

            .nav-dropdown:hover .nav-dropdown-trigger svg,
            .nav-dropdown:focus-within .nav-dropdown-trigger svg {
                transform: rotate(180deg);
                stroke: var(--cyan);
            }

            .nav-dropdown-menu {
                display: none;
                position: absolute;
                top: 100%;
                left: -0.85rem;
                min-width: 275px;
                background: #0B192E;
                border: 1px solid rgba(0, 229, 255, 0.25);
                border-radius: 12px;
                padding: 0.55rem 0.45rem;
                box-shadow: 0 16px 36px rgba(0, 0, 0, 0.7);
                border-left: 1px solid rgba(0, 229, 255, 0.25);
                z-index: 1000;
                margin-top: 0.35rem;
            }

            .nav-dropdown:hover .nav-dropdown-menu,
            .nav-dropdown:focus-within .nav-dropdown-menu {
                display: flex;
            }

            .nav-dropdown-menu a {
                padding: 0.55rem 0.85rem !important;
                border-radius: 6px;
                transition: background 0.15s, color 0.15s !important;
            }

            .nav-dropdown-menu a::after {
                display: none !important;
            }

            .nav-dropdown-menu a:hover {
                background: rgba(0, 229, 255, 0.09) !important;
                color: var(--cyan) !important;
            }

            .nav-menu .btn {
                margin: 0;
                padding: 0.6rem 1.25rem;
                font-size: 0.9rem;
            }
        }



        /* =========================================================
           5. HERO — see hero.css
           ========================================================= */

        /* =========================================================
       6. SERVICES
       ========================================================= */
        .services-grid {
            display: grid;
            gap: 1.25rem;
            grid-template-columns: 1fr;
        }

        .card {
            display: flex;
            flex-direction: column;
            padding: 2.25rem 2rem;
            background: var(--navy-surface);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border: 1px solid var(--line);
            border-radius: var(--radius);
            transition: all 0.3s var(--ease);
            position: relative;
            overflow: hidden;
        }

        .card:hover,
        .card:focus-within {
            border-color: rgba(0, 229, 255, 0.45);
            transform: translateY(-5px);
            box-shadow: 0 20px 45px rgba(0, 0, 0, 0.55), 0 0 30px rgba(0, 229, 255, 0.15);
        }

        .card-icon {
            width: 52px;
            height: 52px;
            margin-bottom: 1.5rem;
            color: var(--cyan);
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(0, 229, 255, 0.08);
            border: 1px solid rgba(0, 229, 255, 0.22);
            border-radius: 12px;
            padding: 10px;
            transition: all 0.3s var(--ease);
        }

        .card:hover .card-icon {
            transform: scale(1.08);
            background: rgba(0, 229, 255, 0.16);
            border-color: var(--cyan);
            box-shadow: 0 0 20px rgba(0, 229, 255, 0.3);
        }

        .card p {
            margin-top: 0.75rem;
        }

        .card-list {
            margin-top: 1.5rem;
            padding-top: 1.25rem;
            border-top: 1px solid var(--line);
            display: grid;
            gap: 0.55rem;
            font-size: 0.92rem;
            color: var(--grey-light);
        }

        .card-list li {
            position: relative;
            padding-left: 1.4rem;
        }

        .card-list li::before {
            content: "";
            position: absolute;
            left: 2px;
            top: 0.5em;
            width: 6px;
            height: 10px;
            border: solid var(--cyan);
            border-width: 0 2px 2px 0;
            transform: translateY(-50%) rotate(45deg);
        }

        @media (min-width: 640px) and (max-width: 959px) {
            .services-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (min-width: 960px) {
            .services-grid {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        /* =========================================================
       7. TEAM / ABOUT
       ========================================================= */
        .team-layout {
            display: grid;
            gap: 3rem;
        }

        .team-copy p {
            margin-top: 1.25rem;
            max-width: 52ch;
        }

        .leaders {
            display: grid;
            gap: 0;
            border: 1px solid var(--line);
            border-radius: var(--radius);
            background: var(--navy-surface);
            overflow: hidden;
        }

        .leader {
            padding: 2rem 1.75rem;
        }

        .leader+.leader {
            border-top: 1px solid var(--line);
        }

        .leader-badge {
            display: grid;
            place-items: center;
            width: 48px;
            height: 48px;
            margin-bottom: 1.25rem;
            font-weight: 700;
            font-size: 1.1rem;
            color: var(--navy);
            background: var(--cyan);
            border-radius: 50%;
        }

        .leader-role {
            margin-top: 0.15rem;
            font-size: 0.9rem;
            color: var(--cyan);
            font-weight: 500;
        }

        .leader p {
            margin-top: 0.9rem;
            font-size: 0.95rem;
        }

        @media (min-width: 900px) {
            .team-layout {
                grid-template-columns: 1fr 1.2fr;
                gap: 5rem;
                align-items: start;
            }

            .team-layout > * {
                position: sticky;
                top: calc(var(--header-h) + 2rem);
                align-self: start;
            }

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

            .leader+.leader {
                border-top: 0;
                border-left: 1px solid var(--line);
            }
        }

        /* =========================================================
       8. WORK
       ========================================================= */
        .work-grid {
            display: grid;
            gap: 1.25rem;
            grid-template-columns: 1fr;
        }

        .work-card {
            display: block;
            border: 1px solid var(--line);
            border-radius: var(--radius);
            background: var(--navy-surface);
            overflow: hidden;
            transition: border-color 0.3s var(--ease), transform 0.3s var(--ease);
        }

        .work-card:hover,
        .work-card:focus-visible {
            border-color: var(--cyan);
            transform: translateY(-4px);
        }

        .work-thumb {
            aspect-ratio: 16 / 10;
            display: grid;
            place-items: center;
            background: var(--navy-raised);
            border-bottom: 1px solid var(--line);
            color: var(--cyan);
        }

        .work-thumb svg {
            width: 100%;
            height: 100%;
        }

        .work-body {
            padding: 1.5rem 1.5rem 1.75rem;
        }

        .work-tag {
            display: inline-block;
            margin-bottom: 0.9rem;
            padding: 0.2rem 0.7rem;
            font-size: 0.78rem;
            font-weight: 500;
            color: var(--cyan);
            border: 1px solid rgba(0, 229, 255, 0.4);
            border-radius: 999px;
        }

        .work-body p {
            margin-top: 0.6rem;
            font-size: 0.95rem;
        }

        @media (min-width: 720px) {
            .work-grid {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        /* =========================================================
       9. CONTACT
       ========================================================= */
        .contact-layout {
            display: grid;
            gap: 3rem;
        }

        .contact-copy p {
            margin-top: 1.25rem;
            max-width: 44ch;
        }

        .contact-mail {
            display: inline-block;
            margin-top: 1.75rem;
            font-weight: 600;
            color: var(--white);
            border-bottom: 2px solid var(--cyan);
            transition: color 0.2s;
        }

        .contact-mail:hover {
            color: var(--cyan);
        }

        .form {
            display: grid;
            gap: 1.25rem;
            padding: clamp(1.5rem, 4vw, 2.25rem);
            background: var(--navy-surface);
            border: 1px solid var(--line);
            border-radius: var(--radius);
        }

        .field {
            display: grid;
            gap: 0.45rem;
        }

        .field label {
            font-size: 0.9rem;
            font-weight: 500;
            color: var(--white);
        }

        .field input,
        .field select,
        .field textarea {
            width: 100%;
            padding: 0.85rem 1rem;
            font: inherit;
            font-size: 0.95rem;
            color: var(--white);
            background: var(--navy-raised);
            border: 1px solid var(--line-strong);
            border-radius: var(--radius-sm);
            transition: border-color 0.2s, box-shadow 0.2s;
        }

        .field textarea {
            min-height: 140px;
            resize: vertical;
        }

        .field select {
            appearance: none;
            -webkit-appearance: none;
            padding-right: 2.5rem;
            background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8' fill='none' stroke='%2300E5FF' stroke-width='2'><path d='M1 1l6 6 6-6'/></svg>");
            background-repeat: no-repeat;
            background-position: right 1rem center;
        }

        .field ::placeholder {
            color: #5F6B8C;
        }

        .field input:hover,
        .field select:hover,
        .field textarea:hover {
            border-color: rgba(0, 229, 255, 0.55);
        }

        .field input:focus,
        .field select:focus,
        .field textarea:focus {
            outline: none;
            border-color: var(--cyan);
            box-shadow: 0 0 0 3px rgba(0, 229, 255, 0.2);
        }

        .field [aria-invalid="true"] {
            border-color: #FF6B7A;
        }

        .field-error {
            min-height: 1.2em;
            font-size: 0.82rem;
            color: #FF8A96;
        }

        .form .btn {
            justify-self: start;
        }

        .form-status {
            font-size: 0.92rem;
            min-height: 1.4em;
        }

        .form-status.is-success {
            color: var(--cyan);
        }

        .form-status.is-error {
            color: #FF8A96;
        }

        /* Honeypot field for spam bots; hidden from people */
        .hp {
            position: absolute;
            left: -9999px;
            height: 0;
            width: 0;
            overflow: hidden;
        }

        @media (min-width: 900px) {
            .contact-layout {
                grid-template-columns: 1fr 1.25fr;
                gap: 5rem;
                align-items: start;
            }

            .contact-copy,
            .contact-form {
                position: sticky;
                top: calc(var(--header-h) + 2rem);
                align-self: start;
            }
        }

        /* =========================================================
       10. FOOTER
       ========================================================= */
        .site-footer {
            border-top: 1px solid var(--line);
            padding-block: 2rem;
            font-size: 0.9rem;
        }

        .footer-inner {
            display: flex;
            flex-direction: column;
            gap: 1.25rem;
            align-items: flex-start;
            justify-content: space-between;
        }

        .socials {
            display: flex;
            flex-wrap: wrap;
            gap: 1.5rem;
        }

        .socials a {
            transition: color 0.2s;
        }

        .socials a:hover {
            color: var(--cyan);
        }

        @media (min-width: 640px) {
            .footer-inner {
                flex-direction: row;
                align-items: center;
            }
        }

        /* =========================================================
       11. MOTION, EXTRA SECTIONS AND POLISH
       ========================================================= */
        /* ---------- Scroll progress bar ---------- */
        .progress {
            position: absolute;
            left: 0;
            bottom: -1px;
            width: 100%;
            height: 2px;
            background: var(--cyan);
            transform: scaleX(0);
            transform-origin: left;
            pointer-events: none;
        }

        /* Navbar slides away on scroll down, returns on scroll up */
        .site-header {
            transition: border-color 0.3s, transform 0.45s var(--ease);
        }

        .site-header.is-hidden {
            transform: translateY(-100%);
        }

        /* ---------- Button sheen on hover ---------- */
        .btn-primary {
            position: relative;
            overflow: hidden;
        }

        .btn-primary::after {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.55) 50%, transparent 70%);
            transform: translateX(-120%);
            pointer-events: none;
        }

        .btn-primary:hover::after {
            transform: translateX(120%);
            transition: transform 0.75s var(--ease);
        }

        /* ---------- Hero motion ---------- */
        .hero {
            position: relative;
            overflow: hidden;
        }

        .hero-grid {
            position: relative;
            z-index: 1;
        }

        .hero-glow {
            position: absolute;
            top: 0;
            left: 0;
            width: 520px;
            height: 520px;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(0, 229, 255, 0.14), transparent 65%);
            opacity: 0;
            transition: opacity 0.6s;
            pointer-events: none;
            will-change: transform;
        }

        .hero-glow.on {
            opacity: 1;
        }

        /* Headline: each word rises out of its own mask */
        .hero h1 .line {
            overflow: hidden;
            padding: 0.06em 0.06em 0.06em 0;
            margin: -0.06em 0;
        }

        .hero h1 .word {
            transform: translateY(105%);
            animation: rise 1s var(--ease) forwards;
            animation-delay: calc(var(--w) * 0.14s + 0.1s);
        }

        .intro {
            animation: intro 0.9s var(--ease) var(--d, 0s) backwards;
        }

        .studio {
            animation: intro 0.9s var(--ease) 0.5s backwards, float 8s ease-in-out 1.6s infinite;
        }

        @keyframes rise {
            to {
                transform: translateY(0);
            }
        }

        @keyframes intro {
            from {
                opacity: 0;
                transform: translateY(18px);
            }
        }

        @keyframes float {
            50% {
                transform: translateY(-8px);
            }
        }

        /* ---------- Scroll reveal (classes added by JS; removed after playing) ---------- */
        .js .reveal {
            opacity: 0;
            transform: translateY(24px);
            transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
            transition-delay: var(--d, 0s);
        }

        .js .reveal.in {
            opacity: 1;
            transform: none;
        }

        /* ---------- Spotlight that follows the pointer on cards ---------- */
        .card,
        .work-card,
        .quote,
        .cta-band,
        .leaders {
            position: relative;
        }

        .card::after,
        .work-card::after,
        .quote::after,
        .cta-band::after,
        .leaders::after {
            content: "";
            position: absolute;
            inset: 0;
            border-radius: inherit;
            background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(0, 229, 255, 0.1), transparent 60%);
            opacity: 0;
            transition: opacity 0.35s;
            pointer-events: none;
        }

        .card:hover::after,
        .work-card:hover::after,
        .quote:hover::after,
        .cta-band:hover::after,
        .leaders:hover::after {
            opacity: 1;
        }

        .card-icon {
            transition: transform 0.4s var(--ease);
        }

        .card:hover .card-icon {
            transform: translateY(-4px) scale(1.06);
        }

        .work-thumb svg {
            transition: transform 0.7s var(--ease);
        }

        .work-card:hover .work-thumb svg {
            transform: scale(1.07);
        }

        /* ---------- Tech marquee ---------- */
        .marquee {
            overflow: hidden;
            padding-block: 1.5rem;
            border-block: 1px solid var(--line);
            -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
        }

        .marquee-track {
            display: flex;
            width: max-content;
            animation: marquee 40s linear infinite;
        }

        .marquee:hover .marquee-track {
            animation-play-state: paused;
        }

        .marquee-list {
            display: flex;
            flex-shrink: 0;
            align-items: center;
            gap: 3rem;
            padding-right: 3rem;
        }

        .marquee-list li {
            display: flex;
            align-items: center;
            gap: 3rem;
            font-size: 1.05rem;
            font-weight: 500;
            color: var(--grey);
            white-space: nowrap;
        }

        .marquee-list li::after {
            content: "";
            width: 6px;
            height: 6px;
            background: var(--cyan);
            opacity: 0.7;
            transform: rotate(45deg);
        }

        @keyframes marquee {
            to {
                transform: translateX(-50%);
            }
        }

        /* ---------- Process ---------- */
        .steps {
            display: grid;
            gap: 2.5rem 2rem;
            grid-template-columns: 1fr;
        }

        .step {
            position: relative;
            padding-top: 1.75rem;
            border-top: 1px solid var(--line);
        }

        .step::before {
            content: "";
            position: absolute;
            top: -1px;
            left: 0;
            width: 100%;
            height: 2px;
            background: var(--cyan);
            transform: scaleX(0);
            transform-origin: left;
            transition: transform 1.2s var(--ease) var(--line-d, 0s);
        }

        .step.line-on::before {
            transform: scaleX(1);
        }

        .no-js .step::before,
        html:not(.js) .step::before {
            transform: scaleX(1);
        }

        .step-num {
            display: block;
            margin-bottom: 0.9rem;
            font-size: 0.9rem;
            font-weight: 600;
            color: var(--cyan);
        }

        .step p {
            margin-top: 0.6rem;
            font-size: 0.95rem;
        }

        @media (min-width: 720px) {
            .steps {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (min-width: 1000px) {
            .steps {
                grid-template-columns: repeat(4, 1fr);
            }
        }

        /* ---------- Stats ---------- */
        .stats {
            background: var(--navy-surface);
            border-block: 1px solid var(--line);
        }

        .stats-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 2.5rem 1.5rem;
            padding-block: 3.5rem;
        }

        .stat-num {
            font-size: clamp(2.4rem, 6vw, 3.8rem);
            font-weight: 700;
            line-height: 1;
            letter-spacing: -0.03em;
            color: var(--white);
        }

        .stat-num .suffix {
            color: var(--cyan);
        }

        .stat-label {
            margin-top: 0.6rem;
            font-size: 0.95rem;
        }

        @media (min-width: 860px) {
            .stats-grid {
                grid-template-columns: repeat(4, 1fr);
                gap: 0;
            }

            .stat {
                padding-inline: 2rem;
            }

            .stat:first-child {
                padding-left: 0;
            }

            .stat+.stat {
                border-left: 1px solid var(--line);
            }
        }

        /* ---------- Testimonials ---------- */
        .quotes {
            display: grid;
            gap: 1.25rem;
            grid-template-columns: 1fr;
        }

        .quote {
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            gap: 1.75rem;
            margin: 0;
            padding: 2rem 1.75rem;
            background: var(--navy-surface);
            border: 1px solid var(--line);
            border-left: 2px solid var(--cyan);
            border-radius: var(--radius);
            transition: border-color 0.3s var(--ease), transform 0.3s var(--ease);
        }

        .quote:hover {
            border-color: var(--cyan);
            transform: translateY(-3px);
        }

        .quote blockquote {
            margin: 0;
        }

        .quote p {
            color: var(--grey-light);
            line-height: 1.7;
        }

        .quote.featured p {
            font-size: clamp(1.2rem, 2.6vw, 1.55rem);
            line-height: 1.5;
            color: var(--white);
            font-weight: 500;
            letter-spacing: -0.01em;
        }

        .quote figcaption {
            display: grid;
            gap: 0.1rem;
            font-size: 0.92rem;
        }

        .quote figcaption strong {
            color: var(--white);
            font-weight: 600;
        }

        @media (min-width: 860px) {
            .quotes {
                grid-template-columns: 1.3fr 1fr;
            }

            .quote.featured {
                grid-row: span 2;
                padding: 2.5rem 2.25rem;
            }
        }

        /* ---------- FAQ accordion ---------- */
        .faq-layout {
            display: grid;
            gap: 2.5rem;
        }

        .faq-intro p {
            margin-top: 1.1rem;
            max-width: 36ch;
        }

        .faq-list {
            border-top: 1px solid var(--line);
        }

        .faq-item {
            border-bottom: 1px solid var(--line);
        }

        .faq-item h3 {
            font-size: inherit;
            letter-spacing: 0;
        }

        .faq-q {
            display: flex;
            width: 100%;
            align-items: center;
            justify-content: space-between;
            gap: 1.25rem;
            padding: 1.4rem 0;
            font: inherit;
            font-size: 1.05rem;
            font-weight: 500;
            line-height: 1.4;
            text-align: left;
            color: var(--white);
            background: none;
            border: 0;
            cursor: pointer;
            transition: color 0.2s;
        }

        .faq-q:hover {
            color: var(--cyan);
        }

        .faq-icon {
            position: relative;
            flex: none;
            width: 16px;
            height: 16px;
        }

        .faq-icon::before,
        .faq-icon::after {
            content: "";
            position: absolute;
            left: 0;
            right: 0;
            top: 50%;
            height: 2px;
            background: var(--cyan);
            transition: transform 0.35s var(--ease);
        }

        .faq-icon::before {
            transform: translateY(-50%);
        }

        .faq-icon::after {
            transform: translateY(-50%) rotate(90deg);
        }

        .faq-item.open .faq-icon::after {
            transform: translateY(-50%) rotate(0deg);
        }

        .faq-a {
            display: grid;
            grid-template-rows: 0fr;
            transition: grid-template-rows 0.4s var(--ease);
        }

        .faq-item.open .faq-a {
            grid-template-rows: 1fr;
        }

        .faq-a>div {
            overflow: hidden;
        }

        .faq-a p {
            padding-bottom: 1.4rem;
            max-width: 62ch;
        }

        @media (min-width: 900px) {
            .faq-layout {
                grid-template-columns: 1fr 1.5fr;
                gap: 5rem;
                align-items: start;
            }

            .faq-intro {
                position: sticky;
                top: calc(var(--header-h) + 2rem);
            }
        }

        /* ---------- CTA band ---------- */
        .cta-section {
            padding-bottom: clamp(4.5rem, 10vw, 8rem);
        }

        .cta-band {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 1.75rem;
            padding: clamp(2rem, 6vw, 4rem);
            overflow: hidden;
            background: var(--navy-surface);
            border: 1px solid var(--line-strong);
            border-radius: var(--radius);
        }

        .cta-band h2 {
            max-width: 18ch;
        }

        .cta-band p {
            margin-top: 1rem;
            max-width: 42ch;
        }

        .cta-band .btn {
            position: relative;
            z-index: 1;
            flex: none;
        }

        @media (min-width: 860px) {
            .cta-band {
                flex-direction: row;
                align-items: center;
                justify-content: space-between;
                gap: 3rem;
            }
        }

        /* ---------- Footer columns ---------- */
        .site-footer {
            padding-block: 3.5rem 2rem;
        }

        .footer-top {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 2.5rem 1.5rem;
            padding-bottom: 2.5rem;
            margin-bottom: 2rem;
            border-bottom: 1px solid var(--line);
        }

        .footer-brand {
            grid-column: 1 / -1;
        }

        .footer-brand p {
            margin-top: 1rem;
            max-width: 34ch;
            font-size: 0.92rem;
        }

        .footer-col h3 {
            margin-bottom: 1rem;
            font-size: 0.95rem;
            letter-spacing: 0;
        }

        .footer-col ul {
            display: grid;
            gap: 0.6rem;
            font-size: 0.92rem;
        }

        .footer-col a {
            transition: color 0.2s;
        }

        .footer-col a:hover {
            color: var(--cyan);
        }

        @media (min-width: 800px) {
            .footer-top {
                grid-template-columns: 1.6fr 1fr 1fr 1fr;
            }

            .footer-brand {
                grid-column: auto;
            }
        }

        /* ---------- Reduced motion ---------- */
        @media (prefers-reduced-motion: reduce) {

            *,
            *::before,
            *::after {
                transition: none !important;
            }

            .code-line {
                animation: none;
                opacity: 1;
            }

            .caret,
            .playhead {
                animation: none;
            }

            .playhead {
                transform: translateX(calc(var(--track-w, 300px) * 0.38));
            }

            .hero h1 .word {
                animation: none;
                transform: none;
            }

            .intro,
            .studio {
                animation: none;
            }

            .marquee-track {
                animation: none;
            }

            .hero-glow {
                display: none;
            }

            .js .reveal {
                opacity: 1;
                transform: none;
            }

            .step::before {
                transform: scaleX(1);
            }
        }

        /* =========================================================
           16. SUBPAGES & SERVICE DETAILS (SEO LANDING PAGES)
           ========================================================= */
        .breadcrumbs {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            margin-bottom: 1.5rem;
            font-size: 0.88rem;
            color: var(--grey);
        }

        .breadcrumbs a {
            color: var(--grey-light);
            transition: color 0.2s;
        }

        .breadcrumbs a:hover {
            color: var(--cyan);
        }

        .breadcrumbs span.sep {
            color: var(--line-strong);
        }

        .breadcrumbs span.current {
            color: var(--cyan);
            font-weight: 500;
        }

        .page-hero {
            padding-top: calc(var(--header-h) + 3.5rem);
            padding-bottom: 4rem;
            position: relative;
        }

        .page-hero h1 {
            font-size: clamp(2.3rem, 5vw, 3.8rem);
            line-height: 1.15;
            letter-spacing: -0.025em;
            max-width: 20ch;
            margin-bottom: 1.5rem;
        }

        .page-hero p.lead {
            font-size: clamp(1.05rem, 2vw, 1.25rem);
            line-height: 1.6;
            color: var(--grey-light);
            max-width: 58ch;
            margin-bottom: 2rem;
        }

        .hero-badges {
            display: flex;
            flex-wrap: wrap;
            gap: 0.65rem;
            margin-bottom: 2rem;
        }

        .tech-pill {
            display: inline-flex;
            align-items: center;
            padding: 0.35rem 0.85rem;
            border-radius: 999px;
            font-size: 0.82rem;
            font-weight: 600;
            background: var(--navy-raised);
            color: var(--cyan);
            border: 1px solid rgba(0, 229, 255, 0.25);
            letter-spacing: 0.02em;
        }

        .subpage-grid {
            display: grid;
            gap: 2rem;
            grid-template-columns: 1fr;
        }

        @media (min-width: 768px) {
            .subpage-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (min-width: 1024px) {
            .subpage-grid.three-col {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        .feature-box {
            padding: 2.25rem 2rem;
            background: var(--navy-surface);
            border: 1px solid var(--line);
            border-radius: var(--radius);
            transition: border-color 0.25s var(--ease), transform 0.25s var(--ease);
        }

        .feature-box:hover {
            border-color: var(--cyan);
            transform: translateY(-3px);
        }

        .feature-box h3 {
            font-size: 1.3rem;
            margin-bottom: 0.85rem;
            color: var(--white);
        }

        .feature-box p {
            color: var(--grey);
            font-size: 0.95rem;
            line-height: 1.65;
        }

        .case-study-banner {
            margin-top: 3.5rem;
            padding: 2.5rem;
            background: linear-gradient(135deg, var(--navy-surface), var(--navy-raised));
            border: 1px solid rgba(0, 229, 255, 0.3);
            border-radius: var(--radius);
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }

        @media (min-width: 860px) {
            .case-study-banner {
                flex-direction: row;
                align-items: center;
                justify-content: space-between;
            }
        }

        /* ---------- Video Showcase Embed Frame ---------- */
        .video-suite-frame {
            max-width: 960px;
            margin: 2.5rem auto 0;
            background: rgba(13, 24, 44, 0.85);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border: 1px solid rgba(0, 229, 255, 0.35);
            border-radius: var(--radius-lg);
            overflow: hidden;
            box-shadow: 0 24px 70px rgba(0, 0, 0, 0.7), 0 0 50px rgba(0, 229, 255, 0.18);
            transition: all 0.3s var(--ease);
        }

        .video-suite-frame:hover {
            border-color: rgba(0, 229, 255, 0.55);
            box-shadow: 0 28px 80px rgba(0, 0, 0, 0.8), 0 0 60px rgba(0, 229, 255, 0.28);
        }

        .video-suite-topbar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0.85rem 1.5rem;
            background: rgba(6, 11, 20, 0.9);
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        }

        .suite-dots {
            display: flex;
            gap: 7px;
        }

        .suite-dots span {
            width: 11px;
            height: 11px;
            border-radius: 50%;
            display: block;
        }

        .suite-dots span:nth-child(1) { background: #ff5f56; }
        .suite-dots span:nth-child(2) { background: #ffbd2e; }
        .suite-dots span:nth-child(3) { background: #27c93f; }

        .suite-title {
            font-size: 0.82rem;
            color: var(--grey-light);
            font-family: var(--mono);
            letter-spacing: 0.02em;
        }

        .suite-badge {
            font-size: 0.68rem;
            font-weight: 700;
            color: var(--cyan);
            background: rgba(0, 229, 255, 0.12);
            padding: 0.2rem 0.65rem;
            border-radius: 4px;
            border: 1px solid rgba(0, 229, 255, 0.25);
            letter-spacing: 0.05em;
        }

        .video-embed-wrapper {
            position: relative;
            width: 100%;
            background: #000;
        }

        .video-embed-wrapper::before {
            content: "";
            display: block;
            padding-top: 56.25%; /* 16:9 aspect ratio */
        }

        .video-embed-wrapper iframe {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border: 0;
        }

        /* ---------- Project Filter Tabs ---------- */
        .filter-tabs {
            display: flex;
            flex-wrap: wrap;
            gap: 0.75rem;
            margin-bottom: 2.5rem;
            justify-content: center;
        }

        .filter-btn {
            background: var(--navy-surface);
            border: 1px solid var(--line);
            color: var(--grey-light);
            padding: 0.6rem 1.4rem;
            border-radius: 999px;
            font-size: 0.92rem;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.2s var(--ease);
            font-family: inherit;
        }

        .filter-btn:hover,
        .filter-btn.active {
            background: var(--cyan);
            color: var(--navy);
            border-color: var(--cyan);
            font-weight: 600;
            transform: translateY(-2px);
        }

        /* ---------- Rich Project Cards ---------- */
        .project-card {
            background: var(--navy-surface);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border: 1px solid var(--line);
            border-radius: var(--radius);
            padding: 2.25rem 2rem;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            transition: all 0.3s var(--ease);
            position: relative;
        }

        .project-card:hover {
            border-color: rgba(0, 229, 255, 0.5);
            transform: translateY(-5px);
            box-shadow: 0 20px 45px rgba(0, 0, 0, 0.5), 0 0 30px rgba(0, 229, 255, 0.15);
        }

        .project-type-tag {
            display: inline-block;
            font-size: 0.78rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: var(--cyan);
            background: rgba(0, 229, 255, 0.1);
            padding: 0.3rem 0.75rem;
            border-radius: 999px;
            margin-bottom: 1rem;
            align-self: flex-start;
        }

        .project-tech-list {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
            margin: 1.25rem 0 1.75rem;
            list-style: none;
            padding: 0;
        }

        .project-tech-pill {
            font-size: 0.8rem;
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid var(--line);
            color: var(--grey-light);
            padding: 0.25rem 0.65rem;
            border-radius: 4px;
        }

        .project-links {
            display: flex;
            flex-wrap: wrap;
            gap: 0.75rem;
            align-items: center;
        }

        .btn-sm {
            padding: 0.5rem 1rem;
            font-size: 0.85rem;
            border-radius: var(--radius-sm);
        }

        /* ---------- Real Review Cards ---------- */
        .reviews-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
            gap: 1.5rem;
            margin-top: 2rem;
        }

        .review-card {
            background: var(--navy-surface);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border: 1px solid var(--line);
            border-radius: var(--radius);
            padding: 2rem 1.85rem;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            transition: all 0.3s var(--ease);
        }

        .review-card:hover {
            border-color: rgba(0, 229, 255, 0.5);
            transform: translateY(-5px);
            box-shadow: 0 20px 45px rgba(0, 0, 0, 0.5), 0 0 30px rgba(0, 229, 255, 0.15);
        }

        .review-header {
            display: flex;
            align-items: center;
            gap: 0.9rem;
            margin-bottom: 1rem;
        }

        .review-avatar {
            width: 44px;
            height: 44px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--cyan), #0077b6);
            color: var(--navy);
            display: grid;
            place-items: center;
            font-weight: 700;
            font-size: 1.05rem;
            flex-shrink: 0;
        }

        .review-meta strong {
            display: block;
            color: var(--white);
            font-size: 0.98rem;
        }

        .review-meta span {
            display: block;
            color: var(--cyan);
            font-size: 0.82rem;
            margin-top: 0.1rem;
        }

        .review-body {
            color: var(--grey-light);
            font-size: 0.95rem;
            line-height: 1.65;
            margin: 0;
        }

        .review-stars {
            color: #FFB800;
            font-size: 0.9rem;
            margin-bottom: 0.75rem;
            letter-spacing: 2px;
        }

        /* ---------- Skills Categorized Section ---------- */
        .skills-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 1.5rem;
            margin-top: 2rem;
        }

        .skill-category-card {
            background: var(--navy-surface);
            border: 1px solid var(--line);
            border-radius: var(--radius);
            padding: 1.75rem;
        }

        .skill-category-card h3 {
            font-size: 1.15rem;
            color: var(--white);
            margin-bottom: 1.25rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
            border-bottom: 1px solid var(--line);
            padding-bottom: 0.75rem;
        }

        .skill-category-card h3::before {
            content: "";
            display: inline-block;
            width: 8px;
            height: 8px;
            background: var(--cyan);
            border-radius: 50%;
        }

        .skill-pills {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
        }

        .skill-pill {
            font-size: 0.85rem;
            background: rgba(255, 255, 255, 0.04);
            border: 1px solid var(--line);
            color: var(--grey-light);
            padding: 0.35rem 0.75rem;
            border-radius: 6px;
            transition: all 0.2s;
        }

        .skill-pill:hover {
            border-color: var(--cyan);
            color: var(--white);
            background: rgba(0, 229, 255, 0.08);
        }

        /* Strict Zero Shadows below all buttons across the entire website */
        button,
        .btn,
        .btn-primary,
        .btn-outline,
        .nsh-btn-primary,
        .nsh-btn-outline,
        .nsw-btn-primary,
        .nsw-btn-outline,
        .nss-hub-btn-primary,
        .nss-hub-btn-outline {
            box-shadow: none !important;
        }
        button:hover,
        .btn:hover,
        .btn-primary:hover,
        .btn-outline:hover,
        .nsh-btn-primary:hover,
        .nsh-btn-outline:hover,
        .nsw-btn-primary:hover,
        .nsw-btn-outline:hover,
        .nss-hub-btn-primary:hover,
        .nss-hub-btn-outline:hover {
            box-shadow: none !important;
        }


