/* ===== /assets/curriculum-navigator.css ===== */
/* Scoped lesson desk. Existing site fonts and teacher authorization remain shared. */
#curriculum-navigator {
  --cn-ink: #193e3b;
  --cn-ocean: #175da0;
  --cn-teal: #11675d;
  --cn-border: #d2dcd7;
  --cn-muted: #506662;
  color: var(--cn-ink);
  font-family: "Hanken Grotesk", sans-serif;
  scroll-margin-top: 5rem;
}
#curriculum-navigator *, #curriculum-navigator *::before, #curriculum-navigator *::after { box-sizing: border-box; }
#curriculum-navigator [hidden] { display: none !important; }
#curriculum-navigator :is(button, input, select, a, summary):focus-visible { outline: 3px solid var(--cn-ocean); outline-offset: 4px; }
#curriculum-navigator button, #curriculum-navigator input, #curriculum-navigator select { font: inherit; }
#curriculum-navigator .cn-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 0 1rem; }
#curriculum-navigator .cn-heading h2 { margin: 0; font-family: "Hanken Grotesk", sans-serif; font-size: 1.6rem; line-height: 1.25; }
#curriculum-navigator .cn-heading p { margin: 0.35rem 0 0; color: var(--cn-muted); font-size: 1rem; line-height: 1.45; }
#curriculum-navigator .cn-heading > a { display: inline-flex; align-items: center; min-height: 44px; color: var(--cn-ocean); font-size: 1rem; font-weight: 700; white-space: nowrap; text-underline-offset: 0.2em; }
#curriculum-navigator .cn-browser .search { position: relative; display: block; width: 100%; padding: 0; border: 0 !important; border-radius: 0; background: transparent !important; box-shadow: none !important; }
#curriculum-navigator .cn-browser .curr-search-clear { position: absolute; right: 3px; bottom: 2px; width: 44px; height: 44px; min-height: 44px; margin: 0; border-radius: 0.4rem; color: var(--cn-ink); background: #edf3f8; }
#curriculum-navigator .cn-browser #curr-search { padding-right: 3.2rem; }
#curriculum-navigator .cn-browser .search label { display: block; margin: 0 0 0.4rem; color: var(--cn-ink); font-size: 1rem; text-transform: none; letter-spacing: normal; }
#curriculum-navigator .cn-browser .controls { display: block; }
#curriculum-navigator .cn-filters > label { flex-basis: 100%; margin-bottom: -0.2rem; }
#curriculum-navigator .cn-filters > #nav-unit { width: auto; flex: 1 1 9rem; }
#curriculum-navigator .cn-layout { display: grid; grid-template-columns: minmax(17rem, 0.8fr) minmax(0, 1.35fr); gap: 0; align-items: stretch; }
#curriculum-navigator .cn-browser { min-width: 0; padding: 1.25rem; border: 1px solid var(--cn-border); border-radius: 8px; background: #fff; }
#curriculum-navigator .cn-browser label { display: block; margin-bottom: 0.4rem; font-weight: 700; }
#curriculum-navigator :is(#curr-search, #nav-unit, #nav-copy-url) { display: block; width: 100%; min-height: 48px; padding: 0.7rem 0.85rem; border: 1px solid #728ba3; border-radius: 0.65rem; color: var(--cn-ink); background: #fff; font-size: 1rem; }
#curriculum-navigator #curr-search { margin: 0; }
#curriculum-navigator .cn-filters { display: flex; gap: 0.6rem; align-items: end; flex-wrap: wrap; margin-top: 1rem; }
#curriculum-navigator .cn-unit-field { flex: 1 1 10rem; }
#curriculum-navigator :where(.cn-button, #nav-saved, #nav-reset, #nav-more, #nav-retry) { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; min-height: 46px; padding: 0.65rem 0.9rem; border: 1px solid #9ab0c5; border-radius: 0.65rem; background: #fff; color: var(--cn-ink); font-weight: 700; font-size: 1rem; line-height: 1.35; text-align: center; text-decoration: none; cursor: pointer; }
#curriculum-navigator :where(.cn-button, #nav-saved, #nav-reset, #nav-more, #nav-retry):hover { background: #eaf2f9; border-color: var(--cn-ocean); }
#curriculum-navigator :is(#nav-saved, .cn-save)[aria-pressed="true"] { color: #fff; background: var(--cn-teal); border-color: var(--cn-teal); }
#curriculum-navigator #nav-reset { border-color: transparent; background: transparent; text-decoration: underline; text-underline-offset: 0.2em; }
#curriculum-navigator #nav-results-status { margin: 1.2rem 0 0.7rem; color: var(--cn-muted); font-size: 1rem; line-height: 1.4; }
#curriculum-navigator #nav-results { display: grid; gap: 0; max-height: 29rem; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-gutter: stable; margin: 0; padding: 4px; list-style: none; }
#curriculum-navigator .cn-lesson-button { position: relative; display: flex; flex-direction: column; align-items: start; width: 100%; padding: 1rem 1.1rem; text-align: left; border: 0; border-bottom: 1px solid var(--cn-border); border-radius: 0; color: var(--cn-ink); background: #fff; cursor: pointer; transition: border-color 140ms ease, background 140ms ease; }
#curriculum-navigator .cn-lesson-button:hover { background: #eaf2f9; border-color: var(--cn-ocean); }
#curriculum-navigator .cn-lesson-button[aria-current="true"] { border: 0; border-bottom: 1px solid var(--cn-border); padding: 1rem 1.1rem; background: #e9f2fa; box-shadow: inset 4px 0 0 var(--cn-ocean); }
#curriculum-navigator .cn-result-meta { padding-right: 3.5rem; color: var(--cn-muted); font-size: 0.94rem; line-height: 1.4; }
#curriculum-navigator .cn-result-title { margin-top: 0.35rem; font-family: "Hanken Grotesk", sans-serif; font-size: 1.1rem; line-height: 1.35; }
#curriculum-navigator .cn-result-standard { margin-top: 0.4rem; font-size: 0.9rem; color: var(--cn-muted); }
#curriculum-navigator .cn-selected-label { position: absolute; top: 1rem; right: 0.9rem; color: var(--cn-ocean); font-size: 0.85rem; font-weight: 700; }
#curriculum-navigator #nav-more { width: 100%; margin-top: 0.8rem; }
#curriculum-navigator .cn-empty { padding: 0.5rem 0 1rem; line-height: 1.55; }
#curriculum-navigator #nav-preview { min-width: 0; min-height: 23rem; padding: clamp(1.3rem, 3vw, 2.25rem); border: 1px solid var(--cn-border); border-radius: 8px; background: #fff; box-shadow: 0 8px 28px #193e3b08; scroll-margin-top: 6rem; }
#curriculum-navigator #nav-preview:focus-visible { outline: 3px solid var(--cn-ocean); outline-offset: 4px; }
#curriculum-navigator .cn-eyebrow { margin: 0 0 0.6rem; color: var(--cn-teal); font-size: 0.9rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
#curriculum-navigator .cn-preview-title { margin: 0; font-family: "Hanken Grotesk", sans-serif; color: var(--cn-ink); font-size: clamp(1.5rem, 2.8vw, 2rem); line-height: 1.2; font-weight: 800; text-wrap: balance; }
#curriculum-navigator .cn-lesson-meta { margin: 0.8rem 0 0; color: var(--cn-muted); }
#curriculum-navigator .cn-preview-actions { display: flex; gap: 0.6rem; flex-wrap: wrap; margin: 1.3rem 0; }
#curriculum-navigator .cn-primary { color: #fff; background: var(--cn-ocean); border-color: var(--cn-ocean); }
#curriculum-navigator .cn-primary:hover { color: #fff; background: var(--cn-ink); }
#curriculum-navigator .cn-target { margin: 1.4rem 0; padding: 1.1rem 1.25rem; border-left: 4px solid var(--cn-teal); border-radius: 0 0.7rem 0.7rem 0; background: #edf7f4; }
#curriculum-navigator .cn-group-title { margin: 0 0 0.65rem; font-family: "Hanken Grotesk", sans-serif; font-size: 1.08rem; font-weight: 800; line-height: 1.35; }
#curriculum-navigator .cn-target p { margin: 0; font-size: 1.13rem; line-height: 1.55; }
#curriculum-navigator .cn-language { margin-bottom: 1.3rem; border-bottom: 1px solid var(--cn-border); padding-bottom: 0.5rem; }
#curriculum-navigator summary { min-height: 46px; padding: 0.7rem 0; color: var(--cn-ocean); font-weight: 700; cursor: pointer; line-height: 1.4; }
#curriculum-navigator .cn-language p, #curriculum-navigator .cn-starter { font-size: 1.05rem; line-height: 1.65; }
#curriculum-navigator .cn-vocabulary { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0.8rem 0 1rem; padding: 0; list-style: none; }
#curriculum-navigator .cn-vocabulary li { border-radius: 0.35rem; background: #edf3f8; padding: 0.3rem 0.6rem; line-height: 1.5; }
#curriculum-navigator .cn-frames { padding-left: 1.25rem; line-height: 1.65; }
#curriculum-navigator .cn-resource-group { margin: 1.3rem 0; }
#curriculum-navigator .cn-resources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
#curriculum-navigator .cn-resource { display: flex; align-items: center; min-height: 46px; height: 100%; padding: 0.65rem 0.75rem; border: 1px solid #d3dfe9; border-radius: 0.55rem; color: var(--cn-ocean); background: #f8fafc; font-size: 1rem; font-weight: 700; line-height: 1.4; text-decoration: none; overflow-wrap: anywhere; }
#curriculum-navigator .cn-resource:hover { background: #eaf2f9; border-color: var(--cn-ocean); text-decoration: underline; text-underline-offset: 0.15em; }
#curriculum-navigator .cn-variant { margin-bottom: 0.65rem; border: 1px solid var(--cn-border); border-radius: 0.65rem; overflow: hidden; }
#curriculum-navigator .cn-variant-main { border: 0; border-radius: 0; }
#curriculum-navigator .cn-variant-extras { padding: 0 0.8rem; }
#curriculum-navigator .cn-variant-extras[open] { padding-bottom: 0.8rem; }
#curriculum-navigator .cn-variant-extras summary { font-weight: 400; font-size: 0.97rem; }
#curriculum-navigator .cn-local-note { margin: 1.6rem 0 0; padding-top: 1rem; border-top: 1px solid var(--cn-border); color: var(--cn-muted); font-size: 0.92rem; line-height: 1.55; }
#curriculum-navigator #nav-message:not(:empty) { padding: 0.85rem 1rem; border-left: 4px solid var(--cn-ocean); background: #eaf2f9; color: var(--cn-ink); line-height: 1.5; }
#curriculum-navigator .cn-copy-fallback { padding: 1rem; border: 1px solid var(--cn-border); border-radius: 0.65rem; background: #fff; }
#curriculum-navigator .cn-copy-fallback label { display: block; margin-bottom: 0.5rem; font-weight: 700; }
#curriculum-navigator #nav-recent { display: flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; margin-bottom: 1rem; }
#curriculum-navigator .cn-recent-label { margin-right: 0.4rem; color: var(--cn-muted); font-size: 0.94rem; }
#curriculum-navigator .cn-recent-link { min-height: 44px; max-width: 100%; padding: 0.6rem 0.8rem; border: 1px solid var(--cn-border); border-radius: 0.6rem; color: var(--cn-ocean); background: #fff; font-size: 0.94rem; line-height: 1.35; text-align: left; cursor: pointer; }
#curriculum-navigator .cn-recent-link:hover { background: #eaf2f9; }
@media (max-width: 780px) {
  #curriculum-navigator .cn-layout { grid-template-columns: 1fr; gap: 1rem; }
  #curriculum-navigator .cn-heading { flex-wrap: wrap; gap: 0.3rem; }
  #curriculum-navigator .cn-browser { padding: 1rem; }
  #curriculum-navigator #nav-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #curriculum-navigator .cn-lesson-button { height: 100%; }
  #curriculum-navigator .cn-result-meta { padding-right: 0; }
  #curriculum-navigator .cn-selected-label { position: static; margin-top: 0.35rem; }
  #curriculum-navigator .cn-empty { grid-column: 1 / -1; }
}
@media (max-width: 440px) {
  #curriculum-navigator #nav-results { grid-template-columns: 1fr; max-height: 25rem; }
  #curriculum-navigator .cn-resources { grid-template-columns: 1fr; }
  #curriculum-navigator .cn-preview-actions > * { flex: 1 1 100%; }
  #curriculum-navigator .cn-lesson-button { padding: 0.85rem; }
  #curriculum-navigator .cn-lesson-button[aria-current="true"] { padding: 0.85rem; }
}
@media (prefers-reduced-motion: reduce) { #curriculum-navigator * { transition: none !important; scroll-behavior: auto !important; } }
@media print {
  #curriculum-navigator .cn-layout { display: block; }
  #curriculum-navigator :is(.cn-browser, #nav-recent, #nav-message, #nav-retry, .cn-preview-actions, .cn-copy-fallback, .cn-local-note) { display: none !important; }
  #curriculum-navigator #nav-preview { padding: 0; border: 0; box-shadow: none; }
  #curriculum-navigator .cn-resource-group { break-inside: avoid; }
  #curriculum-navigator .cn-resource { background: transparent; border-color: #bbb; }
  #curriculum-navigator .cn-target { background: transparent; }
}

/* Keep the route back and feedback next to the lesson actions on every screen. */
#curriculum-navigator .cn-back { margin: 0 0 1rem; color: var(--cn-ocean); background: #fff; }
#curriculum-navigator .cn-action-message { margin: 0; line-height: 1.5; }
#curriculum-navigator .cn-action-message:not(:empty) { margin: 0 0 1rem; padding: 0.8rem 1rem; border-left: 4px solid var(--cn-ocean); border-radius: 0 0.4rem 0.4rem 0; color: var(--cn-ink); background: #eaf2f9; }
#curriculum-navigator .cn-result-translation { margin-top: 0.4rem; color: var(--cn-teal); font-size: 1rem; line-height: 1.4; }
#curriculum-navigator .cn-preview-translation { margin: 0.7rem 0 0; color: var(--cn-teal); font-size: 1.1rem; line-height: 1.4; }
#curriculum-navigator .cn-teach { border-color: var(--cn-teal); color: var(--cn-teal); }
@media print {
  #curriculum-navigator :is(.cn-back, .cn-action-message) { display: none !important; }
}

/* Two connected panes: a quiet index and a distinct lesson workspace. */
#curriculum-navigator .cn-layout { border: 1px solid var(--cn-border); border-radius: 8px; overflow: clip; background: #fff; }
#curriculum-navigator .cn-browser { border: 0; border-right: 1px solid var(--cn-border); border-radius: 0; }
#curriculum-navigator #nav-preview { border: 0; border-radius: 0; background: #fbfcf8; padding: 32px; }
#curriculum-navigator #nav-results { padding: 4px 0; scrollbar-gutter: auto; }
#curriculum-navigator .cn-result-title { margin-top: 3px; font-size: 18px; font-weight: 650; }
#curriculum-navigator .cn-result-standard { font-size: 15px; margin-top: 3px; }
#curriculum-navigator .cn-lesson-button { padding: 12px; background: transparent; min-height: 88px; }
#curriculum-navigator .cn-lesson-button[aria-current="true"] { padding: 12px; background: #edf4ef; }
#curriculum-navigator .cn-heading { padding-top: 8px; padding-bottom: 20px; }
#curriculum-navigator .cn-preview-title { font-size: clamp(1.6rem,2.8vw,2.15rem); letter-spacing: -.035em; font-weight: 650; }
#curriculum-navigator .cn-filters { margin-top: 12px; }
#curriculum-navigator .cn-filters > label { margin-bottom: -4px; }
#curriculum-navigator .cn-target { background: #eef4e9; border-left-color: #47745a; border-radius: 0; }
#curriculum-navigator .cn-resource { border-radius: 4px; background: #fff; }
#curriculum-navigator .cn-orientation { margin: 24px 0; padding: 0; list-style: none; counter-reset: step; }
#curriculum-navigator .cn-orientation li { display: grid; grid-template-columns: 34px 1fr; gap: 14px; padding: 14px 0; border-top: 1px solid #dbe4d9; counter-increment: step; }
#curriculum-navigator .cn-orientation li::before { content: counter(step,decimal-leading-zero); color: #316b58; font-size: 18px; font-weight: 600; padding-top: 1px; }
#curriculum-navigator .cn-orientation strong { display: block; font-weight: 650; font-size: 18px; }
#curriculum-navigator .cn-orientation span { color: var(--cn-muted); font-size: 16px; line-height: 1.45; }
#curriculum-navigator .cn-starter-links { display: flex; flex-wrap: wrap; gap: 4px 22px; }
#curriculum-navigator .cn-starter-links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--cn-ocean); font-size: 16px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
#curriculum-navigator .cn-local-note { margin-top: 20px; padding-top: 16px; }
@media (max-width: 780px) {
  #curriculum-navigator .cn-layout { gap: 0; }
  #curriculum-navigator .cn-browser { border-right: 0; border-bottom: 1px solid var(--cn-border); }
  #curriculum-navigator #nav-preview { padding: 24px 20px; }
  #curriculum-navigator #nav-results { display: block; max-height: 20rem; }
  #curriculum-navigator .cn-selected-label { position: absolute; top: 12px; right: 12px; margin: 0; }
  #curriculum-navigator .cn-result-meta { padding-right: 60px; }
}

/* Today's lesson: the panel's opening state comes from the pacing plan. */
#curriculum-navigator .cn-today { margin-bottom: 8px; }
#curriculum-navigator .cn-today .cn-eyebrow { letter-spacing: 0.04em; }
#curriculum-navigator .cn-today-target { margin: 14px 0 0; padding: 12px 16px; border-left: 4px solid #47745a; background: #eef4e9; font-size: 17px; line-height: 1.5; }
#curriculum-navigator .cn-today + .cn-starter { margin: 20px 0 8px; padding-top: 16px; border-top: 1px solid #dbe4d9; color: var(--cn-muted); font-size: 16px; }

/* Each material says what it opens. */
#curriculum-navigator .cn-resource[data-kind] { justify-content: space-between; gap: 10px; }
#curriculum-navigator .cn-kind { flex: none; padding: 2px 8px; border-radius: 999px; background: #edf3f8; color: #2f4f6b; font-size: 13px; font-weight: 600; line-height: 1.5; text-decoration: none; }
#curriculum-navigator .cn-resource[data-kind="Interactive"] .cn-kind { background: #e3f1ec; color: #11574e; }
#curriculum-navigator .cn-resource[data-kind="Printable"] .cn-kind,
#curriculum-navigator .cn-resource[data-kind="PDF"] .cn-kind,
#curriculum-navigator .cn-resource[data-kind="Word"] .cn-kind { background: #f4efe4; color: #6a4f12; }
#curriculum-navigator .cn-resource[data-kind="Check"] .cn-kind { background: #17324D; color: #17324D; }

/* Small groups side by side so the two tables can be compared at a glance. */
#curriculum-navigator .cn-variants { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 10px; }
#curriculum-navigator .cn-variants > .cn-group-title { grid-column: 1 / -1; margin-bottom: 0; }
#curriculum-navigator .cn-variants .cn-variant { margin: 0; }
#curriculum-navigator .cn-variants .cn-resources { grid-template-columns: 1fr; }

/* Teacher-only quality flag on a result. */
#curriculum-navigator .cn-status { margin-top: 6px; padding: 2px 8px; border-radius: 999px; font-size: 13px; font-weight: 700; }
#curriculum-navigator .cn-status--missing { background: #fde4e1; color: #8f2a1f; }
#curriculum-navigator .cn-status--review { background: #fef0d8; color: #7a540e; }

/* The list stays beside the lesson on wide screens, so "Back to results" is only needed once they stack. */
@media (min-width: 781px) {
  #curriculum-navigator .cn-back { display: none; }
}
/* Stacked: put today's lesson above the long list instead of a screen below it. */
@media (max-width: 780px) {
  #curriculum-navigator.cn-idle #nav-preview { order: -1; border-bottom: 1px solid var(--cn-border); }
  #curriculum-navigator.cn-idle .cn-browser { border-bottom: 0; }
}

/* Today's panel carries its materials, so the desk is useful before a click. */
#curriculum-navigator.cn-idle .cn-today .cn-preview-actions { margin-bottom: 4px; }
#curriculum-navigator.cn-idle .cn-today + .cn-resource-group { margin-top: 22px; padding-top: 18px; border-top: 1px solid #dbe4d9; }
#curriculum-navigator.cn-idle .cn-resource-group { margin: 16px 0 0; }
#curriculum-navigator.cn-idle .cn-resource-group + .cn-starter { margin-top: 22px; }
#curriculum-navigator.cn-idle .cn-resources { grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); }
@media (max-width: 440px) {
  #curriculum-navigator.cn-idle .cn-resources { grid-template-columns: 1fr; }
}

/* Coming up: the next school days, one line each. */
#curriculum-navigator .cn-upcoming { margin: 0; padding: 0; list-style: none; }
#curriculum-navigator .cn-upcoming li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; min-height: 44px; padding: 4px 0; border-top: 1px solid #e3e9e4; }
#curriculum-navigator .cn-upcoming li:first-child { border-top: 0; }
#curriculum-navigator .cn-upcoming-day { flex: none; min-width: 7.5rem; color: var(--cn-muted); font-size: 15px; }
#curriculum-navigator .cn-upcoming-lesson { flex: 1 1 auto; min-height: 36px; padding: 4px 0; border: 0; background: transparent; color: var(--cn-ocean); font: inherit; font-size: 16px; font-weight: 600; text-align: left; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
#curriculum-navigator .cn-upcoming-lesson:hover { color: var(--cn-ink); }
#curriculum-navigator .cn-upcoming-note { flex: none; padding: 2px 8px; border-radius: 999px; background: #edf3f8; color: #2f4f6b; font-size: 13px; font-weight: 600; }
#curriculum-navigator .cn-upcoming-day + .cn-upcoming-note { background: transparent; padding: 0; color: var(--cn-ink); font-size: 16px; font-weight: 500; }

/* ===== /assets/curriculum-home.css ===== */
/* Curriculum landing: a lesson desk first, optional collections below it. */
body.curriculum-home {
  background: #d3e5e8;
  color: #14365b;
}
.curriculum-home .curriculum-guide {
  position: relative;
  padding: 28px 32px 22px;
  margin: 20px auto 0;
  border-radius: 20px 20px 0 0;
  box-shadow: none;
  border-bottom: 1px solid #d4e0ec;
}
.curriculum-home .curriculum-guide h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.12;
  margin: 6px 0 12px;
}
.curriculum-home .hub-publisher-tour {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 54px;
  max-width: min(100%, 690px);
  margin: 2px 0 14px;
  padding: 9px 14px;
  border: 1px solid #9ebbb8;
  border-left: 4px solid #176c6a;
  border-radius: 8px;
  background: #fff;
  color: #17324d;
  text-decoration: none;
}
.curriculum-home .hub-publisher-tour:hover {
  border-color: #176c6a;
  background: #f4faf8;
}
.curriculum-home .hub-publisher-tour:focus-visible {
  outline: 3px solid #176c6a;
  outline-offset: 3px;
}
.curriculum-home .hub-publisher-tour strong,
.curriculum-home .hub-publisher-tour small {
  display: block;
}
.curriculum-home .hub-publisher-tour strong {
  font-size: 15px;
  line-height: 1.2;
}
.curriculum-home .hub-publisher-tour small {
  margin-top: 3px;
  color: #506662;
  font-size: 13px;
  line-height: 1.35;
}
.curriculum-home .curriculum-guide__eyebrow {
  letter-spacing: 0.02em;
  text-transform: none;
  color: #11675d;
  font-size: 16px;
  margin: 0;
}
.curriculum-home .curriculum-guide__lede {
  font-size: 18px;
  line-height: 1.5;
  margin: 8px 0 16px;
  max-width: 76ch;
}
.curriculum-home #hub-mode-banner {
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  margin: 0 0 8px;
  font-size: 16px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  color: #475569;
}
.curriculum-home.teacher-mode #hub-mode-banner {
  display: none;
}
.curriculum-home .hub-shortcuts {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: stretch;
}
.curriculum-home .hub-shortcuts > :is(a, button),
.curriculum-home .hub-reading-control > button {
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  min-height: 44px;
  border: 1px solid #c4d3e2;
  background: #f7fafd;
  color: #15487f;
  border-radius: 8px;
  padding: 10px 14px;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  cursor: pointer;
  box-shadow: none;
  width: auto;
}
.curriculum-home .hub-shortcuts > :is(a, button):hover {
  background: #e7f0fa;
  border-color: #175da0;
}
.curriculum-home .hub-shortcuts .curriculum-guide__action span {
  display: none;
}
.curriculum-home .hub-shortcuts strong {
  font: inherit;
  color: inherit;
}
.curriculum-home .hub-shortcuts [data-guide-teacher-view="today"] {
  color: #fff;
  background: #175da0;
  border-color: #175da0;
}
.hub-page {
  max-width: 1180px;
  margin: 0 auto 32px;
  padding: 0 32px 28px;
  border-radius: 0 0 20px 20px;
  background: #fff;
}
.hub-collection {
  margin: 12px 0;
  border: 1px solid #cbd8e6;
  border-radius: 12px;
  color: #14365b;
  background: #fff;
}
.hub-collection > summary {
  min-height: 56px;
  padding: 16px 18px;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  line-height: 1.4;
}
.hub-collection > summary span {
  display: block;
  font-size: 16px;
  font-weight: 400;
  color: #475569;
  margin: 4px 0 0 20px;
}
.hub-collection[open] {
  padding: 0 16px 16px;
}
.hub-collection[open] > summary {
  margin: 0 -16px 16px;
  border-bottom: 1px solid #d4e0ec;
  background: #f4f8fc;
  border-radius: 12px 12px 0 0;
}
.curriculum-home :is(a, button, input, select, summary):focus-visible {
  outline: 3px solid #175da0;
  outline-offset: 3px;
}
.curriculum-home .hub-collection :is(button, select, .tt-link, .mf-btn, .ctw-btn) {
  min-height: 44px;
}
.curriculum-home #hub-student-hint {
  display: none;
}
.curriculum-home #curriculum-navigator #hub-toolbar-sticky {
  position: static;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  margin: 0;
}
.curriculum-home #curriculum-navigator .controls {
  padding: 0;
  margin: 0;
  border: 0;
  box-shadow: none;
  background: none;
}
.curriculum-home .ctw-tools-drawer {
  display: block !important;
}
.curriculum-home .hub-collection .wrap {
  padding: 0;
  margin: 0;
}
.curriculum-home .hub-collection .tws-workspace {
  margin: 0;
}
.curriculum-home .hub-collection .curriculum-guide__actions {
  margin-top: 16px;
}
.curriculum-home .hub-collection .curriculum-guide__action :is(strong, span) {
  font-size: 16px;
}
.curriculum-home .hub-collection .mailbox-feature .mf-sub,
.curriculum-home .hub-collection .mailbox-feature .mf-text {
  color: #334155 !important;
}
.curriculum-home #enterprise-standards-compliance strong {
  color: #15487f !important;
}
.curriculum-home #enterprise-standards-compliance li {
  color: #334155;
  font-size: 16px;
}
.curriculum-home .hub-collection .cpu-contract {
  margin: 12px 0;
}
.curriculum-home #hub-manipulatives .ewl-presets-bar {
  margin: 0;
  padding: 0;
}
.curriculum-home #awardShowcaseOverlay {
  padding: 0;
  border: 1px solid #cbd5e1;
  border-radius: 18px;
  width: min(780px, 92vw);
  max-width: 92vw;
  max-height: 88vh;
  overflow: auto;
  color: #14365b;
}
.curriculum-home #awardShowcaseOverlay::backdrop {
  background: rgb(15 23 42 / 65%);
}
@media (max-width: 700px) {
  .curriculum-home .curriculum-guide {
    margin: 0;
    padding: 20px 16px;
    border-radius: 0;
  }
  .curriculum-home .curriculum-guide__lede {
    font-size: 16px;
  }
  .hub-page {
    padding: 0 16px 24px;
    border-radius: 0;
  }
  .hub-collection > summary {
    padding: 14px;
    font-size: 17px;
  }
  .hub-collection[open] {
    padding: 0 10px 10px;
  }
  .hub-collection[open] > summary {
    margin: 0 -10px 12px;
  }
  .curriculum-home .hub-shortcuts {
    gap: 6px;
  }
  .curriculum-home .hub-shortcuts > :is(a, button) {
    padding: 9px 11px;
  }
  .curriculum-home #udlFloatingLauncher {
    max-width: calc(100vw - 32px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .curriculum-home {
    scroll-behavior: auto;
  }
}
@media print {
  .curriculum-home .hub-shortcuts,
  .curriculum-home .hub-reading-control,
  .curriculum-home #hub-mode-banner,
  .curriculum-home .hub-collection,
  .curriculum-home .hub-supports-dock {
    display: none !important;
  }
  .curriculum-home,
  .hub-page,
  .curriculum-home .curriculum-guide {
    background: #fff;
    padding: 0;
    margin: 0;
    max-width: none;
    border: 0;
  }
}

.curriculum-home .hub-supports-panel[hidden] {
  display: none !important;
}
.curriculum-home .hub-reading-control {
  margin: 0;
  padding: 0;
}
.curriculum-home #udlFloatingLauncher {
  min-height: 44px;
  background: #f7fafd;
}
.curriculum-home #udlMenuPopover {
  position: absolute;
  right: 16px;
  z-index: 100;
  margin-top: 8px;
  width: min(340px, calc(100% - 32px));
  max-height: 70vh;
  overflow-y: auto;
  padding: 18px;
  border: 1px solid #b3c7dc;
  border-radius: 12px;
  background: #fff;
  color: #14365b;
  box-shadow: 0 12px 30px rgb(15 23 42 / 18%);
  font-size: 16px;
}
.curriculum-home #udlMenuPopover :is(label, a) {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
}
.curriculum-home #udlMenuPopover input[type="checkbox"] {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}
.curriculum-home #udlMenuPopover h2 {
  font-size: 18px !important;
  margin: 0 0 12px;
}
.curriculum-home #hub-teacher-banner {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 4px 0;
  color: #475569;
}
@media (min-width: 900px) {
  .curriculum-home .curriculum-guide {
    position: relative;
    padding-top: 24px;
  }
  .curriculum-home #hub-mode-banner,
  .curriculum-home #hub-teacher-banner {
    position: absolute;
    top: 16px;
    right: 32px;
  }
  .curriculum-home .curriculum-guide h1 {
    font-size: 44px;
  }
}
.curriculum-home #awardShowcaseOverlay button {
  min-height: 44px;
  min-width: 44px;
  flex-shrink: 0;
}

