/* === QSP — Q. Serious. Play. ============================================ */
:root{
  --ink:#0A0A0A;
  --ink-soft:#1a1a1a;
  --paper:#F5F2ED;
  --paper-2:#EDE8DF;
  --line:rgba(10,10,10,.12);
  --line-strong:rgba(10,10,10,.85);
  --blue:#1A3FCC;
  --blue-soft:#5B9EF8;
  --blue-deep:#1A3FCC;
  --cyan:#5B9EF8;
  --brush:#1A3FCC;
  --blue-gradient:linear-gradient(135deg, #5B9EF8 0%, #1A3FCC 100%);
  --mute:rgba(10,10,10,.55);
  /* For advertisers + Founder — paper into soft blues (matches .court in brand-visual) */
  --advertiser-lane-bg:linear-gradient(180deg, var(--paper) 0%, #f3f6ff 45%, #e6ecf9 100%);
  --display: "proxima-nova", "Proxima Nova", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif: "ff-market-web-pro-condensed", "Market Pro", "Arial Narrow", sans-serif;
  /* Typekit: Neue Haas Grotesk Display Pro 55 Roman (fvd n5 → weight 500) */
  --support: "neue-haas-grotesk-display", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --support-weight: 500;
  --mono: "proxima-nova", "Proxima Nova", ui-monospace, monospace;
  /* Vertical section rhythm — matches For Partners (#partners) */
  --section-y: clamp(100px, 12vw, 140px);
  --section-y-mobile: clamp(64px, 14vw, 100px);
  --bp-sm: 560px;
  --bp-md: 720px;
  --bp-lg: 860px;
  --bp-xl: 1100px;
  --nav-height: calc(52px + max(18px, env(safe-area-inset-top, 0px)));
  /* Neue Haas Grotesk (--support) + Market Pro (--serif) on one line */
  --serif-support-scale: 1.3;
  /* Neue Haas — compensates for condensed face */
  --tracking-support: 0.042em;
  --tracking-support-ui: 0.055em;
  --tracking-support-heading: 0.05em;
  --tracking-support-tight: 0.03em;
}

*,*:before,*:after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--display);
  font-feature-settings:"ss01","ss02","cv11";
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }

/* Layout --------------------------------------------------------------- */
.wrap{ max-width:1440px; margin:0 auto; padding:0 clamp(20px, 4vw, 56px); }
section{ position:relative; }
.approach,
.qsp-system,
.founder,
.faq-section,
.sect-split,
.dynamic-ads,
.philosophy,
.final,
.teams-body{
  padding:var(--section-y) 0;
}
.rule{ height:1px; background:var(--line); width:100%; }
.rule.dark{ background:rgba(245,242,237,.18); }

/* Nav ------------------------------------------------------------------ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  padding:max(18px, env(safe-area-inset-top, 0px)) 0 18px;
  transition:background .3s ease, backdrop-filter .3s ease, border-color .3s ease;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(10,10,10,.65);
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  border-bottom-color:rgba(245,242,237,.16);
}
.nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(12px, 2vw, 24px);
}
.nav-brand{
  display:inline-flex;
  align-items:center;
  flex:0 1 auto;
  min-width:0;
  letter-spacing:var(--tracking-support-ui);
  word-spacing:.05em;
  font-size:clamp(18px, 1.35vw, 22px);
  line-height:1;
  color:var(--ink);
  white-space:nowrap;
  background:rgba(255,255,255,.8);
  border-radius:999px;
  padding:8px 12px;
  min-height:calc(1.2em + 16px);
}
.nav-brand-wordmark{
  background:transparent;
  color:#fff;
  border-radius:0;
  padding:8px 12px 8px 0;
  align-items:center;
}
.nav-brand-core{
  display:inline-flex;
  align-items:center;
  gap:0;
  line-height:1;
}
.nav-brand-wordmark .nav-brand-q{
  /* +60% from 1.62em; optically centered on SERIOUS caps (PNG content sits ~2% high in frame) */
  --nav-q-size:2.59em;
  width:var(--nav-q-size);
  height:var(--nav-q-size);
  margin:0 -.52em 0 0;
  flex-shrink:0;
  align-self:center;
  object-fit:contain;
  object-position:center center;
  transform:translateY(calc(var(--nav-q-size) * 0.0205));
}
.nav-brand-wordmark-text{
  font-family:var(--display);
  font-weight:700;
  letter-spacing:.02em;
  color:#fff;
  margin-left:-.06em;
  line-height:1;
  align-self:center;
}
.nav-brand-wordmark > .nav-brand-play{
  align-self:center;
}
.nav-brand-q{
  width:1.2em;
  height:1.2em;
  object-fit:contain;
  margin-right:.16em;
  display:block;
}
.nav-brand-serious{
  font-family:var(--display);
  font-weight:800;
  letter-spacing:-.01em;
  line-height:1;
  color:#000;
}
.nav-brand-play{
  font-family:var(--serif);
  font-weight:500;
  font-style:normal;
  text-transform:none;
  letter-spacing:0;
  font-size:1.12em;
  line-height:1;
  margin-left:.08em;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.nav-links{
  display:flex;
  gap:28px;
  align-items:center;
  flex:0 0 auto;
}
.nav-end{
  display:flex;
  align-items:center;
  gap:clamp(12px, 2vw, 28px);
  flex:0 0 auto;
  margin-left:auto;
}
.nav-toolbar{
  display:flex;
  align-items:center;
  gap:12px;
  flex:0 0 auto;
}
.nav-links a{
  font-family:var(--display);
  font-size:13px;
  letter-spacing:.02em;
  color:var(--paper);
  opacity:.82;
  display:inline-flex;
  align-items:baseline;
  flex-direction:row;
  line-height:1.2;
  transition:color .18s ease, opacity .18s ease;
}
.nav-links a::after{
  content:'.';
  /* Tighter than Play’s .08em — pulls the period toward the last letter */
  margin-left:-0.045em;
  flex:none;
  font-family:var(--serif);
  font-weight:500;
  font-style:normal;
  text-transform:none;
  letter-spacing:0;
  line-height:1;
  /* Same scale as .nav-brand-play; in-flow so baseline matches the label */
  font-size:calc(1.12 * clamp(18px, 1.35vw, 22px));
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  color:transparent;
  opacity:0;
  transition:opacity .18s ease;
}
.nav-links a:hover,
.nav-links a:focus-visible{
  opacity:1;
  color:#fff;
}
.nav-links a:hover::after,
.nav-links a:focus-visible::after{
  opacity:1;
}
.nav-contact-col{
  display:flex;
  align-items:center;
  flex:0 0 auto;
}
.nav-cta{
  font-size:13px; padding:10px 18px; border-radius:999px;
  background:var(--ink); color:var(--paper); letter-spacing:.02em;
  display:inline-flex; align-items:center; gap:8px;
  transition:transform .2s ease, background .2s ease;
}
.nav-cta:hover{ transform:translateY(-1px); background:var(--blue); }
.nav-cta .dot{ width:6px; height:6px; border-radius:50%; background:#44ff9a; box-shadow:0 0 8px #44ff9a; }

.nav-menu-btn{
  display:none;
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(245,242,237,.35);
  background:rgba(10,10,10,.55);
  color:var(--paper);
  padding:0;
  place-items:center;
  flex-shrink:0;
  transition:background .2s ease, border-color .2s ease;
}
.nav-menu-btn:hover{
  background:rgba(10,10,10,.8);
  border-color:rgba(245,242,237,.6);
}
.nav-menu-btn-icon{
  display:grid;
  gap:5px;
  width:18px;
}
.nav-menu-btn-bar{
  display:block;
  height:2px;
  width:100%;
  border-radius:2px;
  background:currentColor;
  transition:transform .2s ease, opacity .2s ease;
}
.nav-menu-btn.is-open .nav-menu-btn-bar:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.nav-menu-btn.is-open .nav-menu-btn-bar:nth-child(2){
  opacity:0;
}
.nav-menu-btn.is-open .nav-menu-btn-bar:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

@media (max-width:1080px){
  .nav-brand{ font-size:18px; }
  .nav-links{ gap:16px; }
  .nav-links a{ font-size:12px; }
  .nav-end{ gap:16px; }
}

@media (max-width:860px){
  .nav-links{ display:none; }
  .nav-brand-wordmark{
    max-width:calc(100% - 3.25rem);
    font-size:clamp(17px, 4.6vw, 22px);
    min-height:auto;
  }
  .nav-brand-wordmark .nav-brand-q{
    --nav-q-size:clamp(2em, 8vw, 2.35em);
  }
  .nav-menu-btn{ display:grid; }
}

@media (max-width:420px){
  .nav-brand-wordmark{
    max-width:calc(100% - 3rem);
    font-size:clamp(15px, 4.2vw, 18px);
    padding-right:4px;
  }
  .nav-brand-wordmark .nav-brand-q{
    --nav-q-size:1.85em;
  }
  .nav-toolbar{ gap:10px; }
}

.nav-menu-backdrop{
  position:fixed;
  inset:0;
  top:var(--nav-height, 76px);
  z-index:49;
  background:rgba(10,10,10,.45);
}
.nav-menu-panel{
  position:fixed;
  top:var(--nav-height, 76px);
  left:0;
  right:0;
  z-index:51;
  margin-top:-1px;
  padding:20px clamp(20px, 4vw, 56px) max(32px, env(safe-area-inset-bottom, 0px));
  background:rgba(10,10,10,.92);
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  border-top:1px solid rgba(245,242,237,.16);
  border-bottom:1px solid rgba(245,242,237,.16);
  max-height:calc(100dvh - var(--nav-height, 76px) - env(safe-area-inset-bottom, 0px));
  overflow-y:auto;
}
.nav-menu-links{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.nav-menu-links a{
  font-family:var(--display);
  font-size:16px;
  letter-spacing:.02em;
  color:var(--paper);
  opacity:.88;
  display:flex;
  align-items:baseline;
  min-height:44px;
  padding:10px 0;
  line-height:1.2;
  transition:color .18s ease, opacity .18s ease;
}
.nav-menu-links a::after{
  content:'.';
  margin-left:-0.045em;
  flex:none;
  font-family:var(--serif);
  font-weight:500;
  font-style:normal;
  font-size:1.12em;
  line-height:1;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  color:transparent;
  opacity:0;
  transition:opacity .18s ease;
}
.nav-menu-links a:hover,
.nav-menu-links a:focus-visible{
  opacity:1;
  color:#fff;
}
.nav-menu-links a:hover::after,
.nav-menu-links a:focus-visible::after{
  opacity:1;
}
body.nav-menu-open{
  overflow:hidden;
}
body.nav-menu-open .nav{
  border-bottom-color:rgba(10,10,10,.92);
}

/* Hero + ticker fill one viewport on load */
.hero-viewport{
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}
.hero-viewport .hero{
  flex:1 1 auto;
  min-height:0;
}
.hero-viewport .ticker{
  flex-shrink:0;
}

/* Hero ---------------------------------------------------------------- */
.hero{
  padding:108px 0 40px;
  display:flex; flex-direction:column;
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.hero-bg-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  pointer-events:none;
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
  opacity:0;
}
.hero-bg-video.is-playing{
  opacity:1;
}
.hero-bg-fallback{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  pointer-events:none;
}
.hero-video-scrim{
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(0,0,0,.1);
  pointer-events:none;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.5);
  z-index:0;
  pointer-events:none;
}
.hero .wrap{
  position:relative;
  z-index:2;
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:0;
  /* Nudge down to offset heavier top padding (nav clearance) */
  padding-bottom:34px;
}

.hero-bottom{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:clamp(18px, 3.2vh, 36px);
  padding-bottom:0;
  width:100%;
}
.hero-tagline{
  font-size:clamp(34px, 4.8vw, 72px);
  line-height:1.06;
  max-width:min(92vw, 1040px);
  width:100%;
  font-weight:600;
  letter-spacing:-.022em;
  color:#fff;
  text-align:left;
}
.hero-tagline-sub{
  display:block;
  margin-top:clamp(14px, 2vh, 22px);
  font-family:var(--support); font-weight:var(--support-weight);
  font-size:clamp(26px, 2vw, 30px);
  line-height:1.22;
  letter-spacing:var(--tracking-support);
}
.hero-tagline .designed{
  font-family:var(--display);
  font-weight:600;
  color:#fff;
}
.hero-tagline .impact{
  font-family:var(--serif);
  font-style:normal;
  font-weight:500;
  font-size:1.12em;
  /* High-luminance blues so the serif stays legible on .hero’s dark scrim */
  background:linear-gradient(
    118deg,
    #f0f9ff 0%,
    #7dd3fc 18%,
    #38bdf8 42%,
    #60a5fa 58%,
    #93c5fd 78%,
    #e0f2fe 100%
  );
  background-size:135% 135%;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  color:transparent;
  filter:
    drop-shadow(0 0 1px rgba(255, 255, 255, 0.35))
    drop-shadow(0 0 14px rgba(56, 189, 248, 0.55))
    drop-shadow(0 0 36px rgba(96, 165, 250, 0.4));
}
.hero-tagline .accent{
  font-family:var(--serif); font-style:normal; font-weight:500;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  color:transparent;
}
.advertiser-ticker .ticker-track em,
.sec-title em,
.approach .sec-title em,
#approach .journey-step-num,
.swap .good em,
.approach-signature h3 em,
.sect-split .side h2 em,
.big-stmt em,
.phil-title em,
.phil-card.play h3,
.phil-signature b,
.cred-cell .big em,
.cred-cell.lede .big em,
.final h2 em{
  display:inline;
  background-image:var(--blue-gradient);
  background-repeat:no-repeat;
  background-size:100% 100%;
  background-position:0 0;
  color:transparent;
  -webkit-text-fill-color:transparent;
  -webkit-text-stroke:0.01em transparent;
  padding-inline:0.08em;
  margin-inline:-0.08em;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
.advertiser-ticker .ticker-track em::after,
.sec-title em::after,
.approach .sec-title em::after,
#approach .journey-step-num::after,
.swap .good em::after,
.approach-signature h3 em::after,
.sect-split .side h2 em::after,
.big-stmt em::after,
.phil-title em::after,
.phil-card.play h3::after,
.phil-signature b::after,
.cred-cell .big em::after,
.cred-cell.lede .big em::after,
.final h2 em::after{
  content:" ";
  white-space:pre;
}
.hero-tagline .accent::after{
  content:" ";
  white-space:pre;
}

.hero-ctas{
  width:min(100%, 980px);
  display:grid; grid-template-columns:1fr 1fr; gap:12px;
}
.cta{
  display:flex; flex-direction:column; gap:14px;
  /* 3px border always so hero hover can swap to gradient ring without shifting content (was 22/22/20 + 1px border) */
  padding:20px 20px 18px;
  border-radius:18px;
  border:3px solid rgba(245,242,237,.2);
  background:rgba(10,10,10,.88);
  color:var(--paper);
  /* Do not transition `background`: hover uses layered gradients vs solid fill — browsers flash transparent while interpolating. */
  transition:border-color .22s ease, box-shadow .22s ease, transform .22s ease, color .22s ease;
  text-align:left;
  min-height:160px;
  justify-content:space-between;
  position:relative; overflow:hidden;
}
.cta .kicker{
  font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--blue-soft);
  transition:color .22s ease;
}
.cta .title{
  font-size:24px; line-height:1.05; font-weight:700; letter-spacing:-.02em;
  transition:color .22s ease;
}
.cta .sub{
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support); font-size:clamp(14px, 1.1vw, 15px); color:rgba(245,242,237,.82); line-height:1.35;
  transition:color .22s ease;
}
.hero .cta .sub .cta-accent{
  font-weight:700;
  color:#fff;
}
.cta .arrow{
  width:36px; height:36px; border-radius:50%; background:rgba(245,242,237,.12); color:var(--paper);
  display:grid; place-items:center; transition:transform .3s ease, background .3s ease;
}
.hero .cta .arrow img{
  width:20px; height:20px; max-width:100%; max-height:100%; object-fit:contain; display:block;
}
.cta .row{ display:flex; justify-content:space-between; align-items:flex-end; gap:12px; }

/* Hero CTA cards — angled photo slice on the right */
.hero .cta.cta-advertiser > *,
.hero .cta.cta-club > *{
  position:relative;
  z-index:1;
}
/* Photo layer sits in the slice’s bounding box so `center` targets the visible wedge, not the full card */
.hero .cta.cta-advertiser::after,
.hero .cta.cta-club::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  left:50%;
  z-index:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  clip-path:polygon(40% 0, 100% 0, 100% 100%, 0 100%);
  pointer-events:none;
}
.hero .cta.cta-advertiser::after{
  background-image:url("images/adsolutions.webp");
}
.hero .cta.cta-club::after{
  background-image:url("images/teamexp.webp");
}
.hero .cta.cta-advertiser::before,
.hero .cta.cta-club::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:linear-gradient(
    105deg,
    rgba(10,10,10,.97) 0%,
    rgba(10,10,10,.88) 38%,
    rgba(10,10,10,.45) 52%,
    rgba(10,10,10,.12) 64%,
    transparent 74%
  );
  clip-path:polygon(70% 0, 100% 0, 100% 100%, 50% 100%);
  pointer-events:none;
}

