@font-face {
  font-family: Lora;
  src: url("assets/Lora-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Lora;
  src: url("assets/Lora-Italic.ttf") format("truetype");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}
:root {
  color-scheme: light;
  --paper: #faf4ed;
  --porcelain: #fffaf6;
  --ink: #392633;
  --text: #5b4652;
  --muted: #735761;
  --plum: #663b52;
  --rose: #965269;
  --rule: #dbc8ca;
  --blush: #f2dfdf;
  --serif: Lora, Baskerville, Georgia, serif;
  --sans: "Avenir Next", Avenir, system-ui, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media screen {
  html { scroll-padding-block-start: var(--header-height, 79px); }
  .site-header { position: sticky; inset-block-start: 0; z-index: 4; background: var(--paper); }
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 1rem/1.65 var(--sans);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { display: block; max-inline-size: 100%; }
p, h1, h2, h3, figure, blockquote { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }
h2 { font-size: clamp(2.55rem, 4.55vw, 4.6rem); line-height: 1.04; letter-spacing: -.066em; }
h2 em { color: var(--rose); font-weight: 400; }
::selection { background: #edc3cd; color: var(--ink); }
:focus-visible { outline: 2px solid #945067; outline-offset: 5px; }
[id] { scroll-margin-block-start: 1.5rem; }
.wrap { width: min(1220px, calc(100% - 112px)); margin-inline: auto; }
.eyebrow {
  font-size: .69rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--plum);
}
.section-kicker { display: flex; align-items: center; gap: .78rem; margin-bottom: 1.42rem; }
.section-kicker span {
  color: var(--plum);
  border-bottom: 1px solid #bd8999;
  font-variant-numeric: tabular-nums;
  padding-bottom: .16rem;
}
.prose { color: var(--text); line-height: 1.75; }
.prose > p + p { margin-top: .95rem; }
.skip-link {
  position: absolute;
  z-index: 5;
  inset: .6rem auto auto .6rem;
  padding: .55rem 1rem;
  background: var(--porcelain);
  color: var(--plum);
  transform: translateY(-180%);
}
.skip-link:focus { transform: none; }

.site-header { border-bottom: 1px solid var(--rule); }
.header-inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem 2rem; min-height: 78px; }
.wordmark {
  display: inline-flex; align-items: center; gap: .68rem; flex: 0 0 auto;
  font-family: var(--serif); font-size: 1.25rem; letter-spacing: -.05em;
  color: var(--ink); text-decoration: none;
}
.wordmark i { color: var(--rose); }
.wordmark img { width: 23px; height: auto; }
.site-header nav { display: flex; align-items: center; gap: clamp(1rem, 2.6vw, 2.65rem); }
.site-header nav a { font-size: .83rem; font-weight: 600; color: var(--text); text-decoration: none; }
.site-header nav a:hover { color: var(--rose); }
.site-header .nav-join {
  display: inline-flex; align-items: center; justify-content: center; gap: .8rem;
  border: 1px solid #b18494; border-radius: 999px; min-height: 41px; padding: .43rem 1.05rem; color: var(--plum);
}
.site-header .nav-join:hover { background: var(--blush); color: var(--plum); }

.hero {
  display: grid;
  grid-template-columns: 1.04fr .96fr;
  gap: clamp(2rem, 5vw, 5.25rem);
  align-items: center;
  padding-block: clamp(2.1rem, 4.7vw, 4.8rem) clamp(3.2rem, 5.4vw, 5.6rem);
}
.hero-copy { padding-block: 1.4rem; }
.hero-eyebrow { display: flex; align-items: center; gap: .72rem; }
.hero-eyebrow > span { width: 1.65rem; height: 1px; background: #b1788a; flex: none; }
.hero h1 {
  margin: .28em 0 .19em -.054em;
  font-size: clamp(4.35rem, 7.7vw, 8.5rem);
  line-height: .91;
  letter-spacing: -.083em;
}
.hero h1 .amp { color: #9a5f75; font-size: .74em; font-style: italic; }
.hero h1 em { color: var(--rose); }
.hero-dek {
  color: var(--text);
  font-family: var(--serif);
  font-size: clamp(1.17rem, 2vw, 1.69rem);
  line-height: 1.43;
  letter-spacing: -.036em;
  max-width: 24ch;
}
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .95rem 1.5rem; margin-top: 1.7rem; }
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 1.15rem;
  min-height: 49px; padding: .75rem 1.25rem; border-radius: 999px;
  text-decoration: none; font-size: .85rem; font-weight: 700; line-height: 1.3;
  transition: background-color .15s ease;
}
.primary { color: #fff9f5; background: var(--plum); }
.primary:hover { background: #4d2b3e; }
.button > span { font-size: 1.1rem; }
.text-link {
  display: inline-flex; align-items: center; gap: .5rem;
  color: var(--plum); text-decoration-thickness: 1px; text-underline-offset: 4px;
  font-size: .82rem; font-weight: 700;
}
.text-link span { display: inline-block; text-decoration: none; }
.text-link:hover, .hero-byline a:hover { color: var(--rose); }
.hero-byline { margin-top: 1.7rem; font-size: .79rem; color: var(--muted); }
.hero-byline a { font-weight: 700; text-underline-offset: 3px; }
.hero-art {
  position: relative; isolation: isolate; min-width: 0;
  background: #e8c4c9; border-radius: 49% 49% 4px 4px / 43% 43% 4px 4px;
  overflow: hidden; box-shadow: 0 17px 40px #57324714;
}
.hero-art img { width: 100%; height: auto; aspect-ratio: 1 / 1.09; object-fit: cover; object-position: center bottom; }
.plate-label {
  border-top: 1px solid #633d4d4d;
  display: flex; justify-content: space-between; gap: 1rem; padding: .68rem 7% .73rem;
  color: #553146; font-size: .61rem; font-weight: 700; line-height: 1.35; letter-spacing: .16em; text-transform: uppercase;
}

.welcome { background: #f0dfdf; border-block: 1px solid #e6d1d4; }
.welcome-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  align-items: start; gap: clamp(2rem, 7vw, 7rem);
  padding-block: clamp(3rem, 6.4vw, 6.5rem);
}
.welcome-copy { max-width: 58ch; }
.aside-note {
  display: flex; align-items: center; gap: .8rem;
  padding-top: 1rem; border-top: 1px solid #d5b6be;
  color: var(--plum); font: italic 1.05rem/1.5 var(--serif);
}
.aside-note img { flex: none; }

.journey {
  display: grid; grid-template-columns: minmax(0, .76fr) minmax(0, 1.4fr);
  align-items: start; gap: clamp(2.4rem, 6.5vw, 7rem);
  padding-block: clamp(3.6rem, 8.2vw, 8rem);
}
.journey-intro h2 { max-width: 10ch; }
.journey-intro > p:last-child { color: var(--text); max-width: 34ch; margin-top: 1rem; }
.week { border-top: 1px solid var(--rule); }
.week:last-child { border-bottom: 1px solid var(--rule); }
.week summary {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center; gap: clamp(.6rem, 1.5vw, 1.1rem);
  min-height: 73px; padding: .78rem .33rem;
  cursor: pointer; list-style: none;
}
.week summary::-webkit-details-marker { display: none; }
.week summary:hover { background: #f2e3e5; }
.week-num {
  display: grid; place-items: center; width: 2.25rem; aspect-ratio: 1; border-radius: 50%;
  background: var(--tint); color: #5a354a;
  font-size: .72rem; font-weight: 700; font-variant-numeric: tabular-nums;
}
.week-title { font: 400 clamp(1.03rem, 1.57vw, 1.4rem)/1.2 var(--serif); letter-spacing: -.035em; }
.chakra { color: var(--muted); font-size: .69rem; letter-spacing: .05em; text-transform: uppercase; font-weight: 700; }
.toggle { display: grid; place-items: center; width: 1.6rem; height: 1.6rem; position: relative; color: var(--plum); }
.toggle::before, .toggle::after { content: ""; position: absolute; width: 10px; height: 1px; background: currentColor; }
.toggle::after { transform: rotate(90deg); }
.week[open] .toggle::after { transform: none; }
.week-copy { margin: -.1rem 2.5rem 1.35rem 3.9rem; color: var(--text); max-width: 61ch; font-size: .94rem; }
.week-copy .themes { margin-bottom: .38rem; color: var(--plum); font-family: var(--serif); font-style: italic; }

.session { background: #58364c; color: #fff5ee; }
.session-grid {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start; gap: clamp(2rem, 8vw, 8rem);
  padding-block: clamp(3.4rem, 7vw, 7.2rem);
}
.session .section-kicker, .session .section-kicker span, .session h2 em { color: #f2bdcb; }
.session-intro > p:last-child { max-width: 35ch; margin-top: 1.24rem; color: #f1dfe3; }
.session-steps { list-style: none; padding: 0; margin: 0; }
.session-steps li { display: grid; grid-template-columns: 2.45rem 1fr; gap: .65rem; padding: .95rem 0; border-top: 1px solid #a27b91; }
.session-steps li:last-child { border-bottom: 1px solid #a27b91; }
.step-no { color: #edbbcb; font: italic 1.15rem/1.3 var(--serif); }
.session-steps h3 { font-size: 1.32rem; letter-spacing: -.035em; line-height: 1.3; }
.session-steps p { margin-top: .25rem; color: #f1dfe3; font-size: .93rem; }

.little-ones { padding-block: clamp(3.35rem, 6.3vw, 6.3rem) 0; }
.little-panel {
  display: grid; grid-template-columns: .92fr 1.08fr;
  align-items: center; gap: clamp(2rem, 5vw, 5rem);
  padding: clamp(1.7rem, 5vw, 4.8rem);
  border: 1px solid #d6afb9; background: #f5e6e3;
}
.little-intro { position: relative; }
.little-intro h2 { margin-top: .68rem; font-size: clamp(2.1rem, 3.55vw, 3.52rem); }
.little-intro > img { position: absolute; width: 44px; height: auto; inset: 0 4% auto auto; transform: rotate(11deg); opacity: .68; }

.bio {
  display: grid; grid-template-columns: .76fr 1.24fr;
  align-items: center; gap: clamp(2rem, 8vw, 8.2rem);
  padding-block: clamp(3.5rem, 7.8vw, 7.7rem);
}
.portrait { align-self: center; padding: .68rem; border: 1px solid #dabec6; background: #f8eee8; }
.portrait > img { width: 100%; height: auto; }
.portrait figcaption {
  display: flex; justify-content: space-between; gap: .4rem 1rem; flex-wrap: wrap; padding: .55rem .1rem 0;
  color: var(--plum); text-transform: uppercase; letter-spacing: .12em; font-size: .61rem; font-weight: 700;
}
.bio h2 { margin-bottom: 1.25rem; }
.bio blockquote {
  margin-top: 1.4rem; padding: .22rem 0 .22rem 1rem; border-left: 2px solid #bb8496;
  font: italic clamp(1.05rem, 1.65vw, 1.45rem)/1.48 var(--serif); color: var(--plum);
}

.registration { background: #ecd4da; border-block: 1px solid #dcbcc7; }
.register-grid {
  display: grid; grid-template-columns: 1fr minmax(0, .93fr); align-items: center;
  gap: clamp(2rem, 8vw, 7.7rem); padding-block: clamp(3.45rem, 7vw, 6.6rem);
}
.register-copy > p:last-child { max-width: 33ch; margin-top: 1.2rem; color: var(--text); }
.price-card { padding: clamp(1.35rem, 3vw, 3rem); border: 1px solid #d7b4c2; background: var(--porcelain); box-shadow: 0 12px 34px #5937490d; }
.price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .75rem; margin-block: .43rem .62rem; font: 400 clamp(2.8rem, 5.4vw, 4.5rem)/1.05 var(--serif); letter-spacing: -.07em; color: var(--plum); }
.price span { font: 600 .84rem/1.5 var(--sans); letter-spacing: 0; color: var(--muted); }
.price-card > p:not(.eyebrow, .price) { color: var(--text); }
.email-button { margin-top: 1.13rem; }
.register-note { margin-top: 1rem; font-size: .8rem; overflow-wrap: anywhere; }
.register-note a { text-underline-offset: 3px; font-weight: 700; }

.site-footer { padding-block: 1.3rem; }
.footer-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .9rem 1.5rem; }
.footer-inner p { color: var(--muted); font-size: .78rem; }

@media (max-width: 1050px) {
  .wrap { width: calc(100% - 76px); }
  .hero { gap: 2.5rem; }
  .hero h1 { font-size: clamp(4.15rem, 8.8vw, 7.7rem); }
  .journey { gap: 2.6rem; }
}
@media (max-width: 780px) {
  html { --header-height: 71px; }
  .wrap { width: calc(100% - 44px); }
  .header-inner { min-height: 70px; }
  .site-header nav { gap: .85rem; }
  .site-header nav a { font-size: .76rem; }
  .hero { gap: 1.45rem; }
  .hero h1 { font-size: clamp(3.6rem, 9vw, 5.5rem); }
  .hero-eyebrow { font-size: .61rem; letter-spacing: .12em; }
  .hero-eyebrow > span { display: none; }
  .hero-byline { margin-top: 1.1rem; }
  .journey { grid-template-columns: 1fr; gap: 1.7rem; }
  .journey-intro h2 { max-width: none; }
  .week-title { font-size: 1.22rem; }
  .bio { grid-template-columns: .9fr 1.1fr; gap: 1.65rem; }
}
@media (max-width: 620px) {
  html { --header-height: 98px; }
  .header-inner { flex-wrap: wrap; gap: .22rem; padding-block: .7rem .55rem; }
  .header-inner nav { width: 100%; justify-content: space-between; gap: .16rem .65rem; flex-wrap: wrap; }
  .site-header nav a { display: inline-flex; align-items: center; min-height: 38px; }
  .site-header .nav-join { min-height: 34px; padding-inline: .68rem; gap: .38rem; }
  .hero { grid-template-columns: 1fr; padding-block: 2.6rem 2.75rem; gap: 1.8rem; }
  .hero-copy { padding: 0; }
  .hero h1 { font-size: clamp(4.1rem, 13vw, 6.2rem); }
  .hero-art { width: min(100%, 430px); margin-inline: auto; }
  .hero-art img { aspect-ratio: 1 / 1.02; }
  .hero-actions { gap: .85rem 1.15rem; }
  .welcome-grid, .session-grid, .little-panel, .bio, .register-grid { grid-template-columns: 1fr; gap: 1.65rem; }
  .section-kicker { margin-bottom: .92rem; }
  .bio-copy { grid-row: 1; }
  .portrait { max-width: 400px; }
  .session-intro > p:last-child { margin-top: .85rem; }
  .footer-inner { column-gap: 1rem; }
  .footer-inner > p { width: 100%; order: 3; }
}
@media (max-width: 420px) {
  .wrap { width: calc(100% - 34px); }
  .week summary { grid-template-columns: auto minmax(0, 1fr) auto; gap: .15rem .65rem; padding-block: .66rem; }
  .week-num { grid-row: span 2; width: 1.94rem; }
  .week-title { font-size: 1.02rem; align-self: end; }
  .chakra { grid-column: 2; align-self: start; font-size: .61rem; }
  .toggle { grid-column: 3; grid-row: 1 / span 2; }
  .week-copy { margin: .22rem 1.4rem 1.15rem 2.82rem; }
}
@media (max-width: 360px) {
  html { --header-height: 138px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
