/* Generated by scripts/subset-fonts.py. Exact ranges avoid fetching Latin fonts for CJK glyphs. */
@font-face{font-family:'Barlow Semi Condensed';font-style:italic;font-weight:700;font-display:swap;src:url("/assets/barlow-semi-condensed-bold-italic-latin.woff2") format('woff2');unicode-range:U+0020-007E,U+00A0-0113,U+0116-012B,U+012D-0131,U+0133-0137,U+0139-013E,U+0140-0148,U+014A-014D,U+014F-017E,U+2010,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2032-2033,U+2039-203A,U+2044,U+20A3,U+20AC,U+20BA,U+20BD,U+2122,U+2212}
@font-face{font-family:'Barlow Semi Condensed';font-style:italic;font-weight:700;font-display:swap;src:url("/assets/barlow-semi-condensed-bold-italic.woff2") format('woff2');unicode-range:U+0000,U+000D,U+018F,U+0192,U+01A0-01A1,U+01AF-01B0,U+01CD-01CE,U+01D4,U+01E5,U+01E7,U+01E9,U+01EF,U+01FF,U+0218-021B,U+021F,U+0228-0229,U+0237,U+0259,U+0292,U+02BB-02BC,U+02C6-02C7,U+02C9,U+02D8-02DD,U+0300-0304,U+0306-030C,U+0312-0313,U+031B,U+0323,U+0326-0328,U+0335-0338,U+0394,U+03A9,U+03BC,U+03C0,U+1E80-1E85,U+1EA0-1EF9,U+2074-2079,U+2113,U+2126,U+212E,U+215B-215E,U+2202,U+2206,U+220F,U+2211,U+2215,U+2219-221A,U+221E,U+222B,U+2248,U+2260,U+2264-2265,U+25CA,U+27E9,U+FB01-FB02}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url("/assets/ibm-plex-sans-regular-latin.woff2") format('woff2');unicode-range:U+0020-007E,U+00A0-017F,U+2000-200D,U+2010-2015,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2028-2029,U+202F-2030,U+2032-2033,U+2039-203A,U+2044,U+20A1,U+20A4,U+20A6,U+20A8-20AE,U+20B1-20B2,U+20B4-20B5,U+20B8-20BA,U+20BD,U+20BF,U+2122,U+2190-2199,U+21A9-21AA,U+21B0-21B3,U+21B6-21B7,U+21BA-21BB,U+21C4,U+21C6,U+2212,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url("/assets/ibm-plex-sans-regular.woff2") format('woff2');unicode-range:U+018F,U+0192,U+01A0-01A1,U+01AF-01B0,U+01CD-01DC,U+01FA-01FF,U+0218-021B,U+0237,U+0259,U+02BB-02BC,U+02C6-02C7,U+02D8-02DD,U+0300-0304,U+0306-030C,U+0312,U+0315,U+031B,U+0323,U+0326-0328,U+037E,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03CE,U+0400-045F,U+0462-0463,U+046A-046B,U+0472-0475,U+0490-04C2,U+04CF-04D9,U+04DC-04E9,U+04EE-04F9,U+0524-0525,U+0E3F,U+1E80-1E85,U+1E9E,U+1EA0-1EF9,U+2070,U+2074-2079,U+2080-2089,U+2113,U+2116,U+2126,U+212E,U+2150-2151,U+2153-215E,U+2202,U+2206,U+220F,U+2211,U+2215,U+2219-221A,U+221E,U+222B,U+2236,U+2248,U+2260,U+2264-2265,U+25CA,U+2713,U+274C,U+2B0E-2B11,U+ECE0,U+EFCC,U+FB01-FB02}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url("/assets/ibm-plex-sans-semibold-latin.woff2") format('woff2');unicode-range:U+0020-007E,U+00A0-017F,U+2000-200D,U+2010-2015,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2028-2029,U+202F-2030,U+2032-2033,U+2039-203A,U+2044,U+20A1,U+20A4,U+20A6,U+20A8-20AE,U+20B1-20B2,U+20B4-20B5,U+20B8-20BA,U+20BD,U+20BF,U+2122,U+2190-2199,U+21A9-21AA,U+21B0-21B3,U+21B6-21B7,U+21BA-21BB,U+21C4,U+21C6,U+2212,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url("/assets/ibm-plex-sans-semibold.woff2") format('woff2');unicode-range:U+018F,U+0192,U+01A0-01A1,U+01AF-01B0,U+01CD-01DC,U+01FA-01FF,U+0218-021B,U+0237,U+0259,U+02BB-02BC,U+02C6-02C7,U+02D8-02DD,U+0300-0304,U+0306-030C,U+0312,U+0315,U+031B,U+0323,U+0326-0328,U+037E,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03CE,U+0400-045F,U+0462-0463,U+046A-046B,U+0472-0475,U+0490-04C2,U+04CF-04D9,U+04DC-04E9,U+04EE-04F9,U+0524-0525,U+0E3F,U+1E80-1E85,U+1E9E,U+1EA0-1EF9,U+2070,U+2074-2079,U+2080-2089,U+2113,U+2116,U+2126,U+212E,U+2150-2151,U+2153-215E,U+2202,U+2206,U+220F,U+2211,U+2215,U+2219-221A,U+221E,U+222B,U+2236,U+2248,U+2260,U+2264-2265,U+25CA,U+2713,U+274C,U+2B0E-2B11,U+ECE0,U+EFCC,U+FB01-FB02}
@font-face{font-family:'Caveat';font-style:normal;font-weight:500;font-display:swap;src:url("/assets/caveat-medium-latin.woff2") format('woff2');unicode-range:U+0020-007E,U+00A0-017E,U+2010,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2032-2033,U+2039-203A,U+2044,U+2052,U+20A1,U+20A3-20A4,U+20A6,U+20A9,U+20AC,U+20AE,U+20B4,U+20B8-20BA,U+20BD,U+2122,U+2212}
@font-face{font-family:'Caveat';font-style:normal;font-weight:500;font-display:swap;src:url("/assets/caveat-medium.woff2") format('woff2');unicode-range:U+0000,U+000D,U+018F,U+0192,U+01C4-01CC,U+01D4,U+01E5,U+01E7,U+01E9-01EB,U+01EF,U+01F1-01F5,U+01FA-021B,U+021F,U+0237,U+0259,U+0292,U+02BC,U+02C6-02C7,U+02C9,U+02D8-02DD,U+0300-0304,U+0306-0308,U+030A-030C,U+030F,U+0311,U+0323,U+0326-0328,U+0335,U+03BC,U+0400-045F,U+0462-0463,U+046A-046B,U+0472-0475,U+048A-04A5,U+04A8-04FF,U+0510-0513,U+051A-051D,U+0524-0529,U+052E-052F,U+1E0C-1E0D,U+1E24-1E25,U+1E44-1E45,U+1E5A-1E5B,U+1E62-1E63,U+1E6C-1E6D,U+1E80-1E85,U+1E92-1E93,U+1EB8-1EB9,U+1EBC-1EBD,U+1ECA-1ECD,U+1EE4-1EE5,U+1EF2-1EF3,U+1EF8-1EF9,U+2070,U+2074-2079,U+2080-2089,U+2116,U+2120,U+2153-2154,U+215B-215E,U+2215,U+2219,U+2248,U+2260,U+2264-2265,U+27E8-27E9,U+F6C3,U+FB00-FB04}

/* ============================================================================
   scrollcraft.css: the taste floor
   ----------------------------------------------------------------------------
   Two layers, and the split matters:

     TOKENS   what you override per brand. Colour roles, the type ramp, the
              spacing scale, elevation, motion. A brand is ~12 values.
     DEVICES  what the engine drives. Do not restyle these to taste; they are
              the mechanism. Style your own markup instead.

   Nothing here draws a "component". There are no card, badge, or pill classes,
   because a stylesheet that ships those is how every page built on it ends up
   with the same shapes. You get a floor and a vocabulary; the composition is
   yours.
   ========================================================================== */

/* ---------------------------------------------------------------- tokens -- */
:root {
  /* --- colour roles. Override these six and the page is rebranded. -------- */
  --sc-canvas:      #08090b;   /* the page ground. Drift interpolates this.   */
  --sc-surface:     #101217;   /* anything raised off the ground             */
  --sc-ink:         #f4f2ef;   /* primary text                               */
  --sc-ink-soft:    #9a9ba1;   /* secondary text. Tinted, never flat gray.   */
  --sc-accent:      #d8ff3e;   /* ONE accent. It owns a region, not confetti. */
  --sc-accent-ink:  #08090b;   /* text that sits on the accent               */

  --sc-hairline:    color-mix(in oklab, var(--sc-ink) 12%, transparent);
  --sc-hairline-strong: color-mix(in oklab, var(--sc-ink) 22%, transparent);

  /* --- type. Two families max. Display carries voice, text carries prose. - */
  --sc-font-display: "Instrument Sans", "Geist", system-ui, sans-serif;
  --sc-font-text:    "Geist", system-ui, sans-serif;
  --sc-font-mono:    "Geist Mono", ui-monospace, monospace;

  /* Fluid ramp. Tracking tightens as size grows because a face set at 6rem
     with 0 tracking reads loose; this is optical correction, not decoration. */
  --sc-t-xs:   clamp(0.75rem, 0.72rem + 0.15vw, 0.82rem);
  --sc-t-sm:   clamp(0.875rem, 0.84rem + 0.18vw, 0.95rem);
  --sc-t-base: clamp(1rem, 0.96rem + 0.22vw, 1.125rem);
  --sc-t-lg:   clamp(1.2rem, 1.1rem + 0.5vw, 1.5rem);
  --sc-t-xl:   clamp(1.6rem, 1.35rem + 1.2vw, 2.25rem);
  --sc-t-2xl:  clamp(2.1rem, 1.6rem + 2.4vw, 3.4rem);
  --sc-t-3xl:  clamp(2.8rem, 1.9rem + 4.2vw, 5rem);
  --sc-t-4xl:  clamp(3.4rem, 1.9rem + 6.6vw, 7.5rem);

  --sc-track-tight:  -0.035em;
  --sc-track-snug:   -0.02em;
  --sc-track-normal: -0.005em;
  --sc-track-wide:    0.08em;

  --sc-leading-none: 0.94;
  --sc-leading-tight: 1.06;
  --sc-leading-body: 1.62;

  --sc-measure: 62ch;

  /* --- space. 4px base: the useful middle steps an 8-only scale misses. --- */
  --sc-1: 0.25rem;  --sc-2: 0.5rem;   --sc-3: 0.75rem;  --sc-4: 1rem;
  --sc-5: 1.5rem;   --sc-6: 2rem;     --sc-7: 3rem;     --sc-8: 4rem;
  --sc-9: 6rem;     --sc-10: 8rem;    --sc-11: 12rem;

  /* Section rhythm is fluid so a phone doesn't inherit desktop air. */
  --sc-section: clamp(4.5rem, 9vw, 11rem);
  --sc-gutter:  clamp(1.25rem, 5vw, 5.5rem);
  --sc-maxw:    82rem;

  /* --- radius. Pick one scale for the page and hold it. ------------------- */
  --sc-r-sm: 6px;  --sc-r-md: 12px;  --sc-r-lg: 20px;  --sc-r-pill: 999px;

  /* --- elevation. Every shadow has an offset AND a soft blur, and is tinted
         to the canvas hue. A zero-offset coloured halo is decoration, not
         depth, so there isn't one here. ---------------------------------- */
  --sc-shadow-color: 220 40% 2%;
  --sc-e1: 0 1px 2px hsl(var(--sc-shadow-color) / 0.28),
           0 2px 6px -1px hsl(var(--sc-shadow-color) / 0.20);
  --sc-e2: 0 2px 4px hsl(var(--sc-shadow-color) / 0.24),
           0 8px 18px -4px hsl(var(--sc-shadow-color) / 0.30);
  --sc-e3: 0 4px 8px hsl(var(--sc-shadow-color) / 0.22),
           0 18px 40px -8px hsl(var(--sc-shadow-color) / 0.38),
           0 48px 90px -24px hsl(var(--sc-shadow-color) / 0.30);

  /* Edge light: a 1px top highlight sells a raised surface better than any
     amount of blur, because real raised things catch light on their lip. */
  --sc-edge: inset 0 1px 0 color-mix(in oklab, var(--sc-ink) 10%, transparent);

  /* --- motion. Built-in CSS easings are too weak for UI. ------------------ */
  --sc-ease-out:    cubic-bezier(0.23, 1, 0.32, 1);
  --sc-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --sc-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
  --sc-d-fast: 160ms;  --sc-d-base: 240ms;  --sc-d-slow: 420ms;

  --sc-z-stage: 1; --sc-z-copy: 20; --sc-z-chrome: 60;
}

/* --------------------------------------------------------------- reset -- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--sc-canvas);
  color: var(--sc-ink);
  font-family: var(--sc-font-text);
  font-size: var(--sc-t-base);
  line-height: var(--sc-leading-body);
  letter-spacing: var(--sc-track-normal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-synthesis-weight: none;
  overflow-x: clip;
}
img, video, canvas, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }

/* ------------------------------------------------- the browser surfaces --
   The parts you did not draw still carry the design. Selection, caret, focus
   ring, scrollbar and tabular numerals all ship with defaults that belong to no
   design system. Theming them is the cheapest signal that a page was built
   rather than assembled, and it is the step that gets skipped most reliably. */
::selection { background: var(--sc-accent); color: var(--sc-accent-ink); }
:root { caret-color: var(--sc-accent); accent-color: var(--sc-accent); }
:focus-visible {
  outline: 2px solid var(--sc-accent);
  outline-offset: 3px;
  border-radius: var(--sc-r-sm);
}
:where(a) { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.22em; }
@supports (scrollbar-color: auto) {
  html { scrollbar-color: color-mix(in oklab, var(--sc-ink) 26%, transparent) transparent; scrollbar-width: thin; }
}
:where(table, .sc-nums, [data-sc-count]) { font-variant-numeric: tabular-nums; }

/* ----------------------------------------------------------- typography -- */
.sc-display {
  font-family: var(--sc-font-display);
  font-weight: 500;
  line-height: var(--sc-leading-none);
  letter-spacing: var(--sc-track-tight);
  text-wrap: balance;
  margin: 0;
}
.sc-display--xl { font-size: var(--sc-t-4xl); }
.sc-display--lg { font-size: var(--sc-t-3xl); }
.sc-display--md { font-size: var(--sc-t-2xl); letter-spacing: var(--sc-track-snug); }
.sc-lede {
  font-size: var(--sc-t-lg);
  line-height: 1.44;
  letter-spacing: var(--sc-track-snug);
  color: var(--sc-ink);
  max-width: 46ch;
  text-wrap: pretty;
  margin: 0;
}
.sc-body { max-width: var(--sc-measure); color: var(--sc-ink-soft); text-wrap: pretty; margin: 0; }
.sc-label {
  font-family: var(--sc-font-mono);
  font-size: var(--sc-t-xs);
  letter-spacing: var(--sc-track-wide);
  text-transform: uppercase;
  color: var(--sc-ink-soft);
}

/* ---------------------------------------------------------------- layout -- */
.sc-wrap { width: 100%; max-width: var(--sc-maxw); margin-inline: auto; padding-inline: var(--sc-gutter); }
.sc-section { padding-block: var(--sc-section); }
/* More space above a heading than below it: the gap belongs to the boundary,
   not to the pair. */
.sc-stack > * + * { margin-top: var(--sc-4); }
.sc-stack > :is(h1,h2,h3) { margin-top: var(--sc-7); }
.sc-stack > :is(h1,h2,h3):first-child { margin-top: 0; }
.sc-rule { height: 1px; border: 0; background: var(--sc-hairline); margin: 0; }

/* =============================================================== DEVICES ==
   Driven by the engine. Restyle your own markup, not these.                */

.sc-act--pinned { position: relative; }
.sc-stage {
  position: sticky; top: 0;
  height: 100vh; height: 100svh;
  overflow: clip;
  z-index: var(--sc-z-stage);
}

/* scrub / sequence media */
.sc-stage :is(video[data-sc-scrub], canvas[data-sc-sequence], .sc-stage__poster) {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
video[data-sc-scrub] { opacity: 0; transition: opacity 380ms var(--sc-ease-out); }
.sc-has-clip video[data-sc-scrub] { opacity: 1; }
/* The poster is a live frame-holder, not a placeholder: it stays up until a
   real video frame has painted, which is what stops the blank-stage flash. */
.sc-stage__poster { z-index: 0; transition: opacity 380ms var(--sc-ease-out); }
.sc-has-clip .sc-stage__poster { opacity: 0; }

/* A scrim only where text sits. A full-frame darkening layer flattens the
   image everywhere to fix contrast in one corner. */
.sc-scrim {
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: linear-gradient(
    var(--sc-scrim-angle, 180deg),
    color-mix(in oklab, var(--sc-canvas) var(--sc-scrim-a, 78%), transparent) 0%,
    color-mix(in oklab, var(--sc-canvas) 30%, transparent) 42%,
    transparent 68%);
}
/* Point the scrim at the copy. A scrim gradient that darkens the top while the
   copy sits at the bottom fixes contrast nowhere and flattens the image
   everywhere, which is the most common way text-over-video goes wrong. */
.sc-scrim--bottom { --sc-scrim-angle: 0deg; }
.sc-scrim--left   { --sc-scrim-angle: 90deg; }
.sc-scrim--right  { --sc-scrim-angle: 270deg; }

/* Corner scrims, for copy anchored to a corner. An edge gradient has to darken
   a whole band across the frame to cover one corner; a corner gradient puts the
   density where the text is and leaves the rest of the image alone. Pair with
   .sc-copy--lead / .sc-copy--trail. */
.sc-scrim--lead {
  background: linear-gradient(to top right,
    color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%,
    color-mix(in oklab, var(--sc-canvas) 72%, transparent) 30%,
    color-mix(in oklab, var(--sc-canvas) 30%, transparent) 52%,
    transparent 72%);
}
.sc-scrim--trail {
  background: linear-gradient(to top left,
    color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%,
    color-mix(in oklab, var(--sc-canvas) 72%, transparent) 30%,
    color-mix(in oklab, var(--sc-canvas) 30%, transparent) 52%,
    transparent 72%);
}
/* A band across the bottom, for copy that spans the full width of the frame.
   That is what both corner anchors become below 860px, and it is also the right
   shape whenever the copy block is wider than a corner. */
.sc-scrim--band {
  background: linear-gradient(to top,
    color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%,
    color-mix(in oklab, var(--sc-canvas) 74%, transparent) 22%,
    color-mix(in oklab, var(--sc-canvas) 30%, transparent) 42%,
    transparent 58%);
}
.sc-scrim--vignette {
  background: radial-gradient(120% 90% at 50% 45%, transparent 40%,
              color-mix(in oklab, var(--sc-canvas) 70%, transparent) 100%);
}

/* copy over a stage.
   max-width is in rem, never ch. A `ch` on this container resolves against the
   CONTAINER's font-size (body size), not the display size of the heading inside
   it, so `max-width: 20ch` here silently produces a ~180px column and wraps a
   hero headline to six lines. Set a ch measure on the text element itself. */
.sc-copy {
  position: absolute; z-index: var(--sc-z-copy);
  inset-inline: var(--sc-gutter);
  max-width: min(46rem, 76vw);
  will-change: opacity, transform;
}
.sc-copy--lead   { left: var(--sc-gutter); bottom: clamp(3rem, 12vh, 9rem); }
/* inset-inline FIRST. It is the shorthand for left+right, so declaring it after
   `left: 50%` resets left to auto and the block drifts off the left edge. */
.sc-copy--center { inset-inline: auto; left: 50%; top: 50%; translate: -50% -50%; text-align: center; }
.sc-copy--trail  { inset-inline: auto; right: var(--sc-gutter); bottom: clamp(3rem, 12vh, 9rem); text-align: right; }

/* cue defaults: the engine writes opacity/transform inline, these are the
   pre-paint state so nothing flashes before the first read() */
[data-sc-cue] { opacity: 0; will-change: opacity, transform; }
.sc-ready [data-sc-cue] { transition: none; }

/* kinetic split */
.sc-split { display: inline-block; overflow: hidden; vertical-align: top; }
/* Descenders live below the baseline; a line mask clipped to the line box eats
   the tails off g, y, p, j. The padding buys them room back. */
.sc-split--line { display: block; padding-bottom: 0.14em; margin-bottom: -0.14em; }
.sc-split__i { display: inline-block; will-change: transform, opacity; }
.sc-is-split { opacity: 1 !important; }

/* horizontal rail */
[data-sc-pan] { display: flex; will-change: transform; }

/* reveal + parallax */
[data-sc-reveal] { will-change: clip-path; }
[data-sc-parallax] { will-change: transform; }

/* flow reveal (fires once) */
[data-sc-in], [data-sc-stagger] > * {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition: opacity 620ms var(--sc-ease-out), transform 620ms var(--sc-ease-out);
}
[data-sc-in].sc-in, [data-sc-stagger] > .sc-in { opacity: 1; transform: none; }

/* pointer devices */
[data-sc-tilt] { transform-style: preserve-3d; will-change: transform; }
[data-sc-magnet] { will-change: transform; }
/* isolation always; position only if nothing more specific already set it.
   Written with :where() (zero specificity) on purpose: a plain `position:
   relative` here has the same weight as `.sc-stage` and, being later in the
   file, silently wins. A stage carrying both attributes then stops being
   sticky and the whole act scrolls away instead of pinning. */
[data-sc-spotlight] { isolation: isolate; }
:where([data-sc-spotlight]) { position: relative; }
[data-sc-spotlight]::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 2;
  background: radial-gradient(
    28rem 28rem at calc(var(--sc-mx, 0.5) * 100%) calc(var(--sc-my, 0.5) * 100%),
    color-mix(in oklab, var(--sc-accent) 16%, transparent), transparent 70%);
  opacity: 0; transition: opacity var(--sc-d-slow) var(--sc-ease-out);
}
[data-sc-spotlight]:hover::after { opacity: 1; }

/* =========================================================== WORLDFLIGHT ==
   One fixed stage for the whole page. The only thing in document flow is the
   spacer, and it is empty. If you find yourself adding a section here, you want
   act mode instead: the moment a real block scrolls past the fixed stage, the
   page has a seam again and the whole point is gone.                        */

[data-sc-mode="worldflight"] { position: relative; }

.sc-world {
  position: fixed; inset: 0;
  overflow: clip;
  z-index: var(--sc-z-stage);
  background: var(--sc-canvas);
}

/* Every leg is mounted for the life of the page and stacked in the same box.
   The engine owns opacity, visibility and z-index here; do not set them. */
