@import url('/assets/fonts/fonts.css');
:root { --charcoal:#444444; --blush:#e8d9d4; --pink:#ff92b7; --ink:#353535; --berry:#8c3155; --paper:#fffaf8; --serif:'Cormorant',Georgia,serif; --sans:'Manrope',Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; background:var(--blush); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.65; }
body.modal-open { overflow:hidden; }
img { display:block; max-width:100%; }
a { color:inherit; text-underline-offset:4px; }
button,input { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid currentColor; outline-offset:6px; }
.skip-link { position:fixed; z-index:100; left:16px; top:16px; padding:12px 20px; background:white; color:var(--ink); transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.container { width:min(1120px,calc(100% - 96px)); margin-inline:auto; }
.dark { background:var(--charcoal); color:var(--paper); }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--serif); font-weight:400; }
h2 { font-size:clamp(44px,5.2vw,72px); line-height:1.03; letter-spacing:-.025em; }
h2 em { font-weight:400; }
.dark em,.dark .accent { color:var(--pink); }
em { font-style:italic; }
.button { min-height:64px; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:18px 34px; border-radius:99px; border:1px solid transparent; text-align:center; text-decoration:none; font-size:18px; font-weight:500; line-height:1.4; transition:background .2s,box-shadow .2s,transform .2s; }
.button-pink { color:#442434; background:var(--pink) url('/assets/Rectangle_231.webp') center / 100% 100%; box-shadow:0 0 28px #ff92b726; }
.button-pink:hover { box-shadow:0 0 36px #ff92b757; transform:translateY(-2px); }
.hero { overflow:hidden; }
.hero-inner { position:relative; min-height:740px; }
.hero-top { display:flex; align-items:center; justify-content:space-between; position:relative; z-index:2; padding-top:26px; font-size:12px; letter-spacing:.16em; color:#eee3df; }
.hero-top span:last-child { margin-right:5px; }
.hero-top a { text-decoration:none; border-bottom:1px solid #eee3df70; padding-bottom:3px; }
.hero-copy { position:relative; z-index:1; width:61%; padding:58px 0 48px; }
h1 { margin:0 0 27px; font-size:clamp(58px,7vw,91px); line-height:.96; letter-spacing:-.025em; }
h1 em { display:inline-block; margin-top:10px; }
.hero-description { margin-bottom:30px; font-size:18px; line-height:1.7; }
.hero-description span { color:var(--pink); }
.hero-cta { flex-direction:column; gap:0; width:390px; max-width:100%; font-size:20px; }
.hero-note { margin:18px 0 0; font-size:13px; color:#e1d9d6; }
.hero-photo { position:absolute; width:480px; max-width:none; height:auto; top:0; right:-48px; clip-path:inset(0 0 11% 0); }
.section { padding-block:96px; }
.eyebrow { margin-bottom:25px; font-size:12px; font-weight:600; letter-spacing:.15em; line-height:1.6; }
.dark .eyebrow { color:#e0d4d0; }
.section:not(.dark) h2 em { color:var(--berry); }
.for-you { padding-bottom:0; overflow:hidden; }
.for-you-inner { position:relative; min-height:570px; }
.for-you-copy { width:60%; position:relative; z-index:1; padding-bottom:55px; }
.for-you h2 { margin-bottom:34px; }
.reasons { display:grid; gap:12px; padding:0; margin:0; max-width:460px; list-style:none; }
.reasons li { display:flex; align-items:center; gap:16px; background:#e586a9 url('/assets/Rectangle_231.webp') center / 100% 100%; border-radius:60px; padding:16px 25px 16px 21px; min-height:72px; font-size:16px; line-height:1.5; color:#392931; }
.reasons li:nth-child(2),.reasons li:nth-child(4) { margin-left:24px; }
.reasons img { width:22px; height:auto; flex-shrink:0; }
.for-you-photo { position:absolute; right:-48px; bottom:0; width:420px; max-width:45%; height:auto; }
.about { padding-top:70px; padding-bottom:0; }
.about-grid { display:grid; grid-template-columns:1.12fr 1fr; gap:90px; border-top:1px solid #44444424; padding-top:75px; }
.about-copy { padding:0 0 65px; }
.about h2 { margin-bottom:25px; }
.about-intro { font-size:19px; max-width:420px; }
.about-intro strong { color:var(--berry); font-weight:500; }
.principles { padding:0; margin:30px 0 0; list-style:none; }
.principles li { display:flex; align-items:flex-start; gap:26px; margin-bottom:23px; }
.principles p { margin:0; max-width:390px; }
.number { font-size:13px; letter-spacing:.08em; flex-shrink:0; color:var(--berry); padding-top:3px; }
.about-portrait { display:flex; justify-content:center; align-items:flex-end; overflow:hidden; }
.about-portrait img { height:680px; width:auto; max-width:none; }
.reviews { padding-top:105px; padding-bottom:100px; }
.reviews-grid { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.reviews h2 { margin-bottom:28px; }
.reviews-copy>p:last-child { color:#e1d6d2; font-size:17px; margin:0; }
.review-gallery { min-width:0; padding:26px 22px 18px; background:#e3deda; color:var(--ink); border-radius:24px; }
.review-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; border-radius:12px; overscroll-behavior-x:contain; }
.review-track::-webkit-scrollbar { display:none; }
.review-slide { margin:0; flex:0 0 100%; min-width:0; scroll-snap-align:start; background:white; align-content:center; }
.review-slide img { width:100%; height:auto; }
.gallery-controls { display:flex; align-items:center; justify-content:space-between; margin-top:25px; }
.gallery-controls[hidden] { display:none; }
.gallery-button { min-height:44px; min-width:70px; padding:8px 12px; background:transparent; border:1px solid #44444435; border-radius:30px; color:var(--ink); font-size:14px; }
.gallery-button:hover { background:var(--pink); }
.gallery-count { font-size:14px; font-variant-numeric:tabular-nums; }
.gallery-count span { color:#756963; margin-left:5px; }
.bonuses { padding-top:50px; overflow:hidden; }
.bonuses-inner { position:relative; min-height:465px; }
.bonuses-copy { width:620px; max-width:100%; text-align:center; margin-inline:auto; position:relative; z-index:1; }
.bonuses h2 { margin-bottom:30px; }
.bonuses strong { font-weight:500; }
.bonus-equipment { margin-bottom:30px; color:#e4d3d8; font-size:16px; }
.bonus-roller { position:absolute; width:230px; height:auto; left:-45px; top:25px; transform:rotate(-8deg); }
.bonus-ball { position:absolute; width:150px; height:auto; right:0; bottom:10px; }
.bonuses .button { min-width:350px; }
.benefits { text-align:center; padding-block:90px; }
.benefits h2 { margin-bottom:38px; }
.benefit-list { padding:0; margin:0 auto; max-width:860px; list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.benefit-list li { border:1px solid #b24a7350; padding:13px 24px; border-radius:40px; font-size:16px; color:#69394b; }
.benefit-list li:first-child { background:var(--pink); border-color:transparent; }
.course-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:95px; }
.course-heading>p:not(.eyebrow) { color:#e3d6d1; margin:30px 0; }
.text-link { color:var(--pink); font-size:16px; }
.course-list { list-style:none; padding:0; margin:0; }
.course-list li { display:flex; align-items:flex-start; gap:26px; padding:27px 0; border-top:1px solid #ece1dc50; }
.course-list li:last-child { border-bottom:1px solid #ece1dc50; }
.course-list .number { color:#e4d7d2; }
.course-list h3 { font-size:19px; line-height:1.5; color:var(--pink); font-weight:500; margin:0 0 10px; }
.course-list p { color:#eee4df; margin:0; font-size:16px; }
.format { position:relative; padding-bottom:0; overflow:hidden; }
.format-inner { position:relative; min-height:590px; }
.format-copy { position:relative; z-index:1; width:45%; padding-bottom:65px; }
.format h2 { margin-bottom:35px; }
.format-copy strong { font-weight:500; }
.format-photo { position:absolute; width:650px; height:auto; max-width:none; right:-95px; bottom:0; }
.format .principles { max-width:380px; }
.faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; }
.faq-list { border-top:1px solid #e8d9d450; }
.faq details { border-bottom:1px solid #e8d9d450; }
.faq summary { display:flex; gap:25px; align-items:center; justify-content:space-between; list-style:none; cursor:pointer; padding:27px 0; font-size:16px; line-height:1.7; }
.faq summary::-webkit-details-marker { display:none; }
.faq-plus { flex:0 0 22px; width:22px; height:22px; position:relative; }
.faq-plus::before,.faq-plus::after { content:''; position:absolute; top:10px; left:0; width:22px; height:1px; background:var(--pink); transition:transform .2s; }
.faq-plus::after { transform:rotate(90deg); }
details[open] .faq-plus::after { transform:rotate(0); }
.faq-answer { padding:0 45px 25px 0; color:#e3d8d4; font-size:16px; }
.faq-answer p { margin:0; }
.contact { text-align:center; padding-block:100px; }
.contact h2 { max-width:780px; margin:0 auto 25px; }
.contact-inner>p:not(.eyebrow) { font-size:18px; margin-bottom:35px; }
.contact-actions { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:16px; }
.contact .button { font-size:16px; }
.mini-invite .button { min-width:320px; font-size:20px; }
.mini-invite-note { display:block; margin-top:10px; font-size:16px; font-weight:400; line-height:1.65; }
.button-outline { background:transparent; border-color:#9b506d80; color:#6d354b; }
.button-outline:hover { background:#ff92b724; }
.footer { padding-top:15px; }
.footer-top { border-top:1px solid #44444430; padding-top:35px; display:flex; align-items:center; justify-content:space-between; margin-bottom:35px; }
.footer-brand { font-family:var(--serif); font-size:27px; line-height:1.1; margin:0; }
.footer-brand em { color:var(--berry); }
.social-links { display:flex; gap:10px; }
.social-links a { width:44px; height:44px; display:grid; place-items:center; border:1px solid #44444430; border-radius:50%; }
.social-links a:hover { background:#ff92b740; }
.footer-grid { display:grid; grid-template-columns:1.3fr 1fr .9fr; gap:60px; font-size:14px; }
.footer h3 { font-size:14px; font-weight:600; margin:0 0 15px; }
.footer p { margin-bottom:14px; }
.footer a { overflow-wrap:anywhere; }
.footer nav { display:flex; flex-direction:column; gap:15px; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:50px; padding-block:24px; border-top:1px solid #44444420; font-size:12px; color:#625652; }
.checkout { width:min(480px,calc(100% - 32px)); max-height:calc(100dvh - 32px); border:0; border-radius:24px; padding:36px; background:var(--paper); color:var(--ink); box-shadow:0 20px 100px #0004; overflow:auto; overscroll-behavior:contain; }
.checkout::backdrop { background:#292327bd; backdrop-filter:blur(5px); }
.checkout .eyebrow { margin:8px 25px 17px 0; font-size:12px; color:#745d67; }
.checkout h2 { font-size:45px; line-height:1; margin:0 0 15px; }
.checkout h2 em { color:var(--berry); }
.modal-close { position:absolute; right:15px; top:12px; width:44px; height:44px; border:0; background:transparent; font-size:31px; font-weight:400; line-height:1; color:#745d67; }
.checkout-description { font-size:13px; color:#715e65; margin-bottom:20px; }
.checkout-hosted-note { padding:15px; background:#f4e7ed; border-radius:12px; font-size:14px; }
.checkout-price { display:flex; align-items:center; justify-content:space-between; border-block:1px solid #ead9df; padding:10px 0; margin-bottom:20px; font-size:14px; }
.checkout-price strong { font-size:30px; font-weight:500; color:var(--berry); }
.checkout-price small { font-size:16px; }
.field { margin-bottom:14px; }
.field label { display:block; margin-bottom:6px; font-size:14px; }
.field input { border:1px solid #deccd2; border-radius:10px; padding:12px 14px; width:100%; min-height:48px; background:#f5eeeb; color:var(--ink); font-size:16px; outline:none; }
.field input:focus { border-color:var(--berry); box-shadow:0 0 0 3px #8c315516; }
.field input[aria-invalid="true"] { border-color:#a42438; }
.field-error { margin:5px 0 0; font-size:12px; color:#a42438; }
.checkout-submit { width:100%; margin-top:6px; min-height:54px; font-size:17px; padding:14px; }
.checkout-submit:disabled { opacity:.6; cursor:wait; transform:none; }
.checkout-terms { margin:16px 0 0; font-size:12px; line-height:1.65; color:#73626a; text-align:center; }
.payment-error { margin-top:16px; padding:15px; border-radius:12px; background:#f4e5eb; font-size:14px; }
.payment-error p { margin-bottom:8px; }
.payment-fallback { color:var(--berry); font-weight:600; }
.no-js-checkout { padding:45px 20px; text-align:center; }
.legal-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:25px; border-bottom:1px solid #44444430; }
.legal-header a { font-size:14px; }
.legal-brand { font-family:var(--serif); font-size:23px!important; text-decoration:none; }
.legal-main { max-width:840px; margin:0 auto; padding:65px 24px 85px; }
.legal-main h1 { font-size:clamp(42px,7vw,70px); width:auto; margin:0 0 22px; }
.legal-main .legal-date { color:#785564; font-size:14px; }
.legal-main h2 { font-family:var(--sans); font-size:24px; font-weight:600; line-height:1.4; letter-spacing:0; margin:45px 0 20px; }
.legal-main h2 span+span { margin-left:12px; }
.legal-main p,.legal-main li { font-size:16px; line-height:1.85; }
.legal-main a { overflow-wrap:anywhere; }
.legal-main ul,.legal-main ol { padding-left:24px; }
.legal-toc { margin-block:30px; padding:22px; background:#ffffff55; border-radius:12px; }
.legal-toc summary { cursor:pointer; font-weight:600; }
.legal-toc ol { columns:2; margin-bottom:0; }
.legal-toc li { margin-bottom:8px; break-inside:avoid; font-size:14px; }
.legal-footer { padding:25px; background:var(--charcoal); color:var(--paper); display:flex; justify-content:center; gap:25px; flex-wrap:wrap; font-size:14px; }
[hidden] { display:none!important; }
@media(min-width:1450px) { .hero-photo { width:520px; right:-65px; } }
@media(max-width:800px) {
  .container { width:calc(100% - 48px); }
  .hero-inner { min-height:665px; }
  .hero-copy { width:66%; padding-top:66px; }
  h1 { font-size:66px; }
  .hero-photo { width:400px; right:-100px; }
  .hero-description { font-size:16px; }
  .hero-cta { width:320px; }
  .section { padding-block:70px; }
  .for-you,.format { padding-bottom:0; }
  .for-you-inner { min-height:535px; }
  .for-you-copy { width:62%; }
  .for-you-photo { right:-24px; width:340px; max-width:48%; }
  .reasons li { padding:13px 18px; font-size:16px; }
  .reasons li:nth-child(2),.reasons li:nth-child(4) { margin-left:12px; }
  .about { padding-bottom:0; padding-top:35px; }
  .about-grid { gap:35px; padding-top:55px; }
  .about-portrait img { height:620px; }
  .about-intro { font-size:17px; }
  .principles li { gap:17px; font-size:16px; }
  .reviews-grid,.course-grid,.faq-grid { gap:40px; }
  .review-gallery { padding:16px; }
  .bonus-roller { width:160px; left:-45px; top:70px; }
  .bonus-ball { width:110px; right:-15px; }
  .bonuses-copy { max-width:80%; }
  .bonuses h2 { font-size:55px; }
  .bonuses p:not(.eyebrow) { font-size:16px; }
  .bonuses .button { min-width:0; width:310px; max-width:100%; }
  .format-copy { width:55%; }
  .format-inner { min-height:570px; }
  .format-photo { width:530px; right:-110px; }
  .footer-grid { gap:30px; grid-template-columns:1fr 1fr; }
  .footer nav { grid-column:1/-1; flex-direction:row; flex-wrap:wrap; }
}
@media(max-width:540px) {
  .container { width:calc(100% - 40px); }
  .hero-inner { min-height:720px; }
  .hero-top { font-size:12px; letter-spacing:.1em; padding-top:23px; }
  .hero-copy { width:100%; padding-top:72px; }
  h1 { font-size:clamp(45px,12vw,65px); width:80%; margin-bottom:22px; position:relative; z-index:2; }
  .hero-description { font-size:16px; max-width:210px; line-height:1.75; position:relative; z-index:2; }
  .hero-description br { display:none; }
  .hero-photo { width:330px; right:-94px; top:112px; }
  .hero-cta { width:100%; margin-top:187px; position:relative; z-index:3; font-size:18px; }
  .hero-note { text-align:center; font-size:12px; }
  .section { padding-block:58px; }
  h2 { font-size:49px; }
  .eyebrow { font-size:12px; margin-bottom:20px; letter-spacing:.1em; }
  .for-you { padding-bottom:0; }
  .for-you-inner { min-height:800px; }
  .for-you-copy { width:100%; padding-bottom:315px; }
  .for-you h2 { font-size:47px; }
  .reasons { max-width:100%; gap:10px; }
  .reasons li { font-size:16px; min-height:65px; padding:14px 22px; }
  .reasons li:nth-child(2),.reasons li:nth-child(4) { margin-left:15px; }
  .for-you-photo { width:260px; max-width:none; right:-20px; }
  .about { padding-top:0; padding-bottom:0; }
  .about-grid { display:flex; flex-direction:column; gap:0; padding-top:50px; }
  .about-copy { padding-bottom:20px; }
  .about h2 { font-size:60px; }
  .about-intro { font-size:17px; }
  .principles { margin-top:25px; }
  .principles li { font-size:16px; gap:20px; }
  .about-portrait img { height:530px; }
  .reviews-grid,.course-grid,.faq-grid { grid-template-columns:1fr; gap:32px; }
  .reviews-copy>p:last-child { font-size:16px; }
  .review-gallery { padding:20px 14px 15px; border-radius:20px; }
  .review-track { border-radius:10px; }
  .gallery-controls { margin-top:20px; }
  .bonuses { padding-top:25px; padding-bottom:60px; }
  .bonuses-inner { min-height:0; }
  .bonuses-copy { max-width:100%; padding-top:190px; }
  .bonuses h2 { font-size:49px; }
  .bonus-roller { width:135px; left:20px; top:0; }
  .bonus-ball { width:85px; right:25px; bottom:auto; top:85px; }
  .bonuses .button { width:100%; }
  .benefit-list { gap:10px; }
  .benefit-list li { padding:11px 17px; font-size:14px; }
  .course-heading>p:not(.eyebrow) { margin:20px 0; }
  .course-list li { gap:20px; padding-block:24px; }
  .course-list h3 { font-size:18px; }
  .format { padding-bottom:0; }
  .format-inner { min-height:775px; }
  .format-copy { width:100%; padding-bottom:275px; }
  .format-photo { width:470px; right:-70px; }
  .format .principles { max-width:100%; }
  .faq summary { padding-block:24px; gap:20px; }
  .faq-answer { padding-right:20px; }
  .contact h2 { font-size:49px; }
  .contact-inner>p:not(.eyebrow) { font-size:16px; }
  .contact-actions { gap:12px; }
  .contact .button { width:100%; padding-inline:18px; }
  .footer-top { padding-top:25px; }
  .footer-brand { font-size:23px; }
  .footer-grid { grid-template-columns:1fr; gap:30px; }
  .footer nav { flex-direction:column; }
  .footer-bottom { flex-direction:column; gap:8px; margin-top:35px; }
  .checkout { padding:28px 23px; }
  .checkout h2 { font-size:43px; }
  .legal-header { align-items:flex-start; }
  .legal-brand { font-size:19px!important; max-width:160px; line-height:1.2; }
  .legal-main { padding-top:45px; }
  .legal-main h1 { font-size:45px; overflow-wrap:anywhere; }
  .legal-main h2 { font-size:22px; }
  .legal-toc ol { columns:1; }
}
@media print { .legal-header,.legal-footer,.legal-toc { display:none; } .legal-main { max-width:none; padding:0; } body { color:black; background:white; } .legal-main h2 { break-after:avoid; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }
