@font-face {
  font-family:Outfit;
  src:url('/assets/outfit.6c18d579fd87c377.woff2') format('woff2');
  font-weight:400 700;
  font-style:normal;
  font-display:swap
}
:root {
  --ink:#132e4b;
  --muted:#52667a;
  --pale:#edf3f8;
  --blue:#254f78;
  --lime:#d2f34b;
  --line:#c9d6e2;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:var(--pale);
  font-synthesis:none;
  scroll-behavior:smooth;
  scroll-padding-top:24px
}
* {
  box-sizing:border-box
}

body {
  margin:0
}

button,input {
  font:inherit
}

button,a,input {
  -webkit-tap-highlight-color:transparent
}

a {
  color:inherit;
  text-underline-offset:4px
}

button,a {
  touch-action:manipulation
}

button {
  cursor:pointer
}

button:disabled {
  cursor:default
}

button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible {
  outline:3px solid #367bb5;
  outline-offset:5px
}

[hidden] {
  display:none!important
}

h1,h2,h3,p,figure {
  margin:0
}

h1,h2,h3,button,.eyebrow,.brand,.nav-cta,summary {
  font-family:Outfit,Arial,sans-serif
}

h1,h2,h3 {
  font-weight:500;
  letter-spacing:-.03em
}

h2 {
  font-size:clamp(2.4rem,4vw,4rem);
  line-height:1.06
}

h3 {
  font-size:1.65rem;
  line-height:1.15;
  letter-spacing:0
}

p {
  line-height:1.65
}

img {
  display:block;
  max-width:100%
}

.wrap {
  width:min(1320px,calc(100% - 112px));
  margin-inline:auto
}

.skip-link {
  position:absolute;
  top:-70px;
  left:24px;
  z-index:10;
  background:var(--ink);
  color:white;
  padding:12px
}

.skip-link:focus {
  top:12px
}

.site-header {
  height:116px;
  display:flex;
  align-items:center;
  justify-content:space-between
}

.brand {
  font-size:2.8rem;
  font-weight:600;
  text-decoration:none;
  letter-spacing:-.08em
}

.brand img {
  width:112px;
  height:auto
}

.site-header nav {
  display:flex;
  align-items:center;
  gap:36px;
  font:500 .95rem Outfit,sans-serif
}

.site-header nav a {
  text-decoration:none
}

.site-header nav a:hover {
  text-decoration:underline
}

.nav-cta {
  border:1px solid var(--ink);
  padding:13px 19px;
  border-radius:4px
}

.nav-cta span {
  margin-left:22px
}

.hero {
  display:grid;
  grid-template-columns:1.02fr 1fr;
  gap:50px;
  padding-top:24px;
  padding-bottom:64px;
  align-items:stretch
}

.hero-copy {
  padding:22px 0 6px
}

.eyebrow {
  text-transform:uppercase;
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.13em;
  line-height:1.6
}

.status-dot {
  display:inline-block;
  width:7px;
  height:7px;
  background:var(--blue);
  border-radius:50%;
  margin-right:8px;
  vertical-align:middle
}

.hero h1 {
  font-size:clamp(4.8rem,6.75vw,7rem);
  line-height:.99;
  margin:28px 0 26px;
  letter-spacing:-.03em
}

.hero h1 span {
  color:#547b9e
}

.hero-intro {
  font:500 1.23rem Outfit,sans-serif;
  margin-bottom:12px
}

.hero-description {
  max-width:450px;
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.65
}

.hero-visual {
  position:relative;
  min-height:710px;
  border-radius:5px;
  overflow:hidden;
  background:var(--blue)
}

.hero-visual img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:40% 48%;
  position:absolute;
  inset:0
}

.hero-visual:after {
  content:'';
  position:absolute;
  inset:65% 0 0;
  background:linear-gradient(transparent,rgba(15,40,64,.8))
}

.hero-visual figcaption {
  position:absolute;
  bottom:28px;
  left:28px;
  right:28px;
  color:#fff;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:8px
}

.hero-visual figcaption span:first-child {
  font-size:.65rem;
  letter-spacing:.14em
}

.hero-visual figcaption span:last-child {
  font:500 1.45rem Outfit,sans-serif;
  letter-spacing:0
}

.waitlist-form {
  margin-top:30px;
  max-width:560px
}

.email-label {
  display:block;
  font-size:.875rem;
  margin-bottom:9px;
  font-weight:600
}

.email-row {
  display:flex;
  border:1px solid #b2c4d4;
  border-radius:4px;
  background:#f9fcff;
  padding:5px;
  gap:4px
}

.email-row input {
  background:transparent;
  min-width:0;
  flex:1;
  border:0;
  padding:12px 9px;
  color:var(--ink);
  font-size:.9rem
}

.email-row input::placeholder {
  color:#617386
}

.primary {
  background:var(--lime);
  border:0;
  border-radius:2px;
  color:var(--ink);
  font-size:.9rem;
  font-weight:500;
  padding:15px 17px;
  white-space:nowrap
}

.primary:hover {
  background:#c5e73c
}

.primary span {
  margin-left:13px
}

.primary:disabled {
  opacity:.7
}

.permission {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:.875rem;
  margin-top:13px;
  line-height:1.4
}

.permission input {
  appearance:auto;
  accent-color:var(--ink);
  width:16px;
  height:16px;
  margin:0;
  flex-shrink:0
}

.form-note {
  font-size:.75rem;
  color:var(--muted);
  margin-top:8px;
  line-height:1.6
}

.form-status {
  font-size:.85rem;
  margin-top:10px;
  line-height:1.5
}

.form-status:empty {
  display:none
}

.form-status[data-state=error] {
  color:#9c303a
}

.form-status[data-state=success] {
  font-weight:600
}

.honeypot {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden
}

.intro-band {
  background:#dfe9f2;
  padding:60px 0
}

.intro-layout {
  display:grid;
  grid-template-columns:.65fr 1.7fr 1fr;
  gap:38px;
  align-items:start
}

.intro-layout .eyebrow {
  padding-top:8px
}

.intro-layout h2 {
  font-size:clamp(2rem,2.8vw,2.9rem)
}

.intro-layout>p:last-child {
  color:var(--muted);
  font-size:.94rem
}

.how {
  padding-top:110px;
  padding-bottom:110px
}

.section-top {
  display:grid;
  grid-template-columns:.7fr 1.5fr 1fr;
  gap:40px;
  align-items:start
}

.section-top>.eyebrow {
  padding-top:8px
}

.section-top>p:last-child {
  color:var(--muted);
  padding-top:8px
}

.steps {
  list-style:none;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px;
  padding:0;
  margin:56px 0 0
}

.steps li {
  position:relative
}

.step-number {
  font:400 .8rem Outfit,sans-serif;
  display:block;
  border-top:1px solid var(--line);
  padding-top:14px
}

.step-art {
  height:220px;
  margin:16px 0 28px;
  overflow:hidden;
  position:relative;
  background:#e0eaf3;
  display:flex;
  align-items:center;
  justify-content:center
}

.steps h3 {
  margin-bottom:14px
}

.steps p {
  color:var(--muted);
  font-size:.92rem;
  max-width:340px
}

.steps a {
  display:inline-block;
  font-size:.8rem;
  font-weight:600;
  margin-top:18px
}

