      @font-face {
        font-family: "Bugatti Headline";
        src: url("../fonts/bugatti.woff2") format("woff2"), url("../fonts/bugatti.ttf") format("truetype");
        font-weight: 700;
        font-style: normal;
        font-display: swap;
      }

      @font-face {
        font-family: "Helvetica VD";
        src: url("../fonts/Helvetica.ttf") format("truetype");
        font-weight: 400;
        font-style: normal;
        font-display: swap;
      }

      @font-face {
        font-family: "Bahnschrift";
        src: url("../fonts/BAHNSCHRIFT.TTF") format("truetype");
        font-weight: 400;
        font-style: normal;
        font-display: swap;
      }

      @font-face {
        font-family: "JetBrains Mono";
        src: url("../fonts/JetBrainsMono-Medium.woff2") format("woff2");
        font-weight: 500;
        font-style: normal;
        font-display: swap;
      }
      :root {
        color-scheme: dark;
        --blue-900: #060b14;
        --blue-700: #2f7bff;
        --blue-500: #6ee7ff;
        --gray-900: #f4f8ff;
        --gray-700: #d3deed;
        --gray-500: #bbc8d9;
        --gray-200: rgba(255, 255, 255, 0.14);
        --gray-100: rgba(255, 255, 255, 0.08);
        --white: #ffffff;
        --shadow-soft: 0 24px 60px rgba(0, 0, 0, 0.34);
        --shadow-card: 0 18px 40px rgba(0, 0, 0, 0.28);
        --shadow-card-soft: 0 10px 26px rgba(0, 0, 0, 0.24);
        --shadow-card-hover: 0 16px 34px rgba(0, 0, 0, 0.36);
        --radius-lg: 24px;
        --radius-md: 16px;
        --radius-sm: 12px;
        --space-xs: 8px;
        --space-sm: 12px;
        --space-md: 18px;
        --space-lg: 28px;
        --space-xl: 44px;
        --section-space: clamp(76px, 9vw, 112px);
        --fs-body: 1rem;
        --ease-standard: cubic-bezier(0.22, 1, 0.36, 1);
        --dur-fast: 180ms;
        --dur-med: 280ms;
      }

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

      html {
        scroll-behavior: auto;
        overflow-x: clip;
      }

      body {
        font-family: "Helvetica VD", "Helvetica Neue", Helvetica, Arial, sans-serif;
        color: var(--gray-900);
        background:
          radial-gradient(1200px 680px at 85% -10%, rgba(47, 123, 255, 0.24), rgba(47, 123, 255, 0) 56%),
          radial-gradient(920px 560px at -10% 25%, rgba(110, 231, 255, 0.14), rgba(110, 231, 255, 0) 60%),
          linear-gradient(180deg, #060b14 0%, #0d1524 50%, #111c30 100%);
        font-size: var(--fs-body);
        line-height: 1.62;
        overflow-x: clip;
      }

      :focus-visible {
        outline: 2px solid var(--blue-700);
        outline-offset: 2px;
      }

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

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

      img[data-src] {
        opacity: 0;
        filter: blur(8px);
        transition: opacity 0.6s ease, filter 0.6s ease;
      }

      img.lazy-ready {
        opacity: 1;
        filter: blur(0);
      }

      img[loading="lazy"]:not(.lazy-ready) {
        opacity: 0;
        filter: blur(8px);
        transition: opacity 0.6s ease, filter 0.6s ease;
      }

      .container {
        width: min(1160px, 92vw);
        margin: 0 auto;
      }

      header {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 50;
        backdrop-filter: none !important;
        background: transparent !important;
        border-bottom: none !important;
      }

      header::before {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: env(safe-area-inset-top, 0px);
        background: #081224;
        pointer-events: none;
        z-index: 49;
      }

      .nav {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 18px 0;
        position: relative;
        background: transparent;
      }

      .nav > nav {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
      }

      .brand {
        display: flex;
        align-items: center;
        gap: 14px;
        font-family: "Sora", sans-serif;
        font-weight: 600;
        letter-spacing: 0.08em;
        text-transform: uppercase;
      }

      .brand img {
        width: 64px;
        height: auto;
        filter: invert(28%) sepia(92%) saturate(2200%) hue-rotate(203deg) brightness(92%) contrast(96%);
      }

      nav ul {
        display: flex;
        gap: 28px;
        list-style: none;
        font-weight: 500;
        color: var(--gray-700);
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
      }

      header nav,
      header nav ul,
      header nav li,
      header nav ul a {
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace !important;
        font-synthesis: none;
      }

      header nav ul a {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace !important;
        font-weight: 500 !important;
        font-size: 0.86rem;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        background: transparent;
        border: none;
        padding: 0;
        text-decoration: underline;
        text-underline-offset: 6px;
        transition: text-underline-offset 0.2s ease, color 0.2s ease;
        color: #ffffff;
      }

      header nav ul a:hover {
        text-underline-offset: 3px;
        color: var(--blue-700);
      }

      header nav ul a.is-active {
        color: #6ee7ff;
        text-underline-offset: 2px;
      }

      .lang-toggle {
        display: flex;
        align-items: center;
        gap: 10px;
        background: transparent;
        border-radius: 999px;
        padding: 6px;
      }

      .lang-toggle button {
        border: none;
        background: none;
        padding: 6px 12px;
        font-weight: 600;
        cursor: pointer;
        border-radius: 999px;
        font-size: 12px;
        letter-spacing: 0.12em;
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
      }

      .nav > .lang-toggle button {
        color: #ffffff;
      }

      .lang-toggle button.active {
        background: var(--blue-700);
        color: var(--white);
      }

      .hero {
        padding: 0;
        position: relative;
        overflow: hidden;
        min-height: auto;
        color: var(--white);
        max-width: 1600px;
        margin-left: auto;
        margin-right: auto;
      }

      .hero::before {
        content: "";
        position: absolute;
        width: 520px;
        height: 520px;
        right: -120px;
        top: -160px;
        background: radial-gradient(circle, rgba(29, 124, 255, 0.25) 0%, rgba(29, 124, 255, 0.05) 60%, transparent 70%);
        filter: blur(10px);
        z-index: 1;
      }

      .hero::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: -4px;
        height: 0;
        background: linear-gradient(
          180deg,
          rgba(13, 21, 36, 0) 0%,
          rgba(13, 21, 36, 0.32) 36%,
          rgba(13, 21, 36, 0.76) 70%,
          rgba(13, 21, 36, 1) 100%
        );
        z-index: 1;
        pointer-events: none;
        transform: translateZ(0);
      }

      .hero-media {
        position: absolute;
        inset: 0;
        z-index: 0;
        overflow: hidden;
        background: #000 url("../images/Vira-Drones-M-1000A-flying.webp") center/cover no-repeat;
      }

      .hero-media iframe {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 120%;
        height: 120%;
        transform: translate(-50%, -50%);
        pointer-events: none;
        border: none;
      }

      .hero-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(170deg, rgba(4, 10, 19, 0.58), rgba(4, 10, 19, 0.26) 48%, rgba(4, 10, 19, 0.66) 100%);
        z-index: 1;
      }

      .hero-content {
        position: relative;
        z-index: 2;
        display: flex;
        flex-direction: column;
        gap: var(--space-md);
        max-width: 760px;
        padding: 160px 0 140px;
        min-height: auto;
        justify-content: center;
        align-items: center;
        text-align: center;
      }

      .eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        font-size: 12px;
        letter-spacing: 0.25em;
        text-transform: uppercase;
        font-weight: 600;
        color: var(--blue-700);
      }

      h1 {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        font-size: clamp(2.4rem, 2.2rem + 2vw, 3.6rem);
        line-height: 1.05;
        color: var(--white);
      }

      .hero-content p {
        color: rgba(255, 255, 255, 0.86);
        font-size: clamp(1rem, 0.9rem + 0.6vw, 1.3rem);
        font-family: "Bugatti Text Regular", "Sora", sans-serif;
        line-height: 1.68;
      }

      .cta-group {
        display: flex;
        gap: 16px;
        flex-wrap: wrap;
      }

      .btn {
        padding: 14px 22px;
        border-radius: 999px;
        border: none;
        font-weight: 600;
        cursor: pointer;
        transition: transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-med) var(--ease-standard),
          background-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard),
          border-color var(--dur-fast) var(--ease-standard);
        display: inline-flex;
        align-items: center;
        gap: 10px;
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
      }

      .btn-primary {
        background: var(--blue-700);
        color: var(--white);
        box-shadow: var(--shadow-card);
      }

      .btn-secondary {
        background: var(--white);
        color: var(--gray-900);
        border: 1px solid var(--gray-200);
      }

      .btn-secondary:hover {
        background: var(--blue-700);
        border-color: var(--blue-700);
        color: var(--white);
      }

      .btn-outline {
        background: transparent;
        color: var(--blue-700);
        border: 1.5px solid var(--blue-700);
        box-shadow: none;
      }

      .btn-outline:hover {
        background: var(--blue-700);
        color: var(--white);
      }

      .hero .btn-outline {
        background: #ffffff;
        color: var(--blue-700);
        border-color: #ffffff;
      }

      .hero .btn-outline:hover {
        background: var(--blue-700);
        color: #ffffff;
        border-color: var(--blue-700);
      }

      .btn:hover {
        transform: translateY(-1px);
      }

      .hero-actions {
        display: flex;
        gap: 16px;
        flex-wrap: wrap;
        width: 100%;
        align-items: center;
        justify-content: center;
      }

      .hero-actions .btn {
        margin-left: auto;
        margin-right: auto;
      }

      .hero {
        margin-bottom: 0;
        padding-bottom: 0;
      }

      #zoom-section {
        height: 500vh;
        position: relative;
        margin: 0; padding: 0;
      }

      #zoomStage {
        position: sticky;
        top: 0; left: 0;
        width: 100%; height: 100vh;
        overflow: hidden;
        background: #060b14;
      }

      #imgFrame {
        position: absolute;
        overflow: hidden;
        will-change: width, height, left, top, border-radius;
      }

      #imgFrame::after {
        content: '';
        position: absolute; inset: 0;
        background: linear-gradient(to top, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.4) 40%, transparent 100%);
        opacity: 0; pointer-events: none; z-index: 5;
      }

      #droneImg {
        width: 100%; height: 100%;
        object-fit: cover;
        object-position: center 40%;
        display: block;
      }

      #headlineWrap {
        position: absolute;
        bottom: 6vh; left: 5vw;
        z-index: 10; opacity: 0;
        transform: translateY(28px);
        pointer-events: none;
      }

      #headlineWrap h2 {
        font-family: 'Bebas Neue', sans-serif;
        font-size: clamp(2.6rem, 4.7vw, 5.6rem);
        line-height: 0.92; letter-spacing: 0.03em;
        color: #f2ede8; max-width: 860px;
      }

      #headlineWrap h2 em {
        font-family: inherit;
        font-style: normal;
        color: inherit;
      }



      .main__action {
        position: absolute;
        left: 50%;
        bottom: 28px;
        transform: translateX(-50%);
        z-index: 3;
      }

      .main__scroll {
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
        text-decoration: none;
        color: rgba(255, 255, 255, 0.95);
      }

      .main__scroll-box {
        width: 56px;
        height: 56px;
        display: grid;
        place-items: center;
        animation: scroll-down 1.8s infinite;
      }

      .main__scroll-box svg {
        width: 40px;
        height: 40px;
        display: block;
      }

      .main__scroll-box path:last-child {
        fill: currentColor;
      }

      .main__scroll-text {
        display: none;
      }

      @keyframes scroll-down {
        0%,
        100% {
          transform: translateY(0rem);
          opacity: 1;
        }

        35% {
          transform: translateY(1rem);
          opacity: 0;
        }

        70% {
          transform: translateY(-1rem);
          opacity: 0;
        }
      }

      .stats {
        margin-top: 50px;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
        gap: 20px;
      }

      .fade-in {
        opacity: 0;
        transform: translateY(22px);
        transition:
          opacity 0.6s var(--ease-standard),
          transform 0.6s var(--ease-standard);
        transition-delay: var(--reveal-delay, 0ms);
        will-change: opacity, transform;
      }

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

      /* Load-based fade-in for specific images */
      .img-load-fade {
        opacity: 0;
        transition: opacity 0.8s ease;
      }
      .img-load-fade.lazy-ready {
        opacity: 1;
      }
      /* Overlay fades with the image */
      .bmw-banner__overlay.img-load-fade.lazy-ready {
        opacity: 1;
      }


      section {
        padding: var(--section-space) 0;
      }

      #product,
      #use-cases,
      #showcase,
      #about,
      #contact,
      footer {
        content-visibility: visible;
        contain-intrinsic-size: auto;
      }

      .section-title {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 20px;
        margin-bottom: 30px;
      }

      .about-section .section-title {
        margin-bottom: 40px;
      }

      .section-title h2 {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        font-size: clamp(1.8rem, 1.2rem + 1.2vw, 2.6rem);
      }

      .section-title p {
        color: var(--gray-500);
        max-width: 480px;
      }

      .drone-section {
        padding: var(--section-space) 0;
        margin-top: -4px;
        background: linear-gradient(180deg, rgba(13, 21, 36, 0.98) 0%, rgba(17, 28, 48, 0.96) 100%);
      }

      .drone-split {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 60px;
        align-items: center;
      }

      .drone-image > img {
        width: 100%;
        max-width: 500px;
        height: auto;
      }

      .drone-image {
        display: flex;
        justify-content: center;
      }

      .drone-assembly {
        position: relative;
        width: min(100%, 640px);
        aspect-ratio: 64 / 42;
      }

      .drone-assembly .part {
        position: absolute;
        will-change: transform, opacity;
        pointer-events: none;
        transition: filter 0.45s ease, opacity 0.35s ease, transform 0.35s ease;
      }

      .drone-assembly .part-base {
        width: 126%;
        left: 50%;
        top: 50%;
        opacity: 0;
      }

      .drone-assembly .part-right {
        display: none;
      }

      .drone-assembly .part-left {
        display: none;
      }

      .drone-assembly .part-addon {
        width: 26.875%;
        left: 50%;
        top: 50%;
        transform: translate(-50%, calc(-50% - 14.285%));
        opacity: 0;
      }

      .drone-assembly.assembled .part {
        filter: drop-shadow(0 0 14px rgba(26, 26, 46, 0.12));
      }

      .drone-content h2 {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        font-size: clamp(1.8rem, 1.2rem + 1.2vw, 2.6rem);
        margin-bottom: 24px;
        color: var(--gray-900);
      }

      .drone-content ul {
        list-style: none;
        margin: 0 0 24px;
        padding: 0;
      }

      .drone-content ul li {
        position: relative;
        padding-left: 20px;
        margin-bottom: 10px;
        color: var(--gray-700);
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        text-transform: uppercase;
        font-size: 0.9rem;
        letter-spacing: 0.05em;
      }

      .drone-content ul li::before {
        content: "";
        position: absolute;
        left: 0;
        top: 8px;
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--blue-500);
      }

      .drone-content p {
        color: var(--gray-500);
        margin-bottom: 16px;
        line-height: 1.7;
      }

      .drone-content p strong {
        color: var(--gray-900);
        font-weight: 600;
        display: block;
        margin-top: 8px;
      }

      section {
        padding: 80px 0;
      }

      .section-title {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 20px;
        margin-bottom: 30px;
      }

      .section-title h2 {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        font-size: clamp(1.8rem, 1.2rem + 1.2vw, 2.6rem);
      }

      .section-title p {
        color: var(--gray-500);
        max-width: 480px;
      }

      .card-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 22px;
      }

      #product {
        padding-top: 40px;
        background: linear-gradient(180deg, rgba(10, 16, 29, 0.95) 0%, rgba(17, 28, 48, 0.95) 100%);
      }

      #product .card-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 8px;
      }

      #product .card {
        background: linear-gradient(180deg, rgba(17, 28, 48, 0.92), rgba(13, 21, 36, 0.92));
        border-radius: 14px;
        padding: 20px 18px;
        aspect-ratio: 1.38 / 1;
        width: 92%;
        justify-self: center;
        border: 1px solid rgba(255, 255, 255, 0.12);
        box-shadow: var(--shadow-card-soft);
        will-change: transform;
        transition: transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-med) var(--ease-standard),
          border-color var(--dur-fast) var(--ease-standard), background-color var(--dur-fast) var(--ease-standard);
        position: relative;
        overflow: hidden;
        display: flex;
        flex-direction: column;
      }

      #product .card::after {
        content: "";
        position: absolute;
        inset: -40% auto auto -40%;
        width: 80%;
        height: 80%;
        background: radial-gradient(circle, rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0) 70%);
        transition: transform 0.25s ease;
        transform: translate(-30%, -30%);
        pointer-events: none;
      }

      #product .card:hover {
        transform: translateY(-3px);
        box-shadow: var(--shadow-card-hover);
        border-color: rgba(110, 231, 255, 0.5);
        background: linear-gradient(180deg, rgba(22, 37, 63, 0.96), rgba(16, 28, 48, 0.96));
      }

      #product .card:hover::after {
        transform: translate(2%, 2%);
      }

      #product .card h3 {
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        font-size: 0.86rem;
        font-weight: 600;
        letter-spacing: 0.02em;
        line-height: 1.42;
        margin-bottom: 0;
        color: #eaf2ff;
      }

      .product-icon {
        width: 34px;
        height: 34px;
        display: inline-grid;
        place-items: center;
        border-radius: 9px;
        margin-bottom: 10px;
        background: rgba(47, 123, 255, 0.18);
        color: #6ee7ff;
        transition: transform 0.22s ease, background 0.22s ease, color 0.22s ease;
      }

      .product-icon svg {
        width: 20px;
        height: 20px;
        stroke: currentColor;
        fill: none;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
      }

      #product .card:hover .product-icon {
        transform: translateY(-1px);
        background: rgba(110, 231, 255, 0.2);
      }

      .card p {
        color: var(--gray-500);
        font-size: 0.98rem;
      }

      .use-cases-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 26px;
      }

      .use-card-container {
        width: 100%;
        height: 340px;
        position: relative;
        border-radius: 14px;
      }

      .use-card-container::before {
        content: "";
        z-index: -1;
        position: absolute;
        inset: 0;
        background: linear-gradient(-45deg, rgba(11, 90, 213, 0.24) 0%, rgba(13, 17, 23, 0.45) 100%);
        transform: translate3d(0, 0, 0) scale(0.96);
        filter: blur(14px);
      }

      .use-card {
        width: 100%;
        height: 100%;
        border-radius: inherit;
        overflow: hidden;
        position: relative;
        background: #0d1524;
      }

      .use-card .img-content {
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        background-size: cover;
        background-position: center;
        will-change: transform, filter;
        transition: transform 620ms var(--ease-standard), filter 620ms var(--ease-standard);
      }

      .use-card .content {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 10px;
        color: #f3f6fb;
        padding: 24px 28px;
        line-height: 1.5;
        opacity: 0;
        pointer-events: none;
        transform: translateY(50px);
        transition: opacity 420ms var(--ease-standard), transform 420ms var(--ease-standard);
        background: linear-gradient(0deg, rgba(6, 10, 18, 0.85), rgba(6, 10, 18, 0.25));
      }

      .use-card .content ul {
        list-style: disc;
        padding-left: 18px;
        display: grid;
        gap: 6px;
      }

      .use-card .content .heading {
        font-size: clamp(1.05rem, 0.9rem + 0.45vw, 1.28rem);
        font-weight: 600;
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        line-height: 1.32;
      }

      .use-card:hover .content {
        opacity: 1;
        transform: translateY(0);
      }

      .use-card:hover .img-content {
        transform: scale(1.08);
        filter: blur(3px);
      }

      .showcase-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px;
      }

      .showcase-card {
        position: relative;
        min-height: 420px;
        border-radius: 14px;
        overflow: hidden;
        background: #0d1524;
        border: 1px solid rgba(255, 255, 255, 0.12);
        box-shadow: var(--shadow-card);
      }

      @media (hover: hover) and (pointer: fine) {
        .showcase-card {
          transition: transform 220ms var(--ease-standard), box-shadow 260ms var(--ease-standard);
          transform-style: preserve-3d;
          will-change: transform;
        }
      }

      .showcase-card[data-rescue-card] {
        cursor: pointer;
      }

      .showcase-media img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transform: scale(3.1);
        transition: opacity 0.7s var(--ease-standard), transform 0.5s var(--ease-standard);
      }

      .showcase-media .overlay-image {
        opacity: 0;
      }

      .showcase-media.dissolve .overlay-image {
        opacity: 1;
      }

      [data-hybrid-card] .showcase-media.dissolve .base-image,
      [data-petrol-card] .showcase-media.dissolve .base-image {
        opacity: 0;
      }

      /* Transparent PNGs in the rescue card overlay would bleed the base image
         through their transparent pixels during the crossfade. A solid fill
         prevents this — transparent areas show the card background instead. */
      [data-rescue-card] .showcase-media .overlay-image {
        background: #060b14;
      }

      .showcase-card:hover .showcase-media img {
        transform: scale(3.12);
      }

      .showcase-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(160deg, rgba(8, 14, 24, 0.66), rgba(8, 14, 24, 0.2) 55%, rgba(8, 14, 24, 0.08));
      }

      .showcase-content {
        position: absolute;
        left: 32px;
        top: 28px;
        z-index: 2;
        color: var(--white);
        display: grid;
        gap: 10px;
        max-width: 70%;
      }

      .showcase-btn {
        position: absolute;
        left: 50%;
        bottom: 26px;
        transform: translateX(-50%);
      }

      .showcase-eyebrow {
        font-size: 12px;
        letter-spacing: 0.3em;
        text-transform: uppercase;
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        color: rgba(255, 255, 255, 0.7);
      }

      .showcase-title {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem);
      }

      .showcase-btn {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        color: var(--white);
        font-size: 0.9rem;
        text-transform: uppercase;
        letter-spacing: 0.2em;
        background: transparent;
        border: none;
        padding: 0;
        text-decoration: underline;
        text-underline-offset: 6px;
        transition: text-underline-offset 0.2s ease;
      }

      .showcase-btn:hover {
        text-underline-offset: 3px;
      }

      #use-cases,
      #contact {
        background: linear-gradient(180deg, rgba(13, 21, 36, 0.96), rgba(17, 28, 48, 0.94));
      }

      #about {
        background: rgba(10, 16, 29, 0.98);
      }

      @media (max-width: 980px) {
        .hero-content {
          padding: 120px 0 80px;
        }

        .main__action {
          bottom: 22px;
        }

        .animation-stack {
          min-height: 360px;
        }

        .stack-main {
          width: 210px;
        }

        .stack-tile {
          width: 140px;
        }
      
        nav ul {
          display: none;
        }

        .split,
        .contact-grid {
          grid-template-columns: 1fr;
        }

        .contact-panel {
          grid-template-columns: 1fr;
        }

        #product .card-grid {
          grid-template-columns: repeat(3, minmax(0, 1fr));
        }

        .use-cases-grid {
          grid-template-columns: 1fr;
        }

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

        .sur-mesure-panel {
          grid-template-columns: 1fr;
        }

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

        .drone-image {
          order: -1;
        }
      }

      @media (max-width: 720px) {
        body {
          font-size: 1.03rem;
          line-height: 1.68;
        }

        .hero {
          min-height: 44svh;
          margin-top: calc(env(safe-area-inset-top, 0px) * -1);
          padding-top: env(safe-area-inset-top, 0px);
        }

        .hero-content {
          min-height: 44svh;
          padding: 92px 0 34px;
          gap: 10px;
        }

        .hero-media iframe {
          width: 210%;
          height: 210%;
        }

        .hero-overlay {
          background: linear-gradient(180deg, rgba(4, 10, 19, 0.62), rgba(4, 10, 19, 0.34) 45%, rgba(4, 10, 19, 0.68));
        }

        .stats {
          margin-top: 26px;
        }

        h1 {
          font-size: clamp(2.05rem, 7.7vw, 2.7rem);
          line-height: 1.08;
        }

        .main__action {
          bottom: 16px;
        }

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

        .stack-tile,
        .stack-strip {
          display: none;
        }

        .section-title {
          flex-direction: column;
          align-items: flex-start;
          gap: 12px;
          margin-bottom: 26px;
        }

        .section-title p {
          max-width: none;
          font-size: 1rem;
          line-height: 1.65;
        }

        #product .card-grid {
          grid-template-columns: repeat(2, minmax(0, 1fr));
          gap: 10px;
        }

        #product .card {
          width: 100%;
        }

        .use-cases-grid {
          gap: 18px;
        }

        .use-card .content {
          opacity: 1;
          transform: translateY(0);
          background: linear-gradient(0deg, rgba(6, 10, 18, 0.62), rgba(6, 10, 18, 0.2));
          padding: 20px 20px 22px;
        }

        .use-card .img-content {
          transform: scale(1.02);
          filter: blur(0.9px);
        }

        .use-card .content .heading {
          font-size: clamp(1.02rem, 4.2vw, 1.2rem);
          line-height: 1.38;
          letter-spacing: 0.07em;
        }

        .use-cases-grid .use-card-container:nth-child(2)::before {
          display: none;
        }

        .sur-mesure-panel {
          grid-template-columns: 1fr;
          overflow: visible;
        }

        .sur-mesure-image {
          order: -1;
          aspect-ratio: 16 / 11;
          border-radius: 16px 16px 0 0;
        }

        .sur-mesure-content {
          padding: 22px 18px 26px;
        }

        .sur-mesure-content p,
        .drone-content p {
          font-size: 1rem;
          line-height: 1.72;
        }

        .sur-mesure-content h2 {
          font-size: clamp(1.48rem, 6.2vw, 1.95rem);
          margin-bottom: 16px;
        }

        .sur-mesure-subheadline {
          margin-top: 14px;
          font-size: 0.84rem;
          letter-spacing: 0.1em;
        }

        .contact-panel {
          grid-template-columns: 1fr;
          overflow: visible;
        }

        .contact-image {
          order: -1;
          min-height: 260px;
          border-radius: 16px 16px 0 0;
        }

        .contact-image .contact-copy {
          padding: 22px 18px;
        }

        .contact-content {
          padding: 24px 18px;
        }

        .carousel {
          overflow: hidden;
        }

        .carousel-track {
          gap: 0;
          overflow-x: auto;
          overflow-y: hidden;
          -webkit-overflow-scrolling: touch;
          scroll-snap-type: x mandatory;
          scroll-padding-inline: 0;
          padding: 8px 0 10px;
          transform: none !important;
          scrollbar-width: none;
        }

        .carousel-track::-webkit-scrollbar {
          display: none;
        }

        .carousel-item {
          flex: 0 0 100%;
          min-width: 100%;
          max-width: 100%;
          scroll-snap-align: center;
          padding: 0 8px;
        }

        .carousel-item img {
          height: 220px;
          background: #111a29;
        }

        /* Carousel images stay visible — dark bg shows while loading, no flash */
        .carousel-item img[loading="lazy"]:not(.lazy-ready) {
          filter: none;
          opacity: 1;
        }

        .carousel-controls {
          display: none;
        }

        .footer-card h4 {
          white-space: normal;
        }


        .showcase-content {
          left: 20px;
          right: 20px;
          max-width: 100%;
        }
      }

      /* ══════════════════════════════════
         MOBILE — modals, cards, touch
      ══════════════════════════════════ */
      @media (max-width: 720px) {
        /* Modal: reduce carousel height so content fits without scrolling */
        .modal-carousel {
          height: 220px;
        }
        /* Bigger touch targets for modal arrows */
        .carousel-arrow {
          width: 44px;
          height: 44px;
        }
        /* Reduce showcase card min-height on small screens */
        .showcase-card {
          min-height: 280px;
        }
        /* Petrol card: less zoom on mobile to avoid blurry crops */
        [data-petrol-card] .showcase-media img {
          inset: auto;
          right: auto;
          bottom: auto;
          width: 160%;
          height: 160%;
          left: -10%;
          top: -30%;
        }
        /* Modal close: ensure 44px touch target */
        .modal-close {
          width: 44px;
          height: 44px;
        }
        /* Stack model tabs vertically if they overflow */
        .model-tabs {
          flex-wrap: wrap;
        }
        /* Products hero: tighter padding on mobile */
        .products-hero {
          padding: clamp(80px, 14vw, 120px) 0 clamp(40px, 6vw, 70px);
        }
        /* Scalable section: stack on mobile */
        .scalable-top {
          grid-template-columns: 1fr;
        }
      }

      /* ══════════════════════════════════
         CUSTOM CURSOR
      ══════════════════════════════════ */
      body:not(.using-keyboard) *, body:not(.using-keyboard) *::before, body:not(.using-keyboard) *::after { cursor: none !important; }

      #cursor-dot, #cursor-ring {
        position: fixed;
        top: 0; left: 0;
        border-radius: 50%;
        pointer-events: none;
        z-index: 99999;
        will-change: transform;
        transform: translate(-50%, -50%);
      }

      #cursor-dot {
        width: 6px; height: 6px;
        background: var(--blue-700, #0b5ad5);
        transition: opacity 0.2s ease;
      }

      #cursor-ring {
        width: 32px; height: 32px;
        border: 1.5px solid rgba(11, 90, 213, 0.55);
        background: transparent;
        transition: border-color 0.22s ease, background 0.22s ease;
      }

      body.cursor-hover #cursor-ring {
        border-color: rgba(11, 90, 213, 0.85);
        background: rgba(11, 90, 213, 0.06);
      }

      body.cursor-hover #cursor-dot {
        opacity: 0;
      }

      @media (hover: none) {
        #cursor-dot, #cursor-ring { display: none; }
        * { cursor: auto !important; }
      }

      /* ══════════════════════════════════
         FEATURE CARDS — scroll-triggered fly-in
      ══════════════════════════════════ */
      .card-grid {
        /* ensure cards visible before animation */
      }

      .card.card-animate {
        opacity: 0;
        transform: translateY(40px);
        transition: opacity 0.6s cubic-bezier(0.22,1,0.36,1),
                    transform 0.6s cubic-bezier(0.22,1,0.36,1);
      }

      .card.card-animate.card-visible {
        opacity: 1;
        transform: translateY(0);
      }

      .card.card-animate.card-visible .product-icon {
        animation: icon-pop 0.45s var(--ease-standard) both;
      }

      @keyframes icon-pop {
        0% { transform: translateY(2px) scale(0.92); }
        100% { transform: translateY(0) scale(1); }
      }

      /* Stagger delays for each card (1–6) */
      .card.card-animate:nth-child(1) { transition-delay: 0s; }
      .card.card-animate:nth-child(2) { transition-delay: 0.08s; }
      .card.card-animate:nth-child(3) { transition-delay: 0.16s; }
      .card.card-animate:nth-child(4) { transition-delay: 0.24s; }
      .card.card-animate:nth-child(5) { transition-delay: 0.32s; }
      .card.card-animate:nth-child(6) { transition-delay: 0.40s; }
      /* Font overrides for cross-browser consistency */
      body {
        font-family: "Helvetica VD", "Helvetica Neue", Helvetica, Arial, sans-serif;
      }

      h1,
      h2,
      h3,
      h4,
      .showcase-title,
      .modal-title,
      .sur-mesure-content h2,
      .contact-image h2,
      .footer-card h4 {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        text-transform: uppercase;
      }

      .showcase-eyebrow {
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        font-size: 12px;
        letter-spacing: 0.3em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.7);
        display: block;
        margin-bottom: 8px;
      }

      .caps-headline {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        text-transform: uppercase;
        letter-spacing: 0.18em;
      }

      .modal {
        position: fixed;
        inset: 0;
        background: rgba(6, 10, 18, 0.6);
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 24px;
        z-index: 100;
        opacity: 0;
        transition: opacity 0.25s ease;
        visibility: hidden;
        pointer-events: none;
      }

      .modal.open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
      }

      .modal.closing {
        opacity: 0;
      }

      .modal-content {
        background: linear-gradient(180deg, #0d1524 0%, #111c30 100%);
        color: var(--gray-900);
        border-radius: 12px;
        max-width: 880px;
        width: 100%;
        max-height: 90vh;
        overflow: auto;
        padding: 32px;
        box-shadow: var(--shadow-soft);
        transform: translateY(18px) scale(0.98);
        opacity: 0;
        transition: transform 0.25s ease, opacity 0.25s ease;
        position: relative;
      }

      body.modal-open {
        position: fixed;
        overflow: hidden;
        width: 100%;
        left: 0;
        right: 0;
      }

      .modal.open .modal-content {
        transform: translateY(0) scale(1);
        opacity: 1;
      }

      .modal.closing .modal-content {
        transform: translateY(10px) scale(0.98);
        opacity: 0;
      }

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

      .modal-close {
        background: transparent;
        border: 1px solid rgba(255, 255, 255, 0.24);
        border-radius: 999px;
        width: 34px;
        height: 34px;
        padding: 0;
        display: inline-grid;
        place-items: center;
        cursor: pointer;
        color: var(--gray-700);
        transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.18s ease, box-shadow 0.2s ease;
      }

      .modal-close:hover {
        background: rgba(255, 60, 60, 0.15);
        border-color: rgba(255, 80, 80, 0.55);
        color: #ff5555;
        transform: rotate(90deg) scale(1.1);
        box-shadow: 0 0 12px rgba(255, 60, 60, 0.25);
      }

      .modal-close:active {
        transform: rotate(90deg) scale(0.95);
        box-shadow: none;
      }

      .modal-close svg {
        width: 16px;
        height: 16px;
        stroke: currentColor;
        fill: none;
        stroke-width: 2.2;
        stroke-linecap: round;
      }

      .modal-hero {
        display: grid;
        gap: 18px;
        padding: 12px;
        border-radius: 12px;
        background: linear-gradient(180deg, #ffffff 0%, #edf3ff 100%);
      }

      .modal-hero img {
        width: 100%;
        border-radius: 10px;
        background: #ffffff;
      }

      .modal-title {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        font-size: clamp(1.8rem, 1.4rem + 1vw, 2.4rem);
      }

      .modal-subtitle {
        font-size: 1rem;
        color: var(--gray-500);
      }

      .modal-feature strong {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        font-size: 1.4rem;
        color: var(--blue-700);
        display: block;
        margin-bottom: 6px;
      }

      .modal-feature-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
        margin: 20px 0;
      }

      .modal-feature {
        border: 1px solid rgba(15, 23, 42, 0.12);
        border-radius: 10px;
        padding: 16px;
        background: var(--gray-100);
        font-weight: 600;
      }

      .modal-section {
        margin-top: 18px;
        display: grid;
        gap: 10px;
      }

      .modal-section.tech-section {
        margin-top: 36px;
      }

      .modal-actions {
        margin-top: 26px;
      }

      .modal-actions .btn-outline {
        border-color: var(--blue-700);
        color: var(--blue-700);
        background: transparent;
        transition: background 0.22s ease, color 0.22s ease, transform 0.18s ease, box-shadow 0.22s ease;
        display: inline-block;
      }

      .modal-actions .btn-outline:hover {
        background: var(--blue-700);
        color: #fff;
        transform: translateY(-2px);
        box-shadow: 0 8px 24px rgba(47, 123, 255, 0.35);
      }

      .modal-actions .btn-outline:active {
        transform: translateY(0);
        box-shadow: none;
      }

      .modal-scroll-hint {
        position: absolute;
        right: 10px;
        top: 50%;
        transform: translateY(-50%);
        width: 28px;
        display: grid;
        justify-items: center;
        gap: 6px;
        opacity: 0.75;
        transition: opacity 0.25s ease, transform 0.25s ease;
        pointer-events: none;
        z-index: 2;
      }

      .modal-scroll-hint.hidden {
        opacity: 0;
        transform: translateY(-50%) translateX(6px);
      }

      .modal-scroll-hint span {
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        font-size: 0.62rem;
        letter-spacing: 0.2em;
        text-transform: uppercase;
        color: var(--gray-500);
        writing-mode: vertical-rl;
        transform: rotate(180deg);
      }

      .modal-scroll-line {
        width: 1px;
        height: 22px;
        background: linear-gradient(to bottom, rgba(11, 90, 213, 0.8), rgba(11, 90, 213, 0.08));
        animation: modal-scroll-pulse 1.3s ease-in-out infinite;
      }

      @keyframes modal-scroll-pulse {
        0%, 100% { transform: scaleY(0.9); opacity: 0.45; }
        50% { transform: scaleY(1.18); opacity: 1; }
      }

      .modal-section h4 {
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        text-transform: uppercase;
        letter-spacing: 0.25em;
        font-size: 0.8rem;
        color: var(--gray-500);
      }

      .tech-table {
        width: 100%;
        border-collapse: collapse;
        font-size: 0.98rem;
        color: var(--gray-700);
      }

      .tech-table tr {
        border-bottom: 1px solid rgba(168, 183, 204, 0.24);
      }

      .tech-table td {
        padding: 10px 6px;
      }

      @media (max-width: 720px) {
        .modal-feature-grid {
          grid-template-columns: 1fr;
        }
      }

      .sur-mesure {
        padding: 90px 0;
      }

      .sur-mesure-panel {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
        border-radius: 20px;
        overflow: hidden;
        border: 1px solid rgba(11, 90, 213, 0.12);
        box-shadow: var(--shadow-card);
      }

      .about-section .sur-mesure-panel {
        margin-bottom: 80px;
      }

      .sur-mesure-image {
        overflow: hidden;
        aspect-ratio: 1 / 1;
      }

      .sur-mesure-image img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        transform: scale(1.08);
        transform-origin: center;
      }

      .sur-mesure-content h2 {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        font-size: clamp(2rem, 1.4rem + 1.4vw, 2.8rem);
        margin-bottom: 28px;
        line-height: 1.15;
      }

      .sur-mesure-subheadline {
        display: block;
        margin-top: 22px;
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        font-size: 0.98rem;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--gray-700);
        line-height: 1.45;
      }

      .sur-mesure-tag {
        display: inline-block;
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        font-size: 0.75rem;
        letter-spacing: 0.35em;
        text-transform: uppercase;
        color: var(--blue-700);
        margin-bottom: 14px;
      }

      .sur-mesure-content p {
        color: var(--gray-500);
        font-size: 1.05rem;
        margin-bottom: 20px;
      }

      .sur-mesure-content {
        background: rgba(11, 90, 213, 0.08);
        padding: 28px 32px;
      }

      .sur-mesure-content p {
        max-width: 62ch;
      }

      .sur-mesure-cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 12px 22px;
        border-radius: 999px;
        background: rgba(11, 90, 213, 0.12);
        color: var(--blue-700);
        font-size: 0.85rem;
        text-transform: uppercase;
        letter-spacing: 0.2em;
        text-decoration: underline;
        text-underline-offset: 5px;
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        transition: background 0.2s ease, text-underline-offset 0.2s ease;
      }

      .sur-mesure-cta:hover {
        background: rgba(11, 90, 213, 0.18);
        text-underline-offset: 3px;
      }

      .sur-mesure-content .btn {
        margin-top: 8px;
      }

      .sur-mesure-content .btn-load {
        display: inline-flex;
        margin-top: 34px;
        margin-left: auto;
        margin-right: auto;
      }

      .carousel {
        position: relative;
      }

      .carousel-track {
        display: flex;
        gap: 20px;
        overflow: visible;
        padding: 16px 0;
        will-change: transform;
      }

      .carousel-item {
        min-width: clamp(260px, 36vw, 380px);
        background: #111a29;
        border-radius: 10px;
        overflow: hidden;
        border: 1px solid rgba(15, 23, 42, 0.08);
        box-shadow: var(--shadow-card);
        transition: transform 0.3s ease, box-shadow 0.3s ease;
        transform-origin: center;
      }

      .carousel-item img {
        width: 100%;
        height: 260px;
        object-fit: cover;
        background: #111a29;
      }

      /* Carousel images stay visible — dark bg shows while loading, no flash */
      .carousel-item img[loading="lazy"]:not(.lazy-ready) {
        filter: none;
        opacity: 1;
      }

      .carousel-item:nth-child(5) img,
      .carousel-item:nth-child(9) img {
        object-position: center 65%;
      }

      .carousel-item:hover {
        transform: scale(1.06);
        box-shadow: 0 28px 64px rgba(12, 24, 46, 0.24);
      }

      .carousel-controls {
        display: flex;
        justify-content: flex-end;
        gap: 12px;
        margin-top: 16px;
      }

      .carousel-controls button {
        border: 1px solid rgba(255, 255, 255, 0.2);
        background: linear-gradient(180deg, rgba(17, 28, 48, 0.95), rgba(13, 21, 36, 0.95));
        padding: 8px 14px;
        border-radius: 999px;
        cursor: pointer;
        transition: transform 0.18s var(--ease-standard), box-shadow 0.25s var(--ease-standard),
          background-color 0.18s var(--ease-standard), border-color 0.18s var(--ease-standard);
        box-shadow: 0 8px 18px rgba(12, 24, 46, 0.12);
      }

      .carousel-controls button:hover {
        transform: translateY(-1px);
        box-shadow: 0 12px 22px rgba(12, 24, 46, 0.18);
        border-color: rgba(11, 90, 213, 0.36);
      }

      .carousel-controls button:active {
        transform: translateY(0);
        box-shadow: 0 6px 12px rgba(12, 24, 46, 0.14);
      }

      .carousel-controls button svg {
        transition: transform 0.18s var(--ease-standard);
      }

      .carousel-controls button:hover svg {
        transform: translateX(1px);
      }

      .split {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 32px;
        align-items: center;
      }

      .animation-stack {
        position: relative;
        min-height: 420px;
        border-radius: var(--radius-lg);
        background: linear-gradient(135deg, rgba(47, 123, 255, 0.14), rgba(17, 28, 48, 0.94));
        border: 1px solid rgba(255, 255, 255, 0.14);
        overflow: hidden;
      }

      .animation-stack img {
        position: absolute;
        display: block;
        opacity: 0;
        transform: translateY(18px);
        transition: opacity 0.7s ease, transform 0.7s ease;
      }

      .animation-stack.visible img {
        opacity: 1;
        transform: translateY(0);
      }

      .stack-main {
        width: 260px;
        left: 55%;
        top: 50%;
        transform: translate(-50%, -50%);
        filter: drop-shadow(0 20px 40px rgba(12, 24, 46, 0.18));
      }

      .stack-tile {
        width: 170px;
        animation: floatY 6s ease-in-out infinite;
      }

      .tile-1 {
        left: 15%;
        top: 14%;
      }

      .tile-2 {
        left: 62%;
        top: 12%;
        animation-delay: 1s;
      }

      .tile-3 {
        left: 10%;
        top: 55%;
        animation-delay: 2s;
      }

      .tile-4 {
        left: 62%;
        top: 56%;
        animation-delay: 3s;
      }

      .stack-strip {
        width: 158px;
        left: 56%;
        animation: floatY 5s ease-in-out infinite;
      }

      .strip-1 {
        top: 26%;
      }

      .strip-2 {
        top: 43%;
        animation-delay: 0.6s;
      }

      .strip-3 {
        top: 60%;
        animation-delay: 1.2s;
      }

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

      .split-panel {
        background: linear-gradient(180deg, rgba(17, 28, 48, 0.94), rgba(13, 21, 36, 0.94));
        border-radius: var(--radius-lg);
        padding: 32px;
        border: 1px solid rgba(255, 255, 255, 0.12);
      }

      .split-panel ul {
        list-style: none;
        display: grid;
        gap: 14px;
        margin-top: 20px;
      }

      .split-panel li {
        display: flex;
        gap: 12px;
        align-items: flex-start;
        color: var(--gray-700);
      }

      .split-panel li span {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: var(--blue-500);
        margin-top: 8px;
      }

      .contact-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 32px;
      }

      .contact-panel {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        border-radius: 20px;
        overflow: hidden;
        border: none;
        box-shadow: var(--shadow-card);
      }

      #contact {
        margin-top: -20px;
      }

      .contact-image {
        position: relative;
        overflow: hidden;
        background: #0b1220;
        display: flex;
        align-items: stretch;
      }

      .contact-image .contact-copy {
        position: absolute;
        inset: 0;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        gap: 12px;
        padding: 28px;
        color: var(--white);
        background: linear-gradient(180deg, rgba(8, 12, 20, 0.1), rgba(8, 12, 20, 0.7));
      }

      .contact-image h2 {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        font-size: clamp(1.6rem, 1.2rem + 1vw, 2.2rem);
        line-height: 1.15;
      }

      .contact-image p {
        color: rgba(255, 255, 255, 0.85);
      }

      .contact-image a {
        color: var(--white);
        text-decoration: underline;
        text-underline-offset: 4px;
      }

      .contact-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center 40%;
        display: block;
        flex: 1;
        min-height: 100%;
      }

      .contact-content {
        background: linear-gradient(180deg, rgba(17, 28, 48, 0.9), rgba(13, 21, 36, 0.94));
        padding: 32px;
      }

      .btn-load {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 10px 20px;
        border-radius: 999px;
        border: 1px solid rgba(255, 255, 255, 0.22);
        background: transparent;
        text-transform: uppercase;
        letter-spacing: 0.25em;
        font-size: 0.85rem;
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        color: var(--gray-900);
        width: fit-content;
        transition: transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-med) var(--ease-standard),
          background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard),
          color var(--dur-fast) var(--ease-standard);
      }

      .btn-load:hover {
        transform: translateY(-2px);
        box-shadow: 0 12px 24px rgba(12, 24, 46, 0.18);
        background: var(--blue-700);
        border-color: var(--blue-700);
        color: var(--white);
      }

      .contact-card {
        background: var(--white);
        border-radius: var(--radius-lg);
        padding: 32px;
        border: 1px solid rgba(15, 23, 42, 0.08);
        box-shadow: var(--shadow-card);
      }

      form {
        display: grid;
        gap: 16px;
      }

      .field-row {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
      }

      label {
        font-size: 0.85rem;
        color: var(--gray-500);
        margin-bottom: 6px;
      }

      input,
      textarea {
        width: 100%;
        padding: 12px 14px;
        border-radius: 12px;
        border: 1px solid rgba(15, 23, 42, 0.12);
        font-family: inherit;
        font-size: 0.98rem;
      }

      textarea {
        min-height: 120px;
        resize: vertical;
      }

      input::placeholder,
      textarea::placeholder {
        color: rgba(168, 183, 204, 0.48);
      }

      footer {
        padding: 64px 0 30px;
        background: linear-gradient(180deg, rgba(10, 16, 29, 0.98), rgba(13, 21, 36, 0.98));
        border-top: 1px solid rgba(255, 255, 255, 0.12);
      }

      .footer-grid {
        display: grid;
        grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.55fr);
        gap: 28px;
        align-items: start;
      }

      .footer-left {
        display: grid;
        grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
        gap: 20px;
        align-items: start;
      }

      .footer-logo {
        display: flex;
        align-items: center;
        gap: 12px;
      }

      .footer-logo img {
        width: 48px;
        height: auto;
      }

      .footer-address {
        display: grid;
        grid-template-columns: 1fr;
        gap: 16px;
        font-size: 0.84rem;
        color: var(--gray-500);
        line-height: 1.48;
      }

      .footer-address p {
        margin: 0;
      }

      .footer-address-label {
        display: block;
        white-space: nowrap;
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        text-transform: uppercase;
        letter-spacing: 0.14em;
        color: var(--gray-700);
      }

      .footer-right {
        display: grid;
        gap: 10px;
        justify-items: end;
        align-content: start;
      }

      .footer-nav {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 18px;
        flex-wrap: wrap;
        color: var(--gray-700);
        font-size: 0.9rem;
      }

      .footer-nav a {
        color: var(--gray-700);
        text-decoration: none;
        transition: color 0.18s ease, opacity 0.18s ease;
      }

      .footer-nav a:hover {
        color: var(--blue-700);
        opacity: 1;
      }

      .footer-legal {
        display: flex;
        gap: 14px;
        font-size: 0.78rem;
      }

      .footer-legal a {
        color: var(--gray-500);
        text-decoration: none;
      }

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

      .footer-lang {
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: 0.8rem;
        letter-spacing: 0.2em;
        text-transform: uppercase;
        color: var(--gray-700);
      }

      .footer-lang .lang-toggle {
        background: transparent;
      }

      .footer-lang .lang-toggle button {
        border: 1px solid rgba(15, 23, 42, 0.15);
        padding: 6px 10px;
        font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
      }

      .footer-card {
        background: linear-gradient(180deg, rgba(17, 28, 48, 0.9), rgba(13, 21, 36, 0.96));
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 14px;
        padding: 14px 16px;
        display: grid;
        gap: 10px;
        box-shadow: var(--shadow-card-soft);
        transition: transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-med) var(--ease-standard);
      }

      .footer-card:hover {
        transform: translateY(-2px);
        box-shadow: var(--shadow-card-hover);
      }

      .footer-card h4 {
        font-family: "Bugatti Headline", "Sora", sans-serif;
        font-size: 1rem;
        white-space: nowrap;
      }

      .newsletter {
        display: flex;
        flex-direction: column;
        gap: 8px;
      }

      .newsletter-fields {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        align-items: center;
      }

      .newsletter input { min-width: 0; }

      .newsletter .btn-load {
        padding: 10px 18px;
        font-size: 0.78rem;
        letter-spacing: 0.18em;
        white-space: nowrap;
      }

      .newsletter-msg { font-size: 0.82rem; margin: 0; }
      .newsletter-msg--ok  { color: var(--blue-500); }
      .newsletter-msg--err { color: #ff6b6b; }

      .footer-bottom {
        margin-top: 30px;
        text-align: center;
        color: var(--gray-500);
        font-size: 0.82rem;
      }

      .example-2 {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        list-style: none;
        padding: 0;
        margin: 0;
        gap: 8px;
      }

      .example-2 .icon-content {
        margin: 0;
        position: relative;
      }

      .example-2 .icon-content a {
        position: relative;
        overflow: hidden;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 42px;
        height: 42px;
        border-radius: 50%;
        color: #4d4d4d;
        background-color: #fff;
        border: 1px solid rgba(15, 23, 42, 0.09);
        transition: transform 0.18s var(--ease-standard), box-shadow 0.18s var(--ease-standard),
          color 0.18s var(--ease-standard);
        will-change: transform;
      }

      .example-2 .icon-content a:hover {
        transform: translateY(-1px);
        box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12);
      }

      .example-2 .icon-content a svg {
        position: relative;
        z-index: 1;
        width: 22px;
        height: 22px;
      }

      .example-2 .icon-content a:hover {
        color: white;
      }

      .example-2 .icon-content a .filled {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: #000;
        transform: scaleY(0);
        transform-origin: bottom center;
        transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
        will-change: transform;
      }

      .example-2 .icon-content a:hover .filled {
        transform: scaleY(1);
      }

      .example-2 .icon-content a[data-social="linkedin"] .filled {
        background-color: #0274b3;
      }

      .example-2 .icon-content a[data-social="x"] .filled {
        background-color: #111111;
      }

      .example-2 .icon-content a[data-social="facebook"] .filled {
        background-color: #1877f2;
      }

      .example-2 .icon-content a[data-social="instagram"] .filled {
        background: linear-gradient(45deg, #405de6, #5b51db, #b33ab4, #c135b4, #e1306c, #fd1f1f);
      }

      .example-2 .icon-content a[data-social="youtube"] .filled {
        background-color: #ff0000;
      }

      @media (max-width: 980px) {
        .footer-grid {
          grid-template-columns: 1fr;
          gap: 14px;
        }

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

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

        .footer-right {
          justify-items: start;
        }

        .footer-nav {
          justify-content: flex-start;
        }

        .example-2 {
          justify-content: flex-start;
        }
      }

      @media (max-width: 720px) {
        header::before {
          background: #081224;
        }

        body::before {
          content: "";
          position: fixed;
          top: 0;
          left: 0;
          width: 100%;
          height: env(safe-area-inset-top, 0px);
          background: #081224;
          z-index: 48;
          pointer-events: none;
        }

        html,
        body {
          background: #060b14;
        }

        .hero {
          min-height: 44svh;
          margin-top: calc((env(safe-area-inset-top, 0px) * -1) - 8px);
          padding-top: 0;
        }

        .hero-media {
          top: calc((env(safe-area-inset-top, 0px) * -1) - 56px);
          bottom: -24px;
          height: calc(100% + env(safe-area-inset-top, 0px) + 88px);
        }

        .hero-media iframe {
          width: 300%;
          height: 300%;
        }

        .hero-content {
          min-height: 44svh;
          padding: 98px 0 14px;
        }

        .hero::after {
          bottom: -4px;
          height: 104px;
          background: linear-gradient(
            180deg,
            rgba(13, 21, 36, 0) 0%,
            rgba(13, 21, 36, 0.34) 35%,
            rgba(13, 21, 36, 0.82) 72%,
            rgba(13, 21, 36, 1) 100%
          );
        }

        .drone-section {
          padding-top: var(--section-space);
        }

        .main__action {
          bottom: 12px;
          transform: translateX(-50%) translateY(8%);
          z-index: 4;
        }

        .carousel {
          overflow: hidden;
        }

        .carousel-track {
          gap: 0;
          overflow-x: auto;
          overflow-y: hidden;
          -webkit-overflow-scrolling: touch;
          scroll-snap-type: x mandatory;
          scroll-padding-inline: 0;
          padding: 8px 0 10px;
          transform: none !important;
          scrollbar-width: none;
        }

        .carousel-track::-webkit-scrollbar {
          display: none;
        }

        .carousel-item {
          flex: 0 0 100%;
          min-width: 100%;
          max-width: 100%;
          scroll-snap-align: center;
          padding: 0;
        }

        .carousel-item img {
          width: 100%;
          height: 230px;
          object-fit: cover;
          background: #111a29;
        }

        .carousel-item img[loading="lazy"]:not(.lazy-ready) {
          filter: none;
        }

        .carousel-controls {
          display: flex;
          justify-content: center;
          margin-top: 10px;
        }

        #about .sur-mesure-panel {
          grid-template-columns: 1fr !important;
          overflow: visible;
        }

        #about .sur-mesure-image {
          order: -1;
          aspect-ratio: 16 / 11;
          border-radius: 16px 16px 0 0;
        }

        #about .sur-mesure-content {
          padding: 22px 18px 26px;
        }

        #about .sur-mesure-content h2 {
          font-size: clamp(1.48rem, 6.2vw, 1.95rem);
          margin-bottom: 16px;
        }

        #about .sur-mesure-subheadline {
          margin-top: 14px;
          font-size: 0.84rem;
          letter-spacing: 0.1em;
        }

        #contact .contact-panel {
          grid-template-columns: 1fr !important;
          overflow: visible;
        }

        #contact .contact-image {
          order: -1;
          min-height: 310px;
          border-radius: 16px 16px 0 0;
        }

        #contact .contact-image img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          object-position: center;
        }

        #contact .contact-content {
          padding: 24px 18px;
        }

        #product .card {
          transition: none;
        }

        #product .card::after {
          display: none;
        }

        #product .card:hover {
          transform: none;
          box-shadow: var(--shadow-card-soft);
          border-color: rgba(110, 231, 255, 0.34);
          background: linear-gradient(180deg, rgba(22, 37, 63, 0.96), rgba(16, 28, 48, 0.96));
        }

        .product-icon,
        #product .card:hover .product-icon {
          transition: none;
          transform: none;
        }

        .card.card-animate,
        .card.card-animate.card-visible {
          opacity: 1;
          transform: none;
          transition: none;
        }
      }

      @media (prefers-reduced-motion: reduce) {
        *, *::before, *::after {
          animation: none !important;
          transition-duration: 0.01ms !important;
          transition-delay: 0ms !important;
          scroll-behavior: auto !important;
        }
      }

      @media (max-width: 900px), (hover: none), (pointer: coarse) {
        #product,
        #use-cases,
        #showcase,
        #about,
        #contact,
        footer {
          content-visibility: visible;
          contain-intrinsic-size: auto;
        }

        .card.card-animate,
        .card.card-animate.card-visible {
          opacity: 1 !important;
          transform: none !important;
          transition: none !important;
        }

        .fade-in {
          transform: translateY(10px);
          filter: none;
          transition: opacity 0.5s ease, transform 0.5s ease;
        }

        .use-card .img-content,
        .use-card:hover .img-content {
          transform: none !important;
          filter: blur(0.45px) !important;
          transition: none !important;
        }

        .use-card .content,
        .use-card:hover .content {
          opacity: 1 !important;
          transform: none !important;
          transition: none !important;
        }

        .carousel-item,
        .carousel-item:hover {
          box-shadow: var(--shadow-card);
          transition: box-shadow 0.2s ease;
        }

        .showcase-media img {
          will-change: opacity;
        }

        body.is-coarse #product .card {
          opacity: 0;
          transform: translateY(16px);
          transition: opacity 0.55s ease, transform 0.55s ease;
        }

        body.is-coarse #product .card.is-visible {
          opacity: 1;
          transform: translateY(0);
        }
      }