.hero .cta:hover{
  border-color:transparent;
  background:
    linear-gradient(rgba(10,10,10,.94), rgba(10,10,10,.94)) padding-box,
    var(--blue-gradient) border-box;
  transform:translateY(-2px);
  box-shadow:0 22px 44px -28px rgba(0,0,0,.58);
}
.hero .cta:hover .arrow{
  transform:rotate(-45deg);
  background:var(--blue-gradient);
}

.hero-cta-block{
  display:flex; flex-direction:column; align-items:stretch;
  gap:14px; width:min(100%, 980px);
}
.hero-cta-tertiary{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:16px 20px;
  padding:16px 20px;
  border-radius:14px;
  border:1px solid rgba(245,242,237,.35);
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  color:var(--paper);
  font-size:14px;
  line-height:1.35;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.hero-cta-tertiary:hover{
  background:rgba(255,255,255,.2);
  border-color:rgba(245,242,237,.5);
  transform:translateY(-1px);
}
.hero-cta-tertiary-k{
  font-family:var(--mono); font-size:9px; letter-spacing:.2em; text-transform:uppercase;
  opacity:.75; grid-row:1 / span 2;
}
.hero-cta-tertiary-t{ font-weight:600; letter-spacing:-.02em; grid-column:2; }
.hero-cta-tertiary-s{
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support); font-size:12px; opacity:.88; grid-column:2; grid-row:2;
  max-width:48ch;
}
.hero-cta-tertiary-arrow{
  grid-column:3; grid-row:1 / span 2;
  width:32px; height:32px; border-radius:50%;
  display:grid; place-items:center;
  border:1px solid rgba(245,242,237,.4);
  flex-shrink:0;
}
.hero-cta-tertiary:hover .hero-cta-tertiary-arrow{ background:var(--paper); color:var(--ink); border-color:var(--paper); }
.hero-cta-tertiary:hover .hero-cta-tertiary-arrow svg{ stroke:var(--ink); }

@media (max-width:860px){
  .hero{
    padding:92px 0 28px;
  }
  .hero .wrap{
    padding-bottom:32px;
  }
  .hero-tagline{
    font-size:clamp(28px, 8.2vw, 46px);
    line-height:1.08;
  }
  .hero-tagline-sub{
    display:block;
    margin-top:12px;
    font-size:clamp(22px, 4.8vw, 28px);
  }
  .hero-ctas{ grid-template-columns:1fr; }
  .hero-cta-tertiary{
    grid-template-columns:1fr auto;
    grid-template-rows:auto auto auto;
  }
  .hero-cta-tertiary-k{ grid-row:1; grid-column:1; }
  .hero-cta-tertiary-t{ grid-row:2; grid-column:1; }
  .hero-cta-tertiary-s{ grid-row:3; grid-column:1 / -1; }
  .hero-cta-tertiary-arrow{ grid-row:1 / span 2; grid-column:2; align-self:start; }
}

/* Marquee ticker ------------------------------------------------------- */
.ticker{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:18px 0;
  overflow:hidden;
  background:var(--paper);
}
.ticker-track{
  display:flex; gap:48px; white-space:nowrap;
  animation:tickerMove 40s linear infinite;
  font-family:var(--mono); font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink);
}
.ticker-track span{ display:inline-flex; align-items:center; gap:48px; }
.advertiser-ticker .ticker-track em{
  font-style:normal; font-family:var(--serif); font-size:18px;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.ticker--partners .ticker-track{
  gap:56px;
  font-family:var(--support); font-weight:var(--support-weight);
  font-size:unset;
  letter-spacing:var(--tracking-support);
  text-transform:none;
}
.ticker--partners .ticker-item{
  gap:40px;
}
.ticker--partners .ticker-logo{
  display:block;
  height:clamp(26px, 3.6vw, 36px);
  width:auto;
  max-width:min(168px, 30vw);
  object-fit:contain;
  opacity:.88;
  transition:opacity .2s ease;
}
.ticker--partners .ticker-item:hover .ticker-logo{ opacity:1; }
.ticker-padel-ball{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  line-height:0;
}
.ticker-padel-ball svg{
  display:block;
}
.ticker.ticker--statements{
  display:flex;
  align-items:center;
  padding:26px 0;
}
.ticker--statements .ticker-track{
  gap:56px;
  align-items:center;
  font-family:var(--support); font-weight:var(--support-weight);
  font-size:clamp(14px, 1.55vw, 18px);
  letter-spacing:var(--tracking-support);
  line-height:1.45;
  text-transform:none;
  animation-duration:42.3s; /* 55s → +30% speed */
}
.ticker--statements .ticker-statement-wrap{
  display:inline-flex;
  align-items:center;
  gap:56px;
}
.ticker--statements .ticker-statement{
  display:inline;
  white-space:nowrap;
}
.ticker--statements .ticker-track em{
  display:inline-block;
  font-style:normal;
  font-family:var(--serif);
  font-size:calc(1em * var(--serif-support-scale));
  line-height:1.2;
  letter-spacing:0;
  text-transform:none;
  vertical-align:baseline;
  padding:.08em .14em .2em .04em;
  margin:0;
  overflow:visible;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
.ticker--statements .ticker-dot{
  display:inline-block;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--blue-gradient);
  flex-shrink:0;
}
@keyframes tickerMove{ 0%{ transform:translateX(0); } 100%{ transform:translateX(-50%); } }

/* Section headers ------------------------------------------------------ */
.sec-label{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--mute);
  margin-bottom:28px;
}
.sec-label .num{
  border:1px solid var(--line); padding:2px 8px; border-radius:999px;
  color:var(--ink); background:var(--paper);
}
.sec-label .num{
  display:none;
}
.sec-title{
  font-size:clamp(44px, 6.4vw, 104px);
  line-height:.92;
  letter-spacing:-.035em;
  font-weight:800;
  margin:0 0 44px;
  max-width:14ch;
}
.sec-title em{
  font-family:var(--serif); font-style:normal; font-weight:500;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* What We Do — two pillars ---------------------------------------------- */
.wwd{ padding:120px 0 40px; }
.pillars{
  display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--line); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.pillar{
  background:var(--paper);
  padding:48px 40px 40px;
  display:flex; flex-direction:column; gap:24px;
  min-height:520px;
  position:relative;
  transition:background .3s ease;
  overflow:hidden;
}
.pillar:hover{ background:#fff; }
.pillar .tag{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--blue);
}
.pillar .tag .sq{ width:10px; height:10px; background:var(--blue); border-radius:2px; }
.pillar.team .tag{ color:var(--blue-deep); }
.pillar.team .tag .sq{ background:var(--blue-deep); }

.pillar h3{
  font-size:clamp(32px, 3.6vw, 56px);
  line-height:.95; letter-spacing:-.03em; font-weight:700;
  margin:0;
}
.pillar .lead{
  font-size:20px; line-height:1.3; color:var(--ink-soft);
  font-family:var(--serif); font-style:normal; font-weight:500;
  max-width:38ch;
}
.pillar .lead.lead-plain{
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-weight:400;
}
.pillar ul{ list-style:none; margin:12px 0 0; padding:0; display:grid; gap:14px; }
.pillar li{
  display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:baseline;
  padding-bottom:14px; border-bottom:1px solid var(--line);
  font-size:17px; letter-spacing:-.005em;
}
.pillar li .n{ font-family:var(--mono); font-size:11px; color:var(--mute); letter-spacing:.08em; }
.pillar li .plus{ color:var(--blue); font-size:18px; font-weight:500; transition:transform .2s ease; }
.pillar.team li .plus{ color:var(--blue-deep); }
.pillar.pillar-advertiser li .plus{ color:var(--blue); }
.pillar li:hover .plus{ transform:rotate(90deg); }

.wwd-teams-ribbon{
  margin-top:32px; padding:24px 28px;
  border:1px solid var(--line); border-radius:16px; background:var(--paper-2);
}
.wwd-teams-inner{
  display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px;
  justify-content:space-between;
}
.wwd-teams-k{
  font-family:var(--mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--mute);
  flex:0 0 auto;
}
.wwd-teams-p{
  flex:1 1 280px; margin:0; font-size:15px; line-height:1.45; color:var(--ink-soft);
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
}
.wwd-teams-a{
  display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14px; color:var(--ink);
  white-space:nowrap; flex-shrink:0;
}
.wwd-teams-a:hover{ color:var(--blue); }

.pillar .foot{
  margin-top:auto; padding-top:24px;
  display:flex; justify-content:space-between; align-items:center;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support); font-size:14px; color:var(--mute);
}
.pillar .foot a{ display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-weight:500; }
.pillar .foot a:hover{ color:var(--blue); }

@media (max-width:860px){ .pillars{ grid-template-columns:1fr; } }

/* Approach ------------------------------------------------------------- */
.approach{
  background:var(--ink); color:var(--paper);
  position:relative; overflow:hidden;
}
.approach .sec-label{ color:rgba(245,242,237,.6); }
.approach .sec-label .num{ background:transparent; border-color:rgba(245,242,237,.25); color:var(--paper); }
#approach .sec-label{
  flex-wrap:wrap;
  row-gap:6px;
}
#approach .journey-sec-case{
  text-transform:uppercase;
  letter-spacing:var(--tracking-support-heading);
  font-weight:600;
  font-size:11px;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.approach .sec-title{ color:var(--paper); }
