:root { --blue:var(--ks-34725a); --ink:var(--kt-25382f); --muted:var(--kt-69786e); --page:var(--ks-fafaf7); --border:var(--ks-e3e9e1); --radius:20px; --kh-coral:var(--ks-b85940); --kh-mint:var(--ks-e7f3e9); }
body { background:var(--page); color:var(--ink); }
body h1,body h2,body h3 { color:var(--ink); letter-spacing:-.035em; }
body h1 { font-family:KahierNunito,Roboto,Arial,sans-serif; font-weight:900; }
.button { border-radius:12px; gap:9px; font-size:14px; border-color:var(--blue); background:var(--blue); min-height:46px; padding:12px 20px; box-shadow:0 3px 0 var(--ks-24563f); }
.button:hover { background:var(--ks-285c47); border-color:var(--ks-285c47); }
.button.outline { color:var(--ink); background:var(--ks-fff); border:1px solid var(--ks-dce4db); box-shadow:none; }
.button.outline:hover { background:var(--ks-eff6ef); border-color:var(--ks-b9cebb); }
.button:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid var(--ks-b85940); outline-offset:4px; }
.button:disabled { box-shadow:none; }
.prototype-badge { position:static; display:block; margin:10px 18px; width:fit-content; background:transparent; border:0; color:var(--kt-738071); font-size:11px; box-shadow:none; }
.is-learning>.prototype-badge { margin-left:256px; }
.kahier-header.site-header { height:80px; background:var(--ks-fff); border-bottom:1px solid var(--border); }
.kahier-header .header-inner { max-width:1280px; padding:0 36px; }
.kahier-header .menu-toggle { display:none; }
.kahier-header .header-nav { gap:26px; font-weight:600; font-size:14px; }
.kahier-header .header-nav .button { font-size:13px; min-height:40px; padding:9px 18px; }
.kahier-header .brand-wordmark { font-size:38px; }
.kahier-header .mobile-nav { top:100%; width:100%; padding:20px; border:1px solid var(--border); background:var(--ks-fff); box-shadow:0 14px 30px var(--ks-25382f0d); }
.kahier-header .mobile-nav a,.kahier-header .mobile-nav button { padding:12px; color:var(--ink); }
.kahier-header .mobile-nav a { display:flex; gap:10px; align-items:center; }
.kh-quiet-link { font-weight:600; color:var(--blue); font-size:14px; }
.kh-learning { min-height:100vh; }
.kh-sidebar { width:228px; display:flex; flex-direction:column; padding:30px 18px 18px; border-right:1px solid var(--border); background:var(--ks-fff); }
.kh-sidebar>.logo { margin:0 10px 30px; }
.kh-sidebar .brand-wordmark { font-size:38px; }
.kh-sidebar .kh-class-label { font-size:9px; font-weight:700; letter-spacing:1.15px; color:var(--kt-758174); margin:0 12px 18px; max-width:none; }
.kh-sidebar nav { gap:8px; }
.kh-sidebar nav a { min-height:48px; border-radius:14px; padding:13px 14px; gap:12px; color:var(--kt-627266); font-weight:500; font-size:14px; }
.kh-sidebar nav a .icon { width:20px; height:20px; }
.kh-sidebar nav a:hover { background:var(--ks-f6f8f3); }
.kh-sidebar nav a.active { background:var(--ks-eaf3eb); color:var(--kt-305940); font-weight:700; }
.kh-sidebar-note { margin:34px 8px 28px; padding:18px 12px 0; border-top:1px solid var(--border); }
.kh-sidebar-note>.icon { color:var(--kt-aa674a); width:22px; height:22px; margin-bottom:12px; }
.kh-sidebar-note strong { display:block; font-size:13px; }
.kh-sidebar-note p { color:var(--kt-72806f); font-size:12px; line-height:1.7; margin-top:8px; }
.kh-sidebar-bottom { margin-top:auto; }
.kh-sidebar .account-profile { margin:0; padding:14px 6px; gap:9px; border-top:1px solid var(--border); }
.kh-sidebar .account-profile>span:nth-child(2) { min-width:0; flex:1; }
.kh-sidebar .account-profile strong { font-size:14px; }
.kh-sidebar .account-profile small { font-size:11px; color:var(--kt-6f7c6f); }
.account-avatar { background:var(--ks-f7e8de); color:var(--kt-8e5542); width:36px; height:36px; font-size:16px; }
.kh-sidebar .account-profile>.icon { width:18px; height:18px; color:var(--kt-9c714a); }
.kh-sidebar [data-logout] { font-size:11px; padding:12px; color:var(--kt-798375); }
.kh-sidebar [data-logout] .icon { width:15px; height:15px; }
.kh-sidebar-bottom>.button { width:100%; font-size:13px; }
.kh-signin { display:block; padding:16px 4px 0; text-align:center; font-size:12px; color:var(--blue); }
.kh-workspace { margin-left:228px; min-width:0; }
.kh-learning-header { min-height:78px; border-bottom:1px solid var(--border); background:var(--ks-fff); display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 32px; }
.kh-context { font-size:12px; color:var(--kt-72806f); }
.kh-context>span { margin:0 10px; color:var(--kt-a1aaa0); }
.kh-learning-header>nav { display:flex; gap:24px; align-items:center; }
.kh-learning-header>nav a { display:flex; gap:8px; align-items:center; color:var(--kt-5d715f); font-size:12px; }
.kh-learning-header>nav .icon { width:18px; height:18px; }
.kh-learning-header .kh-reward-link { color:var(--ktk-8a6744); background:var(--ksk-f6f5ec); padding:10px 14px; border-radius:12px; }
.kh-mobile-logo,.kh-bottom-nav,.kh-mobile-logout { display:none; }
.kh-mobile-level { display:block; width:fit-content; margin-top:3px; color:var(--kt-5d715f); font-size:11px; font-weight:700; line-height:1.4; }
.kh-classwork-link[aria-current="page"] { font-weight:700; text-decoration:underline; text-underline-offset:4px; }
@media(min-width:901px) and (max-height:850px) {
  .kh-learning .kh-sidebar { padding-top:20px; }
  .kh-learning .kh-sidebar>.logo { margin-bottom:20px; }
  .kh-learning .kh-sidebar .kh-class-label { margin-bottom:12px; }
  .kh-learning .kh-sidebar nav { gap:4px; }
  .kh-learning .kh-sidebar nav a { min-height:44px; padding-block:10px; }
  .kh-learning .kh-sidebar-note { display:none; }
}
.kh-learning .learning-main { margin:0 auto; max-width:1280px; padding:28px 32px 48px; min-height:calc(100vh - 78px); }
.kh-learning .dashboard-content,.kh-learning .catalog-content,.kh-learning .chapters-content,.kh-learning .search-content { padding:0; max-width:none; }
.kh-learning h1 { font-size:34px; line-height:1.2; }
.kh-learning h2 { font-size:25px; line-height:1.25; }
.kh-learning h3 { font-size:19px; line-height:1.3; }
.kh-learning .course-content { padding:26px 0; }
.kh-learning .course-heading { margin-bottom:30px; }
.kh-learning .lesson { background:var(--ks-fff); border-radius:22px; padding:28px; border:1px solid var(--border); }
.kh-learning .lesson h2 { margin-top:20px; }
.kh-learning .lesson h2>span { background:var(--ks-f1f6e9); color:var(--blue); }
.kh-learning .decimal-objectives,.kh-learning .fraction-objectives { background:var(--kh-mint); }
.kh-learning .decimal-objectives strong,.kh-learning .fraction-objectives strong { color:var(--blue); }
.kh-learning .course-layout { grid-template-columns:minmax(0,1fr) 240px; gap:24px; }
.kh-learning .lesson-block { padding-left:0; }
.kh-learning .example { background:var(--ks-f2f7ee); border-color:var(--ks-dbe9d6); }
.kh-learning .tip { background:var(--ks-fff4e9); border-color:var(--ks-ecd9c7); }
.kh-learning .lesson-meta { font-size:12px; color:var(--kt-78836f); }
.kh-learning .property { color:var(--blue); }
.kh-learning .course-return { background:var(--ks-eff6ed); border-color:var(--ks-d5e2cd); }
.kh-learning .catalog-toolbar { margin-bottom:28px; }
.kh-learning .search-form { background:var(--ks-fff); border:1px solid var(--ks-e0e7dd); border-radius:14px; }
.kh-learning .search-form input { background:transparent; }
.kh-learning .subject-card { border:1px solid var(--border); border-radius:20px; box-shadow:none; transition:transform .18s; }
.kh-learning .subject-card:hover { transform:translateY(-3px); }
.kh-learning .subject-card>div { filter:saturate(.72); }
.kh-learning .subject-card strong { padding:22px 18px; font-size:16px; }
.kh-learning .chapters-content>h1 { margin-bottom:12px; }
.kh-learning .search-scope { color:var(--kt-71806f); font-size:14px; line-height:1.65; }
.kh-learning .theme { margin:36px 0; }
.kh-learning .theme>p { color:var(--kt-9a634c); font-size:10px; text-transform:uppercase; letter-spacing:1px; font-weight:700; }
.kh-learning .theme h2 { margin:8px 0 18px; }
.kh-learning .chapter-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.kh-learning .chapter-card { border-radius:18px; min-height:164px; border:1px solid var(--border); box-shadow:none; }
.kh-learning .chapter-card>div { padding:22px; min-height:110px; background:var(--ks-edf5e9); }
.kh-learning .theme:nth-of-type(2) .chapter-card>div { background:var(--ks-fbecdf); }
.kh-learning .theme:nth-of-type(3) .chapter-card>div { background:var(--ks-edf2e8); }
.kh-learning .chapter-card strong { font-size:17px; font-weight:700; max-width:90%; }
.kh-learning .chapter-card small { padding:16px 22px; color:var(--kt-5c745e); font-size:11px; }
.kh-learning .chapter-card:hover { transform:translateY(-3px); box-shadow:0 6px 15px var(--ks-25382f08); }
.kh-course-callout { padding:24px; border-radius:20px; background:var(--ks-fff); border:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:20px; margin:32px 0; }
.kh-course-callout p { color:var(--kt-71806f); font-size:14px; margin-top:8px; }
.kh-learning .dashboard-empty,.kh-learning .exercise-card-icon,.kh-learning .dashboard-symbol { background:var(--ks-e9f3e6); }
.kh-learning .dashboard-tools,.kh-learning .dashboard-exercises,.kh-learning .progress-exercise,.kh-learning .chart-card { border-color:var(--border); border-radius:20px; box-shadow:none; }
.kh-learning .chart-period button[aria-pressed=true] { background:var(--blue); color:var(--ktk-fff); }
.kh-learning .activity-bar { fill:var(--kg-9bb99a); }
.kh-learning .donut-correct { stroke:var(--kgk-658d60); }
.kh-learning .donut-track.has-answers { stroke:var(--kg-eab39b); }
.kh-learning .mosaic-cell.recent,.kh-learning .chart-key.recent { background:var(--ksk-6f985f); }
.kh-learning .mosaic-cell.learning,.kh-learning .chart-key.learning { background:var(--ksk-d7e8c6); color:var(--ktk-41653c); }
.kh-learning .mosaic-cell.review,.kh-learning .chart-key.review { background:var(--ksk-f6cfb7); color:var(--ktk-8a5036); }
.kh-learning .mosaic-cell.new,.kh-learning .chart-key.new { background:var(--ksk-eff1e9); color:var(--ktk-788373); }
.kh-learning .mosaic-cell { border-radius:5px; }
.kh-learning .chart-text-link,.kh-learning .notion-activity a { color:var(--blue); }
.kh-learning .result-score { background:var(--ks-eaf3e9); }
.kh-learning .free-response-tag { background:var(--ks-f7eadc); color:var(--kt-815b36); }
.auth-page { background:var(--page); padding:56px 24px; }
.auth-page h1 { font-size:36px; }
.auth-page .auth-center { margin-top:24px; padding:28px; background:var(--ks-fff); border:1px solid var(--border); border-radius:24px; }
.auth-form input:not([type=checkbox]) { border-color:var(--ks-dce4d9); border-radius:12px; background:var(--ks-fcfdfb); }
.auth-page .local-account-label { color:var(--kt-6f7e6d); font-size:11px; letter-spacing:.7px; }
.auth-page .profile-choices button,.auth-page .level-grid button { border:1px solid var(--ks-dae4d5); border-radius:18px; background:var(--ks-fff); color:var(--ink); }
.auth-page .register-method { margin-top:24px; padding:24px; border-radius:22px; border:1px solid var(--border); background:var(--ks-fff); }
.kahier-home { max-width:1280px; margin:auto; padding:68px 36px 64px; overflow-x:clip; }
.kh-landing-hero { display:grid; grid-template-columns:1.1fr 1fr; grid-template-areas:'heading family' 'details family'; gap:22px 54px; align-items:start; }
.kh-landing-intro { grid-area:heading; align-self:end; }
.kh-landing-details { grid-area:details; }
.kh-landing-copy.kh-landing-intro h1 { margin-bottom:0; }
.kh-landing-family { grid-area:family; align-self:center; display:grid; gap:16px; min-width:0; }
.kh-family-photo { margin:0; overflow:hidden; border:1px solid var(--ks-dfe7d8); border-radius:28px; background:var(--ks-fff); box-shadow:0 10px 30px var(--ks-293e340b); }
.kh-family-photo img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; object-position:center 48%; }
.kh-family-photo figcaption { display:flex; align-items:center; gap:9px; padding:15px 18px; color:var(--kt-45634c); font-size:13px; font-weight:700; line-height:1.5; }
.kh-family-photo figcaption .icon { width:20px; height:20px; flex-shrink:0; color:var(--kt-af684b); }
.kh-family-challenge { display:flex; align-items:center; gap:15px; padding:18px 20px; border:1px solid var(--ks-dbe5d4); border-radius:20px; background:var(--ks-f0f5e8); color:var(--ink); text-decoration:none; box-shadow:0 4px 0 var(--ks-e2e9d9); }
.kh-family-challenge>span:last-child { display:grid; gap:6px; min-width:0; }
.kh-family-challenge small { color:var(--kt-72785e); font-size:10px; font-weight:800; letter-spacing:.7px; }
.kh-family-challenge strong { font-size:16px; line-height:1.45; }
.kh-challenge-action { display:flex; align-items:center; gap:8px; color:var(--kt-346f59); font-size:13px; font-weight:700; }
.kh-challenge-action .icon { width:16px; height:16px; }
.kh-family-challenge:hover { background:var(--ks-e7f0df); border-color:var(--ks-83a17b); }
.kh-family-challenge:focus-visible,.kh-photo-credits a:focus-visible,.kh-photo-credits summary:focus-visible { outline:3px solid var(--ks-a76543); outline-offset:4px; }
.kh-eyebrow { font-size:11px; font-weight:800; letter-spacing:1.3px; color:var(--kt-7a7259); margin-bottom:18px; }
.kh-landing-labels { display:flex; align-items:center; flex-wrap:wrap; gap:12px 16px; margin-bottom:22px; }
.kh-landing-labels .kh-eyebrow { margin:0; }
.kh-programme-badge { display:inline-flex; align-items:center; gap:9px; max-width:100%; padding:9px 13px; border:1px solid var(--ks-d7e5d9); border-radius:12px; background:var(--ks-f0f6ec); color:var(--kt-305940); font-size:13px; line-height:1.5; }
.kh-programme-flag { flex-shrink:0; font-size:22px; line-height:1; }
.kh-landing-copy h1 { font-size:clamp(35px,3.8vw,56px); line-height:1.13; margin-bottom:24px; }
.kh-landing-copy h1 em { color:var(--kt-468065); }
.kh-landing-copy>p:not(.kh-eyebrow) { max-width:440px; font-size:16px; line-height:1.8; color:var(--kt-6e7b6c); }
.kh-landing-actions { display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:28px; }
.kh-landing-actions>.button { background:var(--kh-coral); border-color:var(--kh-coral); box-shadow:0 3px 0 var(--ks-8a452f); }
.kh-landing-facts { display:flex; flex-wrap:wrap; gap:10px 18px; color:var(--kt-7b8776); font-size:11px; margin-top:27px; }
.kh-landing-copy>.kh-availability { margin-top:24px; font-size:13px; line-height:1.6; }
.kh-availability+.kh-landing-facts { margin-top:10px; }
.kh-directory-heading { margin:4px 0 30px; }
.kh-directory-heading>p:last-child { max-width:700px; line-height:1.8; color:var(--muted); margin-top:16px; }
.kh-catalog-steps { display:flex; flex-wrap:wrap; gap:14px 26px; list-style:none; margin:0 0 28px; padding:0; }
.kh-catalog-steps li { display:flex; align-items:center; gap:9px; font-size:12px; color:var(--kt-73806f); }
.kh-catalog-steps li>span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; border:1px solid var(--border); background:var(--ks-fff); font-weight:700; flex-shrink:0; }
.kh-catalog-steps li[aria-current] { color:var(--kt-305940); font-weight:700; }
.kh-catalog-steps li[aria-current]>span { background:var(--ks-346f59); border-color:var(--ks-346f59); color:var(--kt-fff); }
.kh-catalog-access { display:flex; align-items:center; gap:16px; padding:18px 22px; margin:24px 0; border:1px solid var(--border); border-radius:16px; background:var(--ks-fff); }
.kh-catalog-access p { flex:1; font-size:13px; line-height:1.7; color:var(--muted); margin:0; }
.kh-catalog-access strong { color:var(--ink); }
.kh-catalog-access>a { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--kt-346f59); white-space:nowrap; }
.kh-catalog-access>a .icon { width:16px; height:16px; }
.kh-stage-top .icon { width:22px; height:22px; }
.kh-stage-1 { border-color:var(--ks-bbd2bf); }
.kh-directory-available { display:flex; align-items:center; gap:22px; padding:28px; background:var(--kh-mint); border:1px solid var(--ks-d7e6dc); border-radius:22px; margin-bottom:32px; }
.kh-directory-available>div { flex:1; }
.kh-directory-available .kh-eyebrow { margin-bottom:10px; }
.kh-directory-available h2 { font-size:23px; }
.kh-directory-available p:last-child { line-height:1.7; color:var(--kt-5c7261); margin-top:10px; font-size:14px; }
.kh-directory-available>.button { flex-shrink:0; }
.kh-stage-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.kh-stage { padding:24px; background:var(--ks-fff); border:1px solid var(--border); border-radius:20px; }
.kh-stage-top>span { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; color:var(--kt-8e5a45); background:var(--ks-f9ece4); font-weight:700; margin-bottom:18px; }
.kh-stage-1 .kh-stage-top>span { color:var(--kt-456b50); background:var(--ks-e8f2e8); }
.kh-stage-2 .kh-stage-top>span { color:var(--kt-8a733e); background:var(--ks-f4f0df); }
.kh-stage-top p { font-size:12px; color:var(--muted); line-height:1.5; margin-bottom:8px; }
.kh-stage ul { list-style:none; padding:0; margin:20px 0 0; }
.kh-stage li+li { margin-top:10px; }
.kh-stage li>div,.kh-stage li>a { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; border-radius:12px; background:var(--ks-f8f9f5); padding:12px; font-size:14px; }
.kh-stage li small { font-size:11px; color:var(--kt-788173); }
.kh-stage li>a { background:var(--ks-e9f3e9); color:var(--kt-305d40); flex-wrap:wrap; }
.kh-stage li>a:hover { background:var(--ks-daeada); }
.kh-stage li>a small { display:flex; align-items:center; gap:6px; color:var(--kt-446a4e); }
.kh-stage li .icon { width:14px; height:14px; }
.kh-directory-note { margin-top:26px; max-width:750px; font-size:13px; color:var(--muted); line-height:1.8; }
@media(max-width:1080px) {
  .kh-directory-available { flex-wrap:wrap; }
  .kh-directory-available>.button { margin-left:66px; }
  .kh-stage-grid { gap:12px; }
  .kh-stage { padding:18px; }
}
@media(max-width:680px) {
  .kh-stage-grid { grid-template-columns:1fr; }
  .kh-stage-1 { order:-1; }
  .kh-catalog-steps { gap:10px 18px; }
  .kh-catalog-steps li { font-size:11px; }
  .kh-catalog-access { flex-wrap:wrap; padding:18px; }
  .kh-catalog-access>.kh-mini-icon { display:none; }
  .kh-catalog-access p { flex-basis:100%; }
  .kh-directory-available { padding:22px; gap:16px; }
  .kh-directory-available>.kh-mini-icon { display:none; }
  .kh-directory-available>div { flex-basis:100%; }
  .kh-directory-available>.button { margin:0; width:100%; }
}
.kh-landing-world { position:relative; min-height:420px; display:grid; place-items:center; padding:40px 20px; }
.kh-world-disc { position:absolute; width:96%; aspect-ratio:1; max-height:420px; border-radius:48% 52% 45% 55%; background:var(--ks-e7f0df); transform:rotate(15deg); }
.kh-world-card { position:relative; width:100%; max-width:350px; padding:28px; background:var(--ks-fffefa); border-radius:26px; box-shadow:0 16px 36px var(--ks-38563a12); transform:rotate(-3deg); border:1px solid var(--ks-e7eddf); }
.kh-world-card-top { display:flex; gap:12px; align-items:center; font-size:9px; font-weight:800; letter-spacing:.7px; }
.kh-mini-icon { display:inline-grid; place-items:center; width:44px; height:44px; border-radius:14px; color:var(--kt-4c7151); background:var(--ks-ecf3e8); flex-shrink:0; }
.kh-mini-icon .icon { width:22px; height:22px; }
.kh-world-equation { display:flex; justify-content:center; align-items:center; gap:18px; margin:28px 0; }
.kh-world-equation>span { display:grid; place-items:center; min-width:72px; height:80px; font-family:KahierNunito,Roboto,sans-serif; font-size:28px; background:var(--ks-fce7d8); border-radius:15px; color:var(--kt-91553f); transform:rotate(-5deg); }
.kh-world-equation>span:last-child { background:var(--ks-ecf2dd); color:var(--kt-60814b); transform:rotate(8deg); }
.kh-world-equation>b { font-size:24px; color:var(--kt-9cac90); }
.kh-world-card h2 { font-size:21px; margin-bottom:10px; }
.kh-world-card>p { color:var(--kt-6e7d6a); font-size:13px; line-height:1.6; }
.kh-world-card>.button { margin-top:23px; width:100%; }
.kh-world-sticker { position:absolute; z-index:1; top:18px; right:2px; display:grid; place-items:center; width:68px; height:68px; border:6px solid var(--ks-fafaf7); border-radius:22px; background:var(--ks-f8dcca); color:var(--kt-a76543); transform:rotate(12deg); }
.kh-world-sticker>.icon { width:30px; height:30px; }
.kh-world-note { position:absolute; bottom:-2px; left:0; background:var(--ks-fff); border:1px solid var(--border); border-radius:13px; padding:13px 17px; box-shadow:0 5px 14px var(--ks-243f2805); font-size:11px; display:flex; align-items:center; gap:8px; transform:rotate(2deg); }
.kh-world-note>.icon { width:19px; height:19px; color:var(--blue); }
.kh-landing-steps { margin:100px 0 40px; }
.kh-landing-steps h2 { font-size:31px; margin-bottom:30px; }
.kh-step-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.kh-step-grid article { padding:28px; border:1px solid var(--border); background:var(--ks-fff); border-radius:22px; }
.kh-step-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:23px; }
.kh-step-heading>span:last-child { color:var(--kt-98a28f); font-size:12px; }
.kh-step-grid h3 { font-size:23px; }
.kh-step-grid p { color:var(--kt-71806c); font-size:14px; line-height:1.7; margin:14px 0 22px; }
.kh-step-grid a { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--blue); }
.kh-step-grid a>.icon { width:17px; height:17px; }
.kh-landing-progress { display:flex; gap:24px; align-items:center; margin-top:32px; padding:32px; border:1px solid var(--ks-dfe8d7); border-radius:22px; background:var(--ks-edf4e8); }
.kh-landing-progress>div { flex:1; }
.kh-landing-progress h2 { font-size:23px; }
.kh-landing-progress p { font-size:14px; line-height:1.7; color:var(--kt-6f7d68); margin-top:10px; }
.kh-landing-progress>.button { flex-shrink:0; }
.kh-parent-moment { display:grid; grid-template-columns:minmax(220px,320px) minmax(0,1fr); gap:56px; align-items:center; padding:32px; margin-top:48px; border-radius:28px; background:var(--ks-f5f0e6); border:1px solid var(--ks-e8e1d3); }
.kh-parent-photo { margin:0; overflow:hidden; border-radius:22px; }
.kh-parent-photo img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:center 46%; }
.kh-parent-moment h2 { font-size:clamp(29px,3vw,40px); line-height:1.2; margin-bottom:22px; }
.kh-parent-moment>div>p:not(.kh-eyebrow) { max-width:500px; color:var(--kt-65715f); font-size:16px; line-height:1.8; margin:14px 0; }
.kh-parent-moment .button { margin-top:12px; white-space:normal; text-align:center; }
.kh-photo-credits { margin-top:22px; color:var(--kt-73806c); font-size:12px; line-height:1.8; }
.kh-photo-credits summary { cursor:pointer; width:fit-content; padding:6px 0; }
.kh-photo-credits a { color:var(--kt-436d50); text-decoration:underline; text-underline-offset:3px; }
.kahier-footer { max-width:1208px; margin:0 auto; border-top:1px solid var(--border); padding:36px 0 24px; display:grid; grid-template-columns:1fr auto; gap:25px; }
.kahier-footer p { font-size:12px; color:var(--kt-778171); margin-top:9px; }
.kahier-footer>nav { display:flex; align-items:center; gap:24px; font-size:13px; }
.kahier-footer>nav button { background:none; border:0; font-size:13px; padding:0; }
.kahier-footer>small { grid-column:1/-1; font-size:11px; color:var(--kt-7e8877); }
@media(min-width:901px) { .kh-sidebar .account-profile:hover { background:var(--ks-f9fbf6); border-radius:12px; } }
@media(max-width:1100px) {
  .kh-learning .course-layout { display:flex; flex-direction:column-reverse; }
  .kh-learning .course-layout>* { width:100%; min-width:0; }
  .kh-learning .chapter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kh-landing-hero { gap:25px; }
  .kh-step-grid article { padding:24px; }
  .kahier-footer { margin:0 36px; }
}
@media(max-width:900px) {
  .kh-sidebar { display:none; }
  .kh-workspace { margin-left:0; }
  .kh-mobile-logo { display:block; }
  .kh-mobile-logout { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border:0; background:transparent; color:var(--kt-5d715f); border-radius:10px; }
  .kh-learning-header { min-height:68px; padding:12px 24px; }
  .kh-learning-header>.kh-context { display:none; }
  .kh-learning-header>nav .kh-reward-link { padding:10px; background:none; }
  .kh-learning-header>nav a>span { display:none; }
  .kh-learning-header>nav a { min-width:40px; min-height:40px; justify-content:center; }
  .kh-learning-header>nav { gap:6px; }
  .kh-learning-header>nav .kh-classwork-link { display:none; }
  .kh-learning .learning-main { padding:28px 24px 108px; min-height:calc(100vh - 68px); }
  .kh-bottom-nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); position:fixed; bottom:0; inset-inline:0; z-index:25; background:var(--ks-fff); border-top:1px solid var(--border); padding:8px 10px max(8px,env(safe-area-inset-bottom)); gap:4px; }
  .is-guest .kh-bottom-nav { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .kh-bottom-nav a { min-height:53px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; border-radius:12px; color:var(--kt-74816f); font-size:10px; }
  .kh-bottom-nav a .icon { width:21px; height:21px; }
  .kh-bottom-nav a.active { color:var(--kt-396344); background:var(--ks-edf4e8); font-weight:700; }
  .is-learning>.prototype-badge { margin:0 24px 96px; }
  .kh-landing-copy h1 { font-size:38px; }
  .kh-landing-progress { flex-wrap:wrap; }
  .kh-landing-progress>.button { margin-left:68px; }
}
@media(max-width:759px) {
  .kahier-header .header-nav { display:none; }
  .kahier-header .menu-toggle { display:block; margin-left:auto; }
}
@media(max-width:680px) {
  .kahier-header.site-header { height:68px; }
  .kahier-header .header-inner { padding:0 22px; }
  .kahier-header .header-nav { display:none; }
  .kahier-header .menu-toggle { display:block; margin-left:auto; }
  .kahier-header .brand-wordmark { font-size:32px; }
  .kahier-header .kh-quiet-link { font-size:12px; }
  .kh-learning .learning-main { padding:24px 16px 98px; }
  .kh-learning h1 { font-size:29px; }
  .kh-learning h2 { font-size:23px; }
  .kh-learning-header { padding:12px 18px; }
  .kh-learning .lesson { padding:20px 16px; border-radius:18px; }
  .kh-learning .chapter-grid { gap:12px; }
  .kh-learning .chapter-card>div { padding:18px 14px; min-height:120px; }
  .kh-learning .chapter-card strong { font-size:15px; max-width:100%; }
  .kh-learning .chapter-card small { font-size:10px; padding:14px; }
  .kh-course-callout { align-items:stretch; flex-direction:column; padding:22px; }
  .auth-page { padding:36px 20px; }
  .auth-page h1 { font-size:30px; }
  .auth-page .auth-center { padding:22px 18px; max-width:100%; }
  .auth-page .register-method { padding:22px 18px; max-width:100%; }
  .kahier-home { padding:40px 22px; }
  .kh-landing-hero { grid-template-columns:1fr; grid-template-areas:'heading' 'family' 'details'; gap:26px; }
  .kh-landing-copy h1 { font-size:34px; }
  .kh-family-photo img { aspect-ratio:3/2; }
  .kh-family-photo figcaption { padding:12px 14px; font-size:12px; }
  .kh-family-challenge { padding:15px; gap:12px; }
  .kh-family-challenge strong { font-size:15px; }
  .kh-parent-moment { grid-template-columns:1fr; gap:24px; padding:20px; margin-top:32px; }
  .kh-parent-photo { max-width:360px; width:100%; justify-self:center; }
  .kh-parent-moment h2 { font-size:30px; }
  .kh-parent-moment>div>p:not(.kh-eyebrow) { font-size:15px; }
  .kh-landing-copy>p:not(.kh-eyebrow) { font-size:15px; }
  .kh-landing-actions { gap:20px; }
  .kh-landing-world { min-height:400px; margin:0 auto; width:100%; max-width:410px; }
  .kh-world-note { font-size:10px; padding:12px; }
  .kh-world-card { padding:24px; }
  .kh-landing-steps { margin-top:70px; }
  .kh-landing-steps h2 { font-size:28px; }
  .kh-step-grid { grid-template-columns:1fr; gap:16px; }
  .kh-step-grid article { padding:24px; }
  .kh-step-heading { margin-bottom:18px; }
  .kh-landing-progress { padding:24px; gap:18px; align-items:flex-start; }
  .kh-landing-progress>div { flex-basis:calc(100% - 70px); }
  .kh-landing-progress>.button { margin:0; width:100%; }
  .kahier-footer { margin:0 22px; grid-template-columns:1fr; }
  .kahier-footer>nav { flex-wrap:wrap; gap:18px; }
}
@media(max-width:359px) { .kh-landing-copy h1 { font-size:32px; } .kh-world-card { padding:20px; } .kh-world-card h2 { font-size:19px; } .kh-world-note { max-width:100%; } .kh-learning .chapter-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } }

