/*
 * Vidya Frazier site-wide design system.
 *
 * The page families can still have their own imagery and atmosphere, but
 * shared type, controls, panels, surfaces, and accents should feel like one
 * site. Keep this file loaded after the older page-family stylesheets.
 */
@font-face {
  font-family: 'Ballet Harmony';
  src: url('/assets/fonts/BalletHarmony.ttf') format('truetype');
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

:root {
  --site-paper: #f7f6f2;
  --site-ink: #10152c;
  --site-midnight: #071226;
  --site-violet: #6c52bc;
  --site-violet-deep: #30216f;
  --site-teal: #69dce3;
  --site-gold: #dfbe75;
  --site-muted: #62677a;
  --site-line: rgba(16, 21, 44, .14);
  --site-body-font: var(--sans);
  --site-body-size: 1.1875rem;
  --site-body-leading: 1.65;
  --site-panel: linear-gradient(135deg, #eee8ff 0%, #fbfafc 48%, #dff7f3 100%);
  --site-warm-panel: linear-gradient(135deg, #f4e6c9 0%, #f6eff4 52%, #dff5f1 100%);
  --site-radius: 30px;
  --site-shadow: 0 24px 65px rgba(29, 20, 66, .11);
}

/* Public pages use one quiet paper surface beneath their intentional hero art. */
body:not(.studio-page),
body.service-page,
body.books-page,
body.media-page,
body.ebook-page,
body.topic-guide-page,
body.imported-article {
  background: var(--site-paper);
  color: var(--site-ink);
}

/* Sans for normal copy and controls; serif remains the display/editorial voice. */
body:not(.studio-page):not(.imported-article) p,
body:not(.studio-page):not(.imported-article) li,
body:not(.studio-page):not(.imported-article) label,
body:not(.studio-page):not(.imported-article) input,
body:not(.studio-page):not(.imported-article) select,
body:not(.studio-page):not(.imported-article) textarea,
body:not(.studio-page):not(.imported-article) button,
body:not(.studio-page):not(.imported-article) small {
  font-family: var(--sans);
}

body:not(.studio-page) h1,
body:not(.studio-page) h2,
body:not(.studio-page) h3,
body:not(.studio-page) h4,
body:not(.studio-page) blockquote {
  font-family: var(--serif);
}

body:not(.studio-page) .imported-page .imported-content {
  font-family: var(--sans);
}

body:not(.studio-page) .imported-page .imported-content blockquote,
body:not(.studio-page) .book-deck,
body:not(.studio-page) .hero-note {
  font-family: var(--serif);
}

body:not(.studio-page) .section-kicker,
body:not(.studio-page) .article-meta,
body:not(.studio-page) .eyebrow {
  font-family: var(--sans);
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

/* The site name is a brand mark, not utility text: give it enough presence
   to balance the large editorial headings without competing with the nav. */
body:not(.studio-page) .site-header .brand strong {
  font-family: 'Ballet Harmony', cursive;
  font-size: clamp(2.15rem, 3.3vw, 3.65rem);
  font-weight: 400;
  letter-spacing: 0;
  line-height: .9;
  text-transform: none;
}

body:not(.studio-page) .site-header .brand small {
  font-size: .72rem;
  margin-top: .45rem;
}

/* Put Vidya herself in the opening viewport, with the same soft organic framing
   used elsewhere on the site instead of introducing a hard-edged portrait. */
body:not(.studio-page) .hero .hero-copy {
  max-width: min(760px, 58vw);
}

body:not(.studio-page) .hero-portrait-stage {
  position: absolute;
  z-index: 1;
  top: 13%;
  right: 6vw;
  width: min(34vw, 420px);
  height: min(60vh, 500px);
  min-height: 360px;
  display: grid;
  place-items: center;
  isolation: isolate;
  pointer-events: none;
}

body:not(.studio-page) .hero-portrait-stage::before,
body:not(.studio-page) .hero-portrait-stage::after {
  content: '';
  position: absolute;
  border: 1px solid rgba(132, 239, 234, .28);
  border-radius: 50%;
  pointer-events: none;
}

body:not(.studio-page) .hero-portrait-stage::before {
  width: 94%;
  height: 43%;
  transform: rotate(-19deg);
}

body:not(.studio-page) .hero-portrait-stage::after {
  width: 54%;
  height: 86%;
  border-color: rgba(244, 111, 210, .24);
  transform: rotate(24deg);
}

body:not(.studio-page) .hero-portrait-halo {
  position: absolute;
  z-index: -1;
  width: 92%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle at 42% 34%, rgba(255, 255, 255, .78), rgba(105, 235, 226, .28) 25%, rgba(138, 75, 220, .46) 52%, transparent 72%);
  filter: blur(16px);
}

body:not(.studio-page) .hero-portrait-orbit {
  position: absolute;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 50%;
}

body:not(.studio-page) .hero-portrait-orbit-one {
  width: 96%;
  height: 44%;
  transform: rotate(-22deg);
}

body:not(.studio-page) .hero-portrait-orbit-two {
  width: 50%;
  height: 88%;
  border-color: rgba(124, 241, 234, .34);
  transform: rotate(29deg);
}

body:not(.studio-page) .hero-portrait-frame {
  position: relative;
  z-index: 2;
  width: 68%;
  aspect-ratio: 3 / 4;
  padding: .75rem;
  transform: rotate(4deg);
  border: 1px solid rgba(255, 255, 255, .68);
  border-radius: 52% 45% 49% 42% / 44% 55% 43% 57%;
  background: linear-gradient(145deg, rgba(255, 255, 255, .94), rgba(202, 246, 240, .84) 52%, rgba(171, 139, 236, .7));
  box-shadow: 0 35px 90px rgba(0, 0, 0, .4), 0 0 0 1px rgba(108, 236, 231, .26);
}

body:not(.studio-page) .hero-portrait-frame-inner {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 48% 43% 53% 45% / 43% 55% 44% 58%;
  background: #1d1742;
}

body:not(.studio-page) .hero-portrait-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  border-radius: inherit;
  transform: scale(1.04);
}

body:not(.studio-page) .hero-portrait-label {
  position: absolute;
  z-index: 3;
  right: -3%;
  bottom: 8%;
  display: grid;
  gap: .18rem;
  padding: .65rem 1rem .75rem;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 999px 999px 999px 14px;
  background: rgba(7, 18, 38, .72);
  color: #fff;
  font: 2rem/.9 'Ballet Harmony', cursive;
  box-shadow: 0 16px 38px rgba(0, 0, 0, .24);
  transform: rotate(-4deg);
}

body:not(.studio-page) .hero-portrait-label small {
  color: rgba(255, 255, 255, .7);
  font: 700 .52rem/1.2 var(--sans);
  letter-spacing: .12em;
  text-transform: uppercase;
}

body:not(.studio-page) .hero-portrait-spark {
  position: absolute;
  z-index: 3;
  left: 5%;
  bottom: 13%;
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #30216f;
  color: #79eee8;
  font: 1rem var(--sans);
  font-style: normal;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .28);
}

/* Repeat the name as a small signature in the footer so the script font
   functions as brand identity, while copyright and navigation remain quiet
   utility text. */
body:not(.studio-page) .site-footer .footer-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .3rem;
  margin: 0;
  color: #fff;
  letter-spacing: 0;
  text-transform: none;
}