/* The legacy print view is now inside the complete-library disclosure. Keep
   its ancestor chain visible while printing only the selected planning view. */
@media print {
  body.curriculum-home.ctw-printing > main.hub-page,
  body.curriculum-home.ctw-printing #hub-library-collection {
    display: block !important;
    margin: 0;
    padding: 0;
    border: 0;
  }
  /* Weekly Pacing "Print week" runs from #curriculum-teacher-workflow (sibling of
     the library disclosure, inside .wrap). Hiding every main child except the
     library used to erase the workflow during print and fail the journey spec. */
  body.curriculum-home.ctw-printing main.hub-page > :not(#hub-library-collection):not(.wrap):not(#hub-teacher-bar),
  body.curriculum-home.ctw-printing #hub-library-collection > :not(.ctw-panel) {
    display: none !important;
  }
  body.curriculum-home.ctw-printing #curriculum-navigator {
    display: none !important;
  }
}

/* Header mode controls already expose this action; keep the legacy JS bridge. */
.curriculum-home #hub-mode-toggle {
  display: none;
}

/* A compact course masthead; shortcuts read as supporting navigation. */
.curriculum-product.curriculum-home .curriculum-guide {
  background: transparent;
  border: 0;
  max-width: 1180px;
  padding-block: 30px 22px;
}
.curriculum-product.curriculum-home .curriculum-guide h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 650;
  letter-spacing: -0.04em;
  margin-block: 6px 12px;
}
.curriculum-product.curriculum-home .curriculum-guide__eyebrow {
  font-weight: 600;
}
.curriculum-product.curriculum-home .curriculum-guide__lede {
  font-size: 18px;
  color: var(--course-muted);
  max-width: 64ch;
  margin-bottom: 16px;
}
.curriculum-product.curriculum-home .hub-page {
  background: transparent;
}
.curriculum-product.curriculum-home .hub-shortcuts {
  gap: 4px 20px;
}
.curriculum-product.curriculum-home .hub-shortcuts > a,
.curriculum-product.curriculum-home .hub-reading-control > button {
  padding: 8px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.curriculum-product.curriculum-home .hub-reading-control {
  margin-left: auto;
}
.curriculum-product.curriculum-home .hub-shortcuts > a:hover,
.curriculum-product.curriculum-home .hub-reading-control > button:hover {
  color: #0d4941;
}
@media (max-width: 780px) {
  .curriculum-product.curriculum-home .curriculum-guide {
    padding: 20px 16px 16px;
  }
  .curriculum-product.curriculum-home .hub-reading-control {
    margin-left: 0;
  }
  .curriculum-product.curriculum-home .curriculum-guide__lede {
    font-size: 17px;
  }
}

/* Phones: the shortcuts are one scrollable row of same-shaped chips. Mixed
   underlined links and boxed buttons wrapped into four uneven rows; the fade
   at the right edge says there is more. */
@media (max-width: 780px) {
  .curriculum-product.curriculum-home .hub-shortcuts {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    align-items: stretch;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 16px;
    scrollbar-width: none;
    margin: 0 -16px;
    padding: 4px 16px 8px;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent);
    mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent);
  }
  .curriculum-product.curriculum-home .hub-shortcuts::-webkit-scrollbar {
    display: none;
  }
  .curriculum-product.curriculum-home .hub-shortcuts > :is(a, button),
  .curriculum-product.curriculum-home .hub-shortcuts .hub-reading-control > button {
    flex: none;
    scroll-snap-align: start;
    white-space: nowrap;
    min-height: 44px;
    padding: 9px 14px;
    border: 1px solid #c4d3e2;
    border-radius: 999px;
    background: #fff;
    color: #15487f;
    font-weight: 700;
    text-decoration: none;
  }
  .curriculum-product.curriculum-home .hub-shortcuts [data-guide-teacher-view="today"] {
    color: #fff;
    background: #175da0;
    border-color: #175da0;
  }
  .curriculum-product.curriculum-home .hub-reading-control {
    flex: none;
    margin-left: 0;
  }
  .curriculum-product.curriculum-home .hub-shortcuts .hub-reading-control > button {
    max-width: none;
  }
  .curriculum-home #udlMenuPopover {
    right: 16px;
    left: 16px;
    width: auto;
  }
}
/* The docked Prepare Supports bar is fixed to the bottom edge on phones;
   leave room so the last control on the page is never under it. */
@media (max-width: 640px) {
  body.curriculum-home.teacher-mode .hub-page {
    padding-bottom: 96px;
  }
}

/* Year at a glance: the ten units in teaching order, width by length, today
   marked. Decorative colour only — each segment names its unit in text. */