/* ══════════════════════════════════
   SCROLL-AWARE NAVBAR
══════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  header { transition: none; }
}

/* ══════════════════════════════════
   HERO H1 WORD REVEAL
══════════════════════════════════ */
.hero-content h1 .hero-word {
  display: inline-block;
}

.hero-content h1.hero-title-ready .hero-word {
  animation: word-rise 0.72s var(--ease-standard) both;
  animation-delay: calc(var(--word-i) * 0.13s + 0.08s);
}

@keyframes word-rise {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-content h1 .hero-word {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}

/* ══════════════════════════════════
   SECTION TITLE ANIMATED UNDERLINE
══════════════════════════════════ */
.section-title h2 {
  position: relative;
}

.section-title h2::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -7px;
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--blue-700), var(--blue-500));
  border-radius: 2px;
  transition: width 0.6s var(--ease-standard);
}

.section-title.title-active h2::after {
  width: 56px;
}

@media (prefers-reduced-motion: reduce) {
  .section-title h2::after {
    width: 56px !important;
    transition: none;
  }
}

/* ══════════════════════════════════
   CONTACT FORM DARK THEME + FOCUS GLOW
══════════════════════════════════ */
#contact input,
#contact textarea {
  background: rgba(8, 14, 28, 0.88);
  color: var(--gray-900);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: border-color 0.24s ease, box-shadow 0.24s ease;
}

