@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap');

/* Smooth anchors */
html {
  scroll-behavior: smooth;
}

/* Footer title never wraps */
.g-footer-title {
  white-space: nowrap;
  margin-bottom: 1.5rem;
}

/* Heroes fill the visible viewport on every template */

/* Post hero image (post pages use a different wrapper) */
.g-post-header__image {
  height: 100vh;
}
.g-post-header__image figure {
  height: 100%;
  margin: 0;
}
.g-post-header__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Default header (homepage): fast reappear, slow disappear */
body.home-template .g-header {
  transition: opacity 1.2s ease, transform 0.4s ease;
}
/* Hide header + hero content during fissure — JS reveals them */
body.home-template.sp-fissure-active .g-header {
  opacity: 0 !important;
  pointer-events: none;
}
body.home-template.sp-fissure-active .sp-hero .g-home-slide__content {
  opacity: 0 !important;
}
/* Smooth fade-in when fissure ends */
.sp-hero .g-home-slide__content {
  transition: opacity 1.2s ease;
}
body.home-template .g-header.is-gone {
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity 1.2s ease, transform 1.2s ease;
}

/* Homepage header and links = white */
/*body.home-template .g-header,
body.home-template .g-header a,
body.home-template .g-menu,
body.home-template .g-search {
  color: #fff !important; 
}*/

/* Center logo text + slightly bigger */
.g-header .g-logo {
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 0 auto;
  display: inline-block;
  font-size: 1.12em;
}

/* Homepage hero content — fast reappear, slow disappear */
.sp-hero {
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.sp-hero.is-gone {
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 1.2s ease, transform 1.2s ease;
}

.sp-brand-left {
  display: grid;
  align-content: center;
  height: 100vh;
  transform: translateY(-6vh);
}
.sp-aman {
  margin: 0 0 0.15rem clamp(1.25rem, 7vw, 8rem);
  font-size: clamp(2.2rem, 5vw, 4rem);
  line-height: 1.05;
  opacity: 0.82; /* less faded */
  color: #e9dcc6;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
.sp-brand-left .g-home-slide__title {
  text-align: left;
  font-size: clamp(2.2rem, 5vw, 4rem);
  margin-left: clamp(1.25rem, 7vw, 8rem);
  line-height: 1.05;
  color: #e9dcc6;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.35);
}

/* (social icon styles moved to identity section below) */

/* (old scroll cue base styles removed — see katabasis lightning block below) */

/* Sticky section nav (after scroll) — dark frosted, WHITE text, no wrap, horizontal */
#sp-sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.75rem, 3vw, 2rem);
  padding: 0.6rem 1rem;
  z-index: 50;
  color: #e9dcc6;
  background: linear-gradient(
    to bottom,
    rgba(20, 20, 24, 0.55),
    rgba(20, 20, 24, 0.25)
  );
  backdrop-filter: blur(8px) saturate(120%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  white-space: nowrap;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.6s ease, transform 0.6s ease; /* slower */
  pointer-events: none;
}
#sp-sticky.is-visible {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}
#sp-sticky a {
  text-decoration: none;
  color: inherit;
  padding: 0.4rem 0.2rem;
  line-height: 1.1;
}
#sp-sticky .sp-logo {
  font-weight: 700;
  font-size: 1.12em;
} /* slightly larger center */

/* Sections: full viewport, JS controls opacity via scroll position */
.sp-section {
  position: relative;
  min-height: 100vh;
  display: grid;
  align-items: center;
  opacity: 0;
  transition: opacity 0.6s ease;
}

.sp-section .sp-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(105%);
  transition: opacity 1.1s ease, transform 1.1s ease, filter 1.1s ease; /* slower */
}
.sp-section .sp-content {
  position: relative;
  max-width: 64ch;
  margin-left: clamp(1.25rem, 7vw, 8rem);
  padding: 1rem 0;
  color: #e9dcc6;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.55);
  /*background: color-mix(in srgb, transparent 92%, white); */
  /*border-radius: 0.25rem; */
}
.sp-section h2 {
  margin: 0 0 0.5rem;
  font-size: clamp(1.5rem, 3.5vw, 2.2rem);
}
.sp-section p {
  margin: 0 0 1rem;
}
.sp-btn {
  display: inline-block;
  text-decoration: none;
  padding: 0.6rem 0.9rem;
  border: 1px solid currentColor;
  border-radius: 0.35rem;
}

/* Tiny screens */
@media (max-width: 36rem) {
  #sp-sticky {
    font-size: 0.95rem;
    gap: 0.75rem;
  }
  .sp-section .sp-content {
    margin-left: 1rem;
    margin-right: 1rem;
  }
}
/* ========== SP HOMEPAGE OVERRIDES (REPLACED) ========== */

/* Easy knobs (change these to adjust size/position/muting) */
:root {
  /* Identity + cue sizes/opacity */
  --sp-identity-size: clamp(
    2.2rem,
    4.2vw,
    3.2rem
  ); /* Aman size; socials/cue follow this */
  --sp-identity-opacity: 0.82; /* translucence for Aman + icons + Katabasis */

  /* Social icon fine-tuning */
  --sp-icon-scale: 0.75; /* 0.75 = 25% smaller than Aman */
  --sp-icon-baseline-shift: 0.06em; /* nudges icons down to sit on text baseline */

  /* Hero block placement (nudge up/left) */
  --sp-hero-left: clamp(
    0.75rem,
    6vw,
    6rem
  ); /* left margin for hero text block */
  --sp-hero-offset-x: -3vw; /* negative = nudge left, positive = right */
  --sp-hero-offset-y: -12vh; /* negative = up, positive = down */

  /* Fade timings */
  --sp-hero-content-fade-duration: 1.4s; /* Aman/Some Psychagogue fade */
  --sp-hero-bg-fade-duration: 3.4s; /* hero background image fade (slower) */

  /* Section image muting (stronger by default) */
  --sp-section-image-opacity: 0.9; /* 0 (invisible) … 1 (fully opaque) */
  --sp-section-image-filter: saturate(95%) brightness(0.99) contrast(0.99);

  /* Safe-area padding for mobile bottom insets (iOS) */
  --sp-safe-bottom: env(safe-area-inset-bottom, 0px);
}

/* Position the hero block (up & left) */
.sp-brand-left {
  align-content: center;
  height: 100vh;
  transform: translate(var(--sp-hero-offset-x), var(--sp-hero-offset-y));
}

/* Identity row: Aman + socials on one line, vertically centered */
.sp-identity {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-left: var(--sp-hero-left);
  font-size: var(--sp-identity-size);
}

.sp-socials {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0;
}

