@font-face { font-family: Onest; src: url('./assets/fonts/onest-regular.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: Onest; src: url('./assets/fonts/onest-medium.woff2') format('woff2'); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: Onest; src: url('./assets/fonts/onest-semibold.woff2') format('woff2'); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: Literata; src: url('./assets/fonts/literata-italic.woff2') format('woff2'); font-style: italic; font-weight: 400; font-display: swap; }
@font-face { font-family: Play; src: url('./assets/fonts/play-bold-cyrillic.woff2') format('woff2'); font-style: normal; font-weight: 700; font-display: swap; }
:root { --paper:#eaeaea; --ink:#171717; --muted:#646464; --card:#dedede; --white:#fff; --olive:#35392b; --rule:#c9c9c9; --radius:24px; --inset:clamp(24px,4.7vw,92px); --display:clamp(3.5rem,6.7vw,7.75rem); --ease:cubic-bezier(.2,.7,.2,1); font-family:Onest,Arial,sans-serif; color:var(--ink); background:var(--paper); font-synthesis:none; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:112px; }
body { margin:0; min-width:280px; }
body,button,input,textarea { font-family:Onest,Arial,sans-serif; }
button,input,textarea { font-size:1rem; }
button,a,summary { -webkit-tap-highlight-color:transparent; }
button,summary { cursor:pointer; }
a { color:inherit; text-decoration:none; }
button { color:inherit; border:none; border-radius:0; }
button:disabled { cursor:default; }
img { display:block; width:100%; }
svg { flex:0 0 auto; }
figure,p,h1,h2,h3 { margin:0; }
h1,h2,h3 { font-weight:400; }
h2 { font-size:var(--display); line-height:1.04; letter-spacing:-.062em; }
em { font-family:Literata,Georgia,serif; font-style:italic; font-weight:400; letter-spacing:-.07em; }
::selection { background:#bcc2a2; color:var(--ink); }
:focus-visible { outline:2px solid #646e49; outline-offset:5px; }
.page-inset { padding-inline:var(--inset); }
.photo { display:block; position:absolute; inset:0; width:100%; height:100%; }
.photo img { height:100%; object-fit:cover; }
.eyebrow { display:inline-block; font-size:.875rem; font-weight:500; line-height:1.35; letter-spacing:-.02em; }
.eyebrow--pill { background:#ddd; color:#4f4f4f; padding:9px 12px; border-radius:5px; }
.eyebrow--light { color:#fff; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:50px; padding:15px 23px; border-radius:9px; font-size:.9375rem; font-weight:500; line-height:1.3; letter-spacing:-.025em; transition:background-color .25s,transform .25s var(--ease); text-align:center; }
.button:hover { transform:translateY(-2px); }
.button:active { transform:translateY(0); }
.button--light { color:var(--ink); background:var(--white); }
.button--light:hover { background:#efefef; }
.button--dark { color:#fff; background:var(--ink); }
.button--dark:hover { background:#343434; }
.mobile-break { display:none; }
.skip-link { position:fixed; z-index:110; top:12px; left:12px; transform:translateY(-180%); background:white; color:black; padding:16px; border-radius:6px; }
.skip-link:focus { transform:translateY(0); }

/* Floating capsule; the mobile menu unfolds inside it. */
.header { position:fixed; z-index:80; top:24px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:32px; background:#fff; min-height:70px; padding:13px 18px 13px 23px; border-radius:16px; box-shadow:0 2px 16px #00000008; max-width:calc(100% - 32px); }
.brand { display:flex; align-items:center; flex:0 0 auto; min-height:44px; font-family:Play,Onest,sans-serif; font-size:.75rem; font-weight:700; letter-spacing:.12em; line-height:1; text-transform:uppercase; white-space:nowrap; }
.nav-desktop { display:flex; gap:27px; align-items:center; }
.nav-desktop a { font-size:.875rem; letter-spacing:-.025em; white-space:nowrap; min-height:44px; display:flex; align-items:center; position:relative; }
.nav-desktop a::after { content:''; position:absolute; left:0; right:0; bottom:7px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.nav-desktop a:hover::after { transform:scaleX(1); }
.header__join { display:inline-flex; align-items:center; min-height:44px; padding:11px 16px; background:#eee; border-radius:8px; font-size:.875rem; font-weight:500; }
.header__join:hover { background:#dedede; }
.menu-toggle { display:none; background:transparent; padding:0; min-width:44px; min-height:44px; align-items:center; justify-content:center; }
.menu-backdrop { position:fixed; z-index:70; inset:0; background:#0005; backdrop-filter:blur(4px); }
.mobile-menu { display:none; }

/* Hero has its own mobile crop and no dependency on background video. */
.hero { position:relative; min-height:740px; height:100svh; max-height:1180px; overflow:hidden; color:#fff; background:#353b32; }
.hero__photo img { object-position:50% 42%; }
.hero__shade { position:absolute; inset:0; background:linear-gradient(180deg,#00000010 12%,#00000012 30%,#00000035 56%,#00000069 100%); }
.hero__meta { position:absolute; top:131px; inset-inline:var(--inset); display:flex; justify-content:space-between; gap:24px; font-size:.8125rem; color:#ffffffd9; }
.hero__content { position:absolute; bottom:175px; left:50%; transform:translateX(-50%); text-align:center; width:min(1040px,calc(100% - 40px)); }
.hero h1 { font-size:clamp(6.25rem,10.6vw,11.5rem); line-height:.95; letter-spacing:-.075em; font-weight:400; }
.hero h1 span,.hero h1 em { display:block; }
.hero h1 em { line-height:1.09; margin-top:2px; }
.hero__description { margin-top:29px; font-size:1rem; line-height:1.4; letter-spacing:-.035em; }
.hero__bottom { position:absolute; bottom:71px; inset-inline:24px; display:flex; justify-content:center; }
.hero__cta { display:flex; align-items:center; justify-content:space-between; gap:60px; background:#171b1680; backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); padding:7px 7px 7px 23px; border-radius:12px; }
.hero__cta p { font-size:.9375rem; line-height:1.25; letter-spacing:-.035em; }
.hero__cta .button { min-height:46px; }
.hero__scroll { position:absolute; left:50%; transform:translateX(-50%); bottom:15px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; color:#ffffffaf; transition:color .2s; }
.hero__scroll:hover { color:#fff; }

.main-surface { position:relative; margin-top:-33px; z-index:2; background:var(--paper); border-radius:40px 40px 0 0; }
.intro { padding-top:119px; }
.intro__copy { max-width:1250px; margin-inline:auto; }
.intro__copy > .eyebrow { margin-bottom:43px; }
.intro h2 { max-width:1000px; font-size:clamp(2.375rem,4.1vw,4.25rem); line-height:1.13; letter-spacing:-.052em; }
.intro h2 em { letter-spacing:-.06em; }
.intro__lower { margin-top:38px; display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.intro__lower p { color:var(--muted); font-size:clamp(1.125rem,1.8vw,1.5rem); line-height:1.3; letter-spacing:-.04em; }
.intro__statement { margin-top:55px; font-size:clamp(1.5rem,2.55vw,2.25rem); line-height:1.35; color:var(--muted); letter-spacing:-.045em; }
mark { padding:1px 5px 3px; border-radius:4px; background:#fff; color:var(--ink); }
.recognition-photo { position:relative; margin:80px calc(var(--inset)*-1 + 12px) 0; height:clamp(450px,52vw,780px); overflow:hidden; border-radius:var(--radius); background:#565047; }
.recognition-photo .photo img { object-position:58% 62%; }
.recognition-photo__shade { position:absolute; inset:0; background:linear-gradient(180deg,#00000018,#00000000 35%,#0000006b); }
.recognition-photo figcaption { position:absolute; left:clamp(26px,7vw,140px); bottom:73px; color:#fff; width:min(575px,calc(100% - 60px)); }
.recognition-photo figcaption > .eyebrow { margin-bottom:18px; }
.recognition-photo__phrases { display:flex; flex-direction:column; gap:10px; }
.recognition-photo__phrases p { padding:16px 20px; border-radius:10px; background:#b8b2a936; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); font-size:clamp(1rem,1.7vw,1.375rem); letter-spacing:-.035em; line-height:1.3; }
.photo-caption { position:absolute; right:28px; bottom:28px; color:#fff; font-size:.8125rem; }

.approach { padding-block:140px 120px; }
.approach__heading p { color:var(--muted); font-size:clamp(1.125rem,2vw,1.6875rem); line-height:1.2; letter-spacing:-.04em; margin-bottom:42px; }
.approach__heading h2 { max-width:1200px; }
.approach__grid { margin-top:62px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.approach-card { min-height:290px; padding:32px 28px; border-radius:var(--radius); background:var(--card); display:flex; flex-direction:column; align-items:flex-start; }
.approach-card > svg { margin-bottom:auto; }
.approach-card h3 { margin-top:41px; font-size:1.5rem; letter-spacing:-.045em; font-weight:500; }
.approach-card p { margin-top:14px; color:#5d5d5d; line-height:1.45; letter-spacing:-.025em; font-size:1.0625rem; max-width:320px; }

/* Only the left column is sticky. Cards preserve their natural flow. */
.program { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(60px,8vw,175px); padding-block:60px 146px; align-items:start; }
.program__intro { position:sticky; top:132px; padding-block:10px 30px; }
.program__intro > .eyebrow { margin-bottom:29px; }
.program__intro h2 { font-size:clamp(2.875rem,4.9vw,5.65rem); line-height:1.06; }
.program__intro > p { margin-top:30px; font-size:1.125rem; line-height:1.45; color:var(--muted); letter-spacing:-.025em; }
.program__intro > .button { margin-top:27px; }
.program__index { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:52px; font-size:.8125rem; color:#777; }
.program__modules { display:flex; flex-direction:column; gap:15px; }
.module-card { background:var(--card); border-radius:var(--radius); padding:29px 32px 0; overflow:hidden; }
.module-card:nth-child(even) { background:#e0e0e0; }
.module-card__top { display:flex; align-items:flex-start; justify-content:space-between; }
.module-card__number { font-size:4.375rem; letter-spacing:-.085em; line-height:1; color:#7c7c7c; }
.module-card__top > svg { margin-top:9px; }
.module-card__body { padding-block:31px 25px; }
.module-card__body > .eyebrow { color:#6c6c6c; margin-bottom:20px; }
.module-card h3 { font-size:clamp(2rem,3.1vw,3.125rem); line-height:1.07; letter-spacing:-.055em; }
.module-card__subtitle { font-size:clamp(1.1875rem,1.8vw,1.5625rem); line-height:1.22; letter-spacing:-.04em; margin-top:15px; color:#555; }
.module-card__text { font-size:1rem; line-height:1.5; letter-spacing:-.02em; margin-top:23px; color:#575757; }
summary { list-style:none; }
summary::-webkit-details-marker { display:none; }
.module-details { border-top:1px solid #c4c4c4; }
.module-details > summary { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:64px; font-size:.9375rem; font-weight:500; }
.details-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#d1d1d1; flex:0 0 34px; }
.details-icon svg:last-child { display:none; }
details[open] .details-icon svg:first-child { display:none; }
details[open] .details-icon svg:last-child { display:block; }
details > summary:hover .details-icon { background:#c7c7c7; }
.module-details__content { padding-bottom:29px; }
.module-details__content ul { margin:0 0 23px; padding-left:19px; font-size:1rem; line-height:1.5; letter-spacing:-.02em; color:#505050; }
.module-details__content li { padding-left:5px; margin-bottom:8px; }
.module-practice { background:#ffffff70; border-radius:12px; padding:17px 19px; }
.module-practice > span { font-size:.8125rem; font-weight:500; }
.module-practice p { font-size:.9375rem; line-height:1.45; margin-top:8px; color:#525252; }

.format-section { position:relative; isolation:isolate; overflow:hidden; color:#f3f2ed; margin:0 12px; background:var(--olive); border-radius:var(--radius); padding:78px max(24px,calc(var(--inset) - 12px)) 0; display:grid; grid-template-columns:1.1fr .9fr; gap:62px 76px; }
.format-section::before { content:''; position:absolute; z-index:-2; inset:0; background:url('./assets/images/format-desktop.webp?v=4') center/cover no-repeat; filter:brightness(1.32) saturate(1.08); }
.format-section::after { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(100deg,#0e171146 0%,#0e171129 48%,#0e171119 100%); }
.format-heading h2 { margin-top:39px; font-size:clamp(3.25rem,5.2vw,6rem); line-height:1.08; }
.format-heading > p { font-size:1.1875rem; color:#c4c5bb; line-height:1.45; letter-spacing:-.035em; margin-top:37px; }
.format-content { min-width:0; }
.format-tabs { display:flex; gap:5px; padding:5px; background:#ffffff0d; border-radius:10px; margin-bottom:20px; }
.format-tabs button { flex:1; min-height:44px; color:#dedfd7; padding:10px 12px; border-radius:7px; background:transparent; font-size:.875rem; line-height:1.25; font-weight:500; transition:background .2s,color .2s; }
.format-tabs button[aria-selected='true'] { color:var(--ink); background:#f2f1ea; }
.format-tabs button:hover:not([aria-selected='true']) { background:#ffffff0b; }
.format-panel { min-height:536px; outline-offset:10px; }
.format-panel > p { font-size:1rem; line-height:1.5; letter-spacing:-.02em; color:#d1d1c9; margin-top:13px; }
.format-panel .format-panel__note { color:#bdbeb4; font-size:.875rem; margin-top:16px; }
.format-panel > .button { margin-top:22px; }
.format-panel__title { font-size:1.5rem; font-weight:500; letter-spacing:-.045em; margin-top:28px; }
.format-feature-list { list-style:none; margin:22px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.format-feature-list li { padding:10px 13px; border:1px solid #ffffff24; border-radius:999px; background:#ffffff0d; color:#dcddd5; font-size:.8125rem; line-height:1.3; }
.lesson-preview,.practice-preview,.kira-preview { border-radius:18px; padding:28px; min-height:330px; }
.lesson-preview { background:#d7d7cc; color:#26291f; }
.lesson-preview__top,.lesson-preview__bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:.8125rem; letter-spacing:-.025em; }
.lesson-preview__number { display:block; margin-top:40px; color:#626659; font-size:.8125rem; }
.lesson-preview h3 { font-size:clamp(2.125rem,2.9vw,2.875rem); line-height:1.08; letter-spacing:-.055em; margin-top:16px; }
.lesson-preview__bottom { margin-top:40px; padding-top:15px; border-top:1px solid #b9bcae; color:#626659; }
.practice-preview { background:#eceae1; color:#26291f; }
.practice-preview__eyebrow { display:block; font-size:.75rem; color:#737365; margin-bottom:16px; }
.practice-preview > svg { float:right; }
.practice-preview h3 { font-size:2.25rem; line-height:1.08; letter-spacing:-.06em; margin-top:22px; }
.practice-preview__line { display:flex; gap:18px; margin-top:23px; padding-top:18px; border-top:1px solid #c9cbbf; color:#707262; font-size:.8125rem; }
.kira-preview { background:#e5e6dd; color:var(--ink); }
.kira-preview__header { display:flex; align-items:center; gap:10px; }
.kira-preview__header > span:first-of-type { font-size:1rem; font-weight:500; }
.kira-preview__header > span:last-child { margin-left:auto; font-size:.6875rem; color:#707468; max-width:97px; }
.kira-preview__label { display:block; font-size:.75rem; color:#73766a; margin-top:28px; }
.kira-message { padding:15px 18px; font-size:.9375rem; line-height:1.4; letter-spacing:-.025em; }
.kira-message--user { margin:15px 0 12px 36px; background:#f5f5f0; border-radius:14px 14px 4px 14px; }
.kira-message--assistant { margin-right:23px; border-radius:14px 14px 14px 4px; background:#ced2c2; }
.format-footer { grid-column:1/-1; border-top:1px solid #ffffff26; padding-block:28px; display:flex; justify-content:space-between; gap:20px; color:#d1d2c9; font-size:.8125rem; }
.format-footer span { display:flex; align-items:center; gap:9px; }

.statement-section { position:relative; margin:12px 12px 0; min-height:800px; height:85svh; max-height:1050px; color:#fff; overflow:hidden; border-radius:var(--radius); background:#163028; }
.statement-section .photo img { object-position:50% 42%; }
.statement-section__shade { position:absolute; inset:0; background:linear-gradient(180deg,#102018c7 0%,#102018b0 58%,#1020188c 100%); }
.statement-section__content { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; text-align:center; padding:95px 24px 90px; }
.statement-section h2 { font-size:clamp(4rem,7.6vw,8.75rem); line-height:1.03; margin-top:34px; }
.statement-section__content > p { font-size:1.0625rem; line-height:1.4; letter-spacing:-.035em; margin-top:27px; }
.statement-section__content > .button { margin-top:29px; }
.statement-section__caption { position:absolute; bottom:26px; left:50%; transform:translateX(-50%); font-size:.75rem; white-space:nowrap; color:#ffffffcc; }

.join { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:11%; padding-block:147px 134px; }
.join__intro > .eyebrow { margin-bottom:31px; }
.join__intro h2 { font-size:clamp(4.25rem,7vw,8.5rem); }
.join__intro > p { margin-top:32px; font-size:1.1875rem; line-height:1.4; color:var(--muted); letter-spacing:-.035em; }
.enrollment-card { background:#f5f5f5; border-radius:var(--radius); padding:32px; }
.enrollment-card__top { display:flex; justify-content:space-between; gap:24px; font-size:.8125rem; color:#6b6b6b; }
.enrollment-card h3 { font-size:clamp(2.625rem,4.7vw,5.125rem); line-height:.99; letter-spacing:-.065em; margin-top:35px; }
.enrollment-card h3 em { display:inline-block; line-height:1.18; }
.enrollment-card__list { margin:36px 0 30px; padding:0; list-style:none; display:flex; flex-direction:column; gap:13px; }
.enrollment-card__list li { display:flex; align-items:start; gap:10px; font-size:.9375rem; line-height:1.35; letter-spacing:-.025em; }
.enrollment-card__list svg { margin-top:1px; }
.enrollment-card__price { margin-bottom:23px; }
.enrollment-card__price > span { font-size:2.5rem; line-height:1.1; letter-spacing:-.07em; }
.enrollment-card__price > p { font-size:.875rem; color:#666; margin-top:10px; }
.enrollment-card__cta { width:100%; min-height:54px; }
.enrollment-card__note { color:#727272; margin-top:14px; font-size:.8125rem; line-height:1.4; letter-spacing:-.015em; }

.faq { display:grid; grid-template-columns:.9fr 1.1fr; gap:10%; padding-block:70px 130px; border-top:1px solid var(--rule); margin-inline:var(--inset); padding-inline:0; }
.faq__intro > .eyebrow { margin-bottom:28px; }
.faq__intro h2 { font-size:clamp(3.5rem,5vw,6.5rem); }
.faq__intro p { margin-top:28px; font-size:1rem; line-height:1.5; letter-spacing:-.025em; color:var(--muted); }
.faq__intro a { color:var(--ink); text-decoration:underline; text-decoration-color:#a2a2a2; text-underline-offset:4px; }
.faq__list { display:flex; flex-direction:column; gap:10px; }
.faq-item { padding:0 22px; background:var(--card); border-radius:15px; }
.faq-item summary { display:flex; align-items:center; justify-content:space-between; gap:23px; min-height:84px; padding-block:19px; font-size:1rem; line-height:1.35; letter-spacing:-.035em; font-weight:500; }
.faq-item > div { padding:0 0 23px; }
.faq-item > div p { font-size:.9375rem; line-height:1.5; letter-spacing:-.015em; color:#555; }

.footer { background:#151a18; color:#f1f0e9; border-radius:32px 32px 0 0; padding-top:0; overflow:hidden; }
.footer__head { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:32px; border-bottom:1px solid #ffffff1c; padding-block:29px; font-size:.75rem; color:#b5bbb5; }
.footer__head > a:last-child { justify-self:end; }
.footer__brand { color:#fff; font-family:Play,Onest,sans-serif; font-size:.8125rem; font-weight:700; letter-spacing:.14em; line-height:1; text-transform:uppercase; }
.footer__legal { display:grid; grid-template-columns:1.45fr 1fr .65fr; gap:40px; padding-block:42px; color:#9da39e; font-size:.75rem; line-height:1.55; }
.footer__legal p { margin-top:7px; }
.footer__legal-label { display:block; color:#7f8781; margin-bottom:10px; letter-spacing:.08em; text-transform:uppercase; }
.footer__legal-owner { color:#eef0ea; font-size:.875rem; font-weight:500; }
.footer__legal-links,.footer__legal-contacts { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.footer__legal a { color:#cdd1cc; text-decoration:underline; text-decoration-color:#59605b; text-underline-offset:3px; }
.footer__bottom { display:flex; justify-content:space-between; align-items:center; gap:24px; border-top:1px solid #ffffff1c; padding-block:22px 36px; color:#777f79; font-size:.6875rem; }
.footer__bottom a { color:#aeb4af; }
.reveal.will-reveal { opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease),transform .8s var(--ease); }
.reveal.will-reveal.is-visible { opacity:1; transform:none; }

.text-button { background:none; padding:12px; font-size:.875rem; min-height:44px; text-decoration:underline; text-underline-offset:4px; }

.payment-modal { position:fixed; z-index:120; inset:0; display:grid; place-items:center; padding:24px; }
.payment-modal[hidden] { display:none; }
.payment-modal__backdrop { position:absolute; inset:0; width:100%; height:100%; background:#101710bd; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.payment-modal__card { position:relative; z-index:1; width:min(720px,100%); max-height:calc(100dvh - 48px); overflow:auto; overscroll-behavior:contain; border-radius:24px; background:var(--paper); padding:42px; box-shadow:0 28px 90px #0007; }
.payment-modal__close { position:absolute; top:14px; right:14px; display:grid; place-items:center; width:44px; height:44px; border-radius:10px; background:#dadada; }
.payment-modal__close:hover { background:#cecece; }
.payment-modal__card h2 { max-width:570px; margin-top:24px; font-size:clamp(2.75rem,6vw,5.25rem); }
.payment-modal__lead { max-width:550px; margin-top:22px; color:var(--muted); font-size:1rem; line-height:1.5; }
.payment-mount { min-height:170px; margin-top:28px; padding:18px; border-radius:16px; background:#f5f5f2; }
.payment-mount iframe { display:block; width:100% !important; max-width:100% !important; border:0; }
.payment-mount__error { padding:24px; text-align:center; color:#555; line-height:1.5; }
.payment-modal__help { margin-top:15px; color:#707070; font-size:.8125rem; line-height:1.4; text-align:center; }
.payment-modal__help a { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }

@media(max-width:1100px) {
  :root { --inset:38px; }
  .header { gap:23px; } .nav-desktop { gap:19px; }
  .program { gap:48px; grid-template-columns:.85fr 1.15fr; }
  .program__intro h2 { font-size:3.25rem; } .module-card { padding-inline:25px; }
  .format-section { gap:46px; } .format-heading h2 { font-size:3.75rem; }
  .format-heading > p { font-size:1.0625rem; }
  .lesson-preview,.practice-preview,.kira-preview { padding:24px; }
  .join { gap:8%; } .faq { gap:7%; }
}
@media(max-width:900px) {
  .header { min-height:66px; top:20px; padding:11px 12px 11px 19px; width:206px; justify-content:space-between; gap:0; }
  .nav-desktop,.header__join { display:none; } .menu-toggle { display:inline-flex; }
  .header--open { width:min(374px,calc(100% - 32px)); flex-wrap:wrap; align-items:center; }
  .mobile-menu { display:flex; flex-direction:column; width:100%; padding:25px 8px 9px; }
  .mobile-menu__label { font-size:.8125rem; color:#777; margin-bottom:12px; }
  .mobile-menu > a,.mobile-menu > button { display:flex; width:100%; align-items:center; gap:18px; padding-block:16px; font-size:1.75rem; line-height:1.1; letter-spacing:-.05em; border-bottom:1px solid #e8e8e8; background:transparent; text-align:left; }
  .mobile-menu__number { font-size:.8125rem; color:#888; }
  .mobile-menu > .mobile-menu__cta { font-size:1rem; margin-top:22px; margin-bottom:5px; border:0; justify-content:center; border-radius:8px; background:var(--ink); color:#fff; }
  .hero__meta { top:120px; }
  .program { grid-template-columns:1fr; gap:48px; } .program__intro { position:static; padding:0; }
  .program__intro h2 { font-size:clamp(3.5rem,7.5vw,5rem); }
  .program__intro h2 br:nth-child(2) { display:none; } .program__index { display:none; }
  .program__intro > p { max-width:340px; }
  .program__modules { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
  .module-card h3 { font-size:2.125rem; } .module-card__subtitle { font-size:1.1875rem; } .module-card__text { min-height:120px; }
  .format-section { grid-template-columns:1fr 1fr; gap:40px 32px; padding-top:48px; }
  .format-heading h2 { font-size:3.25rem; } .format-panel { min-height:560px; }
  .format-tabs button { padding-inline:8px; } .lesson-preview,.practice-preview,.kira-preview { padding:21px; }
  .lesson-preview h3 { font-size:2rem; } .kira-message { font-size:.875rem; padding:12px; }
  .kira-preview__header > span:last-child { display:none; }
  .format-footer { flex-wrap:wrap; gap:14px 24px; }
}

/* Mobile has deliberate line breaks, its own crops, rhythm, and safe-area CTA. */
@media(max-width:767px) {
  :root { --inset:24px; --radius:20px; --display:clamp(3.25rem,11.2vw,5.5rem); }
  html { scroll-padding-top:102px; scrollbar-width:none; }
  html::-webkit-scrollbar { display:none; }
  .header { top:max(18px,env(safe-area-inset-top)); min-height:64px; width:194px; border-radius:14px; }
  .header--open { width:calc(100% - 32px); max-width:374px; }
  .brand { font-size:.6875rem; letter-spacing:.1em; }
  .hero { height:100svh; min-height:730px; max-height:980px; }
  .hero__photo img { object-position:50% 40%; }
  .hero__shade { background:linear-gradient(180deg,#00000014 0%,#00000000 27%,#00000036 51%,#00000070 100%); }
  .hero__meta { top:108px; inset-inline:20px; justify-content:center; font-size:.75rem; }
  .hero__meta > span:first-child { display:none; }
  .hero__content { top:auto; bottom:235px; width:calc(100% - 36px); }
  .hero h1 { font-size:clamp(4.625rem,19.7vw,8rem); letter-spacing:-.075em; line-height:.99; }
  .hero h1 em { line-height:1.1; margin-top:0; }
  .hero__description { max-width:320px; margin:22px auto 0; font-size:.9375rem; line-height:1.4; letter-spacing:-.035em; text-wrap:pretty; }
  .desktop-break { display:none; } .mobile-break { display:initial; }
  .hero__bottom { inset-inline:22px; bottom:76px; }
  .hero__cta { flex-direction:column; gap:15px; padding:15px 18px 17px; width:100%; max-width:340px; border-radius:13px; text-align:center; }
  .hero__cta p { font-size:.875rem; line-height:1.3; }
  .hero__cta .button { min-height:46px; padding:13px 18px; font-size:.875rem; }
  .hero__scroll { bottom:26px; }
  .main-surface { margin-top:-25px; border-radius:28px 28px 0 0; }
  .intro { padding-top:68px; } .intro__copy > .eyebrow { margin-bottom:29px; }
  .intro h2 { font-size:clamp(1.875rem,6.9vw,3rem); line-height:1.16; letter-spacing:-.05em; }
  .intro h2 br { display:none; }
  .intro__lower { grid-template-columns:1fr; gap:25px; margin-top:25px; }
  .intro__lower p { font-size:1.125rem; line-height:1.35; max-width:330px; }
  .intro__lower p br { display:none; }
  .intro__statement { font-size:1.4375rem; line-height:1.6; margin-top:31px; }
  .recognition-photo { margin-top:39px; margin-inline:-12px; height:510px; border-radius:18px; }
  .recognition-photo .photo img { object-position:50% 36%; }
  .recognition-photo figcaption { left:18px; bottom:55px; width:calc(100% - 36px); }
  .recognition-photo figcaption > .eyebrow { font-size:.75rem; margin-bottom:14px; }
  .recognition-photo__phrases { gap:8px; }
  .recognition-photo__phrases p { font-size:.9375rem; line-height:1.3; padding:14px; letter-spacing:-.035em; border-radius:9px; }
  .photo-caption { right:18px; bottom:22px; font-size:.75rem; }
  .approach { padding-block:76px 77px; }
  .approach__heading p { font-size:1.125rem; margin-bottom:28px; line-height:1.3; }
  .approach__heading h2 { font-size:clamp(3.125rem,11.7vw,5.5rem); line-height:1.07; }
  .approach__grid { margin-top:33px; grid-template-columns:1fr; gap:10px; }
  .approach-card { min-height:218px; padding:25px 24px; border-radius:17px; }
  .approach-card > svg { width:30px; height:30px; }
  .approach-card h3 { font-size:1.375rem; margin-top:26px; }
  .approach-card p { font-size:1rem; line-height:1.4; margin-top:10px; max-width:390px; }
  .program { padding-block:24px 74px; gap:35px; }
  .program__intro > .eyebrow { margin-bottom:25px; }
  .program__intro h2 { font-size:clamp(2.625rem,10.1vw,5rem); line-height:1.07; }
  .program__intro h2 br:nth-child(2) { display:initial; }
  .program__intro > p { margin-top:25px; font-size:1.0625rem; } .program__intro > .button { margin-top:24px; }
  .program__modules { display:flex; gap:12px; }
  .module-card { padding:24px 23px 0; border-radius:19px; }
  .module-card__number { font-size:3.75rem; }
  .module-card__top > svg { width:27px; height:27px; margin-top:5px; }
  .module-card__body { padding-block:29px 21px; }
  .module-card__body > .eyebrow { margin-bottom:17px; font-size:.8125rem; }
  .module-card h3 { font-size:clamp(1.875rem,7.7vw,2.75rem); line-height:1.08; }
  .module-card__subtitle { font-size:1.1875rem; line-height:1.3; margin-top:13px; }
  .module-card__text { font-size:1rem; line-height:1.45; margin-top:20px; min-height:0; }
  .module-details > summary { font-size:.875rem; min-height:61px; }
  .module-details__content ul { font-size:.9375rem; line-height:1.5; } .module-practice { padding:14px 15px; }
  .format-section { grid-template-columns:1fr; gap:34px; margin-inline:12px; padding:37px 23px 0; border-radius:20px; }
  .format-section::before { background-image:url('./assets/images/format-mobile.webp?v=4'); background-position:center; filter:brightness(1.3) saturate(1.08); }
  .format-section::after { background:linear-gradient(180deg,#0e171152 0%,#0e17112e 50%,#0e17113d 100%); }
  .format-heading > .eyebrow { font-size:.8125rem; }
  .format-heading h2 { font-size:clamp(2.5625rem,9.1vw,4.75rem); line-height:1.12; margin-top:27px; }
  .format-heading > p { font-size:1rem; line-height:1.45; margin-top:25px; } .format-heading > p br { display:none; }
  .format-tabs { margin-bottom:16px; } .format-tabs button { font-size:.8125rem; min-height:44px; padding-inline:5px; }
  .format-panel { min-height:0; padding-bottom:3px; }
  .lesson-preview,.practice-preview,.kira-preview { padding:23px 21px; min-height:312px; border-radius:16px; }
  .lesson-preview h3 { font-size:clamp(1.875rem,7.4vw,2.75rem); line-height:1.12; }
  .lesson-preview__number { margin-top:30px; }
  .lesson-preview__bottom { margin-top:34px; gap:15px; font-size:.75rem; }
  .format-panel__title { font-size:1.375rem; margin-top:23px; }
  .format-panel > p { font-size:1rem; line-height:1.45; }
  .format-panel .format-panel__note { font-size:.8125rem; line-height:1.45; }
  .practice-preview h3 { font-size:2.1875rem; }
  .kira-preview__header > span:last-child { display:inline; font-size:.625rem; }
  .kira-message { font-size:.9375rem; padding:13px 15px; }
  .kira-message--user { margin-left:22px; } .kira-message--assistant { margin-right:15px; }
  .format-footer { padding-block:24px 28px; gap:13px; flex-direction:column; font-size:.8125rem; }
  .statement-section { min-height:710px; height:88svh; max-height:860px; border-radius:20px; }
  .statement-section__content { padding:72px 22px 80px; }
  .statement-section h2 { font-size:clamp(2.875rem,11.1vw,5.375rem); line-height:1.08; margin-top:35px; }
  .statement-section__content > p { font-size:1rem; line-height:1.45; margin-top:32px; }
  .statement-section__content > .button { margin-top:34px; }
  .statement-section__caption { font-size:.6875rem; bottom:25px; }
  .join { grid-template-columns:1fr; padding-block:82px 76px; gap:36px; }
  .join__intro > .eyebrow { margin-bottom:27px; } .join__intro h2 { font-size:clamp(3.75rem,14.8vw,6rem); }
  .join__intro > p { font-size:1.0625rem; line-height:1.4; margin-top:27px; }
  .enrollment-card { padding:25px 24px; border-radius:19px; }
  .enrollment-card__top { font-size:.75rem; gap:16px; }
  .enrollment-card h3 { font-size:clamp(2.75rem,11.8vw,4.875rem); margin-top:31px; }
  .enrollment-card__list { margin-top:27px; gap:13px; } .enrollment-card__list li { font-size:.9375rem; line-height:1.4; }
  .enrollment-card__cta { font-size:.875rem; padding-inline:14px; }
  .enrollment-card__note { font-size:.75rem; line-height:1.45; }
  .faq { grid-template-columns:1fr; gap:33px; padding-block:47px 77px; }
  .faq__intro h2 { font-size:clamp(2.8125rem,10.8vw,4.75rem); }
  .faq__intro p { font-size:1rem; margin-top:23px; }
  .faq-item { padding-inline:18px; border-radius:15px; }
  .faq-item summary { font-size:.9375rem; min-height:80px; gap:17px; padding-block:20px; }
  .faq-item .details-icon { width:30px; height:30px; flex-basis:30px; }
  .faq-item > div p { font-size:.9375rem; line-height:1.5; }
  .footer { border-radius:24px 24px 0 0; }
  .footer__head { grid-template-columns:1fr auto; gap:12px 20px; padding-block:23px; }
  .footer__head > span { grid-column:1/-1; grid-row:2; }
  .footer__head > a:last-child { grid-column:2; grid-row:1; }
  .footer__brand { font-size:.6875rem; }
  .footer__legal { grid-template-columns:1fr; gap:25px; padding-block:32px; font-size:.6875rem; }
  .footer__bottom { flex-wrap:wrap; align-items:flex-start; gap:7px 20px; padding-block:20px 32px; }
  .footer__bottom > span { flex:1 0 100%; }
  .payment-modal { padding:8px; }
  .payment-modal__card { width:100%; max-height:calc(100dvh - 16px); border-radius:20px; padding:34px 18px 22px; }
  .payment-modal__close { top:10px; right:10px; }
  .payment-modal__card h2 { font-size:clamp(2.5rem,12vw,4rem); margin-top:24px; }
  .payment-modal__lead { font-size:.9375rem; margin-top:18px; }
  .payment-mount { margin-top:22px; padding:10px; border-radius:13px; }
}
@media(max-width:359px) {
  :root { --inset:20px; } .hero { min-height:690px; } .hero__content { bottom:216px; }
  .hero h1 { font-size:4.4375rem; } .hero__description { font-size:.875rem; max-width:266px; }
  .hero__cta { gap:12px; padding-inline:15px; } .intro h2 { font-size:1.875rem; }
  .recognition-photo { margin-inline:-8px; height:480px; } .recognition-photo__phrases p { font-size:.8125rem; }
  .module-card { padding-inline:20px; } .module-card h3 { font-size:1.875rem; }
  .format-section { padding-inline:19px; } .format-heading h2 { font-size:2.25rem; }
  .format-panel__title { font-size:1.25rem; } .lesson-preview,.practice-preview,.kira-preview { padding-inline:17px; }
  .kira-message { font-size:.875rem; } .enrollment-card { padding-inline:21px; }
  .faq-item { padding-inline:16px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
  .reveal.will-reveal { opacity:1; transform:none; }
}
@media(min-width:768px) and (max-height:760px) { .program__intro { position:static; } }
@media(prefers-contrast:more) {
  :root { --muted:#3a3a3a; }
  .module-card__text,.module-card__subtitle,.faq-item > div p { color:#303030; }
  .hero__shade { background:#0007; }
}

/* Native HTML states, shared by menu, tabs, and practice. */
[hidden] { display:none!important; }
.menu-toggle__icon { display:flex; align-items:center; justify-content:center; }
