/* /assets/v4.css */
:root {
  --ink: #1a1714;
  --paper: #f2e7d4;
  --paper-2: #fffaf0;
  --ground: #e4d8c5;
  --muted: #746b61;
  --line: rgba(47, 36, 28, 0.16);
  --wine: #762a32;
  --night: #161b1f;
  --blue: #294d63;
  --gold: #b48a45;
  --serif: "Songti SC", "STSong", "Noto Serif CJK SC", Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, p, figure { margin-top: 0; }
button, input { font: inherit; }
[hidden] { display: none !important; }

.v4-header {
  position: relative;
  z-index: 20;
  display: flex;
  min-height: 78px;
  padding: 0 clamp(24px, 4.5vw, 72px);
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  background: rgba(242, 231, 212, 0.92);
  backdrop-filter: blur(16px);
}
.v4-mark { display: flex; align-items: baseline; gap: 12px; text-decoration: none; }
.v4-mark b { font-family: var(--serif); font-size: 1.06rem; letter-spacing: 0.18em; }
.v4-mark span { color: var(--muted); font-size: 0.58rem; font-weight: 750; letter-spacing: 0.14em; }
.v4-header nav { display: flex; align-items: center; gap: 28px; }
.v4-header nav a, .future-account { color: var(--muted); font-size: 0.74rem; text-decoration: none; }
.v4-header nav a:hover { color: var(--wine); }
.header-enter { padding: 7px 14px; border: 1px solid var(--line); border-radius: 999px; }

.v4-kicker { margin-bottom: 22px; color: var(--gold); font-size: 0.67rem; font-weight: 820; letter-spacing: 0.17em; }
.v4-kicker.pale { color: #d5ae73; }
.v4-button {
  display: inline-flex;
  min-height: 56px;
  padding: 0 25px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 2px;
  gap: 42px;
  text-decoration: none;
}
.v4-button.dark { color: #fff; background: var(--ink); }
.v4-button.light-button { color: var(--night); background: var(--paper-2); }
.v4-button strong { font-size: 0.86rem; }
.v4-button span { font-family: Georgia, serif; }
.v4-text-link {
  padding-bottom: 2px;
  border-bottom: 1px solid rgba(26, 23, 20, 0.35);
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none;
}
.v4-text-link.light { border-color: rgba(255, 255, 255, 0.4); color: #fff; }

/* Public home */
.v4-hero {
  position: relative;
  display: grid;
  min-height: calc(100vh - 78px);
  padding: clamp(74px, 9vw, 132px) clamp(24px, 7vw, 110px) 90px;
  overflow: hidden;
  align-items: center;
  gap: clamp(45px, 7vw, 110px);
  grid-template-columns: minmax(0, 0.92fr) minmax(430px, 1.08fr);
  background:
    radial-gradient(circle at 17% 18%, rgba(118, 42, 50, 0.075), transparent 28%),
    linear-gradient(120deg, #f7eedf, #eadfcf 62%, #e2d4c0);
}
.v4-hero::before {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0 calc(25% - 1px), rgba(73, 58, 42, 0.035) 25%);
  content: "";
  pointer-events: none;
}
.hero-words { position: relative; z-index: 2; max-width: 760px; }
.hero-words h1 { margin: 0; font-family: var(--serif); font-weight: 500; line-height: 1.04; }
.hero-words h1 > span {
  display: block;
  margin-bottom: 28px;
  color: var(--wine);
  font-size: clamp(4.8rem, 9vw, 9.5rem);
  letter-spacing: -0.07em;
}
.hero-words h1 em {
  display: block;
  max-width: 780px;
  font-size: clamp(2.5rem, 4.4vw, 5rem);
  font-style: normal;
  letter-spacing: -0.055em;
}
.hero-lead {
  max-width: 620px;
  margin: 34px 0 0;
  color: #554b42;
  font-family: var(--serif);
  font-size: clamp(1.02rem, 1.35vw, 1.22rem);
  line-height: 2.02;
}
.hero-actions { display: flex; margin-top: 36px; align-items: center; gap: 24px; flex-wrap: wrap; }
.hero-whisper { margin: 30px 0 0; color: var(--muted); font-family: var(--serif); font-size: 0.83rem; }

.hero-letter { position: relative; width: min(100%, 720px); margin: auto; }
.letter-scene {
  position: relative;
  height: min(68vh, 650px);
  min-height: 480px;
  border: 1px solid rgba(64, 48, 34, 0.16);
  background:
    radial-gradient(circle at 55% 35%, rgba(255, 251, 241, 0.78), transparent 42%),
    linear-gradient(145deg, rgba(255, 250, 240, 0.58), rgba(212, 195, 171, 0.34));
  box-shadow: 0 42px 95px rgba(65, 44, 27, 0.14);
}
.letter-scene::before {
  position: absolute;
  inset: -18px 22px 18px -22px;
  border: 1px solid rgba(71, 54, 39, 0.15);
  content: "";
}
.letter-paper {
  position: absolute;
  z-index: 3;
  top: 16%;
  left: -5%;
  width: 110%;
  padding: 22px;
  border: 1px solid rgba(48, 39, 31, 0.24);
  background: #e9e7df;
  box-shadow: 0 26px 50px rgba(39, 28, 20, 0.2);
  transform: rotate(-2.1deg);
}
.letter-paper img {
  width: 100%;
  filter: saturate(0.72) sepia(0.07) contrast(1.13) brightness(1.035);
}
.letter-envelope {
  position: absolute;
  z-index: 4;
  right: 3%;
  bottom: 5%;
  left: 3%;
  height: 46%;
  overflow: hidden;
  border: 1px solid rgba(61, 44, 31, 0.25);
  background: #d6c0a0;
  box-shadow: 0 24px 42px rgba(44, 31, 20, 0.18);
}
.letter-envelope::before {
  position: absolute;
  inset: 0;
  background: linear-gradient(155deg, #e2ceb1, #c8aa83);
  clip-path: polygon(0 0, 50% 63%, 100% 0, 100% 100%, 0 100%);
  content: "";
}
.letter-envelope i {
  position: absolute;
  z-index: 2;
  inset: auto 0 0;
  height: 68%;
  background: #ddc5a4;
  clip-path: polygon(0 100%, 0 0, 50% 67%, 100% 0, 100% 100%);
}
.letter-envelope b, .portal-envelope b {
  position: absolute;
  z-index: 5;
  right: 12%;
  bottom: 20%;
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 2px solid rgba(255, 229, 206, 0.26);
  border-radius: 50%;
  color: #f0d9c2;
  background: var(--wine);
  box-shadow: 0 8px 18px rgba(69, 22, 28, 0.34);
  font-family: var(--serif);
  font-size: 1.1rem;
}
.hero-letter figcaption, .portal-letter-art figcaption {
  display: flex;
  margin-top: 15px;
  justify-content: space-between;
  color: var(--muted);
  font-size: 0.64rem;
  letter-spacing: 0.05em;
}
.seven-seals { position: absolute; z-index: 6; top: 10%; right: -20px; display: grid; gap: 9px; }
.seven-seals i {
  display: grid;
  width: 39px;
  height: 39px;
  place-items: center;
  border: 1px solid rgba(118, 42, 50, 0.36);
  border-radius: 50%;
  color: var(--wine);
  background: rgba(242, 231, 212, 0.9);
  font: italic 0.75rem Georgia;
}
.seven-seals i:nth-child(2), .seven-seals i:nth-child(5) { transform: translateX(10px); }

.v4-thesis {
  display: grid;
  max-width: 1260px;
  margin: auto;
  padding: clamp(110px, 15vw, 210px) 30px;
  gap: 55px;
  grid-template-columns: 70px minmax(300px, 0.85fr) minmax(320px, 1.15fr);
}
.thesis-index { color: var(--wine); font: italic 0.9rem Georgia; }
.thesis-title h2, .arrival-copy h2, .architecture-heading h2, .v4-closing h2 {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 5vw, 5.5rem);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 1.14;
}
.thesis-copy { padding-top: 52px; }
.thesis-copy p { max-width: 620px; color: #51473e; font-family: var(--serif); font-size: 1.12rem; line-height: 2.06; }

.arrival-system { display: grid; min-height: 940px; grid-template-columns: 1fr 1fr; background: var(--night); }
.arrival-art { position: relative; min-height: 760px; overflow: hidden; background: #e9dfcb; }
.arrival-art img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.76) contrast(0.95); }
.arrival-art::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 70%, rgba(22, 27, 31, 0.38)); content: ""; }
.specimen-label {
  position: absolute;
  z-index: 2;
  left: 36px;
  bottom: 34px;
  padding: 12px 15px;
  color: var(--ink);
  background: rgba(248, 241, 227, 0.88);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  line-height: 1.65;
}
.arrival-copy { display: flex; padding: clamp(80px, 10vw, 155px) clamp(34px, 7vw, 110px); justify-content: center; flex-direction: column; color: #f4eee3; }
.arrival-copy .v4-kicker { color: #d5ae73; }
.arrival-copy h2 { font-size: clamp(2.5rem, 4.5vw, 4.8rem); }
.arrival-copy ol { max-width: 640px; margin: 48px 0 34px; padding: 0; list-style: none; }
.arrival-copy li { display: grid; padding: 24px 0; border-top: 1px solid rgba(255, 255, 255, 0.15); gap: 18px; grid-template-columns: 45px 1fr; }
.arrival-copy li > b { color: #d5ae73; font: italic 0.78rem Georgia; }
.arrival-copy li strong, .arrival-copy li span { display: block; }
.arrival-copy li strong { font-family: var(--serif); font-size: 1.25rem; font-weight: 500; }
.arrival-copy li span { margin-top: 4px; color: rgba(255, 255, 255, 0.62); font-size: 0.86rem; }

.course-architecture { padding: clamp(110px, 14vw, 190px) clamp(24px, 7vw, 110px); background: var(--paper-2); }
.architecture-heading { max-width: 950px; margin-bottom: 80px; }
.architecture-grid { display: grid; max-width: 1280px; margin: auto; gap: 1px; grid-template-columns: repeat(3, 1fr); background: var(--line); }
.architecture-grid article { min-height: 370px; padding: 46px 38px; background: var(--paper-2); }
.architecture-grid article span { color: var(--gold); font-size: 0.63rem; font-weight: 800; letter-spacing: 0.11em; }
.architecture-grid h3 { margin: 90px 0 18px; font-family: var(--serif); font-size: 2.15rem; font-weight: 500; }
.architecture-grid p { color: var(--muted); font-family: var(--serif); line-height: 1.9; }
.folio-link {
  display: grid;
  max-width: 1280px;
  margin: 55px auto 0;
  padding: 26px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  align-items: center;
  grid-template-columns: 1fr 1fr 30px;
  text-decoration: none;
}
.folio-link span { font-family: var(--serif); font-size: 1.2rem; }
.folio-link b { color: var(--muted); font-size: 0.62rem; letter-spacing: 0.13em; }
.folio-link i { color: var(--wine); font: italic 1rem Georgia; }
.v4-closing { padding: clamp(130px, 18vw, 250px) 24px; text-align: center; background: radial-gradient(circle at 50% 42%, rgba(118, 42, 50, 0.1), transparent 29%), var(--ground); }
.v4-closing h2 { margin-bottom: 16px; }
.v4-closing > p:not(.v4-kicker) { color: var(--muted); font-family: var(--serif); font-size: 1.2rem; }
.v4-closing .v4-button { margin-top: 30px; }
.v4-footer { display: flex; padding: 32px clamp(24px, 5vw, 72px); justify-content: space-between; border-top: 1px solid var(--line); color: var(--muted); font-size: 0.7rem; }
.v4-footer a { text-decoration: none; }

/* Personal letter room */
.v4-portal { color: #f5efe5; background: var(--night); }
.portal-header { border-color: rgba(255, 255, 255, 0.11); background: rgba(22, 27, 31, 0.91); }
.portal-header .v4-mark b { color: #fff; }
.portal-header .v4-mark span, .portal-header nav a, .portal-header .future-account { color: rgba(255, 255, 255, 0.58); }
.future-account { padding: 6px 11px; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 999px; }
.portal-stage {
  display: grid;
  min-height: calc(100vh - 78px);
  padding: clamp(62px, 8vw, 120px) clamp(24px, 7vw, 110px);
  align-items: center;
  gap: clamp(50px, 8vw, 120px);
  grid-template-columns: minmax(0, 0.92fr) minmax(400px, 1.08fr);
  background: radial-gradient(circle at 14% 19%, rgba(118, 42, 50, 0.26), transparent 31%), var(--night);
}
.portal-current { max-width: 720px; }
.current-stage { margin-bottom: 0; color: rgba(255, 255, 255, 0.55); font-size: 0.74rem; font-weight: 750; letter-spacing: 0.04em; }
.portal-current h1 { margin: 17px 0 8px; font-family: var(--serif); font-size: clamp(3.3rem, 6vw, 6.7rem); font-weight: 500; letter-spacing: -0.06em; line-height: 1.08; }
.current-subtitle { margin: 0 0 25px; color: #d5ae73; font-family: var(--serif); font-size: clamp(1.05rem, 1.6vw, 1.35rem); }
.current-summary { max-width: 590px; color: rgba(255, 255, 255, 0.65); font-family: var(--serif); font-size: 1.08rem; }
.current-actions { display: flex; margin-top: 30px; gap: 10px; flex-wrap: wrap; }
.arrival-button { border: 1px solid rgba(213, 174, 115, 0.55); color: #f5efe5; background: transparent; cursor: pointer; }
.wait-message { display: grid; max-width: 610px; margin-top: 44px; padding-top: 25px; border-top: 1px solid rgba(255, 255, 255, 0.16); gap: 5px; }
.wait-message b { color: #d5ae73; font-family: var(--serif); font-size: 1rem; }
.wait-message span { color: rgba(255, 255, 255, 0.54); font-size: 0.8rem; }

.portal-letter-art { position: relative; width: min(100%, 700px); margin: auto; padding-bottom: 34px; }
.portal-paper {
  position: relative;
  z-index: 3;
  margin: 0 -3%;
  padding: 20px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: #e7e4da;
  box-shadow: 0 32px 70px rgba(0, 0, 0, 0.28);
  transform: rotate(-1.5deg);
}
.portal-paper img { width: 100%; max-height: 300px; object-fit: cover; filter: saturate(0.7) sepia(0.08) contrast(1.12) brightness(1.03); }
.portal-envelope {
  position: relative;
  z-index: 4;
  height: 285px;
  margin: -22px 3% 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: linear-gradient(145deg, #d5bc98, #b99368);
  box-shadow: 0 35px 70px rgba(0, 0, 0, 0.28);
}
.portal-envelope::before { position: absolute; inset: 0; background: #dcc5a3; clip-path: polygon(0 0, 50% 64%, 100% 0, 100% 100%, 0 100%); content: ""; }
.portal-envelope i { position: absolute; z-index: 2; inset: auto 0 0; height: 70%; background: #cfb187; clip-path: polygon(0 100%, 0 0, 50% 67%, 100% 0, 100% 100%); }
.portal-envelope b { right: 12%; bottom: 18%; }
.portal-letter-art figcaption { color: rgba(255, 255, 255, 0.43); }

.journey-folio { color: var(--ink); background: var(--paper-2); }
.journey-folio > header { display: flex; padding: 95px max(30px, calc((100vw - 1280px) / 2)) 55px; align-items: end; justify-content: space-between; border-bottom: 1px solid var(--line); gap: 30px; }
.journey-folio h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.5rem, 4.2vw, 4.5rem); font-weight: 500; }
.journey-folio header p:last-child { max-width: 540px; margin: 12px 0 0; color: var(--muted); font-family: var(--serif); }
.folio-progress { width: min(330px, 100%); color: var(--muted); font-size: 0.72rem; }
.folio-progress i { position: relative; display: block; height: 2px; margin-top: 11px; background: var(--line); }
.folio-progress i b { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--wine); transition: width 0.4s; }
.journey-list { display: grid; max-width: 1320px; margin: auto; padding: 60px 30px 140px; gap: 24px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.journey-envelope {
  position: relative;
  min-height: 295px;
  overflow: hidden;
  border: 1px solid var(--line);
  color: var(--ink);
  background: #eee1cd;
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease;
}
a.journey-envelope:hover { transform: translateY(-4px); box-shadow: 0 20px 42px rgba(61, 43, 28, 0.12); }
.envelope-number { position: absolute; z-index: 7; top: 18px; left: 20px; color: var(--wine); font: italic 0.72rem Georgia; }
.envelope-paper {
  position: absolute;
  z-index: 2;
  top: 45px;
  right: 19px;
  left: 19px;
  min-height: 155px;
  padding: 27px 22px 45px;
  border: 1px solid rgba(47, 36, 28, 0.16);
  background: #fffaf0;
  box-shadow: 0 12px 25px rgba(50, 34, 23, 0.09);
  transition: transform 220ms ease, opacity 220ms ease;
}
.envelope-paper small, .envelope-paper strong { display: block; }
.envelope-paper small { color: var(--gold); font-size: 0.6rem; font-weight: 800; letter-spacing: 0.08em; }
.envelope-paper strong { margin-top: 10px; font-family: var(--serif); font-size: 1.15rem; font-weight: 500; line-height: 1.45; }
.envelope-shell { position: absolute; z-index: 4; right: 0; bottom: 0; left: 0; height: 57%; border-top: 1px solid rgba(47, 36, 28, 0.15); background: #d6bb93; }
.envelope-shell::before { position: absolute; inset: 0; background: #e0c8a5; clip-path: polygon(0 0, 50% 66%, 100% 0, 100% 100%, 0 100%); content: ""; }
.envelope-shell i { position: absolute; z-index: 2; inset: auto 0 0; height: 72%; background: #cfaf82; clip-path: polygon(0 100%, 0 0, 50% 72%, 100% 0, 100% 100%); }
.envelope-shell b { position: absolute; z-index: 5; right: 18px; bottom: 20px; display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #f1d8c0; background: var(--wine); box-shadow: 0 7px 14px rgba(65, 19, 25, 0.25); font-family: var(--serif); font-size: 0.8rem; }
.envelope-state { position: absolute; z-index: 7; bottom: 25px; left: 20px; color: rgba(26, 23, 20, 0.58); font-size: 0.64rem; font-weight: 750; letter-spacing: 0.08em; }
.journey-envelope.is-sealed { background: #e8dfd2; }
.journey-envelope.is-sealed .envelope-paper { opacity: 0.3; transform: translateY(75px); }
.journey-envelope.is-sealed .envelope-shell { filter: grayscale(0.72); opacity: 0.72; }
.journey-envelope.is-arrived { border-color: rgba(118, 42, 50, 0.38); box-shadow: 0 22px 48px rgba(76, 34, 29, 0.14); }
.journey-envelope.is-arrived .envelope-paper { transform: translateY(-13px) rotate(-1deg); }
.journey-envelope.is-open .envelope-paper { transform: translateY(-20px) rotate(-1.3deg); }
.journey-envelope.is-open { border-color: rgba(118, 42, 50, 0.4); }
.journey-envelope.is-replied .envelope-shell b, .journey-envelope.is-returned .envelope-shell b { background: var(--blue); }
.journey-envelope.is-returned { background: #e8e3d9; }
.journey-envelope.is-returned .envelope-paper { transform: translateY(-5px); }

.portal-support {
  display: grid;
  padding: clamp(90px, 12vw, 150px) max(30px, calc((100vw - 1180px) / 2));
  align-items: end;
  gap: 45px;
  grid-template-columns: minmax(300px, 0.9fr) minmax(320px, 1.1fr) auto;
  color: #f4eee3;
  background: radial-gradient(circle at 13% 18%, rgba(41, 77, 99, 0.35), transparent 32%), var(--night);
}
.portal-support h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 4.2rem); font-weight: 500; letter-spacing: -0.045em; line-height: 1.25; }
.portal-support > p { margin: 0; color: rgba(255, 255, 255, 0.58); font-family: var(--serif); line-height: 2; }
.portal-note { padding: 35px 24px; text-align: center; color: rgba(255, 255, 255, 0.5); background: #101417; }
.portal-note p { margin: 0; font-size: 0.72rem; }
.dark-footer { border-color: rgba(255, 255, 255, 0.12); color: rgba(255, 255, 255, 0.46); background: var(--night); }

/* Complete library */
.v4-library { background: var(--paper-2); }
.library-hero {
  display: grid;
  min-height: 66vh;
  padding: clamp(90px, 12vw, 170px) clamp(24px, 7vw, 110px);
  align-items: end;
  gap: 70px;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  background: radial-gradient(circle at 13% 12%, rgba(118, 42, 50, 0.1), transparent 28%), var(--paper);
}
.library-hero h1 { margin: 0; white-space: nowrap; font-family: var(--serif); font-size: clamp(4.3rem, 8vw, 8.4rem); font-weight: 500; letter-spacing: -0.075em; line-height: 0.95; }
.library-hero > p { max-width: 610px; margin: 0; color: #554a41; font-family: var(--serif); font-size: 1.13rem; line-height: 2; }
.library-section { padding: clamp(95px, 12vw, 165px) clamp(24px, 7vw, 110px); }
.library-section > header { display: grid; max-width: 1280px; margin: 0 auto 60px; gap: 28px; grid-template-columns: 55px 1fr; }
.library-section > header > span { color: var(--wine); font: italic 0.8rem Georgia; }
.library-section h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.6rem, 5vw, 5rem); font-weight: 500; letter-spacing: -0.055em; }
.library-section header p:last-child { max-width: 650px; margin: 16px 0 0; color: var(--muted); font-family: var(--serif); }
.prelude-section { background: var(--paper-2); }
.afterword-section { background: var(--paper); }
.library-grid { display: grid; max-width: 1280px; margin: auto; border-top: 1px solid var(--line); border-left: 1px solid var(--line); grid-template-columns: repeat(3, 1fr); }
.library-grid > a { display: flex; min-height: 265px; padding: 34px 31px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); justify-content: flex-end; flex-direction: column; background: rgba(255, 250, 240, 0.5); text-decoration: none; transition: background 160ms ease; }
.library-grid > a:hover { background: #fffaf0; }
.library-grid small { margin-bottom: auto; color: var(--gold); font-size: 0.62rem; font-weight: 800; letter-spacing: 0.08em; }
.library-grid strong { font-family: var(--serif); font-size: 1.55rem; font-weight: 500; line-height: 1.4; }
.library-grid span { margin-top: 13px; color: var(--muted); font-family: var(--serif); font-size: 0.9rem; line-height: 1.75; }
.library-grid b { margin-top: 22px; color: var(--wine); font-size: 0.68rem; letter-spacing: 0.04em; }
.library-grid .featured-resource { min-height: 360px; grid-column: span 2; color: #f5efe5; background: radial-gradient(circle at 88% 15%, rgba(118, 42, 50, 0.34), transparent 28%), var(--night); }
.library-grid .featured-resource:hover { background: radial-gradient(circle at 88% 15%, rgba(118, 42, 50, 0.46), transparent 30%), #101417; }
.featured-resource small, .featured-resource b { color: #d5ae73; }
.featured-resource strong { font-size: clamp(2.5rem, 4vw, 4.2rem); }
.featured-resource span { max-width: 720px; color: rgba(255, 255, 255, 0.58); }
.library-seven { display: grid; min-height: 760px; padding: clamp(90px, 12vw, 155px) clamp(24px, 7vw, 110px); align-items: center; gap: clamp(55px, 9vw, 130px); grid-template-columns: minmax(300px, 0.9fr) minmax(420px, 1.1fr); color: #f5efe5; background: var(--night); }
.library-seven-copy h2 { max-width: 720px; margin: 0; font-family: var(--serif); font-size: clamp(2.7rem, 5vw, 5.2rem); font-weight: 500; letter-spacing: -0.055em; line-height: 1.17; }
.library-seven-copy > p:not(.v4-kicker) { max-width: 610px; margin: 28px 0; color: rgba(255, 255, 255, 0.58); font-family: var(--serif); line-height: 2; }
.mini-envelopes { display: grid; gap: 15px; grid-template-columns: repeat(2, 1fr); transform: rotate(-2deg); }
.mini-envelopes i { position: relative; display: grid; min-height: 118px; place-items: center; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.14); color: #d8b47a; background: #c6a477; box-shadow: 0 16px 32px rgba(0, 0, 0, 0.2); font: italic 0.85rem Georgia; }
.mini-envelopes i::before { position: absolute; inset: 0; background: #d7bd97; clip-path: polygon(0 0, 50% 68%, 100% 0, 100% 100%, 0 100%); content: ""; }
.mini-envelopes i::after { position: relative; z-index: 2; display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; color: #f0d8bf; background: var(--wine); content: attr(data-letter); }
.mini-envelopes i:nth-child(7) { grid-column: 1 / -1; }
.mini-envelopes i { color: transparent; }
.mini-envelopes i::after { content: "七"; }
.library-reading { display: grid; padding: clamp(90px, 12vw, 150px) max(30px, calc((100vw - 1180px) / 2)); align-items: end; gap: 45px; grid-template-columns: 1fr 1fr auto; background: var(--paper-2); }
.library-reading h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 4rem); font-weight: 500; letter-spacing: -0.045em; }
.library-reading > p { margin: 0; color: var(--muted); font-family: var(--serif); }

@media (max-width: 980px) {
  .v4-hero, .portal-stage, .library-seven { grid-template-columns: 1fr; }
  .v4-hero { min-height: auto; padding: 80px 38px 110px; gap: 95px; }
  .hero-letter { width: min(88vw, 680px); }
  .v4-thesis { grid-template-columns: 56px minmax(0, 1fr); }
  .thesis-copy { grid-column: 2; padding-top: 0; }
  .portal-stage { padding-top: 90px; }
  .portal-letter-art { width: min(86vw, 650px); }
  .journey-list { grid-template-columns: repeat(2, 1fr); }
  .portal-support, .library-reading { align-items: start; grid-template-columns: 1fr; }
  .library-hero { min-height: auto; grid-template-columns: 1fr; }
  .library-grid { grid-template-columns: repeat(2, 1fr); }
  .library-grid .featured-resource { grid-column: span 2; }
  .mini-envelopes { max-width: 680px; }
}

@media (max-width: 720px) {
  .v4-header { min-height: 64px; padding: 0 20px; }
  .v4-mark span { display: none; }
  .v4-header nav { gap: 14px; }
  .v4-header nav > a:first-child { display: none; }
  .future-account { display: none; }
  .v4-hero { padding: 70px 24px 95px; gap: 72px; }
  .hero-words { width: 100%; min-width: 0; }
  .hero-words h1 > span { font-size: clamp(4rem, 22vw, 5.6rem); }
  .hero-words h1 em {
    max-width: 100%;
    font-size: clamp(2.05rem, 10vw, 2.65rem);
    overflow-wrap: anywhere;
  }
  .hero-lead { max-width: 100%; font-size: 1rem; overflow-wrap: anywhere; }
  .hero-actions { gap: 20px; }
  .hero-letter { width: 100%; }
  .letter-scene { height: 480px; min-height: 0; }
  .letter-paper { top: 15%; left: -10%; width: 120%; padding: 12px; }
  .letter-envelope { right: 0; left: 0; height: 48%; }
  .letter-envelope b { width: 48px; height: 48px; }
  .seven-seals { right: -8px; }
  .v4-thesis { padding: 105px 24px; grid-template-columns: 1fr; gap: 18px; }
  .thesis-copy { grid-column: auto; padding-top: 18px; }
  .arrival-system { min-height: 0; grid-template-columns: 1fr; }
  .arrival-art { min-height: 680px; }
  .arrival-copy { padding: 90px 24px; }
  .architecture-grid { grid-template-columns: 1fr; }
  .architecture-grid article { min-height: 310px; }
  .architecture-grid h3 { margin-top: 60px; }
  .folio-link { grid-template-columns: 1fr 28px; }
  .folio-link b { display: none; }
  .portal-stage { padding: 72px 24px 100px; }
  .portal-current h1 { font-size: clamp(3.2rem, 15vw, 5rem); }
  .portal-paper { margin: 0; padding: 11px; }
  .portal-paper img { max-height: 210px; }
  .portal-envelope { height: 220px; margin-top: -12px; }
  .journey-folio > header { padding: 75px 24px 35px; align-items: start; flex-direction: column; }
  .journey-list { padding: 35px 20px 90px; gap: 14px; grid-template-columns: 1fr; }
  .journey-envelope { min-height: 260px; }
  .portal-support { padding: 90px 24px; }
  .v4-footer { gap: 16px; flex-direction: column; }
  .library-hero { padding: 90px 24px 105px; gap: 42px; }
  .library-hero h1 { white-space: normal; font-size: clamp(3.25rem, 16vw, 4.6rem); }
  .library-section { padding: 90px 24px; }
  .library-section > header { grid-template-columns: 1fr; }
  .library-grid { grid-template-columns: 1fr; }
  .library-grid .featured-resource { grid-column: span 1; }
  .library-grid > a { min-height: 235px; }
  .library-seven { min-height: 0; padding: 95px 24px; }
  .mini-envelopes i { min-height: 90px; }
  .library-reading { padding: 90px 24px; }
  .group-hero h1 { white-space: normal; font-size: clamp(3.4rem, 18vw, 4.5rem); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .folio-progress i b, .journey-envelope, .envelope-paper { transition: none; }
}

/* Reading index */
.reading-hero { min-height: 58vh; }
.reading-catalog { padding: clamp(90px, 12vw, 160px) clamp(24px, 7vw, 110px); background: var(--paper-2); }
.reading-catalog > article { max-width: 1280px; margin: 0 auto clamp(95px, 12vw, 155px); }
.reading-catalog > article > header { display: grid; margin-bottom: 44px; gap: 28px; grid-template-columns: 54px 1fr; }
.reading-catalog > article > header > span { color: var(--wine); font: italic 0.78rem Georgia; }
.reading-catalog h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.4rem, 4.4vw, 4.6rem); font-weight: 500; letter-spacing: -0.05em; }
.reading-links { display: grid; border-top: 1px solid var(--line); grid-template-columns: repeat(2, 1fr); }
.reading-links a { display: grid; min-height: 150px; padding: 27px 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); align-content: space-between; text-decoration: none; }
.reading-links a:nth-child(2n + 1) { border-left: 1px solid var(--line); }
.reading-links a:hover { background: var(--paper); }
.reading-links small { color: var(--gold); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.08em; }
.reading-links strong { margin-top: 22px; font-family: var(--serif); font-size: 1.18rem; font-weight: 500; line-height: 1.55; }
.materials-banner { display: grid; max-width: 1280px; margin: auto; padding: clamp(55px, 8vw, 90px); align-items: end; gap: 45px; grid-template-columns: 1fr auto; color: #f5efe5; background: radial-gradient(circle at 15% 12%, rgba(118, 42, 50, 0.38), transparent 30%), var(--night); }
.materials-banner h2 { font-size: clamp(2.5rem, 4vw, 4.2rem); }
.materials-banner p:not(.v4-kicker) { margin: 14px 0 0; color: rgba(255, 255, 255, 0.55); font-family: var(--serif); }

@media (max-width: 720px) {
  .reading-catalog { padding: 85px 24px; }
  .reading-catalog > article > header { grid-template-columns: 1fr; }
  .reading-links { grid-template-columns: 1fr; }
  .reading-links a, .reading-links a:nth-child(2n + 1) { min-height: 135px; border-left: 1px solid var(--line); }
  .materials-banner { grid-template-columns: 1fr; padding: 55px 28px; }
}

/* Cohort portal */
.group-dashboard { color: #f5efe5; background: var(--night); }
.group-hero { display: grid; min-height: calc(100vh - 78px); padding: clamp(90px, 12vw, 170px) clamp(24px, 8vw, 125px); align-items: center; gap: 80px; grid-template-columns: minmax(0, 1fr) minmax(320px, 0.62fr); background: radial-gradient(circle at 13% 18%, rgba(41, 77, 99, 0.45), transparent 31%), var(--night); }
.group-hero > div:first-child { max-width: 850px; }
.group-hero h1 { margin: 0; white-space: nowrap; font-family: var(--serif); font-size: clamp(4.5rem, 9vw, 9rem); font-weight: 500; letter-spacing: -0.075em; line-height: 0.95; }
.group-hero p:not(.v4-kicker) { max-width: 680px; margin: 34px 0; color: rgba(255, 255, 255, 0.58); font-family: var(--serif); font-size: 1.08rem; line-height: 2; }
.group-seal { display: grid; min-height: 440px; padding: 35px; place-items: center; align-content: center; border: 1px solid rgba(255, 255, 255, 0.14); background: rgba(255, 255, 255, 0.025); gap: 30px; }
.group-seal i { display: grid; width: 170px; height: 170px; place-items: center; border: 3px double rgba(245, 218, 194, 0.42); border-radius: 50%; color: #f0d9c2; background: var(--wine); box-shadow: 0 28px 55px rgba(0, 0, 0, 0.3); font-family: var(--serif); font-size: 3.1rem; font-style: normal; }
.group-seal span { color: rgba(255, 255, 255, 0.44); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.16em; }
.group-grid { display: grid; color: var(--ink); background: var(--line); grid-template-columns: repeat(3, 1fr); gap: 1px; }
.group-grid article { min-height: 430px; padding: clamp(38px, 5vw, 70px); background: var(--paper-2); }
.group-grid small { color: var(--gold); font-size: 0.62rem; font-weight: 800; letter-spacing: 0.1em; }
.group-grid h2 { margin: 100px 0 20px; font-family: var(--serif); font-size: clamp(2rem, 3vw, 3.2rem); font-weight: 500; }
.group-grid p { color: var(--muted); font-family: var(--serif); line-height: 1.9; }
.group-grid a, .group-grid span { display: inline-block; margin-top: 20px; color: var(--wine); font-size: 0.72rem; font-weight: 750; text-decoration: none; }
.group-grid span { color: var(--muted); }

@media (max-width: 820px) {
  .group-hero { min-height: auto; padding: 90px 24px; grid-template-columns: 1fr; }
  .group-seal { min-height: 340px; }
  .group-grid { grid-template-columns: 1fr; }
  .group-grid article { min-height: 340px; }
  .group-grid h2 { margin-top: 65px; }
}


/* /assets/v5.css */
/* V5 course architecture: welcome → main 1–4 → publishing week → main 5–7 */

:where(a, button, input):focus-visible {
  outline: 3px solid #d5ae73;
  outline-offset: 4px;
}

body[data-v5-unit] .content p,
body[data-v5-resource] .content p { overflow-wrap: anywhere; }

.course-position {
  padding: 14px clamp(24px, 7vw, 110px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.11);
  color: rgba(255, 255, 255, 0.54);
  background: #101417;
  text-align: center;
}
.course-position p { margin: 0; font-size: 0.72rem; }
.course-position span { color: #d5ae73; font-weight: 780; }
.v5-current-stage { min-height: calc(100vh - 121px); }
.v5-current-stage .portal-current h1.is-short-title { white-space: nowrap; }
.v5-architecture-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.v5-architecture-grid article { min-height: 430px; }

.curriculum-roadmap {
  padding: clamp(90px, 11vw, 145px) clamp(24px, 7vw, 110px) clamp(110px, 14vw, 180px);
  color: var(--ink);
  background:
    radial-gradient(circle at 89% 8%, rgba(118, 42, 50, 0.08), transparent 26%),
    var(--paper);
}
.roadmap-heading {
  display: flex;
  max-width: 1320px;
  margin: 0 auto 60px;
  align-items: end;
  justify-content: space-between;
  gap: 42px;
}
.roadmap-heading > div:first-child { max-width: 780px; }
.roadmap-heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2.8rem, 5vw, 5.4rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 1.12;
}
.roadmap-heading > div:first-child > p:last-child {
  max-width: 680px;
  margin: 22px 0 0;
  color: var(--muted);
  font-family: var(--serif);
}
.course-progress { width: min(330px, 100%); color: var(--muted); font-size: 0.72rem; }
.course-progress i {
  position: relative;
  display: block;
  height: 2px;
  margin-top: 11px;
  background: var(--line);
}
.course-progress i b {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  background: var(--wine);
  transition: width 0.4s;
}

.phase-list {
  display: grid;
  max-width: 1320px;
  margin: auto;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.path-phase {
  position: relative;
  min-height: 470px;
  padding: clamp(30px, 4vw, 52px);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(255, 250, 240, 0.58);
}
.path-phase::after {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: transparent;
  content: "";
}
.path-phase.is-current { background: #fffaf0; }
.path-phase.is-current::after { background: var(--wine); }
.path-phase.is-complete::after { background: #355849; }
.path-phase > header { display: grid; align-items: start; gap: 18px; grid-template-columns: 42px 1fr; }
.path-phase > header > span { color: var(--wine); font: italic 0.78rem Georgia, serif; }
.path-phase > header p { margin: 0 0 5px; color: var(--gold); font-size: 0.6rem; font-weight: 820; letter-spacing: 0.15em; }
.path-phase > header h3 { margin: 0; font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 3rem); font-weight: 500; letter-spacing: -0.045em; }
.phase-description { max-width: 560px; margin: 24px 0 33px 60px; color: var(--muted); font-family: var(--serif); font-size: 0.9rem; }
.path-phase ol { margin: 0 0 0 60px; padding: 0; list-style: none; }
.path-phase li {
  display: grid;
  min-height: 58px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
  align-items: center;
  gap: 13px;
  grid-template-columns: 38px minmax(0, 1fr) auto;
}
.path-phase li > span { color: var(--gold); font: italic 0.67rem Georgia, serif; }
.path-phase li a, .path-phase li strong { min-width: 0; font-family: var(--serif); font-size: 0.92rem; font-weight: 500; line-height: 1.45; text-decoration: none; }
.path-phase li a:hover { color: var(--wine); }
.path-phase li small { color: var(--muted); font-size: 0.58rem; font-weight: 720; white-space: nowrap; }
.path-phase li.is-current a, .path-phase li.is-current strong { color: var(--wine); font-weight: 700; }
.path-phase li.is-complete a { color: #355849; }
.path-phase li.is-locked { opacity: 0.56; }

.publishing-folio { border-top: 1px solid var(--line); }
.publishing-folio .journey-envelope.is-current {
  border-color: rgba(118, 42, 50, 0.42);
  box-shadow: 0 22px 48px rgba(76, 34, 29, 0.14);
}
.publishing-folio .journey-envelope.is-current .envelope-paper { transform: translateY(-18px) rotate(-1deg); }
.publishing-folio .journey-envelope.is-complete .envelope-shell b { background: #355849; }
.publishing-folio .journey-envelope.is-complete .envelope-paper { transform: translateY(-5px); }
.publishing-folio .journey-envelope.is-locked { background: #e8dfd2; }
.publishing-folio .journey-envelope.is-locked .envelope-paper { opacity: 0.34; transform: translateY(73px); }
.publishing-folio .journey-envelope.is-locked .envelope-shell { filter: grayscale(0.72); opacity: 0.75; }

.course-supplements {
  display: grid;
  padding: clamp(90px, 12vw, 155px) max(30px, calc((100vw - 1280px) / 2));
  gap: clamp(50px, 8vw, 105px);
  grid-template-columns: minmax(280px, 0.75fr) minmax(520px, 1.25fr);
  color: #f5efe5;
  background:
    radial-gradient(circle at 10% 14%, rgba(41, 77, 99, 0.36), transparent 34%),
    var(--night);
}
.course-supplements h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2.3rem, 4vw, 4.3rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 1.2;
}
.supplement-links { border-top: 1px solid rgba(255, 255, 255, 0.15); }
.supplement-links a {
  display: grid;
  min-height: 120px;
  padding: 24px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  align-items: center;
  gap: 8px 25px;
  grid-template-columns: 120px minmax(0, 0.82fr) minmax(180px, 1.18fr);
  text-decoration: none;
}
.supplement-links a:hover strong { color: #d5ae73; }
.supplement-links small { color: #d5ae73; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.07em; }
.supplement-links strong { font-family: var(--serif); font-size: 1.18rem; font-weight: 500; transition: color 160ms ease; }
.supplement-links span { color: rgba(255, 255, 255, 0.5); font-family: var(--serif); font-size: 0.82rem; }

.single-course-grid { grid-template-columns: minmax(0, 1fr); }
.single-course-grid > a { min-height: 340px; }
.four-course-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.continuation-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.continuation-grid .featured-resource { min-height: 360px; grid-column: auto; }
.continuation-grid .featured-resource strong { font-size: clamp(2rem, 3.3vw, 3.4rem); }
.library-seven-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.publishing-directory {
  display: grid;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.publishing-directory a {
  display: grid;
  min-height: 72px;
  padding: 15px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  align-items: center;
  gap: 20px;
  grid-template-columns: 70px minmax(0, 1fr);
  color: rgba(255, 255, 255, 0.78);
  text-decoration: none;
}
.publishing-directory a:hover strong { color: #d5ae73; }
.publishing-directory span { color: #d5ae73; font-size: 0.59rem; font-weight: 800; letter-spacing: 0.08em; }
.publishing-directory strong { font-family: var(--serif); font-size: 1.06rem; font-weight: 500; transition: color 160ms ease; }
.v5-library-reading { grid-template-columns: minmax(280px, 0.9fr) minmax(320px, 1.1fr) auto; }
.library-reading-links { display: flex; align-items: flex-start; gap: 18px; flex-direction: column; }
.library-epilogue {
  padding: clamp(105px, 15vw, 185px) 24px;
  color: #f5efe5;
  background: radial-gradient(circle at 50% 15%, rgba(118, 42, 50, 0.32), transparent 30%), var(--night);
  text-align: center;
}
.library-epilogue h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.7rem, 5vw, 5.3rem); font-weight: 500; letter-spacing: -0.055em; line-height: 1.18; }
.library-epilogue > p:not(.v4-kicker) { max-width: 650px; margin: 26px auto 35px; color: rgba(255, 255, 255, 0.56); font-family: var(--serif); }

.v5-completion {
  display: grid;
  padding: clamp(105px, 14vw, 180px) 24px;
  place-items: center;
  border-top: 1px solid rgba(47, 36, 28, 0.16);
  color: #1a1714;
  text-align: center;
  background:
    radial-gradient(circle at 50% 37%, rgba(118, 42, 50, 0.1), transparent 29%),
    #e5dac8;
}
.v5-completion-kicker { margin: 0 0 20px; color: #762a32; font-size: 0.66rem; font-weight: 800; letter-spacing: 0.16em; }
.v5-completion h2 { max-width: 850px; margin: 0; font-family: var(--serif, "Songti SC", serif); font-size: clamp(2.3rem, 4.5vw, 4.8rem); font-weight: 500; letter-spacing: -0.05em; line-height: 1.18; }
.v5-practice-copy { max-width: 680px; margin: 24px auto 34px; color: #746b61; font-family: var(--serif, "Songti SC", serif); font-size: 1rem; }
.v5-response-box { width: min(660px, 100%); padding: 28px; border: 1px solid rgba(47, 36, 28, 0.16); background: rgba(255, 250, 240, 0.68); text-align: left; }
.v5-response-box label { display: flex; align-items: center; gap: 14px; cursor: pointer; }
.v5-response-box input { width: 21px; height: 21px; flex: 0 0 auto; accent-color: #762a32; }
.v5-response-box label span, .v5-response-box label small, .v5-response-box label strong { display: block; }
.v5-response-box label small { color: #762a32; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.08em; }
.v5-response-box label strong { margin-top: 2px; font-family: var(--serif, "Songti SC", serif); font-weight: 500; }
.v5-response-box button { display: inline-flex; min-height: 54px; margin-top: 24px; padding: 0 23px; align-items: center; border: 0; border-radius: 2px; color: #fff; background: #1a1714; cursor: pointer; gap: 12px; }
.v5-response-box button:disabled { cursor: not-allowed; opacity: 0.42; }
.v5-response-box button span { display: grid; width: 18px; height: 18px; place-items: center; border: 1px solid rgba(255, 255, 255, 0.62); border-radius: 50%; font-size: 0.65rem; }
.v5-completion.is-done .v5-response-box { border-color: rgba(53, 88, 73, 0.38); }
.v5-completion.is-done .v5-response-box button { background: #355849; opacity: 1; }
.v5-arrival-copy { max-width: 660px; margin: 24px auto 0; color: #746b61; font-family: var(--serif, "Songti SC", serif); font-size: 0.86rem; }
.v5-completion-nav { display: flex; margin-top: 25px; gap: 24px; flex-wrap: wrap; justify-content: center; }
.v5-completion-nav a { color: #746b61; font-size: 0.75rem; font-weight: 700; text-decoration: none; }

.v5-resource-return {
  padding: clamp(90px, 12vw, 145px) 24px;
  color: #f4eee3;
  background: #161b1f;
  text-align: center;
}
.v5-resource-return p { max-width: 690px; margin: 0 auto 26px; color: rgba(255, 255, 255, 0.58); font-family: var(--serif, "Songti SC", serif); }
.v5-resource-return div { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.v5-resource-return a { display: inline-flex; min-height: 52px; padding: 0 22px; align-items: center; color: #161b1f; background: #f2e7d4; font-size: 0.76rem; font-weight: 750; text-decoration: none; }

@media (max-width: 980px) {
  .v5-architecture-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .roadmap-heading { align-items: start; flex-direction: column; }
  .phase-list { grid-template-columns: 1fr; }
  .course-supplements { grid-template-columns: 1fr; }
  .four-course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .continuation-grid { grid-template-columns: 1fr; }
  .continuation-grid .featured-resource { grid-column: auto; }
  .v5-library-reading { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .v5-architecture-grid { grid-template-columns: 1fr; }
  .course-position { padding: 12px 20px; text-align: left; }
  .v5-current-stage { min-height: auto; }
  .v5-current-stage .portal-current h1.is-short-title { font-size: clamp(2.9rem, 12.5vw, 4rem); }
  .curriculum-roadmap { padding-right: 20px; padding-left: 20px; }
  .roadmap-heading { margin-bottom: 38px; }
  .roadmap-heading h2 { font-size: clamp(2.45rem, 12vw, 3.45rem); }
  .path-phase { min-height: 0; padding: 30px 22px 36px; }
  .phase-description, .path-phase ol { margin-left: 0; }
  .phase-description { margin-top: 22px; }
  .path-phase li { grid-template-columns: 34px minmax(0, 1fr); }
  .path-phase li small { grid-column: 2; white-space: normal; }
  .course-supplements { padding: 90px 24px; }
  .supplement-links a { min-height: 0; grid-template-columns: 1fr; }
  .four-course-grid { grid-template-columns: 1fr; }
  .v5-completion { padding: 95px 20px; }
  .v5-response-box { padding: 23px 18px; }
}

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


/* /assets/v6.css */
/*
 * Seven Letters V6
 * A correspondence-led product system: paper, ink, arrival, reply.
 */

:root {
  --v6-paper: #eee5d6;
  --v6-paper-light: #faf5eb;
  --v6-paper-deep: #d8c9b4;
  --v6-ink: #151513;
  --v6-night: #111719;
  --v6-night-soft: #1a2224;
  --v6-wine: #702330;
  --v6-gold: #b58b4b;
  --v6-green: #3d5b4c;
  --v6-muted: #6f685f;
  --v6-line: rgba(39, 31, 24, 0.16);
  --v6-light-line: rgba(255, 255, 255, 0.14);
  --v6-serif: "Songti SC", "STSong", "Noto Serif CJK SC", Georgia, serif;
  --v6-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  --v6-shadow-soft: 0 16px 38px rgba(45, 31, 20, 0.11);
  --v6-shadow-float: 0 32px 80px rgba(40, 27, 18, 0.2);
}

:where(.v6-home, .v6-course) {
  color: var(--v6-ink);
  background: var(--v6-paper);
}

:where(.v6-home, .v6-course) ::selection,
body[data-v5-unit] ::selection,
body[data-v5-resource] ::selection { color: #fffaf0; background: var(--v6-wine); }

:where(.v6-home, .v6-course) :where(a, button) { -webkit-tap-highlight-color: transparent; }
:where(.v6-home, .v6-course) :where(a, button):focus-visible,
body[data-v5-unit] :where(a, button, input):focus-visible,
body[data-v5-resource] :where(a, button, input):focus-visible {
  outline: 2px solid var(--v6-gold);
  outline-offset: 5px;
}

.v6-header {
  min-height: 74px;
  padding-inline: clamp(22px, 4.8vw, 78px);
  border-color: rgba(42, 32, 24, 0.13);
  background: rgba(238, 229, 214, 0.88);
}
.v6-header .v4-mark b { letter-spacing: 0.22em; }
.v6-header .header-enter {
  min-height: 38px;
  padding: 0 18px;
  border-color: rgba(21, 21, 19, 0.58);
  border-radius: 0;
  color: var(--v6-ink);
  transition: color 180ms ease, background 180ms ease;
}
.v6-header .header-enter:hover { color: var(--v6-paper-light); background: var(--v6-ink); }

/* Public invitation */
.v6-hero {
  position: relative;
  display: grid;
  min-height: calc(100svh - 74px);
  padding: clamp(76px, 8vw, 125px) clamp(24px, 6.5vw, 106px);
  align-items: center;
  gap: clamp(58px, 8vw, 128px);
  grid-template-columns: minmax(0, 0.86fr) minmax(480px, 1.14fr);
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(55, 42, 31, 0.04) 1px, transparent 1px) 0 0 / 25% 100%,
    radial-gradient(circle at 9% 17%, rgba(112, 35, 48, 0.1), transparent 27%),
    linear-gradient(132deg, #f6efe4 0%, var(--v6-paper) 58%, #e3d5c1 100%);
}
.v6-hero::after {
  position: absolute;
  top: 0;
  right: 5%;
  width: 1px;
  height: 100%;
  background: rgba(42, 32, 24, 0.1);
  content: "";
}
.v6-hero-copy { position: relative; z-index: 2; max-width: 720px; }
.v6-hero-copy .v4-kicker { margin-bottom: 34px; color: var(--v6-wine); }
.v6-hero-title { display: flex; align-items: flex-start; gap: 16px; }
.v6-hero-title > span {
  margin-top: 13px;
  color: var(--v6-gold);
  font: italic 0.7rem Georgia, serif;
  letter-spacing: 0.12em;
  writing-mode: vertical-rl;
}
.v6-hero h1 {
  margin: 0;
  color: var(--v6-wine);
  font-family: var(--v6-serif);
  font-size: clamp(5.5rem, 10vw, 10.6rem);
  font-weight: 500;
  letter-spacing: -0.085em;
  line-height: 0.84;
}
.v6-hero-promise {
  margin: clamp(36px, 5vw, 66px) 0 0 33px;
  font-family: var(--v6-serif);
  font-size: clamp(2.4rem, 3.35vw, 4.25rem);
  letter-spacing: -0.055em;
  line-height: 1.18;
}
.v6-hero-lead {
  max-width: 600px;
  margin: 28px 0 0 33px;
  color: #50483f;
  font-family: var(--v6-serif);
  font-size: clamp(1rem, 1.22vw, 1.18rem);
  line-height: 2;
}
.v6-hero-actions { display: flex; margin: 34px 0 0 33px; align-items: center; gap: 25px; flex-wrap: wrap; }
.v6-hero-actions .v4-button { min-width: 190px; }
.v6-sequence {
  display: flex;
  margin: 42px 0 0 33px;
  align-items: center;
  color: var(--v6-muted);
  font-family: var(--v6-serif);
  font-size: 0.74rem;
  gap: 10px;
  white-space: nowrap;
}
.v6-sequence i { width: 18px; height: 1px; background: rgba(112, 35, 48, 0.42); }

.v6-letter-portrait { position: relative; z-index: 2; width: min(100%, 760px); margin: auto; }
.v6-letter-matte {
  position: relative;
  display: grid;
  min-height: min(70vh, 680px);
  padding: clamp(40px, 5vw, 75px);
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #f8f2e8;
  background:
    linear-gradient(90deg, transparent 0 49.8%, rgba(255, 255, 255, 0.05) 49.8% 50%, transparent 50%),
    linear-gradient(var(--v6-night-soft), var(--v6-night));
  box-shadow: var(--v6-shadow-float);
}
.v6-letter-matte::before {
  position: absolute;
  inset: 22px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  content: "";
}
.v6-letter-shadow {
  position: absolute;
  top: 29%;
  right: 4%;
  left: 4%;
  aspect-ratio: 4029 / 1167;
  border: 1px solid rgba(248, 241, 228, 0.15);
  background: #b7a790;
  transform: rotate(4deg);
}
.v6-letter-sheet {
  position: relative;
  z-index: 2;
  width: 111%;
  padding: clamp(12px, 1.6vw, 23px);
  border: 1px solid rgba(38, 29, 22, 0.28);
  background: #dedbd2;
  box-shadow: 0 24px 54px rgba(0, 0, 0, 0.34);
  transform: rotate(-2.2deg);
}
.v6-letter-sheet img { width: 100%; filter: saturate(0.67) sepia(0.1) contrast(1.15) brightness(1.03); }
.v6-postmark {
  position: absolute;
  z-index: 4;
  right: 7.5%;
  bottom: 7.5%;
  display: grid;
  width: 112px;
  height: 112px;
  place-items: center;
  align-content: center;
  border: 1px solid rgba(224, 190, 145, 0.5);
  border-radius: 50%;
  color: #e4c08d;
  background: rgba(112, 35, 48, 0.94);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.28);
}
.v6-postmark::before { position: absolute; inset: 8px; border: 1px solid rgba(255, 241, 216, 0.32); border-radius: 50%; content: ""; }
.v6-postmark b { font-family: var(--v6-serif); font-size: 1.8rem; font-weight: 500; line-height: 1; }
.v6-postmark span { margin-top: 8px; font-size: 0.46rem; font-weight: 800; letter-spacing: 0.14em; }
.v6-seal-rail {
  position: absolute;
  z-index: 3;
  top: 33px;
  left: 32px;
  display: flex;
  margin: 0;
  padding: 0;
  gap: 6px;
  list-style: none;
}
.v6-seal-rail li { display: grid; width: 26px; height: 26px; place-items: center; border: 1px solid rgba(224, 190, 145, 0.4); border-radius: 50%; color: #d9b983; font: italic 0.58rem Georgia, serif; }
.v6-letter-portrait figcaption { display: flex; margin-top: 16px; justify-content: space-between; color: var(--v6-muted); font-size: 0.61rem; letter-spacing: 0.06em; }

.v6-section-index { color: var(--v6-wine); font: italic 0.75rem Georgia, serif; }
.v6-manifesto {
  display: grid;
  max-width: 1320px;
  margin: auto;
  padding: clamp(125px, 16vw, 225px) 30px;
  align-items: start;
  gap: clamp(38px, 6vw, 88px);
  grid-template-columns: 52px minmax(320px, 0.95fr) minmax(360px, 1.05fr);
}
.v6-manifesto h2,
.v6-arrival h2,
.v6-journey h2,
.v6-closing h2 {
  margin: 0;
  font-family: var(--v6-serif);
  font-size: clamp(3rem, 5.3vw, 6rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 1.12;
}
.v6-manifesto-copy { padding-top: 51px; }
.v6-manifesto-copy p { max-width: 610px; color: #4f473f; font-family: var(--v6-serif); font-size: 1.08rem; line-height: 2.06; }
.v6-manifesto-copy p + p { margin-top: 23px; }

.v6-arrival {
  display: grid;
  min-height: 920px;
  color: #f6efe4;
  background: var(--v6-night);
  grid-template-columns: 1fr 1fr;
}
.v6-arrival-object {
  position: relative;
  display: flex;
  min-height: 720px;
  padding: clamp(50px, 7vw, 105px);
  justify-content: space-between;
  flex-direction: column;
  overflow: hidden;
  border-right: 1px solid var(--v6-light-line);
  background:
    radial-gradient(circle at 54% 48%, rgba(112, 35, 48, 0.42), transparent 32%),
    linear-gradient(135deg, #1e292b, #0c1112 72%);
}
.v6-arrival-object::before {
  position: absolute;
  inset: 8%;
  border: 1px solid rgba(255, 255, 255, 0.1);
  content: "";
}
.v6-arrival-number { position: relative; z-index: 2; display: flex; align-items: flex-start; gap: 25px; }
.v6-arrival-number strong { font-family: Georgia, serif; font-size: clamp(8rem, 15vw, 16rem); font-weight: 400; letter-spacing: -0.09em; line-height: 0.76; }
.v6-arrival-number span { margin-top: 13px; color: #d6b47e; font-size: 0.58rem; font-weight: 800; letter-spacing: 0.15em; line-height: 1.8; }
.v6-arrival-track { position: relative; z-index: 2; display: grid; padding-inline: 8px; align-items: center; grid-template-columns: repeat(7, 1fr); }
.v6-arrival-track::before { position: absolute; right: 8px; left: 8px; height: 1px; background: rgba(214, 180, 126, 0.42); content: ""; }
.v6-arrival-track i { position: relative; display: block; width: 11px; height: 11px; justify-self: center; border: 1px solid #d6b47e; border-radius: 50%; background: var(--v6-night); }
.v6-arrival-track i:first-child { width: 18px; height: 18px; background: var(--v6-wine); box-shadow: 0 0 0 7px rgba(112, 35, 48, 0.22); }
.v6-arrival-object > p { position: relative; z-index: 2; margin: 0; color: rgba(255, 255, 255, 0.46); font-size: 0.58rem; font-weight: 800; letter-spacing: 0.18em; }
.v6-arrival-copy { display: flex; padding: clamp(90px, 10vw, 155px) clamp(34px, 7vw, 115px); justify-content: center; flex-direction: column; }
.v6-arrival-copy h2 { max-width: 720px; }
.v6-arrival-copy ol { max-width: 680px; margin: 52px 0 38px; padding: 0; list-style: none; }
.v6-arrival-copy li { display: grid; padding: 24px 0; border-top: 1px solid var(--v6-light-line); gap: 22px; grid-template-columns: 42px 1fr; }
.v6-arrival-copy li > span { color: #d6b47e; font: italic 0.72rem Georgia, serif; }
.v6-arrival-copy strong { font-family: var(--v6-serif); font-size: 1.22rem; font-weight: 500; }
.v6-arrival-copy li p { margin: 4px 0 0; color: rgba(255, 255, 255, 0.54); font-size: 0.8rem; }

.v6-journey { padding: clamp(120px, 15vw, 205px) clamp(24px, 6.5vw, 106px); background: var(--v6-paper-light); }
.v6-journey-heading {
  display: grid;
  max-width: 1320px;
  margin: 0 auto clamp(70px, 9vw, 115px);
  align-items: end;
  gap: clamp(35px, 5vw, 78px);
  grid-template-columns: 46px minmax(420px, 1.25fr) minmax(300px, 0.75fr);
}
.v6-journey-heading > p { max-width: 520px; margin: 0 0 7px; color: var(--v6-muted); font-family: var(--v6-serif); line-height: 2; }
.v6-journey-line { display: grid; max-width: 1320px; margin: auto; border-top: 1px solid var(--v6-line); border-bottom: 1px solid var(--v6-line); grid-template-columns: 0.72fr 1.12fr 1.58fr 1.05fr; }
.v6-journey-line article { position: relative; min-height: 390px; padding: 38px 32px; border-left: 1px solid var(--v6-line); background: rgba(255, 255, 255, 0.12); }
.v6-journey-line article:last-child { border-right: 1px solid var(--v6-line); }
.v6-journey-line article::before { position: absolute; top: -6px; left: 29px; width: 11px; height: 11px; border: 1px solid var(--v6-wine); border-radius: 50%; background: var(--v6-paper-light); content: ""; }
.v6-journey-line span { color: var(--v6-gold); font-size: 0.58rem; font-weight: 820; letter-spacing: 0.12em; }
.v6-journey-line b { display: block; margin-top: 25px; color: var(--v6-muted); font: italic 0.72rem Georgia, serif; font-weight: 400; }
.v6-journey-line h3 { margin: auto 0 18px; padding-top: 118px; font-family: var(--v6-serif); font-size: clamp(1.8rem, 2.55vw, 2.75rem); font-weight: 500; letter-spacing: -0.04em; line-height: 1.25; }
.v6-journey-line p { margin: 0; color: var(--v6-muted); font-family: var(--v6-serif); font-size: 0.88rem; line-height: 1.85; }
.v6-journey-line .is-publishing { color: #f6efe4; background: var(--v6-wine); }
.v6-journey-line .is-publishing::before { border-color: #e2bf8b; background: #e2bf8b; box-shadow: 0 0 0 6px rgba(181, 139, 75, 0.18); }
.v6-journey-line .is-publishing span,
.v6-journey-line .is-publishing b { color: #dfbd88; }
.v6-journey-line .is-publishing p { color: rgba(255, 255, 255, 0.63); }
.v6-enter-course {
  display: grid;
  max-width: 1320px;
  min-height: 126px;
  margin: 60px auto 0;
  padding: 24px 30px;
  align-items: center;
  border-top: 1px solid var(--v6-line);
  border-bottom: 1px solid var(--v6-line);
  gap: 25px;
  grid-template-columns: 1fr auto 32px;
  text-decoration: none;
  transition: color 180ms ease, padding 180ms ease, background 180ms ease;
}
.v6-enter-course:hover { padding-inline: 40px; color: #fff; background: var(--v6-ink); }
.v6-enter-course span { display: grid; gap: 7px; }
.v6-enter-course small { color: var(--v6-gold); font-size: 0.56rem; font-weight: 800; letter-spacing: 0.13em; }
.v6-enter-course strong { font-family: var(--v6-serif); font-size: 1.4rem; font-weight: 500; }
.v6-enter-course > b { color: var(--v6-muted); font-size: 0.63rem; letter-spacing: 0.12em; }
.v6-enter-course i { color: var(--v6-wine); font: italic 1.15rem Georgia, serif; }
.v6-enter-course:hover > b,
.v6-enter-course:hover i { color: #d7b57e; }

.v6-closing {
  position: relative;
  display: grid;
  min-height: 78svh;
  padding: clamp(120px, 16vw, 220px) 24px;
  place-items: center;
  align-content: center;
  overflow: hidden;
  text-align: center;
  background:
    radial-gradient(circle at 50% 43%, rgba(112, 35, 48, 0.14), transparent 24%),
    var(--v6-paper);
}
.v6-closing::before { position: absolute; inset: 8%; border: 1px solid var(--v6-line); content: ""; }
.v6-closing-seal { position: relative; display: grid; width: 82px; height: 82px; margin-bottom: 34px; place-items: center; border: 1px solid rgba(112, 35, 48, 0.5); border-radius: 50%; color: #eed5b2; background: var(--v6-wine); box-shadow: 0 12px 26px rgba(112, 35, 48, 0.18); font-family: var(--v6-serif); font-size: 1.5rem; }
.v6-closing h2 { position: relative; }
.v6-closing .v4-button { position: relative; margin-top: 38px; }
.v6-footer { background: var(--v6-paper); }

/* Learning cockpit */
.v6-portal-header { min-height: 74px; background: rgba(17, 23, 25, 0.91); }
.v6-course-position {
  display: flex;
  min-height: 48px;
  padding: 0 clamp(24px, 5vw, 78px);
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--v6-light-line);
  color: rgba(255, 255, 255, 0.45);
  background: #0c1112;
  text-align: left;
}
.v6-course-position > span { color: #d6b47e; font-size: 0.56rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.v6-course-position p { display: flex; align-items: center; gap: 11px; }
.v6-course-position p i { width: 17px; height: 1px; background: rgba(214, 180, 126, 0.32); }
.v6-current-stage {
  min-height: calc(100svh - 122px);
  padding: clamp(72px, 8vw, 125px) clamp(24px, 6.5vw, 106px);
  gap: clamp(65px, 9vw, 140px);
  grid-template-columns: minmax(0, 0.86fr) minmax(470px, 1.14fr);
  background:
    linear-gradient(90deg, transparent 0 50%, rgba(255, 255, 255, 0.025) 50%),
    radial-gradient(circle at 14% 17%, rgba(112, 35, 48, 0.38), transparent 29%),
    var(--v6-night);
}
.v6-current-copy { position: relative; max-width: 760px; padding-top: 35px; }
.v6-current-count { position: absolute; top: -50px; left: -6px; display: flex; align-items: baseline; color: rgba(255, 255, 255, 0.055); font-family: Georgia, serif; line-height: 1; }
.v6-current-count > span { font-size: clamp(9rem, 15vw, 15rem); letter-spacing: -0.08em; }
.v6-current-count small { font-size: 1rem; }
.v6-current-count b { font-weight: 400; }
.v6-current-copy > :not(.v6-current-count) { position: relative; z-index: 2; }
.v6-current-copy .v4-kicker { margin-bottom: 16px; }
.v6-current-copy .current-stage { margin-bottom: 16px; }
.v6-current-copy h1 {
  max-width: 800px;
  margin: 0 0 18px;
  font-size: clamp(3.5rem, 6.3vw, 7.25rem);
  letter-spacing: -0.07em;
  line-height: 1.02;
  text-wrap: balance;
}
.v6-current-copy h1.is-short-title { white-space: normal; }
.v6-current-copy .current-subtitle { max-width: 640px; margin-bottom: 27px; color: #dab881; font-size: clamp(1.08rem, 1.55vw, 1.4rem); }
.v6-current-copy .current-summary { max-width: 610px; color: rgba(255, 255, 255, 0.59); font-size: 1rem; line-height: 1.95; }
.v6-current-copy .current-actions { margin-top: 36px; }
.v6-current-copy .v4-button { min-height: 58px; padding-inline: 26px; }
.v6-current-copy .light-button { color: var(--v6-ink); background: #f5ead9; }
.v6-current-copy .wait-message { margin-top: 42px; padding-left: 24px; border-top: 0; border-left: 1px solid rgba(214, 180, 126, 0.42); }
.v6-current-copy .wait-message b { font-size: 1.08rem; }

.v6-current-art { width: min(100%, 760px); margin: auto; }
.v6-current-frame {
  position: relative;
  display: grid;
  min-height: min(68vh, 675px);
  padding: clamp(42px, 5vw, 72px);
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px) 0 0 / 100% 25%,
    #1b2325;
}
.v6-current-frame::before { position: absolute; inset: 24px; border: 1px solid rgba(255, 255, 255, 0.08); content: ""; }
.v6-current-sheet { position: relative; z-index: 2; width: 110%; padding: clamp(13px, 1.7vw, 24px); border: 1px solid rgba(36, 28, 22, 0.36); background: #dedbd2; box-shadow: 0 28px 65px rgba(0, 0, 0, 0.34); transform: rotate(-1.5deg); }
.v6-current-sheet::before { position: absolute; inset: 7px; border: 1px solid rgba(45, 35, 27, 0.12); content: ""; pointer-events: none; }
.v6-current-sheet img { width: 100%; max-height: 390px; object-fit: cover; filter: saturate(0.72) sepia(0.08) contrast(1.1) brightness(1.03); }
.v6-current-stamp { position: absolute; z-index: 4; right: 8%; bottom: 8%; display: grid; width: 96px; height: 96px; padding: 13px; place-items: center; align-content: center; border: 1px solid rgba(222, 186, 132, 0.58); border-radius: 50%; color: #e1be89; background: var(--v6-wine); box-shadow: 0 15px 34px rgba(0, 0, 0, 0.26); }
.v6-current-stamp::before { position: absolute; inset: 7px; border: 1px solid rgba(255, 244, 225, 0.3); border-radius: 50%; content: ""; }
.v6-current-stamp b { font-family: var(--v6-serif); font-size: 1.45rem; font-weight: 500; line-height: 1; }
.v6-current-stamp span { margin-top: 6px; font: italic 0.58rem Georgia, serif; letter-spacing: 0.1em; }
.v6-current-registration { position: absolute; top: 37px; left: 37px; display: flex; gap: 5px; }
.v6-current-registration i { display: block; width: 18px; height: 18px; border: 1px solid rgba(222, 186, 132, 0.38); border-radius: 50%; }
.v6-current-registration i:first-child { background: var(--v6-wine); }
.v6-current-art figcaption { display: flex; margin-top: 16px; justify-content: space-between; color: rgba(255, 255, 255, 0.42); font-size: 0.6rem; letter-spacing: 0.08em; }

.v6-roadmap {
  padding: clamp(120px, 14vw, 190px) clamp(24px, 6.5vw, 106px);
  background:
    radial-gradient(circle at 91% 6%, rgba(112, 35, 48, 0.09), transparent 24%),
    var(--v6-paper-light);
}
.v6-roadmap-heading { max-width: 1320px; margin-bottom: 78px; }
.v6-roadmap-heading h2 { max-width: 900px; font-size: clamp(3.05rem, 4.5vw, 5.2rem); }
.v6-roadmap-heading > div:first-child > p:last-child { color: var(--v6-muted); }
.v6-roadmap .course-progress { padding-bottom: 9px; }
.v6-roadmap .course-progress i { height: 1px; }
.v6-roadmap .course-progress i b { background: var(--v6-wine); }

.v6-roadmap .phase-list { display: block; max-width: 1320px; border: 0; }
.v6-roadmap .path-phase {
  display: grid;
  min-height: 0;
  padding: 0;
  border: 0;
  border-top: 1px solid var(--v6-line);
  background: transparent;
  grid-template-columns: minmax(270px, 0.72fr) minmax(460px, 1.28fr);
}
.v6-roadmap .path-phase:last-child { border-bottom: 1px solid var(--v6-line); }
.v6-roadmap .path-phase::after { display: none; }
.v6-roadmap .path-phase > header {
  position: relative;
  display: grid;
  min-height: 210px;
  padding: 38px 42px 42px 0;
  align-content: start;
  border-right: 1px solid var(--v6-line);
  gap: 18px;
  grid-template-columns: 42px 1fr auto;
}
.v6-roadmap .path-phase > header::before { position: absolute; top: 48px; left: -3px; width: 7px; height: 7px; border: 1px solid var(--v6-wine); border-radius: 50%; background: var(--v6-paper-light); content: ""; transform: translateX(-50%); }
.v6-roadmap .path-phase.is-current > header::before { width: 13px; height: 13px; border-color: var(--v6-wine); background: var(--v6-wine); box-shadow: 0 0 0 7px rgba(112, 35, 48, 0.12); }
.v6-roadmap .path-phase.is-complete > header::before { border-color: var(--v6-green); background: var(--v6-green); }
.v6-roadmap .path-phase > header > span { color: var(--v6-wine); }
.v6-roadmap .path-phase > header p { color: var(--v6-gold); }
.v6-roadmap .path-phase > header h3 { font-size: clamp(1.9rem, 3vw, 3.1rem); }
.v6-phase-toggle { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--v6-line); border-radius: 50%; color: var(--v6-wine); background: transparent; cursor: pointer; transition: color 180ms ease, background 180ms ease, transform 180ms ease; }
.v6-phase-toggle:hover { color: #fff; background: var(--v6-wine); }
.path-phase.is-expanded .v6-phase-toggle { transform: rotate(45deg); }
.v6-roadmap .phase-description { grid-column: 1; max-width: 500px; margin: -86px 42px 40px 60px; color: var(--v6-muted); font-size: 0.86rem; }
.v6-roadmap .path-phase ol { grid-column: 2; grid-row: 1 / span 2; margin: 0; padding: 24px 0 34px 42px; align-self: stretch; }
.v6-roadmap .path-phase:not(.is-expanded) ol { display: none; }
.v6-phase-preview {
  display: grid;
  grid-column: 2;
  grid-row: 1 / span 2;
  padding: 34px 0 34px 42px;
  align-content: center;
  gap: 1px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  background: var(--v6-line);
}
.path-phase.is-expanded .v6-phase-preview { display: none; }
.v6-phase-preview span {
  display: grid;
  min-height: 74px;
  padding: 14px;
  align-content: space-between;
  color: var(--v6-muted);
  background: var(--v6-paper-light);
}
.v6-phase-preview span.is-current { color: var(--v6-wine); background: #fffaf1; }
.v6-phase-preview span.is-complete { color: var(--v6-green); }
.v6-phase-preview span.is-locked { opacity: 0.5; }
.v6-phase-preview i { color: var(--v6-gold); font: italic 0.59rem Georgia, serif; }
.v6-phase-preview b { font-size: 0.58rem; font-weight: 750; letter-spacing: 0.04em; }
.v6-roadmap .path-phase li {
  position: relative;
  display: grid;
  min-height: 78px;
  padding: 15px 18px 15px 0;
  border-top: 1px solid var(--v6-line);
  align-items: center;
  gap: 16px;
  grid-template-columns: 45px minmax(0, 1fr) auto;
  transition: color 180ms ease, padding 180ms ease, background 180ms ease;
}
.v6-roadmap .path-phase li:first-child { border-top: 0; }
.v6-roadmap .path-phase li.is-current { margin-inline: -18px 0; padding-left: 18px; color: var(--v6-wine); background: #fffaf1; box-shadow: var(--v6-shadow-soft); }
.v6-roadmap .path-phase li.is-current::before { position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--v6-wine); content: ""; }
.v6-roadmap .path-phase li.is-complete { color: var(--v6-green); }
.v6-roadmap .path-phase li.is-locked { opacity: 0.52; }
.v6-roadmap .path-phase li > span { color: var(--v6-gold); font-size: 0.67rem; }
.v6-unit-copy { display: grid; gap: 4px; }
.v6-unit-copy a,
.v6-unit-copy strong { font-family: var(--v6-serif); font-size: 1rem; font-weight: 500; line-height: 1.45; }
.v6-unit-copy em { color: var(--v6-muted); font-family: var(--v6-sans); font-size: 0.58rem; font-style: normal; font-weight: 700; letter-spacing: 0.08em; }
.v6-roadmap .path-phase li small { color: var(--v6-muted); font-size: 0.58rem; }
.v6-epilogue-stop {
  display: grid;
  min-height: 178px;
  padding: 38px 42px;
  align-items: center;
  border-top: 1px solid rgba(255, 255, 255, 0.11);
  color: #f6eee2;
  background: radial-gradient(circle at 86% 12%, rgba(112, 35, 48, 0.58), transparent 30%), var(--v6-night);
  gap: 30px;
  grid-template-columns: 74px minmax(0, 1fr);
}
.v6-epilogue-stop > span { display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid rgba(229, 193, 140, 0.42); border-radius: 50%; color: #e3bf89; font: italic 1.2rem Georgia, serif; }
.v6-epilogue-stop div { display: grid; align-items: center; gap: 9px 24px; grid-template-columns: minmax(0, 1fr) auto; }
.v6-epilogue-stop p { grid-column: 1 / -1; margin: 0; color: #d7b57e; font-size: 0.58rem; font-weight: 800; letter-spacing: 0.16em; }
.v6-epilogue-stop h3 { margin: 0; font-family: var(--v6-serif); font-size: clamp(1.65rem, 3vw, 2.8rem); font-weight: 500; }
.v6-epilogue-stop a { color: inherit; text-decoration: none; }
.v6-epilogue-stop small { color: rgba(255, 255, 255, 0.5); font-size: 0.62rem; }
.v6-epilogue-stop.is-locked { opacity: 0.72; }
.v6-epilogue-stop.is-arrived { box-shadow: 0 25px 60px rgba(17, 23, 25, 0.16); }

.v6-publishing-folio { color: #f5eee3; background: var(--v6-night); }
.v6-publishing-folio > header { border-color: var(--v6-light-line); }
.v6-publishing-folio h2 { max-width: 800px; }
.v6-publishing-folio header p:last-child,
.v6-publishing-folio .folio-progress { color: rgba(255, 255, 255, 0.52); }
.v6-publishing-folio .folio-progress i { background: rgba(255, 255, 255, 0.15); }
.v6-publishing-folio .folio-progress i b { background: #d7b57e; }
.v6-publishing-folio .journey-list { display: grid; padding-top: 72px; gap: 13px; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.v6-publishing-folio .journey-envelope { min-height: 335px; border-color: rgba(255, 255, 255, 0.13); background: #cdb28a; }
.v6-publishing-folio .journey-envelope:nth-child(even) { transform: translateY(18px); }
.v6-publishing-folio a.journey-envelope:hover { transform: translateY(-5px); }
.v6-publishing-folio a.journey-envelope:nth-child(even):hover { transform: translateY(12px); }
.v6-publishing-folio .envelope-paper { right: 12px; left: 12px; padding-inline: 16px; }
.v6-publishing-folio .envelope-paper strong { font-size: 0.98rem; }

.v6-supplements {
  padding-block: clamp(105px, 13vw, 175px);
  background:
    radial-gradient(circle at 13% 18%, rgba(112, 35, 48, 0.35), transparent 32%),
    #0c1112;
}
.v6-supplements h2 { font-size: clamp(2.8rem, 4.5vw, 4.9rem); }
.v6-supplements .supplement-links a { min-height: 112px; }

/* Directory and reading room */
.v5-library > .v4-header,
.reading-index > .v4-header { position: sticky; z-index: 60; top: 0; background: rgba(238, 229, 214, 0.92); backdrop-filter: blur(18px); }
.v5-library .library-hero,
.reading-index .library-hero {
  min-height: 72svh;
  padding: clamp(95px, 12vw, 175px) clamp(24px, 6.5vw, 106px);
  background:
    linear-gradient(90deg, rgba(55, 42, 31, 0.035) 1px, transparent 1px) 0 0 / 25% 100%,
    radial-gradient(circle at 14% 14%, rgba(112, 35, 48, 0.11), transparent 27%),
    var(--v6-paper);
}
.v5-library .library-hero h1,
.reading-index .library-hero h1 { color: var(--v6-wine); font-size: clamp(5rem, 9vw, 9.4rem); }
.v5-library .library-hero > p,
.reading-index .library-hero > p { word-break: keep-all; }
.v5-library .library-hero > p { display: flex; align-items: center; gap: 5px 9px; flex-wrap: wrap; }
.v5-library .library-hero > p span { white-space: nowrap; }
.v5-library .library-hero > p i { color: var(--v6-gold); font-family: Georgia, serif; font-size: 0.85em; font-style: normal; }
.v5-library .library-section,
.reading-index .reading-catalog { background: var(--v6-paper-light); }
.v5-library .library-grid { display: block; border: 0; border-top: 1px solid var(--v6-line); }
.v5-library .library-grid > a {
  display: grid;
  min-height: 125px;
  padding: 25px 0;
  border: 0;
  border-bottom: 1px solid var(--v6-line);
  align-items: center;
  gap: 16px 28px;
  grid-template-columns: 135px minmax(260px, 0.8fr) minmax(280px, 1.2fr) auto;
  background: transparent;
}
.v5-library .library-grid > a:hover { padding-inline: 18px; background: var(--v6-paper); }
.v5-library .library-grid small { margin: 0; }
.v5-library .library-grid strong { font-size: 1.35rem; }
.v5-library .library-grid span { margin: 0; }
.v5-library .library-grid b { margin: 0; white-space: nowrap; }
.v5-library .library-grid > a.v6-directory-item > b { display: none; }
.v6-directory-state { color: var(--v6-muted); font-family: var(--v6-sans); font-size: 0.58rem; font-style: normal; font-weight: 750; letter-spacing: 0.05em; white-space: nowrap; }
.v5-library .library-grid > a.is-current { padding-inline: 18px; border-left: 3px solid var(--v6-wine); background: #fffaf1; box-shadow: var(--v6-shadow-soft); }
.v5-library .library-grid > a.is-current .v6-directory-state { color: var(--v6-wine); }
.v5-library .library-grid > a.is-complete .v6-directory-state { color: var(--v6-green); }
.v5-library .library-grid > a.is-locked { opacity: 0.58; }
.v5-library .library-grid .featured-resource { min-height: 175px; color: #f5eee3; background: var(--v6-night); }
.v5-library .library-grid .featured-resource:hover { background: #0c1112; }
.v5-library .featured-resource strong { font-size: clamp(1.7rem, 2.6vw, 2.6rem); }
.v5-library .library-seven { background: var(--v6-night); }
.v5-library .publishing-directory a { min-height: 78px; }
.v5-library .publishing-directory a.v6-directory-item { grid-template-columns: 70px minmax(0, 1fr) auto; }
.v5-library .publishing-directory a.is-current { padding-inline: 14px; border-left: 2px solid #d7b57e; background: rgba(255, 255, 255, 0.045); }
.v5-library .publishing-directory .v6-directory-state { color: rgba(255, 255, 255, 0.5); }
.v5-library .library-reading { background: var(--v6-paper); }
.v5-library .library-epilogue { background: radial-gradient(circle at 50% 15%, rgba(112, 35, 48, 0.36), transparent 29%), var(--v6-night); }

.reading-index .reading-catalog > article { margin-bottom: clamp(110px, 13vw, 175px); }
.reading-index .reading-links { display: block; border-top: 1px solid var(--v6-line); }
.reading-index .reading-links a,
.reading-index .reading-links a:nth-child(2n + 1) {
  display: grid;
  min-height: 92px;
  padding: 20px 4px;
  border: 0;
  border-bottom: 1px solid var(--v6-line);
  align-items: center;
  gap: 26px;
  grid-template-columns: 150px minmax(0, 1fr) 24px;
}
.reading-index .reading-links a::after { color: var(--v6-wine); content: "→"; font: italic 0.9rem Georgia, serif; }
.reading-index .reading-links a:hover { padding-inline: 18px; background: var(--v6-paper); }
.reading-index .reading-links strong { margin: 0; font-size: 1.16rem; }
.reading-index .materials-banner { background: radial-gradient(circle at 15% 12%, rgba(112, 35, 48, 0.4), transparent 30%), var(--v6-night); }

/* Honest cohort state */
.v6-group { background: var(--v6-night); }
.v6-group-state { display: grid; min-height: calc(82svh - 74px); padding: clamp(90px, 11vw, 165px) clamp(24px, 7vw, 115px); align-items: center; gap: clamp(60px, 10vw, 150px); grid-template-columns: minmax(0, 1.12fr) minmax(330px, 0.68fr); background: radial-gradient(circle at 13% 18%, rgba(112, 35, 48, 0.42), transparent 30%), var(--v6-night); }
.v6-group-copy { max-width: 850px; }
.v6-state-chip { display: inline-flex; min-height: 31px; padding: 0 12px; align-items: center; border: 1px solid rgba(213, 174, 115, 0.35); color: #d7b57e; font-size: 0.58rem; font-weight: 800; letter-spacing: 0.08em; }
.v6-group-copy h1 { margin: 27px 0 0; font-family: var(--v6-serif); font-size: clamp(4.5rem, 9vw, 9.5rem); font-weight: 500; letter-spacing: -0.075em; line-height: 0.95; }
.v6-group-copy > p:not(.v4-kicker) { max-width: 610px; margin: 30px 0 35px; color: rgba(255, 255, 255, 0.57); font-family: var(--v6-serif); font-size: 1.05rem; }
.v6-group-mark { position: relative; display: grid; min-height: 460px; padding: 42px; place-items: center; align-content: center; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.025); }
.v6-group-mark::before { position: absolute; inset: 21px; border: 1px solid rgba(255, 255, 255, 0.08); content: ""; }
.v6-group-mark > span { position: relative; z-index: 2; display: grid; width: 145px; height: 145px; place-items: center; border: 1px solid rgba(224, 190, 145, 0.54); border-radius: 50%; color: #e5c18d; background: var(--v6-wine); box-shadow: 0 24px 52px rgba(0, 0, 0, 0.28); font-family: var(--v6-serif); font-size: 2.7rem; }
.v6-group-mark i { width: 1px; height: 58px; margin: 24px 0; background: rgba(224, 190, 145, 0.38); }
.v6-group-mark p { margin: 0; color: rgba(255, 255, 255, 0.42); font-size: 0.57rem; font-weight: 800; letter-spacing: 0.17em; }
.v6-group-links { display: grid; color: var(--v6-ink); background: var(--v6-line); gap: 1px; grid-template-columns: repeat(2, 1fr); }
.v6-group-links a { display: grid; min-height: 210px; padding: clamp(34px, 5vw, 72px); align-content: space-between; grid-template-columns: 1fr auto; background: var(--v6-paper-light); text-decoration: none; transition: color 180ms ease, background 180ms ease; }
.v6-group-links a:hover { color: #fff; background: var(--v6-wine); }
.v6-group-links small { grid-column: 1 / -1; color: var(--v6-gold); font-size: 0.6rem; font-weight: 800; letter-spacing: 0.1em; }
.v6-group-links strong { align-self: end; font-family: var(--v6-serif); font-size: clamp(1.8rem, 3vw, 3rem); font-weight: 500; }
.v6-group-links span { align-self: end; color: var(--v6-wine); }
.v6-group-links a:hover span { color: #e5c18d; }

/* Lesson reading system */
body[data-v5-unit],
body[data-v5-resource] {
  --v4-ink: var(--v6-ink);
  --v4-paper: var(--v6-paper-light);
  --v4-ground: var(--v6-paper);
  --v4-muted: var(--v6-muted);
  --v4-line: var(--v6-line);
  --v4-night: var(--v6-night);
  --v4-gold: var(--v6-gold);
  background: var(--v6-paper);
  visibility: visible !important;
}
body[data-v5-unit="welcome"],
body[data-v5-unit="letter-01"] { --v4-art-background: var(--v6-night-soft); }
@media (min-width: 761px) {
  body[data-v5-unit="welcome"] .lesson-head::before,
  body[data-v5-unit="letter-01"] .lesson-head::before { inset: 30% 3.8% 30% 60.2%; border-width: 11px; }
}
body[data-v6-phase="publishing"] .lesson-head { background: linear-gradient(90deg, #f4e9da 0 57.5%, #35161c 57.5% 100%); }
body[data-v6-phase="publishing"] .lesson-head::before { border-color: #ead9c1; }
body[data-v6-phase="continuation"] .lesson-head { background: linear-gradient(90deg, #18211f 0 57.5%, #e5dac8 57.5% 100%); }
body[data-v6-phase="continuation"] .lesson-head h1 { color: #f7f0e5; }
body[data-v6-phase="continuation"] .lesson-head .eyebrow,
body[data-v6-phase="continuation"] .v6-lesson-marker span { color: #d7b57e; }
body[data-v6-phase="continuation"] .lesson-head .meta,
body[data-v6-phase="continuation"] .v6-lesson-marker b { color: rgba(255, 255, 255, 0.55); }
body[data-v6-phase="continuation"] .v6-lesson-marker i { background: rgba(255, 255, 255, 0.14); }
body[data-v6-phase="continuation"] .v6-lesson-marker i u { background: #d7b57e; }
body[data-v6-phase="continuation"] .lesson-head::after { color: rgba(112, 35, 48, 0.12); }

/* Flagship final course */
.v6-longform-index { padding: clamp(75px, 9vw, 115px) max(24px, calc((100vw - 1280px) / 2)); color: #f5eee3; background: #19221f; }
.v6-longform-index > p { margin: 0 0 34px; color: #d7b57e; font-size: 0.61rem; font-weight: 800; letter-spacing: 0.16em; }
.v6-longform-index ol { display: grid; margin: 0; padding: 0; border-top: 1px solid rgba(255, 255, 255, 0.14); grid-template-columns: repeat(5, 1fr); }
.v6-longform-index a { display: grid; min-height: 155px; padding: 24px 20px; align-content: space-between; border-right: 1px solid rgba(255, 255, 255, 0.14); text-decoration: none; transition: color 180ms ease, background 180ms ease; }
.v6-longform-index a:first-child { border-left: 1px solid rgba(255, 255, 255, 0.14); }
.v6-longform-index a:hover { color: #18211f; background: #f1e4d0; }
.v6-longform-index span { color: #d7b57e; font: italic 0.65rem Georgia, serif; }
.v6-longform-index strong { font-family: var(--v6-serif); font-size: 0.9rem; font-weight: 500; line-height: 1.55; }
body[data-v5-unit="principle-7"] .longform-hero { background: radial-gradient(circle at 17% 14%, rgba(112, 35, 48, 0.4), transparent 31%), #111719; }
body[data-v5-unit="principle-7"] .longform-hero figure { border-color: rgba(255, 255, 255, 0.16); background: rgba(255, 255, 255, 0.025); }
body[data-v5-unit="principle-7"] .longform-header { position: sticky; z-index: 70; top: 0; background: rgba(17, 23, 25, 0.94); backdrop-filter: blur(18px); }
body[data-v5-unit="principle-7"] :is(.longform-hero, .longform-content h2[id], .longform-content h3[id]) { scroll-margin-top: 88px; }
body[data-v5-unit="principle-7"] .longform-content { width: min(850px, calc(100% - 48px)); padding-block: clamp(120px, 14vw, 190px); }
body[data-v5-unit="principle-7"] .longform-content > h2 { position: relative; margin-top: 4.8em; padding-top: 1.25em; border-top: 1px solid var(--v6-line); font-size: clamp(2.65rem, 4.5vw, 4.5rem); letter-spacing: -0.05em; }
body[data-v5-unit="principle-7"] .longform-content > h2::before { position: absolute; top: -0.8em; left: -1.15em; color: rgba(112, 35, 48, 0.12); content: "VII"; font: 400 2.2em/1 Georgia, serif; }
body[data-v5-unit="principle-7"] .longform-content .notion-aside { border-left-width: 2px; background: #f0e3d0; }
body[data-v5-unit].v4-lesson-ready,
body[data-v5-resource].v4-resource-ready { visibility: visible; }
body[data-v5-unit] .topbar,
body[data-v5-resource] .topbar {
  position: sticky;
  z-index: 30;
  top: 0;
  min-height: 72px;
  border-color: var(--v6-line);
  background: rgba(238, 229, 214, 0.9);
}
body[data-v5-unit] .topbar .brand,
body[data-v5-resource] .topbar .brand { letter-spacing: 0.15em; }
.v6-reading-progress { position: fixed; z-index: 80; top: 0; right: 0; left: 0; height: 3px; pointer-events: none; }
.v6-reading-progress i { display: block; width: 0; height: 100%; background: var(--v4-accent, var(--v6-wine)); transition: width 80ms linear; }

body[data-v5-unit] .lesson-head,
body[data-v5-resource] .lesson-head {
  min-height: calc(100svh - 72px);
  padding: clamp(100px, 12vw, 175px) 50% clamp(90px, 10vw, 145px) max(30px, calc((100vw - 1380px) / 2));
  background:
    linear-gradient(90deg, transparent 0 57.5%, rgba(255, 255, 255, 0.035) 57.5% 100%),
    linear-gradient(90deg, #f7efe3 0 57.5%, var(--v6-night) 57.5% 100%);
}
body[data-v5-unit][data-v6-phase="publishing"] .lesson-head {
  background: linear-gradient(90deg, #f4e9da 0 57.5%, #35161c 57.5% 100%);
}
body[data-v5-unit][data-v6-phase="continuation"] .lesson-head {
  background: linear-gradient(90deg, #18211f 0 57.5%, #e5dac8 57.5% 100%);
}
body[data-v5-unit] .lesson-head::before,
body[data-v5-resource] .lesson-head::before {
  inset: 7% 4.2% 7% 61.2%;
  border: 14px solid rgba(244, 236, 224, 0.9);
  outline-color: rgba(255, 255, 255, 0.16);
  box-shadow: 0 34px 82px rgba(0, 0, 0, 0.3);
  filter: saturate(0.82) contrast(0.98);
}
body[data-v5-unit] .lesson-head::after,
body[data-v5-resource] .lesson-head::after {
  top: 8%;
  right: 4.6%;
  bottom: auto;
  width: auto;
  height: auto;
  color: rgba(255, 255, 255, 0.08);
  background: transparent;
  content: attr(data-v6-number);
  font: 400 clamp(6rem, 12vw, 12rem)/1 Georgia, serif;
  letter-spacing: -0.08em;
}
.v6-lesson-marker {
  position: relative;
  z-index: 3;
  display: grid;
  max-width: 610px;
  margin-bottom: 38px;
  align-items: center;
  gap: 11px 18px;
  grid-template-columns: 1fr auto;
}
.v6-lesson-marker span { color: var(--v4-accent); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.14em; }
.v6-lesson-marker b { color: var(--v6-muted); font-size: 0.61rem; font-weight: 700; }
.v6-lesson-marker i { position: relative; grid-column: 1 / -1; height: 1px; overflow: hidden; background: var(--v6-line); }
.v6-lesson-marker i u { position: absolute; inset: 0 auto 0 0; width: var(--v6-unit-progress, 0%); background: var(--v4-accent); text-decoration: none; }
body[data-v5-unit] .lesson-head .eyebrow,
body[data-v5-resource] .lesson-head .eyebrow { margin-bottom: 24px; }
body[data-v5-unit] .lesson-head h1,
body[data-v5-resource] .lesson-head h1 {
  max-width: 740px;
  font-size: clamp(3.35rem, 5.55vw, 6.25rem);
  letter-spacing: -0.065em;
  line-height: 1.06;
}
body[data-v5-unit] .lesson-head .meta,
body[data-v5-resource] .lesson-head .meta { max-width: 610px; margin-top: 32px; font-size: 0.96rem; line-height: 1.95; }

body[data-v5-unit] .content,
body[data-v5-resource] .content {
  width: min(920px, calc(100% - 48px));
  padding: clamp(115px, 14vw, 190px) 0;
  color: #403931;
  font-size: 1.06rem;
  line-height: 2.08;
}
body[data-v5-unit] .content > p,
body[data-v5-resource] .content > p,
body[data-v5-unit] .content > ul,
body[data-v5-resource] .content > ul,
body[data-v5-unit] .content > ol,
body[data-v5-resource] .content > ol,
body[data-v5-unit] .content > blockquote,
body[data-v5-resource] .content > blockquote { max-width: 760px; }
.v6-answer-lines { display: grid; max-width: 760px; margin: 20px 0 38px; gap: 25px; }
.v6-answer-lines i { display: block; height: 1px; background: rgba(112, 35, 48, 0.24); }
body[data-v5-unit] .content h2,
body[data-v5-resource] .content h2 {
  position: relative;
  max-width: 820px;
  margin-top: 4.6em;
  padding-top: 1.2em;
  font-size: clamp(2.25rem, 3.55vw, 3.35rem);
  letter-spacing: -0.04em;
  line-height: 1.36;
}
body[data-v5-unit] .content h2::before,
body[data-v5-resource] .content h2::before { position: absolute; top: 0; left: 0; width: 72px; height: 2px; background: var(--v4-accent); content: ""; }
body[data-v5-unit] .content h3,
body[data-v5-resource] .content h3 { margin-top: 3.2em; font-size: clamp(1.45rem, 2.2vw, 1.9rem); }
body[data-v5-unit] .content blockquote,
body[data-v5-resource] .content blockquote { padding: 32px 38px; border-left-width: 2px; background: #f1e6d4; }
body[data-v5-unit] .content img,
body[data-v5-resource] .content img { margin-top: 48px; margin-bottom: 48px; box-shadow: 0 24px 62px rgba(52, 36, 24, 0.13); }
body[data-v5-unit] .note,
body[data-v5-resource] .note,
body[data-v5-unit] .daily-task,
body[data-v5-resource] .daily-task,
body[data-v5-unit] .reference-reading,
body[data-v5-resource] .reference-reading,
body[data-v5-unit] .lesson-toc,
body[data-v5-resource] .lesson-toc,
body[data-v5-unit] .toc-section,
body[data-v5-resource] .toc-section,
body[data-v5-unit] .reference-group,
body[data-v5-resource] .reference-group,
body[data-v5-unit] .reading-list,
body[data-v5-resource] .reading-list,
body[data-v5-unit] .reference-links,
body[data-v5-resource] .reference-links,
body[data-v5-unit] .edit-flow,
body[data-v5-resource] .edit-flow { padding: clamp(30px, 4vw, 48px) !important; border-left-width: 2px !important; background: #f1e6d4 !important; }

.v5-completion {
  position: relative;
  min-height: 82svh;
  padding: clamp(120px, 15vw, 195px) 24px;
  overflow: hidden;
  color: #f7f0e5;
  border-color: var(--v6-light-line);
  background:
    radial-gradient(circle at 50% 37%, color-mix(in srgb, var(--v4-accent, var(--v6-wine)) 36%, transparent), transparent 28%),
    var(--v6-night);
}
.v5-completion::before { position: absolute; inset: 8%; border: 1px solid var(--v6-light-line); content: ""; pointer-events: none; }
.v6-completion-seal { position: relative; display: grid; width: 72px; height: 72px; margin: 0 auto 32px; place-items: center; border: 1px solid rgba(229, 193, 140, 0.5); border-radius: 50%; color: #e5c18c; background: var(--v4-accent, var(--v6-wine)); box-shadow: 0 13px 28px rgba(0, 0, 0, 0.22); font-family: var(--v6-serif); }
.v5-completion-kicker { position: relative; color: #dab67e; }
.v5-completion h2 { position: relative; color: #fff8ed; }
.v5-response-box { position: relative; margin-top: 34px; border-color: rgba(255, 255, 255, 0.17); color: #f4ecdf; background: rgba(255, 255, 255, 0.045); }
.v5-response-box label small { color: #dab67e; }
.v5-response-box button { background: #f3e7d4; color: var(--v6-ink); }
.v5-completion.is-done .v5-response-box { border-color: rgba(92, 139, 115, 0.55); }
.v5-completion.is-done .v5-response-box button { color: #fff; background: var(--v6-green); }
.v5-arrival-copy { position: relative; color: rgba(255, 255, 255, 0.59); }
.v5-completion-nav { position: relative; }
.v5-completion-nav a { color: rgba(255, 255, 255, 0.56); }
.v5-resource-return { background: var(--v6-night); }

.v6-mobile-dock { display: none; }

@media (max-width: 1160px) {
  .v6-hero { grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr); }
  .v6-letter-matte { min-height: 590px; }
  .v6-current-stage { grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr); }
  .v6-current-frame { min-height: 590px; }
  .v6-publishing-folio .journey-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .v6-publishing-folio .journey-envelope:nth-child(even) { transform: none; }
}

@media (max-width: 980px) {
  .v6-hero,
  .v6-arrival,
  .v6-current-stage { grid-template-columns: 1fr; }
  .v6-hero { min-height: auto; gap: 92px; }
  .v6-hero-copy { max-width: 800px; }
  .v6-letter-portrait { width: min(90vw, 760px); }
  .v6-letter-matte { min-height: min(74vw, 650px); }
  .v6-manifesto { grid-template-columns: 45px minmax(0, 1fr); }
  .v6-manifesto-copy { grid-column: 2; padding-top: 0; }
  .v6-arrival { min-height: 0; }
  .v6-arrival-object { min-height: 720px; border-right: 0; border-bottom: 1px solid var(--v6-light-line); }
  .v6-journey-heading { grid-template-columns: 44px minmax(0, 1fr); }
  .v6-journey-heading > p { grid-column: 2; }
  .v6-journey-line { grid-template-columns: repeat(2, 1fr); }
  .v6-journey-line article:nth-child(3) { border-top: 1px solid var(--v6-line); }
  .v6-journey-line article:nth-child(4) { border-top: 1px solid var(--v6-line); border-right: 1px solid var(--v6-line); }
  .v6-current-stage { padding-top: 100px; }
  .v6-current-art { width: min(90vw, 760px); }
  .v6-current-frame { min-height: min(75vw, 650px); }
  .v6-roadmap .path-phase { grid-template-columns: minmax(230px, 0.65fr) minmax(380px, 1.35fr); }
  .v5-library .library-grid > a { grid-template-columns: 110px minmax(240px, 0.85fr) minmax(240px, 1.15fr); }
  .v5-library .library-grid b { grid-column: 2; }
  .v6-group-state { grid-template-columns: 1fr; }
  .v6-group-mark { width: min(100%, 650px); min-height: 390px; }
  .v6-longform-index ol { grid-template-columns: repeat(3, 1fr); }
  .v6-longform-index a { border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
  body[data-v5-unit] .lesson-head,
  body[data-v5-resource] .lesson-head { padding-right: 49%; }
}

@media (max-width: 760px) {
  .v6-header,
  .v6-portal-header { min-height: 64px; }
  .v6-header nav a,
  .v6-portal-header nav a { display: inline-flex; min-height: 44px; align-items: center; }
  .v6-header .header-enter { min-height: 44px; }
  .v6-header nav > a:first-child,
  .v6-portal-header nav > a:first-child { display: none; }
  .v6-hero { padding: 76px 22px 96px; gap: 72px; }
  .v6-hero-title > span { margin-top: 7px; }
  .v6-hero h1 { font-size: clamp(4.7rem, 24vw, 6.5rem); }
  .v6-hero-promise { margin: 34px 0 0 25px; font-size: clamp(2.25rem, 10.5vw, 3.3rem); }
  .v6-hero-lead,
  .v6-hero-actions,
  .v6-sequence { margin-left: 25px; }
  .v6-sequence { display: grid; max-width: 290px; align-items: center; gap: 7px 12px; grid-template-columns: auto 1fr; white-space: normal; }
  .v6-sequence i { width: 100%; }
  .v6-letter-portrait { width: 100%; }
  .v6-letter-matte { min-height: 480px; padding: 38px 23px; }
  .v6-letter-matte::before { inset: 14px; }
  .v6-letter-shadow { right: -3%; left: -3%; }
  .v6-letter-sheet { width: 124%; padding: 10px; }
  .v6-postmark { right: 6%; bottom: 6%; width: 82px; height: 82px; }
  .v6-postmark b { font-size: 1.25rem; }
  .v6-postmark span { font-size: 0.38rem; }
  .v6-seal-rail { top: 24px; left: 22px; gap: 4px; }
  .v6-seal-rail li { width: 22px; height: 22px; }
  .v6-letter-portrait figcaption { gap: 7px; flex-direction: column; }
  .v6-manifesto { padding: 105px 22px; gap: 20px; grid-template-columns: 1fr; }
  .v6-manifesto-copy { grid-column: auto; padding-top: 20px; }
  .v6-manifesto h2,
  .v6-arrival h2,
  .v6-journey h2,
  .v6-closing h2 { font-size: clamp(2.65rem, 13vw, 4rem); }
  .v6-arrival-object { min-height: 600px; padding: 54px 27px; }
  .v6-arrival-object::before { inset: 24px; }
  .v6-arrival-number { gap: 15px; }
  .v6-arrival-number strong { font-size: clamp(8rem, 43vw, 11rem); }
  .v6-arrival-copy { padding: 95px 22px; }
  .v6-journey { padding: 105px 22px; }
  .v6-journey-heading { margin-bottom: 58px; gap: 18px; grid-template-columns: 1fr; }
  .v6-journey-heading > p { grid-column: auto; }
  .v6-journey-line { grid-template-columns: 1fr; }
  .v6-journey-line article { min-height: 290px; border-right: 1px solid var(--v6-line); border-top: 1px solid var(--v6-line); }
  .v6-journey-line article:first-child { border-top: 0; }
  .v6-journey-line h3 { padding-top: 70px; }
  .v6-enter-course { min-height: 112px; padding-inline: 14px; grid-template-columns: 1fr 28px; }
  .v6-enter-course > b { display: none; }
  .v6-enter-course:hover { padding-inline: 20px; }
  .v6-closing::before { inset: 22px; }
  .v6-course-position { min-height: 52px; padding: 10px 20px; align-items: flex-start; gap: 7px; flex-direction: column; }
  .v6-course-position p { gap: 7px; flex-wrap: wrap; }
  .v6-course-position p i { width: 10px; }
  .v6-current-stage { min-height: auto; padding: 82px 22px 100px; gap: 76px; }
  .v6-current-count { top: -34px; }
  .v6-current-count > span { font-size: 8rem; }
  .v6-current-copy h1 { font-size: clamp(3.25rem, 15vw, 4.7rem); }
  .v6-current-copy h1.is-short-title { font-size: clamp(3.25rem, 15vw, 4.7rem); }
  .v6-current-art { width: 100%; }
  .v6-current-frame { min-height: 470px; padding: 34px 21px; }
  .v6-current-frame::before { inset: 14px; }
  .v6-current-sheet { width: 124%; padding: 9px; }
  .v6-current-stamp { right: 5%; bottom: 5%; width: 82px; height: 82px; }
  .v6-roadmap { padding: 100px 20px; }
  .v6-roadmap-heading { margin-bottom: 55px; }
  .v6-roadmap .path-phase { display: block; }
  .v6-roadmap .path-phase > header { min-height: 0; padding: 30px 0; border-right: 0; grid-template-columns: 34px 1fr auto; }
  .v6-roadmap .path-phase > header::before { display: none; }
  .v6-roadmap .phase-description { margin: -8px 0 26px 34px; }
  .v6-roadmap .path-phase ol { margin: 0; padding: 0 0 25px 34px; }
  .v6-phase-preview { grid-column: auto; grid-row: auto; padding: 0 0 28px 34px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v6-roadmap .path-phase li { grid-template-columns: 35px minmax(0, 1fr); }
  .v6-roadmap .path-phase li small { grid-column: 2; }
  .v6-epilogue-stop { min-height: 150px; padding: 30px 24px; gap: 15px; grid-template-columns: 48px minmax(0, 1fr); }
  .v6-epilogue-stop > span { width: 40px; height: 40px; }
  .v6-epilogue-stop div { grid-template-columns: 1fr; }
  .v6-epilogue-stop h3 { font-size: 1.55rem; }
  .v6-publishing-folio .journey-list { padding: 42px 20px 95px; grid-template-columns: 1fr; }
  .v6-publishing-folio .journey-envelope { min-height: 270px; }
  .v6-supplements { padding: 95px 22px; }
  .v5-library .library-grid > a { min-height: 0; padding: 28px 4px; grid-template-columns: 1fr; }
  .v5-library .library-hero,
  .reading-index .library-hero { min-height: auto; padding: 82px 22px 72px; gap: 34px; }
  .v5-library .library-hero h1,
  .reading-index .library-hero h1 { font-size: clamp(3.75rem, 18vw, 5rem); }
  .v5-library .library-hero > p,
  .reading-index .library-hero > p { font-size: 0.95rem; line-height: 1.8; }
  .v5-library .library-grid b { grid-column: auto; }
  .reading-index .reading-links a,
  .reading-index .reading-links a:nth-child(2n + 1) { min-height: 105px; padding: 22px 4px; grid-template-columns: 1fr 24px; }
  .reading-index .reading-links small { grid-column: 1; }
  .reading-index .reading-links strong { grid-column: 1; }
  .reading-index .reading-links a::after { grid-column: 2; grid-row: 1 / span 2; }
  .v6-group-state { min-height: auto; padding: 95px 22px; }
  .v6-group-copy h1 { font-size: clamp(4rem, 21vw, 5.8rem); }
  .v6-group-mark { min-height: 330px; padding: 28px; }
  .v6-group-mark > span { width: 112px; height: 112px; font-size: 2.1rem; }
  .v6-group-links { grid-template-columns: 1fr; }
  .v6-group-links a { min-height: 170px; }
  .v6-longform-index { padding: 75px 20px; }
  .v6-longform-index ol { grid-template-columns: 1fr; }
  .v6-longform-index a,
  .v6-longform-index a:first-child { min-height: 92px; padding: 18px 14px; align-items: center; border-left: 1px solid rgba(255, 255, 255, 0.14); grid-template-columns: 40px 1fr; }
  body[data-v6-phase="publishing"] .lesson-head { background: linear-gradient(#35161c 0 49vh, #f4e9da 49vh); }
  body[data-v6-phase="continuation"] .lesson-head { background: linear-gradient(#e5dac8 0 49vh, #18211f 49vh); }
  body[data-v6-phase="continuation"] .lesson-head::before { border-color: #17201e; }
  body[data-v5-unit="principle-7"] .longform-content > h2 { font-size: 2.35rem; }
  body[data-v5-unit="principle-7"] .longform-content > h2::before { left: -0.25em; }
  body[data-v5-unit],
  body[data-v5-resource] { padding-bottom: 78px; font-size: 17px; }
  body[data-v5-unit] .topbar,
  body[data-v5-resource] .topbar { min-height: 62px; }
  body[data-v5-unit] .topbar .nav a:first-child,
  body[data-v5-resource] .topbar .nav a:first-child { display: none; }
  body[data-v5-unit] .lesson-head,
  body[data-v5-resource] .lesson-head {
    min-height: auto;
    padding: 56vh 22px 82px;
    background: linear-gradient(#111719 0 49vh, #f7efe3 49vh);
  }
  body[data-v5-unit][data-v6-phase="publishing"] .lesson-head {
    background: linear-gradient(#35161c 0 49vh, #f4e9da 49vh);
  }
  body[data-v5-unit][data-v6-phase="continuation"] .lesson-head {
    background: linear-gradient(#e5dac8 0 49vh, #18211f 49vh);
  }
  body[data-v5-unit] .lesson-head::before,
  body[data-v5-resource] .lesson-head::before { inset: 23px 20px auto; height: 44vh; border-width: 9px; }
  body[data-v5-unit] .lesson-head::after,
  body[data-v5-resource] .lesson-head::after { top: 29px; right: 24px; font-size: 6.5rem; }
  .v6-lesson-marker { margin-bottom: 30px; }
  body[data-v5-unit] .lesson-head h1,
  body[data-v5-resource] .lesson-head h1 { font-size: clamp(2.85rem, 13vw, 4.3rem); }
  body[data-v5-unit] .lesson-head h1.is-v6-long-title,
  body[data-v5-resource] .lesson-head h1.is-v6-long-title {
    font-size: clamp(2.5rem, 10.7vw, 3.45rem);
    line-height: 1.08;
  }
  body[data-v5-unit] .content,
  body[data-v5-resource] .content { width: calc(100% - 38px); padding: 100px 0; font-size: 1rem; }
  body[data-v5-unit] .content h2,
  body[data-v5-resource] .content h2 { margin-top: 3.7em; font-size: 2rem; }
  body[data-v5-unit] .content blockquote,
  body[data-v5-resource] .content blockquote { padding: 26px 22px; }
  .v5-completion { min-height: 0; padding: 110px 19px; }
  .v5-completion::before { inset: 20px; }
  .v6-mobile-dock {
    position: fixed;
    z-index: 70;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    min-height: 78px;
    padding: 12px 16px;
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, 0.13);
    grid-template-columns: minmax(0, 1fr) auto;
    color: #f6efe4;
    background: rgba(17, 23, 25, 0.96);
    backdrop-filter: blur(18px);
  }
  .v6-mobile-dock span { display: grid; min-width: 0; gap: 2px; }
  .v6-mobile-dock small { color: #d6b47e; font-size: 0.54rem; font-weight: 800; letter-spacing: 0.09em; }
  .v6-mobile-dock b { overflow: hidden; font-family: var(--v6-serif); font-size: 0.84rem; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
  .v6-mobile-dock a { display: inline-flex; min-height: 44px; padding: 0 16px; align-items: center; color: var(--v6-ink); background: #f1e4d0; font-size: 0.68rem; font-weight: 750; text-decoration: none; white-space: nowrap; }
}

@media (max-width: 390px) {
  .v6-header nav,
  .v6-portal-header nav { gap: 10px; }
  .v6-header nav a,
  .v6-portal-header nav a { font-size: 0.66rem; }
  .v6-header .header-enter { padding-inline: 10px; }
  .v6-hero-promise,
  .v6-hero-lead,
  .v6-hero-actions,
  .v6-sequence { margin-left: 0; }
  .v6-letter-matte,
  .v6-current-frame { min-height: 420px; }
  .v6-current-copy h1 { font-size: 3.2rem; }
}

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


/* /assets/v7.css */
/*
 * Seven Letters V7 refinement layer
 * Product states, postal route, unit art direction, accessibility and motion.
 */

:root {
  --v7-focus: #7a4e13;
  --v7-gold-ink: #765427;
  --v7-green-ink: #315343;
  --v7-radius-sm: 2px;
  --v7-radius-round: 999px;
}

html { min-width:0; scroll-padding-top:86px; }
body { min-width:0; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }

.v7-skip-link {
  position: fixed;
  z-index: 999;
  top: 12px;
  left: 12px;
  padding: 12px 18px;
  color: #fff;
  background: #151513;
  font: 700 0.78rem/1.2 var(--v6-sans, sans-serif);
  text-decoration: none;
  transform: translateY(-180%);
  transition: transform 160ms ease;
}
.v7-skip-link:focus { transform: translateY(0); }

:where(.v6-home, .v6-course) :where(a, button):focus-visible,
body[data-v5-unit] :where(a, button, input):focus-visible,
body[data-v5-resource] :where(a, button, input):focus-visible {
  outline-color: var(--v7-focus);
  outline-width: 3px;
}
.v6-current-stage :where(a,button):focus-visible,
.v7-postal-overview :where(a,button):focus-visible,
.v5-completion :where(a,button,input):focus-visible,
.v6-mobile-dock :where(a,button):focus-visible,
.v6-portal-header :where(a,button):focus-visible,
.longform-header :where(a,button):focus-visible,
.dark-footer :where(a,button):focus-visible { outline-color:#f0ce99; }

/* Public invitation: a useful return state, not only a campaign hero. */
.v7-home-status {
  display: grid;
  max-width: 610px;
  margin: 30px 0 0 33px;
  padding: 18px 20px 17px;
  border: 1px solid rgba(74, 54, 38, 0.19);
  gap: 4px 14px;
  grid-template-columns: minmax(0, 1fr) auto;
  background: rgba(255, 250, 241, 0.5);
  box-shadow: 0 12px 30px rgba(56, 38, 24, 0.06);
}
.v7-home-status > span {
  color: var(--v6-wine);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.1em;
}
.v7-home-status > strong {
  grid-column: 1;
  font-family: var(--v6-serif);
  font-size: 1.08rem;
  font-weight: 500;
}
.v7-home-status > small {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  color: #5c5146;
  font-size: 0.7rem;
}
.v7-home-status > i {
  position: relative;
  display: block;
  grid-column: 1 / -1;
  height: 2px;
  margin-top: 10px;
  overflow: hidden;
  background: rgba(70, 52, 39, 0.13);
}
.v7-home-status > i b {
  display: block;
  width: 0;
  height: 100%;
  background: var(--v6-wine);
  transition: width 500ms cubic-bezier(.2,.8,.2,1);
}
.v7-home-status[data-state="waiting"] { border-left: 3px solid var(--v7-gold-ink); }
.v7-home-status[data-state="arrived"] {
  border-color: rgba(112, 35, 48, 0.35);
  background: rgba(255, 249, 238, 0.82);
  animation: v7-arrival-rise 560ms cubic-bezier(.2,.8,.2,1) both;
}
.v7-home-status[data-state="finished"] { border-left: 3px solid var(--v7-green-ink); }
.v6-sequence { max-width: 720px; white-space: normal; }
.v6-sequence span { line-height: 1.35; }

/* Course cockpit themes: each unit carries its own material and colour memory. */
[data-learning-portal] {
  --v7-unit-accent: #a64455;
  --v7-unit-bright: #e1bd86;
  --v7-unit-deep: #111719;
  --v7-unit-glow: rgba(112, 35, 48, 0.38);
}
[data-learning-portal][data-v7-theme="charcoal"] { --v7-unit-accent:#726a60; --v7-unit-bright:#ded1bc; --v7-unit-deep:#161717; --v7-unit-glow:rgba(118,105,88,.3); }
[data-learning-portal][data-v7-theme="midnight"] { --v7-unit-accent:#667da0; --v7-unit-bright:#c4d0e0; --v7-unit-deep:#101722; --v7-unit-glow:rgba(75,104,148,.35); }
[data-learning-portal][data-v7-theme="violet"] { --v7-unit-accent:#76548b; --v7-unit-bright:#d8bce1; --v7-unit-deep:#18131f; --v7-unit-glow:rgba(111,68,132,.36); }
[data-learning-portal][data-v7-theme="ochre"] { --v7-unit-accent:#a56a2c; --v7-unit-bright:#e5c38f; --v7-unit-deep:#1e1811; --v7-unit-glow:rgba(163,104,43,.35); }
[data-learning-portal][data-v7-theme="blueprint"] { --v7-unit-accent:#587792; --v7-unit-bright:#c3d6e0; --v7-unit-deep:#101a22; --v7-unit-glow:rgba(63,103,135,.36); }
[data-learning-portal][data-v7-theme="plum"] { --v7-unit-accent:#874462; --v7-unit-bright:#e1b5c7; --v7-unit-deep:#21121a; --v7-unit-glow:rgba(135,68,98,.36); }
[data-learning-portal][data-v7-theme="newspaper"] { --v7-unit-accent:#88775f; --v7-unit-bright:#ddd0bc; --v7-unit-deep:#191714; --v7-unit-glow:rgba(126,107,80,.3); }
[data-learning-portal][data-v7-theme="moss"] { --v7-unit-accent:#617157; --v7-unit-bright:#ced5b8; --v7-unit-deep:#151b14; --v7-unit-glow:rgba(81,109,67,.36); }
[data-learning-portal][data-v7-theme="gold"] { --v7-unit-accent:#9a7130; --v7-unit-bright:#e5c681; --v7-unit-deep:#1b1710; --v7-unit-glow:rgba(159,114,45,.36); }
[data-learning-portal][data-v7-theme="blue"] { --v7-unit-accent:#547c8f; --v7-unit-bright:#bfd8dd; --v7-unit-deep:#10191d; --v7-unit-glow:rgba(70,121,143,.34); }
[data-learning-portal][data-v7-theme="garden"] { --v7-unit-accent:#6e7754; --v7-unit-bright:#d1d8af; --v7-unit-deep:#161b12; --v7-unit-glow:rgba(91,119,67,.34); }
[data-learning-portal][data-v7-theme="green"] { --v7-unit-accent:#426c5b; --v7-unit-bright:#b9d2c1; --v7-unit-deep:#101c18; --v7-unit-glow:rgba(59,112,88,.36); }

.v6-current-stage {
  background:
    linear-gradient(90deg, transparent 0 50%, rgba(255,255,255,.025) 50%),
    radial-gradient(circle at 14% 17%, var(--v7-unit-glow), transparent 31%),
    var(--v7-unit-deep);
  transition: background 420ms ease;
}
.v6-current-copy .current-subtitle { color: var(--v7-unit-bright); }
.v6-current-copy .current-summary { color: rgba(255,255,255,.7); }
.v6-current-copy .wait-message { border-left-color: var(--v7-unit-bright); }
.v6-current-copy,
.v6-current-art { min-width:0; }
.v6-current-frame {
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 100% 25%,
    color-mix(in srgb, var(--v7-unit-deep) 84%, #374042);
}
.v6-current-sheet { width: min(110%, 680px); background: #e8e1d5; }
.v6-current-sheet img { display:block; height:clamp(280px, 36vw, 430px); max-height:none; object-fit:cover; background:#d8d1c5; }
[data-learning-portal]:is([data-current-unit="principle-1"],[data-current-unit="principle-2"],[data-current-unit="principle-4"],[data-current-unit="publishing-plan"],[data-current-unit="letter-02"],[data-current-unit="letter-04"],[data-current-unit="letter-06"],[data-current-unit="letter-07"],[data-current-unit="principle-6"],[data-current-unit="principle-7"]) .v6-current-sheet img { object-fit:contain; }
.v6-current-stamp { border-color: color-mix(in srgb, var(--v7-unit-bright) 74%, transparent); color:var(--v7-unit-bright); background:var(--v7-unit-accent); }
.v6-current-registration i { border-color: color-mix(in srgb, var(--v7-unit-bright) 52%, transparent); }
.v6-current-registration i:first-child { background:var(--v7-unit-accent); }
[data-learning-portal][data-journey-state="arrived"] .v6-current-stamp { animation:v7-stamp 620ms cubic-bezier(.17,.84,.3,1.28) both; }
[data-learning-portal][data-journey-state="arrived"] .arrival-button { animation:v7-arrival-rise 520ms 90ms cubic-bezier(.2,.8,.2,1) both; }

/* The 16-step postal route is the course's primary spatial memory. */
.v7-postal-overview {
  padding: clamp(86px, 10vw, 140px) clamp(24px, 6.5vw, 106px) clamp(78px, 9vw, 120px);
  color:#efe7da;
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 12.5% 100%,
    radial-gradient(circle at 82% 3%, rgba(112,35,48,.38), transparent 29%),
    #171d1e;
}
.v7-postal-overview > header {
  display:flex;
  max-width:1320px;
  margin:0 auto clamp(54px, 6vw, 82px);
  align-items:end;
  justify-content:space-between;
  gap:30px;
}
.v7-postal-overview h2 { margin:8px 0 0; color:#fff8ed; font-family:var(--v6-serif); font-size:clamp(2.8rem,5vw,5.2rem); font-weight:500; letter-spacing:-.055em; }
.v7-postal-overview > header > p { max-width:360px; margin:0 0 9px; color:rgba(255,255,255,.7); font-size:.86rem; line-height:1.7; text-align:right; }
.v7-postal-route {
  position:relative;
  display:grid;
  max-width:1320px;
  margin:0 auto;
  gap:1px;
  grid-template-columns:repeat(16,minmax(38px,1fr));
}
.v7-postal-route::before { position:absolute; top:38px; right:3.1%; left:3.1%; height:1px; background:rgba(255,255,255,.2); content:""; }
.v7-route-node {
  position:relative;
  z-index:2;
  display:grid;
  min-width:0;
  justify-items:center;
  color:rgba(255,255,255,.42);
  text-align:center;
  text-decoration:none;
}
.v7-route-node > i {
  display:grid;
  width:76px;
  max-width:calc(100% - 7px);
  aspect-ratio:1;
  place-items:center;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
  background:#171d1e;
  font:italic .65rem/1 Georgia,serif;
  transition:transform 180ms ease,background 180ms ease,border-color 180ms ease;
}
.v7-route-node > small { margin-top:14px; font-size:.7rem; font-weight:750; line-height:1.45; letter-spacing:.02em; }
.v7-route-node.is-complete { color:#bcd3c4; }
.v7-route-node.is-complete > i { border-color:#6f9b82; background:#315343; }
.v7-route-node.is-current { color:#f0ce99; }
.v7-route-node.is-current > i { border-color:#e2bc80; color:#171d1e; background:#e0ba7e; box-shadow:0 0 0 7px rgba(224,186,126,.12); }
.v7-route-node.is-waiting > i { background:#765427; }
.v7-route-node.is-arrived > i { background:#702330; animation:v7-stamp 620ms cubic-bezier(.17,.84,.3,1.28) both; }
.v7-route-node[href]:hover > i { transform:translateY(-4px); }
.v7-route-node.is-locked { color:rgba(255,255,255,.54); }
.v7-route-node.is-locked > i { opacity:.66; }
.v7-route-legend { display:flex; max-width:1320px; margin:42px auto 0; justify-content:flex-end; gap:22px; color:rgba(255,255,255,.62); font-size:.72rem; }
.v7-route-legend span { display:flex; align-items:center; gap:7px; }
.v7-route-legend i { display:block; width:8px; height:8px; border:1px solid rgba(255,255,255,.34); border-radius:50%; }
.v7-route-legend i.is-complete { background:#315343; }
.v7-route-legend i.is-current { background:#e0ba7e; }

/* Detailed roadmap remains the readable reference beneath the spatial route. */
.v6-roadmap .path-phase li.is-current.is-waiting { color:var(--v7-gold-ink); }
.v6-roadmap .path-phase li.is-current.is-arrived { color:var(--v6-wine); box-shadow:0 18px 45px rgba(68,42,24,.14); }
.v6-roadmap .path-phase li > span,
.v6-phase-preview i,
.v6-roadmap .path-phase > header p { color:var(--v7-gold-ink); }
.v6-roadmap .path-phase li small,
.v6-unit-copy em { font-size:.65rem; }
.v6-phase-toggle { min-width:44px; min-height:44px; }

/* Lesson art direction. JS assigns one of these themes to the body. */
body[data-v5-unit] {
  --v7-lesson-accent:#702330;
  --v7-lesson-deep:#111719;
  --v7-lesson-pale:#f7efe3;
  --v7-lesson-glow:rgba(112,35,48,.14);
  --v4-accent:var(--v7-lesson-accent);
}
body[data-v7-theme="charcoal"] { --v7-lesson-accent:#635b51; --v7-lesson-deep:#161717; --v7-lesson-pale:#efe8de; --v7-lesson-glow:rgba(80,70,60,.14); }
body[data-v7-theme="midnight"] { --v7-lesson-accent:#45668b; --v7-lesson-deep:#101722; --v7-lesson-pale:#edf1f5; --v7-lesson-glow:rgba(58,87,122,.16); }
body[data-v7-theme="violet"] { --v7-lesson-accent:#6a487e; --v7-lesson-deep:#18131f; --v7-lesson-pale:#f2eaf3; --v7-lesson-glow:rgba(102,66,123,.16); }
body[data-v7-theme="ochre"] { --v7-lesson-accent:#8b581f; --v7-lesson-deep:#1e1811; --v7-lesson-pale:#f5ead7; --v7-lesson-glow:rgba(145,91,31,.16); }
body[data-v7-theme="blueprint"] { --v7-lesson-accent:#426783; --v7-lesson-deep:#101a22; --v7-lesson-pale:#e8f0f4; --v7-lesson-glow:rgba(57,96,126,.16); }
body[data-v7-theme="plum"] { --v7-lesson-accent:#7a3957; --v7-lesson-deep:#21121a; --v7-lesson-pale:#f5e8ed; --v7-lesson-glow:rgba(128,56,89,.16); }
body[data-v7-theme="newspaper"] { --v7-lesson-accent:#685941; --v7-lesson-deep:#191714; --v7-lesson-pale:#f2ede5; --v7-lesson-glow:rgba(106,90,63,.14); }
body[data-v7-theme="moss"] { --v7-lesson-accent:#516246; --v7-lesson-deep:#151b14; --v7-lesson-pale:#edf0e5; --v7-lesson-glow:rgba(74,98,62,.16); }
body[data-v7-theme="gold"] { --v7-lesson-accent:#765427; --v7-lesson-deep:#1b1710; --v7-lesson-pale:#f6edd8; --v7-lesson-glow:rgba(142,99,34,.16); }
body[data-v7-theme="blue"] { --v7-lesson-accent:#3f6c80; --v7-lesson-deep:#10191d; --v7-lesson-pale:#e7f0f1; --v7-lesson-glow:rgba(55,107,130,.16); }
body[data-v7-theme="garden"] { --v7-lesson-accent:#596644; --v7-lesson-deep:#161b12; --v7-lesson-pale:#eef0e2; --v7-lesson-glow:rgba(77,103,58,.16); }
body[data-v7-theme="green"] { --v7-lesson-accent:#315d4b; --v7-lesson-deep:#101c18; --v7-lesson-pale:#e7f0ea; --v7-lesson-glow:rgba(44,99,73,.16); }

body[data-v5-unit][data-v7-theme] .lesson-head {
  background:
    radial-gradient(circle at 12% 18%, var(--v7-lesson-glow), transparent 30%),
    linear-gradient(90deg,var(--v7-lesson-pale) 0 57.5%,var(--v7-lesson-deep) 57.5% 100%);
}
body[data-v5-unit][data-v7-theme] .lesson-head::before { border-color:color-mix(in srgb,var(--v7-lesson-pale) 88%,transparent); background-color:color-mix(in srgb,var(--v7-lesson-deep) 80%,#39312a); background-size:contain; background-repeat:no-repeat; background-position:center; }
body[data-v5-unit][data-v7-unit]:not(:is([data-v7-unit="principle-1"],[data-v7-unit="principle-2"],[data-v7-unit="principle-4"],[data-v7-unit="publishing-plan"],[data-v7-unit="letter-02"],[data-v7-unit="letter-04"],[data-v7-unit="letter-06"],[data-v7-unit="letter-07"],[data-v7-unit="principle-6"],[data-v7-unit="principle-7"])) .lesson-head::before { background-size:cover; }
body[data-v5-unit][data-v7-unit="letter-05"] .lesson-head::before { background-size:contain; }
body[data-v5-unit="principle-7"] .longform-hero img { object-fit:contain; background:#e9e1cc; }
body[data-v5-unit][data-v7-theme] .lesson-head::after { color:color-mix(in srgb,var(--v7-lesson-accent) 13%,transparent); }
body[data-v5-unit][data-v7-theme] .lesson-head h1 { color:#1a1916; }
body[data-v5-unit][data-v7-theme] .lesson-head .meta { color:#514b44; }
body[data-v5-resource="epilogue"] { --v4-accent:#765427; --v7-lesson-accent:#765427; --v7-lesson-deep:#1b1710; --v7-lesson-pale:#f6edd8; }
body[data-v5-resource="epilogue"] .lesson-head { background:linear-gradient(90deg,var(--v7-lesson-pale) 0 57.5%,var(--v7-lesson-deep) 57.5% 100%); }
body[data-v5-resource="epilogue"] .lesson-head::before { border-color:#eee0c2; background-color:#1b1710; background-size:contain; background-repeat:no-repeat; background-position:center; }
body[data-v5-resource="epilogue"] .lesson-head::after { color:rgba(118,84,39,.13); }
.v6-closing h1 { position:relative; margin:0; font-family:var(--v6-serif); font-size:clamp(3rem,5.3vw,6rem); font-weight:500; letter-spacing:-.06em; line-height:1.12; }
.v6-closing > p:not(.v4-kicker) { position:relative; margin:22px 0 0; color:#625a51; }
.v6-closing .v6-hero-actions { position:relative; margin-top:38px; }
body[data-v5-unit] .content { font-size:1.08rem; }
body[data-v5-unit] .content > p { text-wrap:pretty; }
.v7-historical-case { max-width:820px; margin:64px 0; padding:clamp(28px,4vw,48px) !important; border:1px solid color-mix(in srgb,var(--v7-lesson-accent) 38%,transparent) !important; border-left:4px solid var(--v7-lesson-accent) !important; background:color-mix(in srgb,var(--v7-lesson-pale) 72%,#eadcca) !important; }
.v7-historical-case > header { margin:0 0 34px; padding:0 0 26px; border-bottom:1px solid rgba(45,35,27,.16); }
.v7-historical-case > header span { color:var(--v7-lesson-accent); font-size:.68rem; font-weight:800; letter-spacing:.14em; }
.v7-historical-case > header h3 { margin:8px 0 6px !important; font-size:clamp(1.65rem,2.8vw,2.4rem) !important; }
.v7-historical-case > header p { margin:0; color:#625a51; font-size:.86rem; }
body[data-v5-unit] .content h2::before { background:var(--v7-lesson-accent); }
body[data-v5-unit] .content > h2:first-child { margin-top:0; }
body[data-v5-unit] .note,
body[data-v5-unit] .daily-task,
body[data-v5-unit] .reference-reading,
body[data-v5-unit] .lesson-toc,
body[data-v5-unit] .toc-section,
body[data-v5-unit] .reference-group,
body[data-v5-unit] .reading-list,
body[data-v5-unit] .reference-links,
body[data-v5-unit] .edit-flow { background:color-mix(in srgb,var(--v7-lesson-pale) 72%,#eadcca) !important; }
.v7-lesson-index {
  position:sticky;
  z-index:20;
  top:72px;
  display:flex;
  padding:0 max(24px,calc((100vw - 1280px)/2));
  overflow:auto;
  border-bottom:1px solid rgba(45,35,27,.13);
  background:rgba(247,241,231,.94);
  scrollbar-width:none;
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
}
.v7-lesson-index::-webkit-scrollbar { display:none; }
.v7-lesson-index a { display:flex; min-height:50px; padding:0 18px; align-items:center; flex:0 0 auto; color:#5f574e; border-bottom:2px solid transparent; font-size:.68rem; text-decoration:none; }
.v7-lesson-index a:first-child { padding-left:0; }
.v7-lesson-index a.is-active { color:var(--v7-lesson-accent); border-bottom-color:var(--v7-lesson-accent); }
.v7-lesson-index span { margin-right:7px; color:var(--v7-gold-ink); font:italic .61rem Georgia,serif; }
body[data-v5-unit] :is(.content,.longform-content) h2[id] { scroll-margin-top:52px; }
.v5-completion { background:radial-gradient(circle at 50% 37%,color-mix(in srgb,var(--v7-lesson-accent,var(--v6-wine)) 38%,transparent),transparent 29%),var(--v7-lesson-deep,var(--v6-night)); }
.v6-completion-seal { background:var(--v7-lesson-accent,var(--v6-wine)); }
.v5-completion.is-done .v6-completion-seal { animation:v7-stamp 620ms cubic-bezier(.17,.84,.3,1.28) both; }
.v5-completion.is-arrived .v5-response-box button { background:#f0d7aa; }
.v5-arrival-copy { min-height:1.6em; color:rgba(255,255,255,.72); }

/* Small text and tap targets. */
.v4-header nav a,
.topbar .nav a { min-height:44px; display:inline-flex; align-items:center; }
.v6-current-art figcaption,
.v6-roadmap .path-phase li small,
.v6-unit-copy em { line-height:1.45; }

@keyframes v7-arrival-rise { from { opacity:0; transform:translateY(13px); } to { opacity:1; transform:translateY(0); } }
@keyframes v7-stamp { 0% { opacity:0; transform:scale(1.45) rotate(-7deg); } 70% { opacity:1; transform:scale(.94) rotate(1deg); } 100% { opacity:1; transform:scale(1) rotate(0); } }

@media (max-width: 1180px) {
  .v6-course-position p { max-width:74vw; overflow:auto; white-space:nowrap; scrollbar-width:none; }
  .v7-postal-overview > header { align-items:start; flex-direction:column; }
  .v7-postal-overview > header > p { text-align:left; }
  .v7-postal-route { width:100%; min-width:0; padding-bottom:18px; overflow-x:auto; grid-template-columns:repeat(16,66px); scrollbar-width:thin; scrollbar-color:rgba(224,186,126,.42) transparent; }
  .v7-postal-route::before { display:none; }
  .v7-route-node:not(:last-child)::after { position:absolute; z-index:-1; top:29px; left:50%; width:calc(100% + 1px); height:1px; background:rgba(255,255,255,.2); content:""; }
  .v7-postal-overview { overflow:hidden; }
  .v7-route-node > i { width:58px; }
}

@media (max-width: 760px) {
  html { scroll-padding-top:68px; }
  .v7-home-status { margin-left:0; grid-template-columns:1fr; }
  .v7-home-status > small { grid-column:1; grid-row:auto; }
  .v6-sequence { grid-template-columns:auto 1fr !important; max-width:100%; }
  .v6-course-position { display:grid; padding:10px 20px; gap:5px; }
  .v6-course-position > span { font-size:.62rem; }
  .v6-course-position p { max-width:100%; gap:8px; font-size:.67rem; }
  .v6-current-stage { padding-top:76px; }
  .v5-current-stage .portal-current.v6-current-copy h1.is-short-title { white-space:normal; overflow-wrap:anywhere; }
  body[data-v5-unit],
  body[data-v5-resource] { padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
  .v6-current-sheet img { height:min(78vw,390px); }
  .v7-postal-overview { padding-inline:20px; }
  .v7-postal-overview h2 { font-size:clamp(2.65rem,12vw,4.1rem); }
  .v6-closing h1 { font-size:clamp(2.65rem,13vw,4rem); }
  .v7-route-legend { justify-content:flex-start; flex-wrap:wrap; }
  body[data-v5-unit][data-v7-theme] .lesson-head { background:linear-gradient(var(--v7-lesson-deep) 0 49vh,var(--v7-lesson-pale) 49vh); }
  body[data-v5-unit][data-v7-theme] .lesson-head h1 { color:#1a1916; }
  body[data-v5-unit][data-v7-theme] .lesson-head .meta { color:#514b44; }
  body[data-v5-resource="epilogue"] .lesson-head { background:linear-gradient(var(--v7-lesson-deep) 0 49vh,var(--v7-lesson-pale) 49vh); }
  .v7-lesson-index { top:62px; padding-inline:20px; }
  .v7-lesson-index a { min-height:48px; }
  .v6-mobile-dock { padding-bottom:max(12px,env(safe-area-inset-bottom)); }
  .v6-mobile-dock[data-state="waiting"] a { color:#f0d7aa; border:1px solid rgba(240,215,170,.36); background:transparent; }
  .v6-mobile-dock[data-state="arrived"] a { color:#1a1712; background:#f0d7aa; }
}

@media (prefers-reduced-motion: reduce) {
  .v7-home-status,
  [data-learning-portal][data-journey-state="arrived"] .v6-current-stamp,
  [data-learning-portal][data-journey-state="arrived"] .arrival-button,
  .v7-route-node.is-arrived > i,
  .v5-completion.is-done .v6-completion-seal { animation:none !important; }
}


/* /assets/v8.css */
/*
 * Seven Letters V8 — The Tactile Correspondence System
 * Warm paper, quiet light, rounded touch and a single letter at a time.
 * Loaded after V7 so product logic and state classes remain untouched.
 */

:root {
  --v8-ivory: #fff9f0;
  --v8-paper: #f6ebdd;
  --v8-paper-soft: #fbf4e9;
  --v8-paper-deep: #e8d8c6;
  --v8-cocoa: #3a2d28;
  --v8-cocoa-soft: #57443c;
  --v8-muted: #74645a;
  --v8-wine: #8c4a58;
  --v8-wax: #a75863;
  --v8-gold: #b98e59;
  --v8-sage: #718273;
  --v8-sage-deep: #40584d;
  --v8-night: #30292b;
  --v8-line: rgba(78, 55, 36, 0.12);
  --v8-line-soft: rgba(78, 55, 36, 0.075);
  --v8-radius-xs: 12px;
  --v8-radius-sm: 18px;
  --v8-radius-md: 26px;
  --v8-radius-lg: 38px;
  --v8-radius-xl: 48px;
  --v8-pill: 999px;
  --v8-shadow-soft: 0 2px 8px rgba(62, 43, 31, 0.055), 0 20px 52px rgba(62, 43, 31, 0.095);
  --v8-shadow-touch: 0 3px 10px rgba(62, 43, 31, 0.075), 0 26px 68px rgba(62, 43, 31, 0.13);
  --v8-shadow-deep: 0 5px 16px rgba(62, 43, 31, 0.11), 0 34px 90px rgba(62, 43, 31, 0.17);
  --v8-serif: "Songti SC", "STSong", "Noto Serif CJK SC", Georgia, serif;
  --v8-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}

html { background: var(--v8-paper); }
img { height: auto; }

:where(.v6-home, .v6-course, .v5-library, .reading-index) {
  color: var(--v8-cocoa);
  background:
    radial-gradient(circle at 9% 2%, rgba(255, 255, 255, 0.8), transparent 28rem),
    radial-gradient(circle at 92% 14%, rgba(167, 88, 99, 0.075), transparent 34rem),
    var(--v8-paper);
}
body.v6-home,
body.v6-course { background: var(--v8-paper); }

/* A restrained fibre veil keeps the warm surfaces from feeling digitally flat. */
body.v6-home::before,
body.v6-course::before,
body[data-v5-unit]::before,
body[data-v5-resource]::before,
body.v5-library::before,
body.reading-index::before {
  position: fixed;
  z-index: 1000;
  inset: 0;
  pointer-events: none;
  background: url("/assets/v8-paper-grain.svg") 0 0 / 220px 220px repeat;
  content: "";
  mix-blend-mode: multiply;
  opacity: 0.16;
}

:where(.v6-home, .v6-course, .v5-library, .reading-index) ::selection,
body[data-v5-unit] ::selection,
body[data-v5-resource] ::selection { color: #fffaf1; background: var(--v8-wine); }

.v4-button,
.v5-response-box button,
.v4-response-box button,
.copy-button,
.v6-mobile-dock a {
  border-radius: var(--v8-pill);
  box-shadow: 0 9px 22px rgba(62, 43, 31, 0.12), inset 0 1px rgba(255, 255, 255, 0.24);
  transition: transform 220ms ease, box-shadow 220ms ease, background 220ms ease, color 220ms ease;
}

.v4-button { min-height: 56px; padding-inline: 27px; }
.v4-button.dark { color: #fffaf2; background: var(--v8-cocoa); }
.v4-button.dark span,
.v4-button.light-button span { border-radius: 50%; }
.v4-text-link { text-underline-offset: 0.38em; }

.v6-header,
.v6-portal-header,
.v5-library > .v4-header,
.reading-index > .v4-header {
  position: sticky;
  z-index: 80;
  top: 0;
  min-height: 76px;
  border-color: var(--v8-line-soft);
  color: var(--v8-cocoa);
  background: rgba(246, 235, 221, 0.86);
  box-shadow: 0 8px 30px rgba(62, 43, 31, 0.045);
  -webkit-backdrop-filter: blur(22px) saturate(1.15);
  backdrop-filter: blur(22px) saturate(1.15);
}

.v6-header nav a,
.v6-portal-header nav a { color: var(--v8-muted); }
.v6-header .v4-mark,
.v6-portal-header .v4-mark { color: var(--v8-cocoa); }
.v6-portal-header .v4-mark b { color: var(--v8-cocoa); }
.v6-header .v4-mark span,
.v6-portal-header .v4-mark span { color: rgba(58, 45, 40, 0.48); }
.v6-header .header-enter {
  min-height: 42px;
  padding-inline: 20px;
  border-color: rgba(58, 45, 40, 0.22);
  border-radius: var(--v8-pill);
  background: rgba(255, 249, 240, 0.58);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.78);
}

/* Home — a letter resting in warm light. */
.v6-hero {
  min-height: calc(100svh - 76px);
  padding: clamp(78px, 8vw, 126px) clamp(24px, 6.5vw, 106px);
  gap: clamp(56px, 7vw, 110px);
  grid-template-columns: minmax(0, 0.93fr) minmax(480px, 1.07fr);
  background:
    radial-gradient(ellipse at 77% 45%, rgba(255, 255, 255, 0.8) 0 12%, rgba(255, 255, 255, 0.18) 44%, transparent 68%),
    radial-gradient(circle at 9% 17%, rgba(167, 88, 99, 0.105), transparent 28rem),
    linear-gradient(135deg, #fffaf2 0%, #f5eadc 62%, #ead9c7 100%);
}
.v6-hero::after { display: none; }
.v6-hero-copy .v4-kicker { margin-bottom: 29px; color: var(--v8-wine); }
.v6-hero h1 { color: var(--v8-wine); font-size: clamp(5rem, 9.2vw, 9.8rem); letter-spacing: -0.075em; line-height: 0.88; }
.v6-hero-title > span { color: var(--v8-gold); }
.v6-hero-promise { margin-top: clamp(32px, 4.5vw, 56px); color: var(--v8-cocoa); font-size: clamp(2.25rem, 3.05vw, 3.8rem); line-height: 1.23; }
.v6-hero-lead { margin-top: 24px; color: var(--v8-cocoa-soft); line-height: 2.05; }
.v6-hero-actions { margin-top: 31px; gap: 22px; }

.v7-home-status {
  position: relative;
  max-width: 590px;
  margin-top: 28px;
  padding: 19px 22px 18px;
  overflow: hidden;
  border: 1px solid rgba(112, 78, 50, 0.13);
  border-left-width: 1px !important;
  border-radius: 22px 22px 28px 28px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.7), rgba(255, 249, 240, 0.38)),
    var(--v8-ivory);
  box-shadow: var(--v8-shadow-soft), inset 0 1px rgba(255, 255, 255, 0.82);
}
.v7-home-status::after {
  position: absolute;
  right: -34px;
  bottom: -48px;
  width: 150px;
  height: 105px;
  border: 1px solid rgba(140, 74, 88, 0.1);
  border-radius: 50%;
  content: "";
  transform: rotate(-18deg);
}
.v7-home-status > span { color: var(--v8-wine); }
.v7-home-status > small { color: var(--v8-muted); }
.v7-home-status > i { border-radius: var(--v8-pill); background: rgba(58, 45, 40, 0.09); }
.v7-home-status > i b { border-radius: inherit; background: linear-gradient(90deg, var(--v8-wine), var(--v8-gold)); }
.v7-home-status[data-state="arrived"] { border-color: rgba(140, 74, 88, 0.23); background: rgba(255, 249, 240, 0.92); }
.v6-sequence { display: none; }

.v6-letter-portrait { width: min(100%, 720px); }
.v6-letter-matte {
  min-height: 0;
  aspect-ratio: 1.12 / 1;
  padding: clamp(46px, 5.2vw, 74px);
  overflow: visible;
  border: 1px solid rgba(255, 255, 255, 0.64);
  border-radius: var(--v8-radius-lg);
  background:
    radial-gradient(circle at 23% 12%, rgba(255, 255, 255, 0.9), transparent 35%),
    linear-gradient(145deg, #ecdaca, #f7ecdf 58%, #dfc5ae);
  box-shadow: var(--v8-shadow-deep), inset 0 1px rgba(255, 255, 255, 0.88);
}
.v6-letter-matte::before {
  z-index: 0;
  inset: 19px;
  border-color: rgba(116, 79, 49, 0.11);
  border-radius: 27px;
}
.v6-letter-matte::after {
  position: absolute;
  z-index: 0;
  right: 7%;
  bottom: 7%;
  left: 7%;
  height: 42%;
  border: 1px solid rgba(112, 78, 50, 0.1);
  border-top: 0;
  border-radius: 0 0 28px 28px;
  background:
    linear-gradient(34deg, transparent 49.5%, rgba(112, 78, 50, 0.08) 50%, transparent 50.6%) left / 50% 100% no-repeat,
    linear-gradient(-34deg, transparent 49.5%, rgba(112, 78, 50, 0.08) 50%, transparent 50.6%) right / 50% 100% no-repeat;
  content: "";
}
.v6-letter-shadow {
  top: 34%;
  right: 7%;
  left: 7%;
  aspect-ratio: 1800 / 771;
  border: 0;
  border-radius: 18px;
  background: rgba(111, 76, 52, 0.24);
  box-shadow: 0 28px 45px rgba(70, 44, 26, 0.16);
  transform: rotate(2.4deg) translateY(10px);
  filter: blur(0.3px);
}
.v6-letter-sheet {
  width: 100%;
  padding: clamp(11px, 1.45vw, 19px);
  border: 1px solid rgba(73, 52, 38, 0.13);
  border-radius: 17px 20px 16px 19px;
  background: #fbf7ef;
  box-shadow: 0 2px 6px rgba(62, 43, 31, 0.1), 0 27px 52px rgba(62, 43, 31, 0.18), inset 0 1px rgba(255, 255, 255, 0.84);
  transform: rotate(-1.15deg);
}
.v6-letter-sheet img {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 1800 / 771;
  border-radius: 10px 13px 9px 12px;
  object-fit: contain;
  filter: saturate(0.76) sepia(0.07) contrast(1.06) brightness(1.04);
}
.v6-postmark {
  right: 5.5%;
  bottom: 5.5%;
  width: 100px;
  height: 100px;
  border-color: rgba(255, 237, 214, 0.42);
  background: linear-gradient(145deg, #aa5964, #7f3e4b);
  box-shadow: 0 4px 9px rgba(73, 37, 43, 0.18), 0 18px 34px rgba(73, 37, 43, 0.2), inset 0 1px rgba(255, 255, 255, 0.18);
}
.v6-seal-rail { top: 30px; left: 31px; }
.v6-seal-rail li { color: var(--v8-wine); border-color: rgba(140, 74, 88, 0.24); background: rgba(255, 249, 240, 0.42); }
.v6-letter-portrait figcaption { color: var(--v8-muted); }

.v6-manifesto { padding-block: clamp(110px, 14vw, 190px); }
.v6-manifesto h2 { color: var(--v8-cocoa); }
.v6-manifesto-copy p { color: var(--v8-cocoa-soft); }

.v6-arrival {
  min-height: 0;
  padding: clamp(82px, 9vw, 132px) clamp(22px, 5.8vw, 92px);
  color: var(--v8-cocoa);
  background:
    radial-gradient(circle at 84% 12%, rgba(167, 88, 99, 0.1), transparent 26rem),
    linear-gradient(150deg, #ead9c8, #f5eadd 63%, #e8d8c6);
  gap: clamp(20px, 2.3vw, 34px);
}
.v6-arrival-object,
.v6-arrival-copy {
  min-height: 650px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 42px;
  box-shadow: var(--v8-shadow-touch), inset 0 1px rgba(255, 255, 255, 0.2);
}
.v6-arrival-object {
  padding: clamp(48px, 6vw, 88px);
  border-right: 1px solid rgba(255, 255, 255, 0.2);
  background:
    radial-gradient(circle at 55% 46%, rgba(167, 88, 99, 0.32), transparent 35%),
    linear-gradient(145deg, #59484a, var(--v8-night) 72%);
}
.v6-arrival-object::before { inset: 27px; border-color: rgba(255, 255, 255, 0.11); border-radius: 29px; }
.v6-arrival-object::after {
  position: absolute;
  right: 10%;
  bottom: 13%;
  display: grid;
  width: clamp(112px, 12vw, 164px);
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(246, 226, 205, 0.18);
  border-radius: 50%;
  color: rgba(246, 226, 205, 0.2);
  background: rgba(255, 255, 255, 0.012);
  box-shadow: inset 0 0 0 8px rgba(246, 226, 205, 0.025);
  content: "24H";
  font: 500 clamp(1.25rem, 2vw, 2rem)/1 Georgia, serif;
  letter-spacing: 0.08em;
  transform: rotate(-11deg);
}
.v6-arrival-number strong { color: #f1dcc6; text-shadow: 0 8px 28px rgba(0, 0, 0, 0.14); }
.v6-arrival-number span { color: #d9b27e; }
.v6-arrival-track i { background: #3c3234; }
.v6-arrival-copy { padding: clamp(70px, 8vw, 125px) clamp(34px, 6.5vw, 96px); background: rgba(255, 250, 242, 0.79); }
.v6-arrival-copy .pale { color: var(--v8-wine); }
.v6-arrival-copy h2 { color: var(--v8-cocoa); }
.v6-arrival-copy li { border-color: var(--v8-line); }
.v6-arrival-copy li > span { color: var(--v8-gold); }
.v6-arrival-copy li p { color: var(--v8-muted); }
.v6-arrival-copy .v4-text-link.light { color: var(--v8-wine); }

.v6-journey { background: var(--v8-ivory); }
.v6-journey-heading > p { color: var(--v8-muted); }
.v6-journey-line {
  border: 0;
  gap: 18px;
  background: transparent;
  grid-template-columns: 0.78fr 1.12fr 1.42fr 1.05fr;
}
.v6-journey-line article,
.v6-journey-line article:last-child {
  overflow: hidden;
  min-height: 350px;
  padding: 34px 29px;
  border: 1px solid var(--v8-line-soft);
  border-radius: var(--v8-radius-md);
  background: rgba(248, 239, 226, 0.62);
  box-shadow: var(--v8-shadow-soft), inset 0 1px rgba(255, 255, 255, 0.76);
}
.v6-journey-line article::after {
  position: absolute;
  right: -17%;
  bottom: -34%;
  width: 74%;
  aspect-ratio: 1;
  border: 1px solid rgba(140, 74, 88, 0.07);
  border-radius: 50%;
  content: "";
  transform: rotate(-12deg);
}
.v6-journey-line article::before { top: 28px; left: 29px; background: var(--v8-ivory); }
.v6-journey-line h3 { padding-top: 104px; }
.v6-journey-line .is-publishing {
  color: #fff9f0;
  border-color: rgba(255, 255, 255, 0.13);
  background: linear-gradient(150deg, #9d5563, #75404d);
  box-shadow: 0 24px 60px rgba(117, 64, 77, 0.22), inset 0 1px rgba(255, 255, 255, 0.16);
}
.v6-journey-line .is-publishing::after { border-color: rgba(255, 249, 240, 0.13); }
.v6-enter-course {
  min-height: 118px;
  margin-top: 34px;
  padding-inline: 30px;
  border: 1px solid var(--v8-line);
  border-radius: 28px;
  background: rgba(246, 235, 221, 0.6);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.68);
}
.v6-enter-course:hover { padding-inline: 36px; border-color: rgba(58, 45, 40, 0.18); border-radius: 28px; background: var(--v8-cocoa); }
.v6-closing { background: radial-gradient(circle at 50% 42%, rgba(167, 88, 99, 0.12), transparent 25rem), var(--v8-paper); }
.v6-closing::before { border-color: var(--v8-line); border-radius: var(--v8-radius-xl); }
.v6-closing-seal { background: linear-gradient(145deg, var(--v8-wax), #7e3e49); box-shadow: 0 4px 10px rgba(105, 48, 59, 0.16), 0 18px 38px rgba(105, 48, 59, 0.18); }
.v6-footer { color: var(--v8-muted); background: var(--v8-paper); }

/* Course — today's letter, then the quiet map behind it. */
.v6-course-position {
  min-height: 56px;
  padding-inline: clamp(24px, 5vw, 78px);
  border-color: var(--v8-line-soft);
  color: var(--v8-muted);
  background: #f4eadc;
}
.v6-course-position > span { color: var(--v8-wine); }
.v6-course-position p i { background: rgba(140, 74, 88, 0.22); }

[data-learning-portal] .v6-current-stage {
  min-height: calc(100svh - 132px);
  padding: clamp(76px, 8vw, 122px) clamp(24px, 6.5vw, 106px);
  color: var(--v8-cocoa);
  background:
    radial-gradient(ellipse at 76% 40%, rgba(255, 255, 255, 0.76), transparent 40%),
    radial-gradient(circle at 9% 16%, color-mix(in srgb, var(--v7-unit-accent, var(--v8-wine)) 14%, transparent), transparent 29rem),
    linear-gradient(145deg, #f8efe4, #eadbc9);
}
.v6-current-copy { max-width: 720px; }
.v6-current-count { color: rgba(140, 74, 88, 0.07); }
.v6-current-copy .v4-kicker { color: var(--v8-wine); }
.v6-current-copy .current-stage { color: var(--v8-muted); }
.v6-current-copy h1 { color: var(--v8-cocoa); font-size: clamp(3.45rem, 5.9vw, 6.8rem); }
.v6-current-copy .current-subtitle { color: color-mix(in srgb, var(--v7-unit-accent, var(--v8-wine)) 72%, var(--v8-cocoa)); }
.v6-current-copy .current-summary { color: var(--v8-cocoa-soft); }
.v6-current-copy .light-button,
.v6-current-copy .arrival-button { color: #fffaf2; background: var(--v8-cocoa); }
.v6-current-copy .wait-message {
  max-width: 600px;
  margin-top: 34px;
  padding: 20px 22px;
  border: 1px solid rgba(140, 74, 88, 0.14);
  border-left-width: 1px;
  border-radius: 20px;
  color: var(--v8-cocoa);
  background: rgba(255, 249, 240, 0.62);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.72);
}
.v6-current-copy .wait-message span { color: var(--v8-muted); }

.v6-current-art { width: min(100%, 720px); }
.v6-current-frame {
  min-height: 520px;
  padding: clamp(40px, 5vw, 70px);
  overflow: visible;
  border: 1px solid rgba(255, 255, 255, 0.62);
  border-radius: 42px;
  background:
    radial-gradient(circle at 22% 11%, rgba(255, 255, 255, 0.9), transparent 33%),
    linear-gradient(148deg, #ead6c4, #f5eadc 60%, #dcc0a9);
  box-shadow: var(--v8-shadow-deep), inset 0 1px rgba(255, 255, 255, 0.82);
}
.v6-current-frame::before { inset: 22px; border-color: rgba(94, 64, 44, 0.1); border-radius: 29px; }
.v6-current-sheet {
  display: grid;
  width: 100%;
  min-height: 245px;
  padding: clamp(12px, 1.7vw, 21px);
  place-items: center;
  border: 1px solid rgba(73, 52, 38, 0.13);
  border-radius: 20px 23px 19px 22px;
  background: #fbf7ef;
  box-shadow: 0 2px 7px rgba(62, 43, 31, 0.09), 0 28px 55px rgba(62, 43, 31, 0.17), inset 0 1px rgba(255, 255, 255, 0.86);
  transform: rotate(-0.85deg);
}
.v6-current-sheet::before { border-color: rgba(58, 45, 40, 0.08); border-radius: 14px; }
.v6-current-sheet img,
[data-learning-portal]:is([data-current-unit="principle-1"],[data-current-unit="principle-2"],[data-current-unit="principle-4"],[data-current-unit="publishing-plan"],[data-current-unit="letter-02"],[data-current-unit="letter-04"],[data-current-unit="letter-06"],[data-current-unit="letter-07"],[data-current-unit="principle-6"],[data-current-unit="principle-7"]) .v6-current-sheet img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto !important;
  max-height: 430px;
  border-radius: 12px 15px 11px 14px;
  object-fit: contain;
  background: transparent;
  filter: saturate(0.82) sepia(0.045) contrast(1.04) brightness(1.035);
}
.v6-current-stamp { background: linear-gradient(145deg, var(--v7-unit-accent, var(--v8-wax)), color-mix(in srgb, var(--v7-unit-accent, var(--v8-wax)) 72%, #4f2931)); box-shadow: 0 4px 10px rgba(74, 37, 44, 0.16), 0 18px 36px rgba(74, 37, 44, 0.2); }
.v6-current-art figcaption { color: var(--v8-muted); }
.v6-current-registration {
  top: 33px;
  left: 33px;
  width: 88px;
  height: 28px;
  padding-inline: 9px;
  align-items: center;
  border: 1px solid rgba(140, 74, 88, 0.24);
  border-radius: var(--v8-pill);
  color: rgba(140, 74, 88, 0.7);
  background: rgba(255, 249, 240, 0.44);
  transform: rotate(-4deg);
}
.v6-current-registration::before {
  content: "已抵达";
  font-size: 0.49rem;
  font-weight: 800;
  letter-spacing: 0.14em;
}
.v6-current-registration::after {
  position: absolute;
  left: calc(100% + 8px);
  width: 34px;
  height: 12px;
  background: repeating-linear-gradient(to bottom, rgba(140, 74, 88, 0.2) 0 1px, transparent 1px 5px);
  content: "";
}
.v6-current-registration i { display: none; }

.v8-postal-details {
  max-width: 1320px;
  margin: clamp(58px, 7vw, 92px) auto 0;
  padding: 0;
  border: 1px solid var(--v8-line);
  border-radius: 28px;
  background: rgba(255, 249, 240, 0.6);
  box-shadow: var(--v8-shadow-soft), inset 0 1px rgba(255, 255, 255, 0.74);
}
.v8-postal-details > summary {
  display: grid;
  min-height: 104px;
  padding: 23px 28px;
  align-items: center;
  cursor: pointer;
  gap: 24px;
  grid-template-columns: minmax(220px, 1fr) minmax(260px, 0.7fr) 38px;
  list-style: none;
}
.v8-postal-details > summary::-webkit-details-marker { display: none; }
.v8-postal-details > summary span { display: grid; gap: 4px; }
.v8-postal-details > summary small { color: var(--v8-wine); font-size: 0.62rem; font-style: normal; font-weight: 800; letter-spacing: 0.12em; }
.v8-postal-details > summary strong { font-family: var(--v8-serif); font-size: 1.15rem; font-weight: 500; }
.v8-postal-details > summary em { color: var(--v8-muted); font-size: 0.76rem; font-style: normal; line-height: 1.6; text-align: right; }
.v8-postal-details > summary > i { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--v8-line); border-radius: 50%; color: var(--v8-wine); font-style: normal; transition: transform 220ms ease, background 220ms ease; }
.v8-postal-details[open] > summary > i { color: #fff; background: var(--v8-wine); transform: rotate(45deg); }
.v8-postal-details[open] > summary { border-bottom: 1px solid var(--v8-line); }
.v6-course main[data-learning-portal] { padding-bottom: clamp(70px, 9vw, 120px); }
.v6-course .v8-postal-details { width: calc(100% - clamp(48px, 13vw, 212px)); }
.v8-postal-details .v7-postal-overview {
  padding: clamp(58px, 7vw, 92px) clamp(24px, 4vw, 58px) clamp(54px, 6vw, 82px);
  color: var(--v8-cocoa);
  border-radius: 0 0 28px 28px;
  background:
    radial-gradient(circle at 83% 4%, rgba(167, 88, 99, 0.09), transparent 24rem),
    rgba(246, 235, 221, 0.54);
}
.v8-postal-details .v7-postal-overview > header { margin-bottom: 48px; }
.v8-postal-details .v7-postal-overview h2 { color: var(--v8-cocoa); font-size: clamp(2.5rem, 4vw, 4rem); }
.v8-postal-details .v7-route-node { color: rgba(58, 45, 40, 0.48); }
.v8-postal-details .v7-route-node > i { border-color: rgba(58, 45, 40, 0.16); color: var(--v8-muted); background: var(--v8-paper-soft); }
.v8-postal-details .v7-postal-route::before { background: rgba(140, 74, 88, 0.18); }
.v8-postal-details .v7-route-node.is-current { color: var(--v8-wine); }
.v8-postal-details .v7-route-node.is-current > i { color: #fffaf2; border-color: var(--v8-wine); background: var(--v8-wine); box-shadow: 0 0 0 7px rgba(140, 74, 88, 0.09); }
.v8-postal-details .v7-route-node.is-complete { color: var(--v8-sage-deep); }
.v8-postal-details .v7-route-node.is-complete > i { color: #fff; border-color: var(--v8-sage); background: var(--v8-sage); }
.v8-postal-details .v7-route-node.is-locked > i { opacity: 0.62; }
.v8-postal-details .v7-route-legend { color: var(--v8-muted); }

.v6-roadmap {
  padding-top: clamp(100px, 12vw, 160px);
  padding-bottom: clamp(100px, 12vw, 160px);
  background:
    radial-gradient(circle at 92% 7%, rgba(167, 88, 99, 0.08), transparent 28rem),
    var(--v8-ivory);
}
.v6-roadmap-heading { margin-bottom: 58px; }
.v6-roadmap-heading h2 { color: var(--v8-cocoa); }
.v6-roadmap-heading > div:first-child > p:last-child { color: var(--v8-muted); }
.v6-roadmap .course-progress i { height: 4px; overflow: hidden; border-radius: var(--v8-pill); background: rgba(58, 45, 40, 0.09); }
.v6-roadmap .course-progress i b { border-radius: inherit; background: linear-gradient(90deg, var(--v8-wine), var(--v8-gold)); }
.v6-roadmap .phase-list { display: grid; gap: 17px; grid-template-columns: 1fr; }
.v6-roadmap .path-phase,
.v6-roadmap .path-phase:last-child {
  overflow: visible;
  border: 1px solid var(--v8-line-soft);
  border-radius: 30px;
  background: rgba(246, 235, 221, 0.54);
  box-shadow: var(--v8-shadow-soft), inset 0 1px rgba(255, 255, 255, 0.76);
}
.v6-roadmap .path-phase > header { min-height: 196px; padding: 34px 36px; border-right: 1px solid var(--v8-line-soft); }
.v6-roadmap .path-phase > header::before { top: 41px; left: 18px; background: var(--v8-paper-soft); }
.v6-roadmap .path-phase.is-current > header::before { background: var(--v8-wine); }
.v6-roadmap .phase-description { margin: -70px 34px 34px 78px; }
.v6-phase-toggle { width: 42px; height: 42px; border-color: var(--v8-line); background: rgba(255, 249, 240, 0.5); }
.v6-phase-preview { padding: 26px 28px; gap: 10px; background: transparent; }
.v6-phase-preview span { min-height: 82px; border: 1px solid var(--v8-line-soft); border-radius: 15px; background: rgba(255, 249, 240, 0.7); }
.v6-phase-preview span.is-current { color: var(--v8-wine); border-color: rgba(140, 74, 88, 0.24); background: #fffaf2; box-shadow: 0 10px 28px rgba(62, 43, 31, 0.08), inset 4px 0 var(--v8-wax); }
.v6-roadmap .path-phase ol { padding: 24px 32px 32px; }
.v6-roadmap .path-phase li { border-color: var(--v8-line-soft); }
.v6-roadmap .path-phase li.is-current { margin: 0; padding-left: 18px; border-radius: 15px; background: #fffaf2; box-shadow: 0 9px 25px rgba(62, 43, 31, 0.07); }
.v6-roadmap .path-phase li.is-current::before { border-radius: var(--v8-pill); background: var(--v8-wine); }
.v6-epilogue-stop {
  margin-top: 17px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 30px;
  background: radial-gradient(circle at 86% 12%, rgba(167, 88, 99, 0.3), transparent 30%), linear-gradient(145deg, #514348, var(--v8-night));
  box-shadow: 0 24px 64px rgba(48, 41, 43, 0.16);
}
.v6-supplements {
  margin: 0 clamp(24px, 6.5vw, 106px);
  padding: clamp(76px, 9vw, 120px) clamp(24px, 5vw, 72px);
  border-radius: 42px;
  color: var(--v8-cocoa);
  background:
    radial-gradient(circle at 13% 18%, rgba(167, 88, 99, 0.11), transparent 28rem),
    linear-gradient(145deg, #e9d9c8, #f6ebdd);
  box-shadow: var(--v8-shadow-soft), inset 0 1px rgba(255, 255, 255, 0.7);
}
.v6-supplements .pale { color: var(--v8-wine); }
.v6-supplements h2 { color: var(--v8-cocoa); }
.v6-supplements .supplement-links { gap: 13px; }
.v6-supplements .supplement-links a {
  padding-inline: 22px;
  border: 1px solid var(--v8-line-soft);
  border-radius: 20px;
  color: var(--v8-cocoa);
  background: rgba(255, 249, 240, 0.58);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.75);
}
.v6-supplements .supplement-links a small,
.v6-supplements .supplement-links a span { color: var(--v8-muted); }
.portal-note { color: var(--v8-muted); background: transparent; }
.dark-footer { color: var(--v8-muted); border-color: var(--v8-line); background: var(--v8-paper); }
.dark-footer a { color: var(--v8-cocoa); }

/* Lessons — an opened letter, not a split-screen exhibit. */
body[data-v5-unit],
body[data-v5-resource] {
  color: var(--v8-cocoa);
  background:
    radial-gradient(circle at 8% 3%, rgba(255, 255, 255, 0.85), transparent 26rem),
    var(--v8-paper);
}
body[data-v5-unit] .topbar,
body[data-v5-resource] .topbar {
  position: sticky;
  z-index: 70;
  top: 0;
  min-height: 76px;
  border-color: var(--v8-line-soft);
  background: rgba(246, 235, 221, 0.88);
  box-shadow: 0 8px 30px rgba(62, 43, 31, 0.045);
  -webkit-backdrop-filter: blur(22px) saturate(1.12);
  backdrop-filter: blur(22px) saturate(1.12);
}
body[data-v5-unit] .brand,
body[data-v5-resource] .brand { color: var(--v8-cocoa); }
body[data-v5-unit] .nav a,
body[data-v5-resource] .nav a { min-height: 40px; padding-inline: 13px; border-radius: var(--v8-pill); color: var(--v8-muted); }
body[data-v5-unit] .nav a.active,
body[data-v5-resource] .nav a.active { color: var(--v8-wine); background: rgba(255, 249, 240, 0.7); }

body[data-v5-unit] .document,
body[data-v5-resource] .document { background: var(--v8-ivory); }
body[data-v5-unit][data-v7-theme] .lesson-head,
body[data-v5-resource] .lesson-head,
body[data-v5-resource="epilogue"] .lesson-head {
  min-height: calc(100svh - 76px);
  padding: clamp(90px, 11vw, 158px) 53% clamp(82px, 10vw, 140px) max(32px, calc((100vw - 1360px) / 2));
  border-radius: 0 0 52px 52px;
  background:
    radial-gradient(circle at 82% 20%, color-mix(in srgb, var(--v7-lesson-accent, var(--v8-wine)) 13%, transparent), transparent 27rem),
    radial-gradient(circle at 12% 12%, rgba(255, 255, 255, 0.88), transparent 30rem),
    linear-gradient(140deg, #fff9f0, var(--v7-lesson-pale, #f6ebdd) 68%, #ead9c8);
}
body[data-v5-unit][data-v7-theme] .lesson-head::before,
body[data-v5-resource] .lesson-head::before,
body[data-v5-resource="epilogue"] .lesson-head::before {
  inset: 8% 5% 8% 58%;
  border: 16px solid rgba(255, 249, 240, 0.72);
  border-radius: 38px;
  outline: 1px solid rgba(75, 53, 37, 0.1);
  background-color: #e7dbca;
  background-position: var(--v4-art-position, center);
  background-size: var(--v4-art-size, contain) !important;
  box-shadow: var(--v8-shadow-deep), inset 0 1px rgba(255, 255, 255, 0.8);
  filter: saturate(0.82) contrast(0.96) brightness(1.02);
}
body[data-v5-unit][data-v7-theme][data-v4-resource="welcome"] .lesson-head::before,
body[data-v5-unit][data-v7-theme][data-v4-resource="magic"] .lesson-head::before { inset: 32% 5% 32% 58%; }
body[data-v5-unit][data-v7-theme] .lesson-head::after,
body[data-v5-resource] .lesson-head::after { color: color-mix(in srgb, var(--v7-lesson-accent, var(--v8-wine)) 8%, transparent); }
body[data-v5-unit][data-v7-theme] .lesson-head h1,
body[data-v5-resource] .lesson-head h1 { color: var(--v8-cocoa); font-size: clamp(3.25rem, 5.2vw, 5.85rem); }
body[data-v5-unit][data-v7-theme] .lesson-head .meta,
body[data-v5-resource] .lesson-head .meta { color: var(--v8-muted); }
.v6-lesson-marker { margin-bottom: 33px; }
.v6-lesson-marker span { color: var(--v7-lesson-accent, var(--v8-wine)); }
.v6-lesson-marker b { color: var(--v8-muted); }
.v6-lesson-marker i { height: 4px; border-radius: var(--v8-pill); background: rgba(58, 45, 40, 0.08); }
.v6-lesson-marker i u { border-radius: inherit; background: var(--v7-lesson-accent, var(--v8-wine)); }

.v7-lesson-index {
  top: 76px;
  padding: 8px max(22px, calc((100vw - 1280px) / 2));
  border: 0;
  background: rgba(246, 235, 221, 0.82);
  box-shadow: 0 9px 26px rgba(62, 43, 31, 0.055);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
.v7-lesson-index a { min-height: 40px; padding: 0 14px; border: 0; border-radius: var(--v8-pill); }
.v7-lesson-index a:first-child { padding-left: 14px; }
.v7-lesson-index a.is-active { color: var(--v7-lesson-accent, var(--v8-wine)); border: 0; background: rgba(255, 249, 240, 0.82); box-shadow: inset 0 1px rgba(255, 255, 255, 0.8); }

body[data-v5-unit] .content,
body[data-v5-resource] .content {
  width: min(900px, calc(100% - 48px));
  padding: clamp(105px, 12vw, 165px) 0;
  color: var(--v8-cocoa-soft);
  font-size: 1.065rem;
  line-height: 2.04;
}
body[data-v5-unit] .content h2,
body[data-v5-resource] .content h2,
body[data-v5-unit] .content h3,
body[data-v5-resource] .content h3 { color: var(--v8-cocoa); }
body[data-v5-unit] .content h2::before,
body[data-v5-resource] .content h2::before { width: 58px; height: 5px; border-radius: var(--v8-pill); background: var(--v7-lesson-accent, var(--v8-wine)); }
body[data-v5-unit] .content img,
body[data-v5-resource] .content img {
  height: auto !important;
  border-radius: 18px 21px 17px 20px;
  box-shadow: var(--v8-shadow-touch);
}
body[data-v5-unit] .content blockquote,
body[data-v5-resource] .content blockquote {
  border: 1px solid var(--v8-line);
  border-left-width: 1px;
  border-radius: 22px;
  background: rgba(246, 235, 221, 0.7);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.7);
}
body[data-v5-unit] :is(.note, .daily-task, .reference-reading, .lesson-toc, .toc-section, .reference-group, .reading-list, .reference-links, .edit-flow),
body[data-v5-resource] :is(.note, .daily-task, .reference-reading, .lesson-toc, .toc-section, .reference-group, .reading-list, .reference-links, .edit-flow) {
  border: 1px solid color-mix(in srgb, var(--v7-lesson-accent, var(--v8-wine)) 18%, var(--v8-line)) !important;
  border-left-width: 1px !important;
  border-radius: 24px !important;
  color: var(--v8-cocoa-soft) !important;
  background: color-mix(in srgb, var(--v7-lesson-pale, var(--v8-paper)) 76%, #fffaf2) !important;
  box-shadow: var(--v8-shadow-soft), inset 0 1px rgba(255, 255, 255, 0.74) !important;
}
body[data-v5-unit] .note.deep,
body[data-v5-resource] .note.deep { border-color: rgba(255, 255, 255, 0.09) !important; color: #fff7ec !important; background: linear-gradient(145deg, #55464a, var(--v8-night)) !important; }
.download-card,
.file-link,
.url-box,
.copy-row,
.notice {
  border-color: var(--v8-line);
  border-radius: 20px;
  background: rgba(246, 235, 221, 0.7);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.72);
}
.v4-manuscript > div { border-color: var(--v8-line); border-radius: 24px; background: #f2e9dc; box-shadow: var(--v8-shadow-touch); transform: rotate(-0.35deg); }
.v4-manuscript img { height: auto !important; border-radius: 14px; }

.v5-completion {
  width: calc(100% - clamp(40px, 8vw, 120px));
  min-height: 76svh;
  margin: 40px auto 0;
  padding: clamp(105px, 13vw, 170px) 24px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 48px 48px 0 0;
  color: #fff7ec;
  background:
    radial-gradient(circle at 50% 34%, color-mix(in srgb, var(--v7-lesson-accent, var(--v8-wine)) 32%, transparent), transparent 28rem),
    linear-gradient(150deg, #55464a, var(--v8-night));
  box-shadow: 0 -18px 60px rgba(62, 43, 31, 0.12);
}
.v5-completion::before { inset: 26px; border-color: rgba(255, 255, 255, 0.1); border-radius: 34px 34px 0 0; }
.v5-completion-kicker { color: #dfbb8c; }
.v5-completion h2 { color: #fffaf2; }
.v6-completion-seal { background: linear-gradient(145deg, var(--v7-lesson-accent, var(--v8-wax)), color-mix(in srgb, var(--v7-lesson-accent, var(--v8-wax)) 68%, #4f2931)); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15), 0 18px 35px rgba(0, 0, 0, 0.2), inset 0 1px rgba(255, 255, 255, 0.16); }
.v5-response-box {
  padding: 30px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 28px;
  color: #fff7ec;
  background: rgba(255, 249, 240, 0.075);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.08);
}
.v5-response-box input {
  display: grid;
  width: 24px;
  height: 24px;
  margin: 0;
  flex: 0 0 auto;
  appearance: none;
  place-items: center;
  border: 1px solid rgba(255, 249, 240, 0.42);
  border-radius: 8px;
  background: rgba(255, 249, 240, 0.08);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.1);
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}
.v5-response-box input::after {
  width: 9px;
  height: 5px;
  border-bottom: 2px solid #fffaf2;
  border-left: 2px solid #fffaf2;
  content: "";
  opacity: 0;
  transform: translateY(-1px) rotate(-45deg) scale(0.7);
  transition: opacity 160ms ease, transform 180ms ease;
}
.v5-response-box input:checked {
  border-color: var(--v7-lesson-accent, var(--v8-wine));
  background: var(--v7-lesson-accent, var(--v8-wine));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--v7-lesson-accent, var(--v8-wine)) 18%, transparent);
}
.v5-response-box input:checked::after { opacity: 1; transform: translateY(-1px) rotate(-45deg) scale(1); }
.v5-response-box input:focus-visible { outline: 3px solid rgba(246, 226, 205, 0.55); outline-offset: 3px; }
.v5-response-box input:disabled { cursor: default; opacity: 0.78; }
.v5-response-box button { min-height: 56px; padding-inline: 25px; color: var(--v8-cocoa); background: #f7ead8; }
.v5-completion.is-done .v5-response-box { border-color: rgba(147, 188, 164, 0.4); }
.v5-completion.is-done .v5-response-box button { background: var(--v8-sage-deep); }
.v5-completion.is-arrived .v5-response-box button { color: var(--v8-cocoa); background: #eed3a9; }
.v5-arrival-copy { color: rgba(255, 249, 240, 0.7); }
.v5-completion-nav a { color: rgba(255, 249, 240, 0.64); }

/* Long-form final lesson uses the same tactile family. */
.longform-header { position: sticky; z-index: 70; top: 0; min-height: 76px; color: var(--v8-cocoa); border-color: var(--v8-line); background: rgba(246, 235, 221, 0.9); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
.longform-mark span,
.longform-header nav a { color: var(--v8-muted); }
.longform-hero {
  min-height: calc(100svh - 76px);
  color: var(--v8-cocoa);
  border-radius: 0 0 52px 52px;
  background: radial-gradient(circle at 78% 18%, rgba(167, 88, 99, 0.12), transparent 28rem), linear-gradient(145deg, #fff9f0, #ead9c8);
}
.longform-title > p { color: var(--v8-wine); }
.longform-title h1 { color: var(--v8-cocoa); }
.longform-title h2 { color: var(--v8-muted); }
.longform-meta span { border-color: var(--v8-line); border-radius: var(--v8-pill); color: var(--v8-muted); background: rgba(255, 249, 240, 0.62); }
.longform-hero figure { padding: 15px; border-color: var(--v8-line); border-radius: 36px; background: rgba(255, 249, 240, 0.72); box-shadow: var(--v8-shadow-deep); }
.longform-hero img { height: auto !important; max-height: 70vh; border-radius: 24px; object-fit: contain; }
.longform-hero figcaption { color: var(--v8-muted); }
.longform-intro { background: var(--v8-paper); }
.longform-content { color: var(--v8-cocoa-soft); }
.longform-content blockquote,
.longform-content .notion-aside { border: 1px solid var(--v8-line); border-left-width: 1px; border-radius: 24px; background: var(--v8-paper); box-shadow: var(--v8-shadow-soft); }
.longform-return { margin: 40px clamp(20px, 4vw, 60px) 0; border-radius: 48px 48px 0 0; color: #fff7ec; background: linear-gradient(145deg, #55464a, var(--v8-night)); }
.longform-return a { border-radius: var(--v8-pill); background: var(--v8-paper); box-shadow: var(--v8-shadow-soft); }

/* Directory and reading room. */
.v5-library .library-hero,
.reading-index .library-hero {
  min-height: 68svh;
  border-radius: 0 0 52px 52px;
  background: radial-gradient(circle at 82% 17%, rgba(167, 88, 99, 0.1), transparent 29rem), radial-gradient(circle at 8% 8%, rgba(255, 255, 255, 0.88), transparent 28rem), linear-gradient(140deg, #fff9f0, #eadac8);
}
.v5-library .library-hero h1,
.reading-index .library-hero h1 { color: var(--v8-wine); }
.library-section,
.reading-catalog > article { background: var(--v8-ivory); }
.library-grid { gap: 15px; }
.library-grid a,
.reading-links a {
  border: 1px solid var(--v8-line-soft);
  border-radius: 24px;
  background: rgba(246, 235, 221, 0.55);
  box-shadow: var(--v8-shadow-soft), inset 0 1px rgba(255, 255, 255, 0.72);
}
.library-grid a.featured-resource { background: linear-gradient(145deg, #f2dfdf, #f7ecdf); }
.library-seven {
  margin: 0 clamp(22px, 5vw, 80px);
  border-radius: 46px;
  background: linear-gradient(145deg, #55464a, var(--v8-night));
  box-shadow: 0 28px 75px rgba(48, 41, 43, 0.16);
}
.publishing-directory { gap: 9px; }
.publishing-directory a { border: 1px solid rgba(255, 255, 255, 0.09); border-radius: 17px; background: rgba(255, 255, 255, 0.045); }
.v5-library-reading,
.library-reading { background: var(--v8-paper); }
.library-reading-links a { border-radius: var(--v8-pill); }
.library-epilogue,
.materials-banner { margin-right: clamp(22px, 5vw, 80px); margin-left: clamp(22px, 5vw, 80px); border-radius: 46px; background: linear-gradient(145deg, #66515a, var(--v8-night)); box-shadow: 0 28px 75px rgba(48, 41, 43, 0.16); }
.reading-catalog { background: var(--v8-ivory); }
.reading-links { gap: 13px; }
.materials-banner .v4-button { box-shadow: none; }

@media (hover: hover) {
  .v4-button:hover,
  .v5-response-box button:not(:disabled):hover,
  .library-grid a:hover,
  .reading-links a:hover,
  .v6-supplements .supplement-links a:hover { transform: translateY(-2px); box-shadow: 0 5px 14px rgba(62, 43, 31, 0.08), 0 25px 56px rgba(62, 43, 31, 0.13); }
  .v6-letter-sheet:hover,
  .v6-current-sheet:hover { transform: rotate(-0.35deg) translateY(-3px); box-shadow: 0 4px 10px rgba(62, 43, 31, 0.1), 0 34px 66px rgba(62, 43, 31, 0.2); }
}

@media (max-width: 1160px) {
  .v6-letter-matte { min-height: 0; }
  .v6-current-frame { min-height: 480px; }
  .v8-postal-details .v7-route-node:not(:last-child)::after { background: rgba(140, 74, 88, 0.18); }
}

@media (max-width: 980px) {
  .v6-hero { grid-template-columns: 1fr; gap: 72px; }
  .v6-letter-portrait { width: min(88vw, 720px); }
  .v6-letter-matte { min-height: 0; aspect-ratio: 1.1 / 1; }
  .v6-arrival { gap: 22px; }
  .v6-arrival-object { min-height: 600px; border-bottom: 1px solid rgba(255, 255, 255, 0.15); }
  .v6-arrival-copy { min-height: auto; }
  .v6-journey-line { gap: 16px; }
  .v6-journey-line article:nth-child(3),
  .v6-journey-line article:nth-child(4) { border: 1px solid var(--v8-line-soft); }
  [data-learning-portal] .v6-current-stage { grid-template-columns: 1fr; gap: 76px; }
  .v6-current-art { width: min(88vw, 720px); }
  .v6-current-frame { min-height: 0; aspect-ratio: 1.08 / 1; }
  .v6-roadmap .path-phase { grid-template-columns: 1fr; }
  .v6-roadmap .path-phase > header { border-right: 0; border-bottom: 1px solid var(--v8-line-soft); }
  .v6-roadmap .phase-description { margin: -74px 34px 34px 78px; }
  .v6-roadmap .path-phase ol,
  .v6-phase-preview { grid-column: 1; grid-row: auto; padding: 24px 28px 30px; }
  body[data-v5-unit][data-v7-theme] .lesson-head,
  body[data-v5-resource] .lesson-head,
  body[data-v5-resource="epilogue"] .lesson-head { padding-right: 48%; }
}

@media (max-width: 760px) {
  .v6-header,
  .v6-portal-header { min-height: 66px; padding-inline: 18px; }
  .v6-header .v4-mark span,
  .v6-portal-header .v4-mark span { display: none; }
  .v6-hero { padding: 48px 20px 76px; gap: 28px; }
  .v6-hero-copy .v4-kicker { margin-bottom: 18px; }
  .v6-hero h1 { font-size: clamp(4.8rem, 25vw, 7rem); }
  .v6-hero-promise { margin-top: 22px; margin-left: 0; font-size: clamp(2.05rem, 9.5vw, 3rem); }
  .v6-hero-lead { margin-top: 15px; line-height: 1.72; }
  .v6-hero-lead,
  .v6-hero-actions,
  .v7-home-status { margin-left: 0; }
  .v6-hero-actions { margin-top: 22px; align-items: center; flex-direction: row; flex-wrap: wrap; gap: 14px; }
  .v6-hero-actions .v4-button { min-height: 50px; padding-inline: 22px; }
  .v7-home-status { width: 100%; margin-top: 18px; padding: 15px 17px 14px; border-radius: 20px 20px 25px 25px; }
  .v6-letter-portrait { width: 100%; }
  .v6-letter-matte { min-height: 0; aspect-ratio: 1.04 / 1; padding: 32px 20px; border-radius: 30px; overflow: visible; }
  .v6-letter-matte::before { inset: 13px; border-radius: 20px; }
  .v6-letter-sheet { width: 100%; padding: 9px; border-radius: 15px 17px 14px 16px; transform: rotate(-0.65deg); }
  .v6-letter-sheet img { height: auto !important; border-radius: 8px 10px 7px 9px; }
  .v6-letter-shadow { right: 6%; left: 6%; aspect-ratio: 1800 / 771; border-radius: 14px; }
  .v6-postmark { width: 76px; height: 76px; }
  .v6-postmark b { font-size: 1.3rem; }
  .v6-postmark span { font-size: 0.38rem; }
  .v6-seal-rail { top: 20px; left: 20px; }
  .v6-seal-rail li { width: 23px; height: 23px; }
  .v6-arrival { padding: 70px 18px; }
  .v6-arrival-object,
  .v6-arrival-copy { border-radius: 30px; }
  .v6-arrival-object { min-height: 520px; padding: 42px 26px; }
  .v6-arrival-object::before { inset: 17px; border-radius: 20px; }
  .v6-arrival-copy { padding: 66px 24px; }
  .v6-journey { padding: 90px 20px; }
  .v6-journey-line { grid-template-columns: 1fr; }
  .v6-journey-line article,
  .v6-journey-line article:last-child,
  .v6-journey-line article:nth-child(3),
  .v6-journey-line article:nth-child(4) { min-height: 220px; border: 1px solid var(--v8-line-soft); border-radius: 24px; }
  .v6-journey-line h3 { padding-top: 42px; }
  .v6-enter-course { grid-template-columns: 1fr 26px; border-radius: 24px; }
  .v6-enter-course > b { display: none; }
  .v6-closing::before { inset: 20px; border-radius: 32px; }

  .v6-course-position { display: none; }
  [data-learning-portal] .v6-current-stage { min-height: auto; padding: 72px 20px 84px; gap: 58px; }
  .v6-current-copy { padding-top: 18px; }
  .v6-current-copy h1 { font-size: clamp(3rem, 14vw, 4.8rem); }
  .v6-current-count { top: -20px; }
  .v6-current-count > span { font-size: 8rem; }
  .v6-current-art { width: 100%; }
  .v6-current-frame { min-height: 0; aspect-ratio: 1.04 / 1; padding: 32px 20px; border-radius: 30px; }
  .v6-current-frame::before { inset: 14px; border-radius: 20px; }
  .v6-current-sheet { min-height: 170px; padding: 10px; border-radius: 16px 18px 15px 17px; }
  .v6-current-sheet img { width: auto; max-width: 100%; height: auto !important; max-height: 300px; }
  .v6-current-stamp { width: 76px; height: 76px; }
  .v6-course .v8-postal-details { width: calc(100% - 40px); margin-top: 38px; border-radius: 24px; }
  .v8-postal-details > summary { min-height: 92px; padding: 20px; gap: 14px; grid-template-columns: 1fr 36px; }
  .v8-postal-details > summary em { display: none; }
  .v8-postal-details .v7-postal-overview { padding: 48px 20px; border-radius: 0 0 24px 24px; }
  .v8-postal-details .v7-postal-route { grid-template-columns: 1fr; overflow: visible; gap: 9px; }
  .v8-postal-details .v7-route-node { display: grid; min-height: 58px; padding: 8px 11px; align-items: center; justify-items: start; border: 1px solid var(--v8-line-soft); border-radius: 17px; grid-template-columns: 42px 1fr; background: rgba(255, 249, 240, 0.58); text-align: left; }
  .v8-postal-details .v7-route-node > i { width: 38px; height: 38px; max-width: none; }
  .v8-postal-details .v7-route-node > small { margin: 0 0 0 10px; }
  .v8-postal-details .v7-route-node::after { display: none !important; }
  .v8-postal-details .v7-route-legend { justify-content: flex-start; }
  .v6-roadmap { padding: 88px 20px; }
  .v6-roadmap .path-phase { border-radius: 24px; }
  .v6-roadmap .path-phase > header { min-height: 178px; padding: 28px 22px; grid-template-columns: 34px 1fr auto; }
  .v6-roadmap .phase-description { margin: -62px 22px 28px 56px; }
  .v6-phase-preview { padding: 18px 20px 22px; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v6-phase-preview span { min-height: 64px; padding: 11px 13px; border-style: dashed; border-radius: 14px; }
  .v6-roadmap .path-phase ol { padding: 20px; }
  .v6-supplements { margin-inline: 20px; padding: 66px 20px; border-radius: 30px; }

  body[data-v5-unit],
  body[data-v5-resource] { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
  body[data-v5-unit] .topbar,
  body[data-v5-resource] .topbar { min-height: 64px; }
  body[data-v5-unit][data-v7-theme] .lesson-head,
  body[data-v5-resource] .lesson-head,
  body[data-v5-resource="epilogue"] .lesson-head {
    display: flex;
    min-height: auto;
    padding: min(64vh, 570px) 20px 72px;
    border-radius: 0 0 34px 34px;
    background: radial-gradient(circle at 80% 8%, color-mix(in srgb, var(--v7-lesson-accent, var(--v8-wine)) 12%, transparent), transparent 22rem), linear-gradient(150deg, #fff9f0, var(--v7-lesson-pale, #f6ebdd));
  }
  body[data-v5-unit][data-v7-theme] .lesson-head::before,
  body[data-v5-resource] .lesson-head::before,
  body[data-v5-resource="epilogue"] .lesson-head::before { inset: 24px 20px auto; height: min(50vh, 440px); border-width: 10px; border-radius: 27px; }
  body[data-v5-unit][data-v7-theme][data-v4-resource="welcome"] .lesson-head,
  body[data-v5-unit][data-v7-theme][data-v4-resource="magic"] .lesson-head { padding-top: min(37vh, 320px); }
  body[data-v5-unit][data-v7-theme][data-v4-resource="welcome"] .lesson-head::before,
  body[data-v5-unit][data-v7-theme][data-v4-resource="magic"] .lesson-head::before { inset: 24px 20px auto; height: min(25vh, 190px); }
  body[data-v5-unit][data-v7-theme] .lesson-head h1,
  body[data-v5-resource] .lesson-head h1 { font-size: clamp(2.7rem, 12.5vw, 4.1rem); }
  .v7-lesson-index { top: 64px; padding: 7px 28px 7px 20px; scroll-padding-inline: 20px 28px; gap: 3px; }
  .v7-lesson-index a { min-height: 38px; }
  body[data-v5-unit] .content,
  body[data-v5-resource] .content { width: calc(100% - 38px); padding: 92px 0; }
  body[data-v5-unit] :is(.note, .daily-task, .reference-reading, .lesson-toc, .toc-section, .reference-group, .reading-list, .reference-links, .edit-flow),
  body[data-v5-resource] :is(.note, .daily-task, .reference-reading, .lesson-toc, .toc-section, .reference-group, .reading-list, .reference-links, .edit-flow) { padding: 25px 20px !important; border-radius: 20px !important; }
  .v5-completion { width: calc(100% - 24px); min-height: 0; margin-top: 20px; padding: 95px 18px; border-radius: 34px 34px 0 0; }
  .v5-completion::before { inset: 14px; border-radius: 24px 24px 0 0; }
  .v5-response-box { padding: 23px 19px; border-radius: 23px; }
  .v6-mobile-dock {
    right: 12px;
    bottom: max(10px, env(safe-area-inset-bottom));
    left: 12px;
    min-height: 76px;
    padding: 11px 12px 11px 16px;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 24px;
    color: #fff8ef;
    background: rgba(58, 45, 40, 0.94);
    box-shadow: 0 14px 40px rgba(46, 31, 24, 0.23), inset 0 1px rgba(255, 255, 255, 0.1);
    transition: opacity 220ms ease, transform 260ms ease, visibility 220ms ease;
  }
  .v6-mobile-dock.is-completion-visible { visibility: hidden; pointer-events: none; opacity: 0; transform: translateY(calc(100% + 28px)); }
  .v6-mobile-dock small { color: #dfbb8c; }
  .v6-mobile-dock a { min-height: 46px; padding-inline: 16px; color: var(--v8-cocoa); background: #f3e3cf; }
  .v6-mobile-dock[data-state="waiting"] a { color: #f0d7aa; border-color: rgba(240, 215, 170, 0.28); background: rgba(255, 255, 255, 0.04); }
  .longform-header { min-height: 64px; }
  .longform-hero { border-radius: 0 0 34px 34px; }
  .longform-hero figure { border-radius: 27px; }
  .longform-hero img { height: auto !important; }
  .longform-return { margin-inline: 12px; border-radius: 34px 34px 0 0; }
  .library-seven,
  .library-epilogue,
  .materials-banner { margin-inline: 14px; border-radius: 32px; }
  .library-grid a,
  .reading-links a { border-radius: 20px; }
}

@media (max-width: 390px) {
  .v6-header nav,
  .v6-portal-header nav { gap: 7px; }
  .v6-header nav a,
  .v6-portal-header nav a { font-size: 0.63rem; }
  .v6-header .header-enter { padding-inline: 10px; }
  .v6-letter-matte { padding-inline: 14px; }
  .v6-seal-rail { gap: 3px; }
  .v6-seal-rail li { width: 20px; height: 20px; font-size: 0.48rem; }
  .v6-current-frame { padding-inline: 14px; }
  .v6-mobile-dock { right: 8px; left: 8px; padding-left: 13px; }
  .v6-mobile-dock b { max-width: 180px; }
}

@media (max-width: 330px) {
  .v6-header nav a:not(.header-enter),
  .v6-portal-header nav a:first-child { display: none; }
  .v6-mobile-dock b { max-width: 140px; }
  .v6-mobile-dock a { padding-inline: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .v4-button,
  .v5-response-box button,
  .v6-letter-sheet,
  .v6-current-sheet,
  .v6-mobile-dock,
  .library-grid a,
  .reading-links a { transition: none !important; }
}


/* /assets/v9.css */
/*
  Seven Letters V9 — immersive editorial layer
  Presentation only. Course order, completion rules and the 24-hour state
  machine remain owned by v7-course-data.js and v7-journey.js.
*/

:root {
  --v9-cream: #fffaf1;
  --v9-parchment: #f3e5d2;
  --v9-ink: #382a27;
  --v9-wine: #7f3546;
  --v9-wine-deep: #3e2029;
  --v9-forest: #263b35;
  --v9-sage: #8ea08d;
  --v9-gold: #c59d62;
  --v9-line: rgba(70, 45, 37, 0.14);
  --v9-ease: cubic-bezier(0.22, 0.72, 0.22, 1);
  --v9-shadow-paper: 0 3px 8px rgba(59, 36, 25, 0.08), 0 26px 70px rgba(59, 36, 25, 0.17);
}

html { scroll-padding-top: 118px; }

body.v9-immersive .v9-home-scene,
body.v9-immersive .v9-current-letter,
body.v9-immersive .v9-postal-details {
  position: relative;
  isolation: isolate;
}

/* Home: four distinct rooms — write, send, arrive, grow. */
.v6-hero.v9-home-scene {
  overflow: clip;
  background:
    radial-gradient(circle at 77% 46%, rgba(255, 255, 255, 0.92) 0 10%, rgba(255, 255, 255, 0.24) 42%, transparent 67%),
    radial-gradient(circle at 8% 12%, rgba(142, 71, 87, 0.13), transparent 28rem),
    linear-gradient(132deg, #fffaf1 0%, #f3e5d3 62%, #e5ceb8 100%);
}

.v6-hero.v9-home-scene::before {
  position: absolute;
  z-index: -1;
  top: -14%;
  right: -3%;
  width: min(30vw, 430px);
  aspect-ratio: 600 / 1050;
  background: url("/assets/cover/hilma-af-klint-1.webp") center / contain no-repeat;
  content: "";
  filter: saturate(0.72) sepia(0.08);
  mix-blend-mode: multiply;
  opacity: 0.18;
  pointer-events: none;
  transform: rotate(5deg);
}

.v6-hero.v9-home-scene::after {
  position: absolute;
  z-index: -1;
  bottom: -24%;
  left: -7%;
  display: block;
  width: min(29vw, 430px);
  aspect-ratio: 1;
  border: 1px solid rgba(126, 78, 56, 0.11);
  border-radius: 50%;
  background:
    radial-gradient(circle, transparent 0 29%, rgba(126, 78, 56, 0.09) 29.5% 30%, transparent 30.5% 46%, rgba(126, 78, 56, 0.07) 46.5% 47%, transparent 47.5%);
  content: "";
  opacity: 0.75;
  pointer-events: none;
}

.v6-letter-portrait {
  perspective: 1200px;
}

.v6-letter-matte {
  transition: transform 700ms var(--v9-ease), box-shadow 700ms var(--v9-ease);
  transform: rotate(0.25deg);
}

@media (hover: hover) and (pointer: fine) {
  .v6-letter-portrait:hover .v6-letter-matte {
    box-shadow: 0 42px 100px rgba(62, 43, 31, 0.23), inset 0 1px rgba(255, 255, 255, 0.9);
    transform: rotate(-0.35deg) translateY(-7px);
  }
}

.v6-manifesto.v9-home-scene {
  display: grid;
  min-height: 100svh;
  padding: clamp(90px, 11vw, 168px) clamp(24px, 7vw, 112px);
  overflow: clip;
  align-content: center;
  align-items: center;
  gap: 36px clamp(46px, 8vw, 126px);
  grid-template-areas:
    "heading art"
    "copy art";
  grid-template-columns: minmax(360px, 0.9fr) minmax(480px, 1.1fr);
  color: #fff7eb;
  background:
    radial-gradient(circle at 78% 42%, rgba(193, 143, 94, 0.22), transparent 30rem),
    radial-gradient(circle at 8% 12%, rgba(141, 74, 91, 0.35), transparent 34rem),
    linear-gradient(145deg, #241d20, #40272e 58%, #2b342f);
}

.v6-manifesto.v9-home-scene::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(110deg, rgba(255, 255, 255, 0.035) 0 1px, transparent 1px 100%) 0 0 / 90px 90px,
    radial-gradient(circle at center, transparent 0 48%, rgba(7, 4, 5, 0.18) 100%);
  content: "";
  pointer-events: none;
}

.v6-manifesto.v9-home-scene > .v6-section-index {
  position: absolute;
  top: clamp(34px, 5vw, 74px);
  left: clamp(24px, 7vw, 112px);
  color: rgba(255, 247, 235, 0.34);
}

.v6-manifesto.v9-home-scene > div:first-of-type { grid-area: heading; }
.v6-manifesto.v9-home-scene .v6-manifesto-copy { grid-area: copy; }
.v6-manifesto.v9-home-scene .v4-kicker { color: #d9b47d; }
.v6-manifesto.v9-home-scene h2 {
  max-width: 8.5em;
  color: #fff8ed;
  font-size: clamp(3rem, 4.1vw, 5.2rem);
  line-height: 1.12;
}
.v6-manifesto.v9-home-scene .v6-manifesto-copy {
  max-width: 540px;
  color: rgba(255, 247, 235, 0.78);
  font-size: clamp(1rem, 1.25vw, 1.17rem);
  line-height: 2;
}
.v6-manifesto.v9-home-scene .v6-manifesto-copy p { color: inherit; }

.v9-dispatch-letter {
  position: relative;
  width: min(100%, 920px);
  margin: 0;
  grid-area: art;
  justify-self: end;
}

.v9-dispatch-letter::before,
.v9-dispatch-letter::after {
  position: absolute;
  z-index: -1;
  border: 1px solid rgba(255, 247, 235, 0.13);
  border-radius: 28px;
  background: rgba(244, 222, 196, 0.11);
  content: "";
  pointer-events: none;
}
.v9-dispatch-letter::before { inset: 7% -3% -5% 8%; transform: rotate(3deg); }
.v9-dispatch-letter::after { inset: -4% 9% 8% -3%; transform: rotate(-2.2deg); }
.v9-dispatch-letter > div {
  padding: clamp(10px, 1.2vw, 17px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 28px 34px 26px 31px;
  background: #eee8dc;
  box-shadow: 0 40px 95px rgba(0, 0, 0, 0.32), inset 0 1px rgba(255, 255, 255, 0.78);
  transform: rotate(-1.4deg);
}
.v9-dispatch-letter img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px 22px 17px 20px;
  filter: saturate(0.78) contrast(1.03) brightness(1.03);
}
.v9-dispatch-letter figcaption {
  display: flex;
  margin-top: 24px;
  color: rgba(255, 247, 235, 0.55);
  font-size: 0.7rem;
  letter-spacing: 0.11em;
  justify-content: space-between;
}

.v6-arrival.v9-home-scene {
  min-height: 100svh;
  overflow: clip;
  background:
    linear-gradient(90deg, rgba(35, 45, 41, 0.98) 0 50%, rgba(52, 31, 38, 0.97) 50% 100%),
    #27342f;
}
.v6-arrival.v9-home-scene::before {
  position: absolute;
  z-index: -1;
  right: -8%;
  bottom: -24%;
  width: min(42vw, 620px);
  aspect-ratio: 1910 / 3460;
  background: url("/assets/cover/hilma-af-klint-2.jpeg") center / contain no-repeat;
  content: "";
  filter: sepia(0.12) saturate(0.68);
  mix-blend-mode: screen;
  opacity: 0.08;
  pointer-events: none;
  transform: rotate(7deg);
}
.v6-arrival.v9-home-scene .v6-arrival-object,
.v6-arrival.v9-home-scene .v6-arrival-copy {
  position: relative;
  z-index: 1;
}
.v6-arrival.v9-home-scene .v6-arrival-copy h2 {
  font-size: clamp(2.35rem, 3vw, 4.25rem);
  line-height: 1.16;
}
.v6-arrival.v9-home-scene .v6-arrival-object {
  border: 1px solid rgba(255, 248, 236, 0.09);
  border-radius: 42px;
  background: rgba(255, 248, 236, 0.035);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.04), 0 38px 90px rgba(8, 5, 6, 0.18);
  backdrop-filter: blur(3px);
}
.v6-arrival.v9-home-scene .v6-arrival-track i {
  box-shadow: 0 0 0 5px rgba(218, 182, 126, 0.06);
}

.v6-journey.v9-home-scene {
  min-height: 100svh;
  overflow: clip;
  background:
    radial-gradient(circle at 50% 10%, rgba(255, 255, 255, 0.88), transparent 31rem),
    linear-gradient(150deg, #fffaf2, #f1e3d0 67%, #e5d1bb);
}
.v6-journey.v9-home-scene .v6-journey-heading h2 {
  font-size: clamp(3rem, 4.15vw, 5.2rem);
}
.v6-journey.v9-home-scene > :not(.v9-botanical-field) {
  position: relative;
  z-index: 2;
}
.v9-botanical-field {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.v9-botanical-field img {
  position: absolute;
  height: auto;
  filter: saturate(0.66) sepia(0.05);
  mix-blend-mode: multiply;
  opacity: 0.12;
}
.v9-botanical-field img:nth-child(1) { top: -7%; left: -5%; width: min(24vw, 320px); transform: rotate(-8deg); }
.v9-botanical-field img:nth-child(2) { right: -5%; bottom: -22%; width: min(31vw, 430px); transform: rotate(9deg); }
.v9-botanical-field img:nth-child(3) { right: 26%; top: 2%; width: min(14vw, 210px); transform: rotate(-3deg); opacity: 0.07; }
.v6-journey.v9-home-scene .v6-journey-line article {
  backdrop-filter: blur(7px);
  background: rgba(255, 250, 242, 0.66);
}
.v6-journey.v9-home-scene .v6-journey-line .is-publishing {
  background:
    radial-gradient(circle at 82% 18%, rgba(222, 180, 120, 0.16), transparent 15rem),
    linear-gradient(145deg, rgba(67, 35, 44, 0.97), rgba(39, 53, 47, 0.96));
}

/* Course portal: the current letter colours the room around it. */
[data-learning-portal] { --v9-current-art: none; }
[data-learning-portal] .v9-current-letter {
  overflow: clip;
  background:
    radial-gradient(circle at 13% 18%, rgba(255, 255, 255, 0.84), transparent 29rem),
    linear-gradient(145deg, #f6e9d8, #e6d1ba);
}
[data-learning-portal] .v9-current-letter::before {
  position: absolute;
  z-index: -2;
  inset: -55px;
  background-image:
    linear-gradient(90deg, rgba(246, 235, 221, 0.91) 0 40%, rgba(246, 235, 221, 0.34) 72%, rgba(246, 235, 221, 0.72) 100%),
    var(--v9-current-art);
  background-position: center;
  background-size: cover;
  content: "";
  filter: blur(28px) saturate(0.72) contrast(0.92);
  opacity: 0.38;
  pointer-events: none;
  transform: scale(1.09);
  transition: opacity 360ms ease;
}
[data-learning-portal] .v9-current-letter::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    radial-gradient(circle at 74% 44%, transparent 0 17rem, rgba(255, 250, 242, 0.33) 31rem, transparent 46rem),
    linear-gradient(90deg, rgba(255, 250, 242, 0.62), transparent 55%);
  content: "";
  pointer-events: none;
}
[data-learning-portal] .v9-current-letter > * { position: relative; z-index: 1; }
[data-learning-portal].v9-art-changing .v9-current-letter::before { opacity: 0.08; }
[data-learning-portal] .v6-current-art {
  transition: transform 620ms var(--v9-ease), filter 620ms var(--v9-ease);
}
[data-learning-portal].v9-art-changing .v6-current-art {
  filter: blur(4px);
  transform: translateY(8px) scale(0.985);
}

.v9-postal-details {
  overflow: clip;
  box-shadow: 0 22px 65px rgba(60, 41, 30, 0.1), inset 0 1px rgba(255, 255, 255, 0.82);
}
.v9-postal-details > summary { cursor: pointer; }
.v9-postal-details > summary strong { display: block; color: var(--v8-cocoa); }
.v9-postal-details > summary:focus-visible {
  outline: 3px solid rgba(127, 53, 70, 0.27);
  outline-offset: -3px;
}
.v9-postal-details .v7-postal-overview {
  background:
    radial-gradient(circle at 8% 8%, rgba(255, 255, 255, 0.88), transparent 24rem),
    linear-gradient(145deg, #fffaf2, #efe0cb);
}
.v9-postal-details .v7-route-node {
  transition: color 220ms ease, transform 220ms ease;
}
@media (hover: hover) and (pointer: fine) {
  .v9-postal-details a.v7-route-node:hover { transform: translateY(-4px); }
}

/* Lessons: editorial scenes rather than one unbroken sheet. */
body[data-v5-unit="principle-7"] {
  --v4-lesson-art: url("/assets/2026-08-07-final-lesson/principle-7-art.jpeg");
}
body.v9-immersive[data-v5-unit] .lesson-head,
body.v9-immersive[data-v5-resource] .lesson-head {
  overflow: clip;
  box-shadow: 0 28px 80px rgba(62, 43, 31, 0.1);
}
body.v9-immersive[data-v5-unit] .lesson-head::before,
body.v9-immersive[data-v5-resource] .lesson-head::before {
  transition: transform 900ms var(--v9-ease), box-shadow 900ms var(--v9-ease);
}
@media (hover: hover) and (pointer: fine) {
  body.v9-immersive[data-v5-unit] .lesson-head:hover::before,
  body.v9-immersive[data-v5-resource] .lesson-head:hover::before {
    box-shadow: 0 42px 105px rgba(62, 43, 31, 0.22), inset 0 1px rgba(255, 255, 255, 0.88);
    transform: rotate(-0.35deg) translateY(-5px);
  }
}

body.v9-immersive[data-v5-unit] .content,
body.v9-immersive[data-v5-resource] .content {
  padding-top: clamp(115px, 14vw, 190px);
  padding-bottom: clamp(125px, 15vw, 205px);
}

body.v9-immersive :is(.content, .longform-content) h2.v9-section-heading {
  scroll-margin-top: 128px;
}

body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break {
  position: relative;
  left: 50%;
  display: grid;
  width: min(1180px, calc(100vw - 64px));
  min-height: clamp(250px, 36vw, 430px);
  margin-top: clamp(110px, 15vw, 190px);
  margin-bottom: clamp(70px, 9vw, 115px);
  padding: clamp(54px, 8vw, 104px);
  overflow: hidden;
  align-items: end;
  border: 1px solid rgba(77, 50, 40, 0.1);
  border-radius: 42px;
  color: var(--v9-ink);
  background:
    radial-gradient(circle at 82% 18%, color-mix(in srgb, var(--v7-lesson-accent, var(--v9-wine)) 19%, transparent), transparent 22rem),
    linear-gradient(145deg, #fff9ee, var(--v7-lesson-pale, #ecddca));
  box-shadow: 0 32px 84px rgba(61, 40, 28, 0.12), inset 0 1px rgba(255, 255, 255, 0.82);
  translate: -50% 0;
}
body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break::before {
  top: clamp(44px, 6vw, 76px);
  left: clamp(54px, 8vw, 104px);
  width: 74px;
}
body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break::after {
  position: absolute;
  top: 30px;
  right: 34px;
  color: color-mix(in srgb, var(--v7-lesson-accent, var(--v9-wine)) 12%, transparent);
  content: attr(data-v9-scene-number);
  font: 400 clamp(5rem, 13vw, 10rem)/1 Georgia, serif;
  letter-spacing: -0.08em;
}
body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break[data-v9-scene-tone="wine"] {
  color: #fff8ec;
  border-color: rgba(255, 255, 255, 0.09);
  background:
    radial-gradient(circle at 82% 16%, rgba(195, 146, 93, 0.23), transparent 24rem),
    linear-gradient(145deg, #4b2732, #272d2a);
}
body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break[data-v9-scene-tone="wine"]::before { background: #d5ad75; }
body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break[data-v9-scene-tone="wine"]::after { color: rgba(255, 248, 236, 0.08); }
body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break[data-v9-scene-tone="art"] {
  padding-right: min(46%, 520px);
  background:
    linear-gradient(90deg, rgba(255, 249, 238, 0.98) 0 47%, rgba(255, 249, 238, 0.58) 65%, rgba(255, 249, 238, 0.16) 100%),
    var(--v4-lesson-art, none) 88% center / 42% auto no-repeat,
    linear-gradient(145deg, #f7ead8, var(--v7-lesson-pale, #e7d4bd));
}
body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break[data-v9-scene-tone="art"]::after { color: rgba(85, 51, 42, 0.07); }
body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break[data-v9-scene-tone="garden"] {
  background:
    radial-gradient(circle at 78% 25%, rgba(153, 168, 139, 0.28), transparent 22rem),
    linear-gradient(145deg, #f5ead9, #dce1d2);
}
body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break[data-v9-scene-tone="dusk"] {
  color: #fff8ec;
  border-color: rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(circle at 75% 18%, rgba(140, 72, 88, 0.3), transparent 24rem),
    linear-gradient(145deg, #303c37, #30242a);
}
body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break[data-v9-scene-tone="dusk"]::before { background: #c9a66f; }
body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break[data-v9-scene-tone="dusk"]::after { color: rgba(255, 248, 236, 0.07); }

body.v9-immersive :is(.content, .longform-content) figure.v9-visual,
body.v9-immersive :is(.content, .longform-content) img.v9-visual {
  position: relative;
}
body.v9-immersive :is(.content, .longform-content) figure.v9-art-wide,
body.v9-immersive :is(.content, .longform-content) img.v9-art-wide,
body.v9-immersive .v9-welcome-manuscript {
  left: 50%;
  width: min(1160px, calc(100vw - 64px));
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  margin-top: clamp(64px, 9vw, 110px);
  margin-bottom: clamp(64px, 9vw, 110px);
  translate: -50% 0;
}
body.v9-immersive :is(.content, .longform-content) figure.v9-art-wide img,
body.v9-immersive :is(.content, .longform-content) img.v9-art-wide,
body.v9-immersive .v9-welcome-manuscript img {
  width: 100%;
}
body.v9-immersive :is(.content, .longform-content) figure.v9-art-portrait,
body.v9-immersive :is(.content, .longform-content) img.v9-art-portrait {
  width: min(520px, 100%);
  margin-right: auto;
  margin-left: auto;
}
body.v9-immersive :is(.content, .longform-content) figure.v9-attachment {
  width: min(620px, 92%);
  margin: clamp(62px, 8vw, 100px) auto;
  padding: clamp(12px, 2vw, 20px);
  border: 1px solid rgba(79, 53, 42, 0.14);
  border-radius: 25px 29px 22px 28px;
  background: #fffaf0;
  box-shadow: var(--v9-shadow-paper);
  transform: rotate(-0.55deg);
}
body.v9-immersive :is(.content, .longform-content) figure.v9-attachment:nth-of-type(even) { transform: rotate(0.65deg); }
body.v9-immersive :is(.content, .longform-content) figure.v9-attachment img { margin: 0 auto; box-shadow: none; }
body.v9-immersive :is(.content, .longform-content) figure.v9-attachment::before {
  position: absolute;
  z-index: 2;
  top: -13px;
  left: 50%;
  width: 92px;
  height: 27px;
  background: rgba(221, 196, 156, 0.6);
  box-shadow: 0 2px 5px rgba(60, 39, 27, 0.08);
  content: "";
  transform: translateX(-50%) rotate(-1deg);
}
body.v9-immersive :is(.content, .longform-content) .v9-art-pair {
  position: relative;
  left: 50%;
  display: grid;
  width: min(1080px, calc(100vw - 64px));
  margin: clamp(68px, 9vw, 112px) 0;
  align-items: start;
  gap: clamp(18px, 3vw, 38px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  translate: -50% 0;
}
body.v9-immersive :is(.content, .longform-content) .v9-art-pair > figure { width: 100%; margin: 0; }

body.v9-immersive :is(.content, .longform-content) .v9-letter-fragment {
  position: relative;
  width: min(760px, 96%);
  margin: clamp(52px, 7vw, 86px) auto !important;
  padding: clamp(30px, 4.5vw, 48px) !important;
  border-radius: 24px 29px 23px 27px !important;
  box-shadow: 0 3px 7px rgba(59, 36, 25, 0.07), 0 24px 58px rgba(59, 36, 25, 0.11) !important;
  transform: rotate(-0.22deg);
}
body.v9-immersive :is(.content, .longform-content) .v9-letter-fragment:nth-of-type(even) { transform: rotate(0.2deg); }
body.v9-immersive :is(.content, .longform-content) .v9-letter-fragment::after {
  position: absolute;
  top: 19px;
  right: 22px;
  color: color-mix(in srgb, var(--v7-lesson-accent, var(--v9-wine)) 25%, transparent);
  content: attr(data-v9-fragment);
  font: 400 0.65rem/1 Georgia, serif;
  letter-spacing: 0.12em;
}

.v9-welcome-manuscript {
  position: relative;
  padding: clamp(13px, 2vw, 22px);
  border: 1px solid rgba(75, 50, 39, 0.14);
  border-radius: 29px 34px 26px 31px;
  background: #f7efe3;
  box-shadow: var(--v9-shadow-paper);
  transform: rotate(-0.45deg);
}
.v9-welcome-manuscript > div { overflow: hidden; border-radius: 18px 22px 17px 20px; }
.v9-welcome-manuscript img {
  display: block;
  height: auto !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: saturate(0.78) contrast(1.025);
}
.v9-welcome-manuscript figcaption {
  display: flex;
  padding: 18px 4px 2px;
  color: var(--v8-muted);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  justify-content: space-between;
}

/* Progressive motion is attached only after the content is already usable. */
body.v9-motion .v9-reveal {
  opacity: 0;
  filter: blur(2.5px);
  transition: opacity 720ms var(--v9-ease), filter 820ms var(--v9-ease);
}
body.v9-motion .v9-reveal.is-visible {
  opacity: 1;
  filter: none;
}
body.v9-motion .v6-journey-line article.v9-reveal:nth-child(2) { transition-delay: 70ms; }
body.v9-motion .v6-journey-line article.v9-reveal:nth-child(3) { transition-delay: 140ms; }
body.v9-motion .v6-journey-line article.v9-reveal:nth-child(4) { transition-delay: 210ms; }

@media (max-width: 1040px) {
  .v6-manifesto.v9-home-scene {
    min-height: auto;
    grid-template-areas:
      "heading"
      "copy"
      "art";
    grid-template-columns: minmax(0, 1fr);
  }
  .v9-dispatch-letter { width: min(100%, 820px); margin-top: 24px; justify-self: center; }
  .v6-manifesto.v9-home-scene h2 { max-width: 12em; }
  .v6-arrival.v9-home-scene { min-height: auto; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 82px; }
  .v6-hero.v9-home-scene::before { top: 1%; right: -18%; width: 62vw; opacity: 0.12; }
  .v6-hero.v9-home-scene::after { display: none; }
  .v6-letter-matte { transform: none; }

  .v6-manifesto.v9-home-scene {
    min-height: 100svh;
    padding: 104px 20px 90px;
    gap: 26px;
  }
  .v6-manifesto.v9-home-scene > .v6-section-index { top: 48px; left: 20px; }
  .v6-manifesto.v9-home-scene h2 { font-size: clamp(2.75rem, 13vw, 4.2rem); }
  .v9-dispatch-letter { margin-top: 32px; }
  .v9-dispatch-letter > div { border-radius: 21px; transform: rotate(-0.8deg); }
  .v9-dispatch-letter figcaption { display: grid; gap: 5px; }

  .v6-arrival.v9-home-scene {
    background: linear-gradient(155deg, #263832 0 49%, #3d242d 49% 100%);
  }
  .v6-arrival.v9-home-scene .v6-arrival-copy h2 { font-size: clamp(2.15rem, 9vw, 2.75rem); }
  .v6-arrival.v9-home-scene .v6-arrival-object { border-radius: 28px; }
  .v9-botanical-field img:nth-child(1) { top: 0; left: -25%; width: 58vw; }
  .v9-botanical-field img:nth-child(2) { right: -28%; bottom: -4%; width: 66vw; }
  .v9-botanical-field img:nth-child(3) { display: none; }

  [data-learning-portal] .v9-current-letter::before {
    inset: -30px;
    background-image: linear-gradient(rgba(246, 235, 221, 0.67), rgba(246, 235, 221, 0.86)), var(--v9-current-art);
    filter: blur(24px) saturate(0.7);
    opacity: 0.3;
  }

  body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break {
    width: calc(100vw - 28px);
    min-height: 250px;
    margin-top: 105px;
    margin-bottom: 66px;
    padding: 72px 28px 42px;
    border-radius: 28px;
    font-size: clamp(1.9rem, 8.7vw, 2.65rem);
  }
  body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break::before { top: 48px; left: 28px; width: 56px; }
  body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break::after { top: 22px; right: 24px; font-size: 5.6rem; }
  body.v9-immersive :is(.content, .longform-content) h2.v9-scene-break[data-v9-scene-tone="art"] {
    padding-right: 28px;
    background:
      linear-gradient(rgba(255, 249, 238, 0.62), rgba(255, 249, 238, 0.96)),
      var(--v4-lesson-art, none) center 24% / 74% auto no-repeat,
      linear-gradient(145deg, #f7ead8, var(--v7-lesson-pale, #e7d4bd));
  }

  body.v9-immersive :is(.content, .longform-content) figure.v9-art-wide,
  body.v9-immersive :is(.content, .longform-content) img.v9-art-wide,
  body.v9-immersive .v9-welcome-manuscript {
    width: calc(100vw - 28px);
  }
  body.v9-immersive :is(.content, .longform-content) .v9-art-pair {
    width: calc(100vw - 28px);
    gap: 14px;
  }
  body.v9-immersive :is(.content, .longform-content) figure.v9-attachment { width: 96%; padding: 10px; }
  .v9-welcome-manuscript { padding: 10px; border-radius: 21px; }
  .v9-welcome-manuscript figcaption { display: grid; gap: 4px; font-size: 0.66rem; }
}

@media (max-width: 480px) {
  body.v9-immersive :is(.content, .longform-content) .v9-art-pair { grid-template-columns: 1fr; }
  .v9-postal-details > summary strong { font-size: 1.02rem; }
}

@media (prefers-reduced-motion: reduce) {
  .v6-letter-matte,
  [data-learning-portal] .v6-current-art,
  .v9-postal-details .v7-route-node,
  body.v9-motion .v9-reveal {
    transition: none !important;
  }
  body.v9-motion .v9-reveal {
    opacity: 1 !important;
    filter: none !important;
  }
}


/* /assets/v10.css */
/*
  Seven Letters V10 — the arriving artwork
  Homepage presentation only. Course order and the 24-hour state machine stay
  owned by v7-course-data.js and v7-journey.js.
*/

:root {
  --v10-paper: #f7eddf;
  --v10-paper-light: #fffaf2;
  --v10-paper-deep: #e5d0b9;
  --v10-ink: #352823;
  --v10-ink-soft: #66544a;
  --v10-wine: #793246;
  --v10-wine-deep: #421f2b;
  --v10-sage: #69796a;
  --v10-gold: #bd9158;
  --v10-line: rgba(70, 42, 31, 0.15);
  --v10-ease: cubic-bezier(0.22, 0.72, 0.22, 1);
}

body.v10-home {
  color: var(--v10-ink);
  background: var(--v10-paper);
}

.v10-home .v6-header {
  border-color: rgba(70, 42, 31, 0.1);
  background: rgba(247, 237, 223, 0.88);
  box-shadow: 0 10px 36px rgba(69, 43, 31, 0.045);
}

.v10-home .v6-header .header-enter {
  border-color: rgba(80, 43, 44, 0.19);
  border-radius: 999px;
  background: rgba(255, 250, 242, 0.56);
}

.v10-home .v6-hero.v9-home-scene {
  min-height: calc(100svh - 76px);
  padding: clamp(52px, 6.4vw, 92px) clamp(24px, 6.5vw, 104px);
  align-items: center;
  gap: clamp(46px, 5.6vw, 92px);
  grid-template-columns: minmax(420px, 0.88fr) minmax(440px, 1.12fr);
  background:
    radial-gradient(circle at 88% 12%, rgba(255, 255, 255, 0.82), transparent 27rem),
    radial-gradient(circle at 7% 88%, rgba(121, 50, 70, 0.075), transparent 28rem),
    linear-gradient(126deg, #fffaf2 0%, #f5e9d9 57%, #e7d2ba 100%);
}

.v10-home .v6-hero.v9-home-scene::before {
  display: block;
  top: auto;
  right: auto;
  bottom: 8%;
  left: -8%;
  width: min(28vw, 410px);
  aspect-ratio: 1;
  border: 1px solid rgba(121, 50, 70, 0.07);
  border-radius: 50%;
  background:
    radial-gradient(circle, transparent 0 31%, rgba(121, 50, 70, 0.055) 31.3% 31.8%, transparent 32.1% 48%, rgba(121, 50, 70, 0.04) 48.3% 48.8%, transparent 49.1%);
  filter: none;
  mix-blend-mode: normal;
  opacity: 1;
  transform: none;
}

.v10-home .v6-hero.v9-home-scene::after {
  position: absolute;
  z-index: 0;
  top: 7%;
  right: 46%;
  bottom: 7%;
  display: block;
  width: 1px;
  height: auto;
  border: 0;
  border-radius: 0;
  background: linear-gradient(transparent, rgba(86, 55, 42, 0.11) 18% 82%, transparent);
  content: "";
  opacity: 0.72;
}

.v10-home .v6-hero-copy {
  z-index: 5;
  max-width: 640px;
}

.v10-home .v6-hero-copy .v4-kicker {
  margin-bottom: clamp(20px, 2.6vw, 34px);
  color: var(--v10-wine);
  letter-spacing: 0.21em;
}

.v10-home .v6-hero-title {
  gap: 13px;
}

.v10-home .v6-hero-title > span {
  margin-top: 8px;
  color: var(--v10-gold);
  font-size: 0.62rem;
}

.v10-home .v6-hero h1 {
  color: var(--v10-wine);
  font-size: clamp(4.8rem, 7.3vw, 8rem);
  letter-spacing: -0.072em;
  line-height: 0.88;
}

.v10-home .v6-hero-promise {
  max-width: 8.7em;
  margin: clamp(28px, 3.7vw, 48px) 0 0 28px;
  color: var(--v10-ink);
  font-size: clamp(2.2rem, 3.05vw, 3.65rem);
  letter-spacing: -0.047em;
  line-height: 1.22;
}

.v10-home .v6-hero-lead {
  max-width: 510px;
  margin: 22px 0 0 28px;
  color: var(--v10-ink-soft);
  font-size: clamp(0.98rem, 1.12vw, 1.1rem);
  line-height: 1.88;
}

.v10-home .v6-hero-actions {
  margin: 28px 0 0 28px;
  gap: 18px;
}

.v10-home .v6-hero-actions .v4-button {
  min-height: 54px;
  min-width: 188px;
  padding-inline: 25px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  color: #fff8ed;
  background: linear-gradient(145deg, #6f2d3f, var(--v10-wine-deep));
  box-shadow: 0 3px 7px rgba(66, 31, 43, 0.14), 0 19px 38px rgba(66, 31, 43, 0.18), inset 0 1px rgba(255, 255, 255, 0.15);
}

.v10-home .v6-hero-actions .v4-text-link {
  color: #684950;
  text-decoration-color: rgba(104, 73, 80, 0.28);
  text-underline-offset: 5px;
}

.v10-home .v7-home-status {
  display: grid;
  max-width: 530px;
  margin: 23px 0 0 28px;
  padding: 13px 15px 12px;
  overflow: hidden;
  align-items: center;
  gap: 4px 14px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  border: 1px solid rgba(92, 58, 44, 0.12);
  border-left-width: 1px !important;
  border-radius: 16px 18px 22px 17px;
  background: rgba(255, 250, 242, 0.51);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.64);
  backdrop-filter: blur(8px);
}

.v10-home .v7-home-status::after {
  display: none;
}

.v10-home .v7-home-status > span {
  grid-column: 1;
  grid-row: 1;
  color: var(--v10-wine);
  font-size: 0.58rem;
  letter-spacing: 0.13em;
  white-space: nowrap;
}

.v10-home .v7-home-status > strong {
  overflow: hidden;
  grid-column: 2;
  grid-row: 1;
  color: var(--v10-ink);
  font-size: 0.84rem;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.v10-home .v7-home-status > small {
  grid-column: 3;
  grid-row: 1;
  color: rgba(75, 55, 47, 0.6);
  font-size: 0.64rem;
  white-space: nowrap;
}

.v10-home .v7-home-status > i {
  height: 2px;
  grid-column: 1 / -1;
  grid-row: 2;
  border-radius: 999px;
  background: rgba(73, 49, 39, 0.075);
}

.v10-home .v7-home-status > i b {
  border-radius: inherit;
  background: linear-gradient(90deg, var(--v10-wine), var(--v10-gold));
}

.v10-home .v7-home-status[data-state="arrived"],
.v10-home .v7-home-status[data-state="finished"] {
  border-color: rgba(121, 50, 70, 0.2);
  background: rgba(255, 250, 242, 0.76);
  box-shadow: 0 10px 28px rgba(72, 43, 31, 0.07), inset 0 1px rgba(255, 255, 255, 0.72);
}

.v10-hero-art {
  position: relative;
  z-index: 3;
  width: min(100%, 690px);
  margin: 0;
  justify-self: end;
}

.v10-art-stage {
  position: relative;
  display: grid;
  min-height: min(77svh, 790px);
  place-items: center;
  isolation: isolate;
}

.v10-art-stage::before {
  position: absolute;
  z-index: -1;
  width: 78%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 251, 244, 0.96) 0 18%, rgba(255, 251, 244, 0.48) 48%, transparent 70%);
  content: "";
  filter: blur(3px);
}

.v10-art-sheet {
  position: relative;
  z-index: 2;
  width: min(68%, 445px);
  padding: clamp(9px, 1vw, 13px);
  border: 1px solid rgba(70, 42, 31, 0.15);
  border-radius: 10px 13px 9px 12px;
  background: #f4ead8;
  box-shadow: 0 3px 8px rgba(61, 38, 26, 0.12), 0 34px 82px rgba(61, 38, 26, 0.22), inset 0 1px rgba(255, 255, 255, 0.72);
  transform: rotate(1.15deg) translateY(-2.6%);
  transition: transform 850ms var(--v10-ease), box-shadow 850ms var(--v10-ease);
}

.v10-art-sheet::after {
  position: absolute;
  inset: 9px;
  border: 1px solid rgba(81, 50, 36, 0.06);
  border-radius: 4px 7px 3px 6px;
  content: "";
  pointer-events: none;
}

.v10-art-sheet picture,
.v10-art-sheet img {
  display: block;
  width: 100%;
}

.v10-art-sheet img {
  height: auto;
  border-radius: 4px 7px 3px 6px;
  filter: saturate(0.88) sepia(0.035) contrast(1.035) brightness(1.025);
}

.v10-envelope {
  position: absolute;
  z-index: 3;
  right: 2.5%;
  bottom: 2.5%;
  left: 2.5%;
  height: 31%;
  overflow: hidden;
  border: 1px solid rgba(71, 33, 43, 0.28);
  border-radius: 15px 18px 38px 34px;
  background:
    linear-gradient(34deg, transparent 49.5%, rgba(255, 239, 220, 0.09) 50%, transparent 50.5%) left / 50% 100% no-repeat,
    linear-gradient(-34deg, transparent 49.5%, rgba(255, 239, 220, 0.09) 50%, transparent 50.5%) right / 50% 100% no-repeat,
    linear-gradient(142deg, #7c3a4d 0%, #5c2939 53%, #3e202b 100%);
  box-shadow: 0 4px 10px rgba(58, 29, 37, 0.14), 0 32px 68px rgba(58, 29, 37, 0.25), inset 0 1px rgba(255, 255, 255, 0.1);
  transform: rotate(-0.65deg);
}

.v10-envelope::before {
  position: absolute;
  top: -1px;
  right: 0;
  left: 0;
  height: 58%;
  border-bottom: 1px solid rgba(255, 239, 220, 0.12);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.08), transparent 58%);
  clip-path: polygon(0 0, 50% 88%, 100% 0);
  content: "";
}

.v10-envelope span {
  position: absolute;
  right: 7%;
  bottom: 10%;
  color: rgba(255, 239, 220, 0.47);
  font: 600 0.53rem/1 sans-serif;
  letter-spacing: 0.18em;
}

.v10-wax-seal {
  position: absolute;
  z-index: 4;
  right: 12%;
  bottom: 12%;
  display: grid;
  width: clamp(70px, 7vw, 92px);
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(255, 226, 188, 0.18);
  border-radius: 46% 52% 49% 54%;
  color: #eed5ad;
  background:
    radial-gradient(circle at 37% 29%, rgba(255, 255, 255, 0.18), transparent 22%),
    linear-gradient(145deg, #9c4d5c, #6c2e3f 68%, #512333);
  box-shadow: 0 3px 5px rgba(49, 20, 29, 0.28), 0 15px 28px rgba(49, 20, 29, 0.24), inset 0 0 0 7px rgba(255, 225, 190, 0.045);
  transform: rotate(-7deg);
}

.v10-wax-seal::before {
  position: absolute;
  inset: 9px;
  border: 1px solid rgba(255, 226, 188, 0.28);
  border-radius: 50%;
  content: "";
}

.v10-wax-seal span {
  font-family: var(--v6-serif);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1;
}

@media (hover: hover) and (pointer: fine) {
  .v10-home .v10-hero-art:hover .v10-art-sheet {
    box-shadow: 0 4px 10px rgba(61, 38, 26, 0.13), 0 42px 94px rgba(61, 38, 26, 0.25), inset 0 1px rgba(255, 255, 255, 0.76);
    transform: rotate(0.5deg) translateY(-3.8%);
  }

  .v10-home .v6-hero-actions .v4-button:hover {
    color: #fffaf2;
    background: linear-gradient(145deg, #7f384b, #4a2230);
    box-shadow: 0 4px 9px rgba(66, 31, 43, 0.16), 0 24px 46px rgba(66, 31, 43, 0.22), inset 0 1px rgba(255, 255, 255, 0.18);
  }
}

@media (max-width: 1120px) {
  .v10-home .v6-hero.v9-home-scene {
    gap: 42px;
    grid-template-columns: minmax(380px, 0.92fr) minmax(400px, 1.08fr);
  }

  .v10-home .v6-hero.v9-home-scene::after {
    right: 47.5%;
  }

  .v10-home .v7-home-status {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .v10-home .v7-home-status > small {
    display: none;
  }
}

@media (max-width: 860px) {
  .v10-home .v6-hero.v9-home-scene {
    min-height: auto;
    padding: 28px 22px 84px;
    gap: 34px;
    grid-template-areas:
      "art"
      "copy";
    grid-template-columns: minmax(0, 1fr);
  }

  .v10-home .v6-hero.v9-home-scene::before,
  .v10-home .v6-hero.v9-home-scene::after {
    display: none;
  }

  .v10-home .v6-hero-copy {
    width: min(100%, 690px);
    grid-area: copy;
    justify-self: center;
  }

  .v10-hero-art {
    width: min(100%, 690px);
    grid-area: art;
    justify-self: center;
  }

  .v10-art-stage {
    min-height: clamp(330px, 59vw, 490px);
    overflow: hidden;
    border: 1px solid rgba(79, 48, 36, 0.1);
    border-radius: 20px 22px 34px 30px;
    background:
      radial-gradient(circle at 74% 20%, rgba(255, 255, 255, 0.9), transparent 34%),
      linear-gradient(132deg, rgba(255, 250, 242, 0.68), rgba(224, 203, 180, 0.54));
    box-shadow: 0 22px 55px rgba(66, 42, 29, 0.1), inset 0 1px rgba(255, 255, 255, 0.72);
  }

  .v10-art-sheet {
    position: absolute;
    top: -37%;
    right: 8%;
    width: 54%;
    padding: 8px;
    transform: rotate(1.1deg);
  }

  .v10-envelope {
    right: 5%;
    bottom: 5%;
    left: 5%;
    height: 42%;
    border-radius: 13px 15px 29px 27px;
  }

  .v10-wax-seal {
    right: 13%;
    bottom: 13%;
  }

  .v10-home .v6-hero-copy .v4-kicker {
    margin-bottom: 19px;
  }

  .v10-home .v6-hero h1 {
    font-size: clamp(4.3rem, 14vw, 6.4rem);
  }

  .v10-home .v6-hero-promise {
    max-width: 10em;
    margin-top: 24px;
    margin-left: 24px;
    font-size: clamp(2.15rem, 6.7vw, 3rem);
  }

  .v10-home .v6-hero-lead,
  .v10-home .v6-hero-actions,
  .v10-home .v7-home-status {
    margin-left: 24px;
  }
}

@media (max-width: 560px) {
  .v10-home .v6-hero.v9-home-scene {
    padding: 18px 16px 68px;
    gap: 27px;
  }

  .v10-art-stage {
    min-height: clamp(228px, 63vw, 300px);
    border-radius: 18px 20px 29px 26px;
  }

  .v10-art-sheet {
    top: -52%;
    right: 6%;
    width: 60%;
    padding: 6px;
  }

  .v10-envelope {
    right: 4%;
    bottom: 4%;
    left: 4%;
    height: 46%;
    border-radius: 11px 13px 25px 23px;
  }

  .v10-wax-seal {
    right: 12%;
    bottom: 13%;
    width: 66px;
  }

  .v10-home .v6-hero-copy .v4-kicker {
    margin-bottom: 15px;
    font-size: 0.59rem;
    letter-spacing: 0.17em;
  }

  .v10-home .v6-hero-title > span {
    margin-top: 5px;
  }

  .v10-home .v6-hero h1 {
    font-size: clamp(4rem, 21vw, 5.5rem);
  }

  .v10-home .v6-hero-promise {
    max-width: 9.2em;
    margin: 20px 0 0;
    font-size: clamp(2rem, 9.6vw, 2.65rem);
    line-height: 1.2;
  }

  .v10-home .v6-hero-lead {
    margin: 16px 0 0;
    font-size: 0.95rem;
    line-height: 1.72;
  }

  .v10-home .v6-hero-actions {
    margin: 22px 0 0;
    gap: 13px;
  }

  .v10-home .v6-hero-actions .v4-button {
    min-height: 51px;
    min-width: 174px;
    padding-inline: 21px;
  }

  .v10-home .v7-home-status {
    margin: 18px 0 0;
    padding: 12px 13px 11px;
    gap: 4px 10px;
    grid-template-columns: minmax(0, 1fr) auto;
    border-radius: 14px 16px 20px 15px;
  }

  .v10-home .v7-home-status > span {
    overflow: hidden;
    grid-column: 1;
    text-overflow: ellipsis;
  }

  .v10-home .v7-home-status > strong {
    grid-column: 1 / -1;
    grid-row: 2;
    font-size: 0.82rem;
  }

  .v10-home .v7-home-status > small {
    display: block;
    grid-column: 2;
    grid-row: 1;
  }

  .v10-home .v7-home-status > i {
    grid-row: 3;
  }
}

@media (max-width: 350px) {
  .v10-home .v6-hero.v9-home-scene {
    padding-inline: 13px;
  }

  .v10-art-stage {
    min-height: 210px;
  }

  .v10-home .v6-hero-actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .v10-home .v7-home-status > small {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .v10-home .v10-art-sheet,
  .v10-home .v6-hero-actions .v4-button {
    transition: none !important;
  }
}


/* /assets/auth-ui.css */
.bw-account-chip{position:fixed;z-index:1000;right:18px;top:18px;display:flex;align-items:center;gap:9px;padding:9px 13px;border:1px solid rgba(121,50,70,.2);border-radius:999px;background:rgba(247,237,223,.92);box-shadow:0 8px 30px rgba(53,40,35,.12);backdrop-filter:blur(10px);color:#352823;font:600 12px/1.2 system-ui,sans-serif;text-decoration:none}.bw-account-chip i{width:7px;height:7px;border-radius:50%;background:#69796a}.bw-cloud-note{margin:18px auto;padding:14px 16px;max-width:720px;border:1px solid rgba(189,145,88,.38);border-radius:18px;background:#fffaf2;color:#352823;font:14px/1.6 system-ui,sans-serif}.bw-cloud-note button{margin-left:8px;border:0;border-radius:999px;padding:8px 13px;background:#793246;color:#fff;font:inherit;cursor:pointer}.bw-cloud-note[data-kind=error]{border-color:rgba(121,50,70,.45)}@media(max-width:560px){.bw-account-chip{top:10px;right:10px;padding:8px 11px}.bw-cloud-note{margin:14px 12px}}


/* /assets/experience.css */
/* Seven Letters · reading edition. The V10 artwork and all lesson sources are retained. */
body[data-sl-experience]{--sl-paper:#f7eddf;--sl-sheet:#fffaf2;--sl-ink:#352823;--sl-muted:#6a584e;--sl-wine:#793246;--sl-sage:#526653;--sl-line:rgba(72,47,36,.17);--sl-sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;--sl-serif:"Songti SC","STSong",Georgia,serif}
body[data-sl-experience] :is(a,button,input,summary):focus-visible{outline:2px solid var(--sl-wine);outline-offset:5px}
body[data-sl-experience] [hidden]{display:none!important}
body[data-sl-experience] :is(.v4-header,.topbar,.longform-header){position:relative;z-index:80;min-height:72px;background:rgba(247,237,223,.96);color:var(--sl-ink);border-bottom:1px solid var(--sl-line);box-shadow:none;padding:12px clamp(20px,4vw,64px)}
body[data-sl-experience] :is(.v4-header,.topbar,.longform-header) nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
body[data-sl-experience] :is(.v4-header,.topbar,.longform-header) nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;font:500 13px/1.3 var(--sl-sans);color:var(--sl-ink);border-radius:999px;text-decoration:none}
body[data-sl-experience] .bw-account-chip{position:static;box-shadow:none;border:1px solid var(--sl-line);background:transparent;backdrop-filter:none;font:500 13px/1.3 var(--sl-sans);padding:0 14px;min-height:44px}
body[data-sl-experience] .bw-account-chip i{width:6px;height:6px;background:var(--sl-sage)}
body[data-sl-experience] .bw-cloud-note[data-kind=ok]{display:none}
body[data-sl-experience] .bw-cloud-note{position:relative;width:min(720px,calc(100% - 40px));margin:18px auto;padding:18px 20px;border-radius:14px;box-shadow:none;font:15px/1.7 var(--sl-sans)}
body[data-sl-experience] .bw-cloud-note button{min-height:44px;margin:10px 0 0;display:block;padding:10px 18px}
body[data-sl-experience][data-cloud-loading] [data-current-action]{pointer-events:none;opacity:.5}
body[data-sl-experience][data-cloud-loading] [data-current-action] strong{font-size:0}
body[data-sl-experience][data-cloud-loading] [data-current-action] strong::after{content:"正在连接进度…";font-size:15px}
body[data-sl-experience][data-cloud-state]:not([data-cloud-state=ready]) [data-learning-portal]>:not(.bw-cloud-note){visibility:hidden}
body[data-sl-reader][data-cloud-state]:not([data-cloud-state=ready]) .sl-reader-dock a:last-child{display:none}
/* The public artwork remains the anchor; navigation and rhythm are made truthful. */
body[data-sl-experience].v10-home .v6-arrival-number strong{font-family:var(--sl-serif);font-size:clamp(100px,14vw,190px);font-weight:400}
body[data-sl-experience].v10-home .v6-arrival-number span{font-size:12px;line-height:1.9;letter-spacing:.15em}
body[data-sl-experience].v10-home .v6-arrival-object::after{content:"VII"}
body[data-sl-experience].v10-home .v6-hero-actions .v4-text-link{display:inline-flex;align-items:center;min-height:44px}
body[data-sl-experience].v10-home .v6-arrival-copy ol li{min-height:88px}
/* Current letter: one invitation, followed by the route when needed. */
body[data-sl-experience].v6-course .v6-course-position{display:none}
body[data-sl-experience].v6-course .v9-current-letter{min-height:0;padding:60px clamp(24px,6vw,90px) 72px;gap:52px;grid-template-columns:1.15fr .85fr}
body[data-sl-experience].v6-course .v6-current-count{font-size:60px;opacity:.13;top:28px;left:24px}
body[data-sl-experience].v6-course .v6-current-copy{padding:0}
body[data-sl-experience].v6-course .v6-current-copy h1{font-size:clamp(38px,4.5vw,66px);line-height:1.23;max-width:13em}
body[data-sl-experience].v6-course .current-subtitle{font-size:20px;line-height:1.7;margin:20px 0}
body[data-sl-experience].v6-course .current-summary{font-size:16px;line-height:1.9;max-width:34em}
body[data-sl-experience].v6-course .v6-current-art{max-width:410px;justify-self:center}
body[data-sl-experience].v6-course .wait-message:not([data-sl-locked]){display:none}
body[data-sl-experience].v6-course .v9-postal-details{margin:0 auto 20px;width:min(1160px,calc(100% - 48px));border-radius:18px;box-shadow:none}
body[data-sl-experience].v6-course .v9-postal-details summary{min-height:72px;padding:18px 24px}
body[data-sl-experience].v6-course .v9-postal-details summary small{display:none}
body[data-sl-experience].v6-course .v9-postal-details summary em{font-size:13px;color:var(--sl-muted)}
body[data-sl-experience].v6-course .v6-roadmap{padding-top:48px}
body[data-sl-experience].v6-course .path-phase{border-radius:18px;box-shadow:none;margin-bottom:16px;border-color:var(--sl-line)}
body[data-sl-experience].v6-course .path-phase header{padding:24px}
body[data-sl-experience].v6-course .path-phase header p{font-size:11px}
body[data-sl-experience].v6-course .path-phase header h3{font-size:28px}
body[data-sl-experience].v6-course .path-phase .v6-phase-toggle{width:44px;height:44px;min-width:44px}
body[data-sl-experience].v6-course .path-phase li{padding-block:19px}
body[data-sl-experience].v6-course .path-phase li a{display:block;min-height:44px;align-content:center}
body[data-sl-experience].v6-course .portal-note{padding-block:24px}
/* Opened letter. Artwork remains present, without a full-screen lobby before every lesson. */
body[data-sl-reader]{background:var(--sl-paper);overflow-x:clip;padding-bottom:86px}
body[data-sl-reader] :is(.topbar,.longform-header){position:sticky;top:0;backdrop-filter:blur(16px)}
body[data-sl-reader] .document{background:var(--sl-sheet)}
body[data-sl-reader][data-v7-theme] .lesson-head,
body[data-sl-reader][data-v5-resource] .lesson-head{min-height:0;padding:58px 46% 56px max(28px,calc((100vw - 1080px)/2))!important;border-radius:0 0 30px 30px;box-shadow:0 12px 38px rgba(53,40,35,.055)}
body[data-sl-reader][data-v7-theme] .lesson-head::before,
body[data-sl-reader][data-v5-resource] .lesson-head::before{inset:30px max(28px,calc((100vw - 1140px)/2)) 30px 61%;height:auto;border:9px solid rgba(255,250,242,.84);border-radius:18px;filter:none;background-size:contain!important}
body[data-sl-reader] .lesson-head::after{display:none}
body[data-sl-reader][data-v7-theme] .lesson-head h1,
body[data-sl-reader][data-v5-resource] .lesson-head h1{font-size:clamp(36px,4vw,60px);line-height:1.3;letter-spacing:-.045em;margin:18px 0}
body[data-sl-reader] .lesson-head .meta{font-size:16px;line-height:1.8;margin:12px 0 0;max-width:26em}
body[data-sl-reader] .v6-lesson-marker{margin-bottom:20px;max-width:450px;font:12px/1.5 var(--sl-sans)}
body[data-sl-reader] .v6-lesson-marker :is(b,strong,span){color:var(--sl-muted)!important;opacity:1}
body[data-sl-reader] .v6-lesson-marker i{display:none}
body[data-sl-reader] .lesson-head .eyebrow{display:none}
body[data-sl-reader] :is(.v7-lesson-index,.v6-longform-index){display:none}
body[data-sl-reader] :is(.content,.longform-content){width:min(720px,calc(100% - 48px));padding:48px 0 64px!important;margin-inline:auto;color:var(--sl-ink);font-family:var(--sl-serif);font-size:20px;line-height:1.95;letter-spacing:.01em}
body[data-sl-reader] :is(.content,.longform-content) :is(p,li){font-size:inherit;line-height:inherit}
body[data-sl-reader] :is(.content,.longform-content) p{margin:1.15em 0}
body[data-sl-reader] :is(.content,.longform-content) strong{color:var(--sl-ink)}
body[data-sl-reader] :is(.content,.longform-content) h2,
body[data-sl-reader] :is(.content,.longform-content) h2.v9-scene-break{position:relative;left:auto;translate:none;width:auto;min-height:0;margin:2.6em 0 1em;padding:20px 0 0;border:0;border-top:1px solid var(--sl-line);border-radius:0;background:none;box-shadow:none;color:var(--sl-wine);font:500 clamp(28px,3vw,36px)/1.45 var(--sl-serif);letter-spacing:-.03em}
body[data-sl-reader] :is(.content,.longform-content) h2::before,
body[data-sl-reader] :is(.content,.longform-content) h2::after{display:none}
body[data-sl-reader] :is(.content,.longform-content) h2.letter-restart{margin-top:0;padding-top:0;border:0;font-size:28px}
body[data-sl-reader] :is(.content,.longform-content) h3{font-size:25px;line-height:1.55;margin:2em 0 .85em;color:var(--sl-ink)}
body[data-sl-reader] :is(.content,.longform-content) a{color:var(--sl-wine);text-decoration-color:rgba(121,50,70,.5);text-underline-offset:.22em;overflow-wrap:anywhere}
body[data-sl-reader] :is(.content,.longform-content) :is(.note,.notion-aside,blockquote,.daily-task,.reference-reading,.lesson-toc,.toc-section){padding:24px!important;border-radius:12px!important;box-shadow:none!important;transform:none!important;border-color:var(--sl-line)!important;max-width:100%;margin-inline:0;background:#f5ecdf!important}
body[data-sl-reader] :is(.content,.longform-content) .note.deep{color:var(--sl-ink)!important;background:#eee0d0!important}
body[data-sl-reader] :is(.content,.longform-content) .note.deep :is(p,strong){color:inherit!important}
body[data-sl-reader] :is(.content,.longform-content) .v9-letter-fragment::after{display:none}
body[data-sl-reader] :is(.content,.longform-content) .note :is(p,li),body[data-sl-reader] .notion-aside :is(p,li){font-size:inherit!important}
body[data-sl-reader] .sl-original-index{margin:0 0 32px;border-block:1px solid var(--sl-line);padding:0 2px}
body[data-sl-reader] .sl-original-index>summary{font:500 15px/1.5 var(--sl-sans);color:var(--sl-wine);min-height:56px;cursor:pointer;align-content:center}
body[data-sl-reader] .sl-original-index> :is(.toc-section,.lesson-toc){margin:0 0 20px;padding:20px!important}
body[data-sl-reader] :is(.content,.longform-content) img{height:auto!important;max-width:100%;object-fit:contain}
body[data-sl-reader] :is(.content,.longform-content) :is(.v9-art-wide,.v9-art-pair,.v9-welcome-manuscript){width:min(960px,calc(100vw - 48px));max-width:calc(100vw - 48px)}
body[data-sl-reader] .v9-attachment{transform:none!important;box-shadow:0 8px 28px rgba(53,40,35,.08)}
body[data-sl-reader] .sl-image-open{display:block;min-height:44px;margin:8px auto 0;padding:8px 12px;border:0;background:none;color:var(--sl-muted);font:13px/1.5 var(--sl-sans);cursor:pointer;text-decoration:underline;text-underline-offset:4px}
body[data-sl-reader] .sl-read-entry{display:flex;justify-content:space-between;align-items:center;gap:12px;width:min(720px,calc(100% - 48px));margin:20px auto 0;padding:0 0 16px;border-bottom:1px solid var(--sl-line);font:13px/1.5 var(--sl-sans);color:var(--sl-muted)}
body[data-sl-reader] .sl-read-entry a{min-height:44px;align-content:center;text-decoration:none;color:var(--sl-wine)}
body[data-sl-reader] .sl-resume{font:14px/1.6 var(--sl-sans);padding:8px 0 0}
body[data-sl-reader] .sl-resume button{background:none;border:0;color:var(--sl-wine);text-decoration:underline;text-underline-offset:4px;min-height:44px;padding:0 12px 0 0;font:inherit;cursor:pointer}
body[data-sl-reader] .v6-reading-progress{height:2px;z-index:81;top:0;background:transparent}
body[data-sl-reader] .v6-reading-progress i{background:var(--sl-wine)}
body[data-sl-reader] .v6-mobile-dock{display:none!important}
body[data-sl-reader] .sl-reader-dock{position:fixed;z-index:90;bottom:16px;left:50%;translate:-50% 0;display:flex;align-items:center;gap:4px;padding:6px 8px;width:min(430px,calc(100% - 32px));border:1px solid var(--sl-line);border-radius:999px;background:rgba(255,250,242,.96);backdrop-filter:blur(16px);box-shadow:0 6px 28px rgba(53,40,35,.1)}
body[data-sl-reader] .sl-reader-dock :is(a,button){display:flex;flex:1;justify-content:center;align-items:center;border:0;min-height:44px;padding:10px;font:500 13px/1.3 var(--sl-sans);color:var(--sl-ink);text-decoration:none;background:none;cursor:pointer;border-radius:999px}
body[data-sl-reader] .sl-reader-dock a:last-child{background:var(--sl-wine);color:var(--sl-sheet);flex:1.3}
body[data-sl-reader] .sl-reader-dock.is-at-end{display:none}
body[data-sl-reader] .v5-completion{width:min(1000px,calc(100% - 48px));min-height:0;margin:24px auto 56px;padding:60px clamp(24px,7vw,100px);border-radius:26px;background:#efe0cf;color:var(--sl-ink);box-shadow:0 12px 36px rgba(53,40,35,.06);text-align:left}
body[data-sl-reader] .v5-completion::before{display:none}
body[data-sl-reader] .v6-completion-seal{float:right;position:static;translate:none;margin:0 0 20px 20px;width:54px;height:54px;font-size:25px;background:var(--sl-wine);box-shadow:inset 0 1px 2px rgba(255,255,255,.2),0 4px 10px rgba(53,40,35,.1)}
body[data-sl-reader] .v5-completion-kicker{font:500 12px/1.5 var(--sl-sans);letter-spacing:.1em;color:var(--sl-wine)}
body[data-sl-reader] .v5-completion h2{font:500 clamp(28px,4vw,42px)/1.4 var(--sl-serif);color:var(--sl-ink);margin:16px 0 24px;max-width:16em}
body[data-sl-reader] .v5-response-box{display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;max-width:none}
body[data-sl-reader] .v5-response-box label{display:flex;align-items:center;gap:12px;min-height:44px;color:var(--sl-ink);font:15px/1.7 var(--sl-sans);flex:1 1 280px;cursor:pointer}
body[data-sl-reader] .v5-response-box label input{width:22px;height:22px;flex:none;accent-color:var(--sl-wine)}
body[data-sl-reader] .v5-response-box label::before{display:none}
body[data-sl-reader] .v5-response-box label strong{font-weight:500;color:inherit}
body[data-sl-reader] .v5-response-box button{min-height:52px;padding:14px 24px;border:0;border-radius:999px;background:var(--sl-wine);color:var(--sl-sheet);font:600 15px/1.5 var(--sl-sans);box-shadow:none;cursor:pointer;flex:0 0 auto}
body[data-sl-reader] .v5-response-box button:disabled{opacity:.4;cursor:default}
body[data-sl-reader] .v5-completion.is-done .v5-response-box button{background:var(--sl-sage)}
body[data-sl-reader] .v5-completion.is-done .v5-response-box label{display:none}
body[data-sl-reader] .v5-arrival-copy{color:var(--sl-muted);font:15px/1.8 var(--sl-sans);margin:20px 0}
body[data-sl-reader] .v5-completion-nav{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:28px;border-top:1px solid var(--sl-line);padding-top:12px}
body[data-sl-reader] .v5-completion-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--sl-muted);font:14px/1.5 var(--sl-sans)}
body[data-sl-reader] .longform-hero{min-height:0;gap:36px;padding:52px max(28px,calc((100vw - 1080px)/2));grid-template-columns:1.4fr .6fr;background:#f0e2d3;color:var(--sl-ink);border-radius:0 0 30px 30px}
body[data-sl-reader] .longform-title h1{font-size:clamp(42px,5vw,68px);line-height:1.25}
body[data-sl-reader] .longform-title h2{font-size:25px;color:var(--sl-muted);margin:18px 0}
body[data-sl-reader] .longform-title>p{color:var(--sl-wine);font-size:11px;margin-bottom:16px}
body[data-sl-reader] .longform-meta{margin-top:18px}
body[data-sl-reader] .longform-meta span{color:var(--sl-muted);border:0;padding:0 16px 0 0;font-size:12px}
body[data-sl-reader] .longform-hero figure{max-width:240px;padding:12px;background:var(--sl-sheet);border:0;border-radius:16px;transform:rotate(1deg)}
body[data-sl-reader] .longform-hero img{height:auto;width:100%;object-fit:contain;filter:none;border-radius:8px}
body[data-sl-reader] .longform-hero figcaption{font-size:12px;color:var(--sl-muted)}
/* Directory: pages on a table, not a wall of repeated software cards. */
body[data-sl-experience]:is(.v5-library,.reading-index) .library-hero{min-height:0;padding:56px clamp(24px,7vw,100px);gap:28px;grid-template-columns:1fr 1fr;align-items:center;border-radius:0 0 24px 24px}
body[data-sl-experience]:is(.v5-library,.reading-index) .library-hero h1{font-size:clamp(42px,5vw,64px);line-height:1.2}
body[data-sl-experience]:is(.v5-library,.reading-index) .library-hero>p{font-size:16px;line-height:1.9;color:var(--sl-muted)}
body[data-sl-experience]:is(.v5-library,.reading-index) .v4-kicker:not(.pale){color:var(--sl-wine)}
body[data-sl-experience].v5-library .library-section>header{margin-bottom:28px}
body[data-sl-experience].v5-library .library-section>header h2{font-size:clamp(30px,4vw,44px);line-height:1.4}
body[data-sl-experience].v5-library .library-section>header p:last-child{font-size:16px;line-height:1.8}
body[data-sl-experience].v5-library .library-grid{gap:0;display:block}
body[data-sl-experience].v5-library .library-grid>a{border:0;border-bottom:1px solid var(--sl-line);border-radius:0;min-height:0;margin:0;padding:26px 18px;box-shadow:none;background:transparent;display:grid;grid-template-columns:120px 1fr auto;gap:8px 24px;align-items:center;transform:none}
body[data-sl-experience].v5-library .library-grid>a small{grid-row:1/3;margin:0;color:var(--sl-muted);font-size:13px}
body[data-sl-experience].v5-library .library-grid>a strong{grid-column:2;font-size:24px;line-height:1.45;color:var(--sl-ink);margin:0}
body[data-sl-experience].v5-library .library-grid>a>span{grid-column:2;font-size:14px;line-height:1.7;color:var(--sl-muted);margin:0}
body[data-sl-experience].v5-library .library-grid>a .v6-directory-state{grid-column:3;grid-row:1/3;position:static;margin:0;font-size:13px;white-space:nowrap}
body[data-sl-experience].v5-library .library-grid>a>b{display:none}
body[data-sl-experience].v5-library .library-grid>a.is-current{border-left:3px solid var(--sl-wine);background:#f4e6d6}
body[data-sl-experience].v5-library .library-grid>a.is-locked{opacity:1}
body[data-sl-experience].v5-library .library-grid>a.is-locked strong{color:#78665b}
body[data-sl-experience].v5-library .library-section{padding-block:48px}
/* Native reading drawer: keyboard, focus restoration, touch and browser back all remain usable. */
.sl-drawer,.sl-lightbox{box-sizing:border-box;color:#352823;border:1px solid rgba(72,47,36,.17);background:#fffaf2;box-shadow:0 24px 100px rgba(53,40,35,.22);font-family:var(--sl-sans);padding:0}
.sl-drawer{width:min(560px,calc(100% - 40px));max-height:min(800px,calc(100svh - 48px));border-radius:24px}
.sl-drawer::backdrop,.sl-lightbox::backdrop{background:rgba(53,40,35,.46);backdrop-filter:blur(5px)}
.sl-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(72,47,36,.12);position:sticky;top:0;background:#fffaf2;z-index:2}
.sl-drawer-head h2{font:500 25px/1.5 var(--sl-serif);margin:0}
.sl-drawer-head button,.sl-lightbox>button{border:1px solid rgba(72,47,36,.15);border-radius:999px;background:none;color:#352823;width:44px;height:44px;font:24px/1 var(--sl-sans);cursor:pointer}
.sl-drawer-tabs{display:flex;gap:8px;padding:16px 24px 0}
.sl-drawer-tabs button{min-height:44px;padding:8px 18px;border-radius:999px;border:1px solid rgba(72,47,36,.15);background:none;color:#6a584e;font:500 14px/1.5 var(--sl-sans);cursor:pointer}
.sl-drawer-tabs button[aria-selected=true]{background:#793246;border-color:#793246;color:#fffaf2}
.sl-drawer-body{padding:20px 24px 28px}
.sl-drawer-body h3{font:600 13px/1.5 var(--sl-sans);color:#793246;margin:28px 0 12px}
.sl-drawer-body ol{padding:0;margin:0;list-style:none}
.sl-drawer-body li :is(a,button){display:flex;align-items:center;gap:14px;width:100%;text-align:left;border:0;border-bottom:1px solid rgba(72,47,36,.1);border-radius:0;background:none;padding:15px 0;min-height:56px;text-decoration:none;color:#352823;font:15px/1.7 var(--sl-sans);cursor:pointer}
.sl-drawer-body li small{font:11px/1.5 var(--sl-sans);min-width:44px;color:#6a584e}
.sl-drawer-body li em{font:12px/1.5 var(--sl-sans);color:#6a584e;font-style:normal;margin-left:auto;min-width:36px}
.sl-drawer-body li.is-current :is(a,button){color:#793246;font-weight:600}
.sl-drawer-body li.is-locked :is(a,button){color:#78665b}
.sl-drawer-status{font:13px/1.7 var(--sl-sans);color:#793246;min-height:22px;margin:16px 0 0}
.sl-drawer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-top:1px solid rgba(72,47,36,.12);font:13px/1.5 var(--sl-sans)}
.sl-drawer-footer a{min-height:44px;align-content:center;text-decoration:none;color:#793246}
body.sl-dialog-open{overflow:hidden}
.sl-lightbox{width:calc(100% - 32px);max-width:1200px;height:calc(100svh - 32px);border-radius:20px}
.sl-lightbox>button{position:sticky;top:12px;margin:12px 12px 12px auto;display:block;background:#fffaf2;z-index:2}
.sl-lightbox img{display:block;width:auto;max-width:none;height:auto;min-width:100%;margin:0 auto;padding:0 20px 24px;box-sizing:border-box}
/* Account page belongs to the same letter, not a separate SaaS product. */
body[data-access-page][data-sl-experience] .access-grid{min-height:calc(100svh - 130px)}
body[data-access-page][data-sl-experience] .access-intro h1{font-size:clamp(42px,5.5vw,72px);line-height:1.15;letter-spacing:-.04em;color:var(--sl-wine)}
body[data-access-page][data-sl-experience] .access-intro>p:last-child{font:16px/1.9 var(--sl-sans);color:var(--sl-muted);max-width:26em}
body[data-access-page][data-sl-experience] .access-card{border-radius:18px 18px 26px 26px;border-top:3px solid var(--sl-wine);box-shadow:0 12px 42px rgba(53,40,35,.07);position:relative}
body[data-access-page][data-sl-experience] .access-card::after{content:"";position:absolute;pointer-events:none;right:14px;bottom:-7px;left:14px;height:14px;background:#efe0ce;border:1px solid rgba(72,47,36,.1);border-radius:0 0 20px 20px;z-index:-1}
body[data-access-page][data-sl-experience] .access-card h2{font:500 28px/1.5 var(--sl-serif);margin-top:0}
body[data-access-page][data-sl-experience] .access-card label{font-size:14px;line-height:1.5;color:var(--sl-ink)}
body[data-access-page][data-sl-experience] .access-card input{min-height:52px;border-radius:10px}
body[data-access-page][data-sl-experience] .access-card button{min-height:48px;font-size:15px;line-height:1.4}
body[data-access-page][data-sl-experience] .access-card .sl-password-toggle{justify-self:end;min-height:44px;padding:6px 0;margin-top:-12px;font-size:13px;font-weight:400}
body[data-access-page][data-sl-experience] .access-card details{border-top:1px solid var(--sl-line)}
body[data-access-page][data-sl-experience] .access-card summary{min-height:48px;align-content:center;font:14px/1.5 var(--sl-sans);cursor:pointer;color:var(--sl-muted)}
body[data-access-page][data-sl-experience] [data-auth-message]{font-size:15px}
@media(max-width:760px){
 body[data-sl-experience] :is(.v4-header,.topbar,.longform-header){min-height:64px;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px}
 body[data-sl-experience] :is(.v4-mark,.longform-mark){font-size:16px;white-space:nowrap;flex:none}
 body[data-sl-experience] .brand{font-size:0!important;white-space:nowrap;flex:none}
 body[data-sl-experience] .brand::before{content:"七封信";font:500 16px/1.5 var(--sl-serif)}
 body[data-sl-experience] :is(.v4-mark,.longform-mark) span{display:none}
 body[data-sl-experience] :is(.v4-header,.topbar,.longform-header) nav{display:flex!important;gap:1px;flex-wrap:nowrap}
 body[data-sl-experience] :is(.v4-header,.topbar,.longform-header) nav a{font-size:12px;padding-inline:10px;min-height:44px;white-space:nowrap}
 body[data-sl-experience] :is(.v4-header,.topbar,.longform-header) nav a.sl-extra-nav{display:none}
 body[data-sl-experience] .bw-account-chip{border:0;padding-inline:10px!important}
 body[data-sl-experience] .bw-account-chip i{display:none}
 body[data-sl-reader][data-v7-theme] .lesson-head,
 body[data-sl-reader][data-v5-resource] .lesson-head{padding:32px 24px 32px!important;min-height:0}
 body[data-sl-reader][data-v7-theme] .lesson-head::before,
 body[data-sl-reader][data-v5-resource] .lesson-head::before{position:relative;inset:auto!important;display:block;width:120px;height:135px;margin:0 0 24px auto;border:6px solid rgba(255,250,242,.84);border-radius:12px;float:right;box-shadow:0 8px 22px rgba(53,40,35,.1)}
 body[data-sl-reader][data-v7-theme][data-v4-resource=welcome] .lesson-head::before,
 body[data-sl-reader][data-v7-theme][data-v4-resource=magic] .lesson-head::before{width:100%;height:110px;float:none;margin:0 0 24px}
 body[data-sl-reader] .v6-lesson-marker{font-size:12px;max-width:100%;margin-bottom:14px}
 body[data-sl-reader][data-v7-theme] .lesson-head h1,
 body[data-sl-reader][data-v5-resource] .lesson-head h1{font-size:36px;line-height:1.35;clear:both;margin:18px 0 12px}
 body[data-sl-reader] .lesson-head .meta{font-size:15px;margin:0}
 body[data-sl-reader] :is(.content,.longform-content){width:calc(100% - 48px);padding:32px 0 48px!important;font-size:18px;line-height:1.95}
 body[data-sl-reader] :is(.content,.longform-content) h2,
 body[data-sl-reader] :is(.content,.longform-content) h2.v9-scene-break{font-size:28px;margin:2.4em 0 .9em;padding:18px 0 0;border-radius:0}
 body[data-sl-reader] :is(.content,.longform-content) h2.letter-restart{margin-top:0;font-size:24px;padding-top:0}
 body[data-sl-reader] :is(.content,.longform-content) h3{font-size:23px}
 body[data-sl-reader] :is(.content,.longform-content) :is(.note,.notion-aside,blockquote,.daily-task,.reference-reading,.lesson-toc,.toc-section){padding:20px!important}
 body[data-sl-reader] .sl-read-entry{margin-top:12px;width:calc(100% - 48px);font-size:12px;padding-bottom:8px}
 body[data-sl-reader] .v9-welcome-manuscript{padding:8px;border-radius:12px}
 body[data-sl-reader] .v9-welcome-manuscript figcaption{font-size:12px}
 body[data-sl-reader] .v5-completion{width:calc(100% - 32px);padding:36px 24px;border-radius:22px;margin:20px auto 36px}
 body[data-sl-reader] .v5-response-box{gap:12px}
 body[data-sl-reader] .v5-response-box label{flex-basis:100%;font-size:14px}
 body[data-sl-reader] .v5-response-box button{width:100%}
 body[data-sl-reader] .v5-completion-nav a{font-size:12px}
 body[data-sl-reader] .v6-completion-seal{width:42px;height:42px;font-size:21px;margin-left:10px}
 body[data-sl-reader] .longform-hero{padding:32px 24px;gap:24px;grid-template-columns:1fr}
 body[data-sl-reader] .longform-title h1{font-size:42px}
 body[data-sl-reader] .longform-title h2{font-size:22px;line-height:1.65}
 body[data-sl-reader] .longform-hero figure{max-width:120px;justify-self:end;margin:0;order:-1}
 body[data-sl-reader] .longform-hero figcaption{font-size:11px}
 body[data-sl-experience].v6-course .v9-current-letter{padding:36px 24px 40px;gap:28px;grid-template-columns:1fr}
 body[data-sl-experience].v6-course .v6-current-copy h1{font-size:38px}
 body[data-sl-experience].v6-course .current-subtitle{font-size:18px;margin:14px 0}
 body[data-sl-experience].v6-course .current-summary{font-size:15px;margin:16px 0}
 body[data-sl-experience].v6-course .v6-current-art{max-width:280px;width:100%}
 body[data-sl-experience].v6-course .v6-current-count{display:none}
 body[data-sl-experience].v6-course .v9-postal-details{width:calc(100% - 32px)}
 body[data-sl-experience].v6-course .v9-postal-details summary{padding:16px 20px;display:flex;gap:12px}
 body[data-sl-experience].v6-course .v9-postal-details summary em{display:none}
 body[data-sl-experience]:is(.v5-library,.reading-index) .library-hero{padding:36px 24px;gap:22px;grid-template-columns:1fr}
 body[data-sl-experience]:is(.v5-library,.reading-index) .library-hero h1{font-size:44px}
 body[data-sl-experience].v5-library .library-grid>a{grid-template-columns:1fr auto;padding:22px 0;gap:8px 12px}
 body[data-sl-experience].v5-library .library-grid>a small{grid-row:1;grid-column:1;font-size:12px}
 body[data-sl-experience].v5-library .library-grid>a strong{grid-column:1/3;font-size:24px}
 body[data-sl-experience].v5-library .library-grid>a>span{grid-column:1/3;font-size:14px}
 body[data-sl-experience].v5-library .library-grid>a .v6-directory-state{grid-column:2;grid-row:1;font-size:12px}
 body[data-sl-experience].v5-library .library-grid>a.is-current{border-left:0;padding-inline:16px;border-radius:12px}
 body[data-access-page][data-sl-experience] .access-grid{padding-top:32px;gap:24px;min-height:0}
 body[data-access-page][data-sl-experience] .access-intro h1{font-size:42px;margin:12px 0}
 body[data-access-page][data-sl-experience] .access-intro>p:last-child{font-size:15px;line-height:1.8;margin-bottom:0}
 body[data-access-page][data-sl-experience] .access-card{padding:28px 24px}
 .sl-drawer{width:calc(100% - 24px);max-height:calc(100svh - 24px);border-radius:20px}
 .sl-drawer-head,.sl-drawer-footer{padding:16px 20px}.sl-drawer-tabs{padding:12px 20px 0}.sl-drawer-body{padding:16px 20px 24px}
 .sl-drawer-body li :is(a,button){font-size:14px;gap:10px}
}
@media(max-width:350px){body[data-sl-experience] :is(.v4-header,.topbar,.longform-header){padding-inline:12px}body[data-sl-experience] :is(.v4-header,.topbar,.longform-header) nav a{padding-inline:8px}body[data-sl-reader][data-v7-theme] .lesson-head h1{font-size:32px}}
@media(prefers-reduced-motion:reduce){body[data-sl-experience] *,body[data-sl-experience] *::before,body[data-sl-experience] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html{scroll-behavior:auto!important}}
@media print{body[data-sl-reader]{padding:0;background:white}body[data-sl-reader] :is(.topbar,.longform-header,.sl-reader-dock,.sl-read-entry,.v5-completion,.sl-resume,.sl-image-open,.v6-reading-progress){display:none!important}body[data-sl-reader] :is(.content,.longform-content){width:100%;padding:12pt 0;color:black;font-size:12pt;line-height:1.7}body[data-sl-reader] :is(.content,.longform-content) h2{break-after:avoid}body[data-sl-reader] img{break-inside:avoid;max-height:22cm;object-fit:contain}.sl-original-index{display:none}}