.approach .sec-title em,
#approach .journey-step-num{
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.approach-copy{
  margin:-8px 0 24px;
  max-width:72ch;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(18px, 1.5vw, 24px);
  line-height:1.45;
  color:rgba(245,242,237,.86);
}
.approach-intro-split{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, min(48%, 420px));
  gap:clamp(24px, 3.2vw, 44px);
  align-items:start;
}
.approach-intro-split .sec-title{
  margin-bottom:18px;
}
.approach-intro-split .approach-copy{
  margin:0;
}
.approach-intro-visual{
  margin:0;
  min-height:100%;
  border:0;
  border-radius:18px;
  overflow:hidden;
  background:transparent;
  position:relative;
}
.approach-intro-visual img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:opacity .9s ease;
}
.approach-intro-visual img.carousel-slide{
  z-index:1;
  opacity:0;
}
.approach-intro-visual img.carousel-slide.is-active{
  z-index:2;
  opacity:1;
}

.swap-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:0;
  border-top:1px solid rgba(245,242,237,.18);
  margin-top:40px;
}
.swap{
  padding:44px 32px 40px;
  border-right:1px solid rgba(245,242,237,.18);
  border-bottom:1px solid rgba(245,242,237,.18);
  display:flex; flex-direction:column; gap:16px;
  min-height:280px;
  transition:background .3s ease;
  position:relative;
}
.swap:last-child{ border-right:none; }
.swap:hover{ background:rgba(245,242,237,.04); }
.swap .idx{
  font-family:var(--mono); font-size:11px; letter-spacing:.18em;
  color:rgba(245,242,237,.45);
}
.swap .bad{
  font-size:26px; letter-spacing:-.02em; font-weight:500;
  color:rgba(245,242,237,.4);
  text-decoration:line-through;
  text-decoration-color:rgba(255,255,255,.15);
  text-decoration-thickness:2px;
}
.swap .good{
  font-size:clamp(32px, 3.2vw, 44px); line-height:1; letter-spacing:-.03em; font-weight:700;
  color:var(--paper);
  margin-top:auto;
}
.swap .good em{
  font-family:var(--serif); font-style:normal; font-weight:500;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.swap .arrow-in{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--blue-soft);
}
.swap .swap-detail{
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:15px;
  line-height:1.45;
  color:rgba(245,242,237,.78);
}

.approach-signature{
  margin-top:80px;
  display:grid; grid-template-columns:auto 1fr; gap:40px; align-items:center;
}
.approach-signature .mark{
  font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(245,242,237,.55);
  writing-mode:vertical-rl; transform:rotate(180deg);
}
.approach-signature h3{
  font-size:clamp(38px, 5vw, 72px); line-height:1; letter-spacing:-.035em; font-weight:700;
  margin:0;
  color:var(--paper);
}
.approach-signature h3 em{
  font-family:var(--serif); font-style:normal; font-weight:500;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.approach-signature h3 s,
.approach .sec-title s{
  text-decoration-color:rgba(255,255,255,.25); text-decoration-thickness:3px;
  color:rgba(245,242,237,.4);
}

#partners .sec-title{
  margin-bottom:18px;
  max-width:none;
}
#partners .partners-intro{
  margin-top:1.45em;
  font-size:clamp(18px, 1.5vw, 24px);
}
#partners .partners-intro .approach-copy{
  margin:0;
}
#partners .partners-principles-lead{
  margin:24px 0 0;
  max-width:72ch;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(18px, 1.5vw, 24px);
  line-height:1.45;
  color:rgba(245,242,237,.86);
}
#partners .partners-principles-lead-em{
  font-weight:700;
  color:var(--paper);
}
#partners .partners-principles{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  border-top:1px solid rgba(245,242,237,.18);
  margin-top:32px;
}
#partners .partners-principle{
  padding:36px 24px 40px;
  border-right:1px solid rgba(245,242,237,.18);
  border-bottom:1px solid rgba(245,242,237,.18);
  display:flex;
  flex-direction:column;
  gap:14px;
  min-height:220px;
  transition:background .3s ease;
}
#partners .partners-principle:last-child{
  border-right:none;
}
#partners .partners-principle:hover{
  background:rgba(245,242,237,.04);
}
#partners .partners-principle-num{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  color:rgba(245,242,237,.45);
}
#partners .partners-principle-title{
  margin:0;
  font-size:clamp(26px, 2.4vw, 36px);
  line-height:1.05;
  letter-spacing:-.03em;
  font-weight:700;
  color:var(--paper);
}
#partners .partners-principle-detail{
  margin:0;
  margin-top:1em;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:14px;
  line-height:1.45;
  color:rgba(245,242,237,.78);
}

@media (max-width:1100px){
  #partners .partners-principles{
    grid-template-columns:repeat(2, 1fr);
  }
  #partners .partners-principle:nth-child(2n){
    border-right:none;
  }
  #partners .partners-principle:nth-child(5){
    grid-column:1 / -1;
    border-right:none;
  }
}
@media (max-width:600px){
  #partners .partners-principles{
    grid-template-columns:1fr;
  }
  #partners .partners-principle,
  #partners .partners-principle:nth-child(2n),
  #partners .partners-principle:nth-child(5){
    border-right:none;
    grid-column:auto;
  }
}

#partners .partners-packs-trigger{
  margin-top:56px;
  display:flex;
  justify-content:center;
}
#partners .partners-packs-btn{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  width:min(100%, 520px);
  padding:18px 22px 18px 28px;
  border-radius:18px;
  border:3px solid rgba(245,242,237,.2);
  background:rgba(10,10,10,.88);
  color:var(--paper);
  font-size:clamp(17px, 1.4vw, 20px);
  font-weight:700;
  letter-spacing:-.02em;
  text-align:left;
  cursor:pointer;
  transition:border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
#partners .partners-packs-btn:hover,
#partners .partners-packs-btn[aria-expanded="true"]{
  border-color:transparent;
  background:
    linear-gradient(rgba(10,10,10,.94), rgba(10,10,10,.94)) padding-box,
    var(--blue-gradient) border-box;
}
#partners .partners-packs-btn-icon{
  flex:0 0 auto;
  width:36px;
  height:36px;
  border-radius:50%;
  background:rgba(245,242,237,.12);
  display:grid;
  place-items:center;
  transition:transform .35s ease, background .22s ease;
}
#partners .partners-packs-btn[aria-expanded="true"] .partners-packs-btn-icon{
  transform:rotate(45deg);
  background:rgba(245,242,237,.18);
}
#partners .partners-packs-panel{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .55s cubic-bezier(.4, 0, .2, 1);
}
#partners .partners-packs-panel.is-open{
  grid-template-rows:1fr;
}
#partners .partners-packs-panel-inner{
  overflow:hidden;
  min-height:0;
}
#partners .partners-packs-panel.is-open .partners-packs-panel-inner{
  padding-top:48px;
}
#partners .partners-packs{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  border-top:1px solid rgba(245,242,237,.18);
}
#partners .partners-pack{
  padding:40px 32px 44px;
  border-right:1px solid rgba(245,242,237,.18);
  border-bottom:1px solid rgba(245,242,237,.18);
  display:flex;
  flex-direction:column;
  gap:12px;
  min-height:260px;
  transition:background .3s ease;
}
#partners .partners-pack:nth-child(2n){
  border-right:none;
}
#partners .partners-pack:hover{
  background:rgba(245,242,237,.04);
}
#partners .partners-pack-num{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  color:rgba(245,242,237,.45);
}
#partners .partners-pack-name{
  margin:0;
  font-size:clamp(28px, 2.8vw, 40px);
  line-height:1.05;
  letter-spacing:-.03em;
  font-weight:700;
  color:var(--paper);
}
#partners .partners-pack-subtitle{
  margin:0;
  font-size:clamp(17px, 1.5vw, 20px);
  line-height:1.3;
  font-weight:600;
  letter-spacing:-.01em;
  color:var(--blue-soft);
}
#partners .partners-pack-text{
  margin:8px 0 0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:15px;
  line-height:1.5;
  color:rgba(245,242,237,.78);
}
#partners .partners-packs-cta{
  margin-top:48px;
  padding:40px 36px;
  border:1px solid rgba(245,242,237,.18);
  border-radius:18px;
  background:rgba(245,242,237,.04);
  text-align:center;
}
#partners .partners-packs-cta-title{
  margin:0 0 14px;
  font-size:clamp(24px, 3vw, 36px);
  line-height:1.15;
  letter-spacing:-.03em;
  font-weight:700;
  color:var(--paper);
  max-width:28ch;
  margin-inline:auto;
}
#partners .partners-packs-cta-link{
  display:inline-block;
  margin:0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(16px, 1.3vw, 20px);
  line-height:1.45;
  color:var(--blue-soft);
  max-width:42ch;
  margin-inline:auto;
  text-decoration:underline;
  text-underline-offset:0.15em;
  transition:color 0.2s ease;
}
#partners .partners-packs-cta-link:hover{
  color:var(--paper);
}

@media (max-width:860px){
  #partners .partners-packs{
    grid-template-columns:1fr;
  }
  #partners .partners-pack,
  #partners .partners-pack:nth-child(2n){
    border-right:none;
  }
}

/* Brand journey (#approach dark section only) -------------------------------- */
#approach .journey-rail{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  justify-content:flex-start;
  gap:0;
  margin-top:8px;
  padding:4px 0 8px;
}
#approach .journey-connector{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:28px;
  color:rgba(245,242,237,.35);
}
#approach .journey-connector svg{
  display:block;
}
#approach .journey-step{
  flex:1 1 0;
  min-width:100px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  /* Match hero .cta: 3px border + padding so hover/active swaps don’t shift content */
  padding:14px 12px 16px;
  text-align:left;
  border:3px solid rgba(245,242,237,.2);
  border-radius:14px;
  background:rgba(10,10,10,.88);
  color:var(--paper);
  transition:border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
/* Same as .hero .cta:hover: gradient ring + dark fill. Selected step keeps this look (no separate “full blue” state). */
#approach .journey-step:hover,
#approach .journey-step.is-active{
  border-color:transparent;
  background:
    linear-gradient(rgba(10,10,10,.94), rgba(10,10,10,.94)) padding-box,
    var(--blue-gradient) border-box;
  transform:translateY(-2px);
  box-shadow:0 22px 44px -28px rgba(0,0,0,.58);
  outline:none;
}
#approach .journey-step:focus-visible{
  outline:2px solid var(--blue-soft);
  outline-offset:3px;
}
#approach .journey-step-num{
  font-family:var(--serif);
  font-style:normal;
  font-weight:500;
  font-size:clamp(14px, 1.15vw, 18px);
  letter-spacing:var(--tracking-support);
  line-height:1;
}
#approach .journey-step-title{
  font-size:clamp(15px, 1.35vw, 18px);
  font-weight:700;
  letter-spacing:-.02em;
  color:var(--paper);
  line-height:1.15;
  transition:color .22s ease;
}
#approach .journey-panel{
  margin-top:40px;
  display:grid;
  grid-template-columns:minmax(0, 1.08fr) minmax(260px, 0.92fr);
  gap:clamp(24px, 3.5vw, 48px);
  align-items:center;
}
#approach .journey-panel-visual{
  margin:0;
  border-radius:18px;
  overflow:hidden;
  background:rgba(245,242,237,.06);
  aspect-ratio:16/10;
  position:relative;
}
#approach .journey-panel-visual img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
#approach .journey-panel-copy{
  margin:0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(17px, 1.45vw, 22px);
  line-height:1.5;
  color:rgba(245,242,237,.88);
  max-width:52ch;
}
#approach .journey-outro{
  margin:48px 0 0;
  max-width:62ch;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(17px, 1.45vw, 22px);
  line-height:1.5;
  color:rgba(245,242,237,.88);
}

