/* Premium refinement layer. Brand, action, and motion tokens live together here. */
:root {
  --ink: #101213;
  --charcoal: #141718;
  --paper: #eae7e1;
  --soft-white: #f5f3ef;
  --silver: #b9bdc0;
  --muted: #8f9699;
  --accent: #a8323c;
  --accent-light: #dfa4aa;
  --rule: #ffffff20;
  --font-brand: 'DM Sans', 'Avenir Next', Arial, sans-serif;
  --action-radius: 3px;
  --action-surface: #1b2022;
  --action-border: #b9bdc075;
  --action-arrow: #92313b;
  --ease-intent: cubic-bezier(.2,.7,.25,1);
  --pulse-duration: 9s;
}
body { background: var(--ink); color: var(--soft-white); }
.light { background: var(--paper); color: var(--charcoal); }
.header {
  position: fixed; inset: 0 0 auto; width: 100%; height: 88px;
  background: transparent; backdrop-filter: none; box-shadow: none;
  border-bottom: 1px solid transparent;
  transition: background .4s var(--ease-intent), backdrop-filter .4s, border-color .4s, box-shadow .4s;
}
.header.is-scrolled, .header.menu-open {
  height: 88px; background: #141718dc; backdrop-filter: blur(14px);
  border-bottom-color: #b9bdc01f; box-shadow: 0 5px 22px #00000012;
}
.header nav { gap: 28px; font-size: 11px; font-weight: 500; }
.header.is-scrolled .brand { transform: scale(.96); }
.brand { gap: 14px; }
.brand > span:last-child, .footer .brand > span:last-child {
  font-family: var(--font-brand); font-size: 23px; font-weight: 600;
  letter-spacing: 2.8px; line-height: 1.05; width: max-content;
  align-items: center; color: #e1e3e3;
}
.brand small, .footer .brand small {
  font-family: var(--font-brand); font-size: 8px; font-weight: 500;
  letter-spacing: 6px; line-height: 1; margin-top: 9px; padding-left: 6px;
  width: 100%; text-align: center; color: var(--silver);
}
.brand-symbol img { filter: url(#uf-cutout) saturate(.4); }
/* Complete supplied logo: crop its canvas in layout, preserve the source pixels. */
.brand > .brand-lockup:last-child, .footer .brand > .brand-lockup:last-child {
  position: relative; display: block; width: 260px; height: 55px;
  overflow: hidden; flex-shrink: 0; padding: 0; margin: 0;
}
.brand-lockup img {
  position: absolute; display: block; max-width: none;
  width: 283px; height: auto; left: -12px; top: -22px;
}
/* Approved UF, reduced 7%; refined Option C vector wordmark. Header only. */
.header .header-brand { gap: 11px; align-items: center; }
.header .header-monogram {
  position: relative; display: block; flex: 0 0 86.49px;
  width: 86.49px; height: 44.64px; overflow: hidden; mix-blend-mode: normal;
}
.header .header-monogram img {
  position: absolute; display: block; width: 93px; height: 46.5px;
  max-width: none; left: -6.51px; top: -1.86px; filter: none;
}
.header .brand > .header-wordmark:last-child {
  display: block; width: 130px; height: 40.91px; max-width: none;
  padding: 0; margin: 0; object-fit: contain; flex-shrink: 0;
  transform: translateY(-.5px);
}
.button, .header .button, .button.dark {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--action-surface); color: var(--paper);
  border: 1px solid var(--action-border); border-radius: var(--action-radius);
  padding: 0; gap: 0; font-size: 12px; min-height: 54px;
  font-weight: 500; letter-spacing: .1px; line-height: 1.5;
  box-shadow: 0 3px 10px #00000008;
  transition: background .25s, border-color .25s, box-shadow .25s, transform .25s;
}
.button:hover, .header .button:hover, .button.dark:hover {
  background: #242b2d; border-color: #d5d8d9;
  transform: translateY(-1px); filter: none; box-shadow: 0 5px 15px #00000014;
}
.button .button-label { font-size: inherit; padding: 16px 22px; transform: none; }
.button .button-arrow { display: grid; place-items: center; align-self: stretch; width: 53px; flex-shrink: 0; background: var(--action-arrow); border-left: 1px solid #ffffff18; transform: none; transition: background .3s; }
.button-arrow svg { width: 18px; height: 18px; stroke: var(--paper); stroke-width: 1.2; transition: transform .35s var(--ease-intent); }
.button:hover .button-label, .button:hover .button-arrow { transform: none; }
.button:hover .button-arrow { background: #a43a45; }
.button:hover .button-arrow svg { transform: translate(2px, -2px); }
.header .button.small { padding: 0; gap: 0; font-size: 10px; min-height: 43px; }
.header .button.small .button-label { padding: 12px 16px; }
.header .button.small .button-arrow { width: 42px; }
.header .button.small svg { width: 16px; height: 16px; }
.inquiry .button { justify-content: space-between; }
/* Same signature gradient and long pause; the light now follows the edge. */
.button:after, .header .button:after {
  content: ''; position: absolute; inset: auto;
  left: 0; top: 0; width: 22px; height: 2px;
  background: linear-gradient(90deg, transparent, #a8323caa, #f5f3ef, transparent);
  offset-path: inset(1px round 4px); offset-anchor: center;
  offset-rotate: auto; offset-distance: 0%; transform: none;
  opacity: 0; animation: perimeter-light var(--pulse-duration) 1s linear infinite;
  pointer-events: none;
}
.hero .button:after { animation-delay: 2.5s; }
.goal-response .button:after { animation-delay: 4s; }
@keyframes perimeter-light {
  0%, 55% { offset-distance: 0%; opacity: 0; }
  58% { opacity: .8; }
  94% { offset-distance: 100%; opacity: .8; }
  97%, 100% { offset-distance: 100%; opacity: 0; }
}
.button.secondary {
  background: #10121335; border-color: #b9bdc066;
  color: var(--soft-white); box-shadow: none;
}
.button.secondary:after { display: none; }
.button.secondary:hover { background: #ffffff09; border-color: var(--silver); }
.button.secondary .button-arrow { background: transparent; border-color: #b9bdc033; }
.button:focus-visible, button:focus-visible, summary:focus-visible, a:focus-visible, #segment-panel:focus-visible {
  outline: 2px solid var(--silver); outline-offset: 4px;
}
.light button:focus-visible, .light a:focus-visible { outline-color: #71343c; }
html { scroll-padding-top: 110px; }
.hero { min-height: 858px; background: #101213; }
.hero-content { padding: 98px 0 165px; }
h1 { font-size: clamp(43px, 4.15vw, 64px); line-height: 1.1; letter-spacing: -1.9px; max-width: 710px; }
h1 span { margin-top: 20px; color: #c7ccce; font-weight: 500; }
.hero-description { max-width: 505px; color: #c3c8c8; font-size: 14px; line-height: 1.85; }
.hero-description strong { display: block; font-size: 16px; color: var(--soft-white); margin-bottom: 7px; }
.hero-art {
  inset: 0 0 0 33%; background-position: 80% 0%;
  mask-image: linear-gradient(90deg, transparent 0%, transparent 12%, #00000026 30%, #000000a6 46%, #000 62%);
}
/* Only neutral, linear light control. No radial masks or tinted photo overlays. */
.hero-art:after { content: none; }
.hero-shade {
  background: linear-gradient(180deg, #101213a8 0%, #10121345 75px, transparent 175px),
    linear-gradient(0deg, #101213 0%, #10121399 8%, transparent 27%);
}
.hero .eyebrow { font-size: 9px; letter-spacing: 2.1px; color: #d4c6c5; }
.actions { gap: 16px; }
h2 { font-family: var(--font-brand); text-transform: none; font-size: clamp(34px, 3.4vw, 50px); font-weight: 500; letter-spacing: -1.6px; line-height: 1.15; }
h2 span { color: #626a6d; }
.experience, .coach, .faq, .goal-explorer { background: var(--charcoal); }
.experience { background: radial-gradient(ellipse at 90% 0%, #32323535, transparent 65%), var(--ink); }
.experience-grid { display: block; }
.experience-grid article, .experience-grid article + article {
  display: grid; grid-template-columns: .65fr .85fr 1.5fr; gap: 30px;
  padding: 28px 0; border-left: 0; border-bottom: 1px solid var(--rule); align-items: start;
}
.experience-grid .step { margin: 5px 0 0; font-size: 9px; letter-spacing: 1.6px; }
.experience-grid h3 { margin: 0; font-size: 26px; }
.experience-grid p { margin: 0; max-width: 450px; }
.experience-grid article:hover { transform: none; background: #ffffff02; }
.journey { background: radial-gradient(ellipse at 0 10%, #35323840, transparent 65%), #171b1c; border: 0; border-block: 1px solid #b9bdc035; padding-block: 54px; }
.journey-intro h3 { font-size: 32px; font-weight: 500; }
.segment-tabs button { border: 0; border-bottom: 1px solid #b9bdc035; border-radius: 0; min-height: 80px; background: none; }
.segment-tabs button[aria-selected=true] { background: linear-gradient(0deg, #a8323c14, transparent); border-color: #aa5c65; }
.segment-tabs button[aria-selected=true]:after { animation: none; display: none; }
.segment-tabs button:focus-visible { outline-color: #e3d3d4; }
.segment-details dt { color: #d9b0b5; }
.segment-details dd { color: #c2c7c9; }
.segment-footer button { width: 44px; height: 44px; border-radius: 3px; }
.week-orbit span { color: #bfc4c5; }
.reading-track { background: var(--accent); }
.goal-options button { border-color: #b9bdc04a; border-radius: 4px; }
.goal-options button[aria-pressed=true] { background: #a8323c18; border-color: #bc6d76; }
.goal-response p { color: #c3c8ca; }
.learning { background: var(--soft-white); }
.fit .after { margin-top: 15px; padding-top: 38px; }
.coach-copy { border-left: 1px solid #b9bdc026; padding-left: 34px; }
.coach-copy .eyebrow { color: #d6b2b6; }
.coach-photo { border-radius: 2px; }
.coach-photo:after { background: linear-gradient(transparent, #141718); }
.prose, .section-copy, .fit .section-heading p, .learning-list p { color: #555e61; }
.caption, .form-note { color: #60686b; }
form { background: #e0ddd7; border: 1px solid #d4d0c9; border-radius: 5px; }
input, textarea { background: var(--soft-white); border-color: #7c8587; border-radius: 3px; font-size: 13px; }
.inquiry .button { border-color: #727a7c; }
.form-note { font-size: 11px; }
@media(min-width:1600px) { .hero { min-height: 898px; } }
@media(max-width:1100px) { .header nav { gap: 18px; } .header .brand > span:last-child { font-size: 20px; letter-spacing: 2px; } .header .brand small { letter-spacing: 5px; padding-left: 5px; } }
@media(max-width:960px) {
  .header nav .button { font-size: 12px; }
  .experience-grid article, .experience-grid article + article { grid-template-columns: .7fr 1fr 1.4fr; gap: 20px; }
  .hero-content { padding-block: 134px 129px; }
  .hero-shade {
    background: linear-gradient(90deg, #101213b3 0%, #101213b3 61%, transparent 79%),
      linear-gradient(180deg, #101213a8 0%, #10121345 75px, transparent 175px),
      linear-gradient(0deg, #101213 0%, #10121399 8%, transparent 27%);
  }
}
@media(max-width:760px) {
  html { scroll-padding-top: 94px; }
  .header, .header.is-scrolled, .header.menu-open { height: 76px; }
  .brand > span:last-child, .header .brand > span:last-child { font-size: 19px; letter-spacing: 2px; }
  .brand small, .header .brand small { font-size: 7px; letter-spacing: 5px; padding-left: 5px; margin-top: 8px; }
  .brand { gap: 11px; }
  .brand > .brand-lockup:last-child, .footer .brand > .brand-lockup:last-child { width: 200px; height: 43px; }
  .brand-lockup img { width: 218px; left: -9px; top: -17px; }
  .header .header-brand { gap: 9px; }
  .header .header-monogram { flex-basis: 70.68px; width: 70.68px; height: 36.27px; }
  .header .header-monogram img { width: 76.26px; height: 38.13px; left: -5.58px; top: -1.86px; }
  .header .brand > .header-wordmark:last-child { width: 110px; height: 34.62px; transform: none; }
  .hero { min-height: 986px; align-items: flex-end; }
  .hero-art { inset: 0 0 24% 0; background-position: 66% 0%; opacity: 1; mask-image: linear-gradient(0deg, transparent, #000 30%); }
  .hero-shade {
    background: linear-gradient(0deg, #101213 7%, #101213f2 27%, #101213a8 52%, #10121310 88%),
      linear-gradient(180deg, #101213cf 0%, #10121366 76px, transparent 190px),
      linear-gradient(90deg, #10121345, transparent 65%);
  }
  .hero-content { padding: 291px 0 115px; }
  h1 { font-size: clamp(35px, 9vw, 48px); line-height: 1.12; letter-spacing: -1.1px; }
  .hero .eyebrow { font-size: 8px; line-height: 1.8; letter-spacing: 1.4px; max-width: 320px; }
  .hero-description { font-size: 13px; }
  .hero-description strong { font-size: 14px; }
  .actions { gap: 12px; align-items: stretch; max-width: 330px; }
  .actions .button { justify-content: space-between; }
  .button { min-height: 51px; padding: 0; }
  .button .button-label { padding: 15px 18px; }
  .button .button-arrow { width: 50px; }
  .coach-copy { padding-left: 0; border-left: 0; }
  h2 { font-size: 36px; letter-spacing: -1.2px; }
  .experience-grid article, .experience-grid article + article { grid-template-columns: 1fr; gap: 14px; padding: 25px 0; }
  .experience-grid p { font-size: 13px; }
  .journey-intro h3 { font-size: 29px; }
  .segment-tabs button { min-height: 76px; }
  #segment-title { min-height: 90px; font-size: 25px; }
  #segment-panel { min-height: 550px; }
  .journey .week-orbit { width: 172px; }
  .week-orbit span:last-child { font-size: 7px; letter-spacing: 1px; }
  .goal-options button { min-height: 118px; }
  .email { overflow-wrap: anywhere; }
}
@media(max-width:370px) { #segment-panel { min-height: 625px; } .hero-content { padding-top: 271px; } .hero-bottom { letter-spacing: 1px; } .hero-bottom a { max-width: 130px; text-align: right; } .button .button-label { padding-inline: 14px; } }
/* Narrative hierarchy: existing surfaces, type, and signature motion retained. */
.hero-recognition { max-width:505px; margin:24px 0 19px; color:#c3c8c8; font-size:14px; line-height:1.85; }
.hero-recognition + .hero-description { margin-top:0; }
.training-shift { margin:58px 0 48px; padding:42px 0 10px; border-block:1px solid #b9bdc02b; }
.shift-intro { max-width:760px; }
.shift-intro h3 { font-size:clamp(25px,2.6vw,38px); line-height:1.25; font-weight:500; letter-spacing:-1px; margin:20px 0; }
.shift-intro h3 span { color:#b9bdc0; }
.shift-intro > p:not(.eyebrow) { max-width:650px; color:#adb6ba; font-size:14px; line-height:1.85; }
.shift-intro .shift-hint { font-size:10px!important; letter-spacing:1px; margin-top:25px; }
.shift-explorer { margin-top:22px; }
.shift-explorer details { border-top:1px solid #b9bdc025; }
.shift-explorer summary { display:grid; grid-template-columns:28px minmax(0,1fr) 30px minmax(0,1.4fr) 16px; align-items:center; gap:17px; padding:23px 0; cursor:pointer; list-style:none; }
.shift-explorer summary::-webkit-details-marker { display:none; }
.shift-index { color:#929da2; font-size:10px; font-variant-numeric:tabular-nums; }
.shift-from { color:#a9b2b5; font-size:16px; }
.shift-arrow { color:#a8323c; transition:transform .3s ease; }
.shift-explorer strong { font-size:19px; line-height:1.4; font-weight:500; color:#eae7e1; }
.shift-toggle { color:#b9bdc0; font-size:19px; transition:transform .3s ease; }
.shift-explorer summary:hover .shift-arrow, .shift-explorer details[open] .shift-arrow { transform:translateX(4px); }
.shift-explorer details[open] .shift-toggle { transform:rotate(45deg); }
.shift-explorer summary:focus-visible { outline:1px solid #b9bdc0; outline-offset:5px; }
.shift-detail { padding:0 40px 23px 45px; max-width:760px; }
.shift-detail p { margin:0; font-size:14px; line-height:1.85; color:#b2bcc0; }
@media(max-width:760px) {
  .hero-recognition { font-size:13px; margin:21px 0 18px; }
  .hero-description { line-height:1.8; }
  .training-shift { margin:38px 0 30px; padding-top:30px; }
  .shift-intro h3 { letter-spacing:-.6px; }
  .shift-explorer summary { grid-template-columns:22px minmax(0,1fr) 16px; gap:8px 12px; padding:20px 0; }
  .shift-index { grid-column:1;grid-row:1 / 3;align-self:start;padding-top:4px; }
  .shift-from { grid-column:2; font-size:13px; }
  .shift-arrow { display:none; }
  .shift-explorer strong { grid-column:2; font-size:19px; }
  .shift-toggle { grid-column:3;grid-row:1 / 3; }
  .shift-detail { padding:0 0 23px 34px; }
  .shift-detail p { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { .shift-arrow,.shift-toggle { transition:none; } }
/* Document navigation: a brief architectural pixel edge, never an idle animation. */
html.pixel-pending:after { content:'';position:fixed;inset:0;background:#141718;z-index:10000;pointer-events:none; }
.page-pixels { position:fixed;inset:0;z-index:10001;display:grid;grid-template-columns:repeat(var(--pixel-columns),1fr);grid-template-rows:repeat(var(--pixel-rows),1fr);pointer-events:none;overflow:hidden; }
.page-pixels i { display:block;background:var(--pixel-tone,#141718);margin:-.5px;transform-origin:left center; }
.page-pixels.is-leaving { pointer-events:auto;cursor:progress; }
.page-pixels.is-leaving i { opacity:0;transform:scaleX(0);transition:transform 300ms var(--ease-intent),opacity 120ms linear;transition-delay:var(--pixel-delay); }
.page-pixels.is-leaving.is-running i { opacity:1;transform:scaleX(1); }
.page-pixels.is-entering i { opacity:1;transform:scaleX(1);transform-origin:right center; }
.page-pixels.is-entering.is-running i { animation:pixel-uncover 340ms var(--ease-intent) var(--pixel-delay) both; }
@keyframes pixel-uncover { 0% {transform:scaleX(1);opacity:1} 100% {transform:scaleX(0);opacity:0} }
@media(prefers-reduced-motion:reduce) { .page-pixels,html.pixel-pending:after { display:none!important; } }
/* Two-piece logo: shared proportions in both headers and footers. */
.header .brand > .site-logo:last-child, .footer .brand > .site-logo:last-child {
  display:flex;flex-direction:row;align-items:center;gap:15px;width:290px;height:47px;
  padding:0;margin:0;flex-shrink:0;line-height:1;
}
.site-logo > span { position:relative;display:block;overflow:hidden;flex-shrink:0; }
.site-logo .logo-symbol { width:94px;height:43px; }
.site-logo .logo-wordmark { width:181px;height:35px; }
.site-logo img { position:absolute;display:block;height:auto;max-width:none;filter:none;mix-blend-mode:normal; }
.header .site-logo img.metal-reflection { opacity:0;pointer-events:none;filter:brightness(2.6) contrast(.85);clip-path:polygon(-45% 0,-33% 0,-53% 100%,-65% 100%); }
.header .site-logo.is-reflecting img.metal-reflection { animation:metal-reflection 1.2s ease-in-out both; }
.header .site-logo.is-reflecting .logo-wordmark img.metal-reflection { animation-delay:.16s; }
@keyframes metal-reflection {
  0% { opacity:0;clip-path:polygon(-45% 0,-33% 0,-53% 100%,-65% 100%); }
  18%,72% { opacity:.72; }
  100% { opacity:0;clip-path:polygon(150% 0,162% 0,142% 100%,130% 100%); }
}
@media(prefers-reduced-motion:reduce) { .header .site-logo img.metal-reflection { display:none!important; } }
.site-logo .logo-symbol img { width:107.13%;left:-4.23%;top:-12.1%;transform:none; }
.site-logo .logo-wordmark img { width:106.8%;left:-3.15%;top:-46.9%;transform:none; }
.header .header-brand { gap:0; }
@media(max-width:1100px) and (min-width:761px) {
  .header .brand > .site-logo:last-child { width:250px;gap:13px; }
  .header .logo-symbol { width:81px;height:37px; }
  .header .logo-wordmark { width:156px;height:30px; }
}
@media(max-width:760px) {
  .header .brand > .site-logo:last-child, .footer .brand > .site-logo:last-child { width:205px;height:36px;gap:11px; }
  .site-logo .logo-symbol { width:66px;height:30px; }
  .site-logo .logo-wordmark { width:128px;height:25px; }
}
/* Motion restoration: retain premium surfaces, restore the original light's energy. */
:root { --pulse-duration: 7.5s; }
.button:before {
  content: ''; position: absolute; inset: -100% -60%; pointer-events: none;
  background: linear-gradient(110deg, transparent 44%, #ffffff70 50%, transparent 56%);
  transform: translateX(-75%); opacity: .28;
  animation: logo-light 7.5s .3s ease-in-out infinite;
}
.button.secondary:before { display: none; }
.button:after, .header .button:after { width: 28px; height: 2px; animation-delay: .35s; }
.hero .button:after { animation-delay: .7s; }
.goal-response .button:after { animation-delay: 1.5s; }
@keyframes perimeter-light {
  0%, 18% { offset-distance: 0%; opacity: 0; }
  22% { opacity: .9; }
  67% { offset-distance: 100%; opacity: .9; }
  72%, 100% { offset-distance: 100%; opacity: 0; }
}
.reading-track { transition: width .12s linear; }
.reading-track > span { animation: restored-progress-light 8s .3s ease-in-out infinite; }
@keyframes restored-progress-light {
  0%, 20% { transform: translateX(-100%); opacity: 0; }
  25% { opacity: .9; }
  68% { transform: translateX(100%); opacity: .9; }
  74%, 100% { transform: translateX(100%); opacity: 0; }
}
.week-orbit .orbit-pulse { animation: orbit-light 10s .4s ease-in-out infinite; }
@keyframes orbit-light {
  0%, 16% { stroke-dashoffset: 0; opacity: 0; }
  23% { opacity: .8; }
  64% { stroke-dashoffset: var(--pulse-travel, -16.67); opacity: .8; }
  72%, 100% { stroke-dashoffset: var(--pulse-travel, -16.67); opacity: 0; }
}
.segment-tabs button[aria-selected=true]:after {
  display: block; animation: logo-light 9s 1s ease-in-out infinite;
}
.reveal, .experience-grid article.reveal {
  transition: opacity .75s ease, transform .75s cubic-bezier(.2,.65,.3,1), background .25s;
  transition-delay: var(--reveal-delay, 0ms);
}
.coach-photo.reveal:not(.is-visible) { transform: translateY(20px) scale(.985); }
.prose.reveal:not(.is-visible) { transform: translateX(16px); }
.section-heading.reveal { transition-duration: .65s; }
.experience-grid article.is-visible:hover { transform: translateX(5px); background: #ffffff04; }
.segment-tabs button { transition: transform .25s, background .25s, border-color .25s; }
.segment-tabs button:hover { transform: translateY(-2px); }
.segment-footer button { transition: transform .25s, background .25s; }
.segment-footer button:hover { transform: translateX(2px); }
.segment-footer button:first-child:hover { transform: translateX(-2px); }
@media(prefers-reduced-motion:reduce) {
  .button:before { display: none; animation: none; }
  .reveal, .experience-grid article.reveal { transition: none; opacity: 1; transform: none; }
  .segment-tabs button:hover, .segment-footer button:hover, .experience-grid article.is-visible:hover { transform: none; }
  .button:after, .header .button:after { display: none !important; animation: none !important; }
  .button:hover, .button:hover span, .header.is-scrolled .brand { transform: none; }
  .button:hover .button-arrow svg { transform: none; }
  .coach-photo.reveal:not(.is-visible), .prose.reveal:not(.is-visible) { transform: none; }
}

@media(max-width:360px) {
  .header .brand > .site-logo:last-child { width:180px;gap:11px; }
  .header .site-logo .logo-symbol { width:58px;height:27px; }
  .header .site-logo .logo-wordmark { width:111px;height:22px; }
}
