/* Elmday site v3.3 (Direction C, "tutor's bookplate"). Static; one small first-party script (join.js) for the waitlist form. No third-party requests. */
@font-face{font-family:"Libre Caslon Display";src:url("fonts/libre-caslon-display-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url("fonts/libre-caslon-text-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url("fonts/libre-caslon-text-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/inter-variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --cream:#F7F1E8;
  --paper:#FBF7F1;
  --sand:#EFE6D8;
  --line:#E3D8C6;
  --moss:#1F3D2B;
  --moss-2:#2C5139;
  --moss-soft:#5B6F60;
  --coral:#E07A5F;
  --ink:#1A1A1A;
  --ink-2:#4A4A44;
  --display:"Libre Caslon Display","Libre Caslon Text",Georgia,serif;
  --serif:"Libre Caslon Text",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --wrap:1180px;
  --pad:22px;
  --radius:16px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:var(--moss);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--moss-2)}
:focus-visible{outline:2px solid var(--moss);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--moss);margin:0}
p{margin:0}
i{font-style:italic}

.skip{position:absolute;left:-999px;top:0;background:var(--moss);color:var(--cream);padding:10px 14px;z-index:100}
.skip:focus{left:12px;top:12px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.narrow{max-width:800px}
.center{text-align:center}

.eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--moss-soft);margin-bottom:16px}
.eyebrow.light{color:#B9C7BA}

/* Buttons: cream on moss, 12px radius */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:12px;background:var(--moss);color:var(--cream);font-weight:600;font-size:16px;line-height:1.2;text-decoration:none;transition:background .15s ease}
.btn:hover{background:var(--moss-2);color:var(--cream)}
.btn-small{min-height:42px;padding:0 16px;font-size:15px;font-weight:600}
.btn-light{background:var(--cream);color:var(--moss)}
.btn-light:hover{background:#fff;color:var(--moss)}
.link-arrow{font-weight:500;font-size:16px;color:var(--moss);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px}
.link-arrow::after{content:" \2193"}
.link-arrow:hover{border-color:var(--moss)}

/* Header. Mobile: compact lockup, plate ~34px (24-48px rule). >=720px: full lockup, plate ~50px (>=48px rule). */
.site-header{background:var(--cream);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px}
.brand{display:block;line-height:0;margin-left:-14px}
.brand img{height:70px;width:auto;margin:-1px 0}
.nav{display:none;gap:34px}
.nav a{text-decoration:none;color:var(--ink-2);font-size:15px;font-weight:500}
.nav a:hover{color:var(--moss)}

/* Hero */
.hero{padding:40px 0 56px}
.hero-grid{display:grid;gap:44px}
.hero h1{font-family:var(--display);font-size:clamp(44px,11.6vw,80px);line-height:1.06;letter-spacing:-0.01em;max-width:12ch}
.lede{font-size:18px;line-height:1.6;color:var(--ink-2);margin-top:22px;max-width:38ch}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px;margin-top:32px}
.cta-row .btn{width:100%}
.fine{margin-top:18px;font-size:14px;line-height:1.5;color:var(--ink-2);max-width:44ch}

