
/* App palette: white and gray surfaces, blue controls, yellow accents. */
:root { --ink:#192535; --muted:#596675; --brand:#39679e; --brand-hover:#2d5483; --accent:#ffd901; --accent-hover:#edca00; --paper:#fafafa; --line:#dce1e7; --navy:#24466f; --blue-soft:#eef3f9; --accent-soft:#fff9d9; --border-strong:#b5c2d1; --radius:22px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; color:var(--ink); background:#fff; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; font-size:17px; line-height:1.65; -webkit-text-size-adjust:100%; }
h1,h2,h3,p,figure,blockquote { margin:0; }
h1,h2,h3 { line-height:1.15; }
img { display:block; max-width:100%; height:auto; }
a { color:var(--brand); text-underline-offset:4px; }
a:hover { color:var(--brand-hover); }
button,input { font:inherit; }
button,a,input,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--brand); outline-offset:5px; }
button { cursor:pointer; }
button:disabled { cursor:default; opacity:.45; }
[hidden] { display:none!important; }
.wrap { width:min(1120px,calc(100% - 64px)); margin-inline:auto; }
.section { padding-block:88px; }
.eyebrow { color:var(--brand); font-size:14px; font-weight:750; letter-spacing:.13em; text-transform:uppercase; margin-bottom:18px; }
.section-title { font-size:clamp(30px,3.5vw,44px); letter-spacing:-1.4px; max-width:760px; }
.section-intro { color:var(--muted); max-width:700px; margin-top:18px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:13px 23px; min-height:48px; border:1px solid var(--brand); border-radius:8px; color:white; background:var(--brand); text-decoration:none; font-size:16px; font-weight:700; line-height:1.3; transition:background .15s; }
.button:hover { background:var(--brand-hover); color:white; border-color:var(--brand-hover); }
.button-secondary { color:var(--ink); background:white; border-color:var(--border-strong); }
.button-secondary:hover { color:var(--ink); background:var(--paper); border-color:var(--muted); }
.text-link { font-weight:650; font-size:16px; }
.skip-link { position:fixed; top:-100px; left:16px; background:white; padding:12px; z-index:100; }
.skip-link:focus { top:8px; }
.site-header { border-bottom:1px solid var(--line); background:rgba(255,255,255,.97); position:sticky; top:0; z-index:20; }
.header-inner { min-height:82px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.brand { display:flex; gap:12px; align-items:center; color:var(--ink); text-decoration:none; font-size:15px; font-weight:750; line-height:1.25; }
.brand img { width:38px; height:38px; }
.brand small { display:block; font-size:14px; font-weight:500; color:var(--muted); margin-top:4px; }
.site-nav { display:flex; align-items:center; gap:26px; flex-shrink:0; }
.site-nav a { color:var(--ink); font-size:16px; text-decoration:none; font-weight:600; }
.site-nav .button { color:white; padding:10px 18px; min-height:42px; white-space:nowrap; }
.hero { background:var(--paper); padding:76px 0 0; }
.hero-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:28px; padding-bottom:58px; }
h1 { font-size:clamp(38px,4.7vw,60px); letter-spacing:-2.5px; font-weight:750; max-width:560px; }
h1 em { font-style:normal; color:var(--brand); }
.hero-copy > p:not(.eyebrow) { max-width:510px; color:var(--muted); margin-top:23px; font-size:18px; line-height:1.65; }
.hero-copy .offer { color:var(--ink)!important; font-size:16px!important; margin-top:15px!important; }
.store-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.store-link { display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-width:178px; padding:12px 20px; }
.store-kicker { font-size:14px; font-weight:500; letter-spacing:.02em; }
.store-link > span:last-child { display:flex; width:100%; justify-content:space-between; gap:22px; font-size:16px; }
.hero-secondary { display:flex; flex-wrap:wrap; gap:22px; margin-top:22px; }
.hero-art { padding:8px 0 0 10px; }
.hero-art img { mix-blend-mode:multiply; width:100%; }
.hero-art figcaption { font-size:14px; color:var(--muted); text-align:center; margin-top:12px; }
.proof-strip { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); padding:26px 0 30px; }
.proof-strip div { padding-left:30px; border-left:1px solid var(--line); }
.proof-strip div:first-child { padding-left:0; border:0; }
.proof-strip strong { display:block; font-size:27px; letter-spacing:-.8px; line-height:1.3; }
.proof-strip span { color:var(--muted); font-size:16px; }
.method { display:grid; grid-template-columns:repeat(3,1fr); gap:38px; margin-top:42px; }
.step-number { display:block; font-size:14px; color:var(--brand); font-weight:750; margin-bottom:12px; }
.method h3 { font-size:22px; letter-spacing:-.4px; margin-bottom:13px; }
.method p { color:var(--muted); font-size:16px; }
.learning-tools { display:grid; grid-template-columns:1fr 1fr; gap:40px; padding:28px 32px; margin-top:36px; background:var(--paper); border-radius:12px; }
.learning-tools h3 { font-size:21px; letter-spacing:-.4px; margin-bottom:12px; }
.learning-tools p { color:var(--muted); font-size:16px; }
.hero-features { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:19px; font-size:16px; font-weight:650; }
.hero-features > span { display:inline-flex; align-items:center; gap:8px; }
.demo-section { background:var(--navy); color:white; }
.demo-grid { display:grid; grid-template-columns:1fr 1fr; gap:68px; align-items:center; }
.demo-section .eyebrow { color:var(--accent); }
.demo-section .section-intro { color:#e8eef6; }
.demo-section .text-link { color:var(--accent); display:inline-block; margin-top:24px; }
.lesson { background:white; color:var(--ink); border-radius:var(--radius); padding:32px; }
.lesson-label { font-size:14px; font-weight:750; letter-spacing:.1em; color:var(--muted); text-transform:uppercase; }
.french-phrase { font-size:31px; line-height:1.4; letter-spacing:-.6px; margin-top:18px; }
.french-phrase strong { color:var(--brand); }
.translation { color:var(--muted); font-size:16px; margin:4px 0 16px; }
audio { width:100%; height:40px; margin-bottom:22px; }
.exercise { border:0; border-top:1px solid var(--line); margin:0; padding:20px 0 0; min-width:0; }
.exercise legend { float:left; width:100%; font-size:14px; font-weight:650; margin-bottom:12px; }
.answers { clear:both; display:flex; gap:10px; }
.answer { border:1px solid var(--border-strong); background:white; color:var(--ink); padding:8px 20px; border-radius:7px; min-width:100px; min-height:46px; font-size:21px; }
.answer:hover { background:var(--paper); }
.answer[aria-pressed="true"] { background:var(--blue-soft); border-color:#38764a; }
.answer[data-result="incorrect"] { border-color:var(--brand); background:#fff2ef; }
.answer-feedback { margin-top:16px; font-size:14px; line-height:1.6; min-height:68px; }
.answer-feedback:empty { display:none; }
.lesson-footnote { color:#e8eef6; font-size:14px; margin-top:14px; }
.topics > .become-better__description { margin-top:18px; max-width:740px; color:var(--muted); }
.topics__list { margin-top:32px; border-top:1px solid var(--line); }
.topics__group { border-bottom:1px solid var(--line); }
.topics__summary { display:grid; grid-template-columns:78px 1fr 24px; gap:18px; padding:19px 0; cursor:pointer; list-style:none; align-items:start; }
.topics__summary::-webkit-details-marker { display:none; }
.topics__summary::after { content:'+'; color:var(--brand); font-size:25px; line-height:1; }
.topics__group[open] > .topics__summary::after { content:'−'; }
.topics__range { font-size:14px; color:var(--muted); padding-top:3px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.topics__range-label { display:none; }
.topics__title { display:block; font-size:18px; font-weight:700; }
.topics__desc { display:block; font-size:16px; color:var(--muted); margin-top:4px; }
.topics__items { columns:2; column-gap:48px; margin:0 0 24px; padding-left:118px; font-size:16px; line-height:1.5; }
.topics__items li { break-inside:avoid; padding:5px 0; }
.topics__items li::marker { color:var(--muted); }
.book-section { background:var(--paper); }
.book-grid { display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; gap:72px; }
.book-image { width:300px; margin:auto; mix-blend-mode:multiply; }
.book-copy .section-intro { margin-bottom:24px; }
.book-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.book-offer { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); font-size:16px; color:var(--muted); }
.book-offer strong { color:var(--ink); }
.book-preview { margin-top:48px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:20px 0; }
.book-preview > summary { font-size:17px; font-weight:700; cursor:pointer; }
.preview-intro { margin:16px 0; font-size:16px; color:var(--muted); }
.book-gallery { display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; padding:0 0 12px; overscroll-behavior-x:contain; }
.book-page { flex:0 0 100%; min-width:0; scroll-snap-align:start; display:flex; flex-direction:column; align-items:center; justify-content:space-between; }
.book-page img { max-height:480px; width:auto; margin:auto; object-fit:contain; }
.book-page figcaption { text-align:center; font-size:14px; color:var(--muted); margin-top:12px; }
.gallery-controls { display:flex; justify-content:center; align-items:center; gap:20px; margin-top:14px; }
.gallery-controls button { background:white; border:1px solid var(--border-strong); border-radius:7px; min-height:44px; padding:7px 16px; color:var(--ink); white-space:nowrap; }
.gallery-count { font-size:14px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.author-grid { display:grid; grid-template-columns:180px 1fr; gap:40px; max-width:900px; margin:auto; }
.author-photo { border-radius:50%; width:140px; height:140px; object-fit:cover; }
.author-grid h2 { font-size:30px; letter-spacing:-.7px; margin-bottom:16px; }
.author-grid p { color:var(--muted); font-size:16px; margin-top:12px; }
.author-grid details { margin-top:16px; font-size:16px; }
.author-grid summary { cursor:pointer; color:var(--brand); font-weight:650; }
.author-grid li { margin-block:8px; }
.faq { border-top:1px solid var(--line); }
.faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }
.faq-list details { border-bottom:1px solid var(--line); padding:20px 0; }
.faq-list details:first-child { padding-top:0; }
.faq-list summary { font-size:17px; font-weight:650; cursor:pointer; }
.faq-list p { color:var(--muted); font-size:16px; margin-top:13px; }
.download-panel { background:var(--navy); color:white; border-radius:20px; padding:54px 56px; display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:center; }
.download-panel .eyebrow { color:var(--accent); }
.download-panel .section-title { font-size:36px; letter-spacing:-1px; }
.download-panel p:not(.eyebrow) { color:#e8eef6; margin-top:18px; font-size:16px; }
.download-panel .store-links { margin-top:0; }
.download-panel .button-secondary { border-color:white; }
.newsletter { padding:64px 0; display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.newsletter h2 { font-size:24px; letter-spacing:-.5px; }
.newsletter p { color:var(--muted); font-size:16px; margin-top:10px; }
.email-row { display:flex; gap:10px; margin-top:8px; }
.email-label { font-size:16px; font-weight:650; }
.email-row input { min-width:0; flex:1; border:1px solid var(--border-strong); padding:12px; border-radius:7px; background:white; color:var(--ink); }
.form-status { min-height:23px; }
.site-footer { border-top:1px solid var(--line); padding:28px 0; }
.footer-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; font-size:14px; color:var(--muted); }
.footer-links { display:flex; flex-wrap:wrap; gap:18px; }
.footer-links a { color:var(--muted); }
.mobile-cta { display:none; }
@media (max-width:950px) {
 .hero { padding-top:52px; } .hero-grid { gap:10px; } h1 { font-size:46px; letter-spacing:-1.8px; }
 .store-link { min-width:160px; padding-inline:16px; } .demo-grid { gap:32px; }
 .book-grid { gap:40px; } .download-panel { grid-template-columns:1fr; gap:28px; }
 .site-nav { gap:18px; } .nav-extra { display:none; }
}
@media (max-width:720px) {
 html { scroll-padding-top:90px; } .wrap { width:calc(100% - 40px); } .section { padding-block:56px; }
 .header-inner { min-height:72px; gap:12px; } .brand { font-size:14px; gap:9px; } .brand small { font-size:14px; }
 .brand img { width:32px; height:32px; } .site-nav .nav-link { display:none; } .site-nav .button { font-size:16px; padding:10px 13px; }
 .hero { padding-top:38px; } .hero-grid { grid-template-columns:1fr; gap:32px; padding-bottom:32px; }
 h1 { font-size:45px; letter-spacing:-1.9px; max-width:540px; } .hero-copy > p:not(.eyebrow) { font-size:17px; margin-top:20px; }
 .hero-art { padding:0; max-width:450px; margin:auto; } .hero-art figcaption { font-size:14px; margin-top:4px; }
 .store-links { margin-top:23px; } .hero-secondary { margin-top:18px; } .proof-strip { grid-template-columns:repeat(2,1fr); gap:22px 20px; padding-block:24px; }
 .hero .store-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .hero .store-link { min-width:0; padding:11px 13px; } .hero .store-link > span:last-child { font-size:14px; gap:10px; }
 .proof-strip div { padding-left:0; border:0; } .proof-strip strong { font-size:24px; }
 .method { grid-template-columns:1fr; gap:28px; margin-top:32px; }
 .step-number { margin-bottom:10px; } .method h3 { font-size:22px; margin-bottom:10px; }
 .learning-tools { grid-template-columns:1fr; gap:26px; padding:25px; margin-top:28px; }
 .demo-grid { grid-template-columns:1fr; gap:28px; } .lesson { padding:24px; } .french-phrase { font-size:28px; }
 .topics__summary { grid-template-columns:1fr 20px; gap:3px 12px; padding-block:17px; }
 .topics__range { grid-column:1; grid-row:1; font-size:14px; } .topics__range-label { display:inline; }
 .topics__heading { grid-column:1; grid-row:2; } .topics__summary::after { grid-column:2; grid-row:1 / span 2; align-self:center; }
 .topics__title { font-size:17px; line-height:1.4; } .topics__desc { line-height:1.5; }
 .topics__items { columns:1; padding-left:30px; margin-bottom:20px; }
 .book-grid { grid-template-columns:1fr; gap:28px; } .book-image { width:210px; } .book-copy { grid-row:1; }
 .book-preview { margin-top:30px; } .author-grid { grid-template-columns:1fr; gap:24px; } .author-photo { width:100px; height:100px; }
 .faq-grid { grid-template-columns:1fr; gap:30px; } .download-panel { padding:34px 24px; border-radius:14px; }
 .download-panel .section-title { font-size:31px; } .newsletter { grid-template-columns:1fr; gap:25px; padding-block:44px; }
 .download-panel .store-link { flex:1; min-width:150px; } .email-row { flex-wrap:wrap; } .email-row input { flex-basis:190px; }
 .site-footer { padding-bottom:100px; } .mobile-cta.is-visible { display:flex; align-items:center; justify-content:space-between; gap:16px; position:fixed; bottom:0; left:0; right:0; padding:12px 20px calc(12px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--line); z-index:15; }
 .mobile-cta p { line-height:1.4; font-size:14px; } .mobile-cta strong { display:block; } .mobile-cta .button { font-size:16px; white-space:nowrap; }
}
@media (max-width:380px) {
 .wrap { width:calc(100% - 32px); } h1 { font-size:39px; } .brand small { display:none; } .brand { max-width:180px; }
 .hero .store-links { grid-template-columns:1fr; }
 .lesson { padding:20px; } .french-phrase { font-size:25px; } .mobile-cta { padding-inline:16px; }
 .gallery-controls { gap:10px; } .gallery-controls button { font-size:14px; padding-inline:12px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }

/* Modern presentation and progressively enhanced course exploration. */

body { background:#fff; letter-spacing:-.015em; }
h1,h2,h3,h4 { text-wrap:balance; }
h4 { margin:0; }
.wrap { width:min(1200px,calc(100% - 80px)); }
.section { padding-block:104px; }
.section-title { font-size:clamp(34px,3.8vw,49px); font-weight:700; letter-spacing:-1.9px; }
.eyebrow { letter-spacing:.14em; font-size:14px; }
.button { border-radius:12px; box-shadow:0 4px 12px #19253512; transition:transform .2s,background .2s,box-shadow .2s; }
.button-secondary { box-shadow:none; background:#ffffffb8; }
.text-link { text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:3px; }
.site-header { background:#ffffffe8; backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.header-inner { min-height:78px; }
.brand { letter-spacing:-.3px; }
.brand small { letter-spacing:0; }
.site-nav .button { border-radius:100px; padding-inline:21px;  color:var(--ink);  background:var(--accent);  border-color:var(--accent); }
.site-nav .nav-link { transition:color .2s; }
.site-nav .nav-link:hover { color:var(--brand); }
.hero { position:relative; background:radial-gradient(ellipse at 88% 20%,var(--blue-soft) 0,transparent 48%),radial-gradient(ellipse at 4% 100%,var(--accent-soft) 0,transparent 45%),var(--paper); padding-top:76px; overflow:hidden; }
.hero-grid { grid-template-columns:1.08fr 1fr; gap:64px; align-items:center; padding-bottom:64px; }
.hero-eyebrow { display:inline-flex; align-items:center; gap:9px; border:1px solid var(--line); border-radius:50px; padding:7px 13px; background:#fff; margin-bottom:26px; font-size:14px; }
.hero-eyebrow > span { height:6px; width:6px; border-radius:50%; background:var(--accent);  box-shadow:0 0 0 1px var(--brand); }
h1 { font-size:clamp(48px,5.1vw,73px); letter-spacing:-3.7px; line-height:1.04; max-width:640px; font-weight:750; }
h1 em { display:inline-block; position:relative; color:var(--brand); }
.hero-copy > p:not(.eyebrow) { font-size:18px; max-width:460px; line-height:1.7; margin-top:26px; }
.hero-features { gap:10px 20px; font-size:16px; margin-top:22px; }
.hero-secondary { margin-top:24px; }
.hero-secondary .text-link { font-size:16px; }
.hero-copy .offer { line-height:1.65; font-size:16px!important; max-width:410px!important; }
.hero .store-links { margin-top:30px; }
.store-link { min-width:179px; padding:13px 20px; }
.proof-strip { padding-block:25px 30px; border-color:var(--line); }
.proof-strip strong { font-size:26px; font-weight:700;  color:var(--brand); }
.proof-strip span { font-size:16px; }
.proof-strip div { border-color:var(--line); }
.demo-stage { position:relative; min-width:0; scroll-margin-top:25px; }
.demo-decoration { position:absolute; right:13px; top:-33px; transform:rotate(7deg); font-size:14px; background:var(--brand); color:#e8eef6; padding:10px 24px 22px; border-radius:12px; font-weight:650; letter-spacing:.04em; }
.demo-card { position:relative; background:#fff; border:1px solid var(--line); border-radius:26px; box-shadow:0 25px 65px -25px #19253538,0 2px 6px #19253506; padding:28px; }
.demo-topline { display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--muted); font-size:14px; letter-spacing:.04em; text-transform:uppercase; }
.live-dot { display:flex; align-items:center; gap:7px; color:var(--brand); font-weight:700; }
.live-dot::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px var(--accent-soft); }
.demo-card h2 { font-size:23px; letter-spacing:-.7px; margin:19px 0 22px; font-weight:650; }
.demo-tabs { display:flex; padding:4px; background:var(--paper); border-radius:11px; gap:3px; }
.demo-tabs button { flex:1; min-width:0; color:var(--muted); border:0; background:transparent; border-radius:8px; font-size:16px; font-weight:600; min-height:42px; padding:6px; transition:background .2s,color .2s; }
.demo-tabs button span { font-size:14px; margin-right:6px; opacity:.7; }
.demo-tabs button[aria-selected="true"] { background:white; color:var(--ink); box-shadow:0 2px 5px #19253510; }
.demo-panel { min-height:278px; padding-top:26px; }
.demo-category { font-size:14px; font-weight:650; text-transform:uppercase; letter-spacing:.09em; color:var(--muted); }
.demo-phrase { font-size:31px; line-height:1.3; letter-spacing:-.8px; margin:18px 0 6px; color:var(--ink); }
.demo-phrase strong { color:var(--brand); background:var(--accent-soft); border-radius:6px; padding:0 4px 3px; font-weight:600; }
.demo-translation { font-size:16px; color:var(--muted); }
.pattern-note { margin-top:24px; display:flex; align-items:flex-start; gap:14px; padding:16px; background:var(--paper); border:1px solid var(--line); border-radius:13px; }
.pattern-symbol { color:var(--brand); font-size:24px; line-height:1; }
.pattern-change { font-size:18px; font-weight:600; color:var(--brand); }
.pattern-change span { color:var(--muted); font-weight:400; margin-inline:8px; }
.pattern-explanation { color:var(--muted); font-size:16px; line-height:1.65; margin-top:5px; }
.demo-bottom { display:flex; align-items:center; justify-content:space-between; gap:15px; padding-top:17px; border-top:1px solid var(--line); }
.demo-bottom > span { font-size:14px; color:var(--muted); }
.demo-next { border:0; background:var(--brand); color:white; border-radius:9px; padding:11px 16px; font-size:16px; font-weight:650; min-height:42px; transition:background .2s,transform .2s; }
.demo-next:hover { background:var(--brand-hover); }
.demo-caption { margin-top:18px; text-align:center; color:var(--muted); font-size:16px; }
.demo-caption a { color:var(--brand); margin-left:5px; }
.audio-player { display:flex; align-items:center; gap:20px; margin-top:30px; padding:20px; border-radius:15px; background:var(--blue-soft); }
#demo-play { display:grid; place-items:center; flex-shrink:0; width:52px; height:52px; border:0; border-radius:50%; background:var(--brand); color:white; }
#demo-play:hover { background:var(--brand-hover); }
.sound-wave { height:52px; display:flex; flex:1; align-items:center; justify-content:center; gap:4px; overflow:hidden; }
.sound-wave i { display:block; width:4px; height:var(--bar); max-height:100%; background:var(--brand); border-radius:4px; flex-shrink:0; }
.audio-player.is-playing .sound-wave i { animation:wave .7s ease-in-out var(--delay) infinite alternate; }
.audio-status { font-size:14px; color:var(--muted); margin-top:10px; text-align:center; }
.enhanced .demo-audio { display:none; }
.enhanced .demo-audio.fallback-audio { display:block; margin-top:16px; }
.quiz-translation { font-size:16px; margin-top:17px; color:var(--muted); }
.quiz-phrase { font-size:28px; letter-spacing:-.6px; margin-top:8px; color:var(--ink); }
.quiz-options { display:flex; gap:9px; margin-top:21px; }
.quiz-option { flex:1; min-height:49px; min-width:0; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--brand); font-size:20px; transition:background .18s,transform .18s; }
.quiz-option:hover:not(:disabled) { background:var(--blue-soft); }
.quiz-option[data-result="correct"] { background:#e9f5e4; border-color:#549f58; opacity:1; }
.quiz-option[data-result="incorrect"] { background:#fff0e9; border-color:#c44b37; color:#a33222; }
.quiz-feedback { font-size:16px; margin-top:13px; color:var(--brand); min-height:20px; }
.why-button { background:none; color:var(--brand); padding:0; border:0; font-size:16px; font-weight:650; margin-top:5px; min-height:34px; }
.quiz-explanation { background:var(--paper); border-left:2px solid var(--accent); padding:11px 13px; font-size:16px; line-height:1.6; margin:6px 0 16px; color:var(--muted); }
.demo-complete { padding:24px 0 12px; text-align:center; }
.complete-mark { display:grid; place-items:center; width:60px; height:60px; border-radius:50%; background:var(--accent); color:var(--ink); font-size:29px; margin:0 auto 18px; }
.demo-complete h3 { font-size:28px; margin:16px 0; }
.demo-complete p:not(.demo-category) { font-size:16px; color:var(--muted); margin-bottom:22px; }
.demo-complete .button { font-size:16px; }
.quiet-button { border:0; background:transparent; color:var(--muted); font-size:16px; text-decoration:underline; text-underline-offset:3px; padding:10px; }
.demo-complete .quiet-button { display:block; margin:10px auto 0; }
.js-only { display:none; }
.enhanced .js-only { display:flex; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.method { gap:20px; margin-top:42px; }
.method article { padding:28px; background:var(--paper); border:1px solid var(--line); border-radius:18px; }
.step-number { font-size:14px; margin-bottom:24px; color:var(--brand); letter-spacing:.1em; }
.method h3 { font-size:23px; letter-spacing:-.6px; max-width:250px; }
.method p { font-size:16px; line-height:1.7; }
.app-showcase { display:grid; grid-template-columns:1.1fr 1fr; gap:65px; align-items:center; margin-top:70px; }
.enhanced .topic-explorer { flex-direction:column; margin-top:32px; }
.search-row { display:flex; align-items:center; gap:12px; padding:5px 17px; border:1px solid var(--line); background:white; border-radius:13px; }
.search-row:focus-within { outline:2px solid var(--brand); outline-offset:2px; }
.search-row label { color:var(--muted); display:flex; }
.search-row input { min-width:0; flex:1; border:0; background:transparent; color:var(--ink); padding:12px 0; outline:none; font-size:16px; }
.search-row input::placeholder { color:var(--muted); }
.topic-filter-row { display:flex; flex-wrap:wrap; align-items:center; gap:16px; justify-content:space-between; margin-top:17px; }
.topic-filters { display:flex; flex-wrap:wrap; gap:8px; }
.topic-filters button { border:1px solid var(--line); border-radius:100px; background:white; color:var(--muted); padding:9px 17px; font-size:16px; min-height:40px; transition:background .18s; }
.topic-filters button[aria-pressed="true"] { color:#fff; background:var(--brand); border-color:var(--brand); }
.topic-filters button:hover:not([aria-pressed="true"]) { background:var(--blue-soft); }
#topic-count { font-size:14px; color:var(--muted); }
.topic-empty { padding:25px 0; color:var(--muted); font-size:16px; }
.topics__list { border:0; display:grid; gap:10px; margin-top:25px; }
.topics__group { border:1px solid var(--line); border-radius:13px; background:white; overflow:hidden; transition:border-color .2s; }
.topics__group:hover { border-color:var(--border-strong); }
.topics__group[open] { background:var(--paper); border-color:var(--border-strong); }
.topics__summary { padding:22px 24px; grid-template-columns:72px 1fr 24px; }
.topics__summary::after { width:26px; height:26px; border-radius:50%; background:var(--blue-soft); color:var(--brand); display:grid; place-items:center; font-size:20px; }
.topics__range { color:var(--muted); font-size:14px; }
.topics__title { font-size:17px; font-weight:650; }
.topics__desc { font-size:16px; }
.topics__items { padding-right:30px; padding-left:133px; font-size:16px; }
.book-section { background:var(--paper); border-block:1px solid var(--line); }
.book-offer { border:0; padding:18px; background:var(--blue-soft); border-radius:12px; }
.book-preview { border-color:var(--line); }
.author-photo { border:6px solid var(--paper); width:150px; height:150px; }
.faq-list details { padding:23px 0; }
.faq-list summary { list-style:none; display:flex; justify-content:space-between; gap:24px; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; color:var(--brand); font-size:20px; font-weight:400; }
.faq-list details[open] summary::after { content:'−'; }
.download-panel { border-radius:26px; padding:65px; background:var(--paper);  color:var(--ink);  border:1px solid var(--line);  border-top:4px solid var(--accent); }
.download-panel .eyebrow { color:var(--brand); }
.download-panel .section-title { font-size:40px;  color:var(--brand); }
.download-panel p:not(.eyebrow) { color:var(--muted); }
.download-panel .store-link { box-shadow:none; }
.download-panel .button-secondary { background:transparent; color:#fff; border-color:var(--border-strong); }
.download-panel .button-secondary:hover { background:#ffffff15; }
.newsletter { padding-block:75px; }
.email-row input { border-radius:11px; }
.site-footer { background:var(--paper); }
.mobile-cta.is-visible { background:#fffffff5; backdrop-filter:blur(15px); }
@keyframes wave { from { transform:scaleY(.5); } to { transform:scaleY(1); } }
@keyframes arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:no-preference) { .hero-copy { animation:arrive .6s ease-out both; } .demo-stage { animation:arrive .75s .1s ease-out both; } .demo-panel:not([hidden]) { animation:arrive .25s ease-out; } }
@media (max-width:1100px) {
 .wrap { width:calc(100% - 64px); } .hero-grid { gap:35px; } h1 { font-size:58px; letter-spacing:-2.8px; } .demo-card { padding:23px; } .demo-phrase { font-size:28px; } .hero .store-link { min-width:157px; padding-inline:15px; } .hero .store-link > span:last-child { font-size:14px; gap:13px; } .app-showcase { gap:40px; }
}
@media (max-width:900px) {
 .hero-grid { grid-template-columns:1fr 1fr; gap:25px; } h1 { font-size:49px; letter-spacing:-2.4px; } .hero-copy > p:not(.eyebrow) { font-size:16px; } .hero { padding-top:60px; } .demo-card { padding:20px; } .demo-card h2 { font-size:21px; } .demo-tabs button span { display:none; } .demo-bottom > span { max-width:90px; } .demo-phrase { font-size:25px; } .demo-panel { min-height:300px; } .method article { padding:23px; } .demo-caption { padding-inline:15px; }
}
@media (max-width:720px) {
 .wrap { width:calc(100% - 40px); } .section { padding-block:65px; } .header-inner { min-height:70px; } .site-nav .button { padding-inline:16px; } .brand { font-size:14px; } .brand small { font-size:14px; }
 .hero { padding-top:40px; } .hero-grid { grid-template-columns:1fr; gap:55px; padding-bottom:33px; } .hero-copy { max-width:550px; } h1 { font-size:clamp(45px,9.2vw,63px); letter-spacing:-2.5px; } .hero-eyebrow { margin-bottom:23px; padding:6px 10px; font-size:14px; }
 .hero-copy > p:not(.eyebrow) { font-size:16px; margin-top:21px; } .hero .store-links { margin-top:25px; } .hero .store-link { min-width:0; padding:12px 13px; } .hero .store-link > span:last-child { font-size:14px; gap:9px; }
 .hero-copy .offer { font-size:16px!important; } .hero-features { font-size:16px; gap:8px 16px; margin-top:20px; } .hero-secondary { gap:22px; margin-top:20px; } .hero-secondary .text-link { font-size:16px; }
 .demo-stage { max-width:500px; width:100%; margin:auto; } .demo-card { padding:23px; border-radius:21px; } .demo-card h2 { font-size:24px; } .demo-tabs button span { display:inline; } .demo-phrase { font-size:29px; } .demo-panel { min-height:285px; } .demo-bottom > span { max-width:none; } .demo-caption { font-size:16px; line-height:1.7; }
 .proof-strip { gap:21px; padding-block:24px; } .proof-strip strong { font-size:23px; } .proof-strip span { font-size:16px; } .section-title { font-size:35px; letter-spacing:-1.3px; }
 .method { gap:12px; } .method article { padding:24px; } .step-number { margin-bottom:15px; } .method h3 { max-width:none; } .app-showcase { grid-template-columns:1fr; gap:35px; margin-top:40px; }
 .search-row { padding-inline:13px; gap:9px; } .search-row input { font-size:16px; } .topic-filter-row { gap:14px; } .topic-filters { gap:6px; } .topic-filters button { padding:8px 12px; font-size:16px; } #topic-count { font-size:14px; }
 .topics__summary { grid-template-columns:1fr 25px; padding:18px; } .topics__range { font-size:14px; } .topics__title { font-size:16px; } .topics__desc { font-size:16px; margin-top:5px; } .topics__items { padding-left:45px; padding-right:18px; font-size:16px; }
 .book-grid { gap:35px; } .book-image { width:230px; } .book-offer { padding:16px; font-size:16px; } .author-photo { width:115px; height:115px; } .author-grid h2 { font-size:29px; } .faq-list summary { font-size:16px; }
 .download-panel { padding:36px 25px; border-radius:20px; } .download-panel .section-title { font-size:32px; } .newsletter { padding-block:50px; } .mobile-cta .button { font-size:16px; padding:12px 15px; } .mobile-cta p { font-size:14px; }
}
@media (max-width:380px) {
 .wrap { width:calc(100% - 32px); } h1 { font-size:43px; letter-spacing:-2.2px; } .brand { max-width:175px; font-size:14px; } .hero .store-links { grid-template-columns:1fr; } .demo-card { padding:18px; } .demo-phrase { font-size:25px; } .demo-card h2 { font-size:22px; } .demo-tabs button { font-size:16px; } .demo-tabs button span { display:none; } .demo-bottom > span { font-size:14px; } .demo-next { font-size:16px; padding-inline:12px; } .pattern-note { padding:13px; gap:9px; } .quiz-phrase { font-size:25px; } .sound-wave { gap:3px; } .sound-wave i { width:3px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; scroll-behavior:auto!important; transition:none!important; } }


/* Official store artwork stays unmodified, with platform labels beneath it. */
.store-links, .hero .store-links { display:flex; flex-wrap:wrap; align-items:flex-start; gap:24px; }
.store-badge-link { display:inline-flex; flex-direction:column; align-items:center; gap:16px; color:var(--ink); text-decoration:none; border-radius:4px; min-width:203px; }
.store-badge-link img { height:60px; width:auto; max-width:none; }
.store-device { font-size:16px; line-height:1.5; font-weight:600; color:var(--muted); }
.store-badge-link:hover .store-device { color:var(--brand); text-decoration:underline; text-underline-offset:4px; }
.download-panel .store-device { color:var(--muted); }
.download-panel .store-badge-link:hover .store-device { color:var(--brand); }
.store-trademarks { font-size:14px; color:var(--muted); line-height:1.7; margin-top:18px; max-width:1200px; }
html { scrollbar-gutter:stable; }
html.modal-open { overflow:hidden; }
.site-dialog { position:fixed; inset:0; margin:auto; width:min(560px,calc(100% - 32px)); max-width:none; max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); padding:0; border:1px solid var(--line); border-radius:24px; background:#fff; color:var(--ink); box-shadow:0 30px 100px #1925354d; overflow:auto; overscroll-behavior:contain; }
.site-dialog::backdrop { background:#19253580; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.dialog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px 18px 0 28px; }
.dialog-toolbar > span { font-size:14px; font-weight:650; text-transform:uppercase; letter-spacing:.09em; color:var(--muted); }
.dialog-close { width:44px; height:44px; flex-shrink:0; display:grid; place-items:center; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--brand); font-size:27px; line-height:1; }
.dialog-close:hover { background:var(--blue-soft); }
.lesson-dialog .demo-card { border:0; border-radius:0; box-shadow:none; padding:20px 28px 28px; }
.lesson-dialog .demo-card h2 { font-size:26px; }
.lesson-dialog .demo-panel { min-height:285px; }
.lesson-dialog .demo-tabs button span { display:inline; }
.lesson-dialog .demo-phrase { font-size:31px; }
.lesson-dialog .demo-bottom > span { max-width:none; }
.lesson-placeholder { pointer-events:none; }
.platform-dialog { background:#fff; }
.platform-dialog .dialog-toolbar > span { color:var(--brand); }
.platform-dialog .dialog-close { background:var(--paper); border-color:var(--line); color:var(--brand); }
.platform-dialog .dialog-close:hover { background:var(--blue-soft); }
.platform-content { padding:20px 32px 30px; text-align:center; }
.platform-content h2 { color:var(--brand); font-size:38px; line-height:1.15; letter-spacing:-1.2px; margin:0 auto; }
#platform-description { color:var(--ink); background:var(--accent); border:1px solid var(--line); border-radius:14px; font-size:23px; font-weight:650; line-height:1.4; margin:18px auto 0; padding:16px 18px;  border-color:var(--accent); }
#platform-description strong { font-weight:750; }
.platform-prompt { color:var(--navy); font-size:20px; line-height:1.4; letter-spacing:-.4px; margin:26px 0 0; }
.platform-choices { justify-content:center; gap:28px; margin-top:20px; }
.platform-choices [data-store="ios"] .store-device { color:var(--brand); }
.platform-choices [data-store="android"] .store-device { color:var(--brand); }
.platform-offer { color:var(--muted); font-size:16px; line-height:1.7; margin-top:26px; padding-top:23px; border-top:1px solid var(--line); }
@media (max-width:900px) and (min-width:721px) { .hero .store-links { gap:22px; } }
@media (max-width:720px) { .store-links,.hero .store-links { gap:28px; } }
@media (max-width:440px) {
 .site-dialog { width:calc(100% - 24px); max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); border-radius:20px; }
 .dialog-toolbar { padding:12px 14px 0 20px; }
 .dialog-toolbar > span { font-size:14px; }
 .lesson-dialog .demo-card { padding:18px 20px 22px; }
 .lesson-dialog .demo-card h2 { font-size:24px; }
 .lesson-dialog .demo-phrase { font-size:27px; }
 .lesson-dialog .demo-tabs button span { display:none; }
 .lesson-dialog .demo-bottom > span { font-size:14px; }
 .platform-content { padding:18px 22px 25px; }
 .platform-content h2 { font-size:32px; }
 #platform-description { font-size:21px; padding:14px; }
 .platform-choices { flex-direction:column; align-items:center; gap:28px; }
}

/* Readable supporting text keeps its size on smaller screens. */
.hero-features { column-gap:24px; row-gap:10px; }
.demo-caption { line-height:1.6; }
.demo-caption a { display:inline-block; }
.demo-panel { padding-bottom:24px; }
.demo-bottom { flex-wrap:wrap; }
.demo-next { margin-left:auto; flex-shrink:0; }
.demo-topline { flex-wrap:wrap; }
@media (max-width:900px) and (min-width:721px) {
 .hero-grid { grid-template-columns:1fr; gap:55px; }
 .hero-copy { max-width:620px; }
 .demo-stage { width:100%; max-width:560px; margin-inline:auto; }
}

/* Authentic app screenshots: native scrolling, with an optional larger viewer. */
.app-showcase { display:block; min-width:0; padding-top:56px; border-top:1px solid var(--line); }
.app-tour-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:26px; }
.app-tour-heading h3 { font-size:clamp(28px,3vw,37px); letter-spacing:-1.2px; margin:0; }
.app-tour-heading p:not(.eyebrow) { font-size:16px; color:var(--muted); margin-top:12px; }
.app-tour-controls { gap:10px; flex-shrink:0; }
.app-tour-controls button { width:48px; height:48px; border:1px solid var(--line); background:#fff; border-radius:50%; font-size:24px; color:var(--navy); }
.app-tour-controls button:hover:not(:disabled) { background:var(--blue-soft); }
.app-tour-controls button:disabled { opacity:.35; cursor:default; }
.app-screens { display:flex; gap:22px; list-style:none; margin:0; padding:5px 3px 22px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--border-strong) var(--paper); scroll-padding-inline:3px; overscroll-behavior-x:contain; }
.app-screen-card { flex:0 0 256px; min-width:0; scroll-snap-align:start; }
.app-screen-link { position:relative; display:block; padding:13px; border:1px solid var(--line); border-radius:24px; background:var(--paper); text-decoration:none; }
.app-screen-link img { display:block; width:100%; height:auto; border-radius:15px; box-shadow:0 5px 15px #19253512; }
.app-screen-enlarge { position:absolute; bottom:23px; left:50%; transform:translateX(-50%); white-space:nowrap; padding:7px 15px; border:1px solid var(--line); border-radius:100px; background:#fffffff5; color:var(--brand); font-size:14px; font-weight:650; box-shadow:0 3px 10px #1925351a; }
.app-screen-link:hover { background:var(--blue-soft); border-color:var(--border-strong); }
.app-screen-caption { padding:18px 3px 0; }
.app-screen-number { display:block; color:var(--brand); font-size:28px; font-weight:700; line-height:1.2; text-align:center; letter-spacing:.04em; margin-bottom:14px; }
.app-screen-caption h4 { font-size:19px; letter-spacing:-.45px; line-height:1.35; }
.app-screen-caption p { font-size:16px; color:var(--muted); line-height:1.65; margin-top:9px; }
.app-tour-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:24px; padding:24px 28px; border-radius:16px; background:var(--paper); }
.app-tour-footer p { font-size:18px; font-weight:650; line-height:1.6; }
.app-tour-footer span:not([aria-hidden]) { color:var(--muted); font-size:16px; font-weight:400; }
.app-tour-footer .button { flex-shrink:0; }
.screenshot-dialog { width:min(870px,calc(100% - 32px)); }
.screenshot-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:30px; align-items:center; padding:16px 30px 30px; }
.screenshot-stage { display:flex; justify-content:center; min-width:0; background:var(--paper); border-radius:16px; padding:12px; }
.screenshot-stage img { display:block; width:auto; height:auto; max-width:100%; max-height:calc(100vh - 180px); max-height:calc(100dvh - 180px); border-radius:12px; object-fit:contain; }
.screenshot-info h2 { font-size:28px; line-height:1.15; letter-spacing:-.8px; margin:0; }
.screenshot-info p { font-size:16px; line-height:1.7; color:var(--muted); margin-top:16px; }
.screenshot-info .text-link { display:inline-block; font-size:16px; margin-top:20px; }
.screenshot-nav { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:28px; }
.screenshot-nav button { min-height:44px; padding:10px 14px; border:1px solid var(--line); border-radius:10px; background:var(--paper); color:var(--navy); font-size:16px; }
.screenshot-nav button:hover { background:var(--blue-soft); }
#screenshot-counter { font-size:14px; color:var(--muted); white-space:nowrap; }
@media (max-width:720px) {
 .app-showcase { padding-top:38px; }
 .app-tour-heading { align-items:center; gap:14px; flex-wrap:wrap; }
 .app-tour-heading h3 { font-size:30px; }
 .app-tour-controls { margin-left:auto; }
 .app-screen-card { flex-basis:min(256px,calc(100% - 30px)); }
 .app-screens { gap:16px; }
 .app-tour-footer { flex-direction:column; align-items:flex-start; padding:24px; gap:18px; }
 .screenshot-layout { grid-template-columns:1fr; gap:16px; padding:12px 20px 22px; }
 .screenshot-stage { padding:8px; }
 .screenshot-stage img { max-height:calc(100vh - 350px); max-height:calc(100dvh - 350px); min-height:170px; }
 .screenshot-info h2 { font-size:23px; text-align:center; }
 .screenshot-info p { margin-top:8px; line-height:1.5; }
 .screenshot-info .text-link { margin-top:10px; }
 .screenshot-nav { margin-top:16px; }
}

/* A dedicated, readable home for the original learner reviews. */
.learner-reviews { background:var(--paper); border-block:1px solid var(--line); }
.reviews-heading { display:flex; align-items:center; justify-content:space-between; gap:36px; }
.reviews-heading .section-title { max-width:680px; }
.review-rating { display:grid; grid-template-columns:auto auto; align-items:center; column-gap:14px; row-gap:2px; flex-shrink:0; padding:20px 26px; border:1px solid var(--line); border-radius:20px; background:#fff; color:var(--brand); text-decoration:none; }
.review-rating:hover { background:var(--blue-soft); color:var(--brand); }
.review-rating-star { color:var(--accent); font-size:39px; line-height:1; }
.review-rating > strong { font-size:44px; line-height:1.1; letter-spacing:-1.5px; }
.review-rating > strong > span { font-size:20px; font-weight:500; color:var(--muted); letter-spacing:0; }
.review-rating-label { grid-column:1 / -1; text-align:center; font-size:16px; font-weight:600; }
.review-filters { display:flex; gap:10px; flex-wrap:wrap; margin-top:32px; }
.review-filters button { display:inline-flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:100px; background:#fff; color:var(--navy); min-height:48px; padding:10px 20px; font-size:16px; font-weight:650; }
.review-filters button[aria-pressed="true"] { color:#fff; background:var(--brand); border-color:var(--brand); }
.review-filters button:hover:not([aria-pressed="true"]) { background:var(--blue-soft); }
.review-filters button span { display:inline-grid; place-items:center; width:24px; height:24px; border-radius:50%; background:var(--blue-soft); font-size:14px; }
.review-filters button[aria-pressed="true"] span { background:var(--accent);  color:var(--ink); }
.review-filters + .review-grid { margin-top:24px; }
.review-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:26px; margin-top:38px; }
.review-card { display:flex; flex-direction:column; min-width:0; padding:36px; background:#fff; border:1px solid var(--line); border-radius:24px; box-shadow:0 8px 24px #19253505; }
.review-type { color:var(--brand); font-size:14px; line-height:1.5; font-weight:750; letter-spacing:.09em; text-transform:uppercase; }
.review-heading h3 { font-size:28px; line-height:1.25; letter-spacing:-.8px; margin:16px 0 24px; }
.review-card blockquote { color:var(--muted); font-size:18px; line-height:1.75; }
.review-card blockquote p + p { margin-top:20px; }
.review-card .review-highlight { color:var(--navy); font-size:25px; line-height:1.5; letter-spacing:-.5px; font-weight:650; }
.review-card figcaption { margin-top:auto; padding-top:26px; color:var(--muted); font-size:16px; line-height:1.6; }
.review-card figcaption::before { content:""; display:block; width:48px; height:2px; background:var(--line); margin-bottom:20px; }
.review-card figcaption strong { display:block; color:var(--ink); font-size:18px; font-weight:700; }
.review-card figcaption > span,.review-card figcaption > time { display:block; }
.review-card figcaption > time { font-size:14px; margin-top:3px; }
.review-card--book-amazon { background:#fff; border-color:var(--line);  border-top:4px solid var(--accent); }
.review-card--book-amazon .review-type,.review-card--book-amazon h3 { color:var(--brand); }
.review-card--book-amazon blockquote { font-size:23px; color:var(--muted); }
.review-card figcaption a { display:inline-block; margin-top:10px; font-weight:650; }
.review-card figcaption strong { overflow-wrap:anywhere; }
.review-card--app { background:#fff; border-color:var(--line);  border-top:4px solid var(--brand); }
.review-card--app .review-type { color:var(--brand); }
.review-card--app h3 { color:var(--ink); }
.review-card--app blockquote { color:var(--muted); }
.review-card--app .review-highlight { color:var(--brand); }
.review-card--app figcaption { color:var(--muted); }
.review-card--app figcaption strong { color:var(--ink); }
.review-card--app figcaption::before { background:var(--accent); }
.review-card--wide { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); column-gap:40px; background:#fff; border-color:var(--line);  border-top:4px solid var(--accent); }
.review-card--wide .review-heading { grid-row:1 / span 2; }
.review-card--wide .review-type { color:var(--brand); }
.review-card--wide .review-heading h3 { color:var(--brand); margin-bottom:0; }
.review-card--wide blockquote { color:var(--muted); font-size:21px; line-height:1.65; }
.review-card--wide figcaption { grid-column:2; padding-top:20px; }
.review-card--wide figcaption::before { display:none; }
.review-card--wide figcaption a { display:inline-block; margin-top:10px; font-weight:650; }
@media (max-width:900px) {
 .review-card { padding:28px; }
 .review-heading h3 { font-size:25px; }
 .review-card .review-highlight { font-size:23px; }
}
@media (max-width:720px) {
 .reviews-heading { align-items:flex-start; flex-direction:column; gap:24px; }
 .review-rating { grid-template-columns:auto auto auto; column-gap:12px; padding:14px 18px; border-radius:15px; }
 .review-rating-star { font-size:29px; }
 .review-rating > strong { font-size:34px; }
 .review-rating > strong > span { font-size:17px; }
 .review-rating-label { grid-column:auto; font-size:14px; max-width:105px; text-align:left; line-height:1.4; }
 .review-filters { gap:8px; }
 .review-filters button { padding:10px 14px; gap:8px; }
 .review-grid { grid-template-columns:1fr; gap:20px; margin-top:30px; }
 .review-card { padding:27px 24px; border-radius:20px; }
 .review-card--wide { grid-column:auto; grid-template-columns:1fr; gap:20px; }
 .review-card--wide .review-heading { grid-row:auto; }
 .review-card--wide figcaption { grid-column:auto; padding-top:0; }
 .review-card blockquote { font-size:18px; }
 .review-card--wide blockquote { font-size:20px; }
}
/* Social proof at the download choices and a clear free/full course comparison. */
.download-rating { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:19px; color:var(--ink); font-size:16px; line-height:1.4; }
.download-rating-star { color:var(--accent); font-size:25px; line-height:1; }
.download-rating strong { font-size:21px; letter-spacing:-.5px; }
.download-rating strong span { font-size:16px; font-weight:500; letter-spacing:0; }
.download-panel .download-rating { color:var(--ink); }
.download-panel .download-rating-star { color:var(--accent); }
.platform-content .download-rating { justify-content:center; margin-top:23px; }
.hero-copy .offer .text-link { display:inline-block; margin-top:7px; }
.course-comparison { border-bottom:1px solid var(--line); }
.comparison-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:32px; }
.comparison-heading .section-title { max-width:740px; }
.comparison-promise { flex-shrink:0; padding:9px 16px; border:1px solid var(--line); border-radius:100px; background:var(--paper); color:var(--brand); font-size:16px; font-weight:650; margin-top:8px;  border-color:var(--line); }
.comparison-frame { margin-top:36px; border:1px solid var(--line); border-radius:20px; overflow:hidden; }
.comparison-table { width:100%; border-collapse:collapse; table-layout:fixed; text-align:left; font-size:17px; line-height:1.55; }
.comparison-table col:first-child { width:26%; }
.comparison-table col:nth-child(2) { width:34%; }
.comparison-table col:last-child { width:40%; }
.comparison-table th,.comparison-table td { padding:22px 26px; vertical-align:top; }
.comparison-table thead th { background:var(--paper); vertical-align:middle; }
.comparison-table thead th:first-child { color:var(--muted); font-size:16px; font-weight:600; }
.comparison-table thead th:nth-child(2) { background:var(--accent); color:var(--ink); }
.comparison-table thead th:last-child { background:var(--brand); color:#fff; }
.comparison-table thead strong { display:block; font-size:29px; line-height:1.2; letter-spacing:-.7px; }
.comparison-table thead span { display:block; margin-top:6px; font-size:16px; font-weight:500; }
.comparison-table tbody tr { border-top:1px solid var(--line); }
.comparison-table tbody th { font-weight:650; }
.comparison-table tbody td { color:var(--muted); }
.comparison-table tbody td:last-child { background:var(--blue-soft); color:var(--muted); }
.comparison-table tbody strong { display:block; color:var(--ink); font-weight:700; }
.comparison-table tbody td:last-child strong { color:var(--brand); }
.comparison-table .comparison-detail { display:block; margin-top:5px; font-size:16px; }
.comparison-footer { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:26px; }
.comparison-footer p { max-width:650px; color:var(--muted); font-size:16px; }
.comparison-footer p strong { color:var(--ink); }
.comparison-footer .button { flex-shrink:0; }
@media (max-width:720px) {
 .comparison-heading { display:block; }
 .comparison-promise { display:inline-block; margin-top:22px; }
 .comparison-table { font-size:16px; }
 .comparison-table col:first-child { width:27%; }
 .comparison-table col:nth-child(2) { width:32%; }
 .comparison-table col:last-child { width:41%; }
 .comparison-table th,.comparison-table td { padding:18px 12px; }
 .comparison-table thead strong { font-size:24px; }
 .comparison-table thead span { line-height:1.4; }
 .comparison-table .comparison-detail { font-size:16px; }
 .comparison-footer { flex-direction:column; align-items:flex-start; gap:20px; }
}
@media (max-width:400px) {
 .comparison-table th,.comparison-table td { padding:16px 8px; }
 .comparison-table thead strong { font-size:22px; }
 .comparison-frame { border-radius:14px; }
}
@media (max-width:360px) {
 .comparison-table col:first-child,.comparison-table col:nth-child(2) { width:32%; }
 .comparison-table col:last-child { width:36%; }
 .comparison-table th,.comparison-table td { padding-inline:6px; }
}
/* Phone hand-off from desktop; direct store buttons remain available at every size. */
.platform-choice { display:flex; flex-direction:column; align-items:center; gap:14px; }
.platform-qr,.platform-scan-hint { display:none; }
@media (min-width:721px) {
 .platform-dialog { width:min(660px,calc(100% - 32px)); }
 .platform-content { padding:14px 32px 24px; }
 #platform-description { margin-top:14px; padding:12px 18px; }
 .platform-prompt { margin-top:18px; }
 .platform-scan-hint { display:block; color:var(--muted); font-size:16px; margin-top:6px; }
 .platform-choices { gap:20px; margin-top:18px; }
 .platform-choice { flex:1; min-width:0; padding:16px 12px 14px; border:1px solid var(--line); border-radius:18px; background:var(--blue-soft); }
 .platform-choice--android { border-color:var(--line); background:var(--accent-soft); }
 .platform-qr { display:block; }
 .platform-qr img { width:204px; height:204px; max-width:100%; border-radius:8px; background:white; }
 .platform-qr figcaption { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
 .platform-content .download-rating { margin-top:18px; }
 .platform-offer { margin-top:16px; padding-top:14px; }
}
/* A fuller book presentation, with a visible sample spread and the companion-app offer. */
.book-section { background:var(--paper);  border-block:1px solid var(--line); }
.book-grid { grid-template-columns:.9fr 1.1fr; gap:64px; align-items:center; }
.book-visual { min-width:0; }
.book-display { padding:0 8px 12px; }
.book-cover { display:block; width:420px; max-width:100%; margin-inline:auto; border-radius:12px; }
.book-image { display:block; width:100%; max-width:100%; mix-blend-mode:normal; border-radius:0; box-shadow:none; }
.book-copy .eyebrow { color:var(--brand); }
.book-copy .section-title { font-size:clamp(36px,4vw,54px); line-height:1.08; letter-spacing:-2px; }
.book-copy .section-title em { color:var(--brand); font-style:normal; }
.book-copy .section-intro { font-size:18px; line-height:1.7; margin:22px 0 0; }
.book-facts { display:grid; grid-template-columns:.7fr 1fr 1.3fr; gap:18px; padding-block:22px; margin:26px 0; border-block:1px solid var(--line); }
.book-facts div { min-width:0; }
.book-facts dt { font-size:30px; font-weight:750; line-height:1.2; letter-spacing:-1px; color:var(--brand); }
.book-facts dd { margin:5px 0 0; font-size:16px; line-height:1.4; color:var(--muted); }
.book-actions { gap:18px 24px; }
.book-offer { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:32px; margin-top:32px; padding:26px; border:2px solid var(--border-strong); border-radius:20px; background:var(--blue-soft); box-shadow:0 10px 28px -14px #39679e30; }
.book-offer-main { display:flex; align-items:center; gap:20px; }
.book-offer-copy { min-width:0; }
.book-offer-label { display:block; color:var(--brand); font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:12px; }
.book-offer-title { margin:0; color:var(--brand); font-family:"Barlow Condensed","Arial Narrow",Impact,sans-serif; font-size:44px; font-weight:800; line-height:1.06; letter-spacing:-.015em; }
.book-offer-rosette { display:block; flex:0 0 116px; width:116px; height:116px; object-fit:contain; }
.book-offer-action { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding-left:32px; border-left:1px solid var(--border-strong); }
.book-offer-action p { margin:0; font-size:17px; line-height:1.5; color:var(--ink); }
.book-offer-email { min-height:48px; padding:12px 16px; font-size:16px; line-height:1.4; text-align:center; }
.book-inside { display:grid; grid-template-columns:.75fr 1.25fr; gap:48px; align-items:center; border-top:1px solid var(--line); margin-top:62px; padding-top:56px; }
.book-inside-copy h3 { font-size:32px; line-height:1.15; letter-spacing:-1px; max-width:350px; }
.book-benefits { list-style:none; margin:28px 0 0; padding:0; display:grid; gap:25px; }
.book-benefits li { display:flex; align-items:flex-start; gap:15px; }
.book-benefits li > span { flex-shrink:0; display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--accent); color:var(--ink); font-size:16px; font-weight:750; }
.book-benefits h4 { font-size:19px; line-height:1.35; letter-spacing:-.2px; margin:3px 0 7px; }
.book-benefits p { color:var(--muted); font-size:16px; line-height:1.65; }
.book-preview { min-width:0; margin:0; padding:24px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 16px 40px #19253510; }
.book-preview-heading { margin-bottom:12px; }
.book-preview-heading h3 { font-size:25px; letter-spacing:-.6px; }
.book-preview-heading p { font-size:16px; color:var(--muted); margin-top:5px; }
.book-gallery { margin-top:10px; }
.book-page-link { display:flex; align-items:center; justify-content:center; width:100%; min-height:380px; border-radius:10px; }
.book-page img { max-height:380px; width:auto; max-width:100%; mix-blend-mode:multiply; }
.book-page figcaption { font-size:16px; color:var(--ink); line-height:1.5; margin-top:12px; }
.book-preview .gallery-controls { gap:16px; justify-content:space-between; }
.book-preview .gallery-count { font-size:23px; color:var(--brand); font-weight:750; }
.book-preview .gallery-controls button { min-height:44px; border-radius:10px; background:var(--paper); border-color:var(--line); font-size:16px; }
@media (max-width:950px) {
 .book-grid { gap:32px; }
 .book-offer { grid-template-columns:1fr; gap:20px; }
 .book-offer-action { flex-direction:row; flex-wrap:wrap; align-items:center; gap:12px 18px; padding:20px 0 0; border-left:0; border-top:1px solid var(--border-strong); }
 .book-offer-main { gap:14px; }
 .book-offer-title { font-size:36px; }
 .book-offer-rosette { flex-basis:96px; width:96px; height:96px; }
 .book-inside { gap:28px; grid-template-columns:.85fr 1.15fr; }
 .book-preview { padding:20px; }
 .book-page-link { min-height:290px; }
 .book-page img { max-height:290px; }
}
@media (max-width:720px) {
 .book-grid,.book-inside { grid-template-columns:1fr; }
 .book-grid { gap:30px; }
 .book-copy { grid-row:1; }
 .book-copy .section-title { font-size:40px; letter-spacing:-1.8px; }
 .book-copy .section-intro { font-size:17px; }
 .book-facts { gap:12px; }
 .book-facts dt { font-size:28px; }
 .book-cover { width:330px; max-width:100%; }
 .book-offer { padding:20px; }
 .book-inside { margin-top:38px; padding-top:38px; gap:30px; }
 .book-inside-copy h3 { max-width:440px; font-size:30px; }
 .book-benefits { gap:22px; }
 .book-preview { padding:20px 16px; }
 .book-page-link { min-height:250px; }
 .book-page img { max-height:340px; }
 .book-preview .gallery-controls { gap:8px; }
 .book-preview .gallery-controls button { padding:8px 12px; }
}
@media (max-width:520px) {
 .book-offer-main { flex-direction:column; align-items:flex-start; gap:16px; }
 .book-offer-copy { width:100%; }
 .book-offer-title { font-size:36px; }
 .book-offer-label { font-size:13px; letter-spacing:.04em; }
 .book-offer-rosette { flex-basis:auto; width:100px; height:100px; }
 .book-offer-email { width:100%; }
}
@media (max-width:360px) {
 .book-copy .section-title { font-size:36px; }
 .book-facts dt { font-size:25px; }
 .book-preview .gallery-controls button { padding-inline:8px; }
 .book-preview .gallery-count { font-size:21px; }
 .book-page-link { min-height:210px; }
}
/* A large lesson screen and raised exercise detail form one product showcase. */
.hero { background:#fff; }
.hero-product { min-width:0; width:100%; max-width:550px; margin-inline:auto; }
.hero-product figcaption { margin:0 0 20px; }
.hero-product figcaption > span { display:block; color:var(--muted); font-size:14px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.hero-product figcaption strong { display:block; margin-top:8px; color:var(--brand); font-size:30px; line-height:1.2; letter-spacing:-.8px; }
.hero-product-stage { position:relative; isolation:isolate; width:100%; aspect-ratio:.74; }


.hero-phone-preview { position:absolute; top:22px; left:5%; display:block; width:60%; max-width:325px; padding:4px; border:1px solid var(--line); border-radius:32px; background:#fff; box-shadow:0 18px 38px -12px #19253530,0 3px 9px #1925350d; transition:box-shadow .2s; }
.hero-phone-preview img { display:block; width:100%; height:auto; border-radius:27px; }
.hero-preview-label { position:absolute; z-index:2; display:inline-flex; align-items:center; gap:10px; width:220px; padding:11px 15px; border:1px solid var(--accent); border-radius:12px; background:var(--accent); color:var(--ink); font-size:16px; font-weight:700; line-height:1.3; box-shadow:0 5px 18px #19253512; pointer-events:none; }
.hero-preview-label > span { color:var(--ink); font-size:14px; font-variant-numeric:tabular-nums; }
.hero-lesson-label { top:0; left:0; }
.hero-exercise { position:absolute; right:0; bottom:27px; z-index:3; width:60%; max-width:300px; }
.hero-exercise-preview { position:relative; display:block; width:100%; padding-top:32px; border:1px solid #fff; border-radius:18px; background:#fff; color:var(--brand); text-decoration:none; box-shadow:0 20px 50px -15px #19253570,0 4px 10px #1925351a; }
.hero-exercise-preview:hover { color:var(--brand-hover); }
.hero-exercise-heading { top:-21px; right:0; }
.hero-exercise-crop { position:relative; display:block; width:100%; aspect-ratio:1.02; overflow:hidden; }
.hero-exercise-crop img { position:absolute; top:0; left:0; display:block; width:100%; height:auto; transform:translateY(-9.6%); }
.hero-exercise-enlarge { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:11px 16px; border-top:1px solid var(--line); font-size:15px; font-weight:650; line-height:1.4; }
.hero-exercise-enlarge > span { font-size:20px; }
.hero-phone-preview:focus-visible,.hero-exercise-preview:focus-visible { outline:3px solid var(--brand); outline-offset:3px; box-shadow:0 0 0 6px #fff,0 20px 40px -15px #19253570; }
.hero-preview-hint { margin-top:8px; color:var(--muted); font-size:16px; line-height:1.5; text-align:center; }
.hero-demo-fallback { max-width:560px; margin-block:65px; }
.modals-ready .hero-demo-fallback { display:none; }
@media (max-width:1100px) and (min-width:901px) {
 .hero-product figcaption strong { font-size:27px; }

 .hero-phone-preview { top:20px; left:4%; padding:4px; border-radius:28px; }
 .hero-phone-preview img { border-radius:23px; }
 .hero-exercise-enlarge { padding:10px 12px; }
}
@media (max-width:900px) {
 .hero-product { max-width:520px; }
}
@media (max-width:720px) {
 .hero-grid { gap:44px; }
 .hero-product figcaption strong { font-size:28px; }
}
@media (max-width:520px) {
 .hero-product-stage { aspect-ratio:.65; }


 .hero-phone-preview { top:23px; left:3%; width:64%; padding:3px; border-radius:24px; }
 .hero-phone-preview img { border-radius:20px; }
 .hero-preview-label { width:204px; padding:9px 11px; font-size:15px; gap:8px; }
 .hero-preview-label > span { font-size:13px; }
 .hero-exercise { width:70%; bottom:16px; }
 .hero-exercise-preview { border-radius:15px; }
 .hero-exercise-enlarge { padding:9px 12px; font-size:14px; }
 .hero-preview-hint { margin-top:14px; font-size:15px; }
}
/* Book samples open above the page, with a visible route back. */
.book-dialog { width:min(1120px,calc(100% - 32px)); height:min(900px,calc(100vh - 32px)); height:min(900px,calc(100dvh - 32px)); overflow:hidden; }
.book-dialog[open] { display:flex; flex-direction:column; }
.book-dialog .dialog-toolbar { flex-shrink:0; padding:16px 20px 0 24px; gap:12px; }
.book-dialog .dialog-close { display:flex; align-items:center; justify-content:center; gap:10px; width:auto; padding:0 16px; border-radius:12px; font-size:16px; font-weight:650; }
.book-dialog .dialog-close span { font-size:25px; font-weight:400; }
.book-dialog h2 { flex-shrink:0; font-size:24px; line-height:1.3; letter-spacing:-.5px; text-align:center; margin:18px 24px; }
.book-viewer-stage { flex:1; min-height:0; margin:0 24px; padding:16px; border-radius:14px; background:var(--paper); }
.book-viewer-stage img { display:block; width:100%; height:100%; object-fit:contain; }
.book-viewer-nav { flex-shrink:0; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:16px; padding:18px 24px; }
.book-viewer-nav button { min-height:44px; padding:10px 16px; border:1px solid var(--line); border-radius:10px; background:var(--paper); color:var(--navy); font-size:16px; }
.book-viewer-nav button:first-child { justify-self:start; }
.book-viewer-nav button:last-child { justify-self:end; }
.book-viewer-nav button:hover:not(:disabled) { background:var(--blue-soft); }
.book-viewer-nav button:disabled { opacity:.4; cursor:default; }
.book-viewer-nav .gallery-count { color:var(--brand); font-size:23px; font-weight:750; text-align:center; }
@media (max-width:720px) {
 .book-dialog { height:fit-content; }
 .book-viewer-stage { flex:0 1 auto; }
 .book-viewer-stage img { width:auto; height:auto; max-width:100%; max-height:calc(100vh - 260px); max-height:calc(100dvh - 260px); margin-inline:auto; }
}
@media (max-width:440px) {
 .book-dialog .dialog-toolbar { padding:12px 14px 0; }
 .book-dialog .dialog-toolbar > span { font-size:12px; letter-spacing:.05em; }
 .book-dialog .dialog-close { padding-inline:12px; }
 .book-dialog h2 { font-size:20px; margin:14px 16px; }
 .book-viewer-stage { margin-inline:12px; padding:8px; }
 .book-viewer-nav { gap:8px; padding:14px 12px; }
 .book-viewer-nav button { padding-inline:10px; }
 .book-viewer-nav .gallery-count { font-size:21px; }
}

/* Yellow is used with dark text; blue and white remain the primary controls. */
.site-nav .button:hover,.mobile-cta .button:hover { background:var(--accent-hover); border-color:var(--accent-hover); color:var(--ink); }
.mobile-cta .button { background:var(--accent); border-color:var(--accent); color:var(--ink); }
.review-rating-star,.download-rating-star { color:var(--accent); -webkit-text-stroke:.6px var(--brand); }

/* Lucide v1.48.0: embedded SVG paths work online and in local file previews. */
.ui-icon { display:block; width:24px; height:24px; flex-shrink:0; color:var(--brand); }
.icon-badge { display:inline-grid; place-items:center; width:52px; height:52px; flex:0 0 52px; border:1px solid var(--border-strong); border-radius:14px; background:#fff; color:var(--brand); }
.icon-badge .ui-icon { width:32px; height:32px; stroke-width:2.2; }
.icon-eyebrow { display:flex; align-items:center; gap:14px; }
.icon-eyebrow > span:last-child { min-width:0; }
.method-step { display:flex; align-items:center; gap:14px; margin-bottom:22px; }
.method-step .step-number { margin:0; font-size:14px; letter-spacing:.04em; }
.hero-features .ui-icon { width:20px; height:20px; }
.proof-strip strong { display:flex; align-items:center; gap:10px; }
.proof-strip .ui-icon { width:24px; height:24px; }
.book-benefits li > span { width:48px; height:48px; border:1px solid var(--border-strong); border-radius:12px; background:#fff; }
.book-benefits .ui-icon { width:30px; height:30px; stroke-width:2.2; }
.icon-inline-heading, .icon-heading { display:flex; align-items:center; gap:12px; }
.icon-inline-heading .ui-icon { width:26px; height:26px; }
.icon-heading { align-items:flex-start; gap:16px; }
.icon-heading h2 { padding-top:3px; }
@media (max-width:720px) {
 .icon-badge { width:48px; height:48px; flex-basis:48px; border-radius:12px; }
 .icon-badge .ui-icon { width:30px; height:30px; }
 .icon-eyebrow { gap:12px; }
 .method-step { margin-bottom:18px; }
 .proof-strip strong { gap:8px; }
 .proof-strip .ui-icon { width:20px; height:20px; }
}
@media (max-width:380px) {
 .proof-strip strong { gap:6px; font-size:21px; }
 .proof-strip .ui-icon { width:18px; height:18px; }
}

/* Make the three ways to explore the course easy to find and tap. */
.hero-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:25px; }
.hero-action { display:flex; align-items:center; gap:12px; min-width:0; min-height:90px; padding:16px; border:1px solid var(--border-strong); border-radius:13px; background:#fff; color:var(--brand); text-decoration:none; transition:background .15s,border-color .15s,box-shadow .15s; }
.hero-action-copy { display:flex; flex-direction:column; gap:5px; min-width:0; }
.hero-action strong { font-size:17px; font-weight:750; line-height:1.35; }
.hero-action-copy > span { color:var(--muted); font-size:15px; font-weight:500; line-height:1.45; }
.hero-action:hover { color:var(--brand-hover); border-color:var(--brand); background:var(--blue-soft); box-shadow:0 3px 12px #1925350a; }
.hero-action:focus-visible { outline:3px solid var(--brand); outline-offset:4px; }
.hero-action--lesson { grid-column:1/-1; min-height:86px; padding:17px 20px; border-color:var(--accent); background:var(--accent); color:var(--ink); }
.hero-action--lesson .ui-icon { width:28px; height:28px; }
.hero-action--lesson strong { font-size:19px; }
.hero-action--lesson .hero-action-copy > span { color:var(--ink); font-size:16px; }
.hero-action--lesson:hover { background:var(--accent-hover); border-color:var(--accent-hover); color:var(--ink); }
.hero-action-arrow { margin-left:auto; font-size:25px; line-height:1; }
@media (max-width:520px) {
 .hero-actions { grid-template-columns:1fr; gap:10px; margin-top:23px; }
 .hero-action { min-height:78px; padding:15px 16px; }
 .hero-action--lesson { min-height:94px; }
 .hero-action--lesson strong { font-size:18px; }
 .hero-action--lesson .ui-icon { width:24px; height:24px; }
 .hero-action--lesson .hero-action-copy > span { font-size:15px; }
 .hero-action-arrow { font-size:22px; }
}

/* A heavier display face gives the two-line hero headline more presence. */
@font-face {
 font-family:"Barlow Condensed";
 src:url("fonts/barlow-condensed-latin-800.woff2") format("woff2");
 font-style:normal;
 font-weight:800;
 font-display:swap;
}
#hero-title { font-family:"Barlow Condensed","Arial Narrow",Impact,sans-serif; font-size:clamp(62px,6.1vw,88px); font-weight:800; line-height:.98; letter-spacing:-.025em; max-width:none; }
#hero-title em { font-style:normal; color:var(--brand); }
@media (max-width:900px) {
 #hero-title { font-size:clamp(34px,12.6vw,84px); }
}

/* Let the supporting promise stand out beneath the display headline. */
.hero-copy > p.hero-intro { max-width:520px; color:var(--ink); font-size:22px; font-weight:500; line-height:1.55; }
@media (max-width:720px) {
 .hero-copy > p.hero-intro { font-size:20px; line-height:1.55; }
}

/* Keep the free-trial invitation immediately above the hero store badges. */
.hero-download-prompt { margin:26px 0 0; max-width:520px; color:var(--brand); font-family:"Barlow Condensed","Arial Narrow",Impact,sans-serif; font-size:26px; font-weight:800; line-height:1.3; letter-spacing:-.01em; }
.hero #get-app .store-links { margin-top:18px; }

/* One hover motion for clickable surfaces; hero labels sit outside the links. */
body :is(button,[role="button"],summary,.button,.hero-action,.store-badge-link,.app-screen-link,.book-page-link,.review-rating,.hero-phone-preview,.hero-exercise-preview) {
 transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;
}
@media (hover:hover) and (pointer:fine) {
 body :is(button,[role="button"],summary,.button,.hero-action,.store-badge-link,.app-screen-link,.book-page-link,.review-rating,.hero-phone-preview,.hero-exercise-preview):not(:disabled):not([aria-disabled="true"]):hover {
  transform:translateY(-4px);
  box-shadow:0 8px 20px #19253520;
 }
}
@media (prefers-reduced-motion:reduce) {
 body :is(button,[role="button"],summary,.button,.hero-action,.store-badge-link,.app-screen-link,.book-page-link,.review-rating,.hero-phone-preview,.hero-exercise-preview) {
  transform:none!important;
 }
}


/* Supplied French screenshots use the same minimal phone treatment as the Russian page. */
.french-feature-pair { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:32px; }
.french-feature-pair article { background:var(--blue-soft); border:1px solid var(--line); border-radius:18px; padding:26px; }
.french-feature-pair h4 { margin:12px 0 8px; font-size:22px; }
.french-feature-pair p { margin:0; color:var(--muted); }
.feature-mini-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:10px; color:var(--brand); background:#fff; font-size:29px; font-weight:700; }
.french-review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.french-review-grid .review-card { max-width:none; }
.review-score { display:flex; align-items:center; gap:12px; color:var(--brand); font-weight:750; }
.review-score > span:first-child { font-size:25px; letter-spacing:3px; }
.review-score > span:last-child { font-size:15px; }
.review-excerpt-note { margin-top:18px; color:var(--muted); font-size:15px; line-height:1.6; }
.review-full { margin-top:18px; }
.review-full summary { padding:12px 14px; background:var(--blue-soft); border:1px solid var(--line); border-radius:10px; color:var(--brand); font-size:16px; font-weight:650; cursor:pointer; }
.review-full summary:focus-visible { outline:2px solid var(--brand); outline-offset:4px; }
.review-full blockquote { margin-top:20px; font-size:17px; line-height:1.75; }
@media(max-width:800px) { .french-review-grid { grid-template-columns:1fr; } }
.topics-free-badge { display:inline-block; margin-left:8px; padding:3px 9px; border-radius:100px; background:var(--accent); color:var(--ink); font-size:13px; vertical-align:middle; }
.enhanced .topic-highlights { flex-direction:column; margin-top:26px; }
.topic-highlights h3 { font-size:22px; letter-spacing:-.4px; }
.topic-highlights > p { color:var(--muted); font-size:16px; margin-top:6px; }
.topic-highlights ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; gap:12px; padding:0; margin:18px 0 0; }
.topic-highlight { display:block; width:100%; height:100%; padding:16px 18px; text-align:left; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--brand); }
.topic-highlight strong { display:block; font-size:18px; line-height:1.4; }
.topic-highlight span { display:block; margin-top:6px; font-size:14px; color:var(--muted); }
.topics-full { margin-top:25px; }
.topics-toggle { width:100%; justify-content:center; gap:14px; list-style:none; }
.topics-toggle::-webkit-details-marker { display:none; }
.topics-toggle-open, .topics-full[open] > .topics-toggle .topics-toggle-closed { display:none; }
.topics-full[open] > .topics-toggle .topics-toggle-open { display:inline; }
.topics-toggle-icon::after { content:'+'; font-size:23px; line-height:1; }
.topics-full[open] > .topics-toggle .topics-toggle-icon::after { content:'−'; }
#topics[data-filtering="true"] .topics-toggle, #topic-highlights[hidden], #topics-full[hidden], .topics__group[hidden], .topics__items li[hidden] { display:none; }
#topics[data-filtering="true"] .topics-full { margin-top:0; }
.topic-explorer { scroll-margin-top:100px; }
@media(max-width:720px) { .topic-highlights ul { grid-template-columns:repeat(2,minmax(0,1fr)); } .topic-highlight { padding:14px; } }
.review-disclosure { font-size:14px; margin-top:20px; color:var(--muted); }
.download-rating a { color:inherit; font-size:15px; }
.hero-download-reassurance { max-width:520px; margin:9px 0 0; color:var(--muted); font-size:17px; line-height:1.6; }
.comparison-footer p { font-size:17px; line-height:1.7; }
.purchase-reassurance { margin-top:28px; padding:26px 30px; border:1px solid var(--line); border-left:4px solid var(--brand); border-radius:16px; background:var(--paper); }
.purchase-reassurance h3 { color:var(--brand); font-size:26px; line-height:1.25; letter-spacing:-.5px; }
.purchase-reassurance p { max-width:850px; margin-top:12px; color:var(--muted); font-size:17px; line-height:1.7; }
@media(max-width:600px) { .purchase-reassurance { padding:23px 22px; } .purchase-reassurance h3 { font-size:24px; } }
.email-row[hidden], .email-label[hidden] { display:none; }
.newsletter .form-status[data-state="preview"], .newsletter .form-status[data-state="error"], .newsletter .form-status[data-state="success"] { padding:12px 14px; border-radius:8px; background:var(--blue-soft); color:var(--brand); }
.newsletter .form-status[data-state="error"] { background:#fff0ed; color:#9b3529; }
.email-row input[aria-invalid="true"] { border-color:#9b3529; }
@media(max-width:600px) { .french-feature-pair { grid-template-columns:1fr; } }


/* Clear, scannable support for practice, feedback and personal review. */
.learning-support { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:32px; }
.learning-support article { min-width:0; padding:26px; background:var(--blue-soft); border:1px solid var(--line); border-radius:18px; }
.learning-support h4 { margin:14px 0 10px; font-size:23px; line-height:1.25; }
.learning-support p { margin:0; color:var(--muted); font-size:17px; line-height:1.65; }
.learning-support .feature-mini-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:10px; color:var(--brand); background:#fff; font-size:29px; font-weight:700; }
.learning-support .ui-icon { width:24px; height:24px; }
/* Reviews use the same quiet body typography as the surrounding content. */
#reviews .review-heading h3 { font-size:23px; font-weight:600; line-height:1.35; letter-spacing:-.25px; }
#reviews .review-card blockquote,
#reviews .review-card .review-highlight { font-size:18px; font-weight:400; line-height:1.7; letter-spacing:normal; color:var(--muted); }
#reviews .review-card blockquote strong { font-weight:600; }
@media(max-width:800px) { .learning-support { grid-template-columns:1fr; gap:16px; } .learning-support article { padding:24px; } }

/* Japanese-specific content, using the existing grammar-page design. */
.jp-breadcrumb{display:flex;gap:12px;flex-wrap:wrap;padding-block:18px;font-size:14px;color:var(--muted)}
.japanese-page .brand img{border-radius:10px}
.japanese-page .hero{padding-top:46px}
.japanese-page .hero-grid>*{min-width:0}
.japanese-page .proof-strip strong{color:var(--brand)}
.japanese-page .proof-strip>div:nth-child(3) strong{font-size:26px}
.japanese-page .app-screen-link{border:1px solid #dce1e7;box-shadow:0 12px 26px #19253514}
.japanese-page .app-screen-number{color:var(--brand)}
.jp-reading{background:var(--paper);border-block:1px solid var(--line);padding-block:64px}
.jp-reading-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center}
.jp-reading-example{padding:30px;border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:18px;background:white;box-shadow:0 12px 30px #19253508}
.jp-example{font-size:clamp(27px,3vw,38px);line-height:1.7;color:var(--brand);font-weight:650;overflow-wrap:anywhere}
.jp-romaji{font-size:19px;color:var(--muted);margin-top:6px}
.jp-translation{font-size:21px;margin-top:10px}
.jp-example-note{font-size:17px;color:var(--muted);margin:22px 0}
.jp-more-apps{font-size:17px;color:var(--muted);text-align:center;padding:24px 0 35px}
.jp-free-callout{color:var(--brand);font-size:25px!important;margin-block:16px!important}
.japanese-page .platform-content .store-links{justify-content:center}
.japanese-page .platform-content .store-badge-link img{height:72px}
.jp-qr{display:flex;align-items:center;gap:20px;margin-top:30px;padding-top:25px;border-top:1px solid var(--line)}
.jp-qr img{width:132px;height:132px;flex:0 0 132px}
.jp-qr figcaption{font-size:16px;color:var(--muted);line-height:1.5}
.jp-lesson-dialog{width:min(680px,calc(100% - 32px))}
.jp-lesson-content{padding:22px 32px 30px}
.jp-lesson-content h2{font-size:36px;letter-spacing:-.8px;margin-bottom:20px}
.jp-lesson-intro{font-size:17px;color:var(--muted);line-height:1.7}
.jp-clue{padding:15px 18px;background:var(--blue-soft);border-radius:12px;color:var(--brand);font-weight:650;margin:22px 0 14px}
#demo-translation{color:var(--muted);font-size:18px}
.jp-lesson-content .quiz-options{gap:12px}
.jp-lesson-content .quiz-option{font-size:26px;min-height:76px}
.jp-lesson-content .quiz-option small{display:block;font-size:15px;margin-top:3px}
.jp-lesson-content .quiz-option:disabled{opacity:1}
.jp-lesson-content .quiz-option.correct{background:var(--accent-soft);border-color:#c2aa26;color:var(--brand)}
.jp-lesson-content .quiz-explanation{padding:16px 18px;font-size:17px;margin-top:16px}
.jp-demo-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.jp-demo-progress{text-align:center;font-size:18px;font-weight:700;color:var(--brand);margin-top:22px}
.jp-demo-caption{text-align:center;font-size:15px;color:var(--muted);margin-top:8px}
.japanese-page .dialog-toolbar{position:sticky;top:0;z-index:3;background:#fff;padding-bottom:12px;border-bottom:1px solid var(--line)}
body:has(dialog[open]){overflow:hidden}
.japanese-page .topics__items{font-size:17px}
.japanese-page .site-footer .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:26px}
.japanese-page .site-footer .wrap>p{width:100%;font-size:14px;color:var(--muted)}
@media(max-width:800px){.jp-reading-grid{grid-template-columns:1fr;gap:30px}.jp-reading{padding-block:50px}.japanese-page .site-header .brand{max-width:230px}.japanese-page .topics__items{columns:1}}
@media(max-width:520px){.jp-reading-example{padding:25px 22px}.jp-lesson-content{padding:20px}.jp-lesson-content h2{font-size:30px}.jp-lesson-content .quiz-options{gap:8px}.jp-demo-actions .button{font-size:14px;padding:12px}.jp-qr{flex-direction:column;align-items:center;text-align:center}.japanese-page .site-header .brand{font-size:14px;gap:8px;max-width:190px}.japanese-page .site-header .brand small{font-size:12px}.japanese-page .site-nav .button{font-size:14px;padding:10px 12px}.japanese-page .header-inner{gap:12px}.japanese-page .hero{padding-top:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