.sp-aman {
  margin: 0;
  font-size: 1em; /* follows --sp-identity-size */
  line-height: 1.05;
  color: #e9dcc6;
  opacity: var(--sp-identity-opacity);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

/* Socials beside Aman — styles in .sp-identity block above */
.sp-socials a {
  color: #e9dcc6;
  opacity: var(--sp-identity-opacity);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}
/* All icons: identical box, no exceptions */
.sp-icon {
  width: calc(1em * var(--sp-icon-scale));
  height: calc(1em * var(--sp-icon-scale));
  display: block;
  flex-shrink: 0;
}

/* Main title (Some Psychagogue) */
.sp-brand-left .g-home-slide__title {
  margin-left: var(--sp-hero-left);
  margin-top: 0.2rem;
  color: #cdae7a;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.35);
  font-size: clamp(2.2rem, 4.2vw, 3.2rem);
  white-space: nowrap;
  line-height: 1.05;
}

/* Mobile: prevent title line break, slightly smaller identity */
@media (max-width: 30rem) {
  :root {
    --sp-identity-size: 1.8rem;
    --sp-hero-offset-x: -1.5vw;
    --sp-hero-offset-y: -11vh;
  }
  .sp-brand-left .g-home-slide__title {
    font-size: 1.4rem;
  }
}

/* ═══════════════════════════════════════════════════════════════
   KATABASIS — Lightning Strike Effect
   Slow breathe → sudden bright crack → settle back.
   The word feels charged, alive, barely contained.
   ═══════════════════════════════════════════════════════════════ */

.sp-scroll-cue {
  position: fixed;
  left: 50%;
  bottom: calc(1.3rem + var(--sp-safe-bottom));
  transform: translateX(-50%);
  font-size: var(--sp-identity-size);
  letter-spacing: 0.12em;
  color: #e9dcc6;
  text-decoration: none;
  z-index: 60;
  white-space: nowrap;
  cursor: pointer;

  /* Base glow — warm embers */
  text-shadow:
    0 0 8px rgba(205, 174, 122, 0.3),
    0 0 20px rgba(205, 174, 122, 0.1);

  /* Breathing + strike animations run always; JS controls visibility */
  animation: sp-breathe 4s ease-in-out infinite,
             sp-strike 7s ease-in-out infinite;
  transition: opacity 1.2s ease;
}

.sp-scroll-cue.is-hidden {
  opacity: 0 !important;
  pointer-events: none;
  transform: translate(-50%, 8px) scale(0.98);
}

/* ── Flanking glyphs: alchemical water triangles ─────────── */
.sp-scroll-cue::before,
.sp-scroll-cue::after {
  content: "🜄";
  display: inline-block;
  margin: 0 0.4rem;
  font-size: 0.5em;
  opacity: 0.45;
  vertical-align: middle;
  animation: sp-glyph-flicker 7s ease-in-out infinite;
}
.sp-scroll-cue::after {
  animation-delay: 0.08s;
}

/* ── Breathe: slow opacity + scale pulse ─────────────────── */
@keyframes sp-breathe {
  0%, 100% {
    transform: translateX(-50%) scale(1);
    filter: brightness(0.85);
  }
  50% {
    transform: translateX(-50%) scale(1.02);
    filter: brightness(1.1);
  }
}

/* ── Strike: sudden bright flash, then settle ────────────── */
/* Fires once per 7s cycle. The strike occupies ~8% of the cycle
   (~0.56s) — brief, violent, then gone. */
@keyframes sp-strike {
  0%, 85%, 100% {
    color: #e9dcc6;
    text-shadow:
      0 0 8px rgba(205, 174, 122, 0.3),
      0 0 20px rgba(205, 174, 122, 0.1);
    filter: brightness(1);
  }
  /* Build — charge gathers */
  89% {
    color: #e9dcc6;
    text-shadow:
      0 0 12px rgba(205, 174, 122, 0.5),
      0 0 30px rgba(205, 174, 122, 0.2);
    filter: brightness(1.1);
  }
  /* CRACK — the strike */
  91% {
    color: #fff;
    text-shadow:
      0 0 4px rgba(255, 255, 255, 0.95),
      0 0 15px rgba(205, 174, 122, 0.9),
      0 0 40px rgba(205, 174, 122, 0.6),
      0 0 80px rgba(196, 107, 74, 0.3),
      0 1px 0 rgba(0, 0, 0, 0.4);
    filter: brightness(1.6);
  }
  /* Afterglow — hot, fading */
  93% {
    color: #cdae7a;
    text-shadow:
      0 0 10px rgba(205, 174, 122, 0.7),
      0 0 35px rgba(205, 174, 122, 0.35),
      0 0 60px rgba(196, 107, 74, 0.15);
    filter: brightness(1.2);
  }
  /* Cool down */
  96% {
    color: #e9dcc6;
    text-shadow:
      0 0 8px rgba(205, 174, 122, 0.35),
      0 0 20px rgba(205, 174, 122, 0.12);
    filter: brightness(1);
  }
}

/* ── Glyph flicker: flash gold + nudge down during strike ── */
@keyframes sp-glyph-flicker {
  0%, 85%, 100% {
    opacity: 0.45;
    filter: brightness(1);
    color: inherit;
    transform: translateY(0);
  }
  /* Charge — glyphs wake up */
  89% {
    opacity: 0.65;
    color: #cdae7a;
    transform: translateY(1px);
  }
  /* Strike — bright gold, drop down */
  91% {
    opacity: 1;
    filter: brightness(2.2);
    color: #cdae7a;
    transform: translateY(4px);
  }
  /* Afterglow — still pointing down */
  93% {
    opacity: 0.85;
    filter: brightness(1.4);
    color: #cdae7a;
    transform: translateY(3px);
  }
  /* Settle back */
  96% {
    opacity: 0.45;
    filter: brightness(1);
    color: inherit;
    transform: translateY(0);
  }
}

/* Hero inner elements: fast reappear, slow disappear */
.sp-hero .g-home-slide__content {
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.sp-hero.is-gone .g-home-slide__content {
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity var(--sp-hero-content-fade-duration) ease,
    transform var(--sp-hero-content-fade-duration) ease;
}
.sp-hero .g-hero-image {
  opacity: 1;
  transition: opacity 0.5s ease;
}
.sp-hero.is-gone .g-hero-image {
  opacity: 0;
  transition: opacity var(--sp-hero-bg-fade-duration) ease;
}

/* Muted section images (and where to tweak them) */
.sp-section .sp-bg {
  opacity: var(--sp-section-image-opacity);
  filter: var(--sp-section-image-filter);
}

/* Per-section fine-tuning (optional) — uncomment & adjust:*/
/*signal .sp-bg {
  opacity: 0.3;
  filter: saturate(75%) brightness(0.7) contrast(0.88);
}
#map .sp-bg {
  opacity: 0.3;
  filter: saturate(75%) brightness(0.7) contrast(0.88);
}
#path .sp-bg {
  opacity: 0.3;
  filter: saturate(75%) brightness(0.7) contrast(0.88);
}
#train .sp-bg {
  opacity: 0.3;
  filter: saturate(75%) brightness(0.7) contrast(0.88);
}*/

/* === Light/Dark logo color (header) === */
:root {
  --sp-logo-color: rgb(25, 24, 24);
} /* Light mode default = black */
@media (prefers-color-scheme: dark) {
  :root {
    --sp-logo-color: rgb(218, 218, 218);
  } /* Dark mode = white */
}

/* Apply to the center logo text (ψυχαγωγός) in the header */
.g-header .g-logo {
  color: var(--sp-logo-color) !important;
}
header.g-header .g-logo {
  color: var(--sp-logo-color) !important;
}
/* ═══════════════════════════════════════════════════════════════
   TEMPLE STORM — Universal color palette
   Override the theme's CSS custom properties so EVERYTHING
   inherits the palette: search, posts, tags, cards, drawers, etc.
   ═══════════════════════════════════════════════════════════════ */

/* ── Dark mode (default) ─────────────────────────────────── */
:root {
  color-scheme: dark;

  /* Core palette */
  --foreground: #e9dcc6;               /* parchment — all body text */
  --background: #171311;               /* warm brown-black */
  --header-background: rgba(23, 19, 17, 0.5);
  --gradient-card-background: rgba(23, 19, 17, 0);
  --light-background: #1e1a17;         /* slightly lighter brown */
  --light-secondary-background: #120f0d;
  --dark-background: #0a0908;
  --color-on-dark: #e9dcc6;            /* text on dark surfaces */
  --accent-color: #cdae7a;             /* gold */
  --border: rgba(205, 174, 122, 0.15); /* subtle gold border */
  --border-on-dark: rgba(205, 174, 122, 0.1);
  --light-text: #9a8ba3;              /* muted purple for secondary text */
  --focus: #458c8c;                    /* teal */
  --success: #458c8c;                  /* teal */
  --error: #c46b4a;                    /* rust */
  --display-light-logo: none;
  --display-dark-logo: inline-block;

  /* SP custom vars */
  --sp-logo-color: #e9dcc6;
  --sp-nav-fg: #e9dcc6;
  --sp-bg: #171311;
}

/* Force dark mode variables too */
[theme-mode="dark"] {
  --foreground: #e9dcc6;
  --background: #171311;
  --header-background: rgba(23, 19, 17, 0.5);
  --gradient-card-background: rgba(23, 19, 17, 0);
  --light-background: #1e1a17;
  --light-secondary-background: #120f0d;
  --dark-background: #0a0908;
  --color-on-dark: #e9dcc6;
  --accent-color: #cdae7a;
  --border: rgba(205, 174, 122, 0.15);
  --border-on-dark: rgba(205, 174, 122, 0.1);
  --light-text: #9a8ba3;
  --display-light-logo: none;
  --display-dark-logo: inline-block;
}

/* ── Light mode ──────────────────────────────────────────── */
[theme-mode="light"] {
  --foreground: #171311;               /* brown-black text */
  --background: #e9dcc6;               /* parchment background */
  --header-background: rgba(233, 220, 198, 0.5);
  --gradient-card-background: rgba(233, 220, 198, 0);
  --light-background: #d9cbad;
  --light-secondary-background: #f0e6d4;
  --dark-background: #171311;
  --color-on-dark: #e9dcc6;
  --accent-color: #c46b4a;             /* rust accent in light mode */
  --border: rgba(23, 19, 17, 0.12);
  --border-on-dark: rgba(23, 19, 17, 0.08);
  --light-text: #9a8ba3;
  --display-light-logo: inline-block;
  --display-dark-logo: none;
}

/* Base background/text */
html,
body {
  background: var(--background);
  color: var(--foreground);
  overflow-x: hidden;
}

/* Muted stone texture as body background — all pages except homepage & path */
body:not(.home-template):not(.page-path) {
  background-color: #171311 !important;
  background-image:
    linear-gradient(rgba(23, 19, 17, 0.93), rgba(23, 19, 17, 0.93)),
    var(--sp-stone-texture, var(--sp-stone-texture-fallback, none)) !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-attachment: fixed !important;
}

/* Universal typography colors — bold, italic, bold-italic, headings */
strong, b {
  color: #c46b4a;
}
em, i {
  color: #9a8ba3;
}
em strong, strong em,
em b, b em,
i strong, strong i,
i b, b i {
  color: #458c8c;
}
h1, h2, h3, h4, h5, h6 {
  color: #cdae7a;
  font-family: 'Sora', sans-serif;
}

/* Alchemical glyphs — inherit parent color, no special treatment */
.sp-glyph {
  color: inherit;
}

/* Links — gold, hover to parchment */
a {
  color: #cdae7a;
}
a:hover {
  color: var(--foreground);
}

/* Cards / post tiles — use palette */
.g-post-card__title {
  color: #cdae7a !important;
}
.g-post-card__excerpt,
.g-post-card__meta {
  color: var(--foreground) !important;
}

/* Search drawer results */
.g-search-recent__title,
.g-search-popular__title {
  color: #cdae7a !important;
}
.g-search-recent a,
.g-search-popular a,
.g-search-tag {
  color: var(--foreground) !important;
}
.g-search-tag:hover {
  color: #cdae7a !important;
}

/* Make content areas transparent so stone texture shows through */
body:not(.home-template):not(.page-path) .g-main-container,
body:not(.home-template):not(.page-path) .g-load-transition__container,
body:not(.home-template):not(.page-path) .g-post-content,
body:not(.home-template):not(.page-path) main,
body:not(.home-template):not(.page-path) article,
body:not(.home-template):not(.page-path) .g-wrapper {
  background: transparent !important;
  background-color: transparent !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
}

/* Ghost editor buttons — match Temple Storm style */
.kg-btn,
.kg-button-card .kg-btn,
.kg-header-card-button,
.kg-product-card-button {
  display: inline-block !important;
  text-decoration: none !important;
  padding: 1.02rem 1.7rem !important;
  font-size: 1.19rem !important;
  font-weight: 600 !important;
  font-family: 'Sora', sans-serif !important;
  line-height: 1.1 !important;
  border: 1px solid #cdae7a !important;
  border-radius: 0.4rem !important;
  background: transparent !important;
  color: #cdae7a !important;
  transition: background 0.3s ease, color 0.3s ease !important;
}
.kg-btn:hover,
.kg-button-card .kg-btn:hover,
.kg-header-card-button:hover,
.kg-product-card-button:hover {
  background: rgba(205, 174, 122, 0.15) !important;
  color: #e9dcc6 !important;
}

/* Blockquotes — same size as body, deep maroon band, warmer fade */
.g-post-content blockquote,
.sp-content blockquote {
  font-size: inherit !important;
  font-weight: inherit !important;
  font-style: normal !important;
  border-left: 3px solid #6b2d3e !important;
  background: rgba(107, 45, 62, 0.08) !important;
  color: var(--foreground) !important;
  opacity: 0.8;
  padding: 1rem 1.5rem;
  margin: 0 0 3.5rem 0;
}
.g-post-content blockquote.kg-blockquote-alt,
.sp-content blockquote.kg-blockquote-alt {
  font-size: inherit !important;
  border-left: 3px solid #6b2d3e !important;
  opacity: 0.8;
}
/* Blockquote paragraphs: no extra bottom margin, normal weight */
.sp-content blockquote p {
  margin-bottom: 0.5rem;
  font-style: normal;
  font-weight: 400;
  font-size: inherit;
}
.sp-content blockquote p:last-child {
  margin-bottom: 0;
}

/* Tag chips / pills */
.g-tag-card,
.g-tag-card__name {
  color: var(--foreground) !important;
}

/* Header text — warm parchment: logo, menu/search buttons, labels, icons */
.g-header .g-logo,
.g-header .g-nav a,
.g-header .g-header-button,
.g-header .g-header-button__label,
.g-header .g-header-button__icon {
  color: #e9dcc6 !important;
}

/* ── Menu drawer: Temple Storm colors ────────────────────── */

/* ── Menu drawer: Temple Storm colors ────────────────────── */

/* Dark mode (default) — brown-black background */
.g-drawer.in-menu .g-drawer__content {
  background: #171311;
}

/* Primary nav — rust */
.sp-nav-primary a {
  color: #c46b4a !important;
  opacity: 1;
}
.sp-nav-primary a:hover {
  color: #e9dcc6 !important;
}

/* Secondary nav — teal */
.sp-nav-secondary a {
  color: #458c8c !important;
  opacity: 0.9;
}
.sp-nav-secondary a:hover {
  color: #e9dcc6 !important;
  opacity: 1;
}

/* Auth nav — parchment, muted */
.sp-nav-auth a {
  color: #e9dcc6 !important;
  opacity: 0.55;
}
.sp-nav-auth a:hover {
  color: #e9dcc6 !important;
  opacity: 1;
}

/* Tertiary nav — purple */
.sp-nav-tertiary a {
  color: #9a8ba3 !important;
  opacity: 0.9;
}
.sp-nav-tertiary a:hover {
  color: #e9dcc6 !important;
  opacity: 1;
}

/* Drawer header/footer/account — parchment */
.g-drawer.in-menu .g-drawer__header,
.g-drawer.in-menu .g-drawer__header a,
.g-drawer.in-menu .g-drawer__header button {
  color: #e9dcc6 !important;
}
.g-drawer.in-menu .g-drawer__footer,
.g-drawer.in-menu .g-drawer__footer a {
  color: #e9dcc6 !important;
}
.g-menu-account,
.g-menu-account a {
  color: #e9dcc6 !important;
}

/* ── Dropdown menus ─────────────────────────────────────── */

/* Force single-column layout with consistent spacing */
.sp-nav-primary > ul,
.sp-nav-secondary > ul,
.sp-nav-tertiary > ul,
.sp-nav-auth > ul {
  flex-direction: column !important;
  gap: 0 !important;
}
.sp-nav-primary > ul > li,
.sp-nav-secondary > ul > li,
.sp-nav-tertiary > ul > li,
.sp-nav-auth > ul > li {
  flex-basis: auto !important;
  width: 100% !important;
  margin-bottom: 1.25rem !important;
}
.sp-nav-primary > ul > li:last-child,
.sp-nav-secondary > ul > li:last-child,
.sp-nav-tertiary > ul > li:last-child,
.sp-nav-auth > ul > li:last-child {
  margin-bottom: 0 !important;
}

/* Parent item: link + chevron side by side */
.sp-menu-parent {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

/* Chevron toggle button */
.sp-menu-chevron {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.8rem;
  height: 1.8rem;
  font-size: 1.2rem;
  color: #e9dcc6;
  opacity: 0.35;
  cursor: pointer;
  transition: transform 0.25s ease, opacity 0.25s ease;
  background: none;
  border: none;
  padding: 0;
}
.sp-menu-chevron:hover {
  opacity: 0.7;
}
.sp-menu-chevron.is-open {
  transform: rotate(90deg);
  opacity: 0.7;
}

/* Dropdown sub-items */
.sp-menu-dropdown {
  list-style: none;
  padding: 0.4rem 0 0.6rem 1.4rem;
  margin: 0;
}
.sp-menu-dropdown li {
  margin-bottom: 0.75rem;
}
.sp-menu-dropdown li:last-child {
  margin-bottom: 0;
}
.sp-menu-dropdown a {
  font-size: 1.15rem !important;
  color: #cdae7a !important;
  opacity: 0.85 !important;
}
.sp-menu-dropdown a:hover {
  opacity: 1 !important;
}
/* Placeholder items (no link yet) */
.sp-menu-placeholder {
  color: #cdae7a;
  opacity: 0.45;
  cursor: default;
  font-size: 1.15rem;
}

/* Muted parentheticals in dropdowns */
.sp-menu-dropdown a em,
.sp-menu-dropdown em {
  font-size: 0.8em;
  opacity: 1;
  color: #9a8ba3 !important;
}

/* ── Light mode menu overrides ──────────────────────────── */

[theme-mode="light"] .g-drawer.in-menu .g-drawer__content {
  background: #e9dcc6;
}
[theme-mode="light"] .sp-nav-primary a {
  color: #171311 !important;
}
[theme-mode="light"] .sp-nav-primary a:hover {
  color: #9a8ba3 !important;
}
[theme-mode="light"] .sp-nav-secondary a {
  color: #6b2d3e !important;
}
[theme-mode="light"] .sp-nav-secondary a:hover {
  color: #171311 !important;
}
[theme-mode="light"] .sp-nav-auth a {
  color: #171311 !important;
  opacity: 0.45;
}
[theme-mode="light"] .sp-nav-tertiary a {
  color: #5a4d63 !important;
}
[theme-mode="light"] .sp-nav-tertiary a:hover {
  color: #171311 !important;
}
[theme-mode="light"] .sp-menu-chevron {
  color: #171311;
}
/* Light mode: dropdown items — darker teal */
[theme-mode="light"] .sp-menu-dropdown a {
  color: #2d6b6b !important;
}
[theme-mode="light"] .sp-menu-dropdown a:hover {
  color: #171311 !important;
}
/* Light mode: placeholder items — darker teal */
[theme-mode="light"] .sp-menu-placeholder {
  color: #2d6b6b;
}
/* Light mode: parentheticals — darker purple */
[theme-mode="light"] .sp-menu-dropdown a em,
[theme-mode="light"] .sp-menu-dropdown em,
[theme-mode="light"] .sp-menu-placeholder em {
  color: #6b5a7c !important;
}
[theme-mode="light"] .g-drawer.in-menu .g-drawer__header,
[theme-mode="light"] .g-drawer.in-menu .g-drawer__header a,
[theme-mode="light"] .g-drawer.in-menu .g-drawer__header button {
  color: #171311 !important;
}
[theme-mode="light"] .g-drawer.in-menu .g-drawer__footer,
[theme-mode="light"] .g-drawer.in-menu .g-drawer__footer a {
  color: #171311 !important;
}
[theme-mode="light"] .g-menu-account,
[theme-mode="light"] .g-menu-account a {
  color: #171311 !important;
}

/* Light theme: header bar */
[theme-mode="light"] .g-header .g-logo,
[theme-mode="light"] .g-header .g-header-button,
[theme-mode="light"] .g-header .g-header-button__label,
[theme-mode="light"] .g-header .g-header-button__icon {
  color: #171311 !important;
}

/* Sticky section nav */
#sp-sticky {
  color: #e9dcc6;
  background: linear-gradient(
    to bottom,
    rgba(20, 20, 24, 0.55),
    rgba(20, 20, 24, 0.25)
  );
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

/* Kill any previous light/dark auto rules
@media (prefers-color-scheme: light) {
  :root {
    --noop: initial;
  }
}
@media (prefers-color-scheme: dark) {
  :root {
    --noop: initial;
  }
}
*/
/* === Section typography & spacing system === */
:root {
  --sp-stack-gap: clamp(
    0.6rem,
    1.6vw,
    1rem
  ); /* default gap between stacked items */
  --sp-stack-gap-tight: clamp(0.35rem, 1vw, 0.6rem);
}

.sp-content {
  color: #e9dcc6;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.55);
  max-width: 68ch; /* a bit wider for multi-paragraph copy */
}

/* Stack layout: adds consistent vertical rhythm between children */
.sp-stack > * + * {
  margin-top: var(--sp-stack-gap);
}

/* Title, lead, note */
.sp-title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.01em;
  margin: 0;
}

.sp-lead {
  font-size: clamp(1.05rem, 1.6vw, 1.2rem);
  line-height: 1.45;
  opacity: 0.95;
  max-width: 60ch;
}

.sp-note {
  font-size: 0.95rem;
  line-height: 1.4;
  opacity: 0.9;
}
/* Headings (Signal, Map, etc.) */
.sp-content h2 {
  font-size: clamp(2.55rem, 5.1vw, 3.4rem); /* was ~2rem → now 50% bigger */
  font-weight: 700;
  line-height: 1.15;
}
/* Paragraph defaults inside sp-content */
.sp-content p {
  margin: 0 0 3.5rem 0; /* each paragraph gets generous bottom margin */
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.7;
  font-style: normal;
  max-width: 68ch;
}
/* Homepage katabasis sections: italic body text */
.sp-home .sp-content p {
  font-style: italic;
}
.sp-content p:last-child {
  margin-bottom: 0; /* no trailing space on the last paragraph */
}
.sp-content h2 + p {
  margin-top: 1.5rem; /* space between heading and first paragraph */
}

/* Button row spacing & alignment */
.sp-btn-row {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 3rem; /* add space above the buttons */
  margin-bottom: 2rem; /* optional: add space below */
  /*margin-top: var(--sp-stack-gap-tight);*/
}

/* Button aesthetic (keeps your existing border style) */
.sp-btn {
  display: inline-block;
  text-decoration: none;
  padding: 1.02rem 1.7rem;
  font-size: 1.19rem;
  font-weight: 600;
  border: 1px solid currentColor;
  border-radius: 0.4rem;
  line-height: 1.1;
}

/* Tighter rhythm when brief copy */
.sp-content .sp-lead + p {
  margin-top: var(--sp-stack-gap-tight);
}
.sp-content .sp-btn-row + .sp-note {
  margin-top: var(--sp-stack-gap-tight);
}

/* Small screens: keep margins breathing */
@media (max-width: 36rem) {
  .sp-content {
    margin-left: 1rem;
    margin-right: 1rem;
  }
}
/* Remove newsletter everywhere (BEM classes used by the theme) */
.g-newsletter,
.g-newsletter__wrapper {
  display: none !important;
}
/* ——— PAGE heroes: exactly full viewport ——— */
.g-generic-hero.with-image {
  height: 100vh !important; /* exact fill */
  min-height: 100vh !important; /* belt + suspenders */
}

/* Make sure the background image stretches with the wrapper */
.g-generic-hero .g-hero-image {
  position: absolute !important;
  inset: 0 !important; /* top/right/bottom/left: 0 */
}
.g-generic-hero .g-hero-image__image {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
/* Homepage image CTA footer */
.sp-cta-footer {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 3rem 1rem;
  background: linear-gradient(
    to top,
    rgba(20, 20, 24, 0.7),
    rgba(20, 20, 24, 0.4)
  );
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.sp-cta-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: #e9dcc6;
}
.sp-cta-img {
  width: clamp(200px, 30vw, 480px); /* adjust size here */
  height: auto;
  display: block;
  filter: drop-shadow(0 3px 12px rgba(0, 0, 0, 0.45));
}


/* ═══════════════════════════════════════════════════════════════
   THE FISSURE — Homepage entrance sequence
   ALL timing is driven by JS. CSS only defines structure/position.
   ═══════════════════════════════════════════════════════════════ */

.sp-fissure {
  position: fixed;
  inset: 0;
  z-index: 1000;
  pointer-events: none;
}
.sp-fissure.is-done {
  display: none;
  visibility: hidden;
  z-index: -1;
}

/* Stone veil — single full-screen layer, barely-there texture */
.sp-fissure__left {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: #0a0908;
  background-image: var(--sp-stone-fissure, none);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 2;
  transition: none;
}
/* Heavy darkening — stone is a whisper of texture in the darkness */
.sp-fissure__left::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(10, 9, 8, 0.82);
  pointer-events: none;
}
/* Right door not used — hide it */
.sp-fissure__right {
  display: none;
}

/* Crack element — no longer used */
.sp-fissure__crack {
  display: none;
}

/* Glowing ψυχαγωγός — sits where the header logo will appear */
.sp-fissure__logo-ghost {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 8;
  text-align: center;
  padding: 1.1rem 0;
  font-family: inherit;
  font-size: 1.12em;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #cdae7a;
  opacity: 0;
  pointer-events: none;
  text-shadow:
    0 0 12px rgba(205, 174, 122, 0.6),
    0 0 30px rgba(205, 174, 122, 0.25),
    0 0 60px rgba(205, 174, 122, 0.1);
}

/* Lightning canvas */
.sp-fissure__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  pointer-events: none;
}

/* κάταβασις ghost text — illuminated by the strike */
/* Must match .sp-scroll-cue position exactly */
.sp-fissure__kata-ghost {
  position: fixed;
  left: 50%;
  bottom: calc(1.3rem + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  z-index: 6;
  font-size: var(--sp-identity-size, clamp(2.2rem, 5vw, 4rem));
  letter-spacing: 0.12em;
  color: #fff;
  opacity: 0;
  pointer-events: none;
  white-space: nowrap;
  font-family: inherit;
}

/* Flash layers — JS controls opacity */
.sp-fissure__flash {
  position: absolute;
  inset: 0;
  z-index: 6;
  opacity: 0;
  background: radial-gradient(
    ellipse at center,
    rgba(205, 174, 122, 0.5) 0%,
    rgba(205, 174, 122, 0.15) 35%,
    transparent 65%
  );
}
.sp-fissure__whiteout {
  position: absolute;
  inset: 0;
  z-index: 7;
  opacity: 0;
  background: radial-gradient(
    ellipse at center,
    rgba(255, 255, 255, 0.7) 0%,
    rgba(255, 255, 255, 0.3) 30%,
    rgba(205, 174, 122, 0.1) 60%,
    transparent 80%
  );
}

/* Suppress default loading overlay on homepage */
body.home-template .g-load-transition__overlay {
  display: none !important;
}

/* Content visible from start — doors darken it */
body.home-template .g-load-transition__container {
  opacity: 1;
}

/* κάταβασις scroll cue — hidden during fissure, fades in with hero content */
body.home-template.sp-fissure-active .sp-scroll-cue {
  opacity: 0 !important;
  animation: none !important;
  pointer-events: none;
}

/* Lock scroll during the sequence — JS removes this */
body.home-template.sp-fissure-active {
  overflow: clip;
}

/* ── Search drawer: Temple Storm colors ──────────────────── */
.g-drawer.in-search .g-drawer__content {
  background: #171311 !important;
  color: #e9dcc6 !important;
}
.g-drawer.in-search .g-drawer__header,
.g-drawer.in-search .g-drawer__header a,
.g-drawer.in-search .g-drawer__header button,
.g-drawer.in-search .g-header-button__label,
.g-drawer.in-search .g-header-button__icon {
  color: #e9dcc6 !important;
}
/* Search input */
.g-drawer.in-search input,
.g-drawer.in-search .g-search-input {
  background: rgba(233, 220, 198, 0.08) !important;
  color: #e9dcc6 !important;
  border-color: rgba(233, 220, 198, 0.2) !important;
}
.g-drawer.in-search input::placeholder {
  color: rgba(233, 220, 198, 0.45) !important;
}
/* Search results */
.g-drawer.in-search .g-search-results a,
.g-drawer.in-search .g-search-results__item,
.g-drawer.in-search .g-search-results__title {
  color: #e9dcc6 !important;
}
.g-drawer.in-search .g-search-results a:hover,
.g-drawer.in-search .g-search-results__item:hover {
  color: #cdae7a !important;
}
.g-drawer.in-search .g-search-results__tag {
  color: #458c8c !important;
}

/* ── Hide κάταβασις canvas when any drawer is open ────────── */
body:has(.g-drawer.open) .sp-kata-canvas {
  opacity: 0 !important;
  transition: opacity 0.2s ease;
}

/* ── Reduce motion: skip everything ─────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .sp-fissure { display: none; }
  body.home-template .g-load-transition__container {
    opacity: 1;
    animation: none;
  }
  body.home-template {
    overflow: visible;
    animation: none;
  }
}


/* ============================================================
   THE PATH — page-path.hbs overrides
   Same cinematic architecture as the katabasis homepage.
   ============================================================ */

/* Hero */
.sp-path-hero {
  position: relative;
  height: 100vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.sp-path-hero .g-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.sp-path-hero .g-hero-image__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sp-path-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: var(--spacing-l, 2rem);
  color: var(--color-on-dark, #e9dcc6);
}
@media (min-width: 64rem) {
  .sp-path-hero__content {
    padding: calc(var(--spacing-l, 2rem) * 2);
  }
}
.sp-path-hero__title {
  font-family: 'Sora', sans-serif;
  font-weight: bold;
  font-size: 3rem;
  line-height: 1.1;
  color: #cdae7a;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
  margin: 0 0 0.625rem;
}
@media (min-width: 64rem) {
  .sp-path-hero__title {
    font-size: 6rem;
    max-width: 75%;
  }
}
.sp-path-hero__excerpt {
  font-size: 1rem;
  line-height: 1.5;
  color: #e9dcc6;
  max-width: 31.25rem;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}
@media (min-width: 64rem) {
  .sp-path-hero__excerpt {
    font-size: 1.25rem;
  }
}


/* Persistent dark overlay — stretches full height, always darkens bg images */
.sp-path-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(23, 19, 17, 0.35);
  z-index: 1;
  pointer-events: none;
}
.sp-path-page {
  position: relative;
}

/* Path sections inherit all .sp-section styles from the homepage.
   These overrides ensure proper layout on a non-home page. */
.sp-path-page .sp-section {
  background: #171311;
  overflow: hidden;
  opacity: 1 !important; /* section always visible — text fades via JS */
  justify-content: center;
}
.sp-path-page .sp-section .sp-content {
  text-align: left;
  max-width: 64ch;
  margin: 0 !important;
  margin-left: clamp(1.5rem, 7vw, 8rem) !important;
  margin-right: clamp(1.5rem, 4vw, 6rem) !important;
  padding: clamp(2.5rem, 6vw, 5rem) 0;
  padding-top: 55vh; /* breathing room — image shows before text arrives */
  position: relative;
  z-index: 2;
  color: #e9dcc6;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.7);
}
.sp-path-page .sp-section .sp-bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  object-position: center 20%;
  z-index: 0;
  opacity: 0;
  transition: opacity 1.1s ease;
}
.sp-path-page .sp-section.is-active .sp-bg {
  opacity: var(--sp-section-image-opacity, 0.9);
}

/* Abraham — slightly brighter than the others */
#pneuma .sp-bg {
  filter: brightness(1.2);
}

