
@font-face { font-family: 'Orbitron'; src: url('Orbitron/Orbitron-VariableFont_wght.ttf') format('truetype'); font-weight: 400 900; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('Poppins/Poppins-Light.ttf') format('truetype'); font-weight: 300; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('Poppins/Poppins-Regular.ttf') format('truetype'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('Poppins/Poppins-Medium.ttf') format('truetype'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('Poppins/Poppins-SemiBold.ttf') format('truetype'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('Poppins/Poppins-Bold.ttf') format('truetype'); font-weight: 700; font-display: swap; }

        @font-face {
            font-family: 'Orbitron';
            src: url('Orbitron/Orbitron-VariableFont_wght.ttf') format('truetype');
            font-weight: 400 900;
            font-style: normal;
            font-display: swap;
        }
        @font-face { font-family: 'Poppins'; src: url('Poppins/Poppins-Light.ttf') format('truetype'); font-weight: 300; font-style: normal; font-display: swap; }
        @font-face { font-family: 'Poppins'; src: url('Poppins/Poppins-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
        @font-face { font-family: 'Poppins'; src: url('Poppins/Poppins-Medium.ttf') format('truetype'); font-weight: 500; font-style: normal; font-display: swap; }
        @font-face { font-family: 'Poppins'; src: url('Poppins/Poppins-SemiBold.ttf') format('truetype'); font-weight: 600; font-style: normal; font-display: swap; }
        @font-face { font-family: 'Poppins'; src: url('Poppins/Poppins-Bold.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }

        :root {
            --mad-lime: #e2fa06;
            --mad-bg: #151515;
            --mad-offwhite: #ebebeb;
            --mad-surface: #282828;
            --ease-expo: cubic-bezier(0.19, 1, 0.22, 1);
            /* Slider gutter lines up with the 1600px content column on wide screens */
            --gutter: max(1.5rem, calc((100vw - 1600px) / 2 + 1.5rem));
        }
        @media (min-width: 768px) {
            :root { --gutter: max(3rem, calc((100vw - 1600px) / 2 + 3rem)); }
        }

        body, html {
            background-color: var(--mad-bg);
            color: var(--mad-offwhite);
            font-family: 'Poppins', sans-serif;
            font-family: 'Poppins', sans-serif;
            margin: 0; padding: 0;
            overflow-x: clip;
            cursor: none;
            -webkit-font-smoothing: antialiased;
        }
        ::selection { background: var(--mad-lime); color: var(--mad-bg); }

        ::-webkit-scrollbar { display: none; }
        * { -ms-overflow-style: none; scrollbar-width: none; }

        /* ---------- Custom Cursor ---------- */
        #cursor-dot, #cursor-outline {
            position: fixed; top: 0; left: 0;
            border-radius: 50%;
            z-index: 9999;
            pointer-events: none;
            will-change: transform;
        }
        #cursor-dot { width: 8px; height: 8px; background-color: var(--mad-lime); }
        #cursor-outline {
            width: 40px; height: 40px;
            border: 1px solid rgba(226, 250, 6, 0.5);
            display: flex; align-items: center; justify-content: center;
            transition: width 0.3s, height 0.3s, border-color 0.3s, background-color 0.3s;
        }
        #cursor-label {
            font-family: 'Poppins', sans-serif;
            font-size: 10px; letter-spacing: 0.15em;
            color: var(--mad-bg);
            opacity: 0; transition: opacity 0.2s;
        }
        .hover-active #cursor-outline {
            width: 60px; height: 60px;
            border-color: var(--mad-lime);
            background-color: rgba(226, 250, 6, 0.1);
        }
        .cursor-drag #cursor-outline {
            width: 84px; height: 84px;
            border-color: var(--mad-lime);
            background-color: var(--mad-lime);
        }
        .cursor-drag #cursor-label { opacity: 1; }
        .cursor-drag #cursor-dot { opacity: 0; }
        @media (hover: none), (pointer: coarse) {
            body, html { cursor: auto; }
            #cursor-dot, #cursor-outline { display: none; }
        }

        /* ---------- Scroll progress ---------- */
        #scroll-progress {
            position: fixed; top: 0; left: 0; height: 2px; width: 100%;
            background: var(--mad-lime);
            transform-origin: left; transform: scaleX(0);
            z-index: 60;
        }

        /* ---------- Page Transition ---------- */
        #page-transition {
            position: fixed; top: 100%; left: 0;
            width: 100%; height: 100vh;
            background-color: var(--mad-lime);
            z-index: 9000;
            display: flex; flex-direction: column; align-items: center; justify-content: center;
            overflow: hidden;
        }
        .transition-text {
            font-family: 'Orbitron', sans-serif;
            font-size: 8vw; font-weight: 700;
            color: var(--mad-bg);
            text-transform: uppercase;
            opacity: 0; transform: translateY(20px);
        }
        .transition-sub {
            font-family: 'Poppins', sans-serif;
            font-size: 12px; letter-spacing: 0.2em;
            color: var(--mad-bg); text-transform: uppercase;
            opacity: 0;
        }

        #canvas-container {
            position: fixed; top: 0; left: 0;
            width: 100vw; height: 100vh;
            z-index: -1; pointer-events: none;
        }

        /* ---------- Routing ---------- */
        .page-view { display: none; width: 100%; }
        .page-view.active { display: block; }
        @keyframes viewFadeIn { from { opacity: 0; } to { opacity: 1; } }

        /* Text split */
        .word { display: inline-block; overflow: hidden; padding-right: 0.08em; vertical-align: top; }
        .char { display: inline-block; }

        /* Neon fill button */
        .neon-btn {
            position: relative; overflow: hidden;
            transition: color 0.4s var(--ease-expo), border-color 0.4s var(--ease-expo);
            z-index: 1;
        }
        .neon-btn::before {
            content: ''; position: absolute; bottom: 0; left: 0;
            width: 100%; height: 0%;
            background-color: var(--mad-lime);
            transition: height 0.4s var(--ease-expo);
            z-index: -1;
        }
        .neon-btn:hover { color: var(--mad-bg) !important; border-color: var(--mad-lime) !important; }
        .neon-btn:hover::before { height: 100%; }

        /* Technical borders */
        .tech-border { position: relative; }
        .tech-border::before {
            content: '+'; position: absolute; top: -7px; left: -4px;
            color: rgba(255,255,255,0.3); font-family: 'Poppins', sans-serif;
        }
        .tech-border::after {
            content: '+'; position: absolute; bottom: -7px; right: -4px;
            color: rgba(255,255,255,0.3); font-family: monospace;
        }

        .fluid-text { font-size: clamp(1.8rem, 7vw, 9rem); line-height: 1.05; overflow-wrap: anywhere; }
        .font-display { line-height: 1.15; overflow-wrap: anywhere; }
        .division-card { container-type: inline-size; }
        .division-title { font-size: clamp(1.125rem, 9cqi, 5.5rem); white-space: normal; overflow-wrap: normal; }
        .contact-intro { container-type: inline-size; }
        .contact-title { font-size: clamp(1.8rem, 13cqi, 8rem); }
        .contact-title-line { display: block; white-space: nowrap; overflow-wrap: normal; }
        #mobile-menu > a.mobile-nav-link { font-size: clamp(1.125rem, 6.4vw, 2.25rem); white-space: nowrap; overflow-wrap: normal; }
        button, input, select, textarea { font-family: inherit; }
        .fluid-sub { font-size: clamp(1rem, 2vw, 1.5rem); }
        .outline-lime { color: transparent; -webkit-text-stroke: 2px var(--mad-lime); }

        /* Consistent section and card headings; hero h1 styles stay independent. */
        #app-root :is(h2, h3, h4, h5, h6) {
            font-family: 'Orbitron', sans-serif;
            font-weight: 700;
            font-style: normal;
            color: var(--mad-offwhite);
            line-height: 1.15;
        }
        #app-root h2 { font-size: clamp(2rem, 4vw, 3.75rem); }
        #app-root h3 { font-size: clamp(1.25rem, 2vw, 2rem); }
        #app-root :is(h2, h3, h4, h5, h6) span {
            color: inherit;
            -webkit-text-stroke: 0;
        }
        #app-root .group:hover :is(h2, h3, h4, h5, h6)[class*="group-hover:text-mad-bg"] {
            color: var(--mad-bg);
        }
        /* Compact spacing on phones while retaining the desktop layout. */
        @media (max-width: 767px) {
            #app-root .py-32, #app-root .py-24 { padding-top: 3rem; padding-bottom: 3rem; }
            #app-root .mt-32 { margin-top: 3.5rem; }
            #app-root .mt-16 { margin-top: 2.5rem; }
            #app-root .mb-32, #app-root .mb-24, #app-root .mb-20 { margin-bottom: 2.5rem; }
            #app-root .mb-16, #app-root .mb-12 { margin-bottom: 2rem; }
            #app-root .gap-16, #app-root .gap-12 { gap: 2rem; }
            #app-root .division-card { padding: 1.5rem; }
            #app-root .division-card .mb-24 { margin-bottom: 2rem; }
            #app-root .about-sec + .about-sec { margin-top: 3rem; }
            #site-footer { margin-top: 2.5rem; padding: 2.5rem 1.5rem 1.5rem; }
            #site-footer .footer-brand { gap: 1.5rem; padding-bottom: 2rem; }
            #site-footer .footer-brand > a { padding: .75rem 1rem; }
            #site-footer .footer-brand p { margin-top: .75rem; margin-bottom: .75rem; }
            #site-footer .footer-links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 1rem; padding-block: 2rem; font-size: .75rem; line-height: 1.6; }
            #site-footer .footer-links nav { gap: .625rem; min-width: 0; }
            #site-footer .footer-links h2 { margin-bottom: .25rem; font-size: .6875rem; letter-spacing: .12em; }
            #site-footer .footer-links a { overflow-wrap: anywhere; }
            #site-footer .footer-links nav > div { gap: .625rem; }
            #site-footer .footer-contact > div { flex-direction: row; flex-wrap: wrap; column-gap: 1.25rem; }
            #site-footer .footer-social { grid-column: 1; grid-row: 2; }
            #site-footer .footer-company { grid-column: 2; grid-row: 1 / 3; }
            #site-footer .footer-divisions { grid-column: 1; grid-row: 1; }
            #site-footer .footer-contact { grid-column: 1 / -1; grid-row: 3; }
            #site-footer .footer-location { padding-block: 1rem; gap: .75rem; }
            #site-footer .footer-legal { padding-top: 1rem; gap: .75rem; font-size: .6875rem; }
        }
        /* Soft lime light rising behind the footer content. */
        #site-footer {
            background: radial-gradient(ellipse at 50% 115%, rgba(226, 250, 6, .18) 0%, rgba(226, 250, 6, .07) 42%, transparent 75%), linear-gradient(to top, #181b10, var(--mad-bg) 85%);
        }
        @media (max-width: 767px) {
            #site-footer {
                max-height: 100vh;
                max-height: 100dvh;
                overflow-y: auto;
                box-sizing: border-box;
                padding: 1.5rem 1.25rem 1rem;
                background: radial-gradient(ellipse at 50% 110%, rgba(226, 250, 6, .18), transparent 75%), linear-gradient(to top, #181b10, var(--mad-bg) 85%);
            }
            #site-footer .footer-brand { gap: 1rem; padding-bottom: 1.25rem; }
            #site-footer .footer-brand > div > a { font-size: 1.25rem; }
            #site-footer .footer-brand p { margin-block: .5rem; font-size: .75rem; }
            #site-footer .footer-brand > a { padding: .625rem .875rem; font-size: .625rem; }
            #site-footer .footer-links { padding-block: 1.25rem; gap: 1rem; }
            #site-footer .footer-links nav { gap: .5rem; }
            #site-footer .footer-links nav > div { gap: .5rem 1rem; }
            #site-footer .footer-location { padding-block: .75rem; font-size: .6875rem; }
            #site-footer .footer-legal { padding-top: .75rem; gap: .5rem; }
        }
        /* Give section eyebrow labels a little more presence. */
        #app-root .section-eyebrow { font-size: 19px; }
        #app-root .section-eyebrow.text-xs { font-size: 15px; }
        #app-root .section-eyebrow.text-sm { font-size: 17px; }
        #app-root .page-hero-title {
            font-size: clamp(1.8rem, 5vw, 6.5rem);
            line-height: 1.15;
            overflow-wrap: normal;
            word-break: normal;
        }

        .nav-dropdown-content.is-dismissed { clip-path: inset(0 0 100% 0) !important; pointer-events: none; }
        /* Shared mobile type scale: wrap at spaces, never inside a word. */
        @media (max-width: 767px) {
            #app-root :is(h1, h2, h3, h4, h5, h6),
            #app-root :is(h1, h2, h3, h4, h5, h6) span {
                overflow-wrap: normal;
                word-break: normal;
                hyphens: none;
                white-space: normal;
            }
            #app-root h1 { font-size: clamp(1.75rem, 7vw, 3rem); line-height: 1.15; }
            #app-root h2 { font-size: clamp(1rem, 5vw, 1.5rem); line-height: 1.2; }
            #app-root h3 { font-size: clamp(.875rem, 4.3vw, 1.25rem); line-height: 1.25; }
            #app-root h4 { font-size: clamp(.75rem, 3.3vw, .9375rem); line-height: 1.4; }
            #app-root :is(h1, h2, h3, h4) .word { white-space: nowrap; }
            #app-root .contact-title-line { display: block; white-space: normal; }
            #app-root .page-view :is(.grid, .flex) > * { min-width: 0; }
            #app-root .tech-border.p-10 { padding: 1.5rem; }
            #app-root .acc-btn { gap: .75rem; }
            #app-root .acc-btn > .font-display { font-size: clamp(.875rem, 4.3vw, 1.25rem); line-height: 1.3; }
            #app-root .acc-icon { flex-shrink: 0; }
            #reel-label { max-width: calc(100% - 2rem); white-space: normal; overflow-wrap: normal; font-size: .8125rem; letter-spacing: .04em; }
            #site-footer .footer-links a { overflow-wrap: normal; word-break: normal; }
        }

        #app-root .marquee, #app-root .marquee-inner, #app-root .marquee-inner > span {
            white-space: nowrap;
            overflow-wrap: normal;
            word-break: normal;
        }
        #app-root .marquee-inner { flex-wrap: nowrap; width: max-content; }
        #app-root .marquee-inner > span { flex: 0 0 auto; }
        #site-footer .footer-summary { list-style: none; font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; color: var(--mad-offwhite); }
        #site-footer .footer-summary::-webkit-details-marker { display: none; }
        #site-footer .footer-panel { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; margin-top: 1.5rem; }
        #site-footer .footer-toggle { display: none; }
        @media (min-width: 768px) {
            #site-footer .footer-summary { pointer-events: none; }
        }
        @media (max-width: 767px) {
            #site-footer .footer-links { display: flex; flex-direction: column; gap: 0; padding-block: 1rem; }
            #site-footer .footer-links details { display: block; width: 100%; border-bottom: 1px solid rgba(255,255,255,.12); }
            #site-footer .footer-summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.125rem .25rem; cursor: pointer; }
            #site-footer details[open] .footer-summary { background: var(--mad-offwhite); color: var(--mad-bg); border-radius: .375rem; padding-inline: 1rem; }
            #site-footer .footer-toggle { display: inline-block; font-size: 1.125rem; line-height: 1; }
            #site-footer details[open] .footer-toggle { transform: rotate(45deg); }
            #site-footer .footer-panel { margin: 0; padding: 1rem; gap: 1rem; }
            #site-footer .footer-panel > div { display: flex; flex-direction: column; gap: 1rem; }
        }

        #mobile-menu > a.mobile-industries-link {
            font-size: clamp(1.125rem, 5.35vw, 2.25rem);
            font-weight: 900;
            line-height: 1.45;
            transform-origin: left center;
            scale: 1 1.12;
        }
        @media (max-width: 767px) {
            #app-root .mobile-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
            #app-root .mobile-card-grid > * { min-width: 0; }
            #app-root .mobile-card-grid > .division-card,
            #app-root .mobile-card-grid > .tech-border,
            #app-root .mobile-card-grid > article { padding: .75rem; }
            #app-root .mobile-card-grid h3 { font-size: clamp(.625rem, 2.8vw, 1.125rem); line-height: 1.3; }
            #app-root .mobile-card-grid p { font-size: .75rem; line-height: 1.6; }
            #app-root .mobile-card-grid .font-mono { font-size: .5625rem; letter-spacing: .03em; }
            #app-root .mobile-card-grid .division-card .mb-24 { margin-bottom: 1.25rem; }
            #app-root .mobile-card-grid .division-card h3 { margin-bottom: .75rem; }
            #app-root .mobile-card-grid .division-card p { margin-bottom: 1rem; }
            #app-root [data-render="capabilities"].mobile-card-grid { gap: 0; }
            #app-root [data-render="industryCards"] > article { min-height: 340px; }
            #app-root [data-render="industryCards"] article > span { font-size: 5rem; top: 3rem; }
            #app-root [data-render="industryCards"] article .pt-32 { padding-top: 5rem; }
            #app-root [data-render="industryCards"] article > div:first-of-type { flex-wrap: wrap; gap: .25rem; }
            #app-root [data-render="industryCards"] article a { font-size: .625rem; letter-spacing: .03em; }
        }

        /* Align card content within each visible row. */
        #app-root .aligned-card-body { display: flex; flex-direction: column; }
        #app-root .aligned-card-body > h3 { flex-shrink: 0; }
        #app-root .aligned-card-body > .card-end-cta { margin-top: auto; padding-top: 1rem; }
        #app-root .mobile-card-grid > .aligned-card { display: flex; flex-direction: column; }
        #app-root .mobile-card-grid > a.aligned-card > .relative.h-full { flex: 1; justify-content: flex-start; }
        #app-root .mobile-card-grid > a.aligned-card .aligned-card-body { flex: 1; }
        #app-root .aligned-card h3 { box-sizing: border-box; }

        #app-root [data-count] {
            display: inline-block;
            white-space: nowrap;
            overflow-wrap: normal;
            word-break: normal;
            font-variant-numeric: tabular-nums;
        }
        @media (max-width: 767px) {
            #app-root [data-count] { font-size: clamp(2rem, 10vw, 4rem); line-height: 1.1; }
        }
        #app-root .division-card > .relative.h-full > span { margin-bottom: 2rem; }
        #app-root .division-card .aligned-card-body > h3 { margin-top: 0; margin-bottom: 1rem; }
        #app-root .division-card .aligned-card-body > p { margin-top: 0; }
        @media (max-width: 767px) {
            #app-root .division-card > .relative.h-full > span { margin-bottom: 1.25rem; }
            #app-root .division-card .aligned-card-body > h3 { margin-bottom: .75rem; }
        }

        @media (max-width: 767px) {
            #app-root .manufacturing-phases > :last-child { grid-column: 1 / -1; }
        }
        #view-home .home-process { padding-top: 0; }
        @media (max-width: 767px) {
            #app-root [data-render="process"].mobile-card-grid {
                gap: 0;
                border-top: 1px solid rgba(255,255,255,.1);
                border-left: 1px solid rgba(255,255,255,.1);
            }
            #app-root [data-render="process"] > div {
                padding: 1rem;
                border-right: 1px solid rgba(255,255,255,.1);
                border-bottom: 1px solid rgba(255,255,255,.1);
            }
        }
        /* Nav dropdown */
        .nav-dropdown-content { clip-path: inset(0 0 100% 0); transition: clip-path 0.5s var(--ease-expo); }
        .group:hover .nav-dropdown-content, .group:focus-within .nav-dropdown-content { clip-path: inset(0 0 0% 0); }
        .nav-active { color: var(--mad-lime); }

        #site-header { transition: transform 0.6s var(--ease-expo); }
        #site-header.is-hidden { transform: translateY(-110%); }

        /* ---------- Real sliders ---------- */
        .slider-track {
            display: flex; gap: 1.5rem;
            overflow-x: auto; overflow-y: hidden;
            scroll-snap-type: x mandatory;
            scroll-padding-inline: var(--gutter);
            padding-inline: var(--gutter);
            padding-bottom: 1rem;
            overscroll-behavior-x: contain;
            -webkit-overflow-scrolling: touch;
            cursor: grab;
            outline: none;
        }
        @media (min-width: 768px) { .slider-track { gap: 2rem; } }
        .slider-track > * { scroll-snap-align: start; flex-shrink: 0; }
        .slider-track.is-dragging { scroll-snap-type: none; cursor: grabbing; user-select: none; }
        .slider-track.is-dragging > * { pointer-events: none; }
        .slider-track img { -webkit-user-drag: none; user-select: none; }
        .slider-arrow {
            width: 52px; height: 52px;
            border: 1px solid rgba(255,255,255,0.2);
            display: inline-flex; align-items: center; justify-content: center;
            transition: border-color .3s, color .3s, opacity .3s, background-color .3s;
        }
        .slider-arrow:hover:not(:disabled) { border-color: var(--mad-lime); color: var(--mad-lime); }
        .slider-arrow:disabled { opacity: 0.25; }
        .slider-bar {
            position: absolute; inset: 0;
            background: var(--mad-lime);
            transform-origin: left; transform: scaleX(0.1);
            transition: transform 0.4s var(--ease-expo);
        }

        /* Marquee */
        .marquee { overflow: hidden; white-space: nowrap; }
        .marquee-inner { display: inline-flex; will-change: transform; }

        /* Accordion */
        .acc-panel { display: grid; grid-template-rows: 0fr; overflow: hidden; visibility: hidden; transition: grid-template-rows 0.6s var(--ease-expo), visibility 0s 0.6s; }
        .acc-panel > div { min-height: 0; overflow: hidden; }
        .acc-item.open .acc-panel { grid-template-rows: 1fr; }
        .acc-item.open .acc-panel { visibility: visible; transition-delay: 0s; }
        .acc-icon { transition: transform 0.5s var(--ease-expo); }
        .acc-item.open .acc-icon { transform: rotate(45deg); color: var(--mad-lime); }

        /* Form selects */
        select option { background: var(--mad-bg); }
        .field-tag { font-family: 'Poppins', sans-serif; font-size: 10px; color: rgba(226,250,6,0.6); letter-spacing: 0.15em; }

        /* Modal */
        #reel-modal { opacity: 0; pointer-events: none; transition: opacity 0.4s; }
        #reel-modal.open { opacity: 1; pointer-events: auto; }

        @media (prefers-reduced-motion: reduce) {
            *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
        }
    