/* base.css — DME Showcase Reset, Layout, Typography, Buttons, Utilities */

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

    html {
      scroll-behavior: auto; /* Lenis handles smooth scroll */
      scroll-padding-top: 80px;
    }

    body {
      font-family: var(--font-body);
      font-weight: 300;
      color: var(--text-primary);
      background: var(--bg-primary);
      overflow-x: hidden;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

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

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

    .container {
      width: min(1440px, 100%);
      margin-inline: auto;
      padding-inline: clamp(24px, 5vw, 120px);
    }

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

    .section-headline {
      font-family: var(--font-display);
      font-weight: 700;
      font-size: clamp(40px, 5vw, 72px);
      line-height: 1.0;
      text-transform: uppercase;
      letter-spacing: -0.01em;
      color: var(--dme-offwhite);
    }

    .body-text {
      font-family: var(--font-body);
      font-weight: 300;
      font-size: clamp(15px, 1.5vw, 18px);
      line-height: 1.7;
      color: rgba(255, 255, 255, 0.9);
    }

    .eyebrow {
      font-family: var(--font-body);
      font-weight: 700;
      font-size: 14px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--dme-gold);
      margin-bottom: var(--space-sm);
      text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    }

    .btn-primary {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 16px 36px;
      background: var(--dme-blue);
      color: var(--dme-offwhite);
      font-family: var(--font-body);
      font-weight: 700;
      font-size: 14px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      border: none;
      cursor: pointer;
      transition: background 0.25s ease, transform 0.2s ease;
      text-decoration: none;
    }

    .btn-primary:hover {
      background: var(--cta-hover);
      transform: translateY(-2px);
    }

    .btn-primary:focus-visible {
      outline: 2px solid var(--dme-gold);
      outline-offset: 3px;
    }

    .btn-outline {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 16px 36px;
      background: transparent;
      border: 1.5px solid var(--dme-offwhite);
      color: var(--dme-offwhite);
      font-family: var(--font-body);
      font-weight: 700;
      font-size: 14px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      cursor: pointer;
      transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.2s ease;
      text-decoration: none;
    }

    .btn-outline:hover {
      background: rgba(244, 244, 244, 0.1);
      border-color: var(--dme-gold);
      color: var(--dme-gold);
      transform: translateY(-2px);
    }

    .btn-outline:focus-visible {
      outline: 2px solid var(--dme-gold);
      outline-offset: 3px;
    }

    .text-link {
      font-family: var(--font-body);
      font-weight: 500;
      font-size: 14px;
      color: rgba(244, 244, 244, 0.7);
      text-decoration: none;
      transition: color 0.25s ease;
      letter-spacing: 0.02em;
    }

    .text-link:hover {
      color: var(--dme-gold);
    }

    .text-link:focus-visible {
      outline: 2px solid var(--dme-gold);
      outline-offset: 3px;
    }

    .grain-overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 9999;
      pointer-events: none;
      opacity: 0.04;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
      background-size: 256px 256px;
      animation: grain 0.12s steps(1) infinite;
    }

    @keyframes grain {
      0%, 100% { background-position: 0 0; }
      10% { background-position: -5% -10%; }
      20% { background-position: -15% 5%; }
      30% { background-position: 7% -25%; }
      40% { background-position: 20% 5%; }
      50% { background-position: -25% 10%; }
      60% { background-position: 15% 0%; }
      70% { background-position: 0% 15%; }
      80% { background-position: 25% 35%; }
      90% { background-position: -10% 10%; }
    }

    .page-overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: var(--dme-navy);
      z-index: 9998;
      transform: scaleY(0);
      transform-origin: bottom;
      pointer-events: none;
    }

    .reveal {
      opacity: 0;
    }

    .parallax-wrap {
      overflow: hidden;
      position: relative;
    }

    .parallax-img {
      will-change: transform;
    }

    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border-width: 0;
    }