/* Arjuna — shift right to center the figure */
.sp-path-page #integration .sp-bg {
  object-position: 40% 20% !important;
}

/* Lineages — extra muted */
.sp-path-page #lineages .sp-bg {
  filter: brightness(0.4) saturate(0.5);
}
.sp-path-page .sp-section:not(:has(.sp-bg)) .sp-overlay {
  display: none;
}

/* Typography inside path sections */
.sp-path-page .sp-section .sp-title {
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  color: #cdae7a;
}
.sp-path-page .sp-section .sp-section-num {
  color: #cdae7a;
}
.sp-path-page .sp-section strong {
  color: #c46b4a;
  font-weight: 700;
}
.sp-path-page .sp-section em {
  color: #9a8ba3;
}
.sp-path-page .sp-section em strong,
.sp-path-page .sp-section strong em {
  color: #458c8c;
}
.sp-path-page .sp-section .sp-btn {
  color: #cdae7a;
  border-color: #cdae7a;
}
.sp-path-page .sp-section .sp-btn:hover {
  background: rgba(205, 174, 122, 0.15);
  color: #e9dcc6;
}
.sp-path-page .sp-section .sp-btn--sustain {
  border-color: rgba(205, 174, 122, 0.4);
  color: rgba(205, 174, 122, 0.7);
  font-size: 1rem;
}
.sp-path-page .sp-section .sp-btn--sustain:hover {
  border-color: #cdae7a;
  color: #e9dcc6;
  background: rgba(205, 174, 122, 0.15);
}
.sp-path-page .sp-section .sp-btn-row {
  justify-content: center;
}

