:root {
  color-scheme: dark;
  --ink: #090909;
  --ink-soft: #151515;
  --paper: #f2f0ea;
  --paper-2: #d8d4cb;
  --muted: #9b9890;
  --line: rgba(242, 240, 234, .18);
  --pink: #ff0a78;
  --pink-hot: #ff2f92;
  /* Filled pink behind white text: #ff0a78 is only 3.8:1 with white, these pass WCAG AA (4.8:1 / 5.8:1). */
  --pink-fill: #e0006a;
  --pink-fill-hot: #c8005a;
  --error: #ff5a8a;
  --display: "Barlow Condensed", "Fira Sans Extra Condensed", Impact, sans-serif;
  --body: "DM Sans", "Inter", system-ui, sans-serif;
  --shell: min(1180px, calc(100vw - 48px));
}

[data-theme="light"] {
  color-scheme: light;
  --error: #b40036;
  --ink: #f2f0ea;
  --ink-soft: #e6e2d9;
  --paper: #0b0b0b;
  --paper-2: #2b2a27;
  --muted: #57554f;
  --line: rgba(11, 11, 11, .18);
}

@media (prefers-color-scheme: light) {
  :root:not([data-theme]) {
    color-scheme: light;
    --error: #b40036;
    --ink: #f2f0ea;
    --ink-soft: #e6e2d9;
    --paper: #0b0b0b;
    --paper-2: #2b2a27;
    --muted: #57554f;
    --line: rgba(11, 11, 11, .18);
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.55;
  overflow-x: hidden;
  /* Light-on-dark text renders heavy with subpixel smoothing on macOS; grayscale keeps bold type crisp. */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body, button, input { transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--pink); outline-offset: 4px; }
.shell { width: var(--shell); margin-inline: auto; }
.section { padding: clamp(96px, 12vw, 180px) 0; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 100; background: var(--pink-fill); color: #fff; padding: 12px 18px; font-weight: 700; text-decoration: none; }
.skip-link:focus { top: 16px; }
.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; }
.noise { position: fixed; inset: 0; z-index: 80; pointer-events: none; opacity: .035; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }

.site-header { position: fixed; inset: 0 0 auto; z-index: 70; display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 28px; padding: 18px max(24px, calc((100vw - 1180px)/2)); border-bottom: 1px solid transparent; color: #f7f4ee; transition: background .3s, border-color .3s, padding .3s; }
.site-header.is-scrolled { padding-block: 10px; background: rgba(9,9,9,.9); border-color: rgba(255,255,255,.12); backdrop-filter: blur(14px); }
.brand { display: inline-flex; align-items: center; width: max-content; gap: 10px; text-decoration: none; font-family: var(--display); font-weight: 900; font-size: 24px; letter-spacing: -.02em; }
.brand img { width: 46px; height: 46px; object-fit: contain; }
.brand span span, .footer-brand > span span { color: var(--pink); }
.desktop-nav { display: flex; gap: 32px; }
.desktop-nav a { display: inline-flex; align-items: center; min-height: 44px; color: rgba(255,255,255,.72); text-decoration: none; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.desktop-nav a:hover { color: #fff; }
.header-actions { display: flex; justify-content: flex-end; align-items: center; gap: 10px; }
.header-socials { display:flex; align-items:center; gap:6px; }
.header-socials a { display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(255,255,255,.22); color:rgba(255,255,255,.8); text-decoration:none; background:rgba(0,0,0,.18); transition:color .18s ease,border-color .18s ease,background .18s ease,transform .18s ease; }
.header-socials a:hover { color:#fff; border-color:var(--pink); background:rgba(255,10,120,.12); transform:translateY(-2px); }
.header-socials svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.header-socials .social-dot { fill:currentColor; stroke:none; }
.language-menu { position:relative; z-index:4; }
.language-trigger { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:9px; min-width:58px; height:42px; border:1px solid rgba(255,255,255,.28); background:rgba(0,0,0,.3); color:#fff; padding:0 10px 0 12px; font:800 12px/1 var(--body); letter-spacing:.12em; cursor:pointer; transition:border-color .18s ease,background .18s ease,color .18s ease; }
.language-trigger::after { content:""; position:absolute; left:-1px; right:-1px; bottom:-1px; height:3px; background:var(--pink); transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.language-menu.is-open .language-trigger, .language-trigger:hover { border-color:var(--pink); background:rgba(255,10,120,.12); }
.language-menu.is-open .language-trigger::after { transform:scaleX(1); }
.language-chevron { width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform .2s ease; }
.language-menu.is-open .language-chevron { transform:translateY(2px) rotate(225deg); }
.language-popover { position:absolute; top:calc(100% + 8px); right:0; width:190px; padding:7px; border:1px solid rgba(255,255,255,.2); background:rgba(8,8,8,.97); box-shadow:10px 12px 0 rgba(255,10,120,.2),0 22px 50px rgba(0,0,0,.45); backdrop-filter:blur(18px); }
.language-popover[hidden] { display:none; }
.language-popover::before { content:""; position:absolute; top:-5px; right:23px; width:8px; height:8px; border-left:1px solid rgba(255,255,255,.2); border-top:1px solid rgba(255,255,255,.2); background:#080808; transform:rotate(45deg); }
.language-popover button { display:grid; grid-template-columns:34px 1fr; align-items:center; width:100%; min-height:42px; border:0; background:transparent; color:#aaa; padding:0 10px; text-align:left; cursor:pointer; transition:background .15s ease,color .15s ease; }
.language-popover button + button { border-top:1px solid rgba(255,255,255,.08); }
.language-popover button b { color:#fff; font-size:12px; letter-spacing:.12em; }
.language-popover button span { font-size:13px; }
.language-popover button:hover, .language-popover button:focus-visible { background:rgba(255,255,255,.07); color:#fff; outline:none; }
.language-popover button[aria-selected="true"] { background:var(--pink-fill); color:#fff; }
.language-popover button[aria-selected="true"] b { color:#fff; }
.theme-button { display: inline-flex; align-items: center; gap: 7px; min-height: 42px; border: 1px solid rgba(255,255,255,.24); background: rgba(0,0,0,.2); color: #fff; padding: 0 12px; cursor: pointer; }
.theme-label { font-size: 12px; text-transform: uppercase; font-weight: 700; letter-spacing: .08em; }

.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 56px; padding: 0 24px; border: 0; background: var(--pink-fill); color: #fff; font-weight: 800; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; cursor: pointer; box-shadow: 6px 6px 0 rgba(255,255,255,.12); transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.button:hover { transform: translate(-3px,-3px); background: var(--pink-fill-hot); box-shadow: 9px 9px 0 rgba(255,255,255,.18); }
.button--small { min-height: 42px; padding: 0 16px; font-size: 12px; box-shadow: none; }
.button--small:hover { box-shadow: 4px 4px 0 rgba(255,255,255,.18); }
.button--ghost { border:1px solid rgba(255,255,255,.32); background:rgba(0,0,0,.18); box-shadow:none; }
.button--ghost:hover { border-color:var(--pink-fill); background:var(--pink-fill); }
.login-button { gap:8px; white-space:nowrap; }
.login-button svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

.hero-scroll { position:relative; background:#050505; }
.hero { position: relative; min-height: 760px; height: 100svh; display: grid; align-items: end; overflow: hidden; background: #050505; color: #f7f4ee; }
.hero-media { position: absolute; inset:0; overflow:hidden; background:#050505; }
.hero-media video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.9) contrast(1.12) brightness(.76) hue-rotate(320deg); transform:scale(1.015); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.75) 39%, rgba(0,0,0,.1) 74%), linear-gradient(0deg, rgba(0,0,0,.72), transparent 55%); }
.hero-content { position: relative; z-index: 2; padding-bottom: clamp(72px, 11vh, 124px); }
.eyebrow, .section-kicker { display: flex; align-items: center; gap: 12px; color: var(--pink); font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 42px; height: 2px; background: currentColor; }
.hero-title { margin: 18px 0 22px; font-family: var(--display); font-weight: 800; font-style: italic; text-transform: uppercase; letter-spacing: -.055em; line-height: .77; font-size: clamp(80px, 12.3vw, 180px); }
.hero-title > span { display: block; padding-left: .06em; color: rgba(255,255,255,.9); font-size: .41em; line-height: 1.1; letter-spacing: -.02em; }
.hero-title strong { display: block; font-weight: 900; }
.hero-title strong span { color: var(--pink); }
.hero-copy { max-width: 560px; margin: 0 0 34px; color: rgba(255,255,255,.7); font-size: clamp(17px, 1.6vw, 21px); }
.hero-cta { display: flex; align-items: center; gap: 28px; }
.text-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.4); padding-bottom: 6px; }
.hero-index { position: absolute; right: max(24px, calc((100vw - 1180px)/2)); bottom: 54px; z-index: 2; display: flex; align-items: center; gap: 10px; font-family: var(--display); font-weight: 700; }
.hero-index b { width: 56px; height: 2px; background: linear-gradient(90deg,var(--pink) 25%,rgba(255,255,255,.3) 25%); }

.marquee { overflow: hidden; background: var(--pink); color: #fff; transform: rotate(-1.2deg) scale(1.02); transform-origin: center; }
.marquee-track { display: flex; width: max-content; align-items: center; gap: 24px; padding: 13px 0; font-family: var(--display); font-size: 28px; font-weight: 900; letter-spacing: .04em; animation: marquee 18s linear infinite; }
.marquee-track i { font-style: normal; font-size: 14px; }

.manifesto-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(280px,.6fr); gap: clamp(56px,8vw,120px); align-items: end; margin-top: 42px; }
.display { margin: 0; font-family: var(--display); font-size: clamp(58px,8.4vw,126px); line-height: .83; letter-spacing: -.045em; text-transform: uppercase; }
.display em { color: var(--pink); font-style: italic; }
.manifesto-copy > p, .section-intro, .schedule-title-row > p, .trial-copy > p { font-size: 18px; color: var(--muted); }
.principles { list-style: none; padding: 0; margin: 38px 0 0; border-top: 1px solid var(--line); }
.principles li { display: flex; gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--line); font-weight: 700; text-transform: uppercase; }
.principles span { color: var(--pink); font-family: var(--display); }

.impact { position: relative; min-height: 520px; display: grid; place-items: center; overflow: hidden; background: var(--paper); color: var(--ink); clip-path: polygon(0 8%,47% 1%,51% 8%,100% 0,100% 92%,58% 100%,53% 93%,0 100%); }
.impact-word { position: absolute; font-family: var(--display); font-size: clamp(140px,27vw,430px); line-height: 1; font-weight: 900; letter-spacing: -.09em; color: transparent; -webkit-text-stroke: 2px var(--ink); opacity: .12; transform: rotate(-4deg); }
.impact p { position: relative; z-index: 3; margin: 0; font-family: var(--display); font-size: clamp(64px,10vw,150px); font-weight: 900; font-style: italic; text-transform: uppercase; letter-spacing: -.05em; transform: rotate(-4deg); }
.impact p::after { content:""; position:absolute; left: 6%; right:-8%; bottom: 9%; height: 16px; background: var(--pink); z-index:-1; }
.impact-cracks { position:absolute; inset:50%; width:0; height:0; }
.impact-cracks i { position:absolute; transform-origin: left; width: 46vw; height: 2px; background: var(--ink); opacity:.42; }
.impact-cracks i:nth-child(1){--r:12deg;transform:rotate(var(--r))} .impact-cracks i:nth-child(2){--r:154deg;transform:rotate(var(--r))} .impact-cracks i:nth-child(3){--r:217deg;transform:rotate(var(--r))} .impact-cracks i:nth-child(4){--r:306deg;transform:rotate(var(--r))} .impact-cracks i:nth-child(5){--r:265deg;transform:rotate(var(--r));width:28vw}
.impact.is-hit .impact-cracks i { animation: crack .55s cubic-bezier(.2,.9,.2,1) both; }

.section-head { display: grid; grid-template-columns: 1.4fr .6fr; gap: 80px; align-items: end; }
.section-head .display { margin-top: 40px; }
.program-list { margin-top: 80px; border-top: 1px solid var(--line); }
.program { position: relative; display: grid; grid-template-columns: 70px 1.1fr 1fr 42px; gap: 28px; align-items: center; padding: 36px 0; border-bottom: 1px solid var(--line); overflow: hidden; }
.program::before { content:""; position:absolute; inset:0; z-index:-1; background: var(--pink-fill); transform:translateX(-101%); transition:transform .35s ease; }
.program:hover::before { transform: translateX(0); }
.program:hover { color:#fff; }
.program:hover p, .program:hover .program-tag { color:rgba(255,255,255,.78); }
.program-number { font-family: var(--display); color: var(--pink); font-weight:800; }
.program:hover .program-number { color:#fff; }
.program-tag { margin:0 0 5px; color:var(--muted); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.program h3 { margin:0; font-family:var(--display); font-size:clamp(30px,3vw,46px); line-height:1; }
.program > p { margin:0; color:var(--muted); }
.program-arrow { font-size:28px; }

.schedule { background: #111; color:#f4f1eb; }
.schedule .section-kicker { color: var(--pink); }
.schedule-title-row { display:grid; grid-template-columns:1.4fr .6fr; gap:70px; align-items:end; margin-top:40px; }
.schedule-title-row > p { color:#aaa; }
.schedule-grid { margin-top:72px; border-top:1px solid rgba(255,255,255,.2); }
.schedule-row { display:grid; grid-template-columns:.6fr repeat(3,1fr); border-bottom:1px solid rgba(255,255,255,.16); min-height:74px; align-items:center; }
.schedule-row > * { padding:16px; }
.schedule-row > * + * { border-left:1px solid rgba(255,255,255,.12); }
.schedule-row strong { color:var(--pink); font-family:var(--display); font-size:30px; }
.schedule-row--head { min-height:48px; color:var(--muted); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.schedule-note { color:#777; font-size:12px; }

.film { position:relative; overflow:hidden; }
/* Horizontal carousel: the current round large in the middle, the previous and next ones small at the sides. */
.film-reel { margin-top:64px; }
.film-track { --card-w:min(clamp(240px, 25vw, 360px), calc((100svh - 240px) * 9 / 16)); position:relative; height:calc(var(--card-w) * 16 / 9); touch-action:pan-y; user-select:none; }
.film-slide { position:absolute; top:0; left:50%; width:var(--card-w); height:100%; margin:0 0 0 calc(var(--card-w) / -2); overflow:hidden; background:#050505; opacity:0; visibility:hidden; pointer-events:none; transform:scale(.4); transition:transform .6s cubic-bezier(.65,0,.25,1), opacity .6s ease, filter .6s ease, box-shadow .6s ease; }
.film-slide[data-off="0"] { z-index:3; opacity:1; visibility:visible; pointer-events:auto; transform:none; box-shadow:10px 10px 0 rgba(255,10,120,.22); }
.film-slide[data-off="-1"], .film-slide[data-off="1"] { z-index:2; opacity:.55; visibility:visible; pointer-events:auto; cursor:pointer; filter:brightness(.7); }
.film-slide[data-off="-1"] { transform:translateX(calc(var(--card-w) * -.9)) scale(.62); }
.film-slide[data-off="1"] { transform:translateX(calc(var(--card-w) * .9)) scale(.62); }
.film-slide[data-off="-1"]:hover, .film-slide[data-off="1"]:hover { opacity:.8; }
.film-slide[data-off="-2"], .film-slide[data-off="2"] { z-index:1; visibility:visible; }
.film-slide[data-off="-2"] { transform:translateX(calc(var(--card-w) * -1.5)) scale(.4); }
.film-slide[data-off="2"] { transform:translateX(calc(var(--card-w) * 1.5)) scale(.4); }
.film-slide::after { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(0deg,rgba(0,0,0,.55),transparent 30%); }
.film-backdrop { position:absolute; inset:-8%; width:116%; height:116%; max-width:none; object-fit:cover; filter:grayscale(1) blur(26px) brightness(.38); }
.film-slide video { position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.08); }
.film-slide.is-landscape video { object-fit:contain; }
.film-slide__num { position:absolute; left:16px; bottom:14px; z-index:3; color:#f7f4ee; font:800 13px/1 var(--body); letter-spacing:.18em; }
.film-slide[data-off="0"] .film-slide__num { color:var(--pink); }

.film-bar { display:flex; align-items:center; justify-content:center; gap:10px; margin-top:34px; }
.film-counter { display:flex; align-items:baseline; gap:6px; min-width:92px; justify-content:center; font-family:var(--display); font-weight:800; color:var(--muted); font-size:18px; letter-spacing:.04em; font-variant-numeric:tabular-nums; }
.film-counter b { color:var(--paper); font-size:40px; line-height:.8; }
.film-button { display:grid; place-items:center; width:46px; height:46px; padding:0; border:1px solid var(--line); background:transparent; color:var(--paper); font-size:18px; font-weight:800; cursor:pointer; transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease; }
.film-button:hover { border-color:var(--pink-fill); background:var(--pink-fill); color:#fff; transform:translateY(-2px); }
.film-icon { position:relative; display:block; width:12px; height:14px; }
.film-button--toggle[data-state="playing"] .film-icon { border-left:4px solid currentColor; border-right:4px solid currentColor; }
.film-button--toggle[data-state="paused"] .film-icon { width:0; height:0; border-style:solid; border-width:7px 0 7px 12px; border-color:transparent transparent transparent currentColor; margin-left:3px; }
.film-rounds { display:flex; flex-wrap:wrap; justify-content:center; gap:4px; margin:18px 0 0; padding:0; list-style:none; }
.film-rounds button { position:relative; min-width:44px; min-height:44px; padding:0 6px; border:0; background:none; color:var(--muted); font:800 18px/1 var(--display); letter-spacing:.02em; font-variant-numeric:tabular-nums; cursor:pointer; transition:color .2s ease; }
.film-rounds button:hover { color:var(--paper); }
.film-rounds button[aria-current="true"] { color:var(--pink); }
.film-rounds i { position:absolute; left:8px; right:8px; bottom:6px; height:2px; background:var(--line); opacity:0; }
.film-rounds button[aria-current="true"] i { opacity:1; }
.film-rounds i::after { content:""; position:absolute; inset:0 auto 0 0; width:calc(var(--p, 0) * 100%); background:var(--pink); transition:width .25s linear; }

/* Coaches: cards from GET /api/public/coaches. Photo 3:4 in grayscale, or a monogram when there is none. */
.coach-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:clamp(16px,2vw,28px); margin:56px 0 0; padding:0; list-style:none; }
.coach-card { display:flex; flex-direction:column; border:1px solid var(--line); background:var(--ink-soft); transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.coach-card:hover, .coach-card:focus-within { border-color:var(--pink); transform:translateY(-3px); box-shadow:8px 8px 0 rgba(255,10,120,.18); }
.coach-card__photo { position:relative; margin:0; aspect-ratio:3 / 4; overflow:hidden; background:#0d0d0d; }
.coach-card__photo img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); transition:transform .5s ease; }
.coach-card:hover .coach-card__photo img { transform:scale(1.04); }
.coach-card__monogram { position:absolute; inset:0; display:grid; place-items:center; color:rgba(242,240,234,.14); font:800 clamp(96px,10vw,150px)/1 var(--display); letter-spacing:-.02em; background:linear-gradient(160deg,#151515,#060606); }
.coach-card__monogram::after { content:""; position:absolute; left:0; right:0; bottom:0; height:6px; background:var(--pink-fill); }
.coach-card__body { display:flex; flex:1; flex-direction:column; gap:10px; padding:20px 20px 22px; }
.coach-card__headline { margin:0; color:var(--pink); font-size:12px; font-weight:800; letter-spacing:.14em; line-height:1.4; text-transform:uppercase; }
.coach-card h3 { margin:0; font:800 clamp(28px,2.4vw,36px)/1 var(--display); letter-spacing:.01em; text-transform:uppercase; }
.coach-card__bio { margin:0; color:var(--paper-2); font-size:15px; line-height:1.55; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.coach-card__bio.is-open { display:block; }
.coach-card__more { align-self:flex-start; min-height:44px; padding:0; border:0; background:none; color:var(--paper); font:700 13px/1 var(--body); letter-spacing:.06em; text-decoration:underline; text-underline-offset:4px; text-transform:uppercase; cursor:pointer; }
.coach-card .button { width:100%; margin-top:auto; gap:12px; }
[data-coaches][hidden], [data-coaches-link][hidden], [data-coach-field][hidden], .coach-card__more[hidden] { display:none !important; }
.field select { width:100%; min-height:52px; border:0; border-bottom:2px solid rgba(127,127,127,.4); border-radius:0; background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23999' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 4px center; color:inherit; padding:10px 28px 10px 0; font:inherit; appearance:none; cursor:pointer; }
.field select option { color:#0b0b0b; }
.field.is-picked select { border-bottom-color:var(--pink); }
[data-theme="light"] .coach-card__headline { color:#c8005a; }
[data-theme="light"] .coach-card__monogram { color:rgba(11,11,11,.14); background:linear-gradient(160deg,#ece9e1,#dcd8ce); }

.trial { position:relative; overflow:hidden; }
.trial::before { content:""; position:absolute; width:52vw; aspect-ratio:1; left:-22vw; bottom:-32vw; background:radial-gradient(circle,var(--pink),transparent 68%); opacity:.14; }
.trial-grid { display:grid; grid-template-columns:1.05fr .75fr; gap:clamp(56px,10vw,150px); }
.trial-copy .display { margin-top:40px; }
.trial-copy > p { max-width:600px; }
.trial-mark { width:220px; margin:34px 0 0 auto; transform:rotate(-7deg); filter:drop-shadow(0 18px 28px rgba(0,0,0,.35)); }
.trial-mark__name { margin:10px 0 0; font-family:var(--display); font-size:34px; font-weight:900; line-height:1; letter-spacing:-.02em; text-align:center; white-space:nowrap; }
.trial-mark__name span { color:var(--pink); }
.trial-form { align-self:start; padding:clamp(24px,4vw,46px); background:var(--paper); color:var(--ink); box-shadow:14px 14px 0 var(--pink); }
.field { margin:0 0 24px; padding:0; border:0; }
.field label, .field legend { display:block; margin-bottom:8px; font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.field input:not([type="radio"]) { width:100%; min-height:52px; border:0; border-bottom:2px solid rgba(127,127,127,.4); border-radius:0; background:transparent; color:inherit; padding:10px 0; }
.field input::placeholder { color:var(--muted); }
.choice-row { display:flex; flex-wrap:wrap; gap:8px; }
.choice-row label { margin:0; }
.choice-row input { position:absolute; opacity:0; }
.choice-row span { display:flex; align-items:center; min-height:44px; padding:10px 14px; border:1px solid rgba(127,127,127,.35); cursor:pointer; }
.choice-row input:checked + span { border-color:var(--pink-fill); background:var(--pink-fill); color:#fff; }
.consent { display:flex; align-items:flex-start; gap:12px; min-height:44px; margin:4px 0 24px; font-size:14px; cursor:pointer; }
.consent input { flex:0 0 auto; width:24px; height:24px; margin:0; accent-color:var(--pink); }
.button--form { width:100%; box-shadow:6px 6px 0 rgba(0,0,0,.18); }
.form-note { color:var(--muted); font-size:12px; }
.field-error { min-height:18px; display:block; color:var(--error); font-size:12px; margin-top:5px; }
.form-status { margin-top:18px; padding:16px; background:var(--ink); color:var(--paper); font-weight:700; }

.site-footer { background:#050505; color:#efede7; padding:80px 0 28px; border-top:8px solid var(--pink); }
.footer-grid { display:grid; grid-template-columns:1.4fr repeat(3,.65fr); gap:48px; }
.footer-brand > span { font-family:var(--display); font-size:42px; font-weight:900; }
.footer-grid > div:not(:first-child) { display:flex; flex-direction:column; gap:9px; }
.footer-grid strong { color:var(--muted); font-size:12px; letter-spacing:.12em; text-transform:uppercase; margin-bottom:5px; }
.footer-grid a, .footer-grid p { color:#aaa; margin:0; text-decoration:none; }
.footer-grid a:hover { color:var(--pink); }
.footer-bottom { display:flex; justify-content:space-between; margin-top:70px; padding-top:22px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.09em; }

.reveal { opacity:0; transform:translateY(34px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }
@keyframes marquee { to { transform:translateX(-50%); } }
@keyframes crack { from { transform:rotate(var(--r,0deg)) scaleX(0); } to { transform:rotate(var(--r,0deg)) scaleX(1); } }

[data-theme="light"] .site-header { color:#111; }
[data-theme="light"] .site-header.is-scrolled { background:rgba(242,240,234,.92); border-color:rgba(11,11,11,.14); }
[data-theme="light"] .desktop-nav a { color:rgba(11,11,11,.68); }
[data-theme="light"] .desktop-nav a:hover { color:#0b0b0b; }
[data-theme="light"] .header-socials a,
[data-theme="light"] .language-trigger,
[data-theme="light"] .theme-button,
[data-theme="light"] .button--ghost { border-color:rgba(11,11,11,.25); background:rgba(242,240,234,.42); color:#111; }
[data-theme="light"] .language-popover { border-color:rgba(11,11,11,.2); background:rgba(242,240,234,.98); box-shadow:10px 12px 0 rgba(255,10,120,.22),0 22px 50px rgba(0,0,0,.15); }
[data-theme="light"] .language-popover::before { border-color:rgba(11,11,11,.2); background:#f2f0ea; }
[data-theme="light"] .language-popover button { color:#57554f; }
[data-theme="light"] .language-popover button + button { border-color:rgba(11,11,11,.1); }
[data-theme="light"] .language-popover button b { color:#111; }
[data-theme="light"] .language-popover button:hover, [data-theme="light"] .language-popover button:focus-visible { background:rgba(11,11,11,.07); color:#111; }
[data-theme="light"] .language-popover button[aria-selected="true"], [data-theme="light"] .language-popover button[aria-selected="true"] b { color:#fff; }
[data-theme="light"] .header-socials a:hover,
[data-theme="light"] .button--ghost:hover { border-color:var(--pink-fill); background:var(--pink-fill); color:#fff; }
[data-theme="light"] .hero-scroll,
[data-theme="light"] .hero,
[data-theme="light"] .hero-media { background:#f2f0ea; }
[data-theme="light"] .hero { color:#0b0b0b; }
[data-theme="light"] .hero-media video { filter:grayscale(1) contrast(.82) brightness(1.55); }
[data-theme="light"] .hero-shade { background:linear-gradient(90deg,rgba(242,240,234,.98) 0%,rgba(242,240,234,.8) 42%,rgba(242,240,234,.12) 78%),linear-gradient(0deg,rgba(242,240,234,.7),transparent 58%); }
[data-theme="light"] .hero-title > span { color:rgba(11,11,11,.86); }
[data-theme="light"] .hero-copy { color:rgba(11,11,11,.7); }
[data-theme="light"] .text-link { border-color:rgba(11,11,11,.38); }
[data-theme="light"] .hero-index b { background:linear-gradient(90deg,var(--pink) 25%,rgba(11,11,11,.28) 25%); }

.login-page { min-height:100svh; overflow:auto; background:radial-gradient(circle at 78% 20%,rgba(255,10,120,.16),transparent 26%),#090909; color:#f7f4ee; }
.login-header { display:flex; align-items:center; justify-content:space-between; width:min(100% - 48px,1180px); margin-inline:auto; padding:22px 0; border-bottom:1px solid rgba(255,255,255,.13); }
.login-header__actions { display:flex; align-items:center; gap:18px; }
.login-hold { position:relative; display:flex; min-height:calc(100svh - 91px); width:min(100% - 48px,1180px); margin-inline:auto; padding:clamp(70px,12vh,140px) 0; flex-direction:column; align-items:flex-start; justify-content:center; overflow:hidden; }
.login-hold .display { max-width:900px; margin:20px 0 28px; font-size:clamp(64px,9vw,138px); line-height:.78; }
.login-hold__copy { max-width:590px; margin:0 0 36px; color:#aaa; font-size:clamp(16px,2vw,20px); }
.login-hold__mark { position:absolute; right:0; top:50%; translate:0 -50%; color:rgba(255,255,255,.035); font-family:var(--display); font-size:clamp(160px,30vw,460px); font-weight:900; letter-spacing:-.1em; white-space:nowrap; pointer-events:none; }
.login-hold__mark span { color:rgba(255,10,120,.1); }

/* Fira Sans Extra Condensed (Cyrillic fallback) is tighter than Barlow: ease the negative tracking so letters don't touch. */
:is(html[lang="ru"], html[lang="uk"]) :is(.display, .hero-title, .impact p, .offer-hero .display, .plan-card h3, .offer-cta h2) { letter-spacing:-.01em; }
/* RU/UK: one family per line. Otherwise digits and Latin names come from Barlow/DM Sans and letters from
   Fira/Inter, so "8 РАУНДОВ" or "Тренер · Marta K." mix two typefaces of different width and weight. */
html:is([lang="ru"], [lang="uk"]) { --display: "Fira Sans Extra Condensed", "Barlow Condensed", Impact, sans-serif; --body: "Inter", "DM Sans", system-ui, sans-serif; }
/* Cyrillic capitals (Й, Ё) need more room than the Latin .78–.83 line height. */
:is(html[lang="ru"], html[lang="uk"]) :is(.display, .offer-hero .display) { line-height:.9; }

/* Honeypot for bots: off-screen, never focusable by people. */
.hp-field { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.form-status.is-error { background:transparent; border:2px solid var(--error); color:var(--paper); }
.trial-form button[aria-busy="true"] { opacity:.7; cursor:progress; }
.mobile-cta { display:none; }

@media (max-width: 900px) {
  :root { --shell:min(100% - 32px, 720px); }
  .site-header { grid-template-columns:1fr auto; padding:12px 16px; }
  .desktop-nav, .theme-label { display:none; }
  .brand span { display:none; }
  .hero { min-height:700px; }
  .hero-media video { object-position:58% center; }
  .hero-shade { background:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.3)),linear-gradient(0deg,rgba(0,0,0,.86),transparent 62%); }
  .manifesto-grid, .section-head, .schedule-title-row, .trial-grid { grid-template-columns:1fr; gap:40px; }
  .program { grid-template-columns:46px 1fr 32px; }
  .program > p { grid-column:2 / 4; }
  .schedule-row { grid-template-columns:.5fr repeat(3,1fr); font-size:13px; }
  .schedule-row > * { padding:12px 8px; }
  .trial-mark { display:none; }
  .film-reel { margin-top:44px; }
  .film-track { --card-w:min(62vw, 300px); }
  .footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 560px) {
  .coach-grid { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:min(78vw,300px); overflow-x:auto; scroll-snap-type:x mandatory; margin-top:40px; padding-bottom:8px; scrollbar-width:none; }
  .coach-card { scroll-snap-align:start; }
  .mobile-cta { position:fixed; left:16px; right:16px; bottom:calc(12px + env(safe-area-inset-bottom)); z-index:75; display:flex; min-height:52px; box-shadow:0 10px 30px rgba(0,0,0,.35); transform:translateY(calc(100% + 24px)); transition:transform .25s ease; }
  .mobile-cta.is-visible { transform:none; }
  .button--small, .hero-index { display:none; }
  .login-button { display:inline-flex; min-width:42px; padding:0 11px; }
  .login-button span { display:none; }
  .header-actions { gap:6px; }
  /* The socials stay in the footer; the header keeps room for 44px targets. */
  .header-socials { display:none; }
  .language-trigger { min-width:48px; height:44px; padding:0 8px; gap:7px; }
  .login-button { min-height:44px; min-width:44px; }
  .language-popover { position:fixed; top:68px; right:16px; width:min(210px,calc(100vw - 32px)); }
  .theme-button { min-width:44px; min-height:44px; justify-content:center; }
  .hero { height:auto; min-height:760px; }
  .hero-media video { object-position:61% center; }
  .hero-title { font-size:clamp(68px,24vw,104px); }
  .hero-copy { max-width:92%; }
  .hero-cta { align-items:flex-start; flex-direction:column; }
  .display { font-size:clamp(52px,17vw,80px); }
  .impact { min-height:360px; }
  .program { grid-template-columns:38px 1fr 28px; gap:14px; }
  .schedule-grid { overflow-x:auto; }
  .schedule-row { min-width:650px; }
  .choice-row { display:grid; grid-template-columns:1fr; }
  .choice-row span { min-height:44px; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; gap:10px; }
  .login-header, .login-hold { width:calc(100% - 32px); }
  .login-header .brand > span { display:none; }
  .login-header__actions { gap:10px; }
  .login-hold .display { font-size:clamp(58px,20vw,86px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
  .film-slide { transition:none; }
}
[data-social][hidden], [data-gym-phone][hidden] { display:none !important; }