/* QSP System — 16:9 court compare (same canvas as Why QSP / approach-light) */
.qsp-system{
  background:var(--paper);
  color:var(--ink);
  position:relative;
  overflow:hidden;
}
.qsp-system .sec-label{ color:var(--mute); }
.qsp-system .sec-title{ color:var(--ink); margin-bottom:20px; }
.qsp-system .sec-title em{
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.qsp-system-copy{
  margin:-4px 0 40px;
}
.qsp-system-copy .qsp-system-lead{
  margin:0 0 1.1em;
}
.qsp-system-copy .qsp-system-lead:last-child{
  margin-bottom:0;
}
.qsp-system-lead{
  max-width:62ch;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(17px, 1.45vw, 22px);
  line-height:1.5;
  color:var(--ink-soft);
}
.qsp-system-outro{
  max-width:62ch;
  margin:48px 0 0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(17px, 1.45vw, 22px);
  line-height:1.5;
  color:var(--ink-soft);
}
.qsp-system-compare-bleed{
  width:100%;
  max-width:100%;
  margin-top:8px;
}
.qsp-system-view-toggle{
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:12px;
  width:min(100%, 520px);
  max-width:calc(100% - clamp(40px, 8vw, 112px));
  margin:0 auto 28px;
}
.qsp-system-view-btn{
  appearance:none;
  flex:1 1 0;
  min-width:0;
  margin:0;
  padding:14px 20px;
  border-radius:14px;
  border:1px solid var(--line);
  font-family:var(--display);
  font-size:clamp(14px, 1.15vw, 16px);
  font-weight:600;
  letter-spacing:-.02em;
  line-height:1.2;
  text-align:center;
  color:var(--ink-soft);
  background:var(--paper);
  cursor:pointer;
  transition:border-color .22s ease, color .22s ease, background .22s ease;
}
.qsp-system-view-btn:hover:not(.is-active){
  border-color:rgba(10,10,10,.22);
  color:var(--ink);
  background:#fff;
}
.qsp-system-view-btn.is-active{
  border-color:transparent;
  color:#fff;
  background:var(--blue-gradient);
}
.qsp-system-view-btn:focus-visible{
  outline:2px solid var(--blue-soft);
  outline-offset:3px;
}
@media (max-width:560px){
  .qsp-system-view-toggle{
    flex-direction:column;
    width:min(100%, 320px);
  }
  .qsp-system-view-btn{
    width:100%;
  }
}
.qsp-system .court-compare{
  border-radius:0;
}
.court-compare{
  position:relative;
  aspect-ratio:16/9;
  width:100%;
  border-radius:18px;
  overflow:hidden;
  background:rgba(10,10,10,.06);
  cursor:ew-resize;
  touch-action:pan-y;
  outline:none;
  box-shadow:0 22px 48px -30px rgba(10,10,10,.18);
  user-select:none;
  -webkit-user-select:none;
}
.court-compare:focus-visible{
  outline:2px solid var(--blue-soft);
  outline-offset:4px;
}
.court-compare *{ pointer-events:none; }
.court-compare-handle,
.court-compare-handle *{
  pointer-events:auto;
  touch-action:none;
}
.court-compare-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.court-compare-img--branded{ z-index:1; }
.court-compare-top{
  position:absolute;
  inset:0;
  z-index:2;
}
.court-compare-img--unbranded{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.court-compare-handle{
  position:absolute;
  top:0;
  bottom:0;
  z-index:3;
  width:3px;
  background:rgba(255,255,255,.92);
  box-shadow:0 0 0 1px rgba(0,0,0,.14), 0 0 20px rgba(0,0,0,.28);
  cursor:ew-resize;
}
.court-compare-grip{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:32.5px;
  height:32.5px;
  min-width:44px;
  min-height:44px;
  border-radius:50%;
  background:#fff;
  border:1px solid rgba(10,10,10,.1);
  box-shadow:0 5px 18px rgba(0,0,0,.22);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.court-compare-grip-q{
  width:87%;
  height:87%;
  object-fit:contain;
  display:block;
  pointer-events:none;
}
.court-compare-captions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:16px;
  padding:0 clamp(20px, 4vw, 56px);
  max-width:1440px;
  margin-left:auto;
  margin-right:auto;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--mute);
}
.court-compare-hint{
  text-align:center;
  flex:1;
  letter-spacing:.12em;
  color:rgba(10,10,10,.38);
}
.court-compare-hint-mobile{
  display:none;
}
@media (max-width:860px){
  .court-compare-captions{
    flex-direction:row;
    align-items:center;
    gap:8px;
  }
  .court-compare-captions > span:first-child{
    flex:0 0 auto;
    text-align:left;
  }
  .court-compare-captions > span:last-child{
    flex:0 0 auto;
    text-align:right;
  }
  .court-compare-hint{
    flex:0 1 auto;
  }
  .court-compare-hint-desktop{
    display:none;
  }
  .court-compare-hint-mobile{
    display:inline;
  }
}

/* Founder ---------------------------------------------------------------- */
/* Same cool wash as “For advertisers” (paper → blues aligned with .court in brand-visual) */
.founder{
  background:var(--advertiser-lane-bg);
  color:var(--ink);
  border-top:1px solid var(--line);
}
.founder .sec-label{
  color:var(--mute);
  margin-bottom:20px;
}
/* Match QSP System headline (`.qsp-system .sec-title`) */
.founder .sec-title.founder-hero-stmt{
  color:var(--ink);
  margin:0 0 20px;
  max-width:min(95vw, 28ch);
  font-size:clamp(30px, 4.2vw, 72px);
  line-height:.95;
}
.founder-hero-stmt-line{
  white-space:nowrap;
}
.founder .sec-title.founder-hero-stmt em{
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.founder-intro{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(280px, 42%);
  grid-template-areas:
    "head portrait"
    "body portrait";
  gap:clamp(28px, 4vw, 56px);
  align-items:start;
}
.founder-intro-head{
  grid-area:head;
  min-width:0;
}
.founder-body{
  grid-area:body;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(17px, 1.45vw, 22px);
  line-height:1.55;
  color:var(--ink-soft);
  max-width:62ch;
}
.founder-body p{
  margin:0 0 1.1em;
}
.founder-body p:last-child{
  margin-bottom:0;
}
.founder-philosophy-lead{
  margin-top:1.4em;
  margin-bottom:0.35em !important;
  font-weight:600;
  color:var(--ink);
}
.founder-philosophy-triad{
  margin:0;
  font-size:clamp(18px, 1.5vw, 24px);
  line-height:1.4;
  font-weight:600;
  letter-spacing:-.015em;
  color:var(--ink);
}
.founder-philosophy-sep{
  margin:0 0.35em;
  color:var(--mute);
  font-weight:500;
}
.founder-portrait{
  grid-area:portrait;
  margin:0;
  border-radius:18px;
  overflow:hidden;
  background:rgba(10,10,10,.06);
  border:1px solid var(--line);
  box-shadow:0 22px 48px -28px rgba(10,10,10,.2);
  position:relative;
  aspect-ratio:4/5;
  max-height:min(72vh, 640px);
}
.founder-portrait img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
@media (max-width:860px){
  .founder-intro{
    grid-template-columns:1fr;
    grid-template-areas:
      "head"
      "portrait"
      "body";
  }
  .founder-portrait{
    max-height:min(56vh, 520px);
    width:min(100%, 420px);
    margin:0 auto 8px;
  }
}

/* FAQ — accordion (presentation inspired by FF, QSP tokens) ------------ */
#faq{
  scroll-margin-top:5rem;
}
.faq-section{
  background:var(--paper);
  color:var(--ink);
  border-top:1px solid var(--line);
}
.faq-section .sec-label{
  color:var(--mute);
  margin-bottom:20px;
}
.faq-header{
  margin-bottom:clamp(32px, 4vw, 48px);
}
.faq-title{
  margin:0;
  max-width:20ch;
}
.faq-accordion{
  max-width:48rem;
  margin:0 auto;
}
.faq-section-title{
  font-family:var(--display);
  font-size:clamp(18px, 1.35vw, 22px);
  font-weight:600;
  color:var(--ink);
  margin:clamp(28px, 3vw, 36px) 0 0.75rem;
  padding-bottom:0.35rem;
  border-bottom:1px solid var(--line);
  scroll-margin-top:6rem;
}
.faq-group:first-child .faq-section-title{
  margin-top:0;
}
.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-question{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  width:100%;
  padding:1.25rem 0;
  text-align:left;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(17px, 1.2vw, 19px);
  line-height:1.35;
  color:var(--ink);
  transition:color 0.3s ease;
}
.faq-question:hover{
  color:var(--blue);
}
.faq-chevron{
  flex-shrink:0;
  color:var(--blue);
  transition:transform 0.3s ease;
}
.faq-item.open .faq-chevron{
  transform:rotate(180deg);
}
.faq-answer{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.faq-item.open .faq-answer{
  grid-template-rows:1fr;
}
.faq-answer-inner{
  overflow:hidden;
  min-height:0;
  padding-bottom:0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(16px, 1.1vw, 18px);
  line-height:1.7;
  color:var(--ink-soft);
}
.faq-item.open .faq-answer-inner{
  padding-bottom:1.25rem;
}
.faq-answer-inner p{
  margin:0;
}
.faq-answer-list{
  margin:0 0 1em;
  padding-left:1.25em;
}
.faq-answer-list li{
  margin-bottom:0.45em;
}
.faq-answer-list li:last-child{
  margin-bottom:0;
}
.faq-answer-inner p:last-child{
  margin-bottom:0;
}
.faq-cta-hint{
  margin:clamp(36px, 4vw, 48px) auto 0;
  max-width:48rem;
  text-align:center;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(16px, 1.1vw, 18px);
  color:var(--mute);
}
.faq-cta-link{
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:0.15em;
  transition:color 0.2s ease;
}
.faq-cta-link:hover{
  color:var(--blue-deep);
}

.approach.approach-light{
  background:var(--paper);
  color:var(--ink);
}
.approach.approach-light .sec-label{
  color:var(--mute);
}
.approach.approach-light .sec-label .num{
  background:var(--paper);
  border-color:var(--line);
  color:var(--ink);
}
.approach.approach-light .sec-title{
  color:var(--ink);
}
.approach.approach-light .approach-copy{
  color:var(--ink-soft);
}
.approach.approach-light .approach-intro-visual{
  border:0;
  background:transparent;
}
.approach.approach-light .swap-grid{
  border-top:1px solid var(--line);
}
.approach.approach-light .swap{
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.approach.approach-light .swap:hover{
  background:rgba(10,10,10,.03);
}
.approach.approach-light .swap .idx{
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  color:transparent;
}
.approach.approach-light .swap .bad{
  color:rgba(10,10,10,.42);
  text-decoration-color:rgba(10,10,10,.18);
}
.approach.approach-light .swap .good{
  color:var(--ink);
}
.approach.approach-light .swap .swap-detail{
  color:rgba(10,10,10,.68);
}
.approach.approach-light .approach-signature .mark{
  color:var(--mute);
}
.approach.approach-light .approach-signature h3{
  color:var(--ink);
}
.approach.approach-light .approach-signature h3 s{
  text-decoration-color:rgba(10,10,10,.25);
  color:rgba(10,10,10,.42);
}
.approach.approach-light .why-qsp-copy-col .sec-title{
  margin-bottom:clamp(20px, 2.5vw, 28px);
}
.approach.approach-light .why-qsp-intro,
.philosophy .why-qsp-intro{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin:0 0 clamp(24px, 3vw, 32px);
}
.approach.approach-light .why-qsp-intro p,
.philosophy .why-qsp-intro p{
  margin:0;
  max-width:50ch;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(18px, 1.5vw, 24px);
  line-height:1.45;
  color:var(--ink-soft);
}
.approach.approach-light .why-qsp-pivot{
  margin:0 0 clamp(20px, 2.5vw, 28px);
  max-width:50ch;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(18px, 1.5vw, 24px);
  line-height:1.45;
  color:var(--ink-soft);
}
.approach.approach-light .why-qsp-pivot em{
  display:inline-block;
  font-family:var(--serif);
  font-style:normal;
  font-weight:500;
  font-size:calc(1em * var(--serif-support-scale));
  line-height:1.2;
  letter-spacing:0;
  vertical-align:baseline;
  padding:0 .1em .06em .04em;
  margin-right:-0.03em;
  overflow:visible;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
.approach.approach-light .why-qsp-prose,
.philosophy .why-qsp-prose{
  margin:0;
  max-width:50ch;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(18px, 1.5vw, 24px);
  line-height:1.45;
  color:var(--ink-soft);
}
.approach.approach-light .why-qsp-benefits,
.philosophy .why-qsp-benefits{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  max-width:44ch;
}
.approach.approach-light .why-qsp-benefits li,
.philosophy .why-qsp-benefits li{
  margin:0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(17px, 1.4vw, 22px);
  line-height:1.4;
  color:var(--ink);
}
.philosophy .phil-block .why-qsp-prose,
.philosophy .phil-block .why-qsp-intro{
  margin-bottom:0;
}
.philosophy .phil-block .why-qsp-intro{
  margin-bottom:clamp(24px, 3vw, 32px);
}

@media (max-width:860px){
  .approach-intro-split{
    grid-template-columns:1fr;
  }
  .approach-intro-visual{
    min-height:240px;
  }
  .approach.approach-light .why-qsp-pivot{
    max-width:none;
  }
  .swap-grid{ grid-template-columns:1fr; }
  .swap{ border-right:none; }
  .approach-signature{ grid-template-columns:1fr; }
  .approach-signature .mark{ writing-mode:horizontal-tb; transform:none; }
  #approach .journey-rail{
    flex-direction:column;
    gap:10px;
  }
  #approach .journey-connector{
    display:none;
  }
  #approach .journey-step{
    flex:1 1 auto;
    width:100%;
    min-width:0;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    padding:12px 14px;
  }
  #approach .journey-panel{
    grid-template-columns:1fr;
    margin-top:28px;
  }
  #approach .journey-panel-visual{
    aspect-ratio:16/11;
    max-height:52vh;
  }
}

/* Brands section ------------------------------------------------------- */
.sect-split .wrap{
  display:grid;
  grid-template-columns:minmax(0, 380px) minmax(0, 1fr);
  gap:clamp(40px, 6vw, 80px);
  align-items:start;
}
.sect-split .side{ position:sticky; top:100px; }
.sect-split .side .sec-label{ margin-bottom:20px; }
.sect-split .side h2{
  font-size:clamp(44px, 5vw, 76px); line-height:.92; letter-spacing:-.035em; font-weight:800;
  margin:0 0 20px;
}
.sect-split .side h2 em{
  font-family:var(--serif); font-style:normal; font-weight:500;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.sect-split .side p{
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support); font-size:16px; line-height:1.5; color:var(--mute); max-width:34ch; margin:0 0 28px;
}