#contact input::placeholder,
#contact textarea::placeholder {
  color: rgba(187, 200, 217, 0.36);
}

#contact input:focus,
#contact textarea:focus {
  outline: none;
  border-color: rgba(47, 123, 255, 0.6);
  box-shadow: 0 0 0 3px rgba(47, 123, 255, 0.11), inset 0 0 0 1px rgba(47, 123, 255, 0.08);
}

#contact label {
  color: var(--gray-700);
}

@media (prefers-reduced-motion: reduce) {
  #contact input,
  #contact textarea { transition: none; }
}

/* ══════════════════════════════════
   MODAL CONTENT STAGGERED ENTRANCE
══════════════════════════════════ */
@keyframes modal-child-rise {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

.modal.open .modal-feature-grid .modal-feature,
.modal.open .tech-table tr,
.modal.open .modal-section {
  animation: modal-child-rise 0.46s var(--ease-standard) both;
}

.modal.open .modal-feature-grid .modal-feature:nth-child(1) { animation-delay: 0.09s; }
.modal.open .modal-feature-grid .modal-feature:nth-child(2) { animation-delay: 0.17s; }
.modal.open .modal-feature-grid .modal-feature:nth-child(3) { animation-delay: 0.25s; }

.modal.open .tech-table tr:nth-child(1)  { animation-delay: 0.30s; }
.modal.open .tech-table tr:nth-child(2)  { animation-delay: 0.34s; }
.modal.open .tech-table tr:nth-child(3)  { animation-delay: 0.38s; }
.modal.open .tech-table tr:nth-child(4)  { animation-delay: 0.42s; }
.modal.open .tech-table tr:nth-child(5)  { animation-delay: 0.46s; }
.modal.open .tech-table tr:nth-child(6)  { animation-delay: 0.50s; }
.modal.open .tech-table tr:nth-child(7)  { animation-delay: 0.54s; }
.modal.open .tech-table tr:nth-child(8)  { animation-delay: 0.58s; }
.modal.open .tech-table tr:nth-child(9)  { animation-delay: 0.62s; }
.modal.open .tech-table tr:nth-child(10) { animation-delay: 0.66s; }
.modal.open .tech-table tr:nth-child(11) { animation-delay: 0.70s; }

.modal.open .modal-section:nth-of-type(1) { animation-delay: 0.26s; }
.modal.open .modal-section:nth-of-type(2) { animation-delay: 0.34s; }

@media (prefers-reduced-motion: reduce) {
  .modal.open .modal-feature-grid .modal-feature,
  .modal.open .tech-table tr,
  .modal.open .modal-section {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}

/* ══════════════════════════════════
   SVG ICON PATHS — ALWAYS VISIBLE
══════════════════════════════════ */
#product .card .product-icon svg path,
#product .card .product-icon svg circle {
  stroke-dasharray: none;
  stroke-dashoffset: 0;
}

/* ══════════════════════════════════
   AMBIENT BACKGROUND PULSE
══════════════════════════════════ */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  background: radial-gradient(900px 600px at 15% 55%, rgba(47, 123, 255, 0.05), transparent 70%);
  animation: ambient-pulse 9s ease-in-out infinite alternate;
  pointer-events: none;
  z-index: -1;
}

