/* ============================================================================
   AMP V19 · LIFE SPREAD · sub-page life-injection stylesheet · 2026-05-17
   Chairman directive: "the other pages have no life lots of life on landing page
   maybe even too much spread it over all the pages and bring them to life"
   Scaled subset of the landing-page energy — calibrated, not overloaded.
   ============================================================================ */

/* ── Scroll-reveal: every element with .lf-reveal fades up on enter ──────── */
.lf-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 720ms cubic-bezier(.2,.7,.2,1),
              transform 720ms cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}
.lf-reveal.is-revealed {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .lf-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ── Hero ambient backdrop — Deep Night gradient + faint sunflower breathe ─ */
.lf-hero-ambient {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.lf-hero-ambient::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(201,168,76,0.10) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 100%, rgba(15,98,254,0.06) 0%, transparent 60%);
  opacity: 1;
}
.lf-hero-ambient svg.lf-watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  width: clamp(380px, 60vw, 720px);
  height: clamp(380px, 60vw, 720px);
  transform: translate(-50%, -50%);
  opacity: 0.045;
  animation: lf-breathe 14s ease-in-out infinite;
  will-change: transform, opacity;
}
@keyframes lf-breathe {
  0%, 100% { opacity: 0.035; transform: translate(-50%, -50%) scale(1) rotate(0deg); }
  50%      { opacity: 0.065; transform: translate(-50%, -50%) scale(1.04) rotate(8deg); }
}

/* ── Hover micro-lift — applied to .lf-lift on cards, links, buttons ──────── */
.lf-lift {
  transition: transform 220ms cubic-bezier(.2,.7,.2,1),
              box-shadow 220ms cubic-bezier(.2,.7,.2,1),
              border-color 220ms ease;
  will-change: transform, box-shadow;
}
.lf-lift:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(0,0,0,0.35), 0 0 0 1px rgba(201,168,76,0.28);
}

/* ── Cursor sparkle dot (created by JS, this is the styling) ──────────────── */
.lf-spark {
  position: fixed;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,213,107,0.95) 0%, rgba(201,168,76,0.45) 60%, transparent 100%);
  pointer-events: none;
  z-index: 9999;
  opacity: 0;
  transition: opacity 600ms ease, transform 600ms cubic-bezier(.2,.7,.2,1);
  will-change: transform, opacity;
}