body:not(.studio-page) .site-footer .footer-brand-name {
  font-family: 'Ballet Harmony', cursive;
  font-size: 1.65rem;
  font-weight: 400;
  line-height: .9;
}

body:not(.studio-page) .site-footer .footer-copyright {
  font-family: var(--sans);
  font-size: .62rem;
  line-height: 1.2;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .52);
}

/* One body-text system across every public page. The higher specificity and
   scoped !important declarations are intentional: older page-family rules
   must not quietly reintroduce a different paragraph size or font. Display
   type, metadata, and quotations remain separate semantic exceptions. */
body:not(.studio-page) main p:not(.section-kicker):not(.eyebrow):not(.article-meta):not(.imported-date),
body:not(.studio-page) main li {
  font-family: var(--site-body-font) !important;
  font-size: var(--site-body-size) !important;
  line-height: var(--site-body-leading) !important;
}

/* These are labels/metadata, not body paragraphs. Keep them compact and
   visibly separate from the reading copy. */
body:not(.studio-page) .section-kicker,
body:not(.studio-page) .eyebrow,
body:not(.studio-page) .article-meta,
body:not(.studio-page) .imported-date,
body:not(.studio-page) .footer-bottom p {
  font-family: var(--sans);
  font-size: .72rem;
  line-height: 1.3;
}

/* Shared panel language. Hero visuals and editorial reading panels stay expressive. */
body:not(.studio-page) .service-preview,
body:not(.studio-page) .offer-card,
body:not(.studio-page) .topic-resource-card,
body:not(.studio-page) .video-card,
body:not(.studio-page) .featured-video,
body:not(.studio-page) .ebook-chapters article,
body:not(.studio-page) .review-card,
body:not(.studio-page) .review-story-card,
body:not(.studio-page) .library-feature,
body:not(.studio-page) .library-card,
body:not(.studio-page) .mailing-panel,
body:not(.studio-page) .topic-intro-panel,
body:not(.studio-page) .topic-extra-content,
body:not(.studio-page) .comments-section,
body:not(.studio-page) .comment-form,
body:not(.studio-page) .about-next-grid article {
  border-radius: var(--site-radius);
}

body:not(.studio-page) .inquiry-section,
body:not(.studio-page) .booking-strip,
body:not(.studio-page) .about-next,
body:not(.studio-page) .ebook-download {
  background: var(--site-warm-panel);
}

body:not(.studio-page) .inquiry-note {
  border-left-color: var(--site-violet);
  background: rgba(255, 255, 255, .54);
}

/* The final content bands should carry the same blue/purple rhythm as the
   hero and journey sections above them. */
body:not(.studio-page).page-about-vidya-frazier .about-next,
body:not(.studio-page).service-page .booking-strip.inquiry-section {
  color: #fff;
  background: linear-gradient(120deg, #07112a 0%, #30266e 55%, #722774 100%);
}

body:not(.studio-page).page-about-vidya-frazier .about-next .section-kicker,
body:not(.studio-page).service-page .booking-strip.inquiry-section .section-kicker {
  color: #7cece6;
}

body:not(.studio-page).service-page .booking-strip.inquiry-section .inquiry-copy > p:not(.section-kicker):not(.inquiry-note) {
  color: rgba(255, 255, 255, .76);
}

body:not(.studio-page).service-page .booking-strip.inquiry-section .inquiry-note {
  border-left-color: #7cece6;
  background: rgba(255, 255, 255, .12);
  color: rgba(255, 255, 255, .82);
}

/* All primary actions use the same compact pill geometry. */
body:not(.studio-page) .button {
  min-height: 44px;
  padding: .75rem 1.2rem;
  border-radius: 999px;
  font-family: var(--sans);
  font-size: .875rem;
  line-height: 1.35;
}

body:not(.studio-page) .button-dark {
  background: var(--site-midnight);
}

body:not(.studio-page) .button-light {
  color: var(--site-ink);
}

/* Grid items stretch by default; the email action should size to its content. */
body:not(.studio-page) .booking-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .85rem;
}

body:not(.studio-page) .booking-actions .button {
  justify-self: auto;
  width: auto;
  max-width: 100%;
}

body:not(.studio-page) .booking-actions > a:last-child {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .75rem .15rem;
  text-align: left;
  font-family: var(--sans);
  font-size: .875rem;
  line-height: 1.35;
}

/* The remaining hard-edged book/document images now use the same softened frame. */
body:not(.studio-page) .book-covers img,
body:not(.studio-page) .cover-constellation img,
body:not(.studio-page) .book-cover-wrap img,
body:not(.studio-page) .ebook-preview img {
  border-radius: 18px !important;
}

body:not(.studio-page) .byline img {
  border-radius: 50% !important;
}

body:not(.studio-page) .site-footer {
  background: var(--site-midnight);
}

/* Let the About and Work with Vidya pages close on the same blue/purple band
   used by their atmospheric sections above, instead of ending on flat navy. */
body:not(.studio-page).page-about-vidya-frazier .site-footer,
body:not(.studio-page).service-page .site-footer {
  background: linear-gradient(120deg, #07112a 0%, #30266e 55%, #722774 100%);
}

/* Writings use the same image-led card language as the selected readings on
   the guided collection pages. The image is a real media block, while the
   copy stays on a clean white panel so every post remains easy to scan. */
body:not(.studio-page) .archive-card,
body:not(.studio-page) .article-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(63, 45, 120, .1);
  border-radius: var(--site-radius) !important;
  background: #fff;
  box-shadow: 0 17px 50px rgba(31, 22, 70, .08);
  isolation: isolate;
  transition: transform .3s, box-shadow .3s;
}

body:not(.studio-page) .archive-card::before,
body:not(.studio-page) .archive-card::after,
body:not(.studio-page) .article-card::before,
body:not(.studio-page) .article-card::after {
  content: none;
}

body:not(.studio-page) .archive-card:hover,
body:not(.studio-page) .article-card:hover {
  transform: translateY(-7px);
  background: #fff;
  box-shadow: 0 30px 70px rgba(31, 22, 70, .15);
}