/* Greek & Hebrew font fallback — use Noto Serif for Greek/Hebrew ranges */
@font-face {
  font-family: 'EB Garamond Greek Fix';
  src: local('Noto Serif');
  unicode-range: U+0370-03FF, U+1F00-1FFF; /* Greek and Greek Extended */
}
@font-face {
  font-family: 'EB Garamond Greek Fix';
  src: local('Noto Serif');
  unicode-range: U+0590-05FF; /* Hebrew */
}

.sp-path-page .sp-section .sp-lead {
  font-family: 'EB Garamond Greek Fix', 'EB Garamond', 'Noto Serif', Georgia, serif;
}

/* Path rail — same styles as homepage rail, just always visible
   after scrolling past the hero (no homepage-specific logic) */
.sp-path-rail {
  opacity: 0;
  pointer-events: none;
}
.sp-path-rail.is-visible {
  opacity: 1;
  pointer-events: auto;
}


/* ============================================================
   KATABASIS v3 — Homepage overrides
   These rules extend / override the base SP section styles
   above for the new descent layout.
   ============================================================ */

/* ── Section default: warm brown-black when no image ──────── */

.sp-section {
  overflow: hidden;
  justify-content: center;
  background: #171311;
}

.sp-section .sp-content {
  text-align: left;
  max-width: 64ch;
  margin: 0 !important;
  margin-left: clamp(1.5rem, 7vw, 8rem) !important;
  margin-right: clamp(1.5rem, 4vw, 6rem) !important;
  padding: clamp(2.5rem, 6vw, 5rem) 0;
  padding-top: 45vh; /* breathing room — image shows before text */
  position: relative;
  z-index: 2;
}

