:root {
      --bg: #f4f6f8;
      --surface: #ffffff;
      --ink: #0f1720;
      --muted: #5f6874;
      --line: #d9dee5;
      --accent: #0d7d4f;
      --accent-deep: #0a5f3c;
      --highlight: #f0fdf6;
      --radius-xl: 24px;
      --radius-lg: 16px;
      --radius-sm: 10px;
      --shadow: 0 20px 50px rgba(7, 20, 35, 0.12);
      --max: 1180px;
      --header: 136px;}

    * { box-sizing: border-box; }

    html {
      scroll-behavior: smooth;
      overflow-x: hidden;
    }
    body {
      margin: 0;
      font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: var(--ink);
      background:
        radial-gradient(circle at 20% 10%, rgba(13, 125, 79, 0.1) 0%, transparent 38%),
        radial-gradient(circle at 90% 80%, rgba(11, 92, 59, 0.08) 0%, transparent 45%),
        var(--bg);
      line-height: 1.45;
      overflow-x: hidden;
    }

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

    .container {
      width: min(100% - 2.5rem, var(--max));
      margin-inline: auto;
    }

    .site-header {
      position: fixed;
      inset: 0 0 auto 0;
      z-index: 1000;
      height: var(--header);
      background: rgba(255, 255, 255, 0.92);
      border-bottom: 1px solid rgba(15, 23, 32, 0.08);
      backdrop-filter: blur(12px);
      transition: box-shadow 220ms ease, background-color 220ms ease;
    }

    .site-header.scrolled {
      box-shadow: 0 12px 28px rgba(8, 16, 28, 0.08);
      background: rgba(255, 255, 255, 0.96);
    }

    .header-inner {
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 2rem;
    }

.brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: var(--ink);
  min-width: 0;
}

.brand img {
  width: clamp(420px, 42vw, 560px);
  height: auto;
  max-height: calc(var(--header) - 12px);
  object-fit: contain;
  border-radius: 0;
}

    .mobile-menu-btn {
      display: none;
      width: 44px;
      height: 44px;
      border: 1px solid rgba(19, 33, 47, 0.18);
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.96);
      padding: 0;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
      transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
    }

    .mobile-menu-btn span {
      display: block;
      width: 20px;
      height: 2px;
      border-radius: 999px;
      background: #1a2735;
      transition: transform 200ms ease, opacity 200ms ease;
    }

    .mobile-menu-btn.is-open span:nth-child(1) {
      transform: translateY(7px) rotate(45deg);
    }

    .mobile-menu-btn.is-open span:nth-child(2) {
      opacity: 0;
    }

    .mobile-menu-btn.is-open span:nth-child(3) {
      transform: translateY(-7px) rotate(-45deg);
    }

    .mobile-menu {
      display: none;
      position: absolute;
      top: calc(100% - 2px);
      right: 0.9rem;
      width: min(76vw, 280px);
      background: rgba(255, 255, 255, 0.98);
      border: 1px solid rgba(19, 33, 47, 0.14);
      border-radius: 12px;
      box-shadow: 0 16px 34px rgba(10, 20, 33, 0.16);
      padding: 0.45rem;
      z-index: 1002;
    }

    .mobile-menu.is-open {
      display: block;
      animation: menuDrop 180ms ease-out;
    }

    .mobile-menu a {
      display: block;
      text-decoration: none;
      color: #1b2a38;
      font-size: 0.94rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      border-radius: 8px;
      padding: 0.62rem 0.66rem;
    }

    .mobile-menu a:hover,
    .mobile-menu a:focus-visible {
      background: rgba(13, 125, 79, 0.12);
      outline: none;
    }

    .top-nav {
      display: flex;
      align-items: center;
      gap: 1.4rem;
      flex-wrap: wrap;
      justify-content: flex-end;
    }

    .top-nav a {
      text-decoration: none;
      color: #202a35;
      font-size: 0.88rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      position: relative;
      padding: 0.2rem 0;
    }

    .top-nav a::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: -0.15rem;
      width: 100%;
      height: 2px;
      background: var(--accent);
      transform: scaleX(0);
      transform-origin: right;
      transition: transform 220ms ease;
    }

    .top-nav a:hover::after,
    .top-nav a:focus-visible::after {
      transform: scaleX(1);
      transform-origin: left;
    }

    main {
      padding-top: var(--header);
    }

    section {
      padding: clamp(3.2rem, 6vw, 6rem) 0;
      position: relative;
    }
.hero {
  min-height: min(86vh, 820px);
  display: grid;
  align-items: center;
  isolation: isolate;
  overflow: clip;
  color: #f7fbff;
}