@keyframes ambient-pulse {
  from { opacity: 0.5; transform: scale(1) translate(0, 0); }
  to   { opacity: 1;   transform: scale(1.08) translate(2%, -2%); }
}

@media (prefers-reduced-motion: reduce) {
  body::after {
    animation: none;
    opacity: 0.6;
  }
}

/* ══════════════════════════════════
   PARTNERS SECTION
══════════════════════════════════ */
#partners {
  padding: var(--section-space) 0;
}

#partners .section-title {
  margin-bottom: var(--space-xl);
}

.partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 4vw, 48px) clamp(28px, 4vw, 56px);
  max-width: 820px;
  margin: 0 auto;
}

.partner-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 80px;
}

.partner-logo img {
  width: auto;
  height: 44px;
  max-width: 160px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0;
  transition: opacity 0.5s ease;
}

.partner-logo img.lazy-ready {
  opacity: 0.6;
}

/* JPG: screen blend removes white bg cleanly (single element, no perf impact) */
.partner-logo--jpg {
  mix-blend-mode: screen;
}

.partner-logo--jpg img {
  filter: grayscale(1) invert(1) brightness(3);
}

@media (max-width: 600px) {
  .partners-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 12px;
  }
  .partner-logo {
    height: 60px;
  }
}

/* BMW Grid Layout (Im Frühling erwacht replica) */
.bmw-layout-section {
  padding: clamp(60px, 8vw, 120px) 0;
  background: transparent;
}

