*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px);}
body{
  font-family:var(--font-body);
  background:var(--court-black);
  color:var(--bone);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.intro-locked{overflow:hidden;height:100vh;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit;}
:focus-visible{outline:3px solid var(--red-hot);outline-offset:3px;border-radius:2px;}

.shell{width:100%;max-width:var(--shell);margin:0 auto;padding:0 24px;}
.band{padding:clamp(72px,9vw,132px) 0;position:relative;}
/* The clamp never adapts DOWN: at 375px 9vw is 34px, so every band takes the 72px floor and
   the page carries 144px of empty space between every section. That is the "break" a phone
   shows between a closed fold and the next heading (Josiah, 14 September 2026). Desktop is
   untouched on purpose; the rhythm there was signed off. */
@media(max-width:640px){.band{padding:48px 0;}}
.band-dark{background:var(--court-black);}
.band-ink{background:var(--ink);}
.band-light{background:var(--chalk);color:var(--court-black);overflow:hidden;}
.band-light::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 104% 4%,transparent 0 236px,rgba(230,12,32,.11) 236px 242px,transparent 242px),
    radial-gradient(circle at 104% 4%,transparent 0 318px,rgba(10,10,12,.07) 318px 322px,transparent 322px),
    radial-gradient(circle at -3% 102%,transparent 0 168px,rgba(10,10,12,.08) 168px 173px,transparent 173px);
}
.band-light>.shell{position:relative;}
.band-red{background:linear-gradient(168deg,var(--fast-red) 30%,var(--red-deep) 170%);color:var(--bone);}

.eyebrow{
  font-family:var(--font-eyebrow);
  font-weight:700;
  font-size:.82rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--fast-red);display:block;}
.band-red .eyebrow::before{background:var(--bone);}

