/* ============ TOKENS ============ */
  :root{
    --black:#0B0B0B;
    --charcoal:#151515;
    --charcoal-2:#1b1b19;
    --charcoal-3: #0f0f0e;
    --ivory:#F2EFE8;
    --stone:#CFC9BE;
    --grey:#8F8F8B;
    --gold:#C5A46D;
    --gold-dim: rgba(197,164,109,0.55);
    --line: rgba(242,239,232,0.12);
    --line-strong: rgba(242,239,232,0.22);
    --shadow: rgba(0,0,0,0.5);

    --font-serif: 'Cormorant Garamond', 'Times New Roman', Georgia, serif;
    --font-sans: 'Manrope', 'Helvetica Neue', Arial, sans-serif;

    --fs-hero: clamp(3.4rem, 9.2vw, 8.8rem);
    --fs-h1: clamp(2.6rem, 6vw, 5.6rem);
    --fs-h2: clamp(2.1rem, 4.4vw, 3.6rem);
    --fs-h3: clamp(1.5rem, 2.6vw, 2rem);
    --fs-lead: clamp(1.05rem, 1.6vw, 1.25rem);
    --fs-body: 1rem;
    --fs-small: 0.85rem;
    --fs-label: 0.72rem;

    --container: 1400px;
    --pad-inline: clamp(1.5rem, 5.5vw, 6rem);
    --section-pad: clamp(5.5rem, 11vw, 10rem);

    --ease: cubic-bezier(.16,.8,.24,1);
    --dur-fast: .5s;
    --dur-slow: 1.4s;
  }

  @media (prefers-reduced-motion: reduce){
    :root{ --dur-fast: .001s; --dur-slow: .001s; }
  }

  /* ============ RESET ============ */
  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
  body{
    margin:0;
    background:var(--black);
    color:var(--ivory);
    font-family:var(--font-sans);
    font-weight:300;
    font-size:var(--fs-body);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    position:relative;
  }
  img,svg{ max-width:100%; display:block; }
  h1,h2,h3,p{ margin:0; }
  a{ color:inherit; text-decoration:none; }
  ul{ list-style:none; margin:0; padding:0; }
  button{ font-family:inherit; background:none; border:none; color:inherit; cursor:pointer; }
  ::selection{ background:var(--gold-dim); color:var(--black); }

  :focus-visible{
    outline: 1px solid var(--gold);
    outline-offset: 4px;
  }

  .skip-link{
    position:absolute; left:1rem; top:-4rem;
    background:var(--ivory); color:var(--black);
    padding:.75rem 1.25rem; font-size:var(--fs-small);
    letter-spacing:.08em; z-index:999; transition:top .3s var(--ease);
  }
  .skip-link:focus{ top:1rem; }

  /* film grain, fixed overlay */
  .grain{
    position:fixed; inset:0; z-index:500; pointer-events:none;
    opacity:.045; mix-blend-mode:overlay;
    background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="2" stitchTiles="stitch"/><feColorMatrix type="matrix" values="0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1 0"/></filter><rect width="100%" height="100%" filter="url(%23n)"/></svg>');
  }

  /* ============ TYPE UTILITIES ============ */
  .eyebrow{
    font-family:var(--font-sans); font-weight:500; font-size:var(--fs-label);
    letter-spacing:.28em; text-transform:uppercase; color:var(--grey);
    display:flex; align-items:center; gap:.9rem;
  }
  .eyebrow::before{ content:''; width:28px; height:1px; background:var(--gold-dim); display:inline-block; }
  .display{
    font-family:var(--font-serif); font-weight:400; letter-spacing:-.01em;
    line-height:.98; text-wrap:balance;
  }
  .accent{ color:var(--gold); font-style:italic; }
  .lead{ font-size:var(--fs-lead); color:var(--stone); font-weight:300; line-height:1.7; max-width:34ch; }
  .container{ max-width:var(--container); margin-inline:auto; padding-inline:var(--pad-inline); }
  .section{ padding-block:var(--section-pad); position:relative; }
  .divider{ height:1px; background:var(--line); border:0; margin:0; }

  /* ============ REVEAL ============ */
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease); }
  .reveal.in-view{ opacity:1; transform:translateY(0); }
  .reveal-delay-1{ transition-delay:.12s; }
  .reveal-delay-2{ transition-delay:.24s; }
  .reveal-delay-3{ transition-delay:.36s; }
  @media (prefers-reduced-motion: reduce){
    .reveal{ transform:none; transition:opacity .3s ease; }
  }

  /* ============ BUTTONS / LINKS ============ */
  .btn{
    display:inline-flex; align-items:center; gap:.75rem;
    font-family:var(--font-sans); font-weight:500; font-size:var(--fs-label);
    letter-spacing:.22em; text-transform:uppercase;
    padding:1.15rem 2.1rem; border:1px solid var(--line-strong);
    color:var(--ivory); position:relative; overflow:hidden;
    transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform .35s var(--ease);
    white-space:nowrap;
  }
  .btn--primary:hover, .btn--primary:focus-visible{ background:var(--ivory); color:var(--black); border-color:var(--ivory); }
  .btn--ghost{ border-color:transparent; padding-inline:0; }
  .btn--ghost:hover, .btn--ghost:focus-visible{ color:var(--stone); }
  .btn--ghost .btn__arrow{ transition:transform var(--dur-fast) var(--ease); }
  .btn--ghost:hover .btn__arrow{ transform:translateX(6px); }

  .link-u{ position:relative; display:inline-block; }
  .link-u::after{
    content:''; position:absolute; left:0; bottom:-2px; height:1px; width:100%;
    background:var(--gold-dim); transform:scaleX(0); transform-origin:right;
    transition:transform .45s var(--ease);
  }
  .link-u:hover::after, .link-u:focus-visible::after{ transform:scaleX(1); transform-origin:left; }

  /* magnetic wrapper */
  .magnetic{ display:inline-block; }

  /* ============ COURT LINE SVG SPRITE ============ */
  .sprite{ position:absolute; width:0; height:0; overflow:hidden; }

  /* ============ NAV ============ */
  .nav{
    position:fixed; inset:0 0 auto 0; z-index:200;
    display:flex; align-items:center; justify-content:space-between;
    padding:1.6rem clamp(1.5rem,5.5vw,4.5rem);
    transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), backdrop-filter var(--dur-fast) var(--ease), padding var(--dur-fast) var(--ease);
    border-bottom:1px solid transparent;
  }
  .nav.is-scrolled{
    background:rgba(11,11,11,0.72); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border-bottom-color:var(--line); padding-block:1.1rem;
  }
  .nav__logo{ font-family:var(--font-serif); font-size:1.35rem; letter-spacing:.06em; font-weight:500; transition:letter-spacing .5s var(--ease); display:inline-block; }
  .nav__logo:hover{ letter-spacing:.12em; }
  .nav__links{ display:flex; align-items:center; gap:2.4rem; }
  .nav__links a{ font-size:var(--fs-label); letter-spacing:.18em; text-transform:uppercase; color:var(--stone); }
  .nav__links a:hover{ color:var(--ivory); }
  .nav__cta{ display:flex; align-items:center; gap:2.4rem; }
  .nav__menu-btn{ display:none; flex-direction:column; gap:5px; padding:.5rem; z-index:250; }
  .nav__menu-btn span{ width:22px; height:1px; background:var(--ivory); display:block; transition:transform .35s var(--ease), opacity .35s var(--ease); }
  .nav__menu-btn[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
  .nav__menu-btn[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav__menu-btn[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

  .mobile-nav{
    position:fixed; inset:0; z-index:180; background:var(--black);
    display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
    gap:1.6rem; padding:2rem clamp(1.5rem,8vw,4rem);
    transform:translateY(-100%); transition:transform .55s var(--ease);
  }
  .mobile-nav.is-open{ transform:translateY(0); }
  .mobile-nav a{ font-family:var(--font-serif); font-size:2.6rem; font-weight:400; color:var(--ivory); }
  .mobile-nav .btn{ margin-top:1rem; white-space:normal; text-align:center; max-width:100%; }

  /* ============ HERO ============ */
  .hero{
    position:relative; min-height:100svh; display:flex; align-items:flex-end;
    background:var(--black); overflow:hidden;
  }
  .hero__media{ position:absolute; inset:0; overflow:hidden; }
  .hero__media-inner{
    position:absolute; inset:-2%;
    background:
      radial-gradient(ellipse 80% 60% at 50% 30%, rgba(242,239,232,0.05), transparent 60%),
      linear-gradient(180deg, var(--black) 0%, var(--charcoal-3) 45%, var(--black) 100%);
    transform:scale(1.04);
    transition:transform 2.2s var(--ease);
  }
  .hero.is-loaded .hero__media-inner{ transform:scale(1); }
  .hero__court{ position:absolute; top:50%; left:50%; width:min(58vw,620px); transform:translate(-50%,-50%); opacity:.09; }
  .hero__vignette{ position:absolute; inset:0; background:radial-gradient(ellipse 120% 90% at 50% 100%, rgba(0,0,0,.75), transparent 55%); }
  .hero__content{ position:relative; z-index:2; width:100%; padding:0 clamp(1.5rem,5.5vw,4.5rem) clamp(4rem,9vw,6.5rem); }
  .hero__eyebrow{ opacity:0; transform:translateY(14px); transition:opacity 1s var(--ease) .3s, transform 1s var(--ease) .3s; }
  .hero.is-loaded .hero__eyebrow{ opacity:1; transform:translateY(0); }
  .hero__title{
    font-size:var(--fs-hero); margin-top:1.1rem;
    opacity:0; transform:translateY(24px);
    transition:opacity 1.1s var(--ease) .5s, transform 1.1s var(--ease) .5s;
  }
  .hero.is-loaded .hero__title{ opacity:1; transform:translateY(0); }
  .hero__row{
    display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between;
    gap:2.5rem; margin-top:2.4rem; padding-top:2.2rem; border-top:1px solid var(--line);
  }
  .hero__lead{ opacity:0; transform:translateY(16px); transition:opacity 1s var(--ease) .8s, transform 1s var(--ease) .8s; }
  .hero.is-loaded .hero__lead{ opacity:1; transform:translateY(0); }
  .hero__ctas{ display:flex; align-items:center; gap:2.2rem; flex-wrap:wrap; opacity:0; transform:translateY(16px); transition:opacity 1s var(--ease) 1s, transform 1s var(--ease) 1s; }
  .hero.is-loaded .hero__ctas{ opacity:1; transform:translateY(0); }

  .scroll-cue{
    position:absolute; bottom:2.4rem; left:50%; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:.7rem; z-index:2;
    opacity:0; transition:opacity 1s var(--ease) 1.3s;
  }
  .hero.is-loaded .scroll-cue{ opacity:.7; }
  .scroll-cue span{ font-size:.65rem; letter-spacing:.3em; color:var(--stone); text-transform:uppercase; }
  .scroll-cue i{ width:1px; height:36px; background:linear-gradient(var(--stone), transparent); display:block; overflow:hidden; position:relative; }
  .scroll-cue i::after{
    content:''; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--ivory);
    animation:cue 2.6s var(--ease) infinite;
  }
  @keyframes cue{ 0%{ top:-100%; } 60%,100%{ top:100%; } }
  @media (prefers-reduced-motion: reduce){ .scroll-cue i::after{ animation:none; } }

  /* ============ PLATE SYSTEM (signature) ============ */
  .plate{
    position:relative; overflow:hidden; background:var(--charcoal);
    border:1px solid var(--line);
  }
  .plate__field{
    position:absolute; inset:0;
    background:linear-gradient(160deg, var(--charcoal-2) 0%, var(--black) 78%);
  }
  .plate__field::before{
    content:''; position:absolute; inset:0;
    background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="g"><feTurbulence type="fractalNoise" baseFrequency="0.75" numOctaves="2"/><feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.06 0"/></filter><rect width="100%" height="100%" filter="url(%23g)"/></svg>');
    opacity:.5; mix-blend-mode:overlay;
  }
  .plate__art{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; opacity:.85; }
  .plate__art svg{ width:100%; height:100%; }
  .plate__caption{
    position:absolute; left:0; right:0; bottom:0; z-index:2;
    display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
    padding:1.1rem 1.4rem; border-top:1px solid var(--line);
    background:linear-gradient(0deg, rgba(11,11,11,.55), transparent);
  }
  .plate__caption span{ font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--stone); }
  .plate__caption .plate__no{ color:var(--gold-dim); }
  .plate--tall{ aspect-ratio:4/5; }
  .plate--wide{ aspect-ratio:16/8; }
  .plate--square{ aspect-ratio:1/1; }
  .plate--photo{ aspect-ratio:3/2; }
  .plate:hover .plate__art{ transform:scale(1.015); }
  .plate__art{ transition:transform 1.2s var(--ease); }
  .plate__photo{
    position:absolute; inset:0; background-size:cover; background-position:center;
    transition:transform 1.2s var(--ease);
  }
  .plate__photo::after{
    content:''; position:absolute; inset:0;
    background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="pg"><feTurbulence type="fractalNoise" baseFrequency="0.75" numOctaves="2"/><feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.05 0"/></filter><rect width="100%" height="100%" filter="url(%23pg)"/></svg>');
    opacity:.6; mix-blend-mode:overlay;
  }
  .plate:hover .plate__photo{ transform:scale(1.045); }
  @media (prefers-reduced-motion: reduce){ .plate:hover .plate__photo{ transform:none; } }

  /* ============ ABOUT ============ */
  .about__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,6vw,6rem); align-items:center; }
  .about__body{ margin-top:1.6rem; display:flex; flex-direction:column; gap:1.4rem; }
  .about__body p{ color:var(--stone); font-weight:300; max-width:46ch; }
  .about__marks{ margin-top:2.2rem; display:flex; flex-direction:column; gap:.6rem; }
  .about__marks p{ font-family:var(--font-serif); font-size:1.15rem; font-style:italic; color:var(--ivory); }

  /* ============ PHILOSOPHY ============ */
  .philosophy{ text-align:center; }
  .philosophy__title{ font-size:clamp(2.6rem,7vw,6rem); }
  .philosophy__title .row{ display:block; }
  .philosophy__line{
    width:0; height:1px; background:var(--gold-dim); margin:2.4rem auto 0;
    transition:width 1.4s var(--ease);
  }
  .philosophy__line.in-view{ width:120px; }
  .philosophy__sub{ margin-top:1.6rem; color:var(--grey); font-size:var(--fs-small); letter-spacing:.06em; }

  /* ============ PROGRAMS ============ */
  .programs__head{ display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; flex-wrap:wrap; margin-bottom:clamp(2.5rem,5vw,4rem); }
  .programs__grid{ display:grid; grid-template-columns:1.3fr .7fr; gap:clamp(2.5rem,5vw,5rem); align-items:start; }
  .programs__list{ border-top:1px solid var(--line); }
  .program-row{
    display:grid; grid-template-columns:3.5rem 1fr auto; align-items:center; gap:1.6rem;
    padding:1.9rem 0; border-bottom:1px solid var(--line);
    cursor:pointer; transition:padding-left .5s var(--ease);
  }
  .program-row:hover, .program-row:focus-within{ padding-left:.75rem; }
  .program-row__no{ font-family:var(--font-sans); font-variant-numeric:tabular-nums; font-size:var(--fs-small); color:var(--gold-dim); letter-spacing:.05em; }
  .program-row__title{ font-family:var(--font-serif); font-size:clamp(1.5rem,2.6vw,2.1rem); font-weight:400; }
  .program-row__desc{ display:none; }
  .program-row__arrow{ width:34px; height:1px; background:var(--line-strong); position:relative; transition:background .4s var(--ease); }
  .program-row__arrow::after{
    content:''; position:absolute; right:0; top:50%; width:8px; height:8px;
    border-top:1px solid var(--line-strong); border-right:1px solid var(--line-strong);
    transform:translateY(-50%) rotate(45deg); transition:border-color .4s var(--ease);
  }
  .program-row:hover .program-row__arrow, .program-row:focus-within .program-row__arrow{ background:var(--ivory); }
  .program-row:hover .program-row__arrow::after, .program-row:focus-within .program-row__arrow::after{ border-color:var(--ivory); }
  .program-row a.program-row__link{ position:absolute; inset:0; }
  .program-row{ position:relative; }

  .programs__preview{ position:sticky; top:9rem; }
  .programs__preview .plate{ transition:opacity .5s var(--ease), transform .5s var(--ease); }
  .programs__preview p.lead{ max-width:none; margin-top:1.2rem; font-size:var(--fs-small); }

  @media (max-width:900px){
    .programs__grid{ grid-template-columns:1fr; }
    .programs__preview{ display:none; }
    .program-row__title{ font-size:1.5rem; }
  }

  /* ============ FEATURE (private coaching) ============ */
  .feature{ position:relative; min-height:88vh; display:flex; align-items:center; overflow:hidden; }
  .feature__bg{ position:absolute; inset:0; }
  .feature__content{ position:relative; z-index:2; text-align:center; max-width:900px; margin-inline:auto; padding:6rem clamp(1.5rem,5vw,4rem); }
  .feature__title{ font-size:clamp(2.6rem,6.5vw,5.4rem); }
  .feature p.lead{ margin:1.6rem auto 0; text-align:center; max-width:46ch; }
  .feature .btn{ margin-top:2.4rem; }

  .feature__focus{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
    gap:.9rem 1.3rem; margin:2.2rem auto 0; max-width:640px; list-style:none; padding:0;
  }
  .feature__focus li{
    font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--stone);
    position:relative; padding-right:1.3rem;
  }
  .feature__focus li::after{
    content:'·'; position:absolute; right:0; top:50%; transform:translateY(-60%);
    color:var(--gold-dim); font-size:1rem; line-height:1;
  }
  .feature__focus li:last-child{ padding-right:0; }
  .feature__focus li:last-child::after{ content:none; }

  .feature__suitable{
    margin-top:1.7rem; font-family:var(--font-serif); font-style:italic;
    font-size:1.05rem; color:var(--grey);
  }

  .feature__tagline{
    margin-top:1.1rem; font-size:.78rem; letter-spacing:.2em;
    text-transform:uppercase; color:var(--gold-dim);
  }

  /* ============ COACHES ============ */
  .coach-solo{ display:grid; grid-template-columns:minmax(280px,380px) 1fr; gap:clamp(3rem,6vw,6rem); align-items:center; margin-top:clamp(3rem,5vw,4.5rem); }
  .coach{ display:flex; flex-direction:column; gap:1.3rem; }
  .coach__plate{ aspect-ratio:3/4; }
  .coach__name{ font-family:var(--font-serif); font-size:clamp(2rem,3.6vw,2.8rem); margin-top:.4rem; }
  .coach__role{ font-size:var(--fs-label); letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dim); margin-top:.6rem; }
  .coach__quote{ font-family:var(--font-serif); font-style:italic; color:var(--ivory); font-size:clamp(1.2rem,2vw,1.5rem); line-height:1.5; margin-top:1.6rem; max-width:36ch; }
  .coach__spec{ margin-top:1.6rem; padding-top:1.2rem; border-top:1px solid var(--line); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--grey); }
  @media (max-width:760px){ .coach-solo{ grid-template-columns:1fr; max-width:420px; margin-inline:auto; } .coach-solo .coach__plate{ order:-1; } }

  /* ============ EXPERIENCE ============ */
  .exp__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; margin-top:clamp(3rem,5vw,4.5rem); }
  .exp-item{ padding-top:1.6rem; border-top:1px solid var(--line); position:relative; }
  .exp-item__no{ font-size:var(--fs-label); color:var(--gold-dim); letter-spacing:.1em; }
  .exp-item__title{ font-family:var(--font-serif); font-size:1.6rem; margin-top:1rem; }
  .exp-item__desc{ margin-top:.8rem; color:var(--stone); font-size:.92rem; max-width:26ch; }
  @media (max-width:860px){ .exp__grid{ grid-template-columns:1fr 1fr; row-gap:3rem; } }
  @media (max-width:540px){ .exp__grid{ grid-template-columns:1fr; } }

  /* ============ TESTIMONIALS ============ */
  .testi{ text-align:center; }
  .testi__stage{ max-width:820px; margin:clamp(2.5rem,5vw,4rem) auto 0; min-height:220px; position:relative; }
  .testi__stage::before{
    content:'"'; position:absolute; top:-3rem; left:50%; transform:translateX(-50%);
    font-family:var(--font-serif); font-size:9rem; font-style:italic; line-height:1;
    color:rgba(242,239,232,0.05); pointer-events:none; z-index:0;
  }
  .testi__slide{
    position:absolute; inset:0; opacity:0; transform:translateY(10px);
    transition:opacity .6s var(--ease), transform .6s var(--ease); pointer-events:none;
  }
  .testi__slide.is-active{ opacity:1; transform:translateY(0); pointer-events:auto; position:relative; }
  .testi__quote{ font-family:var(--font-serif); font-style:italic; font-size:clamp(1.4rem,3vw,2.1rem); line-height:1.5; color:var(--ivory); }
  .testi__meta{ margin-top:1.6rem; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--grey); }
  .testi__controls{ display:flex; align-items:center; justify-content:center; gap:1.6rem; margin-top:2.6rem; }
  .testi__dot{ width:6px; height:6px; border-radius:50%; background:var(--line-strong); transition:background .4s var(--ease); }
  .testi__dot.is-active{ background:var(--gold); }
  .testi__nav-btn{ width:42px; height:42px; border:1px solid var(--line-strong); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:border-color .35s var(--ease), transform .35s var(--ease); }
  .testi__nav-btn:hover{ border-color:var(--ivory); transform:scale(1.08); }
  .testi__dots{ display:flex; gap:.5rem; }

  /* ============ FINAL CTA ============ */
  .closing{ position:relative; min-height:92vh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
  .closing__court{ position:absolute; top:50%; left:50%; width:min(70vw,760px); transform:translate(-50%,-50%); opacity:.06; }
  .closing__content{ position:relative; z-index:2; padding:0 1.5rem; }
  .closing__title{ font-size:clamp(3rem,9vw,8rem); }
  .closing p.lead{ margin:1.6rem auto 0; text-align:center; }
  .closing .btn{ margin-top:2.6rem; }

  /* ============ FOOTER ============ */
  .footer{ padding-top:clamp(4rem,8vw,6rem); border-top:1px solid var(--line); }
  .footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:3rem; padding-bottom:clamp(3rem,6vw,5rem); }
  .footer__logo{ font-family:var(--font-serif); font-size:2.4rem; }
  .footer__logo-sub{ margin-top:1rem; color:var(--grey); font-size:.9rem; max-width:32ch; }
  .footer__heading{ font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--grey); margin-bottom:1.2rem; }
  .footer__col ul{ display:flex; flex-direction:column; gap:.8rem; }
  .footer__col a{ color:var(--stone); font-size:.92rem; }
  .footer__col a:hover{ color:var(--ivory); }
  .footer__bottom{ display:flex; justify-content:space-between; align-items:center; padding-block:2rem; gap:1rem; flex-wrap:wrap; }
  .footer__bottom p{ font-size:.78rem; color:var(--grey); }
  .footer__legal{ display:flex; gap:1.6rem; }
  .footer__legal a{ font-size:.78rem; color:var(--grey); }
  .footer__legal a:hover{ color:var(--stone); }
  .footer__mark{ width:26px; opacity:.4; }
  @media (max-width:760px){ .footer__top{ grid-template-columns:1fr; gap:2.4rem; } }

  /* ============ CURSOR (fine pointers only) ============ */
  .cursor-ring{
    position:fixed; top:0; left:0; width:22px; height:22px; border:1px solid var(--gold-dim);
    border-radius:50%; pointer-events:none; z-index:600; transform:translate(-50%,-50%);
    transition:width .3s var(--ease), height .3s var(--ease), border-color .3s var(--ease), opacity .3s var(--ease);
    opacity:0;
  }
  .cursor-ring.is-active{ opacity:1; }
  .cursor-ring.is-hover{ width:48px; height:48px; border-color:var(--ivory); }
  .cursor-ring.is-media{ opacity:0; }

  .cursor-label{
    position:fixed; top:0; left:0; z-index:601; pointer-events:none;
    width:64px; height:64px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    transform:translate(-50%,-50%) scale(.5); opacity:0;
    font-family:var(--font-sans); font-size:.6rem; letter-spacing:.16em; text-transform:uppercase;
    color:var(--black); background:var(--ivory);
    transition:opacity .35s var(--ease), transform .35s var(--ease);
  }
  .cursor-label.is-visible{ opacity:1; transform:translate(-50%,-50%) scale(1); }

  /* ============ TEXT REVEAL (mask) ============ */
  .mask{ overflow:hidden; display:block; }
  .mask__inner{ display:block; transform:translateY(105%); transition:transform 1.1s var(--ease); }
  .mask.in-view .mask__inner{ transform:translateY(0); }
  .mask-d1 .mask__inner{ transition-delay:.12s; }
  .mask-d2 .mask__inner{ transition-delay:.24s; }
  .mask-d3 .mask__inner{ transition-delay:.36s; }
  @media (prefers-reduced-motion: reduce){
    .mask__inner{ transform:none; opacity:0; transition:opacity .3s ease; }
    .mask.in-view .mask__inner{ opacity:1; }
  }

  /* ============ REFINED HOVER / PRESS DETAILS ============ */
  .nav__links a{ position:relative; }
  .nav__links a.is-active{ color:var(--ivory); }
  .nav__links a.is-active::after{ transform:scaleX(1); transform-origin:left; background:var(--gold); }

  .plate:hover .plate__art{ transform:scale(1.045); }
  .plate__caption .plate__no{ transition:color .4s var(--ease); }
  .plate:hover .plate__caption .plate__no{ color:var(--gold); }

  .program-row__title{ display:inline-block; transition:transform .45s var(--ease); }
  .program-row:hover .program-row__title, .program-row:focus-within .program-row__title{ transform:translateX(8px); }

  .coach__plate{ transition:transform .6s var(--ease); }
  .coach-solo:hover .coach__plate{ transform:translateY(-6px); }
  .coach__role{ transition:color .4s var(--ease); }
  .coach-solo:hover .coach__role{ color:var(--gold); }

  .exp-item{ transition:border-color .5s var(--ease); }
  .exp-item:hover{ border-color:var(--gold-dim); }
  .exp-item__no{ transition:color .4s var(--ease); }
  .exp-item:hover .exp-item__no{ color:var(--gold); }
  .exp-item__title{ display:inline-block; transition:transform .4s var(--ease); }
  .exp-item:hover .exp-item__title{ transform:translateX(5px); }

  .btn:active,
  .calendar__cell:not(:disabled):not(.is-empty):active,
  .slot:active,
  .segmented button:active,
  .testi__nav-btn:active,
  .calendar__nav-btn:not(:disabled):active,
  .booking__close:active{ transform:scale(.94); }

  @media (prefers-reduced-motion: reduce){
    .plate:hover .plate__art{ transform:none; }
    .coach-solo:hover .coach__plate{ transform:none; }
    .program-row:hover .program-row__title, .program-row:focus-within .program-row__title{ transform:none; }
  }

  /* ============ PLATE CURTAIN REVEAL + TILT ============ */
  .plate{ transition:transform .5s var(--ease); will-change:transform; }
  .plate--wipe::before{
    content:''; position:absolute; inset:0; z-index:4; background:var(--charcoal);
    transform-origin:right; transform:scaleX(1);
    transition:transform 1s var(--ease) .1s;
    pointer-events:none;
  }
  .plate--wipe.in-view::before{ transform:scaleX(0); }
  .plate--wipe.reveal:not(.in-view) .plate__photo,
  .plate--wipe.reveal:not(.in-view) .plate__art{ transform:scale(1.12); transition:none; }
  @media (prefers-reduced-motion: reduce){
    .plate{ transition:none; }
    .plate--wipe::before{ transition:none; transform:scaleX(0); }
  }

  /* ============ LOAD LINE ============ */
  .load-line{
    position:fixed; top:0; left:0; height:2px; width:0; background:var(--gold);
    z-index:900; pointer-events:none; opacity:1;
    transition:width 1.1s var(--ease) .1s, opacity .6s var(--ease) 1.2s;
  }
  .load-line.is-done{ width:100%; opacity:0; }
  @media (prefers-reduced-motion: reduce){ .load-line{ display:none; } }

  /* ============ SHARED SECTION HEADS ============ */
  .head-split{ display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; flex-wrap:wrap; }

  @media (max-width:900px){
    .nav__links, .nav__cta{ display:none; }
    .nav__menu-btn{ display:flex; }
    .about__grid{ grid-template-columns:1fr; }
    .about__grid .plate{ order:-1; }
  }

  @media (max-width:480px){
    .nav__logo{ font-size:1.1rem; }
    .nav{ padding-inline:1.25rem; }
  }

  @media (max-width:640px){
    .scroll-cue{ display:none; }
    .hero__content{ padding-bottom:3.2rem; }
    .hero__ctas{ flex-direction:column; align-items:flex-start; gap:1.4rem; }
  }

  /* ============ BOOKING PANEL ============ */
  .booking{ position:fixed; inset:0; z-index:800; visibility:hidden; pointer-events:none; }
  .booking.is-open{ visibility:visible; pointer-events:auto; }
  .booking__scrim{
    position:absolute; inset:0; background:rgba(11,11,11,0.72);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    opacity:0; transition:opacity .5s var(--ease);
  }
  .booking.is-open .booking__scrim{ opacity:1; }
  .booking__panel{
    position:absolute; top:0; right:0; bottom:0; width:min(480px,100%);
    background:var(--charcoal); border-left:1px solid var(--line-strong);
    display:flex; flex-direction:column;
    transform:translateX(100%); transition:transform .6s var(--ease);
  }
  .booking.is-open .booking__panel{ transform:translateX(0); }
  .booking__panel::before{
    content:''; position:absolute; inset:0; z-index:0;
    background:linear-gradient(165deg, var(--charcoal-2) 0%, var(--black) 130%);
  }
  .booking__panel::after{
    content:''; position:absolute; inset:0; z-index:0; opacity:.05; mix-blend-mode:overlay; pointer-events:none;
    background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="bg"><feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="2"/><feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/></filter><rect width="100%" height="100%" filter="url(%23bg)"/></svg>');
  }

  .booking__head{
    position:relative; z-index:1; display:flex; align-items:flex-start; justify-content:space-between; gap:1.2rem;
    padding:2.4rem clamp(1.5rem,4vw,2.6rem) 1.8rem; border-bottom:1px solid var(--line);
  }
  .booking__title{ font-size:clamp(1.9rem,3.2vw,2.5rem); margin-top:.9rem; }
  .booking__close{
    width:38px; height:38px; border:1px solid var(--line-strong); border-radius:50%; flex-shrink:0;
    display:flex; align-items:center; justify-content:center; color:var(--ivory);
    transition:border-color .3s var(--ease), transform .5s var(--ease);
  }
  .booking__close:hover, .booking__close:focus-visible{ border-color:var(--ivory); transform:rotate(90deg); }

  .booking__body{ position:relative; z-index:1; flex:1; overflow-y:auto; padding:2.2rem clamp(1.5rem,4vw,2.6rem) 1rem; }
  #bookingForm{ display:flex; flex-direction:column; gap:2.4rem; }

  .booking__section-label{ font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--grey); display:block; margin-bottom:1.1rem; }

  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
  .field{ display:flex; flex-direction:column; gap:.6rem; }
  .field label{ font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--grey); }
  .field input{
    background:transparent; border:none; border-bottom:1px solid var(--line-strong); color:var(--ivory);
    font-family:var(--font-sans); font-size:1rem; font-weight:300; padding:.55rem 0; transition:border-color .3s var(--ease);
  }
  .field input::placeholder{ color:var(--grey); }
  .field input:focus{ outline:none; border-color:var(--gold); }

  .calendar__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1.2rem; }
  .calendar__month{ font-family:var(--font-serif); font-size:1.3rem; }
  .calendar__nav-btn{
    width:30px; height:30px; border:1px solid var(--line-strong); border-radius:50%; color:var(--ivory);
    display:flex; align-items:center; justify-content:center; transition:border-color .3s var(--ease), opacity .3s var(--ease), transform .3s var(--ease);
  }
  .calendar__nav-btn svg{ width:11px; height:11px; }
  .calendar__nav-btn:hover:not(:disabled){ border-color:var(--ivory); transform:scale(1.08); }
  .calendar__nav-btn:disabled{ opacity:.25; cursor:default; }

  .calendar__weekdays{ display:grid; grid-template-columns:repeat(7,1fr); margin-bottom:.5rem; }
  .calendar__weekdays span{ text-align:center; font-size:.62rem; letter-spacing:.08em; color:var(--grey); text-transform:uppercase; }
  .calendar__grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
  .calendar__cell{
    aspect-ratio:1; display:flex; align-items:center; justify-content:center; width:100%;
    font-family:var(--font-sans); font-size:.85rem; font-variant-numeric:tabular-nums; color:var(--stone);
    border:1px solid transparent; border-radius:50%;
    transition:border-color .3s var(--ease), background .3s var(--ease), color .3s var(--ease), transform .2s var(--ease);
  }
  .calendar__cell.is-empty{ visibility:hidden; }
  .calendar__cell:not(:disabled):not(.is-empty):hover{ border-color:var(--line-strong); }
  .calendar__cell:disabled{ color:rgba(143,143,139,0.28); cursor:default; }
  .calendar__cell.is-today:not(.is-selected){ color:var(--gold); }
  .calendar__cell.is-selected{ background:var(--ivory); color:var(--black); }

  .booking__selected-date{ margin-top:1.1rem; font-family:var(--font-serif); font-style:italic; font-size:1.05rem; color:var(--stone); }

  .segmented{ display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line-strong); }
  .segmented button{ padding:.9rem .4rem; text-align:center; border-right:1px solid var(--line-strong); transition:background .3s var(--ease), color .3s var(--ease), transform .2s var(--ease); }
  .segmented button:last-child{ border-right:none; }
  .segmented .seg__label{ display:block; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; }
  .segmented .seg__range{ display:block; font-size:.64rem; color:var(--grey); margin-top:.35rem; font-variant-numeric:tabular-nums; transition:color .3s var(--ease); }
  .segmented button.is-active{ background:var(--ivory); color:var(--black); }
  .segmented button.is-active .seg__range{ color:rgba(11,11,11,0.6); }

  .slots{ display:flex; flex-wrap:wrap; gap:.6rem; min-height:2.6rem; align-items:center; }
  .slots__empty{ font-family:var(--font-serif); font-style:italic; font-size:.95rem; color:var(--grey); }
  .slot{
    padding:.6rem 1.05rem; border:1px solid var(--line-strong); font-size:.78rem; color:var(--stone);
    font-variant-numeric:tabular-nums; transition:border-color .3s var(--ease), background .3s var(--ease), color .3s var(--ease), transform .2s var(--ease);
  }
  .slot:hover{ border-color:var(--ivory); color:var(--ivory); }
  .slot.is-selected{ background:var(--ivory); color:var(--black); border-color:var(--ivory); }

  .booking__foot{ position:relative; z-index:1; padding:1.4rem clamp(1.5rem,4vw,2.6rem) 2rem; border-top:1px solid var(--line); }
  .booking__note{ font-size:.76rem; color:var(--grey); margin-top:1rem; text-align:center; opacity:.8; }
  .booking__note.is-visible{ color:var(--stone); opacity:1; }

  .booking__confirm{ display:none; flex-direction:column; gap:1.6rem; }
  .booking__confirm h3{ font-family:var(--font-serif); font-weight:400; font-size:clamp(1.9rem,3.4vw,2.6rem); line-height:1.05; }
  .booking__summary{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:1.4rem 0; display:flex; flex-direction:column; gap:.9rem; }
  .booking__summary-row{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; }
  .booking__summary-row span:first-child{ font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--grey); }
  .booking__summary-row span:last-child{ font-size:.92rem; color:var(--ivory); text-align:right; font-variant-numeric:tabular-nums; }

  .booking__panel.is-confirmed #bookingForm{ display:none; }
  .booking__panel.is-confirmed .booking__foot{ display:none; }
  .booking__panel.is-confirmed .booking__confirm{ display:flex; }

  @media (max-width:560px){
    .booking__panel{ width:100%; border-left:none; }
    .field-row{ grid-template-columns:1fr; }
  }

  @media (prefers-reduced-motion: reduce){
    .booking__panel, .booking__scrim, .booking__close{ transition-duration:.05s; }
  }
