/* ============================================================
   THE HERALD PARTY — Ghost Theme Stylesheet v1.1
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@700&family=Montserrat:wght@400;700&display=swap');

/* ── RESET & TOKENS ── */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  border-radius: 0 !important;
}
input, button { border-radius: 0 !important; }

:root {
  --white:      #FFFFFF;
  --black:      #000000;
  --indigo:     #211640;
  --royal:      #352366;
  --orchid:     #543f64;
  --font-head:  'Cormorant Garamond', serif;
  --font-body:  'Montserrat', sans-serif;
  --nav-h:      4.375rem;   /* 70px */
  --footer-h:   3.75rem;    /* 60px */
  --divider-op: 0.4;        /* shared opacity for all horizontal rules */
  --section-pad: 5rem;      /* 80px — consistent vertical rhythm */
  --side-pad:    3rem;      /* 48px */
}

html { font-size: 16px; }

body {
  background: var(--white);
  color: var(--black);
  font-family: var(--font-body);
  font-size: 1rem;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

a { text-decoration: none; color: inherit; }

/* ── NAVIGATION ── */
.nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 var(--side-pad);
  height: var(--nav-h);
  background: var(--white);
  box-shadow: 0 2px 10px rgba(84,63,100,0.12);
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  z-index: 1000;
}
.nav-logo-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
}
.nav-logo-img {
  height: 2rem;       /* 32px — scales with rem */
  width: auto;
  display: block;
  flex-shrink: 0;
}
.nav-logo-text {
  font-family: var(--font-head);
  font-size: 1.0625rem;   /* 17px */
  font-weight: 700;
  color: var(--indigo);
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.nav-links {
  display: flex;
  gap: 2rem;
  align-items: center;
}
.nav-links a {
  font-family: var(--font-body);
  font-size: 0.6875rem;   /* 11px */
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--black);
  transition: color .2s;
}
.nav-links a:hover { color: var(--indigo); }
.nav-manifest {
  color: var(--indigo) !important;
  border-bottom: 1px solid var(--indigo);
  padding-bottom: 1px;
}

/* ── SITE CONTENT OFFSET ── */
.site-content {
  padding-top: var(--nav-h);
  flex: 1;
}

/* ── HORIZONTAL SCROLL INDICATOR ── */
/* Scroll indicator — no global margin; spacing controlled by .indicator-wrap */
.scroll-indicator-h {
  display: grid;
  grid-template-columns: 1fr 4rem 1fr;
  align-items: center;
  width: 83.33%;
  margin: 0 auto;
}
.scroll-indicator-h .h-line {
  height: 1px;
  background: var(--indigo);
  opacity: var(--divider-op);
}
.scroll-indicator-h .h-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Identical 40px white gap above and below the line on both sides of indigo */
.indicator-wrap {
  padding: 40px 0;
  background: var(--white);
}

