:root {
  color-scheme: light;
  --paper: #f5f4ed;
  --paper-bright: #fffef9;
  --paper-soft: #eeeee5;
  --ink: #1d2c31;
  --muted: #627176;
  --faint: #8f9a9a;
  --line: #d9ded8;
  --line-dark: #bcc9c3;
  --teal: #167a78;
  --teal-dark: #0d5e5c;
  --teal-pale: #e3f1ec;
  --moss: #697c55;
  --moss-pale: #eef1e7;
  --amber: #c8843b;
  --amber-pale: #fff1dc;
  --coral: #c96b55;
  --navy: #1d3942;
  --shadow-soft: 0 14px 40px rgba(29, 44, 49, .06);
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --serif: Georgia, Cambria, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --reading-width: 72ch;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--paper); scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 15px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
a { color: var(--teal-dark); text-underline-offset: .18em; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible, select:focus-visible { outline: 3px solid #d77c4e; outline-offset: 3px; }
::selection { background: #bce2d7; color: var(--ink); }

.skip-link { position: fixed; z-index: 100; top: 10px; left: 10px; transform: translateY(-160%); background: var(--ink); color: white; padding: 10px 14px; border-radius: 8px; }
.skip-link:focus { transform: translateY(0); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.app-shell { min-height: 100vh; }
.course-rail { position: fixed; z-index: 30; inset: 0 auto 0 0; display: flex; flex-direction: column; width: 270px; padding: 25px 18px 18px; overflow: hidden; background: #f0f1e9; border-right: 1px solid var(--line); }
.brand-lockup { padding: 1px 7px 21px; border-bottom: 1px solid var(--line); }
.brand-link { display: flex; align-items: center; gap: 11px; color: var(--ink); text-decoration: none; }
.brand-mark { display: grid; width: 42px; height: 42px; flex: none; place-items: center; color: var(--teal); background: #e0ede6; border: 1px solid #c8ddd3; border-radius: 13px 13px 13px 4px; }
.brand-mark svg { width: 36px; height: 36px; }
.brand-type { display: flex; flex-direction: column; line-height: 1.2; }
.brand-type strong { font-family: var(--serif); font-size: 17px; font-weight: 600; letter-spacing: -.025em; }
.brand-type small { margin-top: 5px; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .15em; }
.rail-course-meta { padding: 19px 8px 14px; }
.eyebrow, .rail-course-meta .eyebrow { color: var(--teal-dark); font-size: 9px; font-weight: 800; letter-spacing: .16em; }
.rail-course-meta p { max-width: 27ch; margin: 7px 0 0; color: #59696c; font-family: var(--serif); font-size: 15px; line-height: 1.45; }
.primary-nav { display: grid; gap: 3px; padding: 4px 0 15px; }
.rail-link { display: flex; width: 100%; align-items: center; gap: 11px; padding: 9px 10px; color: #536469; text-align: left; background: transparent; border: 0; border-radius: 8px; cursor: pointer; font-size: 12px; font-weight: 640; transition: background .14s ease, color .14s ease, transform .14s ease; }
.rail-link:hover { color: var(--ink); background: rgba(255,255,255,.62); }
.rail-link.is-active { color: var(--teal-dark); background: #dfece5; }
.nav-symbol { display: inline-grid; width: 19px; height: 20px; place-items: center; color: var(--teal); font-size: 16px; font-weight: 500; }
.rail-section-heading { display: flex; align-items: center; gap: 9px; padding: 11px 8px 8px; color: #778487; font-size: 9px; font-weight: 800; letter-spacing: .15em; }
.rail-rule { height: 1px; flex: 1; background: var(--line); }
.course-navigation { flex: 1; min-height: 0; overflow: auto; padding: 0 2px 18px; scrollbar-width: thin; scrollbar-color: #c9d3cd transparent; }
.unit-nav-group { margin: 10px 0 13px; }
.unit-nav-title { padding: 0 8px 4px; color: #83908d; font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.chapter-link { display: grid; grid-template-columns: 23px 1fr; gap: 5px; width: 100%; align-items: start; padding: 5px 8px; color: #5c6b6e; text-align: left; background: transparent; border: 0; border-radius: 7px; cursor: pointer; font-size: 11px; line-height: 1.4; }
.chapter-link:hover { color: var(--ink); background: rgba(255,255,255,.58); }
.chapter-link.is-active { color: var(--teal-dark); background: #e2ede7; font-weight: 700; }
.chapter-link.is-complete .chapter-number::after { content: "✓"; color: var(--teal); }
.chapter-number { color: #899695; font-variant-numeric: tabular-nums; }
.chapter-link.is-complete .chapter-number { font-size: 0; }
.chapter-link.is-complete .chapter-number::after { font-size: 11px; }
.rail-progress { padding: 13px 8px 0; border-top: 1px solid var(--line); }
.progress-copy { display: flex; justify-content: space-between; gap: 8px; color: #788686; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.progress-copy strong { color: var(--teal-dark); font-size: 10px; letter-spacing: 0; }
.progress-track { height: 5px; overflow: hidden; margin-top: 8px; background: #dce2dc; border-radius: 99px; }
.progress-track > span { display: block; width: 0; height: 100%; background: var(--teal); border-radius: inherit; transition: width .25s ease; }
.rail-progress p { margin: 6px 0 0; color: #87918f; font-size: 10px; }
.rail-scrim { display: none; }

.main-column { min-height: 100vh; margin-left: 270px; }
.topbar { position: sticky; z-index: 20; top: 0; display: flex; min-height: 70px; align-items: center; justify-content: space-between; gap: 16px; padding: 10px clamp(22px, 4.6vw, 68px); background: rgba(245,244,237,.94); border-bottom: 1px solid rgba(217,222,216,.75); backdrop-filter: blur(14px); }
.topbar-left, .topbar-tools { display: flex; align-items: center; gap: 14px; }
.breadcrumb { display: flex; align-items: center; gap: 9px; color: #6f7d7d; font-size: 9px; font-weight: 800; letter-spacing: .14em; }
.breadcrumb-dot { display: block; width: 6px; height: 6px; background: var(--teal); border-radius: 50%; }
.search-form { position: relative; display: flex; width: min(305px, 36vw); height: 38px; align-items: center; gap: 8px; padding: 0 9px; background: #fffef9; border: 1px solid #d9dfd9; border-radius: 8px; }
.search-icon { color: #7b8988; font-size: 19px; line-height: 1; transform: rotate(-20deg); }
.search-form input { width: 100%; min-width: 0; color: var(--ink); background: transparent; border: 0; outline: 0; font-size: 11px; }
.search-form input:focus-visible { outline: 0; }
.search-form kbd { flex: none; padding: 1px 4px; color: #8a9692; background: #f4f3ed; border: 1px solid #e4e6df; border-radius: 4px; font-family: var(--sans); font-size: 9px; }
.topbar-progress { display: flex; align-items: center; gap: 7px; padding: 0; color: #687677; background: transparent; border: 0; cursor: pointer; font-size: 11px; }
.progress-ring { display: grid; width: 30px; height: 30px; place-items: center; background: conic-gradient(var(--teal) 0deg, #d9e2dc 0deg); border-radius: 50%; position: relative; }
.progress-ring::before { position: absolute; inset: 3px; content: ""; background: var(--paper); border-radius: 50%; }
.progress-ring span { z-index: 1; color: var(--teal-dark); font-size: 8px; font-weight: 800; }
.menu-toggle { display: none; }
.search-results { position: absolute; top: calc(100% - 5px); right: clamp(22px, 4.6vw, 68px); width: min(390px, calc(100vw - 28px)); max-height: min(64vh, 520px); overflow: auto; padding: 8px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-soft); }
.search-results[hidden] { display: none; }
.search-results-heading { padding: 6px 9px 9px; color: #788686; font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.search-result { display: block; width: 100%; padding: 9px; color: var(--ink); text-align: left; background: transparent; border: 0; border-radius: 7px; cursor: pointer; }
.search-result:hover, .search-result:focus-visible { background: var(--teal-pale); }
.search-result strong { display: block; font-family: var(--serif); font-size: 15px; font-weight: 600; }
.search-result small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.search-empty { padding: 13px 9px; color: var(--muted); font-size: 12px; }

#main-content { min-height: calc(100vh - 142px); padding: 0 clamp(22px, 4.6vw, 68px) 70px; }
#main-content:focus { outline: 0; }
.loading-state { display: grid; min-height: 60vh; place-content: center; justify-items: center; color: var(--muted); }
.loading-mark { color: var(--teal); font-family: var(--serif); font-size: 50px; }
.site-footer { display: flex; align-items: center; gap: 13px; padding: 18px clamp(22px, 4.6vw, 68px) 26px; border-top: 1px solid var(--line); color: #748180; font-size: 10px; line-height: 1.45; }
.footer-mark { color: var(--teal); font-family: var(--serif); font-size: 20px; font-weight: 700; letter-spacing: -.1em; }
.footer-mark span { color: var(--amber); }
.site-footer p { margin: 0; }
.site-footer strong { color: #405154; font-family: var(--serif); font-size: 12px; }
.footer-note { margin-left: auto !important; text-align: right; }

/* Course overview */
.page-wrap { max-width: 1180px; margin: 0 auto; }
.home-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(280px, .92fr); gap: clamp(22px, 4vw, 58px); align-items: center; min-height: 510px; padding: 56px 0 48px; border-bottom: 1px solid var(--line); }
.home-hero::before { position: absolute; top: 29px; left: -20px; width: 78px; height: 1px; content: ""; background: var(--teal); }
.hero-copy { position: relative; z-index: 1; max-width: 630px; }
.hero-kicker, .page-kicker { display: flex; align-items: center; gap: 9px; color: var(--teal-dark); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.hero-kicker span, .page-kicker span { width: 21px; height: 1px; background: var(--amber); }
.home-hero h1 { max-width: 12ch; margin: 18px 0 14px; font-family: var(--serif); font-size: clamp(46px, 6vw, 82px); font-weight: 500; letter-spacing: -.065em; line-height: .98; }
.home-hero h1 em { color: var(--teal); font-weight: 500; }
.hero-copy > p { max-width: 56ch; margin: 0; color: #5e6d6f; font-family: var(--serif); font-size: clamp(17px, 1.8vw, 21px); line-height: 1.52; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; margin-top: 27px; }
.button-primary, .button-secondary, .text-button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 9px; padding: 9px 16px; border-radius: 7px; text-decoration: none; cursor: pointer; font-size: 11px; font-weight: 750; transition: transform .14s ease, background .14s ease, color .14s ease, border-color .14s ease; }
.button-primary { color: #fff; background: var(--teal); border: 1px solid var(--teal); }
.button-primary:hover { background: var(--teal-dark); transform: translateY(-1px); }
.button-secondary { color: var(--ink); background: transparent; border: 1px solid #bcc9c3; }
.button-secondary:hover { color: var(--teal-dark); background: var(--paper-bright); border-color: var(--teal); }
.text-button { min-height: auto; padding: 4px 0; color: var(--teal-dark); background: transparent; border: 0; }
.text-button:hover { text-decoration: underline; }
.button-arrow { font-size: 16px; }
.hero-plate { position: relative; display: grid; min-height: 350px; place-items: center; overflow: hidden; background: #e8eee6; border: 1px solid #d4ded4; border-radius: 48% 48% 45% 42% / 38% 40% 50% 51%; }
.hero-plate::before, .hero-plate::after { position: absolute; content: ""; border: 1px solid rgba(22,122,120,.22); border-radius: 50%; }
.hero-plate::before { width: 75%; height: 75%; transform: rotate(32deg) scaleX(.65); }
.hero-plate::after { width: 58%; height: 85%; transform: rotate(-32deg) scaleX(.58); }
.hero-plate svg { position: relative; z-index: 1; width: min(82%, 370px); height: auto; }
.hero-plate-caption { position: absolute; right: 5%; bottom: 7%; z-index: 2; padding: 7px 10px; color: #5a6d68; background: rgba(255,254,249,.78); border: 1px solid rgba(194,207,195,.7); border-radius: 5px; font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.hero-annotation { position: absolute; top: 13%; left: 0; color: #74847d; font-size: 9px; font-weight: 700; letter-spacing: .12em; writing-mode: vertical-rl; }
.course-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.course-fact { display: flex; align-items: baseline; gap: 9px; padding: 4px 12px; border-right: 1px solid var(--line); }
.course-fact:last-child { border-right: 0; }
.course-fact strong { color: var(--teal-dark); font-family: var(--serif); font-size: 27px; font-weight: 500; }
.course-fact span { color: var(--muted); font-size: 10px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin: 52px 0 20px; }
.section-heading h2 { margin: 0; font-family: var(--serif); font-size: clamp(26px, 3vw, 38px); font-weight: 500; letter-spacing: -.04em; line-height: 1.15; }
.section-heading p { max-width: 46ch; margin: 0; color: var(--muted); font-size: 11px; }
.unit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.unit-card { position: relative; min-height: 175px; padding: 19px 20px 17px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 10px; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.unit-card:hover { border-color: #a9c9bc; box-shadow: var(--shadow-soft); transform: translateY(-2px); }
.unit-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #798784; font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.unit-card-index { color: var(--amber); font-family: var(--serif); font-size: 20px; font-weight: 500; }
.unit-card h3 { margin: 7px 0 5px; font-family: var(--serif); font-size: 23px; font-weight: 500; letter-spacing: -.03em; line-height: 1.15; }
.unit-card p { max-width: 54ch; margin: 0; color: #667477; font-size: 11px; line-height: 1.55; }
.unit-card-chapters { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.chapter-pill { padding: 4px 7px; color: #4e6665; background: #f0f4ee; border: 1px solid #e1e8df; border-radius: 99px; font-size: 9px; }
.unit-card-link { position: absolute; inset: 0; padding: 0; background: transparent; border: 0; border-radius: inherit; appearance: none; cursor: pointer; }
.unit-card-link:focus-visible { outline-offset: 4px; }
.home-lower { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr); gap: 18px; margin-top: 44px; }
.welcome-note, .study-card { padding: 23px; background: #ecefe7; border: 1px solid #d9e1d8; border-radius: 12px; }
.welcome-note h2, .study-card h2 { margin: 7px 0 8px; font-family: var(--serif); font-size: 25px; font-weight: 500; letter-spacing: -.03em; }
.welcome-note p, .study-card p { margin: 0; color: #58696a; font-size: 12px; line-height: 1.75; }
.mara-label { display: inline-flex; align-items: center; gap: 7px; color: var(--teal-dark); font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.mara-orbit { display: inline-grid; width: 21px; height: 21px; place-items: center; border: 1px solid #98b9ac; border-radius: 50%; font-family: var(--serif); font-size: 13px; }
.study-card { background: #f7f0e5; border-color: #eadbc5; }
.study-card .mara-label { color: #87603a; }
.mara-prompt { margin-top: 14px !important; padding-left: 12px; border-left: 2px solid var(--amber); font-family: var(--serif); font-size: 15px !important; }
.mara-note { margin-top: 13px !important; color: #86725d !important; font-size: 9px !important; }

/* Textbook chapters and support views */
.page-header { max-width: 920px; padding: 44px 0 22px; border-bottom: 1px solid var(--line); }
.page-header h1 { margin: 12px 0 9px; font-family: var(--serif); font-size: clamp(36px, 4.4vw, 58px); font-weight: 500; letter-spacing: -.055em; line-height: 1.04; }
.page-deck { max-width: 69ch; margin: 0; color: #5d6c6e; font-family: var(--serif); font-size: 18px; line-height: 1.5; }
.chapter-meta { display: flex; flex-wrap: wrap; gap: 8px 17px; margin-top: 17px; color: #7a8887; font-size: 9px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.chapter-meta span { display: inline-flex; align-items: center; gap: 6px; }
.chapter-meta span::before { width: 5px; height: 5px; content: ""; background: var(--amber); border-radius: 50%; }
.chapter-progress-row { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
.chapter-progress-row .progress-track { width: 140px; margin-top: 0; }
.chapter-progress-row span { color: #7b8988; font-size: 10px; }
.chapter-progress-row .chapter-done-label { margin-left: auto; color: var(--teal-dark); font-weight: 700; }
.chapter-actions { display: flex; gap: 8px; align-items: center; }
.chapter-actions button { display: inline-flex; align-items: center; gap: 6px; min-height: 31px; padding: 5px 9px; color: #607174; background: transparent; border: 1px solid #d1d9d3; border-radius: 6px; cursor: pointer; font-size: 9px; font-weight: 700; }
.chapter-actions button:hover { color: var(--teal-dark); border-color: var(--teal); }
.chapter-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, 250px); gap: clamp(26px, 4.5vw, 58px); align-items: start; padding-top: 30px; }
.chapter-reading { min-width: 0; max-width: var(--reading-width); }
.chapter-aside { position: sticky; top: 92px; display: grid; gap: 12px; }
.objectives-card, .chapter-aside-card { padding: 15px; background: #edf1e9; border: 1px solid #dce4db; border-radius: 9px; }
.aside-kicker { color: #71817b; font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.objectives-card h2, .chapter-aside-card h2 { margin: 5px 0 8px; font-family: var(--serif); font-size: 19px; font-weight: 500; }
.objectives-card ul { margin: 0; padding-left: 17px; color: #5b6b68; font-size: 10px; line-height: 1.6; }
.objectives-card li + li { margin-top: 5px; }
.key-term-list { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.key-term-chip { padding: 3px 7px; color: #4d6763; background: #fffef9; border: 1px solid #dce4dc; border-radius: 99px; font-size: 9px; }
.chapter-section { margin: 0 0 32px; scroll-margin-top: 95px; }
.section-number { display: inline-block; margin-right: 7px; color: var(--teal); font-family: var(--sans); font-size: 12px; font-weight: 800; letter-spacing: .1em; }
.chapter-section h2 { margin: 0 0 11px; font-family: var(--serif); font-size: clamp(26px, 3vw, 35px); font-weight: 500; letter-spacing: -.04em; line-height: 1.15; }
.chapter-section h3 { margin: 24px 0 8px; font-family: var(--serif); font-size: 21px; font-weight: 600; letter-spacing: -.025em; }
.chapter-section p { margin: 0 0 13px; color: #394a4f; font-family: var(--serif); font-size: 16px; line-height: 1.82; }
.chapter-section p strong { color: #183f42; font-family: var(--sans); font-size: .9em; font-weight: 750; }
.chapter-section ul, .chapter-section ol { padding-left: 21px; color: #394a4f; font-family: var(--serif); font-size: 15px; line-height: 1.75; }
.chapter-section li + li { margin-top: 7px; }
.chapter-section blockquote { margin: 18px 0; padding: 13px 17px; color: #536663; background: #e8f0e9; border-left: 3px solid var(--moss); font-family: var(--serif); font-size: 16px; }
.figure-card { margin: 20px 0 24px; padding: 14px; background: #eef2eb; border: 1px solid #dce4db; border-radius: 10px; }
.figure-card svg { display: block; width: 100%; max-height: 245px; }
.figure-card figcaption { margin-top: 10px; color: #667773; font-size: 10px; line-height: 1.55; }
.figure-card figcaption strong { color: #445b56; }
.figure-card .figure-label { display: inline-block; margin-right: 7px; color: var(--teal-dark); font-size: 8px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.callout { margin: 18px 0; padding: 16px 18px; background: var(--amber-pale); border: 1px solid #f0dfc4; border-radius: 8px; }
.callout-label { display: block; margin-bottom: 5px; color: #916433; font-size: 8px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.callout p { margin: 0; color: #584d3d; font-family: var(--serif); font-size: 15px; line-height: 1.65; }
.example-box { margin: 18px 0; padding: 16px; background: #eaf1f1; border: 1px solid #d5e3e2; border-radius: 8px; }
.example-box h3 { margin: 0 0 7px; color: var(--teal-dark); font-family: var(--sans); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.example-box p { margin: 0; color: #40575a; font-family: var(--serif); font-size: 15px; line-height: 1.65; }
.chapter-summary { margin: 33px 0; padding: 19px 20px; background: var(--navy); border-radius: 10px; color: #f7f5ed; }
.chapter-summary .aside-kicker { color: #a5c8ba; }
.chapter-summary h2 { margin: 5px 0 10px; color: #fffef7; font-family: var(--serif); font-size: 23px; font-weight: 500; }
.chapter-summary ul { margin: 0; padding-left: 19px; color: #dfe9e1; font-family: var(--serif); font-size: 14px; line-height: 1.7; }
.chapter-summary li + li { margin-top: 4px; }
.further-reading { margin: 22px 0 32px; padding-top: 13px; border-top: 1px solid var(--line); }
.further-reading h2 { margin: 0 0 8px; font-family: var(--serif); font-size: 18px; font-weight: 600; }
.further-reading ol { padding-left: 17px; color: #657271; font-size: 10px; line-height: 1.6; }
.further-reading li + li { margin-top: 5px; }
.further-reading a { overflow-wrap: anywhere; }
.workbook { margin: 38px 0 42px; padding: clamp(18px, 3vw, 27px); background: #fffdf5; border: 1px solid #e3d9c5; border-top: 4px solid var(--amber); border-radius: 3px 3px 11px 11px; box-shadow: 0 12px 30px rgba(79,60,36,.035); }
.workbook-heading { display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: 14px; margin-bottom: 19px; padding-bottom: 14px; border-bottom: 1px solid #e8dfce; }
.workbook-heading h2 { margin: 3px 0 5px; font-family: var(--serif); font-size: 28px; font-weight: 500; letter-spacing: -.04em; }
.workbook-heading p { max-width: 57ch; margin: 0; color: #777064; font-size: 11px; }
.workbook-stamp { padding: 5px 8px; color: #95652f; background: #fff1dc; border: 1px solid #efd8b8; border-radius: 4px; font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.activity-list { display: grid; gap: 13px; }
.activity-card { padding: 15px; background: #fbf8ef; border: 1px solid #ece4d4; border-radius: 8px; }
.activity-topline { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.activity-type { color: #a16e35; font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.activity-status { display: inline-flex; align-items: center; gap: 5px; color: #78827b; font-size: 9px; }
.activity-status input { accent-color: var(--teal); }
.activity-card h3 { margin: 2px 0 6px; color: #293a3d; font-family: var(--serif); font-size: 19px; font-weight: 600; line-height: 1.25; }
.activity-prompt { margin: 0 0 11px; color: #555f5f; font-family: var(--serif); font-size: 14px; line-height: 1.6; }
.activity-data { margin: 11px 0; padding: 11px 13px; background: #f1f0e8; border-left: 2px solid var(--teal); color: #4e6060; font-size: 11px; line-height: 1.6; }
.activity-options { display: grid; gap: 7px; margin: 10px 0; }
.activity-option { display: flex; align-items: start; gap: 8px; color: #4f6060; font-size: 11px; }
.activity-option input { margin-top: 3px; accent-color: var(--teal); }
.activity-response { display: block; width: 100%; min-height: 76px; resize: vertical; padding: 10px 11px; color: var(--ink); background: #fffef9; border: 1px solid #ddd8cb; border-radius: 6px; font-family: var(--serif); font-size: 13px; line-height: 1.5; }
.activity-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 9px; }
.activity-actions button { min-height: 30px; padding: 5px 9px; color: var(--teal-dark); background: transparent; border: 1px solid #b9cdc4; border-radius: 5px; cursor: pointer; font-size: 9px; font-weight: 750; }
.activity-actions button:hover { background: #eaf2ed; }
.answer-details { margin-top: 10px; border-top: 1px dashed #ded4c2; }
.answer-details summary { display: inline-block; margin-top: 9px; color: #806341; cursor: pointer; font-size: 10px; font-weight: 750; }
.answer-body { margin-top: 7px; padding: 10px 12px; color: #55534a; background: #f2efe6; border-radius: 5px; font-family: var(--serif); font-size: 13px; line-height: 1.6; }
.answer-body p { margin: 0; }
.activity-feedback { min-height: 17px; margin-top: 6px; color: var(--teal-dark); font-size: 10px; }
.workbook-complete { display: flex; align-items: center; gap: 8px; margin-top: 17px; padding-top: 13px; border-top: 1px solid #e8dfce; color: #6e7a74; font-size: 10px; }
.workbook-complete input { accent-color: var(--teal); }
.chapter-end-nav { display: flex; justify-content: space-between; gap: 12px; margin: 30px 0; padding-top: 17px; border-top: 1px solid var(--line); }
.chapter-end-nav button { max-width: 48%; padding: 10px 13px; color: var(--teal-dark); text-align: left; background: transparent; border: 1px solid var(--line-dark); border-radius: 7px; cursor: pointer; font-size: 10px; }
.chapter-end-nav button:hover { background: var(--teal-pale); }
.chapter-end-nav button span { display: block; color: #87918d; font-size: 8px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.chapter-end-nav button strong { display: block; margin-top: 3px; font-family: var(--serif); font-size: 14px; font-weight: 600; }

/* Glossary, course support, and progress */
.support-page { max-width: 930px; margin: 0 auto; }
.support-page .page-header { padding-top: 49px; }
.support-content { padding: 27px 0 55px; }
.support-content h2 { margin: 30px 0 9px; font-family: var(--serif); font-size: 28px; font-weight: 500; letter-spacing: -.035em; }
.support-content p { max-width: 75ch; color: #48595c; font-family: var(--serif); font-size: 16px; line-height: 1.75; }
.support-content li { margin: 7px 0; color: #4e5d5f; }
.glossary-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 18px 0; }
.glossary-filter { min-height: 40px; flex: 1 1 250px; padding: 8px 11px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 7px; }
.glossary-count { color: var(--muted); font-size: 10px; }
.glossary-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.glossary-entry { padding: 13px 14px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 8px; }
.glossary-entry h3 { margin: 0 0 4px; color: var(--teal-dark); font-family: var(--serif); font-size: 17px; font-weight: 600; }
.glossary-entry p { margin: 0; color: #617071; font-family: var(--sans); font-size: 10px; line-height: 1.6; }
.glossary-entry a { display: inline-block; margin-top: 7px; font-size: 9px; font-weight: 750; }
.progress-overview { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; margin: 20px 0; }
.progress-stat-card { padding: 17px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 9px; }
.progress-stat-card .big-number { display: block; color: var(--teal); font-family: var(--serif); font-size: 37px; line-height: 1.1; }
.progress-stat-card span:last-child { color: var(--muted); font-size: 10px; }
.progress-unit-list { display: grid; gap: 9px; margin-top: 20px; }
.progress-unit { display: grid; grid-template-columns: minmax(130px, .8fr) 1.2fr auto; gap: 11px; align-items: center; padding: 12px 14px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 8px; }
.progress-unit strong { font-family: var(--serif); font-size: 15px; font-weight: 600; }
.progress-unit small { color: var(--muted); font-size: 9px; }
.progress-unit .progress-track { margin: 0; }
.progress-unit-value { color: var(--teal-dark); font-size: 10px; font-weight: 750; }
.progress-actions { margin-top: 19px; }
.progress-backup-panel { margin: 25px 0 31px; padding: 18px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 10px; }
.progress-backup-panel h2 { margin: 0 0 8px; }
.progress-backup-panel p { max-width: 76ch; margin: 0; color: #586760; font-family: var(--sans); font-size: 11px; line-height: 1.7; }
.progress-backup-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 13px; }
.progress-backup-panel .progress-backup-status { min-height: 1.6em; margin-top: 9px; color: var(--muted); font-size: 10px; }
.notice-box { margin: 17px 0; padding: 14px 16px; color: #586760; background: var(--moss-pale); border: 1px solid #dce4d2; border-radius: 8px; font-size: 11px; }
.notice-box strong { color: #415841; }
.bibliography-list { display: grid; gap: 12px; padding: 0; list-style: none; }
.reference-card { padding: 15px 16px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 9px; }
.reference-card h3 { margin: 0 0 4px; font-family: var(--serif); font-size: 18px; font-weight: 600; }
.reference-card p { margin: 0; color: #657172; font-family: var(--sans); font-size: 10px; line-height: 1.65; }
.reference-card a { display: inline-block; margin-top: 6px; overflow-wrap: anywhere; font-size: 10px; }
.study-sequence { counter-reset: sequence; display: grid; gap: 9px; padding: 0; list-style: none; }
.study-sequence li { position: relative; counter-increment: sequence; padding: 14px 15px 14px 50px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 8px; }
.study-sequence li::before { position: absolute; top: 12px; left: 14px; display: grid; width: 25px; height: 25px; content: counter(sequence, decimal-leading-zero); place-items: center; color: var(--teal-dark); background: var(--teal-pale); border-radius: 50%; font-size: 8px; font-weight: 800; }
.study-sequence strong { display: block; font-family: var(--serif); font-size: 16px; }
.study-sequence span { display: block; margin-top: 3px; color: #6b7776; font-size: 10px; }
.empty-state { padding: 22px; color: var(--muted); background: var(--paper-bright); border: 1px dashed var(--line-dark); border-radius: 9px; font-size: 12px; text-align: center; }
.toast-region { position: fixed; z-index: 80; right: 20px; bottom: 20px; display: grid; gap: 7px; }
.toast { max-width: min(360px, calc(100vw - 40px)); padding: 10px 14px; color: white; background: var(--navy); border-radius: 7px; box-shadow: var(--shadow-soft); font-size: 11px; animation: toast-in .16s ease-out; }
@keyframes toast-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.noscript-note { position: fixed; z-index: 200; inset: auto 12px 12px; padding: 13px; color: #fff; background: var(--navy); border-radius: 8px; }

@media (max-width: 1040px) {
  .course-rail { width: 248px; }
  .main-column { margin-left: 248px; }
  .chapter-columns { grid-template-columns: minmax(0, 1fr) 215px; gap: 27px; }
  .home-hero { min-height: 455px; }
}
@media (max-width: 820px) {
  .course-rail { z-index: 45; width: min(300px, calc(100vw - 45px)); transform: translateX(-102%); transition: transform .22s ease; box-shadow: 12px 0 35px rgba(25,43,43,.12); }
  .course-rail.is-open { transform: translateX(0); }
  .rail-scrim:not([hidden]) { position: fixed; z-index: 40; inset: 0; display: block; background: rgba(21,38,42,.32); }
  .main-column { margin-left: 0; }
  .menu-toggle { display: flex; width: 34px; height: 34px; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 7px; background: transparent; border: 1px solid var(--line); border-radius: 7px; cursor: pointer; }
  .menu-toggle span { display: block; width: 15px; height: 1.5px; background: #526568; }
  .topbar { min-height: 62px; }
  .home-hero { grid-template-columns: minmax(0, 1fr) minmax(220px, .8fr); min-height: 400px; }
  .hero-plate { min-height: 280px; }
}
@media (max-width: 650px) {
  body { font-size: 14px; }
  .topbar { gap: 8px; padding: 8px 14px; }
  .breadcrumb { max-width: 42vw; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 8px; }
  .breadcrumb > span:last-child { overflow: hidden; text-overflow: ellipsis; }
  .topbar-left, .topbar-tools { gap: 8px; }
  .search-form { width: 39px; height: 36px; padding: 0 10px; border: 0; background: transparent; }
  .search-form input { position: absolute; top: 43px; right: -83px; display: none; width: min(300px, calc(100vw - 28px)); height: 40px; padding: 0 12px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 7px; box-shadow: var(--shadow-soft); }
  .search-form.is-open input { display: block; }
  .search-form kbd { display: none; }
  .topbar-progress { gap: 0; }
  .top-progress-text { display: none; }
  .search-results { top: 61px; right: 14px; }
  #main-content { min-height: calc(100vh - 130px); padding: 0 17px 45px; }
  .site-footer { flex-wrap: wrap; gap: 9px; padding: 16px 17px 22px; }
  .footer-note { width: 100%; margin-left: 0 !important; text-align: left; }
  .home-hero { grid-template-columns: 1fr; gap: 26px; min-height: auto; padding: 40px 0 26px; }
  .home-hero h1 { max-width: 10ch; font-size: clamp(49px, 14vw, 68px); }
  .hero-copy > p { font-size: 17px; }
  .hero-plate { min-height: 245px; border-radius: 35% 42% 31% 38% / 37% 36% 42% 45%; }
  .hero-plate svg { width: min(70%, 300px); }
  .hero-annotation { top: 12%; left: 8px; }
  .course-facts { gap: 2px; }
  .course-fact { display: block; padding: 3px 8px; }
  .course-fact strong { display: block; font-size: 24px; }
  .course-fact span { font-size: 9px; }
  .section-heading { display: block; margin-top: 37px; }
  .section-heading p { margin-top: 6px; }
  .unit-grid, .home-lower { grid-template-columns: 1fr; }
  .unit-card { min-height: 160px; }
  .page-header { padding-top: 34px; }
  .page-header h1 { font-size: clamp(35px, 11vw, 48px); }
  .page-deck { font-size: 16px; }
  .chapter-columns { grid-template-columns: 1fr; }
  .chapter-aside { position: static; grid-row: 1; grid-template-columns: 1fr; }
  .chapter-reading { grid-row: 2; }
  .chapter-section p { font-size: 15px; }
  .chapter-progress-row { flex-wrap: wrap; }
  .chapter-progress-row .chapter-done-label { margin-left: 0; }
  .chapter-end-nav { flex-direction: column; }
  .chapter-end-nav button { max-width: none; }
  .glossary-list, .progress-overview { grid-template-columns: 1fr; }
  .progress-unit { grid-template-columns: minmax(0, 1fr) auto; }
  .progress-unit .progress-track { grid-column: 1 / -1; grid-row: 2; }
  .progress-unit-value { grid-column: 2; grid-row: 1; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media print {
  :root { --paper: #fff; --paper-bright: #fff; --ink: #000; }
  body { background: #fff; font-size: 11pt; color: #000; }
  .course-rail, .topbar, .site-footer, .skip-link, .chapter-actions, .chapter-end-nav, .activity-actions, .activity-status, .workbook-complete, .progress-backup-actions, .progress-actions, .menu-toggle, .toast-region { display: none !important; }
  .main-column { margin: 0; }
  #main-content { min-height: 0; padding: 0; }
  .home-hero { min-height: 0; padding: 16pt 0; }
  .home-hero h1 { font-size: 34pt; }
  .hero-plate { max-height: 260px; }
  .chapter-columns { display: block; }
  .chapter-aside { position: static; margin: 14pt 0; }
  .chapter-section, .workbook, .activity-card, .chapter-summary, .figure-card { break-inside: avoid; }
  .chapter-section p { color: #111; font-size: 11pt; }
  .answer-details > .answer-body { display: block !important; }
  .answer-details:not([open]) > .answer-body { display: none !important; }
  .answer-details summary { color: #333; }
  a { color: #000; text-decoration: underline; }
  .page-header, .chapter-section { border-color: #aaa; }
  .support-page { max-width: none; }
}


/* Course-specific components */
.hero-note { margin-top: 12px !important; color: #75817e !important; font-size: 10px !important; font-family: var(--sans) !important; }
.unit-card-progress { display: grid; grid-template-columns: 1fr 70px; gap: 8px; align-items: center; margin-top: 11px; color: #788480; font-size: 9px; }
.unit-card-progress .progress-track { height: 4px; margin: 0; }
.unit-card-progress .progress-track > span { background: var(--moss); }
.outcomes-block { margin-top: 44px; }
.outcomes-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; border-top: 1px solid var(--line); }
.outcome-item { display: grid; grid-template-columns: 34px 1fr; gap: 9px; align-items: start; padding: 15px 4px; border-bottom: 1px solid var(--line); }
.outcome-item > span { color: var(--amber); font-family: var(--serif); font-size: 18px; }
.outcome-item p { margin: 0; color: #556567; font-family: var(--serif); font-size: 14px; line-height: 1.55; }
.mara-study-card { padding: 14px; background: #f7f0e5; border: 1px solid #eadbc5; border-radius: 9px; }
.mara-study-card .mara-label { color: #87603a; }
.mara-study-card .mara-prompt { margin: 10px 0 0; padding-left: 10px; border-left: 2px solid var(--amber); color: #5d554a; font-family: var(--serif); font-size: 13px; line-height: 1.6; }
.mara-study-card .mara-note { margin: 10px 0 0; color: #86725d; font-size: 9px; line-height: 1.45; }
.figure-flow { display: grid; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: 7px; margin: 0; padding: 0; list-style: none; }
.figure-flow li { position: relative; display: grid; min-height: 82px; align-content: start; gap: 7px; padding: 11px; color: #445a56; background: rgba(255,254,249,.78); border: 1px solid #d8e2d8; border-radius: 7px; font-family: var(--serif); font-size: 12px; line-height: 1.45; }
.figure-step-index { color: var(--teal); font-family: var(--sans); font-size: 8px; font-weight: 800; letter-spacing: .08em; }
.figure-context-frame { padding: 10px; border: 1px dashed #9eb5ab; border-radius: 8px; background: rgba(255,254,249,.45); }
.figure-frame-label { display: block; margin: 0 0 4px; color: var(--teal-dark); font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.figure-frame-copy { margin: 0 0 8px; color: #586b66; font-size: 10px; line-height: 1.45; }
.figure-step-exit { display: flex; gap: 4px; align-items: flex-start; margin-top: 2px; padding: 5px 6px; color: #6b5143; background: #fbf2e8; border-left: 2px solid #b78260; border-radius: 0 4px 4px 0; font-family: var(--sans); font-size: 9px; line-height: 1.35; }
.activity-diagram-note { margin: 8px 0 0; padding: 7px 8px; color: #59625c; background: #fbf7ed; border-left: 2px solid var(--amber); font-size: 9px; line-height: 1.45; }
.figure-card figcaption { display: grid; gap: 3px; }
.figure-card figcaption > span:last-child { display: block; }
.activity-data { overflow-x: auto; }
.activity-data table { width: 100%; min-width: 360px; border-collapse: collapse; color: #4e6060; font-size: 10px; }
.activity-data caption { padding: 0 0 7px; color: #526463; font-size: 10px; font-weight: 700; text-align: left; }
.activity-data th, .activity-data td { padding: 7px 9px; border-bottom: 1px solid #dfe2d8; text-align: left; vertical-align: top; }
.activity-data th { color: #385352; background: #e7ece4; font-size: 9px; }
.activity-data td[data-label] { color: #304e4e; font-weight: 700; }
.activity-diagram { margin: 11px 0; padding: 11px; background: #f1f0e8; border: 1px solid #e1e0d7; border-radius: 6px; }
.activity-diagram figcaption { margin-bottom: 8px; color: #405756; font-size: 10px; font-weight: 750; }
.activity-diagram ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
.activity-diagram li { display: grid; align-content: start; gap: 5px; min-height: 62px; padding: 8px; color: #526360; background: #fffef9; border: 1px solid #dfe3d9; border-radius: 5px; font-size: 10px; }
.label-slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 10px 0; }
.label-slot { display: grid; gap: 4px; color: #566562; font-size: 10px; }
.label-slot select { min-height: 36px; padding: 6px 8px; color: var(--ink); background: #fffef9; border: 1px solid #d8ddd4; border-radius: 5px; }
.hint-details { margin: 8px 0; color: #6b6a60; font-size: 10px; }
.hint-details summary { display: inline-block; color: var(--teal-dark); cursor: pointer; font-weight: 750; }
.hint-details p { margin: 6px 0 0; padding: 8px 10px; color: #5c665f; background: #edf1e9; border-radius: 5px; font-family: var(--serif); line-height: 1.55; }
.answer-prompt { color: #82775f; font-size: 9px; }
.worked-note { margin-top: 8px !important; padding-top: 8px; border-top: 1px solid #e1ddcf; color: #52615b; }
.review-heading { margin: 31px 0 13px; padding-top: 18px; border-top: 1px solid #e8dfce; }
.review-heading h3 { margin: 4px 0 5px; font-family: var(--serif); font-size: 22px; font-weight: 600; }
.review-heading p { margin: 0; color: #777064; font-size: 10px; }
.source-note { margin: 0 0 8px; color: #71807b; font-size: 10px; line-height: 1.6; }
.inline-link { display: inline; padding: 0; color: var(--teal-dark); background: none; border: 0; cursor: pointer; font: inherit; font-weight: 700; text-align: left; text-decoration: underline; text-underline-offset: .16em; }
.inline-link:hover { color: var(--teal); }
.outcome-bullets { padding-left: 20px; }
.course-map-list { display: grid; gap: 11px; }
.course-map-unit { padding: 14px 16px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 8px; }
.course-map-unit h3 { margin: 0; font-family: var(--serif); font-size: 17px; }
.course-map-unit p { margin: 4px 0 7px; color: var(--muted); font-size: 11px; }
.course-map-unit ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 18px; margin: 0; padding-left: 18px; font-size: 11px; }
.reference-group + .reference-group { margin-top: 20px; }
.glossary-entry .inline-link { margin-top: 7px; font-size: 9px; }
@media (max-width: 650px) {
  .outcomes-list { grid-template-columns: 1fr; }
  .label-slots { grid-template-columns: 1fr; }
  .course-map-unit ol { grid-template-columns: 1fr; }
  .unit-card-progress { grid-template-columns: 1fr 56px; }
}
@media print {
  .hero-note, .unit-card-progress, .mara-study-card, .hint-details, .answer-prompt { color: #333 !important; }
  .figure-flow li, .activity-diagram li, .course-map-unit, .reference-card { break-inside: avoid; }
  .figure-card { background: #fff; }
  .activity-data { overflow: visible; }
  .activity-data table { min-width: 0; font-size: 9pt; }
}

.hero-plate-caption { right: auto; left: 50%; max-width: 82%; white-space: nowrap; transform: translateX(-50%); }
@media (max-width: 650px) { .hero-plate-caption { max-width: 76%; white-space: normal; text-align: center; } }

.search-open-button { display: inline-grid; width: 22px; height: 28px; flex: none; place-items: center; padding: 0; background: transparent; border: 0; border-radius: 5px; cursor: pointer; }
.search-open-button:hover { background: var(--teal-pale); }
.search-open-button .search-icon { display: block; }
@media (max-width: 650px) {
  .search-open-button { width: 20px; height: 30px; }
  .search-form.is-open input { right: -75px; z-index: 1; }
}


/* Evidence and source cues for the life-design course */
:root { --plum: #69506e; --plum-pale: #f0eaf1; }
.citation-link {
  display: inline-block;
  margin-left: .08em;
  color: var(--teal-dark);
  font-size: .78em;
  font-weight: 750;
  line-height: 1;
  text-decoration: none;
  vertical-align: super;
}
.citation-link:hover { color: var(--plum); text-decoration: underline; }
.inline-citations { white-space: nowrap; }
.citation-number { color: var(--teal-dark); font-size: .84em; font-weight: 800; font-variant-numeric: tabular-nums; }
.reference-note { margin: .42rem 0 .8rem; color: var(--muted); font-size: .88em; line-height: 1.58; }
.further-reading li + li { margin-top: .7rem; }
.dataset-note { margin: .65rem 0 0; color: var(--muted); font-size: .84em; line-height: 1.5; }
.callout .callout-label { color: var(--plum); }
@media print {
  .citation-link { color: #174d4c; text-decoration: underline; }
  .reference-note, .dataset-note { color: #343f40; }
}


/* Optional Life Labs and private digital scrapbook */
.pathway-entry { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 30px 0 46px; }
.pathway-entry-card { display: grid; align-content: start; gap: 10px; min-height: 205px; padding: 21px; background: #f1f3eb; border: 1px solid #dbe1d4; border-radius: 9px; }
.pathway-entry-card h2 { margin: 0; color: var(--ink); font-family: var(--serif); font-size: 24px; font-weight: 600; }
.pathway-entry-card p { max-width: 54ch; margin: 0; color: #5f6c66; font-family: var(--serif); font-size: 14px; line-height: 1.6; }
.pathway-entry-card .button-secondary { justify-self: start; margin-top: 3px; }
.pathway-entry-scrapbook { background: #f6efe6; border-color: #eadac4; }
.field-practice-panel { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin: 25px 0 29px; padding: 18px; background: #eef3ee; border: 1px solid #d7e1d6; border-left: 3px solid var(--teal); border-radius: 8px; }
.field-practice-panel h2 { margin: 5px 0 6px; font-family: var(--serif); font-size: 23px; font-weight: 600; }
.field-practice-panel p { max-width: 68ch; margin: 0; color: #5d6a64; font-size: 12px; line-height: 1.6; }
.field-practice-actions, .life-lab-step-actions, .scrapbook-unit-actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-top: 15px; }
.field-practice-panel .field-practice-actions { flex: none; margin: 0; }
.life-lab-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 24px 0 28px; }
.life-lab-card { display: grid; align-content: start; gap: 10px; padding: 18px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 9px; box-shadow: var(--shadow-soft); }
.life-lab-card-top { display: flex; justify-content: space-between; gap: 10px; align-items: center; color: var(--teal-dark); font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.life-lab-index { display: grid; width: 31px; height: 31px; place-items: center; color: #82623b; background: #f5efe2; border: 1px solid #e8ddc8; border-radius: 50%; font-family: var(--serif); font-size: 14px; }
.life-lab-card h2 { margin: 0; font-family: var(--serif); font-size: 22px; font-weight: 600; }
.life-lab-card > p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.life-lab-card .life-lab-question { color: #435c58; font-family: var(--serif); font-size: 14px; }
.life-lab-chapters { display: grid; gap: 4px; padding: 9px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.life-lab-chapters .inline-link { font-size: 11px; }
.life-lab-week-steps { display: grid; gap: 10px; margin: 0; padding-left: 22px; }
.life-lab-week-steps li { padding-left: 2px; color: #52615e; font-size: 11px; line-height: 1.55; }
.life-lab-week-steps li > strong, .life-lab-week-steps li > span { display: block; }
.life-lab-week-steps li > strong { color: var(--ink); }
.life-lab-week-steps li > span { margin-top: 3px; }
.life-lab-card > .button-primary { justify-self: start; margin-top: 2px; }
.text-button { padding: 0; color: var(--teal-dark); background: none; border: 0; cursor: pointer; font: inherit; font-size: 11px; font-weight: 750; text-align: left; text-decoration: underline; text-underline-offset: .16em; }
.text-button:hover { color: var(--plum); }
.text-button:focus-visible, .portfolio-field :focus-visible { outline: 3px solid #c98f46; outline-offset: 2px; }
.life-lab-step-panel, .life-lab-workspace { margin: 27px 0; }
.life-lab-step-list { display: grid; gap: 12px; margin: 15px 0; padding: 0; list-style: none; counter-reset: life-lab-step; }
.life-lab-step-list > li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 15px 17px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 8px; counter-increment: life-lab-step; }
.life-lab-step-list h3 { margin: 4px 0; font-family: var(--serif); font-size: 18px; font-weight: 600; }
.life-lab-step-list p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.life-lab-step-list .life-lab-step-actions { display: grid; justify-items: start; margin: 0; }
.portfolio-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 15px 0; }
.portfolio-field { display: grid; gap: 6px; color: #425956; font-size: 11px; font-weight: 750; }
.portfolio-field > span { line-height: 1.45; }
.portfolio-field textarea, .portfolio-field select { width: 100%; min-height: 40px; padding: 9px 10px; color: var(--ink); background: #fffef9; border: 1px solid #d5ddd6; border-radius: 6px; font: 13px/1.55 var(--sans); font-weight: 400; }
.portfolio-field textarea { resize: vertical; }
.portfolio-field textarea::placeholder { color: #84908b; opacity: 1; }
.portfolio-field textarea:focus, .portfolio-field select:focus { border-color: var(--teal); outline: 2px solid rgba(22,122,120,.17); }
.portfolio-save-status, .portfolio-backup-status { min-height: 1.4em; margin: 8px 0 0; color: #64736d; font-size: 10px; line-height: 1.5; }
.portfolio-backup-panel { margin: 26px 0 15px; padding: 18px; background: #f6f2e8; border: 1px solid #e8dcc5; border-radius: 9px; }
.portfolio-backup-panel h2 { margin: 4px 0 6px; font-family: var(--serif); font-size: 22px; font-weight: 600; }
.portfolio-backup-panel p { max-width: 75ch; margin: 0; color: #655f51; font-size: 11px; line-height: 1.6; }
.portfolio-backup-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 12px; }
.scrapbook-unit-group { margin: 31px 0; }
.scrapbook-week-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.scrapbook-week-card { display: grid; align-content: start; gap: 7px; min-height: 195px; padding: 15px; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 8px; }
.scrapbook-week-card h3 { margin: 0; font-family: var(--serif); font-size: 18px; font-weight: 600; }
.scrapbook-week-card p, .scrapbook-week-card small { margin: 0; color: #5d6b66; font-size: 11px; line-height: 1.55; }
.scrapbook-week-card small { color: #7b7568; font-size: 10px; }
.scrapbook-week-card .button-secondary { justify-self: start; align-self: end; margin-top: 4px; }
.scrapbook-unit-actions { margin-top: 8px; }
.scrapbook-editor-layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(280px, .88fr); gap: 18px; align-items: start; margin: 20px 0 24px; }
.scrapbook-editor { display: grid; gap: 12px; padding: 17px; background: #f7f5ee; border: 1px solid var(--line); border-radius: 9px; }
.scrapbook-editor .section-heading { margin: 0 0 3px; }
.scrapbook-editor .section-heading h2 { font-size: 22px; }
.scrapbook-editor .portfolio-field { margin: 0; }
.scrapbook-style-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.scrapbook-page-preview { --preview-accent: var(--teal); position: sticky; top: 28px; min-height: 520px; overflow: hidden; padding: 22px; color: #334c49; background: #fffdf8; border: 1px solid #d9dfd5; border-top: 4px solid var(--preview-accent); border-radius: 8px; box-shadow: 0 10px 30px rgba(49,62,52,.08); }
.scrapbook-page-preview[data-accent="moss"] { --preview-accent: #738b5e; }
.scrapbook-page-preview[data-accent="amber"] { --preview-accent: #bd8545; }
.scrapbook-page-preview[data-accent="plum"] { --preview-accent: #806589; }
.scrapbook-preview-topline { display: flex; justify-content: space-between; gap: 8px; color: #78817a; font-size: 8px; font-weight: 800; letter-spacing: .14em; }
.scrapbook-preview-mark { color: var(--preview-accent); font-family: var(--serif); font-size: 23px; line-height: .7; }
.scrapbook-preview-motif { position: relative; display: flex; justify-content: space-around; align-items: center; height: 105px; margin: 16px 0 18px; overflow: hidden; background: linear-gradient(135deg, rgba(232,239,228,.8), rgba(247,239,220,.5)); border: 1px solid #e3e3d7; border-radius: 6px; }
.scrapbook-preview-motif::before { position: absolute; top: 50%; right: 12%; left: 12%; height: 1px; background: rgba(77,109,97,.45); content: ""; }
.scrapbook-preview-motif i { z-index: 1; display: block; width: 17px; height: 17px; background: var(--preview-accent); border: 4px solid #fffdf8; border-radius: 50%; box-shadow: 0 0 0 1px rgba(54,82,72,.2); }
.scrapbook-page-preview[data-layout="timeline"] .scrapbook-preview-motif::before { top: 70%; right: 8%; left: 8%; }
.scrapbook-page-preview[data-layout="path"] .scrapbook-preview-motif::before { top: 49%; right: 15%; left: 15%; height: 32px; background: none; border: 1px dashed rgba(77,109,97,.55); border-top: 0; border-radius: 0 0 50% 50%; transform: rotate(-7deg); }
.scrapbook-page-preview[data-layout="collage"] .scrapbook-preview-motif { justify-content: space-evenly; background: repeating-linear-gradient(135deg, #f5f0e4 0 20px, #edf2eb 20px 40px); }
.scrapbook-page-preview[data-layout="field-note"] .scrapbook-preview-motif i:nth-child(2) { transform: translateY(-11px); }
.scrapbook-preview-term { margin: 0 0 7px; color: var(--preview-accent); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.scrapbook-page-preview h2 { margin: 0 0 9px; color: #304a46; font-family: var(--serif); font-size: 25px; font-weight: 600; line-height: 1.18; }
.scrapbook-preview-note { min-height: 52px; margin: 0; color: #566762; font-family: var(--serif); font-size: 13px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.scrapbook-preview-artifact, .scrapbook-preview-reflection { margin-top: 15px; padding: 10px 11px; background: #f4f4ec; border-left: 2px solid var(--preview-accent); }
.scrapbook-preview-artifact > span, .scrapbook-preview-reflection > span { color: #6f7c73; font-size: 8px; font-weight: 800; letter-spacing: .1em; }
.scrapbook-preview-artifact p, .scrapbook-preview-reflection p { margin: 5px 0 0; color: #4f625d; font-family: var(--serif); font-size: 11px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.scrapbook-preview-footer { margin: 20px 0 0; padding-top: 9px; color: #81887f; border-top: 1px solid #e5e3d8; font-size: 8px; font-weight: 750; letter-spacing: .12em; }
.scrapbook-page-nav { display: flex; justify-content: space-between; gap: 12px; margin: 18px 0; padding: 12px 0; border-top: 1px solid var(--line); }
.scrapbook-page-nav > span { color: #7a837d; font-size: 10px; }
@media (max-width: 820px) {
  .scrapbook-editor-layout { grid-template-columns: 1fr; }
  .scrapbook-page-preview { position: static; min-height: 430px; }
  .field-practice-panel { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 650px) {
  .pathway-entry, .life-lab-grid, .scrapbook-week-grid, .portfolio-form-grid { grid-template-columns: 1fr; }
  .field-practice-panel { padding: 14px; }
  .life-lab-step-list > li { grid-template-columns: 1fr; }
  .life-lab-step-list .life-lab-step-actions { grid-template-columns: 1fr; }
  .scrapbook-page-nav { flex-direction: column; }
  .scrapbook-style-controls { grid-template-columns: 1fr; }
  .scrapbook-page-preview { padding: 16px; }
}
@media print {
  .pathway-entry, .field-practice-panel, .life-lab-week-steps .text-button, .life-lab-step-actions, .portfolio-backup-actions, .scrapbook-editor, .scrapbook-page-nav { display: none !important; }
  .life-lab-card, .scrapbook-week-card, .scrapbook-page-preview { break-inside: avoid; box-shadow: none; }
  .scrapbook-page-preview { position: static; min-height: 0; }
}


/* LDU 2027 annual program */
.ldu-course-page .page-header h1 { max-width: 14ch; }
.ldu-course-page .page-header h1 em { color: var(--teal); }
.ldu-status-banner { border-left: 4px solid var(--amber); }
.ldu-architecture { display: flex; flex-wrap: wrap; align-items: stretch; justify-content: center; gap: 8px; margin: 1.5rem 0 .5rem; padding: 1rem; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-soft); }
.ldu-architecture > div { display: grid; flex: 1 1 105px; min-width: 90px; align-content: center; gap: .3rem; padding: .9rem .65rem; border: 1px solid var(--line); border-radius: 8px; background: var(--paper-bright); text-align: center; }
.ldu-architecture > div strong { color: var(--teal-dark); font: 600 1.8rem/1 var(--serif); }
.ldu-architecture > div span { font-size: .76rem; line-height: 1.3; }
.ldu-architecture > .ldu-total { border-color: var(--teal); background: var(--teal-pale); }
.ldu-architecture > b { align-self: center; color: var(--muted); }
.ldu-count-note, .ldu-pdf-caveat { color: var(--muted); font-size: .9rem; }
.ldu-download-row { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.4rem 0 .75rem; }
.ldu-download-row > a { display: inline-flex; align-items: center; text-decoration: none; }
.ldu-media-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0 1.6rem; }
.ldu-media-summary > span { padding: .9rem; border: 1px solid var(--line); border-radius: 9px; background: var(--paper-soft); font-size: .88rem; }
.ldu-media-summary strong { display: block; margin-bottom: .3rem; color: var(--teal-dark); font: 600 1.15rem var(--serif); }
.ldu-week-grid, .ldu-quarter-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; margin: 1rem 0 1.6rem; }
.ldu-week-card, .ldu-quarter-card { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 10px; background: var(--paper-bright); }
.ldu-week-card.is-pilot { border-color: var(--teal); box-shadow: inset 3px 0 0 var(--teal); }
.ldu-week-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem .8rem; color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.ldu-week-card h3, .ldu-quarter-card h3 { margin: .65rem 0 .45rem; font: 600 1.12rem/1.3 var(--serif); }
.ldu-week-card h4 { margin: .6rem 0; font: 600 1rem/1.35 var(--serif); }
.ldu-week-card p, .ldu-quarter-card p { margin: .4rem 0; font-size: .9rem; line-height: 1.55; }
.ldu-media-status { display: grid; gap: .55rem; margin-top: .8rem; }
.ldu-deck-link, .ldu-script-link { width: fit-content; color: var(--teal-dark); font-weight: 650; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ldu-status-pending { display: block; color: var(--muted); font-size: .82rem; line-height: 1.45; }
.ldu-unit-list { display: grid; gap: .75rem; margin: 1rem 0 1.7rem; }
.ldu-unit { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--paper-bright); }
.ldu-unit > summary { display: grid; grid-template-columns: minmax(130px, .55fr) 1.5fr minmax(150px, .8fr); align-items: center; gap: .5rem 1rem; padding: 1rem; cursor: pointer; list-style: none; }
.ldu-unit > summary::-webkit-details-marker { display: none; }
.ldu-unit > summary::after { content: "+"; justify-self: end; grid-column: 3; grid-row: 1; color: var(--teal-dark); font-size: 1.3rem; }
.ldu-unit[open] > summary::after { content: "−"; }
.ldu-unit > summary strong { grid-column: 2; grid-row: 1; font: 600 1.05rem/1.35 var(--serif); }
.ldu-unit-number { color: var(--teal-dark); font-size: .68rem; font-weight: 750; letter-spacing: .06em; }
.ldu-unit-question { grid-column: 3; grid-row: 1; padding-right: 1.4rem; color: var(--muted); font-size: .82rem; }
.ldu-unit-body { padding: 0 1rem 1rem; border-top: 1px solid var(--line); }
.ldu-kickoff { margin: .9rem 0; color: var(--muted); font-size: .88rem; }
.ldu-week-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin: 0; padding: 0; list-style: none; }
.ldu-week-list .ldu-week-card { padding: .85rem; }
.ldu-postwork-list, .ldu-outcome-list, .ldu-track-list { padding-left: 1.35rem; }
.ldu-postwork-list li, .ldu-outcome-list li, .ldu-track-list li { margin: .55rem 0; line-height: 1.55; }
@media (max-width: 760px) {
  .ldu-week-grid, .ldu-quarter-grid, .ldu-media-summary, .ldu-week-list { grid-template-columns: 1fr; }
  .ldu-unit > summary { grid-template-columns: 1fr auto; }
  .ldu-unit > summary strong { grid-column: 1; grid-row: 2; }
  .ldu-unit-number { grid-column: 1; grid-row: 1; }
  .ldu-unit-question { grid-column: 1; grid-row: 3; padding-right: 0; }
  .ldu-unit > summary::after { grid-column: 2; grid-row: 1; }
}
@media print {
  .ldu-download-row, .ldu-deck-link, .ldu-script-link { display: none !important; }
  .ldu-unit > summary::after { display: none; }
  .ldu-unit:not([open]) > .ldu-unit-body { display: block !important; }
  .ldu-week-card, .ldu-quarter-card { break-inside: avoid; }
}

/* Separate unit prompt text from the disclosure icon. */
.ldu-unit > summary { grid-template-columns: minmax(130px, .55fr) 1.5fr minmax(150px, .8fr) 24px; }
.ldu-unit > summary::after { grid-column: 4; }
@media (max-width: 760px) {
  .ldu-unit > summary { grid-template-columns: 1fr auto; }
  .ldu-unit > summary::after { grid-column: 2; }
}