.stack{ display:grid; gap:24px; }
.big-stmt{
  font-size:clamp(32px, 3.8vw, 60px); line-height:1; letter-spacing:-.03em; font-weight:700;
  color:var(--ink);
}
.big-stmt .fade{ color:var(--mute); }
.big-stmt em{
  font-family:var(--serif); font-style:normal; font-weight:500;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

.chip-row{ display:flex; flex-wrap:wrap; gap:10px; }
.chip{
  padding:10px 18px; border:1px solid var(--line); border-radius:999px;
  font-size:14px; letter-spacing:-.005em; background:#fff;
  display:inline-flex; align-items:center; gap:8px;
}
.chip .d{ width:6px; height:6px; border-radius:50%; background:var(--blue); }
.chip.on{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.chip.on .d{ background:var(--blue-soft); }

/* Dynamic Ads — local advertisers (dark) ------------------------------ */
.dynamic-ads{
  background:var(--ink);
  color:var(--paper);
  position:relative;
  overflow:hidden;
  padding:clamp(64px, 8vw, 96px) 0;
}
.dynamic-ads .sec-label{
  color:rgba(245,242,237,.6);
}
.dynamic-ads .sec-label .num{
  background:transparent;
  border-color:rgba(245,242,237,.25);
  color:var(--paper);
}
.dynamic-ads-title{
  margin:0 0 clamp(20px, 2.5vw, 28px);
  max-width:none;
  color:var(--paper);
}
.dynamic-ads-title-line{
  white-space:nowrap;
}
.dynamic-ads-hero{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(300px, 50%);
  gap:clamp(24px, 4vw, 48px);
  align-items:start;
  margin-bottom:clamp(28px, 4vw, 40px);
}
.dynamic-ads-col{
  display:flex;
  flex-direction:column;
  gap:0;
  min-width:0;
}
.dynamic-ads-col .sec-label{
  margin:0 0 20px;
}
.dynamic-ads-copy{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.dynamic-ads-hero .dynamic-ads-screen{
  margin:0;
  align-self:start;
}
.dynamic-ads-copy p{
  margin:0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(16px, 1.35vw, 18px);
  line-height:1.55;
  color:rgba(245,242,237,.82);
  max-width:48ch;
}
.dynamic-ads-screen{
  margin:0;
  width:100%;
}
.screen-bezel{
  position:relative;
  border-radius:16px;
  padding:10px;
  background:linear-gradient(145deg, #1a1a1a 0%, #0d0d0d 100%);
  border:1px solid rgba(245,242,237,.12);
  box-shadow:
    0 24px 56px rgba(0,0,0,.5),
    0 0 0 1px rgba(91,158,248,.08),
    inset 0 1px 0 rgba(255,255,255,.06);
}
.screen-bezel::after{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:10px;
  pointer-events:none;
  background:repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(255,255,255,.015) 2px,
    rgba(255,255,255,.015) 4px
  );
}
.screen-frame{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:10px;
  background:linear-gradient(180deg, #1e2433 0%, #121820 100%);
}
.screen-frame img,
.screen-frame video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.screen-frame--main{
  /* QSP_dooh.mp4 — 2400×1792 (~4:3); contain shows full frame */
  aspect-ratio:2400 / 1792;
  width:100%;
}
.screen-frame--main video{
  object-fit:contain;
}
.screen-meta{
  display:flex;
  justify-content:space-between;
  margin-top:12px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(245,242,237,.4);
}
.dynamic-ads-principles{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  border-top:1px solid rgba(245,242,237,.18);
  margin-bottom:clamp(28px, 4vw, 40px);
}
.dynamic-ads-principle{
  padding:36px 24px 40px;
  border-right:1px solid rgba(245,242,237,.18);
  border-bottom:1px solid rgba(245,242,237,.18);
  display:flex;
  flex-direction:column;
  gap:14px;
  min-height:220px;
  transition:background .3s ease;
}
.dynamic-ads-principle:last-child{
  border-right:none;
}
.dynamic-ads-principle:hover{
  background:rgba(245,242,237,.04);
}
.dynamic-ads-principle-num{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  color:rgba(245,242,237,.45);
}
.dynamic-ads-principle-title{
  margin:0;
  font-size:clamp(26px, 2.4vw, 36px);
  line-height:1.05;
  letter-spacing:-.03em;
  font-weight:700;
  color:var(--paper);
}
.dynamic-ads-principle-detail{
  margin:0;
  margin-top:1em;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:14px;
  line-height:1.45;
  color:rgba(245,242,237,.78);
}
.dynamic-ads-outro{
  max-width:62ch;
  margin:0 0 clamp(28px, 4vw, 40px);
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(17px, 1.45vw, 22px);
  line-height:1.5;
  color:rgba(245,242,237,.72);
}
.dynamic-ads-cta{
  padding-top:8px;
  border-top:1px solid rgba(245,242,237,.12);
}
.dynamic-ads-cta-prompt{
  margin:0 0 16px;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:17px;
  line-height:1.45;
  color:rgba(245,242,237,.85);
  max-width:32ch;
}
.dynamic-ads-cta-btn{
  background:var(--paper) !important;
  color:var(--ink) !important;
}
.dynamic-ads-cta-btn:hover{
  background:var(--blue-soft) !important;
  color:var(--paper) !important;
}

@media (max-width:1100px){
  .dynamic-ads-principles{
    grid-template-columns:repeat(2, 1fr);
  }
  .dynamic-ads-principle:nth-child(2n){
    border-right:none;
  }
  .dynamic-ads-principle:nth-child(5){
    grid-column:1 / -1;
    border-right:none;
  }
}
@media (max-width:860px){
  .dynamic-ads-hero{
    grid-template-columns:1fr;
    gap:clamp(20px, 3vw, 32px);
  }
  .dynamic-ads-title-line{
    white-space:normal;
  }
  .dynamic-ads-hero .dynamic-ads-screen{
    max-width:520px;
    margin:0 auto;
    width:100%;
  }
}
@media (max-width:600px){
  .dynamic-ads-principles{
    grid-template-columns:1fr;
  }
  .dynamic-ads-principle,
  .dynamic-ads-principle:nth-child(2n),
  .dynamic-ads-principle:nth-child(5){
    border-right:none;
    grid-column:auto;
  }
  .dynamic-ads-outro{
    max-width:none;
  }
}

/* Clubs — editorial split section ------------------------------------- */
.clubs-split{
  background:linear-gradient(180deg, var(--paper) 0%, #f3f6ff 100%);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.clubs-wrap{
  display:grid;
  grid-template-columns:minmax(0, 380px) minmax(0, 1fr);
  gap:clamp(40px, 6vw, 80px);
  align-items:start;
}
.clubs-col-side{
  position:sticky;
  top:100px;
  display:flex;
  flex-direction:column;
  gap:0;
}
.clubs-head .sec-label{
  margin-bottom:20px;
}
.clubs-head h2{
  font-size:clamp(44px, 5vw, 76px);
  line-height:.92;
  letter-spacing:-.035em;
  font-weight:800;
  margin:0 0 20px;
}
.clubs-head h2 em{
  font-family:var(--serif);
  font-style:normal;
  font-weight:500;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.clubs-editorial .clubs-tagline{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:0 0 28px;
  max-width:34ch;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:15px;
  line-height:1.45;
  color:var(--ink);
}
.clubs-editorial .clubs-tagline span{
  display:block;
  color:inherit;
}
.clubs-side-cta{
  margin-top:4px;
}
.clubs-side-cta-prompt{
  margin:0 0 14px;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:15px;
  line-height:1.45;
  color:var(--ink);
  max-width:28ch;
}
.clubs-cta{
  background:var(--blue) !important;
  color:#fff !important;
}
.clubs-cta:hover{
  background:var(--blue-deep) !important;
}
.clubs-index{
  margin:0 0 28px;
  padding:0;
}
.clubs-index-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.clubs-index-item{
  display:flex;
  align-items:baseline;
  gap:12px;
  padding:10px 12px;
  margin:0 -12px;
  border-radius:10px;
  font-size:14px;
  letter-spacing:-.01em;
  color:var(--mute);
  transition:background .2s ease, color .2s ease;
}
.clubs-index-item:hover{
  background:rgba(26,63,204,.06);
  color:var(--ink);
}
.clubs-index-item.is-active{
  background:rgba(26,63,204,.1);
  color:var(--blue);
}
.clubs-index-num{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.14em;
  min-width:1.6em;
  opacity:.7;
}
.clubs-index-item.is-active .clubs-index-num{
  opacity:1;
  font-weight:600;
}
.clubs-index-label{
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
}
.clubs-flow{
  gap:40px;
}
.clubs-intro{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.clubs-intro-mobile{
  display:none;
}
.clubs-intro p{
  margin:0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(16px, 1.35vw, 18px);
  line-height:1.55;
  color:var(--ink-soft);
  max-width:58ch;
}
.clubs-flow-heading{
  margin:0;
  padding-top:8px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--blue);
  font-weight:600;
}
.clubs-pillars{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0;
  padding-left:28px;
}
.clubs-pillars::before{
  content:"";
  position:absolute;
  left:7px;
  top:12px;
  bottom:12px;
  width:2px;
  background:linear-gradient(180deg, rgba(26,63,204,.35) 0%, rgba(26,63,204,.12) 100%);
  border-radius:2px;
}
.clubs-pillar{
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0 28px;
  padding:40px 0 48px;
  scroll-margin-top:100px;
}
.clubs-pillar:first-child{
  padding-top:16px;
}
.clubs-pillar:last-child{
  padding-bottom:24px;
}
.clubs-pillar::before{
  content:"";
  position:absolute;
  left:-21px;
  top:48px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--paper);
  border:2px solid rgba(26,63,204,.45);
  box-shadow:0 0 0 4px #f3f6ff;
}
.clubs-pillar-num{
  font-family:var(--mono);
  font-size:clamp(28px, 3vw, 40px);
  font-weight:600;
  letter-spacing:-.02em;
  line-height:1;
  color:rgba(26,63,204,.22);
  padding-top:4px;
}
.clubs-pillar-body{
  min-width:0;
}
.clubs-pillar-title{
  margin:0 0 14px;
  font-size:clamp(24px, 2.6vw, 36px);
  line-height:1.08;
  letter-spacing:-.03em;
  font-weight:700;
  color:var(--ink);
}
.clubs-pillar-text{
  margin:0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:16px;
  line-height:1.55;
  color:var(--mute);
  max-width:52ch;
}

@media (max-width:1024px){
  #clubs .clubs-wrap{
    grid-template-columns:1fr;
    display:flex;
    flex-direction:column;
    gap:clamp(28px, 5vw, 40px);
  }
  #clubs .clubs-col-side,
  #clubs .clubs-col-content{
    display:contents;
  }
  #clubs .clubs-col-side{
    position:static;
  }
  #clubs .clubs-head{
    order:1;
  }
  #clubs .clubs-head h2{
    font-size:clamp(48px, 11vw, 72px);
    margin-bottom:0;
  }
  #clubs .clubs-intro{
    order:2;
  }
  #clubs .clubs-intro-mobile{
    display:block;
  }
  #clubs .clubs-intro-desktop{
    display:none;
  }
  #clubs .clubs-flow-heading{
    order:3;
    padding-top:0;
  }
  #clubs .clubs-pillars{
    order:4;
    padding-left:0;
  }
  #clubs .clubs-rail{
    order:5;
    display:flex;
    flex-direction:column;
    gap:24px;
    margin-top:8px;
  }
  #clubs .clubs-index{
    display:none;
  }
  #clubs .clubs-tagline{
    margin:0;
    max-width:none;
    font-size:clamp(18px, 4.5vw, 22px);
    gap:8px;
  }
  #clubs .clubs-side-cta{
    margin-top:0;
  }
  #clubs .clubs-side-cta-prompt{
    display:none;
  }
  #clubs .clubs-pillars::before{
    display:none;
  }
  #clubs .clubs-pillar{
    grid-template-columns:1fr;
    gap:12px;
    padding:32px 0;
    border-top:1px solid var(--line);
    scroll-margin-top:80px;
  }
  #clubs .clubs-pillar:first-child{
    border-top:none;
    padding-top:8px;
  }
  #clubs .clubs-pillar::before{
    display:none;
  }
  #clubs .clubs-pillar-num{
    font-size:11px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--blue);
    padding-top:0;
  }
}