.bmw-container .bmw-grid {
  display: grid;
  grid-template-columns: 6fr 6fr;
  gap: clamp(3rem, 6vw, 6rem);
  align-items: center;
}

.bmw-container .bmw-grid--reversed {
  grid-template-columns: 6fr 6fr;
}

.bmw-grid__image {
  border-radius: var(--radius-lg);
}

.bmw-grid__image img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
  display: block;
}

.bmw-grid__image--fpv {
  overflow: hidden;
}

.bmw-grid__image--fpv img {
  width: 140%;
  object-fit: cover;
  aspect-ratio: 1 / 1;
  margin-left: 0;
  margin-right: auto;
}

.bmw-grid__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.bmw-grid__subtitle {
  color: var(--gray-900);
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 0.95rem;
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 2rem !important;
  font-weight: 500;
}

.bmw-grid__text p {
  color: var(--gray-500);
  font-size: 1.05rem;
  line-height: 1.6;
  margin-bottom: 1.2rem;
}

@media (max-width: 960px) {
  .bmw-container .bmw-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}

/* FPV Vision Banner Section */
.bmw-banner-section {
  position: relative;
  min-height: 540px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0 0 7rem 0;
  margin-top: 0;
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
}

.bmw-banner__background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.bmw-banner__background img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

.bmw-banner__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(6, 11, 20, 0.1) 0%, rgba(6, 11, 20, 0.8) 100%);
}

