:root {
  --primary:#4FA3D1; --accent:#6BC46D; --dark:#1F4E79; --text:#33424d;
  --muted:#697987; --soft:#E9EEF2; --white:#fff; --danger:#b44040; --warn:#a16d00;
  --border:#d9e6ee; --shadow:0 12px 34px rgba(31,78,121,.08); --radius:22px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:#f7fbfd;line-height:1.55}
a{color:var(--dark);text-decoration:none} a:hover{text-decoration:underline} button,input,textarea,select{font:inherit}.container{width:min(1160px,calc(100% - 2rem));margin-inline:auto}.narrow{width:min(860px,calc(100% - 2rem))}.section-space{padding:2rem 0 3rem}.skip-link{position:absolute;left:-10000px;top:auto}.skip-link:focus{left:1rem;top:1rem;background:#fff;padding:.7rem 1rem;border:2px solid var(--dark);z-index:1000}.site-header{background:rgba(255,255,255,.96);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;backdrop-filter:blur(8px)}.nav-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0}.brand{display:flex;align-items:center;gap:.75rem;color:var(--dark);text-decoration:none}.brand:hover{text-decoration:none}.brand-logo{width:60px;height:52px;object-fit:contain}.nav-links{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.inline-form{display:inline}.link-button{border:0;background:transparent;color:var(--dark);padding:0;cursor:pointer}.small{font-size:.9rem;color:var(--muted)}.kicker,.eyebrow{display:inline-flex;align-items:center;gap:.4rem;font-size:.83rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--dark);background:rgba(79,163,209,.12);padding:.35rem .7rem;border-radius:999px}.eyebrow{background:transparent;padding:0;color:var(--muted)}h1,h2,h3{color:var(--dark);line-height:1.14;margin-top:.3rem}h1{font-size:clamp(2rem,4vw,3.35rem);margin-bottom:.7rem}h2{font-size:clamp(1.45rem,2.2vw,2rem)}h3{font-size:1.18rem}.lead{font-size:1.13rem;max-width:60ch}.accent{color:var(--accent)}.hero{background:linear-gradient(180deg,#fff,#eef8fc);padding:2.2rem 0 2.8rem}.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:2rem;align-items:center}.hero-visual{position:relative}.hero-image{display:block;width:100%;border-radius:28px;border:1px solid var(--border);box-shadow:var(--shadow)}.cta-row{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.3rem 0}.trust-row{display:flex;gap:.6rem 1rem;flex-wrap:wrap;color:var(--muted);font-size:.92rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:0;border-radius:13px;background:linear-gradient(90deg,var(--primary),#61b6d7,var(--accent));color:#fff!important;font-weight:800;padding:.8rem 1.05rem;cursor:pointer;text-decoration:none;box-shadow:0 8px 18px rgba(79,163,209,.18)}.btn:hover{text-decoration:none;filter:brightness(.98);transform:translateY(-1px)}.btn:focus-visible,.choice:focus-within,input:focus,textarea:focus,select:focus,summary:focus-visible,a:focus-visible{outline:3px solid rgba(31,78,121,.28);outline-offset:3px}.btn-secondary{background:#fff;color:var(--dark)!important;border:1px solid #bad4e3;box-shadow:none}.btn-small{padding:.5rem .75rem;font-size:.9rem}.section-heading{margin-bottom:1.2rem;max-width:78ch}.cards-three,.cards-two{display:grid;gap:1rem;margin:1.3rem 0 2rem}.cards-three{grid-template-columns:repeat(3,1fr)}.cards-two{grid-template-columns:repeat(2,1fr)}.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.card-link{transition:.18s ease}.card-link:hover{transform:translateY(-3px);text-decoration:none}.step-number{font-size:2rem;font-weight:900;color:rgba(79,163,209,.35)}.mecha-band{display:grid;grid-template-columns:1.4fr .6fr;gap:1rem;align-items:center;background:linear-gradient(120deg,#eef9ff,#f6fff2);border:1px solid var(--border);border-radius:28px;padding:1.5rem;margin-bottom:3rem}.band-mascot{width:min(100%,280px);justify-self:end;border-radius:20px}.site-footer{background:#fff;border-top:1px solid var(--border);padding:1.2rem 0;margin-top:2rem}.footer-grid{display:flex;justify-content:space-between;gap:1.5rem}.footer-links{text-align:right}.messages{padding-top:1rem}.message{padding:.85rem 1rem;border:1px solid #cde3ef;background:#f0f8fd;border-radius:13px;margin:.45rem 0}.message.success{background:#eff9ef;border-color:#cce8cc}.message.warning{background:#fff9ea;border-color:#ecdca9}.message.error{background:#fff0f0;border-color:#e8c4c4}.form-card form p{display:grid;gap:.35rem}.form-card label{font-weight:650}.form-card ul.errorlist{color:var(--danger);padding-left:1.2rem}.input-text,input[type=text],input[type=email],input[type=password],input[type=number],textarea,select{width:100%;padding:.76rem .85rem;border:1px solid #c3d8e5;border-radius:12px;background:#fff;color:var(--text)}input[type=checkbox],input[type=radio]{accent-color:var(--dark)}.secure-box{margin-top:1rem;padding:1rem;background:#eff8fd;border:1px solid #cfe5f1;border-radius:15px}.assessment-top,.mission-progress{display:flex;justify-content:space-between;align-items:center;gap:1rem}.progress-word{font-weight:900;color:var(--accent);text-transform:uppercase}.assessment-card{padding:1.5rem}.prompt{font-size:1.14rem;margin:1rem 0}.reading-passage{background:#f6f8fa;border-left:4px solid var(--primary);padding:1rem 1.1rem;border-radius:10px;margin-bottom:1rem}.choice{display:flex;align-items:center;gap:.65rem;padding:.7rem .75rem;border:1px solid var(--border);border-radius:12px;margin:.45rem 0;cursor:pointer}.choice:hover{background:#f6fbfe}.assessment-actions,.card-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-top:1rem}.assessment-note{margin-top:1rem;color:var(--muted);font-size:.92rem;border-top:1px solid var(--soft);padding-top:.8rem}.status-good{color:#2b7a3d;font-weight:800}.result-hero{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.result-hero>div{background:linear-gradient(135deg,#eef9ff,#f5fff1);border:1px solid var(--border);border-radius:20px;padding:1.2rem}.result-label{display:block;color:var(--muted);font-size:.9rem}.result-value{display:block;color:var(--dark);font-size:2rem}.area-list{display:grid;gap:.8rem}.area-row{display:grid;grid-template-columns:1fr 200px;gap:1rem;align-items:center}.meter{width:200px;height:12px;border:0;border-radius:999px;overflow:hidden;background:#e6eef3}.meter::-webkit-progress-bar{background:#e6eef3;border-radius:999px}.meter::-webkit-progress-value{background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:999px}.meter::-moz-progress-bar{background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:999px}.center{text-align:center;margin-top:1rem}.dashboard-banner{display:grid;grid-template-columns:1.5fr .5fr;gap:1rem;align-items:center;background:linear-gradient(120deg,#eaf7fd,#f5fcf2);border:1px solid var(--border);border-radius:28px;padding:1.3rem 1.5rem}.banner-mascot{width:min(100%,240px);justify-self:end;border-radius:18px}.notifications{margin:1.4rem 0}.notification{display:flex;flex-direction:column;gap:.2rem;background:#fff;border:1px solid var(--border);padding:.8rem 1rem;border-radius:13px;margin:.45rem 0}.notification:hover{text-decoration:none;border-color:#b5d6e7}.mission-card{position:relative;overflow:hidden}.mission-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--primary)}.language-card:before{background:var(--accent)}.mission-head{display:flex;justify-content:space-between;gap:1rem}.course-chip{white-space:nowrap;background:#eef5f8;border:1px solid var(--border);border-radius:999px;padding:.35rem .65rem;font-size:.88rem;height:max-content}.stats-mini{display:flex;gap:1rem;flex-wrap:wrap;color:var(--muted);margin:.7rem 0}.text-link{font-weight:800}.achievement-list{list-style:none;padding:0;display:grid;gap:.7rem}.achievement-list li{display:flex;gap:.7rem;align-items:flex-start}.achievement-list li>span{color:#d5a400;font-size:1.2rem}.legend{display:flex;gap:.6rem 1rem;flex-wrap:wrap;margin:1rem 0;font-size:.9rem}.legend span{display:flex;align-items:center;gap:.35rem}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.mastered{background:#4eaa62}.watch{background:#c79b28}.progress{background:#4FA3D1}.support{background:#c75a5a}.unknown{background:#b9c3ca}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.75rem;border-bottom:1px solid #e4edf3;text-align:left;vertical-align:top}.table th{color:var(--dark);font-size:.9rem;background:#f8fbfd}.state{font-size:.78rem;font-weight:800;padding:.25rem .45rem;border-radius:999px;background:#eef3f6}.state-mastered{background:#e9f7ec;color:#2e6f3d}.state-support{background:#fcecec;color:#963d3d}.state-in_progress{background:#ebf6fd;color:#276687}.state-watch{background:#fff7df;color:#7b5a0f}.mission-progress{font-size:.9rem;color:var(--muted);margin-bottom:.7rem}.lesson-card,.exercise-card{padding:1.5rem}.objective{font-size:1.1rem;font-weight:650}.lesson-body{font-size:1.03rem}.worked-example{background:#f3f9fc;border:1px solid #d9eaf3;border-radius:16px;padding:1rem;margin:1rem 0}.hints{margin:1rem 0;padding:1rem;background:#fbfcfd;border:1px dashed #c7d9e4;border-radius:14px}.hint{margin:.4rem 0}.hint summary{cursor:pointer;font-weight:700;color:var(--dark)}.badge-alert{display:inline-flex;min-width:1.6rem;height:1.6rem;align-items:center;justify-content:center;border-radius:999px;background:#f4d6d6;color:#8a2d2d;font-weight:900}.help-ticket{border-bottom:1px solid var(--soft);padding:.8rem 0}.ticket-head{display:flex;justify-content:space-between;color:var(--muted)}.tutor-response{padding:.7rem;background:#f1f8fc;border-radius:10px}.compact-form{display:grid;gap:.4rem;min-width:220px}.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}.reduce-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:900px){.hero-grid,.cards-three,.cards-two,.mecha-band,.dashboard-banner{grid-template-columns:1fr}.nav-row,.footer-grid{flex-direction:column;align-items:flex-start}.footer-links{text-align:left}.band-mascot,.banner-mascot{justify-self:center}.area-row{grid-template-columns:1fr}.result-hero{grid-template-columns:1fr}.site-header{position:static}}
@media(max-width:560px){.container,.narrow{width:min(100% - 1rem,1160px)}.hero{padding-top:1.2rem}.card{border-radius:16px}.nav-links{gap:.65rem}.btn{width:100%}.assessment-actions .btn,.card-actions .btn{width:auto}.mission-head{flex-direction:column}.course-chip{width:max-content}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* --- v1.0 learning workspace additions --- */
.review-callout { margin: 1.25rem 0; padding: 1.1rem 1.25rem; border: 2px solid rgba(79,163,209,.30); background: linear-gradient(120deg,#f3fbff,#f6fff6); border-radius: 20px; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.review-callout h2 { margin:.25rem 0; }
.review-actions,.task-actions,.quick-actions { display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; }
.task-list { display:grid; gap:.75rem; }
.task-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.9rem 0; border-bottom:1px solid #e4edf3; }
.task-row:last-child { border-bottom:0; }
.goal-list,.plain-list { list-style:none; padding:0; margin:0; display:grid; gap:.7rem; }
.goal-list li { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; padding:.7rem 0; border-bottom:1px solid #e6eef4; }
.help-card { margin-top:1rem; }
.page-head { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; margin-bottom:1rem; }
.tutor-summary .big-number { font-size:2.1rem; color:var(--dark); }
.timeline { display:grid; gap:.7rem; }
.timeline-item { border-left:3px solid var(--primary); padding:.5rem .8rem; background:#f8fbfd; border-radius:0 12px 12px 0; }
.review-box { padding:1rem 0; border-bottom:1px solid #e4edf3; }
.review-box:last-child { border-bottom:0; }
.help-row { display:grid; grid-template-columns:1fr auto; gap:1rem; padding:.9rem 0; border-bottom:1px solid #e4edf3; }
.reply { background:#f3f9fd; border-radius:12px; padding:.7rem; }
.ai-help-card { border-color:rgba(107,196,109,.45); }
.ai-help-head { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.badge { display:inline-flex; align-items:center; border-radius:999px; padding:.25rem .6rem; background:#edf9ee; color:#2e6e35; font-size:.82rem; font-weight:700; }
.compact-form { display:grid; gap:.65rem; }
.compact-form p { margin:0; }
.pref-dyslexia { letter-spacing:.02em; word-spacing:.05em; line-height:1.75; }
.pref-dyslexia .lesson-body, .pref-dyslexia .reading-passage, .pref-dyslexia .prompt { max-width:70ch; }
.pref-large-text { font-size:112.5%; }
.pref-high-contrast { --text:#222; --dark:#123d62; }
.pref-high-contrast .card, .pref-high-contrast .message, .pref-high-contrast input, .pref-high-contrast textarea, .pref-high-contrast select { border-color:#7695aa; }
.pref-reduce-motion *, .pref-reduce-motion *::before, .pref-reduce-motion *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; } }
@media (max-width:760px) { .review-callout,.task-row,.page-head { flex-direction:column; align-items:stretch; } .help-row { grid-template-columns:1fr; } }
.metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; margin:1rem 0 1.25rem; }
.metric { background:#fff; border:1px solid #dce8ef; border-radius:16px; padding:1rem; display:grid; gap:.3rem; box-shadow:0 6px 20px rgba(31,78,121,.04); }
.metric span { font-size:.88rem; color:#5b6770; }
.metric strong { font-size:2rem; color:var(--dark); }
.coverage-row { display:grid; grid-template-columns:90px 1fr auto; gap:.7rem; align-items:center; margin:.75rem 0; }
.progress-track { height:12px; background:#e8eff4; border-radius:999px; overflow:hidden; }
.progress-track span { display:block; height:100%; background:linear-gradient(90deg,var(--primary),var(--accent)); border-radius:inherit; }
.metric-inline { display:flex; justify-content:space-between; gap:1rem; padding:.55rem 0; border-bottom:1px solid #e7eef3; }
.check-list { display:grid; gap:.6rem; }
.check-row { display:grid; grid-template-columns:32px 1fr; gap:.7rem; align-items:flex-start; padding:.7rem; border-radius:12px; }
.check-ok { background:#f1fbf2; }
.check-fail { background:#fff5f1; }
.check-row > span { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; font-weight:800; }
.check-ok > span { background:#d8f2da; color:#245b2b; }
.check-fail > span { background:#ffdcd1; color:#8a2d15; }
.card-title-row { display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.status-ok,.status-warn { display:inline-block; padding:.2rem .5rem; border-radius:999px; font-size:.8rem; font-weight:700; }
.status-ok { background:#e5f7e7; color:#235b2a; }
.status-warn { background:#fff0d9; color:#7b4b00; }
@media (max-width:900px){ .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:520px){ .metric-grid{grid-template-columns:1fr;} .coverage-row{grid-template-columns:1fr;} }
