:root{--navy:#1b3a5c;--teal:#0f766e;--bg:#f6f8fb;--text:#1f2933;--muted:#4b5563;--err:#b42318;--radius:12px}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--text);line-height:1.6;background:#fff}
.container{max-width:1080px;margin:0 auto;padding:0 20px}.narrow{max-width:640px}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:10}
a{color:var(--teal)}:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}
.site-header{background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:5}
.nav{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 20px}
.logo{font-weight:700;font-size:1.25rem;color:var(--navy);text-decoration:none;display:flex;align-items:center;gap:8px}
.logo-mark{background:var(--teal);color:#fff;border-radius:8px;width:32px;height:32px;display:grid;place-items:center}
nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:18px;margin:0;padding:0;align-items:center}
nav a{color:var(--text);text-decoration:none;font-weight:500}
.btn{display:inline-block;background:var(--teal);color:#fff!important;padding:12px 22px;border-radius:8px;border:2px solid var(--teal);font-weight:600;text-decoration:none;cursor:pointer;font-size:1rem}
.btn:hover{background:#115e59}.btn-small{padding:6px 14px}
.btn-outline{background:#fff;color:var(--teal)!important}
.hero{background:linear-gradient(135deg,var(--navy),#24507e);color:#fff;padding:80px 0;text-align:center}
.hero h1{font-size:clamp(2rem,5vw,3rem);margin:.2em 0}
.lead{font-size:1.2rem;max-width:680px;margin:0 auto 28px}
.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;opacity:.9}
.note{margin-top:20px;opacity:.95}
.section{padding:64px 0}.alt{background:var(--bg)}
h2{color:var(--navy);font-size:2rem;margin-top:0}
.facts{padding-left:1.2em}.facts li{margin-bottom:8px}
.table-wrap{overflow-x:auto;margin-top:24px}
table{width:100%;border-collapse:collapse;background:#fff}
caption{text-align:left;font-weight:600;padding:8px 0;color:var(--navy)}
th,td{border:1px solid #d1d5db;padding:10px 12px;text-align:left}
thead th{background:var(--navy);color:#fff}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.card{background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);padding:24px;box-shadow:0 2px 6px rgba(0,0,0,.04)}
.card h3{color:var(--navy);margin-top:0}
.field{margin-bottom:16px}
label{display:block;font-weight:600;margin-bottom:6px}
input,select{width:100%;padding:12px;border:1px solid #9ca3af;border-radius:8px;font-size:1rem}
[aria-invalid=true]{border-color:var(--err)}
.error{color:var(--err);margin:4px 0 0;font-size:.9rem;min-height:1em}
.fine{font-size:.85rem;color:var(--muted)}
.success{background:#ecfdf5;border:1px solid #10b981;padding:16px;border-radius:8px}
.toggle{display:inline-flex;border:2px solid var(--teal);border-radius:999px;margin-bottom:24px;overflow:hidden}
.toggle button{background:#fff;border:0;padding:8px 20px;font-size:1rem;cursor:pointer;color:var(--teal);font-weight:600}
.toggle button.active{background:var(--teal);color:#fff}
.price{font-size:2rem;font-weight:700;color:var(--navy);margin:0}
.tag{font-size:.8rem;color:var(--muted);margin:0 0 12px}
.featured{border:2px solid var(--teal)}
details{border-bottom:1px solid #e5e7eb;padding:14px 0}summary{font-weight:600;cursor:pointer}
.site-footer{background:var(--navy);color:#e5e7eb;padding:32px 0;font-size:.9rem}
.disclaimer{opacity:.9}
@media (max-width:640px){nav ul{gap:12px;font-size:.9rem}.hero{padding:56px 0}}
/* Practice explorer */
.hero-sm{padding:48px 0}
.picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);padding:20px}
fieldset{border:0;margin:0;padding:0}legend{font-weight:600;margin-bottom:6px;color:var(--navy)}
.tag{display:inline-block;background:#e6f4f2;color:var(--teal);border-radius:999px;padding:2px 10px;font-size:.85rem;font-weight:600;margin:0 6px 6px 0}
.tag.draft{background:#fef3c7;color:#92400e}
.passage{background:var(--bg);border-left:4px solid var(--teal);padding:12px 16px;border-radius:6px}
.story{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:12px 0}
.story div{border:2px dashed #9ca3af;border-radius:10px;padding:12px;background:#fffdf5;font-size:1.05rem}
textarea{width:100%;min-height:110px;padding:12px;border:1px solid #9ca3af;border-radius:8px;font:inherit}
.reveal{background:#ecfdf5;border:1px solid #10b981;padding:12px 16px;border-radius:8px;margin-top:12px}
.choices label{font-weight:400;display:flex;gap:8px;align-items:center;margin:6px 0}.choices input{width:auto}
.feedback{font-weight:600;margin-top:8px}.feedback.ok{color:#047857}.feedback.bad{color:var(--err)}
.row{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.review{background:#fff7ed;border:1px solid #fb923c;border-radius:8px;padding:12px 16px;font-size:.95rem}
/* Interactive practice (Grades 4–5 sample) */
.itabs{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.itab{border:2px solid var(--teal);background:#fff;color:var(--teal);border-radius:999px;padding:6px 16px;font-weight:600;font-size:1rem;cursor:pointer;min-height:44px}
.itab.on{background:var(--teal);color:#fff}
.focus{background:#eef2ff;border-radius:8px;padding:8px 12px}
.order{list-style:none;padding:0;counter-reset:st}
.order li{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:8px 10px;margin:6px 0}
.order li::before{counter-increment:st;content:counter(st);font-weight:700;color:var(--teal);min-width:1.4em}.order li>span:first-child{flex:1}
.order .mv{display:flex;gap:6px;flex-shrink:0}
.order .mv button{min-width:44px;min-height:44px;border:1px solid var(--teal);background:#fff;color:var(--teal);border-radius:8px;font-size:1.2rem;cursor:pointer}
.hl{line-height:2.2}
.sent{font:inherit;text-align:left;background:var(--bg);border:2px solid transparent;border-radius:6px;padding:4px 6px;margin:2px 0;cursor:pointer;color:inherit}
.sent[aria-pressed=true]{background:#fef08a;border-color:#ca8a04}
.bank{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.chip{border:1px solid var(--teal);background:#e6f4f2;color:var(--navy);border-radius:999px;padding:8px 14px;font-size:1rem;cursor:pointer;min-height:44px}
.frames p{font-size:1.1rem;line-height:2.4}
.blank{width:6ch;min-width:6ch;max-width:100%;display:inline-block;padding:4px 6px;border:0;border-bottom:2px solid var(--teal);border-radius:0;font-size:1rem;margin:0 4px;background:#f0fdfa}
.checklist label{font-weight:400;display:flex;gap:8px;align-items:flex-start;margin:6px 0}.checklist input{width:auto;margin-top:6px}
@media (max-width:640px){.card{padding:16px}.card .btn{width:100%;text-align:center}.card .row .btn{flex:1 1 140px}}
