/* ═══════════════════════════════════════════════════════════
   Seowon Sales Page — two-layer stylesheet

   Layer 1 (CHROME) — the Seowon frame. Always the same. Declares
                     "you are in the Seowon" at the top and bottom
                     of every sales page, and nothing else.

   Layer 2 (BODY)  — the course vessel. Every property reads from
                     --c-* variables. Themes set those variables.
                     Layout rules never change per theme.

   Sections CAN change background (surface slot). Themes CAN swap
   display and body fonts. Testimonial block has a chat-bubble
   variant. CTA has a flood variant.
   ═══════════════════════════════════════════════════════════ */

@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,wght@0,400;0,500;0,600;1,400&family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Fraunces:ital,wght@0,400;0,500;0,600;1,400&family=DM+Sans:wght@400;500;700&family=Fraunces:opsz,wght@9..144,500;9..144,700&family=JetBrains+Mono:wght@400;500&family=Caveat:wght@400;600&family=Homemade+Apple&display=swap");

/* Theme-sword-v2 (editorial zine) — adds Inter and an extended Fraunces axis
   set (italic + SOFT). Loaded after the master import so it doesn't disturb
   sibling pages. Inter is the only new family. */
@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght,SOFT@0,9..144,300..900,30..100;1,9..144,300..900,30..100&family=Inter:wght@400;500;600;700&display=swap");

/* Simone's signature handwriting — used across all sales pages for
   sign-offs and the chrome wordmark. The TTF lives in the project root. */
@font-face {
  font-family: "Simone Sharper";
  src: url("SimoneSharper-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ═════════ CHROME TOKENS ═════════ */
:root {
  --sw-ink:        oklch(22% 0.01 60);
  --sw-ink-60:     oklch(22% 0.01 60 / 0.62);
  --sw-ink-30:     oklch(22% 0.01 60 / 0.30);
  --sw-ink-15:     oklch(22% 0.01 60 / 0.15);
  --sw-fuchsia:    oklch(60% 0.22 352);
  --sw-chrome-bg:  oklch(97.2% 0.012 85);
  --sw-font-serif: "Source Serif 4", Georgia, serif;
  --sw-font-hand:  "Simone Sharper", "Caveat", "Homemade Apple", cursive;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* ═════════ CHROME ═════════ */
.sw-chrome {
  font-family: var(--sw-font-serif);
  color: var(--sw-ink);
  padding: 16px 32px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  background: var(--sw-chrome-bg);
  border-bottom: 1px solid var(--sw-ink-15);
  position: sticky;
  top: 0;
  z-index: 40;
}
.sw-chrome__wordmark {
  font-family: var(--sw-font-hand);
  font-size: 22px;
  line-height: 1;
  color: var(--sw-ink);
  letter-spacing: -0.01em;
  white-space: nowrap;
  text-decoration: none;
}
.sw-chrome__wordmark em { font-style: normal; color: var(--sw-fuchsia); }
.sw-chrome__breadcrumb {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--sw-ink-60);
  justify-self: center;
  text-align: center;
}
.sw-chrome__breadcrumb .sep { color: var(--sw-ink-30); margin: 0 10px; }
.sw-chrome__breadcrumb .current { color: var(--sw-ink); }
.sw-chrome__home {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--sw-ink-60);
  text-decoration: none;
  white-space: nowrap;
}
.sw-chrome__home:hover { color: var(--sw-fuchsia); }

.sw-footer {
  font-family: var(--sw-font-serif);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--sw-ink-60);
  padding: 34px 32px;
  text-align: center;
  background: var(--sw-chrome-bg);
  border-top: 1px solid var(--sw-ink-15);
}
.sw-footer a { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; padding: 0 2px 2px; }
.sw-footer a:hover { color: var(--sw-fuchsia); border-bottom-color: var(--sw-fuchsia); }

@media (max-width: 640px) {
  .sw-chrome { grid-template-columns: auto auto; padding: 14px 20px; }
  .sw-chrome__breadcrumb { display: none; }
}

/* ═══════════════════════════════════════════════════════════
   BODY LAYER — reads from --c-* only
   ═══════════════════════════════════════════════════════════ */

.sp-body {
  /* NEUTRAL defaults (plain; every theme overrides) */
  --c-bg:             #f5f1ea;
  --c-ink:            #1a1612;
  --c-ink-soft:       rgba(26,22,18,0.65);
  --c-ink-faint:      rgba(26,22,18,0.28);
  --c-rule:           rgba(26,22,18,0.14);
  --c-rule-strong:    rgba(26,22,18,0.26);
  --c-accent:         #c04848;
  --c-accent-ink:     #ffffff;
  --c-surface:        rgba(255,255,255,0.42);

  --c-font-display:   "Source Serif 4", Georgia, serif;
  --c-font-body:      "Source Serif 4", Georgia, serif;
  --c-font-meta:      "JetBrains Mono", ui-monospace, monospace;
  --c-font-signature: "Simone Sharper", "Caveat", cursive;

  --c-display-weight: 400;
  --c-display-letter: -0.01em;
  --c-body-size:      19px;
  --c-hero-scale:     1;

  --c-measure-body:   780px;
  --c-measure-narrow: 720px;
  --c-measure-wide:   1040px;
  --c-page-pad:       64px;

  background: var(--c-bg);
  color: var(--c-ink);
  font-family: var(--c-font-body);
  font-size: var(--c-body-size);
  line-height: 1.65;
}
@media (max-width: 900px) { .sp-body { --c-page-pad: 28px; } }

.sp-body a { color: inherit; }
.sp-body a:hover { color: var(--c-accent); }
.sp-body p { margin: 0 0 1.1em; text-wrap: pretty; }
.sp-body p:last-child { margin-bottom: 0; }
.sp-body em, .sp-body i { font-style: italic; }
.sp-body strong { font-weight: 600; }

.sp-body .meta {
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-ink-soft);
  font-weight: 500;
}

/* ═════════ SECTION SURFACE CONTRACT ═════════
   Each section can declare its own --c-bg / --c-ink / --c-accent.
   Use `data-surface="invert|alt|flood"` + inline vars to override. */

.sp-section {
  padding: 96px 0;
  background: var(--c-section-bg, transparent);
  color: var(--c-section-ink, inherit);
}
.sp-section[data-surface="alt"] { padding-top: 112px; padding-bottom: 112px; }
.sp-section[data-surface="flood"] { padding: 140px 0; }
@media (max-width: 900px) { .sp-section { padding: 64px 0; } }

.sp-section__head { text-align: center; margin-bottom: 56px; padding: 0 var(--c-page-pad); }
.sp-section__eyebrow { display: block; margin-bottom: 14px; }
.sp-section__title {
  font-family: var(--c-font-display);
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.2;
  font-weight: var(--c-display-weight);
  letter-spacing: var(--c-display-letter);
  max-width: 820px;
  margin: 0 auto;
  text-wrap: balance;
}

.sp-prose {
  max-width: var(--c-measure-body);
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
}
.sp-prose.narrow { max-width: var(--c-measure-narrow); }
.sp-prose h3 {
  font-family: var(--c-font-display);
  font-size: clamp(26px, 2.6vw, 34px);
  font-weight: var(--c-display-weight);
  line-height: 1.25;
  letter-spacing: var(--c-display-letter);
  margin: 0 0 22px;
  text-wrap: balance;
}
.sp-prose h4 {
  font-family: var(--c-font-display);
  font-size: 22px;
  font-weight: 600;
  margin: 28px 0 10px;
  color: var(--c-accent);
}
.sp-prose ul { padding-left: 24px; margin: 0 0 1.2em; }
.sp-prose ul li { margin-bottom: 10px; }
.sp-prose ul li::marker { color: var(--c-accent); }

/* ═════════ HERO ═════════ */

.sp-hero {
  text-align: center;
  padding: calc(96px * var(--c-hero-scale)) var(--c-page-pad) calc(80px * var(--c-hero-scale));
  max-width: 1200px;
  margin: 0 auto;
}
.sp-hero__eyebrow { display: inline-block; margin-bottom: 28px; }
.sp-hero__mark {
  font-family: var(--c-font-display);
  font-size: clamp(48px, 6vw, 88px);
  line-height: 1;
  color: var(--c-accent);
  margin-bottom: 22px;
  font-weight: var(--c-display-weight);
  letter-spacing: var(--c-display-letter);
}
.sp-hero__title {
  font-family: var(--c-font-display);
  font-size: clamp(38px, 5.6vw, 72px);
  line-height: 1.04;
  font-weight: var(--c-display-weight);
  letter-spacing: var(--c-display-letter);
  margin: 0 0 22px;
  text-wrap: balance;
}
.sp-hero__subtitle {
  font-family: var(--c-font-body);
  font-style: italic;
  font-size: clamp(18px, 1.8vw, 22px);
  line-height: 1.55;
  max-width: var(--c-measure-narrow);
  margin: 0 auto 36px;
  text-wrap: pretty;
}
.sp-hero__cohort {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  border: 1px solid currentColor;
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-top: 16px;
  opacity: 0.85;
}
.sp-hero__cohort .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--c-accent); }

/* Illustrated hero banner slot */
.sp-hero__banner {
  max-width: 1100px;
  margin: 40px auto 0;
  border-radius: 8px;
  overflow: hidden;
}

/* ═════════ PROMISE LIST ═════════ */
.sp-promise {
  list-style: none;
  padding: 0 var(--c-page-pad);
  margin: 0 auto;
  max-width: calc(var(--c-measure-body) + 2 * var(--c-page-pad));
}
.sp-promise li {
  font-size: var(--c-body-size);
  line-height: 1.6;
  padding: 18px 0 18px 40px;
  border-bottom: 1px solid var(--c-rule);
  position: relative;
}
.sp-promise li:first-child { border-top: 1px solid var(--c-rule); }
.sp-promise li::before {
  content: "";
  position: absolute; left: 0; top: 32px;
  width: 22px; height: 1px; background: var(--c-accent);
}

/* ═════════ CURRICULUM ═════════ */
.sp-curriculum {
  list-style: none;
  padding: 0 var(--c-page-pad);
  margin: 0 auto;
  max-width: calc(var(--c-measure-body) + 2 * var(--c-page-pad));
}
.sp-curriculum__row {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 28px;
  padding: 36px 0;
  border-top: 1px solid var(--c-rule);
  align-items: baseline;
}
.sp-curriculum__row:last-child { border-bottom: 1px solid var(--c-rule); }
.sp-curriculum__num {
  font-family: var(--c-font-display);
  font-size: 48px;
  line-height: 1;
  color: var(--c-accent);
  font-weight: var(--c-display-weight);
  font-variant-numeric: oldstyle-nums;
}
.sp-curriculum__meta { display: block; margin-bottom: 10px; }
.sp-curriculum__title {
  font-family: var(--c-font-display);
  font-size: 24px;
  font-weight: 500;
  margin: 0 0 10px;
  line-height: 1.3;
  letter-spacing: var(--c-display-letter);
}
.sp-curriculum__body { font-size: 17px; line-height: 1.65; }

.sp-flatlist {
  list-style: none;
  padding: 0 var(--c-page-pad);
  margin: 0 auto;
  max-width: calc(var(--c-measure-body) + 2 * var(--c-page-pad));
}
.sp-flatlist li {
  padding: 20px 0;
  border-top: 1px solid var(--c-rule);
  font-size: 18px;
  line-height: 1.5;
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 16px;
  align-items: baseline;
}
.sp-flatlist li:last-child { border-bottom: 1px solid var(--c-rule); }
.sp-flatlist .n {
  font-family: var(--c-font-meta);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--c-ink-soft);
}

/* ═════════ AUDIENCE ═════════ */
.sp-audience {
  max-width: var(--c-measure-wide);
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
}
.sp-audience.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; }
.sp-audience__col h3 {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: 22px;
  font-weight: var(--c-display-weight);
  margin: 0 0 22px;
}
.sp-audience__col ul { list-style: none; padding: 0; margin: 0; }
.sp-audience__col li {
  padding: 14px 0 14px 28px;
  border-top: 1px solid var(--c-rule);
  font-size: 17px;
  line-height: 1.55;
  position: relative;
}
.sp-audience__col li:last-child { border-bottom: 1px solid var(--c-rule); }
.sp-audience__col li::before {
  content: "";
  position: absolute; left: 0; top: 24px;
  width: 14px; height: 1px; background: var(--c-ink-faint);
}
@media (max-width: 900px) {
  .sp-audience.two-col { grid-template-columns: 1fr; gap: 48px; }
}

/* ═════════ TEACHER ═════════ */
.sp-teacher {
  max-width: var(--c-measure-body);
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
}
.sp-teacher.with-coteacher {
  max-width: var(--c-measure-wide);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
}
.sp-teacher__photo {
  width: 200px;
  height: 240px;
  background:
    linear-gradient(135deg, var(--c-accent) 0%, var(--c-accent) 40%, transparent 40%),
    repeating-linear-gradient(135deg, var(--c-rule) 0 6px, transparent 6px 12px);
  border: 1px solid var(--c-ink);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 10px;
  font-family: var(--c-font-meta);
  font-size: 10px;
  color: var(--c-ink-soft);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 28px;
  box-shadow: 0 4px 18px rgba(0,0,0,0.08);
}
.sp-teacher__name {
  font-family: var(--c-font-display);
  font-size: 28px;
  font-weight: 500;
  margin: 0 0 6px;
  letter-spacing: var(--c-display-letter);
}
.sp-teacher__role { display: block; margin-bottom: 18px; }
.sp-teacher__bio p { font-size: 17px; line-height: 1.7; }
@media (max-width: 900px) {
  .sp-teacher.with-coteacher { grid-template-columns: 1fr; gap: 48px; }
}

/* ═════════ BUTTON ═════════ */
.sp-btn {
  display: inline-block;
  font-family: var(--c-font-display);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-accent-ink);
  background: var(--c-accent);
  border: 1px solid var(--c-accent);
  padding: 20px 44px;
  cursor: pointer;
  transition: transform 120ms ease, filter 180ms ease, box-shadow 180ms ease;
  text-decoration: none;
  line-height: 1;
  border-radius: 2px;
}
.sp-btn:hover {
  filter: brightness(0.92);
  box-shadow: 0 6px 24px rgba(0,0,0,0.15);
  color: var(--c-accent-ink);
}
.sp-btn:active { transform: translateY(1px); }
.sp-btn:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 4px; }

.sp-btn--ghost {
  color: var(--c-ink);
  background: transparent;
  border-color: var(--c-ink);
}
.sp-btn--ghost:hover {
  background: var(--c-accent);
  border-color: var(--c-accent);
  color: var(--c-accent-ink);
}

.sp-btn--block {
  display: block;
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  padding: 24px 36px;
  font-size: 15px;
}

.sp-cta-pair {
  text-align: center;
  padding: 56px var(--c-page-pad);
}
.sp-cta-pair__price {
  font-family: var(--c-font-display);
  font-size: 28px;
  margin: 0 0 28px;
  font-weight: 500;
  letter-spacing: var(--c-display-letter);
}

/* ═════════ TESTIMONIAL — pull quote stack ═════════ */
.sp-quotes {
  max-width: calc(var(--c-measure-body) + 2 * var(--c-page-pad));
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  display: grid;
  gap: 48px;
}
.sp-quote {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: clamp(20px, 2vw, 24px);
  line-height: 1.5;
  text-wrap: pretty;
  border-left: 2px solid var(--c-accent);
  padding-left: 28px;
}
.sp-quote__attrib {
  display: block;
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-ink-soft);
  font-style: normal;
  margin-top: 14px;
}
.sp-quote--long {
  border-left: 0;
  padding: 34px 40px;
  background: var(--c-surface);
  border: 1px solid var(--c-rule-strong);
  font-size: 18px;
  font-style: normal;
  font-family: var(--c-font-body);
  line-height: 1.7;
}
.sp-quote--long::before {
  content: open-quote;
  font-family: var(--c-font-display);
  font-size: 64px;
  line-height: 0;
  vertical-align: -22px;
  color: var(--c-accent);
  margin-right: 6px;
}

/* ═════════ TESTIMONIAL — card-based pull-quote wall ═════════
   Designed cards, not faked screenshots. No avatars, no bubble tails,
   no invented people. Real @handles are shown when Simone provides
   them in the source; otherwise the card shows just the quote.
   Color variants are brand expression, NOT fake-platform signaling. */
.sp-chatwall {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  align-items: start;
}
.sp-chatwall__col { display: grid; gap: 14px; }
.sp-chat {
  font-family: var(--c-font-body);
  font-size: 14.5px;
  line-height: 1.5;
  padding: 14px 16px;
  border-radius: 10px;
  color: var(--c-chat-ink, #1a1612);
  background: var(--c-chat-bg, #f4f2ea);
}
.sp-chat__handle {
  display: block;
  font-weight: 700;
  font-size: 13px;
  margin-bottom: 4px;
  color: inherit;
  opacity: 0.95;
}
.sp-chat strong { font-weight: 700; }

@media (max-width: 900px) {
  .sp-chatwall { grid-template-columns: 1fr; }
}

/* ═════════ DETAILS (spec sheet) ═════════ */
.sp-details {
  max-width: var(--c-measure-body);
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
}
.sp-details__row {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 32px;
  padding: 20px 0;
  border-top: 1px solid var(--c-rule);
  align-items: baseline;
}
.sp-details__row:last-child { border-bottom: 1px solid var(--c-rule); }
.sp-details__key {
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-ink-soft);
}
.sp-details__val { font-size: 17px; line-height: 1.55; }
.sp-details__price {
  font-family: var(--c-font-display);
  font-size: 42px;
  letter-spacing: var(--c-display-letter);
  line-height: 1;
  padding: 4px 0;
  font-weight: var(--c-display-weight);
}
@media (max-width: 640px) {
  .sp-details__row { grid-template-columns: 1fr; gap: 6px; }
}

/* ═════════ FAQ ═════════ */
.sp-faq {
  max-width: var(--c-measure-body);
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
}
.sp-faq__group + .sp-faq__group { margin-top: 48px; }
.sp-faq__heading {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  margin: 0 0 18px;
}
.sp-faq details { border-top: 1px solid var(--c-rule); padding: 2px 0; }
.sp-faq details:last-of-type { border-bottom: 1px solid var(--c-rule); }
.sp-faq summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 44px 20px 0;
  font-family: var(--c-font-display);
  font-size: 18px;
  position: relative;
  line-height: 1.4;
  transition: color 180ms ease;
}
.sp-faq summary::-webkit-details-marker { display: none; }
.sp-faq summary::after {
  content: "+";
  position: absolute; right: 0; top: 18px;
  font-family: var(--c-font-display);
  font-size: 26px; line-height: 1;
  color: var(--c-ink-soft);
  transition: transform 220ms ease, color 180ms ease;
}
.sp-faq details[open] summary::after { content: "−"; color: var(--c-accent); }
.sp-faq summary:hover { color: var(--c-accent); }
.sp-faq__answer {
  padding: 0 44px 24px 0;
  font-size: 17px;
  line-height: 1.7;
}

/* ═════════ CLOSING ═════════ */
.sp-closing {
  text-align: center;
  padding: 120px var(--c-page-pad) 110px;
  max-width: 1100px;
  margin: 0 auto;
}
.sp-closing__opener {
  font-family: var(--c-font-signature);
  font-size: clamp(40px, 5.5vw, 64px);
  line-height: 1;
  color: var(--c-accent);
  margin: 0 0 30px;
}
.sp-closing__body {
  max-width: var(--c-measure-narrow);
  margin: 0 auto;
}
.sp-closing__body p {
  font-family: var(--c-font-body);
  font-size: 20px;
  line-height: 1.7;
  text-wrap: pretty;
}
.sp-closing__sig {
  font-family: var(--c-font-signature);
  font-size: 42px;
  color: var(--c-accent);
  margin: 32px 0 48px;
  line-height: 1;
}

/* ═══════════════════════════════════════════════════════════
   THEMES — variables only. No layout.
   ═══════════════════════════════════════════════════════════ */

/* ── SLUMBER PARTY ── loud · indigo + chartreuse + magenta ── */
.theme-slumber {
  --c-bg:             #ffffff;
  --c-ink:            #1d1730;
  --c-ink-soft:       rgba(29,23,48,0.65);
  --c-ink-faint:      rgba(29,23,48,0.28);
  --c-rule:           rgba(29,23,48,0.14);
  --c-rule-strong:    rgba(29,23,48,0.24);
  --c-accent:         #ec1f8a;       /* hot magenta (the button color) */
  --c-accent-ink:     #ffffff;
  --c-surface:        #f9f4f7;
  --c-indigo:         #2b1a5e;       /* party-section background */
  --c-chartreuse:     #e9f56d;       /* party text / bio bg */

  --c-font-display:   "Fraunces", "Source Serif 4", Georgia, serif;
  --c-font-body:      "DM Sans", "Source Serif 4", Georgia, sans-serif;
  --c-font-meta:      "JetBrains Mono", ui-monospace, monospace;
  --c-font-signature: "Simone Sharper", "Homemade Apple", "Caveat", cursive;
  --c-display-weight: 600;
  --c-display-letter: -0.02em;
  --c-body-size:      18px;
  --c-hero-scale:     1;
}

/* Per-surface section overrides */
.theme-slumber .surface--party {
  --c-section-bg: var(--c-indigo);
  --c-section-ink: var(--c-chartreuse);
  color: var(--c-chartreuse);
  background: var(--c-indigo);
  background-image:
    radial-gradient(circle at 12% 20%, rgba(236,31,138,0.18) 0 2px, transparent 3px),
    radial-gradient(circle at 78% 34%, rgba(233,245,109,0.10) 0 2px, transparent 3px),
    radial-gradient(circle at 32% 72%, rgba(236,31,138,0.14) 0 2px, transparent 3px),
    radial-gradient(circle at 88% 82%, rgba(233,245,109,0.08) 0 2px, transparent 3px);
}
.theme-slumber .surface--party .sp-section__title,
.theme-slumber .surface--party .sp-prose,
.theme-slumber .surface--party .sp-prose h3 { color: var(--c-chartreuse); }
.theme-slumber .surface--party .sp-prose h4 { color: var(--c-chartreuse); }
.theme-slumber .surface--party .sp-prose ul li::marker { color: var(--c-accent); }
.theme-slumber .surface--party .meta { color: rgba(233,245,109,0.75); }

.theme-slumber .surface--bio {
  background: var(--c-chartreuse);
  color: var(--c-ink);
  --c-rule: rgba(29,23,48,0.18);
}

.theme-slumber .sp-hero {
  background: transparent;
}

/* Slumber button — always magenta flood */
.theme-slumber .sp-btn { border-radius: 2px; }

/* ── SWORD ── indigo sans on white · lavender letter-storm · Good Place energy ── */
.theme-sword {
  --c-bg:             #ffffff;
  --c-ink:            #1a1470;       /* deep royal indigo — the display color */
  --c-ink-soft:       rgba(26,20,112,0.72);
  --c-ink-faint:      rgba(26,20,112,0.32);
  --c-rule:           rgba(26,20,112,0.15);
  --c-rule-strong:    rgba(26,20,112,0.28);
  --c-accent:         #1a1470;       /* buttons: indigo flood */
  --c-accent-ink:     #ffffff;
  --c-accent-alt:     #e63e2d;       /* red used for section sub-heads */
  --c-gold:           #c69a3d;
  --c-lavender:       #a99ee6;       /* feature section */
  --c-surface:        #f4f2ea;       /* very light warm gray alt */

  --c-font-display:   "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-body:      "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-meta:      "JetBrains Mono", ui-monospace, monospace;
  --c-font-signature: "Simone Sharper", "Caveat", cursive;
  --c-display-weight: 500;
  --c-display-letter: -0.015em;
  --c-body-size:      18px;
  --c-hero-scale:     1;
}

/* Indigo body text; keep most links in-color, hover to red */
.theme-sword .sp-body { color: var(--c-ink); }
.theme-sword a:hover { color: var(--c-accent-alt); }

/* Section sub-heads / italic red sub-titles (like "Course schedule & curriculum FAQs") */
.theme-sword .sp-faq__heading {
  color: var(--c-accent-alt);
  font-style: italic;
  font-weight: 700;
  font-size: 26px;
}
.theme-sword .sp-prose ul li::marker { color: var(--c-ink); }

/* Bullet promise list — indigo bullets inline, no long rule */
.theme-sword .sp-promise { padding-left: calc(var(--c-page-pad) + 4px); }
.theme-sword .sp-promise li { border: 0; padding: 10px 0 10px 20px; }
.theme-sword .sp-promise li:first-child { border-top: 0; }
.theme-sword .sp-promise li::before {
  content: "";
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--c-ink); left: 0; top: 22px;
}

/* Alt (gray) surface — the "Wanna know more" playbook section */
.theme-sword .surface--paper {
  background: var(--c-surface);
  color: var(--c-ink);
}

/* Lavender letter-storm surface — the final CTA */
.theme-sword .surface--storm {
  background: var(--c-lavender);
  color: var(--c-ink);
  position: relative;
  overflow: hidden;
}
/* Drifting letter field built entirely in CSS — random-seeming glyphs
   scattered at varied sizes, rotations and opacities. */
.theme-sword .surface--storm::before {
  content: "";
  position: absolute; inset: -10%;
  background-image:
    radial-gradient(circle at 8% 12%, rgba(26,20,112,0.11) 0 1.5px, transparent 2.2px),
    radial-gradient(circle at 78% 22%, rgba(255,255,255,0.6) 0 1px, transparent 1.8px),
    radial-gradient(circle at 32% 78%, rgba(26,20,112,0.09) 0 1.2px, transparent 2px),
    radial-gradient(circle at 92% 88%, rgba(255,255,255,0.5) 0 1px, transparent 1.8px);
  pointer-events: none;
  opacity: 0.7;
}
.theme-sword .sw-letterstorm {
  position: absolute; inset: 0;
  font-family: "Caveat", "Segoe Script", cursive;
  color: rgba(26,20,112,0.38);
  pointer-events: none;
  overflow: hidden;
  user-select: none;
}
.theme-sword .sw-letterstorm span {
  position: absolute;
  line-height: 1;
  font-weight: 500;
}

/* Detail card that floats over the letter-storm */
.theme-sword .sp-card {
  background: #ffffff;
  color: var(--c-ink);
  padding: 40px 48px;
  max-width: 640px;
  margin: 0 auto 40px;
  position: relative;
  border-radius: 6px;
  box-shadow: 0 24px 48px rgba(26,20,112,0.18);
}
.theme-sword .sp-card h4 {
  font-family: var(--c-font-display);
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 16px;
  color: var(--c-ink);
}
.theme-sword .sp-card ul {
  list-style: disc;
  padding-left: 22px;
  margin: 0;
  font-size: 16px;
}
.theme-sword .sp-card ul li { margin-bottom: 8px; }