.bmw-banner__container {
  position: relative;
  z-index: 2;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}

.bmw-banner__content {
  max-width: 720px;
  color: var(--white);
  padding-left: clamp(2rem, 8vw, 8rem);
  flex: 1 1 500px;
}

.bmw-banner__drones {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding-right: clamp(1rem, 6vw, 6rem);
  padding-top: 2rem;
  flex-wrap: wrap;
  justify-content: center;
}

.bmw-banner__drones img {
  width: clamp(150px, 28vw, 420px);
  max-height: 400px;
  object-fit: contain;
  filter: drop-shadow(0 10px 20px rgba(0,0,0,0.5));
}

.bmw-banner__title {
  font-family: inherit;
  font-size: clamp(2.4rem, 2.2rem + 1.2vw, 3.2rem);
  line-height: 1.1;
  margin-bottom: 1rem;
}

.bmw-banner__text {
  font-size: 1.15rem;
  line-height: 1.6;
  margin-bottom: 2rem;
  color: rgba(255, 255, 255, 0.9);
}

@media (max-width: 768px) {
  .bmw-banner-section {
    min-height: 580px;
    padding: 0;
    align-items: stretch;
  }

  .bmw-banner__container {
    flex-direction: column;
    justify-content: flex-start;
    padding-top: clamp(2.5rem, 7vw, 3.5rem);
    padding-bottom: 2rem;
    gap: 0;
    min-height: 580px;
  }

  .bmw-banner__content {
    flex: 0 0 auto;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    max-width: 100%;
  }

  .bmw-banner__title {
    font-size: clamp(1.7rem, 5.5vw, 2.2rem) !important;
  }

  .bmw-banner__text {
    font-size: 0.9rem;
    line-height: 1.55;
    margin-bottom: 1.25rem;
  }

  .bmw-banner__drones {
    padding-right: 1.25rem;
    padding-top: 0.5rem;
    padding-left: 0;
    justify-content: flex-end;
    align-self: flex-end;
    width: 100%;
  }

  .bmw-banner__drones img {
    width: clamp(130px, 48vw, 200px);
  }

  .bmw-banner__overlay {
    background: linear-gradient(160deg, rgba(6,11,20,0.55) 0%, rgba(6,11,20,0.72) 55%, rgba(6,11,20,0.88) 100%);
  }
}

