:root{--navy:#171a3a;--lilac:#cfc6f5;--lilac-soft:#eeeaff;--coral:#ff6a4d;--coral-ink:#c43f22;--paper:#fbf9ff;--line:#d9d3ef;--grey:#5c5a75;
--round:'Avenir Next','Trebuchet MS','Segoe UI',system-ui,sans-serif}
body{margin:0;background:var(--paper);color:var(--navy);font-family:var(--round);font-size:16px;line-height:1.65}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--coral);outline-offset:4px}
h1,h2,h3{letter-spacing:-.035em}
.ribbon{margin:0;background:var(--navy);color:var(--lilac-soft);font-size:12px;padding:10px 5vw;display:flex;flex-wrap:wrap;gap:5px 12px}
.ribbon a{text-decoration:underline;text-underline-offset:3px}
header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 5vw}
.logo{display:inline-flex;align-items:center;gap:10px;font-size:21px;font-weight:500;letter-spacing:-.03em}
.logo b{font-weight:800}
.dot{width:15px;height:15px;border-radius:50%;background:var(--coral);box-shadow:9px 0 0 -3px var(--lilac);flex:none}
nav{display:flex;align-items:center;gap:24px;font-size:14px}
nav a:not(.cta):hover{text-decoration:underline;text-underline-offset:5px}
.cta,.ghost{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 24px;border-radius:40px;font-size:14px;font-weight:700;border:2px solid var(--navy)}
.cta{background:var(--navy);color:var(--paper)}
.cta:hover{background:var(--coral-ink);border-color:var(--coral-ink)}
.cta:disabled{opacity:.5}
.ghost{background:transparent}
.ghost:hover{background:var(--lilac)}
.kicker{font-size:13px;font-weight:700;color:var(--coral-ink);letter-spacing:.02em}
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'words shot' 'facts shot';gap:10px 5vw;padding:34px 5vw 60px;align-items:start}
.hero-words{grid-area:words}
.hero h1{font-size:clamp(46px,6.6vw,90px);line-height:1;margin:16px 0 22px;font-weight:800}
.hero h1 em{font-style:normal;color:var(--coral-ink)}
.hero-copy{max-width:38ch;font-size:16px;color:var(--grey)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero-shot{grid-area:shot;margin:0;border-radius:28px;overflow:hidden;background:var(--lilac);position:relative}
.hero-shot img{width:100%;aspect-ratio:3/2.45;object-fit:cover;object-position:50% 45%}
.hero-shot figcaption{position:absolute;left:16px;bottom:16px;background:var(--paper);border-radius:30px;padding:7px 15px;font-size:11px;font-weight:600}
.hero-facts{grid-area:facts;list-style:none;margin:34px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.hero-facts li{background:var(--lilac-soft);border:1px solid var(--line);border-radius:20px;padding:14px 20px;min-width:118px}
.hero-facts strong{display:block;font-size:22px;font-weight:800;letter-spacing:-.03em}
.hero-facts span{font-size:12px;color:var(--grey)}
.timetable{background:var(--navy);color:var(--paper);border-radius:38px;margin:0 2.5vw;padding:56px 5vw 60px}
.timetable .kicker{color:var(--lilac)}
.timetable-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:22px;align-items:flex-end}
.timetable-top h2{font-size:clamp(42px,5.6vw,76px);margin-top:12px;font-weight:800}
.timetable-top p{max-width:40ch;font-size:14px;color:#b9b5d6}
.days{display:flex;flex-wrap:wrap;gap:9px;margin:34px 0 0}
.days button{min-height:46px;padding:0 20px;border-radius:40px;border:2px solid #3d3f68;background:transparent;color:var(--paper);font:inherit;font-size:14px;font-weight:700}
.days button:hover{border-color:var(--lilac)}
.days button[aria-pressed=true]{background:var(--lilac);border-color:var(--lilac);color:var(--navy)}
.tally{font-size:13px;color:#b9b5d6;margin:20px 0 0}
.classes{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:14px}
.classes li{background:#20244d;border-radius:22px;padding:22px;display:flex;flex-direction:column;gap:8px;min-height:168px}
.classes li[hidden]{display:none}
.when{font-size:12px;font-weight:700;color:var(--coral);letter-spacing:.04em}
.classes h3{font-size:22px;font-weight:800}
.classes p{font-size:13.5px;color:#b9b5d6}
.tag{margin-top:auto;align-self:flex-start;font-size:11px;font-weight:700;background:#2c3162;border-radius:20px;padding:6px 13px}
.empty{margin-top:22px;background:#20244d;border-radius:22px;padding:22px;font-size:14px}
.fine{font-size:12px;line-height:1.8;color:var(--grey);max-width:74ch;margin-top:24px}
.timetable .fine{color:#9c99bb}
.pricing{padding:70px 5vw}
.pricing-head h2{font-size:clamp(42px,5.6vw,76px);margin:12px 0 14px;font-weight:800}
.pricing-head p{max-width:52ch;font-size:14px;color:var(--grey)}
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:34px}
.plans article{border:2px solid var(--line);border-radius:26px;padding:28px;background:#fff}
.plans .feature{background:var(--lilac-soft);border-color:var(--navy)}
.plans h3{font-size:18px;font-weight:700}
.figure{font-size:46px;font-weight:800;letter-spacing:-.04em;margin:12px 0 14px;line-height:1}
.figure span{display:block;font-size:13px;font-weight:600;color:var(--grey);letter-spacing:0}
.plans p:last-child{font-size:14px;color:var(--grey)}
.included{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.included li{font-size:13px;background:var(--lilac);border-radius:20px;padding:9px 16px}
.trial{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:6vw;background:var(--lilac-soft);border-top:2px solid var(--line);padding:64px 5vw 70px}
.trial h2{font-size:clamp(42px,5.4vw,72px);margin:12px 0 16px;font-weight:800}
.trial p{max-width:40ch;font-size:15px;color:var(--grey)}
.disclosure{margin-top:20px;background:#fff;border-radius:20px;border:1px solid var(--line);padding:16px 18px;font-size:13px;color:var(--navy)!important}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px 18px;margin-bottom:26px}
.fields>div{min-width:0}
label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}
input,select{width:100%;min-width:0;min-height:48px;padding:12px 14px;border:2px solid var(--line);border-radius:14px;background:#fff;color:var(--navy);font-size:15px}
input:focus-visible,select:focus-visible{outline:3px solid var(--coral);outline-offset:2px}
.wide{width:100%}
footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;padding:38px 5vw}
footer p{font-size:12.5px;color:var(--grey)}
.under{font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:5px}
.motion-toggle{min-height:44px;padding:0 18px;border-radius:40px;font-size:13px;font-weight:700;border-color:var(--navy)}
@media(max-width:950px){.hero{grid-template-columns:1fr;grid-template-areas:'words' 'shot' 'facts';gap:26px}
.hero-shot img{aspect-ratio:3/2}
.hero-facts{margin-top:0}
.plans{grid-template-columns:1fr}
.trial{grid-template-columns:1fr;gap:30px}}
@media(max-width:640px){header{flex-wrap:wrap;gap:14px}
nav{width:100%;justify-content:space-between;gap:10px;font-size:13px}
.timetable{border-radius:26px;margin:0 3vw;padding:44px 6vw 48px}
.pricing,.trial{padding:48px 6vw}
.classes{grid-template-columns:1fr}
.fields{grid-template-columns:1fr}
.days button{padding:0 16px;font-size:13px}
footer{flex-direction:column;align-items:flex-start}}
@media(max-width:380px){.hero-facts li{min-width:0;flex:1 1 100%}}