.film-art .court {
  position:absolute;
  top:34px;
  width:138px;
  height:224px;
  border:2px solid #90a9c0;
  transform:perspective(250px) rotateX(28deg);
  background:linear-gradient(90deg,transparent 49%,#90a9c0 49%,#90a9c0 51%,transparent 51%)
}

.film-art .court:after {
  content:'';
  position:absolute;
  inset:55px 0 auto;
  height:1px;
  background:#90a9c0
}

.phone {
  position:absolute;
  z-index:1;
  bottom:21px;
  background:var(--ink);
  width:38px;
  height:67px;
  border:5px solid var(--ink);
  border-radius:7px;
  box-shadow:0 7px 18px #132e4b30
}

.phone>span {
  display:block;
  width:100%;
  height:100%;
  border:1px solid #9ab5cd;
  border-radius:3px;
  background:#436c91
}

.focus-art {
  background:var(--blue);
  color:var(--pale);
  font:400 2rem/1.15 Outfit,sans-serif;
  letter-spacing:-.03em;
  flex-direction:column;
  align-items:flex-start;
  padding:30px;
  gap:20px
}

.example-label {
  font:500 .65rem Outfit,sans-serif;
  letter-spacing:.12em;
  color:#bfd1df
}

.plan-art {
  background:#dce6ee;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:28px;
  gap:12px
}

.plan-art>span {
  font-size:.65rem;
  letter-spacing:.12em;
  font-weight:600
}

.plan-art ul {
  list-style:none;
  margin:0;
  padding:0;
  width:100%;
  font:400 1.05rem Outfit,sans-serif
}

.plan-art li {
  padding:8px 0;
  border-bottom:1px solid #b9ccdc
}

.coach-story {
  background:var(--ink);
  color:var(--pale);
  padding:100px 0
}

.story-layout {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  column-gap:110px;
  row-gap:28px
}

.story-layout>.eyebrow {
  grid-column:1/-1;
  color:#a5bed3
}

.story-layout h2 {
  font-size:clamp(3rem,4.6vw,5rem)
}

.story-body {
  grid-column:2;
  grid-row:2/4
}

.large-copy {
  font:400 1.65rem/1.4 Outfit,sans-serif;
  letter-spacing:0
}

.story-body>p+p {
  margin-top:23px;
  color:#b4c8d9;
  font-size:.94rem
}

.story-body>.story-note {
  font-size:.78rem;
  color:#8faac1
}

.text-link {
  align-self:end;
  font:500 .9rem Outfit,sans-serif
}

.guide-promo {
  padding-top:104px;
  padding-bottom:104px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:95px;
  align-items:center
}

.guide-promo h2 {
  font-size:clamp(2.5rem,3.6vw,3.8rem);
  margin-top:20px
}

.guide-feature {
  position:relative;
  display:block;
  padding:38px 36px 70px;
  background:#dfe9f2;
  text-decoration:none;
  border-radius:3px;
  transition:background .2s
}

.guide-feature:hover {
  background:#d4e2ed
}

.guide-tag {
  font-size:.63rem;
  letter-spacing:.12em;
  font-weight:600
}

.guide-feature h3,.guide-feature h2 {
  font-size:2rem;
  line-height:1.13;
  margin:30px 0 15px
}

.guide-feature p {
  font-size:.88rem;
  color:var(--muted);
  max-width:300px
}

.guide-arrow {
  position:absolute;
  right:30px;
  bottom:26px;
  font-size:1.8rem
}

.faq {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:100px;
  padding-top:45px;
  padding-bottom:110px
}

.faq h2 {
  margin-top:22px
}

.faq-list details {
  border-top:1px solid var(--line)
}

.faq-list details:last-child {
  border-bottom:1px solid var(--line)
}

summary {
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:24px;
  font-size:1.05rem;
  font-weight:500;
  padding:24px 0
}

summary::-webkit-details-marker {
  display:none
}

summary>span {
  font-weight:300;
  font-size:1.5rem;
  line-height:1
}

details[open] summary>span {
  transform:rotate(45deg)
}

details>p {
  padding:0 30px 25px 0;
  font-size:.92rem;
  color:var(--muted)
}

.launch-section {
  background:#dfe9f2;
  padding:80px 0
}

.launch-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center
}

.launch-layout h2 {
  margin:20px 0;
  font-size:clamp(3.3rem,5vw,5.1rem)
}

.launch-layout p {
  color:var(--muted)
}

.launch-layout .waitlist-form {
  margin-top:0
}

footer {
  padding:64px 0 35px
}

.footer-layout {
  display:flex;
  justify-content:space-between;
  gap:50px
}

.footer-brand {
  font:600 2.5rem Outfit,sans-serif;
  letter-spacing:-.08em;
  text-decoration:none
}

.footer-layout p {
  font-size:.8rem;
  color:var(--muted);
  margin-top:9px
}

.footer-layout span {
  display:block;
  font-size:.68rem;
  margin-top:30px;
  color:var(--muted)
}

.footer-layout nav {
  display:flex;
  gap:22px;
  align-items:flex-start;
  flex-wrap:wrap;
  font-size:.75rem;
  padding-top:10px
}

.footer-layout button {
  font:inherit;
  background:none;
  color:inherit;
  padding:0;
  border:0;
  text-decoration:underline;
  text-underline-offset:4px
}

.consent {
  position:fixed;
  z-index:20;
  bottom:20px;
  left:20px;
  max-width:450px;
  padding:24px;
  background:#f5f9fc;
  border:1px solid var(--line);
  box-shadow:0 8px 40px #132e4b26;
  border-radius:5px
}

.consent p {
  font-size:.8rem
}

.consent p+p {
  margin-top:8px
}

.actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:17px
}

.actions button {
  font-size:.75rem;
  padding:10px 12px;
  border:1px solid var(--ink);
  background:transparent;
  color:var(--ink);
  border-radius:3px
}

.actions button {
  background:var(--ink);
  color:white
}

.editorial {
  max-width:1000px;
  padding-top:30px;
  padding-bottom:100px
}

.breadcrumbs {
  display:flex;
  gap:12px;
  color:var(--muted);
  font-size:.75rem;
  flex-wrap:wrap
}

.editorial-header {
  margin:58px 0 48px;
  max-width:850px
}

.editorial-header h1 {
  font-size:clamp(3rem,6vw,5.5rem);
  line-height:1.05;
  margin:20px 0 25px
}

.intro {
  font-size:1.15rem;
  color:var(--muted);
  max-width:700px
}