/* == MOBILE NAVIGATION == */

.nav-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  padding: 6px;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 200;
  position: relative;
}

.nav-hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: transform 0.25s var(--ease-standard), opacity 0.2s;
  transform-origin: center;
}

.nav-hamburger.is-open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.nav-hamburger.is-open span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.nav-hamburger.is-open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.mobile-nav {
  position: fixed;
  inset: 0;
  background: rgba(6, 11, 20, 0.97);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 150;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  transform: translateX(100%);
  transition: transform 0.35s var(--ease-standard);
  pointer-events: none;
}

.mobile-nav[aria-hidden="false"] {
  transform: translateX(0);
  pointer-events: all;
}

.mobile-nav nav ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  padding: 0;
  margin: 0;
}

.mobile-nav nav ul a {
  font-family: "Bugatti Headline", "Sora", sans-serif;
  font-size: clamp(1.8rem, 6vw, 2.4rem);
  color: var(--gray-700);
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: color 0.18s;
}

.mobile-nav nav ul a:hover {
  color: var(--blue-500);
}

.mobile-nav-lang {
  margin-top: 1rem;
}

@media (max-width: 980px) {
  .nav-hamburger {
    display: flex;
  }
}

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

/* == SKIP LINK (accessibility) == */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 1rem;
  z-index: 9999;
  padding: 10px 20px;
  background: var(--blue-700);
  color: var(--white);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  border-radius: var(--radius-sm);
  text-decoration: none;
}

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