/* The same compact navigation is available for every learner class. */
@media(max-width:900px){
 .kh-learning .kh-bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:0}
 .kh-learning .kh-bottom-nav>a,.kh-more-nav>summary{font-size:11px;min-height:52px}
 .kh-more-nav{position:relative;min-width:0}
 .kh-more-nav>summary{list-style:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--kt-6a796e);cursor:pointer}
 .kh-more-nav>summary::-webkit-details-marker{display:none}
 .kh-more-nav.active>summary{color:var(--kt-356b51);background:var(--ks-e8f2e9);border-radius:12px}
 .kh-more-nav>summary .icon{width:21px;height:21px}
 .kh-more-nav>nav{position:absolute;right:0;bottom:calc(100% + 12px);width:240px;max-width:calc(100vw - 32px);padding:10px;background:var(--ks-fff);border:1px solid var(--ks-d8e4d7);box-shadow:0 8px 28px var(--ks-263d3220);border-radius:18px}
 .kh-learning .kh-more-nav>nav>a{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;padding:12px;min-height:48px;font-size:15px}
}
@media print{.kh-more-nav{display:none!important}}
.learner-class-access { max-width:740px; margin:30px auto; padding:clamp(22px,4vw,44px); background:var(--ks-fff); border:1px solid var(--ks-dce6da); border-radius:24px; }
.learner-class-access h1 { font-size:clamp(26px,3vw,36px); line-height:1.2; margin:18px 0; }
.learner-class-access p:not(.kh-eyebrow) { line-height:1.7; margin-bottom:22px; color:var(--muted); }
.learner-class-access .button { min-height:48px; white-space:normal; }
.learner-class-access .learner-class-switch { border-top:1px solid var(--ks-e3e9df); margin-top:28px; padding-top:22px; }
.learner-class-access .learner-class-switch p { margin-bottom:8px; }