.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -4;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  z-index: -3;
  pointer-events: none;
  background:
    linear-gradient(110deg, rgba(6, 12, 20, 0.8) 0%, rgba(6, 12, 20, 0.58) 42%, rgba(6, 12, 20, 0.36) 100%),
    radial-gradient(circle at 85% 15%, rgba(13, 125, 79, 0.24), transparent 40%);
}

    .hero::before,
    .hero::after {
      content: "";
      position: absolute;
      border-radius: 999px;
      pointer-events: none;
      z-index: -1;
    }

    .hero::before {
      width: clamp(20rem, 45vw, 40rem);
      height: clamp(20rem, 45vw, 40rem);
      right: -10rem;
      top: -8rem;
      background: radial-gradient(circle, rgba(13, 125, 79, 0.35) 0%, rgba(13, 125, 79, 0) 70%);
      animation: drift 18s ease-in-out infinite;
    }

    .hero::after {
      width: clamp(18rem, 34vw, 30rem);
      height: clamp(18rem, 34vw, 30rem);
      left: -8rem;
      bottom: -8rem;
      background: radial-gradient(circle, rgba(8, 25, 38, 0.24) 0%, rgba(8, 25, 38, 0) 70%);
      animation: drift 14s ease-in-out infinite reverse;
    }

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

    .updates-golfer {
      position: absolute;
      right: clamp(0.3rem, 4vw, 4.8rem);
      top: clamp(-11rem, -16vw, -7rem);
      width: clamp(250px, 30vw, 430px);
      height: clamp(360px, 58vh, 620px);
      margin: 0;
      z-index: 4;
      pointer-events: none;
      filter:
        drop-shadow(0 26px 34px rgba(3, 10, 18, 0.42))
        drop-shadow(0 0 16px rgba(255, 255, 255, 0.26));
      animation: golferFloat 9s ease-in-out infinite;
      mix-blend-mode: normal;
    }

    .updates-golfer::before {
      content: "";
      position: absolute;
      inset: 10% 4% 6% 16%;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(215, 255, 238, 0.6) 0%, rgba(171, 232, 255, 0.24) 45%, rgba(130, 191, 236, 0) 74%);
      filter: blur(9px);
      z-index: -1;
    }

    .updates-golfer img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: top right;
      opacity: 1;
      -webkit-mask-image: linear-gradient(to bottom, #000 14%, #000 76%, rgba(0, 0, 0, 0) 100%);
      mask-image: linear-gradient(to bottom, #000 14%, #000 76%, rgba(0, 0, 0, 0) 100%);
    }

    #updates {
      position: relative;
      overflow-x: clip;
      overflow-y: visible;
      z-index: 3;
    }

    #updates .container {
      position: relative;
      z-index: 2;
    }

    .hero-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: clamp(1.4rem, 4vw, 3rem);
      align-items: center;
      max-width: 820px;
      margin-inline: auto;
      justify-items: center;
    }

    .hero h1 {
      margin: 0;
      font-family: "Oswald", sans-serif;
      font-size: clamp(3rem, 10vw, 7rem);
      line-height: 0.9;
      letter-spacing: 0.02em;
      text-transform: uppercase;
      text-align: center;
    }

.hero p {
  margin: 1.1rem 0 0;
  color: rgba(240, 247, 253, 0.92);
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  max-width: 58ch;
}

.hero-points {
  list-style: none;
  margin: 1.35rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: nowrap;
  gap: 0.62rem;
  align-items: center;
  justify-content: center;
  max-width: none;
}

.hero-points li {
  position: relative;
  padding: 0.74rem 0.92rem 0.74rem 2.25rem;
  border: 1px solid rgba(185, 240, 215, 0.52);
  border-radius: 999px;
  background:
    linear-gradient(110deg, rgba(9, 23, 35, 0.72), rgba(9, 23, 35, 0.38)),
    radial-gradient(circle at 12% 50%, rgba(13, 125, 79, 0.24), transparent 52%);
  color: #edf9f2;
  font-family: "Oswald", sans-serif;
  font-size: clamp(0.92rem, 1.12vw, 1.14rem);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  box-shadow: 0 12px 28px rgba(3, 11, 18, 0.2);
  white-space: nowrap;
  line-height: 1;
}

.reveal .hero-points li {
  opacity: 0;
  transform: translateY(12px) scale(0.985);
}