/* ── HOMEPAGE: INTRO ── */
.intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--section-pad) var(--side-pad) 0;
}
.intro-cover-img {
  max-width: 26.25rem;   /* 420px */
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 2rem;
}
.intro h1 {
  font-family: var(--font-head);
  font-size: 3.25rem;    /* 52px */
  font-weight: 700;
  color: var(--indigo);
  letter-spacing: -0.01em;
  margin-bottom: 1.5rem;
}
.intro p {
  font-family: var(--font-body);
  font-size: 0.9375rem;  /* 15px */
  font-weight: 400;
  color: var(--black);
  line-height: 1.8;
  max-width: 40rem;      /* 640px */
  margin-bottom: 2.25rem;
}
.cta-block { margin-bottom: 3.5rem; }
.cta-block a {
  display: inline-block;
  background: var(--indigo);
  color: var(--white);
  font-family: var(--font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  padding: 0.875rem 1.75rem;
  transition: background .2s;
  box-shadow: 0 4px 12px rgba(84,63,100,0.15);
}
.cta-block a:hover { background: var(--royal); }

/* ── HOMEPAGE: CURRENT OBSERVATION ── */
.observation {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: var(--indigo);
  padding: var(--section-pad) var(--side-pad);
}
.obs-label {
  font-family: var(--font-body);
  font-size: 0.625rem;   /* 10px */
  font-weight: 700;
  letter-spacing: 0.2em;
  color: rgba(255,255,255,.45);
  text-transform: uppercase;
  margin-bottom: 1.375rem;
}
.obs-title {
  font-family: var(--font-head);
  font-size: 2.75rem;    /* 44px */
  font-weight: 700;
  color: var(--white);
  line-height: 1.08;
  max-width: 43.75rem;   /* 700px */
  margin-bottom: 2.125rem;
}
.obs-body {
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 400;
  color: rgba(255,255,255,.85);
  line-height: 1.8;
  max-width: 37.5rem;    /* 600px */
  margin-bottom: 1.875rem;
}
.obs-readmore-wrap {
  width: 100%;
  max-width: 37.5rem;
  display: flex;
  justify-content: flex-end;
}
.obs-readmore {
  font-family: var(--font-body);
  font-size: 0.75rem;    /* 12px */
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--white);
  border-bottom: 1px solid rgba(255,255,255,.35);
  padding-bottom: 2px;
  display: inline-block;
  transition: border-color .2s;
}
.obs-readmore:hover { border-color: #fff; }

/* ── HOMEPAGE: RECENT SIGNALS ── */
.signals-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  background: var(--white);
  padding: 0 var(--side-pad) var(--section-pad);
}
.signals-left {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-right: 3rem;
  position: relative;
  min-height: 22.5rem;   /* 360px */
}
.signals-left .illustration-stack {
  position: relative;
  width: 18.75rem;       /* 300px */
  height: 22.5rem;       /* 360px */
}
.signals-left .illustration-stack .il {
  position: absolute;
  width: 18.75rem;
  height: 22.5rem;
  object-fit: contain;
  opacity: 0;
  transition: opacity 0.25s ease-in-out;
  background: transparent;
  top: 0; left: 0;
}
.signals-left .illustration-stack .il.active { opacity: 1; }
.signals-right { display: flex; flex-direction: column; padding-left: 3rem; }
.signals-label {
  font-family: var(--font-body);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: var(--orchid);
  text-transform: uppercase;
  margin-bottom: 2.25rem;
}
.signal-feed-item {
  padding: 1.5rem;
  border-top: 1px solid rgba(33,22,64,.12);
  transition: background-color .2s ease, padding-left .2s ease;
  cursor: pointer;
  display: block;
}
.signal-feed-item:last-child { border-bottom: 1px solid rgba(33,22,64,.12); }
.signal-feed-item:hover { background-color: rgba(84,63,100,.04); padding-left: 2rem; }
.signal-tag {
  font-family: var(--font-body);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--royal);
  text-transform: uppercase;
  margin-bottom: 0.5625rem;
}
.signal-title {
  font-family: var(--font-head);
  font-size: 1.4375rem;  /* 23px */
  font-weight: 700;
  color: var(--indigo);
  line-height: 1.18;
  margin-bottom: 0.5625rem;
}
.signal-excerpt {
  font-family: var(--font-body);
  font-size: 0.8125rem;  /* 13px */
  color: #444;
  line-height: 1.65;
}

