:root {
  --ink: #090d10;
  --paper: #f7f7f5;
  --teal: #2ebbb7;
  --orange: #ff8b16;
  --pink: #ef3970;
  --violet: #ac4be2;
  --yellow: #ffbf22;
  --container: 1200px;
  --wide-canvas: 1920px;
  --hero-media-max: 1800px;
  --shadow: 0 16px 44px rgba(0, 0, 0, .16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: "Manrope", Arial, sans-serif; color: #101215; background: var(--paper); font-size: 16px; line-height: 1.55; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.section-dark { color: #fff; background: var(--ink); }
.section-light { color: #101215; background: var(--paper); }
.section-pad { padding: 68px 0; }
h1, h2, h3, p { margin-top: 0; }
h2 { margin-bottom: 28px; font-size: clamp(2rem, 3vw, 2.65rem); line-height: 1.12; letter-spacing: -.04em; }
.eyebrow { margin-bottom: 8px; color: var(--teal); font-size: .77rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }

.site-header { position: absolute; z-index: 50; inset: 0 0 auto; height: 88px; color: #fff; transition: background .25s, box-shadow .25s; }
.site-header.is-sticky { position: fixed; height: 72px; background: rgba(7,10,13,.94); box-shadow: 0 10px 30px rgba(0,0,0,.25); backdrop-filter: blur(14px); }
.header-inner { height: 100%; display: grid; grid-template-columns: 180px 1fr auto; align-items: center; gap: 36px; }
.brand { width: 154px; }
.brand img, .footer-brand img { filter: invert(1); }
.main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(22px, 3vw, 48px); }
.main-nav a { position: relative; font-size: .86rem; font-weight: 700; }
.main-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 2px; background: var(--teal); transition: right .2s; }
.main-nav a:hover::after, .main-nav a:focus-visible::after { right: 0; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 0; background: transparent; }
.menu-toggle span { display: block; height: 2px; margin: 5px 0; background: #fff; transition: transform .2s, opacity .2s; }

.button { display: inline-flex; min-height: 48px; padding: 0 24px; border: 1px solid transparent; border-radius: 7px; align-items: center; justify-content: center; gap: 20px; color: #fff; font-size: .9rem; font-weight: 800; transition: transform .18s, box-shadow .18s, background .18s; }
.button:hover { transform: translateY(-2px); }
.button--teal { background: linear-gradient(135deg, #43c9c4, #20aaa8); box-shadow: 0 10px 24px rgba(46,187,183,.16); }
.button--orange { background: linear-gradient(135deg, #ff9a1f, #f7760b); box-shadow: 0 10px 26px rgba(255,139,22,.2); }
.button--outline { border-color: rgba(255,255,255,.6); background: rgba(5,8,10,.25); }
.button--light { border-color: var(--teal); color: #289b9b; background: transparent; }
.button--large { min-width: 260px; min-height: 60px; font-size: 1.05rem; }

.hero { position: relative; min-height: 785px; padding-top: 88px; overflow: hidden; background: linear-gradient(90deg,#070b0e,#071016 48%,#0c0f17); }
.hero::after { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(90deg,rgba(5,8,10,.97) 0%,rgba(5,8,10,.74) 33%,rgba(5,8,10,.08) 62%,rgba(5,8,10,.08)),linear-gradient(0deg,rgba(5,8,10,.9),transparent 26%); }
.hero-photo { position: absolute; z-index: 0; inset: 0; overflow: hidden; }
.hero-photo img { width: min(100%,var(--hero-media-max)); height: 100%; margin-inline: auto; object-fit: cover; object-position: center; }
.hero-inner { position: relative; z-index: 3; padding-top: 78px; }.hero-copy { width: 46%; max-width: 560px; }
.hero h1 { margin-bottom: 6px; font-size: clamp(3rem,4vw,4.1rem); line-height: 1.04; letter-spacing: -.055em; text-transform: uppercase; }
.hero h1 span { color: transparent; background: linear-gradient(90deg,var(--orange),var(--pink)); background-clip: text; -webkit-background-clip: text; }
.hero-lead { margin-bottom: 25px; font-size: clamp(1.65rem,3vw,2.4rem); font-weight: 800; line-height: 1.15; letter-spacing: -.04em; }
.hero-description { max-width: 465px; margin-bottom: 28px; color: #e0e2e4; font-size: 1rem; line-height: 1.62; }.button-row { display: flex; gap: 16px; }
.hero-features { position: absolute; z-index: 5; bottom: 18px; left: 50%; transform: translateX(-50%); min-height: 112px; display: grid; grid-template-columns: .9fr 1.2fr .95fr; align-items: stretch; border: 1px solid rgba(255,255,255,.1); border-radius: 11px; background: linear-gradient(100deg,rgba(26,30,32,.96),rgba(16,18,19,.93)); box-shadow: 0 20px 55px rgba(0,0,0,.35); }
.feature-pill { display: grid; grid-template-columns: 65px 1fr; align-items: center; gap: 16px; padding: 20px 34px; }.feature-pill + .feature-pill { border-left: 1px solid rgba(255,255,255,.14); }.feature-pill strong { font-size: 1rem; line-height: 1.35; }
.line-icon { display: grid; place-items: center; color: var(--teal); }.line-icon svg { width: 58px; height: 58px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }.line-icon--orange { color: var(--orange); }.line-icon--violet { color: var(--violet); }

.split-layout { width: min(100%,var(--wide-canvas)); display: grid; grid-template-columns: 44% 56%; min-height: 515px; margin-inline: auto; }.about-copy { width: min(100% - 48px,calc(var(--container) * .44 - 48px)); margin-left: max(24px,calc((100vw - var(--container)) / 2)); padding: 66px 35px 56px 0; }.about-copy p:not(.eyebrow) { max-width: 520px; margin-bottom: 22px; }.about-copy .button { margin-top: 9px; }.about-photo { min-height: 515px; overflow: hidden; }
.about-photo img { width: 100%; height: 100%; min-height: 515px; object-fit: cover; object-position: center; }

.program { background: linear-gradient(110deg,#0a0e11,#111415 45%,#090c0e); }.program-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }.program-card { position: relative; isolation: isolate; min-height: 310px; padding: 42px 24px 28px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 8px; text-align: center; background: #16191b; transition: transform .2s,border-color .2s; }.program-card::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(rgba(7,9,10,.58),rgba(7,9,10,.92)); }.program-card:hover { transform: translateY(-6px); border-color: rgba(255,255,255,.25); }
.program-card-media { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 26%; transition: transform .35s; }.program-card:hover .program-card-media { transform: scale(1.035); }
.program-card::before { content: ""; position: absolute; height: 4px; inset: auto 0 0; background: var(--teal); }.program-card:nth-child(2)::before { background: var(--orange); }.program-card:nth-child(3)::before { background: var(--violet); }.program-card:nth-child(4)::before { background: var(--yellow); }
.program-icon { min-height: 72px; display: grid; place-items: center; color: var(--teal); }.program-icon svg { width: 68px; height: 68px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }.program-icon--orange { color: var(--orange); }.program-icon--violet { color: var(--violet); }.program-icon--yellow { color: var(--yellow); }.program-card h3 { margin: 7px 0 15px; font-size: 1.25rem; line-height: 1.25; }.program-card p { margin: 0; color: #e1e2e3; font-size: .9rem; }

.benefits { position: relative; overflow: hidden; background: radial-gradient(circle at 16% 100%,rgba(39,181,178,.055),transparent 25%),linear-gradient(90deg,#fafaf8,#f5f5f3 48%,#fafaf8); }
.benefit-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.benefits-grid { position: relative; min-height: 330px; display: grid; grid-template-columns: 1.05fr repeat(3,1fr); }
.benefits-heading { padding: 42px 35px 20px 0; }
.benefits-heading h2 { font-size: 2rem; white-space: nowrap; }
.benefit { position: relative; min-width: 0; padding: 42px 22px 0; overflow: hidden; border-left: 1px solid #d2d4d4; }
.benefit-text { position: relative; z-index: 3; min-height: 48px; padding-left: 61px; }
.benefit-text h3 { margin: 0; font-size: 1rem; line-height: 1.36; }
.benefit-icon { position: absolute; top: -6px; left: 0; width: 44px; height: 44px; display: block; color: var(--teal); }
.benefit-icon svg { position: absolute; top: 0; left: 0; width: 44px; height: 44px; max-height: 44px; display: block; }
.benefit-icon--violet svg { width: 50px; }
.benefit-icon svg { overflow: visible; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }
.benefit-icon--orange { color: var(--orange); }
.benefit-icon--violet { width: 50px; color: var(--violet); }
.benefit-person { position: absolute; z-index: 2; width: 100%; height: 230px; inset: auto 0 -25px; object-fit: contain; object-position: center bottom; }

.gallery { background: linear-gradient(120deg,#090d0f,#121619 50%,#090c0e); }.section-topline h2 { margin-bottom: 0; }
.gallery-track { margin-top: 26px; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 72px)/4); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }.gallery-track::-webkit-scrollbar { display: none; }.gallery-card { min-height: 270px; overflow: hidden; border: 1px solid rgba(255,255,255,.14); border-radius: 8px; scroll-snap-align: start; background: #15191c; }.gallery-media { width: 100%; height: 168px; display: block; object-fit: cover; object-position: center 28%; transition: transform .35s; }.gallery-card:nth-child(2) .gallery-media { object-position: center 23%; }.gallery-card:nth-child(3) .gallery-media { object-position: center 32%; }.gallery-card:nth-child(4) .gallery-media { object-position: center 21%; }.gallery-card:hover .gallery-media { transform: scale(1.035); }.gallery-caption { padding: 15px 16px 18px; }.gallery-caption h3 { margin-bottom: 2px; font-size: 1.12rem; }.gallery-caption p { margin: 0; color: #d6d8da; font-size: .83rem; line-height: 1.45; }

.faq { background: radial-gradient(circle at 12% 0,rgba(43,187,183,.05),transparent 30%),#fafafa; }.faq-heading { margin-bottom: 34px; }.faq-heading h2 { margin: 4px 0 13px; font-size: clamp(2.5rem,4.2vw,4.25rem); line-height: 1.08; }.faq-intro { margin: 0; color: #667085; font-size: clamp(1.05rem,1.6vw,1.35rem); }.faq-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 34px; align-items: start; }.faq-column { min-width: 0; display: flex; flex-direction: column; gap: 20px; }.faq-item { overflow: hidden; border: 2px solid #171717; border-radius: 14px; background: rgba(255,255,255,.72); transition: border-color .2s,box-shadow .2s; }.faq-item:hover { border-color: var(--teal); box-shadow: 0 10px 30px rgba(16,24,40,.07); }.faq-item h3 { margin: 0; }.faq-question { width: 100%; display: grid; grid-template-columns: 44px 1fr; gap: 22px; align-items: center; padding: 25px 30px 13px 25px; border: 0; color: #080808; background: transparent; text-align: left; font: inherit; cursor: pointer; }.faq-question > span:last-child { font-size: clamp(1.05rem,1.45vw,1.35rem); font-weight: 800; line-height: 1.3; }.faq-question:focus-visible { outline: 3px solid rgba(43,187,183,.45); outline-offset: -4px; }.faq-toggle { position: relative; width: 40px; height: 40px; display: block; border-radius: 50%; background: #050505; }.faq-toggle::before,.faq-toggle::after { content: ""; position: absolute; top: 50%; left: 50%; width: 14px; height: 2px; border-radius: 2px; background: #fff; transform: translate(-50%,-50%); transition: transform .2s; }.faq-toggle::after { transform: translate(-50%,-50%) rotate(90deg); }.faq-question[aria-expanded="true"] .faq-toggle::after { transform: translate(-50%,-50%) rotate(90deg) scaleX(0); }.faq-answer { padding: 0 32px 25px 91px; }.faq-answer[hidden] { display: none; }.faq-answer p { margin: 0; color: #25292f; font-size: .98rem; line-height: 1.65; }.faq-item:not(.is-open) .faq-question { padding-bottom: 25px; }

.signup-banner { --signup-height: clamp(250px,20vw,320px); position: relative; isolation: isolate; min-height: var(--signup-height); overflow: hidden; color: #fff; background: #160d1c; }.signup-banner::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(7,10,16,.12),rgba(24,7,27,.24)); }.signup-media { position: absolute; z-index: -2; inset: 0 auto 0 50%; width: min(100%,var(--wide-canvas)); height: 100%; object-fit: cover; object-position: center 52%; transform: translateX(-50%); }.signup-inner { min-height: var(--signup-height); display: grid; grid-template-columns: 280px 1fr auto; gap: 32px; align-items: center; }.signup-inner h2 { margin: 0 0 5px; font-size: clamp(2rem,3.1vw,3rem); }.signup-inner h2 span { color: transparent; background: linear-gradient(90deg,var(--pink),var(--orange)); background-clip: text; -webkit-background-clip: text; }.signup-inner p { margin: 0; color: #e7e0e7; }
.site-footer { padding-top: 38px; color: #e5e7e8; background: #090d0f; border-top: 1px solid rgba(255,139,22,.5); }.footer-grid { display: grid; grid-template-columns: 1.15fr .65fr 1.25fr .85fr; gap: 55px; padding-bottom: 35px; }.footer-grid h3 { margin-bottom: 14px; color: #fff; font-size: .75rem; text-transform: uppercase; }.footer-grid p,.footer-grid a { display: block; margin-bottom: 8px; color: #b9bec1; font-size: .78rem; line-height: 1.55; }.footer-grid a:hover { color: var(--teal); }.footer-brand img { width: 170px; margin-bottom: 13px; }.footer-brand p { max-width: 220px; }.socials { display: flex; gap: 11px; margin-top: 16px; }.socials a { width: 30px; height: 30px; display: grid; place-items: center; margin: 0; border-radius: 50%; color: #101214; background: #fff; transition: color .2s,background-color .2s,transform .2s; }.socials a:hover { color: #fff; background: var(--teal); transform: translateY(-2px); }.socials svg { width: 16px; height: 16px; fill: currentColor; }.socials a[aria-label="Instagram"] svg { fill: none; stroke: currentColor; stroke-width: 2; }.socials a[aria-label="Instagram"] .icon-dot { fill: currentColor; stroke: none; }.footer-contact a,.footer-contact p { display: flex; gap: 10px; align-items: flex-start; }.footer-contact svg { width: 16px; height: 16px; flex: 0 0 16px; margin-top: 2px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }.footer-contact span { min-width: 0; }.footer-bottom { min-height: 50px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.15); color: #858c90; font-size: .65rem; }.footer-bottom span:last-child { display: flex; gap: 22px; align-items: center; }.footer-bottom i { width: 1px; height: 13px; background: #5a6063; }

@media (min-width:1921px) {
  .about-copy { margin-left: calc((var(--wide-canvas) - var(--container)) / 2); }
}
@media (max-width:1050px) {
  .header-inner { grid-template-columns:155px 1fr auto;gap:20px }.main-nav{gap:20px}.header-cta{padding-inline:16px}.hero-copy{width:53%}.hero h1{font-size:3.65rem}.feature-pill{padding-inline:20px}.program-grid{gap:14px}.program-card{padding-inline:17px}.benefits-grid{grid-template-columns:.85fr repeat(3,1fr)}.benefits-heading h2{font-size:1.8rem}.benefit{padding-inline:16px}.benefit-text{grid-template-columns:36px 1fr;gap:9px}.benefit-text h3{font-size:.87rem}.signup-inner{grid-template-columns:180px 1fr auto}
}
@media (max-width:820px) {
  .container{width:min(calc(100% - 36px),var(--container))}.site-header,.site-header.is-sticky{height:70px}.site-header.is-sticky{background:#070a0d;backdrop-filter:none}.header-inner{grid-template-columns:1fr auto}.brand{position:relative;z-index:4;width:135px}.menu-toggle{position:relative;z-index:4;display:block;grid-column:2;grid-row:1;cursor:pointer}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .main-nav{position:fixed;inset:0;z-index:3;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;gap:26px;padding:90px 24px max(35px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;background:#070a0d;opacity:0;visibility:hidden;transform:translateY(-12px);transition:.25s}.main-nav.is-open{opacity:1;visibility:visible;transform:none}.main-nav a{font-size:1.25rem}.header-cta{display:none}
  .hero{min-height:1100px;padding-top:70px}.hero::after{background:linear-gradient(0deg,rgba(5,8,10,.99) 0%,rgba(5,8,10,.92) 42%,rgba(5,8,10,.18) 70%,rgba(5,8,10,.3))}.hero-photo{height:540px;bottom:auto}.hero-photo img{object-position:63% center}.hero-inner{padding-top:455px}.hero-copy{width:100%;max-width:620px}.hero h1{font-size:clamp(3rem,8.5vw,4.3rem)}.hero-description{max-width:540px}.hero-features{bottom:14px;min-height:105px}.feature-pill{grid-template-columns:42px 1fr;gap:7px;padding:15px 14px}.feature-pill strong{font-size:.78rem}.line-icon svg{width:36px;height:36px}
  .split-layout{grid-template-columns:1fr}.about-copy{width:min(calc(100% - 36px),var(--container));margin-inline:auto;padding:55px 0}.about-photo,.about-photo img{min-height:480px}.program-grid{grid-template-columns:repeat(2,1fr);gap:20px}.program-card{min-height:290px}
  .benefits-grid{width:100%;grid-template-columns:1fr 1fr 1fr}.benefits-heading{grid-column:1/-1;padding:46px 24px 22px}.benefits-heading h2 br{display:none}.benefit{min-height:300px;padding-top:28px}.benefit:first-of-type{border-left:0}.gallery-track{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-columns:auto;overflow:visible;scroll-snap-type:none}.gallery-card{width:100%}
  .faq-grid{grid-template-columns:1fr;gap:16px}.faq-column{gap:16px}.signup-spacer{display:none}.signup-inner{min-height:245px;grid-template-columns:1fr auto}.signup-inner h2{font-size:2.25rem}.footer-grid{grid-template-columns:1fr 1fr}.footer-bottom{padding-block:14px;gap:14px}
}
@media (max-width:560px) {
  .container{width:min(calc(100% - 28px),var(--container))}.section-pad{padding:48px 0}h2{font-size:2rem}.hero{min-height:1160px}.hero-inner{padding-top:400px}.hero h1{font-size:clamp(2.25rem,10vw,3rem)}.hero-lead{font-size:1.55rem}.hero-description{font-size:.9rem}.button-row{flex-wrap:wrap}.button-row .button{min-width:0;flex:1;padding-inline:8px;gap:8px;white-space:nowrap;font-size:.78rem}
  .hero-photo{height:440px}.hero-features{width:calc(100% - 28px);min-height:unset;bottom:14px;grid-template-columns:1fr}.feature-pill{min-height:74px;grid-template-columns:52px 1fr;padding:10px 18px}.feature-pill+.feature-pill{border-left:0;border-top:1px solid rgba(255,255,255,.14)}.feature-pill strong{font-size:.82rem}.line-icon svg{width:40px;height:40px}
  .about-photo,.about-photo img{min-height:360px}.program-grid{grid-template-columns:1fr}.program-card{min-height:300px}.benefits-grid{grid-template-columns:1fr}.benefits-heading{padding-inline:14px}.benefits-heading h2 br{display:block}.benefit{min-height:250px;border-left:0;border-top:1px solid #d2d4d4;padding-inline:20px}.benefit-person{right:-9%;left:auto;width:62%;height:235px}.benefit-text{max-width:65%}
  .section-topline h2{font-size:1.8rem}.gallery-track{grid-template-columns:1fr;gap:14px}.gallery-media{height:210px}.faq-heading{margin-bottom:26px}.faq-heading h2{font-size:2.25rem}.faq-intro{font-size:1rem;line-height:1.5}.faq-item{border-width:1.5px;border-radius:11px}.faq-question{grid-template-columns:36px 1fr;gap:14px;padding:20px 18px 12px}.faq-question>span:last-child{font-size:1rem}.faq-toggle{width:34px;height:34px}.faq-answer{padding:0 18px 20px 68px}.faq-answer p{font-size:.9rem;line-height:1.58}.faq-item:not(.is-open) .faq-question{padding-bottom:20px}.signup-inner{min-height:290px;grid-template-columns:1fr;padding-block:42px;text-align:center}.signup-inner h2{font-size:2rem}.signup-inner .button{width:100%}.footer-grid{grid-template-columns:1fr;gap:28px}.footer-bottom{flex-direction:column;align-items:flex-start}.footer-brand p{max-width:290px}
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important} }