/* Sword button — flat indigo block */
.theme-sword .sp-btn {
  border-radius: 2px;
  font-family: var(--c-font-display);
  font-weight: 600;
  letter-spacing: 0.18em;
  padding: 22px 48px;
  font-size: 13px;
}

/* Italic Good-Place quote at top of hero body */
.theme-sword .sp-hero__subtitle {
  font-style: normal;
  font-weight: 500;
  color: var(--c-ink);
}

/* Logo block — the hand-lettered ribbon area */
.theme-sword .sp-logo {
  max-width: 680px;
  margin: 0 auto 40px;
  padding: 0 var(--c-page-pad);
}

/* Red italic section sub-titles in body */
.theme-sword .sp-eyebrow-red {
  color: var(--c-accent-alt);
  font-style: italic;
  font-weight: 700;
  font-family: var(--c-font-display);
  font-size: 24px;
  text-transform: none;
  letter-spacing: 0;
  display: block;
  margin-bottom: 24px;
  padding: 0 var(--c-page-pad);
  max-width: calc(var(--c-measure-body) + 2 * var(--c-page-pad));
  margin-left: auto;
  margin-right: auto;
}

/* Sword chatwall — purple/red/pink bubbles like the screenshots */
.theme-sword .sp-chat--indigo { background: #1a1470; color: #fff; border-color: rgba(255,255,255,0.12); }
.theme-sword .sp-chat--pink   { background: #ff4ea8; color: #1a1470; border-color: transparent; }
.theme-sword .sp-chat--red    { background: #e63e2d; color: #fff; border-color: transparent; }
.theme-sword .sp-chat--grad   {
  background: linear-gradient(135deg, #1a1470 0%, #ff4ea8 100%);
  color: #fff; border-color: transparent;
}
.theme-sword .sp-chat--tan    { background: #d6c8a8; color: #1a1470; border-color: transparent; }
.theme-sword .sp-chat--white  { background: #fff; color: #1a1470; border: 1px solid #1a1470; }
.theme-sword .sp-chat--link   { color: #ff4ea8; font-weight: 600; }

/* ── TOGETHER ── editorial · black-and-white · magenta CTA only ── */
.theme-together {
  --c-bg:             #ffffff;
  --c-ink:            #0a0a0a;
  --c-ink-soft:       rgba(10,10,10,0.68);
  --c-ink-faint:      rgba(10,10,10,0.32);
  --c-rule:           rgba(10,10,10,0.14);
  --c-rule-strong:    rgba(10,10,10,0.28);
  --c-accent:         #e91e8c;       /* hot magenta — CTA only */
  --c-accent-ink:     #ffffff;
  --c-surface:        #f4f4f4;

  --c-font-display:   "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-body:      "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-meta:      "DM Sans", ui-monospace, monospace;
  --c-font-signature: "Simone Sharper", "Caveat", cursive;
  --c-display-weight: 700;
  --c-display-letter: -0.02em;
  --c-body-size:      17px;
  --c-hero-scale:     1;
  --c-measure-body:   780px;
}

.theme-together .sp-body strong { font-weight: 700; }
.theme-together .sp-section__title { font-weight: 700; }
.theme-together .sp-prose h3 { font-weight: 700; }
.theme-together .sp-prose h4 { color: var(--c-ink); font-weight: 700; }
.theme-together a:hover { color: var(--c-accent); }

/* Section headings in TOGETHER are left-aligned within prose, not centered */
.theme-together .sp-prose h3 {
  font-size: clamp(28px, 3.2vw, 38px);
  line-height: 1.2;
  margin-bottom: 20px;
}

/* Full-bleed photo band — used between sections (audience, mycelium, journal) */
.theme-together .sp-photo-band {
  width: 100%;
  height: clamp(280px, 38vw, 460px);
  background: #111 center/cover no-repeat;
  filter: grayscale(1) contrast(1.02);
  position: relative;
}
.theme-together .sp-photo-band--color { filter: none; }

/* Hero: giant wordmark over B&W audience photo */
.theme-together .sp-hero--together {
  position: relative;
  padding: 0;
  margin: 0;
  max-width: none;
  overflow: hidden;
  background: #2a2a2a;
  height: clamp(340px, 44vw, 560px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.theme-together .sp-hero--together::before {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.35) 100%),
    /* CSS-only retreat-audience stand-in: layered tonal blobs */
    radial-gradient(ellipse 60% 40% at 30% 60%, #5a5a5a 0 40%, transparent 70%),
    radial-gradient(ellipse 50% 35% at 70% 55%, #6d6d6d 0 35%, transparent 70%),
    radial-gradient(ellipse 40% 30% at 50% 80%, #3f3f3f 0 40%, transparent 70%),
    linear-gradient(180deg, #444 0%, #2a2a2a 100%);
  filter: grayscale(1);
}
.theme-together .sp-hero--together__inner {
  position: relative;
  z-index: 2;
  text-align: center;
  color: #fff;
  padding: 0 32px;
}
.theme-together .sp-hero--together__wordmark {
  font-family: var(--c-font-display);
  font-size: clamp(96px, 18vw, 260px);
  line-height: 0.9;
  font-weight: 500;
  letter-spacing: -0.05em;
  color: #fff;
  margin: 0;
  text-wrap: nowrap;
  font-style: italic;
  font-stretch: condensed;
}
.theme-together .sp-hero--together__sub {
  font-family: var(--c-font-display);
  font-size: clamp(16px, 1.8vw, 26px);
  font-weight: 400;
  letter-spacing: 0;
  color: #fff;
  margin-top: -8px;
  display: inline-block;
  padding-left: 40%;
}

/* Children's drawings full-bleed strip — colorful tile mosaic */
.theme-together .sp-drawings {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  gap: 2px;
  height: clamp(180px, 22vw, 260px);
  overflow: hidden;
}
.theme-together .sp-drawings > div {
  position: relative;
  overflow: hidden;
}

/* Curriculum card over parallax photo */
.theme-together .sp-curriculum-card-wrap {
  position: relative;
  padding: 80px 0;
  background: #3a3a3a;
}
.theme-together .sp-curriculum-card-wrap::before {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.0) 0%, rgba(255,255,255,0.0) 100%),
    radial-gradient(ellipse 70% 50% at 40% 50%, #6a6a6a 0 50%, transparent 80%),
    linear-gradient(135deg, #555 0%, #2a2a2a 100%);
  filter: grayscale(1);
}
.theme-together .sp-curriculum-card {
  position: relative;
  z-index: 2;
  max-width: 780px;
  margin: 0 auto;
  padding: 80px 72px;
  background: rgba(255,255,255,0.92);
  color: var(--c-ink);
  backdrop-filter: blur(4px);
}
.theme-together .sp-curriculum-card h2 {
  font-family: var(--c-font-display);
  font-size: clamp(32px, 3.6vw, 44px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 28px;
}
.theme-together .sp-curriculum-card h3 {
  font-size: 22px;
  font-weight: 700;
  margin: 36px 0 14px;
}
.theme-together .sp-curriculum-card ul {
  padding-left: 22px;
  margin: 0 0 18px;
  font-size: 16px;
  line-height: 1.55;
}
.theme-together .sp-curriculum-card ul li { margin-bottom: 12px; }
@media (max-width: 720px) {
  .theme-together .sp-curriculum-card { padding: 56px 32px; }
}

/* Co-teacher grid */
.theme-together .sp-coteacher {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 48px;
  align-items: start;
}
.theme-together .sp-coteacher__photo {
  width: 100%;
  aspect-ratio: 4/5;
  background: #9d7aa0 center/cover no-repeat;
  /* Rashida placeholder — warm brown/purple */
  background-image:
    radial-gradient(ellipse 40% 30% at 50% 28%, #7a4d8c 0 60%, transparent 80%),
    linear-gradient(180deg, #caa3c1 0%, #6f4a5c 100%);
}
.theme-together .sp-coteacher h3 {
  font-size: clamp(26px, 2.6vw, 32px);
  font-weight: 700;
  margin: 0 0 20px;
}
.theme-together .sp-coteacher p { font-size: 16px; line-height: 1.6; }
@media (max-width: 780px) {
  .theme-together .sp-coteacher { grid-template-columns: 1fr; gap: 32px; }
}

/* Offer grid — photo column + details column */
.theme-together .sp-offer {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 64px;
  align-items: start;
}
.theme-together .sp-offer__photos { display: grid; gap: 24px; }
.theme-together .sp-offer__photo {
  width: 100%;
  aspect-ratio: 4/5;
  background: #8a7a90;
  background-image:
    radial-gradient(ellipse 60% 40% at 50% 40%, #a996af 0 50%, transparent 80%),
    linear-gradient(135deg, #9e8ba0 0%, #6a5a70 100%);
}
.theme-together .sp-offer__photo--2 {
  aspect-ratio: 4/3;
  background-image:
    radial-gradient(ellipse 50% 40% at 40% 50%, #b8846a 0 50%, transparent 80%),
    linear-gradient(135deg, #a89080 0%, #4a3a30 100%);
}
.theme-together .sp-offer h3 {
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 700;
  margin: 0 0 14px;
}
.theme-together .sp-offer ul {
  padding-left: 22px;
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 1.55;
}
.theme-together .sp-offer ul li { margin-bottom: 10px; }
@media (max-width: 820px) {
  .theme-together .sp-offer { grid-template-columns: 1fr; gap: 32px; }
}

/* Magenta CTA button — flat, wide, uppercase */
.theme-together .sp-btn {
  border-radius: 0;
  font-family: var(--c-font-display);
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 22px 40px;
  font-size: 14px;
  background: var(--c-accent);
  border-color: var(--c-accent);
  color: #fff;
}

/* Testimonial cards over dark photo — headshot + quote + handle */
.theme-together .sp-testi-wrap {
  position: relative;
  padding: 96px 0;
  background: #3a3a3a;
  overflow: hidden;
}
.theme-together .sp-testi-wrap::before {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.6) 100%),
    radial-gradient(ellipse 60% 40% at 30% 40%, #6a6a6a 0 40%, transparent 70%),
    linear-gradient(135deg, #4a4a4a 0%, #2a2a2a 100%);
  filter: grayscale(1);
}
.theme-together .sp-testi-wrap__title {
  position: relative;
  z-index: 2;
  text-align: center;
  color: #fff;
  font-family: var(--c-font-display);
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 500;
  letter-spacing: -0.02em;
  margin: 0 0 56px;
  padding: 0 var(--c-page-pad);
}
.theme-together .sp-testi-cards {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  align-items: start;
}
.theme-together .sp-testi-card {
  background: #fff;
  color: var(--c-ink);
  padding: 28px 28px 24px;
  text-align: center;
  font-size: 16px;
  line-height: 1.45;
}
.theme-together .sp-testi-card__avatar {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: #d4c0b8 center/cover no-repeat;
  margin: 0 auto 18px;
  background-image: radial-gradient(circle at 50% 40%, #b89a8a 0 40%, #7a5a4a 100%);
}
.theme-together .sp-testi-card__quote {
  font-weight: 500;
  margin: 0 0 14px;
  text-wrap: pretty;
}
.theme-together .sp-testi-card__handle {
  font-size: 13px;
  color: var(--c-ink-soft);
  font-weight: 500;
}
@media (max-width: 900px) {
  .theme-together .sp-testi-cards { grid-template-columns: 1fr; }
}

/* FAQ — TOGETHER version: centered Q/A on white card with rules */
.theme-together .sp-faq-wrap {
  background: var(--c-surface);
  padding: 80px 0;
}
.theme-together .sp-faq-wrap__title {
  text-align: center;
  font-size: clamp(30px, 3.4vw, 42px);
  font-weight: 500;
  letter-spacing: -0.02em;
  margin: 0 0 48px;
}
.theme-together .sp-faq-wrap .sp-faq {
  background: #fff;
  max-width: 820px;
  padding: 16px 56px;
}
.theme-together .sp-faq-wrap details { border-color: var(--c-rule); }
.theme-together .sp-faq-wrap details:last-of-type { border-bottom: 1px solid var(--c-rule); }
.theme-together .sp-faq-wrap summary {
  font-weight: 700;
  font-size: 20px;
  padding: 24px 44px 24px 0;
}
.theme-together .sp-faq-wrap .sp-faq__answer {
  font-size: 16px;
  padding-bottom: 28px;
}
.theme-together .sp-faq-wrap .sp-faq__answer strong { text-transform: uppercase; font-size: 13px; letter-spacing: 0.1em; }

/* Body prose tightening for TOGETHER */
.theme-together .sp-prose p { font-size: 17px; line-height: 1.65; }
.theme-together .sp-prose ul { font-size: 17px; }
.theme-together .sp-prose ul li { margin-bottom: 12px; }

/* ── TRUTH OR DARE ── noir · hot pink + chartreuse · bold italic display ── */
.theme-truthordare {
  --c-bg:             #ffffff;
  --c-ink:            #0a0a0a;
  --c-ink-soft:       rgba(10,10,10,0.68);
  --c-ink-faint:      rgba(10,10,10,0.32);
  --c-rule:           rgba(10,10,10,0.14);
  --c-rule-strong:    rgba(10,10,10,0.28);
  --c-accent:         #ed1e9a;       /* hot pink */
  --c-accent-ink:     #ffffff;
  --c-chartreuse:     #e0f762;
  --c-noir:           #0a0a0a;
  --c-surface:        #ececec;

  --c-font-display:   "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-body:      "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-meta:      "DM Sans", ui-monospace, monospace;
  --c-font-signature: "Simone Sharper", "Caveat", cursive;
  --c-display-weight: 700;
  --c-display-letter: -0.025em;
  --c-body-size:      17px;
  --c-hero-scale:     1;
}
.theme-truthordare .sp-section__title,
.theme-truthordare .sp-prose h3 { font-weight: 700; letter-spacing: -0.02em; }
.theme-truthordare .sp-prose h4 { color: var(--c-ink); }
.theme-truthordare .sp-btn {
  border-radius: 0;
  font-family: var(--c-font-display);
  font-weight: 700;
  letter-spacing: 0.14em;
  padding: 22px 40px;
  font-size: 14px;
}

/* Hot pink flood surface — "A word to the successful people" */
.theme-truthordare .surface--pink {
  background: var(--c-accent);
  color: #ffffff;
  --c-ink: #ffffff;
  --c-ink-soft: rgba(255,255,255,0.78);
  --c-rule: rgba(255,255,255,0.22);
}
.theme-truthordare .surface--pink .sp-section__title,
.theme-truthordare .surface--pink .sp-prose h3 { color: #fff; }
.theme-truthordare .surface--pink .sp-btn {
  background: var(--c-chartreuse);
  border-color: var(--c-chartreuse);
  color: #0a0a0a;
}

/* Chartreuse surface — student-quotes / what-students-say */
.theme-truthordare .surface--lime {
  background: var(--c-chartreuse);
  color: var(--c-ink);
}

/* Gray surface — curriculum / architecture section */
.theme-truthordare .surface--fog {
  background: var(--c-surface);
  color: var(--c-ink);
}

/* Noir hero: black background with cutout of Simone and pink/gray TRUTH · DARE */
.theme-truthordare .sp-hero--tod {
  background: #0a0a0a;
  color: #fff;
  padding: 0;
  max-width: none;
  margin: 0;
  position: relative;
  overflow: hidden;
  height: clamp(420px, 52vw, 640px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.theme-truthordare .sp-hero--tod__eyebrow {
  position: absolute; top: 40px; left: 0; right: 0;
  text-align: center;
  font-family: var(--c-font-display);
  font-weight: 700;
  font-size: clamp(16px, 1.8vw, 22px);
  letter-spacing: 0.06em;
  color: #fff;
}
.theme-truthordare .sp-hero--tod__stage {
  position: relative;
  width: 100%;
  max-width: 1100px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.theme-truthordare .sp-hero--tod__truth,
.theme-truthordare .sp-hero--tod__dare {
  font-family: var(--c-font-display);
  font-weight: 900;
  font-style: italic;
  font-size: clamp(72px, 14vw, 200px);
  line-height: 0.9;
  letter-spacing: -0.04em;
  position: absolute;
  transform: skew(-8deg);
}
.theme-truthordare .sp-hero--tod__truth {
  color: var(--c-accent);
  left: 2%;
  top: 28%;
  z-index: 2;
}
.theme-truthordare .sp-hero--tod__or {
  font-family: "Caveat", cursive;
  font-size: clamp(28px, 3.8vw, 56px);
  color: #fff;
  position: absolute;
  top: 22%;
  right: 30%;
  transform: rotate(-6deg);
  z-index: 4;
}
.theme-truthordare .sp-hero--tod__dare {
  color: #bfbfbf;
  right: 2%;
  bottom: 16%;
  z-index: 2;
}
.theme-truthordare .sp-hero--tod__figure {
  position: relative;
  z-index: 3;
  width: clamp(140px, 18vw, 220px);
  aspect-ratio: 3/4;
  background:
    radial-gradient(ellipse 40% 24% at 50% 28%, #2a1810 0 60%, transparent 80%),
    linear-gradient(180deg, #3a2820 0% 35%, #1a1410 35% 100%);
  border-radius: 50% 50% 0 0 / 22% 22% 0 0;
  filter: drop-shadow(0 8px 24px rgba(0,0,0,0.6));
}
.theme-truthordare .sp-hero--tod__figure::before {
  /* pink turtleneck bar */
  content: "";
  position: absolute; inset: 58% 22% 12% 22%;
  background: var(--c-accent);
  border-radius: 8px 8px 0 0;
}
.theme-truthordare .sp-hero--tod__figure::after {
  /* leather-jacket V silhouette */
  content: "";
  position: absolute; inset: 62% 8% 0 8%;
  background: #1a1410;
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
}

/* Crinkled-paper dark background for testimonial wall */
/* Truth or Dare chatwall — noir-dominant w/ pink, blue, chartreuse, white accents */
.theme-truthordare .sp-chat--noir  { background: #0a0a0a; color: #fff; }
.theme-truthordare .sp-chat--pink  { background: #ed1e9a; color: #fff; }
.theme-truthordare .sp-chat--blue  { background: #4a6df7; color: #fff; }
.theme-truthordare .sp-chat--lime  { background: #e0f762; color: #0a0a0a; }
.theme-truthordare .sp-chat--white { background: #fff;    color: #0a0a0a; }

.theme-truthordare .sp-testi-wrap--noir {
  background: #1a1410;
  background-image:
    radial-gradient(ellipse 40% 30% at 20% 30%, rgba(255,255,255,0.03) 0 60%, transparent 80%),
    radial-gradient(ellipse 50% 35% at 80% 60%, rgba(255,255,255,0.04) 0 60%, transparent 80%),
    repeating-linear-gradient(112deg, rgba(255,255,255,0.015) 0 2px, transparent 2px 7px),
    repeating-linear-gradient(37deg, rgba(255,255,255,0.012) 0 2px, transparent 2px 9px);
  color: #fff;
  padding: 80px 0;
}

/* FAQ for Truth or Dare — massive black title, pink italic subheads */
.theme-truthordare .sp-faq-wrap__title {
  text-align: center;
  font-family: var(--c-font-display);
  font-size: clamp(48px, 7vw, 88px);
  font-weight: 500;
  letter-spacing: -0.03em;
  margin: 0 0 24px;
}
.theme-truthordare .sp-faq__heading {
  color: var(--c-accent);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(28px, 3vw, 38px);
  margin: 0 0 20px;
  letter-spacing: -0.01em;
}
.theme-truthordare .sp-faq summary { font-weight: 700; font-size: 18px; }
.theme-truthordare .sp-faq__answer strong { text-transform: none; letter-spacing: 0; font-size: inherit; }

/* Details block — huge price number */
.theme-truthordare .sp-details-block {
  max-width: 680px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  text-align: center;
}
.theme-truthordare .sp-details-block h2 {
  font-size: clamp(48px, 6vw, 80px);
  font-weight: 500;
  margin: 0 0 32px;
  letter-spacing: -0.03em;
}
.theme-truthordare .sp-details-block .intro {
  font-style: italic;
  font-size: 18px;
  text-align: left;
  margin-bottom: 20px;
}
.theme-truthordare .sp-details-block h3 {
  text-align: left;
  font-weight: 700;
  font-size: 18px;
  margin: 0 0 14px;
}
.theme-truthordare .sp-details-block ul {
  text-align: left;
  padding-left: 22px;
  font-size: 17px;
  margin: 0 0 40px;
}
.theme-truthordare .sp-details-block ul li { margin-bottom: 10px; }
.theme-truthordare .sp-details-block .price {
  font-family: var(--c-font-display);
  font-size: clamp(80px, 10vw, 140px);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1;
  margin: 0 0 40px;
}

/* Device-mockup placeholder (laptop + phone with workbook cover) */
.theme-truthordare .sp-mockup {
  max-width: 640px;
  margin: 0 auto 48px;
  aspect-ratio: 16/10;
  background: #f5f0e6;
  position: relative;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.theme-truthordare .sp-mockup__laptop {
  width: 72%;
  aspect-ratio: 16/10;
  background: #1a1410;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  position: relative;
}
.theme-truthordare .sp-mockup__screen {
  width: 100%; height: 100%;
  background: #f7f2e6;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
  font-family: var(--c-font-display);
  font-weight: 900;
  font-style: italic;
  color: #0a0a0a;
  text-align: center;
  line-height: 0.95;
}
.theme-truthordare .sp-mockup__screen .pink { color: var(--c-accent); font-size: clamp(22px, 3vw, 36px); }
.theme-truthordare .sp-mockup__screen .lg  { font-size: clamp(22px, 3vw, 36px); }
.theme-truthordare .sp-mockup__phone {
  position: absolute;
  right: -6%;
  bottom: -8%;
  width: 18%;
  aspect-ratio: 1/2;
  background: #1a1410;
  border-radius: 14px;
  padding: 6px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
.theme-truthordare .sp-mockup__phone .screen {
  width: 100%; height: 100%;
  background: #f7f2e6;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--c-font-display);
  font-weight: 900;
  font-style: italic;
  color: var(--c-accent);
  font-size: 11px;
  text-align: center;
  line-height: 1;
}

/* ── PRACTICAL ALLYSHIP ── cream/peach · oxblood + burnt orange + mustard · hand-lettered ── */
.theme-allyship {
  --c-bg:             #fbe7d3;       /* warm peach/cream page bg */
  --c-ink:            #1a1412;       /* near-black body ink */
  --c-ink-soft:       rgba(26,20,18,0.68);
  --c-ink-faint:      rgba(26,20,18,0.32);
  --c-rule:           rgba(122,31,21,0.18);
  --c-rule-strong:    rgba(122,31,21,0.32);
  --c-accent:         #9a8f1e;       /* mustard/olive — the CTA button color */
  --c-accent-ink:     #ffffff;
  --c-oxblood:        #7a1f15;       /* deep maroon — "Who we are" flood, banner */
  --c-burnt:          #d94820;       /* burnt orange — "Class Details" flood, accent headlines */
  --c-mustard:        #9a8f1e;       /* dominant chatwall color */
  --c-surface:        #f5dcc2;       /* slightly deeper cream alt */

  --c-font-display:   "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-body:      "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-meta:      "JetBrains Mono", ui-monospace, monospace;
  --c-font-hand:      "Caveat Brush", "Permanent Marker", "Caveat", cursive;
  --c-font-signature: "Simone Sharper", "Caveat", cursive;
  --c-display-weight: 700;
  --c-display-letter: -0.02em;
  --c-body-size:      17px;
  --c-hero-scale:     1;
}

/* Body baseline */
.theme-allyship .sp-section__title,
.theme-allyship .sp-prose h3 { font-weight: 700; letter-spacing: -0.02em; color: var(--c-oxblood); }
.theme-allyship .sp-prose h4 { color: var(--c-oxblood); font-weight: 700; }
.theme-allyship .sp-prose ul li::marker { color: var(--c-oxblood); }
.theme-allyship a:hover { color: var(--c-burnt); }

/* CTA button — mustard block, black uppercase text */
.theme-allyship .sp-btn {
  border-radius: 0;
  background: var(--c-accent);
  border-color: var(--c-accent);
  color: #1a1412;
  font-family: var(--c-font-display);
  font-weight: 700;
  letter-spacing: 0.16em;
  padding: 22px 52px;
  font-size: 13px;
}
.theme-allyship .sp-btn:hover {
  color: #1a1412;
  filter: brightness(0.94);
}

/* Headline with a second-color phrase (used for "Welcome to the advanced work of allyship") */
.theme-allyship .sp-prose h3 .accent,
.theme-allyship .sp-section__title .accent { color: var(--c-burnt); }
.theme-allyship .sp-prose h3 .ink,
.theme-allyship .sp-section__title .ink { color: var(--c-ink); }

/* Numbered sub-heads like "(1) The first step is NOT actually…" — oxblood, heavy */
.theme-allyship .sp-num-heading {
  font-family: var(--c-font-display);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 700;
  line-height: 1.25;
  color: var(--c-oxblood);
  margin: 36px 0 14px;
  letter-spacing: -0.01em;
}

/* ═════════ HERO: peach bg, oxblood banner card w/ offset orange shadow-tab ═════════ */
.theme-allyship .sp-hero--allyship {
  max-width: 1080px;
  margin: 0 auto;
  padding: 72px var(--c-page-pad) 64px;
  position: relative;
}
.theme-allyship .sp-hero--allyship__stack {
  position: relative;
}
/* Offset orange "tab" behind the banner */
.theme-allyship .sp-hero--allyship__stack::before {
  content: "";
  position: absolute;
  top: 28px; right: -10px; bottom: -40px; left: 40px;
  background: var(--c-burnt);
  border-radius: 14px;
  z-index: 0;
}
.theme-allyship .sp-banner-card {
  position: relative;
  z-index: 1;
  background: var(--c-oxblood);
  border-radius: 14px;
  padding: 18px;
  display: grid;
  grid-template-columns: 260px 1fr 260px;
  gap: 18px;
  align-items: stretch;
  min-height: 280px;
}
.theme-allyship .sp-banner-card__photo {
  border-radius: 8px;
  background: #3a2420 center/cover no-repeat;
  /* Placeholder portrait tone */
  background-image:
    radial-gradient(ellipse 55% 38% at 50% 38%, #d7a08a 0 60%, transparent 80%),
    linear-gradient(180deg, #8a5545 0%, #3a2420 100%);
  aspect-ratio: 1/1.1;
  align-self: center;
}
.theme-allyship .sp-banner-card__photo--rashida {
  background-image:
    radial-gradient(ellipse 40% 28% at 50% 24%, #b08ac4 0 60%, transparent 80%),   /* purple hair */
    radial-gradient(ellipse 50% 35% at 50% 55%, #c99989 0 60%, transparent 80%),
    linear-gradient(180deg, #7a3040 0%, #3a1820 100%);
}
.theme-allyship .sp-banner-card__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 18px 8px;
}
.theme-allyship .sp-banner-card__logo .hand {
  font-family: var(--c-font-hand);
  font-weight: 400;
  line-height: 0.92;
  color: var(--c-burnt);
  font-size: clamp(34px, 5vw, 68px);
  letter-spacing: 0.01em;
  text-transform: uppercase;
  display: block;
  transform: rotate(-1deg);
}
.theme-allyship .sp-banner-card__logo .hand .gold {
  color: var(--c-accent);
  display: inline-block;
  transform: rotate(2deg);
}
.theme-allyship .sp-banner-card__logo .hand .stack {
  display: block;
  transform: rotate(1.5deg);
}
.theme-allyship .sp-banner-card__logo .hand em { font-style: normal; }
.theme-allyship .sp-banner-card__names {
  position: absolute;
  left: 18px; right: 18px;
  bottom: -38px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  background: var(--c-accent);
  padding: 14px 24px;
  border-radius: 8px;
  font-family: var(--c-font-hand);
  font-size: clamp(16px, 1.9vw, 22px);
  color: var(--c-oxblood);
  text-align: center;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 400;
  z-index: 2;
}
@media (max-width: 780px) {
  .theme-allyship .sp-banner-card {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .theme-allyship .sp-banner-card__photo { aspect-ratio: 16/9; max-height: 180px; }
  .theme-allyship .sp-hero--allyship__stack::before { display: none; }
}

/* Polaroid-style framed photo floated to the right of the hook */
.theme-allyship .sp-hook-row {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 64px;
  align-items: start;
}
.theme-allyship .sp-hook-row .sp-prose { padding: 0; max-width: none; }
.theme-allyship .sp-polaroid {
  background: var(--c-burnt);
  padding: 10px;
  border-radius: 18px;
  box-shadow: 0 8px 28px rgba(122,31,21,0.25);
}
.theme-allyship .sp-polaroid__img {
  aspect-ratio: 1/1;
  border-radius: 12px;
  background: #3a2420 center/cover no-repeat;
  background-image:
    radial-gradient(ellipse 35% 25% at 35% 45%, #8a5a3a 0 60%, transparent 80%),
    radial-gradient(ellipse 30% 22% at 68% 50%, #d7b090 0 60%, transparent 80%),
    linear-gradient(180deg, #e0c0a0 0%, #7a4a30 55%, #3a2420 100%);
}
@media (max-width: 820px) {
  .theme-allyship .sp-hook-row { grid-template-columns: 1fr; gap: 36px; }
  .theme-allyship .sp-polaroid { max-width: 260px; margin: 0 auto; }
}

/* ═════════ SURFACES ═════════ */

/* Oxblood flood — "Who we are" teacher bios */
.theme-allyship .surface--oxblood {
  background: var(--c-oxblood);
  color: #fff;
  --c-ink: #fff;
  --c-ink-soft: rgba(255,255,255,0.78);
  --c-rule: rgba(255,255,255,0.2);
}
.theme-allyship .surface--oxblood .sp-section__title,
.theme-allyship .surface--oxblood .sp-prose h3,
.theme-allyship .surface--oxblood .sp-prose h4 { color: #fff; }

/* Burnt orange flood — "Class Details" */
.theme-allyship .surface--burnt {
  background: var(--c-burnt);
  color: #1a1412;
  --c-ink: #1a1412;
  --c-rule: rgba(26,20,18,0.24);
}
.theme-allyship .surface--burnt .sp-section__title,
.theme-allyship .surface--burnt .sp-prose h3,
.theme-allyship .surface--burnt .sp-prose h4 { color: #1a1412; }

/* ═════════ CO-TEACHER GRID (oxblood "Who we are") ═════════ */
.theme-allyship .sp-coteachers {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
}
.theme-allyship .sp-coteachers__title {
  grid-column: 1 / -1;
  text-align: center;
  font-family: var(--c-font-hand);
  font-weight: 400;
  font-size: clamp(36px, 4.8vw, 56px);
  color: #fff;
  margin: 0 0 40px;
  letter-spacing: 0.01em;
}
.theme-allyship .sp-coteachers__card { text-align: left; }
.theme-allyship .sp-coteachers__photo {
  width: 220px;
  aspect-ratio: 1/1.05;
  border-radius: 14px;
  background: #3a1a20 center/cover no-repeat;
  margin: 0 auto 28px;
  box-shadow: 0 6px 24px rgba(0,0,0,0.35);
}
.theme-allyship .sp-coteachers__photo--rashida {
  background-image:
    radial-gradient(ellipse 44% 26% at 50% 22%, #b08ac4 0 60%, transparent 80%),
    radial-gradient(ellipse 55% 38% at 50% 55%, #c99989 0 60%, transparent 80%),
    linear-gradient(180deg, #7a3040 0%, #3a1820 100%);
}
.theme-allyship .sp-coteachers__photo--simone {
  background-image:
    radial-gradient(ellipse 50% 35% at 50% 38%, #e3c6a3 0 60%, transparent 80%),
    linear-gradient(180deg, #8a5545 0%, #3a2420 100%);
}
.theme-allyship .sp-coteachers__name {
  font-family: var(--c-font-hand);
  font-weight: 400;
  font-size: clamp(26px, 3vw, 34px);
  color: #fff;
  text-align: center;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 24px;
}
.theme-allyship .sp-coteachers__bio p {
  color: #fff;
  font-size: 15px;
  line-height: 1.55;
  margin: 0 0 14px;
}
@media (max-width: 820px) {
  .theme-allyship .sp-coteachers { grid-template-columns: 1fr; gap: 48px; }
}

/* ═════════ ALLYSHIP CHATWALL ═════════
   Dominant mustard cards (~60%), black as rhythm,
   cream and oxblood as punctuation. No avatars, no bubble tails. */
.theme-allyship .sp-chatwall { gap: 12px; }
.theme-allyship .sp-chatwall__col { gap: 12px; }
.theme-allyship .sp-chat {
  border-radius: 6px;
  font-size: 14px;
  line-height: 1.45;
  padding: 14px 16px;
}
.theme-allyship .sp-chat--mustard { background: var(--c-mustard); color: #1a1412; }
.theme-allyship .sp-chat--noir    { background: #1a1412; color: #fff; }
.theme-allyship .sp-chat--cream   { background: #f7e3c9; color: #1a1412; }
.theme-allyship .sp-chat--oxblood { background: var(--c-oxblood); color: #fff; }
.theme-allyship .sp-chat--pink    { background: #ffd4de; color: #1a1412; }

/* ═════════ PRICE / DETAILS INSIDE BURNT FLOOD ═════════ */
.theme-allyship .sp-details-block {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  text-align: center;
}
.theme-allyship .sp-details-block h2 {
  font-family: var(--c-font-display);
  font-size: clamp(40px, 5vw, 60px);
  font-weight: 700;
  margin: 0 0 28px;
  letter-spacing: -0.02em;
  color: #1a1412;
}
.theme-allyship .sp-details-block .body {
  font-size: 17px;
  line-height: 1.6;
  text-align: left;
  color: #1a1412;
}
.theme-allyship .sp-details-block ul {
  text-align: left;
  padding-left: 22px;
  margin: 0 0 24px;
}
.theme-allyship .sp-details-block ul li { margin-bottom: 10px; }
.theme-allyship .sp-details-block .price {
  font-family: var(--c-font-display);
  font-weight: 700;
  font-size: clamp(40px, 5vw, 56px);
  margin: 32px 0 28px;
  letter-spacing: -0.02em;
  color: #1a1412;
}

/* ═════════ IG-EMBED PLACEHOLDER + closing split ═════════ */
.theme-allyship .sp-closer-split {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 64px;
  align-items: center;
}
.theme-allyship .sp-closer-split h3 { color: var(--c-ink); }
.theme-allyship .sp-ig-embed {
  border: 1px solid rgba(0,0,0,0.14);
  border-radius: 6px;
  background: #fff;
  overflow: hidden;
  font-family: var(--c-font-body);
  font-size: 13px;
  color: #1a1412;
}
.theme-allyship .sp-ig-embed__head {
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}
.theme-allyship .sp-ig-embed__avatar {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, #b08ac4 0%, #8a5545 100%);
  flex: 0 0 auto;
}
.theme-allyship .sp-ig-embed__handle {
  font-weight: 600;
  font-size: 12px;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.theme-allyship .sp-ig-embed__view {
  font-size: 11px;
  color: #0095f6;
  background: rgba(0,149,246,0.1);
  padding: 5px 10px;
  border-radius: 4px;
  font-weight: 600;
}
.theme-allyship .sp-ig-embed__video {
  aspect-ratio: 1/1;
  background: #000;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.theme-allyship .sp-ig-embed__video::before {
  /* placeholder video thumbnail: mustard block w/ small portraits + title */
  content: "";
  position: absolute;
  inset: 8% 22%;
  background:
    linear-gradient(180deg,
      #7a3040 0% 18%,
      var(--c-mustard) 18% 78%,
      #7a3040 78% 100%);
  border-radius: 2px;
}
.theme-allyship .sp-ig-embed__play {
  position: relative;
  z-index: 2;
  width: 54px; height: 54px;
  border-radius: 50%;
  background: rgba(255,255,255,0.92);
  display: flex;
  align-items: center;
  justify-content: center;
}
.theme-allyship .sp-ig-embed__play::after {
  content: "";
  border-style: solid;
  border-width: 10px 0 10px 16px;
  border-color: transparent transparent transparent #1a1412;
  margin-left: 4px;
}
.theme-allyship .sp-ig-embed__caption {
  padding: 12px 12px 14px;
  font-size: 12px;
  line-height: 1.4;
  border-top: 1px solid rgba(0,0,0,0.05);
}
.theme-allyship .sp-ig-embed__caption .handle { font-weight: 600; }
@media (max-width: 820px) {
  .theme-allyship .sp-closer-split { grid-template-columns: 1fr; gap: 36px; }
  .theme-allyship .sp-ig-embed { max-width: 360px; margin: 0 auto; }
}

/* ── COLD PITCH MAGIC ── navy · hot pink · gold · Sam + Simone ── */
.theme-coldpitch {
  --c-bg:             #ffffff;
  --c-ink:            #2a2a2a;
  --c-ink-soft:       rgba(42,42,42,0.72);
  --c-ink-faint:      rgba(42,42,42,0.42);
  --c-rule:           rgba(42,42,42,0.12);
  --c-rule-strong:    rgba(42,42,42,0.28);
  --c-accent:         #e770d8;         /* hot pink — CTAs */
  --c-accent-ink:     #ffffff;
  --c-navy:           #0e1635;         /* hero + closing band */
  --c-navy-deep:      #0a1028;
  --c-gold:           #c99a3e;         /* section headers + "Magic" script */
  --c-pink-soft:      #fbe0f6;
  --c-cream:          #f7efe1;
  --c-surface:        #f7f4ec;

  --c-font-display:   "Fraunces", "DM Serif Display", Georgia, serif;
  --c-font-body:      "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-meta:      "JetBrains Mono", ui-monospace, monospace;
  --c-font-script:    "Yeseva One", "Fraunces", Georgia, serif;
  --c-font-signature: "Simone Sharper", "Caveat", cursive;
  --c-display-weight: 600;
  --c-display-letter: -0.01em;
  --c-body-size:      17px;
}

/* Gold section headers (serif) */
.theme-coldpitch .sp-section__title,
.theme-coldpitch .sp-prose h2,
.theme-coldpitch .sp-prose h3 {
  font-family: var(--c-font-display);
  font-weight: 600;
  color: var(--c-gold);
  letter-spacing: -0.01em;
  line-height: 1.1;
}
.theme-coldpitch .sp-prose h2 { font-size: clamp(34px, 4vw, 46px); margin: 0 0 28px; }
.theme-coldpitch .sp-prose h3 { font-size: clamp(26px, 3vw, 34px); margin: 36px 0 18px; }
.theme-coldpitch .sp-prose p { font-size: 17px; line-height: 1.65; margin: 0 0 18px; }
.theme-coldpitch .sp-prose em { font-style: italic; }
.theme-coldpitch a { color: var(--c-accent); text-decoration: underline; text-underline-offset: 3px; }
.theme-coldpitch a:hover { color: var(--c-navy); }

/* CTA — sharp rectangle, no radius, white uppercase on hot pink */
.theme-coldpitch .sp-btn {
  border-radius: 0;
  background: var(--c-accent);
  border-color: var(--c-accent);
  color: #ffffff;
  font-family: var(--c-font-body);
  font-weight: 600;
  letter-spacing: 0.16em;
  padding: 22px 52px;
  font-size: 13px;
  text-transform: uppercase;
}
.theme-coldpitch .sp-btn:hover {
  background: #d35bc4;
  border-color: #d35bc4;
  color: #fff;
}
.theme-coldpitch .sp-btn--dark { color: #0e1635; background: var(--c-accent); border-color: var(--c-accent); }
.theme-coldpitch .sp-btn--dark:hover { color: #0e1635; }

/* ═════════ HERO (navy flood with illustrated banner placeholder) ═════════ */
.theme-coldpitch .sp-hero--cpm {
  max-width: 1080px;
  margin: 24px auto 0;
  padding: 0 var(--c-page-pad);
}
.theme-coldpitch .sp-cpm-banner {
  position: relative;
  aspect-ratio: 2.1 / 1;
  background: var(--c-navy);
  /* subtle noise/texture feel */
  background-image:
    radial-gradient(ellipse 70% 60% at 30% 40%, rgba(40,60,120,0.35) 0%, transparent 60%),
    radial-gradient(ellipse 60% 50% at 80% 70%, rgba(80,40,100,0.3) 0%, transparent 60%);
  overflow: hidden;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  align-items: center;
  gap: 24px;
  padding: 56px 56px;
}
.theme-coldpitch .sp-cpm-banner__title {
  position: relative;
  z-index: 2;
  text-align: center;
  padding-left: 24px;
}
.theme-coldpitch .sp-cpm-banner__cp {
  font-family: var(--c-font-body);
  font-weight: 900;
  font-size: clamp(48px, 6.5vw, 82px);
  color: var(--c-accent);
  letter-spacing: -0.01em;
  line-height: 1;
  text-transform: uppercase;
  display: block;
  margin-bottom: 6px;
}
.theme-coldpitch .sp-cpm-banner__magic {
  font-family: var(--c-font-script);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(70px, 10vw, 130px);
  color: var(--c-gold);
  line-height: 0.9;
  display: inline-block;
  margin: 0;
  position: relative;
}
.theme-coldpitch .sp-cpm-banner__cone {
  display: inline-block;
  font-size: 0.5em;
  vertical-align: top;
  margin-left: 8px;
  position: relative;
  top: 0.1em;
}
.theme-coldpitch .sp-cpm-banner__sub {
  font-family: var(--c-font-body);
  font-weight: 700;
  font-size: clamp(14px, 1.4vw, 18px);
  color: #fff;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 20px 0 28px;
  line-height: 1.4;
}
.theme-coldpitch .sp-cpm-banner__names {
  font-family: var(--c-font-body);
  font-weight: 700;
  font-size: clamp(13px, 1.3vw, 16px);
  color: var(--c-accent);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  display: inline-flex;
  gap: 14px;
  align-items: center;
}
.theme-coldpitch .sp-cpm-banner__names .amp {
  font-family: var(--c-font-script);
  font-style: italic;
  font-weight: 400;
  font-size: 1.8em;
  color: var(--c-gold);
  letter-spacing: 0;
  text-transform: none;
  line-height: 1;
  transform: translateY(3px);
}
.theme-coldpitch .sp-cpm-banner__illus {
  position: relative;
  height: 100%;
  min-height: 320px;
  /* stand-in for Simone+Sam illustration: two navy silhouettes w/ unicorn horns */
  background:
    radial-gradient(ellipse 38% 8% at 48% 22%, #e8b8d4 0 60%, transparent 75%),    /* face 1 */
    radial-gradient(ellipse 32% 7% at 72% 26%, #e8b8d4 0 60%, transparent 75%),    /* face 2 */
    linear-gradient(180deg, transparent 0% 35%, #1a2045 40%, #1a2045 100%),
    radial-gradient(ellipse 80% 60% at 60% 100%, #2a1a3a 0 60%, transparent 75%);
  border-radius: 4px;
}
.theme-coldpitch .sp-cpm-banner__illus::after {
  content: "illustration placeholder — swap with real banner.png";
  position: absolute;
  bottom: 12px; left: 12px; right: 12px;
  font-family: var(--c-font-meta);
  font-size: 10px;
  color: rgba(255,255,255,0.5);
  letter-spacing: 0.06em;
  text-align: center;
}
@media (max-width: 780px) {
  .theme-coldpitch .sp-cpm-banner {
    grid-template-columns: 1fr;
    aspect-ratio: auto;
    padding: 40px 24px;
  }
  .theme-coldpitch .sp-cpm-banner__illus { min-height: 220px; }
}

/* ═════════ Navy closing band ═════════ */
.theme-coldpitch .surface--navy {
  background: var(--c-navy);
  color: #fff;
  --c-ink: #fff;
  --c-ink-soft: rgba(255,255,255,0.78);
  --c-rule: rgba(255,255,255,0.2);
  position: relative;
  overflow: hidden;
}
.theme-coldpitch .surface--navy .sp-section__title,
.theme-coldpitch .surface--navy .sp-prose h2,
.theme-coldpitch .surface--navy .sp-prose h3 { color: #fff; }

.theme-coldpitch .sp-closing-band {
  max-width: 1080px;
  margin: 0 auto;
  padding: 64px var(--c-page-pad);
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 32px;
  align-items: center;
  min-height: 360px;
}
.theme-coldpitch .sp-closing-band__copy { text-align: center; padding-right: 64px; }
.theme-coldpitch .sp-closing-band__title {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: clamp(34px, 4vw, 46px);
  color: #fff;
  margin: 0 0 20px;
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.theme-coldpitch .sp-closing-band__with {
  font-family: var(--c-font-body);
  font-style: italic;
  font-size: 15px;
  color: rgba(255,255,255,0.7);
  margin: 0 0 18px;
}
.theme-coldpitch .sp-closing-band__desc {
  font-family: var(--c-font-body);
  font-size: 15px;
  color: rgba(255,255,255,0.9);
  margin: 0 0 16px;
}
.theme-coldpitch .sp-closing-band__price {
  font-family: var(--c-font-body);
  font-weight: 500;
  font-size: 18px;
  color: #fff;
  margin: 0 0 32px;
}
.theme-coldpitch .sp-closing-band__illus {
  position: relative;
  height: 100%;
  min-height: 300px;
  align-self: stretch;
  background:
    radial-gradient(ellipse 38% 8% at 40% 18%, #e8b8d4 0 60%, transparent 75%),
    radial-gradient(ellipse 32% 7% at 70% 22%, #e8b8d4 0 60%, transparent 75%),
    linear-gradient(180deg, transparent 0% 30%, #1a2045 36%, #1a2045 100%);
  border-radius: 4px;
}
.theme-coldpitch .sp-closing-band__illus::after {
  content: "illustration placeholder";
  position: absolute;
  bottom: 12px; left: 0; right: 0;
  font-family: var(--c-font-meta);
  font-size: 10px;
  color: rgba(255,255,255,0.4);
  letter-spacing: 0.06em;
  text-align: center;
}
@media (max-width: 820px) {
  .theme-coldpitch .sp-closing-band { grid-template-columns: 1fr; text-align: center; }
  .theme-coldpitch .sp-closing-band__copy { padding-right: 0; }
  .theme-coldpitch .sp-closing-band__illus { min-height: 220px; }
}

/* ═════════ WHO WE ARE — co-teacher two-up (Sam + Simone) ═════════ */
.theme-coldpitch .sp-cpm-teachers {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
}
.theme-coldpitch .sp-cpm-teachers__title {
  grid-column: 1 / -1;
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: clamp(34px, 4vw, 46px);
  color: var(--c-gold);
  text-align: center;
  margin: 0 0 48px;
  letter-spacing: -0.01em;
}
.theme-coldpitch .sp-cpm-teacher__photo {
  width: 100%;
  aspect-ratio: 1/1;
  background: var(--c-navy);
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
  border-radius: 2px;
}
.theme-coldpitch .sp-cpm-teacher__photo--sam {
  background-image:
    radial-gradient(ellipse 45% 32% at 50% 40%, #e8b8d4 0 60%, transparent 80%),
    linear-gradient(180deg, #2a3560 0%, #0e1635 100%);
}
.theme-coldpitch .sp-cpm-teacher__photo--simone {
  background-image:
    radial-gradient(ellipse 45% 32% at 50% 40%, #e3c6a3 0 60%, transparent 80%),
    linear-gradient(180deg, #2a3560 0%, #0e1635 100%);
}
.theme-coldpitch .sp-cpm-teacher__photo::after {
  content: "photo placeholder";
  position: absolute;
  bottom: 12px; left: 0; right: 0;
  font-family: var(--c-font-meta);
  font-size: 10px;
  color: rgba(255,255,255,0.4);
  letter-spacing: 0.06em;
  text-align: center;
}
.theme-coldpitch .sp-cpm-teacher__name {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: clamp(22px, 2.4vw, 28px);
  color: var(--c-gold);
  margin: 0 0 6px;
  letter-spacing: -0.01em;
}
.theme-coldpitch .sp-cpm-teacher__role {
  font-family: var(--c-font-body);
  font-size: 13px;
  color: var(--c-ink-soft);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0 0 18px;
}
.theme-coldpitch .sp-cpm-teacher__bio p {
  font-size: 16px;
  line-height: 1.6;
  margin: 0 0 14px;
  color: var(--c-ink);
}
@media (max-width: 820px) {
  .theme-coldpitch .sp-cpm-teachers { grid-template-columns: 1fr; gap: 48px; }
}

/* ═════════ CHATWALL — screenshot-style testimonials ═════════
   Dominant navy (~60%); cream + soft-pink as rhythm.
   Real handles preserved via .sp-chat__handle. */
.theme-coldpitch .sp-chatwall { gap: 14px; }
.theme-coldpitch .sp-chatwall__col { gap: 14px; }
.theme-coldpitch .sp-chat {
  border-radius: 2px;
  font-size: 13.5px;
  line-height: 1.5;
  padding: 14px 16px;
  font-family: var(--c-font-body);
}
.theme-coldpitch .sp-chat--navy   { background: var(--c-navy); color: #fff; }
.theme-coldpitch .sp-chat--cream  { background: var(--c-cream); color: #2a2a2a; }
.theme-coldpitch .sp-chat--pink   { background: var(--c-pink-soft); color: #2a2a2a; }
.theme-coldpitch .sp-chat--white  { background: #fff; color: #2a2a2a; border: 1px solid var(--c-rule); }

.theme-coldpitch .sp-chat strong { font-weight: 700; }
.theme-coldpitch .sp-chat em { font-style: italic; }
.theme-coldpitch .sp-chat .mention { color: var(--c-accent); }
.theme-coldpitch .sp-chat--navy .mention { color: #ffb8ee; }
.theme-coldpitch .sp-chat__handle {
  display: block;
  margin-top: 10px;
  font-size: 11px;
  font-style: italic;
  opacity: 0.6;
  letter-spacing: 0.02em;
}

/* ═════════ PRICE / DETAILS column on navy ═════════ */
.theme-coldpitch .sp-cpm-warning h2 {
  font-family: var(--c-font-display);
  font-size: clamp(30px, 3.6vw, 42px);
  color: var(--c-gold);
  font-weight: 600;
  margin: 0 0 28px;
  letter-spacing: -0.01em;
}

/* ── SIMONE'S SUMMER CAMP ── sky blue · flamingo pink · sunshine yellow ── */
.theme-summer {
  --c-bg:             #fffaed;           /* warm cream page bg */
  --c-ink:            #1a1a1a;
  --c-ink-soft:       rgba(26,26,26,0.72);
  --c-ink-faint:      rgba(26,26,26,0.4);
  --c-rule:           rgba(26,26,26,0.12);
  --c-rule-strong:    rgba(26,26,26,0.28);
  --c-accent:         #e42b9b;           /* flamingo magenta — CTA */
  --c-accent-ink:     #ffffff;
  --c-sky:            #1f8dc9;           /* summer-camp blue */
  --c-sky-deep:       #1777ad;
  --c-sky-pale:       #c9e5f5;
  --c-sun:            #f5e541;           /* sunshine yellow */
  --c-sun-deep:       #e8d62c;
  --c-flamingo:       #ff8fb5;           /* pink flamingo pink */
  --c-coral:          #f57860;           /* starfish orange */
  --c-cream:          #fff4d6;
  --c-surface:        #fffbe8;

  --c-font-display:   "Anton", "Oswald", "Bebas Neue", "Helvetica Neue", sans-serif;
  --c-font-body:      "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-meta:      "JetBrains Mono", ui-monospace, monospace;
  --c-font-marker:    "Permanent Marker", "Caveat Brush", cursive;
  --c-font-signature: "Simone Sharper", "Caveat", cursive;
  --c-display-weight: 400;
  --c-display-letter: 0.01em;
  --c-body-size:      17px;
}

/* Body baseline: big blocky headlines */
.theme-summer .sp-section__title,
.theme-summer .sp-prose h2 {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(44px, 5.2vw, 68px);
  color: var(--c-sky);
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 0.98;
  margin: 0 0 32px;
}
.theme-summer .sp-prose h3 {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(28px, 3.4vw, 40px);
  color: var(--c-sky);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1;
  margin: 44px 0 20px;
}
.theme-summer .sp-prose p { font-size: 17px; line-height: 1.65; margin: 0 0 14px; }
.theme-summer .sp-prose ul { margin: 0 0 22px; padding-left: 22px; }
.theme-summer .sp-prose ul li { margin-bottom: 8px; line-height: 1.55; }
.theme-summer .sp-prose ul li::marker { color: var(--c-flamingo); }
.theme-summer a { color: var(--c-accent); text-underline-offset: 3px; }
.theme-summer a:hover { color: var(--c-sky); }

/* CTA: sharp-rectangle flamingo pink, white uppercase */
.theme-summer .sp-btn {
  border-radius: 2px;
  background: var(--c-accent);
  border-color: var(--c-accent);
  color: #ffffff;
  font-family: var(--c-font-body);
  font-weight: 600;
  letter-spacing: 0.18em;
  padding: 22px 56px;
  font-size: 13px;
  text-transform: uppercase;
}
.theme-summer .sp-btn:hover {
  background: #c71f85;
  border-color: #c71f85;
  color: #fff;
}

/* ═════════ HERO: two-up banner + pitch ═════════ */
.theme-summer .sp-hero--summer {
  max-width: 1200px;
  margin: 24px auto 0;
  padding: 0 var(--c-page-pad);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.theme-summer .sp-hero-banner {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--c-sky);
  overflow: hidden;
  border-radius: 2px;
  box-shadow: 0 8px 24px rgba(31,141,201,0.18);
}
/* Decorative scatter: flamingos, starfish, beach ball, flip-flop */
.theme-summer .sp-hero-banner::before {
  /* background pattern of curved blobs (shore) */
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 30% 18% at 18% 20%, rgba(255,255,255,0.08) 0 60%, transparent 70%),
    radial-gradient(ellipse 24% 14% at 78% 22%, rgba(255,255,255,0.08) 0 60%, transparent 70%),
    radial-gradient(ellipse 26% 16% at 65% 78%, rgba(255,255,255,0.08) 0 60%, transparent 70%);
}
.theme-summer .sp-hero-banner__badge {
  position: absolute;
  top: 26%;
  right: 14%;
  font-family: var(--c-font-body);
  font-weight: 700;
  font-size: 13px;
  color: #fff;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-align: center;
  z-index: 3;
}
.theme-summer .sp-hero-banner__title {
  position: absolute;
  top: 34%;
  right: 6%;
  width: 52%;
  font-family: var(--c-font-display);
  font-weight: 400;
  color: var(--c-sun);
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 0.88;
  font-size: clamp(28px, 5vw, 56px);
  z-index: 3;
  text-shadow: 2px 2px 0 rgba(0,0,0,0.08);
}
.theme-summer .sp-hero-banner__title span { display: block; }
.theme-summer .sp-hero-banner__polaroid {
  position: absolute;
  top: 14%;
  left: 8%;
  width: 38%;
  aspect-ratio: 1 / 1.12;
  background: #fff;
  padding: 7% 7% 18% 7%;
  transform: rotate(-6deg);
  box-shadow: 0 6px 16px rgba(0,0,0,0.18);
  z-index: 3;
}
.theme-summer .sp-hero-banner__polaroid::before {
  content: "";
  position: absolute;
  top: -8px; left: 28%; right: 28%;
  height: 22px;
  background: rgba(200,235,200,0.7);         /* washi tape */
}
.theme-summer .sp-hero-banner__polaroid-photo {
  width: 100%;
  height: 100%;
  background:
    radial-gradient(ellipse 55% 40% at 50% 38%, #f4c8ab 0 60%, transparent 80%),
    linear-gradient(180deg, #a8d8c4 0%, #fff3d4 100%);
}
/* Scatter ornaments: pure CSS flamingos + starfish + beachball */
.theme-summer .sp-hero-banner__scatter {
  position: absolute; inset: 0; z-index: 2;
}
.theme-summer .sc-flamingo,
.theme-summer .sc-starfish,
.theme-summer .sc-ball,
.theme-summer .sc-flipflop {
  position: absolute;
  font-family: sans-serif;
  font-size: 0; /* hide glyph; rely on background shape */
}
/* Flamingo (simple body+leg silhouette via radial shapes) */
.theme-summer .sc-flamingo {
  width: 62px; height: 92px;
  background:
    /* beak */
    radial-gradient(ellipse 4px 3px at 56% 12%, #111 0 60%, transparent 70%),
    /* head */
    radial-gradient(ellipse 8px 9px at 50% 14%, var(--c-flamingo) 0 60%, transparent 70%),
    /* neck */
    linear-gradient(180deg, transparent 16%, var(--c-flamingo) 16% 40%, transparent 40%),
    /* body */
    radial-gradient(ellipse 22px 16px at 40% 54%, var(--c-flamingo) 0 60%, transparent 70%),
    /* leg */
    linear-gradient(180deg, transparent 68%, var(--c-flamingo) 68% 95%, transparent 95%);
  background-repeat: no-repeat;
  background-size:
    7px 5px,
    14px 16px,
    4px 100%,
    42px 28px,
    2px 100%;
  background-position:
    52% 12%,
    50% 14%,
    48% 20%,
    40% 54%,
    46% 60%;
}
/* Starfish (5-point via conic clipped) */
.theme-summer .sc-starfish {
  width: 34px; height: 34px;
  background: var(--c-coral);
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}
/* Beachball (conic color wheel) */
.theme-summer .sc-ball {
  width: 50px; height: 50px;
  border-radius: 50%;
  background: conic-gradient(from 0deg,
    var(--c-flamingo) 0 20%,
    var(--c-sun) 20% 40%,
    #6cc9e0 40% 60%,
    #6ccf89 60% 80%,
    #fff 80% 100%);
  box-shadow: inset 0 0 0 2px rgba(0,0,0,0.05);
}
/* Flip-flop: diamond w/ straps */
.theme-summer .sc-flipflop {
  width: 30px; height: 44px;
  background: var(--c-flamingo);
  border-radius: 14px 14px 20px 20px;
  transform: rotate(22deg);
  position: relative;
}
.theme-summer .sc-flipflop::after {
  content: "";
  position: absolute; inset: 10% 30% 10% 30%;
  background: var(--c-sun);
  border-radius: 8px 8px 14px 14px;
}
/* scatter positions */
.theme-summer .fl1 { top: 4%;   left: 3%;   transform: rotate(-6deg); }
.theme-summer .fl2 { top: 60%;  left: 10%;  transform: scaleX(-1) rotate(-3deg); }
.theme-summer .fl3 { top: 62%;  right: 8%;  transform: rotate(4deg); }
.theme-summer .st1 { top: 8%;   left: 45%;  transform: rotate(12deg); }
.theme-summer .st2 { top: 40%;  left: 36%;  transform: rotate(-10deg); }
.theme-summer .st3 { top: 82%;  right: 28%; transform: rotate(22deg); }
.theme-summer .st4 { top: 48%;  right: 4%;  transform: rotate(30deg); }
.theme-summer .bb1 { bottom: 6%; left: 32%; }
.theme-summer .ff1 { top: 6%;   right: 10%; }

.theme-summer .sp-hero-banner__note {
  position: absolute;
  bottom: 8px; left: 8px;
  font-family: var(--c-font-meta);
  font-size: 9px;
  color: rgba(255,255,255,0.55);
  letter-spacing: 0.06em;
  z-index: 4;
}

/* Hero right side: title + pitch */
.theme-summer .sp-hero-copy h1 {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(56px, 6.4vw, 88px);
  color: var(--c-ink);
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 0.92;
  margin: 0 0 24px;
}
.theme-summer .sp-hero-copy .tag {
  font-family: var(--c-font-body);
  font-size: clamp(18px, 1.6vw, 21px);
  line-height: 1.4;
  color: var(--c-ink);
  margin: 0 0 28px;
  font-weight: 500;
}
.theme-summer .sp-hero-copy p { font-size: 16px; line-height: 1.6; margin: 0 0 12px; }
.theme-summer .sp-hero-copy .parens {
  font-family: var(--c-font-body);
  font-style: italic;
  font-size: 14px;
  color: var(--c-ink-soft);
  margin: 0 0 12px;
}
.theme-summer .sp-hero-copy ul {
  padding-left: 20px;
  margin: 14px 0 0;
}
.theme-summer .sp-hero-copy ul li {
  font-size: 15.5px;
  line-height: 1.55;
  margin-bottom: 8px;
}
.theme-summer .sp-hero-copy ul li::marker { color: var(--c-flamingo); }

@media (max-width: 860px) {
  .theme-summer .sp-hero--summer { grid-template-columns: 1fr; gap: 36px; }
  .theme-summer .sp-hero-banner { max-width: 560px; margin: 0 auto; }
}

/* ═════════ SURFACES ═════════ */
.theme-summer .surface--sky {
  background: var(--c-sky);
  color: #fff;
  --c-ink: #fff;
  --c-rule: rgba(255,255,255,0.2);
}
.theme-summer .surface--sky .sp-section__title,
.theme-summer .surface--sky .sp-prose h2,
.theme-summer .surface--sky .sp-prose h3 { color: var(--c-sun); }

.theme-summer .surface--sun {
  background: var(--c-sun);
  color: var(--c-ink);
  --c-rule: rgba(0,0,0,0.15);
}

.theme-summer .surface--cream {
  background: var(--c-cream);
  color: var(--c-ink);
}

/* ═════════ DIVIDER: flamingo row (section-break decoration) ═════════ */
.theme-summer .sp-sun-divider {
  display: flex;
  justify-content: center;
  gap: 32px;
  padding: 48px 0;
  align-items: center;
}
.theme-summer .sp-sun-divider > * { flex: 0 0 auto; }

/* ═════════ NUMBERED PLAYBOOK MODULES ═════════ */
.theme-summer .sp-sun-modules {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
}
.theme-summer .sp-sun-module {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 32px;
  padding: 32px 0;
  border-top: 2px solid var(--c-rule);
  align-items: start;
}
.theme-summer .sp-sun-module:first-of-type { border-top: none; }
.theme-summer .sp-sun-module__num {
  font-family: var(--c-font-display);
  font-size: 96px;
  line-height: 0.85;
  color: var(--c-flamingo);
  margin: 0;
  text-align: right;
  padding-top: 6px;
}
.theme-summer .sp-sun-module__body h3 {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(28px, 3vw, 36px);
  color: var(--c-sky);
  text-transform: uppercase;
  margin: 0 0 16px;
  letter-spacing: 0.02em;
  line-height: 1;
}
.theme-summer .sp-sun-module__body p { margin: 0 0 10px; line-height: 1.6; }
@media (max-width: 700px) {
  .theme-summer .sp-sun-module { grid-template-columns: 1fr; gap: 12px; }
  .theme-summer .sp-sun-module__num { text-align: left; font-size: 72px; }
}

/* ═════════ "FOR YOU IF" — photo + bulleted bold-lead list ═════════ */
.theme-summer .sp-sun-foryou {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 56px;
  align-items: start;
}
.theme-summer .sp-sun-foryou__photo {
  aspect-ratio: 1 / 1;
  background:
    radial-gradient(ellipse 50% 35% at 50% 40%, #f4c8ab 0 60%, transparent 80%),
    linear-gradient(180deg, #a8d8c4 0%, #fff3d4 100%);
  border-radius: 2px;
  position: relative;
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}
.theme-summer .sp-sun-foryou__photo::after {
  content: "Simone portrait placeholder";
  position: absolute;
  bottom: 8px; left: 0; right: 0;
  font-family: var(--c-font-meta);
  font-size: 10px;
  color: rgba(26,26,26,0.5);
  letter-spacing: 0.06em;
  text-align: center;
}
.theme-summer .sp-sun-foryou__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.theme-summer .sp-sun-foryou__list li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 22px;
  font-size: 16px;
  line-height: 1.6;
}
.theme-summer .sp-sun-foryou__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 8px;
  width: 14px; height: 14px;
  background: var(--c-flamingo);
  border-radius: 50%;
}
.theme-summer .sp-sun-foryou__list li strong {
  color: var(--c-sky);
  font-weight: 700;
}
@media (max-width: 780px) {
  .theme-summer .sp-sun-foryou { grid-template-columns: 1fr; gap: 36px; }
  .theme-summer .sp-sun-foryou__photo { max-width: 320px; margin: 0 auto; }
}

/* ═════════ CHATWALL — sky-blue flood, screenshot-style bubbles ═════════ */
.theme-summer .surface--sky .sp-chatwall { gap: 14px; }
.theme-summer .sp-chatwall__col { gap: 14px; }
.theme-summer .sp-chat {
  border-radius: 4px;
  font-size: 14px;
  line-height: 1.5;
  padding: 14px 16px;
  font-family: var(--c-font-body);
}
.theme-summer .sp-chat--white   { background: #ffffff; color: #1a1a1a; }
.theme-summer .sp-chat--paleblue{ background: #eaf4fb; color: #1a1a1a; }
.theme-summer .sp-chat--dark    { background: #3a3a3a; color: #fff; }
.theme-summer .sp-chat--quote   { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.35); font-family: Georgia, serif; font-style: italic; text-align: center; padding: 20px 18px; }
.theme-summer .sp-chat--keyboard{
  background: #2a2118 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100'><rect fill='%232a2118' width='200' height='100'/><g fill='%23432d1f' opacity='0.6'><rect x='5' y='5' width='28' height='22' rx='3'/><rect x='37' y='5' width='28' height='22' rx='3'/><rect x='69' y='5' width='28' height='22' rx='3'/><rect x='101' y='5' width='28' height='22' rx='3'/><rect x='133' y='5' width='28' height='22' rx='3'/><rect x='165' y='5' width='28' height='22' rx='3'/><rect x='15' y='35' width='28' height='22' rx='3'/><rect x='47' y='35' width='28' height='22' rx='3'/><rect x='79' y='35' width='28' height='22' rx='3'/><rect x='111' y='35' width='28' height='22' rx='3'/><rect x='143' y='35' width='28' height='22' rx='3'/><rect x='175' y='35' width='28' height='22' rx='3'/><rect x='25' y='65' width='28' height='22' rx='3'/><rect x='57' y='65' width='28' height='22' rx='3'/><rect x='89' y='65' width='28' height='22' rx='3'/><rect x='121' y='65' width='28' height='22' rx='3'/><rect x='153' y='65' width='28' height='22' rx='3'/></g></svg>") center/cover;
  color: #fff;
  font-family: var(--c-font-display);
  font-size: 22px;
  text-align: center;
  line-height: 1.05;
  letter-spacing: 0.02em;
  padding: 22px 18px;
  text-transform: uppercase;
}
.theme-summer .sp-chat__meta { display: block; margin-top: 6px; font-size: 11px; color: var(--c-ink-faint); }
.theme-summer .sp-chat .link { color: #1770c9; }
.theme-summer .sp-chat .tag-hash { color: #1770c9; }

/* ═════════ CHECK-LIST "What you get" ═════════ */
.theme-summer .sp-sun-checklist {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
}
.theme-summer .sp-sun-checklist ul {
  list-style: none;
  padding: 0;
  margin: 0 0 36px;
}
.theme-summer .sp-sun-checklist li {
  position: relative;
  padding: 12px 0 12px 42px;
  border-bottom: 1px dashed var(--c-rule);
  font-size: 16px;
  line-height: 1.5;
}
.theme-summer .sp-sun-checklist li::before {
  content: "✓";
  position: absolute;
  left: 0; top: 12px;
  width: 28px; height: 28px;
  background: var(--c-sun);
  color: var(--c-ink);
  font-family: var(--c-font-body);
  font-weight: 700;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}
.theme-summer .sp-sun-checklist li strong { color: var(--c-sky); font-weight: 700; }

/* ═════════ CAMPER QUOTES (editorial pull-quote grid) ═════════ */
.theme-summer .sp-sun-camperquotes {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px 56px;
}
.theme-summer .sp-sun-camperquotes blockquote {
  margin: 0;
  padding: 0;
  text-align: center;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--c-ink);
}
.theme-summer .sp-sun-camperquotes blockquote q {
  quotes: "“" "”";
  font-style: italic;
}
.theme-summer .sp-sun-camperquotes cite {
  display: block;
  margin-top: 16px;
  font-style: normal;
  font-size: 13px;
  font-weight: 700;
  color: var(--c-sky);
  letter-spacing: 0.04em;
}
.theme-summer .sp-sun-camperquotes .sep {
  text-align: center;
  color: var(--c-ink-faint);
  margin: 8px 0 0;
  font-size: 14px;
}
@media (max-width: 780px) {
  .theme-summer .sp-sun-camperquotes { grid-template-columns: 1fr; gap: 32px; }
}

/* ═════════ PRICE / CTA BLOCK ═════════ */
.theme-summer .sp-sun-pricebar {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  text-align: center;
}
.theme-summer .sp-sun-pricebar .line {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(32px, 3.6vw, 44px);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--c-sky);
  line-height: 1;
  margin: 0 0 28px;
}

/* ═════════ FAQ ═════════ */
.theme-summer .sp-faq-wrap {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
}
.theme-summer .sp-faq details {
  border-top: 1px solid var(--c-rule);
  padding: 18px 0;
}
.theme-summer .sp-faq details[open] { padding-bottom: 22px; }
.theme-summer .sp-faq summary {
  font-family: var(--c-font-body);
  font-weight: 700;
  font-size: 16px;
  color: var(--c-ink);
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.theme-summer .sp-faq summary::-webkit-details-marker { display: none; }
.theme-summer .sp-faq summary::after {
  content: "+";
  font-family: var(--c-font-display);
  color: var(--c-flamingo);
  font-size: 28px;
  line-height: 1;
  flex: 0 0 auto;
}
.theme-summer .sp-faq details[open] summary::after { content: "−"; }
.theme-summer .sp-faq p {
  margin: 14px 0 0;
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--c-ink);
}
.theme-summer .sp-faq p + p { margin-top: 12px; }

/* ═════════ Signature closer ═════════ */
.theme-summer .sp-sun-closer {
  max-width: 820px;
  margin: 0 auto;
  padding: 48px var(--c-page-pad) 0;
  text-align: center;
}
.theme-summer .sp-sun-closer .sign {
  font-family: var(--c-font-signature);
  font-size: 42px;
  color: var(--c-flamingo);
  line-height: 1;
  margin: 18px 0 0;
}
.theme-summer .sp-sun-closer .sign-big {
  font-family: var(--c-font-signature);
  font-size: 56px;
  color: var(--c-sky);
  line-height: 1;
  margin: 10px 0 0;
}

/* ═══════════════════════════════════════════════════════════
   NON-ABUSIVE SELLING — deep purple · hot magenta · cream
   Valentine-card tape + heart-confetti romance metaphor
   ═══════════════════════════════════════════════════════════ */
.theme-nas {
  --c-bg:              #fff9f2;
  --c-purple-deep:     #2a1f48;
  --c-purple:          #3a2a5f;
  --c-purple-mid:      #4a3678;
  --c-purple-soft:     #5e448f;
  --c-magenta:         #e42b9b;
  --c-magenta-deep:    #c41f85;
  --c-magenta-soft:    #ffd0ea;
  --c-pink-flood:      #e8358f;
  --c-heart:           #ff3a3a;
  --c-cream:           #fff3e3;
  --c-ink:             #1a1a1a;
  --c-ink-soft:        rgba(26,26,26,0.72);
  --c-ink-on-dark:     #ffffff;
  --c-ink-on-dark-soft:rgba(255,255,255,0.78);
  --c-rule:            rgba(26,26,26,0.12);
  --c-accent:          var(--c-magenta);
  --c-accent-ink:      #ffffff;

  --c-font-display:    "Anton", "Oswald", "Bebas Neue", "Helvetica Neue", sans-serif;
  --c-font-body:       "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-flirt:      "Fraunces", "EB Garamond", Georgia, serif;
  --c-font-meta:       "JetBrains Mono", ui-monospace, monospace;
  --c-font-signature:  "Caveat", cursive;
}

/* Background variants (Tweak-driven) */
.theme-nas.bg--flood { background: var(--c-purple-deep); color: var(--c-ink-on-dark); }
.theme-nas.bg--rhythmic { background: var(--c-cream); color: var(--c-ink); }

/* Global type */
.theme-nas a { color: var(--c-magenta); text-underline-offset: 3px; }
.theme-nas a:hover { color: #fff; }
.theme-nas .sp-prose p { font-size: 17px; line-height: 1.65; margin: 0 0 14px; }
.theme-nas .sp-prose .flirt { font-family: var(--c-font-flirt); font-style: italic; color: var(--c-magenta); }
.theme-nas .sp-prose em { font-family: var(--c-font-flirt); font-style: italic; }

/* Section headings */
.theme-nas h2.nas-h {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(44px, 5.6vw, 72px);
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 0.95;
  color: var(--c-magenta);
  margin: 0 0 28px;
}
.theme-nas h3.nas-h3 {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(26px, 3vw, 34px);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1;
  color: var(--c-magenta);
  margin: 0 0 18px;
}

/* CTA — hot pink rectangle */
.theme-nas .sp-btn {
  border-radius: 2px;
  background: var(--c-magenta);
  border-color: var(--c-magenta);
  color: #fff;
  font-family: var(--c-font-body);
  font-weight: 700;
  letter-spacing: 0.2em;
  padding: 22px 48px;
  font-size: 13px;
  text-transform: uppercase;
}
.theme-nas .sp-btn:hover { background: var(--c-magenta-deep); border-color: var(--c-magenta-deep); }

/* ───────────────────────────────────────────
   VALENTINE TAPED CARD (reused primitive)
   ─────────────────────────────────────────── */
.nas-tape {
  position: relative;
  display: inline-block;
  background: #fff;
  color: var(--c-purple-deep);
  padding: 14px 28px;
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(32px, 3.4vw, 44px);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1;
  transform: rotate(-3deg);
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}
.nas-tape--pink {
  background: var(--c-magenta);
  color: #fff;
  transform: rotate(2deg);
}
.nas-tape::before, .nas-tape::after {
  content: "";
  position: absolute;
  width: 42px; height: 16px;
  background: rgba(200,230,200,0.72);
  top: -8px;
}
.nas-tape::before { left: 14%; transform: rotate(-14deg); }
.nas-tape::after { right: 14%; transform: rotate(10deg); }

/* ───────────────────────────────────────────
   HEART CONFETTI — little red hearts scattered
   ─────────────────────────────────────────── */
.nas-heart {
  display: inline-block;
  width: 14px; height: 14px;
  background: var(--c-heart);
  clip-path: path("M7 12 C 7 9, 0 7, 0 4 C 0 1, 3 0, 5 2 C 6 3, 7 4, 7 4 C 7 4, 8 3, 9 2 C 11 0, 14 1, 14 4 C 14 7, 7 9, 7 12 Z");
  transform: rotate(-8deg);
}
.nas-heart-row {
  display: flex;
  justify-content: center;
  gap: 18px;
  padding: 36px 0;
}
.nas-heart-row .nas-heart:nth-child(odd) { transform: rotate(14deg) scale(1.2); }
.nas-heart-row .nas-heart:nth-child(3n) { transform: rotate(-20deg) scale(0.9); }
.nas-confetti {
  position: absolute;
  pointer-events: none;
  inset: 0;
  overflow: hidden;
  z-index: 1;
}
.nas-confetti .nas-heart {
  position: absolute;
}

/* ───────────────────────────────────────────
   HERO — purple flood w/ taped "NON-ABUSIVE SELLING"
   ─────────────────────────────────────────── */
.theme-nas .nas-hero {
  background: linear-gradient(135deg, var(--c-purple-deep) 0%, var(--c-purple-mid) 55%, var(--c-purple-soft) 100%);
  color: #fff;
  padding: 64px var(--c-page-pad) 80px;
  position: relative;
  overflow: hidden;
}
.theme-nas .nas-hero__grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
  position: relative;
  z-index: 2;
}
.theme-nas .nas-hero__banner {
  aspect-ratio: 1 / 1;
  background:
    radial-gradient(ellipse 80% 60% at 70% 55%, rgba(110,70,190,0.55) 0 60%, transparent 80%),
    linear-gradient(135deg, var(--c-purple-deep) 0%, var(--c-purple) 55%, var(--c-purple-mid) 100%);
  border-radius: 4px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 40px rgba(0,0,0,0.45);
}
.theme-nas .nas-hero__sim {
  position: absolute;
  left: 8%; bottom: 0;
  width: 48%; aspect-ratio: 0.7 / 1;
  background:
    radial-gradient(ellipse 50% 20% at 50% 18%, #c9c9c9 0 60%, transparent 70%),
    radial-gradient(ellipse 32% 35% at 50% 38%, #f4c8ab 0 60%, transparent 80%),
    linear-gradient(180deg, transparent 0 46%, #0a0516 46% 100%);
  border-radius: 4px 4px 0 0;
}
.theme-nas .nas-hero__label {
  position: absolute;
  top: 32%; right: 8%;
  font-family: var(--c-font-flirt);
  font-style: italic;
  font-size: clamp(16px, 1.5vw, 20px);
  color: rgba(255,255,255,0.82);
  line-height: 1.3;
  text-align: right;
}
.theme-nas .nas-hero__tape {
  position: absolute;
  bottom: 28%;
  right: 14%;
  z-index: 3;
}
.theme-nas .nas-hero__tape .nas-tape:nth-child(2) {
  display: block;
  margin-top: 8px;
  transform: rotate(4deg) translateX(24px);
}
.theme-nas .nas-hero__hearts {
  position: absolute;
  top: 22%; right: 30%;
  display: flex;
  gap: 6px;
  z-index: 4;
}
.theme-nas .nas-hero__hearts .nas-heart { width: 12px; height: 12px; }
.theme-nas .nas-hero__hearts .nas-heart:nth-child(2) { transform: translateY(-8px) rotate(18deg); }
.theme-nas .nas-hero__hearts .nas-heart:nth-child(3) { transform: translateY(4px) rotate(-10deg); }
.theme-nas .nas-hero__pitch h1 {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(40px, 4.4vw, 58px);
  line-height: 1.02;
  letter-spacing: 0.005em;
  color: var(--c-magenta);
  margin: 0 0 20px;
  text-transform: none;
}
.theme-nas .nas-hero__pitch h1 em {
  font-family: var(--c-font-flirt);
  font-style: italic;
  font-weight: 500;
  color: #fff;
}
.theme-nas .nas-hero__pitch .kicker {
  font-family: var(--c-font-flirt);
  font-size: clamp(24px, 2.4vw, 32px);
  font-style: italic;
  color: var(--c-magenta);
  margin: 0 0 32px;
}
.theme-nas .nas-hero__pitch p {
  font-size: 16.5px;
  line-height: 1.6;
  margin: 0 0 12px;
  color: rgba(255,255,255,0.92);
}
.theme-nas .nas-hero__pitch p em { color: var(--c-magenta-soft); }
.theme-nas .nas-hero__pitch .flirt {
  font-family: var(--c-font-flirt);
  font-style: italic;
  color: var(--c-magenta-soft);
}
@media (max-width: 900px) {
  .theme-nas .nas-hero__grid { grid-template-columns: 1fr; gap: 36px; }
}

/* ───────────────────────────────────────────
   SHARED DARK / LIGHT SECTION SHELLS
   ─────────────────────────────────────────── */
.theme-nas .nas-section {
  padding: 88px var(--c-page-pad);
  position: relative;
}
.theme-nas .nas-section--dark {
  background: var(--c-purple-deep);
  color: #fff;
}
.theme-nas .nas-section--dark h2.nas-h,
.theme-nas .nas-section--dark h3.nas-h3 { color: var(--c-magenta); }
.theme-nas .nas-section--dark .sp-prose p { color: rgba(255,255,255,0.92); }
.theme-nas .nas-section--cream { background: var(--c-cream); color: var(--c-ink); }
.theme-nas .nas-section--magenta { background: var(--c-pink-flood); color: #fff; }

.theme-nas .nas-wrap { max-width: 1080px; margin: 0 auto; }
.theme-nas .nas-wrap--narrow { max-width: 760px; margin: 0 auto; }

/* Running rhythmic variant: keep sections alternating */
.theme-nas.bg--flood .nas-section { background: var(--c-purple-deep); color: #fff; }
.theme-nas.bg--flood .nas-section--cream { background: rgba(255,255,255,0.05); color: #fff; }
.theme-nas.bg--flood .nas-section--cream p,
.theme-nas.bg--flood .nas-section--cream li { color: rgba(255,255,255,0.92); }
.theme-nas.bg--flood .nas-section--cream h2.nas-h,
.theme-nas.bg--flood .nas-section--cream h3.nas-h3 { color: var(--c-magenta); }
.theme-nas.bg--flood .nas-section--magenta { background: var(--c-pink-flood); color: #fff; }
.theme-nas.bg--flood .sp-prose p,
.theme-nas.bg--flood .sp-prose li { color: rgba(255,255,255,0.92); }
.theme-nas.bg--flood .sp-prose strong { color: #fff; }

/* ───────────────────────────────────────────
   "12 STAGES" LADDER
   ─────────────────────────────────────────── */
.theme-nas .nas-stages {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 10px;
  margin: 28px 0 8px;
  padding: 20px 0;
  border-top: 1px dashed rgba(255,255,255,0.25);
  border-bottom: 1px dashed rgba(255,255,255,0.25);
}
.theme-nas.bg--rhythmic .nas-stages { border-color: rgba(26,26,26,0.2); }
.theme-nas .nas-stage {
  text-align: center;
  font-family: var(--c-font-meta);
  font-size: 10px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--c-ink-on-dark-soft);
}
.theme-nas.bg--rhythmic .nas-stage { color: var(--c-ink-soft); }
.theme-nas .nas-stage__num {
  font-family: var(--c-font-display);
  font-size: 22px;
  color: var(--c-magenta);
  display: block;
  line-height: 1;
  margin-bottom: 6px;
}
.theme-nas .nas-stage__icon {
  display: block;
  width: 28px; height: 28px;
  margin: 0 auto 6px;
  background: rgba(255,255,255,0.08);
  border-radius: 50%;
  position: relative;
}
.theme-nas.bg--rhythmic .nas-stage__icon { background: rgba(228,43,155,0.1); }
.theme-nas .nas-stage__icon::before {
  content: "";
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 60%;
}
.theme-nas .nas-stage[data-icon="eye"]   .nas-stage__icon::before { background-image: radial-gradient(ellipse 50% 30% at 50% 50%, #fff 0 60%, transparent 70%), radial-gradient(circle 3px at 50% 50%, var(--c-magenta) 0 100%, transparent 0); }
.theme-nas .nas-stage[data-icon="smile"] .nas-stage__icon::before { background: radial-gradient(ellipse 50% 18% at 50% 55%, var(--c-magenta) 0 60%, transparent 70%); }
.theme-nas .nas-stage[data-icon="wave"]  .nas-stage__icon::before { background: linear-gradient(transparent 40%, var(--c-magenta) 40% 60%, transparent 60%); }
.theme-nas .nas-stage[data-icon="hand"]  .nas-stage__icon::before { background: radial-gradient(ellipse 36% 50% at 50% 50%, var(--c-magenta) 0 60%, transparent 70%); }
.theme-nas .nas-stage[data-icon="hold"]  .nas-stage__icon::before { background: radial-gradient(circle 6px at 40% 50%, var(--c-magenta) 0 60%, transparent 70%), radial-gradient(circle 6px at 60% 50%, var(--c-magenta) 0 60%, transparent 70%); }
.theme-nas .nas-stage[data-icon="arm"]   .nas-stage__icon::before { background: linear-gradient(45deg, transparent 40%, var(--c-magenta) 40% 60%, transparent 60%); }
.theme-nas .nas-stage[data-icon="hug"]   .nas-stage__icon::before { background: radial-gradient(ellipse 30% 45% at 35% 50%, var(--c-magenta) 0 60%, transparent 70%), radial-gradient(ellipse 30% 45% at 65% 50%, var(--c-magenta) 0 60%, transparent 70%); }
.theme-nas .nas-stage[data-icon="kiss"]  .nas-stage__icon::before { background: radial-gradient(ellipse 40% 24% at 50% 60%, var(--c-magenta) 0 60%, transparent 70%); }
.theme-nas .nas-stage[data-icon="heart"] .nas-stage__icon::before { background: radial-gradient(circle 5px at 38% 42%, var(--c-magenta) 0 100%, transparent 0), radial-gradient(circle 5px at 62% 42%, var(--c-magenta) 0 100%, transparent 0), linear-gradient(180deg, transparent 48%, var(--c-magenta) 48% 72%, transparent 72%); }
.theme-nas .nas-stage[data-icon="touch"] .nas-stage__icon::before { background: repeating-linear-gradient(45deg, var(--c-magenta) 0 2px, transparent 2px 6px); }
.theme-nas .nas-stage[data-icon="waist"] .nas-stage__icon::before { background: linear-gradient(90deg, transparent 30%, var(--c-magenta) 30% 70%, transparent 70%); }
.theme-nas .nas-stage[data-icon="flame"] .nas-stage__icon::before { background: radial-gradient(ellipse 36% 52% at 50% 55%, var(--c-heart) 0 60%, transparent 70%); }
@media (max-width: 820px) {
  .theme-nas .nas-stages { grid-template-columns: repeat(6, 1fr); }
}

/* ───────────────────────────────────────────
   HOT vs PUSHY — split thesis card
   ─────────────────────────────────────────── */
.theme-nas .nas-versus {
  display: grid;
  grid-template-columns: 1fr 60px 1fr;
  gap: 0;
  margin: 36px auto;
  max-width: 980px;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(0,0,0,0.25);
}
.theme-nas .nas-versus__side {
  padding: 36px 32px;
  min-height: 280px;
}
.theme-nas .nas-versus__side--hot {
  background: linear-gradient(180deg, #e42b9b 0%, #b81f7a 100%);
  color: #fff;
}
.theme-nas .nas-versus__side--pushy {
  background: #1a1a1a;
  color: rgba(255,255,255,0.78);
}
.theme-nas .nas-versus__label {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(40px, 4.6vw, 60px);
  text-transform: uppercase;
  line-height: 1;
  margin: 0 0 6px;
  letter-spacing: 0.02em;
}
.theme-nas .nas-versus__side--hot .nas-versus__label { color: #fff; }
.theme-nas .nas-versus__side--pushy .nas-versus__label { color: #ff4444; }
.theme-nas .nas-versus__sub {
  font-family: var(--c-font-flirt);
  font-style: italic;
  font-size: 16px;
  margin: 0 0 22px;
  opacity: 0.85;
}
.theme-nas .nas-versus__list {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 14.5px;
  line-height: 1.45;
}
.theme-nas .nas-versus__list li {
  padding-left: 22px;
  position: relative;
}
.theme-nas .nas-versus__side--hot .nas-versus__list li::before {
  content: "♥";
  position: absolute;
  left: 0;
  color: #fff;
}
.theme-nas .nas-versus__side--pushy .nas-versus__list li::before {
  content: "✕";
  position: absolute;
  left: 0;
  color: #ff4444;
}
.theme-nas .nas-versus__divider {
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--c-font-display);
  font-size: 28px;
  color: var(--c-purple-deep);
}
@media (max-width: 720px) {
  .theme-nas .nas-versus { grid-template-columns: 1fr; }
  .theme-nas .nas-versus__divider { padding: 12px 0; }
}

/* ───────────────────────────────────────────
   10 COMMANDMENTS tablet
   ─────────────────────────────────────────── */
.theme-nas .nas-tablet {
  background: var(--c-cream);
  color: var(--c-purple-deep);
  padding: 48px 56px;
  max-width: 760px;
  margin: 32px auto;
  position: relative;
  border-radius: 180px 180px 8px 8px / 80px 80px 8px 8px;
  box-shadow: 0 18px 48px rgba(0,0,0,0.3);
}
.theme-nas .nas-tablet h3 {
  font-family: var(--c-font-display);
  text-align: center;
  font-weight: 400;
  font-size: clamp(30px, 3.4vw, 40px);
  color: var(--c-purple-deep);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 28px;
  line-height: 1;
}
.theme-nas .nas-tablet ol {
  list-style: none;
  padding: 0; margin: 0;
  counter-reset: cmd;
  display: grid;
  gap: 12px;
}
.theme-nas .nas-tablet ol li {
  counter-increment: cmd;
  padding-left: 60px;
  position: relative;
  font-family: var(--c-font-flirt);
  font-size: 16.5px;
  line-height: 1.5;
  color: var(--c-purple-deep);
}
.theme-nas .nas-tablet ol li::before {
  content: counter(cmd, upper-roman) ".";
  position: absolute;
  left: 0; top: 0;
  width: 48px;
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: 20px;
  color: var(--c-magenta);
  text-align: right;
}

/* ───────────────────────────────────────────
   NUMBERED BONUS MODULES (what you also get)
   ─────────────────────────────────────────── */
.theme-nas .nas-bonus {
  display: grid;
  gap: 40px;
  max-width: 860px;
  margin: 0 auto;
}
.theme-nas .nas-bonus__item {
  padding: 32px 0;
  border-top: 1px solid rgba(255,255,255,0.15);
}
.theme-nas.bg--rhythmic .nas-bonus__item { border-top: 1px solid var(--c-rule); }
.theme-nas .nas-bonus__item:first-child { border-top: none; }
.theme-nas .nas-bonus__num {
  font-family: var(--c-font-display);
  font-size: 20px;
  color: var(--c-magenta);
  letter-spacing: 0.04em;
  margin: 0 0 8px;
  text-transform: uppercase;
}
.theme-nas .nas-bonus__title {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(28px, 3.2vw, 38px);
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1;
  color: #fff;
  margin: 0 0 16px;
}
.theme-nas.bg--rhythmic .nas-bonus__title { color: var(--c-purple-deep); }
.theme-nas .nas-bonus__item p { font-size: 16px; line-height: 1.6; margin: 0 0 10px; }

/* ───────────────────────────────────────────
   MAGENTA TESTIMONIAL FLOOD — matches source
   ─────────────────────────────────────────── */
.theme-nas .nas-testiwall {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 18px;
  max-width: 1200px;
  margin: 0 auto;
}
.theme-nas .nas-testicol { display: flex; flex-direction: column; gap: 14px; }
.theme-nas .nas-testicol--dark { background: var(--c-purple-deep); padding: 18px; border-radius: 6px; }
.theme-nas .nas-tbubble {
  background: #fff;
  color: #1a1a1a;
  padding: 14px 16px;
  border-radius: 4px;
  font-family: var(--c-font-body);
  font-size: 13.5px;
  line-height: 1.5;
}
.theme-nas .nas-tbubble--ig {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 10px;
  align-items: start;
}
.theme-nas .nas-tbubble__avatar {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, #c6a7ff 0%, var(--c-magenta) 100%);
  flex: 0 0 28px;
}
.theme-nas .nas-tbubble__body strong { font-weight: 700; color: #1a1a1a; }
.theme-nas .nas-tbubble__meta {
  display: block;
  margin-top: 6px;
  font-family: var(--c-font-meta);
  font-size: 10px;
  color: rgba(26,26,26,0.5);
  letter-spacing: 0.04em;
}
.theme-nas .nas-tchip {
  display: inline-block;
  padding: 10px 14px;
  font-family: var(--c-font-body);
  font-weight: 600;
  font-size: 13px;
  border-radius: 4px;
  background: var(--c-purple-deep);
  color: #fff;
  letter-spacing: 0.02em;
}
.theme-nas .nas-tchip--light { background: var(--c-magenta-soft); color: var(--c-purple-deep); }
.theme-nas .nas-tchip--pink  { background: var(--c-magenta); color: #fff; }
.theme-nas .nas-tbubble--quote {
  background: transparent;
  color: #fff;
  font-family: var(--c-font-flirt);
  font-style: italic;
  border: 1px solid rgba(255,255,255,0.4);
  text-align: center;
  padding: 18px 16px;
}
@media (max-width: 900px) {
  .theme-nas .nas-testiwall { grid-template-columns: 1fr; }
}

/* ───────────────────────────────────────────
   FOR YOU / PROMISE CHECKLIST
   ─────────────────────────────────────────── */
.theme-nas .nas-checklist {
  list-style: none;
  padding: 0;
  margin: 18px 0 0;
  display: grid;
  gap: 12px;
}
.theme-nas .nas-checklist li {
  position: relative;
  padding: 12px 0 12px 42px;
  border-bottom: 1px dashed rgba(255,255,255,0.2);
  font-size: 16px;
  line-height: 1.5;
}
.theme-nas.bg--rhythmic .nas-checklist li { border-bottom: 1px dashed var(--c-rule); }
.theme-nas .nas-checklist li::before {
  content: "♥";
  position: absolute;
  left: 0; top: 10px;
  width: 26px;
  color: var(--c-magenta);
  font-size: 18px;
  text-align: left;
}

/* ───────────────────────────────────────────
   CTA band (centered pricing + big btn)
   ─────────────────────────────────────────── */
.theme-nas .nas-ctaband {
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
}
.theme-nas .nas-ctaband__price {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(32px, 3.8vw, 44px);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin: 0 0 28px;
  line-height: 1;
  color: #fff;
}
.theme-nas.bg--rhythmic .nas-ctaband__price { color: var(--c-purple-deep); }

/* ───────────────────────────────────────────
   FAQ
   ─────────────────────────────────────────── */
.theme-nas .nas-faq details {
  border-top: 1px solid rgba(255,255,255,0.15);
  padding: 18px 0;
}
.theme-nas.bg--rhythmic .nas-faq details { border-top: 1px solid var(--c-rule); }
.theme-nas .nas-faq summary {
  font-family: var(--c-font-body);
  font-weight: 700;
  font-size: 16px;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  gap: 18px;
}
.theme-nas .nas-faq summary::-webkit-details-marker { display: none; }
.theme-nas .nas-faq summary::after {
  content: "♥";
  color: var(--c-magenta);
  font-size: 22px;
  flex: 0 0 auto;
  transform: rotate(-14deg);
}
.theme-nas .nas-faq details[open] summary::after { color: var(--c-heart); transform: rotate(0deg) scale(1.1); }
.theme-nas .nas-faq p { margin: 14px 0 0; font-size: 15.5px; line-height: 1.6; }

/* ───────────────────────────────────────────
   Closing signature
   ─────────────────────────────────────────── */
.theme-nas .nas-closer {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.theme-nas .nas-closer .sign {
  font-family: var(--c-font-signature);
  font-size: 54px;
  color: var(--c-magenta);
  line-height: 1;
  margin: 14px 0 0;
}

/* Tweaks panel float */
.theme-nas .nas-tweaks {
  position: fixed;
  bottom: 24px; right: 24px;
  z-index: 100;
}


/* ═══════════════════════════════════════════════════════════
   HOW TO WRITE SPECIFIC COPY — editorial · highlighter marks
   "Specificity is dangerous" — swipe-right / profile framing
   Palette: ivory page · deep ink · yellow highlighter · magenta CTA
   ═══════════════════════════════════════════════════════════ */
.theme-specific {
  --c-bg:              #f7f2e8;        /* warm ivory */
  --c-bg-alt:          #fffaf0;        /* paler ivory */
  --c-ink:             #17161a;        /* near-black */
  --c-ink-soft:        rgba(23,22,26,0.72);
  --c-ink-faint:       rgba(23,22,26,0.5);
  --c-rule:            rgba(23,22,26,0.12);
  --c-rule-strong:     rgba(23,22,26,0.25);

  --c-marker:          #f5e14a;        /* highlighter yellow */
  --c-marker-alt:      #ffb3e6;        /* pink highlighter */
  --c-marker-lime:     #c8f37e;
  --c-magenta:         #e91e83;        /* CTA hot pink, matches screenshots */
  --c-magenta-deep:    #c01670;
  --c-navy:            #1e1e6b;        /* accent ink for marked words */
  --c-teal-deep:       #1f3a3a;        /* product mockup green */

  --c-surface:         #ffffff;
  --c-accent:          var(--c-magenta);
  --c-accent-ink:      #ffffff;

  --c-font-display:    "Fraunces", "EB Garamond", Georgia, serif;
  --c-font-body:       "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --c-font-meta:       "JetBrains Mono", ui-monospace, monospace;
  --c-font-hand:       "Caveat", cursive;

  background: var(--c-bg);
  color: var(--c-ink);
}

/* Global type */
.theme-specific a { color: var(--c-magenta); text-underline-offset: 3px; }
.theme-specific .sp-prose p {
  font-family: var(--c-font-body);
  font-size: 19px; line-height: 1.65; margin: 0 0 16px;
  color: var(--c-ink);
}
.theme-specific .sp-prose em { font-style: italic; }
.theme-specific .sp-prose strong { font-weight: 700; color: var(--c-ink); }

/* Highlighter primitives — used inline in prose */
.theme-specific .mark-hi {
  background: linear-gradient(
    180deg,
    transparent 0 58%,
    var(--c-marker) 58% 92%,
    transparent 92% 100%
  );
  padding: 0 2px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.theme-specific .mark-hi--pink {
  background: linear-gradient(
    180deg,
    transparent 0 58%,
    var(--c-marker-alt) 58% 92%,
    transparent 92% 100%
  );
}
.theme-specific .mark-hi--lime {
  background: linear-gradient(
    180deg,
    transparent 0 58%,
    var(--c-marker-lime) 58% 92%,
    transparent 92% 100%
  );
}
/* Circled word — irregular hand-drawn oval */
.theme-specific .mark-circle {
  position: relative;
  display: inline-block;
  padding: 2px 6px;
}
.theme-specific .mark-circle::before {
  content: "";
  position: absolute;
  inset: -4px -8px;
  border: 2px solid var(--c-magenta);
  border-radius: 50%;
  transform: rotate(-2deg);
  pointer-events: none;
}
/* Struck-through beige word */
.theme-specific .mark-strike {
  text-decoration: line-through;
  text-decoration-color: var(--c-magenta);
  text-decoration-thickness: 2px;
  color: var(--c-ink-faint);
}
/* Hand-written annotation */
.theme-specific .mark-hand {
  font-family: var(--c-font-hand);
  color: var(--c-magenta);
  font-size: 1.25em;
  letter-spacing: 0.01em;
}

/* Section headings — editorial Fraunces */
.theme-specific h2.sc-h {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: clamp(40px, 5vw, 64px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--c-ink);
  margin: 0 0 28px;
  text-wrap: balance;
}
.theme-specific h2.sc-h em { font-style: italic; font-variation-settings: "opsz" 144; }
.theme-specific h3.sc-h3 {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: clamp(24px, 2.8vw, 32px);
  line-height: 1.12;
  letter-spacing: -0.01em;
  margin: 0 0 14px;
  color: var(--c-ink);
}
.theme-specific .sc-eyebrow {
  font-family: var(--c-font-meta);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-ink-soft);
  margin-bottom: 16px;
  display: inline-block;
}
.theme-specific .sc-eyebrow::before {
  content: "❋";
  color: var(--c-magenta);
  margin-right: 8px;
}

/* Generic section wrap */
.theme-specific .sc-section {
  padding: 88px var(--c-page-pad, 32px);
  position: relative;
}
.theme-specific .sc-wrap {
  max-width: 1180px;
  margin: 0 auto;
}
.theme-specific .sc-wrap--narrow { max-width: 780px; }
.theme-specific .sc-wrap--mid { max-width: 960px; }

/* Surface variants */
.theme-specific .sc-section--paper { background: var(--c-surface); }
.theme-specific .sc-section--ivory { background: var(--c-bg); }
.theme-specific .sc-section--dark {
  background: #0e0d10;
  color: #f3f0e6;
}
.theme-specific .sc-section--dark h2,
.theme-specific .sc-section--dark h3 { color: #fff; }
.theme-specific .sc-section--dark .sc-eyebrow { color: rgba(255,255,255,0.6); }
.theme-specific .sc-section--dark .sp-prose p { color: rgba(255,255,255,0.88); }

/* CTA button — hot pink */
.theme-specific .sp-btn {
  border-radius: 4px;
  background: var(--c-magenta);
  border-color: var(--c-magenta);
  color: #fff;
  font-family: var(--c-font-body);
  font-weight: 700;
  letter-spacing: 0.16em;
  padding: 20px 44px;
  font-size: 13px;
  text-transform: uppercase;
}
.theme-specific .sp-btn:hover {
  background: var(--c-magenta-deep);
  border-color: var(--c-magenta-deep);
  filter: none;
}

/* ═════════ HERO — dating profile conceit ═════════ */
.sc-hero {
  padding: 80px 32px 56px;
  max-width: 1240px;
  margin: 0 auto;
  position: relative;
}
.sc-hero__eyebrow {
  font-family: var(--c-font-meta);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-ink-soft);
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
}
.sc-hero__eyebrow::before,
.sc-hero__eyebrow::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--c-rule-strong);
}
.sc-hero__eyebrow span { color: var(--c-magenta); }
.sc-hero__title {
  font-family: var(--c-font-display);
  font-variation-settings: "opsz" 144;
  font-weight: 500;
  font-size: clamp(52px, 7.2vw, 104px);
  line-height: 0.98;
  letter-spacing: -0.035em;
  margin: 0 0 40px;
  text-wrap: balance;
  color: var(--c-ink);
}
.sc-hero__title em {
  font-style: italic;
  color: var(--c-navy);
}
.sc-hero__title .mark-hi { padding: 0 6px; }

.sc-hero__meta {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 36px;
  align-items: center;
  padding: 32px 0 0;
  border-top: 1px solid var(--c-rule-strong);
}
.sc-hero__bio {
  display: flex;
  align-items: center;
  gap: 20px;
}
.sc-hero__avatar {
  width: 72px; height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, #d9d9d9, #a8a8a8);
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  border: 3px solid #fff;
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
.sc-hero__avatar::after {
  /* stylized silhouette placeholder for Simone */
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 55% 18% at 50% 22%, #2d1a12 0 60%, transparent 70%),
    radial-gradient(ellipse 32% 36% at 50% 46%, #e8d2ba 0 60%, transparent 80%),
    linear-gradient(180deg, #e4e0d6 0 58%, #fff 58% 100%);
}
.sc-hero__bio-txt {
  font-family: var(--c-font-display);
  font-size: 19px;
  line-height: 1.3;
  font-weight: 500;
  max-width: 420px;
}
.sc-hero__bio-txt strong { font-weight: 600; }
.sc-hero__price {
  font-family: var(--c-font-display);
  font-variation-settings: "opsz" 144;
  font-size: 52px;
  font-weight: 400;
  line-height: 1;
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.sc-hero__price::before {
  content: "$";
  font-size: 26px;
  color: var(--c-ink-soft);
}
.sc-hero__price small {
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-ink-soft);
  margin-left: 10px;
  align-self: center;
}

/* Profile comparison cards — the two-profile hook */
.sc-profiles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 64px;
  position: relative;
}
.sc-profiles::before {
  content: "VS";
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%) rotate(-4deg);
  font-family: var(--c-font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 48px;
  color: var(--c-magenta);
  background: var(--c-bg);
  padding: 4px 18px;
  z-index: 2;
  letter-spacing: -0.02em;
}
.sc-profile {
  background: #fff;
  border: 1px solid var(--c-rule-strong);
  border-radius: 14px;
  padding: 32px;
  position: relative;
  box-shadow: 0 4px 16px rgba(0,0,0,0.04);
}
.sc-profile--bad { transform: rotate(-1deg); }
.sc-profile--good { transform: rotate(1.2deg); background: #fffdf4; }
.sc-profile__tag {
  font-family: var(--c-font-meta);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-ink-faint);
  margin-bottom: 14px;
  display: inline-block;
}
.sc-profile--good .sc-profile__tag { color: var(--c-magenta); }
.sc-profile__quote {
  font-family: var(--c-font-display);
  font-size: 22px;
  line-height: 1.35;
  font-weight: 500;
  color: var(--c-ink);
  margin: 0 0 14px;
}
.sc-profile__verdict {
  font-family: var(--c-font-hand);
  font-size: 22px;
  color: var(--c-ink-soft);
}
.sc-profile--good .sc-profile__verdict { color: var(--c-magenta); font-weight: 500; }

/* ═════════ HOOK SECTION — "Imagine you're looking for love" ═════════ */
.sc-hook {
  padding: 96px 32px;
  background: var(--c-bg);
}
.sc-hook__lede {
  font-family: var(--c-font-display);
  font-weight: 500;
  font-size: clamp(34px, 4.2vw, 54px);
  line-height: 1.08;
  letter-spacing: -0.025em;
  margin: 0 0 40px;
  text-wrap: balance;
}
.sc-hook__lede em { font-style: italic; color: var(--c-navy); }

/* "Specificity is dangerous" card — sticky-note feel */
.sc-insight {
  background: #fff;
  border-radius: 8px;
  padding: 56px 64px;
  box-shadow:
    0 2px 4px rgba(0,0,0,0.04),
    0 20px 48px rgba(0,0,0,0.08);
  position: relative;
  transform: rotate(-0.4deg);
}
.sc-insight::before {
  content: "";
  position: absolute;
  top: -16px; left: 50%;
  transform: translateX(-50%) rotate(-3deg);
  width: 140px; height: 32px;
  background: rgba(245, 225, 74, 0.7);
  border: 1px solid rgba(23,22,26,0.06);
}
.sc-insight__title {
  font-family: var(--c-font-display);
  font-variation-settings: "opsz" 144;
  font-weight: 600;
  font-style: italic;
  font-size: clamp(32px, 3.8vw, 48px);
  line-height: 1.04;
  letter-spacing: -0.02em;
  margin: 0 0 24px;
  color: var(--c-magenta);
}

/* ═════════ PROMISE — two-hour breakdown ═════════ */
.sc-two-hours {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 64px;
  align-items: start;
}
.sc-two-hours__photo {
  aspect-ratio: 4/5;
  background:
    linear-gradient(180deg, rgba(30,30,107,0.04), rgba(30,30,107,0.10)),
    linear-gradient(135deg, #c7b99a 0%, #8a7455 100%);
  border-radius: 6px;
  position: relative;
  overflow: hidden;
}
.sc-two-hours__photo::after {
  content: "placeholder · Simone portrait";
  position: absolute;
  bottom: 14px; left: 14px; right: 14px;
  font-family: var(--c-font-meta);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
}
.sc-hour {
  padding: 28px 0;
  border-top: 1px solid var(--c-rule);
}
.sc-hour:first-of-type { padding-top: 0; border-top: none; }
.sc-hour__label {
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--c-magenta);
  margin-bottom: 8px;
}
.sc-hour__h {
  font-family: var(--c-font-display);
  font-variation-settings: "opsz" 144;
  font-style: italic;
  font-weight: 500;
  font-size: clamp(28px, 3vw, 38px);
  margin: 0 0 14px;
  letter-spacing: -0.01em;
}
.sc-hour__body p {
  font-size: 18px; line-height: 1.6; margin: 0 0 12px;
  color: var(--c-ink-soft);
}
.sc-hour__body p strong { color: var(--c-ink); font-weight: 600; }
.sc-hour__price {
  display: inline-block;
  margin-top: 18px;
  padding: 6px 14px;
  background: var(--c-marker);
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: 22px;
  letter-spacing: -0.01em;
}

/* ═════════ BIG TESTIMONIAL BANNER ═════════ */
.sc-bigtesti {
  padding: 72px 32px;
  background: #0e0d10;
  color: #fff;
  text-align: center;
}
.sc-bigtesti__quote {
  font-family: var(--c-font-display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.3;
  max-width: 880px;
  margin: 0 auto 18px;
  letter-spacing: -0.01em;
}
.sc-bigtesti__quote .star { color: var(--c-marker); margin: 0 4px; }
.sc-bigtesti__attr {
  font-family: var(--c-font-meta);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
}

/* ═════════ LEARNINGS LIST — 5 numbered items with highlighter ═════════ */
.sc-learnings {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 28px;
  counter-reset: learn;
}
.sc-learnings li {
  counter-increment: learn;
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 24px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--c-rule);
  align-items: baseline;
}
.sc-learnings li:last-child { border-bottom: none; }
.sc-learnings li::before {
  content: counter(learn, decimal-leading-zero);
  font-family: var(--c-font-display);
  font-variation-settings: "opsz" 144;
  font-style: italic;
  font-weight: 400;
  font-size: 52px;
  line-height: 0.9;
  color: var(--c-magenta);
}
.sc-learnings h3 {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: 24px;
  line-height: 1.2;
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.sc-learnings p {
  font-family: var(--c-font-body);
  font-size: 17px; line-height: 1.55;
  color: var(--c-ink-soft);
  margin: 0;
}

/* ═════════ VOW LIST — lightbulb checklist ═════════ */
.sc-vow {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: 22px;
}
.sc-vow li {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 18px;
  align-items: flex-start;
}
.sc-vow li::before {
  content: "";
  width: 28px; height: 28px;
  background: var(--c-marker);
  clip-path: polygon(50% 0, 100% 35%, 80% 100%, 20% 100%, 0 35%);
  margin-top: 4px;
}
.sc-vow li p {
  font-family: var(--c-font-body);
  font-size: 17px; line-height: 1.6;
  margin: 0;
}
.sc-vow li p strong { font-weight: 700; }

/* ═════════ TEACHER — Meet your guide ═════════ */
.sc-teacher {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 72px;
  align-items: center;
}
.sc-teacher__photo {
  aspect-ratio: 3/4;
  background: linear-gradient(135deg, #b9a47f 0%, #6e5a3a 100%);
  border-radius: 6px;
  position: relative;
  overflow: hidden;
}
.sc-teacher__photo::after {
  content: "placeholder · Simone portrait";
  position: absolute;
  bottom: 14px; left: 14px;
  font-family: var(--c-font-meta);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
}
.sc-teacher__name {
  font-family: var(--c-font-display);
  font-variation-settings: "opsz" 144;
  font-weight: 500;
  font-style: italic;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0 0 12px;
}
.sc-teacher__name::before {
  content: "Meet your guide: ";
  font-style: normal;
  font-weight: 400;
  font-size: 0.55em;
  display: block;
  color: var(--c-ink-soft);
  letter-spacing: 0;
  margin-bottom: 6px;
}
.sc-teacher p {
  font-family: var(--c-font-body);
  font-size: 17px; line-height: 1.65;
  margin: 0 0 14px;
  color: var(--c-ink);
}

/* ═════════ WHAT YOU GET — checklist + product mockup ═════════ */
.sc-package {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.sc-checklist {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: 14px;
}
.sc-checklist li {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 14px;
  font-family: var(--c-font-body);
  font-size: 17px; line-height: 1.55;
  padding: 14px 0;
  border-bottom: 1px solid var(--c-rule);
}
.sc-checklist li::before {
  content: "";
  width: 20px; height: 20px;
  border-radius: 4px;
  background: var(--c-marker);
  box-shadow: inset 0 0 0 1px rgba(23,22,26,0.15);
  margin-top: 2px;
  position: relative;
}
.sc-checklist li::after {
  content: "✓";
  position: absolute;
  transform: translate(-22px, 2px);
  font-weight: 700;
  color: var(--c-ink);
  font-size: 14px;
}
/* Product mockup — stylized stack of class materials */
.sc-productstack {
  position: relative;
  aspect-ratio: 5/4;
  background: var(--c-bg);
}
.sc-productstack__screen {
  position: absolute;
  left: 10%; top: 8%;
  width: 78%; aspect-ratio: 16/10;
  background: var(--c-teal-deep);
  border-radius: 8px 8px 2px 2px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.2);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  color: #e8e0c8;
  padding: 24px;
  text-align: center;
  overflow: hidden;
}
.sc-productstack__screen::before {
  /* abstract circular graphic on screen */
  content: "";
  position: absolute;
  right: -20%; bottom: -30%;
  width: 60%; aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(200, 220, 100, 0.15);
  border: 2px solid rgba(200, 220, 100, 0.3);
}
.sc-productstack__screen h4 {
  font-family: var(--c-font-display);
  font-variation-settings: "opsz" 144;
  font-weight: 500;
  font-size: clamp(18px, 2.4vw, 30px);
  line-height: 1.05;
  letter-spacing: 0.02em;
  margin: 0 0 10px;
  text-transform: uppercase;
  position: relative; z-index: 1;
  text-wrap: balance;
}
.sc-productstack__screen span {
  font-family: var(--c-font-meta);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(232,224,200,0.7);
  position: relative; z-index: 1;
}
.sc-productstack__base {
  position: absolute;
  left: 4%; top: calc(8% + 78% * 10 / 16);
  width: 90%; height: 4%;
  background: linear-gradient(180deg, #d5d0c5 0%, #a8a295 100%);
  border-radius: 0 0 8px 8px;
}
.sc-productstack__stand {
  position: absolute;
  left: 42%; top: calc(8% + 78% * 10/16 + 4%);
  width: 16%; height: 6%;
  background: linear-gradient(180deg, #b8b3a8 0%, #8a8478 100%);
}
.sc-productstack__workbook {
  position: absolute;
  right: 4%; bottom: 8%;
  width: 30%;
  aspect-ratio: 3/4;
  background: var(--c-teal-deep);
  transform: rotate(6deg);
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
  padding: 14px 12px;
  color: #e8e0c8;
}
.sc-productstack__workbook::before {
  content: "";
  position: absolute;
  left: 10%; right: 10%; top: 40%;
  height: 45%;
  border-radius: 50%;
  background: rgba(200, 220, 100, 0.18);
  border: 1.5px solid rgba(200, 220, 100, 0.3);
}
.sc-productstack__workbook h5 {
  font-family: var(--c-font-display);
  font-variation-settings: "opsz" 144;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 4px;
  line-height: 1.05;
  text-align: center;
  position: relative; z-index: 1;
}
.sc-productstack__workbook .meta {
  position: absolute;
  bottom: 8px; left: 10px; right: 10px;
  font-family: var(--c-font-meta);
  font-size: 7px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  display: flex; justify-content: space-between;
  color: rgba(232,224,200,0.6);
}
.sc-productstack__paper {
  position: absolute;
  left: 8%; bottom: 6%;
  width: 28%; aspect-ratio: 3/4;
  background: #fff;
  transform: rotate(-4deg);
  box-shadow: 0 4px 14px rgba(0,0,0,0.1);
  padding: 10px;
  font-family: var(--c-font-meta);
  font-size: 5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(0,0,0,0.5);
}
.sc-productstack__paper::before {
  content: "DAILY PRACTICE";
  display: block;
  font-weight: 700;
  color: rgba(0,0,0,0.7);
  margin-bottom: 8px;
  font-size: 6px;
}
.sc-productstack__paper::after {
  content: "";
  position: absolute;
  left: 10%; right: 10%; top: 30%; height: 55%;
  background:
    linear-gradient(rgba(0,0,0,0.08) 1px, transparent 1px) 0 0 / 100% 8px;
}

/* ═════════ AUDIENCE ═════════ */
.sc-foryou {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: 10px;
}
.sc-foryou li {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 16px;
  font-family: var(--c-font-body);
  font-size: 18px; line-height: 1.5;
  padding: 14px 0;
}
.sc-foryou li::before {
  content: "♥";
  color: var(--c-magenta);
  font-size: 18px;
  margin-top: 2px;
}
.sc-foryou li em { font-style: italic; }

/* ═════════ TESTIMONIAL CARDS — student quotes w/ avatars ═════════ */
.sc-testi-grid {
  display: grid; gap: 20px;
  max-width: 760px; margin: 0 auto;
}
.sc-testi {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 22px;
  align-items: center;
  padding: 22px 26px;
  background: #fff;
  border-radius: 10px;
  border: 1px solid var(--c-rule);
}
.sc-testi__avatar {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, #e0d5b8, #a89278);
  flex-shrink: 0;
}
.sc-testi--a .sc-testi__avatar {
  background: linear-gradient(135deg, #c5bfa8, #8a8478);
}
.sc-testi--b .sc-testi__avatar {
  background: linear-gradient(135deg, #f0c0a0, #6a8fb0 60%, #4a5068);
}
.sc-testi__quote {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 0 0 6px;
  color: var(--c-ink);
}
.sc-testi__handle {
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--c-ink-soft);
  text-transform: lowercase;
}
.sc-scroll-note {
  text-align: center;
  margin-top: 48px;
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: 22px;
  color: var(--c-ink-soft);
  line-height: 1.4;
}
.sc-scroll-note small {
  display: block;
  font-family: var(--c-font-body);
  font-style: normal;
  font-size: 14px;
  color: var(--c-ink-faint);
  margin-top: 8px;
}

/* ═════════ CLOSER ═════════ */
.sc-closer {
  text-align: center;
  padding: 96px 32px;
  background: var(--c-bg);
}
.sc-closer__h {
  font-family: var(--c-font-display);
  font-variation-settings: "opsz" 144;
  font-weight: 500;
  font-style: italic;
  font-size: clamp(40px, 5vw, 68px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  margin: 0 0 20px;
}
.sc-closer__sub {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: 22px;
  color: var(--c-ink-soft);
  margin: 0 0 8px;
  line-height: 1.4;
}
.sc-closer__price {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: 24px;
  margin: 32px 0 24px;
}

/* ═════════ FAQ ═════════ */
.sc-faq {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad, 32px);
}
.sc-faq__title {
  font-family: var(--c-font-display);
  font-variation-settings: "opsz" 144;
  font-weight: 500;
  font-style: italic;
  font-size: clamp(36px, 4.2vw, 54px);
  text-align: center;
  letter-spacing: -0.02em;
  margin: 0 0 40px;
}
.sc-faq details {
  background: #fff;
  border-radius: 8px;
  margin-bottom: 14px;
  padding: 0 28px;
  border: 1px solid var(--c-rule);
  transition: border-color 180ms ease;
}
.sc-faq details[open] { border-color: var(--c-magenta); }
.sc-faq summary {
  list-style: none;
  cursor: pointer;
  padding: 22px 44px 22px 0;
  font-family: var(--c-font-body);
  font-size: 17px;
  font-weight: 600;
  position: relative;
  color: var(--c-ink);
}
.sc-faq summary::-webkit-details-marker { display: none; }
.sc-faq summary::after {
  content: "+";
  position: absolute;
  right: 0; top: 22px;
  font-family: var(--c-font-display);
  font-size: 28px;
  color: var(--c-magenta);
  font-weight: 400;
  line-height: 1;
  transition: transform 220ms ease;
}
.sc-faq details[open] summary::after { content: "−"; }
.sc-faq__a {
  padding: 0 0 22px;
  font-family: var(--c-font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--c-ink-soft);
}

/* ═════════ Mobile ═════════ */
@media (max-width: 900px) {
  .theme-specific .sc-section { padding: 56px 24px; }
  .sc-profiles { grid-template-columns: 1fr; gap: 20px; }
  .sc-profiles::before { top: 48%; }
  .sc-profile--bad, .sc-profile--good { transform: none; }
  .sc-two-hours { grid-template-columns: 1fr; gap: 32px; }
  .sc-teacher { grid-template-columns: 1fr; gap: 28px; }
  .sc-package { grid-template-columns: 1fr; gap: 40px; }
  .sc-hero { padding: 48px 24px 40px; }
  .sc-hero__meta { grid-template-columns: 1fr; gap: 20px; padding: 24px 0 0; }
  .sc-insight { padding: 36px 24px; }
}

/* ═════════ MARKER STYLE TWEAKS ═════════ */
.theme-specific.marker--off .mark-hi,
.theme-specific.marker--off .mark-hi--pink,
.theme-specific.marker--off .mark-hi--lime { background: transparent; }
.theme-specific.marker--pink .mark-hi {
  background: linear-gradient(180deg, transparent 0 58%, var(--c-marker-alt) 58% 92%, transparent 92% 100%);
}
.theme-specific.marker--lime .mark-hi {
  background: linear-gradient(180deg, transparent 0 58%, var(--c-marker-lime) 58% 92%, transparent 92% 100%);
}

/* Surface flavor tweaks */
.theme-specific.paper--flat .sc-insight { transform: none; box-shadow: 0 0 0 1px var(--c-rule); }
.theme-specific.paper--flat .sc-profile--bad,
.theme-specific.paper--flat .sc-profile--good { transform: none; }

/* Tweaks panel anchor */
.theme-specific .sc-tweaks {
  position: fixed;
  bottom: 24px; right: 24px;
  z-index: 100;
}


/* ═══════════════════════════════════════════════════════════
   THE WAY OF THE DRAGON — metaphysical folk-art grimoire
   $750 · 5-week self-study · dragon mythology
   Palette: indigo ink · dragon red · antique gold · cream page
   ═══════════════════════════════════════════════════════════ */
.theme-dragon {
  --c-bg:              #f5efe0;        /* aged cream / parchment */
  --c-bg-alt:          #ebe3cf;        /* deeper cream for alt bands */
  --c-paper:           #faf6ec;        /* paler paper */
  --c-indigo:          #1f1a6e;        /* primary ink — deep indigo */
  --c-indigo-soft:     rgba(31,26,110,0.72);
  --c-indigo-faint:    rgba(31,26,110,0.4);
  --c-indigo-line:     rgba(31,26,110,0.18);
  --c-red:             #d42820;        /* dragon red */
  --c-red-deep:        #a91e1a;
  --c-gold:            #c8a456;        /* antique gold */
  --c-gold-deep:       #9a7d3e;
  --c-gold-light:      #e8d79b;
  --c-magenta:         #e1247a;        /* warnings */
  --c-jade:            #3a7d5c;        /* balance accent */

  --c-ink:             var(--c-indigo);
  --c-ink-soft:        var(--c-indigo-soft);
  --c-rule:            var(--c-indigo-line);
  --c-accent:          var(--c-red);
  --c-accent-ink:      #ffffff;
  --c-surface:         var(--c-paper);

  --c-font-display:    "Cormorant Garamond", "EB Garamond", Georgia, serif;
  --c-font-ornate:     "IM Fell English SC", "UnifrakturMaguntia", "Cormorant Garamond", serif;
  --c-font-body:       "Libre Franklin", "Helvetica Neue", Arial, sans-serif;
  --c-font-meta:       "JetBrains Mono", ui-monospace, monospace;

  background: var(--c-bg);
  color: var(--c-ink);
  position: relative;
}

/* Paper texture — subtle dotted grain */
.theme-dragon::before {
  content: "";
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(31,26,110,0.02) 0, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(212,40,32,0.015) 0, transparent 50%);
  pointer-events: none;
  z-index: 0;
}
.theme-dragon > * { position: relative; z-index: 1; }

/* Global type */
.theme-dragon a { color: var(--c-red); text-decoration: underline; text-underline-offset: 3px; }
.theme-dragon a:hover { color: var(--c-red-deep); }

.theme-dragon .sp-prose p {
  font-family: var(--c-font-body);
  font-size: 18px;
  line-height: 1.7;
  margin: 0 0 18px;
  color: var(--c-ink);
}
.theme-dragon .sp-prose em {
  font-family: var(--c-font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.08em;
}
.theme-dragon .sp-prose strong { font-weight: 700; color: var(--c-indigo); }

/* ═════════ SECTION WRAPS ═════════ */
.theme-dragon .dr-section {
  padding: 96px var(--c-page-pad, 32px);
  position: relative;
}
.theme-dragon .dr-section--band {
  background: var(--c-bg-alt);
  border-top: 1px solid var(--c-indigo-line);
  border-bottom: 1px solid var(--c-indigo-line);
}
.theme-dragon .dr-section--dark {
  background: var(--c-indigo);
  color: #f5efe0;
}
.theme-dragon .dr-section--dark .dr-h,
.theme-dragon .dr-section--dark .dr-h-script,
.theme-dragon .dr-section--dark h3,
.theme-dragon .dr-section--dark p { color: inherit; }
.theme-dragon .dr-section--dark .sp-prose p { color: rgba(245,239,224,0.88); }

.theme-dragon .dr-wrap { max-width: 1180px; margin: 0 auto; }
.theme-dragon .dr-wrap--narrow { max-width: 760px; margin: 0 auto; }
.theme-dragon .dr-wrap--mid { max-width: 960px; margin: 0 auto; }

/* Headings */
.theme-dragon h2.dr-h {
  font-family: var(--c-font-display);
  font-weight: 500;
  font-size: clamp(44px, 5.6vw, 72px);
  line-height: 1.04;
  letter-spacing: -0.015em;
  margin: 0 0 32px;
  color: var(--c-indigo);
  text-wrap: balance;
}
.theme-dragon h2.dr-h em {
  font-style: italic;
  color: var(--c-red);
  font-weight: 500;
}
.theme-dragon .dr-h-script {
  font-family: var(--c-font-ornate);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(52px, 6.4vw, 88px);
  line-height: 1;
  letter-spacing: 0.01em;
  color: var(--c-indigo);
  text-align: center;
  margin: 0 0 24px;
}
.theme-dragon h3.dr-h3 {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: clamp(26px, 3vw, 34px);
  line-height: 1.12;
  letter-spacing: -0.01em;
  margin: 0 0 18px;
  color: var(--c-indigo);
}
.theme-dragon .dr-eyebrow {
  font-family: var(--c-font-meta);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--c-red);
  margin-bottom: 14px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.theme-dragon .dr-eyebrow::before,
.theme-dragon .dr-eyebrow::after {
  content: "◆";
  color: var(--c-gold);
  font-size: 10px;
}

/* Horizontal rule flourish */
.theme-dragon .dr-rule {
  text-align: center;
  margin: 48px 0;
  font-family: var(--c-font-display);
  font-size: 28px;
  color: var(--c-gold);
  letter-spacing: 0.8em;
}
.theme-dragon .dr-rule::before { content: "❋ · ❋ · ❋"; }

/* ═════════ CTA BUTTON — red block, cream text ═════════ */
.theme-dragon .sp-btn {
  border-radius: 0;
  background: var(--c-red);
  border: 2px solid var(--c-red);
  color: #faf6ec;
  font-family: var(--c-font-display);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.28em;
  padding: 22px 52px;
  text-transform: uppercase;
  position: relative;
  box-shadow: 4px 4px 0 0 var(--c-indigo);
  transition: transform 180ms ease, box-shadow 180ms ease;
}
.theme-dragon .sp-btn:hover {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 0 var(--c-indigo);
  filter: none;
  background: var(--c-red-deep);
  border-color: var(--c-red-deep);
  color: #faf6ec;
}
.theme-dragon .sp-btn:active {
  transform: translate(4px, 4px);
  box-shadow: 0 0 0 0 var(--c-indigo);
}

/* ═════════ HERO — medallion + arced title ═════════ */
.dr-hero {
  padding: 72px 32px 56px;
  text-align: center;
  position: relative;
}
.dr-hero__medallion {
  width: clamp(300px, 40vw, 460px);
  height: clamp(300px, 40vw, 460px);
  margin: 0 auto 40px;
  position: relative;
}
/* Arced "THE WAY OF THE" text above medallion using SVG path */
.dr-hero__arc {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.dr-hero__arc text {
  font-family: var(--c-font-ornate);
  font-style: italic;
  font-weight: 400;
  font-size: 30px;
  letter-spacing: 0.18em;
  fill: var(--c-indigo);
  text-transform: uppercase;
}
/* Circular medallion disc */
.dr-hero__disc {
  position: absolute;
  left: 16%; top: 16%;
  width: 68%; aspect-ratio: 1;
  border-radius: 50%;
  background: var(--c-indigo);
  border: 6px solid var(--c-indigo);
  box-shadow:
    0 0 0 2px var(--c-gold),
    0 0 0 10px var(--c-indigo),
    0 0 0 12px var(--c-gold-deep),
    0 8px 30px rgba(31,26,110,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
}
.dr-hero__disc::before,
.dr-hero__disc::after {
  /* Gold rivets at N/S */
  content: "";
  position: absolute;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--c-gold);
  box-shadow: inset 0 -1px 2px rgba(0,0,0,0.3);
  left: 50%;
  transform: translateX(-50%);
}
.dr-hero__disc::before { top: 4px; }
.dr-hero__disc::after { bottom: 4px; }

.dr-hero__core {
  width: 74%; aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 30%, var(--c-gold-light) 0%, var(--c-gold) 60%, var(--c-gold-deep) 100%);
  box-shadow:
    inset 0 0 0 3px var(--c-gold-deep),
    inset 0 0 40px rgba(154,125,62,0.5),
    inset 0 0 0 1px rgba(255,255,255,0.4);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--c-font-ornate);
  font-size: clamp(18px, 2.6vw, 32px);
  color: var(--c-red-deep);
  letter-spacing: -0.02em;
}
/* Stylized dragon face symbol using CSS */
.dr-hero__dragon {
  width: 72%;
  aspect-ratio: 1;
  position: relative;
  color: var(--c-red-deep);
}
.dr-hero__dragon svg { width: 100%; height: 100%; display: block; }

/* DRAGON script wordmark below medallion */
.dr-hero__wordmark {
  font-family: var(--c-font-ornate);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(72px, 10vw, 140px);
  line-height: 0.9;
  letter-spacing: 0.01em;
  color: var(--c-indigo);
  margin: -24px 0 0;
  text-shadow: 2px 2px 0 rgba(200,164,86,0.25);
}

.dr-hero__meta {
  display: flex;
  justify-content: center;
  gap: 32px;
  margin-top: 40px;
  font-family: var(--c-font-meta);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-indigo-soft);
}
.dr-hero__meta span { display: inline-flex; align-items: center; gap: 8px; }
.dr-hero__meta span::before {
  content: "◆"; color: var(--c-gold); font-size: 10px;
}

/* ═════════ OPENING — "Dear one, you are not who..." ═════════ */
.dr-opening {
  padding: 72px 32px 96px;
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
}
.dr-opening__h {
  font-family: var(--c-font-display);
  font-weight: 500;
  font-size: clamp(44px, 5.4vw, 72px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 40px;
  color: var(--c-indigo);
  text-wrap: balance;
}
.dr-opening__h em {
  font-style: italic;
  color: var(--c-red);
  font-weight: 500;
}
.dr-opening .sp-prose {
  text-align: left;
  max-width: 680px;
  margin: 0 auto;
}
.dr-opening .sp-prose p { font-size: 19px; }

/* ═════════ PULL QUOTE — sutra on cream card ═════════ */
.dr-sutra {
  background: var(--c-paper);
  border: 1px solid var(--c-indigo-line);
  border-left: 4px solid var(--c-red);
  max-width: 780px;
  margin: 0 auto;
  padding: 48px 56px;
  position: relative;
}
.dr-sutra::before {
  content: "「";
  position: absolute;
  top: 12px; left: 18px;
  font-family: var(--c-font-display);
  font-size: 72px;
  line-height: 1;
  color: var(--c-gold);
}
.dr-sutra__body {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.35;
  color: var(--c-indigo);
  margin: 0 0 20px;
  text-wrap: balance;
}
.dr-sutra__attr {
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-indigo-soft);
  text-align: right;
}

/* ═════════ WELCOME / OVERVIEW ═════════ */
.dr-welcome {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}

/* Power list — what you'll learn to access */
.dr-powers {
  list-style: none;
  padding: 0;
  margin: 32px 0;
  display: grid;
  gap: 2px;
  background: var(--c-indigo-line);
  border: 1px solid var(--c-indigo-line);
}
.dr-powers li {
  background: var(--c-paper);
  padding: 22px 28px 22px 72px;
  font-family: var(--c-font-body);
  font-size: 17px;
  line-height: 1.5;
  position: relative;
}
.dr-powers li::before {
  content: "";
  position: absolute;
  left: 22px; top: 50%;
  width: 32px; height: 32px;
  transform: translateY(-50%);
  background: var(--c-red);
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}
.dr-powers li strong {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: 19px;
  color: var(--c-indigo);
  display: block;
  margin-bottom: 4px;
}

/* ═════════ CURRICULUM — 5 weeks as illuminated chapters ═════════ */
.dr-weeks {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--c-indigo-line);
}
.dr-week {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 40px;
  padding: 40px 0;
  border-bottom: 1px solid var(--c-indigo-line);
  align-items: baseline;
}
.dr-week__mark {
  font-family: var(--c-font-ornate);
  font-style: italic;
  font-size: clamp(72px, 8vw, 108px);
  line-height: 0.85;
  color: var(--c-red);
  text-align: right;
  letter-spacing: -0.02em;
}
.dr-week__mark small {
  display: block;
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--c-indigo-soft);
  margin-top: 6px;
  letter-spacing: 0.24em;
}
.dr-week__body h3 {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-style: italic;
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.1;
  margin: 0 0 14px;
  color: var(--c-indigo);
  letter-spacing: -0.01em;
}
.dr-week__body p {
  font-family: var(--c-font-body);
  font-size: 17px;
  line-height: 1.65;
  color: var(--c-ink);
  margin: 0 0 10px;
  max-width: 620px;
}

/* ═════════ WARNINGS — magenta callout ═════════ */
.dr-warnings {
  background: var(--c-paper);
  border: 2px solid var(--c-magenta);
  padding: 48px 56px;
  max-width: 880px;
  margin: 0 auto;
  position: relative;
}
.dr-warnings::before {
  /* stamped corner flourish */
  content: "⚠";
  position: absolute;
  top: -20px; left: 40px;
  width: 44px; height: 44px;
  background: var(--c-magenta);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
}
.dr-warnings__h {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: clamp(28px, 3.2vw, 38px);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-magenta);
  text-align: center;
  margin: 0 0 32px;
  line-height: 1.1;
}
.dr-warnings ol {
  list-style: none;
  counter-reset: warn;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 24px;
}
.dr-warnings li {
  counter-increment: warn;
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 20px;
}
.dr-warnings li::before {
  content: counter(warn, decimal-leading-zero);
  font-family: var(--c-font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 36px;
  line-height: 1;
  color: var(--c-magenta);
}
.dr-warnings h3 {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: 20px;
  color: var(--c-indigo);
  margin: 0 0 6px;
  line-height: 1.25;
}
.dr-warnings p {
  font-family: var(--c-font-body);
  font-size: 15px;
  line-height: 1.55;
  color: var(--c-indigo-soft);
  margin: 0;
}

/* ═════════ NUTS + BOLTS — what you get ═════════ */
.dr-nuts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.dr-nuts__list {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: 16px;
}
.dr-nuts__list li {
  font-family: var(--c-font-body);
  font-size: 17px;
  line-height: 1.55;
  padding-left: 36px;
  position: relative;
}
.dr-nuts__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 8px;
  width: 20px; height: 20px;
  background: var(--c-gold);
  border: 1.5px solid var(--c-gold-deep);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}
.dr-nuts__note {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: 15px;
  color: var(--c-indigo-soft);
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--c-indigo-line);
}

/* Placeholder dragon illustration box */
.dr-illus {
  aspect-ratio: 1;
  background: var(--c-paper);
  border: 1px solid var(--c-indigo-line);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.dr-illus svg { width: 72%; height: 72%; }

/* ═════════ MATERIALS ═════════ */
.dr-materials {
  background: var(--c-paper);
  border: 1px solid var(--c-indigo-line);
  padding: 36px 44px;
  max-width: 760px;
  margin: 0 auto;
}
.dr-materials h3 {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: 22px;
  color: var(--c-red);
  margin: 0 0 14px;
  letter-spacing: -0.01em;
}
.dr-materials p {
  font-family: var(--c-font-body);
  font-size: 15px;
  line-height: 1.6;
  margin: 0 0 12px;
  color: var(--c-ink);
}
.dr-materials p strong { color: var(--c-indigo); }

/* ═════════ CHATWALL — student testimonials ═════════ */
/* Dragon chatwall palette — indigo dominant, red/pink/gold/gradient accents */
.theme-dragon .sp-chatwall {
  max-width: 1180px;
}
.theme-dragon .sp-chat {
  background: var(--c-indigo);
  color: #f5efe0;
  border: 1px solid var(--c-indigo);
  border-radius: 4px;
  padding: 18px 20px;
  font-family: var(--c-font-body);
  font-size: 14px;
  line-height: 1.5;
}
.theme-dragon .sp-chat--indigo { background: var(--c-indigo); color: #f5efe0; }
.theme-dragon .sp-chat--red { background: var(--c-red); color: #fff; border-color: var(--c-red); }
.theme-dragon .sp-chat--gold {
  background: var(--c-gold);
  color: var(--c-indigo);
  border-color: var(--c-gold-deep);
}
.theme-dragon .sp-chat--cream {
  background: var(--c-paper);
  color: var(--c-indigo);
  border-color: var(--c-indigo-line);
}
.theme-dragon .sp-chat--periwinkle {
  background: #a4b7ec;
  color: var(--c-indigo);
  border-color: transparent;
}
.theme-dragon .sp-chat--pinkish {
  background: linear-gradient(135deg, #d97ab6 0%, #c7548f 70%, #9b3a78 100%);
  color: #fff;
  border-color: transparent;
}
.theme-dragon .sp-chat--ivory {
  background: #f5efe0;
  color: var(--c-indigo);
  border: 2px solid var(--c-indigo);
}
.theme-dragon .sp-chat__quote { margin: 0; }
.theme-dragon .sp-chat__handle {
  font-family: var(--c-font-meta);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: lowercase;
  opacity: 0.78;
  margin-top: 8px;
  display: block;
}
.theme-dragon .sp-chat strong { font-weight: 700; }

/* Chatwall title */
.dr-chatwall-title {
  font-family: var(--c-font-display);
  font-weight: 500;
  font-size: clamp(40px, 4.8vw, 60px);
  text-align: center;
  letter-spacing: -0.015em;
  margin: 0 0 48px;
  color: var(--c-indigo);
  line-height: 1.04;
}
.dr-chatwall-title em { font-style: italic; color: var(--c-red); }

/* ═════════ CLOSING CTA BAND ═════════ */
.dr-price {
  text-align: center;
  padding: 80px 32px;
}
.dr-price__line {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: 22px;
  color: var(--c-indigo-soft);
  margin: 0 0 18px;
}
.dr-price__num {
  font-family: var(--c-font-display);
  font-weight: 500;
  font-size: clamp(72px, 9vw, 120px);
  line-height: 1;
  color: var(--c-red);
  letter-spacing: -0.03em;
  margin: 0 0 8px;
}
.dr-price__num::before {
  content: "$";
  font-size: 0.55em;
  vertical-align: 0.3em;
  color: var(--c-indigo);
  margin-right: 4px;
}
.dr-price__meta {
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--c-indigo-soft);
  margin-bottom: 36px;
}

/* ═════════ FAQ ═════════ */
.dr-faq-wrap {
  background: var(--c-bg-alt);
  padding: 96px 0;
  border-top: 1px solid var(--c-indigo-line);
}
.dr-faq-title {
  font-family: var(--c-font-display);
  font-weight: 600;
  font-size: clamp(44px, 5.4vw, 68px);
  text-align: center;
  letter-spacing: -0.02em;
  color: var(--c-red);
  margin: 0 0 16px;
  line-height: 1;
}
.dr-faq-sub {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: clamp(20px, 2.4vw, 26px);
  text-align: center;
  color: var(--c-indigo);
  margin: 0 0 48px;
}
.dr-faq {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad, 32px);
}
.dr-faq__group + .dr-faq__group { margin-top: 56px; }
.dr-faq__heading {
  font-family: var(--c-font-display);
  font-style: italic;
  font-weight: 600;
  font-size: clamp(24px, 2.8vw, 32px);
  color: var(--c-red);
  margin: 0 0 20px;
  letter-spacing: -0.01em;
  text-align: center;
}
.dr-faq details {
  background: var(--c-paper);
  border: 1px solid var(--c-indigo-line);
  margin-bottom: 10px;
  padding: 0 28px;
  transition: border-color 180ms ease;
}
.dr-faq details[open] { border-color: var(--c-red); }
.dr-faq summary {
  list-style: none;
  cursor: pointer;
  padding: 22px 44px 22px 0;
  font-family: var(--c-font-body);
  font-size: 16px;
  font-weight: 600;
  position: relative;
  color: var(--c-indigo);
}
.dr-faq summary::-webkit-details-marker { display: none; }
.dr-faq summary::after {
  content: "+";
  position: absolute;
  right: 0; top: 22px;
  font-family: var(--c-font-display);
  font-size: 28px;
  color: var(--c-red);
  line-height: 1;
  font-weight: 400;
}
.dr-faq details[open] summary::after { content: "−"; }
.dr-faq__a {
  padding: 0 0 22px;
  font-family: var(--c-font-body);
  font-size: 15px;
  line-height: 1.65;
  color: var(--c-indigo-soft);
}
.dr-faq__a a { color: var(--c-red); }

/* ═════════ Mobile ═════════ */
@media (max-width: 900px) {
  .theme-dragon .dr-section { padding: 56px 24px; }
  .dr-hero { padding: 48px 24px 40px; }
  .dr-hero__meta { flex-direction: column; gap: 12px; }
  .dr-week { grid-template-columns: 1fr; gap: 12px; padding: 32px 0; }
  .dr-week__mark { text-align: left; }
  .dr-nuts { grid-template-columns: 1fr; gap: 32px; }
  .dr-warnings { padding: 36px 28px; }
  .dr-warnings li { grid-template-columns: 36px 1fr; gap: 14px; }
  .dr-warnings li::before { font-size: 28px; }
  .dr-sutra { padding: 36px 36px; }
  .dr-opening__h { font-size: clamp(32px, 6vw, 44px); }
}

/* ═════════ TWEAK VARIANTS ═════════ */
.theme-dragon.paper--parchment {
  --c-bg: #ebdfc4;
  --c-bg-alt: #dccfb2;
  --c-paper: #f2e7cc;
}
.theme-dragon.paper--white {
  --c-bg: #ffffff;
  --c-bg-alt: #f6f0e2;
  --c-paper: #ffffff;
}
.theme-dragon.accent--gold .sp-btn {
  background: var(--c-gold-deep);
  border-color: var(--c-gold-deep);
  color: #faf6ec;
}
.theme-dragon.accent--gold .sp-btn:hover {
  background: #7e6632;
  border-color: #7e6632;
}
.theme-dragon.accent--indigo .sp-btn {
  background: var(--c-indigo);
  border-color: var(--c-indigo);
  box-shadow: 4px 4px 0 0 var(--c-red);
}
.theme-dragon.accent--indigo .sp-btn:hover {
  box-shadow: 2px 2px 0 0 var(--c-red);
}

/* Tweaks panel anchor */
.theme-dragon .dr-tweaks {
  position: fixed;
  bottom: 24px; right: 24px;
  z-index: 100;
}

/* ═══════════════════════════════════════════════════════════
   THEME: SWORD V2  ·  Editorial zine
   ────────────────────────────────────────────────────────────
   A second variant of the Writing-with-the-Sword theme, styled
   as a literary-magazine / editorial zine. Cream paper, navy
   ink, ochre eyebrows, brick-red italic emphasis. Fraunces for
   display, Inter for body, JetBrains Mono for labels.

   All rules are scoped under .theme-sword-v2 so they cannot
   touch sibling sales pages. The class lives alongside the
   original .theme-sword block — both can coexist; pick per page.

   Component classes: .v2-* (only valid inside .theme-sword-v2).
   ═══════════════════════════════════════════════════════════ */

.theme-sword-v2 {
  /* Color palette */
  --v2-ink:        #1B2D5C;
  --v2-ink-deep:   #14224A;
  --v2-ink-soft:   #354680;
  --v2-ochre:      #B89556;
  --v2-ochre-deep: #8E6F38;
  --v2-brick:      #C0392B;
  --v2-cream:      #F5EFE3;
  --v2-bone:       #EDE3CE;
  --v2-paper:      #FBF7EE;
  --v2-rule:       rgba(27, 45, 92, 0.16);

  /* Type families */
  --v2-display:    "Fraunces", "Cormorant Garamond", Georgia, serif;
  --v2-body:       "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --v2-mono:       "JetBrains Mono", ui-monospace, monospace;

  /* Map system tokens onto our palette so any incidental
     .sp-* descendants render consistently. */
  --c-bg:           var(--v2-cream);
  --c-ink:          var(--v2-ink);
  --c-ink-soft:     var(--v2-ink-soft);
  --c-ink-faint:    rgba(27,45,92,0.32);
  --c-rule:         var(--v2-rule);
  --c-rule-strong:  rgba(27,45,92,0.32);
  --c-accent:       var(--v2-brick);
  --c-accent-ink:   var(--v2-cream);
  --c-surface:      var(--v2-paper);
  --c-font-display: var(--v2-display);
  --c-font-body:    var(--v2-body);
  --c-font-meta:    var(--v2-mono);
  --c-display-weight: 500;
  --c-display-letter: -0.018em;
  --c-body-size:    17px;
}

/* Body container — applies whether class order is .sp-body.theme-sword-v2 or .theme-sword-v2.sp-body */
.theme-sword-v2.sp-body,
.sp-body.theme-sword-v2 {
  background: var(--v2-cream);
  color: var(--v2-ink);
  font-family: var(--v2-body);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  position: relative;
  overflow-x: hidden;
}

/* Subtle paper grain overlay across the whole main */
.theme-sword-v2::before {
  content: "";
  position: absolute; inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.4;
  background-image:
    radial-gradient(rgba(184,149,86,0.05) 1px, transparent 1px),
    radial-gradient(rgba(27,45,92,0.025) 1px, transparent 1px);
  background-size: 3px 3px, 7px 7px;
  background-position: 0 0, 1px 2px;
  mix-blend-mode: multiply;
}
.theme-sword-v2 > * { position: relative; z-index: 1; }

/* ── Wrap helpers ── */
.theme-sword-v2 .v2-wrap {
  max-width: 1240px;
  margin: 0 auto;
  padding-left: clamp(20px, 4vw, 56px);
  padding-right: clamp(20px, 4vw, 56px);
}
.theme-sword-v2 .v2-wrap-narrow {
  max-width: 760px;
  margin: 0 auto;
  padding-left: clamp(20px, 4vw, 32px);
  padding-right: clamp(20px, 4vw, 32px);
}

/* ── Type system ── */
.theme-sword-v2 .v2-display {
  font-family: var(--v2-display);
  font-weight: 500;
  font-variation-settings: "opsz" 144, "SOFT" 50;
  letter-spacing: -0.018em;
  line-height: 1.0;
  color: var(--v2-ink);
  margin: 0;
}
.theme-sword-v2 .v2-display em {
  font-style: italic;
  font-weight: 400;
  color: var(--v2-brick);
}
.theme-sword-v2 .v2-h2    { font-size: clamp(36px, 5vw, 64px); }
.theme-sword-v2 .v2-h2-lg { font-size: clamp(46px, 7vw, 96px); line-height: 0.96; }
.theme-sword-v2 .v2-h2-xl { font-size: clamp(60px, 11vw, 160px); line-height: 0.92; letter-spacing: -0.025em; }

.theme-sword-v2 .v2-eyebrow {
  font-family: var(--v2-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--v2-ochre-deep);
  font-weight: 500;
  margin: 0 0 18px;
}
.theme-sword-v2 .v2-eyebrow--ochre { color: var(--v2-ochre); }
.theme-sword-v2 .v2-eyebrow--cream { color: rgba(245,239,227,0.7); }

.theme-sword-v2 .v2-lede {
  font-family: var(--v2-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(20px, 2.1vw, 26px);
  line-height: 1.4;
  color: var(--v2-ink-soft);
  margin: 20px 0 0;
}

.theme-sword-v2 .v2-prose p { margin: 0 0 1em; max-width: 60ch; }
.theme-sword-v2 .v2-prose strong { color: var(--v2-ink-deep); font-weight: 600; }
.theme-sword-v2 .v2-prose em { color: var(--v2-brick); font-style: italic; }
.theme-sword-v2 .v2-prose--drop p:first-child::first-letter {
  font-family: var(--v2-display);
  font-weight: 600;
  font-style: italic;
  font-size: 4.6em;
  line-height: 0.86;
  float: left;
  padding: 0.06em 0.12em 0 0;
  color: var(--v2-brick);
}

/* ── Sections / surfaces ── */
.theme-sword-v2 .v2-section { padding: clamp(72px, 9vw, 120px) 0; }
.theme-sword-v2 .v2-surface-bone  { background: var(--v2-bone); }
.theme-sword-v2 .v2-surface-paper { background: var(--v2-paper); }
.theme-sword-v2 .v2-surface-ink   { background: var(--v2-ink); color: var(--v2-cream); }

/* ── Hero ── */
.theme-sword-v2 .v2-hero { padding: clamp(40px, 5vw, 80px) 0 0; }
.theme-sword-v2 .v2-hero__grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(32px, 6vw, 80px);
  align-items: center;
}
.theme-sword-v2 .v2-hero__title {
  font-size: clamp(64px, 10vw, 156px);
  line-height: 0.92;
  letter-spacing: -0.03em;
  margin-top: 12px;
}
.theme-sword-v2 .v2-hero__byline {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: 24px 0 0;
  font-family: var(--v2-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--v2-ink-soft);
}
.theme-sword-v2 .v2-hero__byline-name {
  font-family: var(--v2-display);
  font-size: 22px;
  letter-spacing: 0.005em;
  text-transform: none;
  color: var(--v2-ink);
  font-weight: 500;
  font-style: italic;
}
.theme-sword-v2 .v2-hero__art {
  display: block;
  width: 100%;
  height: auto;
}
.theme-sword-v2 .v2-hero__caption {
  font-family: var(--v2-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--v2-ink-soft);
  text-align: center;
  margin: 12px 0 0;
}
.theme-sword-v2 .v2-hero__caption em {
  font-family: var(--v2-display);
  font-style: italic;
  font-size: 14px;
  color: var(--v2-brick);
}
@media (max-width: 880px) {
  .theme-sword-v2 .v2-hero__grid { grid-template-columns: 1fr; }
  .theme-sword-v2 .v2-hero__title { font-size: clamp(56px, 14vw, 92px); }
}

/* ── Metarail (4-stat band beneath hero) ── */
.theme-sword-v2 .v2-metarail {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--v2-rule);
  border-bottom: 1px solid var(--v2-rule);
  margin-top: clamp(48px, 6vw, 80px);
  max-width: 1240px;
}
.theme-sword-v2 .v2-metarail > div {
  padding: 22px clamp(16px, 3vw, 32px);
  border-right: 1px solid var(--v2-rule);
  font-family: var(--v2-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--v2-ink-soft);
}
.theme-sword-v2 .v2-metarail > div:last-child { border-right: 0; }
.theme-sword-v2 .v2-metarail strong {
  display: block;
  font-family: var(--v2-display);
  font-style: italic;
  font-weight: 500;
  font-size: 28px;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--v2-ink);
  margin-bottom: 6px;
}
@media (max-width: 720px) {
  .theme-sword-v2 .v2-metarail { grid-template-columns: repeat(2, 1fr); }
  .theme-sword-v2 .v2-metarail > div:nth-child(2) { border-right: 0; }
  .theme-sword-v2 .v2-metarail > div:nth-child(-n+2) { border-bottom: 1px solid var(--v2-rule); }
}

/* ── Marquee ── */
.theme-sword-v2 .v2-marquee {
  overflow: hidden;
  border-top: 1.5px solid var(--v2-ink);
  border-bottom: 1.5px solid var(--v2-ink);
  background: var(--v2-cream);
  padding: 22px 0;
}
.theme-sword-v2 .v2-marquee__track {
  display: flex;
  gap: 0;
  width: max-content;
  animation: v2-marquee 80s linear infinite;
  font-family: var(--v2-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(28px, 4vw, 44px);
  color: var(--v2-ink);
  white-space: nowrap;
}
.theme-sword-v2 .v2-marquee__star {
  color: var(--v2-brick);
  font-style: normal;
  font-weight: 300;
  padding: 0 24px;
}
@keyframes v2-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── Two-col layout (Imagine, etc.) ── */
.theme-sword-v2 .v2-twocol {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(32px, 5vw, 80px);
  align-items: start;
}
@media (max-width: 880px) {
  .theme-sword-v2 .v2-twocol { grid-template-columns: 1fr; }
}

/* ── Imagine grid (2×2 italic cells) ── */
.theme-sword-v2 .v2-imagine {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid var(--v2-rule);
  border-left: 1px solid var(--v2-rule);
}
.theme-sword-v2 .v2-imagine__cell {
  padding: 28px 24px;
  border-right: 1px solid var(--v2-rule);
  border-bottom: 1px solid var(--v2-rule);
  background: var(--v2-paper);
}
.theme-sword-v2 .v2-imagine__num {
  font-family: var(--v2-mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--v2-ochre-deep);
  margin: 0 0 14px;
}
.theme-sword-v2 .v2-imagine__cell p {
  font-family: var(--v2-display);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.3;
  color: var(--v2-ink);
  margin: 0;
}

/* ── Bio plate (sticky double-bordered card + drop-cap prose) ── */
.theme-sword-v2 .v2-bio {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: clamp(32px, 5vw, 80px);
  align-items: start;
}
.theme-sword-v2 .v2-bio__plate {
  background: var(--v2-cream);
  border: 1px solid var(--v2-rule);
  padding: 28px 24px;
  position: sticky;
  top: 100px;
}
.theme-sword-v2 .v2-bio__plateInner {
  border: 1px solid var(--v2-rule);
  padding: 28px 20px;
}
.theme-sword-v2 .v2-bio__name {
  font-family: var(--v2-display);
  font-weight: 500;
  font-style: italic;
  font-size: 38px;
  line-height: 1;
  color: var(--v2-brick);
  margin: 12px 0 24px;
  letter-spacing: -0.015em;
}
.theme-sword-v2 .v2-bio__title {
  font-family: var(--v2-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--v2-ink-soft);
  margin: 0;
  line-height: 1.6;
}
@media (max-width: 880px) {
  .theme-sword-v2 .v2-bio { grid-template-columns: 1fr; }
  .theme-sword-v2 .v2-bio__plate { position: static; }
}

/* ── Curriculum (chapters) ── */
.theme-sword-v2 .v2-curriculum-head {
  max-width: 760px;
  margin: 0 0 clamp(48px, 6vw, 80px);
}
.theme-sword-v2 .v2-curriculum-head .v2-lede { max-width: 580px; }
.theme-sword-v2 .v2-chapters { border-top: 2px solid var(--v2-ink); }
.theme-sword-v2 .v2-chapter {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: clamp(24px, 4vw, 64px);
  padding: clamp(32px, 4vw, 56px) 0;
  border-bottom: 1px solid var(--v2-rule);
  align-items: start;
}
.theme-sword-v2 .v2-chapter__num {
  font-family: var(--v2-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(56px, 7vw, 88px);
  line-height: 0.85;
  color: var(--v2-brick);
  letter-spacing: -0.02em;
}
.theme-sword-v2 .v2-chapter__num small {
  display: block;
  font-family: var(--v2-mono);
  font-style: normal;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--v2-ochre-deep);
  margin-bottom: 8px;
  font-weight: 500;
}
.theme-sword-v2 .v2-chapter__title {
  font-family: var(--v2-display);
  font-weight: 500;
  font-variation-settings: "opsz" 144;
  font-size: clamp(26px, 2.8vw, 38px);
  line-height: 1.12;
  margin: 6px 0 16px;
  color: var(--v2-ink);
  letter-spacing: -0.012em;
}
.theme-sword-v2 .v2-chapter__body {
  max-width: 60ch;
  color: var(--v2-ink-soft);
  font-size: 17px;
  margin: 0;
}
@media (max-width: 600px) {
  .theme-sword-v2 .v2-chapter { grid-template-columns: 1fr; gap: 8px; }
  .theme-sword-v2 .v2-chapter__num { font-size: 56px; }
}

/* ── Buttons / CTA ── */
.theme-sword-v2 .v2-cta-row {
  display: flex;
  justify-content: center;
  margin-top: clamp(40px, 5vw, 64px);
}
.theme-sword-v2 .v2-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 19px 28px 17px;
  background: var(--v2-ink);
  color: var(--v2-cream);
  font-family: var(--v2-display);
  font-style: italic;
  font-weight: 500;
  font-size: 20px;
  letter-spacing: 0.005em;
  text-decoration: none;
  border: 1.5px solid var(--v2-ink);
  transition: transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
}
.theme-sword-v2 .v2-btn:hover {
  background: var(--v2-brick);
  border-color: var(--v2-brick);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--v2-ink);
  color: var(--v2-cream);
}
.theme-sword-v2 .v2-btn .v2-arr { transition: transform 0.15s ease; }
.theme-sword-v2 .v2-btn:hover .v2-arr { transform: translateX(4px); }
.theme-sword-v2 .v2-btn--cream {
  background: var(--v2-cream);
  color: var(--v2-ink);
  border-color: var(--v2-cream);
}
.theme-sword-v2 .v2-btn--cream:hover {
  background: var(--v2-brick);
  color: var(--v2-cream);
  box-shadow: 4px 4px 0 var(--v2-cream);
  border-color: var(--v2-brick);
}

/* ── Praise board (gold gradient + polaroid pinboard + pull-quote) ── */
.theme-sword-v2 .v2-praise-section {
  background: linear-gradient(180deg, #C7A067 0%, #8E6F38 100%);
  color: var(--v2-cream);
  padding: clamp(72px, 9vw, 120px) 0;
  position: relative;
  overflow: hidden;
}
.theme-sword-v2 .v2-praise-section::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    repeating-linear-gradient(45deg, transparent 0 12px, rgba(0,0,0,0.025) 12px 13px);
  pointer-events: none;
}
.theme-sword-v2 .v2-praise-head {
  margin-bottom: clamp(48px, 6vw, 72px);
  position: relative;
}
.theme-sword-v2 .v2-praise-head .v2-display em { color: #FFE6A1; }

.theme-sword-v2 .v2-board {
  position: relative;
  padding: 0 clamp(20px, 4vw, 56px);
}
.theme-sword-v2 .v2-board__inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 24px;
}
.theme-sword-v2 .v2-polaroid {
  background: var(--v2-cream);
  padding: 14px 14px 18px;
  box-shadow:
    0 1px 0 rgba(0,0,0,0.04),
    0 28px 50px -20px rgba(0,0,0,0.45),
    0 12px 24px -10px rgba(0,0,0,0.25);
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.theme-sword-v2 .v2-polaroid:hover {
  transform: translate(0, -8px) rotate(0deg) !important;
  z-index: 5;
  box-shadow: 0 36px 60px -16px rgba(0,0,0,0.5);
}
.theme-sword-v2 .v2-polaroid img {
  display: block;
  width: 100%;
  height: auto;
}
.theme-sword-v2 .v2-polaroid .v2-cap {
  font-family: var(--v2-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--v2-ink-soft);
  margin: 12px 0 0;
  text-align: center;
}
.theme-sword-v2 .v2-pin {
  position: absolute;
  top: -8px; left: 50%;
  transform: translateX(-50%);
  width: 14px; height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #E64A38 0%, #9A2B1F 65%, #5C170F 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  z-index: 2;
}
.theme-sword-v2 .v2-pin--blue {
  background: radial-gradient(circle at 35% 30%, #6BAED6 0%, #2D5F8B 65%, #14304A 100%);
}
.theme-sword-v2 .v2-pin--gold {
  background: radial-gradient(circle at 35% 30%, #F6C26B 0%, #B89556 65%, #5C4720 100%);
}
.theme-sword-v2 .v2-board .v2-polaroid:nth-child(1) {
  grid-column: 1 / span 4;
  transform: rotate(-2.4deg);
  margin-top: 12px;
}
.theme-sword-v2 .v2-board .v2-polaroid:nth-child(2) {
  grid-column: 5 / span 4;
  transform: rotate(1.5deg);
  margin-top: -8px;
}
.theme-sword-v2 .v2-board .v2-polaroid:nth-child(3) {
  grid-column: 9 / span 4;
  transform: rotate(-1.2deg);
  margin-top: 24px;
}
@media (max-width: 880px) {
  .theme-sword-v2 .v2-board__inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: center;
  }
  .theme-sword-v2 .v2-board .v2-polaroid {
    grid-column: auto !important;
    width: min(380px, 92%);
    margin-top: 0 !important;
    transform: rotate(0) !important;
  }
}

.theme-sword-v2 .v2-pullquote-row {
  margin-top: clamp(72px, 8vw, 100px);
  position: relative;
}
.theme-sword-v2 .v2-pullquote {
  font-family: var(--v2-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(28px, 3.4vw, 42px);
  line-height: 1.22;
  color: var(--v2-cream);
  margin: 0 auto;
  max-width: 900px;
  padding-left: 32px;
  position: relative;
}
.theme-sword-v2 .v2-pullquote::before {
  content: "\201C";
  position: absolute;
  left: -12px; top: -28px;
  font-size: 5em;
  line-height: 1;
  color: rgba(255,255,255,0.5);
  font-family: var(--v2-display);
  font-style: normal;
}
.theme-sword-v2 .v2-pullquote cite {
  display: block;
  margin-top: 18px;
  font-style: normal;
  font-family: var(--v2-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
}

/* ── Price card (heading + bullet list left, big $ price right) ── */
.theme-sword-v2 .v2-pricecard {
  border: 1.5px solid var(--v2-ink);
  padding: clamp(36px, 4vw, 64px);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
  background: var(--v2-paper);
  position: relative;
  max-width: 1080px;
  margin: 0 auto;
}
.theme-sword-v2 .v2-pricecard::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid var(--v2-rule);
  pointer-events: none;
}
.theme-sword-v2 .v2-pricecard__num {
  font-family: var(--v2-display);
  font-weight: 400;
  font-size: clamp(72px, 11vw, 144px);
  line-height: 0.85;
  color: var(--v2-ink);
  letter-spacing: -0.04em;
}
.theme-sword-v2 .v2-pricecard__num sup {
  font-size: 0.4em;
  vertical-align: top;
  font-style: italic;
  color: var(--v2-brick);
  margin-right: 4px;
  font-weight: 400;
  top: 0.4em;
  position: relative;
}
.theme-sword-v2 .v2-pricecard__list {
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
  font-size: 16px;
  color: var(--v2-ink-soft);
}
.theme-sword-v2 .v2-pricecard__list li {
  padding: 12px 0;
  border-top: 1px solid var(--v2-rule);
  display: flex;
  gap: 12px;
}
.theme-sword-v2 .v2-pricecard__list li::before {
  content: "→";
  color: var(--v2-brick);
  font-family: var(--v2-display);
  font-style: italic;
}
.theme-sword-v2 .v2-pricecard__list li:first-child { border-top: 0; }
@media (max-width: 720px) {
  .theme-sword-v2 .v2-pricecard { grid-template-columns: 1fr; }
}

/* ── Bonuses (dashed-rule rows on paper bg) ── */
.theme-sword-v2 .v2-bonuses-head {
  margin-bottom: clamp(40px, 5vw, 64px);
  max-width: 760px;
}
.theme-sword-v2 .v2-bonuses { border-top: 2px solid var(--v2-ink); }
.theme-sword-v2 .v2-bonus {
  display: grid;
  grid-template-columns: 130px 1fr 130px;
  gap: clamp(24px, 4vw, 56px);
  padding: 32px 0;
  border-bottom: 1px dashed var(--v2-rule);
  align-items: baseline;
}
.theme-sword-v2 .v2-bonus__num {
  font-family: var(--v2-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--v2-ochre-deep);
}
.theme-sword-v2 .v2-bonus__title {
  font-family: var(--v2-display);
  font-weight: 500;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.18;
  margin: 0 0 10px;
  color: var(--v2-ink);
  letter-spacing: -0.01em;
}
.theme-sword-v2 .v2-bonus__desc {
  color: var(--v2-ink-soft);
  margin: 0;
  font-size: 16px;
  max-width: 56ch;
}
.theme-sword-v2 .v2-bonus__tag {
  font-family: var(--v2-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--v2-ochre-deep);
  text-align: right;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .theme-sword-v2 .v2-bonus { grid-template-columns: 100px 1fr; }
  .theme-sword-v2 .v2-bonus__tag {
    grid-column: 1 / -1;
    text-align: left;
    padding-top: 0;
  }
}

/* ── FAQ (narrow column, native details/summary accordions) ── */
.theme-sword-v2 .v2-faq-group { margin-bottom: 56px; }
.theme-sword-v2 .v2-faq-group__h {
  font-family: var(--v2-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--v2-ochre-deep);
  margin: 0 0 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--v2-rule);
}
.theme-sword-v2 .v2-faq details {
  border-bottom: 1px solid var(--v2-rule);
  padding: 20px 0;
}
.theme-sword-v2 .v2-faq summary {
  cursor: pointer;
  list-style: none;
  font-family: var(--v2-display);
  font-weight: 500;
  font-size: clamp(18px, 1.6vw, 21px);
  color: var(--v2-ink);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  letter-spacing: -0.005em;
}
.theme-sword-v2 .v2-faq summary::-webkit-details-marker { display: none; }
.theme-sword-v2 .v2-faq summary::after {
  content: "+";
  font-family: var(--v2-display);
  font-weight: 400;
  font-size: 28px;
  color: var(--v2-brick);
  line-height: 0.7;
  flex-shrink: 0;
}
.theme-sword-v2 .v2-faq details[open] summary::after {
  content: "—";
  font-size: 18px;
}
.theme-sword-v2 .v2-faq__ans {
  margin-top: 14px;
  color: var(--v2-ink-soft);
  font-size: 16px;
  max-width: 60ch;
}
.theme-sword-v2 .v2-faq__ans p { margin: 0 0 1em; }
.theme-sword-v2 .v2-faq__ans p:last-child { margin-bottom: 0; }
.theme-sword-v2 .v2-faq__ans a { color: var(--v2-brick); }

/* ── Closing (full ink with oversized headline, ochre signature) ── */
.theme-sword-v2 .v2-closing {
  text-align: center;
  padding: clamp(96px, 12vw, 160px) 0;
  background: var(--v2-ink);
  color: var(--v2-cream);
}
.theme-sword-v2 .v2-closing .v2-display { color: var(--v2-cream); }
.theme-sword-v2 .v2-closing .v2-display em { color: var(--v2-ochre); }
.theme-sword-v2 .v2-closing .v2-lede { color: rgba(245,239,227,0.85); }
.theme-sword-v2 .v2-closing__sig {
  font-family: var(--v2-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(28px, 3vw, 38px);
  color: var(--v2-ochre);
  margin-top: 56px;
}

/* ── Hover for in-text links inside theme ── */
.theme-sword-v2 a:hover { color: var(--v2-brick); }

/* ═══════════════════════════════════════════════════════════
   THEME-SWORD-V2  ·  Polish + accessibility pass
   Added separately so the diff is easy to read; everything
   below tightens responsive behaviour, focus order, motion
   preferences, and print rendering.
   ═══════════════════════════════════════════════════════════ */

/* Drop trailing borders so list-style sections don't end with
   a dangling rule. */
.theme-sword-v2 .v2-chapter:last-child       { border-bottom: 0; }
.theme-sword-v2 .v2-bonus:last-child         { border-bottom: 0; }
.theme-sword-v2 .v2-faq details:last-child   { border-bottom: 0; }

/* Drop cap — clamp size so it can't overflow on narrow viewports.
   Original 4.6em was fine on desktop, swallowed line height on
   ~360px screens. */
.theme-sword-v2 .v2-prose--drop p:first-child::first-letter {
  font-size: clamp(3em, 8vw, 4.6em);
  shape-outside: margin-box;
}

/* Visible keyboard focus everywhere it matters. Outline uses
   ochre so it shows on both cream and ink backgrounds. */
.theme-sword-v2 .v2-btn:focus-visible {
  outline: 3px solid var(--v2-ochre);
  outline-offset: 3px;
}
.theme-sword-v2 .v2-btn--cream:focus-visible {
  outline-color: var(--v2-ochre);
}
.theme-sword-v2 .v2-faq summary:focus-visible {
  outline: 2px solid var(--v2-ochre);
  outline-offset: 4px;
  border-radius: 2px;
}
.theme-sword-v2 a:focus-visible {
  outline: 2px solid var(--v2-ochre);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Smooth in-page anchor jumps land below the sticky Seowon chrome.
   Scoped via :has() so other pages keep their default scroll behaviour. */
html:has(.theme-sword-v2) {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

/* Tint the Seowon chrome + footer to match the v2 cream so the
   page reads as one warm-paper surface. Hardcoded cream because
   --v2-cream is scoped under .theme-sword-v2 and the chrome lives
   outside it. */
body:has(.theme-sword-v2) .sw-chrome {
  background: #F5EFE3;
  border-bottom-color: rgba(27, 45, 92, 0.16);
}
body:has(.theme-sword-v2) .sw-footer {
  background: #F5EFE3;
  border-top-color: rgba(27, 45, 92, 0.16);
  color: rgba(53, 70, 128, 0.7);
}
body:has(.theme-sword-v2) .sw-footer a:hover {
  color: var(--v2-brick);
  border-bottom-color: var(--v2-brick);
}
body:has(.theme-sword-v2) .sw-chrome__wordmark { color: #1B2D5C; }
body:has(.theme-sword-v2) .sw-chrome__wordmark em { color: var(--v2-brick); }
body:has(.theme-sword-v2) .sw-chrome__home:hover { color: var(--v2-brick); }

/* Honour user preference for less motion. Keeps the layout but
   removes the marquee scroll, polaroid lift/rotate, button slide. */
@media (prefers-reduced-motion: reduce) {
  .theme-sword-v2 .v2-marquee__track {
    animation: none;
    transform: translateX(-12.5%);
  }
  .theme-sword-v2 .v2-polaroid,
  .theme-sword-v2 .v2-btn,
  .theme-sword-v2 .v2-btn .v2-arr,
  .theme-sword-v2 .v2-chrome__pill {
    transition: none;
  }
  .theme-sword-v2 .v2-polaroid:hover {
    transform: rotate(0deg);
  }
  html:has(.theme-sword-v2) {
    scroll-behavior: auto;
  }
}

/* Print: paper-friendly. Hide the marquee + CTAs, neutralize the
   gold/ink surfaces, drop the paper grain overlay. */
@media print {
  .theme-sword-v2 .v2-marquee,
  .theme-sword-v2 .v2-cta-row,
  body:has(.theme-sword-v2) .sw-chrome__home,
  body:has(.theme-sword-v2) .sw-footer { display: none; }
  .theme-sword-v2::before { display: none; }
  .theme-sword-v2 .v2-praise-section,
  .theme-sword-v2 .v2-closing,
  .theme-sword-v2 .v2-surface-bone,
  .theme-sword-v2 .v2-surface-paper,
  .theme-sword-v2 .v2-surface-ink {
    background: transparent !important;
    color: #1B2D5C !important;
  }
  .theme-sword-v2 .v2-pullquote,
  .theme-sword-v2 .v2-pullquote cite,
  .theme-sword-v2 .v2-praise-head .v2-display,
  .theme-sword-v2 .v2-closing .v2-display,
  .theme-sword-v2 .v2-closing__sig {
    color: #1B2D5C !important;
  }
  .theme-sword-v2 .v2-section,
  .theme-sword-v2 .v2-praise-section,
  .theme-sword-v2 .v2-closing { padding: 24px 0; }
  .theme-sword-v2 .v2-polaroid {
    transform: none !important;
    margin-top: 0 !important;
    box-shadow: none !important;
    border: 1px solid var(--v2-rule);
  }
  .theme-sword-v2 .v2-chapter,
  .theme-sword-v2 .v2-bonus { break-inside: avoid; }
}

/* ── MODEL HERESY ── editorial cream + navy · watercolor as the surprise ─────
   Cream baseline, deep navy ink, rose-coral accent. The watercolor emblem
   is the page's signature material — small at the hero, splotches under
   the pillars, full-bleed only at the Forest section. The Magenta pull-
   quote uses the rose-coral accent as a flat saturated field, not the
   watercolor itself. */
.theme-model-heresy {
  --c-bg:             #f4ede0;          /* warm cream from scheme drafts */
  --c-ink:            #1f2a47;          /* deep navy from ink-blot frame */
  --c-ink-soft:       rgba(31,42,71,0.66);
  --c-ink-faint:      rgba(31,42,71,0.30);
  --c-rule:           rgba(31,42,71,0.16);
  --c-rule-strong:    rgba(31,42,71,0.28);
  --c-accent:         #c73e5c;          /* rose-coral from watercolor red */
  --c-accent-ink:     #f5efe2;          /* warm cream on accent */
  --c-surface:        #fbf7ee;          /* slightly lighter cream for cards */

  --c-teal:           #1f6e68;          /* deep teal from watercolor edge */
  --c-orange:         #e9874e;          /* warm amber from watercolor center */
  --c-aubergine:      #2a1a2e;          /* dark backing for full-bleed forest */
  --c-cream-soft:     #f5efe2;

  --c-font-display:   "Fraunces", "Source Serif 4", Georgia, serif;
  --c-font-body:      "DM Sans", "Source Serif 4", Georgia, sans-serif;
  --c-font-meta:      "JetBrains Mono", ui-monospace, monospace;
  --c-font-signature: "Simone Sharper", "Caveat", "Homemade Apple", cursive;
  --c-display-weight: 400;
  --c-display-letter: -0.015em;
  --c-body-size:      19px;
  --c-hero-scale:     1;
}

/* ─ Hero — sit the title on a slightly wider stage; subtitle ungilds ─ */
.theme-model-heresy .sp-hero { padding-bottom: 28px; }
.theme-model-heresy .sp-hero__title {
  font-size: clamp(56px, 9vw, 132px);
  letter-spacing: -0.025em;
  font-weight: 400;
  line-height: 0.96;
  text-transform: none;
}
.theme-model-heresy .sp-hero__subtitle {
  font-style: italic;
  color: var(--c-ink);
  font-size: clamp(18px, 1.85vw, 22px);
  max-width: 720px;
}
.theme-model-heresy .sp-hero__eyebrow {
  font-family: var(--c-font-meta);
  font-size: 12px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--c-ink-soft);
}

/* ─ Display headings everywhere ─ */
.theme-model-heresy .sp-section__title {
  font-family: var(--c-font-display);
  font-weight: 400;
  font-size: clamp(32px, 4.2vw, 56px);
  letter-spacing: -0.02em;
  line-height: 1.08;
}
.theme-model-heresy .sp-prose h3 {
  font-weight: 400;
  font-size: clamp(28px, 3vw, 38px);
  letter-spacing: -0.018em;
  line-height: 1.18;
}
.theme-model-heresy .sp-prose h4 {
  color: var(--c-accent);
  font-style: italic;
  font-weight: 500;
}

/* ─ Eyebrows: small-caps mono in dim ink ─ */
.theme-model-heresy .meta {
  font-family: var(--c-font-meta);
  letter-spacing: 0.24em;
  font-size: 11px;
  color: var(--c-ink-soft);
  text-transform: uppercase;
}

/* ─ Button: ink-on-cream by default with rose-coral hover. Ghost variant
     used on dark surfaces. ─ */
.theme-model-heresy .sp-btn {
  background: var(--c-ink);
  color: var(--c-cream-soft);
  border: 1px solid var(--c-ink);
  border-radius: 2px;
  font-family: var(--c-font-display);
  font-weight: 500;
  letter-spacing: 0.12em;
  padding: 24px 44px;
  font-size: 19px;
}
.theme-model-heresy .sp-btn:hover {
  background: var(--c-accent);
  border-color: var(--c-accent);
  color: var(--c-cream-soft);
}
.theme-model-heresy .sp-btn--ghost {
  background: transparent;
  color: var(--c-cream-soft);
  border-color: var(--c-cream-soft);
}
.theme-model-heresy .sp-btn--ghost:hover {
  background: var(--c-cream-soft);
  color: var(--c-aubergine);
}

/* ─ THREE PILLARS — the iconic moment, promoted to architecture ─ */
.theme-model-heresy .mh-pillars {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  text-align: center;
}
.theme-model-heresy .mh-pillar {
  padding: 12px 28px;
  position: relative;
}
.theme-model-heresy .mh-pillar + .mh-pillar { border-left: 1px solid var(--c-rule); }
.theme-model-heresy .mh-pillar__splotch {
  width: 60px; height: 60px;
  margin: 0 auto 22px;
  background: url("model-heresy/emblem.png?v=2") center / contain no-repeat;
  display: block;
}
.theme-model-heresy .mh-pillar__word {
  font-family: var(--c-font-display);
  font-size: clamp(36px, 4.4vw, 60px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0 0 18px;
  color: var(--c-ink);
}
.theme-model-heresy .mh-pillar__word em {
  font-style: italic;
  color: var(--c-accent);
}
.theme-model-heresy .mh-pillar__line {
  font-size: 16px;
  line-height: 1.55;
  color: var(--c-ink-soft);
  max-width: 280px;
  margin: 0 auto;
  font-style: italic;
}
@media (max-width: 900px) {
  .theme-model-heresy .mh-pillars { grid-template-columns: 1fr; gap: 56px; }
  .theme-model-heresy .mh-pillar + .mh-pillar { border-left: 0; border-top: 1px solid var(--c-rule); padding-top: 56px; }
}

/* ─ Hook (intimate question) ─ */
.theme-model-heresy .mh-hook {
  max-width: 700px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  text-align: center;
}
.theme-model-heresy .mh-hook p {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.45;
  font-weight: 400;
  color: var(--c-ink);
}

/* ─ Manifesto highlights — inline phrase emphasis ─ */
.theme-model-heresy .mh-highlight {
  font-style: italic;
  color: var(--c-accent);
  font-weight: 500;
}
.theme-model-heresy .mh-highlight--teal { color: var(--c-teal); }

/* ─ FOREST — full-bleed watercolor, cream type — the page's deepest pause ─ */
.theme-model-heresy .surface--forest {
  position: relative;
  background-color: var(--c-aubergine);
  background-image:
    linear-gradient(180deg, rgba(42,26,46,0.55), rgba(42,26,46,0.78)),
    url("model-heresy/watercolor-fullbleed.png?v=2");
  background-size: cover;
  background-position: center;
  color: var(--c-cream-soft);
  padding: 140px var(--c-page-pad);
  text-align: center;
  overflow: hidden;
}
.theme-model-heresy .surface--forest .mh-thesis {
  font-family: var(--c-font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(56px, 9vw, 130px);
  line-height: 1;
  letter-spacing: -0.025em;
  margin: 0 auto 40px;
  max-width: 980px;
  text-wrap: balance;
}
.theme-model-heresy .surface--forest .mh-thesis-sub {
  font-family: var(--c-font-body);
  font-size: 19px;
  line-height: 1.65;
  max-width: 620px;
  margin: 0 auto;
  color: rgba(245,239,226,0.92);
}
.theme-model-heresy .surface--forest .mh-thesis-sub em {
  font-style: italic;
  font-weight: 600;
  color: var(--c-orange);
}

/* ─ Curriculum — numbered "what you'll learn" — accent rose numerals ─
   Round 16: weight forced to 400 because DM Serif Display only ships at
   weight 400. Heavier weights were getting faux-bolded by the browser
   (which is what made the curriculum look "off" compared to the hero). */
.theme-model-heresy .sp-curriculum__num { color: var(--c-accent); font-weight: 400; }
.theme-model-heresy .sp-curriculum__title { font-weight: 400; line-height: 1.25; }
.theme-model-heresy .sp-curriculum__row { padding: 32px 0; }

/* ─ Receipts triplet — "$2M" gets display scale ─ */
.theme-model-heresy .mh-receipts {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
}
.theme-model-heresy .mh-receipts__lede {
  font-family: var(--c-font-display);
  font-size: clamp(24px, 2.6vw, 34px);
  font-weight: 400;
  font-style: italic;
  line-height: 1.3;
  text-align: center;
  max-width: 820px;
  margin: 0 auto 64px;
  color: var(--c-ink);
}
.theme-model-heresy .mh-receipts__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
}
.theme-model-heresy .mh-receipt {
  border-top: 1px solid var(--c-rule-strong);
  padding-top: 28px;
}
.theme-model-heresy .mh-receipt__num {
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.24em;
  color: var(--c-ink-soft);
  text-transform: uppercase;
  display: block;
  margin-bottom: 14px;
}
.theme-model-heresy .mh-receipt__big {
  font-family: var(--c-font-display);
  font-size: clamp(40px, 5.2vw, 76px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--c-ink);
  margin: 0 0 18px;
  font-feature-settings: "lnum";
}
.theme-model-heresy .mh-receipt__big em {
  font-style: italic;
  color: var(--c-accent);
}
.theme-model-heresy .mh-receipt__body {
  font-size: 16px;
  line-height: 1.55;
  color: var(--c-ink-soft);
}
@media (max-width: 900px) {
  .theme-model-heresy .mh-receipts__grid { grid-template-columns: 1fr; gap: 32px; }
}

/* ─ MAGENTA pull-quote — Sheryl T, single best testimonial ─ */
.theme-model-heresy .surface--magenta {
  background: var(--c-accent);
  color: var(--c-cream-soft);
  padding: 96px var(--c-page-pad);
  text-align: center;
}
.theme-model-heresy .surface--magenta .mh-bigquote {
  font-family: var(--c-font-display);
  font-style: normal;
  font-weight: 400;
  font-size: clamp(22px, 2.6vw, 36px);
  line-height: 1.3;
  letter-spacing: -0.012em;
  max-width: 820px;
  margin: 0 auto 28px;
  text-wrap: balance;
  color: var(--c-cream-soft);
}
.theme-model-heresy .surface--magenta .mh-bigquote__attrib {
  font-family: var(--c-font-meta);
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(245,239,226,0.85);
}

/* ─ Praise wall — polaroid stack with washi tape (Round 6 — Option B) ─
   Aubergine surface with subtle radial brand-color glow. 3-up grid of
   polaroid-style cards; cream interiors, body type for legibility, slight
   rotation per card, washi tape strip in rotating brand accent colors
   (orange / rose / teal). All rotation cleared on mobile. */
.theme-model-heresy .surface--praise {
  position: relative;
  padding: 120px var(--c-page-pad);
  background-color: var(--c-aubergine);
  background-image:
    radial-gradient(ellipse at 20% 30%, rgba(199,62,92,0.12) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 70%, rgba(31,110,104,0.12) 0%, transparent 50%);
  color: var(--c-cream-soft);
}
.theme-model-heresy .surface--praise .mh-chathead {
  text-align: center;
  margin: 0 auto 64px;
  padding: 0 var(--c-page-pad);
}
.theme-model-heresy .surface--praise .mh-chathead p {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: clamp(24px, 2.8vw, 34px);
  margin: 0;
  color: var(--c-cream-soft);
}
.theme-model-heresy .mh-chatgrid {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px 28px;
}
.theme-model-heresy .mh-chatcard {
  position: relative;
  background: var(--c-cream-soft);
  color: var(--c-ink);
  padding: 36px 26px 28px;
  border-radius: 3px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.28);
  overflow: visible;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.theme-model-heresy .mh-chatcard::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 50%;
  width: 140px;
  height: 28px;
  background-image: linear-gradient(
    180deg,
    rgba(255,255,255,0.22) 0%,
    transparent 20%,
    transparent 80%,
    rgba(0,0,0,0.10) 100%
  );
  box-shadow: 0 2px 4px rgba(0,0,0,0.20);
  z-index: 5;
}
/* Rotating tape colors + card rotation, varied by nth-child to feel hand-applied */
.theme-model-heresy .mh-chatcard:nth-child(3n+1)         { transform: rotate(-1.6deg); }
.theme-model-heresy .mh-chatcard:nth-child(3n+1)::before { background-color: rgba(231,135,78,0.82); transform: translateX(-50%) rotate(-3deg); }
.theme-model-heresy .mh-chatcard:nth-child(3n+2)         { transform: rotate(0.8deg); }
.theme-model-heresy .mh-chatcard:nth-child(3n+2)::before { background-color: rgba(199,62,92,0.82); transform: translateX(-50%) rotate(2deg); }
.theme-model-heresy .mh-chatcard:nth-child(3n+3)         { transform: rotate(-0.5deg); }
.theme-model-heresy .mh-chatcard:nth-child(3n+3)::before { background-color: rgba(31,110,104,0.82); transform: translateX(-50%) rotate(-1.5deg); }
.theme-model-heresy .mh-chatcard__quote {
  font-family: var(--c-font-body);
  font-size: 16px;
  line-height: 1.55;
  margin: 0 0 18px;
  color: var(--c-ink);
}
.theme-model-heresy .mh-chatcard__attrib {
  font-family: var(--c-font-meta);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-accent);
}
@media (max-width: 900px) {
  .theme-model-heresy .surface--praise { padding: 88px var(--c-page-pad); }
  .theme-model-heresy .mh-chatgrid { grid-template-columns: 1fr; gap: 36px; }
  .theme-model-heresy .mh-chatcard { transform: none !important; }
}

/* ─ Never-taught intimate beat ─ */
.theme-model-heresy .mh-confide {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 var(--c-page-pad);
  text-align: center;
  position: relative;
}
.theme-model-heresy .mh-confide__lede {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: clamp(26px, 3vw, 40px);
  line-height: 1.25;
  font-weight: 400;
  color: var(--c-ink);
  margin: 0 0 28px;
  text-wrap: balance;
}
.theme-model-heresy .mh-confide__list {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  justify-content: center;
}
.theme-model-heresy .mh-confide__list li {
  font-family: var(--c-font-meta);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-ink-soft);
  position: relative;
  padding-right: 22px;
}
.theme-model-heresy .mh-confide__list li::after {
  content: "·";
  position: absolute;
  right: 0;
  top: 0;
  color: var(--c-accent);
}
.theme-model-heresy .mh-confide__list li:last-child::after { display: none; }
.theme-model-heresy .mh-confide__hand {
  font-family: var(--c-font-signature);
  font-size: clamp(38px, 5vw, 60px);
  color: var(--c-accent);
  line-height: 1;
  margin: 8px 0 0;
}

/* ─ Offer / spec sheet ─ */
.theme-model-heresy .sp-details__price {
  color: var(--c-accent);
  font-size: clamp(56px, 7vw, 96px);
  letter-spacing: -0.02em;
  font-weight: 400;
}

/* ─ Six-buck manifesto — display all-caps, the bargain punch ─ */
.theme-model-heresy .mh-sixbucks {
  text-align: center;
  padding: 0 var(--c-page-pad);
  max-width: 1100px;
  margin: 0 auto;
}
.theme-model-heresy .mh-sixbucks__line {
  font-family: var(--c-font-display);
  font-weight: 500;
  font-size: clamp(34px, 5vw, 78px);
  line-height: 1.04;
  letter-spacing: -0.015em;
  color: var(--c-ink);
  margin: 0;
  text-wrap: balance;
}
.theme-model-heresy .mh-sixbucks__line em {
  font-style: italic;
  color: var(--c-accent);
}

/* ─ Closing — handwritten "True story." sign-off + final CTA ─ */
.theme-model-heresy .sp-closing { padding: 110px var(--c-page-pad) 80px; }
.theme-model-heresy .sp-closing__opener {
  font-family: var(--c-font-display);
  font-style: italic;
  font-size: clamp(36px, 4.4vw, 56px);
  color: var(--c-ink);
  font-weight: 400;
  margin-bottom: 18px;
}
/* Per CPM v4 playbook §16: closing body is DM Sans 19px, not 20px serif. */
.theme-model-heresy .sp-closing__body p {
  font-family: var(--c-font-body);
  font-size: 19px;
  line-height: 1.7;
}
.theme-model-heresy .sp-closing__sig {
  font-family: var(--c-font-signature);
  color: var(--c-accent);
}