h1,h2,h3{font-family:var(--font-display);font-weight:400;letter-spacing:.01em;line-height:.94;text-transform:uppercase;text-wrap:balance;}
h1{font-size:clamp(2.6rem,8.2vw,var(--step-6));line-height:.9;}
h2{font-size:clamp(2rem,5vw,var(--step-5));}
h3{font-size:clamp(1.15rem,2vw,var(--step-1));line-height:1.1;}
p{text-wrap:pretty;}
.hollow{
  color:transparent;
  -webkit-text-stroke:2px var(--fast-red);
  paint-order:stroke fill;
  filter:drop-shadow(0 0 26px rgba(230,12,32,.55));
}
.band-light .hollow{filter:none;}
.lede{font-size:clamp(1.02rem,1.5vw,1.22rem);color:#C9C9D2;max-width:60ch;}
.band-light .lede{color:#43434E;}
/* The .rcp-* receipt cards are reused inside a light band on the coach page.
   The card surface stays dark (--ink-lift), so copy inside it must stay light;
   the note below sits on chalk, so it and its links must go dark. */
/* --line-dark is rgba(255,255,255,.10) — invisible on chalk, so the note's rule
   above the links vanished on the coach page. */
.band-light .rcp-note{color:var(--text-body-light);border-top-color:var(--line-light);}
.band-light .rcp-note a{color:var(--red-deep);}

/* Suburb pages have no .head wrapper — their copy is a bare <p> straight under
   .shell and was running the full 1240px shell width (~149ch). Homepage prose
   either carries its own cap (.lede) or lives inside a card/component, so it
   sits deeper than a direct child and this scoped rule leaves it alone. */
.band .shell>p{max-width:70ch;}

/* Bare prose links in band copy (the coach page IG handle, the nearby-suburb
   cross-links) were ~19px tall — under the 44px touch floor (WCAG 2.5.5).
   padding-block on an inline box, NOT the display:inline-block+padding that
   .rcp-note a uses: vertical padding on an inline element grows its hit box
   (19 -> 47px) without growing the line box, so the paragraph re-flows by
   exactly zero. inline-block measured +135px on the Kendall neighbours
   paragraph, because every line holding a link gets taller.
   Three guards stop it ever stacking on a rule that already pads:
   - `a:not([class])` skips every classed link (.btn, .suburb-programs li a);
   - the `>` child combinator limits it to <p> sitting directly in .shell, so
     .credential-links (nested in .credential-block) is structurally out of reach;
   - .rcp-note IS a direct child of .shell, so it is excluded by name.
   Padding is not additive in CSS anyway — a second match would override, not sum. */
.band .shell>p:not(.rcp-note)>a:not([class]){padding-block:14px;}
/* The rule above is scoped to <p> in .shell, so it cannot reach the contact rows
   or the suburb breadcrumb. Both are flex children, where padding would reflow —
   min-height on an inline-flex box hits 44px without moving anything. */
.ct-r a,nav.eyebrow a{display:inline-flex;align-items:center;min-height:44px;}
/* Short crumbs ("Home") are wider than 24px but under 44; centring inside a 44px
   min-width costs ~6px of layout and clears the AAA target floor. */
nav.eyebrow a{min-width:44px;justify-content:center;}

/* ---------- BRAND MARK (square icon + UI text label — the wordmark is never rebuilt in type) ---------- */
.brand{display:flex;align-items:center;gap:11px;padding:6px 0;}
.brand-icon{width:40px;height:40px;flex-shrink:0;transition:filter var(--t-hover),transform var(--t-hover) var(--ease-rush);}
.brand:hover .brand-icon{filter:drop-shadow(0 0 10px var(--glow-red));}
.brand-name{font-family:var(--font-eyebrow);font-weight:600;font-size:.95rem;letter-spacing:var(--track-nav);text-transform:uppercase;color:var(--bone);}
.band-light .brand-name{color:var(--court-black);}

/* ---------- INTRO OVERLAY (EA Sports cadence) ---------- */
#intro{
  position:fixed;inset:0;z-index:var(--z-intro);
  background:var(--court-black);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
#intro.done{animation:introVeil calc(.62s / var(--motion-speed,1)) var(--ease-launch) forwards;}
@keyframes introVeil{to{opacity:0;visibility:hidden;}}
.intro-glow{
  position:absolute;width:120vmax;height:120vmax;border-radius:50%;
  background:radial-gradient(circle,var(--glow-red) 0%,transparent 62%);
  animation:introGlow var(--t-intro) var(--ease-rush) forwards;
}
@keyframes introGlow{
  0%{transform:scale(3.2);opacity:0;}
  22%{opacity:.9;}
  62%{transform:scale(1);opacity:.55;}
  100%{transform:scale(2.4);opacity:0;}
}
/* stage: decelerates 1.3 -> 1, hangs, blasts out at --t-intro (3.1s) */
.intro-mark{
  position:relative;text-align:center;
  animation:introStage var(--t-intro) both;
  will-change:transform,opacity,filter;
}
@keyframes introStage{
  0%  {transform:scale(1.3);opacity:1;filter:blur(0);animation-timing-function:var(--ease-rush);}
  42% {transform:scale(1.01);animation-timing-function:linear;}
  78% {transform:scale(1.06);opacity:1;filter:blur(0);animation-timing-function:var(--ease-launch);}
  100%{transform:scale(8);opacity:0;filter:blur(14px);}
}
.intro-mark .im-logo{width:min(58vw,560px);margin:0 auto;color:var(--bone);}
.intro-mark .im-sub{
  font-family:var(--font-eyebrow);letter-spacing:.5em;margin-top:18px;
  font-size:clamp(.55rem,1vw,.78rem);color:#8C8C99;
  text-transform:uppercase;opacity:0;
  animation:imSub .9s 1.5s ease forwards;
}
@keyframes imSub{to{opacity:1;}}
.intro-skip{
  position:absolute;bottom:34px;right:34px;z-index:2;
  font-family:var(--font-eyebrow);letter-spacing:.2em;font-size:.72rem;
  text-transform:uppercase;color:#9C9CA9;border:1px solid var(--line-dark);
  padding:14px 20px;border-radius:100px;transition:.25s;
}
.intro-skip:hover{color:var(--bone);border-color:var(--fast-red);}

/* ---------- NAV ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:var(--z-nav);
  display:flex;align-items:center;
  background:rgba(10,10,12,0);
  border-bottom:1px solid transparent;
  transition:background .35s ease,border-color .35s ease,backdrop-filter .35s ease;
}
.nav.stuck{
  background:rgba(10,10,12,.88);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--line-dark);
}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;}
.nav-links{display:flex;align-items:center;gap:30px;}
.nav-links a{
  font-family:var(--font-eyebrow);font-weight:600;font-size:.88rem;
  letter-spacing:.14em;text-transform:uppercase;color:#B4B4C0;
  position:relative;padding:6px 0;transition:color .22s;
}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;
  background:var(--fast-red);transform:scaleX(0);transform-origin:left;
  transition:transform .3s var(--ease-rush);
}
.nav-links a:hover{color:var(--bone);}
.nav-links a:hover::after{transform:scaleX(1);}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--font-eyebrow);font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;font-size:.86rem;
  padding:14px 26px;border-radius:100px;transition:transform .28s var(--ease-rush),box-shadow .28s,background .22s,color .22s;
}
.btn-primary{background:var(--fast-red);color:var(--bone);box-shadow:0 8px 30px -8px var(--glow-red);}
.btn-primary:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 16px 42px -10px var(--glow-red);background:var(--red-hot);}
.btn-primary:active{background:var(--red-deep);transform:translateY(-1px);}
.btn-ghost{border:1.5px solid var(--line-dark);color:var(--bone);}
.btn-ghost:hover{border-color:var(--fast-red);transform:translateY(-3px);}
.band-light .btn-ghost{border-color:var(--line-light);color:var(--court-black);}
.nav-toggle{display:none;width:44px;height:44px;place-items:center;}
.nav-toggle i{display:block;width:22px;height:2px;background:var(--bone);position:relative;}
.nav-toggle i::before,.nav-toggle i::after{content:"";position:absolute;left:0;width:22px;height:2px;background:var(--bone);}
.nav-toggle i::before{top:-7px;}.nav-toggle i::after{top:7px;}

/* ---------- HERO ---------- */
.hero{
  min-height:100vh;display:flex;align-items:center;
  padding-top:calc(var(--nav-h) + 40px);padding-bottom:60px;
  position:relative;overflow:hidden;
}
.hero-court{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:74px 74px;
  mask-image:radial-gradient(ellipse 78% 66% at 42% 46%,#000 26%,transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 78% 66% at 42% 46%,#000 26%,transparent 78%);
}
.hero-wash{
  position:absolute;top:-22%;right:-16%;width:74vw;height:74vw;max-width:900px;max-height:900px;
  background:radial-gradient(circle,rgba(230,12,32,.22) 0%,transparent 64%);
  pointer-events:none;animation:heroPulse 8s ease-in-out infinite;
}
@keyframes heroPulse{0%,100%{transform:scale(1);opacity:.85;}50%{transform:scale(1.1);opacity:1;}}
.hero-grid{
  display:grid;grid-template-columns:1.08fr .92fr;gap:56px;align-items:center;
  position:relative;z-index:2;width:100%;
}
.hero-copy .eyebrow{margin-bottom:22px;}
.hero h1{margin-bottom:24px;
  /* The hero headline sits in a ~613px column beside the Evidence card, narrower than
     any other page's h1, so it takes a smaller vw factor than the global scale. */
  font-size:clamp(2.6rem,7vw,var(--step-6));}
.hero h1 .l{display:block;overflow:hidden;}
.hero h1 .l span{display:block;transform:translateY(104%);animation:lineUp .8s var(--ease-rush) forwards;}
.hero h1 .l:nth-child(1) span{animation-delay:.10s;}
.hero h1 .l:nth-child(2) span{animation-delay:.20s;}
.hero h1 .l:nth-child(3) span{animation-delay:.30s;}
/* 23 characters cannot hold the display size in the hero column; em tracks the clamp. */
.hero h1 .l:nth-child(2) span{font-size:.63em;}
@keyframes lineUp{to{transform:translateY(0);}}
.fade-seq{opacity:0;animation:fadeSeq .6s var(--ease-rush) forwards;}
@keyframes fadeSeq{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:none;}}
.d1{animation-delay:.5s;}.d2{animation-delay:.68s;}.d3{animation-delay:.86s;}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin:32px 0 30px;}
.hero-trust{display:flex;gap:26px;flex-wrap:wrap;padding-top:26px;border-top:1px solid var(--line-dark);}
.trust-i{display:flex;flex-direction:column;gap:3px;}
.trust-i b{font-family:var(--font-num);font-size:1.9rem;color:var(--fast-red);line-height:1;letter-spacing:.02em;}
.trust-i span{font-family:var(--font-eyebrow);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:#82828F;}

/* hero photo card */
.court-card{
  position:relative;border-radius:18px;overflow:hidden;
  background:linear-gradient(160deg,var(--ink-lift),#0E0E13);
  border:1px solid var(--line-dark);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9);
  opacity:0;animation:fadeSeq .9s .55s var(--ease-rush) forwards;
}
.cc-label{
  font-family:var(--font-eyebrow);font-size:.68rem;letter-spacing:.22em;
  text-transform:uppercase;color:#8F8F9C;
  padding:14px 18px;border-bottom:1px solid var(--line-dark);
  display:flex;justify-content:space-between;gap:12px;
}
.cc-label b{color:var(--red-hot);font-weight:700;}
.cc-shot{position:relative;overflow:hidden;}
.cc-shot img{width:100%;height:auto;transform:scale(1.02);transition:transform 1.1s var(--ease-rush);}
.court-card:hover .cc-shot img{transform:scale(1.07);}
.cc-shot::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(10,10,12,.84) 0%,rgba(10,10,12,.38) 34%,transparent 52%);
}
.cc-cap{
  position:absolute;bottom:14px;left:16px;right:16px;z-index:2;
  font-family:var(--font-display);text-transform:uppercase;font-size:1.06rem;
  letter-spacing:.02em;line-height:1.05;
}
.cc-cap em{display:inline-block;font-style:normal;font-family:var(--font-eyebrow);
  font-size:.68rem;letter-spacing:.18em;color:var(--red-hot);margin-bottom:7px;font-weight:700;
  background:var(--court-black);padding:4px 9px;border-radius:4px;}