.hero-visual{margin:0}
.specimen{background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:22px 18px 10px}
.specimen-row + .specimen-row{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}
.specimen-label{display:flex;align-items:baseline;gap:10px;font-size:14px;line-height:1.4;font-weight:500;color:var(--ink-2);margin-bottom:12px}
.specimen-label span{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--moss);min-width:10px}
.specimen img{width:100%;margin:0 auto}
.specimen img.sounds{width:75%;border-radius:14px;background:#fff}
.specimen .card{background:#fff;border-radius:14px;padding:4px 0}
.hero-visual figcaption{margin-top:12px;font-size:13px;color:var(--ink-2);text-align:right}

/* Intro statement */
.intro{padding:8px 0 64px}
.statement{font-family:var(--serif);font-size:clamp(23px,5.4vw,32px);line-height:1.4;color:var(--moss)}

/* Sections */
.section{padding:72px 0}
.section.tint{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-head{margin-bottom:44px;max-width:660px}
.section-head h2{font-size:clamp(30px,7.4vw,40px);line-height:1.18}
.section-sub{margin-top:16px;color:var(--ink-2);font-size:17px;max-width:52ch}

/* Steps */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:36px}
.step{border-top:1px solid var(--moss);padding-top:22px}
.step-num{display:block;font-family:var(--serif);font-style:italic;font-size:22px;line-height:1;color:var(--moss);margin-bottom:18px}
.step h3{font-size:24px;line-height:1.2;margin-bottom:10px}
.step p{color:var(--ink-2);max-width:44ch}

/* Levels */
.levels-grid{display:grid;gap:48px}
.level-list{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
.level-list li{display:flex;align-items:baseline;gap:18px;padding:11px 0;border-bottom:1px solid var(--line);font-size:17px;color:var(--ink)}
.level-list .lv{flex:0 0 70px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--moss-soft)}
.level-list b{font-weight:600;color:var(--moss)}

/* Certificate: seal plate ~112px (>=96px full-detail rule), ~20% of certificate height, clearspace >= 50% plate width. */
.certificate-wrap{margin:0;align-self:start}
.certificate{background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:48px 28px 56px;text-align:center;position:relative;min-height:560px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.certificate::before{content:"";position:absolute;inset:10px;border:1px solid var(--line);border-radius:3px;pointer-events:none}
.seal{height:176px;width:auto;margin:0 auto 22px}
.cert-kicker{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--moss-soft);margin-bottom:14px}
.cert-title{font-family:var(--display);font-size:clamp(40px,10vw,48px);line-height:1.08;letter-spacing:-0.01em;color:var(--moss)}
.cert-detail{font-family:var(--serif);font-size:22px;color:var(--ink-2);margin-top:10px}
.certificate-wrap figcaption{margin-top:14px;font-size:14px;color:var(--ink-2);text-align:center}

/* Subjects */
.subjects{display:grid;gap:16px}
.subject{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px 30px}
.subject.live{background:#fff;border-color:#D9CDB8}
.subject h3{font-size:28px;line-height:1.2;margin:8px 0 10px}
.subject p{color:var(--ink-2)}
.subject em{font-style:normal;font-weight:600;color:var(--moss)}
.status{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--moss-soft)}
.subject.live .status{color:var(--moss)}

/* Trust */
.trust-grid{display:grid;gap:8px}
.trust-list{display:grid;gap:28px}
.trust-item{padding-top:22px;border-top:1px solid var(--line)}
.trust-item h3{font-size:22px;line-height:1.25;margin-bottom:8px}
.trust-item p{color:var(--ink-2);max-width:56ch}

/* Founding */
.founding-card{background:var(--moss);color:var(--cream);border-radius:24px;padding:40px 24px;display:grid;gap:34px}
.founding-card h2{color:var(--cream);font-size:clamp(30px,7.4vw,40px);line-height:1.18;margin-bottom:16px}
.founding-copy p{color:#DCE3DA;max-width:44ch}
.founding-offer{background:rgba(247,241,232,.06);border:1px solid rgba(247,241,232,.2);border-radius:16px;padding:26px 22px}
.price-label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#B9C7BA}
.price{font-family:var(--serif);font-size:20px;color:var(--cream);margin-top:10px;line-height:1.35}
.price .amount{font-size:40px;letter-spacing:-0.01em}
.price .or{font-style:italic;color:#C9D3C7;padding:0 4px}
.price-note{margin-top:12px;font-size:15px;line-height:1.55;color:#C9D3C7}
.founding-offer .btn{margin-top:22px;width:100%}
.price-fine{margin-top:12px;font-size:13px;line-height:1.5;color:#AFBDAE}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;position:relative;font-family:var(--serif);font-size:21px;color:var(--moss);line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:10px;height:10px;border-right:1.5px solid var(--moss);border-bottom:1.5px solid var(--moss);transform:translateY(-70%) rotate(45deg);transition:transform .2s ease}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details p{padding:0 0 24px;color:var(--ink-2);max-width:62ch}

/* Closing */
.closing{padding:48px 0 96px}
.closing h2{font-size:clamp(30px,7vw,40px);line-height:1.2;margin:0 auto 30px;max-width:20ch}

/* Footer: reversed full lockup, plate ~50px */
.site-footer{background:var(--moss);color:#C9D3C7;padding:28px 0 40px}
.footer-inner{display:grid;gap:14px;justify-items:start}
.footer-logo{height:100px;width:auto;margin-left:-20px}
.footer-links{display:flex;flex-wrap:wrap;gap:10px 28px}
.footer-links a{color:var(--cream);text-decoration:none;font-size:15px}
.footer-links a:hover{text-decoration:underline}
.copyright{font-size:13px;color:#9FB09F}

/* >= 720px */
@media (min-width:720px){
  :root{--pad:36px}
  .header-inner{height:100px}
  .brand{margin-left:-21px}
  .brand img{height:100px;margin:0}
  .nav{display:flex}
  .cta-row .btn{width:auto}
  .hero{padding:64px 0 80px}
  .specimen{padding:28px 28px 16px}
  .steps{grid-template-columns:repeat(3,1fr);gap:40px}
  .subjects{grid-template-columns:repeat(3,1fr)}
  .founding-card{padding:56px 52px}
  .level-list{grid-template-columns:1fr 1fr;grid-template-rows:repeat(7,auto);grid-auto-flow:column;column-gap:32px}
  .footer-inner{grid-template-columns:auto 1fr auto;align-items:center}
  .footer-links{justify-content:center}
}

/* >= 1040px */
@media (min-width:1040px){
  body{font-size:18px}
  .hero{padding:80px 0 104px}
  .hero-grid{grid-template-columns:1.08fr 1fr;align-items:center;gap:72px}
  .intro{padding:8px 0 88px}
  .section{padding:104px 0}
  .steps{gap:56px}
  .levels-grid{grid-template-columns:1.5fr 1fr;gap:64px;align-items:center}
  .trust-grid{grid-template-columns:1fr 1.3fr;gap:80px;align-items:start}
  .founding-card{grid-template-columns:1.1fr 1fr;align-items:center;gap:56px;padding:72px 68px}
  .founding-offer{padding:34px 32px}
}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* v3.1 polish */
.section.founding{padding-top:56px}
@media (min-width:720px){
  .level-list li{font-size:16px;gap:14px}
  .level-list .lv{flex-basis:74px;white-space:nowrap}
}
@media (min-width:1040px){.section.founding{padding-top:88px}}

/* v3.2 native waitlist form (#join) */
.section.founding{position:relative}
.anchor-alias{position:absolute;top:0;left:0}
.founding-price{margin-top:30px;padding-top:24px;border-top:1px solid rgba(247,241,232,.2)}
.join-panel{background:var(--paper);color:var(--ink);border-radius:18px;padding:28px 22px 26px;box-shadow:0 1px 0 rgba(0,0,0,.04),0 18px 40px -24px rgba(0,0,0,.45);position:relative}
.join-panel::before{content:"";position:absolute;inset:8px;border:1px solid var(--line);border-radius:12px;pointer-events:none}
.join-panel > *{position:relative}
.join-kicker{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--moss-soft)}
.join-title{font-family:var(--serif);font-size:26px;line-height:1.2;color:var(--moss);margin:8px 0 22px}
.field{margin:0 0 18px;padding:0;border:0;min-width:0}
.field label,.field legend{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;padding:0;font-size:15px;font-weight:600;color:var(--ink);margin-bottom:8px}
.opt{font-size:12px;font-weight:500;color:var(--moss-soft);letter-spacing:.02em}
.join-form input[type=email],.join-form select{display:block;width:100%;min-height:52px;padding:0 16px;border:1px solid #CFC2AC;border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-size:17px;line-height:1.2;transition:border-color .15s ease,box-shadow .15s ease;-webkit-appearance:none;appearance:none}
.join-form input[type=email]::placeholder{color:#9A958A}
.join-form input[type=email]:hover,.join-form select:hover{border-color:#B5A68D}
.join-form input[type=email]:focus,.join-form select:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px rgba(31,61,43,.16)}
.join-form input[type=email][aria-invalid=true]{border-color:#B4492F;box-shadow:0 0 0 3px rgba(224,122,95,.2)}
.field-error{margin-top:8px;font-size:14px;line-height:1.45;color:#A63F27;display:flex;gap:8px;align-items:baseline}
.field-error::before{content:"";flex:0 0 6px;height:6px;border-radius:50%;background:var(--coral);transform:translateY(-2px)}
.field-error[hidden]{display:none}
.select{position:relative}
.select::after{content:"";position:absolute;right:18px;top:50%;width:8px;height:8px;border-right:1.5px solid var(--moss);border-bottom:1.5px solid var(--moss);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.join-form select{padding-right:42px;cursor:pointer}
.join-form select:has(option[value=""]:checked){color:#77736A}
.join-form select option{color:var(--ink)}
.field-row{display:grid;gap:0 16px}
.segmented{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #CFC2AC;border-radius:12px;background:#fff;padding:4px;gap:4px;min-height:52px}
.segmented input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.segmented label{display:flex;align-items:center;justify-content:center;margin:0;min-height:42px;border-radius:9px;font-size:16px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:background .15s ease,color .15s ease}
.segmented label:hover{background:var(--cream);color:var(--moss)}
.segmented input:checked + label{background:var(--moss);color:var(--cream)}
.segmented input:focus-visible + label{outline:2px solid var(--moss);outline-offset:2px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.join-submit{width:100%;margin-top:6px;border:0;cursor:pointer;font-family:inherit}
.join-submit:disabled{cursor:progress;background:var(--moss-2)}
.form-alert{display:none;margin-top:16px;padding:14px 16px;border-radius:12px;background:#FBEDE7;border:1px solid #EDC3B5;color:#6E2C1C;font-size:14.5px;line-height:1.5}
.form-alert:target,.form-alert.is-visible{display:block}
.form-alert strong{font-weight:600}
.form-alert a{color:#6E2C1C}
.form-alert:focus{outline:none}
.join-privacy{margin-top:18px;font-size:13.5px;line-height:1.5;color:var(--ink-2)}
.join-fine{margin-top:6px;font-size:13px;line-height:1.5;color:#6B685F}
.join-success{display:none;text-align:center;padding:20px 6px 10px}
.join-success:focus{outline:none}
.join-mark{color:var(--moss);margin:0 auto 14px}
.join-success .join-title{margin:0 0 8px;font-size:30px}
.join-success > p:not(.join-fine){font-size:17px;color:var(--ink-2)}
.join-success .join-fine{margin-top:18px}
.join-panel.is-done .join-form,.join-panel:has(#joined:target) .join-form{display:none}
.join-panel.is-done .join-success,.join-success:target{display:block}
@media (min-width:520px){.field-row{grid-template-columns:1fr 1fr}}
@media (min-width:720px){.join-panel{padding:38px 36px 32px}}
@media (min-width:1040px){.section.founding .founding-card{align-items:start}.founding-copy{padding-top:10px}.join-panel{padding:42px 40px 34px}}
.nw{white-space:nowrap}
.join-panel.is-done{display:flex;flex-direction:column;justify-content:center}

/* v3.3 Starter levels, explored-together card, little-ones section */
.level-group + .level-group{margin-top:30px}
.level-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;font-family:var(--serif);font-size:19px;color:var(--moss)}
.level-group-head .note{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--moss-soft);text-align:right}
.level-list .lv{flex-basis:84px}
.level-list .ln small{display:block;font-size:13.5px;line-height:1.4;text-wrap:balance;color:var(--ink-2);margin-top:2px}
.level-list.starter{border-top-color:var(--moss-soft)}
.level-list.starter .lv{color:#B55A40}
.certificate{min-height:500px}
.explored-card{position:relative;margin:18px auto 0;max-width:300px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px 24px 20px;text-align:center}
.explored-card::before{content:"";position:absolute;left:50%;top:0;width:44px;height:3px;margin-left:-22px;background:var(--coral);border-radius:0 0 3px 3px}
.explored-kicker{font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#B55A40}
.explored-title{font-family:var(--display);font-size:30px;line-height:1.1;color:var(--moss);margin-top:8px}
.explored-detail{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--ink-2);margin-top:4px}
.little-grid{display:grid;gap:44px}
.little-copy .section-head{margin-bottom:36px}
.ideas{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:34px 28px 30px;position:relative;align-self:start}
.ideas::before{content:"";position:absolute;inset:10px;border:1px solid var(--line);border-radius:3px;pointer-events:none}
.ideas > *{position:relative}
.ideas-kicker{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--moss-soft);margin-bottom:10px}
.ideas h3{font-size:25px;line-height:1.25;margin-bottom:18px}
.ideas ul{list-style:none;margin:0;padding:0;counter-reset:idea}
.ideas li{counter-increment:idea;display:grid;grid-template-columns:30px 1fr;align-items:baseline;padding:13px 0;border-top:1px solid var(--line);font-family:var(--serif);font-size:18px;line-height:1.45;color:var(--ink)}
.ideas li::before{content:counter(idea);font-style:italic;font-size:17px;color:#B55A40}
.ideas li:last-child{padding-bottom:0}
.section.ruled{padding-top:0}
.section.ruled > .wrap::before{content:"";display:block;height:1px;background:var(--line);margin-bottom:72px}
@media (min-width:720px){
  .level-list.starter{grid-template-rows:repeat(2,auto)}
  .level-list .lv{flex-basis:84px}
  .ideas{padding:40px 38px 36px}
}
@media (min-width:1040px){
  .levels-grid{align-items:start}
  .certificate-wrap{margin-top:8px}
  .certificate{min-height:470px}
  .explored-card{margin:-34px 0 0 auto;margin-right:-14px;transform:none;box-shadow:0 1px 0 rgba(0,0,0,.03),0 14px 30px -22px rgba(31,61,43,.45);background:#FFFDF9}
  .little-grid{grid-template-columns:1.25fr 1fr;gap:80px;align-items:start}
  .ideas{margin-top:6px}
  .section.ruled > .wrap::before{margin-bottom:104px}
}

/* 2026-10-03: two subject cards (reading, spelling) */
@media (min-width:720px){.subjects.two{grid-template-columns:repeat(2,1fr);max-width:800px;margin-left:auto;margin-right:auto}}