.sc-world__seg {
  position: absolute; inset: 0;
  opacity: 0;
  will-change: opacity;
}
.sc-world__seg > :is(video, img, canvas) {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
/* The poster is the frame-holder AND the first camera move: the engine pushes
   it in slowly until a real decoded frame is available to replace it. */
.sc-world__poster {
  z-index: 0;
  transform-origin: 50% 50%;
  transition: opacity 420ms var(--sc-ease-out);
}
.sc-world__seg > video { z-index: 1; }
.sc-world__seg.sc-has-clip .sc-world__poster { opacity: 0; }
/* The act stylesheet lights a clip through its ancestor act. A worldflight leg
   has no act, so match the class the engine also writes on the clip itself. */
video[data-sc-scrub].sc-has-clip { opacity: 1; }

/* The copy layer is fixed too, and inert by default: the engine hands
   pointer-events back to a block only while it is actually legible. */
.sc-world__copy {
  position: fixed; inset: 0;
  z-index: var(--sc-z-copy);
  pointer-events: none;
}
.sc-world__scrim { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
[data-sc-copy] {
  opacity: 0;
  pointer-events: none;
  will-change: opacity, transform;
}
.sc-ready [data-sc-copy] { transition: none; }

/* The track. Empty on purpose. */
.sc-world__spacer { pointer-events: none; }

/* scroll progress */
[data-sc-progress] {
  position: fixed; inset: 0 0 auto 0; height: 2px; z-index: var(--sc-z-chrome);
  background: var(--sc-accent); transform-origin: 0 50%; transform: scaleX(0);
  will-change: transform;
}

/* ----------------------------------------------------------- atmosphere --
   Depth is not only shadow. Grain keeps a flat dark ground from banding, and
   it is the difference between "a dark page" and "a lit room". */
.sc-grain { position: fixed; inset: 0; pointer-events: none; z-index: 3; opacity: 0.045; }
.sc-grain::before {
  content: ""; position: absolute; inset: -50%;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/></filter><rect width='140' height='140' filter='url("/%23n")'/></svg>");
}

/* -------------------------------------------------------- reduced motion -- */
@media (prefers-reduced-motion: reduce) {
  /* Fewer and gentler, not zero. Opacity still carries the reveal so the page
     is comprehensible; every position change is dropped. */
  [data-sc-in], [data-sc-stagger] > * { transform: none; transition-duration: 220ms; }
  [data-sc-parallax], [data-sc-pan], .sc-split__i { transform: none !important; }
  /* A wipe is a position change too. Show reveal content settled. */
  [data-sc-reveal] { clip-path: none !important; }
  /* A rail's transform IS its navigation, not decoration. Zeroing it the way
     parallax and kinetic type are zeroed parks the act on its first screenful
     and makes everything past the fold unreachable: a device degrading into
     missing content. Hand the travel back to the reader as an ordinary scroll
     region instead, so the same items are all still gettable without motion.
     A build that would rather re-lay the rail out as a grid can still do that;
     this is the floor, not the ceiling. */
  [data-sc-act="pan"] .sc-stage,
  [data-sc-act="pan"] [data-sc-stage] {
    overflow-x: auto; overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
  }
  [data-sc-pan] > * { scroll-snap-align: center; }
  [data-sc-spotlight]::after { display: none; }
  /* A worldflight keeps its whole story here. No clip is ever fetched, so the
     posters are the film, and they cross-dissolve through exactly the same
     seams at exactly the same scroll positions. The push-in and the copy drift
     are the only things that go. */
  .sc-world__poster, [data-sc-copy] { transform: none !important; }
}

/* --------------------------------------------------------------- mobile -- */
@media (max-width: 860px) {
  .sc-copy { inset-inline: var(--sc-gutter); max-width: none; }
  .sc-copy--trail { text-align: left; }
  .sc-stage { height: 100svh; }
  /* .sc-copy--trail re-anchors to the left and spans the full width here, so a
     bottom-RIGHT corner gradient darkens the one corner the copy just left and
     guarantees a contrast failure over any bright clip. Point the density at
     the copy: the same band .sc-scrim--band paints. */
  .sc-scrim--trail {
    background: linear-gradient(to top,
      color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%,
      color-mix(in oklab, var(--sc-canvas) 74%, transparent) 22%,
      color-mix(in oklab, var(--sc-canvas) 30%, transparent) 42%,
      transparent 58%);
  }
}

:root{--sc-canvas:#f0f0ed;--sc-surface:#fff;--sc-ink:#20272b;--sc-ink-soft:#4e5c51;--sc-accent:#215834;--sc-accent-ink:#fff;--sc-font-display:'Barlow Semi Condensed',sans-serif;--sc-font-text:'IBM Plex Sans',sans-serif;--pine:#215834;--porcelain:#f0f0ed;--ink:#20272b;--gutter:clamp(24px,4.5vw,80px);--nav:88px}
*{box-sizing:border-box}html{scroll-padding-top:108px;scroll-behavior:smooth}body{margin:0;background:var(--porcelain);color:var(--ink);font:16px/1.55 var(--sc-font-text)}h1,h2,h3,p,figure,blockquote{margin:0}h1,h2{font-family:var(--sc-font-display);font-style:italic;font-weight:700;letter-spacing:-.025em;line-height:1.02;text-wrap:balance}h2{font-size:clamp(44px,5.5vw,80px)}h2 span{color:var(--pine)}h3{font-size:27px;line-height:1.15;font-weight:600}p{text-wrap:pretty}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:disabled{opacity:.3;cursor:default}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #759480;outline-offset:5px}[hidden]{display:none!important}.wrap{width:min(100%,var(--site-max,1440px));padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:110px}.eyebrow{font-size:13px;font-weight:600;margin-bottom:16px}.button{display:inline-flex;gap:28px;align-items:center;justify-content:space-between;min-height:54px;padding:15px 24px;border:1px solid transparent;border-radius:100px;background:var(--pine);color:white;font-size:14px;font-weight:600;line-height:1.25;transition:background .2s,transform .2s}.button:hover{background:#173f25;transform:translateY(-2px)}.button>span{font-size:22px;line-height:1}.button-light{background:var(--porcelain);color:var(--pine)}.button-light:hover{background:white}.button-small{min-height:44px;font-size:11px;padding:11px 18px;gap:15px}.button-outline{background:transparent;color:var(--pine);border-color:#21583460}.button-outline:hover{background:#e1e5db}.tour-note{font-size:12px;margin-top:15px;line-height:1.4}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #21583450;padding:12px 0 9px;font-size:14px;font-weight:600}.text-link:hover{color:var(--pine);border-color:var(--pine)}.text-link>span{font-size:21px}.skip-link{position:fixed;left:20px;top:-100px;z-index:300;padding:12px;background:white}.skip-link:focus{top:12px}
.header{height:var(--nav);display:flex;align-items:center;padding-inline:clamp(24px,3vw,48px);gap:24px;position:sticky;top:0;z-index:100;background:var(--porcelain);border-bottom:1px solid #21583412}.brand{display:block;width:96px;flex-shrink:0}.brand img{height:auto;object-fit:contain}.desktop-nav{display:flex;align-items:center;gap:clamp(12px,1.4vw,22px);margin-left:auto}.desktop-nav a,.member-link{font-size:11px;font-weight:600;white-space:nowrap}.desktop-nav a:hover,.member-link:hover{color:var(--pine);text-decoration:underline;text-underline-offset:5px}.header-actions{display:flex;align-items:center;gap:20px}.member-link{font-size:10px}.menu-button{border:0;background:transparent;color:var(--pine);font-size:12px;font-weight:600;align-items:center;gap:12px;min-height:44px}.menu-button span{font-size:24px}.mobile-nav{position:absolute;left:0;right:0;top:100%;padding:15px var(--gutter) 24px;background:var(--porcelain);border-bottom:1px solid #bcc7bb;box-shadow:0 16px 28px #12321b15}.mobile-nav a{display:block;padding:12px 0;border-bottom:1px solid #21583420}
.hero{position:relative}.hero-stage{height:calc(100svh - var(--nav));min-height:580px;display:grid;place-items:center}.hero-frame{position:relative;isolation:isolate;overflow:hidden;width:100%;height:100%;background:#203c28;transform:scale(var(--hero-scale,1));border-radius:var(--hero-radius,0px);transform-origin:center center;will-change:transform}.hero-photo{position:absolute;inset:0;object-position:60% 51%}.hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,#0a1810e8 0%,#0a1810ad 37%,#0a18101a 85%),linear-gradient(0deg,#0a181030,transparent);z-index:1}.hero-copy{position:relative;z-index:2;color:white;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;height:100%;padding:48px var(--gutter)}.hero-location{font-size:14px;margin-bottom:30px}h1{font-size:clamp(76px,8.5vw,132px);line-height:.98;letter-spacing:-.03em}.hero h1 span{display:block;color:white}.hero-description{font-size:16px;line-height:1.65;max-width:490px;margin:28px 0 32px}.hero .tour-note{color:#ffffffdd}.motion .hero{height:155svh}.motion .hero-stage{position:sticky;top:var(--nav)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:40px}.tools{position:relative;padding:30px 0 0}.tools-stage{padding-block:45px}.tools h2{font-size:clamp(42px,4.9vw,72px)}.tool-controls{display:flex;align-items:center;gap:10px}.tool-controls .text-link{margin-left:16px;font-size:12px;white-space:nowrap}.circle-button{width:44px;height:44px;border:1px solid #21583450;border-radius:50%;background:transparent;color:var(--pine);font-size:22px;line-height:1}.circle-button:not(:disabled):hover{background:var(--pine);color:white}.tool-deck{display:grid;gap:26px}.tool-card{display:grid;grid-template-columns:.8fr 1.2fr;border-radius:28px;background:#fff;overflow:hidden;min-height:500px;border:1px solid #cdd6cd;transform-origin:40% 50%}.tool-copy{padding:clamp(28px,4vw,64px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.tool-copy h3{font-family:var(--sc-font-display);font-style:italic;font-size:clamp(43px,4.6vw,68px);letter-spacing:-.02em;line-height:1;margin-bottom:24px}.tool-copy>p{font-size:20px;line-height:1.5;color:#4e5c51}.trackman-product{display:flex;gap:16px;align-items:center;margin-top:36px}.trackman-product img{width:62px;height:91px;border-radius:8px;object-position:50% 65%}.trackman-product span{font-size:14px;font-weight:600}.trackman-product small{font-size:12px;font-weight:400;color:#4e5c51}.tool-visual{position:relative;overflow:hidden;min-width:0;min-height:360px}.ball-scene{background:#102b20}.ball-poster,.ball-sequence{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ball-sequence{opacity:0}.ball-sequence.has-frame{opacity:1}.data-label{position:absolute;color:white;font-size:14px;display:flex;align-items:center;gap:12px;z-index:1;text-shadow:0 2px 6px #000;opacity:1}.data-label span{padding:9px 12px;background:#102b20ba;border:1px solid #ffffff35;border-radius:6px;backdrop-filter:blur(6px)}.data-label i{width:clamp(20px,4vw,60px);height:1px;background:#fff8}.data-label i:after{content:'';display:block;width:5px;height:5px;background:#fff;border-radius:50%;margin-top:-2px;margin-left:auto}.data-speed{top:19%;left:5%}.data-launch{top:48%;right:5%}.data-launch i:after{margin-left:0}.data-spin{bottom:18%;left:9%}.replay-visual>img{object-position:50% 38%}.replay-inset{position:absolute;right:7%;bottom:8%;width:27%;height:64%;border:5px solid #fff;border-radius:18px;overflow:hidden;box-shadow:0 16px 40px #0005}.asset-note{position:absolute;bottom:24px;left:24px;right:24px;font-size:13px;padding:12px 16px;background:#f0f0edef;border-radius:8px}.aids-card{background:#dfe7dc}.motion .tools{height:340svh}.motion .tools-stage{position:sticky;top:var(--nav);height:calc(100svh - var(--nav));display:flex;flex-direction:column;padding-top:28px;padding-bottom:44px;overflow:hidden}.motion .tools .section-heading{flex-shrink:0;margin-bottom:24px}.motion .tool-deck{position:relative;flex:1;min-height:0}.motion .tool-card{position:absolute;inset:0;min-height:0;will-change:transform}.motion .tool-card:not(:first-child){transform:translateX(115%)}.motion .tool-visual{min-height:0}
.tour{display:grid;grid-template-columns:1fr .82fr;gap:8%;align-items:center;padding-top:110px;padding-bottom:140px}.tour h2{font-size:clamp(62px,7.7vw,110px)}.tour-copy>p:not(.tour-note){max-width:430px;font-size:18px;margin:30px 0}.tour-film{height:min(760px,85svh);min-height:480px;border-radius:30px;overflow:hidden;background:#102b20}.tour-film video{height:100%;width:100%;object-fit:cover;display:block}.services{padding-top:0;padding-bottom:130px}.services .section-heading{max-width:820px;margin-bottom:58px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;align-items:start}.service-card{display:flex;flex-direction:column;min-width:0;will-change:transform}.service-card:nth-child(even){margin-top:75px}.service-image{height:310px;position:relative;overflow:hidden;border-radius:22px}.service-card:first-child .service-image img{object-position:50% 38%}.service-copy{padding:25px 2px 0}.service-copy h3{font-size:25px;letter-spacing:-.025em}.service-copy p{font-size:14px;margin-top:15px;line-height:1.7}.service-copy .text-link{font-size:12px;margin-top:18px;gap:10px;line-height:1.4;width:100%}
.membership{background:linear-gradient(180deg,var(--porcelain),#e3e7dc 16%,#e3e7dc 84%,var(--porcelain));padding-block:110px}.founder{text-align:center;margin-bottom:44px}.founder blockquote{font-size:21px;margin-top:26px}.founder-name{font-size:13px;margin-top:12px;color:#4e5c51}.pricing-grid{display:grid;grid-template-columns:1fr 2fr;gap:22px}.price-card{background:#fff;padding:38px;border-radius:24px}.price-card .eyebrow{color:var(--pine);font-size:14px}.price{font-family:var(--sc-font-display);font-style:italic;font-weight:700;font-size:70px;line-height:1.05;letter-spacing:-.03em;white-space:nowrap}.price small{font-family:var(--sc-font-text);font-size:14px;font-style:normal;font-weight:400;display:block;letter-spacing:0;margin-bottom:9px}.price span{font-family:var(--sc-font-text);font-size:14px;font-style:normal;font-weight:400;letter-spacing:0}.price+p{font-size:14px;margin-top:12px}.member-rates{display:grid;grid-template-columns:1fr 35px 1fr;align-items:start;gap:16px}.plus{font-size:30px;align-self:center;color:var(--pine)}.price-detail{font-size:12px;border-top:1px solid #21583420;margin-top:28px;padding-top:18px;color:#4e5c51}.pricing-link{display:flex;width:max-content;margin:25px auto 0}.visit{display:grid;grid-template-columns:1fr 1.05fr;gap:60px;align-items:center}.visit h2{font-size:clamp(42px,4.5vw,65px)}address{font-size:15px;font-style:normal;margin-top:28px;line-height:1.7}.visit-copy>p:not(.eyebrow):not(.tour-note){font-size:14px;margin-top:15px}.visit-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.visit-actions .button{font-size:12px;padding:14px 20px;gap:14px}.visit .tour-note{color:#4e5c51}.map-frame{position:relative;border-radius:28px;overflow:hidden;height:430px;background:#e0e5d8;border:1px solid #21583415}.map-frame iframe{border:0;width:100%;height:100%;display:block}.map-caption{position:absolute;bottom:16px;left:16px;right:16px;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:8px;background:var(--porcelain);font-size:11px;font-weight:600;color:var(--pine);box-shadow:0 4px 15px #203c2815}.map-caption>span:last-child{margin-left:auto;font-size:18px}.caption-dot{width:6px;height:6px;border-radius:50%;background:var(--pine);display:inline-block;flex-shrink:0}.regular{padding-top:35px}.regular h2{font-size:clamp(42px,4.5vw,66px)}.gallery{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:24px}.gallery-image{height:300px;overflow:hidden;border-radius:24px;position:relative}.gallery figcaption{padding:23px 2px 0}.gallery h3{font-size:23px}.gallery p{font-size:14px;margin-top:10px;color:#4e5c51}.booking-chip{position:absolute;bottom:17px;left:17px;right:17px;background:var(--porcelain);color:var(--pine);padding:13px 16px;border-radius:10px;display:flex;justify-content:space-between;font-size:13px;font-weight:600}.closing{position:relative;overflow:hidden;background:#153b26;color:white;padding-block:100px;border-radius:36px 36px 0 0}.closing h2{font-size:clamp(55px,8vw,116px);line-height:1.02;max-width:1200px}.closing h2 span{color:#c8d8cb}.closing .button{margin-top:40px}.faq{display:grid;grid-template-columns:1fr 1.35fr;gap:60px;padding-block:70px}.faq h2{font-size:46px}.faq-list{border-top:1px solid #21583435}.faq details{border-bottom:1px solid #21583435}.faq summary{display:flex;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;font-size:15px;font-weight:600;padding:26px 0}.faq summary::-webkit-details-marker{display:none}.faq summary span{font-size:23px;line-height:1;font-weight:400}.faq details[open] summary span{transform:rotate(45deg)}.faq details p{font-size:15px;padding:0 36px 25px 0;color:#4e5c51}.footer{border-top:1px solid #21583425;display:flex;flex-wrap:wrap;align-items:center;gap:30px;padding-block:32px;font-size:12px}.footer .brand{width:85px}.footer p{color:#4e5c51}.footer>div{display:flex;gap:23px;margin-left:auto}.copyright{color:#4e5c51;width:100%;font-size:11px}
@media(min-width:1201px){.menu-button{display:none!important}}@media(max-width:1200px){.desktop-nav,.member-link{display:none}.header-actions{margin-left:auto}.js .menu-button{display:flex}.service-grid{grid-template-columns:repeat(2,1fr);gap:55px 30px}.service-image{height:380px}.service-copy h3{font-size:29px}.service-copy p{font-size:16px}.price{font-size:57px}.price-card{padding:28px}.tool-copy>p{font-size:18px}.tool-copy h3{font-size:52px}.tour{gap:6%}}
@media(max-width:800px){:root{--gutter:28px}.section{padding-block:75px}.hero-copy{padding-inline:var(--gutter)}h1{font-size:clamp(65px,10vw,85px)}.hero-description{max-width:420px}.tool-card{grid-template-columns:.85fr 1.15fr}.tool-copy{padding:26px}.tool-copy h3{font-size:40px}.tool-copy>p{font-size:16px}.trackman-product{gap:10px;flex-wrap:wrap}.trackman-product small{font-size:11px}.tools .section-heading{align-items:flex-start}.tools h2{font-size:42px;max-width:420px}.tool-controls .text-link{display:none}.data-label{font-size:11px;gap:6px}.data-label i{width:20px}.data-label span{padding:7px}.tour h2{font-size:64px}.tour-copy>p:not(.tour-note){font-size:16px}.tour-film{min-height:480px;height:620px}.pricing-grid{grid-template-columns:1fr}.member-rates{gap:25px}.price{font-size:66px}.visit{grid-template-columns:1fr}.map-frame{height:380px}.gallery{grid-template-columns:1fr;gap:35px}.gallery figure{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:28px}.gallery-image{height:260px}.gallery figcaption{padding:0}.regular{padding-top:20px}.regular .section-heading{align-items:flex-start}.regular .section-heading>.text-link{white-space:nowrap}.faq{gap:30px}.footer>div{margin-left:0}}
@media(max-width:600px){:root{--nav:74px;--gutter:22px}html{scroll-padding-top:90px}.header{padding-inline:18px;gap:12px}.brand{width:76px}.header-actions{gap:12px}.header .button-small{font-size:10px;padding:10px 13px;min-height:40px;gap:9px}.header .button-small span{font-size:16px}.menu-button{font-size:0;gap:0;padding:0 4px}.menu-button span{font-size:26px}.hero-stage{min-height:580px}.hero-photo{object-position:63% center}.hero-scrim{background:linear-gradient(180deg,#0a1810dc 0%,#0a18109c 53%,#0a181017 85%),linear-gradient(90deg,#0a18102e,transparent)}.hero-copy{justify-content:flex-start;padding:64px 26px 30px}.hero-location{font-size:12px;margin-bottom:30px}h1{font-size:clamp(45px,12vw,70px)}.hero-description{font-size:14px;line-height:1.65;max-width:310px;margin:25px 0 27px}.hero-description br{display:none}.hero .button{font-size:12px;min-height:50px;padding:14px 19px}.hero .tour-note{font-size:10px}.motion .hero{height:145svh}.section{padding-block:70px}h2{font-size:43px}.section-heading{margin-bottom:30px}.tools{padding-top:0}.tools-stage{padding-block:35px}.tools h2{font-size:clamp(32px,8.5vw,46px);max-width:265px}.tools .section-heading{gap:12px;align-items:center}.circle-button{width:36px;height:36px;font-size:19px}.tool-controls{gap:6px}.motion .tools{height:335svh}.motion .tools-stage{padding-top:25px;padding-bottom:35px}.motion .tools .section-heading{margin-bottom:22px}.tool-card{grid-template-columns:1fr;grid-template-rows:auto 1fr;min-height:590px;border-radius:22px}.tool-copy{padding:25px 25px 23px;display:block}.tool-copy h3{font-size:37px;margin-bottom:12px}.tool-copy h3 br{display:none}.tool-copy>p{font-size:15px;line-height:1.5}.tool-copy>p br{display:none}.trackman-product{display:none}.tool-visual{min-height:380px}.data-label{font-size:11px}.data-speed{top:15%;left:6%}.data-launch{top:50%;right:5%}.data-spin{bottom:15%;left:8%}.ball-poster,.ball-sequence{object-fit:cover}.replay-visual>img{object-position:50% 35%}.replay-inset{width:28%;height:72%;right:8%;bottom:10%;border-width:3px}.asset-note{font-size:12px;left:16px;right:16px;bottom:16px;padding:11px}.tour{display:flex;flex-direction:column;gap:38px;padding-top:75px;padding-bottom:85px;align-items:stretch}.tour h2{font-size:clamp(62px,16vw,90px)}.tour h2 span br{display:none}.tour-copy>p:not(.tour-note){font-size:16px;margin:26px 0;max-width:none}.tour .button{font-size:13px}.tour-film{height:auto;min-height:0;aspect-ratio:9/14;border-radius:24px}.services{padding-top:0;padding-bottom:70px}.services .section-heading{margin-bottom:38px}.service-grid{grid-template-columns:1fr;gap:62px}.service-card:nth-child(even){margin-top:0}.service-image{height:390px;max-height:55svh;border-radius:23px}.service-copy{padding:23px 0 0}.service-copy h3{font-size:29px}.service-copy p{font-size:16px;margin-top:15px}.service-copy .text-link{font-size:13px;margin-top:18px;width:auto;gap:35px}.founder{text-align:left;margin-bottom:30px}.founder h2{font-size:43px}.founder blockquote{font-size:18px;margin-top:24px}.founder-name{font-size:12px}.price-card{padding:27px;border-radius:22px}.price-card .eyebrow{font-size:13px}.visitor-price .price{font-size:63px}.member-rates{grid-template-columns:1fr 20px 1fr;gap:10px}.price{font-size:47px}.price small,.price span{font-size:11px}.price+p{font-size:12px}.price-detail{font-size:12px;line-height:1.6}.pricing-link{font-size:12px;margin:20px 0 0;max-width:100%}.visit{gap:32px}.visit h2{font-size:43px}.visit address{font-size:14px}.visit-copy>p:not(.eyebrow):not(.tour-note){font-size:13px}.visit-actions{gap:10px}.visit-actions .button{font-size:11px;padding:14px 16px;gap:10px;min-height:48px}.map-frame{height:360px;border-radius:24px}.map-caption{font-size:9px;left:12px;right:12px;padding:14px 12px}.regular{padding-top:15px}.regular .section-heading{display:block}.regular h2{font-size:43px}.regular .text-link{margin-top:15px;font-size:13px}.gallery{gap:40px}.gallery figure{display:block}.gallery-image{height:300px}.gallery figcaption{padding-top:22px}.gallery h3{font-size:25px}.gallery p{font-size:14px}.closing{padding-block:70px;border-radius:26px 26px 0 0}.closing h2{font-size:clamp(39px,10.7vw,65px)}.closing .button{font-size:13px;margin-top:30px}.faq{display:block;padding-block:55px}.faq h2{font-size:39px}.faq-list{margin-top:30px}.faq summary{font-size:14px;line-height:1.5;padding:24px 0}.faq details p{font-size:14px}.footer{gap:22px;padding-block:30px;font-size:11px}.footer .brand{width:77px}.footer>div{width:100%;gap:19px;font-size:11px}.copyright{font-size:10px}}
@media(max-height:700px) and (min-width:601px){.motion .tools{height:auto}.motion .tools-stage{position:relative;height:auto}.motion .tool-deck{display:grid;gap:25px}.motion .tool-card{position:relative;min-height:430px;transform:none!important}.tool-controls{display:none}.hero-stage{min-height:540px}}
html:not(.js) .desktop-nav{display:flex;flex-wrap:wrap;order:3;width:100%;margin:0;gap:14px}html:not(.js) .header{height:auto;min-height:88px;flex-wrap:wrap;padding-block:12px;position:relative}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-frame,.service-card{transform:none!important}.ball-sequence{display:none}}
/* v4: one equipment story, from measured shot to virtual round. */
.purpose{position:relative;background:#0b241b;color:#f0f0ed;border-radius:34px 34px 0 0;overflow:clip}.purpose-stage{position:relative}.purpose-scene{position:relative;min-height:760px;overflow:hidden}.purpose-intro{height:85svh;min-height:600px}.equipment-photo,.intro-shade{position:absolute;inset:0;width:100%;height:100%}.equipment-photo{object-position:65% 60%}.intro-shade{background:linear-gradient(90deg,#061b13e8,#071b1390 46%,#071b1310),linear-gradient(0deg,#0b241b 0%,transparent 60%)}.purpose-intro h2{position:absolute;left:var(--gutter);right:var(--gutter);top:23%;font-size:clamp(76px,10.5vw,155px);line-height:.96;letter-spacing:-.035em}.purpose-word{display:block;color:white!important;transform-origin:left center}.purpose-word:last-child{color:#c9dccc!important}.beat-copy{position:absolute;left:var(--gutter);top:12%;z-index:3}.equipment-name{font-size:15px;letter-spacing:.025em;margin-bottom:24px;color:#c2d1c7}.beat-copy h3,.play-copy h3{font-family:var(--sc-font-display);font-style:italic;font-size:clamp(70px,7.7vw,118px);font-weight:700;line-height:.95;letter-spacing:-.025em}.beat-copy>p:last-child{font-size:18px;line-height:1.65;margin-top:25px;color:#d4dfd7}.ball-world{position:absolute;right:-8%;top:-3%;width:82%;height:100%;mask-image:radial-gradient(ellipse 58% 61% at 54% 51%,#000 63%,transparent 100%)}.ball-world .ball-poster,.ball-world canvas{object-fit:cover}.ball-world .ball-sequence{opacity:0}.ball-world .ball-sequence.has-frame{opacity:1}.shot-readouts{position:absolute;z-index:4;inset:0;pointer-events:none}.shot-reading{position:absolute}.shot-reading:nth-child(1){left:40%;top:14%}.shot-reading:nth-child(2){right:6%;top:45%}.shot-reading:nth-child(3){left:38%;bottom:16%}.reading-name{display:block;font-size:13px;color:#c6d6cd;letter-spacing:.04em;margin-bottom:3px}.shot-reading>div{display:flex;align-items:baseline;gap:9px}.shot-reading strong{font:600 clamp(40px,4vw,61px)/1.1 var(--sc-font-text);letter-spacing:-.045em;font-variant-numeric:tabular-nums}.reading-unit{font-size:13px;color:#c6d6cd}.shot-reading i{display:block;width:90px;height:1px;background:#c5dac887;margin-top:15px;transform-origin:left}.shot-reading i:after{content:'';display:block;background:#d3e9d9;width:5px;height:5px;border-radius:50%;margin-left:auto;transform:translateY(-2px)}.example-note{position:absolute;left:var(--gutter);bottom:80px;font-size:11px;color:#b4c8bc}.replay-composition{position:absolute;inset:7% 7% 13% 39%;display:flex;align-items:center;justify-content:center;gap:25px}.replay-view{position:relative;height:100%;aspect-ratio:330/495;border-radius:8px;overflow:hidden;background:#09130f;box-shadow:0 20px 70px #0004}.replay-view img,.replay-view canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.replay-view canvas{opacity:0}.replay-view canvas.has-frame{opacity:1}.replay-side{height:78%;aspect-ratio:340/414;align-self:flex-end;margin-bottom:6%}.replay-view figcaption{position:absolute;z-index:2;bottom:0;left:0;right:0;padding:30px 18px 14px;background:linear-gradient(transparent,#061b13e6);font-size:12px;color:white}.course-window,.course-shade{position:absolute;inset:0}.course-window img{object-position:70% center}.course-shade{background:linear-gradient(90deg,#051910d4,transparent 78%),linear-gradient(0deg,#061b13b3,transparent 70%)}.play-copy{position:absolute;z-index:2;bottom:19%;left:var(--gutter)}.play-copy h3{font-size:clamp(76px,8.7vw,130px)}.play-copy>p:last-child{font-size:21px;margin-top:28px;line-height:1.6}.purpose-nav{position:absolute;z-index:20;bottom:25px;left:var(--gutter);right:var(--gutter);display:flex;gap:28px;align-items:center}.purpose-nav button{padding:8px 0;color:#b7c9be;background:none;border:0;border-bottom:1px solid #c3d7c430;min-height:40px;font-size:12px;text-align:left}.purpose-nav button[aria-current=true]{color:white;border-bottom-color:#e1ede3}.purpose-nav a{margin-left:auto;color:white;font-size:22px;min-width:44px;min-height:44px;display:grid;place-items:center}.purpose :focus-visible{outline-color:#e1ede3}.story-motion .purpose{height:445svh}.story-motion .purpose-stage{height:calc(100svh - var(--nav));min-height:0;position:sticky;top:var(--nav);overflow:hidden}.story-motion .purpose-scene{position:absolute;inset:0;height:100%;min-height:0;will-change:transform,opacity;pointer-events:none}.story-motion .purpose-scene:not(:first-child){opacity:0;visibility:hidden}.story-motion .purpose-word{will-change:transform,opacity}.tour{position:relative;background:var(--porcelain);border-radius:34px 34px 0 0;margin-top:-32px;z-index:2}.regular .gallery{grid-template-columns:1fr 1fr;gap:30px}.regular .gallery-image{height:330px}.training-aids{margin-top:48px;padding:35px 0 12px;border-top:1px solid #21583430;display:grid;grid-template-columns:1fr 1.5fr;gap:45px;align-items:center}.training-copy h3{font-size:28px}.training-copy p{font-size:15px;margin-top:12px;color:#4e5c51}.training-logos{display:flex;gap:40px;align-items:center;overflow-x:auto;scrollbar-width:thin;scroll-snap-type:x proximity;padding:14px 3px}.training-logos>div{flex:1;min-width:95px;scroll-snap-align:start;text-align:center}.training-logos img{height:45px;width:100%;object-fit:contain;filter:grayscale(1) brightness(.55);opacity:1}.training-logos>div:nth-child(2) img{height:41px;width:80px;margin:auto}.training-logos span{font-size:10px;color:#516354;display:block;margin-top:4px}.trackman-trademark{display:block;flex-basis:100%;font-size:10px;color:#647268}
@media(max-width:1000px){.beat-copy h3{font-size:70px}.beat-copy>p:last-child{font-size:16px}.replay-composition{left:39%;right:4%;gap:15px;top:20%;bottom:19%}.shot-reading:nth-child(1){left:47%}.shot-reading:nth-child(3){left:38%}.training-aids{grid-template-columns:1fr;gap:20px}.training-logos{gap:50px}.training-logos>div{min-width:140px}.regular .gallery figure{display:block}.regular .gallery figcaption{padding-top:23px}}
@media(min-width:601px) and (max-width:1000px){.beat-copy{top:6%;right:var(--gutter)}.beat-copy h3{font-size:60px}.beat-copy h3 br,.beat-copy>p:last-child br{display:none}.beat-copy>p:last-child{margin-top:18px}.ball-world{width:110%;height:57%;right:-6%;top:24%}.shot-readouts{display:flex;justify-content:space-between;inset:auto var(--gutter) 14%}.shot-reading{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important}.shot-reading strong{font-size:42px}.example-note{bottom:9%}.replay-composition{inset:31% 7% 14%;gap:25px}.replay-side{height:78%}.play-copy h3{font-size:90px}}
@media(max-width:600px){.purpose{border-radius:24px 24px 0 0}.purpose-scene{min-height:680px}.purpose-intro{height:85svh;min-height:570px}.purpose-intro h2{top:13%;font-size:clamp(47px,13vw,78px);left:24px;right:16px;line-height:1}.equipment-photo{object-position:35% center}.intro-shade{background:linear-gradient(180deg,#061b13e0 0%,#061b1360 42%,#0b241b65 70%,#0b241b),linear-gradient(90deg,#061b1350,transparent)}.story-motion .purpose{height:440svh}.beat-copy{top:5%;left:24px;right:24px}.equipment-name{font-size:12px;margin-bottom:14px}.beat-copy h3{font-size:clamp(44px,12vw,70px);line-height:.98}.beat-copy h3 br{display:none}.beat-copy>p:last-child{font-size:14px;line-height:1.55;margin-top:13px;max-width:250px}.beat-copy>p:last-child br{display:none}.ball-world{width:145%;height:67%;right:-22%;top:25%;mask-image:radial-gradient(ellipse 54% 60% at 50% 49%,#000 58%,transparent 98%)}.shot-readouts{display:flex;gap:18px;inset:auto 24px 15% 24px;justify-content:space-between}.shot-reading{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important}.reading-name{font-size:10px;letter-spacing:0}.shot-reading strong{font-size:clamp(25px,7.5vw,40px)}.shot-reading>div{display:block}.reading-unit{display:block;font-size:11px;margin-top:3px}.shot-reading i{width:100%;margin-top:9px}.example-note{bottom:11%;left:24px;font-size:10px}.replay-composition{inset:32% 24px 16% 24px;gap:0;justify-content:flex-start;align-items:flex-start}.replay-front{height:100%;max-width:69%;border-radius:7px}.replay-side{position:absolute;right:0;bottom:0;height:66%;max-width:44%;margin:0;border:2px solid #a7c7b5;box-shadow:0 8px 25px #0005;z-index:2}.replay-view figcaption{font-size:10px;padding:25px 10px 10px}.replay-side figcaption{font-size:9px;padding:20px 7px 7px}.purpose-nav{left:22px;right:22px;bottom:15px;gap:15px}.purpose-nav button{font-size:10px;white-space:nowrap;min-height:36px}.purpose-nav a{min-width:24px;font-size:20px}.course-window img{object-position:69% center}.course-shade{background:linear-gradient(180deg,#061b1360 0%,#061b1310 45%,#061b13e3 90%)}.play-copy{left:24px;right:20px;bottom:17%}.play-copy h3{font-size:clamp(59px,16vw,88px)}.play-copy>p:last-child{font-size:16px;margin-top:20px}.play-copy .equipment-name{color:white}.regular .gallery{grid-template-columns:1fr;gap:40px}.regular .gallery-image{height:300px}.training-aids{margin-top:38px;padding-top:29px;gap:16px}.training-copy h3{font-size:25px}.training-copy p{font-size:14px}.training-logos{gap:30px;margin-right:-22px;padding-right:22px}.training-logos>div{min-width:130px}.training-logos img{height:38px}.training-logos>div:nth-child(2) img{height:36px}.trackman-trademark{font-size:9px}}
@media(max-width:600px) and (max-height:700px){.beat-copy{top:4%}.beat-copy h3{font-size:42px}.beat-copy .equipment-name{margin-bottom:10px}.beat-copy>p:last-child{margin-top:9px;font-size:13px}.shot-readouts{bottom:17%}.example-note{bottom:12%}.ball-world{top:22%;height:70%}.replay-composition{top:34%;bottom:18%}.play-copy{bottom:20%}.play-copy h3{font-size:58px}}
@media(prefers-reduced-motion:reduce){.purpose-scene{opacity:1!important;visibility:visible!important}.purpose canvas{display:none}.purpose-word,.training-logos>div{transform:none!important;opacity:1!important}}

/* v5: a light, compact invitation with footage and copy in one composition. */
.tour{display:block;height:580px;min-height:0;padding-block:60px;overflow:hidden;isolation:isolate;margin-bottom:60px;background:var(--porcelain)}
.tour-film{position:absolute;z-index:-2;right:7%;top:50%;transform:translateY(-50%);width:min(37vw,440px);height:auto;min-height:0;aspect-ratio:9/16;border-radius:0;overflow:hidden;background:transparent;mask-image:linear-gradient(90deg,transparent,#000 18%,#000 86%,transparent);}
.tour-film video{width:100%;height:100%;object-fit:cover;filter:saturate(.82)}
.tour-wash{position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--porcelain) 0%,var(--porcelain) 38%,#f0f0ede0 48%,#f0f0ed12 70%,#f0f0ed30 100%),linear-gradient(180deg,var(--porcelain),#f0f0ed00 18%,#f0f0ed00 72%,var(--porcelain) 100%)}
.tour-copy{height:100%;position:relative;max-width:600px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.tour h2{font-size:clamp(62px,6.4vw,91px);line-height:.98;max-width:610px}.tour h2 span br{display:none}
.tour-copy>p:not(.tour-note){font-size:16px;line-height:1.7;max-width:430px;margin:24px 0}.tour-invitation .tour-note{font-size:12px;margin-top:12px;color:#4e5c51}
.tour-playback{position:absolute;right:var(--gutter);bottom:35px;width:44px;height:44px;display:grid;place-items:center;border:1px solid #21583445;border-radius:50%;background:#f0f0eddd;color:var(--pine);font-size:15px;z-index:3}.tour-playback:hover{background:white}
@media(min-width:601px) and (max-width:1000px){.tour{height:550px;padding-block:46px}.tour h2{font-size:65px;max-width:510px}.tour-copy{max-width:70%}.tour-copy>p:not(.tour-note){max-width:360px}.tour-film{right:-3%;width:365px}.tour-wash{background:linear-gradient(90deg,var(--porcelain) 4%,#f0f0edfa 36%,#f0f0edbb 58%,#f0f0ed20 82%),linear-gradient(180deg,var(--porcelain),transparent 23%,transparent 72%,var(--porcelain))}}
@media(max-width:600px){.tour{height:580px;padding:38px 24px 35px;margin-bottom:30px;display:block;border-radius:24px 24px 0 0}.tour-copy{max-width:none;justify-content:flex-start;align-items:flex-start}.tour h2{font-size:clamp(43px,11.8vw,66px);max-width:370px;line-height:1}.tour-copy>p:not(.tour-note){font-size:14px;line-height:1.65;max-width:252px;margin:22px 0 0}.tour-invitation{margin-top:auto}.tour .button{font-size:13px;min-height:50px;padding:14px 20px;gap:28px}.tour-invitation .tour-note{font-size:11px;margin-top:12px}.tour-film{width:320px;right:-57px;top:53%;height:auto;min-height:0;aspect-ratio:9/16;mask-image:linear-gradient(90deg,transparent,#000 22%,#000 90%,transparent)}.tour-wash{background:linear-gradient(90deg,var(--porcelain) 0%,#f0f0edf5 26%,#f0f0edc7 50%,#f0f0ed18 82%,#f0f0ed05),linear-gradient(180deg,var(--porcelain),#f0f0ede0 19%,#f0f0ed00 45%,#f0f0ed00 68%,var(--porcelain) 98%)}.tour-playback{right:22px;bottom:36px;width:40px;height:40px}}
@media(max-width:380px){.tour{height:580px}.tour-copy>p:not(.tour-note){max-width:232px;font-size:13px}.tour h2{font-size:43px}.tour-film{right:-73px}.tour .button{font-size:12px;padding-inline:17px;gap:22px}.tour-playback{right:18px;bottom:35px}}

/* v8: compact experiences on a continuous Porcelain surface. */
.tour{margin-bottom:0}
.services{padding-block:72px 80px;background:var(--porcelain);border-radius:0}
.services .section-heading{max-width:none;margin-bottom:32px}
.services h2{font-size:clamp(62px,6.4vw,91px);line-height:.98;max-width:900px}
.service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:stretch}
.service-card,.service-card:nth-child(even){position:relative;isolation:isolate;display:flex;justify-content:flex-end;width:100%;height:auto;aspect-ratio:3/4;min-height:360px;margin:0;min-width:0;border-radius:20px;overflow:hidden;background:#102b20;color:white;will-change:auto;transform:none;opacity:1}
.service-image{position:absolute;inset:0;height:100%;max-height:none;border-radius:0;z-index:-2}
.service-image img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .45s ease;filter:saturate(.88)}
.service-card:first-child .service-image img{object-position:50% 0%}
.performance-card .service-image img{object-position:50% 0%}
.practice-card .service-image img{object-position:50% 0%}
.play-card .service-image img{height:76%;object-position:50% 60%;mask-image:linear-gradient(#000 76%,transparent)}
.service-card:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,transparent 18%,#061b1320 32%,#061b13e8 57%,#061b13fa 100%)}
.service-copy{padding:20px;display:grid;grid-template-rows:66px 96px 32px;gap:10px}
.service-copy h3{font-family:var(--sc-font-display);font-style:italic;font-weight:600;font-size:clamp(28px,2.3vw,35px);line-height:1.02;letter-spacing:-.015em;color:white}
.service-copy p{font-size:14px;line-height:1.5;color:#edf2ee;margin:0;text-wrap:pretty}
.service-copy .text-link{color:white;border-color:#ffffff55;font-size:12px;margin:0;padding:4px 0;gap:10px;width:100%;align-self:end;min-height:32px;line-height:1.4}
.service-copy .text-link>span{font-size:22px;line-height:1;flex-shrink:0}
.service-copy .text-link:after{content:'';position:absolute;inset:0;z-index:2}
.service-copy .text-link:hover{color:white;border-color:white}
.service-card:focus-within{outline:3px solid var(--pine);outline-offset:5px}
.service-copy .text-link:focus-visible{outline:none}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.service-card:hover .service-image img{transform:scale(1.035)}}
@media(min-width:1001px) and (max-width:1200px){.service-grid{gap:14px}.service-copy{padding:16px;grid-template-rows:58px 112px 32px;gap:8px}.service-copy h3{font-size:28px}.service-copy p{font-size:13px}}
@media(min-width:601px) and (max-width:1000px){.services{padding-block:58px 64px}.services h2{font-size:65px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.service-card,.service-card:nth-child(even){aspect-ratio:1/1;min-height:320px}.service-copy{grid-template-rows:60px 84px 32px}.service-copy h3{font-size:30px}.service-copy p{font-size:14px}}
@media(max-width:600px){
 .services{padding-block:46px 48px;border-radius:0}
 .services h2{font-size:clamp(43px,11.8vw,66px);line-height:1;max-width:430px}
 .services .section-heading{margin-bottom:26px}
 .service-grid{grid-template-columns:minmax(0,1fr);gap:16px}
 .service-card,.service-card:nth-child(even){aspect-ratio:5/4;min-height:250px;border-radius:18px}
 .service-copy{position:static;height:auto;padding:26px 20px 18px;display:flex;flex-direction:column;gap:8px;background:linear-gradient(180deg,transparent,#061b13c4 24px,#061b13e3 72%,#061b13ef 100%)}
 .service-copy h3{font-size:28px;line-height:1.04}.service-copy h3 br{display:none}
 .service-copy p{font-size:14px;line-height:1.5;align-self:auto;max-width:400px}
 .service-copy .text-link{font-size:12px;min-height:30px}
 .service-card:before{background:none}
 .service-card:first-child .service-image img{object-position:50% 5%}
 .performance-card .service-image img{object-position:50% 12%}
 .practice-card .service-image img{object-position:50% 0%}
 .play-card .service-image img{height:100%;object-position:50% 38%;mask-image:none}
}

/* Preserve the existing pricing layout on very narrow phones. */
@media(max-width:350px){.pricing-grid{grid-template-columns:minmax(0,1fr)}.price-card{min-width:0}.member-rates{grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);gap:8px}.member-rates .price{font-size:39px}}

@media(max-width:380px){.service-copy h3{font-size:26px}}

/* v9: the equipment story resolves into two transparent pricing choices. */
.membership{background:var(--porcelain);padding-block:70px 86px}
.membership-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:38px}
.membership-heading h2{font-size:clamp(62px,6.4vw,91px);line-height:.98}
.membership-heading>p{max-width:225px;padding-bottom:5px;font-size:18px;line-height:1.45;color:var(--ink-soft)}
.pricing-panel{display:grid;grid-template-columns:1fr 1.8fr;border-radius:28px;overflow:hidden;border:1px solid #21583420;background:#fff}
.pricing-option{padding:clamp(28px,3.3vw,48px);min-width:0}
.pricing-option h3{font-family:var(--sc-font-display);font-size:32px;font-style:italic;font-weight:600;letter-spacing:-.015em}
.rate-context{font-size:15px;margin-top:10px;line-height:1.55}
.visitor-option{display:flex;flex-direction:column;background:#fff}
.visitor-option .rate-context{color:var(--ink-soft)}
.visitor-rate{margin-top:44px}.rate-prefix{font-size:14px;line-height:1.4;margin-bottom:6px}
.rate-number{font:700 italic clamp(70px,6.3vw,94px)/1 var(--sc-font-display);letter-spacing:-.035em;white-space:nowrap}
.rate-number>span{font:400 14px/1.2 var(--sc-font-text);letter-spacing:0;white-space:nowrap}
.visitor-detail{font-size:14px;line-height:1.6;margin-top:auto;padding-top:32px;max-width:250px;color:var(--ink-soft)}
.membership-option{background:var(--pine);color:white}
.membership-option .rate-context{color:#e0e9e1}
.membership-rates{display:grid;grid-template-columns:1fr 24px 1fr;gap:20px;align-items:start;margin-top:44px}
.membership-rates .rate-number{font-size:clamp(58px,5.5vw,84px)}
.rate-plus{font-size:26px;font-weight:400;line-height:1;align-self:start;padding-top:45px;color:#d3e2d6}
.rate-label{margin-top:14px;font-size:14px;line-height:1.5;color:#e0e9e1}
.membership-conditions{border-top:1px solid #ffffff38;margin-top:30px;padding-top:22px;font-size:13px;line-height:1.65;color:#e0e9e1}
.membership-conditions strong{font-weight:600;color:white}
.pricing-close{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-top:36px}
.founder-note{padding:3px 0 3px 24px;border-left:2px solid #21583460}
.founder-note blockquote{font:500 23px/1.45 var(--sc-font-text);letter-spacing:-.02em}
.founder-note figcaption{margin-top:12px;font-size:13px;color:var(--ink-soft)}
.pricing-cta{flex-shrink:0;font-size:14px;gap:30px}
@media(min-width:801px) and (max-width:1100px){.pricing-panel{grid-template-columns:.8fr 1.6fr}.pricing-option{padding:28px}.membership-rates{gap:14px;grid-template-columns:1fr 18px 1fr}.membership-rates .rate-number{font-size:58px}.rate-number>span{font-size:12px}.rate-context{font-size:14px}.pricing-close{gap:28px}.founder-note blockquote{font-size:20px}.pricing-cta{font-size:12px;padding-inline:19px;gap:16px}}
@media(max-width:800px){.membership{padding-block:55px 64px}.membership-heading{display:block;margin-bottom:28px}.membership-heading>p{max-width:none;margin-top:22px;font-size:16px;padding:0}.membership-heading h2{font-size:65px}.pricing-panel{grid-template-columns:1fr;border-radius:24px}.pricing-option{padding:30px}.visitor-rate{margin-top:28px}.visitor-detail{max-width:none;padding-top:20px}.membership-rates{margin-top:30px;gap:18px}.membership-rates .rate-number{font-size:72px}.pricing-close{align-items:flex-start;flex-direction:column;gap:28px;margin-top:28px}.founder-note blockquote{font-size:21px}.pricing-cta{font-size:14px}}
@media(max-width:600px){.membership{padding-block:36px 60px}.membership-heading h2{font-size:clamp(43px,11.8vw,66px)}.membership-heading>p{margin-top:20px;font-size:15px}.pricing-option{padding:27px 24px}.pricing-option h3{font-size:29px}.rate-context{font-size:14px;max-width:280px}.visitor-rate{margin-top:28px}.visitor-rate .rate-number{font-size:78px}.visitor-detail{padding-top:20px;font-size:13px}.membership-rates{grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);gap:10px;margin-top:30px}.membership-rates .rate-number{font-size:clamp(46px,12.6vw,70px)}.membership-rates .rate-number>span{display:block;font-size:12px;margin-top:6px}.rate-prefix{font-size:13px}.rate-plus{padding-top:37px;font-size:23px}.rate-label{font-size:13px;line-height:1.5;margin-top:13px}.membership-conditions{margin-top:24px;padding-top:20px;font-size:12px}.founder-note{padding-left:18px}.founder-note blockquote{font-size:20px;line-height:1.5}.founder-note blockquote br{display:none}.founder-note figcaption{font-size:12px;margin-top:10px}.pricing-cta{font-size:12px;width:100%;gap:12px;padding-inline:20px}}
@media(max-width:350px){.pricing-option{padding-inline:20px}.membership-rates{gap:8px}.membership-rates .rate-number{font-size:44px}.rate-label{font-size:12px}}

/* v9.1: a personal handwritten founder note. */
.founder-note blockquote{font-family:'Caveat','Segoe Print',cursive;font-weight:500;font-style:normal;font-size:clamp(29px,2.6vw,38px);line-height:1.16;letter-spacing:0;color:var(--pine);text-wrap:pretty}
@media(max-width:600px){.founder-note blockquote{font-size:30px;line-height:1.2}.founder-note blockquote br{display:block}}

/* v10: feathered charcoal behind mobile copy, with no horizontal colour band. */
@media(max-width:600px){
 .service-copy{background:none;text-shadow:0 1px 8px #00000045}
 .service-card:before{inset:auto 0 0;height:min(100%,250px);background:radial-gradient(ellipse 150% 100% at 0% 100%,rgba(10,13,12,.86) 0%,rgba(10,13,12,.76) 50%,rgba(10,13,12,.36) 78%,transparent 100%),linear-gradient(to top,rgba(10,13,12,.40),transparent 42%)}
}

/* v12: equal arrival options, original neighbourhood schematic. */
.visit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-areas:"intro map" "details map";gap:34px 64px;align-items:start;padding-block:80px 100px}
.visit-intro{grid-area:intro}.visit h2{font-size:clamp(62px,6.4vw,91px);line-height:1.02;letter-spacing:-.025em}
.arrival-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:37px;gap:22px}
.arrival-option+ .arrival-option{border-left:1px solid #21583430;padding-left:22px}
.arrival-option>svg{width:29px;height:29px;color:var(--pine);display:block;margin-bottom:15px}
.arrival-option h3{font:600 clamp(20px,1.8vw,26px)/1.2 var(--sc-font-text);letter-spacing:-.03em;white-space:nowrap;color:var(--pine)}
.arrival-option p{font-size:14px;line-height:1.5;margin-top:9px;color:var(--ink-soft)}
.visit-details{grid-area:details}.visit-details address{margin:0;font-size:15px;line-height:1.7}.visit-actions{margin-top:25px}
.neighbourhood-map{grid-area:map;align-self:center;border:1px solid #21583418;border-radius:27px;overflow:hidden;background:#e6e9e0}
.visit-map-art{display:block;width:100%;height:auto;font-family:var(--sc-font-text)}
.map-street{font-size:17px;fill:#52604f;letter-spacing:.03em}.map-station{font-size:20px;font-weight:600;fill:#215834}.map-secondary{font-size:17px;fill:#52604f}.map-exit{font-size:18px;font-weight:600;fill:white}.map-parking{font-size:24px;font-weight:600;fill:white}.map-destination{font-size:20px;font-weight:600;fill:#215834}

@media(min-width:801px) and (max-width:1150px){.visit{gap:28px 32px;grid-template-columns:1fr 1fr}.arrival-options{gap:16px}.arrival-option+ .arrival-option{padding-left:16px}.arrival-option h3{font-size:20px}.arrival-option p{font-size:12px}.visit-actions .button{padding-inline:16px;font-size:11px;gap:12px}}
@media(max-width:800px){.visit{grid-template-columns:1fr;grid-template-areas:"intro" "map" "details";gap:28px;padding-block:60px 70px}.visit h2{font-size:65px}.arrival-options{margin-top:28px;gap:25px}.arrival-option+ .arrival-option{padding-left:25px}.arrival-option h3{font-size:25px}.arrival-option p{font-size:14px}.neighbourhood-map{width:100%;max-width:650px;justify-self:center}.visit-actions{margin-top:23px}}
@media(max-width:600px){.visit{padding-block:42px 58px;gap:25px}.visit h2{font-size:clamp(43px,11.8vw,66px)}.arrival-options{gap:15px;margin-top:26px}.arrival-option+ .arrival-option{padding-left:15px}.arrival-option>svg{width:25px;height:25px;margin-bottom:12px}.arrival-option h3{font-size:clamp(17px,4.6vw,23px);letter-spacing:-.035em}.arrival-option p{font-size:12px;line-height:1.45;max-width:170px;margin-top:8px}.neighbourhood-map{border-radius:21px}.visit-details address{font-size:14px}.visit-actions{gap:10px;margin-top:23px}.visit-actions .button{font-size:11px;padding:14px 17px;gap:12px;min-height:48px}}
@media(max-width:350px){.arrival-options{gap:10px}.arrival-option+ .arrival-option{padding-left:10px}.arrival-option h3{font-size:16px}.arrival-option p{font-size:11px}.visit-actions .button{font-size:10px;padding-inline:13px;gap:9px}}

/* v14: labels sit on the geographic building masses. */
.visit-map-art .map-parking{font-size:18px}.visit-map-art .map-exit{font-size:16px}.visit-map-art .map-destination{font-size:18px}

/* v16: booking, arrival and training share one open composition. */
.regular{padding-block:40px 85px}.regular h2{font-size:clamp(62px,6.4vw,91px);line-height:1.02}.regular .section-heading{margin-bottom:42px}
.practice-routine{display:grid;grid-template-columns:24% 18% 1fr;grid-template-rows:410px auto;column-gap:24px;position:relative;align-items:center}
.ready-bay{grid-column:2/4;grid-row:1;margin-left:40px;height:100%;overflow:hidden;border-radius:26px}.ready-bay img{width:100%;height:100%;object-fit:cover;object-position:44% 50%}
.booking-phone{grid-column:2;grid-row:1/3;align-self:start;z-index:2;width:230px;margin-top:35px;position:relative;padding:7px;border-radius:31px;background:#2d3830;box-shadow:0 20px 40px #18372124,0 0 0 1px #fff8 inset;transform:rotate(-3deg)}
.phone-screen{position:relative;aspect-ratio:1/2;overflow:hidden;border-radius:24px;background:#fff}.phone-screen>img,.booking-demo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.booking-demo{opacity:0;transition:opacity .25s}.booking-demo.has-played{opacity:1}
.booking-playback{position:absolute;bottom:15px;right:15px;border:1px solid #21583425;background:var(--porcelain);color:var(--pine);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;box-shadow:0 2px 8px #0001;font-size:15px}.booking-playback[hidden]{display:none}
.routine-copy h3{font-size:clamp(24px,2.25vw,32px);line-height:1.15;letter-spacing:-.025em}.routine-copy p{font-size:16px;line-height:1.55;margin-top:13px;color:var(--ink-soft)}.booking-copy{grid-column:1;grid-row:1;align-self:center;padding-right:4px}.booking-copy .text-link{margin-top:25px;font-size:12px;gap:25px}.arrival-copy{grid-column:3;grid-row:2;padding:26px 0 0 40px}.arrival-copy p{margin-top:10px}
.regular .training-aids{margin-top:65px;padding:30px 0 0;grid-template-columns:1fr 1.8fr;gap:45px}.regular .training-copy h3{font-size:28px}.regular .training-copy p{font-size:14px;margin-top:9px}.regular .training-logos{gap:35px;margin:0;padding:14px 3px;min-width:0}.regular .training-logos>div{min-width:95px}.regular .training-logos img{height:34px}.regular .training-logos>div:nth-child(2) img{height:38px}
@media(min-width:801px) and (max-width:1100px){.practice-routine{grid-template-columns:24% 21% 1fr;column-gap:20px;grid-template-rows:360px auto}.booking-phone{width:200px}.arrival-copy{padding-left:35px}.regular .training-aids{grid-template-columns:1fr;gap:16px}.regular .training-logos{gap:55px}}
@media(max-width:800px){.regular{padding-block:35px 65px}.regular h2{font-size:65px}.regular .section-heading{margin-bottom:30px}.practice-routine{grid-template-columns:1fr 1fr;grid-template-rows:350px auto;gap:25px}.ready-bay{grid-column:1/3;grid-row:1;margin-left:15%;border-radius:23px}.booking-phone{grid-column:1;grid-row:1;width:180px;margin:32px 0 0 5px;align-self:start}.booking-copy{grid-column:1;grid-row:2;align-self:start;padding:0}.arrival-copy{grid-column:2;grid-row:2;padding:0;align-self:start}.routine-copy h3{font-size:26px}.routine-copy p{font-size:15px}.booking-copy .text-link{margin-top:18px}.regular .training-aids{grid-template-columns:1fr;margin-top:36px;gap:15px}.regular .training-logos{gap:45px}.regular .training-logos>div{min-width:120px}}
@media(max-width:600px){.regular{padding-block:25px 55px}.regular h2{font-size:clamp(43px,11.8vw,66px)}.regular .section-heading{display:block;margin-bottom:27px}.regular .section-heading>.text-link{margin-top:20px;display:inline-flex}.practice-routine{grid-template-rows:280px auto;gap:30px 19px}.ready-bay{margin-left:13%;height:244px;align-self:start;border-radius:20px}.ready-bay img{object-position:41% 50%}.booking-phone{width:140px;padding:5px;margin:17px 0 0 3px;border-radius:24px;box-shadow:0 12px 23px #18372126}.phone-screen{border-radius:19px}.booking-playback{width:36px;height:36px;bottom:11px;right:10px}.routine-copy h3{font-size:23px;line-height:1.12}.routine-copy p{font-size:14px;line-height:1.5;margin-top:10px}.booking-copy .text-link{font-size:11px;gap:12px;margin-top:15px}.regular .training-aids{margin-top:30px;padding-top:26px;gap:10px}.regular .training-copy h3{font-size:26px}.regular .training-logos{gap:30px;scroll-padding-left:3px}.regular .training-logos>div{min-width:120px;flex:0 0 120px}.regular .training-logos img{height:29px}.regular .training-logos>div:nth-child(2) img{height:35px}}
@media(max-width:350px){.practice-routine{gap:25px 15px;grid-template-rows:252px auto}.ready-bay{height:215px}.booking-phone{width:125px}.routine-copy h3{font-size:21px}.routine-copy p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.booking-demo{display:none}.booking-playback{display:none}.booking-phone{transform:none}}
@media(min-width:601px) and (max-width:800px){.practice-routine{grid-template-rows:390px auto}.ready-bay{height:350px;align-self:start}}

/* v18: static images survive blocked, stalled or failed playback. */
.tour-film .tour-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tour-film video,.booking-demo{opacity:0;transition:opacity .25s}
.tour-film video.video-ready,.booking-demo.video-ready{opacity:1}
@media(prefers-reduced-motion:reduce){.tour-film video,.booking-demo{display:none}.tour-poster,.booking-poster{opacity:1}}

/* Mobile hero retains the original centred studio composition (63% above). */

/* Owner-supplied circular training-aid mark, darkened without altering its artwork. */
.training-logos img.gbox-brand-logo,.benefit-brands img.gbox-brand-logo{filter:brightness(0);opacity:.72}.regular .training-logos .gbox-brand img{width:56px;height:56px;margin:auto;max-width:none}.benefit-brands .gbox-brand{display:flex;align-items:center}.benefit-description .benefit-brands .gbox-brand img{width:40px;height:40px;max-width:none}
@media(max-width:600px){.regular .training-logos .gbox-brand img{width:48px;height:48px}.benefit-description .benefit-brands .gbox-brand img{width:34px;height:34px}}

/* Compact 3 + 2 training-aid layout on phones. */
@media(max-width:600px){
 .regular .training-logos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 14px;grid-auto-rows:52px;overflow:visible;scroll-snap-type:none;padding:8px 0;margin:0;width:100%}
 .regular .training-logos>div{grid-column:span 2;min-width:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}
 .regular .training-logos>div:nth-child(4){grid-column:2/span 2}.regular .training-logos>div:nth-child(5){grid-column:4/span 2}
 .regular .training-logos img{width:100%;height:25px;max-width:108px}.regular .training-logos>div:nth-child(2) img{width:43px;height:25px}.regular .training-logos .gbox-brand img{width:43px;height:43px}.regular .training-logos span{font-size:9px;margin-top:3px}
}

/* Homepage hero: booking first, pricing as a secondary route. */
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.hero .hero-pricing-link{background:#10261d40;border-color:#ffffff9c;color:#fff}
.hero .hero-pricing-link:hover{background:#10261d80;border-color:#fff}
@media(max-width:600px){.hero-actions{flex-direction:column;align-items:flex-start;gap:10px}}

/* Membership price guide. Shared homepage typography, navigation and palette. */
.membership-page{--mp-line:#2158342b;--mp-muted:#4e5c51;--mp-soft:#e2e9df}.membership-page .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.membership-page .desktop-nav a[aria-current=page]{color:var(--pine);text-decoration:underline;text-underline-offset:6px}.membership-page h2{font-size:clamp(40px,4.9vw,70px)}.membership-page h3{font-size:23px}.mp-section{padding-block:88px;scroll-margin-top:16px}.currency{font-size:.32em;letter-spacing:0;margin-right:5px;font-weight:400;white-space:nowrap}.mp-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:42px}.mp-section-head>p{font-size:15px;max-width:390px;color:var(--mp-muted)}.mp-section-head .text-link{max-width:360px}.benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:6%;row-gap:36px}.benefit{border-top:1px solid var(--mp-line);padding-top:22px}.line-icon{display:block;width:38px;height:38px;color:var(--pine);margin-bottom:24px}.benefit h3{font-size:21px;margin-bottom:12px}.benefit p{font-size:15px;line-height:1.65;color:var(--mp-muted);max-width:340px}.mp-rates{border-top:1px solid var(--mp-line)}.rates-surface{background:white;border-radius:24px;overflow:hidden;border:1px solid var(--mp-line)}.membership-page table{border-collapse:collapse;width:100%;text-align:left;font-variant-numeric:tabular-nums}.membership-page th{font-weight:600}.rates-table thead th{font-size:13px;padding:22px 30px;color:var(--mp-muted);border-bottom:1px solid var(--mp-line)}.rates-table thead th:first-child{width:46%}.rates-table tbody th,.rates-table tbody td{padding:25px 30px;border-bottom:1px solid var(--mp-line)}.rates-table tbody tr:last-child>*{border-bottom:0}.rates-table tbody th{font-size:25px;font-weight:400}.rates-table tbody td{font-size:38px;line-height:1.25;white-space:nowrap}.rates-table .currency{font-size:13px}.rates-table .member-cell{background:#e3ecdf;color:var(--pine)}.rates-table small{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--mp-muted);font-weight:400;margin-top:5px}.rates-table small .line-icon{display:inline-block;width:17px;height:17px;margin:0}.rates-table .extra-row th{font-size:17px}.rates-table .extra-row td{font-size:26px}.rate-condition{margin:20px 0 28px;font-size:14px;color:var(--mp-muted);max-width:960px}.rate-extras{display:grid;grid-template-columns:1fr 1fr;gap:50px;font-size:14px;color:var(--mp-muted)}.rate-extras strong{display:block;font-size:17px;color:var(--ink);margin-bottom:8px}.pass-pointer{margin-top:32px;border-top:1px solid var(--mp-line);padding-top:24px;display:flex;align-items:center;gap:40px;justify-content:space-between;font-size:14px}.pass-pointer p{max-width:660px}.pass-pointer .text-link{font-size:13px;flex-shrink:0}.mp-lessons{background:#e4e9df;border-radius:36px 36px 0 0}.mp-kicker{font-size:14px;color:var(--pine);margin-bottom:24px}.lesson-statement span{display:block}.lesson-statement span:first-child{color:var(--ink)}.lesson-statement span:last-child{margin-left:9%;margin-top:6px}.lesson-lead{font-size:18px;max-width:610px;margin-top:30px}.lesson-rhythm{display:grid;grid-template-columns:1fr 1fr 1.25fr;align-items:center;max-width:850px;margin:38px 0 24px;gap:30px}.lesson-rhythm strong{display:block;font-size:25px;color:var(--pine);margin-bottom:8px}.lesson-rhythm p{font-size:15px}.connection{height:1px;background:var(--pine);transform-origin:left;position:relative}.connection::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid var(--pine);border-right:1px solid var(--pine);transform:rotate(45deg)}.lesson-facts{display:flex;gap:40px;font-size:14px;max-width:980px}.lesson-facts p{flex:1}.lesson-facts strong{display:block;margin-bottom:4px}.lesson-separate{font-size:13px;color:var(--mp-muted);margin-top:20px}.lesson-offers{margin-top:50px}.lesson-offers-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:24px}.lesson-offers-head p{font-size:13px;color:var(--mp-muted)}.lesson-program{padding:32px;background:var(--porcelain);border-radius:24px;margin-bottom:20px}.program-heading{display:flex;justify-content:space-between;gap:24px;align-items:baseline;margin-bottom:25px}.program-heading h3{font-size:28px}.program-heading p{font-size:14px;max-width:410px;color:var(--mp-muted)}.lesson-table thead th{font-size:12px;color:var(--mp-muted);padding:10px 14px 16px;border-bottom:1px solid var(--mp-line)}.lesson-table thead th:first-child{padding-left:0;width:28%}.lesson-table tbody th{padding:21px 14px 21px 0;font-size:17px}.lesson-table tbody td{padding:21px 14px;font-size:24px;white-space:nowrap}.lesson-table tbody td:nth-child(2){color:var(--pine);font-weight:600}.lesson-table tbody td:last-child{font-size:16px}.lesson-table .currency{font-size:12px}.lesson-table tbody tr>*{border-bottom:1px solid var(--mp-line)}.lesson-program .text-link{font-size:13px;margin-top:14px}.learn-bundle{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:24px 0 5px}.learn-bundle p>strong{display:block;font-size:17px}.learn-bundle p>span{display:block;max-width:530px;font-size:14px;color:var(--mp-muted);margin-top:5px}.learn-bundle>strong{font-size:29px;white-space:nowrap;color:var(--pine)}.learn-bundle .currency{font-size:12px}.member-validity{padding:4px 4px 0;font-size:14px;max-width:940px}.pass-benefits{display:grid;grid-template-columns:.9fr 1.3fr;gap:9%;border-top:1px solid #21583440;margin-top:42px;padding-top:34px;scroll-margin-top:120px}.pass-benefits h3{font-size:28px;max-width:360px}.pass-benefits p{font-size:14px;color:var(--mp-muted);margin-top:17px}.pass-benefits>div>p{max-width:520px}.pass-table thead th{font-size:12px;color:var(--mp-muted);padding:0 0 14px;border-bottom:1px solid #21583430}.pass-table tr>*{padding:17px 0;border-bottom:1px solid #21583430}.pass-table tbody th{font-size:17px}.pass-table th small{display:block;font-size:12px;font-weight:400;margin-top:4px;color:var(--mp-muted)}.pass-table td{font-size:25px;white-space:nowrap;text-align:right;color:var(--pine)}.pass-table thead th:last-child{text-align:right}.pass-table .currency{font-size:12px}.membership-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:60px;position:relative;margin-top:48px}.membership-steps article{position:relative}.membership-steps .line-icon{position:relative;background:var(--porcelain);box-shadow:0 0 0 12px var(--porcelain);margin-bottom:27px}.membership-steps h3{font-size:22px;margin-bottom:14px}.membership-steps p{font-size:15px;color:var(--mp-muted);max-width:330px}.step-line{position:absolute;left:15px;right:26%;height:1px;top:18px;background:#21583433}.step-line::after{content:"";display:block;width:100%;height:2px;background:var(--pine);transform:scaleX(var(--step-progress,1));transform-origin:left}.mp-calculator{padding-top:10px}.calculator-shell{border:1px solid #21583440;border-radius:30px;display:grid;grid-template-columns:1.1fr 1fr;gap:36px 8%;padding:48px;background:#e4e9df}.calculator-input h2{font-size:clamp(38px,3.9vw,56px);margin-bottom:28px}.calculator-input>p{font-size:17px}.calc-controls{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px;max-width:380px}.calc-controls label{display:block;font-size:12px;margin-bottom:7px;color:var(--mp-muted)}.calc-controls input,.calc-controls select{display:block;width:100%;min-width:0;min-height:58px;border:1px solid #21583455;background:var(--porcelain);border-radius:12px;padding:10px 15px;color:var(--pine);font:600 20px/1.2 var(--sc-font-text)}.calc-controls select{font-size:15px}.calculator-input .calc-basis{font-size:13px;color:var(--mp-muted);margin-top:24px;line-height:1.7}.calculator-input .calc-error{font-size:13px;color:#8c302a;margin-top:10px}.calculator-result{align-self:center}.calculator-result>p{font-size:15px}.result-number{font-size:clamp(54px,5.5vw,78px);line-height:1.3;letter-spacing:-.045em;color:var(--pine);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;margin-top:7px}.result-number>span:last-child{font-size:14px;letter-spacing:0;font-weight:400;margin-left:8px}.result-number .currency{font-size:18px}.result-live>p:not(.result-number){font-size:13px;color:var(--mp-muted)}.result-live .annual-hours{margin-top:20px}.cost-bar{height:20px;border-radius:10px;overflow:hidden;position:relative;background:var(--pine);margin-top:25px}.cost-membership{position:absolute;inset:0;background:#9ab397;transform:scaleX(var(--share,.27125));transform-origin:right;transition:transform .45s ease}.cost-session{display:none}.bar-labels{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px;font-size:12px}.bar-labels i{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:var(--pine)}.bar-labels .membership-dot{background:#819c7e}.bar-labels strong{display:block;font-size:15px;margin-top:5px;font-weight:600}.calculator-footnote{grid-column:1/-1;font-size:12px;line-height:1.65;color:var(--mp-muted);border-top:1px solid var(--mp-line);padding-top:20px}.static-note{font-size:13px;margin-top:12px}.mp-invitation{padding-top:12px;padding-bottom:70px}.invitation-panel{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:70px;background:var(--pine);color:white;border-radius:30px;padding:60px;transform:scale(var(--invite-scale,1));transform-origin:center}.invitation-panel h2{font-size:clamp(45px,5vw,72px)}.invitation-panel>div>p{font-size:16px;max-width:440px;margin-top:25px;color:#e6ede3}.invitation-actions{justify-self:end}.invitation-actions .tour-note{font-size:12px;color:#e0e7df}.invitation-actions .already{font-size:14px;margin-top:36px;line-height:1.8}.already a{border-bottom:1px solid #fff8;padding-bottom:4px;color:white}.mp-faq{padding-top:0;display:grid;grid-template-columns:.9fr 1.5fr;gap:60px}.mp-faq h2{font-size:48px}.mp-faq .faq-list{border-top:1px solid var(--mp-line)}.mp-faq details{border-bottom:1px solid var(--mp-line)}.mp-faq summary{display:flex;justify-content:space-between;gap:25px;cursor:pointer;list-style:none;padding:22px 0;font-size:15px;font-weight:600}.mp-faq summary::-webkit-details-marker{display:none}.mp-faq summary span{font-size:23px;line-height:1}.mp-faq details[open] summary span{transform:rotate(45deg)}.mp-faq details p{padding:0 26px 22px 0;font-size:14px;line-height:1.7;color:var(--mp-muted)}.mp-faq p a{text-decoration:underline;text-underline-offset:3px}.membership-page .footer{margin-top:0}
/* Restrained movement: figures and navigation are never hidden. */
.mp-motion [data-enter]{transition:transform .7s cubic-bezier(.2,.7,.2,1) var(--delay,0ms);transform:translateY(17px)}.mp-motion [data-enter].is-inview{transform:translateY(0)}.mp-motion .benefit .line-icon{stroke-dasharray:110;stroke-dashoffset:110;transition:stroke-dashoffset 1.1s ease var(--delay,0ms)}.mp-motion .benefit.is-inview .line-icon{stroke-dashoffset:0}.mp-motion .rates-surface .member-cell{transition:background .8s}.mp-motion .rates-surface:not(.is-inview) .member-cell{background:#eff3ec}.mp-motion .lesson-rhythm .connection{transform:scaleX(var(--lesson-progress,1))}
@media(max-width:1000px){.mp-section{padding-block:68px}.mp-section-head{gap:24px}.mp-section-head .text-link{max-width:300px;font-size:12px}.pass-pointer{display:block}.pass-pointer .text-link{margin-top:10px}.program-heading{display:block}.program-heading p{margin-top:12px;max-width:none}.lesson-statement span:last-child{margin-left:4%}.calculator-shell{padding:32px;gap:30px 5%}.result-number{font-size:57px}.bar-labels strong{font-size:13px}.invitation-panel{padding:40px;gap:30px}.mp-calculator{padding-top:0}.mp-invitation{padding-top:0}.mp-faq{padding-top:0;grid-template-columns:.7fr 1.3fr;gap:25px}}
@media(max-width:700px){.mp-section{padding-block:56px}.mp-section-head{display:block;margin-bottom:28px}.mp-section-head h2{font-size:44px}.mp-section-head>p{margin-top:17px;font-size:14px}.mp-section-head .text-link{margin-top:16px;max-width:none}.benefits-grid{grid-template-columns:repeat(2,1fr);gap:26px 22px}.benefit{padding-top:19px}.benefit .line-icon{width:32px;height:32px;margin-bottom:17px}.benefit h3{font-size:18px;line-height:1.2}.benefit p{font-size:13px;line-height:1.65}.mp-rates{padding-top:44px}.rates-table thead{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.rates-table tbody{display:block}.rates-table tbody tr{display:grid;grid-template-columns:1fr 1fr;padding:20px;gap:15px 16px;border-bottom:1px solid var(--mp-line)}.rates-table tbody tr:last-child{border-bottom:0}.rates-table tbody th{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0;font-size:22px;border:0}.rates-table small{font-size:11px;margin:0;max-width:135px}.rates-table tbody td{font-size:32px;padding:14px;border:0;border-radius:12px;background:var(--porcelain)}.rates-table tbody td.member-cell{background:#e3ecdf}.rates-table td::before{content:attr(data-label);display:block;font-size:11px;color:var(--mp-muted);margin-bottom:7px}.rates-table .extra-row th{display:block;font-size:17px}.rates-table .extra-row small{margin-top:4px;max-width:none}.rates-table .extra-row td{font-size:25px}.rate-condition{font-size:13px;margin-bottom:22px}.rate-extras{grid-template-columns:1fr;gap:18px;font-size:13px}.rate-extras strong{font-size:15px;margin-bottom:5px}.pass-pointer{margin-top:25px;font-size:13px;padding-top:22px}.pass-pointer .text-link{font-size:12px;gap:12px}.mp-lessons{border-radius:24px 24px 0 0}.mp-kicker{font-size:13px;margin-bottom:19px}.lesson-statement{font-size:clamp(36px,7vw,49px)!important}.lesson-statement span:last-child{margin:12px 0 0}.lesson-lead{font-size:16px;margin-top:22px}.lesson-rhythm{grid-template-columns:1fr 35px 1.25fr;gap:14px;margin:28px 0 23px}.lesson-rhythm strong{font-size:22px}.lesson-rhythm p{font-size:13px}.lesson-facts{gap:20px;font-size:13px}.lesson-separate{font-size:12px}.lesson-offers{margin-top:35px}.lesson-offers-head{display:block}.lesson-offers-head h3{font-size:22px}.lesson-offers-head p{margin-top:8px;font-size:12px}.lesson-program{padding:22px 18px;border-radius:20px}.program-heading h3{font-size:25px}.program-heading p{font-size:13px}.lesson-table thead{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.lesson-table tbody{display:block}.lesson-table tbody tr{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;border-top:1px solid var(--mp-line);padding:17px 0}.lesson-table tbody tr:last-child{border-bottom:1px solid var(--mp-line)}.lesson-table tbody th{grid-column:1/-1;padding:0 0 6px;border:0;font-size:17px}.lesson-table tbody td{padding:0;border:0;font-size:20px;letter-spacing:-.025em}.lesson-table tbody td::before{content:attr(data-label);display:block;font-size:10px;font-weight:400;letter-spacing:0;margin-bottom:8px;color:var(--mp-muted)}.lesson-table tbody td:last-child{font-size:14px;letter-spacing:0}.lesson-table .currency{display:block;font-size:10px;margin:0 0 2px;line-height:1.1}.learn-bundle{display:block;padding-top:20px}.learn-bundle p>strong{font-size:16px}.learn-bundle p>span{font-size:13px}.learn-bundle>strong{display:block;font-size:26px;margin-top:10px}.member-validity{font-size:13px}.pass-benefits{grid-template-columns:1fr;gap:24px;margin-top:32px;padding-top:27px}.pass-benefits h3{font-size:25px;max-width:370px}.pass-benefits p{font-size:13px}.pass-table tbody th{font-size:16px}.pass-table td{font-size:24px}.membership-steps{grid-template-columns:1fr;gap:30px;margin-top:32px}.membership-steps article{padding-left:60px}.membership-steps .line-icon{position:absolute;left:0;top:0;width:32px;height:32px;box-shadow:0 0 0 9px var(--porcelain)}.membership-steps h3{font-size:21px;margin-bottom:9px}.membership-steps p{font-size:14px;max-width:none}.step-line{left:15px;top:10px;bottom:45px;height:auto;width:1px;right:auto}.step-line::after{height:100%;width:2px;transform:scaleY(var(--step-progress,1));transform-origin:top}.mp-calculator{padding-top:0}.calculator-shell{grid-template-columns:1fr;padding:25px 22px;gap:26px;border-radius:24px}.calculator-input h2{font-size:40px;margin-bottom:24px}.calculator-input>p{font-size:16px}.calc-controls{gap:12px}.calc-controls input,.calc-controls select{padding:12px;min-height:54px}.calculator-input .calc-basis{font-size:12px;margin-top:18px}.calculator-result{padding-top:22px;border-top:1px solid var(--mp-line)}.calculator-result>p{font-size:14px}.result-number{font-size:clamp(46px,11.5vw,68px)}.result-number .currency{font-size:15px}.result-number>span:last-child{font-size:12px;margin-left:5px}.bar-labels{gap:8px;font-size:11px}.bar-labels strong{font-size:13px}.calculator-footnote{font-size:11px;padding-top:18px}.mp-invitation{padding-top:0;padding-bottom:55px}.invitation-panel{grid-template-columns:1fr;padding:30px 24px;gap:27px;border-radius:24px}.invitation-panel h2{font-size:clamp(40px,9vw,58px)}.invitation-panel>div>p{font-size:14px;margin-top:20px}.invitation-actions{justify-self:start}.invitation-actions .tour-note{font-size:11px;margin-top:13px}.invitation-actions .already{font-size:13px;margin-top:23px}.mp-faq{grid-template-columns:1fr;gap:28px;padding-top:0}.mp-faq h2{font-size:43px}.mp-faq summary{font-size:14px;padding-block:20px}.mp-faq details p{font-size:13px;padding-right:0}.membership-page .footer{font-size:11px}}
@media(max-width:360px){.benefits-grid{gap:25px 18px}.benefit h3{font-size:17px}.rates-table tbody tr{padding:17px}.rates-table tbody th{font-size:20px}.rates-table tbody td{padding:12px;font-size:29px}.lesson-table tbody td{font-size:18px}.lesson-table tbody td:last-child{font-size:13px}.calculator-shell{padding:24px 18px}.calculator-input h2{font-size:35px}.result-number{font-size:44px}.result-number .currency{font-size:13px}.result-number>span:last-child{font-size:11px}.bar-labels strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.membership-page *, .membership-page *::before,.membership-page *::after{animation:none!important;transition:none!important}.membership-page [data-enter],.membership-page .invitation-panel,.membership-page .connection{transform:none!important}.membership-page .line-icon{stroke-dashoffset:0!important}.step-line::after{transform:none!important}}

/* Sporting membership opening: open type and pricing, no card surface. */
.membership-opening{padding-bottom:35px}
.sport-stage{position:relative;isolation:isolate;overflow:hidden;padding:52px 0 50px}
.sport-content{position:relative;z-index:1}
.sport-label{font-size:14px;font-weight:500;color:var(--mp-muted);margin-bottom:25px}
.sport-content h1{font-size:clamp(72px,7.6vw,110px);line-height:.96;letter-spacing:-.025em;color:var(--pine)}
.sport-content h1 span{display:block;white-space:nowrap}
.sport-content h1 span:last-child{color:var(--ink)}


.sport-offer{display:flex;gap:42px;align-items:center;margin-top:35px;width:max-content;max-width:100%}
.sport-annual>p:first-child{font-size:13px;color:var(--mp-muted);margin-bottom:8px}
.sport-price{display:flex;gap:9px;align-items:baseline;line-height:1;letter-spacing:-.035em;color:var(--pine)}
.sport-price>span{font-size:20px;letter-spacing:0}
.sport-price>strong{font-size:78px;font-weight:600}
.sport-annual>p:last-child{font-size:14px;color:var(--mp-muted);margin-top:9px}





.membership-condition{font-size:12px;color:var(--mp-muted);line-height:1.65;margin-top:19px;max-width:530px}
.membership-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 25px;margin-top:20px}
.membership-actions .button{font-size:13px;padding:15px 22px;min-height:50px;gap:25px}
.membership-actions .text-link{font-size:13px;gap:18px}
.membership-inclusions{padding-top:30px;border-top:1px solid var(--mp-line);scroll-margin-top:120px}
.membership-inclusions h2{font:500 24px/1.3 var(--sc-font-text);letter-spacing:-.025em;margin-bottom:28px;color:var(--pine)}
.membership-inclusions .benefits-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:27px}
.membership-inclusions .benefit{border:0;padding:0;min-width:0}
.membership-inclusions .line-icon{width:28px;height:28px;margin-bottom:16px}
.membership-inclusions .benefit h3{font:600 16px/1.3 var(--sc-font-text);letter-spacing:-.02em;margin-bottom:10px;color:var(--pine)}
.membership-inclusions .benefit p{font-size:13px;line-height:1.65;max-width:280px}
.membership-next{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:32px;padding-top:22px;border-top:1px solid var(--mp-line)}
.membership-next>p{font-size:13px;max-width:510px;color:var(--mp-muted)}
.membership-next strong{color:var(--pine)}
.membership-next nav{display:flex;gap:30px;flex-shrink:0}
.membership-next .text-link{font-size:13px;gap:22px}

@media(min-width:1600px){.sport-stage{padding-block:65px}.sport-content h1{font-size:118px}}
@media(max-width:1150px){.sport-content h1{font-size:clamp(65px,8.1vw,91px)}.membership-inclusions .benefits-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 35px}.membership-next nav{gap:20px}.membership-next>p{max-width:400px}}
@media(max-width:800px){.sport-stage{padding-top:36px;padding-bottom:36px}.sport-label{margin-bottom:23px;font-size:13px}.sport-content h1{font-size:clamp(51px,8.8vw,70px)}.sport-offer{gap:26px;margin-top:30px}.sport-price>strong{font-size:66px}.membership-next{display:block}.membership-next>p{max-width:500px}.membership-next nav{margin-top:12px;gap:28px}}
@media(max-width:600px){.sport-stage{padding-top:28px;padding-bottom:32px}.sport-label{font-size:12px;margin-bottom:23px}.sport-content h1{font-size:clamp(38px,9.55vw,57px);line-height:1.02}.sport-offer{margin-top:30px;gap:22px;width:100%}.sport-annual{flex:1}.sport-price{gap:5px}.sport-price>strong{font-size:clamp(48px,12.4vw,66px)}.sport-price>span{font-size:14px}.sport-annual>p:first-child{font-size:11px;margin-bottom:9px}.sport-annual>p:last-child{font-size:12px;max-width:none;line-height:1.5;margin-top:8px}.membership-condition{font-size:12px;margin-top:20px}.membership-actions{margin-top:18px;gap:10px 20px}.membership-actions .button{font-size:12px;padding:14px 18px;gap:20px}.membership-actions .text-link{font-size:12px;gap:15px}.membership-inclusions{padding-top:25px}.membership-inclusions h2{font-size:21px;margin-bottom:26px}.membership-inclusions .benefits-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 23px}.membership-inclusions .benefit h3{font-size:16px}.membership-inclusions .benefit p{font-size:13px}.membership-inclusions .line-icon{width:25px;height:25px;margin-bottom:13px}.membership-next{margin-top:27px;padding-top:21px}.membership-next>p{font-size:12px}.membership-next nav{gap:23px}.membership-next .text-link{font-size:12px;gap:14px}}
@media(max-width:360px){.sport-content h1{font-size:9.5vw}.sport-offer{gap:15px}.sport-price>strong{font-size:43px}.sport-annual>p:last-child{font-size:11px}.membership-actions .button{width:100%}.membership-inclusions .benefit h3{font-size:15px}.membership-inclusions .benefit p{font-size:12px}.membership-next .text-link{font-size:11px}}


/* Benefits grouped by the decisions members care about. */
.membership-inclusions.benefit-highlight{padding:32px 36px 30px;background:#e1e7dc;border:0;border-radius:26px}
.benefit-highlight h2{font-size:23px;margin-bottom:30px}
.benefit-priorities{display:grid;grid-template-columns:1fr 1fr 1.18fr;gap:30px}
.benefit-feature{min-width:0}
.benefit-feature+.benefit-feature{border-left:1px solid #2158342b;padding-left:30px}
.membership-page .benefit-feature h3{font-family:var(--sc-font-text);font-style:normal;font-weight:500;letter-spacing:-.025em;min-height:125px;color:var(--pine);margin:0 0 14px}
.benefit-number{display:block;font-family:var(--sc-font-display);font-style:italic;font-size:76px;font-weight:700;line-height:1;letter-spacing:-.025em}
.benefit-number small{font-family:var(--sc-font-text);font-size:17px;font-style:normal;letter-spacing:0;font-weight:400;margin-right:4px}
.benefit-number small:last-child{font-size:14px;margin-left:4px;margin-right:0}
.benefit-access h3>span{display:block;font-size:25px;margin-top:8px}
.benefit-rate .benefit-from{display:block;font-size:17px;line-height:1.3;margin-bottom:10px}
.benefit-rate .benefit-number{font-size:70px;white-space:nowrap}
.membership-page .benefit-equipment h3{font-family:var(--sc-font-display);font-style:italic;text-transform:uppercase;font-size:39px;font-weight:700;line-height:1.04;max-width:290px;padding-top:4px}
.benefit-equipment h3>span{display:block}
.benefit-explanation p{font-size:14px;line-height:1.65;color:#425342;max-width:300px}
.benefit-explanation .benefit-terms{font-size:12px;margin-top:10px}
.benefit-brands{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;align-items:center;max-width:260px;margin-top:16px}
.benefit-brands img{width:100%;height:24px;object-fit:contain;object-position:left center;filter:grayscale(1);mix-blend-mode:multiply}
.benefit-brands img.benefit-trs{width:58px;height:30px}
.benefit-lessons{display:grid;grid-template-columns:1fr 1.35fr;gap:35px;border-top:1px solid #2158342b;margin-top:27px;padding-top:24px}
.benefit-lessons article{display:flex;gap:11px;align-items:flex-start}
.benefit-lessons svg{flex:0 0 21px;width:21px;height:21px;color:var(--pine);margin-top:2px}
.membership-page .benefit-lessons h3{font:600 17px/1.4 var(--sc-font-text);color:var(--pine);letter-spacing:-.02em}
.benefit-lessons p{font-size:13px;color:#425342;line-height:1.6;margin-top:6px}
@media(max-width:1100px){.membership-inclusions.benefit-highlight{padding:28px}.benefit-priorities{gap:23px;grid-template-columns:1fr 1fr 1.1fr}.benefit-feature+.benefit-feature{padding-left:23px}.benefit-number{font-size:67px}.benefit-rate .benefit-number{font-size:59px}.benefit-number small{font-size:14px}.benefit-number small:last-child{font-size:11px}.membership-page .benefit-equipment h3{font-size:32px}.benefit-access h3>span{font-size:22px}.benefit-explanation p{font-size:13px}.benefit-brands{gap:14px}.benefit-lessons{gap:25px}.membership-page .benefit-lessons h3{font-size:16px}}
@media(max-width:850px){.benefit-priorities{grid-template-columns:1fr;gap:0}.benefit-feature{display:grid;grid-template-columns:.9fr 1.2fr;gap:25px;align-items:center;padding-block:23px}.benefit-feature:first-child{padding-top:0}.benefit-feature+.benefit-feature{border-left:0;border-top:1px solid #2158342b;padding-left:0}.membership-page .benefit-feature h3{min-height:0;margin:0}.benefit-explanation p{max-width:none}.benefit-access h3>span{font-size:20px}.benefit-rate .benefit-from{font-size:15px;margin-bottom:8px}.membership-page .benefit-equipment h3{font-size:33px;max-width:225px}.benefit-brands{max-width:270px}.benefit-lessons{grid-template-columns:1fr;gap:20px;margin-top:0;padding-top:23px}.benefit-number{font-size:63px}.benefit-rate .benefit-number{font-size:58px}}
@media(max-width:600px){.membership-inclusions.benefit-highlight{padding:25px 20px;border-radius:22px}.benefit-highlight h2{font-size:20px;margin-bottom:24px}.benefit-feature{grid-template-columns:.95fr 1.1fr;gap:16px;padding-block:24px}.benefit-number{font-size:51px}.benefit-rate .benefit-number{font-size:44px}.benefit-number small{font-size:11px;margin-right:1px}.benefit-number small:last-child{display:block;font-size:11px;margin:5px 0 0}.benefit-access h3>span{font-size:18px;line-height:1.25;margin-top:5px}.benefit-rate .benefit-from{font-size:13px;margin-bottom:7px}.membership-page .benefit-equipment h3{font-size:26px;line-height:1.08;max-width:170px}.benefit-explanation p{font-size:12px;line-height:1.6}.benefit-explanation .benefit-terms{font-size:11px;margin-top:8px}.benefit-brands{gap:10px 12px;margin-top:13px}.benefit-brands img{height:18px}.benefit-brands img.benefit-trs{width:42px;height:22px}.membership-page .benefit-lessons h3{font-size:15px}.benefit-lessons p{font-size:12px}.benefit-lessons article{gap:9px}.benefit-lessons svg{flex-basis:18px;width:18px;height:18px}}
@media(max-width:360px){.membership-inclusions.benefit-highlight{padding:23px 17px}.benefit-highlight h2{font-size:18px}.benefit-feature{grid-template-columns:.92fr 1.08fr;gap:12px}.benefit-rate .benefit-number{font-size:37px}.benefit-number{font-size:45px}.benefit-access h3>span{font-size:16px}.membership-page .benefit-equipment h3{font-size:23px}.benefit-explanation p{font-size:11px}.benefit-brands{gap:10px}.benefit-brands img{height:16px}}

/* Keep the rate together and readable; annual fee alone leads the hero. */
.benefit-rate .benefit-number{display:flex;align-items:baseline;gap:3px}
.benefit-rate .benefit-number small{font-size:30px;margin:0}
.benefit-rate .benefit-number small:last-child{display:inline;font-size:25px;margin:0 0 0 3px}
@media(max-width:1100px){.benefit-rate .benefit-number small{font-size:25px}.benefit-rate .benefit-number small:last-child{font-size:21px}}
@media(max-width:600px){.benefit-rate .benefit-number{font-size:42px;gap:1px}.benefit-rate .benefit-number small{font-size:22px}.benefit-rate .benefit-number small:last-child{font-size:18px;margin-left:2px}}
@media(max-width:360px){.benefit-rate .benefit-number{font-size:35px}.benefit-rate .benefit-number small{font-size:19px}.benefit-rate .benefit-number small:last-child{font-size:16px;margin-left:1px}}

/* One golf landscape connects the night headline, day offer and benefits. */
.membership-opening{position:relative;isolation:isolate;overflow:hidden;padding-bottom:35px}
.sport-stage{position:relative;isolation:isolate;padding:0;overflow:visible;min-height:620px}
.membership-landscape{position:absolute;inset:0;z-index:0;pointer-events:none}
.membership-landscape svg{display:block;width:100%;height:100%}
.membership-landscape .landscape-small{display:none}
.sport-content{display:grid;grid-template-columns:1.3fr 1fr;gap:10%;align-items:start;padding-top:75px;padding-bottom:105px;min-height:620px;position:relative;z-index:1}
.sport-content h1{font:700 italic clamp(62px,6.2vw,90px)/1.01 var(--sc-font-display);letter-spacing:-.025em;text-transform:uppercase;color:#f0f0ed;max-width:660px;text-wrap:balance}
.sport-content h1 span,.sport-content h1 span:last-child{display:inline;white-space:normal;color:#c5d6af}
.membership-offer-panel{padding:18px 0 0 12%;max-width:470px}
.sport-annual{display:block}
.sport-annual>p:first-child{font-size:14px;margin-bottom:12px}
.sport-price{gap:9px}
.sport-price>strong{font-size:clamp(68px,5.7vw,82px)}
.sport-price>span{font-size:21px}
.sport-annual>p:last-child{font-size:15px;margin:12px 0 0;max-width:none;padding:0}
.membership-flexibility{margin-top:30px;max-width:340px}
.membership-flexibility>p:first-child{font-size:21px;font-weight:500;line-height:1.3;letter-spacing:-.025em;color:var(--pine)}
.membership-flexibility>p:last-child{font-size:14px;line-height:1.6;margin-top:10px;color:var(--mp-muted);max-width:310px}
.membership-actions{display:flex;flex-direction:column;align-items:flex-start;gap:18px;margin-top:28px}
.membership-actions .button{font-size:13px;padding:15px 21px;gap:25px}
.membership-actions .text-link{font-size:13px}


.membership-details{position:relative;z-index:1}
.membership-inclusions.benefit-highlight{background:transparent;border-radius:0;padding:18px 0 30px;border:0;color:var(--ink)}
.benefit-highlight h2{color:var(--ink);font-size:25px;margin-bottom:34px}
.membership-page .benefit-feature h3{color:var(--pine)}
.benefit-explanation p,.benefit-lessons p{color:#4e5c51}
.benefit-feature+.benefit-feature,.benefit-lessons{border-color:#21583430}
.membership-page .benefit-lessons h3{color:var(--ink)}
.benefit-lessons svg{color:var(--pine)}
.benefit-brands img{filter:grayscale(1);mix-blend-mode:multiply;opacity:1}
.membership-next{margin-top:0}
@media(min-width:1600px){.sport-content{grid-template-columns:1.35fr 1fr;gap:10%}.sport-content h1{font-size:90px}}
@media(max-width:1150px) and (min-width:801px){.sport-content{grid-template-columns:1.2fr 1fr;gap:8%;padding-top:70px}.sport-content h1{font-size:6.1vw}.membership-offer-panel{padding-left:11%;padding-top:8px}.sport-price>strong{font-size:65px}.membership-flexibility>p:first-child{font-size:20px}.membership-actions .button{font-size:12px;padding-inline:17px;gap:12px}}
@media(max-width:800px){.sport-stage{min-height:0}.sport-content{display:block;padding-top:0;padding-bottom:30px;min-height:0}.membership-landscape{height:420px}.membership-landscape .landscape-wide{display:none}.membership-landscape .landscape-small{display:block}.sport-content h1{height:420px;padding-top:42px;font-size:clamp(53px,8.8vw,69px);max-width:530px;line-height:1.01;text-wrap:balance}.membership-offer-panel{max-width:100%;padding:22px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.membership-flexibility{margin-top:0}.membership-actions{grid-column:1/-1;flex-direction:row;align-items:center;gap:24px;margin-top:25px}.sport-price>strong{font-size:67px}.membership-inclusions.benefit-highlight{padding-top:24px}.benefit-highlight h2{font-size:24px}.sport-annual>p:last-child{font-size:14px}.membership-flexibility>p:first-child{font-size:20px}}
@media(max-width:600px){.membership-landscape{height:280px}.sport-content h1{height:280px;padding-top:36px;font-size:clamp(44px,11.6vw,65px);max-width:100%;padding-right:28px}.sport-content{padding-bottom:30px}.membership-offer-panel{display:block;padding-top:17px}.sport-price>strong{font-size:66px}.sport-price>span{font-size:18px}.sport-annual>p:first-child{font-size:13px;margin-bottom:10px}.sport-annual>p:last-child{font-size:14px;margin-top:10px}.membership-flexibility{margin-top:25px;max-width:100%}.membership-flexibility>p:first-child{font-size:21px}.membership-flexibility>p:last-child{font-size:13px;max-width:300px}.membership-actions{flex-direction:column;align-items:flex-start;gap:18px;margin-top:24px}.membership-actions .button{font-size:12px;padding:14px 18px;gap:22px}.membership-actions .text-link{font-size:12px}.membership-inclusions.benefit-highlight{padding:23px 0 24px}.benefit-highlight h2{font-size:22px;margin-bottom:28px}.membership-next{margin-top:0}}
@media(max-width:360px){.sport-content h1{font-size:11.6vw;padding-right:20px}.sport-price>strong{font-size:58px}.membership-flexibility>p:first-child{font-size:20px}.membership-actions .button{width:auto}.benefit-highlight h2{font-size:21px}}

/* Scroll daybreak defaults to daylight without JavaScript or with reduced motion. */
.sport-stage{--sky:#f0f0ed;--hero-ink:#0b241b;--moon-y:410px;--sun-y:0px;--moon-opacity:0;--sun-opacity:1}
.daybreak-sky{fill:var(--sky)}
.sport-content h1,.sport-content h1 span,.sport-content h1 span:last-child{color:var(--hero-ink)}
.daybreak-moon{transform:translateY(var(--moon-y));opacity:var(--moon-opacity)}
.daybreak-sun{transform:translateY(var(--sun-y));opacity:var(--sun-opacity)}
.flag-sf{filter:brightness(0) invert(1)}
@media(max-width:600px){.sport-content h1{padding-top:28px}}

/* Native sticky artwork, bounded by the membership chapter. */
.membership-opening{display:grid;grid-template-columns:54% 46%;align-items:start;overflow:clip;padding-bottom:0}
.sport-stage{position:sticky;top:var(--nav);height:calc(100svh - var(--nav));max-height:680px;min-height:480px;overflow:hidden}
.membership-landscape{height:100%;inset:0}
.membership-landscape .landscape-wide{display:none}
.membership-landscape .landscape-small{display:block}
.sport-content{display:block;min-height:0;padding:55px var(--gutter) 0;max-width:none}
.sport-content h1{height:auto;padding:0;font-size:clamp(51px,5.1vw,78px);max-width:600px;text-wrap:balance}
.membership-reading{position:relative;min-width:0;padding:68px var(--gutter) 45px 42px}
.membership-offer-panel{padding:0;max-width:none;display:block}
.membership-details.wrap{padding:0;margin:0;max-width:none}
.membership-inclusions.benefit-highlight{margin-top:46px;padding-top:30px;border-top:1px solid var(--mp-line)}
.benefit-highlight h2{font-size:23px;margin-bottom:27px}
.benefit-priorities{display:grid;grid-template-columns:1fr;gap:0}
.benefit-feature{display:grid;grid-template-columns:.95fr 1.15fr;align-items:center;gap:22px;padding-block:25px}
.benefit-feature:first-child{padding-top:0}
.benefit-feature+.benefit-feature{border-left:0;border-top:1px solid var(--mp-line);padding-left:0}
.membership-page .benefit-feature h3{min-height:0;margin:0}
.benefit-number{font-size:60px}
.benefit-access h3>span{font-size:21px}
.benefit-rate .benefit-number{font-size:51px;gap:1px}
.benefit-rate .benefit-number small{font-size:24px}
.benefit-rate .benefit-number small:last-child{font-size:20px;margin-left:2px}
.membership-page .benefit-equipment h3{font-size:30px}
.benefit-explanation p{font-size:13px}
.benefit-brands{gap:12px;max-width:250px}
.benefit-brands img{height:20px}
.benefit-lessons{grid-template-columns:1fr;gap:20px;margin-top:0;padding-top:24px}
.membership-page .benefit-lessons h3{font-size:16px}
.membership-next{display:block;margin-top:0}
.membership-next nav{display:flex;flex-wrap:wrap;gap:14px 24px;margin-top:14px}
.membership-next .text-link{font-size:12px;gap:12px}
.daybreak-moon{transform:translateY(calc(var(--moon-y) + var(--orbit-base,0px)))}
.daybreak-sun{transform:translateY(calc(var(--sun-y) + var(--orbit-base,0px)))}
@media(min-width:801px) and (max-width:1150px){.membership-reading{padding-left:28px;padding-right:30px}.sport-content{padding-top:45px;padding-inline:32px}.sport-content h1{font-size:5.15vw}.benefit-feature{gap:16px;grid-template-columns:.9fr 1.1fr}.benefit-rate .benefit-number{font-size:43px}.benefit-rate .benefit-number small{font-size:21px}.benefit-rate .benefit-number small:last-child{font-size:17px}.membership-page .benefit-equipment h3{font-size:26px}.benefit-explanation p{font-size:12px}}
@media(max-width:800px){
 .membership-opening{display:flex;flex-direction:column;overflow:clip;align-items:stretch}
 .sport-stage{display:contents;--orbit-base:240px}
 .sport-content{order:1;background:var(--sky);padding:28px var(--gutter) 22px;z-index:0}
 .sport-content h1{font-size:clamp(44px,9.5vw,68px);max-width:650px;padding:0;height:auto}
 .membership-landscape{position:sticky;order:2;top:var(--nav);height:130px;inset-inline:0;flex:0 0 130px;z-index:5;overflow:hidden;background:var(--porcelain)}
 .membership-landscape .landscape-small{position:absolute;bottom:0;width:100%;height:280px}
 .membership-reading{order:3;padding:24px var(--gutter) 30px;z-index:1}
 .membership-flexibility{margin-top:25px}
 .membership-actions{flex-direction:row;flex-wrap:wrap;align-items:center}
 .membership-inclusions{scroll-margin-top:calc(var(--nav) + 150px)}
 .membership-inclusions.benefit-highlight{margin-top:32px;padding-top:28px}
}
@media(max-width:600px){.sport-content h1{font-size:clamp(39px,10.8vw,59px)}.membership-actions{flex-direction:column;align-items:flex-start}.benefit-feature{grid-template-columns:.95fr 1.1fr;gap:16px;padding-block:24px}.benefit-number{font-size:51px}.benefit-access h3>span{font-size:18px}.benefit-rate .benefit-number{font-size:42px}.benefit-rate .benefit-number small{font-size:22px}.benefit-rate .benefit-number small:last-child{font-size:18px}.membership-page .benefit-equipment h3{font-size:26px}.benefit-explanation p{font-size:12px}.benefit-brands img{height:18px}.membership-page .benefit-lessons h3{font-size:15px}.benefit-highlight h2{font-size:22px}}
@media(max-width:360px){.sport-content h1{font-size:10.8vw}.benefit-rate .benefit-number{font-size:35px}.benefit-rate .benefit-number small{font-size:19px}.benefit-rate .benefit-number small:last-child{font-size:16px}.membership-page .benefit-equipment h3{font-size:23px}.benefit-explanation p{font-size:11px}}
@media(min-width:801px) and (max-height:650px){.sport-stage{min-height:0}.sport-content{padding-top:24px}.sport-content h1{font-size:clamp(44px,4.4vw,62px)}}

/* V12: one retained mobile headline/artwork, independent celestial layer, concise benefits. */
.sport-stage{background:var(--sky)}
.daybreak-orbit{position:absolute;right:7%;top:38%;width:42px;height:42px;z-index:1;pointer-events:none}
.daybreak-orbit svg{position:absolute;inset:0;width:100%;height:100%}
.daybreak-orbit .daybreak-moon{transform:translateY(var(--moon-y))}
.daybreak-orbit .daybreak-sun{transform:translateY(var(--sun-y))}
.membership-landscape .landscape-small{position:absolute;bottom:0;top:auto;height:min(100%,560px)}
.membership-landscape{z-index:2}
.sport-content{z-index:3;pointer-events:none}
.benefit-feature{padding-block:20px}
.benefit-explanation p{font-size:14px}
.benefit-brands{margin-top:0}
.benefit-lessons{gap:15px;padding-top:20px}
.membership-inclusions.benefit-highlight{margin-top:32px;padding-bottom:24px}
@media(max-width:800px){
 .sport-stage{display:block;position:sticky;top:var(--nav);height:280px;min-height:0;max-height:none;flex:0 0 280px;order:1;z-index:5;overflow:hidden;--orbit-base:0px}
 .sport-content{position:relative;background:transparent;padding:20px var(--gutter) 0}
 .sport-content h1{font-size:clamp(32px,8.8vw,43px);line-height:1.01;max-width:560px}
 .membership-landscape{position:absolute;inset:0;height:100%;overflow:hidden;background:transparent}
 .membership-landscape .landscape-small{height:360px;bottom:0;top:auto}
 .daybreak-orbit{top:106px;right:7%;width:30px;height:30px}
 .membership-reading{order:2;padding-top:20px}
 .membership-inclusions{scroll-margin-top:calc(var(--nav) + 300px)}
 .membership-inclusions.benefit-highlight{margin-top:26px;padding-top:23px}
 .membership-flexibility{margin-top:20px}
 .membership-actions{gap:12px;margin-top:20px}
 .benefit-feature{padding-block:18px}
 .benefit-highlight h2{margin-bottom:22px}
 .benefit-explanation p{font-size:13px}
}
@media(max-width:360px){.sport-stage{height:258px;flex-basis:258px}.membership-landscape .landscape-small{height:320px}.daybreak-orbit{top:95px;width:27px;height:27px}.sport-content h1{font-size:30px}.membership-inclusions{scroll-margin-top:calc(var(--nav) + 278px)}}
@media(max-width:800px) and (max-height:600px){.sport-stage{height:200px;flex-basis:200px}.sport-content{padding-top:12px}.sport-content h1{font-size:28px}.membership-landscape .landscape-small{height:260px}.daybreak-orbit{top:76px;width:23px;height:23px}.membership-inclusions{scroll-margin-top:calc(var(--nav) + 220px)}}

/* Keep the flag's own proportions at every aspect ratio. */
.membership-landscape .course-flag{position:absolute;left:calc(67.6667% - 5px);bottom:calc(min(100%,560px) * .129545 - 7px);width:clamp(75px,7.3vw,110px);height:auto;overflow:visible}
@media(max-width:800px){.membership-landscape .course-flag{width:65px;bottom:40px;left:calc(67.6667% - 3.6px)}}
@media(max-width:360px){.membership-landscape .course-flag{width:56px;bottom:35px;left:calc(67.6667% - 3.1px)}}
@media(max-width:800px) and (max-height:600px){.membership-landscape .course-flag{width:49px;bottom:29px}}

/* V13: paired prices, compact benefits, then an invitation to join. */
.daybreak-orbit{top:61px}
.membership-reading{padding-top:55px}
.membership-value-intro h2{font-size:clamp(37px,3.2vw,49px);line-height:1.04}
.membership-value-intro>p{font-size:19px;line-height:1.4;color:var(--mp-muted);margin-top:8px}
.membership-price-pair{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;margin-top:32px}
.membership-price-item{min-width:0}
.membership-price-item+.membership-price-item{border-left:1px solid var(--mp-line);padding-left:26px}
.price-label{font-size:14px;color:var(--mp-muted);margin-bottom:10px}
.price-figure{display:flex;align-items:baseline;gap:7px;line-height:1;color:var(--pine);white-space:nowrap}
.price-figure>strong{font-size:clamp(44px,4.3vw,62px);font-weight:600;letter-spacing:-.045em}
.price-figure>span{font-size:18px}
.price-period{font-size:17px;color:var(--pine);margin-top:9px}
.membership-price-note{font-size:12px;line-height:1.7;color:var(--mp-muted);margin-top:22px}
.membership-quick-benefits{border-top:1px solid var(--mp-line);padding-top:25px;margin-top:27px;scroll-margin-top:calc(var(--nav) + 22px)}
.membership-quick-benefits>h2{font:500 19px/1.3 var(--sc-font-text);text-transform:none;letter-spacing:-.025em;color:var(--ink);margin:0 0 23px}
.membership-benefit-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:25px 24px}
.membership-benefit-item{display:flex;align-items:flex-start;gap:11px;min-width:0}
.membership-benefit-item>svg{width:28px;height:28px;flex:0 0 28px;color:var(--pine)}
.membership-benefit-item>div{min-width:0;padding-top:3px}
.membership-page .membership-benefit-item h3{font:500 16px/1.35 var(--sc-font-text);color:var(--pine);letter-spacing:-.02em;text-transform:none}
.membership-benefit-item p{font-size:12px;color:var(--mp-muted);line-height:1.5;margin-top:5px}
.membership-benefit-item .benefit-brands{margin-top:13px;gap:10px 14px;max-width:220px}
.membership-benefit-item .benefit-brands img{height:16px}
.membership-benefit-item .benefit-brands img.benefit-trs{width:34px;height:18px}
.membership-reading>.membership-actions{margin-top:30px;gap:15px}
.membership-reading>.membership-next{margin-top:27px;padding-top:22px}
@media(min-width:801px) and (max-width:1150px){
 .membership-value-intro h2{font-size:36px}.membership-value-intro>p{font-size:17px}
 .membership-price-pair{gap:16px}.membership-price-item+.membership-price-item{padding-left:18px}
 .price-figure{gap:4px}.price-figure>strong{font-size:42px}.price-figure>span{font-size:15px}
 .membership-benefit-grid{gap:23px 18px}.membership-benefit-item{gap:8px}
 .membership-benefit-item>svg{width:23px;height:23px;flex-basis:23px}
 .membership-page .membership-benefit-item h3{font-size:15px}
}
@media(max-width:800px){
 .daybreak-orbit{top:24px;width:27px;height:27px;right:6%}
 .sport-content h1{padding-right:39px}
 .membership-reading{padding-top:25px}
 .membership-value-intro h2{font-size:38px}.membership-value-intro>p{font-size:18px}
 .membership-price-pair{margin-top:25px;gap:20px;grid-template-columns:1.15fr 1fr}
 .membership-price-item+.membership-price-item{padding-left:22px}
 .price-label{font-size:13px}.price-figure>strong{font-size:49px}.price-figure>span{font-size:16px}
 .price-period{font-size:16px;margin-top:8px}.membership-price-note{margin-top:18px}
 .membership-quick-benefits{margin-top:24px;padding-top:23px;scroll-margin-top:calc(var(--nav) + 298px)}
 .membership-quick-benefits>h2{font-size:18px;margin-bottom:21px}
 .membership-benefit-grid{grid-template-columns:1fr;gap:19px}
 .membership-page .membership-benefit-item h3{font-size:16px}
 .membership-benefit-item .benefit-brands{display:flex;gap:15px;max-width:none;flex-wrap:wrap;align-items:center}
 .membership-benefit-item .benefit-brands img{width:auto;height:13px;max-width:76px}
 .membership-benefit-item .benefit-brands img.benefit-trs{width:29px;height:17px}
 .membership-reading>.membership-actions{margin-top:27px}
}
@media(max-width:360px){
 .daybreak-orbit{top:23px;width:24px;height:24px}.sport-content h1{padding-right:32px;font-size:29px}
 .membership-value-intro h2{font-size:34px}.membership-value-intro>p{font-size:17px}
 .membership-price-pair{gap:12px}.membership-price-item+.membership-price-item{padding-left:15px}
 .price-figure{gap:4px}.price-figure>strong{font-size:41px}.price-figure>span{font-size:14px}
 .price-label{font-size:12px}.price-period{font-size:15px}
 .membership-benefit-item .benefit-brands{gap:11px}.membership-benefit-item .benefit-brands img{height:12px;max-width:63px}
 .membership-quick-benefits{scroll-margin-top:calc(var(--nav) + 276px)}
}
@media(max-width:800px) and (max-height:600px){.daybreak-orbit{top:16px}.membership-quick-benefits{scroll-margin-top:calc(var(--nav) + 220px)}}
/* Without JS the expanded fallback navigation has variable height. Keep reading in normal flow. */
html:not(.js) .membership-page .sport-stage{position:relative;top:0}

/* V14: a single offer panel with progressively disclosed benefit detail. */
.membership-reading{padding-top:40px;padding-left:28px}
.membership-package{background:#fff;border:1px solid #2158341c;border-radius:26px;padding:clamp(22px,2.2vw,32px)}
.membership-package .membership-price-pair{gap:18px}
.membership-package .membership-price-item+.membership-price-item{padding-left:20px}
.membership-package .price-figure>strong{font-size:clamp(40px,3.8vw,55px)}
.membership-package .price-figure>span{font-size:16px}
.membership-rate-link{display:inline-flex;align-items:center;gap:12px;font-size:12px;line-height:1.5;color:var(--pine);text-decoration:underline;text-underline-offset:4px;margin-top:9px;padding-block:3px}
.membership-package .membership-quick-benefits{margin-top:25px;padding-top:24px}
.membership-package .membership-quick-benefits>h2{font-size:18px;margin-bottom:10px}
.membership-package .membership-benefit-grid{display:block}
.membership-benefit-detail{border-bottom:1px solid var(--mp-line)}
.membership-benefit-detail summary{display:flex;align-items:center;gap:12px;min-height:61px;padding:16px 0;list-style:none;cursor:pointer;color:var(--pine)}
.membership-benefit-detail summary::-webkit-details-marker{display:none}
.membership-benefit-detail summary>svg{flex:0 0 25px;width:25px;height:25px}
.membership-benefit-detail .benefit-title{font-size:16px;line-height:1.35;letter-spacing:-.02em;font-weight:500}
.benefit-toggle{margin-left:auto;font-size:24px;font-weight:400;line-height:1;transition:transform .2s;flex:0 0 17px;text-align:center}
.membership-benefit-detail[open] .benefit-toggle{transform:rotate(45deg)}
.membership-benefit-detail summary:hover .benefit-title{text-decoration:underline;text-underline-offset:4px}
.membership-benefit-detail summary:focus-visible{outline:2px solid var(--pine);outline-offset:4px;border-radius:3px}
.benefit-description{padding:0 22px 20px 37px}
.benefit-description>p{font-size:14px;line-height:1.65;color:var(--mp-muted)}
.benefit-description .benefit-brands{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;max-width:none;margin-top:17px}
.benefit-description .benefit-brands img{width:auto;height:16px;max-width:100px}
.benefit-description .benefit-brands img.benefit-trs{width:33px;height:21px}
.membership-package .membership-actions{margin-top:27px;gap:13px}
.membership-reading>.membership-next{margin-top:20px;padding:0 8px;border:0}
.membership-next>p{font-size:12px}
@media(min-width:801px) and (max-width:1150px){
 .membership-reading{padding-left:20px;padding-right:24px}
 .membership-package{padding:22px}
 .membership-package .membership-price-pair{gap:12px}
 .membership-package .membership-price-item+.membership-price-item{padding-left:15px}
 .membership-package .price-figure>strong{font-size:38px}
 .membership-package .price-figure>span{font-size:14px}
 .membership-package .price-label{font-size:12px}
 .membership-benefit-detail .benefit-title{font-size:15px}
 .membership-package .membership-actions .button{font-size:12px;gap:16px;padding-inline:17px}
}
@media(max-width:800px){
 .membership-reading{padding:18px 16px 30px}
 .membership-package{padding:24px 21px;border-radius:23px}
 .membership-package .membership-value-intro h2{font-size:36px}
 .membership-package .price-figure>strong{font-size:43px}
 .membership-package .price-figure>span{font-size:15px}
 .membership-package .membership-price-pair{gap:14px}
 .membership-package .membership-price-item+.membership-price-item{padding-left:17px}
 .membership-benefit-detail .benefit-title{font-size:15px}
 .benefit-description>p{font-size:13px}
 .membership-benefit-detail summary{gap:10px}
 .benefit-description{padding-left:35px;padding-right:4px}
 .membership-package .membership-actions .button{font-size:12px;gap:18px}
}
@media(max-width:360px){
 .membership-package{padding:21px 17px}
 .membership-package .membership-value-intro h2{font-size:32px}
 .membership-package .membership-value-intro>p{font-size:16px}
 .membership-package .price-figure>strong{font-size:37px}
 .membership-package .price-figure>span{font-size:13px}
 .membership-package .membership-price-pair{gap:10px}
 .membership-package .membership-price-item+.membership-price-item{padding-left:13px}
 .membership-package .membership-actions .button{font-size:11px;padding-inline:14px;gap:12px}
 .membership-package .membership-quick-benefits>h2{font-size:17px}
}

/* V15: facility photography blends into a clear, aligned room-rate comparison. */
.room-rate-list{display:grid;gap:18px}
.room-rate-card{position:relative;isolation:isolate;overflow:hidden;border-radius:22px;background:#fff;min-height:185px;border:1px solid #21583412}
.room-rate-photo{position:absolute;inset:0 auto 0 0;width:44%;overflow:hidden;z-index:-1;mask-image:linear-gradient(90deg,#000 64%,transparent 100%)}
.room-rate-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 57%;transition:transform .8s ease}
.room-open-bay .room-rate-photo img{transform:scale(1.65);transform-origin:75% 61%;object-position:75% 56%}
.room-private-room .room-rate-photo img{object-position:46% 62%}
.room-vip-room .room-rate-photo img{object-position:52% 61%}
.room-rate-info{margin-left:39%;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:22px;align-items:center;min-height:185px;padding:24px 30px 24px 0}
.membership-page .room-rate-name h3{font:700 italic clamp(27px,2.8vw,40px)/1.05 var(--sc-font-display);text-transform:uppercase;color:var(--ink);letter-spacing:-.025em}
.room-rate-name p{display:flex;align-items:center;gap:6px;color:var(--mp-muted);font-size:12px;margin-top:12px}
.room-rate-name svg{width:17px;height:17px;flex:0 0 17px}
.room-price{padding:19px 17px}
.room-price-member{background:#eef3e9;border-radius:13px;color:var(--pine)}
.room-price dt{font-size:12px;color:var(--mp-muted);white-space:nowrap}
.room-price dd{font-size:44px;line-height:1.1;margin-top:10px;font-weight:500;letter-spacing:-.035em;white-space:nowrap;font-variant-numeric:tabular-nums}
.room-price dd span{font-size:19px;letter-spacing:0;margin-right:3px}
.extra-golfer-rate{display:flex;align-items:baseline;gap:36px;padding:25px 5px 0;color:var(--pine)}
.extra-golfer-rate>p:first-child{margin-right:auto;font-size:17px;font-weight:500;color:var(--ink)}
.extra-golfer-rate>p:first-child span{font-size:13px;font-weight:400;color:var(--mp-muted)}
.extra-golfer-rate>p:not(:first-child){display:flex;align-items:baseline;gap:12px}
.extra-golfer-rate>p>span{font-size:13px;color:var(--mp-muted)}
.extra-golfer-rate strong{font-size:23px;font-weight:500}
.mp-rates .rate-condition{font-size:12px;line-height:1.65;margin:18px 0 24px;max-width:850px}
.mp-rates .rate-extras{display:flex;gap:60px;border-top:1px solid var(--mp-line);padding-top:22px;font-size:15px}
.mp-rates .rate-extras strong{font-size:14px;margin-bottom:6px;font-weight:500}
.room-pass-details{border-top:1px solid var(--mp-line);margin-top:27px}
.room-pass-details summary{display:flex;align-items:center;justify-content:space-between;gap:24px;cursor:pointer;list-style:none;font-size:14px;color:var(--pine);padding:20px 0}
.room-pass-details summary::-webkit-details-marker{display:none}
.room-pass-details summary>span{font-size:23px;transition:transform .2s}
.room-pass-details[open] summary>span{transform:rotate(45deg)}
.room-pass-details>div{display:flex;justify-content:space-between;align-items:baseline;gap:25px;font-size:13px;color:var(--mp-muted);padding:0 0 12px}
.room-pass-details>div p{max-width:620px}
.room-pass-details .text-link{font-size:12px;flex-shrink:0}
@media(min-width:701px) and (max-width:1100px){.room-rate-info{margin-left:36%;gap:12px;padding-right:22px;grid-template-columns:1.15fr 1fr 1fr}.room-rate-photo{width:42%}.room-price{padding:17px 12px}.room-price dd{font-size:37px}.room-price dt{font-size:11px}.room-rate-name p{font-size:11px}.room-pass-details>div{display:block}.room-pass-details .text-link{margin-top:12px}}
@media(max-width:700px){
 .room-rate-list{gap:13px}
 .room-rate-card{min-height:185px;border-radius:18px}
 .room-rate-photo{width:47%;mask-image:linear-gradient(90deg,#000 52%,transparent 100%)}
 .room-rate-photo img{object-position:40% 57%}
 .room-open-bay .room-rate-photo img{transform:scale(1.55);transform-origin:72% 58%;object-position:74% 58%}
 .room-vip-room .room-rate-photo img{object-position:43% 60%}
 .room-rate-info{min-height:185px;margin-left:38%;grid-template-columns:1fr 1fr;gap:13px 10px;padding:20px 16px 18px 0;align-content:center}
 .room-rate-name{grid-column:1/-1}
 .membership-page .room-rate-name h3{font-size:28px}
 .room-rate-name p{font-size:11px;margin-top:6px;gap:5px}
 .room-rate-name svg{width:15px;height:15px;flex-basis:15px}
 .room-price{padding:8px 0}
 .room-price-member{background:transparent;border-radius:0}
 .room-price dt{font-size:10px}
 .room-price dd{font-size:31px;margin-top:6px}
 .room-price dd span{font-size:14px;margin-right:2px}
 .extra-golfer-rate{flex-wrap:wrap;gap:10px 28px;padding:21px 0 0}
 .extra-golfer-rate>p:first-child{flex-basis:100%;font-size:15px}
 .extra-golfer-rate strong{font-size:21px}
 .extra-golfer-rate>p:not(:first-child){gap:8px}
 .mp-rates .rate-condition{font-size:11px;margin-top:17px}
 .mp-rates .rate-extras{gap:20px;justify-content:space-between;font-size:13px}
 .mp-rates .rate-extras strong{font-size:13px}
 .room-pass-details{margin-top:23px}.room-pass-details>div{display:block;font-size:13px}.room-pass-details .text-link{font-size:11px;margin-top:12px;gap:12px}
}
@media(max-width:360px){.room-rate-info{margin-left:36%;padding-right:12px;gap:12px 8px}.membership-page .room-rate-name h3{font-size:25px}.room-price dd{font-size:28px}.room-price dt{font-size:9px}.mp-rates .rate-extras{gap:15px;font-size:12px}}
/* Reset definition-list defaults so paired prices fit narrow cards. */
.room-price{margin:0;min-width:0}
.room-price dd{margin:10px 0 0}
@media(max-width:700px){.room-rate-info{grid-template-columns:repeat(2,minmax(0,1fr))}.room-price dd{margin-top:6px}}

/* V16: one audience, one price, stronger inclusion labels. */
.rate-audience{display:flex;background:#e4e9df;border:1px solid var(--mp-line);border-radius:100px;width:max-content;max-width:100%;padding:5px;gap:3px}
.rate-audience[hidden]{display:none}
.rate-audience button{border:0;background:transparent;border-radius:100px;padding:12px 24px;font:500 14px/1.2 var(--sc-font-text);color:var(--pine);cursor:pointer;min-height:44px;white-space:nowrap}
.rate-audience button[aria-pressed=true]{background:var(--pine);color:#fff}
.rate-audience button:focus-visible{outline:2px solid var(--pine);outline-offset:3px}
.rate-audience-note{font-size:12px;line-height:1.5;min-height:18px;margin:12px 0 22px;color:var(--mp-muted)}
.room-rate-photo{width:38%;mask-image:linear-gradient(90deg,#000 64%,transparent 100%)}
.room-rate-info{margin-left:40%;grid-template-columns:1.5fr 1fr;gap:25px}
.room-rate-name p{font-size:15px;line-height:1.4;font-weight:500;color:var(--pine);margin-top:12px}
.room-rate-name svg{width:22px;height:22px;flex-basis:22px}
.room-audience-price{background:transparent;color:var(--pine);padding:12px 0}
.room-audience-price dd{font-size:55px;margin-top:0}
.room-price dd .room-price-currency{font-size:23px;margin-right:5px}
.room-price dd .room-price-unit{font-size:17px;letter-spacing:0;margin-left:7px;font-weight:400}
.room-rate-enquiry{font-size:22px;text-decoration:underline;text-underline-offset:5px}
.rates-enhanced .room-audience-price dt{display:none}
.rates-enhanced [data-extra-audience]>span,.rates-enhanced .extra-audience-label{display:none}
.rates-enhanced .room-audience-price[hidden],.rates-enhanced [data-extra-audience][hidden]{display:none}
.extra-golfer-rate{justify-content:space-between;gap:20px}
.extra-golfer-rate>p:first-child{margin-right:0}
.mp-rates .rate-extras-icons{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding-top:25px}
.rate-extra-item{display:flex;gap:17px;align-items:flex-start}
.rate-extra-item>svg{width:37px;height:37px;flex:0 0 37px;color:var(--pine)}
.membership-page .rate-extra-item h3{font:500 15px/1.3 var(--sc-font-text);margin-bottom:9px}
.mp-rates .rate-extra-item strong{font:500 23px/1.2 var(--sc-font-text);color:var(--pine);display:inline;margin:0}
.rate-extra-item small{font-size:13px;color:var(--mp-muted);margin-left:7px;white-space:nowrap}
.mp-rates .rate-extra-item .extra-unavailable{font-size:17px}
.rate-pass-link{margin-top:16px}
html:not(.js) .room-rate-info{grid-template-columns:1fr 1fr}
html:not(.js) .room-rate-name{grid-column:1/-1}
html:not(.js) .room-audience-price dd{font-size:32px}
html:not(.js) .room-price-unit{font-size:12px}
html:not(.js) .room-rate-list{margin-top:25px}
html:not(.js) .rate-extra-item p{margin-top:10px}
@media(max-width:1100px) and (min-width:701px){.room-rate-info{margin-left:40%;gap:20px;grid-template-columns:1.25fr 1fr}.room-audience-price dd{font-size:46px}.room-price dd .room-price-unit{font-size:15px}.room-rate-name p{font-size:14px}}
@media(max-width:700px){
 .mp-rates .mp-section-head{margin-bottom:20px}
 .rate-audience{width:100%;padding:4px;gap:2px}.rate-audience button{flex:1;padding:11px 7px;font-size:13px}
 .rate-audience-note{font-size:12px;margin:11px 0 19px}
 .room-rate-photo{width:34%;mask-image:linear-gradient(90deg,#000 58%,transparent 100%)}
 .room-rate-info{margin-left:38%;grid-template-columns:minmax(0,1fr);gap:14px;padding:19px 15px 19px 0;min-height:178px}
 .room-rate-card{min-height:178px}.room-rate-name{grid-column:auto}
 .membership-page .room-rate-name h3{font-size:27px}
 .room-rate-name p{font-size:13px;gap:5px;margin-top:9px;align-items:flex-start}
 .room-rate-name svg{width:18px;height:18px;flex-basis:18px}
 .room-audience-price{padding:0}.room-audience-price dd{font-size:43px}
 .room-price dd .room-price-currency{font-size:19px;margin-right:3px}
 .room-price dd .room-price-unit{font-size:14px;margin-left:5px}
 .extra-golfer-rate{flex-wrap:nowrap;padding-top:20px}.extra-golfer-rate>p:first-child{flex-basis:auto;font-size:14px}
 .extra-golfer-rate strong{font-size:25px}
 .mp-rates .rate-extras-icons{gap:18px;padding-top:22px}
 .rate-extra-item{gap:9px}.rate-extra-item>svg{width:28px;height:28px;flex-basis:28px}
 .membership-page .rate-extra-item h3{font-size:13px}.mp-rates .rate-extra-item strong{font-size:22px}
 .rate-extra-item small{display:block;margin:5px 0 0;font-size:12px}
 .mp-rates .rate-extra-item .extra-unavailable{font-size:15px}
 html:not(.js) .room-rate-info{grid-template-columns:minmax(0,1fr)}
 html:not(.js) .extra-golfer-rate{flex-wrap:wrap}
}
@media(max-width:360px){.membership-page .room-rate-name h3{font-size:24px}.room-rate-name p{font-size:12px}.room-rate-info{padding-right:12px;gap:12px}.room-audience-price dd{font-size:38px}.room-price dd .room-price-unit{font-size:12px}.room-price dd .room-price-currency{font-size:17px}.rate-audience button{font-size:12px}.rate-extra-item{gap:7px}.rate-extra-item>svg{width:25px;height:25px;flex-basis:25px}}

/* V17: centered audience selection and more room for mobile photography. */
@media(min-width:701px){
 .rate-audience{margin-inline:auto}
 .rate-audience-note{text-align:center}
}
@media(max-width:700px){
 .room-rate-photo{width:44%;mask-image:linear-gradient(90deg,#000 74%,transparent 100%)}
 .room-rate-info{margin-left:46%;padding-right:12px}
}
@media(min-width:701px) and (max-width:1100px){
 .rate-extra-item>svg{width:46px;height:46px;flex-basis:46px}
}
@media(max-width:700px){
 .rate-extra-item>svg{width:40px;height:40px;flex-basis:40px}
}

/* V18: lesson access first, clear programme comparisons, shared member terms. */
.lesson-intro>p{font-size:clamp(20px,2vw,27px);color:var(--pine);margin-top:12px}
.lesson-perks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:38px;padding:26px 0;border-top:1px solid var(--mp-line);border-bottom:1px solid var(--mp-line);scroll-margin-top:120px}
.lesson-perks>div{display:flex;align-items:center;gap:15px}
.lesson-perks svg{width:36px;height:36px;flex:0 0 36px;color:var(--pine)}
.lesson-perks strong{font-size:17px;line-height:1.35;font-weight:500;color:var(--pine)}
.lesson-perks-foot{display:flex;justify-content:space-between;gap:25px;align-items:baseline;margin-top:17px}
.lesson-perks-foot>p{font-size:13px;color:var(--mp-muted);line-height:1.6}
.lesson-perks-foot .text-link{font-size:13px;flex-shrink:0;gap:16px}
.lesson-simple .lesson-offers{margin-top:36px}
.lesson-pricing-basis{font-size:12px;color:var(--mp-muted);margin-bottom:14px}
.lesson-simple .lesson-program{background:#fff;padding:29px 32px;margin-bottom:16px}
.lesson-simple .program-heading{margin-bottom:17px}
.lesson-simple .program-heading h3{font-size:28px}
.lesson-simple .program-heading p{font-size:14px}
.lesson-simple .lesson-table tbody td:nth-child(2){color:var(--ink);font-weight:400}
.lesson-simple .lesson-table tbody td:nth-child(3){color:var(--pine);font-weight:600}
.lesson-simple .lesson-table tbody td{font-size:26px}
.lesson-simple .lesson-table tbody td:last-child{font-size:15px}
.lesson-simple .lesson-table .currency{font-size:16px;margin-right:3px}
.lesson-simple .lesson-program .text-link{font-size:12px}
.lesson-member-note{padding:8px 0 24px}
.lesson-member-note>strong{font-size:17px;color:var(--pine);font-weight:500}
.lesson-member-note>p{font-size:14px;color:var(--mp-muted);line-height:1.6;margin-top:6px}
.lesson-simple .learn-bundle{border:1px solid #21583440;border-radius:18px;padding:23px 28px;gap:24px;background:#edf0e8}
.lesson-simple .learn-bundle p>strong{font-size:19px;color:var(--pine)}
.lesson-simple .learn-bundle>strong{font-size:32px}
.lesson-simple .learn-bundle .currency{font-size:18px}
@media(min-width:701px) and (max-width:1000px){
 .lesson-perks{gap:20px}.lesson-perks>div{gap:10px}.lesson-perks strong{font-size:15px}
 .lesson-perks-foot{align-items:center}.lesson-perks-foot>p{max-width:380px}
}
@media(max-width:700px){
 .lesson-perks{grid-template-columns:1fr;gap:17px;padding:22px 0;margin-top:25px}
 .lesson-perks>div{gap:13px}.lesson-perks svg{width:30px;height:30px;flex-basis:30px}.lesson-perks strong{font-size:16px}
 .lesson-perks-foot{display:block;margin-top:14px}.lesson-perks-foot>p{font-size:12px}.lesson-perks-foot .text-link{margin-top:13px;font-size:12px}
 .lesson-simple .lesson-offers{margin-top:29px}.lesson-pricing-basis{font-size:11px;line-height:1.5}
 .lesson-simple .lesson-program{padding:23px 20px;border-radius:19px}
 .lesson-simple .program-heading h3{font-size:25px}.lesson-simple .program-heading p{font-size:13px;line-height:1.5;margin-top:8px}
 .lesson-simple .lesson-table tbody tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px;padding:18px 0}
 .lesson-simple .lesson-table tbody th{grid-column:1;grid-row:1;padding:0;font-size:17px;align-self:center}
 .lesson-simple .lesson-table tbody td{font-size:26px;grid-row:2;letter-spacing:-.025em}
 .lesson-simple .lesson-table tbody td::before{font-size:12px;margin-bottom:5px}
 .lesson-simple .lesson-table tbody td:last-child{grid-column:2;grid-row:1;font-size:13px;text-align:right;align-self:center;white-space:normal}
 .lesson-simple .lesson-table tbody td:last-child::before{font-size:10px;margin-bottom:2px}
 .lesson-simple .lesson-table .currency{display:inline;font-size:16px;margin:0 2px 0 0;line-height:inherit}
 .lesson-member-note{padding:5px 0 21px}.lesson-member-note>strong{font-size:16px}.lesson-member-note>p{font-size:13px}
 .lesson-simple .learn-bundle{display:flex;align-items:flex-start;padding:21px;gap:17px;flex-wrap:wrap}
 .lesson-simple .learn-bundle p>strong{font-size:18px}.lesson-simple .learn-bundle p>span{font-size:13px;line-height:1.5}
 .lesson-simple .learn-bundle>strong{font-size:29px;margin-top:0}
}

.lesson-intro h2{text-transform:uppercase}

/* The annual-membership bundle is a second Golf Foundations option. */
.lesson-simple .lesson-program .learn-bundle{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:20px;border:0;border-bottom:1px solid var(--mp-line);border-radius:0;background:transparent;padding:22px 0}
.lesson-simple .lesson-program .learn-bundle p>strong{font-size:17px;color:var(--ink)}
.lesson-simple .lesson-program .learn-bundle p>span{font-size:14px;margin-top:5px}
.lesson-simple .lesson-program .learn-bundle>strong{font-size:28px;margin:0}
@media(max-width:700px){
 .lesson-simple .lesson-program .learn-bundle{gap:14px}
 .lesson-simple .lesson-program .learn-bundle p>span{font-size:12px;max-width:150px}
 .lesson-simple .lesson-program .learn-bundle>strong{font-size:25px}
 .lesson-simple .lesson-program .learn-bundle .currency{font-size:15px}
}

/* Keep the Foundations bundle on the same price column as Member. */
.lesson-simple .foundation-prices{table-layout:fixed}
.lesson-simple .lesson-program .learn-bundle{display:grid;grid-template-columns:28% repeat(3,24%);gap:0}
.lesson-simple .lesson-program .learn-bundle>p{grid-column:1 / 3}
.lesson-simple .lesson-program .learn-bundle>strong{grid-column:3;padding-left:14px;font-size:26px;letter-spacing:-.025em}
.lesson-simple .lesson-program .learn-bundle .currency{font-size:16px;margin-right:3px}
@media(max-width:700px){
 .lesson-simple .lesson-program .learn-bundle{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 .lesson-simple .lesson-program .learn-bundle>p{grid-column:1}
 .lesson-simple .lesson-program .learn-bundle>strong{grid-column:2;padding-left:0}
 .lesson-simple .lesson-program .learn-bundle .currency{margin-right:2px}
}

/* V19: connected facility choices and per-person pricing. */
.extra-golfer-rate [data-extra-audience] strong{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.extra-person{display:inline-flex;align-items:center;gap:6px;font-size:17px;font-weight:400}
.extra-person svg{width:23px;height:23px;flex:0 0 23px}
.rates-facility-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:30px;padding-top:26px;border-top:1px solid var(--mp-line)}
.rates-facility-cta p{font-size:14px;line-height:1.5;color:var(--mp-muted)}
.rates-facility-cta strong{display:block;color:var(--pine);font-weight:500;font-size:17px;margin-bottom:5px}
.rates-facility-cta .button{flex-shrink:0;font-size:13px}
.lesson-perks{grid-template-columns:1fr 1fr 1.4fr}
.lesson-perk-copy{display:flex;align-items:center;gap:14px;flex:1;min-width:0}
.lesson-perk-copy strong{flex:1}
.lesson-perk-link{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;min-height:44px;font-size:12px;color:var(--pine);text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.lesson-perk-link:hover{text-decoration-thickness:2px}
@media(max-width:700px){
 .lesson-perks{grid-template-columns:1fr}
 .lesson-perk-copy{gap:10px}
 .rates-facility-cta{align-items:flex-start;flex-direction:column;gap:17px;margin-top:25px;padding-top:23px}
 .rates-facility-cta strong{font-size:16px}.rates-facility-cta p{font-size:13px}
 .rates-facility-cta .button{min-height:48px}
 .extra-golfer-rate{gap:10px}
 .extra-person{font-size:15px;gap:4px}.extra-person svg{width:21px;height:21px;flex-basis:21px}
}

/* V20: a compact practice input and one useful result. */
.calculator-compact{grid-template-columns:1.4fr 1fr;gap:22px 40px;padding:34px 38px;border-radius:24px}
.calculator-compact .calculator-input h2{font-size:clamp(30px,3.1vw,44px);line-height:1.08;max-width:540px;margin-bottom:22px;text-wrap:initial}
.calculator-compact .calc-prompt{font-size:15px;margin-bottom:9px}
.calculator-compact .calc-controls{display:flex;align-items:center;gap:12px;margin:0;max-width:none}
.calculator-compact .calc-controls input{width:82px;min-height:48px;padding:8px 12px;font-size:20px}
.calculator-compact .calc-controls select{width:115px;min-height:48px;padding:8px 12px;font-size:16px}
.calculator-compact .calc-controls>span{font-size:15px;white-space:nowrap}
.calculator-compact .calc-error{max-width:400px}
.calculator-compact .calculator-result{border-left:1px solid var(--mp-line);padding:16px 0 16px 36px}
.calculator-compact .result-number{font-size:clamp(43px,4.8vw,67px);margin:0;line-height:1.15}
.calculator-compact .result-number .currency{font-size:25px;margin-right:3px}
.calculator-compact .result-number>span:last-child{font-size:17px;margin-left:7px}
.calculator-compact .result-live>p:not(.result-number){font-size:14px;line-height:1.5;margin-top:9px}
.calculator-compact .calculator-footnote{padding-top:16px;font-size:13px;line-height:1.5}
.calculator-compact .calculator-footnote>p+p{font-size:11px;color:var(--mp-muted);margin-top:5px}
@media(min-width:701px) and (max-width:1000px){
 .calculator-compact{padding:28px;gap:22px;grid-template-columns:1.2fr 1fr}
 .calculator-compact .calculator-input h2{font-size:32px}
 .calculator-compact .calculator-result{padding-left:22px}
 .calculator-compact .result-number{font-size:45px}
}
@media(max-width:700px){
 .calculator-compact{grid-template-columns:1fr;padding:25px 22px;gap:21px;border-radius:22px}
 .calculator-compact .calculator-input h2{font-size:33px;max-width:340px;margin-bottom:18px}
 .calculator-compact .calc-controls{gap:10px}
 .calculator-compact .calc-controls input{width:70px}
 .calculator-compact .calc-controls select{width:105px}
 .calculator-compact .calculator-result{padding:19px 0 0;border-left:0;border-top:1px solid var(--mp-line)}
 .calculator-compact .result-number{font-size:50px}
 .calculator-compact .result-number .currency{font-size:23px}
 .calculator-compact .result-live>p:not(.result-number){font-size:13px;margin-top:5px}
 .calculator-compact .calculator-footnote{border:0;padding:0;font-size:12px}
}
@media(max-width:360px){
 .calculator-compact{padding:23px 18px}
 .calculator-compact .calculator-input h2{font-size:30px}
 .calculator-compact .calc-controls{gap:8px}
 .calculator-compact .calc-controls input{width:62px;padding-inline:8px}
 .calculator-compact .calc-controls select{width:92px;padding-inline:8px}
 .calculator-compact .calc-controls>span{font-size:13px}
 .calculator-compact .result-number{font-size:44px}
 .calculator-compact .result-number>span:last-child{font-size:15px}
}

/* Free intro leads; membership questions go directly to WhatsApp. */
.whatsapp-link{display:inline-flex;align-items:center;gap:8px;min-height:44px}
.whatsapp-icon{width:23px;height:23px;flex:0 0 23px}
.membership-package .membership-actions .whatsapp-link{gap:8px;font-size:14px;padding-bottom:0;border-bottom:0}
.membership-package .membership-actions .whatsapp-link:hover{text-decoration:underline;text-underline-offset:5px}
.invitation-actions .already .whatsapp-link{border-bottom:0;padding-bottom:0;text-decoration:underline;text-underline-offset:5px}

/* V22: a single accessible WhatsApp link covers each room card. */
.room-price-stack{min-width:0}
.room-book-link{display:inline-flex;align-items:center;gap:7px;color:var(--pine);font-size:12px;font-weight:500;line-height:1.4;padding-block:5px}
.room-book-link .whatsapp-icon{width:19px;height:19px;flex-basis:19px}
.room-book-link::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.room-rate-card:has(.room-book-link:hover){border-color:#21583460}
.room-book-link:hover>span{text-decoration:underline;text-underline-offset:4px}
.room-book-link:focus-visible{outline:0}
.room-rate-card:has(.room-book-link:focus-visible){outline:2px solid var(--pine);outline-offset:3px}
html:not(.js) .room-price-stack{grid-column:1/-1}
@media(max-width:700px){
 .room-price-stack .room-book-link{margin-top:5px}
}

/* Quiet booking caption at the card edge; the entire card remains the link. */
.room-book-link{position:absolute;inset:0;z-index:1;display:flex;align-items:flex-end;justify-content:flex-end;padding:14px 20px;color:#66716a;font-size:11px;font-weight:400;line-height:1.3}
.room-book-link::after{content:none}
.room-book-label{display:inline-flex;align-items:center;gap:5px}
.room-book-link .whatsapp-icon{width:16px;height:16px;flex-basis:16px}
@media(max-width:700px){
 .room-price-stack .room-book-link{margin-top:0;padding:12px 14px}
 .room-rate-info{padding-bottom:38px}
}

@media(max-width:600px){
 .benefit-description .benefit-brands{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:40px;gap:10px 12px;align-items:center;justify-items:center;width:100%}
 .benefit-description .benefit-brands>img,.benefit-description .benefit-brands>.gbox-brand{grid-column:span 2;min-width:0}
 .benefit-description .benefit-brands>img:nth-child(4){grid-column:2/span 2}.benefit-description .benefit-brands>.gbox-brand{grid-column:4/span 2}
 .benefit-description .benefit-brands>img{width:100%;max-width:100%;height:20px;object-fit:contain;object-position:center}.benefit-description .benefit-brands>img.benefit-trs{width:33px;height:24px}.benefit-description .benefit-brands .gbox-brand img{width:36px;height:36px}
}

/* Membership SEO refinement: heading semantics retain the daybreak composition. */
.membership-breadcrumb {font:400 11px/1.5 var(--sc-font-text);color:var(--hero-ink);margin-bottom:16px;max-width:calc(100% - 36px)}
.membership-breadcrumb ol {display:flex;flex-wrap:wrap;gap:5px 10px;list-style:none;margin:0;padding:0}
.membership-breadcrumb li+li::before {content:"/";margin-right:10px;opacity:.6}
.membership-breadcrumb a {text-decoration:underline;text-underline-offset:3px}
.sport-content h1 .membership-heading-label {display:block;white-space:normal;font:600 12px/1.45 var(--sc-font-text);letter-spacing:.04em;text-transform:uppercase;max-width:360px;margin-bottom:14px;color:var(--hero-ink);text-wrap:pretty}
.sport-content h1 .membership-heading-title {display:block;white-space:normal;color:var(--hero-ink)}
.visitor-booking-note {font-size:14px;line-height:1.6;color:var(--mp-muted);max-width:760px;margin:0 0 24px}
.lesson-format-note {font-size:14px;line-height:1.6;max-width:700px;color:var(--mp-muted);margin-bottom:20px}
.calculator-input .calculator-question {font-size:16px;margin:0 0 20px}
.calculator-input h2 {font-size:clamp(32px,3.3vw,48px)}
@media(max-width:800px){
 .membership-breadcrumb {font-size:10px;margin-bottom:10px}
 .sport-content h1 .membership-heading-label {font-size:10px;line-height:1.4;max-width:270px;margin-bottom:10px;letter-spacing:.02em}
 .membership-page .sport-content {padding-top:18px}
 .membership-page .mp-faq h2 {font-size:clamp(32px,9vw,43px)}
 .visitor-booking-note,.lesson-format-note {font-size:13px}
 .membership-price-item .price-label {font-size:12px}
}
@media(max-width:360px){.membership-breadcrumb{font-size:9px}.sport-content h1 .membership-heading-label{font-size:9px}.membership-price-item .price-label{font-size:11px}}
@media(max-width:800px){.membership-price-item .price-label{min-height:3em;line-height:1.5}}

/* Programme names share the brand display face in both languages. */
.membership-page main .program-heading h3[lang="en"]{font-family:'Barlow Semi Condensed',sans-serif;font-size:24px;font-weight:700;font-style:italic;text-transform:uppercase;line-height:1.1;letter-spacing:-.015em}
@media(max-width:700px){.membership-page main .program-heading h3[lang="en"]{font-size:22px}}

/* Shared navigation: readable type and a flat, grouped mobile menu. */
.desktop-nav{gap:clamp(16px,1.5vw,24px)}
.desktop-nav>a,.desktop-nav .lessons-menu>summary{font:600 13px/1.35 var(--sc-font-text);letter-spacing:0}
.desktop-nav>a,.desktop-nav .lessons-menu>summary{min-height:44px;display:flex;align-items:center}
.header .member-link{font:400 12px/1.4 var(--sc-font-text)}
.header .button-small{font-family:var(--sc-font-text);font-size:13px}
.desktop-nav a[aria-current=page]{color:var(--pine);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.lessons-menu{position:relative}
.lessons-menu>summary{display:flex;align-items:center;gap:7px;list-style:none;cursor:pointer;white-space:nowrap}
.lessons-menu>summary::-webkit-details-marker{display:none}
.nav-chevron{display:block;width:14px;height:14px;flex:none;transition:transform .2s}
.lessons-menu[open] .nav-chevron{transform:rotate(180deg)}
.lessons-menu>summary:hover,.lessons-menu:has(a[aria-current=page])>summary{color:var(--pine)}
.lessons-dropdown{position:absolute;top:calc(100% + 8px);left:-18px;width:310px;background:#fff;border:1px solid #d8dfd4;border-radius:15px;box-shadow:0 12px 34px #132f1b1f;padding:8px;z-index:210}
.lessons-dropdown a{display:flex;flex-direction:column;gap:5px;padding:14px;border-radius:8px;white-space:normal;line-height:1.4;font-family:var(--sc-font-text);text-transform:none;letter-spacing:normal}
.lessons-dropdown a:hover,.lessons-dropdown a[aria-current=page]{background:#f0f0ed;color:#215834;text-decoration:none}
.lessons-dropdown strong{font-size:15px;font-weight:600}
.lessons-dropdown a>span{font-size:13px;font-weight:400;color:#4e5c51}
.lessons-menu summary:focus-visible,.mobile-nav a:focus-visible{outline:2px solid #759480;outline-offset:4px;border-radius:4px}
.mobile-nav{max-height:calc(100dvh - var(--nav));overflow:auto;overscroll-behavior:contain;padding:22px var(--gutter) max(26px,env(safe-area-inset-bottom));border:0;box-shadow:0 18px 28px #12321b18;font-family:var(--sc-font-text)}
.mobile-nav a{border:0;min-height:44px;padding:9px 0;font-size:18px;font-weight:600;line-height:1.35;letter-spacing:-.015em}
.mobile-nav a[aria-current=page]{color:var(--pine)}
.mobile-nav a:hover{color:var(--pine)}
.mobile-lesson-group{margin:22px 0}
.mobile-lesson-group>p{margin:0 0 5px;font-size:13px;line-height:1.5;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#59685c}
.mobile-lesson-group>a{display:flex;flex-direction:column;gap:4px;padding-block:10px}
.mobile-lesson-group strong{font-size:inherit;font-weight:inherit}
.mobile-lesson-group a>span{font-size:13px;font-weight:400;letter-spacing:0;line-height:1.45;color:#4e5c51}
.mobile-nav-account{margin-top:22px}
.mobile-nav-account a{font-size:15px;font-weight:400;letter-spacing:0}
#performance-coaching-prices{scroll-margin-top:120px}
@media(min-width:1201px) and (max-width:1350px){.header{gap:18px}.desktop-nav{gap:16px}.header-actions{gap:14px}}
@media(max-width:600px){.header .button-small{font-size:12px}.mobile-nav{padding-top:18px}}
@media(prefers-reduced-motion:reduce){.nav-chevron{transition:none}}

/* Lessons overview and independent native disclosure keep both destinations accessible. */
.lessons-nav-group{display:flex;align-items:center;gap:0}
.desktop-nav .lessons-overview{font:600 13px/1.35 var(--sc-font-text);min-height:44px;display:flex;align-items:center}
.lessons-nav-group.is-current>.lessons-overview{color:var(--pine)}
.desktop-nav .lessons-menu>summary{width:32px;justify-content:center;gap:0}
.lessons-nav-group .lessons-dropdown{left:-88px}
.mobile-lesson-group .lesson-overview-link>span{display:none}

/* Shared footer: the same deep green as the homepage practice section. */
.site-footer{background:#0b241b;color:#f0f0ed;font-family:var(--sc-font-text);font-size:14px;line-height:1.6}
.site-footer-inner{padding-block:56px 25px}
.site-footer-grid{display:grid;grid-template-columns:1.05fr 1fr .9fr 1.4fr;gap:42px}
.site-footer h2{font-family:var(--sc-font-text);font-size:12px;font-weight:600;font-style:normal;line-height:1.4;letter-spacing:.07em;text-transform:uppercase;margin:7px 0 19px;color:#fff}
.site-footer a{color:#d5e0d6;text-decoration:none;transition:color .15s}
.site-footer a:hover{color:#fff;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.site-footer a:focus-visible{outline:2px solid #d7e8ce;outline-offset:5px;border-radius:2px}
.site-footer-logo{display:block;width:130px;margin-bottom:19px}
.site-footer-logo img{display:block;width:100%;height:auto;filter:brightness(0) invert(1)}
.site-footer-brand>p{font-size:13px;line-height:1.65;color:#c2d0c5;margin:0}
.site-footer-socials{display:flex;gap:16px;flex-wrap:wrap;margin-top:19px}
.site-footer-socials a{display:inline-flex;align-items:center;gap:7px;min-height:36px;font-size:12px}
.site-footer-socials svg{height:17px;width:17px;flex-shrink:0}
.site-footer-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.site-footer-nav li{margin:0;padding:0}
.site-footer-nav a{display:inline-flex;align-items:center;gap:5px;min-height:30px;line-height:1.5}
.site-footer-visit address{font-size:13px;font-style:normal;line-height:1.7;color:#d5e0d6}
.site-footer-directions{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:9px;font-size:12px}
.site-footer-directions a{min-height:32px;display:inline-flex;align-items:center;gap:10px}
.site-footer-whatsapp{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-top:13px;font-size:12px}
.site-footer-whatsapp svg{width:23px;height:23px;flex-shrink:0}
.site-footer-whatsapp strong{display:block;font-size:14px;line-height:1.6;font-weight:500;color:#fff}
.site-footer-access{font-size:12px;line-height:1.7;color:#bdcdc0;margin:14px 0 0;max-width:300px}
.site-footer-access span{display:inline-block;margin-top:5px}
.site-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #ffffff24;margin-top:38px;padding-top:18px;font-size:12px;color:#b9c9bd}
.site-footer-bottom p{margin:0}.site-footer-bottom a{min-height:32px;display:inline-flex;align-items:center;gap:8px}
.site-footer-bottom{flex-wrap:wrap}.site-footer-legal{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.site-footer-trademark{display:block;margin-top:8px;font-size:10px;line-height:1.6;color:#aebfb3}
@media(max-width:1100px){.site-footer-grid{gap:28px;grid-template-columns:1fr 1fr 1fr 1.35fr}.site-footer-socials{display:grid;gap:2px}}
@media(max-width:900px){.site-footer-grid{grid-template-columns:1fr 1fr;gap:35px 45px}.site-footer-brand{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;column-gap:28px;align-items:center}.site-footer-logo{grid-row:1/3;margin-bottom:0}.site-footer-socials{display:flex;margin-top:7px;gap:16px}.site-footer-visit{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:45px;align-items:start}.site-footer-visit h2{grid-column:1/-1}.site-footer-visit address{grid-column:1;grid-row:2/4}.site-footer-directions{grid-column:1;grid-row:4;margin-top:8px}.site-footer-whatsapp{grid-column:2;grid-row:2;margin-top:0}.site-footer-access{grid-column:2;grid-row:3/5;margin-top:10px}}
@media(max-width:600px){.site-footer-inner{padding:36px 24px 22px}.site-footer-grid{gap:28px 20px}.site-footer-brand{display:block}.site-footer-logo{width:112px;margin-bottom:14px}.site-footer-socials{margin-top:10px}.site-footer h2{margin:0 0 12px;font-size:11px}.site-footer-nav a{font-size:13px;min-height:36px}.site-footer-nav ul{gap:3px}.site-footer-visit{display:block}.site-footer-whatsapp{margin-top:12px}.site-footer-access{margin-top:12px;max-width:340px}.site-footer-bottom{margin-top:28px;padding-top:14px;font-size:11px}.site-footer-trademark{font-size:9px;max-width:310px}}
@media(prefers-reduced-motion:reduce){.site-footer a{transition:none}}

/* One outer container for marketing pages and site chrome. Editorial reading
   widths remain in content.css; backgrounds and visual stages can span the viewport. */
:root{--site-max:1440px;--site-gutter:clamp(24px,4.5vw,64px);--site-edge:max(var(--site-gutter),calc((100vw - var(--site-max))/2 + var(--site-gutter)))}
body:not(.content-page){--gutter:var(--site-gutter)}
.wrap{width:min(100%,var(--site-max))}
body:not(.content-page) .wrap{padding-inline:var(--site-gutter)}
.site-footer-inner.wrap{max-width:var(--site-max);padding-inline:var(--site-gutter)}
.header{padding-inline:var(--site-edge)}
.mobile-nav{padding-inline:var(--site-gutter)}
/* The home hero has a full-width photo and a separate content layer. */
.hero-copy{width:min(100%,var(--site-max));margin-inline:auto;padding-inline:var(--site-gutter)}
.purpose-intro h2,.beat-copy,.play-copy{left:var(--site-edge)}
.purpose-intro h2,.purpose-nav{right:var(--site-edge)}
.purpose-nav{left:var(--site-edge)}
.example-note{left:var(--site-edge)}
/* Shot labels share the heading’s desktop coordinate system. */
@media(min-width:1001px){
 .ball-world{width:min(82vw,1180.8px);right:calc(max(0px,(100% - var(--site-max))/2) - min(8vw,115.2px))}
 .shot-readouts{inset-inline:max(0px,calc((100% - var(--site-max))/2))}
 .shot-reading:nth-child(1){left:45%;top:8%}
}
/* Solid-colour lesson sections keep their backgrounds edge to edge. */
body:not(.content-page) .site-full-bleed.wrap{width:100%;max-width:none;padding-inline:var(--site-edge)}
/* Keep the membership illustration unrestricted while aligning its text and offer. */
@media(min-width:801px){
 .membership-opening{grid-template-columns:calc(50% + min(4vw,57.6px)) minmax(0,1fr)}
 .membership-page .sport-content.wrap{padding-left:var(--site-edge)}
 .membership-reading{padding-right:var(--site-edge)}
}
.membership-page .membership-details.wrap{width:100%;max-width:none;padding:0;margin:0}
@media(max-width:1000px){:root{--site-gutter:32px}}
@media(max-width:800px){.membership-reading{padding-inline:var(--site-gutter)}}
@media(max-width:600px){:root{--site-gutter:24px}}

/* Shared visual treatment for descriptive text within the marketing-page H1s. */
.hero #hero-heading .hero-location,
.facility-hero #facility-heading .facility-heading-label,
.sport-content h1 .membership-heading-label,
.foundations-page .foundation-masthead h1 .foundation-heading-label,
.pc-hero h1>.pc-heading-label,
.lessons-hero h1 .lessons-heading-label,
.find-intro h1 .find-hero-kicker{display:block;font:600 12px/1.5 var(--sc-font-text);letter-spacing:.025em;text-transform:none;white-space:normal;text-wrap:pretty;margin-bottom:20px}
@media(max-width:600px){
.hero #hero-heading .hero-location,
.facility-hero #facility-heading .facility-heading-label,
.sport-content h1 .membership-heading-label,
.foundations-page .foundation-masthead h1 .foundation-heading-label,
.pc-hero h1>.pc-heading-label,
.lessons-hero h1 .lessons-heading-label,
.find-intro h1 .find-hero-kicker{font-size:11px;line-height:1.5;letter-spacing:.025em;margin-bottom:18px}
}

/* Shared language switch: local homepages, no automatic redirection. */
.language-switch{font-size:12px;font-weight:500;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:44px;color:var(--pine)}
.language-switch:hover{text-decoration:underline;text-underline-offset:4px}

/* Hong Kong copy uses system CJK fonts; no additional font download. */
:root:lang(zh-HK){--sc-font-text:'PingFang HK','PingFang TC','Microsoft JhengHei',system-ui,sans-serif;--sc-font-display:var(--sc-font-text)}
:lang(zh-HK) h1,:lang(zh-HK) h2,:lang(zh-HK) h3,:lang(zh-HK) .hero-title,:lang(zh-HK) .membership-title{font-style:normal;letter-spacing:.015em;line-height:1.25}
:lang(zh-HK) .hero #hero-heading .hero-title{font-size:clamp(48px,5.5vw,80px);line-height:1.3;font-weight:700;letter-spacing:.01em}
:lang(zh-HK) .hero-description{max-width:520px;line-height:1.85}
:lang(zh-HK) .purpose-intro h2{font-size:clamp(58px,6.2vw,90px);line-height:1.25}
:lang(zh-HK) .beat-copy h3,:lang(zh-HK) .play-copy h3{font-size:clamp(40px,4.6vw,68px);line-height:1.25}
:lang(zh-HK) .beat-copy>p:last-child{max-width:350px;font-size:17px;line-height:1.75}
:lang(zh-HK) .tour h2,:lang(zh-HK) .services h2,:lang(zh-HK) .membership-heading .membership-title,:lang(zh-HK) .visit h2,:lang(zh-HK) .regular h2,:lang(zh-HK) .closing h2{font-size:clamp(38px,4.3vw,64px);line-height:1.3}
:lang(zh-HK) .service-copy h3{font-style:normal;font-size:28px;line-height:1.25}
:lang(zh-HK) .service-copy p{line-height:1.75}
:lang(zh-HK) .pricing-option h3{font-style:normal;font-size:28px}
:lang(zh-HK) .rate-number{font-family:system-ui,sans-serif;font-style:normal;letter-spacing:-.045em}
:lang(zh-HK) .rate-number span{letter-spacing:0}
:lang(zh-HK) .founder-note blockquote{font-family:var(--sc-font-text);font-size:23px;line-height:1.65}
:lang(zh-HK) .routine-copy h3,:lang(zh-HK) .training-copy h3{font-size:26px;line-height:1.5}
:lang(zh-HK) .faq h2{font-size:clamp(32px,3.5vw,50px);line-height:1.4}
:lang(zh-HK) .faq summary{line-height:1.7}
:lang(zh-HK) .faq p,:lang(zh-HK) .site-footer-access{line-height:1.9}
:lang(zh-HK) .desktop-nav{gap:18px}
:lang(zh-HK) .desktop-nav>a,:lang(zh-HK) .lessons-overview{font-size:13px}
:lang(zh-HK) .map-destination{font-size:16px}
@media(max-width:1000px){:lang(zh-HK) .hero #hero-heading .hero-title{font-size:clamp(40px,6vw,64px)}}
@media(max-width:600px){
 :lang(zh-HK) .header{gap:12px;padding-inline:18px}
 :lang(zh-HK) .header-actions{gap:10px}
 :lang(zh-HK) .header .button-small{padding-inline:12px;font-size:11px;gap:8px}
 :lang(zh-HK) .hero #hero-heading .hero-title{font-size:clamp(30px,8vw,46px);line-height:1.45;letter-spacing:.01em}
 :lang(zh-HK) .hero-description{font-size:14px;line-height:1.85;max-width:340px;margin-block:20px 24px}
 :lang(zh-HK) .hero .tour-note{font-size:11px}
 :lang(zh-HK) .purpose-intro h2{font-size:clamp(42px,11vw,64px)}
 :lang(zh-HK) .beat-copy h3,:lang(zh-HK) .play-copy h3{font-size:clamp(30px,8.3vw,44px);line-height:1.35}
 :lang(zh-HK) .beat-copy>p:last-child{font-size:14px;line-height:1.75;max-width:290px;margin-top:14px}
 :lang(zh-HK) .purpose-nav{gap:13px}
 :lang(zh-HK) .purpose-nav button{font-size:11px}
 :lang(zh-HK) .play-copy>p:last-child{font-size:15px}
 :lang(zh-HK) .tour h2,:lang(zh-HK) .services h2,:lang(zh-HK) .membership-heading .membership-title,:lang(zh-HK) .visit h2,:lang(zh-HK) .regular h2,:lang(zh-HK) .closing h2{font-size:clamp(29px,8vw,42px);line-height:1.45}
 :lang(zh-HK) .tour-copy>p:not(.tour-note){line-height:1.85;max-width:260px}
 :lang(zh-HK) .service-copy h3{font-size:25px;line-height:1.3}
 :lang(zh-HK) .service-copy p{font-size:14px;line-height:1.8}
 :lang(zh-HK) .service-copy .text-link{font-size:12px}
 :lang(zh-HK) .pricing-option h3{font-size:24px}
 :lang(zh-HK) .membership-rates .rate-number{font-size:clamp(36px,10vw,56px)}
 :lang(zh-HK) .founder-note blockquote{font-size:18px}
 :lang(zh-HK) .routine-copy h3,:lang(zh-HK) .training-copy h3{font-size:20px;line-height:1.55}
 :lang(zh-HK) .faq h2{font-size:30px}
 :lang(zh-HK) .mobile-nav a{font-size:15px}
}
@media(max-width:360px){:lang(zh-HK) .header .brand{width:70px}:lang(zh-HK) .header-actions{gap:6px}:lang(zh-HK) .purpose-nav{gap:8px}}
/* Preserve authored Chinese phrase breaks in the equipment story. */
:lang(zh-HK) .beat-copy h3 br{display:initial}
:lang(zh-HK) .routine-copy h3{text-wrap:balance;line-break:strict}

/* English programme names retain the English brand face; CJK text stays on system fonts. */
:lang(zh-HK) .service-copy h3.programme-name{font-family:'Barlow Semi Condensed',sans-serif;font-style:italic;font-weight:700;font-size:clamp(28px,2.3vw,35px);line-height:1.02;letter-spacing:-.015em}
@media(min-width:1001px) and (max-width:1200px){:lang(zh-HK) .service-copy h3.programme-name{font-size:28px}}
@media(min-width:601px) and (max-width:1000px){:lang(zh-HK) .service-copy h3.programme-name{font-size:30px}}
@media(max-width:600px){:lang(zh-HK) .service-copy h3.programme-name{font-size:28px;line-height:1.04}}
@media(max-width:380px){:lang(zh-HK) .service-copy h3.programme-name{font-size:26px}}
