:root {
  --ivory: #f8f3eb;
  --paper: #eee5d8;
  --stone: #d8cbb9;
  --ink: #211b18;
  --muted: #6d635c;
  --wine: #6a3438;
  --bronze: #2b201c;
  --gold: #b49362;
  --line: rgba(33, 27, 24, 0.2);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 16px;
  line-height: 1.62;
}
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
img { max-width: 100%; }
::selection { background: var(--wine); color: var(--ivory); }
:focus-visible { outline: 3px solid var(--wine); outline-offset: 4px; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  padding: 12px 16px;
  background: var(--ivory);
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  z-index: 30;
  width: 100%;
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(24px, 5.2vw, 84px);
  color: var(--ink);
  border-bottom: 1px solid rgba(33, 27, 24, 0.18);
}
.site-header-overlay {
  position: absolute;
  top: 0;
  left: 0;
  height: 88px;
  padding: 0 clamp(24px, 5.2vw, 84px);
  background: linear-gradient(90deg, rgba(240, 232, 218, 0.58), rgba(240, 232, 218, 0.36));
  border-bottom: 1px solid rgba(33, 27, 24, 0.2);
  backdrop-filter: blur(5px);
}
.site-header-overlay .brand-link {
  height: 88px;
  padding: 0;
  background: transparent;
  box-shadow: none;
}
.site-header-overlay .desktop-nav {
  height: 44px;
  gap: clamp(12px, 1.35vw, 24px);
  padding: 0;
  background: transparent;
  box-shadow: none;
  font-family: "Helvetica Neue", Arial, sans-serif;
}
.site-header-overlay .desktop-nav a {
  text-shadow: 0 1px 10px rgba(245, 235, 219, 0.9);
}
.site-header-overlay .desktop-nav .nav-cta {
  min-width: auto;
  padding: 0 0 5px;
  border: 0;
  border-bottom: 1px solid currentColor;
}
.site-header-solid {
  position: relative;
  background: var(--ivory);
}
.brand-link { min-height: 44px; display: inline-flex; align-items: center; }
.wordmark {
  display: inline-flex;
  align-items: center;
  width: 168px;
  height: 36px;
  line-height: 0;
}
.wordmark-image {
  display: block;
  width: 168px;
  height: auto;
  max-width: none;
  mix-blend-mode: multiply;
}
.desktop-nav {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.35vw, 24px);
  font-size: 13px;
}
.desktop-nav a {
  position: relative;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.desktop-nav a:not(.nav-cta)::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 7px;
  left: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 220ms ease;
}
.desktop-nav a:hover::after,
.desktop-nav a:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}
.desktop-nav .nav-search {
  position: relative;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: inherit;
}
.desktop-nav .nav-search::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 7px;
  left: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 220ms ease;
}
.desktop-nav .nav-search:hover::after,
.desktop-nav .nav-search:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}
.desktop-nav .nav-search.nav-search-framed {
  min-width: 118px;
  justify-content: center;
  padding: 0 15px;
  border: 1px solid rgba(33, 27, 24, 0.5);
}
.desktop-nav .nav-search.nav-search-framed::after {
  display: none;
}
.nav-group { position: relative; min-height: 44px; display: flex; align-items: center; }
.nav-group summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; list-style: none; font-size: 12px; }
.nav-group summary::-webkit-details-marker { display: none; }
.nav-group summary::after { margin-left: 6px; content: "⌄"; color: var(--wine); font-size: 12px; }
.nav-group[open] summary::after { content: "⌃"; }
.nav-group-menu { position: absolute; top: 42px; right: -12px; z-index: 2; display: grid; min-width: 220px; padding: 10px 16px; background: var(--ivory); border: 1px solid rgba(33, 27, 24, 0.16); box-shadow: 0 18px 42px rgba(33, 27, 24, 0.14); }
.nav-group-menu a { min-height: 38px; display: flex; align-items: center; border-bottom: 1px solid var(--line); font-size: 12px; white-space: nowrap; }
.nav-group-menu a:last-child { border-bottom: 0; }
.nav-group-menu a.nav-featured {
  margin: -10px -16px 10px;
  padding: 0 16px;
  border-bottom: 1px solid rgba(180, 147, 98, 0.68);
  background: rgba(180, 147, 98, 0.14);
  color: var(--wine);
  font-weight: 800;
}
.mobile-nav-group { padding: 8px 0 10px; border-bottom: 1px solid var(--line); }
.mobile-nav-group strong { display: block; margin-bottom: 2px; color: var(--wine); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.mobile-nav-group a { border-bottom: 0 !important; }
.desktop-nav .nav-cta {
  min-width: 146px;
  justify-content: center;
  padding: 0 18px;
  border: 1px solid rgba(33, 27, 24, 0.54);
}
.mobile-nav { display: none; }

.threshold-hero {
  position: relative;
  height: 100svh;
  min-height: 100svh;
  overflow: hidden;
  background: var(--paper);
}
.threshold-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(244, 237, 225, 0.1), transparent 62%);
  pointer-events: none;
}
.threshold-picture,
.threshold-picture img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.threshold-picture img {
  object-fit: cover;
  object-position: center;
}
.threshold-content {
  position: absolute;
  z-index: 2;
  top: 26%;
  left: 6.4vw;
  width: min(610px, 48vw);
  margin: 0;
  padding: 0;
}
.hero-kicker {
  width: 470px;
  margin: 34px 0 30px;
  font-family: Georgia, serif;
  font-size: 21px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.threshold-hero h1 {
  margin: 0;
  font-family: Georgia, serif;
  font-size: clamp(72px, 7vw, 112px);
  font-weight: 400;
  line-height: 0.91;
  letter-spacing: -0.055em;
}
.threshold-hero h1 em {
  display: block;
  margin-top: 0;
  color: #673637;
  font-weight: 400;
}
.hero-copy {
  width: 470px;
  margin: 34px 0 30px;
  font-family: Georgia, serif;
  font-size: 21px;
  line-height: 1.45;
}
.hero-actions {
  display: flex;
  align-items: center;
  margin: 0;
}
.threshold-cta {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 44px;
  padding: 0 0 8px;
  border-bottom: 1px solid currentColor;
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.threshold-cta span {
  font-size: 13px;
  transition: transform 200ms ease;
}
.threshold-cta:hover span { transform: translateX(4px); }
.threshold-caption {
  position: absolute;
  z-index: 2;
  right: 4.5vw;
  bottom: 32px;
  margin: 0;
  padding: 7px 9px;
  background: rgba(240, 232, 218, 0.72);
  color: #5d5148;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  backdrop-filter: blur(5px);
}

.button {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  border: 1px solid transparent;
  font-size: 12px;
  font-weight: 800;
  transition: transform 200ms ease, background 200ms ease, color 200ms ease;
}
.button:hover { transform: translateY(-2px); }
.button-wine { background: var(--wine); color: var(--ivory); }
.button-wine:hover { background: #54272b; }
.button-ink { background: var(--ink); color: var(--ivory); }
.text-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border-bottom: 1px solid currentColor;
  font-size: 12px;
  font-weight: 800;
}
.text-link span { transition: transform 200ms ease; }
.text-link:hover span { transform: translate(3px, -3px); }

.section-pad {
  padding: clamp(96px, 10vw, 156px) clamp(24px, 7vw, 112px);
}
.section-label {
  margin: 0 0 30px;
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.about-home h2,
.section-heading h2,
.method-intro h2,
.method-copy h3,
.olga-story h2,
.journal-home h2,
.children h2,
.contact h2,
.articles-index h1,
.article-hero h1,
.article-body h2 {
  font-family: var(--font-display), Georgia, serif;
  font-weight: 500;
  letter-spacing: -0.045em;
}

.about-home {
  display: grid;
  grid-template-columns: minmax(340px, 1.1fr) minmax(340px, 0.9fr);
  gap: clamp(68px, 10vw, 150px);
  align-items: start;
  background: var(--ivory);
}
.about-home h2 {
  max-width: 790px;
  margin: 0;
  font-size: clamp(58px, 6.5vw, 100px);
  line-height: 0.92;
}
.about-copy {
  max-width: 650px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
}
.about-copy p {
  margin: 0 0 24px;
  color: var(--muted);
}
.about-copy .lead {
  color: var(--ink);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(25px, 2.5vw, 38px);
  line-height: 1.28;
}
.fact-line {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin-top: 42px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}
.fact-line span {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.directions { background: var(--stone); }
.section-heading {
  display: grid;
  grid-template-columns: 1fr minmax(320px, 2fr);
  gap: 40px;
  align-items: end;
  margin-bottom: 66px;
}
.section-heading .section-label { margin: 0; }
.section-heading h2 {
  max-width: 760px;
  margin: 0;
  font-size: clamp(58px, 6.3vw, 96px);
  line-height: 0.9;
}
.direction-list { border-top: 1px solid var(--line); }
.direction-row {
  min-height: 130px;
  display: grid;
  grid-template-columns: 64px 0.9fr 1.25fr 44px;
  gap: 30px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  transition: background 220ms ease, padding 220ms ease;
}
.direction-row:hover {
  padding: 0 16px;
  background: rgba(248, 243, 235, 0.32);
}
.direction-number {
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
}
.direction-row h3 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(34px, 3.5vw, 54px);
  font-weight: 500;
  line-height: 1;
}
.direction-row p {
  max-width: 520px;
  margin: 0;
  color: #514841;
  font-size: 15px;
}
.direction-arrow {
  justify-self: end;
  font-size: 22px;
  transition: transform 200ms ease;
}
.direction-row:hover .direction-arrow { transform: translate(4px, -4px); }

.method { background: var(--ivory); }
.method-intro {
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  gap: 54px;
  align-items: end;
}
.method-intro .section-label { margin: 0; }
.method-intro h2 {
  max-width: 880px;
  margin: 0;
  font-size: clamp(62px, 7.2vw, 112px);
  line-height: 0.88;
}
.method-intro > div > p {
  max-width: 620px;
  margin: 32px 0 0;
  color: var(--muted);
  font-size: 18px;
}
.method-chapters { border-top: 1px solid var(--line); }
.method-chapter {
  min-height: 78vh;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid var(--line);
}
.method-chapter-reverse .method-visual { order: 2; }
.method-chapter-reverse .method-copy { order: 1; }
.method-visual {
  overflow: hidden;
  background: var(--paper);
}
.method-visual img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 900ms cubic-bezier(0.2, 0.7, 0.2, 1);
}
.method-chapter:hover .method-visual img { transform: scale(1.025); }
.method-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(58px, 8vw, 130px);
}
.method-number {
  margin-bottom: 52px;
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
}
.method-copy h3 {
  max-width: 680px;
  margin: 0 0 42px;
  font-size: clamp(56px, 6vw, 94px);
  line-height: 0.88;
}
.method-copy p {
  max-width: 560px;
  margin: 0 0 20px;
  color: var(--muted);
  font-size: 16px;
}

.olga-story {
  background: var(--bronze);
  color: var(--ivory);
}
.olga-story .section-label { color: #d6b17f; }
.olga-story-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(70px, 11vw, 170px);
  align-items: end;
}
.olga-story h2 {
  max-width: 850px;
  margin: 0;
  font-size: clamp(62px, 7.4vw, 114px);
  line-height: 0.88;
}
.olga-story-grid > div {
  max-width: 590px;
  padding-top: 28px;
  border-top: 1px solid rgba(248, 243, 235, 0.26);
}
.olga-story-grid p {
  margin: 0 0 24px;
  color: rgba(248, 243, 235, 0.72);
}
.olga-story blockquote {
  margin: 38px 0 0;
  color: #e3c59a;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(25px, 2.5vw, 38px);
  line-height: 1.3;
}
.approach-line {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 26px;
  align-items: center;
  margin-top: clamp(72px, 8vw, 116px);
  padding-top: 30px;
  border-top: 1px solid rgba(248, 243, 235, 0.26);
}
.approach-line span {
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(23px, 2.3vw, 34px);
  line-height: 1.1;
}
.approach-line i {
  color: #d6b17f;
  font-style: normal;
}

.journal-home {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.65fr);
  gap: 70px clamp(46px, 8vw, 130px);
  background: var(--ivory);
}
.journal-intro h2 {
  max-width: 860px;
  margin: 0;
  font-size: clamp(62px, 7vw, 108px);
  line-height: 0.88;
}
.journal-intro > p:last-of-type {
  max-width: 620px;
  margin: 34px 0 0;
  color: var(--muted);
  font-size: 17px;
}
.topic-paths {
  max-width: 700px;
  margin-top: 54px;
  border-top: 1px solid var(--line);
}
.topic-paths a {
  min-height: 58px;
  display: flex;
  align-items: center;
  gap: 22px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  font-weight: 700;
}
.topic-paths a span {
  color: var(--wine);
  font-size: 10px;
}
.daily-question {
  align-self: start;
  min-height: 490px;
  display: flex;
  flex-direction: column;
  padding: clamp(34px, 4vw, 58px);
  background: var(--wine);
  color: var(--ivory);
}
.daily-question-meta {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: #e7c6b7;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.daily-question > p {
  margin: auto 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(30px, 3.2vw, 48px);
  line-height: 1.06;
  letter-spacing: -0.035em;
}
.daily-question button {
  width: max-content;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: var(--ivory);
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.daily-question small {
  margin-top: 16px;
  color: rgba(248, 243, 235, 0.58);
  font-size: 11px;
}
.home-articles {
  grid-column: 1 / -1;
  border-top: 1px solid var(--line);
}
.article-row {
  display: grid;
  grid-template-columns: 64px 1fr 44px;
  gap: 28px;
  padding: 40px 0;
  border-bottom: 1px solid var(--line);
}
.article-index {
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
}
.article-eyebrow {
  margin: 0 0 12px !important;
  color: var(--muted) !important;
  font-size: 11px !important;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.article-row h3 {
  max-width: 950px;
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(34px, 4vw, 60px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.035em;
  transition: color 200ms ease;
}
.article-row > div > p:last-child {
  max-width: 760px;
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 15px;
}
.article-arrow {
  align-self: center;
  justify-self: end;
  font-size: 24px;
  transition: transform 200ms ease;
}
.article-row:hover h3 { color: var(--wine); }
.article-row:hover .article-arrow { transform: translateX(5px); }
.journal-button { margin-top: 36px; }

.children {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
  gap: clamp(70px, 11vw, 170px);
  align-items: end;
  background: var(--stone);
}
.children h2 {
  max-width: 940px;
  margin: 0;
  font-size: clamp(58px, 6.8vw, 104px);
  line-height: 0.88;
}
.children-copy {
  max-width: 590px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.children-copy p {
  margin: 0 0 24px;
  color: #514841;
}
.children-copy .button { margin-top: 14px; }

.contact {
  min-height: 72vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--bronze);
  color: var(--ivory);
}
.contact .section-label { color: #d6b17f; }
.contact-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: clamp(70px, 11vw, 170px);
  align-items: end;
}
.contact h2 {
  max-width: 940px;
  margin: 0;
  font-size: clamp(64px, 8vw, 120px);
  line-height: 0.86;
}
.contact-grid > div {
  max-width: 540px;
  padding-top: 28px;
  border-top: 1px solid rgba(248, 243, 235, 0.28);
}
.contact-grid > div > p:first-child {
  margin: 0;
  color: rgba(248, 243, 235, 0.72);
  font-size: 17px;
}
.contact-status {
  margin: 34px 0 16px;
  color: #d6b17f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.site-footer {
  display: grid;
  grid-template-columns: minmax(180px, 0.85fr) minmax(0, 2.1fr) minmax(210px, 1fr) minmax(190px, 0.95fr);
  gap: 48px;
  padding: 68px clamp(24px, 7vw, 112px);
  background: #17110f;
  color: var(--ivory);
}
.site-footer p {
  margin: 18px 0 0;
  color: rgba(248, 243, 235, 0.55);
  font-size: 12px;
}
.footer-navigation {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  min-width: 0;
}
.footer-link-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  font-size: 13px;
}
.footer-link-group h2,
.footer-documents h2 {
  margin: 0 0 6px;
  color: #d6b17f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
}
.footer-link-group a { min-height: 32px; }
.footer-documents {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 280px;
  font-size: 13px;
}
.footer-documents a { min-height: 32px; }
.footer-legal {
  justify-self: end;
  max-width: 380px;
  text-align: right;
}
.footer-legal p { margin: 0 0 10px; }

@media (max-width: 1399px) and (min-width: 981px) {
  .site-footer {
    grid-template-columns: minmax(180px, 0.8fr) minmax(0, 2fr);
    gap: 42px;
  }
  .footer-documents {
    grid-column: 1;
    grid-row: 2;
  }
  .footer-legal {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
    text-align: left;
  }
}

/* Portal pages */
.portal-hero {
  position: relative;
  min-height: calc(100svh - 88px);
  display: grid;
  grid-template-columns: 0.42fr 1.2fr 0.38fr;
  gap: clamp(36px, 6vw, 96px);
  align-items: end;
  padding: clamp(88px, 10vw, 150px) clamp(24px, 7vw, 112px) clamp(74px, 8vw, 120px);
  overflow: hidden;
}
.work-hero {
  background:
    linear-gradient(90deg, rgba(23, 17, 15, 0.97) 0 39%, rgba(43, 32, 28, 0.91) 39% 100%),
    url("/approach-connection.webp") center / cover;
  color: var(--ivory);
}
.routes-hero {
  background:
    linear-gradient(112deg, rgba(238, 229, 216, 0.98) 0 50%, rgba(216, 203, 185, 0.78) 100%),
    url("/approach-route-optimized.webp") center / cover;
}
.portal-hero-index {
  align-self: start;
  color: var(--gold);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(82px, 11vw, 176px);
  line-height: 0.7;
  letter-spacing: -0.06em;
}
.portal-hero-copy .section-label { color: var(--gold); }
.routes-hero .portal-hero-copy .section-label { color: var(--wine); }
.portal-hero h1,
.work-directions-intro h2,
.work-direction h3,
.work-process h2,
.work-process h3,
.portal-cta h2,
.route-navigator h2,
.navigator-stage legend,
.navigator-result h3,
.route-catalog h2,
.route-row h3,
.route-principle h2,
.route-detail h1,
.route-detail h2,
.route-detail h3,
.route-detail blockquote {
  font-family: var(--font-display), Georgia, serif;
  font-weight: 500;
  letter-spacing: -0.045em;
}
.portal-hero h1 {
  max-width: 980px;
  margin: 0;
  font-size: clamp(64px, 8vw, 124px);
  line-height: 0.85;
}
.portal-hero-copy > p:last-child {
  max-width: 620px;
  margin: 34px 0 0;
  color: rgba(248, 243, 235, 0.7);
  font-size: 17px;
}
.routes-hero .portal-hero-copy > p:last-child { color: var(--muted); }
.route-page-title {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.portal-hero-aside {
  max-width: 230px;
  margin: 0;
  padding-top: 18px;
  border-top: 1px solid currentColor;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.62;
}

.work-directions { background: var(--ivory); }
.work-directions-intro {
  display: grid;
  grid-template-columns: 0.55fr 1.45fr;
  gap: 50px;
  align-items: end;
}
.work-directions-intro .section-label { margin: 0; }
.work-directions-intro h2 {
  max-width: 1050px;
  margin: 0;
  font-size: clamp(58px, 7vw, 108px);
  line-height: 0.88;
}
.work-direction {
  display: grid;
  grid-template-columns: 0.55fr 1.1fr 0.8fr;
  gap: clamp(36px, 6vw, 96px);
  padding: clamp(66px, 7vw, 106px) clamp(24px, 7vw, 112px);
  border-top: 1px solid var(--line);
}
.work-direction:nth-of-type(even) { background: var(--paper); }
.work-direction-heading > span {
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
}
.work-direction-heading p {
  max-width: 220px;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.work-direction h3 {
  margin: 0;
  font-size: clamp(54px, 6vw, 94px);
  line-height: 0.88;
}
.work-direction-main p {
  max-width: 620px;
  margin: 30px 0 0;
  color: var(--muted);
  font-size: 16px;
}
.work-direction-details {
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.work-direction-details ul {
  margin: 0 0 36px;
  padding: 0;
  list-style: none;
}
.work-direction-details li {
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}

.work-process {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(72px, 11vw, 180px);
  background: var(--stone);
}
.work-process h2 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(60px, 7vw, 106px);
  line-height: 0.88;
}
.work-process ol {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.work-process li {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 26px;
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
}
.work-process li > span {
  color: var(--wine);
  font-size: 10px;
  font-weight: 800;
}
.work-process h3 {
  margin: 0 0 8px;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1;
}
.work-process li p { margin: 0; color: #514841; }

.portal-cta {
  display: grid;
  grid-template-columns: 0.45fr 1.1fr 0.55fr;
  gap: clamp(46px, 8vw, 130px);
  align-items: end;
  background: var(--bronze);
  color: var(--ivory);
}
.portal-cta .section-label { color: var(--gold); }
.portal-cta h2 {
  max-width: 980px;
  margin: 0;
  font-size: clamp(60px, 7vw, 106px);
  line-height: 0.88;
}
.portal-cta > div {
  padding-top: 24px;
  border-top: 1px solid rgba(248, 243, 235, 0.25);
}
.portal-cta > div p {
  margin: 0 0 28px;
  color: rgba(248, 243, 235, 0.68);
}

.route-navigator {
  display: grid;
  grid-template-columns: minmax(320px, 0.72fr) minmax(0, 1.28fr);
  min-height: 760px;
  background: var(--bronze);
  color: var(--ivory);
}
.navigator-side {
  display: flex;
  flex-direction: column;
  padding: clamp(70px, 8vw, 124px) clamp(36px, 7vw, 112px);
  border-right: 1px solid rgba(248, 243, 235, 0.18);
}
.navigator-side .section-label { color: var(--gold); }
.route-navigator h2 {
  max-width: 560px;
  margin: 0;
  font-size: clamp(64px, 7vw, 104px);
  line-height: 0.86;
}
.navigator-side > p:not(.section-label) {
  max-width: 500px;
  margin: 34px 0 0;
  color: rgba(248, 243, 235, 0.65);
}
.navigator-definition {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: auto;
  padding-top: 64px;
}
.navigator-definition strong {
  margin-bottom: 14px;
  color: var(--gold);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.navigator-definition span {
  padding: 12px 0;
  border-top: 1px solid rgba(248, 243, 235, 0.18);
  color: rgba(248, 243, 235, 0.72);
  font-size: 12px;
}
.navigator-definition span:last-child {
  border-bottom: 1px solid rgba(248, 243, 235, 0.18);
}
.navigator-progress {
  display: flex;
  gap: 24px;
  margin-top: auto;
  padding-top: 64px;
}
.navigator-progress span {
  color: rgba(248, 243, 235, 0.28);
  font-size: 10px;
  font-weight: 800;
  transition: color 220ms ease;
}
.navigator-progress .is-active { color: var(--gold); }
.navigator-stage {
  display: flex;
  align-items: center;
  padding: clamp(70px, 8vw, 124px) clamp(36px, 7vw, 112px);
}
.navigator-stage fieldset {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
}
.navigator-stage legend {
  max-width: 820px;
  margin: 0 0 50px;
  font-size: clamp(43px, 5vw, 72px);
  line-height: 0.95;
}
.navigator-options { border-top: 1px solid rgba(248, 243, 235, 0.2); }
.navigator-options button {
  width: 100%;
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 16px 0;
  border: 0;
  border-bottom: 1px solid rgba(248, 243, 235, 0.2);
  background: transparent;
  color: var(--ivory);
  cursor: pointer;
  text-align: left;
  transition: color 180ms ease, padding 180ms ease;
}
.navigator-options button:hover {
  padding-right: 12px;
  padding-left: 12px;
  color: #e3c59a;
}
.navigator-options-routes { display: block; }
.navigator-options-routes button {
  display: grid;
  grid-template-columns: 36px minmax(150px, 0.55fr) minmax(240px, 1.45fr);
  justify-content: initial;
}
.navigator-options-routes button span {
  color: var(--gold);
  font-size: 10px;
}
.navigator-options-routes button b {
  font-family: var(--font-display), Georgia, serif;
  font-size: 22px;
  font-weight: 500;
}
.navigator-options-routes button small {
  color: rgba(248, 243, 235, 0.55);
  font-size: 11px;
  line-height: 1.5;
}
.navigator-back {
  min-height: 44px;
  margin-top: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(248, 243, 235, 0.55);
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}
.navigator-result-kicker {
  margin: 0 0 30px !important;
  color: var(--gold) !important;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.navigator-result h3 {
  max-width: 880px;
  margin: 0;
  font-size: clamp(58px, 7vw, 106px);
  line-height: 0.86;
}
.navigator-result > p {
  max-width: 680px;
  margin: 34px 0 0;
  color: rgba(248, 243, 235, 0.75);
  font-size: 17px;
}
.navigator-result-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 38px;
  margin-top: 44px;
}
.navigator-result-grid > div {
  padding-top: 20px;
  border-top: 1px solid rgba(248, 243, 235, 0.24);
}
.navigator-result-grid strong {
  color: var(--gold);
  font-size: 10px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.navigator-result-grid ul {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}
.navigator-result-grid li {
  padding: 10px 0;
  border-bottom: 1px solid rgba(248, 243, 235, 0.16);
  color: rgba(248, 243, 235, 0.72);
  font-size: 12px;
}
.navigator-result-grid p {
  margin: 18px 0 0;
  color: rgba(248, 243, 235, 0.72);
  font-size: 14px;
}
.navigator-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 28px;
  margin-top: 40px;
}
.navigator-actions .text-link,
.navigator-actions .navigator-back { color: var(--ivory); }
.navigator-actions .navigator-back { margin-top: 0; }

.route-how {
  background: var(--ivory);
}
.route-how > header {
  display: grid;
  grid-template-columns: 0.45fr 1.55fr;
  gap: 46px;
  align-items: end;
  margin-bottom: 68px;
}
.route-how > header .section-label { margin: 0; }
.route-how h2 {
  max-width: 1020px;
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(58px, 7vw, 106px);
  font-weight: 500;
  line-height: 0.88;
  letter-spacing: -0.045em;
}
.route-how ol {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  list-style: none;
}
.route-how li {
  min-height: 300px;
  display: flex;
  flex-direction: column;
  padding: clamp(30px, 4vw, 54px);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.route-how li > span {
  color: var(--wine);
  font-size: 10px;
  font-weight: 800;
}
.route-how h3 {
  margin: auto 0 22px;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(34px, 4vw, 56px);
  font-weight: 500;
  line-height: 0.94;
  letter-spacing: -0.04em;
}
.route-how li p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}
.route-catalog { background: var(--ivory); }
.route-catalog-heading {
  display: grid;
  grid-template-columns: 0.6fr 1.4fr;
  gap: 40px;
  align-items: end;
  margin-bottom: 70px;
}
.route-catalog-heading .section-label { margin: 0; }
.route-catalog h2 {
  max-width: 980px;
  margin: 0;
  font-size: clamp(60px, 7vw, 108px);
  line-height: 0.88;
}
.route-list { border-top: 1px solid var(--line); }
.route-row {
  min-height: 164px;
  display: grid;
  grid-template-columns: 72px 1fr 44px;
  gap: 28px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  transition: padding 220ms ease, background 220ms ease, color 220ms ease;
}
.route-row:hover {
  padding: 0 18px;
  background: var(--paper);
}
.route-row-number {
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
}
.route-row p {
  margin: 0 0 9px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.route-row h3 {
  max-width: 1120px;
  margin: 0;
  font-size: clamp(34px, 4vw, 58px);
  line-height: 1;
}
.route-row small {
  max-width: 900px;
  display: block;
  margin-top: 16px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}
.route-row-arrow {
  justify-self: end;
  font-size: 23px;
  transition: transform 200ms ease;
}
.route-row:hover .route-row-arrow { transform: translate(4px, -4px); }

.route-principle {
  display: grid;
  grid-template-columns: 0.55fr 1.45fr;
  gap: clamp(50px, 9vw, 150px);
  background: var(--stone);
}
.route-principle .section-label { margin: 0; }
.route-principle h2 {
  max-width: 1060px;
  margin: 0;
  font-size: clamp(58px, 7vw, 106px);
  line-height: 0.88;
}
.route-principle div p {
  max-width: 650px;
  margin: 34px 0 0;
  color: #514841;
}

.route-detail-hero {
  display: flex;
  flex-direction: column;
  gap: clamp(56px, 8vw, 120px);
  padding-top: clamp(52px, 7vw, 96px);
  padding-bottom: clamp(64px, 8vw, 116px);
  background: var(--paper);
}
.route-detail-wine .route-detail-hero { background: #713a3d; color: var(--ivory); }
.route-detail-gold .route-detail-hero {
  gap: clamp(30px, 4vw, 56px);
  padding-top: clamp(42px, 5vw, 68px);
  padding-bottom: clamp(52px, 6vw, 84px);
  background:
    radial-gradient(72% 128% at 92% -32%, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0) 68%),
    linear-gradient(122deg, #edf5f1 0%, #dbe9e3 100%);
  color: #243b34;
}
.route-detail-bronze .route-detail-hero { background: var(--bronze); color: var(--ivory); }
.route-detail-paper .route-detail-hero { background: var(--paper); }
.route-detail-stone .route-detail-hero { background: var(--stone); }
.route-detail-night .route-detail-hero { background: #17191b; color: var(--ivory); }
.route-detail-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.route-detail-meta p {
  margin: 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.route-save {
  min-height: 44px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.route-detail h1 {
  max-width: 1220px;
  margin: 80px 0;
  font-size: clamp(72px, 10vw, 152px);
  line-height: 0.8;
}
.route-detail-deck {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: clamp(50px, 9vw, 150px);
  align-items: end;
}
.route-detail-deck > p {
  max-width: 570px;
  margin: 0;
  opacity: 0.7;
}
.route-detail-gold .route-detail-deck {
  grid-template-columns: minmax(220px, 0.58fr) minmax(0, 1.42fr);
  gap: clamp(34px, 6vw, 96px);
  align-items: center;
}
.route-detail-gold .route-detail-deck > p {
  color: #42655b;
  opacity: 1;
}
.route-detail blockquote {
  max-width: 860px;
  margin: 0;
  padding-top: 26px;
  border-top: 1px solid currentColor;
  font-size: clamp(30px, 4vw, 56px);
  line-height: 1.08;
}
.route-detail-gold blockquote {
  padding-top: 0;
  border-top: 0;
}
.route-usage {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(70px, 11vw, 170px);
  background: var(--ivory);
}
.route-usage h2 {
  max-width: 900px;
  margin: 0;
  font-size: clamp(52px, 6vw, 88px);
  line-height: 0.92;
}
.route-usage-guide {
  border-top: 1px solid var(--line);
}
.route-usage-guide > div {
  padding: 25px 0;
  border-bottom: 1px solid var(--line);
}
.route-usage-guide span,
.route-steps li strong {
  color: var(--wine);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.route-usage-guide p {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 13px;
}
.route-related-link {
  width: max-content;
  max-width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  border-bottom: 1px solid currentColor;
  font-size: 11px;
  font-weight: 800;
}
.route-related-link span { color: inherit; }
.route-usage-guide ul {
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}
.route-usage-guide li {
  position: relative;
  padding: 8px 0 8px 22px;
  color: var(--muted);
  font-size: 13px;
}
.route-usage-guide li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--wine);
}
.route-first-step {
  display: grid;
  grid-template-columns: 0.5fr 1.5fr;
  gap: clamp(50px, 9vw, 150px);
  background: var(--ivory);
}
.route-first-step .section-label { margin: 0; }
.route-first-step h2 {
  margin: 0;
  font-size: clamp(62px, 7vw, 108px);
  line-height: 0.88;
}
.route-first-step div p {
  max-width: 760px;
  margin: 40px 0 0;
  color: var(--muted);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(25px, 3vw, 40px);
  line-height: 1.35;
}
.route-steps { background: var(--bronze); color: var(--ivory); }
.route-steps header {
  display: grid;
  grid-template-columns: 0.5fr 1.5fr;
  gap: 50px;
  align-items: end;
}
.route-steps header .section-label { margin: 0; color: var(--gold); }
.route-steps header h2 {
  max-width: 980px;
  margin: 0;
  font-size: clamp(62px, 7vw, 108px);
  line-height: 0.88;
}
.route-steps ol {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(248, 243, 235, 0.2);
}
.route-steps li {
  min-height: 250px;
  display: grid;
  grid-template-columns: 0.35fr 0.85fr 1fr;
  gap: clamp(36px, 7vw, 110px);
  align-items: center;
  padding: 50px clamp(24px, 7vw, 112px);
  border-bottom: 1px solid rgba(248, 243, 235, 0.2);
}
.route-steps li > span {
  color: var(--gold);
  font-size: 11px;
  font-weight: 800;
}
.route-steps h3 {
  margin: 0;
  font-size: clamp(42px, 5vw, 72px);
  line-height: 0.9;
}
.route-steps li > div p {
  max-width: 610px;
  margin: 10px 0 0;
  color: rgba(248, 243, 235, 0.66);
}
.route-steps li strong { color: var(--gold); }
.route-reading {
  display: grid;
  grid-template-columns: 0.5fr 1.5fr;
  gap: clamp(50px, 9vw, 150px);
  background: var(--stone);
}
.route-reading .section-label { margin: 0; }
.route-reading h2 {
  max-width: 980px;
  margin: 0 0 34px;
  font-size: clamp(56px, 7vw, 100px);
  line-height: 0.9;
}
.route-next {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: clamp(60px, 11vw, 170px);
  align-items: end;
  background: var(--ivory);
}
.route-next h2 {
  max-width: 940px;
  margin: 0 0 36px;
  font-size: clamp(54px, 6vw, 92px);
  line-height: 0.9;
}
.route-next > div:last-child {
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.route-next > div:last-child p {
  margin: 0 0 28px;
  color: var(--muted);
}

/* Journal and article pages */
.articles-index {
  min-height: 72vh;
  background: var(--ivory);
}
.articles-index-intro {
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  gap: 48px;
  margin-bottom: 72px;
}
.articles-index h1 {
  margin: 0;
  font-size: clamp(72px, 10vw, 150px);
  line-height: 0.8;
}
.articles-index .intro-copy {
  max-width: 540px;
  margin: 28px 0 0;
  color: var(--muted);
}
.article-page { background: var(--ivory); }
.article-hero {
  padding-top: clamp(90px, 9vw, 140px);
  padding-bottom: 96px;
  border-bottom: 1px solid var(--line);
}
.article-hero h1 {
  max-width: 1120px;
  margin: 0;
  font-size: clamp(58px, 8vw, 124px);
  line-height: 0.86;
}
.article-deck {
  max-width: 740px;
  margin: 38px 0 0;
  color: var(--muted);
  font-size: clamp(17px, 1.8vw, 22px);
}
.article-meta {
  display: flex;
  gap: 18px;
  margin-bottom: 30px;
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.article-body {
  max-width: 820px;
  margin: 0 auto;
  padding: 100px 24px 120px;
}
.article-body section { margin-bottom: 78px; }
.article-body h2 {
  margin: 0 0 26px;
  font-size: clamp(38px, 4.5vw, 64px);
  line-height: 1;
}
.article-body p {
  margin: 0 0 22px;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(21px, 2.2vw, 29px);
  line-height: 1.55;
}
.article-summary {
  margin-bottom: 86px;
  padding: 42px 46px;
  background: var(--paper);
  border-left: 3px solid var(--wine);
}
.article-summary > p,
.article-toc > p,
.article-sources > p {
  margin: 0 0 24px;
  color: var(--wine);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.article-summary ul,
.article-points,
.article-toc ol,
.article-sources ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.article-summary li {
  position: relative;
  padding: 16px 0 16px 34px;
  border-top: 1px solid var(--line);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(20px, 2vw, 27px);
  line-height: 1.35;
}
.article-summary li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--wine);
}
.article-toc {
  margin-bottom: 92px;
  border-top: 1px solid var(--line);
}
.article-toc > p { margin: 24px 0; }
.article-toc li { border-top: 1px solid var(--line); }
.article-toc li:last-child { border-bottom: 1px solid var(--line); }
.article-toc a {
  min-height: 64px;
  display: grid;
  grid-template-columns: 54px 1fr;
  align-items: center;
  font-weight: 700;
}
.article-toc a span { color: var(--wine); font-size: 10px; }
.article-toc a:hover { color: var(--wine); }
.article-points {
  margin-top: 34px;
  border-top: 1px solid var(--line);
}
.article-points li {
  position: relative;
  padding: 20px 14px 20px 42px;
  border-bottom: 1px solid var(--line);
  font-size: 15px;
}
.article-points li::before {
  content: "→";
  position: absolute;
  left: 2px;
  color: var(--wine);
}
.article-safety {
  margin: 12px 0 78px;
  padding: 34px 38px;
  background: var(--wine);
  color: var(--ivory);
}
.article-safety strong {
  display: block;
  margin-bottom: 12px;
  color: #e3c59a;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.article-safety p {
  margin: 0;
  color: rgba(248, 243, 235, 0.88);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 15px;
  line-height: 1.7;
}
.article-sources {
  margin: 86px 0 72px;
  padding-top: 50px;
  border-top: 1px solid var(--line);
}
.article-sources h2 { max-width: 660px; }
.article-sources ul { margin-top: 42px; }
.article-sources li { border-top: 1px solid var(--line); }
.article-sources li:last-child { border-bottom: 1px solid var(--line); }
.article-sources a {
  min-height: 76px;
  display: grid;
  grid-template-columns: 1fr 24px;
  gap: 20px;
  align-items: center;
  font-size: 14px;
  font-weight: 700;
}
.article-sources a:hover { color: var(--wine); }
.article-disclaimer {
  padding-top: 28px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-family: var(--font-sans), Arial, sans-serif !important;
  font-size: 13px !important;
}
.article-route {
  margin-top: 70px;
  padding: 42px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.article-route > p {
  margin: 0 0 16px;
  color: var(--wine);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.article-route h2 {
  margin: 0 0 24px;
  font-size: clamp(38px, 4.5vw, 62px);
  line-height: 0.95;
}
.article-back { margin-top: 30px; }

/* Psychology and children portal */
.section-hub h1,
.section-hub h2,
.section-hub h3,
.editorial-detail h1,
.editorial-detail h2,
.editorial-detail h3,
.compact-hero h1,
.navigator-note h2,
.children-navigator h1,
.children-navigator h2,
.children-navigator h3,
.age-index h2,
.age-detail h1,
.age-detail h2,
.route-comparison h2,
.route-comparison h3,
.decision-strip h2,
.approach-directory h2,
.approach-directory h3,
.definition-band h3,
.method-toolkit h2,
.method-toolkit h3,
.learning-loop h2,
.situation-directory h2,
.situation-directory h3,
.layer-map h2,
.parent-observation h2,
.support-formats h2,
.support-formats h3,
.methodologist h2,
.support-boundaries h2 {
  font-family: var(--font-display), Georgia, serif;
  font-weight: 500;
  letter-spacing: -0.045em;
}

.section-hub-hero {
  position: relative;
  min-height: calc(100svh - 88px);
  display: grid;
  grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
  grid-template-rows: 1fr auto;
  overflow: hidden;
  background: var(--paper);
}
.section-hub-visual {
  grid-row: 1 / 3;
  min-height: 720px;
  background-position: center;
  background-size: cover;
}
.section-hub-hero-psychology .section-hub-visual {
  background-image:
    linear-gradient(180deg, rgba(248, 243, 235, 0.08), rgba(43, 32, 28, 0.2)),
    url("/approach-layers.webp");
}
.section-hub-hero-children .section-hub-visual {
  background-image:
    linear-gradient(180deg, rgba(248, 243, 235, 0.02), rgba(43, 32, 28, 0.22)),
    url("/approach-route-optimized.webp");
}
.section-hub-title {
  align-self: end;
  padding: clamp(72px, 9vw, 138px) clamp(36px, 7vw, 112px) 54px;
}
.section-hub-title h1 {
  max-width: 1050px;
  margin: 0;
  font-size: clamp(68px, 7.5vw, 118px);
  line-height: 0.85;
}
.section-hub-deck {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) auto;
  gap: 42px;
  align-items: end;
  padding: 32px clamp(36px, 7vw, 112px) clamp(62px, 7vw, 104px);
  border-top: 1px solid var(--line);
}
.section-hub-deck p {
  max-width: 670px;
  margin: 0;
  color: var(--muted);
  font-size: 17px;
}

.section-hub-manifest {
  display: grid;
  grid-template-columns: 0.45fr 1.55fr;
  gap: clamp(50px, 9vw, 150px);
  align-items: start;
  background: var(--ivory);
}
.section-hub-manifest h2 {
  max-width: 1080px;
  margin: 0;
  font-size: clamp(58px, 7vw, 108px);
  line-height: 0.88;
}
.section-hub-manifest div p {
  max-width: 690px;
  margin: 34px 0 0 auto;
  padding-top: 26px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 17px;
}

.section-catalog,
.children-entrances { background: var(--stone); }
.section-catalog-header {
  display: grid;
  grid-template-columns: 0.55fr 1.45fr;
  gap: 46px;
  align-items: end;
  margin-bottom: 70px;
}
.section-catalog-header .section-label { margin: 0; }
.section-catalog-header h2 {
  max-width: 980px;
  margin: 0;
  font-size: clamp(58px, 7vw, 106px);
  line-height: 0.88;
}
.section-catalog-list { border-top: 1px solid var(--line); }
.section-catalog-row {
  min-height: 170px;
  display: grid;
  grid-template-columns: 60px 1fr 36px;
  gap: 32px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  transition: padding 220ms ease, background 220ms ease;
}
.section-catalog-row:hover {
  padding: 0 18px;
  background: rgba(248, 243, 235, 0.36);
}
.section-catalog-row > span {
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
}
.section-catalog-row p {
  margin: 0 0 8px;
  color: var(--wine);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.section-catalog-row h3 {
  max-width: 900px;
  margin: 0;
  font-size: clamp(34px, 4vw, 60px);
  line-height: 1;
}
.section-catalog-row small {
  max-width: 760px;
  display: block;
  margin-top: 15px;
  color: #514841;
  font-size: 13px;
}
.section-catalog-row > i {
  justify-self: end;
  font-style: normal;
  font-size: 22px;
}

.crossroad,
.support-boundaries {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(70px, 11vw, 170px);
  align-items: end;
  background: var(--paper);
}
.crossroad h2,
.support-boundaries h2 {
  max-width: 900px;
  margin: 0;
  font-size: clamp(56px, 6.5vw, 100px);
  line-height: 0.9;
}
.crossroad > div:last-child,
.support-boundaries > div:last-child {
  max-width: 590px;
  padding-top: 26px;
  border-top: 1px solid var(--line);
}
.crossroad > div:last-child p,
.support-boundaries > div:last-child p {
  margin: 0 0 28px;
  color: var(--muted);
}

.section-final-cta {
  display: grid;
  grid-template-columns: 0.35fr 1.15fr 0.5fr;
  gap: clamp(40px, 7vw, 110px);
  align-items: end;
  background: var(--bronze);
  color: var(--ivory);
}
.section-final-cta .section-label { color: var(--gold); }
.section-final-cta h2 {
  max-width: 940px;
  margin: 0;
  font-size: clamp(58px, 7vw, 108px);
  line-height: 0.88;
}
.section-final-cta > div {
  padding-top: 24px;
  border-top: 1px solid rgba(248, 243, 235, 0.24);
}
.section-final-cta > div p {
  margin: 0 0 28px;
  color: rgba(248, 243, 235, 0.7);
}

.children-entrance-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.children-entrance-grid a {
  position: relative;
  min-height: 360px;
  display: flex;
  flex-direction: column;
  padding: clamp(30px, 4vw, 58px);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transition: background 220ms ease, color 220ms ease;
}
.children-entrance-grid a:hover { background: var(--bronze); color: var(--ivory); }
.children-entrance-grid span {
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
}
.children-entrance-grid a:hover span { color: var(--gold); }
.children-entrance-grid h3 {
  margin: auto 0 20px;
  font-size: clamp(36px, 4vw, 58px);
  line-height: 0.92;
}
.children-entrance-grid p {
  margin: 0;
  color: #514841;
  font-size: 14px;
}
.children-entrance-grid a:hover p { color: rgba(248, 243, 235, 0.68); }
.children-entrance-grid i {
  position: absolute;
  top: 32px;
  right: 32px;
  font-style: normal;
}

.age-ribbon {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(70px, 10vw, 160px);
  background: var(--bronze);
  color: var(--ivory);
}
.age-ribbon .section-label { color: var(--gold); }
.age-ribbon h2 {
  max-width: 740px;
  margin: 0;
  font-size: clamp(60px, 7vw, 108px);
  line-height: 0.87;
}
.age-ribbon nav { border-top: 1px solid rgba(248, 243, 235, 0.24); }
.age-ribbon a {
  min-height: 112px;
  display: grid;
  grid-template-columns: 42px 120px 1fr;
  gap: 22px;
  align-items: center;
  border-bottom: 1px solid rgba(248, 243, 235, 0.24);
}
.age-ribbon a > span { color: var(--gold); font-size: 10px; }
.age-ribbon a strong {
  font-family: var(--font-display), Georgia, serif;
  font-size: 25px;
  font-weight: 500;
}
.age-ribbon a small { color: rgba(248, 243, 235, 0.58); }

.situation-preview {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(70px, 10vw, 160px);
  background: var(--ivory);
}
.situation-preview h2 {
  max-width: 740px;
  margin: 0;
  font-size: clamp(58px, 6.5vw, 100px);
  line-height: 0.9;
}
.situation-preview > div { border-top: 1px solid var(--line); }
.situation-preview a {
  display: grid;
  grid-template-columns: 42px 0.85fr 1.15fr;
  gap: 24px;
  align-items: start;
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
}
.situation-preview a span { color: var(--wine); font-size: 10px; }
.situation-preview a h3 { margin: 0; font-size: 28px; line-height: 1; }
.situation-preview a p { margin: 0; color: var(--muted); font-size: 13px; }

.compact-hero {
  min-height: 710px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: var(--stone);
}
.compact-hero h1 {
  max-width: 1180px;
  margin: 0;
  font-size: clamp(70px, 8.5vw, 132px);
  line-height: 0.84;
}
.compact-hero > p:last-child {
  max-width: 700px;
  margin: 38px 0 0 auto;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  color: #514841;
  font-size: 17px;
}
.compact-hero-paper { background: var(--paper); }
.compact-hero-route {
  background:
    linear-gradient(90deg, rgba(238, 229, 216, 0.96), rgba(238, 229, 216, 0.67)),
    url("/approach-route-optimized.webp") center / cover;
}
.compact-hero-layers {
  background:
    linear-gradient(90deg, rgba(248, 243, 235, 0.96), rgba(248, 243, 235, 0.68)),
    url("/approach-layers.webp") center / cover;
}
.compact-hero-wine { background: var(--wine); color: var(--ivory); }
.compact-hero-wine .section-label { color: #e3c59a; }
.compact-hero-wine > p:last-child {
  color: rgba(248, 243, 235, 0.7);
  border-color: rgba(248, 243, 235, 0.28);
}
.compact-hero-dark { background: var(--bronze); color: var(--ivory); }
.compact-hero-dark .section-label { color: var(--gold); }
.compact-hero-dark > p:last-child {
  color: rgba(248, 243, 235, 0.7);
  border-color: rgba(248, 243, 235, 0.25);
}

.children-navigator {
  min-height: 800px;
  display: grid;
  grid-template-columns: minmax(320px, 0.72fr) minmax(0, 1.28fr);
  background: var(--bronze);
  color: var(--ivory);
}
.children-navigator-side {
  display: flex;
  flex-direction: column;
  padding: clamp(70px, 8vw, 124px) clamp(36px, 7vw, 112px);
  border-right: 1px solid rgba(248, 243, 235, 0.18);
}
.children-navigator-side .section-label { color: var(--gold); }
.children-navigator-side :is(h1, h2) {
  max-width: 560px;
  margin: 0;
  font-size: clamp(62px, 7vw, 104px);
  line-height: 0.86;
}
.children-navigator-side > p:not(.section-label) {
  max-width: 500px;
  margin: 34px 0 0;
  color: rgba(248, 243, 235, 0.64);
}
.children-navigator-progress {
  display: flex;
  gap: 24px;
  margin-top: auto;
  padding-top: 60px;
}
.children-navigator-progress span {
  color: rgba(248, 243, 235, 0.24);
  font-size: 10px;
  font-weight: 800;
}
.children-navigator-progress .is-active { color: var(--gold); }
.children-navigator-stage {
  display: flex;
  align-items: center;
  padding: clamp(70px, 8vw, 124px) clamp(36px, 7vw, 112px);
}
.children-navigator-stage fieldset { width: 100%; margin: 0; padding: 0; border: 0; }
.children-navigator-stage legend {
  max-width: 820px;
  margin-bottom: 46px;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(43px, 5vw, 72px);
  line-height: 0.95;
  letter-spacing: -0.045em;
}
.children-navigator-options { border-top: 1px solid rgba(248, 243, 235, 0.2); }
.children-navigator-options button {
  width: 100%;
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  border: 0;
  border-bottom: 1px solid rgba(248, 243, 235, 0.2);
  background: transparent;
  color: var(--ivory);
  cursor: pointer;
  text-align: left;
  transition: padding 180ms ease, color 180ms ease;
}
.children-navigator-options button:hover { padding: 16px 12px; color: #e3c59a; }
.children-navigator-back {
  min-height: 44px;
  margin-top: 22px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(248, 243, 235, 0.52);
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.children-navigator-result > p {
  margin: 0 0 28px;
  color: var(--gold);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.children-navigator-result :is(h2, h3) {
  max-width: 900px;
  margin: 0;
  font-size: clamp(56px, 7vw, 102px);
  line-height: 0.86;
}
.children-navigator-result-copy {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 46px;
  align-items: end;
  margin-top: 42px;
  padding-top: 26px;
  border-top: 1px solid rgba(248, 243, 235, 0.2);
}
.children-navigator-result-copy > p { max-width: 620px; margin: 0; color: rgba(248, 243, 235, 0.7); }
.children-navigator-result-copy > div { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.children-navigator-result-copy .text-link { color: var(--ivory); }
.navigator-note {
  display: grid;
  grid-template-columns: 0.45fr 1.55fr;
  gap: clamp(60px, 9vw, 150px);
  background: var(--paper);
}
.navigator-note h2 {
  max-width: 880px;
  margin: 0;
  font-size: clamp(54px, 6vw, 94px);
  line-height: 0.9;
}
.navigator-note div p { max-width: 650px; margin: 30px 0 0; color: var(--muted); }

.editorial-detail-hero {
  min-height: calc(100svh - 88px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--paper);
}
.psychology-detail .editorial-detail-hero {
  background:
    linear-gradient(90deg, rgba(248, 243, 235, 0.98) 0 56%, rgba(238, 229, 216, 0.72) 100%),
    url("/approach-layers.webp") right center / 65% auto;
}
.editorial-detail-meta {
  margin: 0;
  color: var(--wine);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.editorial-detail h1,
.age-detail h1 {
  max-width: 1180px;
  margin: 58px 0;
  font-size: clamp(72px, 9vw, 136px);
  line-height: 0.82;
}
.editorial-detail-intro {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: clamp(60px, 9vw, 150px);
  align-items: end;
  padding-top: 26px;
  border-top: 1px solid var(--line);
}
.editorial-detail-intro > p { max-width: 590px; margin: 0; color: var(--muted); }
.editorial-detail-intro blockquote {
  max-width: 820px;
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(32px, 4vw, 58px);
  line-height: 1.05;
  letter-spacing: -0.03em;
}
.editorial-block {
  display: grid;
  grid-template-columns: 0.35fr 1.65fr;
  gap: clamp(60px, 9vw, 150px);
  border-top: 1px solid var(--line);
  background: var(--ivory);
}
.editorial-block:nth-child(even) { background: var(--stone); }
.editorial-block > span { color: var(--wine); font-size: 11px; font-weight: 800; }
.editorial-block h2 {
  max-width: 890px;
  margin: 0 0 44px;
  font-size: clamp(54px, 6.5vw, 98px);
  line-height: 0.89;
}
.editorial-block p {
  max-width: 760px;
  margin: 0 0 22px;
  color: var(--muted);
  font-size: 17px;
}
.editorial-block ul,
.age-columns ul,
.parent-observation ul {
  max-width: 760px;
  margin: 38px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.editorial-block li,
.age-columns li,
.parent-observation li {
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
}
.editorial-block li::before,
.age-columns li::before,
.parent-observation li::before {
  content: "—";
  margin-right: 14px;
  color: var(--wine);
}
.editorial-bridge {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(70px, 11vw, 170px);
  align-items: end;
  background: var(--bronze);
  color: var(--ivory);
}
.editorial-bridge .section-label { color: var(--gold); }
.editorial-bridge h2 {
  max-width: 860px;
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(56px, 6.5vw, 100px);
  font-weight: 500;
  line-height: 0.89;
  letter-spacing: -0.045em;
}
.editorial-bridge > div:last-child {
  max-width: 590px;
  padding-top: 26px;
  border-top: 1px solid rgba(248, 243, 235, 0.24);
}
.editorial-bridge > div:last-child p { margin: 0 0 30px; color: rgba(248, 243, 235, 0.68); }
.editorial-next { background: var(--paper); }
.editorial-next > p {
  margin: 0 0 24px;
  color: var(--wine);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.editorial-next a {
  display: grid;
  grid-template-columns: 0.35fr 1.65fr 36px;
  gap: 30px;
  align-items: center;
  padding: 34px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(32px, 4vw, 58px);
  line-height: 1;
}
.editorial-next a span {
  color: var(--wine);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.editorial-next a i { justify-self: end; font-style: normal; }

.age-index { background: var(--ivory); }
.age-index > a {
  min-height: 250px;
  display: grid;
  grid-template-columns: 64px 1fr 36px;
  gap: 30px;
  align-items: center;
  border-top: 1px solid var(--line);
}
.age-index > a:last-child { border-bottom: 1px solid var(--line); }
.age-index > a > span { color: var(--wine); font-size: 11px; font-weight: 800; }
.age-index p { margin: 0 0 10px; color: var(--wine); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.age-index h2 { max-width: 930px; margin: 0; font-size: clamp(42px, 5vw, 76px); line-height: 0.95; }
.age-index small { max-width: 760px; display: block; margin-top: 20px; color: var(--muted); }
.age-index i { justify-self: end; font-style: normal; font-size: 22px; }
.age-detail-hero { background: var(--stone); }
.age-columns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  padding-top: 0;
  padding-bottom: 0;
  background: var(--ivory);
}
.age-columns article {
  min-height: 620px;
  padding: clamp(70px, 7vw, 110px) clamp(28px, 4vw, 62px);
  border-right: 1px solid var(--line);
}
.age-columns article:last-child { border-right: 0; }
.age-columns article > span { color: var(--wine); font-size: 10px; font-weight: 800; }
.age-columns h2 { margin: 80px 0 36px; font-size: clamp(40px, 4vw, 62px); line-height: 0.92; }
.age-columns ul { margin-top: 0; }

.route-comparison,
.approach-directory,
.method-toolkit,
.situation-directory,
.support-formats { background: var(--ivory); }
.route-comparison > header,
.approach-directory > header,
.method-toolkit > header,
.situation-directory > header,
.support-formats > header {
  display: grid;
  grid-template-columns: 0.45fr 1.55fr;
  gap: 50px;
  align-items: end;
  margin-bottom: 74px;
}
.route-comparison header .section-label,
.approach-directory header .section-label,
.method-toolkit header .section-label,
.situation-directory header .section-label,
.support-formats header .section-label { margin: 0; }
.route-comparison h2,
.approach-directory h2,
.method-toolkit h2,
.situation-directory h2,
.support-formats h2 {
  max-width: 1020px;
  margin: 0;
  font-size: clamp(58px, 7vw, 106px);
  line-height: 0.88;
}
.route-comparison > div {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.route-comparison article {
  min-height: 430px;
  display: flex;
  flex-direction: column;
  padding: clamp(34px, 5vw, 70px);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.route-comparison article > span { color: var(--wine); font-size: 10px; font-weight: 800; }
.route-comparison h3 { margin: auto 0 24px; font-size: clamp(42px, 5vw, 70px); line-height: 0.9; }
.route-comparison article > p { max-width: 600px; margin: 0 0 30px; color: var(--muted); }
.route-comparison article > div {
  margin-top: auto;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  color: #514841;
  font-size: 13px;
}
.route-comparison article > div strong {
  display: block;
  margin-bottom: 8px;
  color: var(--wine);
  font-size: 9px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.decision-strip { background: var(--stone); }
.decision-strip h2 { max-width: 900px; margin: 0 0 60px; font-size: clamp(56px, 6.5vw, 100px); line-height: 0.9; }
.decision-strip ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.decision-strip li {
  min-height: 92px;
  display: grid;
  grid-template-columns: 64px 1fr;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.decision-strip li span { color: var(--wine); font-size: 10px; font-weight: 800; }

.approach-directory > div { border-top: 1px solid var(--line); }
.approach-group + .approach-group { margin-top: 72px; }
.approach-group > header {
  display: grid;
  grid-template-columns: 0.45fr 1.55fr;
  gap: 50px;
  align-items: end;
  padding: 30px 0 26px;
  border-bottom: 1px solid var(--line);
}
.approach-group > header .section-label { margin: 0; }
.approach-group > header > div > p { max-width: 760px; margin: 0; color: var(--muted); font-size: 14px; }
.approach-directory .approach-group-title { margin: 0 0 18px; font-size: clamp(32px, 4vw, 58px); line-height: 0.92; }
.approach-directory article {
  display: grid;
  grid-template-columns: 0.45fr 1.55fr;
  gap: clamp(50px, 8vw, 130px);
  padding: 68px 0;
  border-bottom: 1px solid var(--line);
}
.approach-directory-meta {
  display: grid;
  grid-template-columns: 42px 1fr;
  align-content: start;
  gap: 10px 20px;
}
.approach-directory-meta span { color: var(--wine); font-size: 10px; font-weight: 800; }
.approach-directory-meta p { margin: 0; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.approach-directory-meta small { grid-column: 2; color: var(--muted); }
.approach-directory h3 { margin: 0 0 24px; font-size: clamp(48px, 5.5vw, 82px); line-height: 0.9; }
.approach-directory article > div:last-child > p { max-width: 760px; margin: 0; color: var(--muted); font-size: 16px; }
.approach-directory blockquote {
  max-width: 760px;
  margin: 34px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  color: #514841;
}
.approach-directory blockquote strong { color: var(--wine); }
.approach-more { margin-top: 30px; }
.definition-links { display: flex; flex-wrap: wrap; gap: 14px 30px; }
.definition-band { background: var(--bronze); color: var(--ivory); }
.definition-band .section-label { color: var(--gold); }
.definition-band > div {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid rgba(248, 243, 235, 0.22);
  border-left: 1px solid rgba(248, 243, 235, 0.22);
}
.definition-band article {
  min-height: 300px;
  display: flex;
  flex-direction: column;
  padding: 34px;
  border-right: 1px solid rgba(248, 243, 235, 0.22);
  border-bottom: 1px solid rgba(248, 243, 235, 0.22);
}
.definition-band article span { color: var(--gold); font-size: 10px; }
.definition-band h3 { margin: auto 0 18px; font-size: 36px; line-height: 0.95; }
.definition-band article p { margin: 0; color: rgba(248, 243, 235, 0.62); font-size: 13px; }
.definition-band > .text-link { margin-top: 38px; }

.method-toolkit ol {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.method-toolkit li {
  min-height: 330px;
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 4vw, 54px);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.method-toolkit li > span { color: var(--wine); font-size: 10px; font-weight: 800; }
.method-toolkit h3 { margin: auto 0 20px; font-size: clamp(36px, 4vw, 56px); line-height: 0.94; }
.method-toolkit li p { margin: 0; color: var(--muted); font-size: 13px; }
.method-toolkit .method-more {
  align-self: flex-start;
  margin-top: 26px;
}
.learning-loop {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(70px, 10vw, 160px);
  background: var(--stone);
}
.learning-loop h2 { max-width: 760px; margin: 0; font-size: clamp(58px, 6.5vw, 100px); line-height: 0.9; }
.learning-loop ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.learning-loop li {
  min-height: 78px;
  display: grid;
  grid-template-columns: 50px 1fr;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.learning-loop li span { color: var(--wine); font-size: 10px; font-weight: 800; }

.learning-guide-hero {
  min-height: calc(92svh - 88px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background:
    radial-gradient(circle at 82% 18%, rgba(180, 147, 98, 0.24), transparent 26%),
    linear-gradient(135deg, var(--paper) 0 56%, #ded0bd 56% 57%, var(--ivory) 57%);
}
.learning-guide-hero h1 {
  max-width: 1180px;
  margin: clamp(54px, 8vw, 120px) 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(72px, 10vw, 164px);
  font-weight: 400;
  line-height: 0.82;
  letter-spacing: -0.065em;
}
.learning-guide-hero > div {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: clamp(50px, 9vw, 150px);
  align-items: start;
}
.learning-guide-hero > div > p {
  max-width: 620px;
  margin: 0;
  color: var(--muted);
  font-size: 18px;
}
.learning-guide-hero blockquote {
  max-width: 780px;
  margin: 0;
  padding-left: 34px;
  border-left: 1px solid var(--wine);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(29px, 3.4vw, 52px);
  line-height: 1.04;
}
.learning-method-hero {
  background:
    linear-gradient(90deg, rgba(248, 243, 235, 0.08), transparent),
    var(--bronze);
  color: var(--ivory);
}
.learning-method-hero .editorial-detail-meta { color: var(--gold); }
.learning-method-hero > div > p { color: rgba(248, 243, 235, 0.66); }
.learning-method-hero dl { margin: 0; border-top: 1px solid rgba(248, 243, 235, 0.24); }
.learning-method-hero dl div {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 28px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(248, 243, 235, 0.24);
}
.learning-method-hero dt {
  color: var(--gold);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.learning-method-hero dd { margin: 0; color: rgba(248, 243, 235, 0.78); }

.guide-local-nav {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding-top: 0;
  padding-bottom: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.guide-local-nav a {
  min-height: 78px;
  display: flex;
  align-items: center;
  padding: 0 22px;
  border-right: 1px solid var(--line);
  font-size: 11px;
  font-weight: 800;
}
.guide-local-nav a:first-child { border-left: 1px solid var(--line); }
.guide-local-nav a:hover { background: var(--paper); }

.guide-split {
  display: grid;
  grid-template-columns: 0.42fr 1.58fr;
  gap: clamp(60px, 10vw, 170px);
}
.guide-split-stone { background: var(--stone); }
.guide-section-number {
  margin: 9px 0 0;
  color: var(--wine);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.guide-split h2,
.guide-first-try h2,
.guide-sources h2,
.method-steps h2 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(58px, 7vw, 112px);
  font-weight: 400;
  line-height: 0.87;
  letter-spacing: -0.05em;
}
.guide-split ul,
.guide-split ol {
  max-width: 900px;
  margin: 70px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.guide-split li {
  position: relative;
  min-height: 88px;
  display: flex;
  align-items: center;
  padding: 18px 18px 18px 56px;
  border-bottom: 1px solid var(--line);
}
.guide-split li::before {
  content: "—";
  position: absolute;
  left: 10px;
  color: var(--wine);
}

.guide-first-try {
  background: var(--wine);
  color: var(--ivory);
}
.guide-first-try .section-label { color: #e3c59a; }
.guide-first-try h2 { max-width: 1020px; }
.guide-first-try > p:last-child {
  max-width: 760px;
  margin: 72px 0 0 auto;
  color: rgba(248, 243, 235, 0.78);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(26px, 3vw, 44px);
  line-height: 1.15;
}

.guide-sources {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: clamp(70px, 10vw, 160px);
}
.guide-sources h2 { max-width: 760px; }
.guide-sources > div:last-child > p { max-width: 600px; margin: 0 0 48px; color: var(--muted); }
.guide-sources ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.guide-sources li { border-bottom: 1px solid var(--line); }
.guide-sources a {
  min-height: 76px;
  display: grid;
  grid-template-columns: 1fr 22px;
  gap: 20px;
  align-items: center;
  font-weight: 700;
}
.guide-sources a:hover { color: var(--wine); }

.guide-next {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  padding-top: 42px;
  padding-bottom: 42px;
  background: var(--paper);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  font-weight: 800;
}
.guide-next a:last-child { text-align: right; }

.method-steps { background: var(--ivory); }
.method-steps h2 { max-width: 920px; }
.method-steps ol {
  margin: 80px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.method-steps li {
  min-height: 104px;
  display: grid;
  grid-template-columns: 72px 1fr;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.method-steps li span { color: var(--wine); font-size: 10px; font-weight: 800; }
.method-steps li p {
  max-width: 920px;
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(23px, 2.6vw, 38px);
  line-height: 1.1;
}
.method-example { background: var(--wine); color: var(--ivory); }
.method-example .section-label { color: #e3c59a; }
.method-example blockquote {
  max-width: 1050px;
  margin: 60px 0 0 auto;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(40px, 5vw, 78px);
  line-height: 0.98;
}

.situation-directory > div { border-top: 1px solid var(--line); }
.situation-directory article {
  min-height: 150px;
  display: grid;
  grid-template-columns: 60px 0.8fr 1.2fr;
  gap: 28px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.situation-directory article > span { color: var(--wine); font-size: 10px; font-weight: 800; }
.situation-directory h3 { margin: 0; font-size: clamp(34px, 4vw, 54px); line-height: 0.95; }
.situation-directory article p { max-width: 650px; margin: 0; color: var(--muted); }
.layer-map {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(70px, 10vw, 160px);
  background: var(--bronze);
  color: var(--ivory);
}
.layer-map .section-label { color: var(--gold); }
.layer-map h2 { max-width: 760px; margin: 0; font-size: clamp(58px, 6.5vw, 100px); line-height: 0.9; }
.layer-map ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(248, 243, 235, 0.22); }
.layer-map li {
  min-height: 72px;
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: center;
  border-bottom: 1px solid rgba(248, 243, 235, 0.22);
}
.layer-map li span { color: var(--gold); font-size: 10px; }
.parent-observation {
  display: grid;
  grid-template-columns: 0.4fr 1.6fr;
  gap: clamp(60px, 9vw, 150px);
  background: var(--paper);
}
.parent-observation h2 { max-width: 980px; margin: 0; font-size: clamp(56px, 6.5vw, 100px); line-height: 0.9; }
.parent-observation ul { margin: 42px 0 30px; }
.parent-observation div > p { max-width: 720px; color: var(--muted); }

.support-formats > div { border-top: 1px solid var(--line); }
.support-formats article {
  min-height: 190px;
  display: grid;
  grid-template-columns: 58px 1fr 0.65fr;
  gap: 30px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.support-formats article > span { color: var(--wine); font-size: 10px; font-weight: 800; }
.support-formats h3 { margin: 0 0 12px; font-size: clamp(38px, 4.5vw, 64px); line-height: 0.94; }
.support-formats article div p { max-width: 650px; margin: 0; color: var(--muted); }
.support-formats article > p {
  margin: 0;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  color: #514841;
  font-size: 13px;
}
.support-formats article > p strong {
  display: block;
  margin-bottom: 8px;
  color: var(--wine);
  font-size: 9px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.methodologist {
  display: grid;
  grid-template-columns: 0.35fr 0.9fr 0.75fr;
  gap: clamp(50px, 8vw, 130px);
  background: var(--stone);
}
.methodologist h2 { margin: 0; font-size: clamp(62px, 7vw, 108px); line-height: 0.88; }
.methodologist > div p { max-width: 670px; margin: 32px 0 0; color: #514841; font-size: 17px; }
.methodologist ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.methodologist li {
  display: grid;
  grid-template-columns: 42px 1fr;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  color: #514841;
  font-size: 13px;
}
.methodologist li span { grid-row: 1 / 3; color: var(--wine); font-weight: 800; }
.methodologist li strong { color: var(--ink); font-size: 15px; }

/* Portal tools */
.tools-page h1,
.tools-page h2,
.tools-page h3,
.load-map-page h1,
.load-map-page h2,
.load-map-page h3,
.tools-home h2 {
  font-family: var(--font-display), Georgia, serif;
  font-weight: 500;
  letter-spacing: -0.045em;
}
.tools-home {
  display: grid;
  grid-template-columns: 0.45fr 1.55fr;
  gap: clamp(50px, 9vw, 150px);
  align-items: start;
  background: var(--stone);
}
.tools-home .section-label { margin: 0; }
.tools-home h2 {
  max-width: 1060px;
  margin: 0;
  font-size: clamp(58px, 7vw, 108px);
  line-height: 0.88;
}
.tools-home > div > p {
  max-width: 680px;
  margin: 34px 0 38px;
  color: #514841;
  font-size: 17px;
}
.tools-home .text-link { margin-left: 28px; }
.home-market-teaser {
  display: grid;
  grid-template-columns: minmax(170px, .48fr) minmax(0, 1fr);
  gap: 28px;
  align-items: center;
  margin-top: 52px;
  padding-top: 24px;
  border-top: 1px solid rgba(43, 32, 28, .35);
}
.home-market-orbit {
  position: relative;
  min-height: 155px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #d7c5ad;
  color: var(--ink);
  transform: rotate(-8deg);
}
.home-market-orbit::before,
.home-market-orbit::after {
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(43, 32, 28, .28);
  border-radius: 50%;
  content: "";
}
.home-market-orbit::after { inset: 34px; border-color: rgba(43, 32, 28, .18); }
.home-market-orbit span {
  position: absolute;
  color: rgba(43, 32, 28, .7);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.home-market-orbit span:nth-child(1) { top: 23px; left: 28px; }
.home-market-orbit span:nth-child(2) { right: 17px; bottom: 35px; }
.home-market-orbit span:nth-child(3) { bottom: 19px; left: 47px; }
.home-market-orbit b { position: relative; z-index: 1; font-family: var(--font-display), Georgia, serif; font-size: 45px; font-weight: 500; }
.home-market-teaser h3 { max-width: 480px; margin: 9px 0 19px; font-family: var(--font-display), Georgia, serif; font-size: clamp(26px, 3vw, 42px); font-weight: 500; letter-spacing: -.045em; line-height: .94; }
.home-market-link { display: inline-flex; gap: 22px; align-items: center; color: var(--wine); font-size: 11px; font-weight: 800; text-decoration: none; }
.home-market-link span { font-size: 18px; transition: transform 160ms ease; }
.home-market-link:hover span { transform: translateX(5px); }

.tools-hero {
  position: relative;
  min-height: calc(100svh - 88px);
  display: grid;
  grid-template-columns: 0.2fr 1.35fr 0.45fr;
  gap: clamp(36px, 6vw, 96px);
  align-items: end;
  overflow: hidden;
  background:
    radial-gradient(circle at 16% 12%, rgba(180, 147, 98, 0.22), transparent 29%),
    var(--paper);
}
.tools-hero-index {
  align-self: start;
  color: var(--wine);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(110px, 16vw, 250px);
  line-height: 0.7;
}
.tools-hero h1 {
  max-width: 1100px;
  margin: 0;
  font-size: clamp(72px, 9vw, 142px);
  line-height: 0.82;
}
.tools-hero > p {
  max-width: 420px;
  margin: 0;
  padding-top: 28px;
  border-top: 1px solid var(--line);
  color: var(--muted);
}
.tools-directory { background: var(--ivory); }
.tools-directory > header {
  display: grid;
  grid-template-columns: 0.45fr 1.55fr;
  gap: 46px;
  align-items: end;
  margin-bottom: 72px;
}
.tools-directory > header .section-label { margin: 0; }
.tools-directory h2 {
  max-width: 1050px;
  margin: 0;
  font-size: clamp(58px, 7vw, 106px);
  line-height: 0.88;
}
.tools-list { border-top: 1px solid var(--line); }
.tools-list > a,
.tools-list > article {
  min-height: 184px;
  display: grid;
  grid-template-columns: 72px 1fr 36px;
  gap: 30px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.tools-list > a {
  transition: padding 200ms ease, background 200ms ease;
}
.tools-list > a:hover {
  padding: 0 18px;
  background: var(--paper);
}
.tools-list > article { color: rgba(33, 27, 24, 0.62); }
.tools-list > a > span,
.tools-list > article > span {
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
}
.tools-list p {
  margin: 0 0 9px;
  color: var(--wine);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.tools-list h3 {
  margin: 0;
  font-size: clamp(36px, 4.5vw, 64px);
  line-height: 0.94;
}
.tools-list small {
  max-width: 780px;
  display: block;
  margin-top: 14px;
  color: var(--muted);
  font-size: 13px;
}
.tools-list i {
  justify-self: end;
  font-style: normal;
  font-size: 22px;
}
.tools-principle {
  display: grid;
  grid-template-columns: 0.45fr 1.55fr;
  gap: clamp(50px, 9vw, 150px);
  background: var(--wine);
  color: var(--ivory);
}
.tools-principle .section-label { margin: 0; color: #e3c59a; }
.tools-principle h2 {
  max-width: 1060px;
  margin: 0;
  font-size: clamp(58px, 7vw, 106px);
  line-height: 0.88;
}
.tools-principle div p {
  max-width: 670px;
  margin: 36px 0 0;
  padding-top: 28px;
  border-top: 1px solid rgba(248, 243, 235, 0.28);
  color: rgba(248, 243, 235, 0.72);
}

.load-map-hero {
  min-height: calc(100svh - 88px);
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;
  gap: clamp(70px, 11vw, 170px);
  align-items: end;
  background:
    radial-gradient(circle at 84% 14%, rgba(106, 52, 56, 0.12), transparent 30%),
    var(--paper);
}
.load-map-hero h1 {
  max-width: 1050px;
  margin: 0;
  font-size: clamp(76px, 10vw, 154px);
  line-height: 0.8;
}
.load-map-hero > div:last-child {
  max-width: 560px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.load-map-hero > div:last-child > p {
  margin: 0 0 24px;
  color: var(--muted);
  font-size: 17px;
}
.load-map-boundary {
  font-size: 12px !important;
  line-height: 1.7;
}
.load-calculator { background: var(--ivory); }
.load-calculator-intro {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: clamp(70px, 11vw, 170px);
  align-items: end;
  padding: clamp(84px, 9vw, 140px) clamp(24px, 7vw, 112px);
}
.load-calculator-intro h2 {
  max-width: 980px;
  margin: 0;
  font-size: clamp(62px, 7vw, 108px);
  line-height: 0.88;
}
.load-calculator-intro > div:last-child > p {
  max-width: 580px;
  margin: 0 0 28px;
  color: var(--muted);
}
.load-progress {
  height: 3px;
  overflow: hidden;
  background: var(--stone);
}
.load-progress span {
  height: 100%;
  display: block;
  background: var(--wine);
  transition: width 300ms ease;
}
.load-calculator-intro small {
  display: block;
  margin-top: 12px;
  color: var(--muted);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.load-questions { border-top: 1px solid var(--line); }
.load-questions fieldset {
  margin: 0;
  padding: clamp(48px, 6vw, 84px) clamp(24px, 7vw, 112px);
  border: 0;
  border-bottom: 1px solid var(--line);
}
.load-questions fieldset:nth-child(even) { background: var(--paper); }
.load-questions legend {
  width: 100%;
  max-width: 1180px;
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 26px;
  margin-bottom: 42px;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(34px, 4.5vw, 64px);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.04em;
}
.load-questions legend span {
  padding-top: 10px;
  color: var(--wine);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0;
}
.load-scale {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  margin-left: 84px;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.load-scale button {
  min-height: 112px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 20px;
  border: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: transparent;
  cursor: pointer;
  text-align: left;
  transition: background 180ms ease, color 180ms ease;
}
.load-scale button:hover { background: rgba(106, 52, 56, 0.08); }
.load-scale button[aria-pressed="true"] {
  background: var(--wine);
  color: var(--ivory);
}
.load-scale b { font-size: 11px; }
.load-scale button span { font-size: 11px; }
.load-scale-caption {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  margin: 14px 0 0 84px;
  color: var(--muted);
  font-size: 10px;
}
.load-scale-caption span:last-child { text-align: right; }
.load-submit {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 56px clamp(24px, 7vw, 112px) 110px;
}
.load-submit .button:disabled,
.load-actions .button:disabled {
  cursor: default;
  opacity: 0.48;
}
.load-submit p {
  max-width: 480px;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}
.load-result {
  display: grid;
  grid-template-columns: 0.35fr 1.65fr;
  gap: clamp(50px, 8vw, 130px);
  padding: clamp(84px, 9vw, 140px) clamp(24px, 7vw, 112px);
  background: var(--bronze);
  color: var(--ivory);
}
.load-result-notice { background: #5b4033; }
.load-result-narrow { background: #693b36; }
.load-result-support { background: var(--wine); }
.load-result-score {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  color: #e3c59a;
}
.load-result-score span {
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(130px, 18vw, 270px);
  line-height: 0.65;
}
.load-result-score small {
  margin-top: 34px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.load-result-main .section-label { color: #e3c59a; }
.load-result-main > h3 {
  max-width: 980px;
  margin: 0;
  font-size: clamp(62px, 7vw, 108px);
  line-height: 0.88;
}
.load-result-main > p {
  max-width: 720px;
  margin: 34px 0 0;
  color: rgba(248, 243, 235, 0.74);
  font-size: 17px;
}
.load-comparison {
  padding: 20px 0;
  border-top: 1px solid rgba(248, 243, 235, 0.22);
  border-bottom: 1px solid rgba(248, 243, 235, 0.22);
  font-size: 13px !important;
}
.load-result-details {
  margin-top: 56px;
  border-top: 1px solid rgba(248, 243, 235, 0.24);
}
.load-result-details > div {
  display: grid;
  grid-template-columns: 0.42fr 1.58fr;
  gap: 30px;
  padding: 25px 0;
  border-bottom: 1px solid rgba(248, 243, 235, 0.24);
}
.load-result-details span {
  color: #e3c59a;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.load-result-details p {
  max-width: 720px;
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(22px, 2.3vw, 34px);
  line-height: 1.25;
}
.load-safety {
  max-width: 780px;
  margin-top: 38px;
  padding: 26px 28px;
  border: 1px solid rgba(248, 243, 235, 0.36);
  color: rgba(248, 243, 235, 0.84);
  font-size: 13px;
}
.load-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 30px;
  margin-top: 42px;
}
.load-actions .button-wine {
  background: var(--ivory);
  color: var(--wine);
}
.load-actions .text-link { color: var(--ivory); }
.load-history {
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  gap: clamp(60px, 10vw, 150px);
  padding: clamp(84px, 9vw, 140px) clamp(24px, 7vw, 112px);
  background: var(--stone);
}
.load-history h2 {
  margin: 0;
  font-size: clamp(58px, 7vw, 104px);
  line-height: 0.88;
}
.load-history ol {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.load-history li {
  min-height: 72px;
  display: grid;
  grid-template-columns: 80px 1fr 58px;
  gap: 24px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.load-history time,
.load-history strong { font-size: 11px; }
.load-history li > span {
  height: 3px;
  background: rgba(33, 27, 24, 0.15);
}
.load-history i {
  height: 100%;
  display: block;
  background: var(--wine);
}
.load-map-next {
  display: grid;
  grid-template-columns: 0.45fr 1.55fr;
  gap: clamp(50px, 9vw, 150px);
  background: var(--ivory);
}
.load-map-next .section-label { margin: 0; }
.load-map-next h2 {
  max-width: 1050px;
  margin: 0;
  font-size: clamp(58px, 7vw, 106px);
  line-height: 0.88;
}
.load-map-next div p {
  max-width: 690px;
  margin: 34px 0;
  color: var(--muted);
}

@keyframes heroRise {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes thresholdImage {
  from { opacity: 0.8; transform: scale(1.025); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes loadResultIn {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}
.load-result { animation: loadResultIn 420ms ease both; }

@supports (animation-timeline: view()) {
  .about-home > *,
  .direction-row,
  .method-intro > *,
  .method-copy > *,
  .olga-story-grid > *,
  .journal-intro,
  .daily-question,
  .article-row,
  .children > *,
  .contact-grid > *,
  .work-direction > *,
  .work-process > *,
  .route-row,
  .route-first-step > *,
  .route-steps li > *,
  .route-reading > *,
  .route-next > * {
    animation: sectionReveal linear both;
    animation-timeline: view();
    animation-range: entry 4% cover 24%;
  }
  @keyframes sectionReveal {
    from { opacity: 0; transform: translateY(26px); }
    to { opacity: 1; transform: translateY(0); }
  }
}

/* Route workbook */
.route-workbook {
  padding: clamp(46px, 6vw, 84px) clamp(24px, 7vw, 112px) clamp(76px, 9vw, 136px);
  background: var(--ivory);
  color: var(--ink);
}
.route-workbook-result h2 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(58px, 7vw, 108px);
  font-weight: 500;
  line-height: 0.88;
  letter-spacing: -0.045em;
}
.route-workbook-back {
  min-height: 44px;
  margin: 0 0 40px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: var(--wine);
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.route-workbook form {
  border-top: 1px solid var(--line);
}
.route-workbook-step,
.route-workbook-ecology,
.route-workbook-plan {
  max-width: 920px;
  margin: 0;
  padding: clamp(52px, 7vw, 84px) 0;
  border-bottom: 1px solid var(--line);
}
.route-workbook-step > header,
.route-workbook-ecology > header,
.route-workbook-plan > header {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
.route-workbook-step > header > span,
.route-workbook-ecology > header > span,
.route-workbook-plan > header > span {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid var(--wine);
  border-radius: 50%;
  color: var(--wine);
  font-family: var(--font-display), Georgia, serif;
  font-size: 18px;
}
.route-workbook-step h3,
.route-workbook-ecology h3,
.route-workbook-plan h3 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.035em;
}
.route-workbook-step small,
.route-workbook-ecology small,
.route-workbook-plan small {
  display: block;
  margin-bottom: 12px;
  color: var(--wine);
  font-family: var(--font-body), Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.route-workbook-step-copy,
.route-workbook-ecology > p,
.route-workbook-plan > p {
  max-width: 680px;
  margin: 30px 0 0 76px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}
.route-workbook-step-question {
  max-width: 760px;
  margin: 24px 0 0 76px;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(25px, 2.8vw, 38px);
  line-height: 1.13;
}
.route-workbook-note {
  display: block;
  max-width: 760px;
  margin: 28px 0 0 76px;
}
.route-workbook-note > span,
.route-workbook-plan label > span {
  display: block;
  margin-bottom: 10px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.route-workbook textarea,
.route-workbook input[type="text"],
.route-workbook select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 0;
  outline: 0;
  background: var(--paper);
  color: var(--ink);
  font: inherit;
  line-height: 1.6;
  transition: border-color 180ms ease, background 180ms ease;
}
.route-workbook textarea {
  min-height: 132px;
  resize: vertical;
  padding: 18px 20px;
}
.route-workbook input[type="text"],
.route-workbook select {
  min-height: 52px;
  padding: 0 16px;
}
.route-workbook textarea::placeholder,
.route-workbook input[type="text"]::placeholder { color: #847970; }
.route-workbook textarea:focus,
.route-workbook input[type="text"]:focus,
.route-workbook select:focus {
  border-color: var(--wine);
  background: #fffaf2;
}
.route-workbook-ecology {
  max-width: 980px;
  margin-top: clamp(44px, 6vw, 76px);
  padding: clamp(36px, 5vw, 60px);
  border: 1px solid #dbcbb8;
  background: #f3eadf;
}
.route-workbook-ecology > p,
.route-workbook-plan > p {
  margin-left: 76px;
}
.route-workbook-ecology-options {
  display: grid;
  gap: 0;
  max-width: 760px;
  margin: 30px 0 0 76px;
  padding: 0;
}
.route-workbook-ecology-options > p {
  margin: 0 0 14px;
  color: var(--ink);
  font-family: var(--font-display), Georgia, serif;
  font-size: 20px;
  line-height: 1.2;
}
.route-workbook-ecology-options > label {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 12px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid var(--line);
  background: rgba(255, 250, 242, 0.62);
  color: var(--ink);
  cursor: pointer;
  font-size: 14px;
  line-height: 1.45;
}
.route-workbook-ecology-options > label + label {
  border-top: 0;
}
.route-workbook-ecology-options > label:has(input:checked) {
  box-shadow: inset 3px 0 0 var(--wine);
  background: #fffaf2;
}
.route-workbook-ecology input[type="radio"] {
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: var(--wine);
}
.route-workbook-ecology .route-workbook-note {
  margin-top: 24px;
}
.route-workbook-ecology-hint {
  color: var(--wine) !important;
}
.route-workbook-plan {
  max-width: 980px;
  margin-top: clamp(44px, 6vw, 76px);
  padding: clamp(36px, 5vw, 60px);
  border: 1px solid var(--line);
  background: #fffaf2;
}
.route-workbook-plan-settings {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(220px, 0.7fr);
  gap: 20px;
  max-width: 760px;
  margin: 30px 0 0 76px;
}
.route-workbook-week-list {
  display: grid;
  gap: 24px;
  max-width: 760px;
  margin: 28px 0 0 76px;
}
.route-workbook-week-list label { display: block; }
.route-workbook-week-list label > span {
  display: block;
  margin-bottom: 10px;
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.route-workbook-submit {
  display: flex;
  align-items: center;
  gap: 26px;
  margin-left: 76px;
  padding: 42px 0 0;
}
.route-workbook-submit p {
  max-width: 410px;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.route-workbook-submit button:disabled {
  cursor: not-allowed;
  filter: grayscale(1);
  opacity: 0.42;
}
.route-workbook-result {
  margin: clamp(72px, 9vw, 132px) calc(clamp(24px, 7vw, 112px) * -1) calc(clamp(76px, 9vw, 136px) * -1);
  padding: clamp(76px, 9vw, 136px) clamp(24px, 7vw, 112px);
  background: var(--bronze);
  color: var(--ivory);
}
.route-workbook-result .section-label { color: var(--gold); }
.route-workbook-result h2 { max-width: 1050px; }
.route-workbook-result-intro {
  max-width: 680px;
  margin: 34px 0 70px;
  color: rgba(248, 243, 235, 0.7);
}
.route-workbook-result-plan {
  max-width: 860px;
  padding: 28px 0 0;
  margin: 0;
  border-top: 1px solid rgba(248, 243, 235, 0.2);
}
.route-workbook-result-plan > p,
.route-workbook-result-plan li > span {
  margin: 0;
  color: var(--gold);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.route-workbook-result-plan > strong {
  display: block;
  margin-top: 10px;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 500;
  line-height: 1.04;
}
.route-workbook-result-plan ol {
  display: grid;
  gap: 0;
  margin: 34px 0 0;
  padding: 0;
  border-top: 1px solid rgba(248, 243, 235, 0.2);
  list-style: none;
}
.route-workbook-result-plan li {
  display: grid;
  grid-template-columns: minmax(160px, 0.4fr) minmax(0, 1.6fr);
  gap: 36px;
  padding: 24px 0;
  border-bottom: 1px solid rgba(248, 243, 235, 0.2);
}
.route-workbook-result-plan li > p {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(24px, 3vw, 36px);
  line-height: 1.18;
}
.route-workbook-result-notes {
  max-width: 860px;
  margin-top: 34px;
  border-top: 1px solid rgba(248, 243, 235, 0.2);
  border-bottom: 1px solid rgba(248, 243, 235, 0.2);
}
.route-workbook-result-notes summary {
  padding: 20px 0;
  color: var(--gold);
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.route-workbook-result-notes dl { margin: 0; }
.route-workbook-result-notes dl > div {
  display: grid;
  grid-template-columns: minmax(180px, 0.45fr) minmax(0, 1.55fr);
  gap: 36px;
  padding: 22px 0;
  border-top: 1px solid rgba(248, 243, 235, 0.2);
}
.route-workbook-result-notes dt {
  color: var(--gold);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.route-workbook-result-notes dd {
  margin: 0;
  color: rgba(248, 243, 235, 0.88);
  font-size: 14px;
  line-height: 1.55;
}
.route-workbook-result aside {
  max-width: 760px;
  margin-top: 44px;
  padding-left: 24px;
  border-left: 2px solid var(--gold);
  color: rgba(248, 243, 235, 0.72);
  font-size: 13px;
}
.route-workbook-review {
  max-width: 760px;
  margin: 30px 0 0;
  color: rgba(248, 243, 235, 0.84);
  font-size: 14px;
  line-height: 1.55;
}
.route-workbook-review b { color: var(--gold); }
.route-workbook-next {
  max-width: 760px;
  margin-top: 44px;
  padding-top: 26px;
  border-top: 1px solid rgba(248, 243, 235, 0.22);
}
.route-workbook-next .section-label {
  margin: 0;
  color: var(--gold);
}
.route-workbook-next > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 28px;
  margin-top: 18px;
}
.route-workbook-next-primary {
  background: var(--ivory);
  color: var(--wine);
}
.route-workbook-next .text-link { color: var(--ivory); }
.route-workbook-result-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 28px;
  margin-top: 48px;
}
.route-workbook-save-button {
  border: 1px solid rgba(248, 243, 235, 0.76);
  background: transparent;
  color: var(--ivory);
}
.route-workbook-save-button:disabled { opacity: 0.72; }
.route-workbook-save-message {
  margin: 22px 0 0;
  color: rgba(248, 243, 235, 0.86);
  font-size: 13px;
}
.route-workbook-save-message a {
  color: var(--gold);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.route-workbook-account {
  display: grid;
  grid-template-columns: minmax(0, 0.75fr) minmax(340px, 1.25fr);
  gap: clamp(34px, 6vw, 88px);
  margin-top: 50px;
  padding: clamp(28px, 4vw, 52px);
  background: var(--paper);
  color: var(--ink);
}
.route-workbook-account h3 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.04em;
}
.route-workbook-account > div > p:not(.section-label) {
  margin: 22px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}
.route-workbook-account .section-label { color: var(--wine); }
.route-workbook-account .account-auth { max-width: none; }
.route-workbook-result .text-link { color: var(--ivory); }
.route-detail-back { background: var(--paper); }

/* Saved SCORE plans */
.score-plans-page {
  min-height: 72vh;
  padding: clamp(48px, 7vw, 100px) clamp(24px, 7vw, 112px) clamp(84px, 10vw, 148px);
  background: var(--ivory);
}
.score-plans-page .account-toolbar {
  max-width: 1160px;
  margin: 0 auto clamp(58px, 8vw, 104px);
}
.score-plans-cabinet {
  max-width: 1160px;
  margin: 0 auto;
}
.score-plans-cabinet > header {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: clamp(36px, 8vw, 132px);
  align-items: end;
  padding-bottom: 38px;
  border-bottom: 1px solid var(--line);
}
.score-plans-cabinet h2 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(50px, 6vw, 88px);
  font-weight: 500;
  line-height: 0.9;
  letter-spacing: -0.045em;
}
.score-plans-cabinet > header > p,
.score-plans-empty > p,
.score-plans-error > p {
  max-width: 420px;
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}
.score-plans-list {
  border-bottom: 1px solid var(--line);
}
.score-plans-list > article {
  padding: clamp(38px, 5vw, 68px) 0;
  border-top: 1px solid var(--line);
}
.score-plans-list > article:first-child { border-top: 0; }
.score-plans-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: start;
}
.score-plans-card-head p,
.score-plans-start > span,
.score-plans-list li > span {
  margin: 0;
  color: var(--wine);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}
.score-plans-card-head h3 {
  max-width: 800px;
  margin: 10px 0 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(34px, 4vw, 56px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.04em;
}
.score-plans-card-head time {
  color: var(--muted);
  font-size: 12px;
  white-space: nowrap;
}
.score-plans-start {
  display: grid;
  gap: 8px;
  margin: 34px 0 0;
}
.score-plans-start strong {
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(24px, 2.7vw, 38px);
  font-weight: 500;
  line-height: 1.15;
}
.score-plans-list ol {
  max-width: 920px;
  margin: 34px 0 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}
.score-plans-list li {
  display: grid;
  grid-template-columns: minmax(160px, 0.35fr) minmax(0, 1.65fr);
  gap: 36px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.score-plans-list li > p {
  margin: 0;
  font-size: 16px;
  line-height: 1.58;
}
.score-plans-notes {
  max-width: 920px;
  margin-top: 28px;
}
.score-plans-notes summary {
  color: var(--wine);
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.score-plans-notes dl {
  margin: 20px 0 0;
  border-top: 1px solid var(--line);
}
.score-plans-notes dl > div {
  display: grid;
  grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1.58fr);
  gap: 30px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.score-plans-notes dt {
  color: var(--muted);
  font-size: 12px;
}
.score-plans-notes dd {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
}
.score-plans-list > article > .text-link {
  display: inline-flex;
  margin-top: 30px;
  color: var(--wine);
}
.score-plans-empty,
.score-plans-error {
  max-width: 680px;
  padding: clamp(42px, 6vw, 76px) 0;
}
.score-plans-empty > p,
.score-plans-error > p { margin-top: 24px; }
.score-plans-empty .button,
.score-plans-error .button { margin-top: 30px; }

@media (max-width: 980px) {
  .desktop-nav { display: none; }
  .mobile-nav { display: block; position: relative; }
  .mobile-nav summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    cursor: pointer;
    list-style: none;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .mobile-nav nav {
    position: absolute;
    top: 48px;
    right: 0;
    width: min(340px, 86vw);
    display: flex;
    flex-direction: column;
    padding: 24px 28px;
    background: var(--ivory);
    color: var(--ink);
    box-shadow: 0 18px 60px rgba(33, 27, 24, 0.22);
  }
  .mobile-nav nav a {
    min-height: 48px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--line);
    font-size: 14px;
  }
  .mobile-nav nav .nav-search {
    min-height: 48px;
    display: flex;
    align-items: center;
    padding: 0;
    border: 0;
    border-bottom: 1px solid var(--line);
    background: transparent;
    cursor: pointer;
    font-size: 14px;
    text-align: left;
  }
  .mobile-nav nav .nav-search.nav-search-framed {
    justify-content: center;
    margin: 12px 0;
    border: 1px solid rgba(33, 27, 24, 0.5);
    text-align: center;
  }
  .about-home,
  .olga-story-grid,
  .children,
  .contact-grid,
  .articles-index-intro,
  .portal-hero,
  .work-directions-intro,
  .work-direction,
  .work-process,
  .portal-cta,
  .route-principle,
  .route-how > header,
  .route-detail-deck,
  .route-usage,
  .route-first-step,
  .route-steps header,
  .route-reading,
  .route-next {
    grid-template-columns: 1fr;
  }
  .route-detail-gold .route-detail-deck {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .tools-home,
  .tools-directory > header,
  .tools-principle,
  .load-map-hero,
  .load-calculator-intro,
  .load-result,
  .load-history,
  .load-map-next {
    grid-template-columns: 1fr;
  }
  .tools-home,
  .tools-principle,
  .load-map-hero,
  .load-calculator-intro,
  .load-result,
  .load-history,
  .load-map-next { gap: 48px; }
  .tools-hero {
    min-height: 820px;
    grid-template-columns: 0.22fr 1fr;
    align-content: end;
  }
  .tools-hero > p { grid-column: 2; }
  .tools-directory > header { align-items: start; gap: 26px; }
  .load-result-score span { font-size: 190px; }
  .load-history ol { max-width: 760px; }
  .portal-hero {
    min-height: 820px;
    align-content: end;
  }
  .portal-hero-index {
    position: absolute;
    top: 92px;
    right: 6vw;
  }
  .portal-hero-copy { max-width: 800px; }
  .portal-hero-aside { max-width: 360px; }
  .work-directions-intro { align-items: start; }
  .work-directions-intro .section-label { margin-bottom: 20px; }
  .work-direction { gap: 40px; }
  .work-direction-heading {
    display: flex;
    align-items: center;
    gap: 24px;
  }
  .work-direction-heading p { margin: 0; max-width: none; }
  .work-direction-details { max-width: 650px; }
  .work-process { gap: 66px; }
  .portal-cta { gap: 34px; }
  .portal-cta .section-label { margin-bottom: 0; }
  .portal-cta > div { max-width: 600px; }
  .route-navigator { grid-template-columns: 1fr; }
  .navigator-side {
    min-height: 430px;
    border-right: 0;
    border-bottom: 1px solid rgba(248, 243, 235, 0.18);
  }
  .navigator-stage { min-height: 650px; }
  .route-catalog-heading { grid-template-columns: 1fr; align-items: start; }
  .route-catalog-heading .section-label { margin-bottom: 0; }
  .route-how > header { align-items: start; gap: 26px; }
  .route-principle { gap: 40px; }
  .route-detail-deck { gap: 46px; }
  .route-first-step,
  .route-reading { gap: 40px; }
  .route-steps header {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
  }
  .route-steps header > * { min-width: 0; }
  .route-steps li { grid-template-columns: 50px 0.9fr 1.1fr; }
  .route-next { gap: 70px; }
  .method-intro { grid-template-columns: 1fr; align-items: start; }
  .method-intro .section-label { margin-bottom: 22px; }
  .direction-row {
    grid-template-columns: 44px 1fr 36px;
    gap: 18px;
    padding: 28px 0;
  }
  .direction-row p { grid-column: 2 / 4; }
  .approach-line {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .approach-line i { transform: rotate(90deg); }
  .journal-home { grid-template-columns: 1fr; }
  .daily-question { min-height: 420px; }
  .home-articles { grid-column: 1; }
  .site-footer { grid-template-columns: 1fr; }
  .footer-documents,
  .footer-legal { grid-column: auto; grid-row: auto; }
  .footer-documents { max-width: 380px; }
  .footer-legal { justify-self: start; text-align: left; }
  .section-hub-hero {
    min-height: auto;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }
  .section-hub-visual {
    grid-row: auto;
    min-height: 52vw;
    order: 1;
  }
  .section-hub-title { order: 2; }
  .section-hub-deck {
    grid-template-columns: 1fr;
    order: 3;
  }
  .section-hub-manifest,
  .section-catalog-header,
  .crossroad,
  .section-final-cta,
  .age-ribbon,
  .situation-preview,
  .navigator-note,
  .editorial-detail-intro,
  .editorial-block,
  .editorial-bridge,
  .route-comparison > header,
  .approach-directory > header,
  .approach-group > header,
  .approach-directory article,
  .method-toolkit > header,
  .learning-loop,
  .situation-directory > header,
  .layer-map,
  .parent-observation,
  .support-formats > header,
  .methodologist,
  .support-boundaries,
  .learning-guide-hero > div,
  .guide-split,
  .guide-sources {
    grid-template-columns: 1fr;
  }
  .section-hub-manifest,
  .crossroad,
  .section-final-cta,
  .age-ribbon,
  .situation-preview,
  .navigator-note,
  .editorial-bridge,
  .learning-loop,
  .layer-map,
  .parent-observation,
  .methodologist,
  .support-boundaries { gap: 48px; }
  .learning-guide-hero > div,
  .guide-split,
  .guide-sources { gap: 48px; }
  .guide-local-nav { grid-template-columns: repeat(2, 1fr); }
  .guide-local-nav a:nth-child(2) { border-right: 0; }
  .guide-local-nav a:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .section-hub-manifest div p { margin-left: 0; }
  .section-catalog-header,
  .route-comparison > header,
  .approach-directory > header,
  .approach-group > header,
  .method-toolkit > header,
  .situation-directory > header,
  .support-formats > header { align-items: start; gap: 26px; }
  .children-entrance-grid { grid-template-columns: repeat(2, 1fr); }
  .age-ribbon nav { margin-top: 10px; }
  .children-navigator { grid-template-columns: 1fr; }
  .children-navigator-side {
    min-height: 430px;
    border-right: 0;
    border-bottom: 1px solid rgba(248, 243, 235, 0.18);
  }
  .children-navigator-stage { min-height: 650px; }
  .editorial-block { gap: 32px; }
  .editorial-next a { grid-template-columns: 0.35fr 1.55fr 36px; }
  .age-columns { grid-template-columns: 1fr; }
  .age-columns article {
    min-height: auto;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .route-comparison > div { grid-template-columns: 1fr; }
  .definition-band > div { grid-template-columns: repeat(2, 1fr); }
  .method-toolkit ol { grid-template-columns: repeat(2, 1fr); }
  .support-formats article { grid-template-columns: 48px 1fr; }
  .support-formats article > p { grid-column: 2; margin-bottom: 28px; }
}

@media (min-width: 981px) and (max-height: 800px) {
  .work-hero {
    grid-template-columns: 0.34fr 1.42fr 0.24fr;
    padding-top: 62px;
    padding-bottom: 58px;
  }
  .work-hero .portal-hero-copy { grid-column: 2 / 4; }
  .work-hero .portal-hero-aside {
    position: absolute;
    right: clamp(24px, 7vw, 112px);
    bottom: 58px;
    width: 180px;
  }
  .work-hero h1 {
    max-width: 900px;
    font-size: clamp(64px, 7vw, 90px);
  }
  .work-hero .portal-hero-copy > p:last-child {
    max-width: 560px;
    margin-top: 22px;
    font-size: 15px;
  }
  .route-detail-hero {
    padding-top: 52px;
    padding-bottom: 72px;
  }
  .route-detail h1 {
    max-width: 1000px;
    margin: 34px 0;
    font-size: clamp(76px, 8vw, 102px);
  }
  .route-detail blockquote { font-size: clamp(28px, 3.1vw, 42px); }
  .route-detail-deck > p { font-size: 14px; }
}

@media (max-width: 700px) {
  .site-header {
    height: 70px;
    padding: 0 20px;
  }
  .site-header-overlay {
    top: 0;
    height: 70px;
    padding: 0 20px;
    background: linear-gradient(90deg, rgba(240, 232, 218, 0.82), rgba(240, 232, 218, 0.62));
  }
  .site-header-overlay .brand-link {
    height: 70px;
    padding: 0;
  }
  .site-header-overlay .mobile-nav {
    height: 70px;
    padding: 0;
    background: transparent;
    box-shadow: none;
  }
  .site-header-overlay .mobile-nav summary {
    min-height: 70px;
  }
  .wordmark { width: 150px; height: 32px; }
  .wordmark-image { width: 150px; }
  .threshold-hero {
    height: 100svh;
    min-height: 100svh;
    background: #f4eee5;
  }
  .threshold-hero::after {
    content: "";
    position: absolute;
    z-index: 1;
    top: 52%;
    right: 0;
    bottom: 0;
    left: 0;
    background: #f4eee5;
  }
  .threshold-picture { height: 52%; }
  .threshold-picture img { height: 100%; }
  .threshold-picture img {
    object-position: 72% center;
  }
  .threshold-content {
    position: absolute;
    z-index: 2;
    top: auto;
    right: 20px;
    bottom: 34px;
    left: 20px;
    width: auto;
    margin: 0;
    padding: 0;
  }
  .hero-kicker {
    width: 96%;
    margin: 18px 0;
    font-size: 15px;
    line-height: 1.5;
  }
  .threshold-hero h1 {
    max-width: 350px;
    font-size: 48px;
    line-height: 0.9;
  }
  .threshold-hero h1 em { margin-top: 0; }
  .hero-copy {
    width: 96%;
    max-width: none;
    margin: 18px 0;
    font-size: 15px;
    line-height: 1.5;
  }
  .hero-actions {
    margin: 0;
  }
  .button { min-height: 46px; padding: 0 18px; }
  .threshold-caption { display: none; }
  .section-pad { padding: 84px 20px; }
  .section-label { margin-bottom: 22px; font-size: 10px; }
  .about-home { gap: 44px; }
  .about-home h2,
  .section-heading h2,
  .method-intro h2,
  .olga-story h2,
  .journal-home h2,
  .children h2 {
    font-size: 50px;
    line-height: 0.92;
  }
  .about-copy { padding-top: 26px; }
  .about-copy .lead { font-size: 27px; }
  .section-heading {
    grid-template-columns: 1fr;
    align-items: start;
    margin-bottom: 44px;
  }
  .section-heading .section-label { margin-bottom: 0; }
  .direction-row {
    grid-template-columns: 32px 1fr 28px;
    gap: 14px;
  }
  .direction-row h3 { font-size: 34px; }
  .direction-row p { font-size: 14px; }
  .method-intro > div > p { margin-top: 24px; font-size: 16px; }
  .method-chapter,
  .method-chapter-reverse {
    min-height: auto;
    grid-template-columns: 1fr;
  }
  .method-chapter-reverse .method-visual,
  .method-chapter-reverse .method-copy {
    order: initial;
  }
  .method-visual { aspect-ratio: 4 / 3; }
  .method-copy { padding: 58px 20px 72px; }
  .method-number { margin-bottom: 28px; }
  .method-copy h3 {
    margin-bottom: 28px;
    font-size: 52px;
    line-height: 0.9;
  }
  .method-copy p { font-size: 15px; }
  .olga-story-grid { gap: 46px; }
  .olga-story-grid > div { padding-top: 24px; }
  .olga-story blockquote { font-size: 28px; }
  .daily-question {
    min-height: 390px;
    padding: 34px 28px;
  }
  .daily-question > p { font-size: 34px; }
  .article-row {
    grid-template-columns: 32px 1fr;
    gap: 16px;
    padding: 32px 0;
  }
  .article-row h3 { font-size: 34px; }
  .article-row > div > p:last-child { font-size: 14px; }
  .article-arrow { display: none; }
  .children { gap: 46px; }
  .children-copy { padding-top: 24px; }
  .contact { min-height: auto; }
  .contact h2 { font-size: 56px; }
  .contact-grid { gap: 42px; }
  .footer-navigation { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 20px; }
  .site-footer { padding: 58px 20px; }
  .tools-home { gap: 38px; }
  .tools-home h2,
  .tools-directory h2,
  .tools-principle h2,
  .load-calculator-intro h2,
  .load-result-main > h3,
  .load-history h2,
  .load-map-next h2 {
    font-size: 50px;
    line-height: 0.92;
  }
  .tools-home .text-link {
    display: block;
    width: max-content;
    margin: 24px 0 0;
  }
  .home-market-teaser { grid-template-columns: 100px minmax(0, 1fr); gap: 20px; margin-top: 42px; padding-top: 22px; }
  .home-market-orbit { min-height: 100px; }
  .home-market-orbit::before { inset: 9px; }
  .home-market-orbit::after { inset: 22px; }
  .home-market-orbit span { font-size: 8px; }
  .home-market-orbit span:nth-child(1) { top: 15px; left: 11px; }
  .home-market-orbit span:nth-child(2) { right: 7px; bottom: 24px; }
  .home-market-orbit span:nth-child(3) { bottom: 12px; left: 27px; }
  .home-market-orbit b { font-size: 28px; }
  .home-market-teaser h3 { font-size: 29px; }
  .home-market-link { gap: 13px; }
  .tools-hero {
    min-height: calc(100svh - 70px);
    grid-template-columns: 1fr;
    padding: 110px 20px 58px;
  }
  .tools-hero-index {
    position: absolute;
    top: 64px;
    right: 20px;
    font-size: 120px;
    opacity: 0.28;
  }
  .tools-hero h1 { font-size: 62px; }
  .tools-hero > p { grid-column: auto; }
  .tools-list > a,
  .tools-list > article {
    min-height: 190px;
    grid-template-columns: 32px 1fr;
    gap: 16px;
    padding: 30px 0;
  }
  .tools-list h3 { font-size: 40px; }
  .tools-list i { display: none; }
  .load-map-hero {
    min-height: calc(100svh - 70px);
    gap: 46px;
    padding: 110px 20px 60px;
  }
  .load-map-hero h1 { font-size: 66px; }
  .load-calculator-intro { padding: 78px 20px; }
  .load-questions fieldset { padding: 58px 20px; }
  .load-questions legend {
    grid-template-columns: 30px 1fr;
    gap: 12px;
    margin-bottom: 30px;
    font-size: 38px;
  }
  .load-scale {
    grid-template-columns: 1fr;
    margin-left: 0;
  }
  .load-scale button {
    min-height: 58px;
    flex-direction: row;
    align-items: center;
    padding: 12px 16px;
  }
  .load-scale-caption { display: none; }
  .load-submit {
    align-items: flex-start;
    flex-direction: column;
    padding: 44px 20px 84px;
  }
  .load-result { padding: 78px 20px; }
  .load-result-score span { font-size: 150px; }
  .load-result-score small { margin-top: 20px; }
  .load-result-details > div {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .load-result-details p { font-size: 26px; }
  .load-actions {
    align-items: flex-start;
    flex-direction: column;
  }
  .load-history { padding: 78px 20px; }
  .load-history li {
    grid-template-columns: 62px 1fr 48px;
    gap: 14px;
  }
  .portal-hero {
    min-height: calc(100svh - 70px);
    padding: 106px 20px 54px;
  }
  .portal-hero-index {
    top: 56px;
    right: 20px;
    font-size: 92px;
  }
  .portal-hero h1 { font-size: 58px; }
  .portal-hero-copy > p:last-child { margin-top: 24px; font-size: 15px; }
  .portal-hero-aside { font-size: 9px; }
  .work-hero {
    background:
      linear-gradient(180deg, rgba(23, 17, 15, 0.88), rgba(43, 32, 28, 0.98)),
      url("/approach-connection.webp") center / cover;
  }
  .routes-hero {
    background:
      linear-gradient(180deg, rgba(238, 229, 216, 0.9), rgba(238, 229, 216, 0.99)),
      url("/approach-route-optimized.webp") center / cover;
  }
  .work-directions-intro h2,
  .work-process h2,
  .portal-cta h2,
  .route-navigator h2,
  .route-how h2,
  .route-catalog h2,
  .route-principle h2,
  .route-first-step h2,
  .route-steps header h2,
  .route-reading h2,
  .route-next h2 {
    font-size: 50px;
    line-height: 0.92;
  }
  .work-direction { padding: 64px 20px; }
  .work-direction h3 { font-size: 54px; }
  .work-process { gap: 46px; }
  .work-process li { grid-template-columns: 34px 1fr; gap: 16px; }
  .portal-cta { gap: 30px; }
  .navigator-side {
    min-height: 460px;
    padding: 76px 20px 46px;
  }
  .navigator-stage {
    min-height: 610px;
    align-items: flex-start;
    padding: 64px 20px;
  }
  .navigator-stage legend {
    margin-bottom: 34px;
    font-size: 42px;
  }
  .navigator-options-routes { grid-template-columns: 1fr; }
  .navigator-options-routes button {
    grid-template-columns: 32px 1fr;
    gap: 8px 12px;
    padding: 18px 0;
  }
  .navigator-options-routes button small { grid-column: 2; }
  .navigator-result h3 { font-size: 52px; }
  .navigator-result-grid { grid-template-columns: 1fr; }
  .navigator-actions { align-items: flex-start; flex-direction: column; }
  .route-how ol { grid-template-columns: 1fr; }
  .route-how li { min-height: 240px; padding: 34px 28px; }
  .route-catalog-heading { margin-bottom: 44px; }
  .route-row {
    min-height: 144px;
    grid-template-columns: 34px 1fr;
    gap: 16px;
    padding: 28px 0;
  }
  .route-row h3 { font-size: 33px; }
  .route-row-arrow { display: none; }
  .route-principle { gap: 36px; }
  .route-detail-hero {
    gap: 48px;
    padding: 52px 20px 64px;
  }
  .route-detail h1 {
    margin: 64px 0;
    font-size: 68px;
    line-height: 0.82;
  }
  .route-detail-deck { gap: 34px; }
  .route-detail blockquote { font-size: 32px; }
  .route-usage { gap: 44px; }
  .route-usage h2 { font-size: 48px; }
  .route-first-step { gap: 34px; }
  .route-first-step div p { margin-top: 26px; font-size: 27px; }
  .route-steps header { gap: 32px; }
  .route-steps li {
    min-height: auto;
    grid-template-columns: 34px 1fr;
    gap: 18px;
    padding: 46px 20px;
  }
  .route-steps h3 { font-size: 42px; }
  .route-steps li > div { grid-column: 2; }
  .route-reading { gap: 30px; }
  .route-next { gap: 56px; }
  .articles-index h1 { font-size: 74px; }
  .article-hero { padding: 72px 20px; }
  .article-hero h1 { font-size: 56px; }
  .article-body { padding: 78px 20px 96px; }
  .article-summary { margin-bottom: 62px; padding: 30px 24px; }
  .article-summary li { padding-left: 26px; font-size: 20px; }
  .article-toc { margin-bottom: 70px; }
  .article-toc a { grid-template-columns: 38px 1fr; }
  .article-safety { padding: 28px 24px; }
  .article-sources { margin-top: 64px; }
  .section-hub-visual { min-height: 62vw; }
  .section-hub-title { padding: 64px 20px 34px; }
  .section-hub-title h1 { font-size: 56px; }
  .section-hub-deck { padding: 28px 20px 60px; gap: 30px; }
  .section-hub-deck p { font-size: 15px; }
  .section-hub-manifest h2,
  .section-catalog-header h2,
  .crossroad h2,
  .section-final-cta h2,
  .age-ribbon h2,
  .situation-preview h2,
  .navigator-note h2,
  .editorial-bridge h2,
  .route-comparison h2,
  .decision-strip h2,
  .approach-directory h2,
  .method-toolkit h2,
  .learning-loop h2,
  .situation-directory h2,
  .layer-map h2,
  .parent-observation h2,
  .support-formats h2,
  .methodologist h2,
  .support-boundaries h2 {
    font-size: 50px;
    line-height: 0.92;
  }
  .section-catalog-row {
    min-height: 170px;
    grid-template-columns: 32px 1fr;
    gap: 16px;
    padding: 26px 0;
  }
  .section-catalog-row h3 { font-size: 34px; }
  .section-catalog-row > i { display: none; }
  .children-entrance-grid { grid-template-columns: 1fr; }
  .children-entrance-grid a { min-height: 300px; padding: 30px 26px; }
  .children-entrance-grid h3 { font-size: 44px; }
  .age-ribbon a { grid-template-columns: 30px 90px 1fr; gap: 12px; }
  .age-ribbon a strong { font-size: 21px; }
  .age-ribbon a small { font-size: 11px; }
  .situation-preview a {
    grid-template-columns: 32px 1fr;
    gap: 14px;
  }
  .situation-preview a p { grid-column: 2; }
  .compact-hero { min-height: calc(100svh - 70px); }
  .compact-hero h1 { font-size: 60px; }
  .compact-hero > p:last-child { margin-left: 0; font-size: 15px; }
  .children-navigator-side { min-height: 450px; padding: 76px 20px 46px; }
  .children-navigator-side :is(h1, h2) { font-size: 52px; }
  .children-navigator-stage { min-height: 610px; padding: 64px 20px; align-items: flex-start; }
  .children-navigator-stage legend { font-size: 42px; }
  .children-navigator-result :is(h2, h3) { font-size: 52px; }
  .children-navigator-result-copy { grid-template-columns: 1fr; }
  .psychology-detail .editorial-detail-hero {
    background: linear-gradient(rgba(248, 243, 235, 0.93), rgba(248, 243, 235, 0.99)),
      url("/approach-layers.webp") center / cover;
  }
  .editorial-detail-hero { min-height: calc(100svh - 70px); }
  .editorial-detail h1,
  .age-detail h1 { margin: 50px 0; font-size: 62px; }
  .editorial-detail-intro { gap: 30px; }
  .editorial-detail-intro blockquote { font-size: 32px; }
  .editorial-block h2 { margin-bottom: 28px; font-size: 48px; }
  .editorial-block p { font-size: 15px; }
  .editorial-next a {
    grid-template-columns: 1fr 28px;
    font-size: 32px;
  }
  .editorial-next a span { grid-column: 1 / -1; }
  .age-index > a {
    min-height: 230px;
    grid-template-columns: 32px 1fr;
    gap: 16px;
    padding: 28px 0;
  }
  .age-index h2 { font-size: 42px; }
  .age-index i { display: none; }
  .age-columns { padding: 0; }
  .age-columns article { padding: 72px 20px; }
  .age-columns h2 { margin-top: 48px; font-size: 44px; }
  .route-comparison article { min-height: 390px; padding: 42px 28px; }
  .route-comparison h3 { font-size: 48px; }
  .decision-strip li { grid-template-columns: 38px 1fr; padding: 18px 0; }
  .approach-directory article { padding: 54px 0; gap: 36px; }
  .approach-directory h3 { font-size: 50px; }
  .definition-band > div,
  .method-toolkit ol { grid-template-columns: 1fr; }
  .definition-band article { min-height: 260px; }
  .method-toolkit li { min-height: 300px; padding: 36px 28px; }
  .method-toolkit h3 { font-size: 44px; }
  .situation-directory article {
    min-height: auto;
    grid-template-columns: 32px 1fr;
    gap: 14px;
    padding: 34px 0;
  }
  .situation-directory h3 { font-size: 38px; }
  .situation-directory article p { grid-column: 2; }
  .support-formats article {
    min-height: auto;
    grid-template-columns: 32px 1fr;
    gap: 16px;
    padding: 42px 0;
  }
  .support-formats h3 { font-size: 44px; }
  .support-formats article > p { grid-column: 2; }
  .learning-guide-hero {
    min-height: calc(100svh - 70px);
    padding-top: 110px;
    background:
      radial-gradient(circle at 85% 12%, rgba(180, 147, 98, 0.22), transparent 28%),
      var(--paper);
  }
  .learning-guide-hero h1 {
    margin: 54px 0;
    font-size: 62px;
    line-height: 0.86;
  }
  .learning-guide-hero > div > p { font-size: 15px; }
  .learning-guide-hero blockquote { padding-left: 22px; font-size: 29px; }
  .learning-method-hero { background: var(--bronze); }
  .learning-method-hero dl div { grid-template-columns: 1fr; gap: 8px; }
  .guide-local-nav {
    grid-template-columns: 1fr;
    padding-right: 20px;
    padding-left: 20px;
  }
  .guide-local-nav a,
  .guide-local-nav a:first-child,
  .guide-local-nav a:nth-child(2) {
    min-height: 62px;
    padding: 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    border-left: 0;
  }
  .guide-local-nav a:last-child { border-bottom: 0; }
  .guide-split h2,
  .guide-first-try h2,
  .guide-sources h2,
  .method-steps h2 { font-size: 50px; }
  .guide-split ul,
  .guide-split ol { margin-top: 48px; }
  .guide-split li { min-height: 76px; padding-left: 40px; }
  .guide-first-try > p:last-child { margin-top: 46px; font-size: 27px; }
  .guide-sources > div:last-child > p { margin-top: 10px; }
  .guide-next { flex-direction: column; align-items: flex-start; }
  .guide-next a:last-child { text-align: left; }
  .method-steps ol { margin-top: 52px; }
  .method-steps li { grid-template-columns: 42px 1fr; padding: 20px 0; }
  .method-steps li p { font-size: 24px; }
  .method-example blockquote { margin-top: 44px; font-size: 39px; }
}

@media (max-width: 420px) and (max-height: 760px) {
  .threshold-picture { height: 52%; }
  .threshold-picture img { height: 100%; }
  .threshold-hero::after { top: 52%; }
  .threshold-content { bottom: 24px; }
  .hero-kicker { width: 96%; margin: 12px 0; font-size: 14px; }
  .threshold-hero h1 { font-size: 44px; }
  .hero-copy { margin: 12px 0; font-size: 14px; }
}

@media (max-width: 700px) {
  .route-workbook { padding: 72px 20px; }
  .route-workbook-result h2 {
    font-size: 52px;
    line-height: 0.92;
  }
  .route-workbook-step,
  .route-workbook-ecology,
  .route-workbook-plan { padding: 46px 0; }
  .route-workbook-step > header,
  .route-workbook-ecology > header,
  .route-workbook-plan > header { grid-template-columns: 44px minmax(0, 1fr); gap: 14px; }
  .route-workbook-step > header > span,
  .route-workbook-ecology > header > span,
  .route-workbook-plan > header > span { width: 36px; height: 36px; font-size: 15px; }
  .route-workbook-step-copy,
  .route-workbook-ecology > p,
  .route-workbook-plan > p,
  .route-workbook-step-question,
  .route-workbook-note,
  .route-workbook-ecology-options,
  .route-workbook-plan-settings,
  .route-workbook-week-list,
  .route-workbook-submit { margin-left: 0; }
  .route-workbook-step-copy,
  .route-workbook-ecology > p,
  .route-workbook-plan > p { margin-top: 24px; }
  .route-workbook-step-question { margin-top: 20px; font-size: 28px; }
  .route-workbook-ecology,
  .route-workbook-plan { margin-top: 38px; padding: 28px 22px; }
  .route-workbook-ecology-options { margin-top: 24px; }
  .route-workbook-plan-settings { grid-template-columns: 1fr; margin-top: 24px; }
  .route-workbook-week-list { margin-top: 22px; }
  .route-workbook textarea { min-height: 170px; }
  .route-workbook-submit {
    align-items: flex-start;
    flex-direction: column;
  }
  .route-workbook-result {
    margin-right: -20px;
    margin-left: -20px;
    padding-right: 20px;
    padding-left: 20px;
  }
  .route-workbook-result-plan li,
  .route-workbook-result-notes dl > div {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .route-workbook-result-actions {
    align-items: flex-start;
    flex-direction: column;
  }
  .route-workbook-next > div {
    align-items: flex-start;
    flex-direction: column;
  }
  .route-workbook-account { grid-template-columns: 1fr; gap: 34px; padding: 28px 22px; }
  .score-plans-page { padding: 48px 20px 82px; }
  .score-plans-page .account-toolbar { margin-bottom: 58px; }
  .score-plans-cabinet > header { grid-template-columns: 1fr; gap: 22px; padding-bottom: 28px; }
  .score-plans-cabinet h2 { font-size: 52px; }
  .score-plans-card-head,
  .score-plans-list li,
  .score-plans-notes dl > div { grid-template-columns: 1fr; gap: 12px; }
  .score-plans-card-head time { white-space: normal; }
  .score-plans-list li { padding: 18px 0; }
}

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

/* Portal expansion: simulator, specialist navigator, age calendar, experts */
.portal-tool-page h1,
.portal-tool-page h2,
.portal-tool-page h3,
.age-calendar-page h1,
.age-calendar-page h2,
.age-calendar-page h3,
.age-calendar-page h4,
.experts-page h1,
.experts-page h2,
.experts-page h3,
.articles-experts-bridge h2 {
  font-family: var(--font-display), Georgia, serif;
  font-weight: 500;
  letter-spacing: -0.045em;
}

.text-button {
  min-height: 44px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.text-button:disabled,
.button:disabled {
  cursor: not-allowed;
  opacity: 0.38;
  transform: none;
}
.button-light {
  border-color: rgba(248, 243, 235, 0.58);
  background: transparent;
  color: var(--ivory);
}
.button-light:hover { background: var(--ivory); color: var(--ink); }

.portal-tool-hero {
  min-height: calc(100svh - 88px);
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.55fr);
  gap: clamp(64px, 10vw, 170px);
  align-items: end;
  background:
    radial-gradient(circle at 82% 15%, rgba(106, 52, 56, 0.12), transparent 29%),
    var(--paper);
}
.portal-tool-hero h1 {
  max-width: 1100px;
  margin: 0;
  font-size: clamp(68px, 8.4vw, 132px);
  line-height: 0.84;
}
.portal-tool-hero > div:last-child > p {
  margin: 0;
  padding-top: 26px;
  border-top: 1px solid var(--line);
  color: var(--muted);
}
.portal-tool-hero dl {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 42px 0 0;
  border-top: 1px solid var(--line);
}
.portal-tool-hero dl div { padding: 18px 12px 0 0; }
.portal-tool-hero dt {
  color: var(--wine);
  font-family: var(--font-display), Georgia, serif;
  font-size: 36px;
}
.portal-tool-hero dd { margin: 3px 0 0; color: var(--muted); font-size: 10px; line-height: 1.35; text-transform: uppercase; }

.portal-tool-workspace { background: var(--bronze); color: var(--ivory); }
.simulator-panel,
.simulator-result,
.specialist-panel,
.specialist-result {
  max-width: 1280px;
  margin: 0 auto;
}
.simulator-progress {
  display: grid;
  grid-template-columns: 70px 1fr minmax(220px, 0.45fr);
  gap: 30px;
  align-items: center;
  padding-bottom: 36px;
  border-bottom: 1px solid rgba(248, 243, 235, 0.22);
}
.simulator-progress > span {
  color: #e3c59a;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.simulator-progress > div { height: 2px; overflow: hidden; background: rgba(248, 243, 235, 0.16); }
.simulator-progress i {
  height: 100%;
  display: block;
  background: #e3c59a;
  transition: width 420ms cubic-bezier(0.22, 1, 0.36, 1);
}
.simulator-progress small { color: rgba(248, 243, 235, 0.6); font-size: 11px; line-height: 1.45; }
.simulator-panel fieldset,
.specialist-panel fieldset {
  min-width: 0;
  margin: 0;
  padding: clamp(60px, 8vw, 112px) 0;
  border: 0;
}
.simulator-panel legend,
.specialist-panel legend {
  max-width: 1080px;
  padding: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(48px, 6.2vw, 92px);
  line-height: 0.9;
  letter-spacing: -0.045em;
}
.simulator-panel fieldset > p {
  max-width: 650px;
  margin: 28px 0 48px;
  color: rgba(248, 243, 235, 0.64);
}
.simulator-options,
.specialist-panel fieldset > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(248, 243, 235, 0.22);
}
.simulator-options button,
.specialist-panel fieldset button {
  min-height: 116px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 7px;
  padding: 24px 72px 24px 0;
  border: 0;
  border-right: 1px solid rgba(248, 243, 235, 0.22);
  border-bottom: 1px solid rgba(248, 243, 235, 0.22);
  background: transparent;
  color: var(--ivory);
  text-align: left;
  cursor: pointer;
  transition: padding 220ms ease, background 220ms ease, color 220ms ease;
}
.simulator-options button:nth-child(even),
.specialist-panel fieldset button:nth-child(even) { padding-left: 36px; border-right: 0; }
.simulator-options button:hover,
.specialist-panel fieldset button:hover { padding-left: 22px; background: rgba(248, 243, 235, 0.07); }
.simulator-options button.is-selected,
.specialist-panel fieldset button.is-selected {
  padding-left: 22px;
  background: #e3c59a;
  color: var(--ink);
}
.simulator-options strong,
.specialist-panel fieldset strong { font-family: var(--font-display), Georgia, serif; font-size: 25px; font-weight: 500; }
.simulator-options span,
.specialist-panel fieldset button span { color: rgba(248, 243, 235, 0.58); font-size: 12px; }
.simulator-options .is-selected span,
.specialist-panel fieldset button.is-selected span { color: rgba(33, 27, 24, 0.68); }
.simulator-panel > footer,
.specialist-panel > footer,
.specialist-result > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding-top: 34px;
  border-top: 1px solid rgba(248, 243, 235, 0.22);
}

.simulator-result > header {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(260px, 0.45fr);
  gap: 70px;
  margin-bottom: 78px;
}
.simulator-result > header .section-label { grid-column: 1 / -1; margin: 0; color: #e3c59a; }
.simulator-result > header h2 {
  margin: 0;
  font-size: clamp(54px, 7vw, 102px);
  line-height: 0.88;
}
.simulator-result > header > p:last-child {
  align-self: end;
  margin: 0;
  padding-top: 24px;
  border-top: 1px solid rgba(248, 243, 235, 0.22);
  color: rgba(248, 243, 235, 0.65);
}
.simulator-ranked { display: grid; gap: 20px; }
.simulator-route {
  position: relative;
  display: grid;
  grid-template-columns: 58px minmax(250px, 0.62fr) 1fr;
  gap: 34px;
  padding: clamp(30px, 4vw, 60px);
  background: var(--ivory);
  color: var(--ink);
  animation: portalReveal 520ms both;
}
.simulator-route:nth-child(2) { animation-delay: 90ms; }
.simulator-route:nth-child(3) { animation-delay: 180ms; }
.simulator-route::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--gold);
}
.simulator-route-possible::before { background: var(--wine); }
.simulator-route-demanding::before { background: var(--muted); }
.simulator-route-index { color: var(--wine); font-size: 11px; font-weight: 800; }
.simulator-route p { margin: 0 0 11px; color: var(--wine); font-size: 10px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.simulator-route h3 { margin: 0; font-size: clamp(36px, 4.4vw, 64px); line-height: 0.92; }
.simulator-route blockquote { margin: 24px 0 0; color: var(--muted); font-size: 14px; }
.simulator-route dl { margin: 0; border-top: 1px solid var(--line); }
.simulator-route dl div { display: grid; grid-template-columns: 0.38fr 1fr; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.simulator-route dt { color: var(--wine); font-size: 10px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.simulator-route dd { margin: 0; font-size: 13px; }
.simulator-route aside { grid-column: 2 / -1; padding-top: 22px; border-top: 1px solid var(--line); }
.simulator-route aside strong { font-size: 11px; text-transform: uppercase; }
.simulator-route aside ul { margin: 10px 0 0; padding-left: 18px; color: var(--muted); font-size: 12px; }
.simulator-result-actions { display: flex; align-items: center; gap: 30px; margin-top: 50px; }
.simulator-all-routes { margin-top: 50px; border-top: 1px solid rgba(248, 243, 235, 0.22); animation: portalReveal 420ms both; }
.simulator-all-routes article { display: grid; grid-template-columns: 52px 1fr; gap: 24px; padding: 22px 0; border-bottom: 1px solid rgba(248, 243, 235, 0.22); }
.simulator-all-routes article > span { color: #e3c59a; font-family: var(--font-display), Georgia, serif; font-size: 28px; }
.simulator-all-routes p { margin: 0; color: #e3c59a; font-size: 9px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.simulator-all-routes h3 { margin: 2px 0 6px; font-size: 30px; }
.simulator-all-routes small { color: rgba(248, 243, 235, 0.6); }

.tool-method,
.tool-next,
.tool-sources {
  display: grid;
  grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1fr);
  gap: clamp(60px, 11vw, 170px);
}
.tool-method { background: var(--stone); }
.tool-method h2,
.tool-next h2,
.tool-sources h2 { max-width: 780px; margin: 0; font-size: clamp(50px, 6.5vw, 94px); line-height: 0.9; }
.tool-method > div:last-child,
.tool-next > div:last-child,
.tool-sources > div:last-child {
  max-width: 720px;
  align-self: end;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.tool-method p,
.tool-next p,
.tool-sources p { color: var(--muted); }
.tool-next { background: var(--paper); }
.tool-next .button { margin-top: 24px; }
.tool-sources { background: var(--ivory); }
.tool-sources ul { margin-top: 30px; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.tool-sources li { padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.tool-sources a { text-decoration: underline; text-underline-offset: 4px; }

.specialist-hero {
  background:
    linear-gradient(125deg, transparent 57%, rgba(180, 147, 98, 0.18) 57.2%, transparent 57.5%),
    var(--stone);
}
.specialist-panel > header {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 30px;
  padding-bottom: 34px;
  border-bottom: 1px solid rgba(248, 243, 235, 0.22);
}
.specialist-panel > header span { color: #e3c59a; font-size: 11px; font-weight: 800; }
.specialist-panel > header p { margin: 0; color: rgba(248, 243, 235, 0.65); }
.specialist-result > .section-label { color: #e3c59a; }
.specialist-result > h2 { max-width: 1060px; margin: 0; font-size: clamp(54px, 7vw, 106px); line-height: 0.87; }
.specialist-result > blockquote {
  max-width: 760px;
  margin: 40px 0 70px;
  padding-left: 24px;
  border-left: 1px solid #e3c59a;
  color: #e3c59a;
  font-family: var(--font-display), Georgia, serif;
  font-size: 28px;
}
.specialist-result-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(248, 243, 235, 0.22); }
.specialist-result-grid article { min-height: 270px; padding: 36px 40px 36px 0; border-right: 1px solid rgba(248, 243, 235, 0.22); border-bottom: 1px solid rgba(248, 243, 235, 0.22); }
.specialist-result-grid article:nth-child(even) { padding-left: 40px; border-right: 0; }
.specialist-result-grid span { color: #e3c59a; font-size: 10px; font-weight: 800; }
.specialist-result-grid h3 { margin: 26px 0 18px; font-size: 38px; }
.specialist-result-grid p,
.specialist-result-grid li { color: rgba(248, 243, 235, 0.68); font-size: 13px; }
.specialist-result-grid ul { margin: 0; padding-left: 18px; }
.specialist-warning { margin: 54px 0; padding: 30px; border: 1px solid #e3c59a; color: #e3c59a; }
.specialist-warning p { margin: 8px 0 0; color: var(--ivory); }
.specialist-variants { margin-top: 72px; padding-top: 42px; border-top: 1px solid rgba(248, 243, 235, 0.22); }
.specialist-variants header { display: grid; grid-template-columns: 0.7fr 1fr; gap: 24px 50px; }
.specialist-variants .section-label { grid-column: 1 / -1; margin: 0; color: #e3c59a; }
.specialist-variants h3 { margin: 0; font-size: clamp(34px, 4vw, 58px); line-height: 0.92; }
.specialist-variants header > p:last-child { margin: 0; color: rgba(248, 243, 235, 0.65); }
.specialist-variants-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 42px; border-top: 1px solid rgba(248, 243, 235, 0.22); }
.specialist-variants-grid article { min-height: 270px; padding: 28px 28px 28px 0; border-right: 1px solid rgba(248, 243, 235, 0.22); border-bottom: 1px solid rgba(248, 243, 235, 0.22); }
.specialist-variants-grid article + article { padding-left: 28px; }
.specialist-variants-grid article:last-child { border-right: 0; }
.specialist-variants-grid span { color: #e3c59a; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.specialist-variants-grid h4 { margin: 48px 0 14px; font-size: 24px; line-height: 1; }
.specialist-variants-grid p { min-height: 66px; margin: 0 0 22px; color: rgba(248, 243, 235, 0.65); font-size: 13px; }
.specialist-variants-grid strong { color: #e3c59a; font-size: 13px; }
.specialist-directory { background: var(--paper); }
.specialist-directory > header { display: grid; grid-template-columns: 0.45fr 1.55fr; gap: 60px; margin-bottom: 70px; }
.specialist-directory > header .section-label { margin: 0; }
.specialist-directory > header h2 { margin: 0; font-size: clamp(58px, 7vw, 104px); line-height: 0.88; }
.specialist-directory-intro { max-width: 760px; margin: -35px 0 66px auto; color: var(--muted); font-size: 15px; line-height: 1.55; }
.specialist-groups { border-top: 1px solid var(--line); }
.specialist-group { padding: 46px 0 0; border-bottom: 1px solid var(--line); }
.specialist-group > header { display: grid; grid-template-columns: 0.45fr 1fr; gap: 50px; margin-bottom: 28px; }
.specialist-group > header h3 { margin: 0; font-size: clamp(34px, 4vw, 58px); line-height: 0.92; }
.specialist-group > header p { max-width: 650px; margin: 0; color: var(--muted); }
.specialist-group-list { border-top: 1px solid var(--line); }
.specialist-card { display: block; border-bottom: 1px solid var(--line); }
.specialist-card.is-recommended { border-left: 4px solid var(--wine); background: rgba(180, 147, 98, 0.1); }
.specialist-card details summary { display: grid; grid-template-columns: 55px minmax(0, 1fr) auto 36px; gap: 28px; align-items: center; padding: 25px 0; cursor: pointer; list-style: none; }
.specialist-card details summary::-webkit-details-marker { display: none; }
.specialist-card-number { color: var(--wine); font-size: 10px; font-weight: 800; }
.specialist-card-copy { display: block; }
.specialist-card-copy strong { display: block; font-size: 30px; line-height: 1; }
.specialist-card-copy > span { display: block; max-width: 670px; margin-top: 7px; color: var(--muted); font-size: 13px; }
.specialist-card em { color: var(--wine); font-size: 10px; font-style: normal; font-weight: 800; text-align: right; }
.specialist-card-toggle { position: relative; width: 30px; height: 30px; border: 1px solid var(--wine); border-radius: 50%; }
.specialist-card-toggle::before { position: absolute; inset: 0; display: grid; place-items: center; color: var(--wine); content: "+"; font-size: 20px; font-weight: 400; line-height: 1; }
.specialist-card details[open] .specialist-card-toggle::before { content: "−"; }
.specialist-card details[open] summary { padding-bottom: 15px; }
.specialist-card-details { max-width: 760px; padding: 0 70px 30px 83px; }
.specialist-card-details p { margin: 0 0 14px; color: var(--muted); font-size: 14px; line-height: 1.55; }
.specialist-card-details h4 { margin: 24px 0 10px; font-size: 16px; }
.specialist-card-details ul { margin: 0; padding-left: 19px; color: var(--muted); font-size: 14px; line-height: 1.55; }
.specialist-first-door { display: grid; grid-template-columns: 0.45fr 1fr; gap: 60px; background: var(--ivory); }
.specialist-first-door h2 { margin: 0; font-size: clamp(48px, 6vw, 88px); line-height: 0.9; }
.specialist-first-door ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.specialist-first-door li { padding: 17px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 14px; }
.specialist-important { display: grid; grid-template-columns: 0.45fr 1fr; gap: 60px; background: var(--wine); color: var(--ivory); }
.specialist-important strong { color: #e3c59a; font-size: 11px; text-transform: uppercase; }
.specialist-important p { max-width: 760px; margin: 0; color: rgba(248, 243, 235, 0.72); }

/* The specialist navigator uses a calmer visual language than the older portal tools. */
.specialist-page .specialist-hero {
  position: relative;
  min-height: clamp(440px, 58svh, 620px);
  overflow: hidden;
  background-color: #eaf3ef;
  background-image:
    linear-gradient(90deg, rgba(239, 247, 243, 0.99) 0%, rgba(239, 247, 243, 0.96) 31%, rgba(239, 247, 243, 0.7) 55%, rgba(239, 247, 243, 0.16) 100%),
    url("/specialist-navigator-banner.webp");
  background-position: center, center;
  background-repeat: no-repeat;
  background-size: cover;
}
.specialist-page .specialist-hero::after {
  position: absolute;
  inset: auto 0 0;
  height: 32%;
  background: linear-gradient(0deg, rgba(234, 243, 239, 0.28), transparent);
  content: "";
  pointer-events: none;
}
.specialist-page .specialist-hero > div { position: relative; z-index: 1; }
.specialist-page .specialist-hero-copy { max-width: 880px; }
.specialist-page .specialist-hero-copy .section-label { margin-bottom: 24px; color: #2f7168; }
.specialist-page .specialist-hero h1 {
  max-width: 860px;
  color: #21322e;
  font-size: clamp(46px, 6.2vw, 88px) !important;
  line-height: 0.91;
}
.specialist-page .specialist-hero-intro {
  max-width: 410px;
  justify-self: end;
}
.specialist-page .specialist-hero-intro > p {
  margin: 0;
  padding-top: 22px;
  border-top: 1px solid rgba(47, 113, 104, 0.35);
  color: #4f625d;
  font-size: 15px;
  line-height: 1.55;
}
.specialist-page .portal-tool-workspace {
  padding-top: clamp(44px, 6vw, 82px);
  padding-bottom: clamp(60px, 8vw, 108px);
  background: #e5f0ed;
  color: #21322e;
}
.specialist-page .specialist-panel,
.specialist-page .specialist-result {
  max-width: 1120px;
  padding: clamp(26px, 4vw, 50px);
  border: 1px solid #d2e1db;
  border-radius: 24px;
  background: #f8fbf9;
  box-shadow: 0 18px 50px rgba(31, 75, 66, 0.08);
  color: #21322e;
}
.specialist-page .specialist-panel > header {
  padding-bottom: 22px;
  border-bottom-color: #d2e1db;
}
.specialist-page .specialist-panel > header span,
.specialist-page .specialist-result > .section-label { color: #2f7168; }
.specialist-page .specialist-panel > header p { color: #63756f; }
.specialist-page .specialist-result-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 32px;
}
.specialist-page .specialist-result-header .section-label { margin: 0; }
.specialist-page .specialist-panel fieldset {
  padding: 38px 0 20px;
}
.specialist-page .specialist-panel legend {
  color: #21322e;
  font-size: clamp(38px, 5vw, 70px);
}
.specialist-page .specialist-panel fieldset > div {
  border-top-color: #d2e1db;
}
.specialist-page .specialist-panel fieldset button,
.specialist-page .specialist-panel fieldset button:nth-child(even) {
  min-height: 92px;
  padding: 20px 24px;
  border-right-color: #d2e1db;
  border-bottom-color: #d2e1db;
  color: #21322e;
}
.specialist-page .specialist-panel fieldset button:hover {
  padding-left: 30px;
  background: #edf7f3;
}
.specialist-page .specialist-panel fieldset button.is-selected {
  padding-left: 30px;
  background: #d5ebe3;
  color: #21322e;
  box-shadow: inset 4px 0 0 #2f7168;
}
.specialist-page .specialist-panel fieldset button span { color: #667a73; }
.specialist-page .specialist-panel fieldset button.is-selected span { color: #48645c; }
.specialist-page .specialist-panel > footer,
.specialist-page .specialist-result > footer {
  padding-top: 18px;
  border-top-color: #d2e1db;
}
.specialist-page .specialist-result-header .button-wine,
.specialist-page .specialist-panel > footer .button-wine,
.specialist-page .specialist-result > footer .button-wine {
  background: #2f7168;
  color: #fff;
  box-shadow: 0 7px 18px rgba(47, 113, 104, 0.2);
}
.specialist-page .specialist-result-header .button-wine:hover,
.specialist-page .specialist-panel > footer .button-wine:hover,
.specialist-page .specialist-result > footer .button-wine:hover { background: #245c55; }
.specialist-page .specialist-panel > footer .button-wine:disabled {
  opacity: 1;
  background: #b9d7ce;
  color: #46645d;
  box-shadow: none;
}
.specialist-page .specialist-result > h2 {
  max-width: 900px;
  color: #21322e;
  font-size: clamp(42px, 5.4vw, 76px);
  line-height: 0.92;
}
.specialist-page .specialist-result > blockquote {
  margin: 30px 0 48px;
  border-left-color: #76a99f;
  color: #48645c;
  font-size: 22px;
}
.specialist-page .specialist-result-grid {
  border-top-color: #d2e1db;
}
.specialist-page .specialist-result-grid article,
.specialist-page .specialist-result-grid article:nth-child(even) {
  min-height: 214px;
  border-right-color: #d2e1db;
  border-bottom-color: #d2e1db;
}
.specialist-page .specialist-result-grid span { color: #2f7168; }
.specialist-page .specialist-result-grid h3 { color: #21322e; }
.specialist-page .specialist-result-grid p,
.specialist-page .specialist-result-grid li { color: #5e716a; }
.specialist-page .specialist-warning {
  margin: 34px 0;
  border-color: #d4a86b;
  background: #fff5e5;
  color: #775331;
}
.specialist-page .specialist-warning p { color: #6f5a43; }
.specialist-page .specialist-directory {
  color: #21322e;
  background: #eef7f3;
}
.specialist-page .specialist-directory > header { margin-bottom: 48px; }
.specialist-page .specialist-directory > header h2 {
  color: #21322e;
  font-size: clamp(48px, 6vw, 84px);
}
.specialist-page .specialist-directory-intro { color: #5e716a; }
.specialist-page .specialist-groups,
.specialist-page .specialist-group-list { border-color: #d2e1db; }
.specialist-page .specialist-group { border-bottom-color: #d2e1db; }
.specialist-page .specialist-group > header h3,
.specialist-page .specialist-card-copy strong { color: #21322e; }
.specialist-page .specialist-group > header p,
.specialist-page .specialist-card-copy > span,
.specialist-page .specialist-card-details p,
.specialist-page .specialist-card-details ul { color: #5e716a; }
.specialist-page .specialist-card { border-bottom-color: #d2e1db; }
.specialist-page .specialist-card.is-recommended {
  border-left-color: #2f7168;
  background: #edf7f3;
}
.specialist-page .specialist-card-number,
.specialist-page .specialist-card em { color: #2f7168; }
.specialist-page .specialist-card-toggle {
  border-color: #2f7168;
}
.specialist-page .specialist-card-toggle::before { color: #2f7168; }

@media (max-width: 760px) {
  .specialist-page .specialist-hero {
    min-height: 440px;
    grid-template-columns: 1fr;
    align-content: end;
    background-image:
      linear-gradient(180deg, rgba(239, 247, 243, 0.24) 0%, rgba(239, 247, 243, 0.9) 52%, rgba(239, 247, 243, 0.99) 100%),
      url("/specialist-navigator-banner.webp");
    background-position: center, 64% center;
  }
  .specialist-page .specialist-hero-intro {
    max-width: none;
    justify-self: stretch;
    padding: 18px 18px 0;
    border-radius: 14px 14px 0 0;
    background: rgba(239, 247, 243, 0.86);
  }
  .specialist-page .specialist-hero-intro > p { padding-top: 16px; }
  .specialist-page .portal-tool-workspace { padding-top: 28px; }
  .specialist-page .specialist-panel,
  .specialist-page .specialist-result {
    padding: 24px 20px;
    border-radius: 18px;
  }
  .specialist-page .specialist-panel fieldset { padding: 30px 0 14px; }
  .specialist-page .specialist-panel fieldset button,
  .specialist-page .specialist-panel fieldset button:nth-child(even) {
    min-height: 84px;
    padding: 18px 16px;
    border-right: 0;
  }
  .specialist-page .specialist-panel fieldset button:hover,
  .specialist-page .specialist-panel fieldset button.is-selected { padding-left: 22px; }
  .specialist-page .specialist-panel > footer { align-items: stretch; flex-direction: column-reverse; }
  .specialist-page .specialist-panel > footer {
    position: sticky;
    bottom: 12px;
    z-index: 3;
    margin: 0 -20px -24px;
    padding: 12px 20px 20px;
    background: rgba(248, 251, 249, 0.96);
    box-shadow: 0 -10px 22px rgba(31, 75, 66, 0.1);
  }
  .specialist-page .specialist-panel > footer .button,
  .specialist-page .specialist-result > footer .button { width: 100%; }
  .specialist-page .specialist-panel > footer .text-button { align-self: flex-start; }
  .specialist-page .specialist-result-header {
    align-items: stretch;
    flex-direction: column;
    gap: 18px;
    margin-bottom: 26px;
  }
  .specialist-page .specialist-result-header .button-wine { width: 100%; }
  .specialist-page .specialist-result-grid { grid-template-columns: 1fr; }
  .specialist-page .specialist-result-grid article,
  .specialist-page .specialist-result-grid article:nth-child(even) {
    min-height: auto;
    padding: 26px 0;
    border-right: 0;
  }
  .specialist-page .specialist-directory > header { grid-template-columns: 1fr; gap: 24px; }
  .specialist-page .specialist-directory > header h2 { font-size: clamp(45px, 13vw, 68px); }
  .specialist-page .specialist-card details summary {
    grid-template-columns: 30px minmax(0, 1fr) 30px;
    gap: 14px;
    padding: 20px 0;
  }
  .specialist-page .specialist-card-copy strong { font-size: 24px; }
  .specialist-page .specialist-card em {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
    text-align: left;
  }
  .specialist-page .specialist-card-toggle {
    grid-column: 3;
    grid-row: 1 / span 2;
  }
  .specialist-page .specialist-card-details { padding: 0 0 24px 44px; }
}

.age-calendar-hero {
  min-height: calc(100svh - 88px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background:
    radial-gradient(circle at 72% 18%, rgba(180, 147, 98, 0.22), transparent 28%),
    var(--paper);
}
.age-calendar-hero h1 { max-width: 1280px; margin: 0; font-size: clamp(68px, 9vw, 142px); line-height: 0.82; }
.age-calendar-hero > p:last-child { max-width: 680px; margin: 46px 0 0 auto; padding-top: 28px; border-top: 1px solid var(--line); color: var(--muted); }
.age-calendar-page > .section-pad { background: var(--bronze); color: var(--ivory); }
.age-calendar-picker { display: grid; grid-template-columns: 1fr 0.72fr; gap: clamp(60px, 10vw, 150px); align-items: end; }
.age-calendar-picker h2 { max-width: 850px; margin: 0; font-size: clamp(58px, 7vw, 108px); line-height: 0.86; }
.age-calendar-picker > div > p:last-child { max-width: 620px; margin-top: 34px; color: rgba(248, 243, 235, 0.63); }
.age-calendar-picker fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0; padding: 0; border: 0; }
.age-calendar-picker label span { display: block; margin-bottom: 8px; color: #e3c59a; font-size: 10px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.age-calendar-picker select {
  width: 100%;
  height: 58px;
  padding: 0 16px;
  border: 1px solid rgba(248, 243, 235, 0.28);
  border-radius: 0;
  background: transparent;
  color: var(--ivory);
}
.age-calendar-picker option { color: var(--ink); }
.age-calendar-picker .button { grid-column: 1 / -1; margin-top: 8px; }
.age-calendar-line { display: grid; grid-template-columns: repeat(10, 1fr); margin-top: 88px; border-top: 1px solid rgba(248, 243, 235, 0.22); }
.age-calendar-line button {
  min-height: 76px;
  padding: 12px 4px;
  border: 0;
  border-right: 1px solid rgba(248, 243, 235, 0.22);
  background: transparent;
  color: rgba(248, 243, 235, 0.58);
  font-size: 9px;
  cursor: pointer;
}
.age-calendar-line button:last-child { border-right: 0; }
.age-calendar-line button:hover,
.age-calendar-line button.is-current { background: #e3c59a; color: var(--ink); }
.age-calendar-result { margin-top: 90px; animation: portalReveal 520ms both; }
.age-calendar-result > header { display: grid; grid-template-columns: 1fr minmax(260px, 0.48fr); gap: 60px; margin-bottom: 72px; }
.age-calendar-result > header .section-label { grid-column: 1 / -1; margin: 0; color: #e3c59a; }
.age-calendar-result > header h2 { margin: 0; font-size: clamp(56px, 7vw, 106px); line-height: 0.87; }
.age-calendar-result > header > p:last-child { align-self: end; margin: 0; color: rgba(248, 243, 235, 0.65); }
.age-calendar-focus { display: grid; grid-template-columns: 0.35fr 1fr; gap: 40px; padding: 28px 0; border-top: 1px solid rgba(248, 243, 235, 0.22); border-bottom: 1px solid rgba(248, 243, 235, 0.22); }
.age-calendar-focus > p { margin: 0; color: #e3c59a; font-size: 10px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.age-calendar-focus ul { display: flex; flex-wrap: wrap; gap: 10px 32px; margin: 0; padding: 0; list-style: none; }
.age-calendar-focus li { font-family: var(--font-display), Georgia, serif; font-size: 26px; }
.age-activity-list,
.age-approach-list { padding-top: 100px; }
.age-activity-list > header,
.age-approach-list > header { display: grid; grid-template-columns: 0.35fr 1fr; gap: 40px; margin-bottom: 50px; }
.age-activity-list .section-label,
.age-approach-list .section-label { margin: 0; color: #e3c59a; }
.age-activity-list h3,
.age-approach-list h3 { max-width: 900px; margin: 0; font-size: clamp(45px, 5.6vw, 78px); line-height: 0.9; }
.age-activity-list > div { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(248, 243, 235, 0.22); }
.age-activity-list article { min-height: 300px; padding: 30px 32px 30px 0; border-right: 1px solid rgba(248, 243, 235, 0.22); border-bottom: 1px solid rgba(248, 243, 235, 0.22); }
.age-activity-list article:nth-child(3n+2),
.age-activity-list article:nth-child(3n+3) { padding-left: 32px; }
.age-activity-list article:nth-child(3n) { border-right: 0; }
.age-activity-list article > span { color: #e3c59a; font-size: 10px; font-weight: 800; }
.age-activity-list h4 { margin: 46px 0 16px; font-size: 30px; }
.age-activity-list p { color: rgba(248, 243, 235, 0.68); font-size: 13px; }
.age-activity-list small { color: #e3c59a; font-size: 9px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.age-approach-list > div { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.age-approach-list article { min-height: 245px; padding: 36px; background: var(--ivory); color: var(--ink); }
.age-approach-list h4 { margin: 0 0 20px; font-size: 34px; }
.age-approach-list p { color: var(--muted); font-size: 13px; }
.age-approach-list .text-link { margin-top: 16px; }
.age-do-not-rush { display: grid; grid-template-columns: 0.35fr 1fr; gap: 40px; margin-top: 80px; padding: 42px 0; border-top: 1px solid #e3c59a; border-bottom: 1px solid #e3c59a; }
.age-do-not-rush .section-label { margin: 0; color: #e3c59a; }
.age-do-not-rush ul { margin: 0; padding: 0; list-style: none; }
.age-do-not-rush li { padding: 14px 0; border-bottom: 1px solid rgba(248, 243, 235, 0.18); font-family: var(--font-display), Georgia, serif; font-size: 25px; }

.experts-hero {
  min-height: calc(100svh - 88px);
  display: grid;
  grid-template-columns: 0.28fr 1.2fr 0.5fr;
  gap: clamp(38px, 6vw, 96px);
  align-items: end;
  overflow: hidden;
  background:
    linear-gradient(90deg, transparent 24.7%, rgba(33, 27, 24, 0.16) 25%, transparent 25.2%),
    var(--stone);
}
.experts-mark { align-self: start; color: var(--wine); font-family: var(--font-display), Georgia, serif; font-size: clamp(170px, 22vw, 350px); line-height: 0.72; }
.experts-hero h1 { max-width: 1000px; margin: 0; font-size: clamp(74px, 9.2vw, 144px); line-height: 0.82; }
.experts-hero > p { margin: 0; padding-top: 28px; border-top: 1px solid var(--line); color: var(--muted); }
.experts-directions { background: var(--ivory); }
.experts-directions > header { display: grid; grid-template-columns: 0.45fr 1.55fr; gap: 60px; margin-bottom: 80px; }
.experts-directions .section-label { margin: 0; }
.experts-directions h2 { max-width: 1100px; margin: 0; font-size: clamp(56px, 7vw, 104px); line-height: 0.88; }
.experts-directions > div { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); }
.experts-directions article { min-height: 340px; padding: 34px 50px 34px 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.experts-directions article:nth-child(even) { padding-left: 50px; border-right: 0; }
.experts-directions article span { color: var(--wine); font-size: 10px; font-weight: 800; }
.experts-directions h3 { margin: 70px 0 18px; font-size: clamp(42px, 5vw, 70px); line-height: 0.92; }
.experts-directions article p { max-width: 550px; color: var(--muted); }
.experts-format { display: grid; grid-template-columns: 0.65fr 1fr; gap: clamp(60px, 10vw, 150px); background: var(--paper); }
.experts-format h2 { max-width: 720px; margin: 0; font-size: clamp(56px, 7vw, 104px); line-height: 0.88; }
.experts-format ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.experts-format li { display: grid; grid-template-columns: 50px 1fr; gap: 26px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.experts-format li > span { color: var(--wine); font-size: 10px; font-weight: 800; }
.experts-format h3 { margin: 0; font-size: 28px; }
.experts-format li p { margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.experts-open-call { background: var(--wine); color: var(--ivory); }
.experts-open-call .section-label { color: #e3c59a; }
.experts-open-call > h2 { max-width: 1120px; margin: 0; font-size: clamp(62px, 8vw, 122px); line-height: 0.86; }
.experts-open-call > div { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 80px; border-top: 1px solid rgba(248, 243, 235, 0.3); }
.experts-open-call article { min-height: 300px; padding: 40px 60px 0 0; border-right: 1px solid rgba(248, 243, 235, 0.3); }
.experts-open-call article:last-child { padding-left: 60px; border-right: 0; }
.experts-open-call h3 { margin: 0; font-size: 44px; }
.experts-open-call article p { max-width: 560px; color: rgba(248, 243, 235, 0.7); }
.experts-open-call .button { margin-top: 22px; }
.articles-experts-bridge { display: grid; grid-template-columns: 0.4fr 1fr; gap: 60px; margin-top: 110px; padding: 80px 0 20px; border-top: 1px solid var(--line); }
.articles-experts-bridge .section-label { margin: 0; }
.articles-experts-bridge h2 { max-width: 900px; margin: 0; font-size: clamp(46px, 5vw, 76px); line-height: 0.92; }
.articles-experts-bridge p { max-width: 650px; color: var(--muted); }

@keyframes portalReveal {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1100px) {
  .site-header-solid .desktop-nav { gap: 12px; }
  .site-header-solid .desktop-nav a { font-size: 11px; }
  .portal-tool-hero,
  .age-calendar-picker { grid-template-columns: 1fr 0.65fr; gap: 55px; }
  .simulator-route { grid-template-columns: 45px 1fr; }
  .simulator-route dl,
  .simulator-route aside { grid-column: 2; }
  .age-calendar-line { grid-template-columns: repeat(5, 1fr); }
  .age-calendar-line button:nth-child(5) { border-right: 0; }
  .experts-hero { grid-template-columns: 0.2fr 1fr; }
  .experts-hero > p { grid-column: 2; }
}

@media (max-width: 760px) {
  .portal-tool-hero,
  .age-calendar-hero,
  .experts-hero { min-height: calc(100svh - 70px); }
  .portal-tool-hero,
  .tool-method,
  .tool-next,
  .tool-sources,
  .age-calendar-picker,
  .experts-format,
  .articles-experts-bridge { grid-template-columns: 1fr; }
  .portal-tool-hero { align-content: end; }
  .portal-tool-hero h1,
  .age-calendar-hero h1,
  .experts-hero h1 { font-size: 58px; }
  .portal-tool-hero dl { margin-top: 24px; }
  .simulator-progress { grid-template-columns: 58px 1fr; }
  .simulator-progress small { grid-column: 1 / -1; }
  .simulator-panel legend,
  .specialist-panel legend { font-size: 46px; }
  .simulator-options,
  .specialist-panel fieldset > div { grid-template-columns: 1fr; }
  .simulator-options button,
  .simulator-options button:nth-child(even),
  .specialist-panel fieldset button,
  .specialist-panel fieldset button:nth-child(even) { min-height: 98px; padding: 20px 10px; border-right: 0; }
  .simulator-options button:hover,
  .simulator-options button.is-selected,
  .specialist-panel fieldset button:hover,
  .specialist-panel fieldset button.is-selected { padding-left: 20px; }
  .simulator-panel > footer,
  .specialist-panel > footer { align-items: stretch; flex-direction: column-reverse; }
  .simulator-panel > footer .button,
  .specialist-panel > footer .button { width: 100%; }
  .simulator-panel > footer .text-button,
  .specialist-panel > footer .text-button { align-self: flex-start; }
  .simulator-result > header,
  .age-calendar-result > header { grid-template-columns: 1fr; gap: 32px; }
  .simulator-route { grid-template-columns: 30px 1fr; padding: 28px 20px; gap: 14px; }
  .simulator-route dl div { grid-template-columns: 1fr; gap: 7px; }
  .simulator-result-actions { align-items: flex-start; flex-direction: column; }
  .specialist-result-grid { grid-template-columns: 1fr; }
  .specialist-result-grid article,
  .specialist-result-grid article:nth-child(even) { min-height: auto; padding: 30px 0; border-right: 0; }
  .specialist-directory > header,
  .experts-directions > header { grid-template-columns: 1fr; gap: 30px; }
  .specialist-directory article { grid-template-columns: 30px 1fr; }
  .specialist-directory article p { grid-column: 2; }
  .age-calendar-picker fieldset { grid-template-columns: 1fr; }
  .age-calendar-picker .button { grid-column: 1; }
  .age-calendar-line { grid-template-columns: repeat(2, 1fr); margin-top: 55px; }
  .age-calendar-line button { border-bottom: 1px solid rgba(248, 243, 235, 0.22); }
  .age-calendar-line button:nth-child(odd) { border-right: 1px solid rgba(248, 243, 235, 0.22); }
  .age-calendar-line button:nth-child(even) { border-right: 0; }
  .age-calendar-focus,
  .age-activity-list > header,
  .age-approach-list > header,
  .age-do-not-rush { grid-template-columns: 1fr; }
  .age-calendar-focus ul { display: block; }
  .age-calendar-focus li { margin-bottom: 10px; }
  .age-activity-list > div,
  .age-approach-list > div { grid-template-columns: 1fr; }
  .age-activity-list article,
  .age-activity-list article:nth-child(3n+2),
  .age-activity-list article:nth-child(3n+3) { min-height: auto; padding: 28px 0; border-right: 0; }
  .age-approach-list article { min-height: auto; padding: 28px 22px; }
  .experts-hero { grid-template-columns: 1fr; align-content: end; }
  .experts-mark { position: absolute; top: 125px; right: 20px; opacity: 0.18; }
  .experts-hero > p { grid-column: 1; }
  .experts-directions > div,
  .experts-open-call > div { grid-template-columns: 1fr; }
  .experts-directions article,
  .experts-directions article:nth-child(even) { min-height: auto; padding: 32px 0; border-right: 0; }
  .experts-directions h3 { margin-top: 38px; }
  .experts-open-call article,
  .experts-open-call article:last-child { min-height: auto; padding: 36px 0; border-right: 0; border-bottom: 1px solid rgba(248, 243, 235, 0.3); }
}

/* Portal registry and learning diary */
.learning-diary-page h1,
.learning-diary-page h2,
.learning-diary-page h3,
.children-tools h2,
.children-tools h3,
.tools-groups > section > header h3 {
  font-family: var(--font-display), Georgia, serif;
  font-weight: 500;
  letter-spacing: -0.045em;
}

.tools-groups {
  display: grid;
  gap: 110px;
}
.tools-groups > section > header {
  display: grid;
  grid-template-columns: 72px 1fr minmax(260px, 0.55fr);
  gap: 30px;
  align-items: end;
  margin-bottom: 26px;
}
.tools-groups > section > header > span {
  color: var(--wine);
  font-size: 11px;
  font-weight: 800;
}
.tools-groups > section > header h3 {
  margin: 0;
  font-size: clamp(34px, 4vw, 58px);
  line-height: 0.95;
}
.tools-groups > section > header p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}
.tools-list em {
  display: block;
  margin-top: 13px;
  color: var(--wine);
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.children-tools {
  background: var(--bronze);
  color: var(--ivory);
}
.children-tools > header {
  display: grid;
  grid-template-columns: 0.45fr 1.15fr 0.55fr;
  gap: clamp(36px, 6vw, 90px);
  align-items: end;
  margin-bottom: 76px;
}
.children-tools .section-label { margin: 0; color: #e3c59a; }
.children-tools h2 {
  margin: 0;
  font-size: clamp(52px, 6.5vw, 98px);
  line-height: 0.88;
}
.children-tools > header > p:last-child {
  margin: 0;
  color: rgba(248, 243, 235, 0.65);
  font-size: 13px;
}
.children-tools > div {
  border-top: 1px solid rgba(248, 243, 235, 0.25);
}
.children-tools > div > a {
  min-height: 156px;
  display: grid;
  grid-template-columns: 70px 1fr 30px;
  gap: 30px;
  align-items: center;
  border-bottom: 1px solid rgba(248, 243, 235, 0.25);
  transition: padding 200ms ease, background 200ms ease;
}
.children-tools > div > a:hover {
  padding: 0 18px;
  background: rgba(248, 243, 235, 0.06);
}
.children-tools > div > a > span,
.children-tools small { color: #e3c59a; font-size: 10px; font-weight: 800; }
.children-tools small { letter-spacing: 0.1em; text-transform: uppercase; }
.children-tools h3 { margin: 5px 0 0; font-size: clamp(34px, 4vw, 58px); line-height: 0.94; }
.children-tools a p { margin: 10px 0 0; color: rgba(248, 243, 235, 0.62); font-size: 13px; }
.children-tools a i { justify-self: end; font-style: normal; }

.learning-diary-hero {
  min-height: calc(100svh - 88px);
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: clamp(70px, 11vw, 170px);
  align-items: end;
  background:
    linear-gradient(90deg, transparent 62%, rgba(180, 147, 98, 0.12) 62.1%),
    radial-gradient(circle at 85% 12%, rgba(106, 52, 56, 0.12), transparent 28%),
    var(--paper);
}
.learning-diary-hero h1 {
  max-width: 1080px;
  margin: 0;
  font-size: clamp(68px, 8.5vw, 134px);
  line-height: 0.82;
}
.learning-diary-hero > div:last-child {
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.learning-diary-deck { margin: 0 0 40px; color: var(--muted); font-size: 17px; }
.learning-diary-hero dl { margin: 0; }
.learning-diary-hero dl div {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 20px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
}
.learning-diary-hero dt {
  color: var(--wine);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.learning-diary-hero dd { margin: 0; color: var(--muted); font-size: 12px; }

.diary-flow { background: var(--ivory); }
.diary-flow > .section-label { margin: 0 0 30px; }
.diary-flow > h2 {
  max-width: 1120px;
  margin: 0;
  font-size: clamp(54px, 7vw, 104px);
  line-height: 0.88;
}
.diary-flow ol {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 84px 0 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}
.diary-flow li {
  min-height: 250px;
  padding: 28px 40px 28px 0;
  border-right: 1px solid var(--line);
}
.diary-flow li:nth-child(2),
.diary-flow li:nth-child(3) { padding-left: 40px; }
.diary-flow li:last-child { border-right: 0; }
.diary-flow li > span { color: var(--wine); font-size: 10px; font-weight: 800; }
.diary-flow li > strong {
  display: block;
  margin-top: 72px;
  font-family: var(--font-display), Georgia, serif;
  font-size: 28px;
  font-weight: 500;
}
.diary-flow li p { max-width: 360px; margin: 12px 0 0; color: var(--muted); font-size: 13px; }

.learning-diary { background: var(--paper); }
.diary-intro {
  display: grid;
  grid-template-columns: 1.25fr 0.55fr;
  gap: clamp(60px, 10vw, 150px);
  align-items: end;
}
.diary-intro h2 {
  max-width: 980px;
  margin: 0;
  font-size: clamp(58px, 7vw, 106px);
  line-height: 0.88;
}
.diary-intro > p {
  margin: 0;
  padding-top: 28px;
  border-top: 1px solid var(--line);
  color: var(--muted);
}
.diary-complaints {
  padding-top: 0;
  border-top: 1px solid var(--line);
}
.diary-complaints button {
  width: 100%;
  min-height: 150px;
  display: grid;
  grid-template-columns: 64px minmax(260px, 0.7fr) 1fr;
  gap: 30px;
  align-items: center;
  padding: 22px 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: padding 180ms ease, background 180ms ease;
}
.diary-complaints button:hover:not(:disabled),
.diary-complaints button.is-selected {
  padding-right: 20px;
  padding-left: 20px;
  background: var(--ivory);
}
.diary-complaints button:disabled { cursor: not-allowed; opacity: 0.35; }
.diary-complaints button > span { color: var(--wine); font-size: 10px; font-weight: 800; }
.diary-complaints button > strong {
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(28px, 3.4vw, 48px);
  font-weight: 500;
  line-height: 0.96;
}
.diary-complaints button > small { max-width: 700px; color: var(--muted); font-size: 13px; }

.diary-workspace { background: var(--ivory); }
.diary-progress {
  display: grid;
  grid-template-columns: 1fr 0.42fr;
  gap: 80px;
  align-items: end;
  background: var(--wine);
  color: var(--ivory);
}
.diary-progress .section-label { color: #e3c59a; }
.diary-progress h2 { max-width: 900px; margin: 0; font-size: clamp(55px, 7vw, 104px); line-height: 0.88; }
.diary-progress > div:first-child > p:last-child { max-width: 700px; color: rgba(248, 243, 235, 0.7); }
.diary-progress-count > span {
  display: block;
  color: #e3c59a;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(90px, 12vw, 180px);
  line-height: 0.7;
}
.diary-progress-count > small {
  display: block;
  margin: 25px 0 20px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.diary-progress-count > i {
  height: 3px;
  display: block;
  overflow: hidden;
  background: rgba(248, 243, 235, 0.25);
}
.diary-progress-count > i b {
  height: 100%;
  display: block;
  background: #e3c59a;
  transition: width 300ms ease;
}

.diary-form-section {
  display: grid;
  grid-template-columns: 0.55fr 1.45fr;
  gap: clamp(55px, 9vw, 130px);
}
.diary-form-section > header h2 { margin: 0; font-size: clamp(52px, 6vw, 88px); line-height: 0.9; }
.diary-form-section > header > p:last-child { max-width: 480px; color: var(--muted); }
.diary-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 18px;
  align-content: start;
}
.diary-form label > span,
.diary-help-scale legend {
  display: block;
  margin-bottom: 8px;
  color: var(--wine);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.diary-form input,
.diary-form select,
.diary-form textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
}
.diary-form input,
.diary-form select { min-height: 54px; }
.diary-form textarea { padding: 12px 0; resize: vertical; }
.diary-form label > small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 9px;
  text-align: right;
}
.diary-field-wide,
.diary-help-scale { grid-column: 1 / -1; }
.diary-help-scale { margin: 8px 0 0; padding: 0; border: 0; }
.diary-help-scale > div {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.diary-help-scale button {
  min-height: 104px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 16px;
  border: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.diary-help-scale button b { color: var(--wine); font-size: 22px; }
.diary-help-scale button span { color: var(--muted); font-size: 10px; }
.diary-help-scale button[aria-pressed="true"] { background: var(--wine); }
.diary-help-scale button[aria-pressed="true"] b,
.diary-help-scale button[aria-pressed="true"] span { color: var(--ivory); }
.diary-form-footer {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-top: 10px;
}
.diary-form-footer p { max-width: 400px; margin: 0; color: var(--muted); font-size: 11px; }
.diary-message { grid-column: 2; margin: -50px 0 0; color: var(--wine); font-size: 12px; }

.diary-history { background: var(--paper); }
.diary-history > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 60px;
}
.diary-history h2 { margin: 0; font-size: clamp(54px, 6.5vw, 94px); line-height: 0.88; }
.diary-history > ol { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.diary-history li {
  display: grid;
  grid-template-columns: 150px 1fr 80px;
  gap: 32px;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
}
.diary-history-index span { display: block; color: var(--wine); font-size: 10px; font-weight: 800; }
.diary-history-index time { display: block; margin-top: 30px; color: var(--muted); font-size: 12px; }
.diary-history li h3 { margin: 0 0 12px; font-size: 31px; }
.diary-history li p { margin: 4px 0; color: var(--muted); font-size: 12px; }
.diary-history blockquote {
  margin: 18px 0 0;
  padding-left: 18px;
  border-left: 1px solid var(--wine);
  font-family: var(--font-display), Georgia, serif;
  font-size: 18px;
}
.diary-history li > button {
  align-self: start;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 10px;
  cursor: pointer;
  text-decoration: underline;
}

.diary-waiting {
  display: grid;
  grid-template-columns: 0.35fr 1fr;
  gap: clamp(50px, 8vw, 120px);
  align-items: start;
  background: var(--bronze);
  color: var(--ivory);
}
.diary-waiting > span {
  color: #e3c59a;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(130px, 20vw, 300px);
  line-height: 0.72;
}
.diary-waiting .section-label { color: #e3c59a; }
.diary-waiting h2 { max-width: 1000px; margin: 0; font-size: clamp(54px, 7vw, 102px); line-height: 0.88; }
.diary-waiting p:last-child { max-width: 700px; color: rgba(248, 243, 235, 0.68); }

.diary-analysis { background: var(--bronze); color: var(--ivory); }
.diary-analysis > header {
  display: grid;
  grid-template-columns: 0.35fr 1fr;
  gap: 44px;
  margin-bottom: 80px;
}
.diary-analysis > header .section-label { margin: 0; color: #e3c59a; }
.diary-analysis > header h2 { max-width: 1000px; margin: 0; font-size: clamp(56px, 7vw, 106px); line-height: 0.88; }
.diary-analysis > header > p:last-child { grid-column: 2; max-width: 650px; color: rgba(248, 243, 235, 0.65); }
.diary-analysis-lead {
  padding: 34px 0 54px;
  border-top: 1px solid #e3c59a;
  border-bottom: 1px solid #e3c59a;
}
.diary-analysis-lead > span,
.diary-analysis-grid article > span {
  color: #e3c59a;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.diary-analysis-lead h3 { max-width: 1000px; margin: 28px 0 12px; font-size: clamp(45px, 5.6vw, 78px); line-height: 0.9; }
.diary-analysis-lead p { color: rgba(248, 243, 235, 0.68); }
.diary-analysis-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.diary-analysis-grid article {
  min-height: 300px;
  padding: 34px 46px 34px 0;
  border-right: 1px solid rgba(248, 243, 235, 0.22);
  border-bottom: 1px solid rgba(248, 243, 235, 0.22);
}
.diary-analysis-grid article:nth-child(even) { padding-left: 46px; border-right: 0; }
.diary-analysis-grid p,
.diary-analysis-grid li { color: rgba(248, 243, 235, 0.72); font-size: 13px; }
.diary-analysis-grid ul { margin: 30px 0 0; padding-left: 18px; }
.diary-analysis-grid p { margin-top: 30px; }
.diary-experiment { padding-top: 90px; }
.diary-experiment > div {
  display: grid;
  grid-template-columns: 0.35fr 1fr;
  gap: 44px;
}
.diary-experiment .section-label { margin: 0; color: #e3c59a; }
.diary-experiment h3 { margin: 0; font-size: clamp(42px, 5vw, 72px); line-height: 0.94; }
.diary-experiment dl { margin: 70px 0 0 35%; border-top: 1px solid rgba(248, 243, 235, 0.25); }
.diary-experiment dl div {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 30px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(248, 243, 235, 0.25);
}
.diary-experiment dt { color: #e3c59a; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.diary-experiment dd { margin: 0; color: rgba(248, 243, 235, 0.72); font-size: 13px; }
.diary-analysis-actions { display: flex; align-items: center; gap: 30px; margin-top: 60px; }
.diary-analysis-actions .button { background: #e3c59a; color: var(--ink); }
.diary-analysis-actions .text-link { color: var(--ivory); }

.diary-boundary {
  display: grid;
  grid-template-columns: 0.72fr 1fr;
  gap: clamp(70px, 11vw, 170px);
  background: var(--stone);
}
.diary-boundary h2 { max-width: 720px; margin: 0; font-size: clamp(56px, 7vw, 104px); line-height: 0.88; }
.diary-boundary ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.diary-boundary li { padding: 20px 0; border-bottom: 1px solid var(--line); }
.diary-next { display: grid; grid-template-columns: repeat(2, 1fr); padding-top: 0; padding-bottom: 0; }
.diary-next a {
  min-height: 220px;
  display: grid;
  grid-template-columns: 1fr 35px;
  align-content: center;
  padding-right: 50px;
  border-right: 1px solid var(--line);
}
.diary-next a:last-child { padding-right: 0; padding-left: 50px; border-right: 0; }
.diary-next a span { grid-column: 1 / -1; color: var(--wine); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.diary-next a strong { margin-top: 20px; font-family: var(--font-display), Georgia, serif; font-size: 31px; font-weight: 500; }
.diary-next a i { align-self: end; justify-self: end; font-style: normal; }

@media (max-width: 960px) {
  .learning-diary-hero,
  .diary-intro,
  .diary-progress,
  .diary-form-section,
  .diary-boundary { grid-template-columns: 1fr; gap: 48px; }
  .learning-diary-hero { align-content: end; }
  .children-tools > header { grid-template-columns: 1fr; }
  .diary-form-section > header { max-width: 760px; }
  .diary-message { grid-column: 1 / -1; margin: 0; }
}

@media (max-width: 760px) {
  .tools-groups { gap: 70px; }
  .tools-groups > section > header { grid-template-columns: 35px 1fr; }
  .tools-groups > section > header p { grid-column: 2; }
  .tools-list > a { grid-template-columns: 34px 1fr 20px; gap: 14px; }
  .tools-list h3 { font-size: 34px; }
  .children-tools > div > a { grid-template-columns: 34px 1fr 20px; gap: 14px; }
  .learning-diary-hero { min-height: calc(100svh - 70px); }
  .learning-diary-hero h1 { font-size: 58px; }
  .learning-diary-hero dl div { grid-template-columns: 95px 1fr; }
  .diary-flow ol,
  .diary-analysis-grid,
  .diary-next { grid-template-columns: 1fr; }
  .diary-flow li,
  .diary-flow li:nth-child(2),
  .diary-flow li:nth-child(3) {
    min-height: auto;
    padding: 28px 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .diary-flow li > strong { margin-top: 30px; }
  .diary-complaints button {
    grid-template-columns: 34px 1fr;
    gap: 14px;
    padding: 24px 0;
  }
  .diary-complaints button > small { grid-column: 2; }
  .diary-progress-count > span { font-size: 120px; }
  .diary-form { grid-template-columns: 1fr; }
  .diary-field-wide,
  .diary-help-scale { grid-column: 1; }
  .diary-help-scale > div { grid-template-columns: 1fr; }
  .diary-help-scale button {
    min-height: 72px;
    display: grid;
    grid-template-columns: 35px 1fr;
    align-items: center;
    border-right: 1px solid var(--line);
  }
  .diary-form-footer,
  .diary-history > header,
  .diary-analysis-actions { align-items: flex-start; flex-direction: column; }
  .diary-history li { grid-template-columns: 55px 1fr; gap: 16px; }
  .diary-history li > button { grid-column: 2; }
  .diary-history-index time { margin-top: 12px; }
  .diary-waiting,
  .diary-analysis > header,
  .diary-experiment > div { grid-template-columns: 1fr; }
  .diary-waiting > span { font-size: 130px; }
  .diary-analysis > header > p:last-child { grid-column: 1; }
  .diary-analysis-grid article,
  .diary-analysis-grid article:nth-child(even) {
    min-height: auto;
    padding: 30px 0;
    border-right: 0;
  }
  .diary-experiment dl { margin: 45px 0 0; }
  .diary-experiment dl div { grid-template-columns: 1fr; gap: 8px; }
  .diary-next a,
  .diary-next a:last-child {
    min-height: 180px;
    padding: 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
}

/* Compact account hierarchy: primary destinations first, utility records second. */
.account-page .account-toolbar {
  padding: 12px clamp(20px, 6vw, 72px);
  border-bottom: 0;
}

.account-page .account-toolbar h1 {
  font-size: 16px;
}

.account-page .account-toolbar nav {
  gap: 14px;
}

.account-page .account-toolbar nav a {
  font-size: 10px;
}

.account-content-compact {
  width: min(100% - 48px, 1120px);
  padding-bottom: 34px;
}

.account-primary-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  padding: 10px 0 12px;
}

.account-primary-nav a {
  display: grid;
  gap: 3px;
  padding: 7px 0;
  color: var(--ink);
  text-decoration: none;
  transition: color 180ms ease, transform 180ms ease;
}

.account-primary-nav a:hover,
.account-primary-nav a:focus-visible {
  color: var(--wine);
  transform: translateY(-1px);
}

.account-primary-nav strong {
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.2;
}

.account-primary-nav span {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.3;
}

.account-module {
  min-width: 0;
}

.account-module-primary {
  padding-top: 2px;
}

.account-module-secondary {
  margin-top: 2px;
  opacity: 0.88;
}

.account-page .account-content-compact .section-pad {
  padding: 14px 0;
}

.account-page .account-content-compact .account-login,
.account-page .account-content-compact .account-checking {
  display: block;
  min-height: 0;
  padding: 14px 0 18px;
  border: 0;
  background: transparent;
}

.account-page .account-content-compact .account-login h2,
.account-page .account-content-compact .account-checking h2 {
  max-width: none;
  margin: 3px 0 0;
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 16px;
  line-height: 1.22;
}

.account-page .account-content-compact .account-login > div:first-child {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 5px 14px;
}

.account-page .account-content-compact .account-login .section-label {
  width: 100%;
  margin: 0;
}

.account-page .account-content-compact .account-login .account-saved-count {
  margin: 0;
  font-size: 11px;
}

.account-page .account-content-compact .account-login .button {
  min-height: 32px;
  margin-top: 8px;
  padding: 0 13px;
  font-size: 10px;
}

.account-page .account-content-compact .account-dashboard,
.account-page .account-content-compact .learning-diary {
  background: transparent;
}

.account-page .account-content-compact .account-bar {
  min-height: 0;
  align-items: center;
  padding: 12px 0 7px;
  border: 0;
  background: transparent;
  color: var(--ink);
}

.account-page .account-content-compact .account-bar .section-label {
  margin: 0 0 2px;
  color: var(--wine);
}

.account-page .account-content-compact .account-bar h2 {
  margin: 0;
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.22;
}

.account-page .account-content-compact .account-bar p:last-child,
.account-page .account-content-compact .account-bar > span,
.account-page .account-content-compact .account-bar .text-link {
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
}

.account-page .account-content-compact .account-diaries,
.account-page .account-content-compact .diary-intro,
.account-page .account-content-compact .diary-complaints,
.account-page .account-content-compact .account-danger,
.account-page .account-content-compact .account-message {
  border: 0;
  background: transparent;
}

.account-page .account-content-compact .account-diaries {
  padding: 12px 0 8px;
}

.account-page .account-content-compact .account-diaries > h2,
.account-page .account-content-compact .diary-intro h2 {
  max-width: none;
  margin: 0 0 9px;
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 15px;
  line-height: 1.25;
}

.account-page .account-content-compact .account-diaries ol {
  border-top: 0;
}

.account-page .account-content-compact .account-diaries button {
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) auto auto 18px;
  gap: 10px;
  padding: 9px 0;
}

.account-page .account-content-compact .account-diaries button > span {
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
}

.account-page .account-content-compact .account-diaries button > strong,
.account-page .account-content-compact .account-diaries button > small {
  font-size: 10px;
}

.account-page .account-content-compact .diary-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.48fr);
  gap: 20px;
  padding: 14px 0 9px;
}

.account-page .account-content-compact .diary-intro h2 {
  margin-bottom: 0;
}

.account-page .account-content-compact .diary-intro > p {
  padding-top: 0;
  font-size: 10px;
}

.account-page .account-content-compact .diary-complaints {
  padding: 6px 0 12px;
}

.account-page .account-content-compact .diary-complaints button {
  min-height: 0;
  grid-template-columns: 26px minmax(0, 0.85fr) minmax(0, 1fr);
  gap: 12px;
  padding: 10px 0;
}

.account-page .account-content-compact .diary-complaints button > strong {
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 13px;
  line-height: 1.25;
}

.account-page .account-content-compact .account-danger {
  padding: 12px 0;
}

.account-page .account-content-compact .account-danger p {
  font-size: 10px;
}

@media (max-width: 760px) {
  .account-content-compact {
    width: calc(100% - 40px);
  }

  .account-primary-nav {
    grid-template-columns: 1fr;
    gap: 1px;
    padding: 7px 0 10px;
  }

  .account-primary-nav a {
    padding: 7px 0;
  }

  .account-page .account-content-compact .diary-intro {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .account-page .account-content-compact .diary-complaints button {
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 8px;
  }

  .account-page .account-content-compact .diary-complaints button > small {
    grid-column: 2;
  }
}

/* Compact account workspace: utility surface, not a promotional hero. */
.account-page {
  background: var(--ivory);
}

.account-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 18px clamp(24px, 6vw, 96px);
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}

.account-toolbar h1 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.025em;
}

.account-toolbar nav {
  display: flex;
  align-items: center;
  gap: 18px;
}

.account-toolbar nav a {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
}

.account-toolbar nav a:first-child {
  color: var(--wine);
}

.account-toolbar nav a:hover,
.account-toolbar nav a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.account-content {
  width: min(100% - 48px, 1120px);
  margin: 0 auto;
  padding-bottom: 48px;
}

.account-content > .account-login,
.account-content > .account-checking {
  display: block;
  padding: 28px 0 34px;
  border-top: 1px solid var(--line);
  background: transparent;
}

.account-content > .account-login h2,
.account-content > .account-checking h2 {
  max-width: none;
  margin: 4px 0 0;
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.025em;
}

.account-content > .account-login > div:first-child {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 18px;
}

.account-content > .account-login .section-label {
  width: 100%;
  margin: 0;
}

.account-content > .account-login .account-saved-count {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.account-content > .account-login .button {
  margin-top: 14px;
  min-height: 38px;
  padding: 0 16px;
  font-size: 11px;
}

.account-content > .account-login .account-email-login {
  margin-top: 24px;
}

.account-content > .account-login .account-message {
  padding: 14px 0 0;
}

.account-content > .account-dashboard {
  background: transparent;
}

.account-content > .account-dashboard > .account-bar,
.account-content > .learning-diary .account-bar {
  min-height: 0;
  align-items: center;
  padding: 20px 0 14px;
  border-top: 1px solid var(--line);
  border-bottom: 0;
  background: transparent;
  color: var(--ink);
}

.account-content > .account-dashboard > .account-bar .section-label {
  margin: 0 0 3px;
  color: var(--wine);
}

.account-content > .account-dashboard > .account-bar h2,
.account-content > .learning-diary .account-bar h2 {
  margin: 0;
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.025em;
}

.account-content > .account-dashboard > .account-bar p:last-child,
.account-content > .learning-diary .account-bar > span {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 11px;
}

.account-content > .account-dashboard > .account-bar .text-link,
.account-content > .learning-diary .account-bar .text-link {
  color: var(--muted);
  font-size: 11px;
}

.account-content > .account-dashboard > .account-diaries,
.account-content > .account-dashboard > .diary-intro,
.account-content > .account-dashboard > .diary-complaints,
.account-content > .account-dashboard > .account-danger,
.account-content > .account-dashboard > .account-message {
  padding: 22px 0;
  background: transparent;
}

.account-content > .account-dashboard > .account-diaries {
  border-top: 1px solid var(--line);
}

.account-content > .account-dashboard > .account-diaries > h2 {
  margin: 0 0 12px;
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.25;
}

.account-content > .account-dashboard > .account-diaries button {
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) auto auto 24px;
  gap: 12px;
  padding: 12px 0;
  background: transparent;
}

.account-content > .account-dashboard > .account-diaries button:hover {
  padding-right: 8px;
  padding-left: 8px;
  background: var(--paper);
}

.account-content > .account-dashboard > .account-diaries button > span {
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
}

.account-content > .account-dashboard > .diary-intro {
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.45fr);
  gap: 24px;
  border-top: 1px solid var(--line);
}

.account-content > .account-dashboard > .diary-intro h2 {
  max-width: none;
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
}

.account-content > .account-dashboard > .diary-intro > p {
  padding-top: 0;
  font-size: 11px;
}

.account-content > .account-dashboard > .diary-complaints {
  border-top: 0;
}

.account-content > .account-dashboard > .diary-complaints button {
  min-height: 0;
  grid-template-columns: 34px minmax(0, 0.85fr) minmax(0, 1fr);
  gap: 16px;
  padding: 14px 0;
}

.account-content > .account-dashboard > .diary-complaints button > strong {
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
}

.account-content > .account-dashboard > .account-danger {
  border-top: 1px solid var(--line);
  background: transparent;
}

.account-content > .account-dashboard > .account-danger p {
  font-size: 11px;
}

.account-content > .learning-diary .account-bar-diary {
  justify-content: space-between;
}

@media (max-width: 760px) {
  .account-toolbar {
    padding: 16px 20px;
  }

  .account-toolbar h1 {
    font-size: 19px;
  }

  .account-toolbar nav {
    gap: 12px;
  }

  .account-toolbar nav a {
    font-size: 10px;
  }

  .account-content {
    width: calc(100% - 40px);
    padding-bottom: 28px;
  }

  .account-content > .account-dashboard > .diary-intro,
  .account-content > .account-dashboard > .diary-complaints button {
    grid-template-columns: 1fr;
  }

  .account-content > .account-dashboard > .diary-intro > p,
  .account-content > .account-dashboard > .diary-complaints button > small {
    grid-column: 1;
  }
}

/* Parent account */
.account-page h1,
.account-page h2,
.account-page h3,
.account-dashboard h2,
.account-login h2,
.account-checking h2,
.diary-check-in h2 {
  font-family: var(--font-display), Georgia, serif;
  font-weight: 500;
  letter-spacing: -0.045em;
}

.account-hero {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(280px, 0.72fr);
  gap: clamp(36px, 8vw, 110px);
  align-items: start;
  padding-top: clamp(40px, 6vw, 76px);
  padding-bottom: clamp(36px, 5vw, 64px);
  background:
    radial-gradient(circle at 76% 18%, rgba(106, 52, 56, 0.14), transparent 28%),
    var(--paper);
}
.account-hero h1 {
  max-width: 1100px;
  margin: 0;
  color: var(--ink);
  font-size: clamp(38px, 5vw, 72px);
  line-height: 0.94;
}
.account-hero-tagline {
  margin: 14px 0 0;
  color: var(--ink);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(18px, 2vw, 28px);
  line-height: 1;
}
.account-hero > div:last-child {
  padding-top: 26px;
  border-top: 1px solid var(--line);
}
.account-hero > div:last-child p {
  margin: 0 0 24px;
  color: var(--muted);
}
.account-tools-link {
  display: inline-block;
  color: var(--wine);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.account-checking {
  min-height: 44svh;
  background: var(--ivory);
}
.account-checking h2 {
  max-width: 900px;
  margin: 20px 0 0;
  font-size: clamp(52px, 6.5vw, 94px);
  line-height: 0.9;
}

.account-login {
  display: grid;
  grid-template-columns: 1fr minmax(300px, 0.62fr);
  gap: clamp(70px, 11vw, 170px);
  background: var(--ivory);
}
.account-login h2 {
  max-width: 850px;
  margin: 0;
  font-size: clamp(34px, 4.5vw, 62px);
  line-height: 0.88;
}
.account-login .account-saved-count {
  margin-top: 18px;
  color: var(--muted);
  font-size: 13px;
}
.account-login > div > p:last-child {
  max-width: 660px;
  margin-top: 28px;
  color: var(--muted);
}
.account-local-start,
.account-login form {
  align-self: end;
  display: grid;
  gap: 18px;
  padding-top: 26px;
  border-top: 1px solid var(--line);
}
.account-local-start h3 {
  max-width: 480px;
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(34px, 3.5vw, 56px);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 0.95;
}
.account-local-start > p:not(.section-label) {
  max-width: 480px;
  margin: 0;
  color: var(--muted);
}
.account-local-start .button {
  width: fit-content;
}
.account-local-start small {
  max-width: 460px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.55;
}
.account-local-start .text-link {
  width: fit-content;
}
.account-email-login {
  grid-column: 2;
}
.account-login label span,
.diary-check-in label span,
.diary-check-in legend {
  display: block;
  margin-bottom: 9px;
  color: var(--wine);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.account-login input,
.diary-check-in input,
.diary-check-in textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
}
.account-login input,
.diary-check-in input {
  min-height: 58px;
}
.account-login small {
  color: var(--muted);
  font-size: 10px;
}
.account-login .account-consent {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 12px;
  align-items: start;
}
.account-login .account-consent input {
  min-height: 0;
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: var(--wine);
}
.account-login .account-consent span {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
  text-transform: none;
}
.account-login .account-consent a {
  color: var(--wine);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.account-message {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--wine);
  font-size: 12px;
}

.account-auth {
  display: grid;
  gap: 16px;
  max-width: 520px;
}
.account-auth-tabs {
  display: flex;
  gap: 18px;
  border-bottom: 1px solid var(--line);
}
.account-auth-tabs button {
  padding: 0 0 12px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.account-auth-tabs button.is-active {
  border-bottom-color: var(--wine);
  color: var(--ink);
}
.account-auth h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(34px, 3.8vw, 54px);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 0.94;
}
.account-auth-note {
  max-width: 460px;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}
.account-auth form {
  display: grid;
  gap: 16px;
  padding-top: 8px;
  border-top: 0;
}
.account-auth label > span {
  display: block;
  margin-bottom: 8px;
  color: var(--wine);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.account-auth input:not([type="checkbox"]) {
  width: 100%;
  min-height: 52px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
}
.account-auth label > small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}
.account-auth .account-consent {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 10px;
  align-items: start;
}
.account-auth .account-consent input {
  width: 17px;
  height: 17px;
  margin: 2px 0 0;
  accent-color: var(--wine);
}
.account-auth .account-consent span {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
}
.account-auth .account-consent a {
  color: var(--wine);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.account-auth .account-message {
  grid-column: 1;
}
.account-auth-switch {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}
.account-auth-switch .text-link {
  display: inline;
  padding: 0;
  border: 0;
  color: var(--wine);
  font-size: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.account-bar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 40px;
  background: var(--bronze);
  color: var(--ivory);
}
.account-bar .section-label { color: #e3c59a; }
.account-bar h2 {
  margin: 0;
  font-size: clamp(62px, 8vw, 118px);
  line-height: 0.84;
}
.account-bar p:last-child,
.account-bar > span {
  margin: 18px 0 0;
  color: rgba(248, 243, 235, 0.62);
  font-size: 12px;
}
.account-bar .text-link {
  border-color: rgba(248, 243, 235, 0.55);
  color: var(--ivory);
}
.account-bar-diary {
  align-items: center;
  padding-top: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(248, 243, 235, 0.2);
}

.account-diaries { background: var(--paper); }
.account-diaries > h2 {
  max-width: 900px;
  margin: 0 0 50px;
  font-size: clamp(48px, 6vw, 88px);
  line-height: 0.9;
}
.account-diaries ol {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}
.account-diaries button {
  width: 100%;
  min-height: 135px;
  display: grid;
  grid-template-columns: minmax(240px, 1fr) 180px 220px 32px;
  gap: 24px;
  align-items: center;
  padding: 20px 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: padding 180ms ease, background 180ms ease;
}
.account-diaries button:hover {
  padding-right: 18px;
  padding-left: 18px;
  background: var(--ivory);
}
.account-diaries button > span {
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(28px, 3vw, 44px);
  line-height: 0.95;
}
.account-diaries button > strong,
.account-diaries button > small {
  color: var(--muted);
  font-size: 11px;
}
.account-diaries button > small {
  color: var(--wine);
  font-weight: 800;
  text-transform: uppercase;
}
.account-diaries button > i {
  justify-self: end;
  font-style: normal;
}

.account-danger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 50px;
  background: var(--stone);
}
.account-danger p {
  max-width: 680px;
  margin: 0;
  color: var(--muted);
}

.diary-export {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 22px 32px;
  margin-top: 64px;
  padding-top: 28px;
  border-top: 1px solid rgba(248, 243, 235, 0.25);
}
.diary-export .button {
  background: #e3c59a;
  color: var(--ink);
}
.diary-export .text-link {
  color: var(--ivory);
}
.diary-export > div {
  max-width: 430px;
  padding-left: 22px;
  border-left: 1px solid rgba(248, 243, 235, 0.28);
}
.diary-export > div p {
  margin: 0 0 8px;
  color: rgba(248, 243, 235, 0.66);
  font-size: 11px;
}
.diary-export > div a {
  color: #e3c59a;
  font-size: 11px;
  font-weight: 800;
}

.diary-check-in {
  display: grid;
  grid-template-columns: 0.62fr 1fr;
  gap: clamp(60px, 9vw, 130px);
  background: var(--ivory);
}
.diary-check-in > header h2 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(52px, 6vw, 88px);
  line-height: 0.9;
}
.diary-check-in > header > p:last-child {
  max-width: 560px;
  color: var(--muted);
}
.diary-check-in form {
  display: grid;
  gap: 26px;
  align-content: start;
}
.diary-check-in textarea {
  padding: 12px 0;
  resize: vertical;
}
.diary-check-in fieldset {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin: 0;
  padding: 0;
  border: 0;
}
.diary-check-in legend {
  grid-column: 1 / -1;
}
.diary-check-in fieldset button {
  min-height: 68px;
  border: 1px solid var(--line);
  border-right: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
}
.diary-check-in fieldset button:nth-of-type(even) { border-right: 1px solid var(--line); }
.diary-check-in fieldset button:nth-of-type(n+3) { border-top: 0; }
.diary-check-in fieldset button[aria-pressed="true"] {
  background: var(--wine);
  color: var(--ivory);
}
.diary-check-in > ol {
  grid-column: 2;
  margin: 20px 0 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}
.diary-check-in > ol li {
  display: grid;
  grid-template-columns: 130px 160px 1fr;
  gap: 22px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.diary-check-in > ol time,
.diary-check-in > ol small {
  color: var(--muted);
  font-size: 10px;
}
.diary-check-in > ol p {
  margin: 0;
}
.diary-check-in > ol small {
  grid-column: 3;
}

.privacy-hero {
  min-height: 72svh;
  display: grid;
  grid-template-columns: 1fr minmax(280px, 0.42fr);
  gap: clamp(60px, 10vw, 150px);
  align-items: end;
  background: var(--paper);
}
.privacy-hero h1,
.privacy-content h2 {
  font-family: var(--font-display), Georgia, serif;
  font-weight: 500;
  letter-spacing: -0.045em;
}
.privacy-hero h1 {
  max-width: 1100px;
  margin: 0;
  font-size: clamp(68px, 8.5vw, 132px);
  line-height: 0.82;
}
.privacy-hero > p:last-child {
  margin: 0;
  padding-top: 26px;
  border-top: 1px solid var(--line);
  color: var(--muted);
}
.privacy-content { background: var(--ivory); }
.privacy-content section {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 34px;
  padding: 38px 0;
  border-top: 1px solid var(--line);
}
.privacy-content section > span {
  color: var(--wine);
  font-size: 10px;
  font-weight: 800;
}
.privacy-content section > div {
  max-width: 900px;
}
.privacy-content h2 {
  margin: 0 0 18px;
  font-size: clamp(38px, 4.5vw, 64px);
  line-height: 0.94;
}
.privacy-content p {
  color: var(--muted);
}

@media (max-width: 960px) {
  .account-hero,
  .account-login,
  .privacy-hero,
  .diary-check-in {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .account-hero { align-content: end; }
  .account-email-login { grid-column: 1; }
  .diary-check-in > ol { grid-column: 1; }
}

@media (max-width: 760px) {
  .account-hero { min-height: 0; }
  .account-hero h1 { font-size: 42px; }
  .account-hero-tagline { font-size: 20px; }
  .account-bar,
  .account-danger,
  .diary-export {
    align-items: flex-start;
    flex-direction: column;
  }
  .account-bar-diary { align-items: flex-start; }
  .account-diaries button {
    grid-template-columns: 1fr 28px;
    gap: 10px 16px;
  }
  .account-diaries button > strong,
  .account-diaries button > small {
    grid-column: 1;
  }
  .account-diaries button > i {
    grid-column: 2;
    grid-row: 1 / 4;
    align-self: center;
  }
  .diary-check-in > ol li {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .diary-check-in > ol small { grid-column: 1; }
  .privacy-hero { min-height: calc(100svh - 70px); }
  .privacy-hero h1 { font-size: 56px; }
  .privacy-content section {
    grid-template-columns: 34px 1fr;
    gap: 14px;
  }
}

/* Final compact account overrides. Keep the cabinet scannable as it grows. */
.account-page .account-toolbar {
  padding: 12px clamp(20px, 6vw, 72px);
  border-bottom: 0;
}

.account-page .account-toolbar h1 { font-size: 16px; }
.account-page .account-toolbar nav { gap: 14px; }
.account-page .account-toolbar nav a { font-size: 10px; }

.account-content-compact {
  width: min(100% - 48px, 1120px);
  padding-bottom: 34px;
}

.account-primary-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  padding: 10px 0 12px;
}

.account-primary-nav a {
  display: grid;
  gap: 3px;
  padding: 7px 0;
  color: var(--ink);
  text-decoration: none;
  transition: color 180ms ease, transform 180ms ease;
}

.account-primary-nav a:hover,
.account-primary-nav a:focus-visible {
  color: var(--wine);
  transform: translateY(-1px);
}

.account-primary-nav strong {
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.2;
}

.account-primary-nav span {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.3;
}

.account-module { min-width: 0; }
.account-module-primary { padding-top: 2px; }
.account-module-secondary { margin-top: 2px; opacity: 0.88; }

.account-page .account-content-compact .account-module .section-pad {
  padding: 14px 0;
}

.account-page .account-content-compact .account-module .account-login,
.account-page .account-content-compact .account-module .account-checking {
  display: block;
  min-height: 0;
  padding: 14px 0 18px;
  border: 0;
  background: transparent;
}

.account-page .account-content-compact .account-module .account-login h2,
.account-page .account-content-compact .account-module .account-checking h2,
.account-page .account-content-compact .account-module .account-bar h2,
.account-page .account-content-compact .account-module .account-diaries > h2,
.account-page .account-content-compact .account-module .diary-intro h2 {
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.22;
}

.account-page .account-content-compact .account-module .account-login h2,
.account-page .account-content-compact .account-module .account-checking h2,
.account-page .account-content-compact .account-module .account-bar h2,
.account-page .account-content-compact .account-module .account-diaries > h2,
.account-page .account-content-compact .account-module .diary-intro h2 {
  max-width: none;
  margin: 3px 0 9px;
}

.account-page .account-content-compact .account-module .account-bar {
  min-height: 0;
  align-items: center;
  padding: 12px 0 7px;
  border: 0;
  background: transparent;
  color: var(--ink);
}

.account-page .account-content-compact .account-module .account-bar .section-label {
  margin: 0 0 2px;
  color: var(--wine);
}

.account-page .account-content-compact .account-module .account-bar p:last-child,
.account-page .account-content-compact .account-module .account-bar > span,
.account-page .account-content-compact .account-module .account-bar .text-link {
  min-height: 30px;
  margin-top: 3px;
  border-bottom: 0;
  color: var(--muted);
  font-size: 10px;
}

.account-page .account-content-compact .account-module .account-dashboard,
.account-page .account-content-compact .account-module .learning-diary,
.account-page .account-content-compact .account-module .account-diaries,
.account-page .account-content-compact .account-module .diary-intro,
.account-page .account-content-compact .account-module .diary-complaints,
.account-page .account-content-compact .account-module .account-danger,
.account-page .account-content-compact .account-module .account-message {
  background: transparent;
  border: 0;
}

.account-page .account-content-compact .account-module .account-diaries {
  padding: 12px 0 8px;
}

.account-page .account-content-compact .account-module .account-diaries ol {
  border-top: 0;
}

.account-page .account-content-compact .account-module .account-diaries button {
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) auto auto 18px;
  gap: 10px;
  padding: 9px 0;
}

.account-page .account-content-compact .account-module .account-diaries button > span {
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
}

.account-page .account-content-compact .account-module .account-diaries button > strong,
.account-page .account-content-compact .account-module .account-diaries button > small {
  font-size: 10px;
}

.account-page .account-content-compact .account-module .diary-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.48fr);
  gap: 20px;
  padding: 14px 0 9px;
}

.account-page .account-content-compact .account-module .diary-intro h2 {
  margin-bottom: 0;
}

.account-page .account-content-compact .account-module .diary-intro > p {
  padding-top: 0;
  font-size: 10px;
}

.account-page .account-content-compact .account-module .diary-complaints {
  padding: 6px 0 12px;
}

.account-page .account-content-compact .account-module .diary-complaints button {
  min-height: 0;
  grid-template-columns: 26px minmax(0, 0.85fr) minmax(0, 1fr);
  gap: 12px;
  padding: 10px 0;
}

.account-page .account-content-compact .account-module .diary-complaints button > strong {
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 13px;
  line-height: 1.25;
}

.account-page .account-content-compact .account-module .account-danger {
  padding: 12px 0;
}

.account-page .account-content-compact .account-module .account-danger p {
  font-size: 10px;
}

@media (max-width: 760px) {
  .account-content-compact { width: calc(100% - 40px); }

  .account-primary-nav {
    grid-template-columns: 1fr;
    gap: 1px;
    padding: 7px 0 10px;
  }

  .account-primary-nav a { padding: 7px 0; }

  .account-page .account-content-compact .account-module .diary-intro {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .account-page .account-content-compact .account-module .diary-complaints button {
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 8px;
  }

  .account-page .account-content-compact .account-module .diary-complaints button > small {
    grid-column: 2;
  }
}

/* Account headings: one clear level, then quiet supporting text. */
.account-page .account-content-compact {
  display: block;
}

.account-page .account-primary-nav {
  display: none;
}

.account-service-links {
  display: grid;
  gap: 12px;
  margin: 8px 0 20px;
  padding: 14px 0 16px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.account-service-links > .section-label { margin: 0; }

.account-service-links > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px 28px;
}

.account-service-links a {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-items: baseline;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.3;
  text-decoration: none;
}

.account-service-links a:hover,
.account-service-links a:focus-visible { color: var(--wine); }

.account-service-links a span {
  color: var(--muted);
  font-size: 10px;
}

.account-page .account-content-compact > .account-module + .account-module {
  margin-top: 18px;
  padding-top: 2px;
}

.account-page .account-content-compact .account-module-secondary {
  opacity: 1;
}

.account-page .account-content-compact .account-section-title {
  margin: 0 0 3px;
  color: var(--wine);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 19px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.025em;
}

.account-page .account-content-compact .account-subsection-title {
  max-width: none;
  margin: 0;
  color: var(--ink);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
}

.account-page .account-content-compact .account-list-caption {
  margin: 10px 0 5px;
  color: var(--muted);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0;
}

.account-page .account-content-compact .account-login .account-section-title {
  width: 100%;
}

.account-page .account-content-compact .account-demo-link {
  display: inline-flex;
  width: fit-content;
  margin-top: 11px;
  color: var(--wine);
  font-size: 10px;
  font-weight: 700;
  text-decoration: none;
}

.account-page .account-content-compact .account-demo-link:hover,
.account-page .account-content-compact .account-demo-link:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.account-page .account-content-compact .account-demo-note {
  margin: 8px 0 12px;
  padding: 10px 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.account-page .account-content-compact .account-module .account-diaries > h2.account-list-caption {
  font-size: 11px;
  font-weight: 600;
}

/* Saved diary details: a real first readout even before five episodes are collected. */
.account-page .diary-back-actions {
  display: inline-flex;
  align-items: center;
  gap: 14px;
}

.account-page .diary-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
}

.account-page .diary-close:hover,
.account-page .diary-close:focus-visible {
  border-color: var(--wine);
  color: var(--wine);
}

.account-page .account-email-title {
  margin: 5px 0 3px;
  color: var(--ink);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
}

.account-page .account-email-note {
  max-width: 520px;
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
}

.account-page .account-email-login > .section-label {
  margin: 0;
}

.account-page .diary-early-analysis {
  border-top: 1px solid var(--line);
  background: transparent;
}

.account-page .diary-early-analysis > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, .55fr);
  gap: 16px 28px;
  align-items: start;
  margin-bottom: 18px;
}

.account-page .diary-early-analysis > header .section-label,
.account-page .diary-early-analysis > header h2 {
  grid-column: 1 / -1;
}

.account-page .diary-early-analysis > header .section-label { margin: 0; }

.account-page .diary-early-analysis > header h2 {
  max-width: none;
  margin: 0;
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: clamp(22px, 3vw, 34px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -.035em;
}

.account-page .diary-early-analysis > header > p:last-child {
  grid-column: 2;
  max-width: 480px;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.account-page .diary-early-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.account-page .diary-early-grid article {
  display: grid;
  gap: 7px;
  min-height: 132px;
  padding: 16px;
  background: var(--ivory);
}

.account-page .diary-early-grid article > span {
  color: var(--wine);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.account-page .diary-early-grid article > strong {
  font-size: 14px;
  line-height: 1.25;
}

.account-page .diary-early-grid article > p,
.account-page .diary-early-grid article > small {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.account-page .diary-early-boundary {
  max-width: 800px;
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}

@media (max-width: 760px) {
  .account-page .diary-early-analysis > header { grid-template-columns: 1fr; }
  .account-page .diary-early-analysis > header > p:last-child { grid-column: 1; }
  .account-page .diary-early-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .account-service-links > div { grid-template-columns: 1fr; }
}

/* Personal account: calm warm overview with one expandable workspace at a time. */
.account-page {
  --account-cream: #fffaf3;
  --account-paper: #fffdf9;
  --account-sand: #f1e2cf;
  --account-powder: #f4ddd8;
  --account-peach: #f5cbb8;
  --account-olive: #dfe0c3;
  --account-ink: #3a302c;
  --account-muted: #766861;
  --account-accent: #a65e4f;
  min-height: 100vh;
  background: var(--account-cream);
  color: var(--account-ink);
}

.account-page .account-toolbar {
  min-height: 62px;
  padding: 12px clamp(20px, 6vw, 72px);
  border-bottom: 1px solid rgba(58, 48, 44, .12);
  background: var(--account-paper);
}

.account-page .account-toolbar h1 {
  color: var(--account-ink);
  font-size: 20px;
}

.account-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 18px;
}

.account-toolbar-actions > a,
.account-logout {
  min-height: 38px;
  padding: 9px 0;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: var(--account-muted);
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  text-decoration: none;
}

.account-toolbar-actions > a:hover,
.account-toolbar-actions > a:focus-visible,
.account-logout:hover,
.account-logout:focus-visible {
  border-bottom-color: currentColor;
  color: var(--account-accent);
}

.account-page .account-content-compact {
  display: block;
  width: min(100% - 40px, 1080px);
  padding: 28px 0 54px;
}

.account-structure-label {
  margin: 0 0 10px;
  color: var(--account-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.account-accordion-hint {
  margin: -2px 0 12px;
  color: var(--account-muted);
  font-size: 12px;
  line-height: 1.45;
}

.account-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 26px;
}

.account-overview a {
  display: grid;
  min-height: 116px;
  align-content: end;
  gap: 7px;
  padding: 20px;
  border: 1px solid rgba(58, 48, 44, .1);
  color: var(--account-ink);
  text-decoration: none;
  transition: transform 160ms ease, border-color 160ms ease;
}

.account-overview a:nth-child(1) { background: var(--account-sand); }
.account-overview a:nth-child(2) { background: var(--account-olive); }
.account-overview a:hover,
.account-overview a:focus-visible { border-color: var(--account-accent); transform: translateY(-2px); }
.account-overview strong { font-size: 17px; line-height: 1.15; }
.account-overview span { color: var(--account-muted); font-size: 11px; line-height: 1.4; }

.account-accordion {
  overflow: hidden;
  border: 1px solid rgba(58, 48, 44, .14);
  background: var(--account-paper);
}

.account-accordion-item + .account-accordion-item { border-top: 1px solid rgba(58, 48, 44, .14); }
.account-accordion-trigger {
  display: flex;
  width: 100%;
  min-height: 82px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 16px 20px;
  border: 0;
  background: var(--account-paper);
  color: var(--account-ink);
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.account-accordion-item:nth-child(3n + 2) .account-accordion-trigger { background: rgba(241, 226, 207, .36); }
.account-accordion-item:nth-child(3n) .account-accordion-trigger { background: rgba(244, 221, 216, .26); }
.account-accordion-trigger > span { display: grid; gap: 5px; }
.account-accordion-trigger strong { font-size: 16px; line-height: 1.2; }
.account-accordion-trigger small { color: var(--account-muted); font-size: 11px; line-height: 1.35; }
.account-accordion-trigger i {
  display: grid;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid rgba(58, 48, 44, .2);
  border-radius: 50%;
  color: var(--account-accent);
  font-size: 24px;
  font-style: normal;
  font-weight: 400;
}
.account-accordion-trigger:hover i,
.account-accordion-trigger:focus-visible i { border-color: var(--account-accent); }
.account-accordion-item[data-open] .account-accordion-trigger { background: var(--account-peach); }
.account-accordion-content {
  padding: 0 20px 24px;
  border-top: 1px solid rgba(58, 48, 44, .12);
  background: var(--account-cream);
}
.account-accordion-content[hidden] { display: none !important; }

.account-page .account-accordion-content .account-bar,
.account-page .account-accordion-content .account-diaries,
.account-page .account-accordion-content .diary-intro,
.account-page .account-accordion-content .diary-complaints,
.account-page .account-accordion-content .account-danger,
.account-page .account-accordion-content .account-message {
  background: transparent;
  border-color: rgba(58, 48, 44, .14);
}

.account-nested-action {
  margin: 12px 0;
  border-top: 1px solid rgba(58, 48, 44, .14);
  border-bottom: 1px solid rgba(58, 48, 44, .14);
}
.account-nested-action > summary {
  display: flex;
  min-height: 54px;
  align-items: center;
  gap: 9px;
  cursor: pointer;
  color: var(--account-accent);
  font-size: 12px;
  font-weight: 800;
  list-style: none;
}
.account-nested-action > summary::-webkit-details-marker { display: none; }
.account-nested-action[open] > summary > span { transform: rotate(45deg); }

.account-quick-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  padding-top: 22px;
}
.account-quick-links a { color: var(--account-muted); font-size: 11px; font-weight: 700; }
.account-quick-links a:hover,
.account-quick-links a:focus-visible { color: var(--account-accent); }

@media (max-width: 720px) {
  .account-page .account-toolbar { align-items: flex-start; }
  .account-overview { grid-template-columns: 1fr; }
  .account-overview a { min-height: 92px; }
  .account-accordion-trigger { min-height: 74px; padding: 14px 15px; }
  .account-accordion-content { padding: 0 14px 20px; }
}

/* The account starts as a focused entry point. Private tools mount only after session lookup. */
.account-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
  gap: clamp(40px, 8vw, 120px);
  align-items: start;
  min-height: 60vh;
  padding: clamp(64px, 10vw, 132px) clamp(20px, 7vw, 112px);
  border-top: 1px solid var(--line);
  background: var(--ivory);
}

.account-entry-copy { max-width: 640px; }
.account-entry-copy h1,
.account-entry-checking h1 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(52px, 7vw, 104px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .88;
}

.account-entry-copy > p:last-child {
  max-width: 460px;
  margin: 24px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.5;
}

.account-entry-checking {
  display: block;
  min-height: 60vh;
}

.account-entry-checking h1 { margin-top: 10px; }
.account-entry .account-auth { align-self: start; }
.account-entry .account-auth-tabs { gap: 24px; }
.account-entry .account-auth-tabs button { font-size: 14px; }

@media (max-width: 760px) {
  .account-entry {
    grid-template-columns: 1fr;
    gap: 44px;
    min-height: 0;
    padding: 56px 20px 72px;
  }

  .account-entry-copy h1,
  .account-entry-checking h1 { font-size: clamp(54px, 17vw, 84px); }
}

@media (max-width: 420px) {
  .footer-navigation { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .specialist-variants header,
  .specialist-first-door,
  .specialist-important { grid-template-columns: 1fr; gap: 26px; }
  .specialist-variants-grid { grid-template-columns: 1fr; }
  .specialist-variants-grid article,
  .specialist-variants-grid article + article { min-height: auto; padding: 26px 0; border-right: 0; }
  .specialist-variants-grid h4 { margin-top: 30px; }
  .specialist-variants-grid p { min-height: 0; }
  .specialist-group > header { grid-template-columns: 1fr; gap: 16px; }
  .specialist-directory-intro { margin: -28px 0 46px; font-size: 14px; }
  .specialist-card details summary { grid-template-columns: 30px minmax(0, 1fr) 30px; gap: 14px; padding: 20px 0; }
  .specialist-card-copy strong { font-size: 25px; }
  .specialist-card em { grid-column: 2; grid-row: 2; justify-self: start; text-align: left; }
  .specialist-card-toggle { grid-column: 3; grid-row: 1 / span 2; }
  .specialist-card-details { padding: 0 0 24px 44px; }
}

/* Keep all public page H1s compact enough to scan without flattening their hierarchy. */
main h1 {
  font-size: clamp(42px, 5vw, 96px) !important;
}

/* The account toolbar is navigation, not a page hero. */
.account-page .account-toolbar h1,
.account-toolbar h1 {
  font-size: 16px !important;
}

.wordmark-module__c6dY7W__root::after {
  display: block;
  color: var(--wine);
  content: "как";
}

.site-footer .wordmark-module__c6dY7W__root::after {
  color: #f0d2a1;
}

.header-icons-module__6PQ7bW__control.header-icons-module__6PQ7bW__control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  min-width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
  color: #796454;
}
.header-icons-module__6PQ7bW__control:hover { background: rgb(121 100 84 / 8%); }
.header-icons-module__6PQ7bW__control:has(+ .header-icons-module__6PQ7bW__control) {
  transform: translateX(calc(clamp(12px, 1.35vw, 24px) - 2px));
}
.header-icons-module__6PQ7bW__control:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.header-icons-module__6PQ7bW__image { display: block; width: 24px; height: 24px; color: #796454; }