/* The Condition — no extra breathing room (follows hero directly) */
#condition .sp-content {
  padding-top: clamp(2.5rem, 6vw, 5rem);
}

/* ── Fixed background image — stays put while text scrolls ── */

.sp-section .sp-bg {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  object-fit: cover;
  z-index: 0;
}

/* Only show the bg of the active (visible) section */
.sp-section .sp-bg {
  opacity: 0;
  transition: opacity 1.1s ease;
  filter: brightness(0.55) saturate(0.7);
}
.sp-section.is-active .sp-bg {
  opacity: var(--sp-section-image-opacity, 0.9);
}

/* The Claim — unmuted, full brightness */
#claim .sp-bg {
  filter: none;
}

/* The Break and The Response — extra muted (bright source images) */
#break .sp-bg {
  filter: brightness(0.4) saturate(0.55);
}
#response .sp-bg {
  filter: brightness(0.4) saturate(0.55);
}

/* ── Semi-transparent overlay (over image, under text) ──────── */
/* Only visible when a background image is present */

.sp-overlay {
  position: absolute;
  inset: 0;
  background: rgba(23, 19, 17, 0.4);
  z-index: 1;
}

/* The Claim — lighter overlay, more breathing room */
#claim .sp-overlay {
  background: rgba(23, 19, 17, 0.35);
}
#claim .sp-content {
  padding-top: 55vh;
}