/* Teams section ------------------------------------------------------- */
.teams-section{
  background:var(--paper);
}
.teams-hero{
  position:relative;
  width:100%;
  aspect-ratio:21/9;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
}
.teams-hero-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 42%;
}
.teams-hero-scrim{
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(10,10,10,.08) 0%,
    rgba(10,10,10,.22) 42%,
    rgba(10,10,10,.62) 100%
  );
  pointer-events:none;
}
.teams-hero-copy{
  position:relative;
  z-index:1;
  width:100%;
  padding-bottom:clamp(28px, 4.5vw, 56px);
}
.teams-hero-label{
  color:rgba(245,242,237,.6);
}
.teams-hero-label .num{
  background:transparent;
  border-color:rgba(245,242,237,.25);
  color:var(--paper);
}
.teams-hero-title{
  margin:0;
  max-width:min(92vw, 18ch);
  font-family:var(--display);
  font-size:clamp(42px, 6.2vw, 96px);
  line-height:.92;
  letter-spacing:-.035em;
  font-weight:800;
  color:#fff;
}
.teams-body{
  background:var(--paper-2);
  border-top:1px solid var(--line);
}
.teams-lead,
.teams-combine,
.teams-copy-block p{
  margin:0 0 1.15em;
  max-width:760px;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(18px, 1.5vw, 24px);
  line-height:1.5;
  color:var(--ink-soft);
}
.teams-combine{
  margin-top:clamp(28px, 3.5vw, 40px);
  color:var(--ink);
  font-weight:600;
}
#teams .teams-principles{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  border-top:1px solid var(--line);
  margin-top:32px;
  margin-bottom:clamp(32px, 4vw, 48px);
}
#teams .teams-principle{
  padding:36px 24px 40px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:14px;
  min-height:220px;
  background:var(--paper-2);
  transition:background .3s ease;
}
#teams .teams-principle:last-child{
  border-right:none;
}
#teams .teams-principle:hover{
  background:var(--paper);
}
#teams .teams-principle-num{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  color:var(--blue);
  opacity:.75;
}
#teams .teams-principle-title{
  margin:0;
  font-size:clamp(26px, 2.4vw, 36px);
  line-height:1.05;
  letter-spacing:-.03em;
  font-weight:700;
  color:var(--ink);
  min-height:calc(2 * 1.05em);
}
#teams .teams-principle-detail{
  margin:0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:14px;
  line-height:1.45;
  color:var(--mute);
}
@media (max-width:1100px){
  #teams .teams-principles{
    grid-template-columns:repeat(2, 1fr);
  }
  #teams .teams-principle:nth-child(2n){
    border-right:none;
  }
  #teams .teams-principle:nth-child(5){
    grid-column:1 / -1;
    border-right:none;
  }
}
@media (max-width:600px){
  #teams .teams-principles{
    grid-template-columns:1fr;
  }
  #teams .teams-principle,
  #teams .teams-principle:nth-child(2n),
  #teams .teams-principle:nth-child(5){
    border-right:none;
    grid-column:auto;
  }
}
.teams-copy-block{
  margin-top:clamp(8px, 1.5vw, 16px);
  max-width:760px;
}
.teams-copy-block p:last-child{
  margin-bottom:0;
}
.teams-manifesto{
  margin-top:clamp(40px, 5vw, 64px);
  padding-top:clamp(32px, 4vw, 48px);
  border-top:1px solid var(--line);
  max-width:760px;
}
.philosophy .phil-vision-points li::before{
  content:"";
  position:absolute;
  left:0;
  top:.62em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--blue-gradient);
}
.teams-manifesto p,
.teams-manifesto-block p{
  margin:0 0 .22em;
  font-family:var(--display);
  font-size:clamp(28px, 3.4vw, 52px);
  line-height:1.05;
  letter-spacing:-.03em;
  font-weight:700;
  color:var(--ink);
}
.teams-manifesto p:last-child{
  margin-bottom:0;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.teams-manifesto-block{
  display:inline-block;
  vertical-align:top;
  max-width:100%;
}
.teams-manifesto-block .teams-manifesto-accent{
  margin-bottom:0;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.teams-manifesto-block > .statement-fr{
  white-space:nowrap;
  text-align:right;
  color:var(--ink-soft);
  opacity:.75;
}
@media (max-width:720px){
  .teams-hero{
    aspect-ratio:16/10;
  }
  .teams-hero-title{
    max-width:none;
    font-size:clamp(34px, 9vw, 52px);
  }
}

/* Philosophy ---------------------------------------------------------- */
.philosophy{
  background:var(--paper);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative; overflow:hidden;
}
.phil-title{
  font-size:clamp(80px, 16vw, 260px);
  line-height:.82;
  letter-spacing:-.045em;
  font-weight:800;
  margin:0 0 60px;
  text-align:left;
}
.phil-title em{
  font-family:var(--serif); font-style:normal; font-weight:500;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.phil-duo{
  display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--line);
  border:1px solid var(--line); border-radius:20px; overflow:hidden;
}
.phil-card{
  background:var(--paper);
  padding:56px 40px;
  display:flex; flex-direction:column; gap:24px;
  min-height:340px;
  transition:background .3s ease, color .3s ease;
}
.phil-card.serious:hover{ background:var(--ink); color:var(--paper); }
.phil-card.play:hover{ background:var(--blue-gradient); color:#fff; }
.phil-card .k{
  font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; opacity:.55;
}
.phil-card h3{
  font-size:clamp(48px, 6vw, 92px); line-height:.92; letter-spacing:-.035em; font-weight:800;
  margin:0 0 1.15rem;
  position:relative;
}
.phil-card.play h3{
  font-family:var(--serif); font-style:normal; font-weight:500; letter-spacing:-.01em;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  transition:color .3s ease;
}
.phil-card.play:hover h3{
  background:none;
  color:#fff;
  -webkit-text-fill-color:#fff;
}
.phil-card .qualia{
  display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:auto;
  font-size:17px; color:inherit; opacity:.8;
}
.phil-card .qualia span{ display:inline-flex; align-items:center; gap:8px; }
.phil-card .qualia span:before{
  content:""; width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.6;
}

.phil-signature{
  text-align:left; margin-top:56px;
  font-size:clamp(22px, 2vw, 30px); font-family:var(--serif); font-style:normal; font-weight:500;
  color:var(--ink);
}
.phil-signature b{
  font-family:var(--display); font-style:normal; font-weight:700;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* Philosophy — Mission, Vision, Promise, Principles */
.phil-framework{
  margin-top:clamp(80px, 10vw, 120px);
}
.phil-divider{
  border-top:1px solid var(--line);
  margin:0 0 clamp(40px, 5vw, 56px);
}
.phil-framework-kicker{
  margin:0 0 clamp(48px, 6vw, 72px);
  text-align:left;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--mute);
}
.phil-framework-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(24px, 3vw, 48px);
  align-items:stretch;
  margin-bottom:clamp(48px, 6vw, 72px);
}
.phil-framework-col-copy .phil-block{
  margin-bottom:clamp(32px, 4vw, 48px);
}
.phil-framework-col-copy .phil-block:last-child{
  margin-bottom:0;
}
.phil-framework-col-promise{
  display:flex;
  min-width:0;
}
.phil-framework-col-promise .phil-promise{
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  margin-bottom:0;
}
.philosophy .phil-framework-col-copy .why-qsp-prose,
.philosophy .phil-framework-col-copy .why-qsp-intro p,
.philosophy .phil-framework-col-copy .why-qsp-benefits{
  max-width:none;
}
.phil-principles-wrap{
  display:flex;
  justify-content:flex-start;
}
.phil-principles-block{
  width:100%;
  max-width:min(95vw, 960px);
  margin-bottom:0;
  text-align:left;
}
.phil-principles-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:0;
  border-top:1px solid var(--line);
}
.phil-principle-row{
  display:grid;
  grid-template-columns:minmax(0, 0.42fr) minmax(0, 0.58fr);
  gap:clamp(20px, 3vw, 48px);
  align-items:start;
  padding:clamp(20px, 2.5vw, 28px) 0;
  border-bottom:1px solid var(--line);
}
.phil-principle-title{
  font-family:var(--support);
  font-weight:700;
  font-size:clamp(17px, 1.4vw, 22px);
  line-height:1.4;
  color:var(--ink);
  letter-spacing:var(--tracking-support);
}
.phil-principle-detail{
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(17px, 1.4vw, 22px);
  line-height:1.4;
  color:var(--ink-soft);
}
.phil-block{
  margin-bottom:clamp(40px, 5vw, 56px);
}
.phil-block-title{
  margin:0 0 20px;
  font-family:var(--display);
  font-size:clamp(28px, 3vw, 40px);
  line-height:1.05;
  letter-spacing:-.03em;
  font-weight:800;
  color:var(--ink);
}
.phil-promise{
  background:var(--ink);
  color:var(--paper);
  border-radius:20px;
  padding:clamp(40px, 5vw, 64px) clamp(28px, 4vw, 48px);
  text-align:left;
}
.phil-promise-title{
  margin:0 0 clamp(24px, 3vw, 36px);
  font-family:var(--display);
  font-size:clamp(22px, 2vw, 28px);
  line-height:1.1;
  letter-spacing:-.02em;
  font-weight:700;
  color:var(--paper);
}
.phil-promise-lines{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.25em;
}
.phil-promise-line{
  margin:0;
  font-family:var(--display);
  font-size:clamp(28px, 4.2vw, 56px);
  line-height:1.15;
  letter-spacing:-.03em;
  font-weight:700;
  color:var(--paper);
}
.philosophy .why-qsp-benefits{
  max-width:50ch;
}
.philosophy .phil-vision-points li{
  position:relative;
  padding-left:1.35em;
  color:var(--ink-soft);
}
@media (max-width:720px){
  .phil-principle-row{
    grid-template-columns:1fr;
    gap:8px;
  }
}

@media (max-width:900px){
  .phil-framework-split{
    grid-template-columns:1fr;
  }
  .phil-framework-col-promise .phil-promise{
    min-height:auto;
  }
}
@media (max-width:720px){ .phil-duo{ grid-template-columns:1fr; } }

/* Final CTA — Let's Talk / contact ------------------------------------- */
.final{
  background:var(--ink);
  color:var(--paper);
  border-top:1px solid rgba(245,242,237,.12);
}
.final .sec-label{
  color:rgba(245,242,237,.6);
  margin-bottom:20px;
}
.final .sec-label .num{
  background:transparent;
  border-color:rgba(245,242,237,.25);
  color:var(--paper);
}
.final-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(280px, 40%);
  gap:clamp(42px, 6vw, 84px);
  align-items:start;
}
.final-main{
  min-width:0;
}
.final-statement{
  margin:0;
  font-size:clamp(58px, 10vw, 170px);
  line-height:.86;
  letter-spacing:-.045em;
  font-weight:800;
  max-width:12ch;
  color:var(--paper);
}
.final-statement em{
  font-family:var(--serif);
  font-style:normal;
  font-weight:500;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.final-form-col{
  padding-top:clamp(36px, 4vw, 52px);
  max-width:42ch;
}
.final-contact-card{
  padding:18px 18px 16px;
  border:1px solid rgba(245,242,237,.16);
  border-radius:18px;
  background:rgba(245,242,237,.04);
  box-shadow:0 18px 44px rgba(0,0,0,.35);
  margin-bottom:14px;
}
.final-contact-kicker{
  margin:0 0 10px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(245,242,237,.6);
}
.final-contact-items{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.final-contact-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(245,242,237,.04);
  border:1px solid rgba(245,242,237,.10);
  transition:transform .2s ease, border-color .2s ease, background .2s ease;
}
.final-contact-item:hover{
  transform:translateY(-1px);
  border-color:rgba(91,158,248,.55);
  background:rgba(91,158,248,.10);
}
.final-contact-icon{
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(245,242,237,.06);
  border:1px solid rgba(245,242,237,.12);
  color:var(--blue-soft);
  flex:0 0 auto;
}
.final-contact-label{
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:15px;
  line-height:1.3;
  color:var(--paper);
  overflow-wrap:anywhere;
}
.final-reach-card{
  margin-top:14px;
}
.final-form-lead{
  margin:0 0 20px;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:clamp(15px, 1.25vw, 17px);
  line-height:1.5;
  color:rgba(245,242,237,.82);
}
.final-form{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:stretch;
}
.final-form-input{
  flex:1 1 200px;
  min-width:0;
  margin:0;
  padding:14px 18px;
  border:1px solid rgba(245,242,237,.28);
  border-radius:999px;
  background:rgba(245,242,237,.06);
  color:var(--paper);
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:15px;
  line-height:1.35;
  transition:border-color .2s ease, background .2s ease;
}
.final-form-input::placeholder{
  color:rgba(245,242,237,.45);
}
.final-form-input:hover{
  border-color:rgba(245,242,237,.42);
}
.final-form-input:focus{
  outline:none;
  border-color:var(--blue-soft);
  background:rgba(245,242,237,.1);
}
.final-form-submit{
  flex:0 0 auto;
  margin:0;
  padding:14px 28px;
  border:none;
  border-radius:999px;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--support);
  font-weight:600;
  font-size:14px;
  letter-spacing:var(--tracking-support-ui);
  cursor:pointer;
  transition:transform .2s ease, background .2s ease, color .2s ease;
}
.final-form-submit:hover{
  transform:translateY(-1px);
  background:var(--blue-soft);
  color:var(--paper);
}
.final-form-error{
  margin:12px 0 0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:14px;
  line-height:1.35;
  color:#ffb4b4;
}
.final-form-success{
  margin:0;
  padding:16px 18px;
  border-radius:14px;
  border:1px solid rgba(91,158,248,.35);
  background:rgba(91,158,248,.12);
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:15px;
  line-height:1.5;
  color:var(--paper);
}
.final-form-submit:disabled{
  opacity:.65;
  cursor:not-allowed;
  transform:none;
}
@media (max-width:900px){
  .final-layout{
    grid-template-columns:1fr;
    gap:clamp(28px, 4vw, 40px);
  }
  .final-form-col{
    padding-top:0;
    max-width:none;
  }
  .final-statement{
    max-width:none;
  }
}