/* ── POST / ARTICLE ── */
.post-preview-wrapper {
  max-width: 43.75rem;   /* 700px */
  margin: 4.5rem auto;
  padding: 0 3rem;
  background: var(--white);
}
.post-case-label {
  font-family: var(--font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--royal);
  text-transform: uppercase;
  margin-bottom: 0.75rem;
}
.post-h1 {
  font-family: var(--font-head);
  font-size: 2.5rem;     /* 40px */
  font-weight: 700;
  color: var(--indigo);
  line-height: 1.15;
  margin-bottom: 1rem;
}
.post-byline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(33,22,64,.12);
  margin-bottom: 2.5rem;
}
.post-byline-text { font-family: var(--font-body); font-size: 0.8125rem; color: #6D6D85; }
.post-byline-actions { display: flex; align-items: center; gap: 0.875rem; }
.post-byline-actions svg { cursor: pointer; opacity: .7; transition: opacity .2s; }
.post-byline-actions svg:hover { opacity: 1; }
.post-feature-img { width: 100%; height: auto; margin: 2rem 0; display: block; border: none; background: transparent; mix-blend-mode: multiply; }
.post-body p { font-family: var(--font-body); font-size: 1rem; font-weight: 400; line-height: 1.7; color: var(--black); margin-bottom: 1.5rem; }
.post-body h2 { font-family: var(--font-head); font-size: 1.75rem; font-weight: 700; color: var(--indigo); margin: 2.5rem 0 1rem; }
.post-body h3 { font-family: var(--font-head); font-size: 1.375rem; font-weight: 700; color: var(--indigo); margin: 2rem 0 0.75rem; }
.post-body blockquote { border-left: 2px solid var(--indigo); padding-left: 1.5rem; margin: 2rem 0; font-family: var(--font-head); font-size: 1.375rem; color: var(--indigo); line-height: 1.5; }
.post-body a { color: var(--royal); border-bottom: 1px solid rgba(53,35,102,.3); transition: border-color .2s; }
.post-body a:hover { border-color: var(--royal); }

/* Paywall gate */
.gate-block {
  background: var(--indigo);
  padding: 2.5rem 3rem;
  margin: 2.5rem -3rem 1.5rem -3rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.gate-text { font-family: var(--font-body); font-size: 0.875rem; color: rgba(255,255,255,.9); line-height: 1.6; margin-bottom: 1.5rem; letter-spacing: 0.02em; text-align: center; }
.gate-cta {
  display: inline-block;
  background: transparent;
  color: var(--white);
  font-family: var(--font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  padding: 0.875rem 1.75rem;
  border: 1px solid var(--white);
  text-transform: uppercase;
  transition: background .2s, color .2s;
}
.gate-cta:hover { background: var(--white); color: var(--indigo); }

/* Post context */
.post-context { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(33,22,64,.15); display: flex; flex-direction: column; align-items: flex-start; }
.context-label { font-family: var(--font-body); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.2em; color: var(--black); text-transform: uppercase; margin-bottom: 1.25rem; }
.context-link { display: block; font-family: var(--font-body); font-size: 0.875rem; color: var(--indigo); margin-bottom: 0.75rem; font-weight: 400; transition: opacity .2s; }
.context-link:hover { opacity: .7; }
.post-return { display: inline-block; font-family: var(--font-body); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.02em; color: var(--indigo); margin-top: 1.75rem; transition: opacity .2s; }
.post-return:hover { opacity: .7; }

/* ── SUBSCRIBE MODAL ── */
.modal-overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: 2000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(33,22,64,0.68);
  backdrop-filter: blur(2px);
}
.modal-overlay.is-active { display: flex; }
.modal-frame {
  background: var(--white);
  border: 1px solid var(--indigo);
  padding: 3rem;
  max-width: 36.25rem;   /* 580px */
  width: 90%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.modal-title { font-family: var(--font-head); font-size: 2.25rem; font-weight: 700; color: var(--indigo); margin-bottom: 1rem; letter-spacing: 0.05em; }
.modal-body { font-family: var(--font-body); font-size: 0.875rem; font-weight: 400; color: var(--black); line-height: 1.75; max-width: 28.75rem; margin-bottom: 2.25rem; text-align: center; }
.form-row { display: flex; gap: 1.5rem; width: 100%; margin-bottom: 2rem; }
.modal-input {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(33,22,64,.35);
  padding: 0.625rem 0;
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--black);
  outline: none;
  transition: border-color .2s;
}
.modal-input:focus { border-bottom-color: var(--indigo); }
.modal-input::placeholder { color: rgba(33,22,64,.4); font-family: var(--font-body); font-size: 0.875rem; }
.modal-submit {
  width: 100%;
  background: var(--indigo);
  color: var(--white);
  font-family: var(--font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  padding: 1rem;
  border: none;
  text-transform: uppercase;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  transition: background .25s, box-shadow .25s;
  box-shadow: 0 4px 14px rgba(33,22,64,.25);
}
.modal-submit:hover { background: var(--royal); box-shadow: 0 6px 20px rgba(33,22,64,.35); }
.modal-submit:active { transform: translateY(1px); }
.trumpet-icon { opacity: 0; width: 0.875rem; height: 0.875rem; transition: opacity .25s; }
.modal-submit:hover .trumpet-icon { opacity: 1; }

/* ── BENEFITS / TIERS ── */
.benefits-wrapper { padding: 6.25rem var(--side-pad); background: var(--white); display: flex; flex-direction: column; align-items: center; text-align: center; }
.benefits-title { font-family: var(--font-head); font-size: 3.25rem; font-weight: 700; color: var(--indigo); margin-bottom: 1rem; letter-spacing: -0.01em; }
.benefits-sub { font-family: var(--font-body); font-size: 0.9375rem; font-weight: 400; line-height: 1.75; color: #666; max-width: 37.5rem; margin-bottom: 4rem; margin-left: auto; margin-right: auto; }
.benefits-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; width: 100%; max-width: 60rem; }
.tier-card { background: var(--indigo); color: var(--white); border: 1px solid var(--indigo); padding: 3rem 2.5rem; text-align: left; display: flex; flex-direction: column; justify-content: space-between; position: relative; transition: transform .3s cubic-bezier(.25,1,.5,1), box-shadow .3s; }
.tier-card:hover { transform: translateY(-0.25rem); box-shadow: 0 12px 28px rgba(33,22,64,.18); }
.tier-card.premium { border-color: var(--orchid); }
.premium-badge { position: absolute; top: 1.25rem; right: 1.25rem; font-family: var(--font-body); font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.14em; color: var(--orchid); text-transform: uppercase; border: 1px solid var(--orchid); padding: 4px 8px; }
.tier-name { font-family: var(--font-body); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,.6); margin-bottom: 0.75rem; }
.tier-price { font-family: var(--font-head); font-size: 2.5rem; font-weight: 700; color: var(--white); margin-bottom: 1.5rem; }
.tier-divider { height: 1px; background: rgba(255,255,255,.15); margin-bottom: 1.75rem; }
.tier-feature { font-family: var(--font-body); font-size: 0.8125rem; font-weight: 400; color: rgba(255,255,255,.9); padding: 0.75rem 0; border-bottom: 1px solid rgba(255,255,255,.08); display: flex; align-items: center; gap: 0.75rem; }
.tier-feature-off { color: rgba(255,255,255,.35); text-decoration: line-through; }
.feat-icon { width: 0.875rem; height: 0.875rem; flex-shrink: 0; }
.tier-button { display: block; width: 100%; text-align: center; margin-top: 2.5rem; padding: 0.875rem; border: 1px solid var(--white); color: var(--white); font-family: var(--font-body); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; background: transparent; transition: background .2s, color .2s; }
.tier-button:hover { background: var(--white); color: var(--indigo); }

/* ── FOOTER ── */
/* border-top uses same opacity as .scroll-indicator-h .h-line */
.footer {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: center;
  background: var(--white);
  padding: 0 var(--side-pad);
  height: 60px !important;  /* strictly 60px — not relative, not overridable */
  min-height: 60px;
  max-height: 60px;
  border-top: 1px solid rgba(33, 22, 64, var(--divider-op));
  flex-shrink: 0;
  overflow: hidden;
}
.footer-col1 { display: flex; align-items: center; gap: 0.625rem; }
.footer-col1 span { font-family: var(--font-body); font-size: 0.6875rem; color: #666; }
.footer-col2 { text-align: center; }
.footer-col2 a { font-family: var(--font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.14em; color: var(--royal); text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; transition: color .2s; }
.footer-col2 a:hover { color: var(--indigo); }
.footer-col3 { text-align: right; }
.footer-col3 a { font-family: var(--font-body); font-size: 0.6875rem; color: var(--orchid); transition: color .2s; }
.footer-col3 a:hover { color: var(--indigo); }
.pipe { color: rgba(84,63,100,.35); margin: 0 0.5rem; font-size: 0.6875rem; }

/* ── TAG DOSSIER ── */
.dossier-hero { background: var(--indigo); color: var(--white); padding: var(--section-pad) var(--side-pad); width: 100%; display: flex; flex-direction: column; align-items: center; text-align: center; }
.dossier-hero-inner { max-width: 50rem; margin: 0 auto; }
.dossier-label { font-family: var(--font-body); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.22em; color: rgba(255,255,255,.6); text-transform: uppercase; margin-bottom: 1.5rem; }
.dossier-title { white-space: nowrap; font-family: var(--font-head); font-size: 3rem; font-weight: 700; color: var(--white); margin-bottom: 2rem; letter-spacing: 0.02em; }
.dossier-index { display: flex; gap: 2.5rem; justify-content: center; align-items: flex-start; margin-bottom: 2.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(255,255,255,.12); }
.dossier-index-item { display: flex; flex-direction: column; align-items: center; gap: 0.375rem; }
.dossier-index-key { font-family: var(--font-body); font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.2em; color: rgba(255,255,255,.45); text-transform: uppercase; }
.dossier-index-val { font-family: var(--font-body); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; color: var(--orchid); text-transform: uppercase; }
.dossier-synthesis-label { font-family: var(--font-body); font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.2em; color: rgba(255,255,255,.4); text-transform: uppercase; margin-bottom: 0.875rem; }
.dossier-synthesis { font-family: var(--font-body); font-size: 0.9375rem; font-weight: 400; line-height: 1.8; color: rgba(255,255,255,.85); max-width: 42.5rem; text-align: center; margin: 0 auto; }
.archive-stream { background: var(--white); padding: 0; max-width: 52.5rem; margin: 0 auto; box-sizing: border-box; }
.stream-header-label { font-family: var(--font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.2em; color: var(--black); text-transform: uppercase; padding: 2.5rem 2rem 1.25rem; }
.signals-table-header { display: grid; grid-template-columns: 1fr 6.875rem 5.625rem; gap: 0; padding: 0 2rem 0.75rem; border-bottom: 1px solid rgba(33,22,64,.2); }
.signals-table-header span { font-family: var(--font-body); font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.18em; color: rgba(33,22,64,.4); text-transform: uppercase; }
.signals-table-header span:nth-child(2), .signals-table-header span:nth-child(3) { text-align: right; }
.archive-item { display: grid; grid-template-columns: 1fr 6.875rem 5.625rem; gap: 0; align-items: center; padding: 1.25rem 2rem; border-top: 1px solid rgba(33,22,64,.1); background: transparent; transition: background-color .2s, padding-left .2s; text-decoration: none; color: inherit; cursor: pointer; }
.archive-item:last-child { border-bottom: 1px solid rgba(33,22,64,.1); }
.archive-item:hover { background-color: rgba(84,63,100,.04); padding-left: 2.5rem; }
.archive-item-body {}
.archive-item-tag { font-family: var(--font-body); font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.16em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.3125rem; }
.archive-item-title { font-family: var(--font-head); font-size: 1.25rem; font-weight: 700; color: var(--indigo); line-height: 1.2; }
.archive-item-date { font-family: var(--font-body); font-size: 0.6875rem; color: #777; text-align: right; }
.archive-item-access { font-family: var(--font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.1em; text-align: right; text-transform: uppercase; }
.access-manifest { color: var(--royal); }
.access-open { color: #4a7c59; }

/* ── MANIFEST ARCHIVE ── */
.manifest-archive-page {}
.archive-header { text-align: center; margin-bottom: 5rem; padding: 5rem var(--side-pad) 0; }
.archive-header h1 { font-family: var(--font-head); font-size: 4rem; color: var(--indigo); margin-bottom: 0.5rem; }
.archive-header p { font-family: var(--font-body); font-size: 1rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--orchid); }
.manifest-archive { display: grid; grid-template-columns: 15rem 1fr; gap: 5rem; max-width: 65.625rem; margin: 0 auto; padding: 0 var(--side-pad) 6.25rem; align-items: start; }
.salon-aside { display: flex; flex-direction: column; gap: 3rem; position: sticky; top: 2.5rem; align-self: start; }
.curator-log h4, .salon-inquiry h4 { font-family: var(--font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.2em; margin-bottom: 1rem; color: var(--royal); text-transform: uppercase; }
.curator-log p { font-family: var(--font-body); font-size: 0.8125rem; line-height: 1.6; color: #444; }
.vault-stream { overflow-y: auto; max-height: 56.25rem; padding-right: 0.5rem; scrollbar-width: none; overflow-x: visible; }
.vault-stream::-webkit-scrollbar { display: none; }
.vault-carousel { margin-bottom: 2.5rem; padding-top: 0.5rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(33,22,64,.1); overflow: visible; }
.vault-carousel-label { font-family: var(--font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.2em; margin-bottom: 0.875rem; color: var(--royal); text-transform: uppercase; }
.vault-carousel-track { display: flex; gap: 1rem; overflow-x: auto; overflow-y: visible; scroll-behavior: smooth; -ms-overflow-style: none; scrollbar-width: none; padding-bottom: 1rem; padding-top: 0.25rem; }
.vault-carousel-track::-webkit-scrollbar { display: none; }
.vault-carousel-card { flex-shrink: 0; width: 12.5rem; border: none; background: #211640; cursor: pointer; transition: transform .2s, box-shadow .2s; display: flex; flex-direction: column; }
.vault-carousel-card:hover { transform: translateY(-0.25rem); box-shadow: 0 8px 20px rgba(33,22,64,.22); }
.vault-carousel-thumb { width: 100%; height: 6.25rem; background: var(--white); display: flex; align-items: center; justify-content: center; border-bottom: 1px solid rgba(33,22,64,.15); }
.vault-carousel-body { padding: 0.875rem; background: #211640; }
.vault-carousel-tag { font-family: var(--font-body); font-size: 0.5rem; font-weight: 700; letter-spacing: 0.14em; color: rgba(255,255,255,.55); text-transform: uppercase; margin-bottom: 0.375rem; }
.vault-carousel-title { font-family: var(--font-head); font-size: 0.9375rem; font-weight: 700; color: var(--white); line-height: 1.2; }
.aside-carousel { display: none; }
.salon-inquiry {}
.correspondence-fields {}
.correspondence-hidden-fields { display: none; flex-direction: column; gap: 0; }
.correspondence-hidden-fields.expanded { display: flex; }
.correspondence-input-row { position: relative; border-bottom: 1px solid rgba(33,22,64,.25); margin-bottom: 0.75rem; }
.correspondence-input-row input, .correspondence-input-row textarea { width: 100%; border: none; padding: 0.625rem 0; font-family: var(--font-body); font-size: 0.75rem; outline: none; background: transparent; color: var(--black); resize: none; }
.correspondence-input-row input::placeholder, .correspondence-input-row textarea::placeholder { color: rgba(33,22,64,.4); }
.correspondence-textarea { min-height: 3rem; transition: min-height .25s ease; }
.correspondence-textarea.open { min-height: 5rem; }
.correspondence-submit { display: none; margin-top: 0.75rem; background: var(--indigo); color: var(--white); border: none; width: 100%; padding: 0.625rem; font-family: var(--font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; cursor: pointer; transition: background .2s; }
.correspondence-submit.expanded { display: block; }
.correspondence-submit:hover { background: var(--royal); }
.vault-stream-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.25rem; }
.vault-stream-header h4 { font-family: var(--font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.2em; color: var(--royal); text-transform: uppercase; }
.vault-search { display: flex; align-items: center; gap: 0.5rem; border-bottom: 1px solid rgba(33,22,64,.25); padding-bottom: 4px; }
.vault-search input { border: none; outline: none; font-family: var(--font-body); font-size: 0.6875rem; color: var(--black); background: transparent; width: 8.75rem; }
.vault-search input::placeholder { color: rgba(33,22,64,.35); }
.vault-filter-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1.75rem; }
.vault-filter-select { border: none; border-bottom: 1px solid rgba(33,22,64,.2); font-family: var(--font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.1em; color: var(--indigo); text-transform: uppercase; background: transparent; outline: none; padding: 0.375rem 0; cursor: pointer; }
.vault-filter-toggle { display: flex; align-items: center; gap: 0.375rem; font-family: var(--font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.1em; color: rgba(33,22,64,.4); text-transform: uppercase; cursor: pointer; }
.toggle-switch { width: 1.75rem; height: 0.875rem; background: rgba(33,22,64,.15); position: relative; cursor: pointer; transition: background .2s; }
.toggle-switch.on { background: var(--indigo); }
.toggle-knob { position: absolute; top: 2px; left: 2px; width: 0.625rem; height: 0.625rem; background: var(--white); transition: left .2s; }
.toggle-switch.on .toggle-knob { left: 1rem; }
.vault-card { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem; border-top: 1px solid rgba(33,22,64,.12); text-decoration: none; color: inherit; transition: background .2s, padding-left .2s; cursor: pointer; }
.vault-card:last-child { border-bottom: 1px solid rgba(33,22,64,.12); }
.vault-card:hover { background: var(--indigo); color: var(--white); padding-left: 2rem; }
.vault-card:hover .vault-tag, .vault-card:hover .vault-date { color: rgba(255,255,255,.5); }
.vault-card:hover .vault-title { color: var(--white); }
.vault-card:hover .vault-chevron { color: var(--white); }
.vault-card:hover .vault-excerpt { color: rgba(255,255,255,.85); }
.vault-tag { font-family: var(--font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.16em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.5rem; transition: color .2s; }
.vault-title { font-family: var(--font-head); font-size: 1.375rem; font-weight: 700; color: var(--indigo); line-height: 1.18; margin-bottom: 0.375rem; transition: color .2s; }
.vault-excerpt { font-family: var(--font-body); font-size: 0.75rem; color: #555; line-height: 1.6; transition: color .2s; }
.vault-date { font-family: var(--font-body); font-size: 0.6875rem; color: #999; transition: color .2s; }
.vault-chevron { font-size: 1.125rem; color: var(--indigo); transition: color .2s; padding-left: 1.5rem; flex-shrink: 0; }

/* ── GHOST KOENIG CARD CLASSES ── */
.kg-width-wide { margin-left: -8%; margin-right: -8%; }
.kg-width-full { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw; }
.kg-image { max-width: 100%; height: auto; display: block; }
.kg-gallery-container { display: flex; flex-direction: column; }
.kg-gallery-row { display: flex; flex-direction: row; justify-content: center; gap: 4px; margin-bottom: 4px; }
.kg-gallery-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kg-bookmark-card { border: 1px solid rgba(33,22,64,.12); display: flex; }
.kg-bookmark-content { padding: 1.25rem; }
.kg-bookmark-title { font-family: var(--font-body); font-size: 0.875rem; font-weight: 700; color: var(--indigo); }
.kg-bookmark-description { font-family: var(--font-body); font-size: 0.8125rem; color: #666; margin-top: 0.375rem; }
.kg-bookmark-url { font-family: var(--font-body); font-size: 0.6875rem; color: #999; margin-top: 0.5rem; }
.kg-toggle-card { border: 1px solid rgba(33,22,64,.12); padding: 1.25rem; }
.kg-toggle-heading { font-family: var(--font-body); font-size: 0.9375rem; font-weight: 700; color: var(--indigo); }
.kg-callout-card { display: flex; gap: 1rem; padding: 1.25rem; background: rgba(33,22,64,.04); margin-bottom: 1.5rem; }
.kg-callout-text { font-family: var(--font-body); font-size: 0.9375rem; line-height: 1.7; color: var(--black); }

/* ── ABOUT PAGE ── */
/* min-height ensures footer sits at bottom without crowding content */
.about-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
  max-width: 68.75rem;
  margin: 0 auto;
  padding: 2.5rem var(--side-pad);  /* 40px top/bottom on the outer wrapper */
  min-height: calc(100vh - var(--nav-h) - 60px);
}
.about-graphic {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2.5rem 0;   /* 40px top and bottom on the image block */
}
.about-cover-img {
  max-width: 100%;
  width: 100%;
  height: auto;
  display: block;
}
.about-content {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding: 2.5rem 0;   /* 40px top and bottom on the text block — matches image */
}
.about-content h1 {
  font-family: var(--font-head);
  font-size: 2rem;       /* 32px */
  font-weight: 700;
  color: var(--indigo);
  letter-spacing: 0.05em;
}
.about-content p {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.8;
  color: var(--black);
  max-width: 31.25rem;   /* 500px */
}
.about-divider { width: 2.75rem; height: 1px; background: var(--indigo); }

/* ── RESPONSIVE ── */
@media (max-width: 60rem) {
  :root {
    --section-pad: 3rem;
    --side-pad: 1.5rem;
  }
  .signals-section { grid-template-columns: 1fr; }
  .signals-left { display: none; }
  .signals-right { padding-left: 0; }
  .benefits-grid { grid-template-columns: 1fr; }
  .manifest-archive { grid-template-columns: 1fr; }
  .about-wrapper { grid-template-columns: 1fr; gap: 2rem; padding: 3rem var(--side-pad); }
  .nav-logo-text { display: none; }
}
@media (max-width: 40rem) {
  .nav { padding: 0 1rem; }
  .nav-links { gap: 1rem; }
  .post-preview-wrapper { padding: 0 1.5rem; }
  .form-row { flex-direction: column; gap: 1rem; }
  .signals-table-header,
  .archive-item { grid-template-columns: 1fr 5rem; }
  .signals-table-header span:nth-child(3),
  .archive-item-access { display: none; }
  .footer { grid-template-columns: 1fr 1fr; }
  .footer-col2 { display: none; }
}