/* ── Verb cycle italic rotator (optional, applied if H1 has .lf-verb-cycle) ─ */
.lf-verb-cycle {
  display: inline-block;
  font-style: italic;
  color: var(--c-gold, #C9A84C);
  transition: opacity 380ms ease, transform 380ms ease;
}
.lf-verb-cycle.is-leaving {
  opacity: 0;
  transform: translateY(-6px);
}

/* ── Ask CY prompt strip — bottom of every sub-page ──────────────────────── */
.ask-cy-strip {
  position: relative;
  margin: 56px auto 24px;
  max-width: 980px;
  padding: 28px 32px;
  background:
    linear-gradient(180deg, rgba(2,7,26,0.55) 0%, rgba(0,16,51,0.78) 100%);
  border: 1px solid rgba(201,168,76,0.22);
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.35);
  overflow: hidden;
}
.ask-cy-strip::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 0% 0%, rgba(201,168,76,0.10) 0%, transparent 55%),
    radial-gradient(ellipse at 100% 100%, rgba(15,98,254,0.07) 0%, transparent 60%);
  pointer-events: none;
}
.ask-cy-strip__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  position: relative;
  z-index: 1;
}
.ask-cy-strip__title {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-size: 19px;
  font-weight: 500;
  color: #F3EFE6;
  letter-spacing: -0.01em;
  margin: 0;
}
.ask-cy-strip__title::before {
  content: "";
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #C9A84C;
  box-shadow: 0 0 12px rgba(201,168,76,0.7);
  margin-right: 10px;
  vertical-align: middle;
  animation: lf-cy-pulse 2.4s ease-in-out infinite;
}
@keyframes lf-cy-pulse {
  0%, 100% { transform: scale(1);    box-shadow: 0 0 12px rgba(201,168,76,0.7); }
  50%      { transform: scale(1.18); box-shadow: 0 0 22px rgba(255,213,107,0.95); }
}
.ask-cy-strip__hint {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
.ask-cy-strip__tag {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-style: italic;
  font-size: 14px;
  color: rgba(255,255,255,0.72);
  margin: 0 0 16px 0;
  position: relative;
  z-index: 1;
}
.ask-cy-strip__form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  position: relative;
  z-index: 1;
}
.ask-cy-strip__input {
  flex: 1 1 240px;
  min-width: 200px;
  background: rgba(2,7,26,0.65);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 6px;
  padding: 12px 14px;
  font-family: 'IBM Plex Sans', -apple-system, sans-serif;
  font-size: 15px;
  color: #F3EFE6;
  outline: none;
  transition: border-color 200ms ease, box-shadow 200ms ease;
}
.ask-cy-strip__input::placeholder {
  color: rgba(255,255,255,0.40);
  font-style: italic;
}
.ask-cy-strip__input:focus {
  border-color: rgba(201,168,76,0.6);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.15);
}
.ask-cy-strip__submit, .ask-cy-strip__voice {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 12px 18px;
  border-radius: 6px;
  cursor: pointer;
  transition: background 200ms ease, transform 160ms ease, color 200ms ease;
}
.ask-cy-strip__submit {
  background: #C9A84C;
  color: #001033;
  border: 1px solid #C9A84C;
}
.ask-cy-strip__submit:hover {
  background: #F2B845;
  transform: translateY(-1px);
}
.ask-cy-strip__voice {
  background: transparent;
  color: #C9A84C;
  border: 1px solid #C9A84C;
}
.ask-cy-strip__voice:hover {
  background: rgba(201,168,76,0.12);
  transform: translateY(-1px);
}
.ask-cy-strip__voice.is-listening {
  background: #C9A84C;
  color: #001033;
}
.ask-cy-strip__answer {
  margin-top: 18px;
  padding: 16px 18px;
  background: rgba(0,16,51,0.65);
  border-left: 2px solid rgba(201,168,76,0.6);
  border-radius: 0 6px 6px 0;
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-size: 15px;
  line-height: 1.62;
  color: rgba(255,255,255,0.86);
  min-height: 24px;
  position: relative;
  z-index: 1;
}
.ask-cy-strip__answer em { color: #C9A84C; font-style: italic; }
.ask-cy-strip__answer .cursor {
  display: inline-block;
  width: 7px; height: 14px;
  vertical-align: -2px;
  background: #C9A84C;
  margin-left: 3px;
  animation: lf-blink 1s steps(2) infinite;
}
@keyframes lf-blink { 50% { opacity: 0; } }

/* ── Signature animation styles (per-page hero anchors) ──────────────────── */

/* signature-anim · animated growth-arc curve (continuum, mechanism) */
.signature-anim.lf-arc svg path {
  stroke-dasharray: 600;
  stroke-dashoffset: 600;
  animation: lf-arc-draw 2.4s cubic-bezier(.6,0,.4,1) 0.4s forwards;
}
@keyframes lf-arc-draw {
  to { stroke-dashoffset: 0; }
}

/* signature-anim · 3 sundial gauges (sovereign, numbers) */
.signature-anim.lf-sundials {
  display: flex;
  gap: 24px;
  justify-content: center;
  flex-wrap: wrap;
  margin: 28px 0;
}
.signature-anim.lf-sundials .sg {
  width: 180px;
  height: 180px;
  position: relative;
}
.signature-anim.lf-sundials .sg svg { width: 100%; height: 100%; }
.signature-anim.lf-sundials .sg-needle {
  transform-origin: 100px 100px;
  animation: lf-sg-sweep 5s cubic-bezier(.4,0,.4,1) infinite alternate;
}
.signature-anim.lf-sundials .sg:nth-child(2) .sg-needle { animation-delay: 0.5s; }
.signature-anim.lf-sundials .sg:nth-child(3) .sg-needle { animation-delay: 1.0s; }
@keyframes lf-sg-sweep {
  from { transform: rotate(-55deg); }
  to   { transform: rotate(55deg);  }
}

/* signature-anim · capital stack 60/15/25 bar (stack) */
.signature-anim.lf-capstack {
  display: flex;
  gap: 6px;
  align-items: flex-end;
  height: 220px;
  margin: 32px auto;
  max-width: 480px;
  padding: 16px;
  background: rgba(0,16,51,0.35);
  border-radius: 10px;
  border: 1px solid rgba(201,168,76,0.15);
}
.signature-anim.lf-capstack .cs-bar {
  flex: 1;
  border-radius: 3px;
  transform-origin: bottom;
  animation: lf-capstack-rise 1.6s cubic-bezier(.2,.7,.2,1) both;
  position: relative;
}
.signature-anim.lf-capstack .cs-bar::after {
  content: attr(data-label);
  position: absolute;
  bottom: -22px;
  left: 50%;
  transform: translateX(-50%);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.70);
}
.signature-anim.lf-capstack .cs-inst {
  background: linear-gradient(180deg, #0F62FE 0%, #0a4ec2 100%);
  height: 100%;
  animation-delay: 0.2s;
}
.signature-anim.lf-capstack .cs-amp {
  background: linear-gradient(180deg, #C9A84C 0%, #8a6f2e 100%);
  height: 42%;
  animation-delay: 0.45s;
}
.signature-anim.lf-capstack .cs-sponsor {
  background: linear-gradient(180deg, #34D399 0%, #1b8a6c 100%);
  height: 25%;
  animation-delay: 0.7s;
}
@keyframes lf-capstack-rise {
  from { transform: scaleY(0); }
  to   { transform: scaleY(1); }
}

/* signature-anim · twelve pillars constellation (dna) — clean subtle drift */
.signature-anim.lf-constellation {
  position: relative;
  width: 100%;
  max-width: 360px;
  height: 320px;
  margin: 36px auto;
  opacity: 0.9;
}
.signature-anim.lf-constellation .lf-orb {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0; left: 0;
  transform-origin: 50% 50%;
  animation: lf-orb-spin 120s linear infinite;
  will-change: transform;
}
.signature-anim.lf-constellation .lf-orb:nth-child(2) { animation-duration: 150s; animation-direction: reverse; }
.signature-anim.lf-constellation .lf-orb:nth-child(3) { animation-duration: 185s; }
.signature-anim.lf-constellation .lf-dot {
  position: absolute;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: radial-gradient(circle, #FFD56B 0%, #C9A84C 55%, transparent 100%);
  box-shadow: 0 0 7px rgba(201,168,76,0.35);
  top: 50%; left: 50%;
  margin: -3.5px 0 0 -3.5px;
  transform-origin: center;
  opacity: 0.72;
  animation: lf-dot-twinkle 5.5s ease-in-out infinite;
}
/* stagger twinkle so dots breathe independently, not in lockstep */
.signature-anim.lf-constellation .lf-orb:nth-child(1) .lf-dot:nth-child(2n) { animation-delay: 1.1s; }
.signature-anim.lf-constellation .lf-orb:nth-child(2) .lf-dot { animation-duration: 6.5s; }
.signature-anim.lf-constellation .lf-orb:nth-child(2) .lf-dot:nth-child(2n) { animation-delay: 2.2s; }
.signature-anim.lf-constellation .lf-orb:nth-child(3) .lf-dot { animation-duration: 7.5s; }
.signature-anim.lf-constellation .lf-orb:nth-child(3) .lf-dot:nth-child(2n) { animation-delay: 3.0s; }
@keyframes lf-orb-spin {
  to { transform: rotate(360deg); }
}
@keyframes lf-dot-twinkle {
  0%, 100% { opacity: 0.45; }
  50%      { opacity: 0.95; }
}
/* Reduced motion: calm static rings — no spin, no twinkle */
@media (prefers-reduced-motion: reduce) {
  .signature-anim.lf-constellation .lf-orb,
  .signature-anim.lf-constellation .lf-dot { animation: none !important; }
  .signature-anim.lf-constellation .lf-dot { opacity: 0.6; }
}

/* signature-anim · sequential numbered reveal (doctrine) */
.signature-anim.lf-sequence .seq-item {
  opacity: 0;
  transform: translateX(-20px);
  transition: opacity 600ms cubic-bezier(.2,.7,.2,1),
              transform 600ms cubic-bezier(.2,.7,.2,1);
}
.signature-anim.lf-sequence.is-revealed .seq-item {
  opacity: 1;
  transform: translateX(0);
}
.signature-anim.lf-sequence.is-revealed .seq-item:nth-child(1) { transition-delay: 0.10s; }
.signature-anim.lf-sequence.is-revealed .seq-item:nth-child(2) { transition-delay: 0.25s; }
.signature-anim.lf-sequence.is-revealed .seq-item:nth-child(3) { transition-delay: 0.40s; }
.signature-anim.lf-sequence.is-revealed .seq-item:nth-child(4) { transition-delay: 0.55s; }
.signature-anim.lf-sequence.is-revealed .seq-item:nth-child(5) { transition-delay: 0.70s; }
.signature-anim.lf-sequence.is-revealed .seq-item:nth-child(6) { transition-delay: 0.85s; }

/* signature-anim · letter-by-letter reveal (architect) */
.signature-anim.lf-letters {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-style: italic;
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.5;
  color: #F3EFE6;
  max-width: 880px;
  margin: 28px auto;
  text-align: center;
}
.signature-anim.lf-letters .lf-letter {
  display: inline-block;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 420ms ease, transform 420ms ease;
}
.signature-anim.lf-letters.is-revealed .lf-letter {
  opacity: 1;
  transform: translateY(0);
}

/* signature-anim · counter (discovery) */
.signature-anim.lf-counter {
  text-align: center;
  margin: 28px 0;
}
.signature-anim.lf-counter .lf-counter-value {
  display: inline-block;
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-weight: 200;
  font-size: clamp(64px, 9vw, 132px);
  letter-spacing: -0.025em;
  background: linear-gradient(180deg, #FFD56B 0%, #C9A84C 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  line-height: 1;
}
.signature-anim.lf-counter .lf-counter-cap {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.62);
  margin-top: 12px;
}

/* signature-anim · breathing border (about) */
.signature-anim.lf-breathing-border {
  position: relative;
  padding: 22px 26px;
  border: 1px solid rgba(201,168,76,0.35);
  border-radius: 10px;
  background: rgba(0,16,51,0.45);
  margin: 24px auto;
  max-width: 720px;
  animation: lf-border-breathe 4.2s ease-in-out infinite;
}
@keyframes lf-border-breathe {
  0%, 100% { border-color: rgba(201,168,76,0.30); box-shadow: 0 0 0 0 rgba(201,168,76,0.0); }
  50%      { border-color: rgba(201,168,76,0.62); box-shadow: 0 0 28px 0 rgba(201,168,76,0.18); }
}

/* signature-anim · 3 doors (door) */
.signature-anim.lf-three-doors {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px;
  margin: 28px 0;
}

/* signature-anim · ripple badges (governance) */
.signature-anim.lf-ripple-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 28px 0;
}
.signature-anim.lf-ripple-badges .rb-cell {
  position: relative;
  padding: 14px 22px;
  border: 1px solid rgba(201,168,76,0.30);
  border-radius: 999px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  background: rgba(0,16,51,0.55);
  overflow: hidden;
  transition: color 200ms ease, border-color 200ms ease;
  cursor: default;
}
.signature-anim.lf-ripple-badges .rb-cell::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--x,50%) var(--y,50%), rgba(255,213,107,0.4) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 380ms ease;
  pointer-events: none;
}
.signature-anim.lf-ripple-badges .rb-cell:hover {
  color: #FFD56B;
  border-color: #C9A84C;
}
.signature-anim.lf-ripple-badges .rb-cell:hover::after { opacity: 1; }

/* signature-anim · 4 platform cards (offerings) */
.signature-anim.lf-platform-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin: 28px 0;
}
.signature-anim.lf-platform-cards .pc-card {
  padding: 22px 20px;
  background: rgba(0,16,51,0.55);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 10px;
  transition: transform 240ms ease, box-shadow 240ms ease, border-color 240ms ease;
}
.signature-anim.lf-platform-cards .pc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(0,0,0,0.40);
  border-color: rgba(201,168,76,0.40);
}
.signature-anim.lf-platform-cards .pc-eyebrow {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #C9A84C;
}
.signature-anim.lf-platform-cards .pc-title {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-size: 19px;
  color: #F3EFE6;
  margin: 8px 0 6px;
}
.signature-anim.lf-platform-cards .pc-body {
  font-size: 14px;
  color: rgba(255,255,255,0.72);
  line-height: 1.55;
}