body:not(.studio-page) .writing-card-media {
  position: relative;
  flex: 0 0 190px;
  height: 190px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: radial-gradient(circle at 45% 35%, #7debe4, #6d4fc1 48%, #1b214d);
}

body:not(.studio-page) .writing-card-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  min-height: 0;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  object-fit: cover;
  transition: transform .5s;
}

body:not(.studio-page) .archive-card:hover .writing-card-media img,
body:not(.studio-page) .article-card:hover .writing-card-media img {
  transform: scale(1.06);
}

body:not(.studio-page) .writing-card-media-fallback span {
  color: #fff;
  font-size: 3rem;
  filter: drop-shadow(0 0 22px rgba(118, 241, 232, .7));
}

body:not(.studio-page) .archive-card > .writing-card-copy,
body:not(.studio-page) .article-card > .writing-card-copy {
  display: flex;
  width: 100%;
  min-height: 290px;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 1.6rem 1.6rem 1.7rem;
  background: #fff;
}

body:not(.studio-page) .archive-card .writing-card-copy .article-meta,
body:not(.studio-page) .article-card .writing-card-copy .article-meta {
  margin: 0;
  color: #7054c1;
}

body:not(.studio-page) .archive-card .writing-card-copy h2,
body:not(.studio-page) .article-card .writing-card-copy h3 {
  margin: .65rem 0 .9rem;
  color: #201a38;
  font: 400 1.65rem/1.16 var(--serif);
}

body:not(.studio-page) .archive-card .writing-card-copy > p:not(.article-meta),
body:not(.studio-page) .article-card .writing-card-copy > p:not(.article-meta) {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: #666174;
  font: 400 1rem/1.6 var(--sans);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

body:not(.studio-page) .archive-card .writing-card-copy > .article-link,
body:not(.studio-page) .article-card .writing-card-copy > a {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: .3rem;
  min-height: 0;
  margin-top: auto;
  padding: 0;
  border: 0;
  color: #332563;
  font: 900 1rem/1.35 var(--sans);
}

body:not(.studio-page) .archive-card .writing-card-copy > .article-link:hover,
body:not(.studio-page) .article-card .writing-card-copy > a:hover {
  color: #7054c1;
}

@media (max-width: 620px) {
  body:not(.studio-page) .site-header .brand strong {
    font-size: 1.85rem;
  }

  body:not(.studio-page) .hero {
    padding-bottom: 345px;
  }

  body:not(.studio-page) .hero-portrait-stage {
    right: 50%;
    bottom: 34px;
    top: auto;
    width: 220px;
    height: 280px;
    min-height: 0;
    transform: translateX(50%);
  }

  body:not(.studio-page) .hero-portrait-label {
    right: -8%;
    font-size: 1.65rem;
  }

  body:not(.studio-page) .booking-actions {
    align-items: flex-start;
  }

  body:not(.studio-page) .site-footer .footer-brand-name {
    font-size: 1.5rem;
  }

  body:not(.studio-page) .writing-card-media {
    flex-basis: 170px;
    height: 170px;
  }

  body:not(.studio-page) .archive-card > .writing-card-copy,
  body:not(.studio-page) .article-card > .writing-card-copy {
    min-height: 0;
    padding: 1.35rem;
  }
}

@media (min-width: 621px) and (max-width: 900px) {
  body:not(.studio-page) .hero {
    padding-bottom: 390px;
  }

  body:not(.studio-page) .hero .hero-copy {
    max-width: none;
  }

  body:not(.studio-page) .hero-portrait-stage {
    right: 50%;
    bottom: 42px;
    top: auto;
    width: 255px;
    height: 320px;
    min-height: 0;
    transform: translateX(50%);
  }

  body:not(.studio-page) .scroll-cue {
    display: none;
  }
}

/* The homepage Ascension welcome is a full-width editorial band rather than
   a plain wall of copy. Its smaller reading cards make the long introduction
   easier to scan while keeping the same blue, violet, and teal language used
   by the rest of the site. */
body:not(.studio-page) .hero-copy .hero-lede-secondary {
  margin-top: 1rem;
  color: rgba(255, 255, 255, .64);
}

body:not(.studio-page) .home-ascension {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(5.5rem, 10vw, 9.5rem) max(1.25rem, calc((100% - 1180px) / 2));
  overflow: hidden;
  background:
    radial-gradient(circle at 83% 8%, rgba(116, 91, 207, .22), transparent 23rem),
    radial-gradient(circle at 8% 78%, rgba(99, 218, 220, .17), transparent 25rem),
    linear-gradient(180deg, #e9ebff 0%, #faf9f5 32%, #e0f2f2 100%);
}

body:not(.studio-page) .home-ascension::before,
body:not(.studio-page) .home-ascension::after {
  content: '';
  position: absolute;
  pointer-events: none;
  border: 1px solid rgba(89, 69, 165, .13);
  border-radius: 50%;
}

body:not(.studio-page) .home-ascension::before {
  width: min(50vw, 680px);
  aspect-ratio: 1;
  right: -15rem;
  top: 6rem;
}

body:not(.studio-page) .home-ascension::after {
  width: min(32vw, 430px);
  aspect-ratio: 1;
  left: -14rem;
  bottom: 8rem;
  border-color: rgba(53, 174, 183, .16);
}

body:not(.studio-page) .home-ascension-inner {
  position: relative;
  z-index: 1;
  width: min(1180px, 100%);
  margin: 0 auto;
}

body:not(.studio-page) .home-ascension-quote {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, .36fr);
  gap: 3rem;
  align-items: center;
  min-height: 310px;
  margin-bottom: 5.5rem;
  padding: clamp(2rem, 5vw, 4.7rem);
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgba(116, 87, 193, .18);
  border-radius: 34px 88px 34px 88px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(241, 235, 255, .93) 58%, rgba(216, 246, 241, .9));
  box-shadow: 0 28px 78px rgba(41, 30, 94, .13);
}

body:not(.studio-page) .home-ascension-quote::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 20rem;
  height: 20rem;
  right: 8%;
  top: -9rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(105, 220, 227, .34), rgba(110, 78, 194, .11) 48%, transparent 72%);
  filter: blur(4px);
}

body:not(.studio-page) .home-ascension-quote-copy {
  position: relative;
  z-index: 1;
}

body:not(.studio-page) .home-ascension-quote blockquote {
  max-width: 760px;
  margin: 0;
  color: var(--site-ink);
  font: 400 clamp(2.35rem, 4.8vw, 5.3rem) / .98 var(--serif);
  letter-spacing: -.05em;
}