.reading-meta {
  font-size:.75rem;
  color:var(--muted);
  margin-top:22px
}

.article-body {
  max-width:710px
}

.information-section {
  margin-bottom:45px
}

.information-section h2 {
  font-size:1.8rem;
  margin-bottom:18px;
  letter-spacing:-.025em
}

.information-section p {
  font-size:1rem;
  color:var(--muted);
  margin-bottom:16px;
  line-height:1.8
}

.information-section a {
  color:var(--ink)
}

.back-home {
  display:inline-block;
  margin-top:24px;
  font-size:.85rem
}

.hub-feature {
  margin-bottom:58px;
  max-width:710px
}

.hub-feature h2 {
  margin:22px 0 18px
}

.shell>main:not(.editorial):not(:has(.hero)) {
  padding:90px 56px;
  min-height:50vh
}

.shell>main>h1 {
  font-size:4rem
}

.shell>main>.intro {
  margin:25px 0
}
@media(min-width:1600px) {
  .hero-visual {
  min-height:775px
}

.hero h1 {
  font-size:7.5rem
}
}
@media(max-width:1100px) {
  .wrap {
  width:calc(100% - 64px)
}

.hero {
  gap:30px
}

.hero h1 {
  font-size:5.5rem
}

.hero-visual {
  min-height:700px
}

.email-row {
  flex-wrap:wrap
}

.email-row input {
  width:100%;
  flex-basis:100%;
  padding:13px 10px
}

.email-row button {
  width:100%;
  display:flex;
  justify-content:space-between
}

.intro-layout {
  grid-template-columns:1.4fr 1fr
}

.intro-layout>.eyebrow {
  grid-column:1/-1
}

.section-top {
  grid-template-columns:1.4fr 1fr
}

.section-top>.eyebrow {
  grid-column:1/-1
}

.steps {
  gap:25px
}

.step-art {
  height:190px
}

.story-layout,.guide-promo,.faq,.launch-layout {
  gap:50px
}

.footer-layout nav {
  max-width:340px
}
}
@media(max-width:720px) {
  .wrap {
  width:calc(100% - 40px)
}

.site-header {
  height:88px
}

.brand img {
  width:95px
}

.site-header nav {
  gap:12px
}

.site-header nav>a:first-child {
  display:none
}

.site-header nav>a:nth-child(2) {
  font-size:.85rem
}

.nav-cta {
  font-size:.75rem;
  padding:11px 12px
}

.nav-cta span {
  margin-left:8px
}

.hero {
  grid-template-columns:1fr;
  padding-top:5px;
  padding-bottom:38px;
  gap:34px
}

.hero-copy {
  padding:8px 0 0
}

.hero h1 {
  font-size:clamp(2.75rem,14vw,6.3rem);
  margin:23px 0
}

.hero .eyebrow {
  font-size:.6rem;
  letter-spacing:.1em
}

.hero-intro {
  font-size:1.15rem
}

.hero-description {
  font-size:.96rem;
  max-width:500px
}

.waitlist-form {
  margin-top:25px;
  max-width:none
}

.email-row {
  flex-wrap:nowrap
}

.email-row input {
  width:auto;
  flex-basis:auto;
  font-size:1rem
}

.email-row button {
  width:auto;
  display:block;
  font-size:.875rem;
  padding:14px 10px
}

.primary span {
  margin-left:8px
}

.permission {
  font-size:.875rem
}

.form-note {
  font-size:.75rem
}

.hero-visual {
  min-height:430px;
  height:112vw;
  max-height:560px
}

.hero-visual figcaption {
  bottom:24px;
  left:24px
}

.intro-band {
  padding:40px 0
}

.intro-layout {
  display:block
}

.intro-layout h2 {
  font-size:2.3rem;
  margin:18px 0
}

.intro-layout>p:last-child {
  max-width:470px
}

.how {
  padding-top:65px;
  padding-bottom:65px
}

.section-top {
  display:block
}

.section-top h2 {
  margin:18px 0;
  font-size:2.7rem
}

.section-top>p:last-child {
  max-width:420px
}

.steps {
  grid-template-columns:1fr;
  margin-top:35px;
  gap:37px
}

.step-art {
  height:205px;
  margin-bottom:22px
}

.steps p {
  max-width:none
}

.steps h3 {
  font-size:1.7rem
}

.step-number {
  padding-top:12px
}

.coach-story {
  padding:60px 0
}

.story-layout {
  display:block
}

.story-layout h2 {
  margin:22px 0 30px;
  font-size:3rem
}

.large-copy {
  font-size:1.5rem
}

.story-body>p+p {
  margin-top:20px
}

.text-link {
  display:inline-block;
  margin-top:30px
}

.guide-promo {
  padding-top:65px;
  padding-bottom:65px;
  display:block
}

.guide-promo h2 {
  font-size:2.6rem;
  margin-bottom:32px
}

.guide-feature {
  padding:30px 27px 65px
}

.faq {
  display:block;
  padding-top:0;
  padding-bottom:65px
}

.faq h2 {
  margin:18px 0 30px;
  font-size:2.8rem
}

summary {
  font-size:1rem;
  padding:21px 0
}

.launch-section {
  padding:55px 0
}

.launch-layout {
  display:block
}

.launch-layout h2 {
  font-size:3.4rem;
  margin:18px 0
}

.launch-layout .waitlist-form {
  margin-top:30px
}

footer {
  padding:45px 0 30px
}

.footer-layout {
  display:block
}

.footer-layout nav {
  margin-top:30px;
  max-width:none;
  column-gap:25px;
  row-gap:18px
}

.footer-layout span {
  margin-top:20px
}

.consent {
  left:12px;
  right:12px;
  bottom:12px;
  padding:20px;
  max-width:none
}

.editorial {
  padding-top:12px;
  padding-bottom:60px
}

.editorial-header {
  margin:38px 0
}

.editorial-header h1 {
  font-size:3.2rem
}

.intro {
  font-size:1.03rem
}

.information-section h2 {
  font-size:1.7rem;
  letter-spacing:0
}

.information-section p {
  font-size:.95rem
}

.information-section {
  margin-bottom:35px
}

.shell>main:not(.editorial):not(:has(.hero)) {
  padding:60px 20px
}
}
@media(max-width:370px) {
  .email-row {
  flex-wrap:wrap
}

.email-row input,.email-row button {
  width:100%;
  flex-basis:100%
}

.site-header nav>a:nth-child(2) {
  display:none
}

}
@media(prefers-reduced-motion:reduce) {
  :root {
  scroll-behavior:auto
}

*,*:before,*:after {
  transition:none!important
}
}