/* No image = no overlay needed (section bg is already #171311) */
.sp-section:not(:has(.sp-bg)) .sp-overlay {
  display: none;
}

/* ── Temple Storm typography colors ─────────────────────────── */

.sp-section .sp-content {
  color: #e9dcc6;                     /* warm parchment body text */
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.7);
}

.sp-section .sp-title {
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  color: #cdae7a;                     /* gold headings */
}

.sp-section .sp-section-num {
  color: #cdae7a;                     /* gold eyebrow */
}

.sp-section strong {
  color: #c46b4a;                     /* rust bold */
  font-weight: 700;
}

.sp-section em {
  color: #9a8ba3;                     /* muted purple italic */
}

.sp-section em strong,
.sp-section strong em {
  color: #458c8c;                     /* teal bold-italic */
}

.sp-section .sp-btn {
  color: #cdae7a;                     /* gold button text */
  border-color: #cdae7a;
  transition: background 0.3s ease, color 0.3s ease;
}
.sp-section .sp-btn:hover {
  background: rgba(205, 174, 122, 0.15);
  color: #e9dcc6;
}

/* Sustain variant — quieter, beside the primary button */
.sp-section .sp-btn--sustain {
  border-color: rgba(205, 174, 122, 0.4);
  color: rgba(205, 174, 122, 0.7);
  font-size: 1rem;
}
.sp-section .sp-btn--sustain:hover {
  border-color: #cdae7a;
  color: #e9dcc6;
  background: rgba(205, 174, 122, 0.15);
}

/* Witness / Initiate sub-headings */
.sp-subtitle {
  font-family: 'Sora', sans-serif;
  font-size: clamp(1.3rem, 2.5vw, 1.7rem);
  font-weight: 600;
  color: #cdae7a;
  margin-top: 3.5rem;
  margin-bottom: 0;
  line-height: 1.2;
}

/* ── Roman numeral eyebrow ─────────────────────────────────── */

.sp-section-num {
  display: block;
  font-family: 'Sora', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #cdae7a;
  opacity: 0.65;
  margin-bottom: 0.6rem;
}

/* ── Right-side scroll rail (progress indicator) ───────────── */

.sp-rail {
  position: fixed;
  right: 1.25rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 40;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s ease;
}

.sp-rail.is-visible {
  opacity: 1;
  pointer-events: auto;
}

/* Home button — ψ glyph at top of rail */
.sp-rail__home {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  font-family: 'EB Garamond', serif;
  font-size: 1.1rem;
  color: #cdae7a;
  opacity: 0.55;
  text-decoration: none;
  margin-bottom: 0.4rem;
  transition: opacity 0.3s ease;
}
.sp-rail__home:hover {
  opacity: 1;
}

/* Horizontal pills — wider than tall */
.sp-rail__pill {
  position: relative;
  display: block;
  width: 22px;
  height: 4px;
  background: rgba(233, 220, 198, 0.25);
  border-radius: 2px;
  transition: width 0.3s ease, background-color 0.3s ease, height 0.3s ease;
  text-decoration: none;
}

.sp-rail__pill:hover {
  background: rgba(233, 220, 198, 0.55);
  width: 28px;
}

.sp-rail__pill.is-active {
  width: 32px;
  height: 5px;
  background: #cdae7a;
}

/* Tooltip: section name appears to the left on hover */
.sp-rail__tip {
  position: absolute;
  right: calc(100% + 0.75rem);
  top: 50%;
  transform: translateY(-50%);
  font-family: 'Sora', sans-serif;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #e9dcc6;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
}

.sp-rail__pill:hover .sp-rail__tip {
  opacity: 1;
}

/* Desktop/laptop: larger pills and glyph for better visibility */
@media (min-width: 48rem) {
  .sp-rail__home {
    width: 36px;
    height: 36px;
    font-size: 1.4rem;
  }
  .sp-rail__pill {
    width: 28px;
    height: 5px;
  }
  .sp-rail__pill:hover {
    width: 36px;
  }
  .sp-rail__pill.is-active {
    width: 40px;
    height: 6px;
  }
}

/* Hide rail on narrow screens */
@media (max-width: 48rem) {
  .sp-rail {
    display: none;
  }
}

/* ── Button row: nudged left to compensate for asymmetric margins ── */

.sp-section .sp-btn-row {
  justify-content: center;
  margin-right: clamp(1.5rem, 3vw, 4rem);
}

/* ═══════════════════════════════════════════════════════════════
   AUTH PAGES — Temple Storm signup/signin
   ═══════════════════════════════════════════════════════════════ */

/* Page background — image fills entire viewport */
.sp-auth {
  background: #171311;
  min-height: 100vh;
  position: relative;
}

/* Cover image — absolute, fills the entire page */
.sp-auth .g-auth-page-cover {
  position: absolute !important;
  inset: 0;
  z-index: 0;
}
.sp-auth .g-auth-page-cover .g-auth-page-cover__image,
.sp-auth .g-auth-page-cover img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
}
.sp-auth .g-auth-page-cover.no-image {
  background: #171311;
}
/* Dark overlay + mute the image */
.sp-auth .g-auth-page-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(23, 19, 17, 0.65);
  z-index: 1;
}
.sp-auth .g-auth-page-cover img {
  filter: brightness(0.65) saturate(0.7);
}

/* Main form area — sits on top of the image, right side */
.sp-auth .g-auth-page-main {
  background: transparent;
  color: #e9dcc6;
  position: relative;
  z-index: 2;
  margin-left: auto;
  padding-top: 5rem; /* clear the nav bar */
}

/* Title — gold, Sora */
.sp-auth .g-auth-page-main__title {
  color: #cdae7a;
  font-family: 'Sora', sans-serif;
  font-weight: 600;
}

/* Description */
.sp-auth .g-auth-page-main__description {
  color: #e9dcc6;
  opacity: 0.85;
}

/* Input fields — dark bg, parchment text, gold border */
.sp-auth .g-auth-form__regular-input,
.sp-auth .g-auth-form__input {
  background: rgba(233, 220, 198, 0.06) !important;
  color: #e9dcc6 !important;
  border-color: rgba(205, 174, 122, 0.3) !important;
}
.sp-auth .g-auth-form__regular-input::placeholder,
.sp-auth .g-auth-form__input::placeholder {
  color: rgba(233, 220, 198, 0.4);
}
.sp-auth .g-auth-form__regular-input:focus,
.sp-auth .g-auth-form__input:focus {
  border-color: #cdae7a !important;
  outline: none;
}

/* Submit button — gold background */
.sp-auth .g-auth-form__button {
  background: #cdae7a !important;
}
.sp-auth .g-auth-form__button span {
  color: #171311 !important;
}
.sp-auth .g-auth-form__button:hover {
  background: #e9dcc6 !important;
}

/* Links */
.sp-auth .g-auth-signin {
  color: #e9dcc6;
  opacity: 0.7;
}
.sp-auth .g-auth-signin a {
  color: #cdae7a;
}
.sp-auth .g-auth-signin a:hover {
  color: #e9dcc6;
}

/* Error message — rust */
.sp-auth .g-auth-error {
  color: #c46b4a;
}

/* Success message */
.sp-auth .g-auth-success__text {
  color: #e9dcc6;
}


/* Sustain checkout button */
.sp-sustain-btn {
  display: block !important;
  text-align: center;
  width: 100%;
  padding: 1.1rem !important;
  font-size: 1.1rem !important;
}

/* Posture line beneath description */
.sp-auth-posture {
  color: #9a8ba3;
  font-size: 0.9rem;
  font-style: italic;
}