body:not(.studio-page) .home-ascension-quote-orbit,
body:not(.studio-page) .home-ascension-shift-orbit {
  position: relative;
  display: grid;
  place-items: center;
  justify-self: center;
  width: min(18vw, 210px);
  aspect-ratio: 1;
  border: 1px solid rgba(88, 68, 167, .25);
  border-radius: 50%;
  box-shadow: 0 0 0 1.5rem rgba(112, 87, 199, .06), 0 0 0 3.3rem rgba(105, 220, 227, .06);
}

body:not(.studio-page) .home-ascension-quote-orbit::before,
body:not(.studio-page) .home-ascension-quote-orbit::after,
body:not(.studio-page) .home-ascension-shift-orbit::before,
body:not(.studio-page) .home-ascension-shift-orbit::after {
  content: '';
  position: absolute;
  border: 1px solid currentColor;
  border-radius: 50%;
  opacity: .45;
}

body:not(.studio-page) .home-ascension-quote-orbit::before,
body:not(.studio-page) .home-ascension-shift-orbit::before {
  inset: 15%;
  transform: rotate(28deg) scaleX(.72);
}

body:not(.studio-page) .home-ascension-quote-orbit::after,
body:not(.studio-page) .home-ascension-shift-orbit::after {
  inset: 30%;
  transform: rotate(-24deg) scaleY(.72);
}

body:not(.studio-page) .home-ascension-quote-orbit {
  color: var(--site-violet);
}

body:not(.studio-page) .home-ascension-quote-orbit span,
body:not(.studio-page) .home-ascension-shift-orbit span {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 4.3rem;
  height: 4.3rem;
  border-radius: 50%;
  background: var(--site-violet-deep);
  color: var(--site-teal);
  font-size: 1.25rem;
  box-shadow: 0 15px 35px rgba(48, 33, 111, .25);
}

body:not(.studio-page) .home-ascension-heading {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 5vw;
  align-items: end;
  margin-bottom: 2.4rem;
}

body:not(.studio-page) .home-ascension-heading-card {
  padding: clamp(1.8rem, 4vw, 3.4rem);
  border: 1px solid rgba(116, 87, 193, .16);
  border-radius: 32px 68px 32px 68px;
  background: rgba(255, 255, 255, .74);
  box-shadow: 0 20px 55px rgba(41, 30, 94, .08);
}

body:not(.studio-page) .home-ascension-heading h2 {
  margin: 0;
  color: var(--site-ink);
  font: 400 clamp(2.35rem, 4.25vw, 4.6rem) / 1 var(--serif);
  letter-spacing: -.05em;
}

body:not(.studio-page) .home-ascension-lede {
  position: relative;
  padding: 1.5rem 0 1rem 2rem;
  border-left: 2px solid var(--site-violet);
}

body:not(.studio-page) .home-ascension-lede-number,
body:not(.studio-page) .home-ascension-shift-number {
  display: block;
  margin-bottom: 1rem;
  color: var(--site-violet);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .18em;
}

body:not(.studio-page) .home-ascension-lede p {
  margin: 0;
  color: var(--site-muted);
}

body:not(.studio-page) .home-ascension-copy {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

body:not(.studio-page) .home-ascension-card {
  position: relative;
  display: flex;
  min-height: 300px;
  flex-direction: column;
  padding: clamp(1.8rem, 4vw, 3rem);
  overflow: hidden;
  border: 1px solid rgba(116, 87, 193, .16);
  border-radius: 34px 72px 34px 72px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .95), rgba(242, 237, 255, .94));
  box-shadow: 0 22px 60px rgba(41, 30, 94, .1);
}

body:not(.studio-page) .home-ascension-card:nth-child(2) {
  transform: translateY(2rem);
  border-color: rgba(125, 239, 232, .24);
  border-radius: 72px 34px 72px 34px;
  background: linear-gradient(145deg, #30216f, #121b3b 72%, #172e52);
}

body:not(.studio-page) .home-ascension-card::before {
  content: '';
  position: absolute;
  width: 13rem;
  height: 13rem;
  right: -5rem;
  bottom: -6rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(105, 220, 227, .22), transparent 68%);
}

body:not(.studio-page) .home-ascension-card-label,
body:not(.studio-page) .home-ascension-shift-card-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
  color: var(--site-violet);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body:not(.studio-page) .home-ascension-card-label span:first-child,
body:not(.studio-page) .home-ascension-shift-card-label span:first-child {
  color: var(--site-violet);
}

body:not(.studio-page) .home-ascension-card p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #454154;
}

body:not(.studio-page) .home-ascension-card:nth-child(2) .home-ascension-card-label,
body:not(.studio-page) .home-ascension-card:nth-child(2) .home-ascension-card-label span:first-child {
  color: var(--site-teal);
}

body:not(.studio-page) .home-ascension-card:nth-child(2) p {
  color: rgba(255, 255, 255, .78);
}

body:not(.studio-page) .home-ascension-card-mark {
  position: relative;
  z-index: 1;
  align-self: flex-end;
  margin-top: auto;
  color: var(--site-violet);
  font-size: 1.2rem;
}

body:not(.studio-page) .home-ascension-card:nth-child(2) .home-ascension-card-mark {
  color: var(--site-teal);
}

body:not(.studio-page) .home-ascension-shift {
  position: relative;
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
  gap: 4vw;
  margin-top: 7rem;
  padding: clamp(2rem, 5vw, 4.7rem);
  overflow: hidden;
  isolation: isolate;
  border-radius: 44px 92px 44px 92px;
  background: linear-gradient(135deg, #071226 0%, #30216f 59%, #173b59 100%);
  box-shadow: 0 30px 80px rgba(29, 20, 66, .2);
}

body:not(.studio-page) .home-ascension-shift::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 29rem;
  height: 29rem;
  right: -10rem;
  bottom: -16rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(105, 220, 227, .28), transparent 68%);
}

body:not(.studio-page) .home-ascension-shift-heading {
  position: relative;
  padding-right: 1rem;
}

body:not(.studio-page) .home-ascension-shift-heading .section-kicker {
  color: var(--site-teal);
}

body:not(.studio-page) .home-ascension-shift-heading h3 {
  position: relative;
  z-index: 1;
  margin: .4rem 0 0;
  color: #fff;
  font: 400 clamp(2.1rem, 3.8vw, 4.1rem) / 1 var(--serif);
  letter-spacing: -.05em;
}

body:not(.studio-page) .home-ascension-shift-number {
  color: rgba(255, 255, 255, .55);
}

body:not(.studio-page) .home-ascension-shift-orbit {
  width: min(15vw, 170px);
  margin: 4rem 0 0 1rem;
  color: var(--site-teal);
  border-color: rgba(125, 239, 232, .34);
}

