/* Readable type, generous layouts and the shared Cybox invitation. */
:root{--text-small:1rem}
.eyebrow,.step-kicker,.demo-step,.game-label{letter-spacing:.045em}
.brand-original{font-size:1.375rem;letter-spacing:-.04em}
.brand-original small{font-size:1rem;letter-spacing:.03em;line-height:1.15;margin-top:2px}
.brand-badge{width:40px;height:42px}
.desktop-nav{font-size:1rem;gap:22px;margin-right:12px}
.button-small{font-size:1rem;min-height:46px}
.hero-reassurance{align-items:flex-start;max-width:440px}
.hero-reassurance .icon{margin-top:3px}
.demo-wrap{max-width:500px}
.demo-card{padding:30px;min-height:590px}
.demo-progress{margin-block:22px 18px}
.demo-step{letter-spacing:.04em}
.demo-topline{gap:8px;flex-wrap:wrap}
.demo-footnote{justify-content:flex-start;align-items:flex-start}
.demo-footnote .status-dot{margin-top:9px;flex:none}
.demo-code{line-height:1.75;min-height:130px}
.demo-option{min-height:54px}
.demo-feedback{min-height:0}
.demo-feedback:empty{display:none}
.demo-instruction{margin-bottom:18px}
.demo-next{min-height:50px}
.demo-caption{line-height:1.6}
.fact{padding:26px 20px}
.fact p{font-size:1.25rem}
.fact span{line-height:1.6}
.practice-visual,.feedback-visual{aspect-ratio:auto;min-height:460px;overflow:visible}
.practice-visual{padding:30px}
.editor-lines{font-size:1rem;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;padding:16px 12px}
.editor-lines p>span{width:22px}
.editor-top{gap:10px;flex-wrap:wrap;padding:12px}
.hint-bubble{margin-left:0;padding:16px;gap:10px}
.hint-bubble p{font-size:1rem}
.sample-answer{font-size:1rem;align-items:flex-start}
.sample-answer .icon{margin-top:4px;flex:none}
.feedback-visual{padding:32px}
.feedback-card{padding:25px;transform:rotate(-1deg)}
.feedback-author{align-items:flex-start}
.feedback-author strong{line-height:1.5}
.feedback-author div>span{line-height:1.55}
.feedback-card>p{font-size:1.0625rem}
.feedback-action{font-size:1rem;align-items:flex-start;padding:13px}
.feedback-action .icon{margin-top:4px}
.progress-note{max-width:100%;padding:18px;transform:rotate(1deg)}
.progress-note div>span{line-height:1.5}
.photo-badge{font-size:1rem;line-height:1.4;left:18px;bottom:18px;max-width:calc(100% - 36px);border-radius:18px;padding:12px 16px}
.photo-badge .icon{width:20px;height:20px}
.day-tab{min-height:86px;white-space:normal;line-height:1.5}
.day-tab>span{font-size:1rem}
.day-result{align-items:flex-start;line-height:1.6}
.day-result .icon{margin-top:4px}
.game-label{font-size:1rem}
.marathon-bottom{align-items:center}
.marathon-bottom p>span{max-width:500px;line-height:1.6}
.section-note{max-width:940px;margin-inline:auto;line-height:1.75}
.course-metrics span{line-height:1.55}
.parent-number{color:#62725b}
.parents-page .parent-number{font-family:var(--font-body);font-weight:700}
.course-chip{line-height:1.5;border-radius:18px}
.curriculum-grid p{line-height:1.75}
.site-footer{padding-bottom:34px}
.footer-top{grid-template-columns:.9fr 1fr 1.1fr 1.2fr;gap:30px}
.footer-top nav{font-size:1rem;line-height:1.6}
.footer-top nav a{overflow-wrap:anywhere}
.footer-tagline,.footer-hours{font-size:1rem;line-height:1.65}
.footer-label{font-size:1rem;color:#bcc7b6}
.footer-bottom{align-items:flex-start;font-size:1rem;gap:24px}
.footer-docs{font-size:1rem;gap:12px 24px;justify-content:flex-end}
.footer-socials{display:flex;flex-wrap:wrap;gap:12px;padding-top:34px;margin-top:34px;border-top:1px solid #363d30}
.footer-socials a{display:inline-flex;gap:10px;align-items:center;min-height:50px;padding:12px 20px;border:1px solid #4a5245;border-radius:999px;font-size:1rem;font-weight:650;background:#252a22;transition:background .2s,transform .2s,border-color .2s}
.footer-socials a:hover{background:#344a32;border-color:#8bb582;transform:translateY(-2px)}
.footer-socials .icon{width:21px;height:21px}
.document-sidebar{max-height:calc(100dvh - var(--promo-space) - 60px)}
.document-sidebar nav{line-height:1.65}
.document-body{font-size:1.0625rem}
.document-body code,.document-body pre{font-size:1rem}
.blog-category{font-size:1rem;letter-spacing:.02em}
.blog-card-bottom{align-items:flex-end}
.blog-card-bottom>a{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid var(--line);border-radius:50%}
.enroll-dialog{width:min(640px,calc(100% - 32px));padding:40px;border-radius:32px;max-height:calc(100dvh - 32px);background:#fff;border-color:var(--line)}
.enroll-dialog>.eyebrow{font-size:1rem;padding-right:34px;letter-spacing:.05em}
.enroll-dialog h2{font-family:var(--font-heading);font-size:clamp(2rem,3vw,2.625rem);font-weight:500;line-height:1.14;letter-spacing:-.045em}
.dialog-intro{font-size:1.0625rem;line-height:1.75;margin-top:20px}
.enroll-dialog form>label:not(.consent-label){font-size:1rem;margin-top:20px;margin-bottom:9px}
.enroll-dialog input:not([type=checkbox]),.enroll-dialog textarea{font-size:1.0625rem;padding:15px 17px;border-radius:16px;background:#fafbf8}
.enroll-dialog input:not([type=checkbox]){height:56px}
.enroll-dialog input::placeholder,.enroll-dialog textarea::placeholder{font-size:1rem;color:#66715f}
.enroll-dialog textarea{min-height:88px}
.consent-label{font-size:1rem;line-height:1.65;gap:12px;align-items:flex-start;margin-top:23px}
.consent-label input{width:21px;height:21px;margin-top:3px;flex:none}
.form-help,.dialog-contact{font-size:1rem;line-height:1.7}
.form-status{font-size:1rem;line-height:1.65;border-radius:16px}
.form-status.is-success{background:#e7f4e5;color:#275a34;border:1px solid #b7d7b4;padding:16px 18px}
.form-status.is-error{background:#fff0e9;color:#833926;border:1px solid #e7c1b2;padding:16px 18px}
.enroll-dialog form>.button{font-size:1.0625rem;min-height:58px;margin-top:24px}
.dialog-close{width:44px;height:44px;top:16px;right:16px;background:var(--paper);font-size:1.5rem}
.promo-bar{display:flex;gap:24px;padding:18px 24px;background:#f5f7f0;border:1px solid #d9e1d1;border-radius:26px;box-shadow:0 5px 32px #1f301814;left:20px;right:20px;bottom:12px}
.promo-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:17px;background:#dff1d7;color:#426d3b;font-size:2.5rem}
.promo-copy{padding:0;flex:1}
.promo-copy strong{font-family:var(--font-heading);font-size:1.375rem;font-weight:500;line-height:1.35;letter-spacing:-.035em}
.promo-copy>span{font-size:1rem;color:#596653;margin-top:5px;line-height:1.55}
.promo-timer{gap:4px}
.promo-timer>span{font-size:1rem;font-weight:500;color:#596653}
.countdown-digits{display:flex;gap:10px;font-size:1.125rem;line-height:1.5;white-space:nowrap;align-items:baseline}
.countdown-days{font-size:1rem}
.countdown-digits b{font-weight:750;font-variant-numeric:tabular-nums}
.countdown-clock{display:flex;gap:3px}
.promo-bar>.button{font-size:1rem;min-height:54px;padding:14px 24px;background:var(--green);color:#0c2914}
.promo-bar>.button:hover{background:var(--green-hover)}
@media(max-width:1199px){.site-header{gap:16px;padding-left:18px}.desktop-nav{gap:16px;margin-right:0}.brand-original{font-size:1.25rem}.hero{gap:35px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 55px}.promo-bar{gap:18px;padding:17px 20px}.promo-mark{display:none}.promo-copy strong{font-size:1.25rem}.promo-copy>span{font-size:1rem}.day-tabs{display:flex;overflow:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}.day-tab{min-width:155px;flex:1;scroll-snap-align:start}.document-layout{gap:35px}}
@media(max-width:1023px){.desktop-nav{display:none}.menu-toggle{display:flex}.header-start{display:none}.hero{grid-template-columns:1fr;min-height:0;gap:45px;padding-block:55px}.hero-copy{max-width:720px;margin-inline:auto;text-align:center}.hero-copy .eyebrow{justify-content:center}.hero h1{font-size:4rem}.hero-description{max-width:650px;margin-inline:auto}.hero-actions{display:flex;flex-direction:row;justify-content:center}.hero-actions .button{width:auto;min-width:0}.hero-reassurance{margin-inline:auto;justify-content:center;max-width:none}.demo-wrap{justify-self:center;max-width:600px}.demo-card{min-height:0}.demo-caption{font-size:1rem}.feature-row,.feature-reverse{gap:32px}.practice-visual{padding:23px}.feedback-visual{padding:25px}.facts{gap:16px}.fact{padding:25px 18px}.promo-bar{gap:15px}.promo-copy strong{font-family:var(--font-body);font-weight:750;font-size:1rem;letter-spacing:-.02em}.promo-copy>span{display:none}.promo-bar>.button{padding-inline:18px}.promo-timer>span{font-size:1rem}.document-sidebar{max-height:none}.marathon-bottom{align-items:flex-start;flex-direction:column}.marathon-bottom .button{align-self:flex-start}.blog-card-content{padding:24px}.blog-grid{gap:20px}.parents-options .parent-card{padding:27px}}
@media(max-width:899px){.feature-row,.feature-reverse{grid-template-columns:minmax(0,1fr)}.feature-reverse .feature-copy,.feature-reverse .feature-visual{grid-column:auto;grid-row:auto}.feature-copy{max-width:650px}.feature-visual{max-width:650px;margin-inline:auto}.practice-visual,.feedback-visual{min-height:0;padding:32px}.feature-row{gap:30px}.day-content{grid-template-columns:1fr;gap:30px}.game-preview{min-height:330px}.course-card{grid-template-columns:1fr}.course-purchase{border-left:0;border-top:1px solid #dcdfd5}.parents-options{grid-template-columns:1fr}.document-layout{grid-template-columns:1fr}.document-sidebar{position:static}.blog-grid{grid-template-columns:1fr}.blog-card:last-child{max-width:none;grid-column:auto}.blog-cover{height:260px}.parent-grid{grid-template-columns:1fr}.parent-card{display:block}.parent-number{margin-bottom:14px}.parent-card h3{font-size:1.375rem}.facts{grid-template-columns:1fr}.fact{display:grid;grid-template-columns:32px minmax(0,1fr);text-align:left;gap:4px 15px;align-items:center;padding:22px 25px}.fact>.icon{grid-row:1/3;margin:0;width:27px;height:27px}.fact p{font-size:1.125rem;margin:0}.fact span{grid-column:2;margin:0}.footer-docs{justify-content:flex-start}.footer-bottom{flex-direction:column}}
@media(max-width:699px){.site-header{width:calc(100% - 24px);gap:8px;padding:7px 8px 7px 12px}.brand-original{gap:7px;font-size:1.125rem}.brand-original small{font-size:1rem;letter-spacing:0}.brand-badge{width:32px;height:36px;padding:4px}.header-actions{gap:5px}.button-small{min-height:44px;padding:9px 13px}.menu-toggle{width:44px;height:44px}.hero{padding-block:40px;gap:32px}.hero h1{font-size:2.875rem}.hero .eyebrow{font-size:1rem;letter-spacing:.02em;flex-wrap:wrap}.hero-description{font-size:1.0625rem}.hero-actions{display:grid;grid-template-columns:1fr;max-width:440px;gap:12px}.hero-actions .button{width:100%;font-size:1rem;min-height:56px}.hero-reassurance{font-size:1rem;text-align:left;max-width:440px}.demo-wrap{max-width:500px}.demo-card{padding:25px}.demo-title{font-size:1.5rem}.demo-options{gap:8px}.demo-option{font-size:1rem;padding-inline:8px}.demo-topline .mini-brand{font-size:1rem}.demo-footnote{font-size:1rem}.demo-code{font-size:1rem;padding:17px 14px}.demo-topline .icon{width:20px}.section-heading>p:not(.eyebrow){font-size:1.0625rem}.practice-visual,.feedback-visual{padding:23px}.editor-lines{font-size:1rem}.hint-bubble{align-items:flex-start;padding:14px}.feedback-card{padding:20px;transform:none}.progress-note{transform:none}.photo-badge{font-size:1rem;left:14px;bottom:14px;max-width:calc(100% - 28px)}.feature-copy>p{font-size:1.0625rem}.marathon-board{padding:20px}.day-content{padding:30px 0}.day-tab{min-width:145px}.day-panel>p{font-size:1.0625rem}.marathon-bottom{padding:24px 0 0}.marathon-bottom .button{width:100%}.course-info,.course-purchase{padding:28px}.course-metrics{gap:12px}.course-metrics span{font-size:1rem}.teacher-name{font-size:1.125rem}.footer-top{grid-template-columns:1fr 1fr;gap:30px 22px}.footer-top>div{grid-column:1/-1}.footer-top nav:last-child{grid-column:1/-1}.footer-socials{gap:10px}.footer-socials a{padding:12px 16px;flex:1;justify-content:center;min-width:130px}.footer-docs{gap:14px 22px}.document-body{font-size:1rem}.page-lead{font-size:1.0625rem}.page-meta{font-size:1rem}.page-hero .eyebrow{font-size:1rem}.breadcrumbs{font-size:1rem}.document-sidebar nav{font-size:1rem}.enroll-dialog{width:calc(100% - 24px);padding:30px 24px 24px;max-height:calc(100dvh - 24px);border-radius:25px}.enroll-dialog h2{font-size:2rem}.enroll-dialog>.eyebrow{font-size:1rem;margin-bottom:20px;padding-right:34px}.dialog-close{top:12px;right:12px}.dialog-intro{font-size:1rem}.enroll-dialog form>label:not(.consent-label){font-size:1rem}.enroll-dialog textarea{min-height:86px}.form-help,.dialog-contact,.consent-label{font-size:1rem}.promo-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;left:8px;right:8px;bottom:8px;padding:13px 15px;border-radius:22px}.promo-copy{grid-column:1/-1;padding:0}.promo-copy strong{font-size:1rem;line-height:1.4}.promo-timer{grid-column:1;grid-row:2;align-items:flex-start;gap:2px}.promo-timer>span{font-size:1rem;line-height:1.4}.countdown-digits{font-size:1rem;gap:7px;line-height:1.4}.countdown-clock{gap:1px}.countdown-days{font-size:1rem}.promo-bar>.button{grid-column:2;grid-row:2;font-size:1rem;min-height:52px;max-width:none;padding:12px 16px;gap:7px}.promo-bar>.button .icon{display:none}.final-section .eyebrow{max-width:100%;font-size:1rem}.final-note{font-size:1rem}}
@media(max-width:359px){.hero h1{font-size:2.5rem}.container{width:calc(100% - 32px)}.site-header{padding-left:10px}.header-actions .login-link{padding-inline:10px}.demo-card{padding:20px}.demo-options{grid-template-columns:1fr}.demo-option{min-height:46px}.demo-code{padding:14px 11px}.practice-visual,.feedback-visual{padding:19px}.feedback-card{padding:16px}.feedback-author{gap:8px}.editor-lines{padding:14px 9px}.editor-lines p>span{width:17px}.footer-top{grid-template-columns:1fr}.footer-top nav{grid-column:1}.promo-bar{padding:12px;gap:8px}.promo-bar>.button{padding-inline:11px}.countdown-digits{gap:5px}.countdown-clock{gap:0}.course-info,.course-purchase{padding:23px}}
@media(prefers-reduced-motion:reduce){.footer-socials a{transition:none}.footer-socials a:hover{transform:none}}
@media print{.promo-bar{display:none!important}.site-footer{break-inside:avoid}}
.enroll-question{margin-top:20px;border:1px solid var(--line);border-radius:16px;padding:14px 17px;background:#fafbf8}
.enroll-question summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;font-size:1rem;font-weight:650;line-height:1.5}
.enroll-question summary::-webkit-details-marker{display:none}
.enroll-question summary>span{font-size:1.5rem;line-height:1;transition:transform .2s}
.enroll-question[open] summary>span{transform:rotate(45deg)}
.enroll-question label{display:block;font-size:1rem;margin:14px 0 8px}
.enroll-dialog .enroll-question textarea{background:#fff}
@media(prefers-reduced-motion:reduce){.enroll-question summary>span{transition:none}}