/* Plan selector on signup page */
.sp-plan-selector {
  display: flex;
  gap: 0.75rem;
  margin: 1.5rem 0;
  align-items: stretch;
}
.sp-plan-option {
  flex: 1;
  min-width: 0;
  padding: 1rem;
  background: transparent;
  border: 1px solid rgba(205, 174, 122, 0.2);
  border-radius: 0.4rem;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.3s ease, background 0.3s ease;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.sp-plan-option:hover {
  border-color: rgba(205, 174, 122, 0.5);
}
.sp-plan-option.is-active {
  border-color: #cdae7a;
  background: rgba(205, 174, 122, 0.08);
}
.sp-plan-name {
  display: block;
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  font-size: 1rem;
  color: #cdae7a;
  margin-bottom: 0.25rem;
}
.sp-plan-features {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 0;
}
.sp-plan-features li {
  font-size: 0.82rem;
  color: #e9dcc6;
  opacity: 0.7;
  line-height: 1.4;
  padding: 0.2rem 0;
  padding-left: 1rem;
  position: relative;
}
.sp-plan-features li::before {
  content: "·";
  position: absolute;
  left: 0;
  color: #cdae7a;
  opacity: 0.6;
}

/* Hide Sign In / Sign Up links when member is logged in */
body.is-member a[href*="/signin"],
body.is-member a[href*="/signup"],
body.is-member a[href*="portal/signin"],
body.is-member a[href*="portal/signup"] {
  display: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   TRANSMISSIONS HUB — page-transmissions.hbs
   ═══════════════════════════════════════════════════════════════ */

/* Hero — full viewport, title bottom-left */
.sp-tx-hero {
  position: relative;
  height: 100vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.sp-tx-hero .g-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.sp-tx-hero .g-hero-image__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sp-tx-hero__content {
  position: relative;
  z-index: 2;
  padding: var(--spacing-l, 2rem);
  width: 100%;
}
@media (min-width: 64rem) {
  .sp-tx-hero__content {
    padding: calc(var(--spacing-l, 2rem) * 2);
  }
}
.sp-tx-hero__title {
  font-family: 'Sora', sans-serif;
  font-weight: bold;
  font-size: 3rem;
  color: #cdae7a;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
  margin: 0;
}
@media (min-width: 64rem) {
  .sp-tx-hero__title {
    font-size: 6rem;
    max-width: 75%;
  }
}

/* Framing line below hero */
.sp-tx-framing {
  color: #9a8ba3;
  font-size: 1.1rem;
  line-height: 1.6;
  max-width: 55ch;
  padding: 2.5rem 0 0;
  margin: 0;
}

/* Body container */
.sp-tx-body {
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 var(--spacing-s, 1rem);
}
@media (min-width: 64rem) {
  .sp-tx-body {
    padding: 0 var(--spacing-l, 2rem);
  }
}

/* Section */
.sp-tx-section {
  padding: 4rem 0 3rem;
  border-bottom: 1px solid rgba(205, 174, 122, 0.08);
}
.sp-tx-section:last-child {
  border-bottom: none;
}
.sp-tx-section__title {
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  font-size: 1.8rem;
  color: #c46b4a;
  margin: 0 0 0.5rem;
}
.sp-tx-section__desc {
  color: #e9dcc6;
  opacity: 0.7;
  font-size: 1rem;
  margin: 0 0 2rem;
  max-width: 55ch;
}

/* Card grid */
.sp-tx-grid {
  display: grid;
  gap: 1.5rem;
}
.sp-tx-grid--canonical {
  grid-template-columns: 1fr;
}
@media (min-width: 45rem) {
  .sp-tx-grid--canonical {
    grid-template-columns: 1fr 1fr;
  }
}
.sp-tx-grid--articles {
  grid-template-columns: 1fr;
}
@media (min-width: 45rem) {
  .sp-tx-grid--articles {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 64rem) {
  .sp-tx-grid--articles {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

/* Card */
.sp-tx-card {
  overflow: hidden;
  border-radius: 0.4rem;
  background: rgba(233, 220, 198, 0.03);
  transition: background 0.3s ease;
}
.sp-tx-card:hover {
  background: rgba(233, 220, 198, 0.06);
}
.sp-tx-card__image-link {
  display: block;
  overflow: hidden;
}
.sp-tx-card__image {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.sp-tx-card:hover .sp-tx-card__image {
  transform: scale(1.03);
}
.sp-tx-card__content {
  padding: 1rem;
}
.sp-tx-card__title {
  font-family: 'Sora', sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: #cdae7a;
  margin: 0 0 0.4rem;
  line-height: 1.3;
}
.sp-tx-card__title a {
  color: inherit !important;
  text-decoration: none;
}
.sp-tx-card__title a:hover {
  color: #e9dcc6 !important;
}
.sp-tx-card__excerpt {
  color: #e9dcc6;
  opacity: 0.75;
  font-size: 0.9rem;
  line-height: 1.5;
  margin: 0 0 0.5rem;
}
.sp-tx-card__date {
  color: #9a8ba3;
  font-size: 0.8rem;
}

/* Canonical cards — larger */
.sp-tx-card--canonical .sp-tx-card__image {
  aspect-ratio: 2 / 1;
}
.sp-tx-card--canonical .sp-tx-card__title {
  font-size: 1.35rem;
}
.sp-tx-card--canonical .sp-tx-card__content {
  padding: 1.25rem;
}

/* Archive list */
.sp-tx-archive-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sp-tx-archive-item {
  border-bottom: 1px solid rgba(205, 174, 122, 0.06);
}
.sp-tx-archive-item:last-child {
  border-bottom: none;
}
.sp-tx-archive-link {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: 0.8rem 0;
  text-decoration: none;
  transition: background 0.2s ease;
}
.sp-tx-archive-link:hover {
  background: rgba(233, 220, 198, 0.03);
}
.sp-tx-archive-title {
  color: #e9dcc6;
  font-size: 1rem;
}
.sp-tx-archive-link:hover .sp-tx-archive-title {
  color: #cdae7a;
}
.sp-tx-archive-date {
  color: #9a8ba3;
  font-size: 0.8rem;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Members-only gate */
.sp-tx-gate {
  text-align: center;
  padding: 3rem 1rem;
  border: 1px solid rgba(205, 174, 122, 0.1);
  border-radius: 0.4rem;
  background: rgba(233, 220, 198, 0.02);
}
.sp-tx-gate p {
  color: #e9dcc6;
  opacity: 0.7;
  margin: 0 0 1.5rem;
  font-size: 1.1rem;
}

/* Empty state */
.sp-tx-empty {
  color: #e9dcc6;
  opacity: 0.45;
  font-style: italic;
  padding: 2rem 0;
}


/* Page hero titles — prevent mid-word line breaks but allow wrapping */
.g-generic-hero__title,
.sp-path-hero__title,
.sp-tx-hero__title {
  hyphens: none !important;
}

/* Psi sigil at bottom of pages */
.sp-psi-sigil {
  display: flex;
  justify-content: center;
  padding: 3rem 0 4rem;
  position: relative;
  z-index: 2;
  overflow: hidden;
}
.sp-psi-sigil img {
  max-width: 100%;
  height: auto;
}

/* ── Footer: brown-black ground, mirrors dark menu scheme ── */

.g-footer {
  background: #171311 !important;
  border-top: 1px solid rgba(205, 174, 122, 0.12);
  position: relative;
  z-index: 3;
}
.g-footer,
.g-footer .g-footer-title,
.g-footer .g-footer-copyright,
.g-footer .g-footer-copyright a,
.g-footer .g-footer__social a,
.g-footer .g-footer-button,
.g-footer .icon-search {
  color: #e9dcc6 !important;
}
.g-footer .g-footer-title:hover {
  color: #cdae7a !important;
}

/* Footer nav — 4 items per column, then wrap to next column */
.g-footer-navigation nav ul {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: repeat(4, auto);
  grid-auto-flow: column;
  gap: 1rem 3rem;
}
.g-footer-navigation nav ul li {
  margin-bottom: 0 !important;
}

/* Primary nav in footer — rust */
.g-footer-navigation nav:first-of-type a {
  color: #c46b4a !important;
}
.g-footer-navigation nav:first-of-type a:hover {
  color: #e9dcc6 !important;
}

/* Secondary nav in footer — teal (use attribute selector to avoid :last-of-type conflict) */
.g-footer-navigation nav[aria-label*="Secondary"] a {
  color: #458c8c !important;
}
.g-footer-navigation nav[aria-label*="Secondary"] a:hover {
  color: #e9dcc6 !important;
}

/* Account nav in footer — parchment */
.g-footer-navigation nav[aria-label*="Account"] a {
  color: #e9dcc6 !important;
}
.g-footer-navigation nav[aria-label*="Account"] a:hover {
  color: #cdae7a !important;
}

/* Tertiary nav in footer — purple */
.g-footer-navigation nav[aria-label*="Tertiary"] a {
  color: #9a8ba3 !important;
}
.g-footer-navigation nav[aria-label*="Tertiary"] a:hover {
  color: #e9dcc6 !important;
}

/* Light mode footer tertiary */
[theme-mode="light"] .g-footer-navigation nav[aria-label*="Tertiary"] a {
  color: #5a4d63 !important;
}
[theme-mode="light"] .g-footer-navigation nav[aria-label*="Tertiary"] a:hover {
  color: #171311 !important;
}

/* ═══════════════════════════════════════════════════════════
   LEXICON PAGE
   ═══════════════════════════════════════════════════════════ */

.sp-lexicon-page {
  position: relative;
  z-index: 1;
}
.sp-lexicon-header {
  padding: 6rem 0 3rem;
  text-align: center;
}
.sp-lexicon-header__title {
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  font-size: 3rem;
  color: #cdae7a;
  margin: 0;
}
.sp-lexicon-body {
  max-width: 52rem;
  margin: 0 auto;
  padding: 0 var(--spacing-s, 1rem) 4rem;
}
/* Term headings — gold Sora with separator */
.sp-lexicon-content h3 {
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  font-size: 1.35rem;
  color: #cdae7a;
  margin: 2.5rem 0 0.75rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(205, 174, 122, 0.1);
}
.sp-lexicon-content h3:first-child {
  border-top: none;
  padding-top: 0;
  margin-top: 0;
}
/* Letter group dividers */
.sp-lexicon-content h2 {
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  font-size: 2rem;
  color: #9a8ba3;
  margin: 3.5rem 0 1.5rem;
  padding-top: 2.5rem;
  border-top: 1px solid rgba(154, 139, 163, 0.15);
  text-align: center;
  letter-spacing: 0.15em;
}
.sp-lexicon-content h2:first-child {
  border-top: none;
  padding-top: 0;
  margin-top: 0;
}
/* Body text */
.sp-lexicon-content p {
  color: #e9dcc6;
  font-size: 1.1rem;
  line-height: 1.7;
  margin: 0 0 1rem;
}
/* Cross-reference links — teal */
.sp-lexicon-content a {
  color: #458c8c !important;
  text-decoration: underline;
  text-decoration-color: rgba(69, 140, 140, 0.3);
  text-underline-offset: 0.15em;
}
.sp-lexicon-content a:hover {
  color: #e9dcc6 !important;
  text-decoration-color: rgba(233, 220, 198, 0.4);
}

/* ═══════════════════════════════════════════════════════════
   ICONOGRAPHY PAGE
   ═══════════════════════════════════════════════════════════ */

.sp-iconography-page {
  position: relative;
  z-index: 1;
}
.sp-iconography-header {
  padding: 6rem 0 3rem;
  text-align: center;
}
.sp-iconography-header__title {
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  font-size: 3rem;
  color: #cdae7a;
  margin: 0;
}
.sp-iconography-body {
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 var(--spacing-s, 1rem) 4rem;
}
/* Image grid */
.sp-iconography-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (min-width: 45rem) {
  .sp-iconography-grid {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1.25rem;
  }
}
/* Non-image elements span full width */
.sp-iconography-grid > *:not(figure):not(.kg-image-card):not(.kg-gallery-card) {
  grid-column: 1 / -1;
}
/* Image cards */
.sp-iconography-grid .kg-image-card,
.sp-iconography-grid figure {
  margin: 0;
  overflow: hidden;
  border-radius: 0.3rem;
}
.sp-iconography-grid .kg-image-card img,
.sp-iconography-grid figure img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease, filter 0.4s ease;
  cursor: pointer;
}
.sp-iconography-grid .kg-image-card:hover img,
.sp-iconography-grid figure:hover img {
  transform: scale(1.03);
  filter: brightness(1.08);
}
/* Hide captions in page (shown in lightbox) */
.sp-iconography-grid figcaption,
.sp-iconography-grid .kg-image-card figcaption {
  display: none;
}
/* LightGallery caption styling — purple italic */
.lg-sub-html {
  color: #9a8ba3 !important;
  font-style: italic;
  font-family: 'EB Garamond', serif;
  font-size: 1.1rem;
}

/* ═══════════════════════════════════════════════════════════
   PROTEUS ARCHIVE PAGE
   ═══════════════════════════════════════════════════════════ */

.sp-proteus-page {
  position: relative;
  z-index: 1;
}
/* Hero — full viewport with Proteus image */
.sp-proteus-hero {
  position: relative;
  height: 100vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.sp-proteus-hero__image-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.sp-proteus-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left center;
  display: block;
}
@media (max-width: 45rem) {
  .sp-proteus-hero__image {
    object-position: 30% center;
  }
}
.sp-proteus-hero__content {
  position: relative;
  z-index: 2;
  padding: var(--spacing-l, 2rem);
  width: 100%;
  text-align: right;
}
.sp-proteus-hero__title {
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  font-size: 3rem;
  color: #cdae7a;
  margin: 0;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
}
@media (min-width: 45rem) {
  .sp-proteus-hero__title {
    font-size: 4.5rem;
  }
}
.sp-proteus-body {
  max-width: 52rem;
  margin: 0 auto;
  padding: 3rem var(--spacing-s, 1rem) 4rem;
}
/* Intro content from page editor */
.sp-proteus-intro {
  margin-bottom: 3rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid rgba(205, 174, 122, 0.08);
}
.sp-proteus-intro p {
  color: #9a8ba3;
  font-style: italic;
  font-size: 1.1rem;
  line-height: 1.6;
  max-width: 55ch;
}
/* Section titles */
.sp-proteus-section-title {
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  font-size: 1.6rem;
  color: #c1666b;
  margin: 0 0 2rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(205, 174, 122, 0.1);
}
/* Featured entries — larger, more prominent */
.sp-proteus-featured {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  margin-bottom: 1rem;
}
.sp-proteus-entry--featured .sp-proteus-entry__title {
  font-size: 1.65rem;
}
.sp-proteus-entry--featured .sp-proteus-entry__excerpt {
  font-size: 1.05rem;
  max-width: 55ch;
}
/* Entry cards — stacked vertically */
.sp-proteus-entries {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}
.sp-proteus-entry {
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(205, 174, 122, 0.06);
}
.sp-proteus-entry:last-child {
  border-bottom: none;
}
/* Entry header — title + meta */
.sp-proteus-entry__title {
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  font-size: 1.35rem;
  color: #cdae7a;
  margin: 0 0 0.5rem;
}
.sp-proteus-entry__title a {
  color: inherit !important;
  text-decoration: none;
}
.sp-proteus-entry__title a:hover {
  color: #e9dcc6 !important;
}
/* Meta line: date + model tags */
.sp-proteus-entry__meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
.sp-proteus-entry__date {
  color: #9a8ba3;
  font-size: 0.85rem;
}
/* Model tag badges — purple pills */
.sp-proteus-tag {
  display: inline-block;
  font-family: 'Sora', sans-serif;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #9a8ba3;
  border: 1px solid rgba(154, 139, 163, 0.35);
  border-radius: 9999px;
  padding: 0.15rem 0.6rem;
}
/* Excerpt */
.sp-proteus-entry__excerpt {
  color: #e9dcc6;
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 1.25rem;
  opacity: 0.85;
}
/* Screenshot images — drop shadow */
.sp-proteus-entry__image {
  display: block;
  overflow: hidden;
  border-radius: 0.4rem;
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.5),
    0 0 1px rgba(205, 174, 122, 0.15);
}
.sp-proteus-entry__image img {
  width: 100%;
  height: auto;
  display: block;
}
/* Mobile: allow horizontal scroll for wide screenshots */
@media (max-width: 45rem) {
  .sp-proteus-entry__image {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .sp-proteus-entry__image img {
    min-width: 100%;
    width: auto;
    max-width: none;
  }
}
/* Body images inside Proteus Archive posts — shadow + cursor hint */
.sp-proteus-entry .kg-image-card img,
.sp-proteus-entry .kg-gallery-image img,
.sp-proteus-intro img {
  border-radius: 0.4rem;
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.5),
    0 0 1px rgba(205, 174, 122, 0.15);
  cursor: zoom-in;
}
/* Empty state */
.sp-proteus-empty {
  color: #e9dcc6;
  opacity: 0.45;
  font-style: italic;
  padding: 2rem 0;
  text-align: center;
}
