/* Lifeline Lucy — calm and legible for readers 50+: deep harbor navy, rose heart, a single heartbeat line. */
:root {
  --bg: #F5F7FA; --hero-bg: #EAF0F6; --tint: #EEF2F7; --card: #FFFFFF; --header-bg: #F5F7FA;
  --ink: #17233A; --muted: #47536A; --line: #D9E0EA; --line-strong: #AEBACB; --track: #E1E7EF;
  --accent: #C7404F; --accent-hover: #AE3442; --accent-ink: #FFFFFF; --accent-text: #B33A49;
  --link: #1E5A87; --eyebrow: #2C6A8A; --check: #2A8468; --focus: #1E5A87; --danger: #B3261E;
  --opt-bg: #FFFFFF; --opt-on: #FBECEE; --input-bg: #FFFFFF; --consent-bg: #F0F3F8;
  --icon-bg: #E5EDF5; --icon-ink: #1E5A87; --pulse: #C7404F;
  --band-bg: #17233A; --band-ink: #F2F5FA;
  --footer-bg: #131D30; --footer-ink: #E5EAF2; --footer-muted: #A0ABBE; --footer-line: #26324A;
  --logo-heart: #C7404F; --logo-line: #FFFFFF;
  --card-shadow: 0 1px 0 rgba(23, 35, 58, 0.04), 0 24px 50px -30px rgba(23, 35, 58, 0.35);
  --display: "Literata", "Iowan Old Style", Georgia, serif;
  --body: "Atkinson Hyperlegible", "Segoe UI", system-ui, -apple-system, sans-serif;
  --mono: "Atkinson Hyperlegible", "Segoe UI", system-ui, sans-serif;
  --display-weight: 600; --display-track: -0.01em; --body-size: 18px; --btn-radius: 999px; --card-radius: 22px; --opt-radius: 16px;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --bg: #0F1624; --hero-bg: #121B2C; --tint: #131D2F; --card: #182236; --header-bg: #0F1624;
  --ink: #EBEFF6; --muted: #AAB4C6; --line: #26324A; --line-strong: #3D4B66; --track: #26324A;
  --accent: #F07C88; --accent-hover: #F799A2; --accent-ink: #1A0E12; --accent-text: #F48D98;
  --link: #8CC4EE; --eyebrow: #8CC4EE; --check: #6FD0AE; --focus: #8CC4EE; --danger: #FF8A80;
  --opt-bg: #182236; --opt-on: #2C1F2A; --input-bg: #121B2C; --consent-bg: #131D2F;
  --icon-bg: #1F2B42; --icon-ink: #8CC4EE; --pulse: #F07C88;
  --band-bg: #F07C88; --band-ink: #1A0E12;
  --footer-bg: #0B111C; --footer-ink: #E5EAF2; --footer-muted: #8E99AD; --footer-line: #212B3F;
  --logo-heart: #F07C88; --logo-line: #0F1624;
  --card-shadow: 0 24px 50px -30px rgba(0, 0, 0, 0.75);
  color-scheme: dark;
} }
:root[data-theme="dark"] {
  --bg: #0F1624; --hero-bg: #121B2C; --tint: #131D2F; --card: #182236; --header-bg: #0F1624;
  --ink: #EBEFF6; --muted: #AAB4C6; --line: #26324A; --line-strong: #3D4B66; --track: #26324A;
  --accent: #F07C88; --accent-hover: #F799A2; --accent-ink: #1A0E12; --accent-text: #F48D98;
  --link: #8CC4EE; --eyebrow: #8CC4EE; --check: #6FD0AE; --focus: #8CC4EE; --danger: #FF8A80;
  --opt-bg: #182236; --opt-on: #2C1F2A; --input-bg: #121B2C; --consent-bg: #131D2F;
  --icon-bg: #1F2B42; --icon-ink: #8CC4EE; --pulse: #F07C88;
  --band-bg: #F07C88; --band-ink: #1A0E12;
  --footer-bg: #0B111C; --footer-ink: #E5EAF2; --footer-muted: #8E99AD; --footer-line: #212B3F;
  --logo-heart: #F07C88; --logo-line: #0F1624;
  --card-shadow: 0 24px 50px -30px rgba(0, 0, 0, 0.75);
  color-scheme: dark;
}

.logo span { font-family: var(--display); font-weight: 600; font-size: 1.3rem; letter-spacing: -0.01em; }
.logo b { font-weight: 700; color: var(--accent-text); font-style: italic; }
.site-footer .logo b { color: var(--accent); }
.eyebrow { letter-spacing: 0.08em; font-weight: 700; font-size: 0.82rem; }
.hero-copy h1 em { font-style: italic; color: var(--accent-text); font-weight: 600; }
.hero { position: relative; overflow: hidden; }
.hero .wrap { position: relative; }

/* the heartbeat line: drawn once on load, fully visible at rest */
.pulse { width: min(100%, 420px); height: 34px; display: block; overflow: visible; }
.pulse path { stroke: var(--pulse); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke;
  stroke-dasharray: 1; stroke-dashoffset: 0; animation: beat 1.6s cubic-bezier(.4,0,.2,1) 0.15s both; }
@keyframes beat { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }

.q-head { padding-top: 20px; }
.q-title { font-family: var(--display); font-weight: 600; font-size: 1.05rem; }
.step legend { font-family: var(--display); font-weight: 600; font-size: 1.45rem; }
.opt { min-height: 62px; font-size: 1.05rem; }
.field input, .field select { min-height: 56px; font-size: 1.1rem; }
.consent { font-size: 0.84rem; }
.btn { min-height: 56px; font-size: 1.08rem; }
.grid-cards.four { grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
.card-link h3 { font-family: var(--display); font-weight: 600; font-size: 1.3rem; }
.steps-row.facts li::before { content: none; }
.steps-row li { border-top-color: var(--accent); }
.prose-block { display: grid; gap: 14px; font-size: 1.05rem; max-width: 38rem; }
@media (max-width: 959px) { .pulse { order: 0; } }
