/* FACTREE Maps Navigation Trail v10: release marker. */
:root {
  --ink: #211b37;
  --ink-soft: #514967;
  --muted: #7b748d;
  --paper: #f8f5fb;
  --paper-warm: #f5f1e9;
  --card: #fffefe;
  --purple: #51228a;
  --purple-dark: #2b175e;
  --magenta: #b92a90;
  --lavender: #eee6f7;
  --lavender-soft: #f7f2fb;
  --plum: #6f275f;
  --gold: #c8963e;
  --line: #ded8e7;
  --green: #32745c;
  --shadow: 0 22px 70px rgba(42, 22, 83, .09);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 95% 4%, rgba(185, 42, 144, .1), transparent 28rem),
    radial-gradient(circle at 4% 22%, rgba(81, 34, 138, .07), transparent 30rem),
    var(--paper);
  color: var(--ink);
  font: 16px/1.65 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, select, input { font: inherit; }
button { color: inherit; }
button:focus-visible, select:focus-visible, input:focus-visible,
a:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid rgba(116, 52, 168, .25);
  outline-offset: 3px;
}
[hidden] { display: none !important; }

.site-header {
  min-height: 78px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  padding: 10px max(22px, 5vw);
  position: sticky;
  top: 0;
  z-index: 30;
  border-bottom: 1px solid rgba(91, 69, 116, .16);
  background: rgba(248, 245, 251, .9);
  backdrop-filter: blur(17px);
}
.brand {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--purple-dark);
  font: 800 19px/1 Georgia, serif;
  letter-spacing: .15em;
  cursor: pointer;
}
.brand img { width: 43px; height: 43px; object-fit: contain; }
.mode-switch {
  display: flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 255, 255, .62);
}
.mode-button {
  border: 0;
  border-radius: 999px;
  padding: 9px 17px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
}
.mode-button.active { background: white; color: var(--purple-dark); box-shadow: 0 3px 13px rgba(43, 23, 94, .09); }
.header-tools { justify-self: end; display: flex; align-items: center; gap: 18px; }
.search-toggle { border: 0; padding: 7px; background: none; color: var(--ink-soft); cursor: pointer; }
.search-toggle span { margin-right: 4px; font-size: 20px; }
.account-toggle { min-height: 36px; border: 1px solid #bca8c8; border-radius: 999px; padding: 7px 13px; background: rgba(255,255,255,.72); color: var(--purple-dark); font-size: 12px; font-weight: 780; cursor: pointer; }
.account-toggle.signed-in { border-color: #a7c9b8; background: #f2faf6; color: var(--green); }
.kids-toggle { min-height: 36px; border: 1px solid #bca8c8; border-radius: 999px; padding: 7px 13px; background: rgba(255,255,255,.72); color: var(--purple-dark); font-size: 12px; font-weight: 780; cursor: pointer; }
.kids-toggle.active { border-color: #78ad91; background: #eaf7f0; color: #17653d; box-shadow: 0 4px 14px rgba(38,117,77,.12); }
.device-state { margin: 0; color: var(--muted); font-size: 12px; }
.device-state span { width: 7px; height: 7px; display: inline-block; margin-right: 6px; border-radius: 50%; background: #62ad86; }

.search-panel { position: fixed; inset: 78px 0 0; z-index: 25; overflow-y: auto; background: rgba(31, 21, 54, .35); backdrop-filter: blur(7px); }
.search-inner { max-width: 840px; min-height: 360px; margin: 22px auto; padding: 28px; border-radius: 20px; background: var(--card); box-shadow: 0 30px 100px rgba(28, 13, 55, .24); }
.search-inner > label { display: block; margin-bottom: 7px; color: var(--purple); font-size: 12px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.search-field { display: flex; gap: 10px; }
.search-field input { flex: 1; min-width: 0; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; background: #fbf9fd; color: var(--ink); font-size: 18px; }
.search-results { display: grid; gap: 9px; margin-top: 18px; }
.search-result { display: grid; grid-template-columns: 1fr auto; gap: 20px; padding: 17px; border: 1px solid #e8e2ec; border-radius: 13px; }
.search-result.best-match { border-color: #b89aca; background: #fcf9fd; }
.search-result em { display: inline-block; margin-right: 8px; padding: 2px 7px; border-radius: 999px; background: var(--lavender); color: var(--purple); font-size: 9px; font-style: normal; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.search-result small { color: var(--purple); text-transform: uppercase; letter-spacing: .08em; }
.search-result strong { display: block; font: 21px Georgia, serif; }
.search-result p { margin: 4px 0 0; color: var(--muted); font-size: 14px; }
.search-result > div:last-child { display: flex; align-items: center; gap: 8px; }
.search-message { color: var(--muted); text-align: center; }
.search-suggestion { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 22px; padding: 19px; border: 1px dashed #bca8c8; border-radius: 14px; background: linear-gradient(145deg, #fcfafd, #f5eff8); }
.search-suggestion .eyebrow { margin-bottom: 4px; }
.search-suggestion strong { display: block; color: var(--ink); font: 21px/1.25 Georgia, serif; }
.search-suggestion p:not(.eyebrow) { margin: 5px 0 0; color: var(--muted); font-size: 13px; }

.account-panel { position: fixed; inset: 0; z-index: 80; display: grid; justify-items: end; }
.account-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(29,18,48,.42); backdrop-filter: blur(5px); cursor: default; }
.account-card { width: min(720px, 100%); height: 100%; position: relative; z-index: 1; overflow-y: auto; padding: 64px clamp(24px, 5vw, 46px) 42px; background: linear-gradient(155deg, #fff, #f8f2fb); box-shadow: -24px 0 80px rgba(27,15,48,.22); animation: accountReveal .24s ease; }
@keyframes accountReveal { from { opacity: 0; transform: translateX(18px); } }
.account-close { position: absolute; right: 22px; top: 20px; }
.account-card h2 { margin: 0 0 14px; font-size: clamp(34px, 5vw, 46px); line-height: 1.08; }
.journey-hub-header > p:not(.eyebrow) { max-width: 580px; margin: 0; color: var(--ink-soft); font-size: 16px; }
.journey-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: 9px; margin: 28px 0 22px; }
.journey-stat { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.74); }
.journey-stat strong { display: block; color: var(--purple-dark); font: 30px/1 Georgia, serif; }
.journey-stat span { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.25; }
.journey-resume { margin: 0 0 34px; padding: 22px; border-radius: 18px; background: linear-gradient(125deg, var(--purple-dark), #69267c); color: white; box-shadow: 0 15px 38px rgba(50,24,90,.18); }
.journey-resume .eyebrow { color: #e9bee5; }
.journey-resume h3 { margin: 0 0 7px; color: white; font-size: 27px; line-height: 1.15; }
.journey-resume p:not(.eyebrow) { margin: 0 0 16px; color: #eee7f4; font-size: 14px; }
.journey-resume button { border-color: white; background: white; color: var(--purple-dark); }
.journey-collection { margin: 30px 0; }
.journey-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 10px; }
.journey-section-heading .eyebrow { margin-bottom: 3px; }
.journey-section-heading h3 { margin: 0; font-size: 25px; }
.journey-item-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.journey-item { min-width: 0; min-height: 104px; display: grid; align-content: space-between; gap: 10px; border: 1px solid var(--line); border-radius: 14px; padding: 15px; background: rgba(255,255,255,.78); text-align: left; cursor: pointer; }
.journey-item:hover { border-color: #aa8fbc; box-shadow: 0 8px 20px rgba(50,24,90,.06); transform: translateY(-1px); }
.journey-item small { color: var(--purple); font-size: 9px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.journey-item strong { display: block; font: 19px/1.22 Georgia, serif; overflow-wrap: anywhere; }
.journey-item span { color: var(--muted); font-size: 12px; }
.journey-empty { grid-column: 1 / -1; margin: 0; padding: 18px; border: 1px dashed #cdbed5; border-radius: 14px; color: var(--muted); font-size: 13px; text-align: center; }
.milestone-introduction { margin: -2px 0 13px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.milestone-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.milestone-card { min-width: 0; display: grid; grid-template-columns: auto 1fr; gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.62); color: #82798c; }
.milestone-card > span { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid #c9becf; border-radius: 50%; font-weight: 800; }
.milestone-card small { color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.milestone-card strong { display: block; margin-top: 2px; color: var(--ink-soft); font: 19px/1.2 Georgia, serif; }
.milestone-card p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.milestone-card.unlocked { border-color: #bdd9ca; background: linear-gradient(145deg, #f2faf6, #fff); color: var(--green); }
.milestone-card.unlocked > span { border-color: var(--green); background: var(--green); color: white; }
.milestone-card.unlocked strong { color: var(--green); }
.journey-fresh-start { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 22px; margin: 34px 0; padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.journey-fresh-start strong { font-family: Georgia, serif; font-size: 19px; }
.journey-fresh-start p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.account-continuity-callout { margin-top: 32px; padding: 24px; border: 1px solid #ccb9d7; border-radius: 18px; background: linear-gradient(145deg, #f4ecf8, #fff); }
.account-continuity-callout.signed-in { border-color: #c7dbd0; background: linear-gradient(145deg, #f1f9f5, #fff); }
.account-continuity-callout h3 { margin: 0 0 7px; font-size: 27px; }
.account-continuity-callout > div > p:not(.eyebrow), .account-continuity-callout > p { color: var(--ink-soft); }
.account-identity-heading { display: grid; gap: 5px; }
.account-name-line { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 12px; }
.account-name-line h3 { margin: 0; }
.account-type-badge { display: inline-flex; align-items: center; min-height: 25px; padding: 4px 9px; border: 1px solid #cdb9da; border-radius: 999px; background: #f7f0fa; color: var(--purple-dark); font-size: 10px; font-weight: 820; letter-spacing: .07em; text-transform: uppercase; }
.account-summary-email { margin: 0; overflow-wrap: anywhere; color: var(--muted) !important; font-size: 12px; }
.account-primary { width: 100%; margin: 10px 0; }
.account-entry-actions { display: grid; gap: 6px; margin: 10px 0; }
.account-entry-actions .account-primary { margin: 0; }
.account-card small { display: block; color: var(--muted); line-height: 1.45; }
.account-profile-card { display: grid; gap: 14px; margin: 24px 0; padding: 19px; border: 1px solid #d7c7e0; border-radius: 15px; background: #fcf9fd; }
.account-profile-card h4 { margin: 2px 0 5px; color: var(--purple-dark); font: 700 21px/1.3 Georgia,serif; }
.account-profile-card > div > p:not(.eyebrow) { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.55; }
.account-profile-card label { display: grid; gap: 7px; color: var(--ink); font-weight: 720; }
.account-profile-card input { width: 100%; border: 1px solid #cfc5d8; border-radius: 11px; padding: 11px 12px; background: white; color: var(--ink); }
.account-profile-card > button { justify-self: start; }
.account-verified-identity { display: grid; gap: 3px; padding: 13px 14px; border-radius: 11px; background: #f2eef7; }
.account-verified-identity span { color: var(--muted); font-size: 11px; font-weight: 760; letter-spacing: .04em; text-transform: uppercase; }
.account-verified-identity strong { overflow-wrap: anywhere; color: var(--purple-dark); }
.account-verified-identity small { margin-top: 3px; }
.account-sync-card { display: grid; grid-template-columns: auto 1fr; gap: 13px; align-items: start; margin: 28px 0; padding: 18px; border: 1px solid #cee0d6; border-radius: 15px; background: #f3faf6; }
.account-sync-card > span { width: 11px; height: 11px; margin-top: 7px; border-radius: 50%; background: #62ad86; box-shadow: 0 0 0 5px rgba(98,173,134,.12); }
.account-sync-card strong { color: var(--green); }
.account-sync-card p { margin: 2px 0 0; color: var(--ink-soft); font-size: 13px; }
.account-verification-card { display: grid; gap: 10px; margin: 24px 0 6px; padding: 18px; border: 1px solid #dfc98f; border-radius: 15px; background: #fffaf0; }
.account-verification-card[hidden] { display: none; }
.account-verification-card strong { color: #71510f; }
.account-verification-card p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.55; }
.account-verification-card .account-actions { margin-top: 6px; }
.account-deletion-pending-card { display: grid; gap: 10px; margin: 24px 0 6px; padding: 18px; border: 1px solid #e1b4bd; border-radius: 15px; background: #fff6f7; }
.account-deletion-pending-card[hidden] { display: none; }
.account-deletion-pending-card strong { color: #8b263b; }
.account-deletion-pending-card p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.55; }
.account-deletion-pending-card .account-actions { margin-top: 6px; }
.account-actions { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.account-sign-out { min-height: 44px; padding: 9px 16px; }
.account-link-methods { display: grid; gap: 8px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #dce8e1; }
.account-link-methods > p { margin: 0; color: var(--muted); font-size: 13px; }
.account-link-methods > p strong { color: var(--ink-soft); }
.account-link-methods > button { justify-self: start; margin-top: 6px; }
.account-link-confirmation { display: grid; gap: 14px; margin-top: 10px; padding: 16px; border: 1px solid #d8c5e3; border-radius: 13px; background: #faf7fc; }
.account-link-confirmation > p { margin: 0; color: var(--muted); font-size: 12px; }
.account-link-confirmation > div { display: flex; align-items: center; gap: 14px; }
.account-link-choice { min-width: 0; display: grid; gap: 10px; margin: 0; border: 0; padding: 0; }
.account-link-choice legend { margin-bottom: 10px; color: var(--ink-soft); font-size: 13px; font-weight: 760; }
.account-link-choice label { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 9px; color: var(--ink-soft); font-size: 13px; line-height: 1.45; cursor: pointer; }
.account-link-choice input[type="radio"] { width: 16px; height: 16px; margin: 2px 0 0; padding: 0; accent-color: var(--purple); cursor: pointer; }
.account-link-result { margin-top: 10px; padding: 15px 16px; border: 1px solid #b9d9c7; border-radius: 13px; background: #f1faf5; color: var(--green); }
.account-link-result strong { display: block; }
.account-link-result p { margin: 4px 0 0; color: var(--ink-soft); font-size: 13px; }
.account-link-result.error { border-color: #e1b4bd; background: #fff6f7; color: #8b263b; }
.account-settings { margin-top: 30px; border: 1px solid #d6e2db; border-radius: 15px; background: rgba(255,255,255,.72); overflow: hidden; }
.account-settings > summary { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 17px 18px; color: var(--ink-soft); cursor: pointer; list-style: none; }
.account-settings > summary::-webkit-details-marker { display: none; }
.account-settings > summary::after { content: '›'; grid-column: 3; color: var(--purple); font-size: 24px; line-height: 1; transform: rotate(90deg); transition: transform .18s ease; }
.account-settings[open] > summary::after { transform: rotate(-90deg); }
.account-settings > summary > span:nth-child(2) { display: grid; gap: 2px; }
.account-settings > summary strong { color: var(--purple-dark); }
.account-settings > summary small { color: var(--muted); font-size: 11px; }
.account-settings-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #eee4f4; color: var(--purple-dark); font-size: 17px; }
.account-settings-body { display: grid; border-top: 1px solid #dce8e1; }
.account-settings-section { display: grid; gap: 11px; padding: 20px 18px; }
.account-settings-section + .account-settings-section { border-top: 1px solid #e5ebe7; }
.account-settings-section h4 { margin: 0; color: var(--purple-dark); font: 700 19px/1.3 Georgia,serif; }
.account-settings-section > p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.account-settings-profile-form { display: grid; gap: 11px; }
.account-settings-profile-form label { display: grid; gap: 7px; color: var(--ink); font-weight: 720; }
.account-settings-profile-form input { width: 100%; border: 1px solid #cfc5d8; border-radius: 11px; padding: 11px 12px; background: white; color: var(--ink); }
.account-settings-profile-form > button, .account-settings-section > button { justify-self: start; }
.account-privacy { margin: 0; border-top: 1px solid #e5ebe7; }
.account-privacy > button { margin: 2px 10px 2px 0; }
.danger-text { color: #9a3045; }
.account-delete-confirmation { display: grid; gap: 10px; margin-top: 14px; padding: 16px; border: 1px solid #e1b4bd; border-radius: 13px; background: #fff6f7; }
.account-delete-confirmation label { color: #71303d; font-size: 12px; }
.account-delete-confirmation input { width: 100%; border: 1px solid #d7a7b1; border-radius: 9px; padding: 10px; background: white; }
.account-delete-confirmation > div { display: flex; align-items: center; gap: 14px; }
.danger-button { min-height: 43px; border: 1px solid #952d42; border-radius: 10px; padding: 8px 15px; background: #952d42; color: white; font-weight: 760; cursor: pointer; }
.account-status { min-height: 24px; margin: 24px 0 0; color: var(--muted); font-size: 13px; }
.path-overview-actions { display: grid; align-content: start; gap: 10px; }
.path-overview-actions > button { min-height: 42px; }

.journey-rail { width: 33px; position: fixed; right: max(12px, 2vw); top: 50%; z-index: 15; transform: translateY(-50%); padding: 9px 6px; border: 1px solid rgba(91, 68, 117, .17); border-radius: 999px; background: rgba(255, 255, 255, .76); backdrop-filter: blur(8px); }
.journey-rail > button { width: 19px; height: 19px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--lavender); color: var(--purple); cursor: pointer; }
.journey-rail > div { display: grid; justify-items: center; gap: 7px; margin-top: 9px; }
.journey-rail [data-journey-index] { width: 7px; height: 7px; border: 0; border-radius: 50%; padding: 0; background: #b7a9c8; cursor: pointer; }
.journey-rail [data-journey-index].active { width: 10px; height: 10px; background: var(--magenta); }

main { max-width: 1140px; margin: auto; padding: clamp(28px, 5vw, 58px) 24px 100px; }
.view { animation: reveal .28s ease; }
@keyframes reveal { from { opacity: 0; transform: translateY(5px); } }
.eyebrow, .layer-label { margin: 0 0 10px; color: var(--purple); font-size: 11px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 500; }
h1 { max-width: 830px; margin: .12em 0 .32em; font-size: clamp(45px, 7vw, 78px); line-height: 1.02; letter-spacing: -.035em; }
.hero-copy { max-width: 760px; margin: 0; color: var(--ink-soft); font-size: clamp(17px, 2vw, 21px); }
.hero-copy p { margin: 0; }
.hero-copy p + p { margin-top: 9px; }
.hero-copy strong { color: var(--ink); font-weight: 720; }

.discover-hero { display: grid; grid-template-columns: minmax(0, 1fr) 155px; align-items: center; gap: 34px; }
.discover-hero h1 { max-width: 760px; font-size: clamp(39px, 5.4vw, 62px); }
.discover-hero .hero-copy { font-size: clamp(16px, 1.7vw, 19px); }
.fact-page-context { max-width: 830px; margin: .12em 0 .32em; color: var(--ink); font: 500 clamp(39px, 5.4vw, 62px)/1.02 Georgia, "Times New Roman", serif; letter-spacing: -.035em; }
.tree-orbit { width: 150px; height: 150px; position: relative; display: grid; place-items: center; }
.tree-orbit img { width: 122px; position: relative; z-index: 2; filter: drop-shadow(0 15px 24px rgba(79, 29, 124, .15)); }
.tree-orbit span { position: absolute; border: 1px solid rgba(130, 59, 160, .13); border-radius: 50%; animation: orbit 15s linear infinite; }
.tree-orbit span:nth-child(1) { width: 142px; height: 142px; }
.tree-orbit span:nth-child(2) { width: 116px; height: 116px; animation-direction: reverse; }
.tree-orbit span:nth-child(3) { width: 90px; height: 90px; }
@keyframes orbit { to { transform: rotate(360deg); } }
.discovery-chooser { margin: 25px 0 12px; }
.control-label { margin: 0 0 10px; color: var(--muted); font-size: 11px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.discovery-subjects { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.discovery-subjects button { flex: 0 0 calc((100% - 56px) / 8); min-height: 40px; border: 1px solid var(--line); border-radius: 999px; padding: 7px 12px; background: rgba(255,255,255,.67); color: var(--ink-soft); font-size: 13px; font-weight: 680; cursor: pointer; }
.discovery-subjects button:hover { border-color: #ad92c0; color: var(--purple); }
.discovery-subjects button.selected { border-color: var(--purple); background: var(--purple); color: white; box-shadow: 0 6px 16px rgba(81,34,138,.15); }
.selection-summary { margin: 10px 2px 0; color: var(--muted); font-size: 13px; }
.inline-search { margin: 17px 0 22px; }
.inline-search > label { display: block; margin: 0 0 7px 2px; color: var(--muted); font-size: 11px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.inline-search-field { display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 13px; padding: 0 16px; background: white; box-shadow: 0 8px 25px rgba(42,22,83,.045); }
.inline-search-field span { color: var(--purple); font-size: 24px; }
.inline-search-field input { width: 100%; min-height: 54px; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 17px; }
.discovery-launch { min-height: 205px; display: grid; place-items: center; align-content: center; margin: 22px auto 0; padding: 30px; border: 1px solid rgba(100, 65, 133, .2); border-radius: 24px; background: linear-gradient(145deg, rgba(255,255,255,.91), rgba(245,237,249,.9)); box-shadow: var(--shadow); text-align: center; }
.discovery-launch h2 { margin: 0; font-size: clamp(28px, 3.5vw, 39px); line-height: 1.12; }
.discovery-launch > p:not(.eyebrow) { max-width: 610px; margin: 9px auto 20px; color: var(--ink-soft); }
.launch-button { min-width: 220px; min-height: 58px; font-size: 18px; }
.discovery-next { max-width: 920px; margin: 72px auto 0; padding: 35px; border-top: 1px solid var(--line); text-align: center; }
.discovery-next p { margin: 0 0 13px; color: var(--muted); }
.kids-card .kids-hook { margin: 0 0 20px; color: var(--ink-soft); font-size: 18px; }
.kids-depth-switch { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 17px; }
.kids-depth-switch button { border: 1px solid var(--line); border-radius: 999px; padding: 8px 12px; background: white; color: var(--purple-dark); cursor: pointer; }
.kids-depth-switch button.active { border-color: var(--green); background: #eaf7f0; color: #17653d; }
.kids-depth-copy { padding: 19px; border-left: 4px solid #79af92; border-radius: 5px 14px 14px 5px; background: #f4faf7; }
.kids-depth-copy .layer-label { color: #17653d; }
.kids-challenge { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.kids-challenge summary { color: var(--purple-dark); font-weight: 760; cursor: pointer; }
.kids-private-status { margin: 12px 0 0; color: var(--muted); font-size: 12px; }
.fact-subscription { max-width: 920px; display: grid; grid-template-columns: minmax(0, .9fr) minmax(340px, 1.1fr); gap: clamp(28px, 5vw, 58px); align-items: start; margin: 74px auto 20px; padding: clamp(28px, 5vw, 48px); border: 1px solid #d6c9df; border-radius: 22px; background: linear-gradient(145deg, #f1e9f7, #fffdfd 60%); box-shadow: 0 18px 55px rgba(50,30,75,.07); }
.subscription-close { grid-column: 1 / -1; justify-self: end; margin-bottom: calc(-1 * clamp(16px, 3vw, 28px)); color: var(--muted); font-size: 12px; }
.subscription-close:hover { color: var(--purple); }
.fact-subscription-copy h2 { margin: 4px 0 12px; font-size: clamp(30px, 4vw, 42px); line-height: 1.08; }
.fact-subscription-copy > p:not(.eyebrow) { color: var(--ink-soft); }
.subscription-preview-notice { padding: 10px 12px; border: 1px solid #d7c6a4; border-radius: 10px; background: #fcf6e8; color: #75551c !important; font-size: 13px; }
.fact-subscription-form { display: grid; gap: 16px; }
.fact-subscription-form > label:not(.check-row) { display: grid; gap: 6px; color: var(--ink-soft); font-size: 12px; font-weight: 800; letter-spacing: .05em; }
.fact-subscription-form input[type="email"], .fact-subscription-form select { width: 100%; min-height: 48px; border: 1px solid #cfc4d7; border-radius: 11px; padding: 10px 13px; background: white; color: var(--ink); font-weight: 500; letter-spacing: 0; }
.fact-subscription-form fieldset { min-width: 0; margin: 0; border: 0; padding: 0; }
.fact-subscription-form legend { color: var(--ink-soft); font-size: 12px; font-weight: 800; letter-spacing: .05em; }
.field-help { margin: 3px 0 9px; color: var(--muted); font-size: 12px; }
.subscription-categories { display: flex; flex-wrap: wrap; gap: 6px; }
.subscription-categories button { border: 1px solid #d0c4d9; border-radius: 999px; padding: 6px 10px; background: white; color: var(--ink-soft); font-size: 12px; cursor: pointer; }
.subscription-categories button.selected { border-color: var(--purple); background: var(--purple); color: white; }
.check-row { display: flex; align-items: flex-start; gap: 9px; color: var(--ink-soft); font-size: 13px; line-height: 1.45; }
.check-row input { margin-top: 3px; accent-color: var(--purple); }
.subscription-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.subscription-status { min-height: 1.5em; margin: -3px 0 0; color: var(--green); font-size: 13px; }
.subscription-unsubscribe-card { grid-column: 1 / -1; width: min(560px, 100%); justify-self: center; display: grid; justify-items: center; gap: 12px; padding: clamp(26px, 5vw, 42px); border: 1px solid #d6c9df; border-radius: 18px; background: rgba(255,255,255,.88); text-align: center; }
.subscription-unsubscribe-card h3 { margin: 0; color: var(--purple-dark); font: clamp(28px, 4vw, 38px)/1.1 Georgia, serif; }
.subscription-unsubscribe-card > p:not(.eyebrow) { max-width: 470px; margin: 0; color: var(--ink-soft); }
.subscription-unsubscribe-card.success { border-color: #b9d8c8; background: #f4fbf7; }
.subscription-unsubscribe-card.success h3 { color: var(--green); }
.subscription-unsubscribe-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: var(--lavender); color: var(--purple); font-size: 24px; font-weight: 850; }
.subscription-unsubscribe-card.success .subscription-unsubscribe-icon { background: #dff2e8; color: var(--green); }
.subscription-unsubscribe-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 6px; }
.journey-summary { min-height: 24px; margin: 20px auto 18px; max-width: 920px; display: flex; align-items: center; justify-content: space-between; gap: 18px; color: var(--muted); font-size: 13px; }
.journey-summary[hidden] { display: none; }
.journey-summary p { margin: 0; }
.journey-summary .text-button { flex: 0 0 auto; color: var(--muted); font-size: 12px; }
.journey-summary .text-button:hover { color: var(--purple); }

.primary, .secondary, .full-path-button {
  min-height: 50px;
  border: 1px solid var(--purple);
  border-radius: 12px;
  padding: 11px 21px;
  background: var(--purple);
  color: white;
  font-weight: 780;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, opacity .18s ease;
}
.primary:hover { background: var(--purple-dark); transform: translateY(-1px); }
.primary.playful { background: linear-gradient(125deg, var(--purple), var(--magenta)); border: 0; box-shadow: 0 11px 27px rgba(129, 38, 139, .21); }
.secondary { border-color: var(--line); background: white; color: var(--purple-dark); }
.text-button { border: 0; padding: 8px 3px; background: none; color: var(--purple); font-weight: 750; cursor: pointer; }
.icon-button { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: white; color: var(--muted); font-size: 24px; line-height: 1; cursor: pointer; }
.icon-button.favorite { color: var(--gold); border-color: #dec48e; background: #fffaf0; }
button:disabled { opacity: .55; cursor: wait; }

.card-trail { max-width: 920px; margin: auto; }
.journey-connector { min-height: 90px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 13px; color: var(--muted); font-size: 12px; text-align: center; }
.journey-connector span { height: 1px; background: linear-gradient(90deg, transparent, #cdbfd8); }
.journey-connector span:last-child { background: linear-gradient(90deg, #cdbfd8, transparent); }
.journey-connector p { margin: 0; }
.knowledge-card, .empty-state {
  scroll-margin-top: 102px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: clamp(26px, 5vw, 57px);
  background: var(--card);
  box-shadow: var(--shadow);
  transition: box-shadow .25s ease;
}
.knowledge-card.highlight { box-shadow: 0 0 0 4px rgba(185, 42, 144, .18), var(--shadow); }
.discovery-card { border-top: 4px solid transparent; border-image: linear-gradient(90deg, var(--purple), var(--magenta)) 1; }
.path-card { border-top: 4px solid var(--plum); border-radius: 15px; box-shadow: 0 15px 48px rgba(52, 31, 67, .07); }
.card-header { display: flex; align-items: start; justify-content: space-between; gap: 25px; }
.card-collapse-row { display: flex; justify-content: center; width: 100%; padding-top: 18px; }
.card-collapse { display: inline-flex; align-items: center; gap: 6px; border: 0; border-radius: 999px; padding: 5px 10px; background: transparent; color: var(--muted); font-size: 13px; line-height: 1; cursor: pointer; }
.card-collapse span { font-size: 11px; font-weight: 720; letter-spacing: .02em; }
.card-collapse:hover, .card-collapse:focus-visible { background: var(--lavender); color: var(--purple); }
.card-header h1, .card-header h2 { max-width: 770px; margin: 0 0 20px; font-size: clamp(28px, 3.7vw, 39px); line-height: 1.1; letter-spacing: -.02em; }
.seo-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0 0 20px; color: var(--muted); font-size: 12px; }
.seo-breadcrumbs a { color: var(--purple); font-weight: 720; text-decoration: none; }
.seo-breadcrumbs a:hover { text-decoration: underline; }
.seo-breadcrumbs span { color: #a89caf; }
.quick-fact { max-width: none; margin: 4px 0 18px; padding: clamp(24px, 4vw, 38px); border: 1px solid #ddc9e8; border-left: 5px solid var(--magenta); border-radius: 18px; background: linear-gradient(135deg, #fbf6fd, #efe4f6); box-shadow: 0 12px 34px rgba(81, 34, 138, .07); }
.quick-fact .layer-label { color: var(--magenta); }
.fact-lead { color: var(--ink); font: clamp(27px, 3.2vw, 36px)/1.42 Georgia, serif; }
.fact-lead p { margin: 0 0 .72em; }
.fact-lead p:last-child { margin-bottom: 0; }
.hook-layer, .card-step { max-width: 820px; padding: 22px 0; }
.hook-layer { padding: 13px 4px 20px; }
.hook-copy { color: var(--ink-soft); font-size: 17px; line-height: 1.75; }
.hook-copy p, .prose p { margin: 0 0 1em; }
.prose { color: #3f3852; font-size: 17px; line-height: 1.78; }
.understanding-step, .deep-step { margin-top: 12px; border-top: 1px solid var(--line); }
.deep-copy { margin-bottom: 36px; }
.card-actions { display: flex; align-items: center; gap: 16px; width: 100%; margin-top: 10px; }
.card-actions [data-action="share-fact"] { margin-left: auto; }
.share-panel { position: fixed; inset: 0; z-index: 65; display: grid; place-items: center; padding: 20px; }
.share-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(31, 20, 48, .48); cursor: default; }
.share-card { position: relative; z-index: 1; width: min(620px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; padding: 32px; border: 1px solid var(--line); border-radius: 22px; background: var(--card); box-shadow: 0 28px 90px rgba(31, 17, 54, .25); }
.share-card h2, .share-card h3 { margin: 0; color: var(--purple-dark); }
.share-fact-title { margin: 8px 0 20px; color: var(--ink-soft); font: 700 19px/1.45 Georgia,serif; }
.share-link-actions { display: flex; align-items: center; gap: 12px; padding-bottom: 22px; }
.share-email-guest, .share-email-form { padding-top: 22px; border-top: 1px solid var(--line); }
.share-email-guest p, .share-email-form p { color: var(--ink-soft); }
.share-email-form { display: grid; gap: 15px; }
.share-email-form label { display: grid; gap: 7px; color: var(--ink); font-weight: 720; }
.share-email-form input, .share-email-form textarea { width: 100%; border: 1px solid #cfc5d8; border-radius: 12px; padding: 12px 13px; background: white; color: var(--ink); font: inherit; }
.share-sender-identity { display: grid; gap: 3px; padding: 13px 14px; border: 1px solid #ddcde7; border-radius: 12px; background: #f8f2fb; }
.share-sender-identity > span { color: var(--muted); font-size: 10px; font-weight: 780; letter-spacing: .07em; text-transform: uppercase; }
.share-sender-identity > strong { color: var(--purple-dark); font: 700 18px/1.35 Georgia,serif; }
.share-sender-identity > small { color: var(--muted); font-size: 11px; line-height: 1.45; }
.share-email-form textarea { resize: vertical; min-height: 96px; line-height: 1.5; }
.share-email-form label .field-help { justify-self: end; font-size: 11px; font-weight: 550; }
.optional-label { color: var(--muted); font-size: 11px; font-weight: 550; }
.share-clear-recipients { justify-self: start; margin-top: -8px; padding: 2px 0; font-size: 12px; }
.share-success { padding: 24px 0 4px; border-top: 1px solid var(--line); text-align: center; }
.share-success-mark { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 14px; border-radius: 50%; background: #e8f5ec; color: #217a43; font-size: 28px; font-weight: 850; }
.share-success p { color: var(--ink-soft); }
.share-card .account-status[data-state="error"] { min-height: 0; margin-top: 16px; padding: 11px 13px; border: 1px solid #e1b4bd; border-radius: 10px; background: #fff6f7; color: #8b263b; font-weight: 680; }
.loading { color: var(--muted); }

.connections-section { margin-top: 32px; padding-top: 32px; border-top: 1px solid var(--line); }
.connections-heading h3 { margin: 0 0 22px; font-size: 30px; }
.guided-connections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.connection-card { display: grid; gap: 5px; min-height: 145px; padding: 20px; border: 1px solid var(--line); border-radius: 15px; background: #fbf9fd; text-align: left; cursor: pointer; }
.connection-card:hover { border-color: #a787bf; transform: translateY(-1px); }
.connection-card small { color: var(--purple); font-size: 10px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.connection-card strong { font: 22px/1.25 Georgia, serif; }
.connection-card span { color: var(--muted); font-size: 13px; }
.connection-card.continuation { border-color: #ba9bc8; background: #f7eff8; }
.tangent-group { margin-top: 28px; }
.tangent-group > p { margin: 0 0 11px; color: var(--muted); font-size: 12px; font-weight: 750; }
.tangent-group > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 245px), 1fr)); gap: 11px; }
.tangent-group button { min-width: 0; min-height: 104px; display: grid; align-content: start; gap: 7px; border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px 17px; background: linear-gradient(145deg, #fff, #fbf8fc); color: var(--ink); text-align: left; cursor: pointer; box-shadow: 0 6px 18px rgba(48, 25, 66, .035); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; overflow-wrap: anywhere; }
.tangent-group button:hover { border-color: #ad8fc0; box-shadow: 0 9px 23px rgba(48, 25, 66, .075); transform: translateY(-1px); }
.tangent-group button span { font-size: 15px; font-weight: 760; line-height: 1.32; }
.tangent-group button small { color: var(--purple); font-size: 9px; font-weight: 850; letter-spacing: .085em; line-height: 1.35; text-transform: uppercase; }
.tangent-group button em { display: block; width: 100%; margin-top: 2px; padding-top: 8px; border-top: 1px solid #eee7f1; color: var(--muted); font-size: 12px; font-style: normal; line-height: 1.45; }
.full-path-button { width: 100%; display: flex; justify-content: space-between; align-items: center; margin-top: 26px; padding: 17px 20px; border-color: #d3c0da; background: linear-gradient(105deg, #f3ecf7, #fbf8fc); color: var(--purple-dark); text-align: left; }
.full-path-button small { display: block; color: var(--plum); text-transform: uppercase; letter-spacing: .1em; }
.full-path-button strong { display: block; font: 20px Georgia, serif; }
.full-path-button b { font-size: 24px; }
.empty-state { text-align: center; }
.empty-state h2 { font-size: 34px; }
.empty-state p { color: var(--muted); }

.paths-view { max-width: 1040px; margin: auto; }
.paths-intro h1 { font-size: clamp(43px, 6vw, 67px); }
.subject-picker { display: flex; gap: 8px; overflow-x: auto; margin: 32px 0 34px; padding: 3px 2px 13px; scrollbar-width: thin; }
.subject-picker button { flex: 0 0 auto; display: inline-flex; gap: 7px; border: 1px solid var(--line); border-radius: 999px; padding: 9px 14px; background: rgba(255, 255, 255, .65); color: var(--ink-soft); cursor: pointer; }
.subject-picker button.selected { background: var(--purple-dark); border-color: var(--purple-dark); color: white; }
.subject-picker small { color: var(--gold); }
.subject-overview { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 35px; padding: clamp(26px, 5vw, 45px); border: 1px solid var(--line); border-radius: 18px 18px 0 0; background: #fffdfb; }
.title-row { display: flex; align-items: center; gap: 12px; }
.subject-overview h2 { margin: 0; font-size: clamp(39px, 6vw, 60px); line-height: 1.05; }
.subject-progress { margin: 12px 0 0; color: var(--muted); }
.coverage-card { text-align: right; }
.coverage-card strong { display: block; color: var(--plum); font: 41px Georgia, serif; }
.coverage-card small { color: var(--muted); }
.progress-track { height: 7px; overflow: hidden; background: #e5dfe6; }
.progress-track span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--purple-dark), var(--magenta)); transition: width .45s ease; }
.path-entry-notice { margin: 20px 0; padding: 17px 19px; border: 1px solid #d9c7e2; border-radius: 12px; background: #f3ebf7; color: var(--ink-soft); }
.path-entry-notice strong { color: var(--purple-dark); }
.toc { display: grid; gap: 14px; margin-top: 24px; }
.chapter { overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: #fffdfb; box-shadow: 0 9px 31px rgba(50, 30, 65, .045); }
.chapter > header { display: grid; grid-template-columns: 55px 1fr auto; align-items: center; gap: 15px; padding: 21px 24px; border-bottom: 1px solid #e9e4e8; }
.chapter-number { color: var(--gold); font: 27px Georgia, serif; }
.chapter header p { margin: 0; color: var(--muted); font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.chapter header h3 { margin: 1px 0; font-size: 24px; }
.chapter header > span { color: var(--muted); font-size: 12px; }
.chapter ol { margin: 0; padding: 0; list-style: none; }
.chapter li { min-height: 53px; display: grid; grid-template-columns: 27px 1fr auto; align-items: center; gap: 10px; padding: 8px 24px; border-bottom: 1px solid #f0edf0; }
.chapter li:last-child { border-bottom: 0; }
.chapter li i { width: 18px; height: 18px; display: grid; place-items: center; border: 1px solid #bdb4c1; border-radius: 50%; color: white; font-size: 10px; font-style: normal; }
.chapter li.reviewed i { background: var(--green); border-color: var(--green); }
.chapter li button { justify-self: start; border: 0; padding: 6px 0; background: none; font-weight: 720; text-align: left; cursor: pointer; }
.chapter li button:hover { color: var(--purple); }
.chapter li small { color: var(--muted); }
.chapter li.unavailable { color: #958d99; background: #fbfaf8; }
.chapter li.unavailable i { border-style: dashed; }
.chapter li.entry-point { background: #f3eaf7; box-shadow: inset 3px 0 var(--magenta); }
.learning-journey { margin-top: 72px; padding-top: 45px; border-top: 1px solid var(--line); }
.learning-journey > header { max-width: 920px; margin: 0 auto 25px; }
.learning-journey h2 { margin: 0; font-size: 42px; }
.admin-panel { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 20px; margin-top: 55px; padding: 18px; border: 1px dashed #a49aa8; border-radius: 12px; background: #f1eef1; }
.admin-panel p { margin: 2px 0; color: var(--muted); }
.admin-panel .notice { grid-column: 1 / -1; }
.suggestion-admin-panel { margin: 22px 0 0; }
.suggestion-admin-list { grid-column: 1 / -1; display: grid; gap: 20px; padding-top: 17px; border-top: 1px solid #d8d1da; }
.suggestion-admin-list[hidden] { display: none; }
.suggestion-admin-list h3 { margin: 0 0 9px; font-size: 23px; }
.suggestion-admin-rows { display: grid; gap: 7px; }
.suggestion-admin-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 15px; padding: 11px 13px; border: 1px solid #ddd6df; border-radius: 10px; background: rgba(255,255,255,.75); }
.suggestion-admin-row strong { display: block; }
.suggestion-admin-row small { color: var(--muted); }
.suggestion-admin-actions { display: flex; gap: 7px; }
.suggestion-admin-actions button { min-height: 38px; padding: 7px 11px; }
.suggestion-refinement-review, .suggestion-refinement-failure { grid-column: 1 / -1; width: 100%; }
.suggestion-refinement-source { margin: 2px 0 10px; padding: 10px 12px; border-left: 3px solid var(--gold); background: #fbf7f0; }
.suggestion-refinement-source small { display: block; margin-bottom: 3px; font-weight: 750; }
.suggestion-refinement-source strong { font-size: 16px; }
.suggestion-promotion-fields { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(13rem,1.5fr) minmax(10rem,1fr) minmax(10rem,1fr); gap: 10px; width: 100%; margin-top: 5px; }
.suggestion-promotion-fields label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 700; }
.suggestion-promotion-fields input, .suggestion-promotion-fields select, .suggestion-promotion-fields textarea { min-width: 0; width: 100%; border: 1px solid #d8d1da; border-radius: 9px; background: #fff; color: var(--ink); padding: 10px 11px; font: inherit; }
.suggestion-promotion-fields textarea { min-height: 92px; resize: vertical; }
.suggestion-promotion-fields .suggestion-learning-intent { grid-column: span 1; }
.suggestion-category-warning { grid-column: 1 / -1; padding: 9px 11px; border-left: 3px solid #a26818; background: #fff7e8; color: #70480f !important; }
.suggestion-promotion-fields .suggestion-context { grid-column: 1 / -1; }
.suggestion-review-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
.suggestion-refinement-failure { display: grid; justify-items: end; gap: 5px; }
.suggestion-refinement-failure details { max-width: min(100%, 42rem); color: var(--muted); text-align: right; }
.suggestion-refinement-failure summary { cursor: pointer; font-size: 12px; font-weight: 750; }
.suggestion-refinement-failure small { display: block; margin-top: 4px; overflow-wrap: anywhere; }
.queued-label { color: #276b4a !important; overflow-wrap: anywhere; }
.card-moderation-panel { margin: 22px 0 0; }
.card-moderation-form { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(13rem,1fr) minmax(18rem,2fr) auto; align-items: end; gap: 10px; padding-top: 17px; border-top: 1px solid #d8d1da; }
.card-moderation-form label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 700; }
.card-moderation-form input { min-width: 0; width: 100%; border: 1px solid #d8d1da; border-radius: 9px; background: #fff; color: var(--ink); padding: 10px 11px; font: inherit; }
.visibility-impact { overflow-wrap: anywhere; }
.local-collection-label { color: var(--purple-dark) !important; padding: 7px 10px; border-radius: 999px; background: var(--lavender-soft); }
.notice { padding: 12px 15px; border-radius: 9px; background: #efe8f4; color: var(--purple-dark); }

.authored-path-shelf { margin-top: 44px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 18px; }
.section-heading h2, .workbench-heading h2 { margin: 0; font-size: clamp(31px, 4vw, 43px); }
.preview-notice { margin: 0; padding: 6px 11px; border: 1px solid #d8c5e3; border-radius: 999px; background: var(--lavender-soft); color: var(--purple); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.authored-path-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr)); gap: 16px; }
.authored-path-card { display: grid; gap: 24px; padding: clamp(24px, 4vw, 36px); border: 1px solid #d8cce1; border-radius: 20px; background: linear-gradient(145deg, #fffefe, #f6f0f9); box-shadow: var(--shadow); }
.authored-path-card.coming-soon { border-style: dashed; background: linear-gradient(145deg, #fbf9fc, #f1edf3); box-shadow: none; }
.authored-path-card.coming-soon h3 { color: #51485a; }
.authored-path-card button:disabled, .full-path-button:disabled { cursor: default; opacity: .72; }
.authored-path-card h3 { margin: 0 0 9px; font-size: clamp(28px, 3.5vw, 39px); line-height: 1.08; }
.authored-path-card p:not(.eyebrow) { margin: 0; color: var(--ink-soft); }
.authored-path-card dl { display: flex; gap: 24px; margin: 0; }
.authored-path-card dl div { display: grid; }
.authored-path-card dt { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.authored-path-card dd { margin: 0; color: var(--plum); font: 27px Georgia, serif; }
.path-card-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.path-card-footer span { color: var(--muted); font-size: 13px; }
.authored-path-panel { margin-top: 28px; scroll-margin-top: 102px; }
.authored-path-overview { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 28px; padding: clamp(26px, 5vw, 44px); border: 1px solid var(--line); border-radius: 20px; background: #fffdfb; }
.authored-path-overview h2 { margin: 0 0 9px; font-size: clamp(34px, 5vw, 54px); line-height: 1.05; }
.authored-path-overview > div > p:last-child { max-width: 710px; margin: 0; color: var(--ink-soft); }
.pilot-badge { width: 122px; padding: 16px; border: 1px solid #decde6; border-radius: 15px; background: var(--lavender-soft); text-align: center; }
.pilot-badge strong { display: block; color: var(--plum); font: 38px Georgia, serif; }
.pilot-badge span { color: var(--muted); font-size: 11px; line-height: 1.2; }
.authored-chapters { display: grid; gap: 13px; margin-top: 18px; }
.authored-chapter { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fffefe; }
.authored-chapter > header { display: grid; grid-template-columns: 50px 1fr; gap: 15px; padding: 21px 24px; border-bottom: 1px solid #ece7ee; }
.authored-chapter > header > span { color: var(--gold); font: 27px Georgia, serif; }
.authored-chapter header p { margin: 0; color: var(--purple); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.authored-chapter h3 { margin: 1px 0 3px; font-size: 25px; }
.authored-chapter header small { display: block; max-width: 720px; color: var(--muted); }
.authored-chapter ol { margin: 0; padding: 0; list-style: none; }
.authored-chapter li { min-height: 64px; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 11px; padding: 9px 24px; border-bottom: 1px solid #f0edf0; }
.authored-chapter li:last-child { border-bottom: 0; }
.authored-chapter li.planned { color: #8d8696; background: #fbfafb; }
.authored-chapter li.available { box-shadow: inset 3px 0 var(--magenta); background: #fcf9fd; }
.authored-chapter li.completed { box-shadow: inset 3px 0 var(--green); }
.lesson-status-icon { width: 21px; height: 21px; display: grid; place-items: center; border: 1px solid #bdb3c3; border-radius: 50%; color: var(--purple); font-size: 11px; }
.completed .lesson-status-icon { border-color: var(--green); background: var(--green); color: white; }
.authored-chapter li strong { display: block; }
.authored-chapter li small { display: block; color: var(--muted); }
.planned-label { color: var(--muted); font-size: 12px; }
.architecture-workbench { margin-top: 80px; padding-top: 42px; border-top: 1px solid var(--line); }
.workbench-heading > p:last-child { max-width: 720px; margin: 8px 0 0; color: var(--muted); }

.lesson-reader { max-width: 830px; margin: auto; }
.lesson-toolbar { min-height: 44px; display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.lesson-toolbar p { margin: 0; color: var(--muted); font-size: 12px; }
.lesson-progress-track { height: 4px; margin: 8px 0 42px; overflow: hidden; border-radius: 99px; background: #e4dfe8; }
.lesson-progress-track span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--purple), var(--magenta)); transition: width .35s ease; }
.lesson-header { margin-bottom: 30px; }
.lesson-header h1 { margin-bottom: 12px; font-size: clamp(43px, 7vw, 68px); }
.lesson-meta { margin: 0; color: var(--muted); font-size: 13px; }
.curiosity-spark { margin: 0 0 36px; padding: clamp(27px, 5vw, 45px); border: 1px solid #ddc9e8; border-left: 5px solid var(--magenta); border-radius: 20px; background: linear-gradient(135deg, #fbf6fd, #efe4f6); box-shadow: 0 15px 40px rgba(81,34,138,.07); }
.curiosity-spark .layer-label { color: var(--magenta); }
.curiosity-spark h2 { margin: 0 0 15px; font-size: clamp(29px, 4.2vw, 42px); line-height: 1.12; }
.curiosity-spark > p:last-child { margin: 0; color: var(--ink-soft); font: clamp(19px, 2.4vw, 23px)/1.6 Georgia, serif; }
.learning-objectives { margin: 0 0 45px; padding: 22px 25px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.7); }
.learning-objectives ul, .key-takeaways ul { margin: 0; padding-left: 21px; }
.learning-objectives li, .key-takeaways li { margin: 7px 0; padding-left: 4px; }
.lesson-section { position: relative; margin: 0 0 42px; padding-top: 9px; scroll-margin-top: 105px; outline: none; }
.lesson-section .section-number { margin: 0 0 3px; color: var(--gold); font: 18px Georgia, serif; }
.lesson-section h2 { margin: 0 0 16px; font-size: clamp(30px, 4vw, 40px); line-height: 1.13; }
.lesson-prose { color: #3f3852; font-size: 18px; line-height: 1.82; }
.lesson-prose p { margin: 0 0 1.15em; }
.lesson-section.review-highlight { margin-left: -22px; margin-right: -22px; padding: 22px; border: 1px solid #c8a9d8; border-radius: 16px; background: #faf5fc; box-shadow: 0 0 0 5px rgba(185,42,144,.07); }
.review-return { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #dfcde7; }
.review-return p { margin: 0; color: var(--plum); font-weight: 700; }
.optional-learning-block { margin: -12px 0 42px; overflow: hidden; border: 1px solid #d9cde1; border-radius: 15px; background: rgba(255,255,255,.72); scroll-margin-top: 108px; }
.optional-learning-block.support { border-left: 4px solid var(--magenta); }
.optional-learning-block.extension { border-left: 4px solid var(--purple); background: #faf8fc; }
.optional-block-trigger { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 18px; border: 0; padding: 17px 19px; background: transparent; text-align: left; cursor: pointer; }
.optional-block-trigger:hover { background: rgba(238,230,247,.55); }
.optional-block-trigger span { display: grid; gap: 2px; }
.optional-block-trigger small { color: var(--purple); font-size: 11px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.optional-block-trigger strong { color: var(--ink-soft); font-size: 14px; }
.optional-block-trigger b { width: 31px; height: 31px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--lavender); color: var(--purple); font-size: 21px; font-weight: 500; }
.optional-block-content { padding: 4px 21px 22px; border-top: 1px solid #e7dfeb; }
.optional-block-content h3 { margin: 19px 0 10px; font-size: clamp(25px, 3.3vw, 32px); outline: none; }
.optional-block-content > p { margin: 0 0 1em; color: #463e57; font-size: 17px; line-height: 1.75; }
.optional-block-content > p:last-of-type { margin-bottom: 0; }
.optional-block-return { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #dfd4e5; }
.optional-block-return p { margin: 0; color: var(--plum); font-weight: 700; }
.worked-example { margin: 45px 0; padding: clamp(24px, 4vw, 34px); border: 1px solid #d8d0bd; border-radius: 17px; background: var(--paper-warm); }
.example-label { margin: 0; color: #89651f; font-size: 10px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.worked-example h3 { margin: 3px 0 11px; font-size: 29px; }
.worked-example > p:not(.example-label, .example-takeaway) { color: var(--ink-soft); }
.worked-example ol { padding-left: 23px; }
.worked-example li { margin: 8px 0; padding-left: 4px; }
.example-takeaway { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid #ded4be; }
.knowledge-check { margin: 48px 0; padding: clamp(24px, 4vw, 36px); border: 1px solid #d7cce0; border-radius: 18px; background: #fffefe; box-shadow: 0 14px 40px rgba(50,30,65,.055); scroll-margin-top: 115px; }
.check-kicker { margin: 0; color: var(--magenta); font-size: 10px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.knowledge-check > h3 { margin: 5px 0 20px; font-size: clamp(25px, 3.3vw, 32px); line-height: 1.25; }
.check-choices { display: grid; gap: 9px; }
.check-choices button { display: grid; grid-template-columns: 31px 1fr; align-items: center; gap: 12px; min-height: 58px; border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; background: #fbfafc; text-align: left; cursor: pointer; }
.check-choices button:hover:not(:disabled) { border-color: #a887bf; background: #f8f2fa; }
.check-choices button[aria-pressed="true"] { border-color: var(--purple); background: var(--lavender-soft); }
.check-choices button:disabled { cursor: default; opacity: .72; }
.check-choices button span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--lavender); color: var(--purple); font-weight: 800; }
.check-feedback { margin-top: 18px; padding: 18px; border-radius: 12px; outline: none; }
.check-feedback.correct { border: 1px solid #b8d5c9; background: #edf7f2; }
.check-feedback.incorrect { border: 1px solid #dbc9aa; background: #fbf6eb; }
.check-feedback strong { display: block; margin-bottom: 4px; }
.check-feedback p { margin: 0; color: var(--ink-soft); }
.check-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 15px; }
.check-actions .primary, .check-actions .secondary { min-height: 43px; padding: 8px 15px; }
.key-takeaways { margin: 58px 0 42px; padding: clamp(26px, 5vw, 40px); border-radius: 19px; background: var(--purple-dark); color: white; }
.key-takeaways .eyebrow { color: #e1b8e0; }
.key-takeaways h2 { margin: 0 0 14px; font-size: 34px; }
.lesson-transition { margin: 62px 0; padding: clamp(28px, 5vw, 44px); border: 1px solid #cdb9d8; border-radius: 20px; background: linear-gradient(145deg, #f4ebf7, #fffdfd); text-align: center; }
.lesson-transition h2 { margin: 0 0 10px; font-size: clamp(30px, 4vw, 40px); }
.lesson-transition > p:not(.eyebrow) { max-width: 650px; margin: 0 auto 22px; color: var(--ink-soft); font-size: 17px; }
.related-discoveries { margin-top: 56px; padding-top: 38px; border-top: 1px solid var(--line); }
.related-discoveries h2 { margin: 0 0 18px; font-size: 35px; }
.related-discoveries > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.related-discoveries button { display: grid; gap: 5px; min-height: 100px; border: 1px solid var(--line); border-radius: 13px; padding: 16px; background: white; text-align: left; cursor: pointer; }
.related-discoveries button:hover { border-color: #a88ab9; }
.related-discoveries small { color: var(--purple); text-transform: uppercase; letter-spacing: .08em; }
.related-discoveries strong { font: 20px Georgia, serif; }
.learning-return { max-width: 920px; display: flex; justify-content: space-between; align-items: center; gap: 24px; margin: 42px auto 0; padding: 24px; border: 1px solid #cdb9d8; border-radius: 17px; background: linear-gradient(125deg, #f3ebf7, #fffefe); }
.learning-return h2 { margin: 0; font-size: clamp(24px, 3.2vw, 32px); }
.toast { max-width: min(460px, calc(100vw - 34px)); position: fixed; right: 20px; bottom: 20px; z-index: 70; display: flex; align-items: center; gap: 13px; padding: 13px 17px; border-radius: 11px; background: var(--ink); color: white; box-shadow: 0 14px 40px rgba(0,0,0,.2); }
.toast-action { border: 0; border-left: 1px solid rgba(255,255,255,.25); padding: 2px 0 2px 13px; background: none; color: white; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

.maps-view { max-width: 1100px; margin: auto; }
.maps-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 330px); align-items: end; gap: clamp(30px, 6vw, 72px); }
.maps-intro h1 { max-width: 790px; font-size: clamp(42px, 6.2vw, 67px); }
.maps-intro-key { display: grid; gap: 10px; padding: 18px; border: 1px solid #d8cce1; border-radius: 18px; background: rgba(255,255,255,.68); }
.maps-intro-key > div { display: grid; grid-template-columns: 35px 1fr; align-items: center; gap: 11px; }
.maps-intro-key > div + div { padding-top: 10px; border-top: 1px solid #e9e2ed; }
.maps-intro-key span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 50%; background: var(--lavender); color: var(--purple); font-weight: 850; }
.maps-intro-key p { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.45; }
.maps-layer-promise { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 36px; padding-top: 25px; border-top: 1px solid var(--line); }
.maps-layer-promise article { display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 15px; border-radius: 14px; background: rgba(255,255,255,.62); }
.maps-layer-promise article > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--purple-dark); color: white; font: 16px Georgia, serif; }
.maps-layer-promise strong { color: var(--purple-dark); font-size: 13px; }
.maps-layer-promise p { margin: 3px 0 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.maps-landing { margin-top: 58px; }
.maps-entry-heading { max-width: 760px; }
.maps-entry-heading h2, .maps-subject-heading h2 { margin: 0 0 9px; font-size: clamp(32px, 4.5vw, 47px); line-height: 1.08; }
.maps-entry-heading > p:last-child { max-width: 670px; margin: 0; color: var(--ink-soft); }
.map-entry-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 25px; }
.map-entry-choice { position: relative; min-width: 0; display: grid; grid-template-columns: 43px minmax(0, 1fr); grid-template-rows: auto auto auto; column-gap: 15px; min-height: 176px; border: 1px solid #d9d0df; border-radius: 18px; padding: 21px; background: rgba(255,255,255,.76); color: var(--ink); text-align: left; cursor: pointer; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.map-entry-choice:hover { border-color: #a987ba; transform: translateY(-2px); }
.map-entry-choice.selected { border-color: var(--purple); background: linear-gradient(145deg, #f2e8f7, #fff); box-shadow: inset 0 0 0 1px rgba(81,34,138,.12), 0 14px 32px rgba(50,24,90,.08); }
.map-entry-choice > span { grid-row: 1 / 4; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--lavender); color: var(--purple); font: 22px Georgia, serif; }
.map-entry-choice small { align-self: end; color: var(--purple); font-size: 9px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.map-entry-choice strong { margin-top: 4px; font: 25px/1.15 Georgia, serif; }
.map-entry-choice em { margin-top: 7px; color: var(--muted); font-size: 12px; font-style: normal; line-height: 1.5; }
.maps-subject-step { margin-top: 44px; padding-top: 40px; border-top: 1px solid var(--line); scroll-margin-top: 100px; }
.maps-subject-step > header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 44px; padding: 18px 21px; border-radius: 15px; background: var(--lavender-soft); }
.maps-subject-step > header h3 { margin: 0 0 4px; font-size: 24px; }
.maps-subject-step > header p:last-child { max-width: 700px; margin: 0; color: var(--ink-soft); font-size: 13px; }
.maps-subject-heading { margin-bottom: 18px; }
.map-subject-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 35px; padding: clamp(25px, 4vw, 38px); border: 1px solid #cdb9d8; border-radius: 21px; background: linear-gradient(130deg, #f1e7f6, #fff 63%); box-shadow: 0 17px 45px rgba(50,24,90,.07); }
.map-subject-card-main > div { display: flex; align-items: center; gap: 12px; margin-bottom: 17px; }
.map-subject-card-main > div .eyebrow { margin: 0; }
.map-subject-card h3 { margin: 0 0 9px; font-size: clamp(39px, 5.5vw, 58px); line-height: 1; }
.map-subject-card-main > p { max-width: 700px; margin: 0; color: var(--ink-soft); }
.map-subject-kinds { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.map-subject-kinds span { padding: 5px 10px; border: 1px solid #d5c7dd; border-radius: 999px; background: rgba(255,255,255,.72); color: var(--purple-dark); font-size: 10px; font-weight: 760; }
.map-subject-meta { display: flex; flex-wrap: wrap; gap: 9px 18px; margin: 25px 0 0; padding: 0; list-style: none; color: var(--muted); font-size: 11px; }
.map-subject-meta li { padding-right: 18px; border-right: 1px solid #d8cde0; }
.map-subject-meta li:last-child { padding-right: 0; border-right: 0; }
.map-subject-meta strong { display: block; color: var(--purple-dark); font: 21px Georgia, serif; }
.map-subject-open { min-width: 205px; display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; }
.map-subject-open span { font-size: 21px; }
.map-subject-view { padding-top: 4px; }
.map-wayfinder { position: sticky; top: 78px; z-index: 20; display: flex; align-items: center; gap: 9px; width: fit-content; max-width: 100%; margin: -4px 0 22px; padding: 9px 13px; border: 1px solid #d7cddd; border-radius: 999px; background: rgba(255,255,255,.9); box-shadow: 0 9px 25px rgba(43,23,94,.07); backdrop-filter: blur(12px); color: var(--muted); font-size: 11px; }
.map-wayfinder button { border: 0; padding: 0; background: none; color: var(--purple); font-weight: 800; cursor: pointer; }
.map-wayfinder strong { color: var(--ink); }
.map-wayfinder em { min-width: 0; overflow: hidden; color: var(--purple-dark); font-style: normal; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.map-subject-view .maps-choice { margin-top: 0; }
.maps-choice { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 28px; margin: 52px 0 0; padding: clamp(24px, 4vw, 36px); border: 1px solid #cdb9d8; border-radius: 22px 22px 0 0; background: linear-gradient(125deg, #f2e9f7, #fffefe); }
.maps-choice h2 { margin: 0 0 7px; font-size: clamp(35px, 5vw, 52px); line-height: 1; }
.maps-choice > div > p:last-child { max-width: 760px; margin: 0; color: var(--ink-soft); }
.prototype-badge { padding: 7px 12px; border: 1px solid #c7a9d5; border-radius: 999px; background: white; color: var(--purple); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.map-prototype { padding: clamp(22px, 4vw, 38px); border: 1px solid #cdb9d8; border-top: 0; border-radius: 0 0 22px 22px; background: rgba(255,255,255,.47); scroll-margin-top: 105px; }
.map-lens-banner { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-bottom: 36px; padding: 16px 19px; border: 1px solid #d8cde0; border-radius: 15px; background: var(--lavender-soft); }
.map-lens-banner strong { display: block; color: var(--purple-dark); font: 23px/1.15 Georgia, serif; }
.map-lens-banner p:last-child { max-width: 760px; margin: 3px 0 0; color: var(--ink-soft); font-size: 12px; }
.map-lens-banner button { flex: 0 0 auto; }
.map-field-orientation { padding-bottom: 44px; border-bottom: 1px solid var(--line); }
.map-field-orientation > header { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(240px, .75fr); align-items: end; gap: 35px; }
.map-field-orientation > header h2 { max-width: 690px; margin: 0; font-size: clamp(31px, 4.5vw, 46px); line-height: 1.07; }
.map-field-orientation > header > p { margin: 0; color: var(--ink-soft); font-size: 14px; }
.map-orientation-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 24px; }
.map-orientation-cards article { min-height: 205px; padding: 21px; border: 1px solid #ddd4e2; border-radius: 16px; background: rgba(255,255,255,.82); }
.map-orientation-cards article:nth-child(2) { background: linear-gradient(150deg, #f6eff8, #fff); }
.map-orientation-cards h3 { margin: 0 0 10px; font-size: 26px; line-height: 1.13; }
.map-orientation-cards article > p:last-child { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.map-reflection { display: grid; grid-template-columns: minmax(160px, .7fr) minmax(0, 1.45fr) minmax(180px, .85fr); gap: 24px; margin-top: 12px; padding: 22px; border-radius: 16px; background: var(--purple-dark); color: white; }
.map-reflection .eyebrow { color: #e4bfe1; }
.map-reflection strong { font: 22px/1.15 Georgia, serif; }
.map-reflection ul { display: grid; gap: 8px; margin: 0; padding-left: 18px; color: #f5f0f7; font-size: 12px; }
.map-reflection > p { align-self: center; margin: 0; padding-left: 21px; border-left: 1px solid rgba(255,255,255,.25); color: #dcd2e3; font-size: 11px; line-height: 1.55; }
.map-structure-intro { max-width: 850px; margin: 47px 0 21px; }
.map-structure-intro h2 { margin: 0 0 8px; font-size: clamp(29px, 4vw, 41px); line-height: 1.08; }
.map-structure-intro > p:last-child { margin: 0; color: var(--ink-soft); }
.map-purpose-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.map-purpose-grid article { display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 17px; border: 1px solid #e1d9e6; border-radius: 15px; background: rgba(255,255,255,.78); }
.map-purpose-grid article > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: var(--purple-dark); color: white; font: 17px Georgia, serif; }
.map-purpose-grid strong { color: var(--purple-dark); }
.map-purpose-grid p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.map-path-picker { margin: 52px 0 0; }
.map-path-picker .section-heading { margin-bottom: 16px; }
.map-path-picker h2 { max-width: 760px; }
.map-path-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.map-path-choice { min-width: 0; display: grid; align-content: start; gap: 6px; min-height: 154px; border: 1px solid #dcd3e2; border-radius: 16px; padding: 18px; background: rgba(255,255,255,.8); color: var(--ink); text-align: left; cursor: pointer; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.map-path-choice:hover { border-color: #aa88bd; transform: translateY(-1px); }
.map-path-choice.selected { border-color: var(--purple); background: linear-gradient(145deg, #f3e9f8, #fff); box-shadow: inset 0 0 0 1px rgba(81,34,138,.12), 0 10px 24px rgba(50,24,90,.07); }
.map-path-choice small { color: var(--purple); font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.map-path-choice strong { font: 23px/1.16 Georgia, serif; }
.map-path-choice span { color: var(--muted); font-size: 12px; line-height: 1.48; }
.map-route-summary { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr); gap: 28px; margin: 20px 0 12px; padding: 24px; border-radius: 17px; background: var(--purple-dark); color: white; }
.map-route-summary .eyebrow { color: #e4bfe1; }
.map-route-summary h3 { margin: 0 0 5px; color: white; font-size: 30px; line-height: 1.1; }
.map-route-summary p { margin: 0; color: #e8e1ee; font-size: 13px; }
.map-route-summary > p { align-self: end; padding-left: 24px; border-left: 1px solid rgba(255,255,255,.25); }
.map-navigation-panel { margin: 13px 0 20px; padding: 23px; border: 1px solid #d6cadd; border-radius: 17px; background: linear-gradient(140deg, #f2e9f7, rgba(255,255,255,.91)); }
.map-navigation-panel > header { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(230px, .75fr); align-items: end; gap: 30px; margin-bottom: 17px; }
.map-navigation-panel h2 { margin: 0; font-size: 30px; line-height: 1.08; }
.map-navigation-panel > header > p { margin: 0; color: var(--ink-soft); font-size: 12px; }
.map-group-navigation { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.map-group-navigation button { min-width: 0; display: grid; align-content: start; gap: 4px; border: 1px solid #dcd2e2; border-radius: 13px; padding: 15px; background: rgba(255,255,255,.85); text-align: left; cursor: pointer; }
.map-group-navigation button:hover { border-color: var(--purple); }
.map-group-navigation small, .map-route-navigation small { color: var(--purple); font-size: 8px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.map-group-navigation strong { font: 20px/1.14 Georgia, serif; }
.map-group-navigation span { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.map-route-navigation { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 10px; scroll-snap-type: x proximity; scrollbar-color: #bda9ca transparent; }
.map-route-navigation button { min-width: 180px; display: grid; align-content: start; gap: 5px; border: 1px solid #d7c9df; border-radius: 13px; padding: 14px; background: rgba(255,255,255,.9); text-align: left; scroll-snap-align: start; cursor: pointer; }
.map-route-navigation button:hover { border-color: var(--purple); transform: translateY(-1px); }
.map-route-navigation strong { font: 18px/1.16 Georgia, serif; }
.map-legend { display: flex; flex-wrap: wrap; gap: 12px 20px; margin: 0 0 30px; padding: 10px 4px; color: var(--muted); font-size: 11px; }
.map-legend span { display: inline-flex; align-items: center; gap: 7px; }
.map-legend i { width: 12px; height: 12px; border: 2px solid var(--purple); border-radius: 3px; background: #f7f1fa; }
.map-legend span:nth-child(2) i { border-color: var(--gold); border-style: dashed; background: #fffaf1; }
.map-legend span:nth-child(3) i { border-color: #d8d1dd; background: #f2eff3; }
.map-landscape { display: grid; gap: 18px; }
.map-landscape-group { display: grid; grid-template-columns: minmax(175px, .27fr) minmax(0, 1fr); gap: 22px; padding: 22px; border: 1px solid #ded7e4; border-radius: 19px; background: rgba(255,255,255,.73); }
.map-landscape-group > header { padding: 5px 0; }
.map-landscape-group > header h3 { margin: 0 0 8px; font-size: 27px; line-height: 1.08; }
.map-landscape-group > header > p:last-child { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.map-node-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.map-landscape:not(.structured) .map-node-grid { align-items: start; }
.map-node { position: relative; min-width: 0; overflow: hidden; border: 1px solid #dcd5e1; border-radius: 14px; background: white; transition: opacity .2s ease, border-color .2s ease, box-shadow .2s ease; }
.map-node.route-required { border-color: #8e63aa; box-shadow: inset 3px 0 var(--purple); }
.map-node.route-optional { border-color: #cba55c; border-style: dashed; background: #fffdf8; }
.map-node.off-route { opacity: .42; background: #f4f1f5; }
.map-node.off-route:hover, .map-node.off-route.expanded { opacity: .82; }
.map-node-summary { width: 100%; min-height: 100%; display: grid; grid-template-columns: minmax(0, 1fr) 25px; gap: 10px; border: 0; padding: 17px; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.map-node.expanded .map-node-summary { min-height: 0; }
.map-node-summary > span:not(.map-route-order) { display: grid; align-content: start; gap: 4px; }
.map-node-summary small { color: var(--purple); font-size: 8px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.map-node-summary strong { font: 20px/1.18 Georgia, serif; }
.map-node-summary em { color: var(--muted); font-size: 11px; font-style: normal; line-height: 1.48; }
.map-node-summary b { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: var(--lavender); color: var(--purple); font-size: 18px; font-weight: 500; }
.map-route-order { position: absolute; right: 10px; top: 10px; z-index: 1; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--purple); color: white; font-size: 10px; font-weight: 850; }
.map-route-order + span + b { margin-top: 28px; }
.map-route-order.optional { border: 1px dashed #9a6f21; background: #fff6df; color: #805c1c; }
.map-node-detail { padding: 0 17px 17px; border-top: 1px solid #eee9f1; }
.map-node-detail dl { display: grid; gap: 13px; margin: 16px 0; }
.map-node-detail dt { color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.map-node-detail dd { display: flex; flex-wrap: wrap; gap: 5px; margin: 6px 0 0; }
.map-node-detail dd span { padding: 4px 8px; border-radius: 999px; background: var(--lavender-soft); color: var(--purple-dark); font-size: 10px; }
.map-coverage-note { margin: 0; padding: 11px; border-radius: 10px; background: #f3f0f4; color: var(--muted); font-size: 10px; line-height: 1.5; }
.map-coverage-note strong { display: block; color: var(--ink-soft); }
.map-discovery-links { overflow: hidden; border: 1px solid #d9cbe1; border-radius: 11px; background: #faf7fc; }
.map-discovery-links > header { display: flex; justify-content: space-between; gap: 10px; padding: 10px 11px; border-bottom: 1px solid #e8dfed; }
.map-discovery-links > header span { color: var(--purple-dark); font-size: 10px; font-weight: 850; }
.map-discovery-links > header small { color: var(--muted); font-size: 9px; }
.map-discovery-list { display: grid; }
.map-discovery-list button { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; border: 0; border-top: 1px solid #eee7f1; padding: 11px; background: white; color: var(--ink); text-align: left; cursor: pointer; }
.map-discovery-list button:first-child { border-top: 0; }
.map-discovery-list button:hover, .map-discovery-list button:focus-visible { background: var(--lavender-soft); }
.map-discovery-list button span { display: grid; gap: 3px; }
.map-discovery-list button small { color: var(--purple); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.map-discovery-list button strong { font: 15px/1.28 Georgia, serif; }
.map-discovery-list button i { color: var(--purple); font-size: 17px; font-style: normal; }
.map-discovery-loading, .map-discovery-error { margin: 0; padding: 12px; color: var(--muted); font-size: 10px; }
.map-discovery-error { color: #8a3446; }
.map-discovery-return { margin-bottom: 18px; scroll-margin-top: 110px; }
.map-discovery-return > div > p:last-child { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.map-discovery-return .secondary { flex: 0 0 auto; }
.map-draft-boundary { margin-top: 30px; padding: 21px 23px; border: 1px dashed #bcaac5; border-radius: 14px; background: #f4f0f4; }
.map-draft-boundary strong { color: var(--purple-dark); }
.map-draft-boundary p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }

/* Programming Map structured outline v5.3: familiar hierarchy, Map relationships preserved. */
.map-layout-switch { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .75fr); align-items: center; gap: 25px; margin: 23px 0; padding: 20px; border: 1px solid #d8cfdd; border-radius: 16px; background: linear-gradient(115deg, #f8f4fa, #fff); scroll-margin-top: 105px; }
.map-layout-switch h2 { margin: 2px 0 5px; font-size: 28px; }
.map-layout-switch p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.map-layout-switch > div:last-child { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.map-layout-switch button { display: grid; gap: 3px; border: 1px solid #d7cedc; border-radius: 12px; padding: 13px 12px; background: white; color: var(--ink); text-align: left; cursor: pointer; }
.map-layout-switch button:hover, .map-layout-switch button:focus-visible { border-color: var(--purple); background: var(--lavender-soft); }
.map-layout-switch button.selected { border-color: var(--purple); background: var(--purple-dark); color: white; box-shadow: 0 7px 18px rgba(64,34,86,.14); }
.map-layout-switch button small { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.map-layout-switch button.selected small { color: #e7ddec; }
.map-layout-switch button strong { font: 17px/1.25 Georgia, serif; }
.map-landscape.structured { gap: 20px; }
.map-landscape.structured .map-landscape-group { display: block; overflow: hidden; padding: 0; border-color: #d8d1de; border-radius: 17px; background: #fffdfb; box-shadow: 0 9px 31px rgba(50,30,65,.045); }
.map-landscape.structured .map-landscape-group > header { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: center; gap: 17px; padding: 22px 25px; border-bottom: 1px solid #e9e4e8; background: linear-gradient(110deg, #fbf8fc, #fffdfb); }
.map-landscape.structured .map-landscape-group > header > div { min-width: 0; }
.map-landscape.structured .map-landscape-group > header h3 { margin: 0 0 4px; font-size: 28px; }
.map-landscape.structured .map-landscape-group > header > div > p:last-child { max-width: 720px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.map-landscape.structured .map-landscape-group > header > small { color: var(--muted); font-size: 10px; font-weight: 780; white-space: nowrap; }
.map-landscape.structured .map-outline-section-number { color: var(--gold); font: 30px/1 Georgia, serif; }
.map-landscape.structured .map-node-grid { display: grid; grid-template-columns: 1fr; gap: 0; }
.map-landscape.structured .map-node { overflow: visible; border: 0; border-bottom: 1px solid #f0edf0; border-radius: 0; background: transparent; box-shadow: none; }
.map-landscape.structured .map-node:last-child { border-bottom: 0; }
.map-landscape.structured .map-node.route-required { border-color: #eee8f0; background: #f8f2fb; box-shadow: inset 4px 0 var(--purple); }
.map-landscape.structured .map-node.route-optional { border: 0; border-bottom: 1px solid #f0eadc; background: #fffaf0; box-shadow: inset 4px 0 var(--gold); }
.map-landscape.structured .map-node.off-route { opacity: .55; background: #faf9fa; }
.map-landscape.structured .map-node.off-route:hover, .map-landscape.structured .map-node.off-route.expanded { opacity: 1; }
.map-landscape.structured .map-node-summary { min-height: 0; grid-template-columns: 46px minmax(0, 1fr) minmax(145px, .34fr) 100px 31px; align-items: center; gap: 14px; padding: 15px 22px; }
.map-landscape.structured .map-node-summary:hover { background: rgba(246,240,249,.72); }
.map-landscape.structured .map-node-number { color: var(--gold); font: 22px/1 Georgia, serif; }
.map-landscape.structured .map-node-copy { display: grid; align-content: center; gap: 2px; }
.map-landscape.structured .map-node-copy small { color: var(--purple); }
.map-landscape.structured .map-node-copy strong { font-size: 19px; }
.map-landscape.structured .map-node-copy em { max-width: 760px; }
.map-landscape.structured .map-node-anchor-state { display: grid; gap: 2px; padding-left: 15px; border-left: 1px solid #e8e1eb; }
.map-landscape.structured .map-node-anchor-state small { color: var(--plum); }
.map-landscape.structured .map-node-anchor-state strong { color: var(--ink-soft); font-family: inherit; font-size: 12px; font-weight: 800; line-height: 1.3; }
.map-landscape.structured .map-node-anchor-state em { font-size: 9px; }
.map-landscape.structured .map-outline-route { min-width: 90px; display: grid; justify-items: center; gap: 1px; padding: 6px 8px; border: 1px solid #dfd7e3; border-radius: 999px; background: white; text-align: center; }
.map-landscape.structured .map-outline-route small { color: var(--muted); font-size: 7px; }
.map-landscape.structured .map-outline-route strong { color: var(--ink-soft); font-family: inherit; font-size: 10px; font-weight: 850; line-height: 1.2; }
.map-landscape.structured .map-outline-route.required { border-color: #8e63aa; background: #efe5f5; }
.map-landscape.structured .map-outline-route.required strong { color: var(--purple-dark); }
.map-landscape.structured .map-outline-route.optional { border-color: #cba55c; border-style: dashed; background: #fff6df; }
.map-landscape.structured .map-outline-route.outside { opacity: .7; }
.map-landscape.structured .map-node-summary b { width: 29px; height: 29px; }
.map-landscape.structured .map-node-detail { padding: 0 22px 20px 82px; border-top: 1px solid #eee9f1; background: rgba(255,255,255,.83); }
.map-landscape.structured .map-node-detail dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 17px 0; }
.map-landscape.structured .map-node-detail dl > div { padding: 12px; border-radius: 10px; background: #faf8fb; }
.map-landscape.structured .map-anchor-placeholder { display: grid; grid-template-columns: minmax(170px, .38fr) minmax(0, 1fr); align-items: center; gap: 18px; margin-top: 17px; padding: 14px; border: 1px solid #d7c5df; border-radius: 11px; background: linear-gradient(110deg, #f2e9f7, #fff); }
.map-landscape.structured .map-anchor-placeholder small { display: block; color: var(--plum); font-size: 8px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.map-landscape.structured .map-anchor-placeholder strong { color: var(--purple-dark); font: 17px/1.25 Georgia, serif; }
.map-landscape.structured .map-anchor-placeholder p { margin: 0; color: var(--ink-soft); font-size: 11px; }
.map-anchor-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 17px; padding: 16px; border: 1px solid #d7c5df; border-radius: 12px; background: linear-gradient(110deg, #f2e9f7, #fff); }
.map-anchor-card > div { display: grid; gap: 5px; min-width: 0; }
.map-anchor-card small { color: var(--plum); font-size: 8px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.map-anchor-card strong { color: var(--purple-dark); font: 17px/1.25 Georgia, serif; }
.map-anchor-card p { margin: 0; color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.map-anchor-card button { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid #b89dc5; border-radius: 9px; background: #fff; color: var(--purple-dark); font-size: 10px; font-weight: 850; }
.map-anchor-card button:hover { border-color: var(--purple); box-shadow: 0 7px 20px rgba(83, 49, 94, .12); }
.map-discovery-links > header span { letter-spacing: .02em; }
.map-end-navigation { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 25px; margin-top: 38px; padding: 22px; border: 1px solid #d7cddd; border-radius: 16px; background: linear-gradient(120deg, #f4eef7, #fff); }
.map-end-navigation p { margin: 0; }
.map-end-navigation strong { display: block; color: var(--purple-dark); font: 21px/1.25 Georgia, serif; }
.map-end-navigation span { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.map-end-navigation > div:last-child { display: flex; align-items: center; justify-content: flex-end; gap: 9px; }
.map-full-end-navigation { margin-top: 18px; }
.map-discovery-return.bottom { margin-top: 18px; margin-bottom: 34px; }

/* Private Map Card iteration: fast entry, one-screen orientation, then depth. */
.maps-home { min-height: calc(100vh - 170px); display: grid; align-content: center; gap: clamp(24px, 4vh, 42px); }
.maps-home-hero { max-width: 830px; margin: 0 auto; text-align: center; }
.maps-home-hero > .prototype-badge { display: inline-flex; margin-bottom: 19px; }
.maps-home-hero h1 { margin: 5px 0 12px; font-size: clamp(43px, 6.5vw, 70px); line-height: 1; }
.maps-home-hero > p:not(.eyebrow) { max-width: 710px; margin: 0 auto; color: var(--ink-soft); font-size: clamp(15px, 1.8vw, 18px); line-height: 1.55; }
.map-search { max-width: 690px; margin: 27px auto 0; text-align: left; }
.map-search label { display: block; margin: 0 0 7px 2px; color: var(--purple-dark); font-size: 11px; font-weight: 820; }
.map-search > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 7px; border: 1px solid #cfc1d7; border-radius: 16px; background: rgba(255,255,255,.88); box-shadow: 0 12px 35px rgba(45,20,78,.07); }
.map-search input { min-width: 0; border: 0; padding: 10px 12px; background: transparent; color: var(--ink); font: 15px inherit; outline: 0; }
.map-search input:focus { box-shadow: inset 0 -2px var(--purple); }
.map-search .primary { padding: 10px 22px; }
.map-search > p { min-height: 18px; margin: 7px 3px 0; color: var(--muted); font-size: 11px; }
.maps-home .map-entry-choices { margin-top: 0; }
.maps-home .map-entry-choice { display: grid; grid-template-columns: 46px minmax(0, 1fr); grid-template-rows: auto auto auto auto; column-gap: 14px; min-height: 205px; padding: 22px; }
.maps-home .map-entry-choice > span { grid-row: 1 / 5; }
.maps-home .map-entry-choice small { align-self: end; }
.maps-home .map-entry-choice strong { font-size: 30px; }
.maps-home .map-entry-choice b { align-self: end; margin-top: 15px; color: var(--purple); font-size: 11px; }
.maps-home .map-entry-choice b i { margin-left: 5px; font-size: 16px; font-style: normal; }
.maps-private-note { margin: -12px 0 0; color: var(--muted); font-size: 10px; text-align: center; }

.map-back-row { display: flex; align-items: center; min-height: 42px; margin-bottom: 20px; }
.map-back-row.split { justify-content: space-between; }
.map-back-row button { border: 0; padding: 8px 4px; background: transparent; color: var(--purple); font-size: 12px; font-weight: 820; cursor: pointer; }
.map-back-row button:hover { text-decoration: underline; text-underline-offset: 4px; }
.map-directory-heading { max-width: 760px; margin: 5vh 0 30px; }
.map-directory-heading h1 { margin: 2px 0 9px; font-size: clamp(42px, 6vw, 64px); line-height: 1; }
.map-directory-heading > p:last-child { margin: 0; color: var(--ink-soft); font-size: 16px; }
.map-learning-stage { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin: -12px 0 22px; }
.map-learning-stage > span { margin-right: 3px; color: var(--muted); font-size: 10px; font-weight: 800; }
.map-learning-stage button { border: 1px solid #d9cede; border-radius: 999px; padding: 7px 11px; background: rgba(255,255,255,.78); color: var(--purple-dark); font-size: 10px; cursor: pointer; }
.map-learning-stage button.selected { border-color: var(--purple); background: var(--purple-dark); color: white; }
.map-directory-results { min-height: 300px; }
.map-directory-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.map-directory-grid .map-directory-card button { height: 100%; grid-template-columns: 46px minmax(0, 1fr) 27px; gap: 15px; padding: 23px 20px; }
.map-directory-grid .map-directory-icon { width: 44px; height: 44px; }
.map-directory-grid .map-directory-card strong { font-size: clamp(27px, 3.3vw, 36px); }
.map-directory-grid .map-directory-meta { grid-column: 2; white-space: normal; }
.map-directory-grid .map-directory-card button > i { grid-column: 3; grid-row: 1 / 3; }
.map-directory-card button { width: 100%; display: grid; grid-template-columns: 52px minmax(0, 1fr) auto 35px; align-items: center; gap: 20px; border: 1px solid #cdb9d8; border-radius: 21px; padding: clamp(23px, 4vw, 35px); background: linear-gradient(130deg, #f1e7f6, #fff 68%); color: var(--ink); text-align: left; box-shadow: 0 17px 45px rgba(50,24,90,.07); cursor: pointer; transition: transform .18s ease, border-color .18s ease; }
.map-directory-card button:hover { border-color: var(--purple); transform: translateY(-2px); }
.map-directory-icon { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 50%; background: var(--purple-dark); color: white; font: 24px Georgia, serif; }
.map-directory-card small { display: block; margin-bottom: 5px; color: var(--purple); font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.map-directory-card strong { display: block; font: clamp(32px, 4vw, 45px)/1 Georgia, serif; }
.map-directory-card em { display: block; max-width: 650px; margin-top: 7px; color: var(--muted); font-size: 13px; font-style: normal; line-height: 1.5; }
.map-directory-meta { color: var(--muted); font-size: 11px; white-space: nowrap; }
.map-directory-meta b { color: var(--purple-dark); }
.map-directory-card button > i { color: var(--purple); font-size: 28px; font-style: normal; }
.map-directory-empty { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 20px; padding: 30px; border: 1px dashed #bfaeca; border-radius: 20px; background: rgba(255,255,255,.64); }
.map-directory-empty > span { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 50%; background: var(--lavender); color: var(--purple); font: 24px Georgia, serif; }
.map-directory-empty h2 { margin: 2px 0 7px; font-size: 31px; }
.map-directory-empty p:not(.eyebrow) { max-width: 680px; margin: 0 0 18px; color: var(--muted); }

.map-card-view { max-width: 1160px; margin: 0 auto; }
.factree-map-card { position: relative; min-height: min(700px, calc(100vh - 145px)); display: grid; grid-template-rows: auto minmax(305px, 1fr) auto auto; overflow: hidden; border: 1px solid #c9b4d5; border-radius: 24px; background: radial-gradient(circle at 50% 48%, #f4eafa 0, rgba(255,255,255,.97) 38%, #fff 72%); box-shadow: 0 24px 70px rgba(48,20,77,.13); }
.map-card-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 30px; padding: 25px 30px 10px; }
.map-card-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 8px; }
.map-card-meta span { padding: 4px 9px; border-radius: 999px; background: var(--lavender-soft); color: var(--purple-dark); font-size: 9px; font-weight: 800; }
.map-card-header h1 { margin: 0 0 5px; font-size: clamp(42px, 5.2vw, 61px); line-height: .98; }
.map-card-header p { max-width: 790px; margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.48; }
.map-card-mindmap { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 220px minmax(0, 1fr); grid-template-rows: 1fr 92px 1fr; gap: 8px 40px; min-height: 315px; padding: 7px 36px 9px; isolation: isolate; }
.map-card-connectors { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; overflow: visible; }
.map-card-connectors path { fill: none; stroke: #bda6ca; stroke-width: 2.2; stroke-dasharray: 4 5; vector-effect: non-scaling-stroke; }
.map-card-branch { position: relative; min-width: 0; display: grid; align-content: center; border: 1px solid #d8cde0; border-radius: 17px; padding: 14px 17px; background: rgba(255,255,255,.94); color: var(--ink); text-align: left; box-shadow: 0 9px 25px rgba(43,23,94,.06); cursor: pointer; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.map-card-branch:hover { z-index: 2; border-color: var(--purple); transform: translateY(-2px); box-shadow: 0 13px 30px rgba(43,23,94,.1); }
.map-card-branch small { color: var(--purple); font-size: 8px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.map-card-branch strong { margin-top: 2px; font: clamp(18px, 2vw, 23px)/1.08 Georgia, serif; }
.map-card-branch > span { margin-top: 3px; color: var(--muted); font-size: 9px; font-weight: 760; }
.map-card-branch ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 9px 22px 0 0; padding: 0; list-style: none; }
.map-card-branch li { padding: 3px 7px; border-radius: 999px; background: var(--lavender-soft); color: var(--purple-dark); font-size: 8px; }
.map-card-branch i { position: absolute; right: 14px; bottom: 12px; color: var(--purple); font-size: 17px; font-style: normal; }
.branch-1 { grid-area: 1 / 1; }
.branch-2 { grid-area: 1 / 3; }
.branch-3 { grid-area: 3 / 1; }
.branch-4 { grid-area: 3 / 3; }
.map-card-centre { grid-area: 2 / 2; align-self: center; justify-self: stretch; z-index: 2; display: grid; place-items: center; padding: 13px; border: 2px solid #74409a; border-radius: 18px; background: var(--purple-dark); color: white; box-shadow: 0 13px 30px rgba(56,25,84,.2); text-align: center; }
.map-card-centre small { color: #e5c9ec; font-size: 8px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.map-card-centre strong { font: 25px/1.05 Georgia, serif; }
.map-card-centre span { margin-top: 3px; color: #e8deed; font-size: 9px; }
.map-card-connections { display: grid; grid-template-columns: auto repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 7px; padding: 8px 30px; border-top: 1px solid #ebe4ee; border-bottom: 1px solid #ebe4ee; background: rgba(249,246,251,.72); }
.map-card-connections > span { align-self: center; margin-right: 4px; color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.map-card-connections button { min-width: 0; position: relative; display: grid; gap: 1px; border: 1px solid #ded4e4; border-radius: 10px; padding: 8px 24px 8px 10px; background: white; color: var(--ink); text-align: left; cursor: pointer; }
.map-card-connections button:hover { border-color: var(--purple); }
.map-card-connections small { overflow: hidden; color: var(--purple); font-size: 7px; font-weight: 830; letter-spacing: .05em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.map-card-connections strong { overflow: hidden; font: 14px/1.15 Georgia, serif; text-overflow: ellipsis; white-space: nowrap; }
.map-card-connections i { position: absolute; right: 8px; top: 50%; color: var(--purple); font-style: normal; transform: translateY(-50%); }
.map-card-actions { display: grid; grid-template-columns: minmax(210px, 1.25fr) 1fr 1fr; gap: 9px; padding: 12px 30px 25px; }
.map-card-actions button { min-height: 45px; }
.map-card-actions .primary { display: flex; justify-content: space-between; align-items: center; }
.map-card-actions .primary span { font-size: 19px; }
.map-card-panel { position: absolute; inset: 0; z-index: 10; overflow-y: auto; display: grid; place-items: center; padding: clamp(28px, 6vw, 70px); background: rgba(250,247,252,.98); backdrop-filter: blur(12px); }
.map-card-panel[hidden] { display: none; }
.map-card-panel-close { position: absolute; right: 22px; top: 18px; width: 39px; height: 39px; border: 1px solid #d4c6dc; border-radius: 50%; background: white; color: var(--purple); font-size: 25px; cursor: pointer; }
.map-card-panel-content { width: min(690px, 100%); }
.map-card-panel-content h2 { margin: 2px 0 10px; font-size: clamp(35px, 5vw, 52px); line-height: 1.04; }
.map-card-panel-content > p:not(.eyebrow):not(.map-card-panel-note) { color: var(--ink-soft); font-size: 16px; }
.map-card-panel-content ul { display: grid; gap: 10px; margin: 24px 0; padding: 0; list-style: none; }
.map-card-panel-content li { padding: 13px 16px 13px 43px; border: 1px solid #ddd2e3; border-radius: 13px; background: white; color: var(--ink-soft); }
.map-card-panel-content li::before { content: '?'; float: left; width: 23px; height: 23px; display: grid; place-items: center; margin-left: -31px; border-radius: 50%; background: var(--lavender); color: var(--purple); font-weight: 850; }
.map-card-panel-note { margin: 18px 0; padding: 12px 15px; border-radius: 11px; background: var(--lavender-soft); color: var(--muted); font-size: 11px; line-height: 1.5; }
.share-preview article { display: grid; gap: 4px; margin: 20px 0; padding: 18px; border: 1px solid #d1c0db; border-radius: 15px; background: linear-gradient(140deg, #f2e8f7, white); }
.share-preview article small { color: var(--purple); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.share-preview article strong { font: 29px Georgia, serif; }
.share-preview article span { color: var(--muted); font-size: 12px; }
.share-preview label { display: grid; gap: 6px; color: var(--ink-soft); font-size: 11px; font-weight: 780; }
.share-preview textarea { min-height: 80px; resize: vertical; border: 1px solid #d5c8dc; border-radius: 12px; padding: 12px; background: white; color: var(--ink); font: 13px/1.5 inherit; }

.map-full-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 30px; margin-bottom: 22px; padding: 26px 30px; border: 1px solid #cdb9d8; border-radius: 22px; background: linear-gradient(125deg, #f2e9f7, #fffefe); }
.map-full-heading h1 { margin: 2px 0 7px; font-size: clamp(41px, 5vw, 57px); line-height: 1; }
.map-full-heading p:last-child { max-width: 770px; margin: 0; color: var(--ink-soft); }
.map-full-view .map-prototype { border: 1px solid #d8cde0; border-radius: 22px; background: rgba(255,255,255,.56); }
.map-full-view .map-structure-intro { margin-top: 0; }
.map-full-view .map-navigation-panel { margin-top: 28px; }
.map-full-view .map-path-picker { margin-top: 38px; }
.connected-full-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.connected-full-grid article { scroll-margin-top: 95px; padding: 24px; border: 1px solid #ded5e4; border-radius: 17px; background: rgba(255,255,255,.84); }
.connected-full-grid h2 { margin: 2px 0 14px; font-size: 28px; }
.connected-full-grid ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.connected-full-grid li { padding: 9px 11px; border-radius: 10px; background: var(--lavender-soft); color: var(--purple-dark); font-size: 12px; }
.connected-full-links { display: grid; grid-template-columns: minmax(240px, 1.2fr) repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 28px; padding: 24px; border-radius: 18px; background: var(--purple-dark); color: white; }
.connected-full-links h2 { margin: 2px 0 5px; color: white; font-size: 27px; }
.connected-full-links p { margin: 0; color: #e5dce9; font-size: 11px; line-height: 1.5; }
.connected-full-links > button { min-width: 0; display: grid; align-content: center; gap: 4px; border: 1px solid rgba(255,255,255,.24); border-radius: 13px; padding: 15px; background: rgba(255,255,255,.1); color: white; text-align: left; cursor: pointer; }
.connected-full-links > button:hover { background: rgba(255,255,255,.17); }
.connected-full-links small { color: #e7c7ec; font-size: 8px; font-weight: 830; text-transform: uppercase; }
.connected-full-links strong { font: 19px/1.12 Georgia, serif; }
.connected-full-links span { color: #ded3e4; font-size: 9px; }
.admin-view .paths-intro { max-width: 790px; }
.admin-view .paths-intro h1 { margin-bottom: 10px; }
.admin-view .architecture-workbench { margin-top: 50px; }

.quiz-entry { display: block; margin: 14px auto 0; color: var(--purple); font-weight: 780; }
.quiz-view { min-height: calc(100vh - 190px); }
.quiz-shell { width: min(820px, 100%); margin: 0 auto; }
.quiz-back { margin: 0 0 24px; padding-left: 0; color: var(--purple); }
.quiz-intro { max-width: 650px; margin-bottom: 28px; }
.quiz-intro h1 { margin: 2px 0 10px; font-size: clamp(38px, 6vw, 58px); line-height: 1.08; }
.quiz-intro > p:last-child { margin: 0; color: var(--ink-soft); font-size: 17px; }
.quiz-card { padding: clamp(24px, 5vw, 42px); border: 1px solid #d9cde2; border-radius: 22px; background: rgba(255,254,254,.96); box-shadow: var(--shadow); }
.quiz-card-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 14px; }
.quiz-card-meta p { margin: 0; }
.quiz-card-meta #quizProgress { color: var(--muted); font-size: 12px; }
.quiz-card h2 { margin: 0 0 25px; font: clamp(28px, 4vw, 38px)/1.22 Georgia, serif; }
.quiz-options { display: grid; gap: 11px; }
.quiz-option { width: 100%; display: grid; grid-template-columns: 36px 1fr; align-items: start; gap: 13px; border: 1px solid var(--line); border-radius: 14px; padding: 15px 17px; background: #fcfbfd; color: var(--ink); text-align: left; cursor: pointer; transition: border-color .16s ease, background .16s ease, transform .16s ease; }
.quiz-option:hover:not(:disabled) { border-color: #a987bd; background: #f8f2fb; transform: translateY(-1px); }
.quiz-option > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--lavender); color: var(--purple); font-weight: 850; }
.quiz-option > strong { padding-top: 3px; font-size: 15px; line-height: 1.55; }
.quiz-option:disabled { cursor: default; opacity: .67; }
.quiz-option.correct { border-color: #83b69f; background: #edf7f2; opacity: 1; }
.quiz-option.correct > span { background: var(--green); color: white; }
.quiz-option.incorrect { border-color: #c79f64; background: #fbf4e8; opacity: 1; }
.quiz-option.incorrect > span { background: #9b6e2f; color: white; }
.quiz-feedback { margin-top: 23px; padding: 22px; border-left: 4px solid var(--magenta); border-radius: 4px 14px 14px 4px; background: linear-gradient(135deg, #f9f3fb, #fffdfd); outline: none; }
.quiz-feedback-label { margin: 0 0 7px; color: var(--plum); font-size: 18px; font-weight: 850; }
.quiz-correct-answer { margin: 0 0 12px; color: var(--ink); font-weight: 720; }
.quiz-feedback #quizExplanation p { margin: 0; color: var(--ink-soft); }
.quiz-feedback #quizExplanation .quiz-option-feedback { margin-bottom: 10px; color: var(--plum); font-weight: 720; }
.quiz-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 22px; }
.quiz-status { min-height: 1.5em; margin: 15px 0 0; color: var(--muted); font-size: 13px; }
.quiz-loading { display: flex; gap: 7px; padding: 25px 0; }
.quiz-loading span { width: 9px; height: 9px; border-radius: 50%; background: var(--purple); animation: quizPulse 1s ease-in-out infinite; }
.quiz-loading span:nth-child(2) { animation-delay: .15s; }
.quiz-loading span:nth-child(3) { animation-delay: .3s; }
@keyframes quizPulse { 0%, 100% { opacity: .25; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-4px); } }

@media (max-width: 850px) {
  .site-header { grid-template-columns: auto 1fr; }
  .mode-switch { justify-self: end; }
  .header-tools { grid-column: 1 / -1; justify-self: stretch; justify-content: space-between; }
  .device-state { display: none; }
  .discover-hero { grid-template-columns: 1fr; }
  .fact-subscription { grid-template-columns: 1fr; }
  .tree-orbit { display: none; }
  .search-inner { margin: 15px; }
  .search-result { grid-template-columns: 1fr; }
  .search-suggestion, .suggestion-admin-row, .suggestion-promotion-fields, .card-moderation-form { grid-template-columns: 1fr; }
  .search-suggestion > button { width: 100%; }
  .discovery-subjects button { flex-basis: calc((100% - 24px) / 4); }
  .maps-intro { grid-template-columns: 1fr; }
  .maps-intro-key { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .maps-intro-key > div + div { padding-top: 0; padding-left: 10px; border-top: 0; border-left: 1px solid #e9e2ed; }
  .maps-layer-promise { grid-template-columns: 1fr; }
  .map-entry-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .map-subject-card { grid-template-columns: 1fr; align-items: start; }
  .map-subject-open { justify-self: start; }
  .map-wayfinder { position: static; }
  .map-field-orientation > header { grid-template-columns: 1fr; align-items: start; }
  .map-orientation-cards { grid-template-columns: 1fr; }
  .map-orientation-cards article { min-height: 0; }
  .map-reflection { grid-template-columns: 1fr; }
  .map-reflection > p { padding: 16px 0 0; border-top: 1px solid rgba(255,255,255,.25); border-left: 0; }
  .map-navigation-panel > header { grid-template-columns: 1fr; align-items: start; }
  .map-group-navigation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .map-purpose-grid { grid-template-columns: 1fr; }
  .map-landscape-group { grid-template-columns: 1fr; }
  .map-layout-switch { grid-template-columns: 1fr; }
  .map-landscape.structured .map-node-summary { grid-template-columns: 40px minmax(0, 1fr) 120px 31px; }
  .map-landscape.structured .map-outline-route { display: none; }
  .maps-home { align-content: start; }
  .maps-home-hero { padding-top: 2vh; }
  .map-card-mindmap { grid-template-columns: minmax(0, 1fr) 170px minmax(0, 1fr); gap: 8px 20px; padding-left: 18px; padding-right: 18px; }
  .map-card-branch ul { display: none; }
  .map-card-connections { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .map-card-connections > span { grid-column: 1 / -1; }
  .map-card-actions { grid-template-columns: 1.2fr 1fr 1fr; }
  .connected-full-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .connected-full-links > div { grid-column: 1 / -1; }
}

@media (max-width: 610px) {
  .site-header { padding: 9px 13px; gap: 8px; }
  .brand { gap: 6px; font-size: 15px; letter-spacing: .09em; }
  .brand img { width: 39px; height: 39px; }
  .mode-button { padding: 8px 9px; font-size: 12px; }
  .header-tools { gap: 7px; }
  .search-toggle, .account-toggle, .kids-toggle { font-size: 11px; }
  .account-card { width: 100%; }
  .journey-stats { grid-template-columns: repeat(3, 1fr); }
  .journey-stat { padding: 11px 8px; text-align: center; }
  .journey-stat strong { font-size: 25px; }
  .journey-item-grid { grid-template-columns: 1fr; }
  .journey-fresh-start { grid-template-columns: 1fr; }
  .journey-fresh-start button { width: 100%; }
  .account-actions { align-items: stretch; flex-direction: column; }
  main { padding: 46px 16px 75px; }
  .discovery-subjects button { flex-basis: calc((100% - 8px) / 2); }
  .discovery-launch { min-height: 230px; padding: 28px 20px; }
  .launch-button { width: 100%; }
  .journey-rail { display: none; }
  .guided-connections { grid-template-columns: 1fr; }
  .tangent-group > div { grid-template-columns: 1fr; }
  .tangent-group button { min-height: 0; padding: 15px 16px; }
  .subject-overview { grid-template-columns: 1fr; }
  .coverage-card { text-align: left; }
  .chapter > header { grid-template-columns: 42px 1fr; padding: 18px 16px; }
  .chapter header > span { display: none; }
  .chapter li { grid-template-columns: 23px 1fr; padding: 9px 16px; }
  .chapter li small { grid-column: 2; }
  .admin-panel { grid-template-columns: 1fr; }
  .search-result > div:last-child { align-items: stretch; flex-direction: column; }
  .section-heading, .path-card-footer, .review-return, .optional-block-return { align-items: stretch; flex-direction: column; }
  .authored-path-overview { grid-template-columns: 1fr; }
  .path-overview-actions { width: 100%; }
  .pilot-badge { width: 100%; display: flex; align-items: center; justify-content: center; gap: 9px; }
  .pilot-badge strong { font-size: 28px; }
  .authored-chapter li { grid-template-columns: 24px 1fr; padding: 11px 16px; }
  .authored-chapter li > button, .authored-chapter li > .planned-label { grid-column: 2; justify-self: start; }
  .lesson-toolbar { align-items: flex-start; flex-direction: column; }
  .lesson-section.review-highlight { margin-left: -8px; margin-right: -8px; padding: 18px; }
  .check-actions { align-items: stretch; flex-direction: column; }
  .check-actions button { width: 100%; }
  .learning-return { align-items: stretch; flex-direction: column; }
  .fact-subscription { padding: 25px 20px; }
  .share-card { padding: 26px 20px; }
  .share-link-actions { align-items: stretch; flex-direction: column; }
  .share-link-actions button { width: 100%; }
  .subscription-actions { align-items: stretch; flex-direction: column; }
  .subscription-actions button { width: 100%; }
  .subscription-unsubscribe-actions { width: 100%; flex-direction: column; }
  .subscription-unsubscribe-actions button, .subscription-unsubscribe-card > button { width: 100%; }
  .toast { left: 17px; right: 17px; flex-wrap: wrap; justify-content: space-between; }
  .quiz-card { padding: 24px 18px; border-radius: 17px; }
  .quiz-card-meta { align-items: flex-start; flex-direction: column; gap: 4px; }
  .quiz-option { grid-template-columns: 31px 1fr; padding: 13px 12px; }
  .quiz-option > span { width: 28px; height: 28px; }
  .quiz-actions { align-items: stretch; flex-direction: column; }
  .quiz-actions button { width: 100%; }
  .maps-intro-key { grid-template-columns: 1fr; }
  .maps-intro-key > div + div { padding-top: 10px; padding-left: 0; border-top: 1px solid #e9e2ed; border-left: 0; }
  .maps-choice { grid-template-columns: 1fr; }
  .prototype-badge { justify-self: start; }
  .map-entry-choices { grid-template-columns: 1fr; }
  .map-entry-choice { min-height: 0; }
  .maps-subject-step > header { align-items: flex-start; flex-direction: column; }
  .map-subject-card { padding: 24px 19px; }
  .map-subject-open { width: 100%; }
  .map-subject-meta { gap: 13px; }
  .map-subject-meta li { flex: 1 1 85px; padding-right: 0; border-right: 0; }
  .map-lens-banner { align-items: flex-start; flex-direction: column; }
  .map-wayfinder { width: 100%; border-radius: 13px; }
  .map-group-navigation { grid-template-columns: 1fr; }
  .map-prototype { padding: 18px 13px; }
  .map-path-choices, .map-node-grid { grid-template-columns: 1fr; }
  .map-layout-switch { padding: 16px; }
  .map-layout-switch > div:last-child { grid-template-columns: 1fr; }
  .map-landscape.structured .map-landscape-group > header { grid-template-columns: 40px minmax(0, 1fr); gap: 10px; padding: 18px 15px; }
  .map-landscape.structured .map-landscape-group > header > small { grid-column: 2; }
  .map-landscape.structured .map-node-summary { grid-template-columns: 34px minmax(0, 1fr) 27px; gap: 8px; padding: 14px 13px; }
  .map-landscape.structured .map-node-anchor-state { grid-column: 2; padding: 7px 0 0; border-top: 1px solid #e8e1eb; border-left: 0; }
  .map-landscape.structured .map-node-summary b { grid-column: 3; grid-row: 1 / 3; }
  .map-landscape.structured .map-node-detail { padding: 0 14px 17px 47px; }
  .map-landscape.structured .map-node-detail dl, .map-landscape.structured .map-anchor-placeholder { grid-template-columns: 1fr; }
  .map-anchor-card { align-items: stretch; flex-direction: column; }
  .map-anchor-card button { justify-content: center; }
  .map-end-navigation { grid-template-columns: 1fr; padding: 18px; }
  .map-end-navigation > div:last-child { align-items: stretch; flex-direction: column; }
  .map-end-navigation button { width: 100%; }
  .map-route-summary { grid-template-columns: 1fr; }
  .map-route-summary > p { padding: 15px 0 0; border-top: 1px solid rgba(255,255,255,.25); border-left: 0; }
  .map-landscape-group { padding: 17px 13px; }
  .maps-home { min-height: 0; gap: 23px; }
  .maps-home-hero > .prototype-badge { margin-bottom: 13px; }
  .maps-home-hero h1 { font-size: 43px; }
  .maps-home-hero > p:not(.eyebrow) { font-size: 14px; }
  .map-search { margin-top: 20px; }
  .map-search > div { grid-template-columns: 1fr; }
  .map-search .primary { width: 100%; }
  .maps-home .map-entry-choice { min-height: 0; padding: 18px; }
  .maps-private-note { margin-top: 0; }
  .map-directory-heading { margin-top: 12px; }
  .map-learning-stage { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 5px; }
  .map-learning-stage > span, .map-learning-stage button { flex: 0 0 auto; }
  .map-directory-grid { grid-template-columns: 1fr; }
  .map-directory-card button { grid-template-columns: 44px minmax(0, 1fr) 24px; gap: 13px; padding: 20px 16px; }
  .map-directory-icon { width: 42px; height: 42px; }
  .map-directory-meta { grid-column: 2; white-space: normal; }
  .map-directory-card button > i { grid-column: 3; grid-row: 1 / 3; }
  .map-directory-empty { grid-template-columns: 1fr; padding: 23px 18px; }
  .map-back-row { margin-bottom: 10px; }
  .factree-map-card { min-height: 0; grid-template-rows: auto auto auto auto; border-radius: 19px; }
  .map-card-header { grid-template-columns: 1fr; gap: 10px; padding: 19px 17px 9px; }
  .map-card-header > .prototype-badge { grid-row: 1; }
  .map-card-header h1 { font-size: 42px; }
  .map-card-header p { font-size: 12px; }
  .map-card-mindmap { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto auto; gap: 7px; min-height: 0; padding: 10px 12px; }
  .map-card-connectors { display: none; }
  .map-card-centre { grid-area: 1 / 1 / 2 / 3; min-height: 65px; padding: 9px; }
  .map-card-centre strong { font-size: 22px; }
  .map-card-branch { min-height: 85px; padding: 11px 12px; }
  .map-card-branch strong { font-size: 17px; }
  .map-card-branch i { right: 10px; bottom: 8px; }
  .branch-1, .branch-2, .branch-3, .branch-4 { grid-area: auto; }
  .map-card-connections { grid-template-columns: 1fr; padding: 9px 12px; }
  .map-card-connections > span { grid-column: auto; }
  .map-card-connections strong { white-space: normal; }
  .map-card-actions { grid-template-columns: 1fr 1fr; padding: 8px 12px 15px; }
  .map-card-actions .primary { grid-column: 1 / -1; }
  .map-card-actions button { min-height: 41px; padding: 9px 10px; font-size: 11px; }
  .map-card-panel { padding: 55px 18px 25px; place-items: start center; }
  .map-card-panel-content h2 { font-size: 36px; }
  .map-card-panel-content > p:not(.eyebrow):not(.map-card-panel-note) { font-size: 14px; }
  .map-card-panel-content ul { margin: 17px 0; }
  .map-full-heading { grid-template-columns: 1fr; padding: 21px 18px; }
  .connected-full-grid, .connected-full-links { grid-template-columns: 1fr; }
  .connected-full-links > div { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.site-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 9px;
  padding: 24px 18px 34px;
  color: var(--muted);
  font-size: 13px;
  text-align: center;
}
.site-footer a { color: var(--purple); font-weight: 700; text-underline-offset: 3px; }
.site-footer a:hover { color: var(--magenta); }
.footer-email-facts { flex-basis: 100%; border: 0; padding: 4px; background: none; color: var(--purple); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.footer-email-facts:hover { color: var(--magenta); }
.seo-related-links { padding: 20px 28px 26px; border-top: 1px solid var(--line); }
.seo-related-links a { display: inline-block; margin: 7px 7px 0 0; padding: 10px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--purple); text-decoration: none; }
.seo-related-links a:hover { border-color: var(--magenta); }
.visibility-actions {
  align-items: flex-end;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: .45rem;
}

.visibility-actions .danger {
  color: #9a2f2f;
}

.admin-guidance {
  color: var(--muted, #66736b);
  margin: .25rem 0 1rem;
  max-width: 72ch;
}

@media (max-width: 720px) {
  .visibility-actions {
    align-items: stretch;
    width: 100%;
  }
}