/* Footer --------------------------------------------------------------- */
.site-footer{
  background:#fff;
  color:var(--ink);
  border-top:1px solid var(--line);
}
.site-footer-main{
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(0, 1.85fr);
  gap:clamp(40px, 6vw, 88px);
  padding:clamp(56px, 7vw, 88px) 0;
}
.site-footer-brand{
  max-width:36ch;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.site-footer-logo-link{
  display:inline-flex;
  margin-bottom:20px;
  color:inherit;
}
.site-footer-logo-band{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(4px, 0.6vw, 8px);
}
.site-footer-logo-wrap{
  width:clamp(72px, 9vw, 104px);
  height:clamp(72px, 9vw, 104px);
  margin:0 auto;
}
.site-footer-logo-q{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.site-footer-brand-text{
  letter-spacing:var(--tracking-support-ui);
  word-spacing:.05em;
  font-size:clamp(22px, 2.4vw, 32px);
  line-height:1;
  text-transform:uppercase;
}
.site-footer-brand-serious{
  font-family:var(--display);
  font-weight:800;
  letter-spacing:-.025em;
  color:var(--ink);
}
.site-footer-brand-play{
  font-family:var(--serif);
  font-weight:500;
  font-style:normal;
  text-transform:none;
  letter-spacing:0;
  font-size:1.2em;
  background:var(--blue-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.site-footer-tagline{
  margin:0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:15px;
  line-height:1.55;
  color:var(--mute);
}
.site-footer-columns{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:clamp(24px, 4vw, 48px);
}
.site-footer-col-title{
  margin:0 0 16px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--mute);
  font-weight:500;
}
.site-footer-links{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.site-footer-links a{
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:15px;
  line-height:1.35;
  color:var(--ink-soft);
  overflow-wrap:anywhere;
  transition:color .2s ease;
}
.site-footer-links a:hover{
  color:var(--blue);
}
.site-footer-bottom{
  border-top:1px solid var(--line);
}
.site-footer-bottom-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding:20px 0 24px;
}
.site-footer-copy{
  margin:0;
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:13px;
  color:var(--mute);
}
.site-footer-legal{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 20px;
}
.site-footer-legal a{
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-size:13px;
  color:var(--mute);
  transition:color .2s ease;
}
.site-footer-legal a:hover{
  color:var(--ink);
}
@media (max-width:900px){
  .site-footer .wrap{
    padding-left:clamp(28px, 7vw, 44px);
    padding-right:clamp(28px, 7vw, 44px);
  }
  .site-footer-main{
    grid-template-columns:1fr;
    gap:24px;
    padding:clamp(40px, 7vw, 52px) 0 clamp(28px, 5vw, 36px);
  }
  .site-footer-brand{
    max-width:none;
    width:100%;
    align-items:center;
    text-align:center;
  }
  .site-footer-logo-link{
    margin-bottom:14px;
  }
  .site-footer-logo-band{
    align-items:center;
  }
  .site-footer-logo-wrap{
    margin:0 auto;
  }
  .site-footer-tagline{
    max-width:28ch;
    margin-inline:auto;
    margin-bottom:8px;
  }
  .site-footer-columns{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:18px clamp(16px, 4vw, 28px);
  }
  .site-footer-col:last-child{
    grid-column:1 / -1;
    margin-top:2px;
  }
  .site-footer-col-title{
    margin-bottom:8px;
  }
  .site-footer-links{
    gap:4px;
  }
  .site-footer-links a{
    line-height:1.3;
    padding:2px 0;
  }
}
@media (max-width:560px){
  .site-footer .wrap{
    padding-left:clamp(32px, 9vw, 48px);
    padding-right:clamp(32px, 9vw, 48px);
  }
  .site-footer-main{
    gap:20px;
    padding:32px 0 24px;
  }
  .site-footer-logo-link{
    margin-bottom:10px;
  }
  .site-footer-logo-wrap{
    width:64px;
    height:64px;
  }
  .site-footer-brand-text{
    font-size:20px;
  }
  .site-footer-tagline{
    font-size:14px;
    line-height:1.45;
    max-width:26ch;
    margin-bottom:10px;
  }
  .site-footer-columns{
    gap:14px 12px;
  }
  .site-footer-col:last-child{
    margin-top:4px;
  }
  .site-footer-col-title{
    margin-bottom:6px;
    font-size:9px;
    letter-spacing:.16em;
  }
  .site-footer-links{
    gap:2px;
  }
  .site-footer-links a{
    font-size:14px;
    line-height:1.25;
    padding:1px 0;
  }
  .site-footer-bottom-inner{
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding:14px 0 max(20px, env(safe-area-inset-bottom, 0px));
  }
}

/* Tweaks panel -------------------------------------------------------- */
.tweaks{
  position:fixed;
  bottom:max(20px, env(safe-area-inset-bottom, 0px));
  right:max(20px, env(safe-area-inset-right, 0px));
  z-index:100;
  background:#fff; color:var(--ink);
  border:1px solid var(--line); border-radius:16px;
  padding:16px;
  width:min(280px, calc(100vw - 32px));
  max-height:min(70vh, 480px);
  overflow-y:auto;
  box-shadow:0 30px 60px -30px rgba(0,0,0,.35);
  font-size:13px;
}
.tweaks h5{
  margin:0 0 12px; display:flex; align-items:center; justify-content:space-between;
  font-size:11px; letter-spacing:.2em; text-transform:uppercase; font-family:var(--mono); color:var(--mute);
  font-weight:500;
}
.tweaks h5 .close{ cursor:pointer; color:var(--ink); }
.tweak-row{ display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--line); }
.tweak-row:last-child{ border-bottom:none; }
.tweak-row label{ font-size:12px; color:var(--ink-soft); }
.tweak-buttons{ display:flex; gap:4px; }
.tweak-buttons button{
  padding:4px 10px; border:1px solid var(--line); border-radius:999px;
  font-size:11px; background:#fff; color:var(--ink-soft); transition:all .15s ease;
  font-family:var(--mono); letter-spacing:.08em;
}
.tweak-buttons button.active{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

/* Reveal on scroll ---------------------------------------------------- */
.reveal{ opacity:0; transform:translateY(24px); transition: opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  .ticker-track{
    animation:none !important;
    transform:none !important;
  }
  .reveal{
    opacity:1;
    transform:none;
    transition:none;
  }
  .swoosh-line{
    animation:none;
    stroke-dashoffset:0;
  }
}

/* Brush swoosh animation */
.swoosh-line{
  stroke-dasharray:2400;
  stroke-dashoffset:2400;
  animation: drawSwoosh 1.8s cubic-bezier(.3,.9,.2,1) .4s forwards;
}
@keyframes drawSwoosh{ to{ stroke-dashoffset:0; } }

/* Accent variant: charcoal -------------------------------------------- */
body[data-accent="charcoal"],
body[data-accent="electric"],
body[data-accent="sunset"] {
  --blue:#1A3FCC;
  --blue-soft:#5B9EF8;
  --blue-deep:#1A3FCC;
  --cyan:#5B9EF8;
  --brush:#1A3FCC;
  --blue-gradient:linear-gradient(135deg, #5B9EF8 0%, #1A3FCC 100%);
}

/* Layout variant */
body[data-layout="compact"] .hero{ padding:100px 0 30px; min-height:auto; }
body[data-layout="compact"] .wwd,
body[data-layout="compact"] .approach,
body[data-layout="compact"] .qsp-system,
body[data-layout="compact"] .founder,
body[data-layout="compact"] .faq-section,
body[data-layout="compact"] .sect-split,
body[data-layout="compact"] .dynamic-ads,
body[data-layout="compact"] .philosophy,
body[data-layout="compact"] .final,
body[data-layout="compact"] .teams-body{
  padding:80px 0;
}

/* Advertiser page ------------------------------------------------------ */
.advertiser-hero{
  background-image:url("images/paddle-tennis-white-line.jpg");
}
.advertiser-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 25% 40%, rgba(91,158,248,.36), transparent 48%),
    linear-gradient(180deg, rgba(10,10,10,.28) 0%, rgba(10,10,10,.72) 100%);
  z-index:0;
}
.advertiser-hero .dot-row{
  gap:10px;
}
.advertiser-hero .dot-row button.d{
  appearance:none;
  border:none;
  padding:0;
  cursor:pointer;
}
.quote-card{
  width:min(760px, 100%);
  display:grid;
  gap:14px;
  color:#fff;
  background:rgba(10,10,10,.5);
  border:1px solid rgba(245,242,237,.28);
  border-radius:20px;
  padding:clamp(18px, 2.6vw, 28px);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:transform .2s ease, border-color .2s ease, background .2s ease;
}
.quote-card:hover{
  transform:translateY(-2px);
  border-color:rgba(245,242,237,.7);
  background:rgba(10,10,10,.62);
}
.quote-card .quote-label{
  font-family:var(--mono);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:11px;
  color:rgba(245,242,237,.72);
}
.quote-card blockquote{
  margin:0;
  font-size:clamp(24px, 2.6vw, 36px);
  line-height:1.12;
  letter-spacing:-.02em;
  font-weight:600;
}
.quote-card p{
  margin:0;
  color:rgba(245,242,237,.86);
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
}
.quote-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  border-bottom:1px solid rgba(245,242,237,.45);
  padding-bottom:2px;
  font-size:13px;
  letter-spacing:.02em;
}
.advertiser-priority-ctas{
  width:min(980px, 100%);
}
.advertiser-tertiary{
  width:min(980px, 100%);
}
.advertiser-ticker .ticker-track span{
  color:var(--paper);
}

.case-page{
  min-height:100vh;
  background:linear-gradient(180deg, #0a0a0a 0%, #141414 100%);
  color:var(--paper);
  padding:120px 0 80px;
}
.case-header{
  max-width:880px;
  display:grid;
  gap:18px;
}
.case-eyebrow{
  font-family:var(--mono);
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:11px;
  color:rgba(245,242,237,.68);
}
.case-header h1{
  margin:0;
  font-size:clamp(34px, 5vw, 64px);
  line-height:1.02;
  letter-spacing:-.02em;
}
.case-header p{
  margin:0;
  font-size:clamp(17px, 2vw, 22px);
  color:rgba(245,242,237,.84);
  max-width:70ch;
}
.case-grid{
  margin-top:40px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
.case-metric{
  border:1px solid rgba(245,242,237,.2);
  border-radius:14px;
  padding:16px;
  background:rgba(245,242,237,.04);
}
.case-metric .k{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.14em;
  color:rgba(245,242,237,.68);
  text-transform:uppercase;
}
.case-metric .v{
  margin-top:8px;
  font-size:30px;
  font-weight:700;
}
.case-actions{
  margin-top:28px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.case-actions a{
  border:1px solid rgba(245,242,237,.3);
  padding:10px 16px;
  border-radius:999px;
  font-size:13px;
}
.case-actions a.primary{
  background:var(--paper);
  color:var(--ink);
  border-color:var(--paper);
}

@media (max-width:900px){
  .case-grid{ grid-template-columns:1fr; }
}

/* === Mobile optimizations (audit plan) ================================== */

@media (max-width:1024px){
  .sect-split .wrap{
    grid-template-columns:minmax(0, 1fr) minmax(0, 1.2fr);
    gap:clamp(32px, 5vw, 48px);
  }
}

@media (max-width:960px){
  #approach .journey-rail{
    flex-direction:column;
    gap:10px;
  }
  #approach .journey-connector{
    display:none;
  }
  #approach .journey-step{
    flex:1 1 auto;
    width:100%;
    min-width:0;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    padding:12px 14px;
  }
}

@media (max-width:860px){
  .approach,
  .qsp-system,
  .founder,
  .faq-section,
  .sect-split,
  .dynamic-ads,
  .philosophy,
  .final,
  .teams-body{
    padding:var(--section-y-mobile) 0;
  }

  .founder-hero-stmt-line{
    white-space:normal;
  }
  .founder .sec-title.founder-hero-stmt{
    max-width:none;
  }

  .phil-title{
    font-size:clamp(48px, 12vw, 160px);
    margin-bottom:clamp(32px, 6vw, 60px);
  }
  .phil-card{
    padding:clamp(28px, 6vw, 56px) clamp(24px, 5vw, 40px);
    min-height:auto;
  }
  .phil-signature{
    margin-top:clamp(32px, 6vw, 56px);
  }
  .phil-framework{
    margin-top:clamp(48px, 8vw, 80px);
  }

  .approach-intro-split{
    grid-template-columns:1fr;
  }
  .approach-intro-visual{
    min-width:0;
  }

  .court-compare-grip{
    width:44px;
    height:44px;
  }
  .court-compare-handle{
    width:4px;
  }
  .qsp-system-view-toggle{
    max-width:100%;
    margin-bottom:24px;
  }

  .hero-viewport{
    min-height:auto;
  }
  .hero-viewport .hero{
    min-height:min(100dvh, 900px);
  }

  .clubs-side-cta .clubs-cta,
  .clubs-side-cta .nav-cta{
    width:100%;
    justify-content:center;
  }
}

@media (max-width:600px){
  #partners .partners-principle,
  #teams .teams-principle,
  .dynamic-ads-principle{
    padding:28px 20px 32px;
    min-height:auto;
  }
  #partners .partners-principle-title,
  #teams .teams-principle-title{
    min-height:auto;
  }
  #partners .partners-packs-btn{
    min-height:48px;
    width:100%;
  }
  #partners .partners-pack{
    padding:28px 20px 32px;
    min-height:auto;
  }

  .final-form{
    flex-direction:column;
  }
  .final-form-input,
  .final-form-submit{
    flex:1 1 auto;
    width:100%;
  }
  .final-form-submit{
    min-height:48px;
  }
  .final-statement{
    font-size:clamp(44px, 11vw, 72px);
  }

  .ticker--statements{
    padding:18px 0;
  }
  .ticker--statements .ticker-track{
    font-size:clamp(13px, 3.6vw, 16px);
    gap:40px;
  }
  .ticker--statements .ticker-statement-wrap{
    gap:40px;
  }
}