/* signature-anim · sundial gauge slider-reactive (calculator) */
.signature-anim.lf-calc-sundial {
  display: flex;
  justify-content: center;
  margin: 22px 0;
}
.signature-anim.lf-calc-sundial svg {
  width: 220px;
  height: 220px;
}
.signature-anim.lf-calc-sundial .cs-needle {
  transform-origin: 100px 100px;
  transform: rotate(0deg);
  transition: transform 600ms cubic-bezier(.2,.7,.2,1);
}

/* signature-anim · expand/collapse cards (idea) */
.signature-anim.lf-faq .faq-item {
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 8px;
  background: rgba(0,16,51,0.45);
  margin-bottom: 10px;
  overflow: hidden;
}
.signature-anim.lf-faq .faq-q {
  padding: 16px 18px;
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-size: 16px;
  color: #F3EFE6;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.signature-anim.lf-faq .faq-q::after {
  content: "+";
  font-family: 'IBM Plex Mono', monospace;
  color: #C9A84C;
  font-size: 18px;
  transition: transform 240ms ease;
}
.signature-anim.lf-faq .faq-item.is-open .faq-q::after { transform: rotate(45deg); }
.signature-anim.lf-faq .faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 320ms cubic-bezier(.2,.7,.2,1);
  padding: 0 18px;
  color: rgba(255,255,255,0.78);
  font-size: 14px;
  line-height: 1.6;
}
.signature-anim.lf-faq .faq-item.is-open .faq-a {
  max-height: 400px;
  padding: 0 18px 18px;
}