body:not(.studio-page) .home-ascension-shift-copy {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

body:not(.studio-page) .home-ascension-shift-card {
  display: flex;
  min-height: 250px;
  flex-direction: column;
  padding: 1.6rem;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 26px 52px 26px 52px;
  background: rgba(255, 255, 255, .09);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}

body:not(.studio-page) .home-ascension-shift-card:nth-child(even) {
  transform: translateY(1.25rem);
  border-radius: 52px 26px 52px 26px;
  background: rgba(105, 220, 227, .12);
}

body:not(.studio-page) .home-ascension-shift-card-label {
  margin-bottom: 1.3rem;
  color: var(--site-teal);
}

body:not(.studio-page) .home-ascension-shift-card-label span:first-child {
  color: rgba(255, 255, 255, .58);
}

body:not(.studio-page) .home-ascension-shift-card p {
  margin: 0;
  color: rgba(255, 255, 255, .78);
}

/* Review cards need an obvious surface against the paper page. The tone
   variants remain different, but none of them disappear into the background. */
body:not(.studio-page) .reviews-grid .review-story-card {
  border: 1px solid rgba(76, 55, 138, .18);
  box-shadow: 0 24px 68px rgba(29, 20, 66, .13);
}

body:not(.studio-page) .reviews-grid .review-tone-0 {
  background: linear-gradient(145deg, #fff 0%, #eeeaff 100%);
}

body:not(.studio-page) .reviews-grid .review-tone-1 {
  background: linear-gradient(145deg, #eee8ff 0%, #d9f5f1 100%);
}

body:not(.studio-page) .reviews-grid .review-tone-2 {
  background: linear-gradient(145deg, #fff 0%, #f5dff0 100%);
}

body:not(.studio-page) .reviews-grid .review-tone-3 {
  border-color: rgba(133, 238, 232, .25);
  background: linear-gradient(145deg, #30216f 0%, #101a3a 100%);
}

@media (max-width: 760px) {
  body:not(.studio-page) .home-ascension {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  body:not(.studio-page) .home-ascension-quote,
  body:not(.studio-page) .home-ascension-heading,
  body:not(.studio-page) .home-ascension-copy,
  body:not(.studio-page) .home-ascension-shift,
  body:not(.studio-page) .home-ascension-shift-copy {
    grid-template-columns: 1fr;
  }

  body:not(.studio-page) .home-ascension-quote {
    gap: 1.5rem;
    margin-bottom: 3rem;
    padding: 1.75rem;
  }

  body:not(.studio-page) .home-ascension-quote-orbit {
    width: 150px;
  }

  body:not(.studio-page) .home-ascension-heading {
    gap: 1.5rem;
    margin-bottom: 1.75rem;
  }

  body:not(.studio-page) .home-ascension-lede {
    padding-left: 1.25rem;
  }

  body:not(.studio-page) .home-ascension-card:nth-child(2),
  body:not(.studio-page) .home-ascension-shift-card:nth-child(even) {
    transform: none;
  }

  body:not(.studio-page) .home-ascension-shift {
    gap: 2rem;
    margin-top: 3.5rem;
    padding: 1.75rem;
  }

  body:not(.studio-page) .home-ascension-shift-orbit {
    width: 130px;
    margin-top: 2.5rem;
  }
}

/* Final homepage pass: use the source material with an image-led rhythm so
   the opening reads as a designed welcome, not an uninterrupted text block. */
body:not(.studio-page) .home-ascension-quote {
  grid-template-columns: minmax(0, 1fr) minmax(230px, .42fr);
}

body:not(.studio-page) .home-ascension-quote-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 2rem;
  max-width: 850px;
  margin-top: 2rem;
}

body:not(.studio-page) .home-ascension-quote-intro p {
  margin: 0;
  color: var(--site-muted);
  font-size: 1.02rem;
  line-height: 1.7;
}

body:not(.studio-page) .home-ascension-quote-image,
body:not(.studio-page) .home-ascension-shift-image,
body:not(.studio-page) .home-ascension-tools-image,
body:not(.studio-page) .home-not-lost-image {
  position: relative;
  margin: 0;
}

body:not(.studio-page) .home-ascension-quote-image {
  justify-self: center;
  width: min(100%, 300px);
  aspect-ratio: 1;
}

body:not(.studio-page) .home-ascension-quote-image img,
body:not(.studio-page) .home-ascension-shift-image img,
body:not(.studio-page) .home-ascension-tools-image img,
body:not(.studio-page) .home-not-lost-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 48% 52% 44% 56% / 52% 44% 56% 48%;
  box-shadow: 0 24px 55px rgba(38, 29, 92, .2);
}

body:not(.studio-page) .home-ascension-quote-image::before,
body:not(.studio-page) .home-ascension-quote-image::after {
  content: '';
  position: absolute;
  inset: -1.2rem;
  z-index: -1;
  border: 1px solid rgba(89, 69, 165, .2);
  border-radius: 50%;
  transform: rotate(18deg);
}

body:not(.studio-page) .home-ascension-quote-image::after {
  inset: -2.2rem;
  border-color: rgba(53, 174, 183, .16);
  transform: rotate(-23deg) scaleX(.86);
}

body:not(.studio-page) .home-ascension-quote-image span {
  position: absolute;
  right: -.2rem;
  bottom: .5rem;
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: var(--site-violet-deep);
  color: var(--site-teal);
  box-shadow: 0 10px 25px rgba(48, 33, 111, .25);
}

body:not(.studio-page) .home-ascension-heading-card .section-kicker,
body:not(.studio-page) .home-ascension-quote .section-kicker,
body:not(.studio-page) .home-ascension-shift-heading .section-kicker {
  font-size: 1.02rem;
}

body:not(.studio-page) .home-ascension-lede p,
body:not(.studio-page) .home-ascension-card p,
body:not(.studio-page) .home-ascension-shift-card p {
  font-size: 1.05rem;
  line-height: 1.7;
}

body:not(.studio-page) .home-ascension-shift-heading {
  display: flex;
  flex-direction: column;
}

body:not(.studio-page) .home-ascension-shift-image {
  width: min(100%, 190px);
  margin: 2.5rem auto 0;
  aspect-ratio: 3 / 4;
}

body:not(.studio-page) .home-ascension-shift-image img {
  border-radius: 52% 48% 58% 42% / 42% 56% 44% 58%;
}

body:not(.studio-page) .home-ascension-tools {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(220px, .62fr);
  gap: 4vw;
  align-items: center;
  margin-top: 5rem;
  padding: clamp(2rem, 5vw, 4.7rem);
  border: 1px solid rgba(116, 87, 193, .16);
  border-radius: 34px 76px 34px 76px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .92), rgba(238, 233, 255, .92) 58%, rgba(218, 246, 241, .88));
  box-shadow: 0 24px 68px rgba(41, 30, 94, .1);
}

body:not(.studio-page) .home-ascension-tools-copy h3 {
  margin: 0 0 1.25rem;
  color: var(--site-ink);
  font: 400 clamp(2rem, 3.4vw, 3.7rem) / 1 var(--serif);
  letter-spacing: -.045em;
}

body:not(.studio-page) .home-ascension-tools-copy > p:not(.section-kicker) {
  max-width: 760px;
  margin: 0 0 1rem;
  color: var(--site-muted);
  font-size: 1.02rem;
  line-height: 1.7;
}

body:not(.studio-page) .home-ascension-tools-links {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
  margin-top: 1.75rem;
}

body:not(.studio-page) .home-ascension-tools-image {
  justify-self: center;
  width: min(100%, 270px);
  aspect-ratio: 1;
}

body:not(.studio-page) .home-ascension-tools-image img {
  border-radius: 56% 44% 48% 52% / 48% 56% 44% 52%;
}

body:not(.studio-page) .home-not-lost-image {
  width: min(100%, 330px);
  aspect-ratio: 4 / 3;
  margin-top: 2rem;
}

body:not(.studio-page) .home-not-lost-image img {
  border-radius: 30px 82px 30px 82px;
}

@media (max-width: 760px) {
  body:not(.studio-page) .home-ascension-quote-intro,
  body:not(.studio-page) .home-ascension-tools {
    grid-template-columns: 1fr;
  }

  body:not(.studio-page) .home-ascension-quote-image {
    width: min(72vw, 280px);
  }

  body:not(.studio-page) .home-ascension-tools-image {
    width: min(72vw, 250px);
  }
}

/* Reading guides share the image-led rhythm of the course and session pages. */
.guide-hero{position:relative;overflow:hidden;padding:clamp(8rem,12vw,11rem) 0 clamp(5rem,8vw,8rem);background:radial-gradient(circle at 78% 17%,#6752aa,#25275b 48%,#101b34);color:#fff}
.guide-hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,42%);gap:clamp(2rem,6vw,7rem);align-items:center}
.guide-hero-copy .section-kicker{color:#9ff2ed;font-size:.9rem}
.guide-hero h1{margin:.7rem 0 1.4rem;font:400 clamp(3.4rem,6.8vw,7rem)/.98 var(--serif);letter-spacing:-.055em}
.guide-hero-deck{max-width:32rem;color:#e5e4f6;font:400 clamp(1.2rem,1.9vw,1.5rem)/1.5 var(--sans)}
.guide-hero .button{margin-top:1.5rem}
.guide-hero-art{position:relative;aspect-ratio:1.08;border-radius:46% 54% 36% 64%/46% 38% 62% 54%;padding:1rem;background:linear-gradient(140deg,#beb6ec,#72d4d2);box-shadow:0 35px 85px #080c2970}
.guide-hero-art img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.guide-hero-art span{position:absolute;right:-.7rem;bottom:1rem;display:grid;place-items:center;width:4rem;aspect-ratio:1;border-radius:50%;background:#292065;color:#9ff2ed;font-size:1.7rem}
.guide-opening{padding:clamp(5rem,8vw,8rem) 0;background:#fff}
.guide-opening-inner{display:grid;grid-template-columns:minmax(0,41%) minmax(0,1fr);gap:clamp(2.5rem,7vw,8rem);align-items:center}
.guide-opening-art{min-height:380px;aspect-ratio:1.15;padding:1rem;border-radius:44px 110px 44px 110px;background:linear-gradient(135deg,#e9e3ff,#d8f6f3)}
.guide-opening-art img{display:block;width:100%;height:100%;object-fit:cover;border-radius:34px 98px 34px 98px}
.guide-opening-copy{padding:clamp(1.5rem,3vw,3rem);border-left:3px solid #6d57bd;background:linear-gradient(110deg,#f8f5ff,#fff)}
.guide-opening-copy p:not(.section-kicker){font:400 clamp(1.1rem,1.5vw,1.3rem)/1.7 var(--sans);color:#49445e}
.guide-opening-copy .section-kicker,.guide-library .section-kicker,.guide-recordings .section-kicker{font-size:.9rem}
.guide-library{padding:clamp(5rem,8vw,8rem) 0;background:linear-gradient(145deg,#f3efff,#fbfcff 55%,#e5f7f5)}
.guide-library-heading{margin-bottom:2.8rem}
.guide-library-heading h2{margin:.6rem 0 0;color:#211d39;font:400 clamp(3rem,5vw,5.2rem)/1 var(--serif);letter-spacing:-.05em}
.guide-card .transition-resource-image{height:clamp(210px,20vw,290px)}
.guide-card .transition-resource-copy p{flex:1}
.guide-recordings{padding:clamp(5rem,8vw,8rem) 0;background:#fff}
.guide-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.guide-video{padding:1rem;border:1px solid #d9d3ed;border-radius:28px;background:linear-gradient(145deg,#f9f7ff,#edf8f8)}
.guide-video p{margin:0!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;color:#211d39;font:500 1.1rem/1.5 var(--sans)}
.guide-video iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;margin:0 0 .8rem;border:0;border-radius:18px}
.guide-feature{padding:clamp(4rem,7vw,7rem) 0;background:linear-gradient(160deg,#f5f1ff,#fff 50%,#e8f7f4)}
.guide-feature-copy{max-width:1000px;margin:auto;padding:clamp(2rem,5vw,5rem);border:1px solid #dcd4f1;border-radius:40px;background:#fff;box-shadow:0 28px 70px #25205b16;color:#48435b;font:400 1.2rem/1.7 var(--sans)}
.guide-feature-copy h2{font:400 clamp(2.3rem,4vw,4rem)/1.1 var(--serif);color:#211d39}
.guide-feature-copy img{max-width:min(100%,450px);width:auto;height:auto;margin:1rem auto;border-radius:26px}
.guide-feature-copy iframe{max-width:100%;width:min(100%,760px);height:auto;aspect-ratio:16/9}

/* Homepage opening only. The latest-writing cards and later sections are untouched. */
body.home-page .home-ascension{background:linear-gradient(180deg,#f2efff 0%,#fff 36%,#e7f5f4 70%,#fff 100%)}
body.home-page .home-ascension-quote{grid-template-columns:minmax(0,1fr) minmax(330px,44%);gap:clamp(2rem,5vw,6rem);align-items:center;padding:clamp(2rem,5vw,5rem);border:1px solid #dcd4f1;border-radius:44px;background:linear-gradient(140deg,#fff,#f4f0ff 55%,#e1f5f4);box-shadow:0 24px 70px #25205b16}
body.home-page .home-ascension-quote-image{width:100%;aspect-ratio:4/5}
body.home-page .home-ascension-quote-image img{border-radius:38px 100px 38px 100px}
body.home-page .home-ascension-quote-intro{grid-template-columns:1fr;gap:1rem}
body.home-page .home-ascension-heading{margin-top:clamp(5rem,8vw,8rem)}
body.home-page .home-ascension-heading-card{border-radius:40px 100px 40px 100px;background:linear-gradient(145deg,#fff,#eaf8f6)}
body.home-page .home-ascension-shift{border-radius:46px;background:linear-gradient(135deg,#25245e,#151e3d 75%,#195367)}
body.home-page .home-ascension-shift-image{width:min(100%,310px);aspect-ratio:1.05;margin:2rem auto 0}
body.home-page .home-ascension-shift-image img{border-radius:32px 80px 32px 80px}
body.home-page .home-ascension-tools{grid-template-columns:minmax(0,1fr) minmax(300px,43%);border-radius:42px;background:linear-gradient(140deg,#fff,#f3efff 55%,#e6f8f5)}
body.home-page .home-ascension-tools-image{width:100%;aspect-ratio:4/5}
body.home-page .home-ascension-tools-image img{border-radius:38px 95px 38px 95px}
body.home-page #start{padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,8vw,8rem)}
body.home-page #start .intro-grid{align-items:center}
body.home-page #start .home-not-lost-image{width:100%;max-width:430px;aspect-ratio:1.15;margin:0}
body.home-page #start .home-not-lost-image img{border-radius:38px 95px 38px 95px}
@media(max-width:850px){.guide-hero-inner,.guide-opening-inner,.guide-video-grid,body.home-page .home-ascension-quote,body.home-page .home-ascension-tools{grid-template-columns:1fr}.guide-hero-art{max-width:520px}.guide-opening-art{min-height:300px}body.home-page .home-ascension-quote-image,body.home-page .home-ascension-tools-image{width:min(100%,500px);aspect-ratio:1.2}}

/* Shared editorial labels are readable without changing paragraph typography. */
body:not(.studio-page) .section-kicker,
body:not(.studio-page) .eyebrow,
body:not(.studio-page) .article-meta,
body:not(.studio-page) .imported-date{font-size:.875rem}
body.home-page .home-ascension-heading-card .section-kicker,
body.home-page .home-ascension-quote .section-kicker,
body.home-page .home-ascension-shift-heading .section-kicker{font-size:1.17rem}
.guide-hero-copy .section-kicker,
.guide-opening-copy .section-kicker,
.guide-library .section-kicker,
.guide-recordings .section-kicker{font-size:1.05rem}

/* Homepage images use the inset and offset frame from the course artwork. */
body.home-page .home-ascension-quote-image,
body.home-page .home-ascension-welcome-image,
body.home-page .home-ascension-shift-image,
body.home-page .home-ascension-tools-image,
body.home-page #start .home-not-lost-image{position:relative;isolation:isolate;padding:14px;border-radius:40px 94px 40px 94px;background:linear-gradient(140deg,#eae4ff,#d3f4f1);box-shadow:0 24px 65px #211d541f}
body.home-page .home-ascension-quote-image::before,
body.home-page .home-ascension-welcome-image::before,
body.home-page .home-ascension-shift-image::before,
body.home-page .home-ascension-tools-image::before,
body.home-page #start .home-not-lost-image::before{content:"";position:absolute;inset:-13px 22px 25px -13px;border:1px solid #b5a7dd;border-radius:inherit;pointer-events:none;z-index:-1;transform:none}
body.home-page .home-ascension-quote-image::after{display:none}
body.home-page .home-ascension-quote-image img,
body.home-page .home-ascension-welcome-image img,
body.home-page .home-ascension-shift-image img,
body.home-page .home-ascension-tools-image img,
body.home-page #start .home-not-lost-image img{display:block;width:100%;height:100%;object-fit:cover;border-radius:30px 80px 30px 80px;box-shadow:none}
body.home-page .home-ascension-quote-image{width:min(100%,420px);aspect-ratio:1.12;justify-self:center}
body.home-page .home-ascension-welcome-image{width:100%;aspect-ratio:1.7;margin:2rem 0 0}
body.home-page .home-ascension-welcome-image img{object-position:center}
body.home-page .home-ascension-shift-image{width:100%;aspect-ratio:1.25;margin:2.7rem auto 0;background:linear-gradient(140deg,#514491,#32878b)}
body.home-page .home-ascension-shift-image img{object-fit:contain;background:#161b32}
body.home-page .home-ascension-shift-image::before{border-color:#83cdcb}
body.home-page .home-ascension-tools-image{width:100%;aspect-ratio:1.15}
body.home-page #start .home-not-lost-image{width:100%;max-width:430px;aspect-ratio:1.15}
@media(max-width:760px){body.home-page .home-ascension-quote-image,body.home-page .home-ascension-tools-image{width:min(100%,460px)}body.home-page .home-ascension-welcome-image{aspect-ratio:1.45}}

/* The opening follows the course pages' staggered art and ruled copy. */
body.home-page .home-ascension{padding-top:clamp(4rem,7vw,7rem);padding-bottom:clamp(4rem,7vw,7rem);background:linear-gradient(180deg,#f7f4ff,#fff 45%,#edf9f7)}
body.home-page .home-ascension-inner{width:min(1320px,100%)}
body.home-page .home-ascension-quote{grid-template-columns:minmax(0,1fr) minmax(0,43%);gap:clamp(2.5rem,6vw,7rem);background:#fff}
body.home-page .home-ascension-quote-copy{padding:clamp(1rem,2.5vw,2.5rem) 0;border-top:1px solid #b7aee0;border-bottom:1px solid #b7aee0}
body.home-page .home-ascension-quote-intro{margin-top:1.5rem}
body.home-page .home-ascension-heading{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,5vw,5rem);align-items:center;margin:clamp(4rem,7vw,7rem) 0}
body.home-page .home-ascension-heading-card{grid-column:1/-1;padding:0;border:0;background:none;box-shadow:none;text-align:center}
body.home-page .home-ascension-heading-card .section-kicker{font-size:1.25rem}
body.home-page .home-ascension-heading h2{max-width:1050px;margin:.75rem auto 0;font-size:clamp(3.4rem,6vw,6.6rem);line-height:.97}
body.home-page .home-ascension-welcome-image{grid-column:1;grid-row:2;width:100%;aspect-ratio:1.42;margin:0}
body.home-page .home-ascension-lede{grid-column:2;grid-row:2;padding:clamp(1.5rem,3vw,3rem);border:0;border-top:1px solid #b7aee0;border-bottom:1px solid #b7aee0}
body.home-page .home-ascension-lede p{font-size:clamp(1.25rem,1.9vw,1.65rem);line-height:1.55}
body.home-page .home-editorial-scene{display:grid;grid-template-columns:minmax(0,43%) minmax(0,1fr);gap:clamp(2.5rem,6vw,7rem);align-items:center;margin:clamp(2rem,4vw,4rem) 0;padding:clamp(2rem,4vw,4.5rem);border-radius:44px 95px 44px 95px;background:#fff;box-shadow:0 22px 66px #241e5817}
body.home-page .home-editorial-scene.home-editorial-blue{background:linear-gradient(135deg,#26235d,#151f3c 72%,#1c5564);color:#fff}
body.home-page .home-editorial-scene.home-editorial-reverse{grid-template-columns:minmax(0,1fr) minmax(0,43%)}
body.home-page .home-editorial-reverse .home-editorial-image{grid-column:2;grid-row:1}
body.home-page .home-editorial-reverse .home-editorial-copy{grid-column:1;grid-row:1}
body.home-page .home-editorial-image{position:relative;isolation:isolate;min-height:350px;height:clamp(350px,36vw,560px);margin:0;padding:15px;border-radius:45% 45% 34px 34px;background:linear-gradient(140deg,#eee9ff,#d4f5f2);box-shadow:0 24px 70px #211d5421}
body.home-page .home-editorial-image::before{content:"";position:absolute;inset:-16px 20px 24px -16px;border:1px solid #b5a7dd;border-radius:inherit;z-index:-1}
body.home-page .home-editorial-image img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
body.home-page .home-editorial-shift .home-editorial-image img{object-fit:cover;object-position:center;background:#131932}
body.home-page .home-editorial-copy{padding:clamp(1.5rem,3vw,3rem) 0;border-top:1px solid #b7aee0;border-bottom:1px solid #b7aee0}
body.home-page .home-editorial-blue .home-editorial-copy{border-color:#c9dafb6b}
body.home-page .home-editorial-copy h3{margin:.5rem 0 1.6rem;color:#211d39;font:400 clamp(2.5rem,4.2vw,4.8rem)/1.04 var(--serif);letter-spacing:-.05em}
body.home-page .home-editorial-blue .home-editorial-copy h3{color:#fff}
body.home-page .home-editorial-copy p:not(.section-kicker){margin:0 0 1.25rem;color:#49445e;font:400 clamp(1.05rem,1.35vw,1.22rem)/1.72 var(--sans)}
body.home-page .home-editorial-blue .home-editorial-copy p:not(.section-kicker){color:#f1effc}
body.home-page .home-editorial-copy p:last-child{margin-bottom:0}
body.home-page .home-editorial-blue .section-kicker{color:#a4f1eb}
body.home-page .home-ascension-tools-copy{padding:clamp(1.5rem,3vw,3rem) 0;border-top:1px solid #b7aee0;border-bottom:1px solid #b7aee0}
body.home-page .home-ascension-tools-copy .section-kicker{display:none}
body.home-page .home-ascension-tools{margin-top:clamp(3rem,6vw,6rem)}
body.home-page #start{max-width:1320px}
body.home-page #start>.section-kicker{text-align:center}
body.home-page #start .intro-grid{display:grid;grid-template-columns:minmax(0,43%) minmax(0,1fr);gap:0 clamp(2.5rem,6vw,7rem);align-items:center}
body.home-page #start .home-not-lost-image{grid-column:1;grid-row:1/3;max-width:none;height:clamp(350px,35vw,530px);aspect-ratio:auto}
body.home-page #start .intro-grid h2{grid-column:2;grid-row:1;align-self:end}
body.home-page #start .intro-grid>div{grid-column:2;grid-row:2;align-self:start;padding:1.5rem 0;border-top:1px solid #b7aee0;border-bottom:1px solid #b7aee0}
@media(max-width:850px){body.home-page .home-ascension-quote,body.home-page .home-ascension-heading,body.home-page .home-editorial-scene,body.home-page .home-editorial-scene.home-editorial-reverse,body.home-page #start .intro-grid{grid-template-columns:1fr}body.home-page .home-ascension-heading-card,body.home-page .home-ascension-welcome-image,body.home-page .home-ascension-lede,body.home-page .home-editorial-reverse .home-editorial-image,body.home-page .home-editorial-reverse .home-editorial-copy,body.home-page #start .home-not-lost-image,body.home-page #start .intro-grid h2,body.home-page #start .intro-grid>div{grid-column:1;grid-row:auto}body.home-page .home-editorial-image{height:clamp(300px,60vw,460px);min-height:0}body.home-page #start .intro-grid h2{margin-top:2rem}}

/* Keep the next homepage chapter close to the preceding panel. */
body.home-page .home-ascension{padding-bottom:clamp(1.5rem,2.5vw,2.5rem)}
body.home-page #start{padding-top:clamp(1.75rem,3vw,3rem)}
@media(max-width:760px){body.home-page .home-ascension{padding-bottom:1.5rem}body.home-page #start{padding-top:2rem}}

/* Library destinations use the same framed, ruled scenes as session pages. */
body.guide-page .guide-hero{padding-bottom:clamp(4rem,6vw,6rem)}
body.guide-page .guide-scene:first-of-type{padding-top:clamp(4rem,6vw,6rem)}
body.guide-page .guide-library{background:linear-gradient(145deg,#f5f2ff,#fff 55%,#e9f8f5)}
body.guide-page .guide-card{border:1px solid #dcd4f1;border-radius:30px;background:#fff;box-shadow:0 18px 48px #25205b12}
body.guide-page .guide-card .transition-resource-image{height:clamp(220px,24vw,330px)}
body.guide-page .guide-card .transition-resource-image img{object-fit:cover}

/* Keep the three homepage actions together and the journey links uniform. */
body.home-page .hero-actions{gap:1rem 1.35rem}
body.home-page .hero-actions .button,body.home-page .hero-actions .text-link{white-space:nowrap}
body.home-page .home-ascension-tools-links{display:grid;grid-template-columns:1fr;gap:.7rem;max-width:520px}
body.home-page .home-ascension-tools-links .button{width:100%;justify-content:space-between;border:1px solid #111;background:#fff;box-shadow:none}
body.home-page .home-ascension-tools-links .button:hover{transform:none;background:#f7f4ff}
@media(max-width:760px){body.home-page .hero-actions{gap:.8rem 1rem}body.home-page .hero-actions .button,body.home-page .hero-actions .text-link{white-space:normal}}

/* Restore the session headlines; emphasize the purple session labels instead. */
body.service-page .service-detail .detail-title .service-name{margin:0 0 1.1rem!important;color:#9b7cff!important;font:800 clamp(2rem,2.7vw,2.35rem)/1.05 var(--sans)!important;letter-spacing:.08em!important;text-transform:uppercase!important}