@media (max-width:560px){
  .founder .sec-title.founder-hero-stmt{
    font-size:clamp(26px, 7.5vw, 40px);
  }

  .site-footer-legal{
    gap:16px 20px;
  }
  .site-footer-legal a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:4px 0;
  }
}

@media (max-width:860px) and (max-height:700px){
  .hero{
    padding:80px 0 24px;
  }
  .hero-viewport .hero{
    min-height:auto;
  }
}

/* Visually hidden — kept for SEO / screen readers (e.g. multilingual summaries) */
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Shown only when JavaScript is disabled — crawlable fallback for bots */
.noscript-fallback{
  max-width:var(--wrap, 72rem);
  margin:0 auto;
  padding:2rem 1.5rem 3rem;
  font-family:var(--pn, sans-serif);
  color:var(--ink, #121214);
  line-height:1.6;
}
.noscript-fallback header{
  margin-bottom:2rem;
  padding-bottom:1rem;
  border-bottom:1px solid rgba(0,0,0,.12);
}
.noscript-fallback nav{
  margin-top:.75rem;
  font-size:.95rem;
}
.noscript-fallback nav a{ margin-right:.25rem; }
.noscript-fallback h1{
  font-size:clamp(1.75rem, 4vw, 2.5rem);
  line-height:1.15;
  margin-bottom:1rem;
}
.noscript-fallback p{ margin-bottom:.75rem; }

/* Bilingual headline footnotes (FR page) -------------------------------- */
.title-bilingual{
  position:relative;
  display:inline-block;
  vertical-align:top;
  max-width:100%;
  margin-bottom:1.15rem;
}
.title-bilingual > .statement-fr,
.phil-card h3 > .statement-fr{
  position:absolute;
  top:100%;
  right:0;
  left:auto;
  display:block;
  width:max-content;
  max-width:100%;
  margin:0.2rem 0 0;
  padding:0;
  text-align:right;
  white-space:nowrap;
  font-family:var(--support);
  font-weight:var(--support-weight);
  font-size:clamp(12px, 0.95vw, 15px);
  line-height:1.25;
  letter-spacing:0;
  opacity:.72;
  -webkit-text-fill-color:initial;
  background:none;
  background-image:none;
  -webkit-background-clip:initial;
  background-clip:initial;
  color:inherit;
}
.statement-fr em{
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  font-style:normal;
  color:inherit;
  -webkit-text-fill-color:initial;
  background:none;
  background-image:none;
  -webkit-background-clip:initial;
  background-clip:initial;
  padding-inline:0;
  margin-inline:0;
}
.statement-fr em::after{
  content:none;
  display:none;
}
.hero-tagline .title-bilingual{
  display:block;
  width:100%;
  max-width:100%;
  margin-bottom:0;
}
.hero-tagline .title-bilingual > .statement-fr{
  position:static;
  display:block;
  width:100%;
  max-width:100%;
  text-align:left;
  white-space:normal;
  margin:0.35rem 0 0;
  padding:0;
  font-size:clamp(13px, 1.05vw, 17px);
  opacity:.78;
  color:rgba(255,255,255,.82);
}
.approach .sec-title .title-bilingual > .statement-fr,
.approach-signature h3 .title-bilingual > .statement-fr,
.final-statement .title-bilingual > .statement-fr{
  color:inherit;
  opacity:.68;
}
.phil-title .title-bilingual > .statement-fr{
  font-size:clamp(12px, 0.9vw, 15px);
}
.phil-card h3 .title-bilingual > .statement-fr,
.phil-card h3 > .statement-fr,
.phil-promise-line .title-bilingual > .statement-fr,
.phil-promise-block > .statement-fr{
  font-size:clamp(11px, 0.82vw, 14px);
}
.phil-card.play h3 > .statement-fr{
  -webkit-text-fill-color:var(--ink-soft);
  color:var(--ink-soft);
  opacity:.75;
}
.phil-card.play:hover h3 > .statement-fr{
  -webkit-text-fill-color:rgba(255,255,255,.85);
  color:rgba(255,255,255,.85);
  opacity:1;
}
.phil-promise-block{
  display:inline-block;
  vertical-align:top;
  max-width:100%;
}
.phil-promise-block > .statement-fr{
  color:rgba(245,242,237,.68);
  opacity:1;
}
.teams-hero-title .title-bilingual > .statement-fr{
  font-size:clamp(13px, 1vw, 16px);
  color:rgba(255,255,255,.8);
  opacity:1;
}
.phil-promise-line .title-bilingual > .statement-fr{
  color:rgba(245,242,237,.68);
  opacity:1;
}
.clubs-head h2 .title-bilingual > .statement-fr,
.founder .sec-title.founder-hero-stmt .title-bilingual > .statement-fr{
  font-size:clamp(12px, 0.92vw, 15px);
}
@media (max-width:720px){
  .title-bilingual > .statement-fr,
  .phil-card h3 > .statement-fr{
    white-space:normal;
    max-width:100%;
  }
}

/* Language switcher ----------------------------------------------------- */
.lang-switch{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  flex-shrink:0;
}
.lang-switch a{
  color:inherit;
  opacity:.55;
  transition:opacity .2s ease;
}
.lang-switch a::after{
  content:none;
}
.lang-switch a:hover,
.lang-switch a[aria-current="page"]{
  opacity:1;
}
.lang-switch-sep{
  opacity:.35;
  user-select:none;
}

/* Top-edge language tab (nav) ------------------------------------------- */
.lang-tab{
  position:fixed;
  top:0;
  z-index:52;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:max(6px, env(safe-area-inset-top, 0px)) 14px 8px;
  background:rgba(132,132,132,.94);
  border:1px solid rgba(255,255,255,.14);
  border-top:none;
  border-radius:0 0 10px 10px;
  box-shadow:0 6px 16px rgba(0,0,0,.22);
  transition:transform .28s ease, opacity .28s ease, visibility .28s ease;
  pointer-events:auto;
}
.lang-tab.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateX(-50%) translateY(-100%);
}
.lang-tab .lang-switch{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1;
  color:rgba(255,255,255,.82);
}
.lang-tab .lang-switch a{
  color:#fff;
  opacity:.58;
  line-height:1;
  transition:opacity .18s ease;
}
.lang-tab .lang-switch a::after{
  content:none;
}
.lang-tab .lang-switch a:hover,
.lang-tab .lang-switch a[aria-current="page"]{
  opacity:1;
}
.lang-tab .lang-switch-sep{
  opacity:.4;
}

.nav-row .lang-switch{
  margin-left:0;
}
.nav-menu-panel .lang-switch{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid rgba(245,242,237,.12);
  font-size:11px;
  letter-spacing:.16em;
}
.nav-menu-panel .lang-switch a{
  color:var(--paper);
}
.site-footer .lang-switch{
  margin-top:16px;
  color:rgba(245,242,237,.55);
}
.site-footer .lang-switch a{
  color:var(--paper);
}
.site-footer .lang-switch a[aria-current="page"]{
  color:var(--paper);
  opacity:1;
}

/* Cookie consent banner ------------------------------------------------ */
#qsp-consent-banner{
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:10000;
  background:var(--ink);
  color:var(--paper);
  padding:clamp(16px, 3vw, 24px);
  box-shadow:0 -8px 32px rgba(10,10,10,.22);
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.qsp-consent-inner{
  max-width:1440px;
  margin:0 auto;
  padding:0 clamp(20px, 4vw, 56px);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:clamp(16px, 3vw, 28px);
}
.qsp-consent-copy{
  flex:1 1 280px;
  min-width:0;
}
.qsp-consent-title{
  margin:0 0 8px;
  font-family:var(--support);
  font-size:clamp(16px, 2vw, 18px);
  font-weight:600;
  letter-spacing:var(--tracking-support-heading);
  line-height:1.35;
}
.qsp-consent-message{
  margin:0;
  font-family:var(--support);
  font-weight:var(--support-weight);
  font-size:14px;
  line-height:1.6;
  letter-spacing:var(--tracking-support);
  color:rgba(245,242,237,.85);
}
.qsp-consent-message a{
  color:var(--blue-soft);
  text-decoration:underline;
  text-underline-offset:3px;
}
.qsp-consent-message a:hover{
  color:#fff;
}
.qsp-consent-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  flex:0 0 auto;
}
.qsp-consent-btn{
  font-family:var(--support);
  font-weight:var(--support-weight);
  font-size:14px;
  line-height:1.35;
  letter-spacing:var(--tracking-support-ui);
  padding:12px 22px;
  border-radius:999px;
  cursor:pointer;
  white-space:nowrap;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
@media (max-width: 480px){
  .qsp-consent-btn{
    white-space:normal;
    text-align:center;
    flex:1 1 calc(50% - 5px);
    min-width:0;
    padding:12px 16px;
    font-size:13px;
    letter-spacing:var(--tracking-support-ui);
  }
}
.qsp-consent-btn--primary{
  background:var(--blue);
  color:#fff;
  border:1px solid var(--blue);
}
.qsp-consent-btn--primary:hover{
  background:var(--blue-deep);
  border-color:var(--blue-deep);
}
.qsp-consent-btn--secondary{
  background:transparent;
  color:var(--paper);
  border:1px solid rgba(245,242,237,.35);
}
.qsp-consent-btn--secondary:hover{
  border-color:rgba(245,242,237,.65);
  background:rgba(245,242,237,.06);
}

/* Legal / privacy pages ------------------------------------------------ */
.legal-page{
  min-height:100vh;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--support); font-weight:var(--support-weight);
  letter-spacing:var(--tracking-support);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.legal-page-header{
  padding:calc(var(--nav-height) + clamp(32px, 5vw, 56px)) 0 clamp(24px, 4vw, 40px);
  border-bottom:1px solid var(--line);
  background:#fff;
}
.legal-page-kicker{
  margin:0 0 12px;
  font-family:var(--support);
  font-weight:var(--support-weight);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--mute);
}
.legal-page-title{
  margin:0 0 12px;
  font-family:var(--support);
  font-size:clamp(28px, 4.5vw, 42px);
  font-weight:600;
  letter-spacing:var(--tracking-support);
  line-height:1.2;
}
.legal-page-updated{
  margin:0;
  font-family:var(--support);
  font-weight:var(--support-weight);
  font-size:14px;
  letter-spacing:var(--tracking-support);
  line-height:1.5;
  color:var(--mute);
}
.legal-page-body{
  padding:clamp(40px, 6vw, 72px) 0 clamp(80px, 10vw, 120px);
}
.legal-page-content{
  max-width:68ch;
  font-family:var(--support);
  font-weight:var(--support-weight);
  font-size:15px;
  line-height:1.7;
  letter-spacing:var(--tracking-support);
  color:var(--ink-soft);
}
.legal-page-content h2{
  margin:2.4em 0 .75em;
  font-family:var(--support);
  font-size:clamp(18px, 2.2vw, 22px);
  font-weight:600;
  letter-spacing:var(--tracking-support-ui);
  line-height:1.35;
  color:var(--ink);
}
.legal-page-content h2:first-child{
  margin-top:0;
}
.legal-page-content p,
.legal-page-content li{
  margin:0 0 1em;
}
.legal-page-content ul{
  margin:0 0 1.25em;
  padding-left:1.25em;
}
.legal-page-content strong{
  font-weight:600;
  letter-spacing:var(--tracking-support-tight);
}
.legal-page-content code{
  font-family:var(--mono);
  font-size:.92em;
  letter-spacing:.02em;
}
.legal-page-content a,
.legal-page-content button.legal-cookie-settings{
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:2px;
  letter-spacing:var(--tracking-support);
}
.legal-page-content button.legal-cookie-settings{
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
  font-family:inherit;
  font-size:inherit;
  font-weight:inherit;
  line-height:inherit;
}
.legal-page-content a:hover,
.legal-page-content button.legal-cookie-settings:hover{
  color:var(--blue-deep);
}
.legal-page-back{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:24px;
  font-family:var(--support);
  font-weight:var(--support-weight);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--mute);
  transition:color .2s ease;
}
.legal-page-back:hover{
  color:var(--ink);
}
.legal-page-footer{
  border-top:1px solid var(--line);
  padding:24px 0 32px;
  background:#fff;
}
.legal-page-footer-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.legal-page-footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
}
.legal-page-footer-links a,
.legal-page-footer button.legal-cookie-settings{
  font-family:var(--support);
  font-weight:var(--support-weight);
  font-size:13px;
  letter-spacing:var(--tracking-support);
  color:var(--mute);
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:2px;
}
.legal-page-footer .site-footer-copy{
  letter-spacing:var(--tracking-support);
}
.legal-page-footer-links a:hover,
.legal-page-footer button.legal-cookie-settings:hover{
  color:var(--ink);
}