.reveal.is-visible .hero-points li {
  animation: heroPointIn 560ms cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

.reveal.is-visible .hero-points li:nth-child(1) { animation-delay: 90ms; }
.reveal.is-visible .hero-points li:nth-child(2) { animation-delay: 190ms; }
.reveal.is-visible .hero-points li:nth-child(3) { animation-delay: 290ms; }

@keyframes heroPointIn {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.hero-points li::before {
  content: "";
  position: absolute;
  left: 1rem;
  top: 50%;
  width: 0.88rem;
  height: 0.88rem;
  border-radius: 50%;
  transform: translateY(-50%);
  background: radial-gradient(circle at 30% 30%, #e6ffe7 0%, #7de7b1 42%, #2eb978 100%);
  box-shadow: 0 0 0 4px rgba(149, 239, 198, 0.18), 0 0 18px rgba(114, 234, 180, 0.36);
}

.eyebrow {
      margin: 0 0 0.7rem;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.13em;
      font-size: 0.76rem;
  color: #b9f0d7;
}

.hero .eyebrow {
  text-align: center;
  width: fit-content;
  margin: 0 auto 0.7rem;
  transform: none;
}

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

    .hero-actions {
      margin-top: 1.8rem;
      display: flex;
      flex-wrap: wrap;
      gap: 0.8rem;
    }
    .btn {
      border: 0;
      border-radius: 999px;
      text-decoration: none;
      padding: 0.78rem 1.15rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      transition: transform 220ms ease, box-shadow 220ms ease, background-color 220ms ease;
      cursor: pointer;
    }

    .btn-primary {
      background: linear-gradient(120deg, var(--accent-deep), var(--accent));
      color: #fff;
      box-shadow: 0 10px 22px rgba(8, 95, 60, 0.28);
    }

.btn-ghost {
  background: rgba(255, 255, 255, 0.12);
  color: #f3f9ff;
  border: 1px solid rgba(236, 244, 252, 0.5);
}

    .btn:hover,
    .btn:focus-visible {
      transform: translateY(-1px);
    }
    .hero-logo-wrap {
      display: grid;
      place-items: center;
      padding: clamp(0.8rem, 2vw, 1.5rem);
      border-radius: var(--radius-xl);
      background: linear-gradient(170deg, rgba(255, 255, 255, 0.9), rgba(240, 246, 252, 0.5));
      border: 1px solid rgba(16, 23, 31, 0.08);
      box-shadow: var(--shadow);
      transform: perspective(1100px) rotateY(-7deg) rotateX(1deg);
    }

    .hero-logo-wrap img {
      width: min(100%, 420px);
      object-fit: contain;
      filter: drop-shadow(0 14px 25px rgba(10, 19, 33, 0.2));
    }

    .section-heading {
      margin: 0;
      font-family: "Oswald", sans-serif;
      font-size: clamp(2.2rem, 7vw, 4.1rem);
      line-height: 0.95;
      letter-spacing: 0.03em;
      text-transform: uppercase;
    }

    .section-copy {
      color: var(--muted);
      margin-top: 0.7rem;
      max-width: 64ch;
    }

    #updates .section-heading,
    #updates .section-copy,
    #updates .eyebrow {
      position: relative;
      z-index: 3;
    }

    #updates .eyebrow {
      color: #0d6a45;
    }

    #facility .section-heading {
      font-size: clamp(1.7rem, 3.05vw, 2.9rem);
      letter-spacing: 0.02em;
      white-space: normal;
      color: #112233;
      line-height: 1.02;
      max-width: 18ch;
    }

    #facility .section-copy {
      font-size: 0.98rem;
      max-width: 48ch;
      white-space: normal;
      color: rgba(26, 40, 56, 0.84);
    }

    #facility .eyebrow {
      font-size: 0.94rem;
      letter-spacing: 0.12em;
      color: #178f5f;
    }

    #facility {
      overflow: hidden;
      color: #1b3145;
      isolation: isolate;
      background:
        radial-gradient(circle at 12% 18%, rgba(114, 205, 157, 0.14), transparent 42%),
        radial-gradient(circle at 88% 88%, rgba(102, 168, 217, 0.12), transparent 56%),
        linear-gradient(125deg, #f4fafc 0%, #ecf5fa 48%, #f7fbfe 100%);
    }

    #facility::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      background:
        linear-gradient(90deg, rgba(28, 80, 116, 0.08) 0 1px, transparent 1px 84px),
        linear-gradient(rgba(28, 80, 116, 0.06) 0 1px, transparent 1px 72px);
      opacity: 0.2;
    }

    #facility::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      background-image: url("./assets/topography-inspo.avif");
      background-size: cover;
      background-position: center;
      opacity: 0.1;
      mix-blend-mode: multiply;
    }

    #facility .container {
      position: relative;
      z-index: 1;
    }

    .facility-shell {
      display: grid;
      grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
      gap: clamp(1rem, 2.3vw, 1.7rem);
      align-items: center;
    }

    .facility-media {
      margin: 0;
      min-height: 500px;
      display: grid;
      place-items: center;
      background: transparent;
      overflow: hidden;
      padding: 0;
      position: relative;
    }

    .facility-media-main {
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: center;
      border-radius: 0;
      filter: saturate(1.03) contrast(1.02);
    }

    .facility-content {
      padding: clamp(0.3rem, 1vw, 0.8rem) clamp(0rem, 1vw, 0.4rem);
      position: relative;
    }

    .facility-highlights {
      list-style: disc;
      margin: 1.2rem 0 0;
      padding: 0 0 0 1.25rem;
      display: grid;
      gap: 0.7rem;
    }

    .facility-highlight {
      color: rgba(22, 40, 58, 0.9);
      font-size: 1rem;
      line-height: 1.55;
      padding: 0;
    }

    .facility-highlight::marker {
      color: #1d9a66;
      font-size: 1.05em;
    }

    .facility-highlight strong {
      color: #0f2a41;
    }

    .membership {
      background:
        linear-gradient(145deg, #0f3a2e 0%, #13523e 46%, #1b664f 100%),
        radial-gradient(circle at 15% 8%, rgba(174, 255, 218, 0.14) 0%, transparent 46%),
        radial-gradient(circle at 85% 82%, rgba(137, 238, 194, 0.1) 0%, transparent 50%);
      color: #f8fafc;
      overflow: hidden;
      isolation: isolate;
      z-index: 1;
    }

    .membership::before {
      content: "";
      position: absolute;
      inset: -6% -4%;
      pointer-events: none;
      z-index: 0;
      opacity: 0.5;
      background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' fill='none'%3E%3Cg stroke='%23e7fff4' stroke-opacity='.16' stroke-width='1.7'%3E%3Cpath d='M-140 172C26 74 166 56 318 126C478 199 625 250 810 174C1017 89 1185 61 1391 130C1500 168 1586 190 1748 160'/%3E%3Cpath d='M-120 252C53 143 209 130 354 197C515 271 676 327 847 262C1042 188 1215 165 1385 232C1537 293 1656 315 1772 282'/%3E%3Cpath d='M-145 343C30 233 206 214 370 287C548 366 708 426 894 362C1062 304 1218 298 1366 366C1517 434 1660 452 1778 408'/%3E%3Cpath d='M-102 458C61 350 228 338 392 414C556 490 739 539 914 484C1070 434 1234 429 1389 494C1549 560 1678 586 1788 548'/%3E%3Cpath d='M-86 565C96 462 251 458 423 536C588 611 755 664 944 611C1118 561 1277 564 1434 630C1576 689 1714 710 1816 678'/%3E%3Cpath d='M-35 664C133 581 293 575 471 649C640 719 799 767 974 724C1139 684 1301 692 1457 751C1613 810 1751 827 1861 794'/%3E%3C/g%3E%3Cg stroke='%23dffff0' stroke-opacity='.12' stroke-width='1.5' stroke-dasharray='9 10'%3E%3Cpath d='M82 -44C218 66 252 220 178 347C98 483 101 606 196 747C270 857 377 938 510 978'/%3E%3Cpath d='M503 -84C633 18 678 162 623 288C560 430 566 554 652 677C727 789 852 868 985 903'/%3E%3Cpath d='M948 -100C1064 -3 1118 140 1083 257C1045 389 1067 500 1149 600C1242 713 1370 770 1518 791'/%3E%3C/g%3E%3C/svg%3E");
      background-size: cover;
      background-position: center;
      transform: none;
    }

    .membership::after {
      content: "";
      position: absolute;
      inset: auto -10% -40% auto;
      width: 420px;
      height: 420px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(170, 255, 219, 0.18), transparent 70%);
      pointer-events: none;
      z-index: 0;
    }

    .membership .container {
      position: relative;
      z-index: 1;
    }

    .membership .section-copy {
      color: rgba(239, 251, 245, 0.86);
    }

    .membership-table-wrap {
      margin-top: 1.8rem;
      overflow-x: auto;
      overflow-y: visible;
      border-radius: var(--radius-lg);
      position: relative;
      z-index: 2;
      -webkit-overflow-scrolling: touch;
    }

    .membership-table {
      width: 100%;
      min-width: 1040px;
      border-collapse: separate;
      border-spacing: 0;
      table-layout: fixed;
      color: #f7fbf8;
    }

    .membership-table th,
    .membership-table td {
      padding: 0.9rem 0.7rem;
      border-bottom: 1px solid rgba(223, 245, 235, 0.36);
      text-align: center;
      font-size: 0.98rem;
      line-height: 1.2;
      vertical-align: middle;
    }

    .membership-table tbody tr:nth-child(even) td:not(.is-featured) {
      background: rgba(247, 255, 252, 0.06);
    }

    .membership-table thead th {
      border-bottom: 1px solid rgba(230, 249, 239, 0.48);
      text-transform: uppercase;
      letter-spacing: 0.02em;
      font-family: "Oswald", sans-serif;
      font-size: clamp(1.35rem, 2.2vw, 1.95rem);
      line-height: 1;
      color: #ffffff;
      white-space: nowrap;
    }

    .membership-table th span {
      display: block;
      margin-top: 0.3rem;
      min-height: 1em;
      text-transform: none;
      font-family: "Inter", sans-serif;
      font-style: italic;
      letter-spacing: 0;
      font-size: 0.9rem;
      color: rgba(227, 246, 237, 0.7);
    }

    .membership-table .feature-col {
      width: 23%;
      text-align: center;
      font-family: "Oswald", sans-serif;
      font-size: clamp(1.05rem, 1.8vw, 1.5rem);
      line-height: 1.05;
      letter-spacing: 0.02em;
      text-transform: uppercase;
      color: #ffffff;
      padding-left: 0;
      white-space: normal;
      position: sticky;
      left: 0;
      z-index: 3;
      background: rgba(14, 58, 44, 0.92);
      backdrop-filter: blur(2px);
    }

    .membership-table td {
      font-size: clamp(1rem, 1.55vw, 1.2rem);
      font-family: "Inter", sans-serif;
      font-weight: 700;
      letter-spacing: 0;
      color: rgba(245, 252, 248, 0.95);
      white-space: normal;
      overflow-wrap: anywhere;
      word-break: normal;
    }

    .membership-table .is-featured {
      background: #f2f2f2;
      color: #0a5f3c;
      border-bottom-color: rgba(22, 26, 31, 0.12);
    }

    .membership-table thead .feature-col {
      z-index: 4;
    }

    .membership-table thead .is-featured {
      border-top-left-radius: 10px;
      border-top-right-radius: 10px;
    }

    .membership-table tbody tr:last-child .is-featured {
      border-bottom-left-radius: 10px;
      border-bottom-right-radius: 10px;
    }

    .membership-note {
      margin: 1rem 0 0;
      color: rgba(230, 247, 238, 0.7);
      font-style: italic;
      font-size: 0.95rem;
    }

    .membership-cta {
      margin-top: 1.35rem;
      display: flex;
      gap: 0.8rem;
      flex-wrap: wrap;
    }

    .membership-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 10px;
      border: 1px solid rgba(233, 248, 240, 0.75);
      padding: 0.6rem 1rem;
      color: #f8fcfa;
      text-decoration: none;
      background: rgba(18, 29, 24, 0.58);
      font-family: "Inter", sans-serif;
      font-style: italic;
      font-weight: 700;
      transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
    }

    .membership-btn:hover,
    .membership-btn:focus-visible {
      background: rgba(52, 83, 69, 0.62);
      border-color: rgba(255, 255, 255, 0.95);
      transform: translateY(-1px);
    }

    .signup-shell {
      display: grid;
      grid-template-columns: 1.1fr 0.9fr;
      gap: 1.2rem;
      margin-top: 2rem;
      align-items: stretch;
    }

    .signup-box,
    .signup-benefits {
      background: var(--surface);
      border: 1px solid rgba(9, 24, 38, 0.08);
      border-radius: var(--radius-lg);
      box-shadow: 0 14px 28px rgba(8, 19, 31, 0.08);
      padding: clamp(1.2rem, 2vw, 1.8rem);
    }

    .field-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.8rem;
    }

    label {
      display: block;
      margin-top: 0.8rem;
      margin-bottom: 0.35rem;
      font-weight: 700;
      font-size: 0.88rem;
    }

    input,
    select,
    textarea {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: var(--radius-sm);
      padding: 0.76rem 0.82rem;
      font: inherit;
      color: var(--ink);
      background: #fff;
      transition: border-color 160ms ease, box-shadow 160ms ease;
    }

    input:focus,
    select:focus,
    textarea:focus {
      outline: none;
      border-color: var(--accent);
      box-shadow: 0 0 0 4px rgba(13, 125, 79, 0.15);
    }

    textarea {
      min-height: 112px;
      resize: vertical;
    }
    .signup-benefits {
      background: linear-gradient(160deg, #ffffff, #f2f7f4);
    }

    .form-status {
      margin: 0.7rem 0 0;
      min-height: 1.2em;
      font-size: 0.9rem;
      font-weight: 700;
    }

    .form-status-pending {
      color: #3f4f5f;
    }

    .form-status-success {
      color: #0e7a4d;
    }

    .form-status-error {
      color: #b4262f;
    }

    .signup-box button[type="submit"]:disabled {
      opacity: 0.7;
      cursor: not-allowed;
    }

    .benefit-item + .benefit-item {
      margin-top: 0.95rem;
    }

    .benefit-item h4 {
      margin: 0;
      font-size: 1rem;
    }

    .benefit-item p {
      margin: 0.35rem 0 0;
      color: var(--muted);
      font-size: 0.95rem;
    }

    .videos {
      background: #414141;
      color: #f3f3f3;
      position: relative;
      overflow: hidden;
      isolation: isolate;
    }

    .videos::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' fill='none'%3E%3Cg stroke='%23EC691A' stroke-opacity='.32' stroke-width='1.6'%3E%3Cpath d='M-120 182C42 86 200 70 338 132C496 203 640 256 815 184C997 109 1160 91 1362 157C1520 208 1666 212 1788 174'/%3E%3Cpath d='M-152 278C10 184 184 170 340 236C500 304 670 362 840 304C1018 244 1193 236 1360 300C1538 370 1682 376 1818 334'/%3E%3Cpath d='M-124 384C28 298 206 280 374 350C546 423 720 485 890 435C1057 387 1238 389 1402 451C1570 516 1714 530 1840 492'/%3E%3Cpath d='M-88 500C84 418 248 410 416 482C580 552 744 612 918 566C1102 518 1280 522 1450 586C1614 648 1762 662 1886 626'/%3E%3Cpath d='M-24 626C140 540 304 532 472 604C648 679 820 742 992 700C1172 656 1346 668 1522 734C1682 794 1828 812 1950 778'/%3E%3C/g%3E%3C/svg%3E");
      background-size: cover;
      background-position: center;
      opacity: 0.36;
    }

    .videos .container {
      position: relative;
      z-index: 1;
    }

    .videos .eyebrow {
      color: #ffb57d;
    }

    .videos .section-copy {
      color: rgba(244, 244, 244, 0.84);
    }

    .video-grid {
      margin-top: 1.8rem;
      display: grid;
      gap: 1rem;
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .video-card {
      border-radius: var(--radius-lg);
      overflow: clip;
      background: #111;
      border: 1px solid rgba(236, 105, 26, 0.5);
      box-shadow: 0 15px 34px rgba(8, 18, 29, 0.14);
      transform: translateZ(0);
      transition: transform 220ms ease, box-shadow 220ms ease;
    }

    .video-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 18px 36px rgba(236, 105, 26, 0.26);
    }

    .video-wrap {
      aspect-ratio: 16 / 9;
      width: 100%;
      border-bottom: 10px solid #000;
    }

    .video-wrap iframe,
    .video-wrap video {
      width: 100%;
      height: 100%;
      border: 0;
      object-fit: cover;
      background: #000;
    }

    .video-body {
      padding: 0.85rem 1rem 1.05rem;
      background: #fff;
    }

    .video-body h3 {
      margin: 0;
      font-family: "Oswald", sans-serif;
      font-size: 1.2rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      line-height: 1.15;
      text-transform: uppercase;
      color: #0f141a;
    }

    .video-body p {
      margin: 0.4rem 0 0;
      color: var(--muted);
      font-size: 0.9rem;
    }

    .merchandise {
      background:
        radial-gradient(circle at 14% 14%, rgba(236, 105, 26, 0.2), transparent 34%),
        radial-gradient(circle at 84% 82%, rgba(58, 120, 158, 0.16), transparent 44%),
        linear-gradient(138deg, #0f1824 0%, #192534 52%, #121e2c 100%);
      color: #f2f7fc;
      position: relative;
      overflow: hidden;
      isolation: isolate;
    }

    .merchandise::before {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 0;
      opacity: 0.36;
      background-image: url("./assets/topography-inspo.avif");
      background-size: cover;
      background-position: center;
      mix-blend-mode: screen;
    }

    .merchandise::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      background:
        linear-gradient(90deg, rgba(236, 105, 26, 0.22) 0 1px, transparent 1px 120px),
        linear-gradient(rgba(236, 105, 26, 0.15) 0 1px, transparent 1px 94px);
      opacity: 0.2;
    }

    .merchandise .container {
      position: relative;
      z-index: 1;
    }

    .merchandise .eyebrow {
      color: #ffbb84;
    }

    .merchandise .section-copy {
      color: rgba(238, 247, 255, 0.84);
      max-width: 60ch;
    }

    .coming-soon-shell {
      margin-top: 1.8rem;
      display: grid;
      grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
      gap: clamp(1rem, 2.6vw, 2rem);
      align-items: center;
      border: 1px solid rgba(236, 105, 26, 0.36);
      border-radius: 20px;
      background: linear-gradient(120deg, rgba(11, 21, 33, 0.72), rgba(12, 28, 42, 0.58));
      box-shadow: 0 24px 44px rgba(7, 15, 24, 0.34);
      padding: clamp(1rem, 2vw, 1.5rem);
    }

    .coming-soon-image-wrap {
      position: relative;
      border-radius: 16px;
      padding: clamp(0.7rem, 1.6vw, 1rem);
      background: linear-gradient(150deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03));
      border: 1px solid rgba(236, 105, 26, 0.3);
    }

    .coming-soon-image-wrap::before {
      content: "";
      position: absolute;
      inset: -14% -6% auto auto;
      width: 150px;
      height: 150px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(236, 105, 26, 0.32), transparent 70%);
      pointer-events: none;
    }

    .coming-soon-image {
      width: 100%;
      height: auto;
      max-height: 470px;
      object-fit: contain;
      filter: drop-shadow(0 18px 34px rgba(0, 0, 0, 0.28));
    }

    .coming-badge {
      display: inline-flex;
      align-items: center;
      border-radius: 999px;
      padding: 0.36rem 0.72rem;
      border: 1px solid rgba(255, 188, 132, 0.5);
      background: rgba(236, 105, 26, 0.15);
      color: #ffd3ad;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      font-size: 0.74rem;
      font-weight: 800;
    }

    .coming-soon-copy h3 {
      margin: 0.75rem 0 0;
      font-family: "Oswald", sans-serif;
      letter-spacing: 0.02em;
      font-size: clamp(1.7rem, 3vw, 2.35rem);
      text-transform: uppercase;
      line-height: 1.05;
    }

    .coming-soon-copy p {
      margin: 0.75rem 0 0;
      color: rgba(239, 247, 255, 0.88);
      max-width: 46ch;
    }

    .site-footer {
      background: #0b1118;
      color: rgba(236, 244, 249, 0.74);
      padding: 2.2rem 0 2rem;
      border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    .footer-inner {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      align-items: center;
      gap: 0.9rem 1.2rem;
    }

    .footer-main-logo {
      margin: 0;
      justify-self: center;
      max-width: min(48vw, 280px);
    }

    .footer-main-logo img {
      width: 100%;
      height: auto;
      object-fit: contain;
    }

    .trackman-badge {
      margin: 0;
      display: inline-flex;
      align-items: center;
      justify-self: start;
    }

.trackman-badge img {
  width: 190px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  opacity: 0.92;
  filter: brightness(1.25) contrast(1.05);
}

.footer-contact {
  justify-self: end;
  display: grid;
  gap: 0.35rem;
  text-align: right;
}

.footer-phone {
  color: #ecf4f9;
  font-family: "Oswald", sans-serif;
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.footer-phone:hover,
.footer-phone:focus-visible {
  color: #d7e6ee;
}

.footer-email {
  color: rgba(236, 244, 249, 0.86);
  font-size: 0.94rem;
  letter-spacing: 0.03em;
  text-decoration: none;
}

.footer-email:hover,
.footer-email:focus-visible {
  color: #ecf4f9;
}

.footer-copy {
  margin: 0;
  color: rgba(236, 244, 249, 0.8);
  font-size: 0.92rem;
}
    .reveal {
      opacity: 0;
      transform: translateY(24px) scale(0.985);
      transition: opacity 600ms ease, transform 600ms ease;
      transition-delay: var(--delay, 0ms);
      will-change: opacity, transform;
    }

    .reveal.is-visible {
      opacity: 1;
      transform: translateY(0) scale(1);
    }

    @keyframes drift {
      0%, 100% { transform: translate3d(0, 0, 0); }
      50% { transform: translate3d(0, 14px, 0); }
    }

    @keyframes menuDrop {
      from {
        opacity: 0;
        transform: translateY(-6px) scale(0.98);
      }
      to {
        opacity: 1;
        transform: translateY(0) scale(1);
      }
    }

@media (max-width: 960px) {
  :root { --header: 108px; }

  .brand img {
    width: clamp(320px, 54vw, 430px);
    max-height: calc(var(--header) - 10px);
  }

      .top-nav {
        gap: 0.85rem;
      }

      .top-nav a {
        font-size: 0.74rem;
      }

      .hero-grid,
      .signup-shell {
        grid-template-columns: 1fr;
      }
      .updates-golfer {
        right: -0.9rem;
        top: -7.5rem;
        width: clamp(220px, 42vw, 340px);
        height: clamp(320px, 52vh, 520px);
        opacity: 0.9;
      }

      .hero-logo-wrap {
        order: -1;
        max-width: 520px;
        margin-inline: auto;
        transform: none;
      }

      .facility-shell,
      .video-grid {
        grid-template-columns: 1fr;
      }

      .coming-soon-shell {
        grid-template-columns: 1fr;
      }

      .facility-media {
        min-height: 400px;
      }

      .facility-media-main {
        -webkit-mask-image: none;
        mask-image: none;
      }
    }

@media (max-width: 700px) {
      :root { --header: 88px; }

      .container {
        width: min(100% - 1.4rem, var(--max));
      }

      .header-inner {
        gap: 0.5rem;
      }

      .brand {
        flex: 1 1 auto;
        min-width: 0;
      }

      .brand img {
        width: clamp(168px, 60vw, 230px);
        max-height: calc(var(--header) - 10px);
      }

      .updates-golfer {
        display: block;
        right: -0.8rem;
        top: -4.9rem;
        width: 208px;
        height: 338px;
        opacity: 0.56;
        z-index: 1;
      }

      .mobile-menu {
        right: 0.7rem;
        width: min(70vw, 250px);
      }

      #updates::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        pointer-events: none;
        background: linear-gradient(90deg, rgba(244, 249, 253, 0.98) 0%, rgba(244, 249, 253, 0.94) 64%, rgba(244, 249, 253, 0.58) 84%, rgba(244, 249, 253, 0.16) 100%);
      }

      #updates .section-heading,
      #updates .section-copy {
        color: #102033;
        text-shadow: 0 1px 0 rgba(255, 255, 255, 0.55);
      }

      #updates .eyebrow {
        color: #0f6f49;
      }

      #updates .section-copy {
        background: linear-gradient(90deg, rgba(244, 249, 253, 0.94), rgba(244, 249, 253, 0.72));
        border-radius: 10px;
        padding: 0.5rem 0.6rem;
        backdrop-filter: blur(1px);
        box-shadow: 0 8px 18px rgba(10, 22, 34, 0.06);
        max-width: calc(100% - 1.5rem);
      }

      .top-nav {
        display: none;
      }

      .mobile-menu-btn {
        display: inline-flex;
      }

      .field-row,
      .video-grid,
      .coming-soon-shell {
        grid-template-columns: 1fr;
      }

      .facility-shell {
        grid-template-columns: 1fr;
      }

      .facility-media {
        min-height: 280px;
      }

      #facility .section-heading {
        font-size: clamp(1.45rem, 8vw, 2rem);
        max-width: none;
      }

      #facility .section-copy {
        font-size: 0.92rem;
      }

      .hero-points {
        gap: 0.52rem;
        flex-wrap: wrap;
      }

      .hero-points li {
        padding: 0.72rem 0.85rem 0.72rem 2.15rem;
        font-size: 0.98rem;
        white-space: normal;
      }
      .membership-table-wrap {
        overflow: visible;
      }

      .membership-table {
        min-width: 0;
        width: 100%;
        border-spacing: 0;
      }

      .membership-table thead {
        display: none;
      }

      .membership-table tbody {
        display: grid;
        gap: 0.85rem;
      }

      .membership-table tbody tr {
        display: grid;
        gap: 0.45rem;
        padding: 0.85rem;
        border: 1px solid rgba(224, 245, 234, 0.36);
        border-radius: 12px;
        background: rgba(11, 41, 31, 0.46);
      }

      .membership-table .feature-col {
        position: static;
        text-align: left;
        background: transparent;
        backdrop-filter: none;
        border-bottom: 1px solid rgba(224, 245, 234, 0.3);
        padding: 0 0 0.45rem;
        font-size: 1.08rem;
      }

      .membership-table td {
        display: grid;
        grid-template-columns: minmax(96px, 36%) 1fr;
        gap: 0.55rem;
        align-items: start;
        text-align: left;
        border-bottom: 0;
        padding: 0.2rem 0;
        font-size: 0.95rem;
      }

      .membership-table td::before {
        content: attr(data-plan);
        font-family: "Oswald", sans-serif;
        letter-spacing: 0.02em;
        text-transform: uppercase;
        color: rgba(236, 248, 242, 0.86);
      }

      .membership-table .is-featured {
        background: #f2f2f2;
        color: #0a5f3c;
        border: 1px solid rgba(20, 24, 30, 0.12);
        border-radius: 8px;
        padding: 0.35rem 0.45rem;
      }

      .membership-table .is-featured::before {
        color: #0a5f3c;
      }

      .site-footer {
        text-align: center;
        padding-bottom: 5.2rem;
      }

      #facility .section-copy {
        white-space: normal;
      }

      #facility .section-heading {
        white-space: normal;
      }

      .footer-inner {
        grid-template-columns: 1fr;
        justify-items: center;
      }
      .trackman-badge img {
        width: 148px;
      }

.trackman-badge,
.footer-main-logo,
.footer-contact,
.footer-copy {
  justify-self: center;
  text-align: center;
}
    }

    @media (prefers-reduced-motion: reduce) {
      * {
        scroll-behavior: auto !important;
        animation: none !important;
        transition-duration: 0.01ms !important;
      }      .reveal,
      .reveal.is-visible {
        opacity: 1;
        transform: none;
      }
    }
