/* GEDBuddy editorial system. All semantic colors remain theme-aware. */
:root { --buddy-cream:#f9f3db; --buddy-forest:#0f4a42; --buddy-blue:#9ab4e8; --buddy-rust:#b9674d; --buddy-mustard:#ffae00; --buddy-pink:#e990a2; --container:1200px; }
:root:not([data-theme="dark"]) { --paper:#faf7ec; --ink:#202d29; --ink-soft:#59625a; --ink-faint:#686f66; --brand:#0f4a42; --brand-strong:#093a33; --brand-tint:#e6eee4; --math:#273287; --math-deep:#181a4d; --math-tint:#e5eafa; --rla:#a14e3c; --rla-tint:#f4e4dd; --sci:#0f4a42; --sci-tint:#e4eddb; --ss:#815600; --ss-tint:#f7ebc5; }
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]):not([data-theme="dark"]){--paper:#121b18;--ink:#f4f1e5;--ink-soft:#c3c9bf;--ink-faint:#a4ada1;--brand:#83c7ac;--brand-strong:#9dd9bf;--brand-tint:#1d392e;--math:#a6b4f5;--math-deep:#bdc7f5;--math-tint:#1c2136;--rla:#e9a491;--rla-tint:#301f1d;--sci:#92c9ab;--sci-tint:#193127;--ss:#e5bf70;--ss-tint:#342b19;}}
html { scroll-padding-top:90px; }
.btn { min-height:46px; border-radius:10px; }
.btn--primary { box-shadow:none; }
.topbar { background:var(--paper); }
.brand__mark { border-radius:50%; background:var(--brand); }
.buddy-home { padding-top:0; }
.buddy-hero { display:grid; grid-template-columns:1.02fr 1fr; align-items:center; min-height:620px; gap:14px; padding:70px 0 50px; }
.eyebrow { font-size:11px; font-weight:700; letter-spacing:.14em; line-height:1.6; margin:0 0 24px; }
.eyebrow>span { display:inline-block; width:7px;height:7px;border-radius:50%;background:var(--brand);margin-right:9px; }
.buddy-hero h1 { font-family:var(--font-display); font-size:clamp(48px,5.8vw,76px);line-height:1.03;letter-spacing:-.065em;font-weight:600;margin:0 0 28px; }
.buddy-hero h1 em { font-style:normal;color:var(--brand);position:relative; }
.buddy-hero h1 em:after { content:'';height:6px;background:var(--buddy-mustard);position:absolute;left:0;right:0;bottom:1px;z-index:-1;transform:rotate(-3deg); }
.hero-copy { font-size:19px;line-height:1.7;color:var(--ink-soft);margin-bottom:28px; }
.buddy-hero .hero__actions { display:flex;flex-wrap:wrap;gap:10px;margin:0; }
.buddy-hero .btn { padding:14px 22px;font-size:14px;gap:20px; }
.hero-footnote { font-size:12px;color:var(--ink-soft);margin-top:19px; }
.buddy-hero-art { margin:0;position:relative; }
.buddy-hero-art img { width:100%;height:auto;mix-blend-mode:multiply;border-radius:40% 40% 15% 15%; }
.buddy-hero-art figcaption { font-family:var(--font-display);font-size:15px;text-align:center;transform:rotate(-5deg);margin-top:0; }
.buddy-ribbon { display:flex;justify-content:space-between;align-items:center;gap:20px;padding:27px 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);font-family:var(--font-display);font-weight:600;font-size:18px; }
.buddy-ribbon>span:first-child { font-family:var(--font-text);font-size:10px;letter-spacing:.13em;color:var(--ink-soft); }
.buddy-ribbon b { margin-left:25px;font-weight:400;color:var(--ink-soft); }
.buddy-section-head { padding:75px 0 30px;position:relative; }
.buddy-section-head h2,.buddy-demo h2,.buddy-recovery h2,.buddy-plan h2,.buddy-membership h2,.buddy-faq h2,.buddy-final h2,.buddy-progress h2 { font-family:var(--font-display);font-size:clamp(32px,4vw,48px);line-height:1.12;letter-spacing:-.045em;font-weight:600;margin:0 0 22px; }
.buddy-section-head .eyebrow { margin-bottom:18px; }
.buddy-section-head>p:last-child:not(.eyebrow) { color:var(--ink-soft); }
.buddy-subjects { display:grid;grid-template-columns:repeat(4,1fr);gap:16px; }
.buddy-subject { display:flex;flex-direction:column;padding:24px 22px;border-radius:14px;background:var(--surface-2);color:var(--ink);text-decoration:none;min-height:320px;transition:transform .2s; }
.buddy-subject:hover { transform:translateY(-5px);text-decoration:none; }
.buddy-subject[data-subject=math] { background:var(--math-tint); }
.buddy-subject[data-subject=rla] { background:var(--rla-tint); }
.buddy-subject[data-subject=sci] { background:var(--sci-tint); }
.buddy-subject[data-subject=ss] { background:var(--ss-tint); }
.subject-number { font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--ink-soft); }
.subject-symbol { font-family:var(--font-display);font-size:66px;line-height:1.5;color:var(--subject,var(--brand));font-weight:600; }
.buddy-subject h3 { font-size:20px;line-height:1.2;letter-spacing:-.03em;margin-bottom:10px; }
.buddy-subject p { font-size:14px;line-height:1.5;margin-bottom:25px;color:var(--ink-soft); }
.subject-bottom { display:flex;justify-content:space-between;font-size:12px;font-weight:700;margin-top:auto;padding-top:15px;border-top:1px solid var(--line-strong); }
.buddy-demo { display:grid;grid-template-columns:.9fr 1fr;gap:85px;align-items:center;padding:100px 0; }
.buddy-demo>div>p:not(.eyebrow),.buddy-recovery p,.buddy-membership p { color:var(--ink-soft);max-width:440px; }
.text-link { font-weight:700;font-size:14px;color:var(--brand);display:inline-block;margin-top:15px; }
.ratio-preview { padding:30px;border:1px solid var(--line-strong);background:var(--surface);border-radius:18px;box-shadow:8px 9px 0 var(--surface-2); }
.ratio-preview h3 { font-family:var(--font-display);font-size:25px;letter-spacing:-.03em; }
.ratio-preview p { font-size:14px;line-height:1.6; }
.ratio-preview .eyebrow { font-size:9px;margin-bottom:12px; }
.ratio-cups { display:flex;align-items:center;justify-content:center;gap:22px;min-height:137px;background:var(--surface-2);padding:20px;border-radius:12px;margin:20px 0; }
.ratio-cups>div { width:40%;text-align:center; }
.ratio-cups strong { display:block;font-size:36px;line-height:1.1;font-family:var(--font-display); }
.ratio-cups span { font-size:12px; }
.oat-units,.milk-units { display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-top:9px; }
.oat-units i,.milk-units i { width:12px;height:15px;border-radius:2px 2px 5px 5px;background:var(--buddy-mustard);border:1px solid var(--ink-soft); }
.milk-units i { background:var(--buddy-blue); }
.ratio-preview input[type=range] { width:100%;accent-color:var(--brand);min-height:40px; }
.ratio-preview label { font-size:12px;font-weight:700; }
.ratio-preview fieldset { border:0;padding:0;margin:15px 0 0; }
.ratio-preview legend { font-size:14px;font-weight:700; }
.ratio-answers { display:flex;gap:8px;margin-top:10px; }
.ratio-answers button { flex:1; }
.ratio-feedback { min-height:65px;margin-top:14px; }
.buddy-recovery { display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:85px;padding:65px;background:var(--brand-tint);border-radius:20px; }
.recovery-example { padding:35px;border:1px solid var(--line-strong);border-radius:16px;background:var(--paper);transform:rotate(-2deg); }
.recovery-example .eyebrow { font-size:9px; }
.crossed-method { font-size:28px;text-decoration:line-through;color:var(--bad);margin:30px 0 15px; }
.correct-method { font-family:var(--font-display);font-size:42px;margin-bottom:25px; }
.correct-method mark { background:var(--buddy-mustard);color:var(--buddy-forest);border-radius:5px;padding:0 7px; }
.buddy-plan { padding:95px 0; }
.plan-columns { display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:45px; }
.plan-columns>div { border-top:1px solid var(--line-strong);padding-top:24px; }
.plan-columns span { color:var(--brand);font-size:14px; }
.plan-columns h3 { font-size:23px;margin:17px 0 12px; }
.plan-columns p { font-size:15px;color:var(--ink-soft); }
.buddy-membership { display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:65px;padding:55px;background:var(--ss-tint);border-radius:20px; }
.buddy-membership .tiny { margin-top:15px;max-width:270px;font-size:12px; }
.buddy-faq { max-width:800px;margin:95px auto; }
.buddy-faq details { border-bottom:1px solid var(--line-strong);padding:20px 0; }
.buddy-faq summary { cursor:pointer;font-weight:600;min-height:32px; }
.buddy-faq details p { color:var(--ink-soft);padding-top:14px; }
.buddy-final { text-align:center;padding:70px 25px 85px;border-top:1px solid var(--line-strong); }
.buddy-final h2 { font-size:56px; }
.buddy-final .btn { margin-top:12px; }
.buddy-today { display:grid;grid-template-columns:1.4fr 1fr;gap:25px; }
.today-main { padding:40px;background:var(--brand-tint);border-radius:18px; }
.today-main h2 { font-size:36px;line-height:1.15; }
.today-main .btn { margin-top:15px; }
.today-aside { display:flex;flex-direction:column;gap:15px; }
.today-action { flex:1;display:flex;align-items:center;padding:20px 25px;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--ink);font-weight:600; }
.buddy-progress { margin:65px 0;padding:35px;border:1px solid var(--line);border-radius:18px; }
.buddy-progress>p { max-width:720px; }
.readiness-row { display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:20px 0;border-top:1px solid var(--line); }
.readiness-row>span { text-align:right;font-size:14px; }
.readiness-row progress { grid-column:1/-1;width:100%;height:8px;accent-color:var(--brand); }
.skill-unit { padding:18px 0;border-bottom:1px solid var(--line); }
.skill-unit summary { cursor:pointer;font-weight:600;padding:10px; }
.skill-row { display:flex;justify-content:space-between;gap:20px;padding:15px 12px;color:var(--ink);font-size:14px; }
.skill-row:hover { background:var(--surface-2); }
.skill-row>span:last-child { white-space:nowrap;color:var(--ink-soft); }
.skill-section { margin:50px 0; }
.journey { scroll-margin-top:90px; }
.journey-bar { display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between;border-bottom:1px solid var(--line);padding:15px 0; }
.journey-label { font-size:13px;font-weight:700;margin:0; }
.journey-bar progress { width:170px;height:7px;accent-color:var(--brand); }
.journey-stage { min-height:320px;padding:25px 0;outline:none; }
.journey-stage .block { margin-bottom:20px; }
.journey-controls { display:flex;justify-content:space-between;gap:15px;margin:10px 0 40px;padding-top:20px;border-top:1px solid var(--line); }
.journey-controls .btn { white-space:normal; }
.journey-visual,.predict-panel,.recall-card { margin-bottom:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:16px 20px; }
.journey-visual summary,.predict-panel summary,.recall-card summary { cursor:pointer;min-height:32px;font-weight:600;font-size:14px; }
.journey-visual[open]>div { margin-top:20px; }
.journey-visual .block { margin-bottom:0; }
.predict-panel textarea { width:100%;margin-top:14px;padding:12px;background:var(--paper);color:var(--ink);border:1px solid var(--line-strong);border-radius:8px; }
.recall-skill { margin-bottom:45px; }
.ratio-preview .btn:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid var(--brand);outline-offset:4px; }
[hidden] { display:none!important; }
@media(max-width:1000px){.buddy-hero{min-height:540px;}.buddy-demo,.buddy-recovery{gap:35px;}.buddy-recovery{padding:35px;}.buddy-ribbon{font-size:15px;}.buddy-ribbon b{margin-left:8px;}.buddy-subjects{grid-template-columns:repeat(2,1fr);}.buddy-subject{min-height:290px;}.buddy-hero h1{font-size:58px;}}
@media(max-width:650px){.buddy-hero{grid-template-columns:1fr;padding:45px 0 30px;gap:5px;}.buddy-hero h1{font-size:53px;}.hero-copy{font-size:17px;}.buddy-hero-art{max-width:450px;}.buddy-hero-art img{max-height:320px;object-fit:contain;}.buddy-hero .btn{padding:12px 15px;}.buddy-ribbon{flex-wrap:wrap;justify-content:flex-start;gap:12px 20px;padding:20px 0;font-size:14px;}.buddy-ribbon>span:first-child{width:100%;}.buddy-section-head{padding-top:50px;}.buddy-subjects{gap:12px;}.buddy-subject{padding:18px 15px;min-height:285px;}.buddy-subject h3{font-size:18px;}.buddy-subject p{font-size:13px;}.subject-symbol{font-size:48px;}.subject-number{font-size:8px;}.subject-bottom{font-size:10px;}.buddy-demo,.buddy-recovery,.buddy-membership,.buddy-today{grid-template-columns:1fr;gap:30px;}.buddy-demo{padding:65px 0;}.ratio-preview{padding:22px;}.buddy-recovery,.buddy-membership{padding:25px;}.recovery-example{padding:23px;}.crossed-method{font-size:23px;}.correct-method{font-size:35px;}.plan-columns{grid-template-columns:1fr;gap:25px;}.buddy-plan{padding:65px 0;}.buddy-faq{margin:65px auto;}.buddy-final h2{font-size:42px;}.buddy-progress{padding:23px;}.readiness-row{grid-template-columns:1fr;}.readiness-row>span{text-align:left;}.today-main{padding:25px;}.today-main h2{font-size:30px;}.journey-bar{gap:8px;}.journey-bar progress{width:100%;}.journey-visual{padding:14px;}.skill-row{flex-direction:column;gap:5px;}.desktop-break{display:none;}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important;}}
.lab-controls { margin:24px 0;display:flex;flex-direction:column;gap:12px; }
.lab-controls input[type=range] { width:100%;accent-color:var(--brand);min-height:44px; }
.lab-choice,.evidence-line { display:block;width:100%;padding:17px 20px;border:1px solid var(--line-strong);border-radius:10px;text-align:left;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer; }
.lab-choice[aria-pressed=true],.evidence-line[aria-pressed=true] { background:var(--brand-tint);border:2px solid var(--brand);padding:16px 19px; }
.lab-choice[aria-pressed=true]:before,.evidence-line[aria-pressed=true]:before { content:'✓ ';font-weight:700; }
.lab-input,.lab-writing { padding:13px;width:100%;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit; }
.lab-input { max-width:250px; }
.order-row { display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface); }
.order-row>span { flex:1; }
.order-row .btn { min-width:44px;padding:8px; }
.writing-label { display:block;font-weight:600; }
.lab-writing { display:block;margin-top:12px;font-weight:400; }
.lab .q__feedback { margin-top:20px; }

.subject-editorial{width:100%;height:145px;object-fit:contain;mix-blend-mode:multiply;margin:12px 0;border-radius:8px;}
@media(max-width:650px){.subject-editorial{height:100px;}}
[data-theme="dark"] .subject-editorial,[data-theme="dark"] .buddy-hero-art img{mix-blend-mode:normal;}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .subject-editorial,:root:not([data-theme="light"]) .buddy-hero-art img{mix-blend-mode:normal;}}

.visual-reminder{max-height:260px;overflow:auto;} .visual-reminder>svg,.visual-reminder>img{display:block;max-height:240px;max-width:100%;margin:auto;}

.spread--editorial{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0;background:transparent;}.spread--editorial>img{grid-column:1/-1;display:block;width:100%;height:auto;}.spread--editorial .spread__note{position:static;max-width:none;width:auto;transform:none;padding:16px;background:var(--surface);font-size:14px;}.spread--editorial .spread__note strong{display:block;margin-bottom:6px;}@media(max-width:650px){.spread--editorial{grid-template-columns:1fr;}}