/* signature-anim · curriculum progress (university) */
.signature-anim.lf-curriculum {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin: 28px 0;
}
.signature-anim.lf-curriculum .cu-mod {
  padding: 18px;
  background: rgba(0,16,51,0.50);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 8px;
  position: relative;
  overflow: hidden;
  transition: transform 240ms ease, border-color 240ms ease;
}
.signature-anim.lf-curriculum .cu-mod:hover {
  transform: translateY(-3px);
  border-color: rgba(201,168,76,0.40);
}
.signature-anim.lf-curriculum .cu-mod::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  width: 0;
  background: linear-gradient(90deg, #C9A84C 0%, #FFD56B 100%);
  transition: width 480ms ease;
}
.signature-anim.lf-curriculum .cu-mod:hover::after { width: 100%; }

/* signature-anim · sequential steps (mechanism) */
.signature-anim.lf-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin: 28px 0;
  counter-reset: step;
}
.signature-anim.lf-steps .step-card {
  padding: 22px 20px;
  background: rgba(0,16,51,0.50);
  border: 1px solid rgba(201,168,76,0.20);
  border-radius: 10px;
  position: relative;
  counter-increment: step;
  transition: transform 240ms ease, border-color 240ms ease;
}
.signature-anim.lf-steps .step-card::before {
  content: counter(step,decimal-leading-zero);
  position: absolute;
  top: -14px;
  left: 18px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.12em;
  color: #001033;
  background: #C9A84C;
  padding: 4px 10px;
  border-radius: 4px;
}
.signature-anim.lf-steps .step-card:hover {
  transform: translateY(-3px);
  border-color: #C9A84C;
}

/* ── Responsive niceties ──────────────────────────────────────────────────── */
@media (max-width: 720px) {
  .ask-cy-strip { padding: 22px 18px; margin: 36px 16px 16px; border-radius: 10px; }
  .ask-cy-strip__form { flex-direction: column; }
  .ask-cy-strip__input, .ask-cy-strip__submit, .ask-cy-strip__voice { width: 100%; }
  .signature-anim.lf-sundials .sg { width: 140px; height: 140px; }
}