.course-timeline {
  position: relative;
  margin: 0 0 18px;
}
.course-timeline__track {
  display: flex;
  gap: 3px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.course-timeline__track li {
  flex: 1 1 0;
  min-width: 34px;
}
.course-timeline__track a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-radius: 6px;
  background: var(--tl-accent, #5b6470);
  color: #fff;
  /* 19px bold is large text (3:1), which every unit accent meets with white.
     It used to be 15px at 62% opacity: Unit 10 measured 2.71:1. */
  font-size: 19px;
  font-weight: 700;
  text-decoration: none;
}
.course-timeline__track a:hover,
.course-timeline__track a:focus-visible {
  filter: brightness(0.92);
}
.course-timeline__track .is-current a {
  box-shadow:
    0 0 0 2px #fff,
    0 0 0 4px var(--tl-accent, #5b6470);
}
.course-timeline__today {
  position: absolute;
  top: -12px;
  width: 2px;
  height: 12px;
  margin-left: -1px;
  background: #193e3b;
  border-radius: 1px;
  pointer-events: none;
}
.course-timeline__today::before {
  content: "";
  position: absolute;
  top: -5px;
  left: -4px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #193e3b;
}
.course-timeline__caption {
  margin: 10px 0 0;
  color: var(--course-muted, #506662);
  font-size: 15px;
  line-height: 1.5;
}
.curriculum-home .visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 780px) {
  .course-timeline__track {
    gap: 2px;
  }
  .course-timeline__track li {
    min-width: 30px;
  }
  .course-timeline__track a {
    min-height: 40px;
    border-radius: 5px;
  }
}
@media print {
  .course-timeline__today {
    display: none;
  }
  .course-timeline__track a {
    color: #000;
    background: transparent;
    border: 1px solid #999;
    opacity: 1;
  }
}

/* Footer link reaches the 44px target; the phone back-to-top button sits above
   the docked Prepare Supports bar instead of on top of it. */
.curriculum-home footer.hub a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 2px;
}
@media (max-width: 640px) {
  body.curriculum-home.teacher-mode .hub-back-to-top {
    right: auto;
    left: 12px;
    bottom: 76px;
  }
}

/* Audience switcher (Student / Family / Teacher). Visibility is class-driven:
   .hub-for-student and .hub-for-family are the two learner views; Teacher is
   body.teacher-mode, which already drives .hub-teacher-only. */
.curriculum-home .hub-audience {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 4px 0 14px;
}
.curriculum-home .hub-audience__label {
  flex-basis: 100%;
  font-size: 15px;
  font-weight: 600;
  color: var(--course-muted, #506662);
}
.curriculum-home .hub-audience__btn {
  min-height: 44px;
  padding: 6px 16px;
  line-height: 1.25;
  border: 1px solid #9ab0c5;
  border-radius: 8px;
  background: #fff;
  color: #15487f;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
}
.curriculum-home .hub-audience__btn [lang="es"] {
  display: block;
  color: inherit;
  font-size: 13px;
  font-weight: 500;
}
.curriculum-home .hub-audience__btn:hover {
  background: #eaf2fa;
}
.curriculum-home .hub-audience__btn[aria-pressed="true"] {
  background: #175da0;
  border-color: #175da0;
  color: #fff;
}
.curriculum-home #hub-teacher-banner {
  display: none !important;
}
body.curriculum-home.teacher-mode :is(.hub-for-student, .hub-for-family),
body.curriculum-home.hub-aud-family .hub-for-student,
body.curriculum-home:not(.hub-aud-family) .hub-for-family {
  display: none !important;
}
/* Learners get the short page: the cards below replace the resource search,
   the teaching workflows and the full tool library, which are teacher views. */
body.curriculum-home:not(.teacher-mode) :is(#curriculum-resources, #hub-workflows, #hub-library-collection) {
  display: none;
}
.curriculum-home :is(.hub-now, .hub-panel, .curriculum-guide__lede, .course-overview) [lang="es"] {
  color: var(--course-muted, #506662);
}
.curriculum-home .curriculum-guide__lede [lang="es"] {
  display: block;
  font-size: 16px;
}
/* Student-safe shortcuts stay available; hub-teacher-only hides teacher actions. */

/* Now / Next */
.curriculum-home .hub-now {
  padding: 24px 0 8px;
}
.curriculum-home .hub-now h2,
.curriculum-home .hub-panel h2 {
  margin: 0 0 12px;
  font-size: 24px;
}
.curriculum-home .hub-now__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 12px;
}
.curriculum-home .hub-now__card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 18px;
  border: 1px solid var(--course-border, #d2dcd7);
  border-radius: 8px;
  background: #fff;
}
.curriculum-home .hub-now__card--today {
  border-color: #175da0;
  box-shadow: inset 0 4px 0 #175da0;
}
.curriculum-home .hub-now__card p,
.curriculum-home .hub-now__card h3 {
  margin: 0;
}
.curriculum-home .hub-now__when {
  font-size: 15px;
}
.curriculum-home .hub-now__title {
  font-size: 20px;
  line-height: 1.3;
}
.curriculum-home .hub-now__title a {
  color: #15487f;
}
.curriculum-home .hub-now__card > .hub-es {
  display: block;
  font-size: 15px;
}
.curriculum-home .hub-now__unit {
  color: var(--course-muted, #506662);
  font-size: 15px;
}
.curriculum-home .hub-now__guide {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 44px;
  font-weight: 700;
  color: #15487f;
}

/* Learner panels: a handful of cards, then plain links. */
.curriculum-home .hub-panel {
  padding: 20px 0 8px;
}
.curriculum-home .hub-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.curriculum-home .hub-card {
  display: flex;
  flex-direction: column;
  gap: 2px;
  height: 100%;
  min-height: 44px;
  padding: 14px 16px;
  border: 1px solid var(--course-border, #d2dcd7);
  border-radius: 8px;
  background: #fff;
  color: var(--course-ink, #193e3b);
  text-decoration: none;
}
.curriculum-home .hub-card:hover {
  border-color: #175da0;
  background: #f5f9fd;
}
.curriculum-home .hub-card strong {
  color: #15487f;
  font-size: 18px;
}
.curriculum-home .hub-card strong [lang="es"] {
  font-weight: 500;
  font-size: 15px;
}
.curriculum-home .hub-card > span {
  font-size: 15px;
}
.curriculum-home .hub-more__title {
  margin: 18px 0 6px;
  font-size: 18px;
}
.curriculum-home .hub-more {
  display: flex;
  flex-wrap: wrap;
  gap: 0 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.curriculum-home .hub-more a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: #15487f;
  font-weight: 600;
}

/* Course cards in teaching order: finished units step back (colour, not
   opacity, so text keeps its contrast); a unit not taught this year reads
   as such rather than as upcoming. */
.curriculum-home .course-unit-list li.is-done a {
  background: #f1f4f2;
  box-shadow: inset 0 4px 0 #c9d3ce;
}
.curriculum-home .course-unit-list li.is-done :is(.course-unit-number, .course-unit-title) {
  color: var(--course-muted, #506662);
}
.curriculum-home .course-unit-list li[data-unscheduled] a {
  background: repeating-linear-gradient(135deg, #fff 0 10px, #e4eff1 10px 20px);
  box-shadow: inset 0 4px 0 #c9d3ce;
}
.curriculum-home .course-unit-list li[data-unscheduled] .course-unit-dates {
  font-weight: 700;
  color: var(--course-ink, #193e3b);
}
.course-timeline__track li.is-done a {
  background: #dfe5e2;
  color: #33423f;
}

/* Reading supports live in the course bar (tools/lib/curriculum-shell.mjs) so
   they are reachable at every width without scrolling a row of chips. */
.curriculum-home .ewl-course-tools .hub-reading-control {
  position: relative;
  margin: 0;
}
.curriculum-home .ewl-course-tools #udlFloatingLauncher {
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #c4d3e2;
  border-radius: 8px;
  background: #fff;
  color: #15487f;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.curriculum-home .ewl-course-tools #udlFloatingLauncher:hover {
  background: #eaf2fa;
}
.curriculum-home .ewl-course-tools #udlMenuPopover {
  right: 0;
  top: 100%;
}
@media (max-width: 780px) {
  .curriculum-home .ewl-course-tools .hub-reading-control {
    position: static;
  }
  .curriculum-home .ewl-course-tools #udlMenuPopover {
    top: auto;
    left: 16px;
    right: 16px;
    width: auto;
  }
}

/* Student quick actions, "pick up where you left off", and the rest-day card */
.curriculum-home .hub-now__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 0;
}
.curriculum-home .hub-now__action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 44px;
  padding: 6px 14px;
  border: 1px solid #175da0;
  border-radius: 8px;
  background: #fff;
  color: #15487f;
  font-weight: 700;
  text-decoration: none;
}
.curriculum-home .hub-now__action:hover,
.curriculum-home .hub-now__action:focus-visible {
  background: #eaf2fb;
}
.curriculum-home .hub-now__action--play {
  margin-top: 8px;
  align-self: flex-start;
}
.curriculum-home .hub-now__card--continue {
  border-color: #0f6b4f;
  box-shadow: inset 0 4px 0 #0f6b4f;
}
.curriculum-home .hub-now__bar {
  display: block;
  height: 8px;
  margin-top: 6px;
  border-radius: 4px;
  background: #dbe5e0;
  overflow: hidden;
}
.curriculum-home .hub-now__bar::after {
  content: "";
  display: block;
  width: var(--pct, 0%);
  height: 100%;
  background: #0f6b4f;
}
.curriculum-home .hub-now__dismiss {
  align-self: flex-start;
  min-height: 44px;
  margin-top: 4px;
  padding: 6px 4px;
  border: 0;
  background: none;
  color: var(--course-muted, #506662);
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}

/* Lesson finder */
.curriculum-home .hub-find[hidden] {
  display: none;
}
.curriculum-home .hub-find {
  margin: 0 0 14px;
}
.curriculum-home .hub-find__label {
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
}
.curriculum-home .hub-find__input {
  box-sizing: border-box;
  width: 100%;
  max-width: 480px;
  min-height: 48px;
  padding: 8px 14px;
  border: 2px solid #175da0;
  border-radius: 8px;
  font: inherit;
  background: #fff;
}
.curriculum-home .hub-find__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 6px;
  max-width: 640px;
}
.curriculum-home .hub-find__chip {
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid #c4d3e2;
  border-radius: 22px;
  background: #f7fafd;
  color: #15487f;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.curriculum-home .hub-find__chip:hover {
  background: #e7f0fa;
  border-color: #175da0;
}
.curriculum-home .hub-find__chip:focus-visible {
  outline: 3px solid #175da0;
  outline-offset: 2px;
}
.curriculum-home .hub-find__status {
  min-height: 1.4em;
  margin: 6px 0 0;
  color: var(--course-muted, #506662);
  font-size: 15px;
}
.curriculum-home .hub-find__results {
  display: grid;
  gap: 6px;
  max-width: 640px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.curriculum-home .hub-find__link {
  display: block;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--course-border, #d2dcd7);
  border-radius: 8px;
  background: #fff;
  color: #15487f;
  text-decoration: none;
}
.curriculum-home .hub-find__link:hover,
.curriculum-home .hub-find__link:focus-visible {
  background: #eaf2fb;
}
.curriculum-home .hub-find__word {
  display: block;
  margin-top: 2px;
  color: var(--course-muted, #506662);
  font-size: 14px;
}

/* Unified Student Continuity meta bar (Save Code + My Progress & Portfolio) */
.curriculum-home .hub-now__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}
.curriculum-home .hub-now__code {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 6px;
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  font-weight: 700;
}
.curriculum-home .hub-now__portfolio {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 36px;
  padding: 4px 10px;
  border-radius: 6px;
  background: #f0f9ff;
  border: 1px solid #bae6fd;
  color: #0c4a6e;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}
.curriculum-home .hub-now__portfolio:hover,
.curriculum-home .hub-now__portfolio:focus-visible {
  background: #e0f2fe;
}

/* Pedagogical & Award Evidence Dossier trigger button in .curriculum-guide__links */
.curriculum-home .hub-pedagogy-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  padding: 6px 14px;
  border: 1px solid #f59e0b;
  border-radius: 999px;
  background: #fffbeb;
  color: #92400e;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
.curriculum-home .hub-pedagogy-trigger:hover,
.curriculum-home .hub-pedagogy-trigger:focus-visible {
  background: #fef3c7;
}

/* Visual Models & Synchronized Representations Dock (#hub-manipulatives) */
.curriculum-home .hub-manipulatives-dock {
  display: grid;
  gap: 18px;
  padding: 4px 0 8px;
}
.curriculum-home .hub-manipulatives-dock__lede {
  margin: 0;
  color: #334155;
  font-size: 16px;
  line-height: 1.55;
}
.curriculum-home .hub-manip-group {
  border: 1px solid #dbe4ee;
  border-radius: 12px;
  padding: 16px;
  background: #f8fafc;
}
.curriculum-home .hub-manip-group__title {
  margin: 0 0 12px;
  color: #0f2942;
  font-size: 18px;
  font-weight: 800;
}
.curriculum-home .hub-manip-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 12px;
}
.curriculum-home .hub-manip-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 44px;
  padding: 14px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  color: #0f2942;
  text-decoration: none;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.15s ease;
}
.curriculum-home .hub-manip-card:hover,
.curriculum-home .hub-manip-card:focus-visible {
  border-color: #175da0;
  box-shadow: 0 6px 16px rgb(15 23 42 / 8%);
  transform: translateY(-1px);
}
.curriculum-home .hub-manip-card__kicker {
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #175da0;
}
.curriculum-home .hub-manip-card strong {
  font-size: 16px;
  color: #0f2942;
}
.curriculum-home .hub-manip-card > span:not(.hub-manip-card__kicker):not(.hub-es) {
  font-size: 14px;
  color: #475569;
  line-height: 1.45;
}

.curriculum-home .hub-home-organize {
  margin: 8px 0 28px;
  padding: 8px 0 4px;
}
.curriculum-home .hub-home-organize h2 {
  margin: 0 0 12px;
  font-size: 1.35rem;
}
.curriculum-home .hub-home-grid {
  display: grid;
  gap: 12px;
}
@media (min-width: 900px) {
  .curriculum-home .hub-home-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.curriculum-home .hub-home-grid details {
  background: #fff;
  border: 1px solid #d5e0e8;
  border-radius: 12px;
  padding: 4px 14px 12px;
}
.curriculum-home .hub-home-grid summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  cursor: pointer;
  font-weight: 800;
  font-size: 1.05rem;
  color: #17324d;
}
.curriculum-home .hub-home-grid summary:focus-visible {
  outline: 3px solid #115e59;
  outline-offset: 3px;
}
.curriculum-home .hub-home-grid p {
  margin: 8px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
}
.curriculum-home .hub-home-grid a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: #115e59;
  font-weight: 700;
}
@media (prefers-reduced-motion: reduce) {
  .curriculum-home .hub-home-grid * {
    transition: none;
  }
}


/* ===== /assets/curriculum-resources.css ===== */
/* A visible resource shelf, scoped to the curriculum hub. */
#curriculum-resources { color: #14365b; padding: 24px 0 28px; border-top: 2px solid #b5cfda; scroll-margin-top: 24px; }
#curriculum-resources *, #curriculum-resources *::before, #curriculum-resources *::after { box-sizing: border-box; }
#curriculum-resources [hidden] { display: none !important; }
#curriculum-resources :is(a, button, input):focus-visible { outline: 3px solid #175da0; outline-offset: 4px; }
#curriculum-resources h2 { font-size: 26px; line-height: 1.2; margin: 0 0 8px; }
#curriculum-resources p { font-size: 16px; line-height: 1.5; }
#curriculum-resources .cr-intro { max-width: 74ch; margin: 0 0 20px; color: #475c71; }
#curriculum-resources a { color: #15518a; text-underline-offset: 3px; }
#curriculum-resources .cr-search-row { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; }
#curriculum-resources .cr-search-field { flex: 1 1 340px; }
#curriculum-resources label { display: block; font-size: 16px; font-weight: 700; margin-bottom: 6px; }
#curriculum-resources input { display: block; width: 100%; min-height: 48px; font: inherit; font-size: 16px; color: #14365b; background: #fff; border: 1px solid #728ba3; border-radius: 8px; padding: 10px 12px; }
#curriculum-resources button { font: inherit; font-size: 16px; line-height: 1.35; min-height: 44px; padding: 9px 13px; border: 1px solid #9ab0c5; border-radius: 8px; background: #fff; color: #14365b; cursor: pointer; }
#curriculum-resources button:hover { background: #edf4f7; border-color: #11675d; }
#curriculum-resources button[aria-pressed="true"] { color: #fff; background: #11675d; border-color: #11675d; }
#curriculum-resources button:disabled { opacity: .65; cursor: default; }
#cr-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; }
#curriculum-resources #cr-status { color: #475c71; margin: 12px 0; }
#cr-results { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
#cr-results > li { min-width: 0; padding: 18px; border: 1px solid #c9d6e2; border-radius: 10px; background: #f7fafc; display: flex; flex-direction: column; }
#curriculum-resources .cr-kind { color: #11675d; margin: 0 0 8px; font-size: 16px; }
#cr-results h3 { font-size: 21px; line-height: 1.3; margin: 0 0 10px; }
#cr-results h3 a { display: inline-block; padding: 3px 0; }
#curriculum-resources .cr-description { margin: 0 0 16px; color: #334b61; }
#curriculum-resources .cr-card-actions { display: flex; align-items: center; gap: 8px 14px; flex-wrap: wrap; margin-top: auto; }
#curriculum-resources .cr-card-actions a { min-height: 44px; display: inline-flex; align-items: center; font-size: 16px; font-weight: 700; }
#curriculum-resources .cr-card-actions button { margin-left: auto; }
#cr-results .cr-empty { grid-column: 1 / -1; font-size: 17px; line-height: 1.5; }
#cr-more { margin-top: 16px; }
#curriculum-resources #cr-notice { color: #11675d; margin: 12px 0; }
#curriculum-resources #cr-notice:empty { margin: 0; }
#curriculum-resources .cr-footer { display: flex; gap: 8px 24px; flex-wrap: wrap; margin: 16px 0 0; }
#curriculum-resources .cr-footer a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; }
#cr-fallback { display: flex; flex-wrap: wrap; gap: 10px 20px; padding: 0; list-style: none; }
#cr-fallback a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; }
.curriculum-home .hub-shortcuts .hub-resource-shortcut { background: #e7f3ef; color: #0f5b52; border-color: #78a69e; }
@media (max-width: 1000px) { #cr-results { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { #cr-results { grid-template-columns: minmax(0, 1fr); } #curriculum-resources .cr-search-field { flex-basis: 100%; } #curriculum-resources h2 { font-size: 24px; } }
@media print { #curriculum-resources { display: none !important; } }
#curriculum-navigator .cn-heading p a[href="#curriculum-resources"] { text-decoration: underline; text-underline-offset: 3px; }

/* ===== /assets/curriculum-system.css ===== */
/* ===== inlined @import /assets/fonts/fraunces-hanken-grotesk-e8a3b5.css ===== */
/* Generated by tools/self-host-fonts.mjs from:
   https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Hanken+Grotesk:wght@400;500;600;700;800&display=swap
   Same families, weights and styles the CDN served; font-display: swap is
   preserved from the source. No family, weight, size or line-height changed. */
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/fraunces-8a8dc979.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/fraunces-ffbbcc88.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/fraunces-175f6e93.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/fraunces-8a8dc979.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/fraunces-ffbbcc88.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/fraunces-175f6e93.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/fraunces-8a8dc979.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/fraunces-ffbbcc88.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/fraunces-175f6e93.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/fraunces-8a8dc979.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/fraunces-ffbbcc88.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/fraunces-175f6e93.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-d792469b.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-decbe7b9.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-6748e3a4.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-271d5973.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-d792469b.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-decbe7b9.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-6748e3a4.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-271d5973.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-d792469b.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-decbe7b9.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-6748e3a4.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-271d5973.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-d792469b.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-decbe7b9.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-6748e3a4.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-271d5973.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-d792469b.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-decbe7b9.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-6748e3a4.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/hanken-grotesk-271d5973.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ===== inlined @import /assets/dimension.css ===== */
/* EduWonderLab dimensional design system.
 *
 * One physical idea carried everywhere: math as lit, tactile objects on a
 * drafting desk. Light comes from the upper left. Surfaces are ceramic (a lit
 * top edge, a thickness lip below), controls are keycaps that press down, and
 * every illustration is an isometric solid whose three faces take their tones
 * from the rules below (drawn by tools/lib/iso.mjs).
 *
 * This file owns tokens, materials and the iso tone model. Page compositions
 * (the homepage stage, the lesson header, the practice shell) live in their own
 * sheets and only consume what is defined here. Brand colours are the locked
 * palette in engine/design/tokens.json; nothing here is violet. */
:root {
  --dm-night: #0d273d;
  --dm-shade: #1a1612;
  --dm-navy: #17324d;
  --dm-navy-2: #1f4468;
  --dm-paper: #f7f4ec;
  --dm-paper-2: #efe9db;
  --dm-card: #ffffff;
  --dm-teal: #1fa6a2;
  --dm-teal-ink: #0c6f6b;
  --dm-brass: #f2c15b;
  --dm-brass-ink: #8a5a00;
  --dm-text: #24323f;
  --dm-muted: #4a555e;
  --dm-line: rgb(23 50 77 / 0.14);

  /* Elevation. Shadows are tinted with the ink colour and stacked as a contact
     shadow plus an ambient one; the inset white edge is the lit top. */
  --dm-lit: inset 0 1px 0 rgb(255 255 255 / 0.95);
  --dm-lip: inset 0 -2px 0 rgb(23 50 77 / 0.07);
  --dm-e1:
    var(--dm-lit), var(--dm-lip), 0 1px 2px rgb(13 39 61 / 0.1),
    0 4px 10px -4px rgb(13 39 61 / 0.14);
  --dm-e2:
    var(--dm-lit), var(--dm-lip), 0 2px 4px rgb(13 39 61 / 0.08),
    0 14px 26px -10px rgb(13 39 61 / 0.26);
  --dm-e3:
    var(--dm-lit), var(--dm-lip), 0 4px 8px rgb(13 39 61 / 0.08),
    0 30px 50px -18px rgb(13 39 61 / 0.4);

  --dm-radius: 16px;
  --dm-radius-sm: 10px;
  --dm-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --dm-font-display: "Fraunces", Georgia, serif;
  --dm-font-body: "Hanken Grotesk", system-ui, sans-serif;

  /* Isometric tones. a is the unit colour (pages override --tone-a-base). */
  --tone-a-base: #1f6f8b;
  --tone-b-base: #d9a73a;
  --tone-c-base: #17324d;
  --tone-d-base: #efe9da;
  --tone-e-base: #1f8f8b;
}

/* Per-unit identity. Same hues the unit pages already use. */
:root {
  --unit-1: #316f62;
  --unit-2: #2f6fa3;
  --unit-3: #b5562b;
  --unit-4: #b3402a;
  --unit-5: #2f8a8a;
  --unit-6: #a8792a;
  --unit-7: #3f6db5;
  --unit-8: #a34a6b;
  --unit-9: #557a2f;
  --unit-10: #5b6470;
}

/* ---- The lighting model: every solid has a lit top, a body face, a shaded face ---- */
.iso {
  display: block;
  overflow: visible;
}
.iso .s {
  --base: var(--tone-a-base);
}
.iso .s.b {
  --base: var(--tone-b-base);
}
.iso .s.c {
  --base: var(--tone-c-base);
}
.iso .s.d {
  --base: var(--tone-d-base);
}
.iso .s.e {
  --base: var(--tone-e-base);
}
.iso .s .t {
  fill: color-mix(in srgb, var(--base) 56%, #fff);
  stroke: rgb(255 255 255 / 0.6);
  stroke-width: 0.6;
  stroke-linejoin: round;
}
.iso .s .l {
  fill: var(--base);
  stroke: rgb(13 39 61 / 0.16);
  stroke-width: 0.5;
  stroke-linejoin: round;
}
.iso .s .r {
  fill: color-mix(in srgb, var(--base) 70%, var(--dm-shade));
  stroke: rgb(13 39 61 / 0.2);
  stroke-width: 0.5;
  stroke-linejoin: round;
}
.iso .s.flat {
  fill: var(--base);
  stroke: rgb(13 39 61 / 0.2);
  stroke-width: 0.4;
}
.iso circle.t {
  stroke: none;
  fill: rgb(255 255 255 / 0.55);
}
.iso circle.l,
.iso circle.r {
  stroke: none;
}
.iso .shade {
  fill: var(--dm-night);
  fill-opacity: var(--o, 0.08);
}
.iso .grid polyline {
  fill: none;
  stroke: rgb(23 50 77 / 0.2);
  stroke-width: 0.45;
}
.iso .lab {
  fill: rgb(13 39 61 / 0.82);
  font-family: var(--dm-font-display);
  font-weight: 700;
}

/* ---- Desk: the page under everything ----
   !important is deliberate and limited to the two desk layers: curriculum-hub.css,
   curriculum-enhancements.css (`body { background: #fff !important }`) and the
   unit-page sheets each paint the body, and the desk must win on every shell page. */
body.curriculum-product {
  background-color: var(--dm-paper-2) !important;
  background-image:
    radial-gradient(1100px 520px at 8% -6%, rgb(31 166 162 / 0.11), transparent 62%),
    radial-gradient(900px 460px at 100% 2%, rgb(242 193 91 / 0.16), transparent 58%),
    linear-gradient(var(--dm-paper), var(--dm-paper-2)) !important;
  background-attachment: fixed;
  color: var(--dm-text);
}
body.curriculum-product::before { background: transparent !important; }
body.curriculum-product:is(.high-contrast, .hub-high-contrast) { background: #fff !important; }

/* ---- Navigation: a lit navy bar that sits above the page ---- */
body.curriculum-product .ewl-course-nav {
  position: sticky;
  top: 0;
  background: linear-gradient(180deg, var(--dm-navy-2), var(--dm-navy) 70%);
  border-bottom: 1px solid rgb(0 0 0 / 0.3);
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / 0.14),
    0 6px 18px -8px rgb(13 39 61 / 0.55);
  color: #f7f4ec;
}
body.curriculum-product .ewl-course-brand,
body.curriculum-product .ewl-course-nav li a,
body.curriculum-product .ewl-course-more > summary {
  color: #f7f4ec;
}
body.curriculum-product .ewl-course-brand span {
  color: #c9d7e3;
}
body.curriculum-product .ewl-course-nav li a {
  border-radius: 10px;
  transition:
    background 0.18s var(--dm-ease),
    color 0.18s var(--dm-ease);
}
body.curriculum-product .ewl-course-nav li a:hover,
body.curriculum-product .ewl-course-more > summary:hover,
body.curriculum-product .ewl-course-more[open] > summary {
  background: rgb(255 255 255 / 0.12);
  color: #fff;
}
body.curriculum-product .ewl-course-nav li a[aria-current="page"] {
  background: linear-gradient(180deg, #fffdf7, #f3eee1);
  color: var(--dm-night);
  text-decoration: none;
  box-shadow:
    var(--dm-lit),
    0 2px 0 rgb(0 0 0 / 0.28);
}
body.curriculum-product .ewl-course-more--current > summary {
  color: #fff;
}
body.curriculum-product .ewl-course-nav .ewl-course-more > ul {
  background: var(--dm-card);
  border-radius: 14px;
  box-shadow: var(--dm-e3);
}
body.curriculum-product .ewl-course-nav .ewl-course-more li a {
  color: var(--dm-text);
}
body.curriculum-product .ewl-course-nav .ewl-course-more li a:hover {
  background: #eaf2fa;
  color: var(--dm-night);
}
body.curriculum-product .ewl-course-nav .ewl-course-more li a[aria-current="page"] {
  background: #e3edf6;
  box-shadow: none;
}
body.curriculum-product :is(a, button, input, select, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--dm-brass);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px rgb(13 39 61 / 0.55);
}
body.curriculum-product main :is(a, button, input, select, summary, [tabindex]):focus-visible {
  outline-color: var(--course-blue, #175da0);
  box-shadow: 0 0 0 5px rgb(255 255 255 / 0.9);
}

/* ---- Ceramic surfaces ---- */
body.curriculum-product :is(.card, .featured, .sheet, .unit-card-header) {
  background: linear-gradient(180deg, #ffffff, #fbf8f1);
  background-image: linear-gradient(180deg, #ffffff, #fbf8f1);
  border: 1px solid var(--dm-line);
  border-radius: var(--dm-radius);
  box-shadow: var(--dm-e1);
}
body.curriculum-product a.card,
body.curriculum-product .card:is(a, button, [role="link"]) {
  transition:
    transform 0.22s var(--dm-ease),
    box-shadow 0.22s var(--dm-ease);
}
body.curriculum-product :is(a.card, .card:is(a, button, [role="link"])):is(:hover, :focus-visible) {
  transform: translateY(-4px);
  box-shadow: var(--dm-e3);
}
body.curriculum-product :is(a.card, .card:is(a, button, [role="link"])):active {
  transform: translateY(-1px);
  box-shadow: var(--dm-e2);
}

/* ---- Keycaps: controls with thickness that press down ---- */
body.curriculum-product :is(.btn, .unit-resource-btn, .sheet-actions a) {
  background: linear-gradient(180deg, #ffffff, #f1ece0);
  border: 1px solid rgb(23 50 77 / 0.22);
  border-radius: 12px;
  color: var(--course-blue, #175da0);
  box-shadow:
    var(--dm-lit),
    0 3px 0 rgb(23 50 77 / 0.18),
    0 8px 14px -8px rgb(13 39 61 / 0.35);
  transition:
    transform 0.12s var(--dm-ease),
    box-shadow 0.12s var(--dm-ease);
}
body.curriculum-product :is(.btn, .unit-resource-btn, .sheet-actions a):hover {
  transform: translateY(-1px);
  box-shadow:
    var(--dm-lit),
    0 4px 0 rgb(23 50 77 / 0.2),
    0 12px 18px -8px rgb(13 39 61 / 0.4);
}
body.curriculum-product :is(.btn, .unit-resource-btn, .sheet-actions a):active {
  transform: translateY(2px);
  box-shadow:
    var(--dm-lit),
    0 1px 0 rgb(23 50 77 / 0.2),
    0 3px 6px -4px rgb(13 39 61 / 0.3);
}
body.curriculum-product .btn-solid {
  background: linear-gradient(180deg, #17897f, var(--dm-teal-ink));
  border-color: #07514d;
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / 0.32),
    0 3px 0 #07514d,
    0 10px 16px -8px rgb(7 81 77 / 0.7);
}
body.curriculum-product .btn-solid:hover {
  background: linear-gradient(180deg, #1b9a8f, #0f7e78);
  color: #fff;
}
body.curriculum-product .btn-solid:active {
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / 0.2),
    0 1px 0 #07514d;
}

/* Headline voice shared by every shell page. */
body.curriculum-product :is(h1, h2) {
  font-family: var(--dm-font-display);
  color: var(--dm-night);
  letter-spacing: -0.012em;
}

/* ---- Constraints: motion, contrast and print ---- */
@media (prefers-reduced-motion: reduce) {
  body.curriculum-product * {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
  body.curriculum-product :is(a.card, .btn, .unit-resource-btn):is(:hover, :active) {
    transform: none;
  }
}
@media (prefers-contrast: more), (forced-colors: active) {
  body.curriculum-product :is(.card, .featured, .sheet, .btn, .unit-resource-btn, .ewl-course-nav) {
    box-shadow: none;
    border: 2px solid currentColor;
  }
}
body.curriculum-product:is(.high-contrast, .hub-high-contrast)
  :is(.card, .featured, .sheet, .btn, .unit-resource-btn) {
  box-shadow: none;
  border: 2px solid currentColor;
  background: #fff;
}
@media print {
  body.curriculum-product {
    background: #fff;
  }
  body.curriculum-product :is(.card, .featured, .sheet, .btn) {
    box-shadow: none;
  }
}

/* ===== inlined @import /assets/dimension-stage.css ===== */
/* Page stage: the header of every hub page. Built on assets/dimension.css; loaded
 * with it by assets/curriculum-system.css but not by the lesson engine, which has no
 * use for the artwork. The stage-art block at the end is generated. */
/* ---- Page stage: the header of every hub page carries one object of its own ----
   The object follows the active item in the course bar (art is generated, see the
   stage-art block at the end of this file). Pages with their own hero (the
   homepage, Arcade, Projects) keep it. */
body.curriculum-product { --dm-art: var(--dm-art-resources); }
body.curriculum-product:has(.ewl-course-nav a[aria-current="page"][href="/curriculum/practice-workbooks/"]) { --dm-art: var(--dm-art-practice); }
body.curriculum-product:has(.ewl-course-nav a[aria-current="page"][href="/curriculum/learning-labs/"]) { --dm-art: var(--dm-art-labs); }
body.curriculum-product:has(.ewl-course-nav a[aria-current="page"][href="/curriculum/family-connections/"]) { --dm-art: var(--dm-art-families); }
body.curriculum-product:has(.ewl-course-nav a[aria-current="page"][href="/curriculum/extra-help/"]) { --dm-art: var(--dm-art-help); }
body.curriculum-product:has(.ewl-course-nav a[aria-current="page"][href="/curriculum/fluency/"]) { --dm-art: var(--dm-art-fluency); }
body.curriculum-product:not(.curriculum-home) :is(.catalog-header, .hub-header, .eh-header, .ar-head):has(h1),
body.curriculum-product:not(.curriculum-home) header > .wrap:has(> h1) {
  position: relative; isolation: isolate; overflow: hidden;
  box-sizing: border-box; max-width: var(--course-width, 1180px); margin: 22px auto 10px;
  padding: clamp(22px, 3.6vw, 40px) min(36%, 400px) clamp(22px, 3.6vw, 40px) clamp(20px, 4vw, 44px);
  border: 1px solid var(--dm-line); border-radius: 28px;
  background: radial-gradient(60% 120% at 88% 45%, rgb(31 166 162 / 0.2), transparent 62%), linear-gradient(135deg, #ffffff, #f6efde);
  box-shadow: var(--dm-e3);
}
body.curriculum-product:not(.curriculum-home) :is(.catalog-header, .hub-header, .eh-header, .ar-head):has(h1)::after,
body.curriculum-product:not(.curriculum-home) header > .wrap:has(> h1)::after {
  content: ""; position: absolute; z-index: -1; right: clamp(6px, 2.4vw, 36px); top: clamp(14px, 2.4vw, 30px);
  width: min(34%, 380px); aspect-ratio: 3 / 2;
  background: var(--dm-art) center / contain no-repeat; filter: drop-shadow(0 18px 16px rgb(13 39 61 / 0.22));
  pointer-events: none;
}
body.curriculum-product:not(.curriculum-home) :is(.catalog-header, .hub-header, .eh-header, .ar-head) h1,
body.curriculum-product:not(.curriculum-home) header > .wrap > h1 { font-size: clamp(2.1rem, 4.6vw, 3.5rem); line-height: 1.02; margin-top: 0; }
@media (max-width: 960px) {
  body.curriculum-product:not(.curriculum-home) :is(.catalog-header, .hub-header, .eh-header, .ar-head):has(h1),
  body.curriculum-product:not(.curriculum-home) header > .wrap:has(> h1) { padding-right: clamp(20px, 4vw, 44px); margin-inline: 12px; }
  body.curriculum-product:not(.curriculum-home) :is(.catalog-header, .hub-header, .eh-header, .ar-head):has(h1)::after,
  body.curriculum-product:not(.curriculum-home) header > .wrap:has(> h1)::after { position: static; display: block; width: min(70%, 240px); margin: 14px auto 0; transform: none; }
}

/* stage-art:begin (generated by tools/sync-curriculum-shell.mjs from tools/lib/iso-art.mjs) */
:root {
  --dm-art-practice: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 240' aria-hidden='true'%3E%3Cpolygon fill='%230d273d' fill-opacity='0.07' points='165.7,19.5 354,128.2 194.3,220.5 6,111.8'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.08' points='165.7,28.5 338.5,128.2 194.3,211.5 21.5,111.8'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.1' points='165.7,36.9 323.9,128.2 194.3,203.1 36.1,111.8'/%3E%3Cg%3E%3Cpolygon fill='%23ece6d6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='51.6,111.8 194.3,194.1 194.3,186.9 51.6,104.5'/%3E%3Cpolygon fill='%23ada89b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='308.4,128.2 194.3,194.1 194.3,186.9 308.4,121'/%3E%3Cpolygon fill='%23f4f1e8' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='165.7,38.6 308.4,121 194.3,186.9 51.6,104.5'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%23ece6d6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='63,104.5 194.3,180.3 194.3,173 63,97.3'/%3E%3Cpolygon fill='%23ada89b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='297,121 194.3,180.3 194.3,173 297,113.7'/%3E%3Cpolygon fill='%23f4f1e8' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='165.7,38 297,113.7 194.3,173 63,97.3'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%23ece6d6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='74.5,97.3 194.3,166.4 194.3,159.2 74.5,90'/%3E%3Cpolygon fill='%23ada89b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='285.5,113.7 194.3,166.4 194.3,159.2 285.5,106.5'/%3E%3Cpolygon fill='%23f4f1e8' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='165.7,37.3 285.5,106.5 194.3,159.2 74.5,90'/%3E%3C/g%3E%3Cg%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='165.7,37.3 74.5,90'/%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='185.7,48.9 94.4,101.6'/%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='205.7,60.4 114.4,113.1'/%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='225.6,71.9 134.4,124.6'/%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='245.6,83.4 154.3,136.1'/%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='265.6,95 174.3,147.7'/%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='285.5,106.5 194.3,159.2'/%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='165.7,37.3 285.5,106.5'/%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='145.8,48.9 265.6,118'/%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='125.8,60.4 245.6,129.6'/%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='105.8,71.9 225.6,141.1'/%3E%3Cpolyline fill='none' stroke='%2317324d' stroke-opacity='.2' stroke-width='.45' points='85.9,83.4 205.7,152.6'/%3E%3C/g%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.2' stroke-width='.4' points='160,53.5 228.5,93 225.1,95 156.6,55.4'/%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.2' stroke-width='.4' points='142.9,63.3 194.3,93 190.8,95 139.5,65.3'/%3E%3Cg%3E%3Cpolygon fill='%23e8b23f' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='119,90.7 210.2,143.4 210.2,132.2 119,79.5'/%3E%3Cpolygon fill='%23aa8331' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='219.9,137.8 210.2,143.4 210.2,132.2 219.9,126.6'/%3E%3Cpolygon fill='%23f2d493' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='128.7,73.9 219.9,126.6 210.2,132.2 119,79.5'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%2317324d' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='210.2,143.4 221.6,150 221.6,138.8 210.2,132.2'/%3E%3Cpolygon fill='%23182a3b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='231.3,144.4 221.6,150 221.6,138.8 231.3,133.2'/%3E%3Cpolygon fill='%237d8c9b' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='219.9,126.6 231.3,133.2 221.6,138.8 210.2,132.2'/%3E%3C/g%3E%3C/svg%3E");
  --dm-art-labs: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 240' aria-hidden='true'%3E%3Cpolygon fill='%230d273d' fill-opacity='0.07' points='157,41.5 346.7,151 203,234 13.3,124.5'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.08' points='157,50.6 331,151 203,225 29,124.5'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.1' points='157,59.1 316.3,151 203,216.5 43.7,124.5'/%3E%3Cg%3E%3Cpolygon fill='%23ece6d6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='59.3,124.5 203,207.5 203,197.5 59.3,114.5'/%3E%3Cpolygon fill='%23ada89b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='300.7,151 203,207.5 203,197.5 300.7,141.1'/%3E%3Cpolygon fill='%23f4f1e8' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='157,58.1 300.7,141.1 203,197.5 59.3,114.5'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%231fa6a2' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' d='M106.9 48.2V111.2A38.6 22.3 0 0 0 145.5 133.5V48.2Z'/%3E%3Cpath fill='%231e7b77' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' d='M145.5 48.2V133.5A38.6 22.3 0 0 0 184.1 111.2V48.2Z'/%3E%3Cellipse fill='%2382cdcb' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' cx='145.5' cy='48.2' rx='38.6' ry='22.3'/%3E%3C/g%3E%3Cg%3E%3Ccircle fill='%23aa8331' cx='145.5' cy='27.6' r='21.6'/%3E%3Ccircle fill='%23e8b23f' cx='143.4' cy='25' r='18.6'/%3E%3Ccircle fill='%23ffffff' fill-opacity='.55' cx='139.5' cy='20.7' r='9.1'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' d='M200.8 99.6V136.1A22.4 12.9 0 0 0 223.1 149V99.6Z'/%3E%3Cpath fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' d='M223.1 99.6V149A22.4 12.9 0 0 0 245.5 136.1V99.6Z'/%3E%3Cellipse fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' cx='223.1' cy='99.6' rx='22.4' ry='12.9'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%2317324d' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='162.8,161 194.4,179.2 194.4,149.4 162.8,131.1'/%3E%3Cpolygon fill='%23182a3b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='220.2,164.3 194.4,179.2 194.4,149.4 220.2,134.5'/%3E%3Cpolygon fill='%237d8c9b' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='188.6,116.2 220.2,134.5 194.4,149.4 162.8,131.1'/%3E%3C/g%3E%3C/svg%3E");
  --dm-art-families: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 240' aria-hidden='true'%3E%3Cpolygon fill='%230d273d' fill-opacity='0.07' points='166,36.7 350.8,143.4 194,234 9.2,127.3'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.08' points='166,45.5 335.6,143.4 194,225.2 24.4,127.3'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.1' points='166,53.8 321.3,143.4 194,216.9 38.7,127.3'/%3E%3Cg%3E%3Cpolygon fill='%23ece6d6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='54,127.3 194,208.1 194,200 54,119.2'/%3E%3Cpolygon fill='%23ada89b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='306,143.4 194,208.1 194,200 306,135.4'/%3E%3Cpolygon fill='%23f4f1e8' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='166,54.5 306,135.4 194,200 54,119.2'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%23e8b23f' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='96,120.8 191.2,175.8 191.2,120.8 96,65.8'/%3E%3Cpolygon fill='%23aa8331' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='264,133.7 191.2,175.8 191.2,120.8 264,78.8'/%3E%3Cpolygon fill='%23f2d493' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='168.8,23.8 264,78.8 191.2,120.8 96,65.8'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='84.8,65.8 191.2,127.3 191.2,116 84.8,54.5'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='275.2,78.8 191.2,127.3 191.2,116 275.2,67.4'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='168.8,6 275.2,67.4 191.2,116 84.8,54.5'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='107.2,57.7 185.6,103 185.6,91.7 107.2,46.4'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='252.8,64.2 185.6,103 185.6,91.7 252.8,52.9'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='174.4,7.6 252.8,52.9 185.6,91.7 107.2,46.4'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='129.6,49.7 180,78.8 180,67.4 129.6,38.3'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='230.4,49.7 180,78.8 180,67.4 230.4,38.3'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='180,9.2 230.4,38.3 180,67.4 129.6,38.3'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%2317324d' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='128.2,141 153.4,155.6 153.4,116.8 128.2,102.2'/%3E%3Cpolygon fill='%23182a3b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='156.2,154 153.4,155.6 153.4,116.8 156.2,115.1'/%3E%3Cpolygon fill='%237d8c9b' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='131,100.6 156.2,115.1 153.4,116.8 128.2,102.2'/%3E%3C/g%3E%3Cg%3E%3Ccircle fill='%231e7b77' cx='199.6' cy='167.7' r='13.6'/%3E%3Ccircle fill='%231fa6a2' cx='198.2' cy='166.1' r='11.7'/%3E%3Ccircle fill='%23ffffff' fill-opacity='.55' cx='195.8' cy='163.4' r='5.7'/%3E%3C/g%3E%3C/svg%3E");
  --dm-art-help: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 240' aria-hidden='true'%3E%3Cpolygon fill='%230d273d' fill-opacity='0.07' points='148.9,19.5 354,137.9 211.1,220.5 6,102.1'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.08' points='148.9,29.3 337.1,137.9 211.1,210.7 22.9,102.1'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.1' points='148.9,38.5 321.2,137.9 211.1,201.5 38.8,102.1'/%3E%3Cg%3E%3Cpolygon fill='%23ece6d6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='55.7,102.1 211.1,191.8 211.1,182.8 55.7,93.1'/%3E%3Cpolygon fill='%23ada89b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='304.3,137.9 211.1,191.8 211.1,182.8 304.3,129'/%3E%3Cpolygon fill='%23f4f1e8' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='148.9,39.3 304.3,129 211.1,182.8 55.7,93.1'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='83.7,87.7 114.7,105.6 114.7,76.9 83.7,59'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='164.5,76.9 114.7,105.6 114.7,76.9 164.5,48.2'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='133.4,30.3 164.5,48.2 114.7,76.9 83.7,59'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='117.9,107.4 148.9,125.4 148.9,71.6 117.9,53.6'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='198.6,96.7 148.9,125.4 148.9,71.6 198.6,42.9'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='167.6,24.9 198.6,42.9 148.9,71.6 117.9,53.6'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='152,127.2 183.1,145.1 183.1,66.2 152,48.2'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='232.8,116.4 183.1,145.1 183.1,66.2 232.8,37.5'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='201.7,19.5 232.8,37.5 183.1,66.2 152,48.2'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%2317324d' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' d='M208.2 80.5V141.5A18.5 10.7 0 0 0 226.6 152.2V80.5Z'/%3E%3Cpath fill='%23182a3b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' d='M226.6 80.5V152.2A18.5 10.7 0 0 0 245.1 141.5V80.5Z'/%3E%3Cellipse fill='%237d8c9b' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' cx='226.6' cy='80.5' rx='18.5' ry='10.7'/%3E%3C/g%3E%3Cg%3E%3Ccircle fill='%23aa8331' cx='226.6' cy='58.3' r='23.4'/%3E%3Ccircle fill='%23e8b23f' cx='224.3' cy='55.5' r='20.1'/%3E%3Ccircle fill='%23ffffff' fill-opacity='.55' cx='220.1' cy='50.8' r='9.8'/%3E%3C/g%3E%3C/svg%3E");
  --dm-art-fluency: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 240' aria-hidden='true'%3E%3Cpolygon fill='%230d273d' fill-opacity='0.07' points='122,28.2 354,162.1 238,229.1 6,95.2'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.08' points='122,38.3 336.5,162.1 238,219 23.5,95.2'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.1' points='122,47.8 320,162.1 238,209.5 40,95.2'/%3E%3Cg%3E%3Cpolygon fill='%23ece6d6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='57.6,95.2 238,199.3 238,190 57.6,85.9'/%3E%3Cpolygon fill='%23ada89b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='302.4,162.1 238,199.3 238,190 302.4,152.8'/%3E%3Cpolygon fill='%23f4f1e8' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='122,48.7 302.4,152.8 238,190 57.6,85.9'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='76.9,82.1 105.9,98.9 105.9,69.1 76.9,52.4'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='144.6,76.6 105.9,98.9 105.9,69.1 144.6,46.8'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='115.6,30.1 144.6,46.8 105.9,69.1 76.9,52.4'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='111.7,102.2 140.7,119 140.7,66.9 111.7,50.1'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='179.4,96.7 140.7,119 140.7,66.9 179.4,44.6'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='150.4,27.8 179.4,44.6 140.7,66.9 111.7,50.1'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='146.5,122.3 175.5,139.1 175.5,64.7 146.5,47.9'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='214.2,116.7 175.5,139.1 175.5,64.7 214.2,42.3'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='185.2,25.6 214.2,42.3 175.5,64.7 146.5,47.9'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='181.3,142.4 210.3,159.2 210.3,62.4 181.3,45.7'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='249,136.8 210.3,159.2 210.3,62.4 249,40.1'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='220,23.4 249,40.1 210.3,62.4 181.3,45.7'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%23e8b23f' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='216.1,162.5 245.1,179.3 245.1,60.2 216.1,43.4'/%3E%3Cpolygon fill='%23aa8331' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='283.8,156.9 245.1,179.3 245.1,60.2 283.8,37.9'/%3E%3Cpolygon fill='%23f2d493' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='254.8,21.1 283.8,37.9 245.1,60.2 216.1,43.4'/%3E%3C/g%3E%3Cg%3E%3Ccircle fill='%231e7b77' cx='257.3' cy='22.6' r='11.7'/%3E%3Ccircle fill='%231fa6a2' cx='256.2' cy='21.2' r='10.1'/%3E%3Ccircle fill='%23ffffff' fill-opacity='.55' cx='254.1' cy='18.9' r='4.9'/%3E%3C/g%3E%3C/svg%3E");
  --dm-art-progress: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 240' aria-hidden='true'%3E%3Cpolygon fill='%230d273d' fill-opacity='0.07' points='130.8,28.1 354,157 229.2,229 6,100.1'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.08' points='130.8,38.4 336.1,157 229.2,218.7 23.9,100.1'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.1' points='130.8,48.1 319.3,157 229.2,209 40.7,100.1'/%3E%3Cg%3E%3Cpolygon fill='%23ece6d6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='58.5,100.1 229.2,198.7 229.2,189.2 58.5,90.6'/%3E%3Cpolygon fill='%23ada89b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='301.5,157 229.2,198.7 229.2,189.2 301.5,147.5'/%3E%3Cpolygon fill='%23f4f1e8' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='130.8,48.9 301.5,147.5 229.2,189.2 58.5,90.6'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='78.2,90.6 117.6,113.4 117.6,86.8 78.2,64.1'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='163.6,86.8 117.6,113.4 117.6,86.8 163.6,60.3'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='124.2,37.5 163.6,60.3 117.6,86.8 78.2,64.1'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='120.9,115.3 160.3,138 160.3,84.9 120.9,62.2'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='206.3,111.5 160.3,138 160.3,84.9 206.3,58.4'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='166.9,35.7 206.3,58.4 160.3,84.9 120.9,62.2'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='163.6,139.9 203,162.6 203,83 163.6,60.3'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='248.9,136.1 203,162.6 203,83 248.9,56.5'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='209.5,33.8 248.9,56.5 203,83 163.6,60.3'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%2317324d' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='236.5,150.9 242.4,154.3 242.4,40.6 236.5,37.2'/%3E%3Cpolygon fill='%23182a3b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='248.3,150.9 242.4,154.3 242.4,40.6 248.3,37.2'/%3E%3Cpolygon fill='%237d8c9b' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='242.4,33.8 248.3,37.2 242.4,40.6 236.5,37.2'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%23e8b23f' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='198.4,38.3 237.8,61.1 237.8,36.4 198.4,13.7'/%3E%3Cpolygon fill='%23aa8331' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='242.4,58.4 237.8,61.1 237.8,36.4 242.4,33.8'/%3E%3Cpolygon fill='%23f2d493' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='203,11 242.4,33.8 237.8,36.4 198.4,13.7'/%3E%3C/g%3E%3C/svg%3E");
  --dm-art-resources: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 240' aria-hidden='true'%3E%3Cpolygon fill='%230d273d' fill-opacity='0.07' points='156,24.7 354,139.1 204,225.7 6,111.3'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.08' points='156,34.2 337.7,139.1 204,216.2 22.3,111.3'/%3E%3Cpolygon fill='%230d273d' fill-opacity='0.1' points='156,43 322.3,139.1 204,207.4 37.7,111.3'/%3E%3Cg%3E%3Cpolygon fill='%23ece6d6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='54,111.3 204,197.9 204,189.3 54,102.7'/%3E%3Cpolygon fill='%23ada89b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='306,139.1 204,197.9 204,189.3 306,130.4'/%3E%3Cpolygon fill='%23f4f1e8' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='156,43.8 306,130.4 204,189.3 54,102.7'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%232f84b6' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='108,81.9 168,116.5 168,75 108,40.3'/%3E%3Cpolygon fill='%23296385' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='213,90.6 168,116.5 168,75 213,49'/%3E%3Cpolygon fill='%238bbad6' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='153,14.3 213,49 168,75 108,40.3'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%231fa6a2' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='174,120 234,154.6 234,126.9 174,92.3'/%3E%3Cpolygon fill='%231e7b77' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='279,128.7 234,154.6 234,126.9 279,100.9'/%3E%3Cpolygon fill='%2382cdcb' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='219,66.3 279,100.9 234,126.9 174,92.3'/%3E%3C/g%3E%3Cg%3E%3Cpolygon fill='%23e8b23f' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' points='69,104.4 114,130.4 114,106.1 69,80.2'/%3E%3Cpolygon fill='%23aa8331' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' points='150,109.6 114,130.4 114,106.1 150,85.4'/%3E%3Cpolygon fill='%23f2d493' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' points='105,59.4 150,85.4 114,106.1 69,80.2'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%2317324d' stroke='%230d273d' stroke-opacity='.16' stroke-width='.5' stroke-linejoin='round' d='M154.5 102.7V147.7A25.5 14.7 0 0 0 180 162.4V102.7Z'/%3E%3Cpath fill='%23182a3b' stroke='%230d273d' stroke-opacity='.2' stroke-width='.5' stroke-linejoin='round' d='M180 102.7V162.4A25.5 14.7 0 0 0 205.5 147.7V102.7Z'/%3E%3Cellipse fill='%237d8c9b' stroke='%23ffffff' stroke-opacity='.6' stroke-width='.6' stroke-linejoin='round' cx='180' cy='102.7' rx='25.5' ry='14.7'/%3E%3C/g%3E%3C/svg%3E");
}
/* stage-art:end */

/* Curriculum discovery system. Activity artwork and mathematical models keep
   their own styling. Tokens are shared by the dashboard, units and catalogs. */
.curriculum-product {
  --course-ink: #193e3b;
  --course-muted: #3f5a58;
  --course-blue: #175da0;
  --course-teal: #11675d;
  --course-paper: #d3e5e8;
  --course-border: #a9c7ce;
  --course-radius: 8px;
  --course-width: 1180px;
  color: var(--course-ink);
  background: var(--course-paper);
  font-family: "Hanken Grotesk", system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.55;
}
.curriculum-product::before { background: var(--course-paper); }
.curriculum-product :is(h1,h2,h3) { text-wrap: balance; }
.curriculum-product :is(button,input,select) { font-family: inherit; }
.curriculum-product :is(a,button,input,select,summary):focus-visible {
  outline: 3px solid var(--course-blue);
  outline-offset: 4px;
}
.curriculum-product p a { text-decoration: underline; text-underline-offset: .2em; }
.curriculum-product :is(.wrap,.catalog-header,#catalog) { max-width: var(--course-width); }
.curriculum-product :is(.back,.crumbs a,.units-page-links a) {
  display: inline-flex; align-items: center; min-height: 44px;
}
.curriculum-product :is(.eyebrow,.units-page-eyebrow,.lesson-label) {
  text-transform: none; letter-spacing: normal; font-size: 16px;
}
.curriculum-product .btn-solid { color: #fff; background: var(--course-blue); border-color: var(--course-blue); }
.curriculum-product .btn-solid:hover { color: #fff; background: var(--course-ink); }
.curriculum-product .card { border-radius: var(--course-radius); }
.curriculum-product :is(.card p,.card-cta,.section-note,.sheet-info>p:last-child) {
  font-size: 16px; line-height: 1.5;
}
.curriculum-product :is(.btn,.sheet-actions a,.unit-resource-btn) {
  min-height: 44px; font-size: 16px; align-items: center;
}
.curriculum-product .sheet-actions a { display: inline-flex; border-radius: 6px; }
.curriculum-product .sheet { gap: 16px; }
.curriculum-product .card { border-color: var(--course-border); }
.curriculum-product .card h3 { font-size: 20px; line-height: 1.35; }
.curriculum-product .ewl-course-nav {
  position: relative; z-index: 30; margin: 0; padding: 0;
  background: #fff; border-bottom: 1px solid var(--course-border);
  color: var(--course-ink); font-size: 16px; line-height: 1.35;
}
.ewl-course-nav__inner {
  max-width: var(--course-width); margin: 0 auto; padding: 10px 32px;
  display: flex; gap: 24px; align-items: center; justify-content: space-between;
}
.ewl-course-nav .ewl-course-brand {
  display: grid; grid-template-columns: 28px auto; column-gap: 10px;
  align-items: center; flex-shrink: 0; min-height: 48px;
  font-size: 18px; font-weight: 700; color: var(--course-ink); text-decoration: none;
}
.ewl-course-brand img { grid-row: span 2; }
.ewl-course-brand span { font-size: 14px; color: var(--course-muted); font-weight: 400; }
.ewl-course-nav ul { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; list-style: none; }
.ewl-course-nav li { padding: 0; margin: 0; }
.ewl-course-nav li a {
  display: flex; align-items: center; justify-content: center; min-height: 44px;
  padding: 10px 12px; border-radius: 6px; color: var(--course-muted);
  font-size: 16px; font-weight: 700; text-decoration: none;
}
.ewl-course-nav li a:hover { background: #edf3f9; color: var(--course-blue); }
.ewl-course-nav li a[aria-current="page"] {
  color: var(--course-blue); background: #eaf2fa;
  text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px;
}
.ewl-skip { position: absolute; top: -100px; left: 16px; z-index: 1000001; padding: 12px 16px; background: #fff; color: #175da0; }
.ewl-skip:focus { top: 8px; }
/* A course sequence is useful information, not a set of competing launch tiles. */
.course-overview { padding: 24px 0; border-bottom: 1px solid var(--course-border); }
.course-overview__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; margin-bottom: 14px; }
.course-overview h2 { margin: 0; font: 700 26px/1.3 "Hanken Grotesk", sans-serif; }
.course-overview p { margin: 0; font-size: 16px; color: var(--course-muted); }
.course-unit-list { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 0; list-style: none; padding: 0; margin: 0; border: 1px solid var(--course-border); border-radius: 10px; overflow: hidden; }
.course-unit-list li { min-width: 0; }
.course-unit-list a { display: flex; flex-direction: column; height: 100%; min-height: 106px; padding: 14px 16px; border: 1px solid #e2e8e3; background: #fff; color: var(--course-ink); text-decoration: none; }
.course-unit-list a:hover { background: #eaf2fa; }
.course-unit-list a:focus-visible { outline-offset: -4px; }
.course-unit-number { color: var(--course-blue); font-size: 16px; }
.course-unit-title { margin: 4px 0 6px; font-size: 17px; line-height: 1.3; }
.course-unit-count { margin-top: auto; color: var(--course-muted); font-size: 14px; }
.curriculum-product .curriculum-guide { border-radius: 0; margin-top: 0; padding-top: 28px; }
.curriculum-product.curriculum-home .hub-page { border-radius: 0; }
.curriculum-product .hub-shortcuts { align-items: center; }
.curriculum-product .hub-shortcuts > a:is([href="/curriculum/practice-workbooks/"],[href="/curriculum/family-connections/"]) { display: none; }
/* The global navigation already exposes these destinations. Reading controls
   and teacher workflows remain in their original, tested locations. */
.curriculum-product .hub-shortcuts .hub-resource-shortcut { background: #fff; border-color: #c4d3e2; color: var(--course-blue); }
.curriculum-product .curriculum-guide__lede { max-width: 64ch; }
.curriculum-product #curriculum-navigator .cn-browser,
.curriculum-product #curriculum-navigator #nav-preview { border-radius: var(--course-radius); box-shadow: none; }
.curriculum-product #curriculum-navigator .cn-eyebrow { text-transform: none; letter-spacing: normal; font-size: 16px; }
.curriculum-product #curriculum-navigator .cn-layout { grid-template-columns: minmax(0,.85fr) minmax(0,1.4fr); }
.curriculum-product #curriculum-navigator #nav-preview { min-height: 0; }
.curriculum-product #curriculum-navigator .cn-lesson-button { border-radius: 0; }
.curriculum-product #curriculum-navigator .cn-preview-title { font-weight: 800; }
.curriculum-product #curriculum-navigator .cn-starter { margin-top: 12px; }
.curriculum-product #cr-results > li { background: #fff; }
.curriculum-product.curriculum-units-page #hub-toolbar-sticky { position: static; box-shadow: none; border-radius: var(--course-radius); background: #fff; }
.curriculum-product .units-browser-nav { background: #fff; border-left-width: 1px; }
.curriculum-product .unit-card { box-shadow: none; border-radius: var(--course-radius); }
.curriculum-product .unit-card-header { background: #f0f4ef; }
.curriculum-product .unit-card-name { margin: 4px 0 0; font: 700 26px/1.3 "Hanken Grotesk",sans-serif; }
.curriculum-product .lesson-outline-title { text-transform: none; letter-spacing: normal; font-size: 18px; }
.curriculum-product .selector-label { text-transform: none; letter-spacing: normal; font-size: 16px; }
.curriculum-product :is(.units-lesson-actions,.units-lesson-paging)[hidden] { display: none; }
.units-lesson-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0 20px 16px; }
.units-lesson-actions a { min-height: 48px; padding: 11px 18px; display: inline-flex; align-items: center; color: #175da0; border: 1px solid #9ab0c5; border-radius: 8px; background: #fff; font-size: 17px; font-weight: 700; text-decoration: none; }
.units-lesson-actions .units-open-lesson { color: #fff; background: #175da0; border-color: #175da0; }
.units-lesson-actions a:hover { background: #eaf2fa; }
.units-lesson-actions .units-open-lesson:hover { background: #193e3b; color: #fff; }
.units-lesson-paging { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 20px 16px; }
.units-lesson-paging button { min-height: 44px; padding: 9px 12px; border: 1px solid #9ab0c5; border-radius: 6px; color: #175da0; background: #fff; font: inherit; font-size: 16px; cursor: pointer; }
.units-lesson-paging button:disabled { color: #58697b; background: #eef2f6; border-color: #d2dcd7; cursor: default; }
.units-lesson-paging span { color: #506662; font-size: 16px; margin-right: auto; }
.units-lesson-options { margin: 0 20px 16px; border-top: 1px solid #d3dfe8; }
.units-lesson-options > summary { min-height: 46px; padding: 12px 0; font-size: 16px; font-weight: 700; color: #175da0; cursor: pointer; }
.curriculum-product .units-lesson-options .phase-selectors { padding: 0; }
@media (max-width: 1050px) {
  /* Brand and page tools share the first row; the destinations take the second. */
  .ewl-course-nav__inner { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 6px 12px; }
  .ewl-course-menu { grid-column: 1 / -1; grid-row: 2; }
  .ewl-course-tools { grid-column: 2; grid-row: 1; }
  .course-unit-list { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 780px) {
  .curriculum-product #curriculum-navigator .cn-layout { grid-template-columns: minmax(0,1fr); }
  .curriculum-product #curriculum-navigator #nav-preview { margin-top: 0; }
  .ewl-course-nav__inner { padding: 12px 16px 8px; }
  .course-unit-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .course-unit-list a { min-height: 106px; padding: 12px; }
  .course-overview { padding: 20px 0; }
  .units-lesson-actions,.units-lesson-paging,.units-lesson-options { margin-left: 12px; margin-right: 12px; }
  .units-lesson-actions a { flex: 1 1 auto; justify-content: center; padding: 10px 12px; }
  .units-lesson-actions .units-open-lesson { flex-basis: 100%; }
  .units-lesson-paging span { flex-basis: 100%; }
  .units-lesson-paging button { flex: 1; }
  .curriculum-product .sheet { flex-wrap: wrap; }
  .curriculum-product .sheet-actions { flex-shrink: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .curriculum-product { scroll-behavior: auto; }
  .curriculum-product *, .curriculum-product *::before, .curriculum-product *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .ewl-course-nav,.ewl-skip,.course-overview,.units-lesson-actions,.units-lesson-paging,.units-lesson-options { display: none !important; }
  .curriculum-product { background: #fff; }
}
/* Preserve the family's existing display preferences with the shared shell. */
.curriculum-product.large-text { font-size: 20px; }
.curriculum-product.high-contrast { --course-ink: #111; --course-muted: #222; --course-blue: #064842; --course-paper: #fff; --course-border: #555; color: #111; background: #fff; }

/* Editorial hierarchy shared by discovery pages. Activity models retain their
   own type and artwork; only the curriculum chrome uses this display system. */
.curriculum-product :is(h1,h2,h3,.section-label,.unit-title) {
  font-family: "Hanken Grotesk",system-ui,sans-serif; font-weight: 700;
  letter-spacing: -.025em; color: var(--course-ink);
}
.curriculum-product h1 { font-size: clamp(2rem,4vw,3rem); line-height: 1.1; }
.curriculum-product :is(.lede,.section-sub,.catalog-header>p) { color: var(--course-muted); }
.curriculum-product .ewl-course-brand { letter-spacing: -.025em; }
.ewl-course-nav li a { font-weight: 600; border-radius: 4px; }
.ewl-course-nav li a[aria-current="page"] { background: #edf3ef; color: #174e46; }
.curriculum-product :is(.wrap,.catalog-header,#catalog) { padding-inline: 32px; }
.curriculum-product :is(.catalog-header,.units-page-head) { border-bottom: 1px solid var(--course-border); }
.curriculum-product :is(.back,.crumbs) { margin-bottom: 12px; font-size: 16px; }
.curriculum-product :is(.eyebrow,.units-page-eyebrow) { color: var(--course-teal); font-weight: 600; }
.curriculum-product :is(.stats,.hero-actions) { gap: 10px 16px; }
.curriculum-product .stat { background: transparent; border: 0; padding: 0; color: var(--course-muted); border-radius: 0; }
.curriculum-product .section-label { margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--course-border); font-size: 26px; }
.curriculum-product .card { padding: 24px; border: 1px solid var(--course-border); background: #fff; box-shadow: none; }
.curriculum-product .card { display: flex; flex-direction: column; }
.curriculum-product .card h3 { margin-block: 10px; font-size: 23px; }
.curriculum-product .card-cta { margin-top: auto; padding-top: 20px; color: var(--course-blue); font-weight: 700; }
.curriculum-product .card:hover { border-color: #64867f; background: #fafcf9; }
.curriculum-product .card.featured { border-top: 3px solid #316f62; background: #f0f5ee; }
.curriculum-product .card-kicker { color: var(--course-teal); font-size: 16px; text-transform: none; letter-spacing: 0; }
.curriculum-product .catalog-header { padding-top: 24px; padding-bottom: 28px; }
.curriculum-product .catalog-header h1 { margin-block: 8px 16px; }
.curriculum-product .catalog-header>p { max-width: 70ch; font-size: 17px; }
.curriculum-product .course-overview { padding-block: 32px; }
.curriculum-product .course-unit-number { color: var(--course-teal); font-weight: 600; }
.curriculum-product .course-unit-title { font-size: 18px; font-weight: 600; }
.curriculum-product .course-unit-count { font-size: 15px; }
.curriculum-product #curriculum-resources { font-family: inherit; border-top: 0; }
.curriculum-product #curriculum-resources h2 { font-family: inherit; font-size: 26px; }
.curriculum-product #cr-results h3 { font-family: inherit; font-size: 22px; }
.curriculum-product #cr-results>li { padding: 24px; border-radius: 8px; border-color: var(--course-border); }
.curriculum-product .hub-collection { border-inline: 0; border-radius: 0; border-color: var(--course-border); }
.curriculum-product .hub-collection[open]>summary { border-radius: 0; background: #f0f4ef; }
@media (max-width: 780px) {
  .curriculum-product :is(.wrap,.catalog-header,#catalog) { padding-inline: 16px; }
  .curriculum-product .card { padding: 20px; }
  .curriculum-product .catalog-header { padding-top: 16px; }
  .curriculum-product .section-label { margin-top: 28px; padding-top: 20px; }
}

.curriculum-product.light-theme::after { display: none; }
.curriculum-product .toolbar h1 { color: #fff; font-size: 30px; }
.curriculum-product.hub-readable-font :is(h1,h2,h3,button,input,select) { font-family: "Atkinson Hyperlegible",sans-serif !important; }
.curriculum-product.hub-high-contrast { --course-ink: #111; --course-muted: #222; --course-paper: #fff; --course-border: #555; }
.curriculum-product #udlFloatingLauncher { background: transparent; }


/* Progress uses the same quiet masthead as the other discovery pages. */
.curriculum-product > header:has(> .wrap) {
  background: var(--course-paper);
  color: var(--course-ink);
  border-bottom: 1px solid var(--course-border);
}

/* One accent per unit, shared by the dashboard course cards and the units
   page, so a unit reads as the same thing wherever it appears. Decorative
   only: text never relies on these colors. */
.curriculum-product {
  --unit-1: #316f62; --unit-2: #2f6fa3; --unit-3: #b5562b; --unit-4: #B3402A; --unit-5: #2f8a8a;
  --unit-6: #a8792a; --unit-7: #3f6db5; --unit-8: #a34a6b; --unit-9: #557a2f; --unit-10: #5b6470;
}
.course-unit-list li[data-unit="1"] { --unit-accent: var(--unit-1); }
.course-unit-list li[data-unit="2"] { --unit-accent: var(--unit-2); }
.course-unit-list li[data-unit="3"] { --unit-accent: var(--unit-3); }
.course-unit-list li[data-unit="4"] { --unit-accent: var(--unit-4); }
.course-unit-list li[data-unit="5"] { --unit-accent: var(--unit-5); }
.course-unit-list li[data-unit="6"] { --unit-accent: var(--unit-6); }
.course-unit-list li[data-unit="7"] { --unit-accent: var(--unit-7); }
.course-unit-list li[data-unit="8"] { --unit-accent: var(--unit-8); }
.course-unit-list li[data-unit="9"] { --unit-accent: var(--unit-9); }
.course-unit-list li[data-unit="10"] { --unit-accent: var(--unit-10); }
.course-unit-list a { position: relative; box-shadow: inset 0 4px 0 var(--unit-accent, transparent); padding-top: 18px; }
.course-unit-dates { margin-top: 2px; color: var(--course-muted); font-size: 14px; }
.course-unit-project { margin-top: 2px; color: var(--course-muted); font-size: 14px; font-weight: 700; }
.course-unit-list li.is-current a { background: #f3f8f4; box-shadow: inset 0 6px 0 var(--unit-accent, var(--course-teal)), inset 0 0 0 2px var(--unit-accent, var(--course-teal)); }
.course-unit-now { align-self: flex-start; margin-bottom: 6px; padding: 1px 10px; border-radius: 999px; background: var(--unit-accent, var(--course-teal)); color: #fff; font-size: 14px; font-weight: 700; line-height: 1.6; }
.curriculum-units-page #unit-1 .unit-card-header { box-shadow: inset 0 4px 0 var(--unit-1); }
.curriculum-units-page #unit-2 .unit-card-header { box-shadow: inset 0 4px 0 var(--unit-2); }
.curriculum-units-page #unit-3 .unit-card-header { box-shadow: inset 0 4px 0 var(--unit-3); }
.curriculum-units-page #unit-4 .unit-card-header { box-shadow: inset 0 4px 0 var(--unit-4); }
.curriculum-units-page #unit-5 .unit-card-header { box-shadow: inset 0 4px 0 var(--unit-5); }
.curriculum-units-page #unit-6 .unit-card-header { box-shadow: inset 0 4px 0 var(--unit-6); }
.curriculum-units-page #unit-7 .unit-card-header { box-shadow: inset 0 4px 0 var(--unit-7); }
.curriculum-units-page #unit-8 .unit-card-header { box-shadow: inset 0 4px 0 var(--unit-8); }
.curriculum-units-page #unit-9 .unit-card-header { box-shadow: inset 0 4px 0 var(--unit-9); }
.curriculum-units-page #unit-10 .unit-card-header { box-shadow: inset 0 4px 0 var(--unit-10); }

/* Phones: the first destinations stay inline and the rest sit behind a native
   "More" disclosure (tools/lib/curriculum-shell.mjs renders both copies; CSS
   shows exactly one). This replaced a sideways-scrolling row whose last three
   links were off-screen at 390px with nothing but a fade to say so. */
.ewl-course-menu { display: flex; align-items: center; min-width: 0; }
.ewl-course-more { display: none; position: relative; }
.ewl-course-more > summary {
  display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 10px 12px;
  border-radius: 4px; color: var(--course-muted); font-weight: 600; cursor: pointer; list-style: none;
}
.ewl-course-more > summary::-webkit-details-marker { display: none; }
.ewl-course-more > summary::after { content: "▾"; font-size: .85em; }
.ewl-course-more[open] > summary::after { content: "▴"; }
.ewl-course-more > summary:hover,
.ewl-course-more[open] > summary { background: #edf3f9; color: var(--course-blue); }
.ewl-course-more--current > summary { color: #174e46; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
.ewl-course-nav .ewl-course-more > ul {
  position: absolute; right: 0; top: calc(100% + 4px); z-index: 40;
  display: grid; gap: 2px; min-width: 210px; padding: 6px;
  background: #fff; border: 1px solid var(--course-border); border-radius: 8px;
  box-shadow: 0 12px 30px rgb(15 23 42 / 18%);
}
.ewl-course-nav .ewl-course-more li a { justify-content: flex-start; white-space: nowrap; }
.ewl-course-tools { flex-shrink: 0; }
@media (max-width: 780px) {
  .ewl-course-nav .ewl-course-links { flex-wrap: nowrap; gap: 2px; }
  .ewl-course-links > li:nth-child(n+5) { display: none; }
  .ewl-course-more { display: block; }
  .ewl-course-more > ul > li:first-child { display: none; }
  .ewl-course-nav .ewl-course-links li a,
  .ewl-course-more > summary { padding: 10px 8px; font-size: 15px; white-space: nowrap; }
}
/* Narrow phones: Games moves into More too. */
@media (max-width: 400px) {
  .ewl-course-links > li:nth-child(n+4) { display: none; }
  .ewl-course-more > ul > li:first-child { display: list-item; }
}
@media print { .ewl-course-more, .ewl-course-tools { display: none !important; } }

/* Type floor for the dashboard: nothing a student or teacher has to read is
   set below 13px. Tags, tile captions and the footer were 11-12px. The
   attribute selectors catch the tool-library cards whose sizes are inline. */
.curriculum-home :is(.ewl-preset-tag, .ewl-preset-badge, .mf-tag, .card-collapse-toggle, .ttb-label, small) {
  font-size: 13px;
}
.curriculum-home :is([style*="font-size: 11px"], [style*="font-size:11px"], [style*="font-size: 11.5px"],
  [style*="font-size: 12px"], [style*="font-size:12px"], [style*="font-size: 12.5px"]) {
  font-size: 13px !important;
}
.curriculum-home footer.hub { font-size: 14px; line-height: 1.6; }

/* One control language across the dashboard and the units page: 8px corners,
   44px+ targets, the same blue outline buttons. The units page had pill
   download buttons, 6px pathway buttons and 11px badges beside the
   dashboard's square-cornered controls. */
.curriculum-product #curriculum-navigator :is(.cn-button, #nav-saved, #nav-more, #nav-retry, #curr-search, #nav-unit, #nav-copy-url) {
  border-radius: 8px;
}
.curriculum-units-page .ntdl-trigger {
  min-height: 44px; padding: 9px 16px; border: 1px solid #9ab0c5; border-radius: 8px;
  background: #fff; color: var(--course-blue); font-size: 16px; line-height: 1.35;
}
.curriculum-units-page .ntdl-trigger:hover { border-color: var(--course-blue); background: #eaf2fa; }
.curriculum-units-page .units-lesson-pathways button,
.curriculum-units-page .units-result-actions a { border-radius: 8px; }
.curriculum-units-page .badge { font-size: 13px; border-radius: 4px; padding: 1px 8px; }

/* The shared course bar must hold its own layout on every page that carries
   the shell. /curriculum/practice-workbooks/ styles a bare `nav { display:
   flex }` for its breadcrumb, which also matched this bar: the inner row
   became a flex item sized to its content and the page scrolled sideways by
   240px on a 360px phone. */
.curriculum-product .ewl-course-nav { display: block; gap: 0; flex-wrap: nowrap; }
.curriculum-product .ewl-course-nav__inner { min-width: 0; }
.curriculum-product .ewl-course-nav ul { max-width: 100%; }

/* Breadcrumb rows and footer link lists are not inline text, so they get a
   44px target like every other control (they measured 19-22px tall). */
.curriculum-product footer a,
.curriculum-product .wrap > nav:not(.ewl-course-nav) a {
  display: inline-flex; align-items: center; min-height: 44px;
}
/* Desktop: brand, eight destinations and the page tools fit one row at the
   1180px course width. */
@media (min-width: 1051px) {
  .ewl-course-nav__inner { gap: 16px; }
  .ewl-course-nav .ewl-course-links li a { padding: 10px 8px; }
}

/* ===== /assets/ewl/ewl.css ===== */
/* Curriculum 2.0 shared styles. Surfaces add their own file for layout; everything reusable lives here.
 * Rules: 44px targets, visible focus, no motion unless allowed, meaning never carried by color alone. */
:root {
  --ewl-ink: #17233a;
  --ewl-muted: #4a5a6e;
  --ewl-line: #cfd9e4;
  --ewl-bg: #f4f7fb;
  --ewl-card: #fff;
  --ewl-brand: #15487f;
  --ewl-brand-ink: #fff;
  --ewl-accent: #b45309;
  --ewl-ok: #17683f;
  --ewl-ok-bg: #e6f4ec;
  --ewl-warn: #8a4b00;
  --ewl-warn-bg: #fdf1dc;
  --ewl-bad: #a32222;
  --ewl-bad-bg: #fbe9e9;
  --ewl-focus: #0b57d0;
  --ewl-a: #1e6fa8; /* representation colors: each also has a shape/pattern in the figures */
  --ewl-b: #b45309;
  --ewl-c: #177d7a;
  --ewl-radius: 12px;
  --ewl-font: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root[data-ewl-theme="auto"] {
    --ewl-ink: #e8eef6;
    --ewl-muted: #b3c0d0;
    --ewl-line: #34455c;
    --ewl-bg: #0f1826;
    --ewl-card: #172338;
    --ewl-brand: #8cc0ff;
    --ewl-brand-ink: #0b1626;
    --ewl-ok: #6ee7a8;
    --ewl-ok-bg: #11301f;
    --ewl-warn: #ffcf7a;
    --ewl-warn-bg: #3a2a0c;
    --ewl-bad: #ff9c9c;
    --ewl-bad-bg: #3b1616;
    --ewl-focus: #8cb8ff;
    --ewl-a: #6fb4ee;
    --ewl-b: #f0a94d;
    --ewl-c: #5fc9c4;
  }
}
.ewl-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.ewl-page {
  font: 17px/1.55 var(--ewl-font);
  color: var(--ewl-ink);
  background: var(--ewl-bg);
}
.ewl-page *,
.ewl-page *::before,
.ewl-page *::after {
  box-sizing: border-box;
}
.ewl-card {
  background: var(--ewl-card);
  border: 1px solid var(--ewl-line);
  border-radius: var(--ewl-radius);
  padding: 16px 18px;
}
.ewl-btn,
.ewl-chip {
  min-height: 44px;
  min-width: 44px;
  padding: 8px 16px;
  border-radius: 999px;
  border: 2px solid var(--ewl-brand);
  background: var(--ewl-card);
  color: var(--ewl-brand);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.ewl-btn[data-primary],
.ewl-btn[aria-pressed="true"],
.ewl-chip[aria-pressed="true"] {
  background: var(--ewl-brand);
  color: var(--ewl-brand-ink);
}
.ewl-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.ewl-page :focus-visible {
  outline: 3px solid var(--ewl-focus);
  outline-offset: 2px;
}
.ewl-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.ewl-msg {
  border-left: 6px solid var(--ewl-brand);
  background: var(--ewl-card);
  padding: 10px 14px;
  border-radius: 8px;
}
.ewl-msg[data-kind="ok"] {
  border-color: var(--ewl-ok);
  background: var(--ewl-ok-bg);
}
.ewl-msg[data-kind="warn"] {
  border-color: var(--ewl-warn);
  background: var(--ewl-warn-bg);
}
.ewl-msg[data-kind="bad"] {
  border-color: var(--ewl-bad);
  background: var(--ewl-bad-bg);
}
.ewl-msg[data-kind="ok"]::before {
  content: "✓ ";
  font-weight: 700;
}
.ewl-msg[data-kind="warn"]::before {
  content: "→ ";
  font-weight: 700;
}
.ewl-msg[data-kind="bad"]::before {
  content: "✗ ";
  font-weight: 700;
}
.ewl-fig {
  width: 100%;
  height: auto;
  max-width: 100%;
}
.ewl-hl {
  /* synchronized highlighting: the same quantity glows in every representation */
  stroke: var(--ewl-accent);
  stroke-width: 3;
}
@media (prefers-reduced-motion: no-preference) {
  .ewl-anim {
    transition: all 0.25s ease;
  }
}
@media (forced-colors: active) {
  .ewl-btn,
  .ewl-chip {
    border: 2px solid ButtonText;
  }
}
@media print {
  .ewl-noprint {
    display: none !important;
  }
  .ewl-page {
    background: #fff;
    color: #000;
  }
}

/* ===== /assets/ewl/cockpit.css ===== */
/* Today's Mission cockpit (Curriculum hub, student view). Uses the shared EWL tokens from ewl.css.
 * Calm on purpose: one white card, one accent, 44px targets, no motion. */
#ewl-cockpit {
  margin: 0 0 20px;
}
.ewlc {
  --c-ink: var(--ewl-ink);
  --c-line: var(--ewl-line);
  --c-brand: var(--ewl-brand);
  font-family: inherit;
  color: var(--c-ink);
  background: var(--ewl-card);
  border: 1px solid var(--c-line);
  border-radius: 16px;
  padding: 20px clamp(14px, 3vw, 28px) 22px;
  box-shadow: 0 1px 2px rgba(23, 35, 58, 0.06);
  line-height: 1.5;
}
.ewlc *,
.ewlc *::before,
.ewlc *::after {
  box-sizing: border-box;
}
.ewlc :focus-visible {
  outline: 3px solid var(--ewl-focus);
  outline-offset: 2px;
}
.ewlc-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
}
.ewlc-head h2 {
  margin: 0;
  font-size: 1.45rem;
  line-height: 1.2;
  flex: 1 1 auto;
}
.ewlc-count {
  margin: 0;
  color: var(--ewl-muted);
  font-size: 0.95rem;
}
.ewlc-pick {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  align-items: end;
  margin: 14px 0 10px;
}
.ewlc-pick label {
  display: block;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--ewl-muted);
  margin-bottom: 2px;
}
.ewlc-select {
  min-height: 44px;
  max-width: 100%;
  padding: 6px 12px;
  font: inherit;
  color: var(--c-ink);
  background: var(--ewl-card);
  border: 2px solid var(--c-line);
  border-radius: 10px;
}
.ewlc-select--wide {
  width: min(440px, 100%);
}
.ewlc-obj {
  margin: 6px 0 4px;
  max-width: 62ch;
}
.ewlc-hud:empty {
  display: none;
}
.ewlc-hud {
  margin: 4px 0 0;
}
.ewlc-note {
  margin: 4px 0;
  color: var(--ewl-muted);
  font-size: 0.92rem;
}
.ewlc-strong {
  font-weight: 700;
}
.ewlc-steps {
  list-style: none;
  margin: 16px 0 12px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.ewlc-step {
  width: 100%;
  min-height: 56px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  padding: 8px 12px;
  font: inherit;
  font-weight: 700;
  text-align: left;
  color: var(--c-ink);
  background: var(--ewl-bg);
  border: 2px solid var(--c-line);
  border-radius: 12px;
  cursor: pointer;
}
.ewlc-step[aria-current="step"] {
  background: var(--c-brand);
  border-color: var(--c-brand);
  color: var(--ewl-brand-ink);
}
.ewlc-state {
  font-size: 0.82rem;
  font-weight: 600;
  opacity: 0.9;
}
.ewlc-step .ewlc-state::before {
  content: "\25CB  ";
}
.ewlc-step[aria-current="step"] .ewlc-state::before {
  content: "\25B6  ";
}
.ewlc-panel {
  border: 1px solid var(--c-line);
  border-radius: 12px;
  padding: 14px clamp(12px, 2.5vw, 20px);
  background: var(--ewl-card);
}
.ewlc-panel > p:first-child {
  margin-top: 0;
}
.ewlc-nav {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--c-line);
}
.ewlc-done {
  color: var(--ewl-ok);
  font-weight: 700;
}
.ewlc-done::before {
  content: "\2713  ";
}
.ewlc-foot {
  margin: 14px 0 0;
  font-size: 0.95rem;
}
.ewlc a.ewl-btn,
.ewlc a.ewl-chip,
.ewlc-refbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
/* the Check Yourself screen */
.ewlc-check {
  margin: 10px 0 14px;
  padding: 12px 14px;
  background: var(--ewl-bg);
  border-radius: 12px;
}
.ewlc-qn {
  margin: 0 0 6px;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--ewl-muted);
}
.ewlc-stem {
  font-size: 1.08rem;
  font-weight: 700;
  padding: 0;
  max-width: 62ch;
}
.ewlc-choices {
  border: 0;
  margin: 0 0 10px;
  padding: 0;
  min-width: 0;
}
.ewlc-choice {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  margin: 6px 0;
  padding: 8px 12px;
  background: var(--ewl-card);
  border: 2px solid var(--c-line);
  border-radius: 10px;
  cursor: pointer;
}
.ewlc-choice input {
  width: 22px;
  height: 22px;
  flex: none;
}
.ewlc-tried {
  color: var(--ewl-muted);
  font-size: 0.85rem;
}
.ewlc-code {
  min-height: 44px;
  width: 9ch;
  padding: 6px 10px;
  font: inherit;
  color: var(--c-ink);
  background: var(--ewl-card);
  border: 2px solid var(--c-line);
  border-radius: 10px;
}
.ewlc-coderow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px dashed var(--c-line);
  font-size: 0.92rem;
}
.ewlc-viz {
  max-width: 340px;
  margin: 6px 0 10px;
}
.ewlc-fb:empty {
  display: none;
}
.ewlc-fb,
.ewlc-result,
.ewlc-repair {
  margin: 10px 0;
}
.ewlc-fb .ewl-msg p,
.ewlc-result .ewl-msg p {
  margin: 4px 0;
}
.ewlc-chip {
  text-decoration: none;
}
.ewlc-mentor {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 14px;
  margin: 0 0 12px;
  padding: 10px 14px;
  background: var(--ewl-bg);
  border: 1px solid var(--c-line);
  border-left: 4px solid var(--c-brand);
  border-radius: 10px;
}
.ewlc-mentor__main {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 220px;
  flex: 1;
}
.ewlc-mentor__badge {
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--c-brand);
  letter-spacing: 0.02em;
}
.ewlc-mentor__move {
  font-size: 0.94rem;
  font-weight: 600;
  color: var(--c-ink);
}
.ewlc-mentor__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.ewlc-prereq {
  font-weight: 700;
}
@media (max-width: 640px) {
  .ewlc-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ewlc-head h2 {
    font-size: 1.25rem;
  }
}
@media (forced-colors: active) {
  .ewlc-step[aria-current="step"] {
    border-color: Highlight;
    outline: 2px solid Highlight;
  }
}
@media print {
  #ewl-cockpit {
    display: none;
  }
}


/* ===== /assets/my-progress/progress-atlas.css ===== */
/* Learning Atlas (assets/my-progress/progress-atlas*.js). Self-sufficient: the
   same rules style the full Atlas on My Progress and the mini card on the
   dashboard, where progress-view.css is not loaded. Light theme only. */
.at-root {
  --at-ink: #17233a;
  --at-muted: #4f5f70;
  --at-line: #d9e2ec;
  --at-surface: #fff;
  --at-brand: #15487f;
  --at-focus: #f2c15b;
  --at-notyet: #5f6f80;
  --at-revisit: #1e6fa8;
  --at-growing: #a96a0f;
  --at-solid: #1a7a4a;
  --at-owned: #17324D;
  --at-notyet-bg: #f5f7fa;
  --at-revisit-bg: #e8f2fb;
  --at-growing-bg: #fdf3df;
  --at-solid-bg: #e6f4ec;
  --at-owned-bg: #F7F4EC;
  color: var(--at-ink);
}
.at-root .up-es {
  display: block;
  font-size: 0.86em;
  font-weight: 400;
  font-style: italic;
  color: var(--at-muted);
}
.at-root h2 .up-es,
.at-root h3 .up-es,
.at-root h4 .up-es,
.at-badge .up-es,
.at-tab .up-es,
.at-btn .up-es,
.at-link .up-es,
.up-link .up-es,
.at-tag .up-es {
  display: inline;
  margin-left: 4px;
}
.at-btn .up-es {
  color: inherit;
}
.at-root h3,
.at-root h4 {
  margin: 14px 0 6px;
  font-size: 1rem;
}
.at-root p {
  margin: 0 0 8px;
}
.at-note {
  color: var(--at-muted);
  font-size: 0.95rem;
}
.at-meta {
  color: var(--at-muted);
  font-size: 0.88rem;
}
.at-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* buttons, tabs */
.at-btn {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  background: var(--at-brand);
  color: #fff;
  border: 2px solid var(--at-brand);
  border-radius: 999px;
  padding: 8px 16px;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
  cursor: pointer;
  min-height: 44px;
}
.at-btn.ghost {
  background: #fff;
  color: var(--at-brand);
}
.at-btn:focus-visible,
.at-tab:focus-visible,
.at-link:focus-visible,
.at-item summary:focus-visible,
.at-input:focus-visible,
.at-choice:focus-within {
  outline: 3px solid var(--at-focus);
  outline-offset: 2px;
}
.at-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 10px 0;
}
.at-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin: 16px 0 8px;
}
.at-seg {
  display: inline-flex;
  border: 2px solid var(--at-brand);
  border-radius: 999px;
  overflow: hidden;
}
.at-tab {
  background: #fff;
  color: var(--at-brand);
  border: 0;
  padding: 8px 18px;
  font: inherit;
  font-weight: 700;
  min-height: 44px;
  cursor: pointer;
}
.at-tab[aria-pressed="true"] {
  background: var(--at-brand);
  color: #fff;
}
.at-link {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  font-weight: 700;
  color: var(--at-brand);
  text-decoration: underline;
  cursor: pointer;
  min-height: 24px;
  text-align: left;
}

/* state badges: shape + word, never colour alone */
.at-ico {
  flex: none;
  vertical-align: -3px;
}
.at-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.at-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1.5px solid currentColor;
  border-radius: 999px;
  padding: 2px 10px 2px 7px;
  font-size: 0.82rem;
  font-weight: 700;
  background: #fff;
  color: var(--at-notyet);
}
.at-badge .at-badge-t {
  color: var(--at-ink);
}
.at-badge.s-revisit {
  color: var(--at-revisit);
}
.at-badge.s-growing {
  color: var(--at-growing);
}
.at-badge.s-solid {
  color: var(--at-solid);
}
.at-badge.s-owned {
  color: var(--at-owned);
}
.at-badge.at-due {
  color: var(--at-brand);
  background: #fff8e6;
  border-color: var(--at-focus);
}
.at-legend {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 10px;
  padding: 0;
}

/* stats and due list */
.at-stats-h,
.at-due h3 {
  margin-top: 4px;
}
.at-h-ico {
  margin-right: 6px;
}
.at-grown .up-num {
  color: var(--at-solid);
}
.at-due {
  border-top: 1px solid var(--at-line);
  margin-top: 12px;
}
.at-due-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.at-due-item {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 14px;
  border: 1px solid var(--at-line);
  border-left: 5px solid var(--at-focus);
  border-radius: 10px;
  padding: 10px 14px;
}
.at-due-name {
  font-weight: 700;
  margin: 0 0 2px;
}
.at-due-act {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
}

/* the check panel */
.at-check {
  border: 2px solid var(--at-brand);
  border-radius: 14px;
  background: #f7fbff;
  padding: 14px 18px;
  margin: 12px 0;
}
.at-check h3:focus {
  outline: none;
}
.at-q {
  border: 1px solid var(--at-line);
  border-radius: 10px;
  background: #fff;
  margin: 10px 0;
  padding: 10px 14px;
}
.at-q-stem {
  float: left;
  width: 100%;
  margin: 0 0 6px;
  padding: 0;
  font-weight: 700;
}
.at-q-stem + * {
  clear: both;
}
.at-q-n {
  display: inline-block;
  min-width: 1.6em;
  margin-right: 6px;
  color: var(--at-brand);
}
.at-choice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 44px;
  padding: 8px 6px;
  border-radius: 8px;
  cursor: pointer;
}
.at-choice input {
  margin-top: 4px;
  width: 20px;
  height: 20px;
  flex: none;
}
.at-input {
  width: 100%;
  max-width: 22rem;
  min-height: 44px;
  margin-top: 8px;
  padding: 8px 12px;
  border: 2px solid #9fb2c6;
  border-radius: 10px;
  font: inherit;
}
.at-form-msg {
  min-height: 1.3em;
  font-weight: 700;
  color: var(--at-brand);
}
.at-result {
  font-size: 1.05rem;
  font-weight: 700;
}
.at-results {
  list-style: none;
  padding: 0;
  margin: 8px 0;
  display: grid;
  gap: 8px;
}
.at-r {
  border: 1px solid var(--at-line);
  border-left: 5px solid var(--at-solid);
  border-radius: 10px;
  background: #fff;
  padding: 8px 12px;
}
.at-r.again {
  border-left-color: var(--at-revisit);
}
.at-r-why {
  color: var(--at-muted);
  font-size: 0.92rem;
}

/* the map */
.at-map-scroll {
  overflow: auto;
  max-height: min(72vh, 680px);
  border: 1px solid var(--at-line);
  border-radius: 14px;
  background: #fbfcfe;
}
.at-map {
  display: block;
  max-width: none;
}
.at-unit-label {
  font-size: 13px;
  font-weight: 800;
  fill: var(--at-brand);
}
.at-edge-line {
  fill: none;
  stroke: #8d9bab;
  stroke-width: 1.4;
  opacity: 0.55;
}
.at-edge-line.k-supporting {
  stroke-dasharray: 7 4;
}
.at-edge-line.k-fluency {
  stroke-dasharray: 2 4;
}
.at-edge-line.is-in,
.at-edge-line.is-out {
  stroke-width: 3.2;
  opacity: 1;
}
.at-edge-line.is-in {
  stroke: var(--at-revisit);
}
.at-edge-line.is-out {
  stroke: var(--at-brand);
}
.at-arrow {
  fill: #6f7f90;
}
.at-node {
  cursor: pointer;
  outline: none;
}
.at-node-box {
  fill: var(--at-notyet-bg);
  stroke: var(--at-notyet);
  stroke-width: 2;
  stroke-dasharray: 5 3;
}
.at-node.s-revisit .at-node-box {
  fill: var(--at-revisit-bg);
  stroke: var(--at-revisit);
  stroke-dasharray: none;
}
.at-node.s-growing .at-node-box {
  fill: var(--at-growing-bg);
  stroke: var(--at-growing);
  stroke-dasharray: none;
}
.at-node.s-solid .at-node-box {
  fill: var(--at-solid-bg);
  stroke: var(--at-solid);
  stroke-dasharray: none;
}
.at-node.s-owned .at-node-box {
  fill: var(--at-owned-bg);
  stroke: var(--at-owned);
  stroke-width: 3;
  stroke-dasharray: none;
}
.at-node-ico {
  color: var(--at-notyet);
}
.at-node.s-revisit .at-node-ico {
  color: var(--at-revisit);
}
.at-node.s-growing .at-node-ico {
  color: var(--at-growing);
}
.at-node.s-solid .at-node-ico {
  color: var(--at-solid);
}
.at-node.s-owned .at-node-ico {
  color: var(--at-owned);
}
.at-node-name {
  font-size: 12px;
  font-weight: 700;
  fill: var(--at-ink);
}
.at-node-state {
  font-size: 11px;
  font-weight: 600;
  fill: var(--at-muted);
}
.at-node-due {
  color: var(--at-brand);
}
.at-node.is-selected .at-node-box {
  stroke: var(--at-brand);
  stroke-width: 4.5;
  stroke-dasharray: none;
}
.at-node:focus-visible {
  outline: 3px solid var(--at-focus);
  outline-offset: 3px;
}
@media (prefers-reduced-motion: no-preference) {
  .at-node-box,
  .at-edge-line {
    transition:
      stroke-width 0.15s,
      opacity 0.15s;
  }
}
.at-detail {
  border: 1px solid var(--at-line);
  border-radius: 14px;
  padding: 12px 16px;
  margin-top: 12px;
}
.at-edges {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.at-edge {
  border-left: 4px solid var(--at-line);
  padding-left: 10px;
}
.at-edge-head {
  margin: 0 0 2px;
}
.at-edge-why {
  margin: 0;
  color: var(--at-ink);
}
.at-tag {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--at-muted);
  border: 1px solid var(--at-line);
  border-radius: 999px;
  padding: 1px 8px;
  margin-left: 6px;
}

/* the text view */
.at-unit h4 {
  color: var(--at-brand);
}
.at-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.at-item {
  border: 1px solid var(--at-line);
  border-left: 5px solid var(--at-notyet);
  border-radius: 10px;
}
.at-item.s-revisit {
  border-left-color: var(--at-revisit);
}
.at-item.s-growing {
  border-left-color: var(--at-growing);
}
.at-item.s-solid {
  border-left-color: var(--at-solid);
}
.at-item.s-owned {
  border-left-color: var(--at-owned);
}
.at-item summary {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 6px 12px;
  min-height: 44px;
  padding: 8px 14px;
  cursor: pointer;
}
.at-item-name {
  font-weight: 700;
}
.at-item-state {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
}
.at-item-body {
  padding: 0 14px 12px;
}

/* the dashboard card */
.at-mini {
  border: 1px solid var(--at-line);
  border-radius: 14px;
  background: var(--at-surface);
  padding: 14px 16px;
}
.at-mini-h {
  margin: 0 0 8px;
  font-size: 1.05rem;
}
.at-dots {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  margin: 0 0 10px;
}
.at-dot {
  display: inline-flex;
  color: var(--at-notyet);
}
.at-dot.s-revisit {
  color: var(--at-revisit);
}
.at-dot.s-growing {
  color: var(--at-growing);
}
.at-dot.s-solid {
  color: var(--at-solid);
}
.at-dot.s-owned {
  color: var(--at-owned);
}
.at-dot.is-due {
  outline: 2px solid var(--at-focus);
  outline-offset: 1px;
  border-radius: 50%;
}
.at-mini-due {
  display: flex;
  align-items: center;
  gap: 6px;
}

@media (max-width: 560px) {
  .at-check {
    padding: 12px;
  }
  .at-due-item {
    flex-direction: column;
  }
}
.at-root [hidden] {
  display: none !important;
}
.at-tab[aria-pressed="true"] .up-es {
  color: #fff;
}
.at-link .up-es {
  display: inline-block;
  text-decoration: none;
}
.at-kicker {
  display: block;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #7a4f12;
}
@media print {
  .at-toolbar,
  .at-check,
  .at-map-scroll,
  .at-detail,
  .at-actions,
  .at-legend {
    display: none !important;
  }
  .at-list-wrap[hidden] {
    display: block !important;
  }
}

/* ===== /assets/ewl/reference.css ===== */
/* Pocket Reference drawer. Right-hand panel on wide screens, full-width sheet at phone width. */
.ewlr-lock {
  overflow: hidden;
}
.ewlr-fab {
  position: fixed;
  right: max(14px, env(safe-area-inset-right));
  bottom: max(14px, env(safe-area-inset-bottom));
  z-index: 2147483000;
  min-height: 44px;
  padding: 8px 16px;
  font: 700 15px/1.2 var(--ewl-font, system-ui, sans-serif);
  color: var(--ewl-brand-ink, #fff);
  background: var(--ewl-brand, #15487f);
  border: 2px solid var(--ewl-brand-ink, #fff);
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(23, 35, 58, 0.3);
  cursor: pointer;
}
.ewlr-fab:focus-visible,
.ewlr :focus-visible {
  outline: 3px solid var(--ewl-focus, #0b57d0);
  outline-offset: 2px;
}
.ewlr {
  position: fixed;
  inset: 0;
  z-index: 2147483600;
  font: 16px/1.5 var(--ewl-font, system-ui, sans-serif);
  color: var(--ewl-ink, #17233a);
}
.ewlr[hidden] {
  display: none;
}
.ewlr *,
.ewlr *::before,
.ewlr *::after {
  box-sizing: border-box;
}
.ewlr-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 24, 38, 0.5);
}
.ewlr-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(460px, 100%);
  display: flex;
  flex-direction: column;
  background: var(--ewl-card, #fff);
  box-shadow: -4px 0 24px rgba(15, 24, 38, 0.25);
}
.ewlr-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--ewl-line, #cfd9e4);
}
.ewlr-bar h2 {
  margin: 0;
  font-size: 1.2rem;
}
.ewlr-body {
  flex: 1;
  overflow-y: auto;
  padding: 14px 16px 24px;
  overscroll-behavior: contain;
}
.ewlr-label {
  display: block;
  font-weight: 700;
  margin-bottom: 4px;
}
.ewlr-q {
  width: 100%;
  min-height: 44px;
  padding: 8px 12px;
  font: inherit;
  color: inherit;
  background: var(--ewl-card, #fff);
  border: 2px solid var(--ewl-line, #cfd9e4);
  border-radius: 10px;
}
.ewlr-status {
  margin: 8px 0;
  font-size: 0.9rem;
  color: var(--ewl-muted, #4a5a6e);
}
.ewlr-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.ewlr-item {
  width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  font: inherit;
  text-align: left;
  color: inherit;
  background: var(--ewl-bg, #f4f7fb);
  border: 1px solid var(--ewl-line, #cfd9e4);
  border-radius: 12px;
  cursor: pointer;
}
.ewlr-item > span {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ewlr-item .ewlr-icon {
  flex: none;
  width: 44px;
  height: 44px;
}
.ewlr-def {
  font-size: 0.9rem;
  color: var(--ewl-muted, #4a5a6e);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ewlr-sub {
  font-size: 0.9rem;
  color: var(--ewl-muted, #4a5a6e);
  font-style: italic;
}
.ewlr-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 14px 0 6px;
}
.ewlr-head .ewlr-icon {
  flex: none;
  width: 72px;
  height: 72px;
  color: var(--ewl-ink, #17233a);
}
.ewlr-head h3 {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.2;
}
.ewlr-head p {
  margin: 0;
}
.ewlr-field {
  margin: 14px 0;
}
.ewlr-field h4 {
  margin: 0 0 2px;
  font-size: 0.8rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ewl-muted, #4a5a6e);
}
.ewlr-field p {
  margin: 0;
}
.ewlr-other {
  margin: 0;
  color: var(--ewl-muted, #4a5a6e);
}
.ewlr-frame {
  padding: 10px 12px;
  background: var(--ewl-bg, #f4f7fb);
  border-left: 5px solid var(--ewl-brand, #15487f);
  border-radius: 6px;
}
.ewlr-actions {
  margin-top: 18px;
}
.ewlr a.ewl-btn,
.ewlr-fab {
  text-decoration: none;
}
.ewlr a.ewl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 520px) {
  .ewlr-panel {
    width: 100%;
  }
  .ewlr-fab {
    padding: 8px 12px;
    font-size: 14px;
  }
}
@media (forced-colors: active) {
  .ewlr-panel {
    border-left: 2px solid CanvasText;
  }
}
@media print {
  .ewlr,
  .ewlr-fab {
    display: none !important;
  }
}

/* ===== /assets/curriculum-publisher.css ===== */
/* The curriculum homepage composition, built on assets/dimension.css.
 *
 *   stage     a dark hero with the course's three big ideas built as solids
 *   dock      continue / find a lesson / destinations, directly under the stage
 *   journey   the ten units as sculptures on an ascending staircase
 *   portals   three ways in, one per audience
 *
 * Unit colours, dates and the Now marker still come from the generated course
 * list and assets/curriculum-home.js; this sheet only changes presentation. */
body.curriculum-home.curriculum-product {
  --stage-pad: max(22px, calc((100% - 1180px) / 2));
}

/* ---------- Stage ---------- */
body.curriculum-home.curriculum-product .curriculum-guide {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 540px) minmax(0, 1fr);
  column-gap: clamp(12px, 3vw, 44px);
  align-content: center;
  max-width: none;
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: clamp(34px, 5vw, 64px) var(--stage-pad) clamp(52px, 6vw, 84px);
  color: #e8eef4;
  background:
    radial-gradient(52% 78% at 76% 46%, rgb(31 166 162 / 0.34), transparent 66%),
    radial-gradient(34% 52% at 6% 0%, rgb(242 193 91 / 0.16), transparent 62%),
    linear-gradient(180deg, #153654, #0d273d 82%);
}
/* A receding floor of graph lines under the scene gives the stage a horizon. */
body.curriculum-home.curriculum-product .curriculum-guide::before {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 46%;
  z-index: -1;
  background:
    repeating-linear-gradient(90deg, rgb(255 255 255 / 0.05) 0 1px, transparent 1px 56px),
    repeating-linear-gradient(0deg, rgb(255 255 255 / 0.05) 0 1px, transparent 1px 44px);
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 90%);
  mask-image: linear-gradient(180deg, transparent, #000 90%);
}
body.curriculum-home.curriculum-product .curriculum-guide > * {
  grid-column: 1;
  min-width: 0;
}
body.curriculum-home.curriculum-product .curriculum-guide__eyebrow {
  margin: 0 0 6px;
  color: var(--dm-brass);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.01em;
}
body.curriculum-home.curriculum-product .curriculum-guide h1 {
  margin: 0 0 22px;
  max-width: 9ch;
  color: #fffdf7;
  font-size: clamp(2.9rem, 6vw, 4.9rem);
  line-height: 0.96;
  font-weight: 600;
  letter-spacing: -0.03em;
  text-shadow:
    0 2px 0 rgb(0 0 0 / 0.25),
    0 18px 40px rgb(0 0 0 / 0.35);
}
body.curriculum-home.curriculum-product .curriculum-hero-primary {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 12px 24px;
  border-radius: 14px;
  border: 1px solid #a8761a;
  color: var(--dm-night);
  font-weight: 800;
  font-size: 18px;
  text-decoration: none;
  background: linear-gradient(180deg, #ffe09a, var(--dm-brass));
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / 0.7),
    0 4px 0 #a8761a,
    0 16px 26px -10px rgb(0 0 0 / 0.55);
  transition:
    transform 0.12s var(--dm-ease),
    box-shadow 0.12s var(--dm-ease);
}
body.curriculum-home.curriculum-product .curriculum-hero-primary:hover {
  transform: translateY(-1px);
  background: linear-gradient(180deg, #ffe8b3, #f6cd6e);
}
body.curriculum-home.curriculum-product .curriculum-hero-primary:active {
  transform: translateY(3px);
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / 0.5),
    0 1px 0 #a8761a;
}
body.curriculum-home.curriculum-product .curriculum-guide :is(a, button, summary):focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
  box-shadow: none;
}

/* The scene fills the right column and assembles once on load. */
body.curriculum-home.curriculum-product .curriculum-hero-model {
  grid-column: 2;
  grid-row: 1 / span 12;
  align-self: center;
  justify-self: center;
  width: 100%;
  max-width: 640px;
  height: auto;
  margin-block: -10px;
  --tone-a-base: #2f84b6;
  --tone-b-base: #e8b23f;
  --tone-c-base: #1f4468;
  --tone-d-base: #ece6d6;
  --tone-e-base: #1fa6a2;
  filter: drop-shadow(0 30px 34px rgb(0 0 0 / 0.38));
  transform: translate3d(calc(var(--px, 0) * -10px), calc(var(--py, 0) * -6px), 0);
  transition: transform 0.4s var(--dm-ease);
}
body.curriculum-home.curriculum-product .hero-iso .s {
  animation: dm-rise 0.85s var(--dm-ease) both;
  animation-delay: calc(var(--i, 0) * 38ms + 120ms);
}
@keyframes dm-rise {
  from {
    opacity: 0;
    transform: translateY(-34px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* Audience switch, lede and shortcuts: glass on the stage. */
body.curriculum-home.curriculum-product .hub-audience {
  justify-self: start;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-top: 20px;
  padding: 5px;
  border: 1px solid rgb(255 255 255 / 0.2);
  border-radius: 16px;
  background: rgb(255 255 255 / 0.08);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.18);
}
body.curriculum-home.curriculum-product .hub-audience__label {
  padding-inline: 10px;
  color: #c9d7e3;
  font-size: 15px;
}
body.curriculum-home.curriculum-product .hub-audience__btn {
  min-height: 44px;
  padding: 6px 14px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: #f2f6fa;
  font-weight: 700;
}
body.curriculum-home.curriculum-product .hub-audience__btn:hover {
  background: rgb(255 255 255 / 0.12);
}
body.curriculum-home.curriculum-product .hub-audience__btn[aria-pressed="true"] {
  background: linear-gradient(180deg, #fffdf7, #efe9da);
  color: var(--dm-night);
  box-shadow:
    inset 0 1px 0 #fff,
    0 3px 0 rgb(0 0 0 / 0.3);
}
body.curriculum-home.curriculum-product .curriculum-guide__lede {
  margin: 18px 0 0;
  max-width: 46ch;
  color: #d3deea;
  font-size: 18px;
  line-height: 1.5;
}
body.curriculum-home.curriculum-product .curriculum-guide__lede [lang="es"] {
  display: block;
  margin-top: 4px;
  color: #b9c9d9;
  font-size: 16px;
}
body.curriculum-home.curriculum-product .hub-shortcuts {
  margin-top: 18px;
}
body.curriculum-home.curriculum-product .hub-quick-links > summary {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 16px;
  border-radius: 12px;
  cursor: pointer;
  color: #f2f6fa;
  font-weight: 700;
  border: 1px solid rgb(255 255 255 / 0.24);
  background: rgb(255 255 255 / 0.08);
}
body.curriculum-home.curriculum-product .hub-quick-links > summary:hover {
  background: rgb(255 255 255 / 0.16);
}
body.curriculum-home.curriculum-product .hub-quick-links__panel {
  padding-top: 12px;
}
body.curriculum-home.curriculum-product .hub-shortcuts :is(a, button):not(.hub-publisher-tour) {
  min-height: 44px;
  border-radius: 12px;
  border: 1px solid rgb(255 255 255 / 0.24);
  background: rgb(255 255 255 / 0.08);
  color: #f2f6fa;
}
body.curriculum-home.curriculum-product
  .hub-shortcuts
  :is(a, button):not(.hub-publisher-tour):hover {
  background: rgb(255 255 255 / 0.17);
}
body.curriculum-home.curriculum-product .hub-shortcuts .curriculum-guide__action span,
body.curriculum-home.curriculum-product .hub-publisher-tour small {
  color: #c9d7e3;
}
body.curriculum-home.curriculum-product .hub-publisher-tour {
  border-radius: 14px;
  background: rgb(255 255 255 / 0.1);
  border: 1px solid rgb(255 255 255 / 0.3);
  color: #fff;
}

/* ---------- Main column: surfaces float on the desk ---------- */
body.curriculum-home.curriculum-product .hub-page {
  display: block;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 22px 64px;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
}
body.curriculum-home.curriculum-product :is(.course-overview, .curr-pathways, .hub-panel) > h2,
body.curriculum-home.curriculum-product .course-overview h2 {
  font-family: var(--dm-font-display);
  font-weight: 600;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--dm-night);
}

/* The dock rides up over the stage's bottom edge. */
body.curriculum-home.curriculum-product .hub-now {
  position: relative;
  margin: -40px 0 0;
  padding: 22px clamp(16px, 3vw, 30px) 20px;
  z-index: 2;
}
body.curriculum-home.curriculum-product
  :is(.hub-now, .hub-panel, #curriculum-resources, .hub-collection, #ewl-cockpit) {
  background: linear-gradient(180deg, #ffffff, #fbf8f1);
  border: 1px solid var(--dm-line);
  border-radius: 22px;
  box-shadow: var(--dm-e2);
}
body.curriculum-home.curriculum-product .hub-panel {
  margin-top: 26px;
  padding: clamp(18px, 3vw, 32px);
}
body.curriculum-home.curriculum-product .hub-find__input {
  min-height: 52px;
  border-radius: 14px;
  border: 1px solid rgb(23 50 77 / 0.25);
  background: #fff;
  font-size: 17px;
  box-shadow: inset 0 2px 4px rgb(13 39 61 / 0.1);
}
body.curriculum-home.curriculum-product .hub-find__chip {
  min-height: 40px;
  border-radius: 999px;
  border: 1px solid rgb(23 50 77 / 0.18);
  background: linear-gradient(180deg, #fff, #f4efe3);
  box-shadow:
    var(--dm-lit),
    0 2px 0 rgb(23 50 77 / 0.12);
  font-weight: 700;
  color: var(--dm-navy);
}
body.curriculum-home.curriculum-product .hub-find__chip:hover {
  transform: translateY(-1px);
}

/* Destination tiles: an object, a name, a line. */
body.curriculum-home.curriculum-product .hub-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 16px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}
body.curriculum-home.curriculum-product .hub-card {
  --tone-a-base: #2f84b6;
  position: relative;
  display: grid;
  grid-template-columns: 72px 1fr;
  column-gap: 12px;
  align-items: center;
  height: 100%;
  padding: 16px 16px 16px 12px;
  border: 1px solid var(--dm-line);
  border-radius: 18px;
  text-decoration: none;
  color: var(--dm-text);
  background: linear-gradient(180deg, #ffffff, #f8f4ea);
  box-shadow: var(--dm-e1);
  transition:
    transform 0.22s var(--dm-ease),
    box-shadow 0.22s var(--dm-ease);
}
body.curriculum-home.curriculum-product .hub-card:is(:hover, :focus-visible) {
  transform: translateY(-5px);
  box-shadow: var(--dm-e3);
}
body.curriculum-home.curriculum-product .hub-card .dest-glyph {
  grid-row: 1 / span 3;
  width: 72px;
  height: 56px;
}
body.curriculum-home.curriculum-product .hub-card strong {
  color: var(--dm-night);
  font-size: 18px;
}
body.curriculum-home.curriculum-product .hub-card strong [lang="es"] {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--dm-muted);
}
body.curriculum-home.curriculum-product .hub-card > span {
  color: var(--dm-muted);
  font-size: 15px;
  line-height: 1.4;
  grid-column: 2;
}
body.curriculum-home.curriculum-product .hub-more__title {
  margin-top: 26px;
  font-size: 16px;
  color: var(--dm-night);
}
body.curriculum-home.curriculum-product .hub-more a {
  border-radius: 10px;
}

/* ---------- Journey: ten sculptures on an ascending staircase ---------- */
body.curriculum-home.curriculum-product .course-overview {
  padding: 56px 0 24px;
  border: 0;
}
body.curriculum-home.curriculum-product .course-overview__head {
  align-items: end;
  justify-content: space-between;
  margin-bottom: 22px;
  gap: 14px 40px;
}
body.curriculum-home.curriculum-product .course-overview p {
  max-width: 54ch;
  color: var(--dm-muted);
}
body.curriculum-home.curriculum-product .course-timeline__track a {
  min-height: 38px;
  border-radius: 10px;
  font-size: 19px;
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / 0.35),
    0 2px 0 rgb(13 39 61 / 0.25);
}
body.curriculum-home.curriculum-product .course-unit-list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: visible;
  list-style: none;
}
body.curriculum-home.curriculum-product .course-unit-list li {
  --tone-a-base: var(--unit-accent);
  position: relative;
  min-height: 0;
  border: 0;
}
body.curriculum-home.curriculum-product .course-unit-list li::before {
  display: none;
}
body.curriculum-home.curriculum-product .course-unit-list li:nth-child(5n + 1) {
  margin-top: 48px;
}
body.curriculum-home.curriculum-product .course-unit-list li:nth-child(5n + 2) {
  margin-top: 36px;
}
body.curriculum-home.curriculum-product .course-unit-list li:nth-child(5n + 3) {
  margin-top: 24px;
}
body.curriculum-home.curriculum-product .course-unit-list li:nth-child(5n + 4) {
  margin-top: 12px;
}
body.curriculum-home.curriculum-product .course-unit-list a {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 252px;
  padding: 12px 14px 14px;
  overflow: hidden;
  border: 1px solid var(--dm-line);
  border-bottom: 4px solid var(--unit-accent);
  border-radius: 20px;
  text-decoration: none;
  color: var(--dm-text);
  background: linear-gradient(
    180deg,
    #ffffff 40%,
    color-mix(in srgb, var(--unit-accent) 7%, #fbf8f1)
  );
  box-shadow: var(--dm-e1);
  transition:
    transform 0.24s var(--dm-ease),
    box-shadow 0.24s var(--dm-ease);
}
body.curriculum-home.curriculum-product .course-unit-list a:is(:hover, :focus-visible) {
  transform: translateY(-6px) scale(1.012);
  box-shadow: var(--dm-e3);
}
body.curriculum-home.curriculum-product .course-unit-number {
  color: var(--unit-accent);
  font-weight: 800;
  font-size: 15px;
}
body.curriculum-home.curriculum-product .course-unit-list li[data-unit="5"] .course-unit-number {
  color: #236d6d;
}
body.curriculum-home.curriculum-product .course-unit-list li[data-unit="6"] .course-unit-number {
  color: #76551d;
}
body.curriculum-home.curriculum-product .course-unit-art {
  width: 100%;
  height: 104px;
  margin: 6px 0 8px;
  border-radius: 14px;
  padding: 4px;
  background: radial-gradient(
    70% 90% at 50% 62%,
    color-mix(in srgb, var(--unit-accent) 24%, #fff),
    color-mix(in srgb, var(--unit-accent) 6%, #fffdf7) 72%
  );
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--unit-accent) 18%, transparent);
}
body.curriculum-home.curriculum-product .course-unit-title {
  font-family: var(--dm-font-display);
  font-size: 19px;
  line-height: 1.2;
  color: var(--dm-night);
}
body.curriculum-home.curriculum-product .course-unit-count {
  margin-top: auto;
  padding-top: 8px;
  font-weight: 700;
  font-size: 14px;
  color: var(--dm-night);
}
body.curriculum-home.curriculum-product :is(.course-unit-dates, .course-unit-project) {
  color: var(--dm-muted);
  font-size: 13px;
}
body.curriculum-home.curriculum-product .course-unit-list li.is-current a {
  background: linear-gradient(180deg, #fffdf6, color-mix(in srgb, var(--unit-accent) 14%, #fbf8f1));
  box-shadow:
    0 0 0 3px var(--unit-accent),
    0 0 0 7px color-mix(in srgb, var(--unit-accent) 25%, transparent),
    var(--dm-e3);
  transform: translateY(-6px);
}
body.curriculum-home.curriculum-product .course-unit-list li.is-done a {
  background: linear-gradient(180deg, #fff, #f7f4ec);
  color: var(--dm-text);
  opacity: 1;
}
body.curriculum-home.curriculum-product .course-unit-list li[data-unscheduled] a {
  background: #f3f0e8;
}

/* ---------- Portals: three ways in ---------- */
body.curriculum-home.curriculum-product .curr-pathways {
  margin-top: 36px;
  padding: clamp(22px, 4vw, 40px);
  border: 1px solid rgb(255 255 255 / 0.1);
  border-radius: 26px;
  color: #e8eef4;
  background:
    radial-gradient(60% 90% at 90% 0%, rgb(31 166 162 / 0.3), transparent 64%),
    linear-gradient(180deg, #17395a, #0f2b44);
  box-shadow: var(--dm-e3);
}
body.curriculum-home.curriculum-product .curr-pathways h2 {
  color: #fffdf7;
}
body.curriculum-home.curriculum-product .curr-pathways h2 [lang="es"] {
  color: #c9d7e3;
  font-size: 0.6em;
}
body.curriculum-home.curriculum-product .curr-pathways__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}
body.curriculum-home.curriculum-product .curr-pathway {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 150px;
  padding: 20px;
  border-radius: 20px;
  text-decoration: none;
  color: var(--dm-text);
  background: linear-gradient(180deg, #ffffff, #f3eee1);
  box-shadow: var(--dm-e2);
  transition:
    transform 0.24s var(--dm-ease),
    box-shadow 0.24s var(--dm-ease);
}
body.curriculum-home.curriculum-product .curr-pathway:nth-child(2) {
  margin-top: 14px;
}
body.curriculum-home.curriculum-product .curr-pathway:nth-child(3) {
  margin-top: 28px;
}
body.curriculum-home.curriculum-product .curr-pathway:is(:hover, :focus-visible) {
  transform: translateY(-6px);
  box-shadow: var(--dm-e3);
}
body.curriculum-home.curriculum-product .curr-pathway__eyebrow {
  color: var(--dm-teal-ink);
  font-weight: 800;
  font-size: 15px;
}
body.curriculum-home.curriculum-product .curr-pathway strong {
  font-family: var(--dm-font-display);
  font-size: 22px;
  color: var(--dm-night);
}
body.curriculum-home.curriculum-product .curr-domains {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}
body.curriculum-home.curriculum-product .curr-domains li {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 16px 6px 8px;
  border-radius: 999px;
  color: #eaf1f7;
  font-weight: 700;
  background: rgb(255 255 255 / 0.09);
  border: 1px solid rgb(255 255 255 / 0.18);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.14);
}
body.curriculum-home.curriculum-product .curr-domains img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fffdf7;
}

/* ---------- Responsive ---------- */
@media (max-width: 1050px) {
  body.curriculum-home.curriculum-product .course-unit-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  body.curriculum-home.curriculum-product .course-unit-list li:is(:nth-child(n)) {
    margin-top: 0;
  }
  body.curriculum-home.curriculum-product .course-unit-list li:nth-child(3n + 1) {
    margin-top: 28px;
  }
  body.curriculum-home.curriculum-product .course-unit-list li:nth-child(3n + 2) {
    margin-top: 14px;
  }
}
@media (max-width: 820px) {
  body.curriculum-home.curriculum-product .curriculum-guide {
    grid-template-columns: minmax(0, 1fr);
    padding-bottom: 70px;
  }
  body.curriculum-home.curriculum-product .curriculum-guide > * {
    grid-column: 1;
  }
  body.curriculum-home.curriculum-product .curriculum-hero-model {
    grid-column: 1;
    grid-row: auto;
    order: 5;
    max-width: 480px;
    margin: 26px auto 0;
  }
  body.curriculum-home.curriculum-product .curriculum-guide h1 {
    max-width: none;
  }
  body.curriculum-home.curriculum-product .curr-pathways__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  body.curriculum-home.curriculum-product .curr-pathway:is(:nth-child(2), :nth-child(3)) {
    margin-top: 0;
  }
}
@media (max-width: 560px) {
  body.curriculum-home.curriculum-product .course-unit-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  body.curriculum-home.curriculum-product .course-unit-list li:is(:nth-child(n)) {
    margin-top: 0;
  }
  body.curriculum-home.curriculum-product .course-unit-list li:nth-child(2n) {
    margin-top: 18px;
  }
  body.curriculum-home.curriculum-product .course-unit-list a {
    min-height: 232px;
  }
  body.curriculum-home.curriculum-product .hub-cards {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (prefers-reduced-motion: reduce) {
  body.curriculum-home.curriculum-product .hero-iso .s {
    animation: none;
  }
  body.curriculum-home.curriculum-product .curriculum-hero-model {
    transform: none;
    transition: none;
  }
  body.curriculum-home.curriculum-product
    :is(.hub-card, .course-unit-list a, .curr-pathway, .curriculum-hero-primary):is(
      :hover,
      :focus-visible,
      :active
    ) {
    transform: none;
  }
}
body.curriculum-home.curriculum-product:is(.high-contrast, .hub-high-contrast) .curriculum-guide {
  background: #0d273d;
}
body.curriculum-home.curriculum-product:is(.high-contrast, .hub-high-contrast)
  :is(.hub-card, .course-unit-list a, .curr-pathway, .hub-panel, .hub-now) {
  box-shadow: none;
  border: 2px solid #17324d;
}

/* "Now" badge: white text needs a deeper ground than the raw unit colour (brass measured 3.9:1). */
body.curriculum-home.curriculum-product .course-unit-now {
  background: color-mix(in srgb, var(--unit-accent) 68%, #1a1612);
  color: #fff;
}