[data-img] img{filter:saturate(.88) contrast(1.06);}
.cc-foot{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-dark);}
.cc-stat{padding:15px 13px;border-right:1px solid var(--line-dark);}
.cc-stat:last-child{border-right:0;}
.cc-stat b{display:block;font-family:var(--font-num);font-size:1.5rem;color:var(--bone);line-height:1;}
.cc-stat span{font-family:var(--font-eyebrow);font-size:.63rem;letter-spacing:.13em;text-transform:uppercase;color:#8F8F9C;}

/* ---------- TICKER ---------- */
.ticker{
  background:var(--fast-red);padding:16px 0;overflow:hidden;
  border-top:1px solid rgba(0,0,0,.2);border-bottom:1px solid rgba(0,0,0,.2);
}
.ticker-track{display:flex;gap:44px;width:max-content;animation:tick var(--t-ticker,38s) linear infinite;}
.ticker:hover .ticker-track{animation-play-state:paused;}
html[data-ticker="off"] .ticker-track{animation-play-state:paused;}
@keyframes tick{to{transform:translateX(-50%);}}
.ticker-i{
  font-family:var(--font-display);font-size:1.12rem;letter-spacing:.05em;
  text-transform:uppercase;color:var(--bone);display:flex;align-items:center;gap:44px;white-space:nowrap;
}
.ticker-i::after{content:"";width:7px;height:7px;background:rgba(255,255,255,.55);border-radius:50%;}

/* ---------- REVEALS ---------- */
.zr{opacity:0;transform:translateY(34px) scale(.985);filter:blur(4px);}
.zr.in{animation:zrIn calc(.92s / var(--motion-speed,1)) linear forwards;}
@keyframes zrIn{
  0%{opacity:0;transform:translateY(34px) scale(.985);filter:blur(4px);animation-timing-function:var(--ease-launch);}
  28%{opacity:1;transform:translateY(22px) scale(.99);filter:blur(0);animation-timing-function:var(--ease-rush);}
  100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
}
.rise{opacity:0;transform:translateY(30px);transition:opacity calc(.62s / var(--motion-speed,1)) var(--ease-rush),transform calc(.62s / var(--motion-speed,1)) var(--ease-rush);}
.rise.in{opacity:1;transform:none;}
.stg>*{transition-delay:calc(var(--i,0)*90ms/var(--motion-speed,1));}
.mth.stg>*{transition-duration:calc(.5s/var(--motion-speed,1));transition-delay:calc(var(--i,0)*130ms/var(--motion-speed,1));}
.areas.stg>*{transition-duration:calc(.42s/var(--motion-speed,1));transition-delay:calc(var(--i,0)*110ms/var(--motion-speed,1));}
@keyframes phFlash{
  0%{opacity:0;transform:scale(1.12);filter:brightness(1.9) saturate(.35) contrast(1.15);animation-timing-function:var(--ease-launch);}
  22%{opacity:1;filter:brightness(1.35) saturate(.65) contrast(1.1);animation-timing-function:var(--ease-rush);}
  100%{opacity:1;transform:scale(1);filter:saturate(.88) contrast(1.06);}
}

.head{max-width:760px;margin-bottom:52px;}
.head .eyebrow{margin-bottom:18px;}
.head h2{margin-bottom:18px;}

/* ---------- RECEIPTS GALLERY ---------- */
.rcp{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.rcp-c{
  position:relative;border-radius:14px;overflow:hidden;
  border:1px solid var(--line-dark);background:var(--ink-lift);
  transition:transform .5s var(--ease-rush),border-color .35s,box-shadow .45s;
}
.rcp-c:hover{transform:translateY(-8px);border-color:rgba(230,12,32,.55);box-shadow:0 30px 60px -30px rgba(0,0,0,.9);}
.rcp-shot{position:relative;overflow:hidden;aspect-ratio:4/5;}
.rcp-shot img{width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform 1.1s var(--ease-rush);}
.rcp-c:hover .rcp-shot img{transform:scale(1.09);}
.rcp-c.rise{opacity:1;transform:none;transition:none;}
.rcp-c.rise:not(.in) .rcp-shot img{opacity:0;}
.rcp-c.rise.in .rcp-shot img{animation:phFlash .8s linear backwards;animation-delay:calc(var(--i,0)*170ms);}
.rcp-shot::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(10,10,12,.97) 12%,rgba(10,10,12,.3) 48%,transparent 72%);
}
.rcp-txt{position:absolute;left:18px;right:18px;bottom:16px;z-index:2;}
.rcp-yr{
  font-family:var(--font-eyebrow);font-weight:700;font-size:.7rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--red-hot);display:inline-block;margin-bottom:8px;
  background:var(--court-black);padding:4px 9px;border-radius:4px;
}
.rcp-txt h3{font-size:1.04rem;margin-bottom:7px;color:var(--bone);}
.rcp-txt p{font-size:.83rem;color:#C4C4CF;line-height:1.42;}
.rcp-note{
  margin-top:26px;padding-top:20px;border-top:1px solid var(--line-dark);
  font-size:.85rem;color:#8F8F9C;max-width:72ch;
}
/* inline-block + padding, not a bigger font: lifts the hit area to 44px without
   changing the type size (WCAG 2.5.5). */
.rcp-note a{color:#A6A6B3;text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:14px 0;}
.rcp-note a:hover{color:var(--red-hot);}
.rcp-next{
  margin-top:34px;display:flex;align-items:center;justify-content:space-between;
  gap:24px;flex-wrap:wrap;border:1px solid var(--line-dark);border-radius:14px;
  padding:24px 28px;background:var(--ink-lift);
}
.rcp-next p{font-size:1.02rem;color:#C9C9D2;max-width:44ch;}
.rcp-next p b{color:var(--bone);font-family:var(--font-eyebrow);letter-spacing:.04em;text-transform:uppercase;}

/* ---------- AUDIENCE ---------- */
.aud{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.aud-c{
  background:var(--ink-lift);border:1px solid var(--line-dark);border-radius:14px;
  padding:34px 28px 30px;position:relative;overflow:hidden;
  transition:transform .4s var(--ease-rush),border-color .3s,background .3s;
}
.aud-c::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--fast-red),var(--red-hot),transparent);
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-rush);
}
.aud-c:hover{transform:translateY(-7px);border-color:rgba(230,12,32,.45);background:#20202A;}
.aud-c:hover::before{transform:scaleX(1);}
.aud-age{font-family:var(--font-num);font-size:var(--step-3);color:var(--fast-red);line-height:.9;display:block;margin-bottom:12px;}
.aud-c:nth-child(2) .aud-age{font-size:calc(var(--step-3)*1.14);}
.aud-c:nth-child(3) .aud-age{font-size:calc(var(--step-3)*1.3);}
.aud-c h3{margin-bottom:12px;}
.aud-c p{color:#A9A9B6;font-size:.97rem;}

/* ---------- PROGRAMS ---------- */
.prog{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.prog-c{
  background:var(--bone);border:1px solid var(--chalk-2);border-radius:16px;
  padding:32px 30px;display:flex;flex-direction:column;
  transition:transform .4s var(--ease-rush),box-shadow .4s,border-color .3s;
  position:relative;overflow:hidden;
}
.prog-c:hover{transform:translateY(-8px);box-shadow:0 26px 60px -26px rgba(10,10,12,.34);border-color:var(--fast-red);}
.prog-c.flag{background:var(--court-black);border-color:var(--court-black);color:var(--bone);}
.prog-tag{
  position:absolute;top:0;right:0;background:var(--fast-red);color:var(--bone);
  font-family:var(--font-eyebrow);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;
  padding:7px 15px;border-bottom-left-radius:10px;
}
.prog-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;}
.prog-c h3{margin-bottom:0;max-width:16ch;}
/* Prices are ink, never brand red (Josiah, 7 October 2026): black on a light surface, white on a dark one. */
.prog-price{font-family:var(--font-num);font-size:2.15rem;line-height:.9;color:var(--court-black);white-space:nowrap;}
.prog-price small{display:block;font-family:var(--font-eyebrow);font-size:.66rem;letter-spacing:.14em;color:var(--slate);text-transform:uppercase;}
.prog-c.flag .prog-price{color:var(--bone);}
.prog-c.flag .prog-price small{color:#8A8A96;}
.prog-c > p{color:#54545F;font-size:.97rem;margin-bottom:20px;}
.prog-c.flag > p{color:#AFAFBB;}
.prog-list{list-style:none;margin-bottom:26px;flex-grow:1;}
.prog-list li{padding:9px 0 9px 26px;position:relative;font-size:.95rem;color:#3E3E48;border-bottom:1px solid var(--chalk-2);}
.prog-c.flag .prog-list li{color:#C4C4CE;border-bottom-color:rgba(255,255,255,.09);}
/* .prog-list li is coloured for the white card on the chalk band. The /training/*
   pages emit it bare on a dark band (build.mjs), where #3E3E48 measured 1.75:1.
   Keyed to the dark surfaces themselves so any future reuse is covered too. */
.band-ink .prog-list li,.band-dark .prog-list li{color:#C4C4CE;border-bottom-color:rgba(255,255,255,.09);}
.prog-list li::before{content:"";position:absolute;left:0;top:16px;width:12px;height:2px;background:var(--fast-red);}

/* ---------- METHOD ---------- */
.mth{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid var(--line-dark);}
.mth-s{padding:34px 24px 30px;border-right:1px solid var(--line-dark);transition:background .35s;position:relative;}
.mth-s:last-child{border-right:0;}
.mth-s:hover{background:var(--ink-lift);}
.mth-s::after{content:"";position:absolute;top:-1px;left:0;height:3px;width:100%;background:var(--fast-red);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease-rush);}
.mth-s:hover::after{transform:scaleX(1);}
.mth-n{font-family:var(--font-num);font-size:2.9rem;color:var(--fast-red);line-height:.85;display:block;margin-bottom:14px;}
.mth-s h3{font-size:1.06rem;margin-bottom:10px;}
.mth-s p{font-size:.9rem;color:#9C9CA9;}

/* ---------- COACH ---------- */
.coach{display:grid;grid-template-columns:.88fr 1.12fr;gap:56px;align-items:center;}
.coach-img{
  position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/5;
  border:1px solid var(--line-dark);background:#0C0C11;
}
.coach-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.01);transition:transform 1.2s var(--ease-rush);}
.coach-img:hover img{transform:scale(1.05);}
.coach-img.rise{opacity:1;transform:none;transition:none;}
.coach-img.rise:not(.in) img{opacity:0;}
.coach-img.rise.in img{animation:phFlash .9s linear backwards;}
.coach-img .coach-badge{opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease-rush) .4s,transform .6s var(--ease-rush) .4s;}
.coach-img.in .coach-badge{opacity:1;transform:none;}
.coach-img::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(10,10,12,.86) 6%,transparent 44%);
}
.coach-badge{
  position:absolute;bottom:20px;left:20px;right:20px;z-index:3;
  background:var(--court-black);
  border:1px solid var(--line-dark);border-radius:11px;padding:15px 18px;
}
.coach-badge b{font-family:var(--font-display);font-size:1.12rem;display:block;letter-spacing:.02em;}
.coach-badge span{font-family:var(--font-eyebrow);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red-hot);}
.coach-body p{color:#B0B0BC;margin-bottom:18px;}
.coach-body p:first-of-type{font-size:1.16rem;color:var(--bone);}
.creds{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:30px;}
.cred{border:1px solid var(--line-dark);border-radius:10px;padding:16px 18px;transition:border-color .3s,transform .35s var(--ease-rush);}
.cred:hover{border-color:var(--fast-red);transform:translateX(5px);}
.cred b{display:block;font-family:var(--font-eyebrow);font-weight:700;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;}
.cred span{font-size:.84rem;color:#83838F;}

/* ---------- SCOREBOARD ---------- */
.score{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.score-c{background:rgba(0,0,0,.19);border:1px solid rgba(255,255,255,.2);border-radius:13px;padding:30px 22px;text-align:center;}
.score-n{font-family:var(--font-num);font-size:clamp(2.8rem,6vw,var(--step-5));line-height:.86;display:block;letter-spacing:.03em;}
.score-n.stamp{animation:numStamp calc(.5s / var(--motion-speed,1)) var(--ease-rush);}
@keyframes numStamp{0%{transform:scale(1.16);filter:brightness(1.7);}100%{transform:scale(1);filter:none;}}
.score-l{font-family:var(--font-eyebrow);font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;}
.score-src{margin-top:24px;font-size:.83rem;max-width:72ch;}

/* ---------- PLAYBOOK ---------- */
.pb{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.pb-form{background:var(--ink-lift);border:1px solid var(--line-dark);border-radius:16px;padding:34px 32px;}
.fld{margin-bottom:16px;}
.fld label{display:block;font-family:var(--font-eyebrow);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:#8E8E9B;margin-bottom:7px;}
.fld input,.fld select,.fld textarea{
  width:100%;background:#0C0C11;border:1px solid var(--line-dark);border-radius:9px;
  padding:14px 15px;color:var(--bone);font-family:var(--font-body);font-size:.97rem;
  transition:border-color .25s,box-shadow .25s;
}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:3px solid transparent;outline-offset:2px;border-color:var(--fast-red);box-shadow:0 0 0 3px rgba(230,12,32,.16);}
/* A checkbox is too small to read the glow above, and the transparent outline leaves
   keyboard users with no visible focus at all. The consent boxes are the one control
   on this site a parent MUST be able to find by keyboard, so give them a real ring. */
.fld input[type=checkbox]:focus-visible{outline:3px solid var(--fast-red);outline-offset:3px;box-shadow:none;}
.fld input::placeholder,.fld textarea::placeholder{color:#8F8F9C;opacity:1;}
.fld textarea{resize:vertical;min-height:110px;}
.fld-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fld.err input,.fld.err select,.fld.err textarea{border-color:var(--red-hot);}
.f-err{display:block;font-size:.8rem;color:var(--red-hot);margin-top:6px;}
/* --red-hot is 3.5:1 on the light theme's white form surface, under AA at this size.
   --fast-red is 4.7:1 and is the red the rest of the light theme already uses. */
html.fb-light .f-err{color:var(--fast-red);}
.pb-note{font-size:.8rem;color:#8F8F9C;margin-top:13px;}
.pb-out{margin-top:20px;padding:20px;border:1px dashed rgba(230,12,32,.5);border-radius:11px;background:rgba(230,12,32,.07);display:none;}
.pb-out.show{display:block;animation:zrIn .7s linear forwards;}
.pb-out :is(h2,h3,h4){font-family:var(--font-display);font-size:1.1rem;margin-bottom:8px;text-transform:uppercase;}
.pb-out p{font-size:.9rem;color:#B3B3BF;margin-bottom:14px;}
.pb-list{list-style:none;}
.pb-list li{border-bottom:1px solid var(--line-dark);}
.pb-list li:last-child{border-bottom:0;}
.pb-list a{font-family:var(--font-eyebrow);font-size:.92rem;letter-spacing:.06em;text-transform:uppercase;color:var(--red-hot);display:flex;justify-content:space-between;align-items:center;transition:.25s;padding:14px 0;}
.pb-list a:hover{color:var(--bone);transform:translateX(4px);}
.pb-sheet{
  background:var(--bone);color:var(--court-black);border-radius:13px;padding:26px;
  box-shadow:0 34px 70px -30px rgba(0,0,0,.85);transform:rotate(-2.2deg);
  transition:transform .5s var(--ease-rush);
}
.pb-sheet:hover{transform:rotate(0deg) scale(1.02);}
.pb-sheet h4{font-family:var(--font-display);text-transform:uppercase;font-size:1.3rem;margin-bottom:4px;}
.pb-sheet .pbs-sub{font-family:var(--font-eyebrow);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fast-red);margin-bottom:18px;}
.pbs-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--chalk-2);font-size:.88rem;}
.pbs-row b{font-family:var(--font-eyebrow);letter-spacing:.05em;}
.pbs-row span{color:var(--slate);}

/* ---------- AREAS ---------- */
.areas{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.area{
  border:1px solid var(--line-light);border-radius:10px;padding:18px;
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  flex-wrap:wrap;min-width:0;
  transition:.35s var(--ease-rush);background:var(--bone);
}
.area:hover{background:var(--fast-red);border-color:var(--fast-red);color:var(--bone);transform:translateY(-4px);}
.area b{font-family:var(--font-eyebrow);font-weight:700;letter-spacing:.07em;text-transform:uppercase;font-size:.95rem;}
.area span{font-size:.74rem;color:var(--slate);font-family:var(--font-eyebrow);letter-spacing:.1em;text-transform:uppercase;}
.area:hover span{color:var(--bone);}

/* ---------- TESTIMONIALS ---------- */
.tst{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.tst-c{background:var(--ink-lift);border:1px solid var(--line-dark);border-radius:14px;padding:30px 28px;position:relative;transition:transform .4s var(--ease-rush),border-color .3s;}
.tst-c:hover{transform:translateY(-6px);border-color:rgba(230,12,32,.42);}
.tst-q{font-family:var(--font-display);font-size:2.6rem;color:var(--fast-red);line-height:.6;display:block;margin-bottom:14px;}
.tst-c p{color:#BEBECA;font-size:.99rem;margin-bottom:20px;}
.tst-w{display:flex;flex-direction:column;gap:2px;padding-top:16px;border-top:1px solid var(--line-dark);}
.tst-w b{font-family:var(--font-eyebrow);letter-spacing:.08em;text-transform:uppercase;font-size:.9rem;}
.tst-w span{font-size:.78rem;color:#8F8F9C;}

/* ---------- FAQ ---------- */
.faq{max-width:840px;margin:0 auto;}
.faq-i{border-bottom:1px solid var(--line-light);}
.faq-q{
  width:100%;text-align:left;padding:24px 44px 24px 0;position:relative;
  font-family:var(--font-eyebrow);font-weight:700;font-size:1.06rem;letter-spacing:.03em;
  text-transform:uppercase;transition:color .25s;
}
.faq-q:hover{color:var(--red-deep);}
.faq-q::after{content:"";position:absolute;right:6px;top:50%;width:13px;height:2px;background:var(--fast-red);}
.faq-q::before{content:"";position:absolute;right:11.5px;top:50%;width:2px;height:13px;background:var(--fast-red);transform:translateY(-50%);transition:transform calc(.35s / var(--motion-speed,1)) var(--ease-rush);}
.faq-i.open .faq-q::before{transform:translateY(-50%) rotate(90deg) scaleX(0);}
/* max-height (not grid-template-rows:0fr->1fr) so the transition actually resolves:
   an indefinite-height 1fr track never settles to a real pixel value to animate to. */
.faq-a{max-height:0;overflow:hidden;transition:max-height calc(.45s / var(--motion-speed,1)) var(--ease-rush);}
.faq-a p{margin:0 0 26px;color:#54545F;max-width:70ch;}
.faq-i.open .faq-a{max-height:600px;}

/* ---------- CONTACT ---------- */
.ct{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:start;}
.ct>*,.hero-grid>*,.coach>*,.pb>*{min-width:0;}
.ct-side .eyebrow{margin-bottom:18px;}
.ct-side h1,.ct-side h2{margin-bottom:20px;}
.ct-rows{margin-top:32px;}
.ct-r{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line-dark);flex-wrap:wrap;}
.ct-r b{font-family:var(--font-eyebrow);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:#7C7C89;min-width:96px;padding-top:3px;}
.ct-r span{font-size:1.02rem;}
/* Was a tinted, red-bordered card. On the light theme that reads as a pink rectangle, and
   with real review cards above it the box was competing with them for the same attention
   (Josiah, 14 September 2026). The label and the copy stand on their own. */
.gbp{margin-top:26px;}
.gbp b{font-family:var(--font-eyebrow);letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;color:var(--red-hot);display:block;margin-bottom:6px;}
.gbp p{font-size:.88rem;color:#A8A8B4;}

/* ---------- FOOTER ---------- */
.ft{background:var(--court-black);border-top:1px solid var(--line-dark);padding:56px 0 34px;}
.ft-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:40px;}
.ft-nav{display:flex;gap:56px;flex-wrap:wrap;}
.ft-col h3{font-family:var(--font-eyebrow);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint-dark);margin-bottom:14px;}
.ft-col a{display:block;min-height:44px;padding:10px 0;color:#AFAFBB;font-size:.93rem;transition:color .22s,transform .25s;}
.ft-col a:hover{color:var(--red-hot);transform:translateX(3px);}
.ft-bot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:26px;border-top:1px solid var(--line-dark);font-size:.83rem;color:#8F8F9C;}
.ft-bot a{display:inline-block;min-width:44px;padding:14px 0;text-align:center;}

/* ---------- ADMIN ---------- */
.adm-fab{
  position:fixed;bottom:22px;left:22px;z-index:var(--z-sticky);
  background:var(--ink-lift);border:1px solid var(--line-dark);color:#8C8C99;
  font-family:var(--font-eyebrow);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  padding:14px 18px;border-radius:100px;transition:.28s;
}
.adm-fab:hover{color:var(--bone);border-color:var(--fast-red);}
.adm{
  position:fixed;top:0;right:0;bottom:0;width:min(430px,100%);z-index:var(--z-drawer);
  background:#0E0E13;border-left:1px solid var(--line-dark);
  transform:translateX(101%);transition:transform .5s var(--ease-rush);
  display:flex;flex-direction:column;
}
.adm.open{transform:none;box-shadow:-30px 0 80px -30px rgba(0,0,0,.9);}
.adm-h{padding:22px 24px;border-bottom:1px solid var(--line-dark);display:flex;justify-content:space-between;align-items:center;}
.adm-h b{font-family:var(--font-display);font-size:1.05rem;text-transform:uppercase;letter-spacing:.03em;}
.adm-h span{font-family:var(--font-eyebrow);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red-hot);display:block;}
.adm-x{font-size:1.5rem;line-height:1;color:#8C8C99;width:44px;height:44px;display:grid;place-items:center;}
.adm-x:hover{color:var(--fast-red);}
.adm-b{padding:20px 24px;overflow-y:auto;flex-grow:1;}
.adm-sec{margin-bottom:26px;}
.adm-sec > h6{font-family:var(--font-eyebrow);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:#6E6E7B;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line-dark);}
.adm-f{margin-bottom:13px;}
.adm-f label{display:block;font-size:.74rem;color:#8E8E9B;margin-bottom:5px;font-family:var(--font-eyebrow);letter-spacing:.1em;text-transform:uppercase;}
.adm-f input,.adm-f textarea{width:100%;background:#08080C;border:1px solid var(--line-dark);border-radius:7px;padding:10px 12px;color:var(--bone);font-family:var(--font-body);font-size:.9rem;}
.adm-f input:focus,.adm-f textarea:focus{outline:none;border-color:var(--fast-red);}
.adm-f textarea{resize:vertical;min-height:74px;}
.adm-drop{border:1px dashed var(--line-dark);border-radius:9px;padding:16px;text-align:center;font-size:.8rem;color:#8F8F9C;transition:.25s;cursor:pointer;}
.adm-drop:hover{border-color:var(--fast-red);color:var(--bone);}
.adm-ft{padding:18px 24px;border-top:1px solid var(--line-dark);display:flex;gap:10px;}
.adm-ft .btn{flex:1;padding:12px 14px;font-size:.74rem;}
.adm-ovl{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:var(--z-scrim);opacity:0;visibility:hidden;transition:.4s;}
.adm-ovl.open{opacity:1;visibility:visible;}
body.adm-live [data-edit]{box-shadow:0 0 0 1px rgba(230,12,32,.5);border-radius:3px;}
body.adm-live [data-img]{outline:2px dashed rgba(230,12,32,.6);outline-offset:2px;}

.toast{
  position:fixed;bottom:24px;left:50%;transform:translate(-50%,120px);z-index:var(--z-toast);
  background:var(--fast-red);color:var(--bone);padding:13px 26px;border-radius:100px;
  font-family:var(--font-eyebrow);letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;
  transition:transform .45s var(--ease-rush);
}
.toast.show{transform:translate(-50%,0);}

.skip-link{
  position:fixed;top:-60px;left:16px;z-index:var(--z-toast);
  background:var(--fast-red);color:var(--bone);
  font-family:var(--font-eyebrow);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;
  padding:14px 22px;border-radius:0 0 12px 12px;transition:top .2s var(--ease-rush);
}
.skip-link:focus{top:0;}
/* align-items was center, which is invisible on one line and wrong on two. On a phone the
   hero trust line wraps to three, and a centred dot sat beside the MIDDLE line as if it were
   bulleting the wrong sentence. flex-start plus half a line of offset puts the dot on the first
   line at any wrap and looks identical when there is only one. */
.trust-line{
  display:flex;align-items:flex-start;gap:9px;margin-top:14px;
  font-size:.8rem;color:#8F8F9C;
}
.trust-line::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--fast-red);flex-shrink:0;margin-top:.5em;}
.band-light .trust-line{color:#5B5B66;}
.prog-c.flag .btn-ghost{border-color:rgba(255,255,255,.3);color:var(--bone);}
.coach-body p{max-width:64ch;}
.mob-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);
  display:none;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(10,10,12,.97);border-top:1px solid var(--line-dark);
  transform:translateY(110%);transition:transform .45s var(--ease-rush);
}
.mob-bar.on{transform:none;}
.mob-bar .btn{flex:1;padding:13px 10px;font-size:.8rem;}
/* ---------- RESPONSIVE ---------- */
@media(max-width:1040px){
  .hero-grid,.coach,.pb,.ct{grid-template-columns:1fr;gap:40px;}
  .mth{grid-template-columns:repeat(2,1fr);}
  /* 5 steps into 2 columns leaves step 05 orphaned beside an empty cell. Let the
     last step run the full width so the sequence reads 2+2+1 with no hole. */
  .mth-s:last-child{grid-column:1/-1;}
  .rcp{grid-template-columns:repeat(2,1fr);}
  .areas{grid-template-columns:repeat(3,1fr);}
  .score{grid-template-columns:repeat(2,1fr);}
  .mth-s{border-bottom:1px solid var(--line-dark);}
}
@media(max-width:860px){
  .nav-links{
    position:fixed;top:var(--nav-h);left:0;right:0;background:rgba(10,10,12,.97);
    backdrop-filter:blur(16px);flex-direction:column;gap:0;padding:14px 24px 26px;
    border-bottom:1px solid var(--line-dark);
    /* visibility, not transform alone: a transformed-off-screen drawer keeps its
       7 links in the tab order (WCAG 2.4.3/2.4.7). Transitioned so it still
       animates — visibility flips to visible instantly on open and only after
       the slide-out finishes on close. */
    transform:translateY(-120%);visibility:hidden;transition:transform .45s var(--ease-rush),visibility .45s;
  }
  .nav-links.open{transform:none;visibility:visible;}
  .nav-links a{width:100%;padding:14px 0;border-bottom:1px solid var(--line-dark);}
  .nav-toggle{display:grid;}
  .nav .btn-primary{display:none;}
  .aud,.prog,.tst{grid-template-columns:1fr;}
  .areas{grid-template-columns:repeat(2,1fr);}
  .fld-row{grid-template-columns:1fr;}
  .creds{grid-template-columns:1fr;}
}
@media(max-width:860px){
  .mob-bar{display:flex;}
  body{padding-bottom:70px;}
  .adm-fab{bottom:calc(70px + env(safe-area-inset-bottom) + 12px);}
  .intro-mark .im-logo{width:72vw;}
  .intro-skip{bottom:calc(22px + env(safe-area-inset-bottom));right:18px;}
}
@media(max-width:520px){
  .mth,.score,.rcp{grid-template-columns:1fr;}
  .rcp-next{padding:20px;}
  .rcp-next .btn{width:100%;}
  /* Hero was running ~1.9 screens tall here: trim the chrome around the copy
     and the court-card, keep the photo (cropped, not hidden). */
  .hero{padding-top:calc(var(--nav-h) + 20px);padding-bottom:28px;}
  .hero-grid{gap:26px;}
  .hero h1{margin-bottom:16px;}
  .hero-cta{margin:20px 0 20px;}
  .hero-trust{gap:18px;padding-top:16px;}
  .cc-label{padding:10px 14px;}
  .cc-shot{aspect-ratio:4/3;}
  .cc-shot img{height:100%;object-fit:cover;}
  .cc-stat{padding:10px 10px;}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;transition-delay:0ms !important;animation-delay:0ms !important;}
  .zr,.rise{opacity:1 !important;transform:none !important;filter:none !important;}
  .rcp-c.rise .rcp-shot img,.coach-img.rise img{opacity:1 !important;animation:none !important;}
  .coach-img .coach-badge{opacity:1 !important;transform:none !important;}
  #intro{display:none !important;}
}
/* Manual kill switch (data-motion) + per-system toggles (data-reveals/data-intro) —
   twins of the reduced-motion block above. Keep edits to either side mirrored. */
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;transition-delay:0ms !important;animation-delay:0ms !important;}
html[data-motion="off"] .zr,html[data-motion="off"] .rise,
html[data-reveals="off"] .zr,html[data-reveals="off"] .rise{opacity:1 !important;transform:none !important;filter:none !important;}
html[data-motion="off"] .rcp-c.rise .rcp-shot img,html[data-motion="off"] .coach-img.rise img,
html[data-reveals="off"] .rcp-c.rise .rcp-shot img,html[data-reveals="off"] .coach-img.rise img{opacity:1 !important;animation:none !important;}
html[data-motion="off"] .coach-img .coach-badge,
html[data-reveals="off"] .coach-img .coach-badge{opacity:1 !important;transform:none !important;}
html[data-motion="off"] #intro,
html[data-intro="off"] #intro{display:none !important;}

/* ---------- ANIMATED LOCKUP (.alogo) ----------
   Ported verbatim from the design system (styles/components.css `.alogo`).
   Drives the real vector inlined from src/brand/logo-anim.svg — part classes
   al-lt (al-f/al-a/al-st), al-ln, al-notch, al-cres, al-rule(-l/-r), al-wl.
   Pure CSS: the build runs on mount, no JS. Total build ~1.6s. */
.alogo{display:block;line-height:0;}
.alogo svg{display:block;width:100%;height:auto;overflow:visible;}
.alogo path{transform-box:fill-box;transform-origin:50% 50%;}
.alogo .al-ln{transform-origin:100% 50%;}
.alogo .al-rule-l{transform-origin:100% 50%;}
.alogo .al-rule-r{transform-origin:0 50%;}
.alogo.play .al-lt{animation:alLetter .6s var(--ease-rush) both;}
.alogo.play .al-f{animation-delay:.05s;}
.alogo.play .al-a{animation-delay:.14s;}
.alogo.play .al-st{animation-delay:.23s;}
.alogo.play .al-ln{animation:alLine .55s var(--ease-rush) both,alGust 1.1s ease-in-out;animation-delay:calc(.3s + var(--i)*.05s),calc(1.72s + var(--i)*.06s);}
.alogo.play .al-notch{animation:alNotch .42s var(--ease-reveal) both;animation-delay:.52s;}
.alogo.play .al-cres{animation:alCres .62s var(--ease-rush) both;animation-delay:.6s;}
.alogo.play .al-rule{animation:alRule .5s var(--ease-rush) both;animation-delay:.98s;}
.alogo.play .al-wl{animation:alWord .45s var(--ease-reveal) both;animation-delay:calc(.88s + var(--i)*.035s);}
@keyframes alLetter{0%{opacity:0;transform:translateX(-430px) skewX(-14deg);}55%{opacity:1;transform:translateX(24px) skewX(2deg);}100%{opacity:1;transform:none;}}
@keyframes alLine{0%{opacity:0;transform:translateX(-300px) scaleX(2.4);}60%{opacity:1;}100%{opacity:1;transform:none;}}
@keyframes alNotch{0%{opacity:0;transform:translate(110px,-120px);}62%{opacity:1;transform:translate(-8px,7px);}100%{opacity:1;transform:none;}}
@keyframes alCres{0%{clip-path:inset(-10% 102% -10% -2%);}100%{clip-path:inset(-10% -2% -10% -2%);}}
@keyframes alRule{0%{transform:scaleX(0);}100%{transform:none;}}
@keyframes alWord{0%{opacity:0;transform:translateY(64px);}62%{opacity:1;transform:translateY(-7px);}100%{opacity:1;transform:none;}}
@keyframes alGust{0%,100%{opacity:1;}45%{opacity:.55;}}