/* The reveal is the one cinematic moment; everything else stays still. */
.hero-visual img {
  transition: transform 900ms cubic-bezier(.2,.7,.2,1), filter 900ms ease;
}
.glimpse-toggle {
  position: absolute;
  top: 24px;
  left: 24px;
  z-index: 4;
  min-height: 44px;
  max-width: calc(100% - 48px);
  padding: 12px 16px;
  border: 1px solid #ffffff80;
  border-radius: 28px;
  color: white;
  background: #132e4bbf;
  backdrop-filter: blur(14px);
  font: 500 14px Outfit, sans-serif;
}
.glimpse-toggle:hover { background: #132e4bea; }
.glimpse-toggle:focus-visible { outline-color: white; }
.glimpse-toggle span { margin-left: 12px; }
.coach-glimpse { position: absolute; inset: 0; z-index: 3; }
.show-glimpse img { transform: scale(1.045); filter: saturate(.8); }
.show-glimpse figcaption { visibility: hidden; }
.glimpse-marker {
  position: absolute;
  left: 27%;
  top: 36%;
  width: 86px;
  height: 86px;
  border: 2px solid var(--lime);
  border-radius: 50%;
  box-shadow: 0 0 0 12px #d2f34b14;
  transform: translate(-50%, -50%);
  animation: find-focus 800ms cubic-bezier(.2,.7,.2,1) both;
}
.glimpse-message {
  position: absolute;
  bottom: 32px;
  left: 24px;
  right: 24px;
  padding: 24px;
  border-top: 1px solid #ffffff66;
  color: white;
  background: #132e4bc7;
  backdrop-filter: blur(18px);
  animation: coach-arrives 650ms 250ms ease-out both;
}
.glimpse-label { font-size: 12px; color: #c6d7e5; }
.glimpse-quote {
  font: 400 clamp(26px, 2.6vw, 38px)/1.14 Outfit, sans-serif;
  margin: 14px 0 18px;
  letter-spacing: -.02em;
}
.glimpse-note { font-size: 12px; color: #c6d7e5; }
@keyframes find-focus {
  from { opacity: 0; transform: translate(-50%, -50%) scale(1.8); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes coach-arrives {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 720px) {
  .glimpse-message { left: 16px; right: 16px; bottom: 20px; padding: 20px; }
  .glimpse-toggle { left: 16px; top: 20px; max-width: calc(100% - 32px); }
  .glimpse-quote { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .glimpse-marker, .glimpse-message { animation: none; }
  .hero-visual img { transition: none; }
  .show-glimpse img { transform: none; }
}