/* == PRODUCTS PAGE == */

.products-hero {
  position: relative;
  padding: clamp(100px, 14vw, 160px) 0 clamp(60px, 8vw, 100px);
  overflow: hidden;
  background-image: url('../images/payerne_aeroport.webp');
  background-size: cover;
  background-position: center 35%;
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
}
.products-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, rgba(6, 11, 20, 0.72) 0%, rgba(6, 11, 20, 0.55) 100%),
    radial-gradient(900px 500px at 80% 0%, rgba(47, 123, 255, 0.18), transparent 60%),
    radial-gradient(600px 400px at 0% 60%, rgba(110, 231, 255, 0.10), transparent 60%);
  pointer-events: none;
}
.products-hero .container {
  position: relative;
  z-index: 1;
}
.products-hero h1 {
  font-family: "Bugatti Headline", "Sora", sans-serif;
  font-size: clamp(2.8rem, 5vw + 1rem, 5.5rem);
  line-height: 1.05;
  letter-spacing: 0.01em;
  margin-bottom: 1.2rem;
  color: var(--gray-900);
}
.products-hero p {
  max-width: 560px;
  color: var(--gray-500);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.65;
}

#products-showcase .showcase-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 640px) {
  #products-showcase .showcase-grid {
    grid-template-columns: 1fr;
  }
  #products-showcase .showcase-grid article[style*="grid-column"] {
    grid-column: span 1 !important;
  }
}

.model-tabs {
  display: flex;
  gap: 0.5rem;
  padding: 1rem 1.5rem 0;
}
.model-tab {
  padding: 0.5rem 1.4rem;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.15);
  background: transparent;
  color: #8ba3c7;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background 0.18s, border-color 0.18s, color 0.18s, transform 0.15s, box-shadow 0.18s;
  position: relative;
  outline: none;
}
.model-tab:hover {
  background: rgba(47,123,255,0.12);
  border-color: rgba(47,123,255,0.5);
  color: #c8d8f0;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(47,123,255,0.18);
}
.model-tab:active {
  transform: translateY(0);
  box-shadow: none;
}
.model-tab.active {
  background: #2f7bff;
  border-color: #2f7bff;
  color: #fff;
  box-shadow: 0 4px 18px rgba(47,123,255,0.35);
}
.model-tab.active:hover {
  background: #4d8fff;
  border-color: #4d8fff;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(47,123,255,0.45);
}
.model-tab:focus-visible {
  outline: 2px solid #4d8fff;
  outline-offset: 2px;
}
.modal-carousel {
  position: relative;
  background: linear-gradient(180deg, #0d1b2e 0%, #060b14 100%);
  border-radius: 12px;
  overflow: hidden;
  height: 340px;
  margin-bottom: 4px;
  padding: 0;
}
.carousel-track {
  position: relative;
  width: 100%;
  height: 100%;
}
.carousel-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.25rem;
  box-sizing: border-box;
  opacity: 0;
  transition: opacity 0.45s ease;
}
.carousel-slide.active {
  opacity: 1;
}
.carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  border-radius: 10px;
  background: transparent;
}
.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fff;
  transition: background 0.2s;
  padding: 0;
}
.carousel-arrow:hover { background: rgba(47,123,255,0.35); }
.carousel-arrow svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.carousel-prev { left: 12px; }
.carousel-next { right: 12px; }
.carousel-dots {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 7px;
}
.carousel-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255,255,255,0.25);
  transition: background 0.2s;
  cursor: pointer;
}
.carousel-dot.active { background: #4d9fff; }
.hybrid-content { display: none; }
.hybrid-content.active { display: block; }
.carousel-slide.m1000-only,
.carousel-dot.m1000-only { display: none; }
.m1000-active .carousel-slide.m1000-only,
.m1000-active .carousel-dot.m1000-only { display: block; }
.m1000-active .carousel-dot.m1000-only { display: inline-block; }

#product {
  background: #060b14;
}
#product .card.card-animate {
  opacity: 1;
  transform: none;
}

.showcase-card.drone-card .showcase-media {
  background: #000;
}
.showcase-card.drone-card .showcase-media img.base-image,
.showcase-card.drone-card .showcase-media img.overlay-image {
  object-fit: contain;
  padding: 12% 8%;
}

[data-rescue-card] .showcase-media img,
[data-hybrid-card] .showcase-media img {
  transform: scale(1);
  object-fit: cover;
}
[data-rescue-card]:hover .showcase-media img,
[data-hybrid-card]:hover .showcase-media img {
  transform: scale(1.08);
}

[data-petrol-card] .showcase-media img {
  transform: scale(2);
  object-fit: cover;
}
[data-petrol-card]:hover .showcase-media img {
  transform: scale(2.16);
}

.scalable-section {
  padding: clamp(60px, 8vw, 100px) 0;
  background: #060b14;
  overflow: hidden;
}
.scalable-eyebrow {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #4d9fff;
  margin-bottom: 0.9rem;
}
.scalable-section h2 {
  font-family: "Bugatti Headline", "Sora", sans-serif;
  font-size: clamp(2rem, 3.5vw, 3rem);
  line-height: 1.1;
  color: #f0f4ff;
  margin-bottom: 1rem;
}
.scalable-section .lead {
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.7;
  color: #8ba3c7;
}
.scalable-top {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
  margin-bottom: clamp(2.5rem, 4vw, 4rem);
}
@media (max-width: 768px) {
  .scalable-top {
    grid-template-columns: 1fr;
  }
}
.scalable-img-frame {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 32px rgba(0,0,0,0.45);
}
.scalable-img-frame img {
  width: 100%;
  height: auto;
  display: block;
}

.products-cta {
  padding: clamp(60px, 9vw, 110px) 0;
  background: #060b14;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.products-cta__inner {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
}
.products-cta__inner h2 {
  font-family: "Bugatti Headline", "Sora", sans-serif;
  font-size: clamp(1.9rem, 3vw + 0.5rem, 3rem);
  line-height: 1.1;
  color: #f0f4ff;
  margin-bottom: 1rem;
}
.products-cta__inner p:not(.scalable-eyebrow) {
  color: #8ba3c7;
  font-size: clamp(0.95rem, 1.3vw, 1.1rem);
  line-height: 1.7;
  margin-bottom: 2rem;
}
.products-cta__btn {
  border: 1.5px solid var(--blue-700);
  padding: 14px 36px;
  font-size: 0.95rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.products-cta__btn:hover {
  background: var(--blue-700);
  color: #fff;
}
