/* generated by design-craft/scripts/tokens-build.mjs from brand/tokens.json (raise-the-dead, D3). Do not edit. */
@font-face { font-family: "Bodoni Moda"; src: url(/brand/fonts/bodoni-moda-latin-900-normal.woff2) format("woff2"); font-weight: 900; font-display: swap; }
@font-face { font-family: "Inter Tight"; src: url(/brand/fonts/inter-tight-latin-wght-normal.woff2) format("woff2-variations"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url(/brand/fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2-variations"); font-weight: 100 900; font-display: swap; }
:root {
  color-scheme: dark;
  --font-display: "Bodoni Moda", "Bodoni Fallback", Georgia, serif;
  --font-body: "Inter Tight", ui-sans-serif, system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;
  --fs-m1: clamp(0.8333rem, 0.8626rem + -0.1249vw, 0.7502rem);
  --fs-0: clamp(1rem, 1rem + 0vw, 1rem);
  --fs-1: clamp(1.2rem, 1.1532rem + 0.1998vw, 1.333rem);
  --fs-2: clamp(1.44rem, 1.3214rem + 0.5061vw, 1.7769rem);
  --fs-3: clamp(1.728rem, 1.5024rem + 0.9624vw, 2.3686rem);
  --fs-4: clamp(2.0736rem, 1.692rem + 1.6281vw, 3.1573rem);
  --fs-6: clamp(2.986rem, 2.062rem + 3.9425vw, 5.6102rem);
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --sp-7: 48px;
  --sp-8: 64px;
  --sp-9: 96px;
  --sp-10: 128px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-pill: 999px;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-io: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-pop: cubic-bezier(0.2, 1.2, 0.4, 1);
  --dur-press: 120ms;
  --dur-ui: 200ms;
  --dur-reveal: 600ms;
  --dur-scene: 900ms;
  --stagger: 60ms;
  --color-ground: #0b0a09;
  --color-surface: #151311;
  --color-slab: #1d1a17;
  --color-ink: #ece5d6;
  --color-ink-soft: #cfc6b6;
  --color-ink-mute: #a89f8f;
  --color-line: #35302a;
  --color-accent: #ff7a1a;
  --color-accent-ink: #140b03;
  --color-up: #9cc7a4;
  --color-down: #e0675a;
  --data-1: #ff5a0a;
  --data-2: #ffb347;
  --data-3: #ffd27a;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --color-ground: #0b0a09;
  --color-surface: #151311;
  --color-slab: #1d1a17;
  --color-ink: #ece5d6;
  --color-ink-soft: #cfc6b6;
  --color-ink-mute: #a89f8f;
  --color-line: #35302a;
  --color-accent: #ff7a1a;
  --color-accent-ink: #140b03;
  --color-up: #9cc7a4;
  --color-down: #e0675a;
  --data-1: #ff5a0a;
  --data-2: #ffb347;
  --data-3: #ffd27a;
} }
:root[data-theme="dark"] {
  --color-ground: #0b0a09;
  --color-surface: #151311;
  --color-slab: #1d1a17;
  --color-ink: #ece5d6;
  --color-ink-soft: #cfc6b6;
  --color-ink-mute: #a89f8f;
  --color-line: #35302a;
  --color-accent: #ff7a1a;
  --color-accent-ink: #140b03;
  --color-up: #9cc7a4;
  --color-down: #e0675a;
  --data-1: #ff5a0a;
  --data-2: #ffb347;
  --data-3: #ffd27a;
}
@media (prefers-reduced-motion: reduce) { :root {
  --dur-press: 0ms;
  --dur-ui: 0ms;
  --dur-reveal: 0ms;
  --dur-scene: 0ms;
  --stagger: 0ms;
} }
:root {
  color-scheme: dark;
  --font-sans: var(--font-body);
  --font-epitaph: "Bodoni Moda", "Bodoni Fallback", Georgia, serif;
  --font-bold-display: var(--font-display);
  --ground: var(--color-ground); --surface: var(--color-surface); --slab: var(--color-slab); --line: var(--color-line);
  --ink: var(--color-ink); --ink-soft: var(--color-ink-soft); --ink-muted: var(--color-ink-mute); --ash: var(--color-ink-mute);
  --candle: var(--color-accent); --candle-ink: var(--color-accent-ink); --candle-glow: rgba(255, 122, 26, 0.16);
  --blood: var(--color-down); --focus: var(--color-ink);
  --shadow-flame: 0 0 16px 0 rgba(255, 122, 26, 0.35);
  --space-1: var(--sp-1); --space-2: var(--sp-2); --space-3: var(--sp-3); --space-4: var(--sp-4); --space-6: var(--sp-5);
  --space-8: var(--sp-6); --space-12: var(--sp-7); --space-16: var(--sp-8);
  --radius-arch: 50%;
}
@font-face { font-family: "Bodoni Moda"; font-style: italic; src: url(/brand/fonts/bodoni-moda-latin-400-italic.woff2) format("woff2"); font-weight: 400; font-display: swap; }
/* Metric-matched fallback so the swap from Georgia does not jump. */
@font-face { font-family: "Bodoni Fallback"; src: local("Georgia"), local("Times New Roman"); size-adjust: 104%; ascent-override: 92%; descent-override: 24%; }

.rtd-root{font-family:var(--font-sans);color:var(--ink);}
/* Tombstone card */
.rtd-stone{position:relative;display:flex;flex-direction:column;height:100%;box-sizing:border-box;width:100%;max-width:300px;background:var(--slab);border:1px solid var(--line);border-radius:50% 50% var(--radius-sm) var(--radius-sm) / 34% 34% var(--radius-sm) var(--radius-sm);padding:var(--space-12) var(--space-6) var(--space-6);text-align:center;color:var(--ink);transition:box-shadow .2s var(--ease-out), background .2s var(--ease-out);}
.rtd-stone:hover{background:linear-gradient(var(--candle-glow),var(--candle-glow)) var(--slab);}
.rtd-stone[data-state="risen"]{border-color:var(--candle);box-shadow:var(--shadow-flame);}
.rtd-stone[data-state="refunded"] .rtd-sym{color:var(--ink-muted);}
.rtd-here{font:600 var(--fs-m1)/1.45 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin:0;}
.rtd-sym{font:600 var(--fs-2)/1.14 var(--font-display);margin:var(--space-1) 0 0;}
.rtd-dates{font:500 var(--fs-m1)/1.38 var(--font-mono);color:var(--ink-muted);margin:var(--space-2) 0 0;}
.rtd-cause{font:italic 500 var(--fs-1)/1.33 var(--font-display);color:var(--ink);margin:var(--space-3) 0 0;}
.rtd-rule{height:1px;background:var(--line);border:0;margin:var(--space-4) 0;}
.rtd-facts{display:flex;justify-content:space-between;gap:var(--space-3);text-align:left;margin-bottom:var(--space-4);}
.rtd-fact dt{font:600 var(--fs-m1)/1.45 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);}
.rtd-fact dd{margin:var(--space-1) 0 0;font:500 var(--fs-m1)/1.38 var(--font-mono);color:var(--ink);}
.rtd-consent{display:flex;align-items:center;justify-content:center;gap:var(--space-1);font:500 var(--fs-m1)/1.33 var(--font-mono);color:var(--ink-muted);margin-top:var(--space-3);}
.rtd-consent[data-ok="true"] b{color:var(--ink);font-weight:500;}
.rtd-stone .rtd-btn{width:100%;margin-top:auto;}
.rtd-stone .rtd-consent{margin-bottom:var(--space-4);}
.rtd-stone .rtd-chip{align-self:center;}
/* Candle meter */
.rtd-meter{text-align:left;}
.rtd-meter-top{display:flex;justify-content:space-between;align-items:baseline;font:500 var(--fs-m1)/1.38 var(--font-mono);}
.rtd-meter-top span:last-child{color:var(--ink-muted);}
.rtd-track{position:relative;height:6px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--line);margin-top:var(--space-2);}
.rtd-wax{position:absolute;left:0;top:0;bottom:0;border-radius:var(--radius-pill);background:var(--candle);}
.rtd-flame{position:absolute;top:50%;width:10px;height:14px;margin:-11px 0 0 -5px;background:var(--candle);border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;box-shadow:var(--shadow-flame);}
.rtd-meter[data-out="true"] .rtd-wax{background:var(--ash);}
.rtd-meter[data-out="true"] .rtd-flame{display:none;}
.rtd-meter-sub{display:flex;justify-content:space-between;gap:var(--space-2);white-space:nowrap;font:500 var(--fs-m1)/1.33 var(--font-mono);color:var(--ink-muted);margin-top:var(--space-2);}
.rtd-meter-big .rtd-meter-top{font:500 var(--fs-3)/1.12 var(--font-mono);}
.rtd-meter-big .rtd-track{height:10px;}
.rtd-meter-big .rtd-flame{width:14px;height:20px;margin:-16px 0 0 -7px;}
/* Buttons */
.rtd-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);box-sizing:border-box;min-height:44px;padding:0 var(--space-6);border-radius:var(--radius-md);font:600 var(--fs-0)/1.47 var(--font-sans);cursor:pointer;border:1px solid transparent;transition:background .15s var(--ease-out), box-shadow .15s var(--ease-out);}
.rtd-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px;}
.rtd-btn-primary{background:var(--candle);color:var(--candle-ink);}
.rtd-btn-primary:hover{box-shadow:var(--shadow-flame);}
.rtd-btn-secondary{background:transparent;color:var(--ink);border-color:var(--ink);}
.rtd-btn-secondary:hover{background:var(--surface);}
.rtd-btn-ghost{background:transparent;color:var(--ink-muted);}
.rtd-btn-ghost:hover{color:var(--ink);}
.rtd-btn[disabled]{background:transparent;color:var(--ash);border-color:var(--ash);cursor:not-allowed;box-shadow:none;}
/* State chip */
.rtd-chip{display:inline-flex;align-items:center;gap:var(--space-1);height:24px;padding:0 var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--line);font:600 var(--fs-m1)/1.45 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);background:var(--surface);}
.rtd-chip i{width:6px;height:6px;border-radius:var(--radius-pill);background:var(--ash);}
.rtd-chip[data-state="vigil"]{color:var(--ink);}
.rtd-chip[data-state="vigil"] i{background:var(--candle);box-shadow:var(--shadow-flame);}
.rtd-chip[data-state="risen"]{background:var(--candle);border-color:var(--candle);color:var(--candle-ink);}
.rtd-chip[data-state="risen"] i{background:var(--candle-ink);}
.rtd-chip[data-state="refunded"] i{background:var(--ink-muted);}
/* RISEN stamp */
.rtd-stamp{display:inline-block;box-sizing:border-box;padding:var(--space-6) var(--space-8);border:2px solid var(--candle);border-radius:var(--radius-md);outline:1px solid var(--candle);outline-offset:-8px;text-align:center;color:var(--ink);background:var(--ground);}
.rtd-stamp-word{font:600 var(--fs-4)/1.05 var(--font-display);letter-spacing:.12em;color:var(--candle);margin:0;}
.rtd-stamp-t{font:600 var(--fs-2)/1.14 var(--font-display);margin:var(--space-2) 0 0;}
.rtd-stamp-meta{font:500 var(--fs-m1)/1.33 var(--font-mono);color:var(--ink-muted);margin:var(--space-2) 0 0;}

/* RAISE THE DEAD site layout. Tokens come from tokens.css (brand/tokens.json); components from rtd.css (design system).
   Gothic-clean: black ground, bone ink, hairlines, one arch, one candle accent. Mobile-first (390px). */
*, *::before, *::after { box-sizing:border-box; }
[hidden] { display:none !important; }
.hide { display:none !important; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--ground); color:var(--ink); font:400 var(--fs-0)/1.47 var(--font-sans); min-height:100vh; display:flex; flex-direction:column; overflow-x:hidden; }
main { flex:1; }
a { color:inherit; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
img { max-width:100%; }
.wrap { width:100%; max-width:1200px; margin:0 auto; padding:0 16px; padding-left:max(16px, env(safe-area-inset-left)); padding-right:max(16px, env(safe-area-inset-right)); }
.narrow { max-width:760px; }
.center { text-align:center; }
.section { padding-top:var(--space-12); padding-bottom:var(--space-12); }
.mono { font-family:var(--font-mono); font-variant-numeric:tabular-nums; }
.muted { color:var(--ink-muted); }
.small { font-size:var(--fs-m1); line-height:18px; }
.label { font:600 var(--fs-m1)/1.45 var(--font-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--ink-muted); margin:0; }
.epitaph-xl { font:600 var(--fs-4)/1.05 var(--font-display); letter-spacing:-.01em; margin:var(--space-2) 0 0; overflow-wrap:anywhere; }
.epitaph-l { font:600 var(--fs-3)/1.12 var(--font-display); margin:var(--space-1) 0 0; }
.epitaph-m { font:600 var(--fs-2)/1.14 var(--font-display); margin:var(--space-1) 0 0; }
.epitaph-italic { font:italic 500 var(--fs-1)/1.3 var(--font-display); color:var(--ink-muted); margin:0; }
.lede { color:var(--ink-muted); font-size:var(--fs-0); line-height:24px; max-width:60ch; }
.link { color:var(--ink); text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:3px; }
.link:hover { text-decoration-color:var(--candle); }
a.plain { text-decoration:none; }
a.plain:hover { text-decoration:underline; text-decoration-color:var(--line); }
.sr-only { font-size:var(--fs-0); position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip-link { position:absolute; left:-9999px; top:8px; background:var(--candle); color:var(--candle-ink); padding:0 12px; min-height:44px; display:inline-flex; align-items:center; z-index:20; border-radius:var(--radius-sm); }
.skip-link:focus { left:8px; }
.placeholder { font-family:var(--font-mono); font-size:var(--fs-m1); color:var(--ash); border:1px dashed var(--line); padding:0 8px; border-radius:var(--radius-sm); }

/* Header */
.site-header { border-bottom:1px solid var(--line); background:var(--ground); position:sticky; top:0; z-index:10; }
.header-row { display:flex; align-items:center; gap:var(--space-3); min-height:56px; flex-wrap:wrap; }
.brand { display:inline-flex; align-items:center; gap:var(--space-2); text-decoration:none; }
.wordmark { font:600 var(--fs-1)/1 var(--font-display); letter-spacing:.01em; white-space:nowrap; }
.site-nav { order:3; width:100%; display:flex; gap:var(--space-4); overflow-x:auto; padding:0 0 var(--space-2); scrollbar-width:none; }
.site-nav a { text-decoration:none; color:var(--ink-muted); font-weight:600; font-size:var(--fs-0); white-space:nowrap; padding:var(--space-2) 0; min-height:40px; display:inline-flex; align-items:center; border-bottom:1px solid transparent; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color:var(--ink); border-bottom-color:var(--ink); }
.cluster-chip { margin-left:auto; font:500 var(--fs-m1)/1.45 var(--font-mono); text-transform:uppercase; letter-spacing:.1em; color:var(--ink-muted); border:1px solid var(--line); border-radius:var(--radius-sm); padding:2px 8px; }
.icon-btn { background:transparent; color:var(--ink-muted); border:1px solid var(--line); border-radius:var(--radius-md); width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.cluster-chip + .icon-btn { margin-left:0; }
.header-row > .icon-btn:first-of-type { margin-left:auto; }
.cluster-chip ~ .icon-btn { margin-left:0; }
.icon-btn:hover { color:var(--ink); }

/* Hero */
.hero { display:grid; gap:var(--space-8); padding-top:var(--space-8); padding-bottom:var(--space-8); }
.hero-actions { display:flex; flex-wrap:wrap; gap:var(--space-3); margin-top:var(--space-6); }
.hero-actions.center { justify-content:center; }
.hero-vigil { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); padding:var(--space-6) var(--space-4); display:flex; flex-direction:column; gap:var(--space-3); }
.hero-vigil:empty { display:none; }
.hero-vigil .rtd-btn { align-self:flex-start; }

/* Graveyard grid */
.section-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--space-3); justify-content:space-between; margin-bottom:var(--space-6); }
.section-head .epitaph-l { margin:0; }
.counts { color:var(--ink-muted); font-size:var(--fs-0); margin:0; }
.yard { display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap:var(--space-6) var(--space-4); align-items:stretch; justify-items:center; padding-bottom:var(--space-4); position:relative; }
.yard .rtd-stone { max-width:320px; }
.yard[aria-busy="true"] { opacity:.5; }
.rtd-stone a.rtd-btn { text-decoration:none; width:100%; margin-top:auto; }
.rtd-brand { font:500 var(--fs-m1)/1.38 var(--font-sans); color:var(--ink-muted); margin:2px 0 0; }
.empty { grid-column:1 / -1; padding:var(--space-12) 0; text-align:center; }
@media (prefers-reduced-motion: no-preference) {
  .rtd-flame { animation:flicker 2.6s var(--ease-io) infinite; }
  @keyframes flicker { 0%, 100% { transform:translateX(0) scaleY(1); } 30% { transform:translateX(1px) scaleY(1.06); } 60% { transform:translateX(-1px) scaleY(.96); } }
  .rtd-wax { transition:width .6s var(--ease-out); }
}

/* Steps */
.steps { list-style:none; margin:var(--space-6) 0; padding:0; display:grid; gap:var(--space-4); }
.step { border:1px solid var(--line); background:var(--surface); border-radius:50% 50% var(--radius-sm) var(--radius-sm) / 22% 22% var(--radius-sm) var(--radius-sm); padding:var(--space-8) var(--space-6) var(--space-6); text-align:center; }
.step h3 { font:600 var(--fs-2)/1.15 var(--font-display); margin:var(--space-2) 0; }
.step p { color:var(--ink-muted); margin:0; }
.step-n { color:var(--ash); font-size:var(--fs-m1); }
.step-risen { border-color:var(--candle); }
.step-risen .step-n { color:var(--candle); }

/* Page heads, forms */
.page-head { padding:var(--space-8) 0 var(--space-6); }
.filters, .nominate { display:grid; gap:var(--space-3); margin-bottom:var(--space-4); align-items:end; }
.field { display:flex; flex-direction:column; gap:var(--space-1); min-width:0; }
.field input, .field select { font:400 var(--fs-0)/1.47 var(--font-sans); color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-sm); min-height:44px; padding:0 var(--space-3); width:100%; }
.field input { font-family:var(--font-mono); font-size:var(--fs-0); }
.field input::placeholder { color:var(--ash); }
.status-line { min-height:22px; color:var(--ink-muted); margin:var(--space-3) 0 0; }
.status-line.error { color:var(--blood); }
.rtd-btn { text-decoration:none; }

/* Revival page */
.rev-head { padding:var(--space-8) 0 var(--space-4); text-align:center; display:flex; flex-direction:column; align-items:center; }
.rev-head .label { margin-top:var(--space-4); }
.rev-head .rtd-dates, .rev-head .rtd-cause { margin-top:var(--space-2); }
.mint-line { margin-top:var(--space-3); display:flex; align-items:center; gap:var(--space-2); flex-wrap:wrap; justify-content:center; }
.mint-line a { color:var(--ink); }
.copy { background:transparent; border:1px solid var(--line); color:var(--ink-muted); border-radius:var(--radius-sm); font:500 var(--fs-m1)/1.45 var(--font-mono); padding:4px 8px; cursor:pointer; min-height:28px; }
.fact-row { display:grid; grid-template-columns:repeat(2, 1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; margin:var(--space-4) 0 var(--space-8); }
.fact-row > div { background:var(--ground); padding:var(--space-3) var(--space-4); }
.fact-row dt { font:600 var(--fs-m1)/1.45 var(--font-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--ink-muted); }
.fact-row dd { margin:var(--space-1) 0 0; font-size:var(--fs-0); }
.rev-grid { display:grid; gap:var(--space-6); padding-bottom:var(--space-12); }
.rev-main, .rev-side { display:flex; flex-direction:column; gap:var(--space-6); min-width:0; }
.panel { border:1px solid var(--line); background:var(--surface); border-radius:var(--radius-md); padding:var(--space-6) var(--space-4); min-width:0; }
.panel > h2 { margin:0 0 var(--space-3); display:flex; align-items:center; gap:var(--space-2); }
.candle-panel .rtd-meter { margin:var(--space-4) 0; }
.countdown { font-size:var(--fs-1); line-height:28px; margin:var(--space-2) 0; }
.countdown .label { display:inline; }
.pledge-panel { border-color:var(--candle); }
.quick { display:flex; flex-wrap:wrap; gap:var(--space-2); margin:var(--space-3) 0 var(--space-1); }
.chip-btn { background:transparent; color:var(--ink); border:1px solid var(--line); border-radius:var(--radius-sm); min-height:36px; padding:0 var(--space-3); cursor:pointer; font-size:var(--fs-m1); }
.chip-btn:hover { border-color:var(--ink-muted); }
.pledge-actions { display:grid; gap:var(--space-3); margin-top:var(--space-4); }
.pledge-actions .rtd-btn { width:100%; }
.wallet-list { display:flex; flex-direction:column; gap:var(--space-2); margin-top:var(--space-3); }
.wallet-list .btn { display:flex; justify-content:space-between; align-items:center; min-height:44px; padding:0 var(--space-3); border:1px solid var(--line); border-radius:var(--radius-md); background:var(--ground); color:var(--ink); text-decoration:none; font:600 var(--fs-0)/1.43 var(--font-sans); cursor:pointer; }
.wallet-list .wname { display:inline-flex; gap:var(--space-2); align-items:center; }
.closed-note { margin-top:var(--space-4); border-top:1px solid var(--line); padding-top:var(--space-3); }
.closed-note ul { padding-left:20px; margin:var(--space-2) 0 0; }
.mock-flag { border:1px dashed var(--candle); color:var(--candle); padding:var(--space-2) var(--space-3); border-radius:var(--radius-sm); margin:0 0 var(--space-3); }
.risen-panel { text-align:center; border-color:var(--candle); }
.risen-panel .rtd-stamp { box-shadow:var(--shadow-flame); max-width:100%; }
.risen-panel .fact-row { text-align:left; margin-bottom:0; }
.kv { margin:0; display:grid; gap:var(--space-3); }
.kv dt { font:600 var(--fs-m1)/1.45 var(--font-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--ink-muted); }
.kv dd { margin:2px 0 0; font-size:var(--fs-m1); overflow-wrap:anywhere; }
.wrap-any { overflow-wrap:anywhere; word-break:break-all; }
.excl { padding-left:20px; margin:var(--space-2) 0 0; color:var(--ink-muted); font-size:var(--fs-m1); }
.lore .lore-text p { font:500 var(--fs-1)/1.42 var(--font-display); margin:0 0 var(--space-3); }

/* Tables */
.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius-md); margin-bottom:var(--space-12); }
.board { width:100%; border-collapse:collapse; min-width:520px; }
.board th { font:600 var(--fs-m1)/1.45 var(--font-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--ink-muted); text-align:left; padding:var(--space-3) var(--space-4); border-bottom:1px solid var(--line); background:var(--surface); }
.board td { padding:var(--space-3) var(--space-4); border-bottom:1px solid var(--line); }
.board tr:last-child td { border-bottom:0; }
.board .num { text-align:right; }
.board .rank { color:var(--ink-muted); }
.sym-link { font:600 var(--fs-1)/1.18 var(--font-display); text-decoration:none; }
.sym-link:hover { text-decoration:underline; text-decoration-color:var(--candle); }
.receipts { min-width:440px; }
.receipts a { color:var(--ink); }

/* Nominate result */
.death { border:1px solid var(--line); background:var(--surface); border-radius:var(--radius-md); padding:var(--space-6) var(--space-4); margin-bottom:var(--space-12); }
.score { font-size:var(--fs-0); margin:var(--space-2) 0 0; color:var(--ink-muted); }
.score-n { font-size:var(--fs-4); line-height:48px; color:var(--ink); }
.signals { list-style:none; padding:0; margin:var(--space-6) 0; display:grid; gap:var(--space-3); }
.signal { display:grid; grid-template-columns:28px 1fr; gap:var(--space-3); padding:var(--space-3) 0; border-top:1px solid var(--line); }
.signal p { margin:0; }
.sig-mark { width:24px; height:24px; border-radius:var(--radius-pill); border:1px solid var(--line); display:inline-flex; align-items:center; justify-content:center; font-size:var(--fs-m1); color:var(--ash); }
.signal[data-held="true"] .sig-mark { border-color:var(--ink); color:var(--ink); }
.signal[data-held="true"] .sig-label b { color:var(--ink); }

/* How */
.prose section { padding:var(--space-6) 0; border-top:1px solid var(--line); }
.prose h2 { font:600 var(--fs-2)/1.14 var(--font-display); margin:0 0 var(--space-3); }
.prose li { margin-bottom:var(--space-2); color:var(--ink-muted); }
.prose li b, .prose p b { color:var(--ink); font-weight:500; }
.note { font-size:var(--fs-m1); color:var(--ash); }
.callout { border-left:2px solid var(--candle); padding:var(--space-3) var(--space-4); background:var(--surface); }
.todo-legal { border:1px dashed var(--line); padding:var(--space-3) var(--space-4); font-family:var(--font-mono); font-size:var(--fs-m1); color:var(--ink-muted); }

/* Footer */
.site-footer { border-top:1px solid var(--line); padding:var(--space-8) 0 calc(var(--space-8) + env(safe-area-inset-bottom)); margin-top:var(--space-8); }
.foot-row { display:flex; flex-direction:column; gap:var(--space-2); }
.foot-line { color:var(--ink-muted); margin:0; }
.foot-nav { display:flex; flex-wrap:wrap; gap:var(--space-4); margin:var(--space-4) 0; }
.foot-nav a { color:var(--ink-muted); text-decoration:none; font-size:var(--fs-0); min-height:32px; display:inline-flex; align-items:center; }
.foot-nav a:hover { color:var(--ink); }
.disclaimer { font-size:var(--fs-m1); line-height:18px; color:var(--ash); max-width:90ch; margin:0; }

/* Wider screens */
@media (min-width: 640px) {
  .filters { grid-template-columns:2fr 1fr 1fr auto; }
  .nominate { grid-template-columns:1fr auto; }
  .steps { grid-template-columns:repeat(2, 1fr); }
  .fact-row { grid-template-columns:repeat(4, 1fr); }
  .pledge-actions { grid-template-columns:1fr 1fr; }
}
@media (min-width: 900px) {
  .site-nav { order:0; width:auto; padding:0; margin-left:var(--space-8); }
  .hero { grid-template-columns:1.35fr 1fr; align-items:center; padding-top:var(--space-16); padding-bottom:var(--space-12); }
  .epitaph-xl { font-size:var(--fs-6); line-height:68px; }
  .epitaph-l { font-size:var(--fs-4); line-height:46px; }
  .steps { grid-template-columns:repeat(4, 1fr); }
  .rev-grid { grid-template-columns:1.4fr 1fr; align-items:start; }
  .panel { padding:var(--space-6); }
  .hero-vigil { padding:var(--space-8) var(--space-6); }
}

/* v2: launch states, legal pages, consent */
.draft-note { border:1px dashed var(--candle); color:var(--ink); background:var(--surface); padding:var(--space-3) var(--space-4); border-radius:var(--radius-sm); font-size:var(--fs-0); }
.draft-note b { color:var(--candle); }
.legal h2 { font-size:var(--fs-2); line-height:28px; }
.soon-candle { display:flex; flex-direction:column; gap:var(--space-3); }
.soon-candle .unlit { height:10px; border-radius:var(--radius-pill); border:1px solid var(--line); background:var(--surface); position:relative; }
.soon-candle .wick { position:absolute; left:0; top:50%; width:2px; height:14px; margin-top:-7px; background:var(--ash); }
.early-chip { display:inline-flex; gap:var(--space-1); align-items:center; font:600 var(--fs-m1)/1.45 var(--font-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--candle); border:1px solid var(--candle); border-radius:var(--radius-sm); padding:2px 8px; }
.consent-panel .pledge-actions { grid-template-columns:1fr; }
.signups { font-family:var(--font-mono); font-size:var(--fs-m1); color:var(--ink-muted); }
.pending { font-style:italic; color:var(--ink-muted); }
.blocked-note { border:1px solid var(--line); padding:var(--space-3) var(--space-4); border-radius:var(--radius-sm); color:var(--ink-muted); font-size:var(--fs-0); }

/* Brand v2 type: Bodoni Moda 900 (OFL) for display, as the v2 kit sets it. Body and data stay Inter Tight / JetBrains Mono. */
@font-face { font-family:"Bodoni Moda"; font-style:normal; font-weight:600 900; font-display:swap; src:url(/brand/fonts/bodoni-moda-latin-900-normal.woff2) format("woff2"); }
@font-face { font-family:"Bodoni Moda"; font-style:italic; font-weight:400 600; font-display:swap; src:url(/brand/fonts/bodoni-moda-latin-400-italic.woff2) format("woff2"); }
/* Metric-matched fallback so the swap from Georgia does not jump (Bodoni Moda 900 runs wide and short). */
@font-face { font-family:"Bodoni Fallback"; src:local("Georgia"), local("Times New Roman"); size-adjust:104%; ascent-override:92%; descent-override:24%; }
/* Type is back on brand: Bodoni Moda (display, tickers; italic for epitaphs and lore), Inter Tight (UI), JetBrains Mono (numbers). No Cormorant. */
:root { --font-bold-display: "Bodoni Moda", "Bodoni Fallback", Georgia, serif; --font-display: "Bodoni Moda", "Bodoni Fallback", Georgia, serif; --font-epitaph: "Bodoni Moda", "Bodoni Fallback", Georgia, serif; color-scheme:dark; }

/* Brand v2 animated mark (brand/v2/logo-snippet.css, verbatim). */
/* RAISE THE DEAD - animated mark. Pure CSS, deterministic, ~1.4s intro then a slow flicker. */
.rtd-mark{display:block;overflow:visible}
.rtd-rise{transform:translateY(3.2px);animation:rtd-rise .9s var(--ease-pop) .15s forwards}
.rtd-bloom{opacity:0;transform-box:fill-box;transform-origin:50% 50%;transform:scale(.4);
  animation:rtd-bloom 1.1s var(--ease-out) .75s forwards, rtd-breathe 3.2s var(--ease-io) 1.9s infinite}
.rtd-flame{transform-box:fill-box;transform-origin:50% 100%;
  animation:rtd-flicker 2.6s steps(1,end) 1.05s infinite, rtd-sway 3.7s var(--ease-io) 1.05s infinite}
.rtd-flame .core{transform-box:fill-box;transform-origin:50% 100%;animation:rtd-core 1.3s var(--ease-io) infinite alternate}
@keyframes rtd-rise{0%{transform:translateY(3.2px)}70%{transform:translateY(-.5px)}100%{transform:translateY(0)}}
@keyframes rtd-bloom{0%{opacity:0;transform:scale(.4)}35%{opacity:1;transform:scale(1.25)}100%{opacity:.7;transform:scale(1)}}
@keyframes rtd-breathe{0%,100%{opacity:.7}50%{opacity:.45}}
@keyframes rtd-flicker{0%{transform:scale(1,1)}12%{transform:scale(.96,1.06)}23%{transform:scale(1.03,.95)}
  37%{transform:scale(.98,1.04)}52%{transform:scale(1.02,.97)}66%{transform:scale(.97,1.07)}81%{transform:scale(1.01,.98)}}
@keyframes rtd-sway{0%,100%{rotate:0deg}30%{rotate:-3deg}65%{rotate:2.5deg}}
@keyframes rtd-core{from{transform:scale(1,1)}to{transform:scale(.88,1.12)}}
@media (prefers-reduced-motion:reduce){.rtd-rise,.rtd-bloom,.rtd-flame,.rtd-flame .core{animation:none;transform:none;opacity:1}
  .rtd-bloom{opacity:.6}}

.logo-v2 { width:40px; height:40px; }
.logo-v2 svg { width:40px; height:40px; display:block; }
@media (max-width: 699px) { .site-header .logo-v2, .site-header .logo-v2 svg { width:32px; height:32px; } .wordmark-v2 svg { height:14px; } }
.wordmark-v2 { display:inline-flex; align-items:center; }
.wordmark-v2 svg { height:17px; width:auto; display:block; }
.site-footer .logo-v2, .site-footer .logo-v2 img { width:28px; height:28px; }
.site-footer .wordmark-v2 svg { height:13px; }
.brand { gap:12px; color:var(--ink); }
:root[data-theme="parchment"] .rtd-mark [fill="#ece5d6"], :root[data-theme="parchment"] .wordmark-v2 [fill="#ece5d6"] { fill:var(--ink); }

/* RAISE THE DEAD v2: cinematic layer over site.css. Night graveyard hero, pinned revival sequence, living plot field,
   engraved illustrations, micro-motion. Black, bone, one candle. Static things are painted once; only what moves
   animates (transform/opacity). prefers-reduced-motion removes every animation and pin. */

:root { --header-h: 57px; --ease-out: cubic-bezier(.16, 1, .3, 1); }
body { background:var(--ground); }
.rtd-defs { position:absolute; width:0; height:0; overflow:hidden; }

/* ------------------------------------------------------------ header: quieter, floats over the hero on home */
.site-header { background:color-mix(in srgb, var(--ground) 82%, transparent); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.page-home .site-header { position:fixed; left:0; right:0; top:0; background:linear-gradient(to bottom, rgba(5, 5, 6, .72), rgba(5, 5, 6, 0)); border-bottom-color:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; transition:background .4s var(--ease-out), border-color .4s var(--ease-out); }
.page-home.scrolled .site-header { background:color-mix(in srgb, var(--ground) 86%, transparent); border-bottom-color:var(--line); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.logo-slot { display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; }
.logo-slot > * { max-width:100%; max-height:100%; }
.site-footer .logo-slot { width:24px; height:24px; }
.site-nav a { position:relative; border-bottom:0; }
.site-nav a::after, .link-draw::after { content:""; position:absolute; left:0; right:0; bottom:6px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease-out); }
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after, .link-draw:hover::after, .link-draw:focus-visible::after { transform:scaleX(1); }
.site-nav a[aria-current="page"]::after { background:var(--candle); }
.link-draw { position:relative; display:inline-flex; align-items:center; min-height:44px; color:var(--ink); text-decoration:none; font-weight:600; font-size:var(--fs-0); }
.link-draw::after { bottom:10px; transform:scaleX(.35); background:var(--ink-muted); }

/* ------------------------------------------------------------ buttons: flame on the primary, glass on the secondary */
.btn-flame { position:relative; gap:12px; }
.flame-dot { width:8px; height:12px; border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; background:var(--candle-ink); display:inline-block; transform-origin:50% 100%; }
.btn-flame:hover { box-shadow:0 0 0 1px rgba(255, 122, 26, .5), var(--shadow-flame); }
.btn-glass { background:rgba(10, 10, 12, .35); border-color:rgba(236, 229, 214, .55);  }
.btn-glass:hover { background:rgba(236, 229, 214, .08); border-color:var(--ink); }

/* ------------------------------------------------------------ hero */
.hero-run { position:relative; height:210vh; height:210svh; background:var(--ground); }
.hero-stage { position:sticky; top:0; height:100vh; height:100svh; overflow:hidden; isolation:isolate; --hp: 0; }
.hero-still, .hero-still img, .hero-gl, .hero-gl canvas { position:absolute; inset:0; width:100%; height:100%; }
.hero-still img { object-fit:cover; object-position:50% 60%; transform:scale(calc(1.04 + var(--hp) * .1)); transform-origin:56% 64%; }
.hero-gl { z-index:1; opacity:0; transition:opacity 900ms var(--ease-out); }
.gl-on .hero-gl { opacity:1; }
.hero-canvas { display:block; }
.hero-vignette { position:absolute; inset:0; z-index:3; pointer-events:none; background:radial-gradient(120% 90% at 60% 55%, transparent 40%, rgba(4, 4, 5, .78) 100%), linear-gradient(90deg, rgba(4, 4, 5, .72) 0%, rgba(4, 4, 5, .25) 45%, transparent 70%); }
.hero-fog { position:absolute; left:0; right:0; bottom:0; height:46%; z-index:2; pointer-events:none; overflow:hidden; }
.hero-fog i, .ground-fog i, .plot-fog i { position:absolute; left:-50%; width:200%; height:100%; bottom:0; background-repeat:repeat-x; background-size:50% 100%; will-change:transform; }
.hero-fog i { background-image:url(/img/fog.webp); opacity:.5; }
.hero-fog i:nth-child(1) { transform:translate3d(calc(var(--hp) * -8%), 0, 0); }
.hero-fog i:nth-child(2) { bottom:0; opacity:.35; transform:translate3d(calc(var(--hp) * 10%), 0, 0) scaleY(.8); }
.hero-fog i:nth-child(3) { bottom:6%; opacity:.55; transform:translate3d(calc(var(--hp) * -14%), 0, 0); }
.gl-on .hero-fog { opacity:.55; }
.hero-overlay { position:relative; z-index:4; height:100%; display:flex; flex-direction:column; justify-content:flex-end; gap:var(--space-6); padding-top:calc(var(--header-h) + 24px); padding-bottom:max(28px, 6vh); }
.hero-copy { max-width:640px; opacity:calc(1 - var(--hp) * 2.6); transform:translate3d(0, calc(var(--hp) * -60px), 0); }
.hero-title { font:900 var(--fs-6)/.95 var(--font-bold-display); letter-spacing:-.025em; margin:0; color:var(--ink); text-wrap:balance; text-shadow:0 2px 12px rgba(0, 0, 0, .55); }
.hero-sub { font:400 var(--fs-1)/1.45 var(--font-sans); color:#cfc7b6; margin:var(--space-4) 0 0; max-width:34ch; text-shadow:0 1px 12px rgba(0, 0, 0, .8); }
.hero-overlay .hero-actions { margin-top:var(--space-6); }
.hero-hint { position:absolute; z-index:4; left:50%; bottom:14px; margin:0; transform:translateX(-50%); display:none; align-items:center; gap:12px; font:500 var(--fs-m1)/1 var(--font-mono); color:var(--ink-muted); opacity:calc(1 - var(--hp) * 6); }
.hero-hint span { width:1px; height:26px; background:linear-gradient(var(--ink-muted), transparent); }
.is-static .hero-hint { display:none !important; }

/* featured vigil: a slim glass card, not a wall */
.hero-vigil { background:rgba(12, 11, 10, .55); border:1px solid rgba(236, 229, 214, .14); border-radius:var(--radius-md); padding:var(--space-4);  display:flex; gap:var(--space-4); align-items:center; max-width:420px; opacity:calc(1 - var(--hp) * 2.6); }
.hero-vigil:empty { display:none; }
.hero-vigil .rtd-meter { flex:1; }
.fv-body { display:flex; flex-direction:column; gap:8px; min-width:0; }
.fv-label { font:600 var(--fs-m1)/1.38 var(--font-sans); color:var(--ink); margin:0; }
.fv-sym { font:600 var(--fs-2)/1.07 var(--font-display); margin:0; }
.fv-note { font-size:var(--fs-0); line-height:1.4; color:var(--ink-muted); margin:0; }
.fv-btn { align-self:flex-start; margin-top:8px; }
.fv-candle { flex:none; width:22px; height:64px; border:1px solid var(--line); border-radius:var(--radius-sm); position:relative; background:linear-gradient(var(--slab), var(--surface)); }
.fv-wick { position:absolute; left:50%; top:-9px; width:2px; height:9px; margin-left:-1px; background:var(--ash); }
.fv-wick::after { content:""; position:absolute; left:50%; top:-6px; width:6px; height:6px; margin-left:-3px; border-radius:50%; background:rgba(168, 159, 143, .25); filter:blur(2px); }
.hero-vigil:not(:has(.fv-candle)) { flex-direction:column; align-items:stretch; }

/* ------------------------------------------------------------ revival sequence */
.revival-run { position:relative; height:400vh; background:var(--ground); }
.rv-stage { position:sticky; top:0; height:100vh; height:100svh; overflow:hidden; display:flex; align-items:center; --wax: 0; --rise: 0; --local: 0; }
.rv-grid { display:grid; grid-template-columns:minmax(260px, 1fr) minmax(0, 1.25fr); gap:var(--space-8); align-items:center; height:100%; padding-top:calc(var(--header-h) + 8px); }
.rv-steps { list-style:none; margin:0; padding:0; position:relative; height:240px; }
.rv-step { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; gap:var(--space-3); opacity:0; transform:translate3d(0, 18px, 0); transition:opacity .55s var(--ease-out), transform .7s var(--ease-out); }
.rv-n { color:var(--ash); font-size:var(--fs-m1); letter-spacing:.2em; }
.rv-line { font:900 var(--fs-4)/1.04 var(--font-bold-display); margin:0; letter-spacing:-.02em; text-wrap:balance; }
.rv-stage[data-step="0"] .rv-step[data-i="0"], .rv-stage[data-step="1"] .rv-step[data-i="1"], .rv-stage[data-step="2"] .rv-step[data-i="2"], .rv-stage[data-step="3"] .rv-step[data-i="3"], .rv-stage[data-step="4"] .rv-step[data-i="4"] { opacity:1; transform:none; }
.rv-stage[data-step="3"] .rv-step[data-i="3"] .rv-n { color:var(--candle); }
.rv-scene { position:relative; height:min(76vh, 640px); aspect-ratio:600 / 560; max-width:100%; justify-self:center; color:var(--ink); }
.rv-svg, .rv-particles { position:absolute; inset:0; width:100%; height:100%; }
.rv-particles { z-index:2; pointer-events:none; }
.rv-svg text { fill:var(--ink); stroke:none; }
.rv-here { font:600 var(--fs-m1) var(--font-sans); letter-spacing:.3em; fill:var(--ink-muted) !important; }
.rv-sym { font:600 var(--fs-3) var(--font-display); }
.rv-dates { font:500 var(--fs-m1) var(--font-mono); fill:var(--ink-muted) !important; }
.rv-epitaph { font:italic 500 var(--fs-1) var(--font-display); }
.rv-stone { transform:translateY(calc((1 - var(--rise)) * 0px - var(--rise) * 46px)); transition:transform .2s linear; }
.rv-stone-crack { opacity:0; }
.rv-crack { opacity:0; transition:opacity .4s var(--ease-out); }
.rv-bloom { opacity:0; transform-origin:250px 300px; transition:opacity .8s var(--ease-out), transform .8s var(--ease-out); transform:scale(.7); }
.rv-candle-glow { opacity:0; transition:opacity .6s var(--ease-out); }
.rv-flame { opacity:0; transform-origin:0 -14px; transform:scale(.2); transition:opacity .35s var(--ease-out), transform .6s var(--ease-out); }
.rv-wax-fill { transform-box:fill-box; transform-origin:50% 100%; transform:scaleY(var(--wax)); }
.rv-wallets { opacity:0; transition:opacity .5s var(--ease-out); }
.rv-meter { position:absolute; left:63%; top:84%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:2px; opacity:0; transition:opacity .4s var(--ease-out); white-space:nowrap; }
.rv-meter-n { font-size:var(--fs-0); color:var(--ink-muted); }
.rv-meter-n b { font-weight:500; color:var(--ink); font-size:var(--fs-1); }
.rv-meter-tag { font:500 var(--fs-m1)/1.27 var(--font-mono); color:var(--ash); border:1px solid var(--line); border-radius:var(--radius-sm); padding:1px 8px; }
.rv-stamp { position:absolute; left:41.6%; top:50%; translate:-50% -50%; display:flex; flex-direction:column; align-items:center; padding:16px 28px; border:2px solid var(--candle); outline:1px solid var(--candle); outline-offset:-7px; border-radius:var(--radius-md); background:rgba(11, 10, 9, .9); box-shadow:var(--shadow-flame); rotate:-8deg; opacity:0; scale:1.8; transition:opacity .18s var(--ease-out), scale .32s var(--ease-pop); pointer-events:none; z-index:3; }
.rv-stamp-word { font:600 var(--fs-4)/1 var(--font-display); letter-spacing:.14em; color:var(--candle); }
.rv-stamp-t { font:500 var(--fs-m1)/1.38 var(--font-mono); color:var(--ink-muted); margin-top:4px; }
.rv-ring { position:absolute; right:-2%; top:4%; width:34%; margin:0; display:flex; flex-direction:column; align-items:center; gap:12px; opacity:0; transform:translateY(10px); transition:opacity .5s var(--ease-out) .25s, transform .7s var(--ease-out) .25s; z-index:3; }
.rv-ring svg { width:100%; rotate:-90deg; overflow:visible; }
.rv-ring circle { fill:none; stroke-width:9; }
.ring-track { stroke:var(--line); }
.ring-seg { stroke-dasharray:0 100; transition:stroke-dasharray 900ms var(--ease-out); }
.ring-a { stroke:var(--candle); }
.ring-b { stroke:var(--ink); stroke-dashoffset:-50; }
.ring-c { stroke:var(--ink-muted); stroke-dashoffset:-75; }
.rv-ring figcaption { display:grid; gap:2px; font-size:var(--fs-m1); line-height:18px; color:var(--ink-muted); }
.rv-ring figcaption b { color:var(--ink); font-weight:500; display:inline-block; min-width:40px; }
.rv-ring figcaption span:first-child b { color:var(--candle); }
.rv-home { position:absolute; left:0; right:0; bottom:-2%; text-align:center; font:italic 500 var(--fs-2)/1.2 var(--font-display); color:var(--ink); margin:0; opacity:0; transform:translateY(8px); transition:opacity .5s var(--ease-out) .3s, transform .6s var(--ease-out) .3s; }
.rv-progress { position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--line); }
.rv-progress i { position:absolute; inset:0; background:var(--ink-muted); transform-origin:left; transform:scaleX(0); }
/* step states */
.rv-stage:not([data-step="0"]) .rv-flame { opacity:1; transform:scale(1); }
.rv-stage:not([data-step="0"]) .rv-candle-glow { opacity:.9; }
.rv-stage[data-step="2"] .rv-meter, .rv-stage[data-step="3"] .rv-meter, .rv-stage[data-step="4"] .rv-meter { opacity:1; }
.rv-stage[data-step="3"] .rv-crack { opacity:1; stroke:var(--candle); }
.rv-stage[data-step="3"] .rv-bloom { opacity:1; transform:scale(1); }
.rv-stage[data-step="3"] .rv-stamp { opacity:1; scale:1; }
.rv-stage[data-step="3"] .rv-ring { opacity:1; transform:none; }
.rv-stage[data-step="3"] .ring-a { stroke-dasharray:49 100; }
.rv-stage[data-step="3"] .ring-b { stroke-dasharray:24 100; }
.rv-stage[data-step="3"] .ring-c { stroke-dasharray:24 100; }
.rv-stage[data-step="3"] .rv-meter-n b { color:var(--candle); }
.rv-stage[data-step="4"] .rv-flame { opacity:0; transform:scale(.3) translateY(4px); transition:opacity .9s var(--ease-out) .2s, transform 900ms var(--ease-out); }
.rv-stage[data-step="4"] .rv-candle-glow { opacity:0; transition-duration:900ms var(--ease-out); }
.rv-stage[data-step="4"] .rv-smoke { opacity:.55; transition:opacity 900ms var(--ease-out) .6s; }
.rv-stage[data-step="4"] .rv-wax-fill { fill:var(--ash); }
.rv-stage[data-step="4"] .rv-wallets, .rv-stage[data-step="4"] .rv-home { opacity:1; transform:none; }
.rv-stage[data-step="4"] .rv-stone { opacity:.78; }
.rv-stage[data-step="0"] .rv-stone-crack { opacity:.8; }

/* ------------------------------------------------------------ section titles */
.section-title { font:900 var(--fs-4)/1.02 var(--font-bold-display); letter-spacing:-.02em; margin:0; text-wrap:balance; }

/* ------------------------------------------------------------ the graveyard field */
.field { padding:clamp(40px, 6vh, 72px) 0 0; position:relative; }
.field-head { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--space-4); margin-bottom:var(--space-8); }
.field-head .counts { margin-top:var(--space-2); }
.plot-ground { position:relative; perspective:1400px; padding-bottom:clamp(48px, 8vh, 96px); overflow:hidden; }
.plot-ground::before { content:""; position:absolute; left:0; right:0; bottom:0; height:72%; background:radial-gradient(70% 70% at 50% 100%, rgba(30, 28, 24, .9), transparent 72%), repeating-linear-gradient(0deg, rgba(53, 48, 42, .18) 0 1px, transparent 1px 34px); transform:rotateX(62deg); transform-origin:50% 100%; pointer-events:none; }
.yard-field { display:flex; flex-wrap:wrap; justify-content:center; gap:40px 28px; align-items:flex-end; transform:rotateX(7deg); transform-origin:50% 0; transform-style:preserve-3d; position:relative; z-index:1; padding-top:20px; }
.yard-field.is-empty { display:block; transform:none; }
.plot { position:relative; flex:0 1 270px; min-width:0; max-width:300px; display:flex; flex-direction:column; align-items:center; }
.plot:nth-child(4n + 2) { margin-top:36px; }
.plot:nth-child(4n + 3) { margin-top:12px; }
.plot:nth-child(4n + 4) { margin-top:48px; }
.plot .rtd-stone { --rx: 0deg; --ry: 0deg; transform:rotateX(var(--rx)) rotateY(var(--ry)); transition:transform .5s var(--ease-out), border-color .4s var(--ease-out), box-shadow .4s var(--ease-out), background .4s var(--ease-out); background:linear-gradient(180deg, #24201c 0%, var(--slab) 40%, #181512 100%); border-color:var(--color-line); overflow:hidden; }
.plot .rtd-stone::before { content:""; position:absolute; inset:0; background-image:url(/img/grain.png); pointer-events:none; border-radius:inherit; }
.plot .rtd-stone::after { content:""; position:absolute; inset:0; border-radius:inherit; background:radial-gradient(60% 40% at 50% 0%, rgba(255, 122, 26, .22), transparent 70%); opacity:0; transition:opacity .5s var(--ease-out); pointer-events:none; }
.plot.is-lit .rtd-stone { border-color:rgba(255, 122, 26, .6); }
.plot.is-lit .rtd-stone::after { opacity:1; }
.plot-shadow { width:92%; height:16px; margin-top:-6px; background:radial-gradient(50% 50% at 50% 50%, rgba(0, 0, 0, .7), transparent 70%); }
.stone-candle { position:absolute; top:14px; right:22px; width:8px; height:22px; pointer-events:none; }
.sc-wax { position:absolute; left:0; bottom:0; width:8px; height:14px; border-radius:var(--radius-sm); background:linear-gradient(90deg, #cfc6b2, #ece5d6 60%, #bdb4a0); }
.sc-flame { position:absolute; left:50%; bottom:14px; width:7px; height:10px; margin-left:-3.5px; border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; background:var(--candle); box-shadow:0 0 10px 3px rgba(255, 122, 26, .55); transform-origin:50% 100%; transform:scale(0); opacity:0; transition:transform .35s var(--ease-out), opacity .2s var(--ease-out); }
.plot.is-lit .sc-flame { transform:scale(1); opacity:1; }
.rtd-stone[data-state="vigil"] .sc-flame, .rtd-stone[data-state="risen"] .sc-flame { transform:scale(1); opacity:1; }
.stone-embers { position:absolute; top:0; right:18px; width:20px; height:40px; pointer-events:none; }
.stone-embers i { position:absolute; bottom:0; left:50%; width:3px; height:3px; border-radius:50%; background:var(--data-2); box-shadow:0 0 6px 1px rgba(255, 122, 26, .8); opacity:0; }
.plot .rtd-sym a { text-decoration:none; }
.plot-fog, .ground-fog { position:absolute; left:0; right:0; bottom:0; height:140px; pointer-events:none; overflow:hidden; z-index:2; }
.plot-fog i, .ground-fog i { background-image:url(/img/fog.webp); opacity:.16; }
.plot-fog i:nth-child(2), .ground-fog i:nth-child(2) { bottom:8%; opacity:.12; }
.ground-fog { position:relative; height:120px; margin-top:-60px; z-index:0; }
.ground-fog i:nth-child(3) { bottom:-6%; opacity:.16; }

/* the gates open at dusk (empty graveyard) */
.gates { display:flex; flex-direction:column; align-items:center; text-align:center; padding:var(--space-8) var(--space-4) var(--space-12); max-width:640px; margin:0 auto; }
.gates-art .art { width:min(260px, 70vw); height:auto; color:var(--ink); }
.gates-title { font:900 var(--fs-3)/1.08 var(--font-bold-display); margin:var(--space-4) 0 var(--space-2); text-wrap:balance; }
.gates-text { color:var(--ink-muted); margin:0 0 var(--space-6); max-width:38ch; }

/* ------------------------------------------------------------ the number strip */
.strip { display:grid; grid-template-columns:repeat(3, 1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-top:var(--space-8); }
.stat { padding:var(--space-8) var(--space-4); display:flex; flex-direction:column; gap:8px; border-left:1px solid var(--line); }
.stat:first-child { border-left:0; }
.stat-n { font-size:var(--fs-4); line-height:1; color:var(--ink); font-weight:400; letter-spacing:-.03em; }
.stat-l { color:var(--ink-muted); font-size:var(--fs-0); }

/* ------------------------------------------------------------ CTA band */
.cta-band { padding:clamp(72px, 12vh, 140px) 0 clamp(40px, 6vh, 72px); position:relative; overflow:hidden; }
.cta-band::before { content:none; }
.cta-inner { display:grid; grid-template-columns:auto 1fr; gap:var(--space-12); align-items:center; position:relative; }
.cta-art .art { width:clamp(150px, 18vw, 230px); height:auto; color:var(--ink); }
.cta-sub { color:var(--ink-muted); font-size:var(--fs-0); margin:var(--space-4) 0 0; max-width:44ch; }
.cta-inner .hero-actions { align-items:center; gap:var(--space-6); }

/* ------------------------------------------------------------ engraved art, everywhere */
.art { display:block; color:var(--ink); overflow:visible; }
.art-wrap { display:inline-block; }
.art-flame ellipse { transform-box:fill-box; transform-origin:50% 100%; }
.page-art { display:flex; justify-content:center; margin:0 0 var(--space-2); }
.page-art .art { width:112px; height:auto; color:var(--ink-muted); }
.section-mark { display:flex; align-items:center; gap:var(--space-4); margin:var(--space-12) 0 var(--space-6); color:var(--ash); }
.section-mark::before, .section-mark::after { content:""; flex:1; height:1px; background:var(--line); }
.section-mark .art { width:56px; height:auto; color:var(--ink-muted); }

/* ------------------------------------------------------------ inner pages: titles with an illustration */
.page-hero { display:grid; grid-template-columns:1fr auto; gap:var(--space-8); align-items:end; padding:calc(var(--space-12) + 8px) 0 var(--space-8); }
.page-hero .art { width:clamp(110px, 14vw, 170px); height:auto; color:var(--ink); }
.page-title { font:900 var(--fs-6)/.98 var(--font-bold-display); letter-spacing:-.025em; margin:0; }
.page-sub { color:var(--ink-muted); font-size:var(--fs-0); line-height:1.5; margin:var(--space-4) 0 0; max-width:52ch; }

/* Inner-page masthead: the same moonlit yard as the hero, cropped per page, one push-in on arrival. */
.page-hero.has-media { position:relative; isolation:isolate; grid-template-columns:1fr; min-height:clamp(340px, 50vh, 540px); align-content:end; padding:var(--sp-10) 0 var(--sp-6); margin-bottom:0; }
.page-hero-media { position:absolute; inset-block:0; inset-inline:calc(50% - 50vw); z-index:-1; overflow:hidden; }
.page-hero-media img { width:100%; height:100%; object-fit:cover; object-position:var(--crop, 50% 60%); opacity:.82; animation:mast-in var(--dur-scene) var(--ease-out) both; }
.page-hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, var(--ground) 0%, rgba(11, 10, 9, .55) 38%, transparent 72%), linear-gradient(to right, rgba(11, 10, 9, .7) 0%, transparent 60%); }
.page-hero.has-media .page-title { text-shadow:0 2px 12px rgba(11, 10, 9, .6); }
.page-hero.has-media .page-sub { color:var(--color-ink-soft); }
.page-hero[data-crop="yard"] { --crop:50% 62%; }
.page-hero[data-crop="candle"] { --crop:38% 80%; }
.page-hero[data-crop="stone"] { --crop:18% 62%; }
.page-hero[data-crop="sky"] { --crop:78% 12%; }
@keyframes mast-in { from { transform:scale(1.06); opacity:0; } }
@media (max-width: 699px) {
  .page-hero.has-media { min-height:max(320px, 48svh); padding:var(--sp-8) 0 var(--sp-5); }
  .ground-fog { opacity:.4; }
  .page-hero[data-crop="yard"] { --crop:50% 56%; }
  .page-hero[data-crop="candle"] { --crop:12% 66%; }
  .page-hero[data-crop="stone"] { --crop:60% 58%; }
  .page-hero[data-crop="sky"] { --crop:60% 18%; }
}
.plot-page .yard-field.is-loading, .plot-page .yard-field:empty { min-height:400px; }
.board-area { min-height:520px; }

/* graveyard page: animated filters */
@media (min-width: 640px) { .filters { grid-template-columns:2fr 1fr auto; } }
.plot-page { padding-top:var(--space-4); min-height:420px; }
.filters { position:relative; }
.filter-chips { display:flex; gap:var(--space-2); flex-wrap:wrap; margin:0 0 var(--space-6); }
.chip { position:relative; min-height:40px; padding:0 var(--space-4); border:1px solid var(--line); border-radius:var(--radius-pill); background:transparent; color:var(--ink-muted); font:600 var(--fs-0)/1 var(--font-sans); cursor:pointer; transition:color .25s var(--ease-out), border-color .25s var(--ease-out), background .25s var(--ease-out); }
.chip:hover { color:var(--ink); border-color:var(--ink-muted); }
.chip[aria-pressed="true"] { color:var(--candle-ink); background:var(--ink); border-color:var(--ink); }
.chip[disabled] { opacity:.35; cursor:not-allowed; }
.yard.is-swapping .plot { opacity:0; transform:translateY(12px); }
.yard .plot { transition:opacity .45s var(--ease-out), transform .6s var(--ease-out); }

/* /how: visual blocks */
.how-block { padding:var(--space-12) 0; border-top:1px solid var(--line); display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.1fr); gap:var(--space-12); align-items:center; }
.how-block:nth-of-type(even) .how-visual { order:-1; }
.how-k { font:500 var(--fs-m1)/1 var(--font-mono); color:var(--ash); letter-spacing:.2em; }
.how-block h2 { font:900 var(--fs-4)/1.04 var(--font-bold-display); margin:var(--space-3) 0 var(--space-4); letter-spacing:-.01em; }
.how-cap { color:var(--ink-muted); font-size:var(--fs-0); line-height:1.55; margin:0 0 var(--space-4); max-width:46ch; }
.how-list { list-style:none; margin:0; padding:0; display:grid; gap:var(--space-2); font-size:var(--fs-0); color:var(--ink-muted); }
.how-list li { padding-left:20px; position:relative; }
.how-list li::before { content:""; position:absolute; left:0; top:9px; width:8px; height:1px; background:var(--ash); }
.how-list b { color:var(--ink); font-weight:500; }
.how-visual { display:flex; justify-content:center; }
.how-visual svg { width:100%; max-width:520px; height:auto; color:var(--ink); overflow:visible; }
.how-visual text { fill:var(--ink); stroke:none; font-family:var(--font-sans); }
.how-visual .t-mono { font-family:var(--font-mono); }
.how-visual .t-muted { fill:var(--ink-muted); }
.how-visual .t-candle { fill:var(--candle); }
.how-visual .t-disp { font-family:var(--font-display); font-weight:600; }
.signs { display:grid; grid-template-columns:repeat(2, 1fr); gap:var(--space-3); width:100%; max-width:520px; }
.sign { border:1px solid var(--line); border-radius:var(--radius-md); padding:var(--space-4); background:var(--surface); display:flex; flex-direction:column; gap:8px; }
.sign .sign-n { font:400 var(--fs-3)/1 var(--font-mono); color:var(--ink); letter-spacing:-.02em; }
.sign .sign-l { font-size:var(--fs-m1); color:var(--ink-muted); line-height:1.35; }
.sign-art { width:30px; height:30px; color:var(--ash); }
.draw-path, .draw-path path { stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset 900ms var(--ease-out); }
.is-in .draw-path path { stroke-dashoffset:0; }
.is-in .draw-path { stroke-dashoffset:0; }
.how-callout { margin:var(--space-12) 0; padding:var(--space-8); border:1px solid var(--line); border-radius:var(--radius-md); display:grid; grid-template-columns:auto 1fr; gap:var(--space-6); align-items:center; background:var(--surface); }
.how-callout .art { width:90px; height:auto; }
.how-callout p { margin:0; color:var(--ink-muted); }
.how-callout b { color:var(--ink); font-weight:600; }
.how-callout .callout-title { font:600 var(--fs-2)/1.1 var(--font-display); color:var(--ink); margin:0 0 var(--space-2); }

/* 404, nominate, risen: illustrated */
.lost { text-align:center; padding:var(--space-16) 0 var(--space-12); display:flex; flex-direction:column; align-items:center; }
.lost .art { width:180px; height:auto; margin-bottom:var(--space-4); }
.lost .page-title { margin-bottom:var(--space-3); }

/* ------------------------------------------------------------ reveals */
.reveal { opacity:0; transform:translate3d(0, 12px, 0); transition:opacity .8s var(--ease-out), transform .9s var(--ease-out); }
.reveal.is-in { opacity:1; transform:none; }
.plot.reveal { transition-delay:calc(var(--d, 0) * 1ms); }
.plot[data-i="1"] { --d: 70; } .plot[data-i="2"] { --d: 140; } .plot[data-i="3"] { --d: 210; } .plot[data-i="5"] { --d: 70; } .plot[data-i="6"] { --d: 140; } .plot[data-i="7"] { --d: 210; }

/* ------------------------------------------------------------ cluster note */
.cluster-note { font-size:var(--fs-0); color:var(--ink-muted); margin:0 0 var(--space-3); }

/* ------------------------------------------------------------ motion (only when allowed) */
@media (prefers-reduced-motion: no-preference) {
  .flame-dot { animation:flick 2.4s var(--ease-io) infinite; }
  .sc-flame, .art-flame path, .rv-flame { animation:flick 2.8s var(--ease-io) infinite; transform-box:fill-box; }
  .art-flame path { transform-origin:50% 100%; }
  .art-flame ellipse { animation:glowpulse 3.2s var(--ease-io) infinite; }
  @keyframes flick { 0%, 100% { transform:translateX(0) scale(1, 1); } 22% { transform:translateX(.5px) scale(.97, 1.05); } 47% { transform:translateX(-.6px) scale(1.02, .96); } 71% { transform:translateX(.3px) scale(.99, 1.03); } }
  @keyframes glowpulse { 0%, 100% { opacity:.85; } 50% { opacity:1; } }
  .plot.is-lit .stone-embers i { animation:ember 2.2s var(--ease-out) infinite; }
  .plot.is-lit .stone-embers i:nth-child(2) { animation-delay:.5s; left:30%; }
  .plot.is-lit .stone-embers i:nth-child(3) { animation-delay:1.1s; left:70%; }
  .plot.is-lit .stone-embers i:nth-child(4) { animation-delay:1.6s; left:45%; }
  @keyframes ember { 0% { opacity:0; transform:translate(0, 0); } 15% { opacity:1; } 100% { opacity:0; transform:translate(6px, -40px); } }
  .hero-hint { display:flex; }
  .rv-stage[data-step="0"] .rv-stone { animation:settle 6s var(--ease-io) infinite; }
  @keyframes settle { 0%, 100% { translate:0 0; } 50% { translate:0 1px; } }
}

/* ------------------------------------------------------------ phones */
@media (max-width: 899px) {
  .page-home .site-header .site-nav { display:none; }
  .rv-grid { grid-template-columns:1fr; grid-template-rows:auto auto; gap:var(--space-6); align-content:center; padding-top:calc(var(--header-h) + 4px); }
  .rv-home { display:none; }
  .hero-hint { display:none !important; }
  .rv-steps { height:120px; }
  .rv-line { font-size:var(--fs-3); }
  .rv-scene { height:auto; width:100%; max-height:58vh; }
  .rv-ring { width:40%; right:-4%; top:-4%; }
  .rv-ring figcaption { font-size:var(--fs-m1); line-height:15px; }
  .rv-stamp-word { font-size:var(--fs-2); }
  .rv-stamp { padding:12px 16px; }
  .rv-home { font-size:var(--fs-1); }
  .strip { grid-template-columns:1fr; }
  .stat { border-left:0; border-top:1px solid var(--line); padding:var(--space-6) 0; flex-direction:row; align-items:baseline; gap:var(--space-4); }
  .stat:first-child { border-top:0; }
  .stat-n { min-width:2.4ch; }
  .cta-inner { grid-template-columns:1fr; gap:var(--space-6); justify-items:start; }
  .page-hero { grid-template-columns:1fr; gap:var(--space-4); }
  .page-hero { position:relative; padding-right:72px; }
  .page-hero .art-wrap { position:absolute; right:0; top:calc(var(--space-12) + 4px); }
  .page-hero .art { width:64px; }
  .how-block { grid-template-columns:1fr; gap:var(--space-6); padding:var(--space-8) 0; }
  .how-block:nth-of-type(even) .how-visual { order:0; }
  .how-callout { grid-template-columns:1fr; padding:var(--space-6); }
  .plot:nth-child(n) { margin-top:0; }
  .yard-field { transform:none; gap:28px; }
  .field-head { flex-direction:column; align-items:flex-start; gap:var(--space-2); }
}
@media (max-width: 699px) {
  .hero-run { height:180vh; height:180svh; }
  .hero-overlay { justify-content:flex-end; gap:var(--space-4); padding-bottom:24px; }
  .hero-title { font-size:var(--fs-6); }
  .hero-vignette { background:radial-gradient(130% 80% at 50% 40%, transparent 35%, rgba(4, 4, 5, .8) 100%), linear-gradient(0deg, rgba(4, 4, 5, .88) 0%, rgba(4, 4, 5, .35) 45%, transparent 70%); }
  .hero-overlay .hero-actions { margin-top:var(--space-4); }
  .hero-overlay .hero-actions .rtd-btn { flex:1 1 auto; }
  .hero-vigil { padding:var(--space-3); gap:var(--space-3); max-width:none; }
  .fv-candle { display:none; }
  .hero-vigil .fv-note { display:none; }
  .hero-vigil { flex-direction:row; align-items:center; }
  .fv-body { flex-direction:row; align-items:center; justify-content:space-between; flex-wrap:wrap; width:100%; gap:8px 12px; }
  .hero-vigil .rtd-meter { flex:1 1 100%; }
  .fv-btn { min-height:40px; }
  .revival-run { height:380vh; }
  .stone-candle { right:18px; }
}
@media (min-width: 900px) {
  .hero-overlay { flex-direction:row; align-items:flex-end; justify-content:space-between; padding-bottom:max(48px, 9vh); }
}
@media (max-width: 699px) { .page-home .yard-field .plot:nth-child(n + 5) { display:none; } }

/* Fog bands melt into the black: feathered top and bottom, no rectangle edge. */
.plot-fog, .ground-fog, .plot-fog i, .ground-fog i { -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 38%, #000 58%, transparent 100%); mask-image:linear-gradient(to bottom, transparent 0%, #000 38%, #000 58%, transparent 100%); }
.hero-fog { -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 45%); mask-image:linear-gradient(to bottom, transparent 0%, #000 45%); }
.ground-fog { height:180px; margin-top:-90px; }
.plot-fog { height:200px; }
.plot-ground::before { -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 30%, #000 55%, transparent 100%); mask-image:linear-gradient(to bottom, transparent 0%, #000 30%, #000 55%, transparent 100%); }

/* =================================================================================================== v3 (UX review)
   Order matters: this layer sits after every breakpoint above, and the reduced-motion block is the very last rule. */

/* ---------- type on brand: Bodoni display, Bodoni italic epitaphs, Inter Tight UI, Mono numbers */
.rtd-sym, .sym-link, .fv-sym, .rv-sym, .epitaph-xl, .epitaph-l, .epitaph-m, .step h3, .prose h2, .callout-title, .rtd-stamp-t, .wordmark { font-family:var(--font-display); font-weight:900; letter-spacing:-.01em; }
.rtd-sym { font-size:var(--fs-2); line-height:30px; }
.rtd-cause, .epitaph-italic, .rv-epitaph, .lore .lore-text p, .rv-home, .rtd-brand { font-family:var(--font-epitaph); font-style:italic; font-weight:400; }
.rtd-stamp-word, .rv-stamp-word { font-family:var(--font-display); font-weight:900; }
.rtd-btn { font-family:var(--font-sans); }

/* ---------- focus: bone ring with a ground gap (visible on orange) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, .rtd-btn:focus-visible { outline:2px solid var(--ink); outline-offset:2px; box-shadow:0 0 0 2px var(--ground); }

/* ---------- the mark's flame instead of a dot; chevron for text links */
.flame-dot { width:9px; height:12px; border-radius:0; background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='27 0 10 13.2'%3E%3Cpath d='M33.8.6c2.58 3.72 3.14 6.2 2.9 8.93-.23 2.48-2.11 3.47-4.7 3.47s-4.46-.99-4.7-3.47c0-2.98 4.15-4.96 6.5-8.93z'/%3E%3C/svg%3E") center / contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='27 0 10 13.2'%3E%3Cpath d='M33.8.6c2.58 3.72 3.14 6.2 2.9 8.93-.23 2.48-2.11 3.47-4.7 3.47s-4.46-.99-4.7-3.47c0-2.98 4.15-4.96 6.5-8.93z'/%3E%3C/svg%3E") center / contain no-repeat; flex:none; }
.btn-flame .flame-dot { color:var(--candle-ink); }
.chip-promise .flame-dot { color:var(--candle); }
.chev { display:inline-block; width:14px; height:14px; margin-left:8px; background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h9M8 4l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h9M8 4l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transition:transform .3s var(--ease-out); }
a:hover .chev { transform:translateX(3px); }
.fv-link { display:inline-flex; align-items:center; min-height:44px; color:var(--ink); font-weight:600; font-size:var(--fs-0); text-decoration:none; border-bottom:1px solid transparent; }
.fv-link:hover { border-bottom-color:var(--ink); }

/* ---------- header: menu button + full-screen sheet (phones and tablets), safe areas */
.site-header { padding-top:env(safe-area-inset-top); }
.icon-btn { width:44px; height:44px; }
.menu-btn { display:none; margin-left:auto; }
.rtd-mark-small { display:block; overflow:hidden; }
@media (prefers-reduced-motion: no-preference) { .site-header .rtd-mark-small > g { animation:rtd-rise .9s var(--ease-pop) .15s both; } }
@media (max-width: 899px) {
  .site-nav { display:none !important; }
  .menu-btn { display:inline-flex; }
  .header-row { flex-wrap:nowrap; min-height:60px; }
}
html.menu-open, html.menu-open body { overflow:hidden; }
.menu-sheet { position:fixed; inset:0; z-index:50; background:var(--color-ground); display:flex; flex-direction:column; padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom); opacity:0; transition:opacity .26s var(--ease-out); }
.menu-sheet.is-open { opacity:1; }
.menu-top { display:flex; align-items:center; justify-content:space-between; min-height:60px; }
.menu-links { display:flex; flex-direction:column; gap:4px; margin-top:8vh; }
.menu-links a { font:900 var(--fs-4)/1.1 var(--font-display); letter-spacing:-.02em; color:var(--ink); text-decoration:none; min-height:56px; display:flex; align-items:center; opacity:0; transform:translateY(16px); transition:opacity .42s var(--ease-out), transform .42s var(--ease-out); }
.menu-links a[aria-current="page"] { color:var(--candle); }
.menu-sheet.is-open .menu-links a { opacity:1; transform:none; }
.menu-sheet.is-open .menu-links a:nth-child(2) { transition-delay:40ms; }
.menu-sheet.is-open .menu-links a:nth-child(3) { transition-delay:80ms; }
.menu-sheet.is-open .menu-links a:nth-child(4) { transition-delay:120ms; }
.menu-foot { margin-top:auto; padding-bottom:28px; font-size:var(--fs-m1); color:var(--ink-muted); }

/* ---------- sticky phone CTA bar */
.cta-bar { position:fixed; left:0; right:0; bottom:0; z-index:30; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); background:linear-gradient(to top, rgba(5,4,4,.96) 60%, rgba(5,4,4,0)); transform:translateY(110%); transition:transform .32s var(--ease-out); }
.cta-bar.is-on { transform:none; }
.cta-bar .rtd-btn { width:100%; min-height:52px; }
@media (min-width: 700px) { .cta-bar { display:none !important; } }
@media (max-width: 699px) { body.has-bar .site-footer { padding-bottom:calc(96px + env(safe-area-inset-bottom)); } }

/* ---------- toast */
.toast { position:fixed; left:50%; bottom:calc(24px + env(safe-area-inset-bottom)); z-index:60; translate:-50% 12px; background:var(--ink); color:var(--ground); font:600 var(--fs-0)/1.43 var(--font-sans); padding:12px 20px; border-radius:var(--radius-md); opacity:0; pointer-events:none; transition:opacity .24s var(--ease-out), translate .24s var(--ease-out); }
.toast.is-on { opacity:1; translate:-50% 0; }

/* ---------- hero: promise chips, reserved featured card (no layout shift), one orange */
.hero-chips { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 var(--space-4); }
.chip-promise, .chip-live { display:inline-flex; align-items:center; gap:8px; min-height:30px; padding:4px 12px; border:1px solid rgba(236,229,214,.22); border-radius:var(--radius-pill); background:rgba(10,10,12,.45);  font-size:var(--fs-m1); color:var(--ink); }
.chip-live { color:var(--ink-muted); }
.hero-overlay { padding-bottom:max(28px, calc(6vh + env(safe-area-inset-bottom))); }
.hero-vigil { min-height:92px; }
.hero-vigil.is-loading { display:flex; flex-direction:column; justify-content:center; gap:12px; min-width:min(380px, 100%); }
.hero-vigil .sk { display:block; height:10px; border-radius:5px; background:linear-gradient(90deg, rgba(236,229,214,.06), rgba(236,229,214,.14), rgba(236,229,214,.06)); background-size:200% 100%; }
.hero-vigil .sk-a { width:40%; } .hero-vigil .sk-b { width:85%; height:14px; } .hero-vigil .sk-c { width:60%; }
@media (prefers-reduced-motion: no-preference) { .hero-vigil .sk { animation:shimmer 1.4s linear infinite; } @keyframes shimmer { to { background-position:-200% 0; } } }
.hero-vigil.is-live { flex-direction:column; align-items:stretch; gap:8px; min-width:min(380px, 100%); }
.hero-vigil.is-live .rtd-meter { flex:none; }
@media (min-width: 900px) {
  /* Desktop: the card sits beside the copy, so its height never moves the headline. */
  .hero-vigil { align-self:flex-end; min-height:200px; justify-content:flex-end; }
  .hero-vigil.is-live { min-height:236px; }
}
@media (max-width: 699px) {
  .hero-vigil, .hero-vigil.is-live, .hero-vigil.is-loading { min-height:132px; max-height:132px; overflow:hidden; }
  .hero-vigil:not(.is-live):not(.is-loading) { flex-direction:column; align-items:flex-start; justify-content:center; gap:0; padding-block:var(--sp-2); }
  .hero-vigil:not(.is-live):not(.is-loading) .fv-note { display:block; }
  .hero-vigil.is-live { display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; align-items:center; gap:2px 12px; padding:12px 16px; }
  .hero-vigil.is-live .fv-label { grid-column:1; font-size:var(--fs-m1); color:var(--ink-muted); }
  .hero-vigil.is-live .fv-sym { grid-column:1; font-size:var(--fs-1); line-height:26px; }
  .hero-vigil.is-live .rtd-meter { grid-column:2; grid-row:1 / span 2; width:132px; }
  .hero-vigil.is-live .rtd-meter-sub, .hero-vigil.is-live .c2-legend { display:none; }
  .hero-vigil.is-live .fv-link { grid-column:1 / -1; min-height:44px; font-size:var(--fs-0); }
  .hero-vigil.is-live .c2-box { display:none; }
  .hero-chips { margin-bottom:var(--space-3); }
}

/* ---------- the two-axis candle */
.rtd-meter.has-candle { display:grid; grid-template-columns:auto 1fr; column-gap:16px; align-items:end; }
.rtd-meter.has-candle > :not(.c2-box) { grid-column:2; }
.c2-box { grid-column:1; grid-row:1 / span 3; display:flex; flex-direction:column; align-items:center; gap:4px; }
.candle2 { display:block; width:30px; height:80px; overflow:visible; }
.candle2-big { width:64px; height:172px; }
.c2-legend { font-size:var(--fs-m1); line-height:13px; color:var(--ink-muted); text-align:center; max-width:80px; }
.rtd-meter-big .c2-legend { max-width:120px; font-size:var(--fs-m1); }
.c2-goal { stroke:var(--ink-muted); stroke-width:1; stroke-dasharray:2 3; fill:none; }
.c2-ghost { fill:none; stroke:var(--line); stroke-width:1; stroke-dasharray:2 3; }
.c2-body { fill:#1a1714; stroke:var(--ink); stroke-width:1.2; }
.c2-wax { }
.c2-drip { fill:none; stroke:var(--ink); stroke-width:1.2; stroke-linecap:round; }
.c2-wick { stroke:var(--ink); stroke-width:1.4; stroke-linecap:round; }
.c2-dish { fill:#1a1714; stroke:var(--ink); stroke-width:1.2; }
.c2-glow { fill:rgba(255,122,26,.18); }
.c2-smoke { fill:none; stroke:var(--ink-muted); stroke-width:1.1; opacity:.6; }
.is-risen .c2-glow { fill:rgba(255,122,26,.3); }
@media (prefers-reduced-motion: no-preference) { .c2-flame { transform-box:fill-box; } .c2-flame path { transform-box:fill-box; transform-origin:50% 100%; animation:flick 2.6s var(--ease-io) infinite; } }
.rtd-stone .rtd-meter.has-candle { margin-top:4px; }

/* the candle replaces the bar; the numbers sit beside it */
.rtd-meter.has-candle .rtd-track { display:none; }
.rtd-meter.has-candle { align-items:center; }
.rtd-meter.has-candle .rtd-meter-top { flex-wrap:wrap; gap:2px 12px; }
.rtd-meter-big.has-candle .rtd-meter-top { flex-direction:column; align-items:flex-start; }
.rtd-meter.has-candle .rtd-meter-sub { flex-direction:column; white-space:normal; gap:2px; align-items:flex-start; }
.rtd-stone .c2-legend { display:none; }
.rtd-stone .rtd-meter.has-candle { text-align:left; }
@media (max-width: 699px) { .hero-vigil.is-live .rtd-meter.has-candle { display:block; } .hero-vigil.is-live .rtd-meter.has-candle .rtd-track { display:block; } }

/* ---------- revival sequence: touch length, snap points, tappable ticks */
.rv-snap { position:absolute; left:0; width:1px; height:1px; pointer-events:none; }
/* one snap point at the middle of each step: (step + .5) / 5 of the pinned span */
.rv-snap:nth-child(1) { top:calc((100% - 100svh) * .1); } .rv-snap:nth-child(2) { top:calc((100% - 100svh) * .3); } .rv-snap:nth-child(3) { top:calc((100% - 100svh) * .5); } .rv-snap:nth-child(4) { top:calc((100% - 100svh) * .7); } .rv-snap:nth-child(5) { top:calc((100% - 100svh) * .9); }
.rv-progress { height:3px; overflow:visible; }
.rv-ticks { position:absolute; left:0; right:0; bottom:-20px; display:flex; justify-content:space-around; }
.rv-ticks button { width:44px; height:44px; background:none; border:0; padding:0; cursor:pointer; position:relative; }
.rv-ticks button::after { content:""; position:absolute; left:50%; top:50%; width:9px; height:9px; margin:-4.5px; border-radius:50%; background:var(--ground); border:1px solid var(--ink-muted); transition:background .3s var(--ease-out), border-color .3s var(--ease-out), transform .3s var(--ease-out); }
.rv-ticks button[aria-current="step"]::after { background:var(--ink); border-color:var(--ink); transform:scale(1.25); }
.rv-progress { bottom:34px; left:16px; right:16px; }
@media (pointer: coarse) {
  html { scroll-snap-type:y proximity; }
  .rv-snap { scroll-snap-align:start; }
  .hero-run { height:160svh !important; }
  .revival-run { height:350svh !important; }
}

/* ---------- revival scene on phones: no collisions */
@media (max-width: 699px) {
  .rv-grid { grid-template-rows:auto auto; gap:var(--space-3); align-content:start; padding-top:calc(var(--header-h) + 24px); }
  .rv-steps { height:108px; }
  .rv-scene { width:100%; height:auto; max-height:none; margin-bottom:152px; }
  .rv-ring { width:36%; right:auto; left:50%; top:calc(100% + 8px); translate:-50% 0; flex-direction:row; gap:16px; width:92%; justify-content:center; }
  .rv-ring svg { width:112px; flex:none; }
  .rv-ring figcaption { font-size:var(--fs-m1); line-height:19px; }
  .rv-meter { left:50%; top:auto; bottom:-6%; flex-direction:row; gap:12px; align-items:baseline; }
  .rv-meter-n { font-size:var(--fs-m1); } .rv-meter-n b { font-size:var(--fs-0); }
  .rv-meter-tag { font-size:var(--fs-m1); }
  .rv-stamp { left:41.6%; top:46%; }
  .rv-progress { bottom:calc(18px + env(safe-area-inset-bottom)); }
}

/* ---------- graveyard: filter row, compact 2-up stones on phones, crack open on press */
.filters { display:grid; gap:12px; grid-template-columns:1fr !important; margin-bottom:var(--space-4); }
.field-search input { min-height:48px; font-size:var(--fs-0); }
.filter-row { display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; -webkit-mask-image:linear-gradient(90deg, #000 85%, transparent); mask-image:linear-gradient(90deg, #000 85%, transparent); }
.filter-row::-webkit-scrollbar { display:none; }
.filter-row .chip { flex:none; min-height:44px; white-space:nowrap; }
.pill-select { flex:none; position:relative; }
.pill-select select { appearance:none; -webkit-appearance:none; min-height:44px; padding:0 36px 0 16px; border:1px solid var(--line); border-radius:var(--radius-pill); background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5l3 3 3-3' fill='none' stroke='%23a89f8f' stroke-width='1.4'/%3E%3C/svg%3E") right 12px center / 12px no-repeat; color:var(--ink); font:600 var(--fs-0)/1 var(--font-sans); }
.plot-mint { font:500 var(--fs-m1)/1.27 var(--font-mono); color:var(--ink-muted); margin:4px 0 0; letter-spacing:.02em; }
.plot-under { position:absolute; left:50%; bottom:20px; translate:-50% 0; width:70%; height:60px; display:flex; align-items:flex-end; justify-content:center; border-radius:50% 50% 0 0 / 100% 100% 0 0; background:radial-gradient(60% 80% at 50% 100%, rgba(255,122,26,.35), transparent 70%); opacity:0; transition:opacity .4s var(--ease-out); pointer-events:none; }
.plot-under img { width:36px; height:36px; margin-bottom:-4px; }
.under-lying, .under-refunded { background:radial-gradient(60% 80% at 50% 100%, rgba(236,229,214,.14), transparent 70%); }
.stone-crack { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; }
.stone-crack path { fill:none; stroke:var(--candle); stroke-width:1.6; stroke-dasharray:1 2; stroke-dashoffset:1; opacity:0; transition:stroke-dashoffset .4s var(--ease-io); filter:drop-shadow(0 0 3px rgba(255,122,26,.8)); }
.stone-crack path + path { stroke-width:1.1; transition-delay:.25s; }
.plot.is-cracked .stone-crack path { stroke-dashoffset:0; opacity:1; }
.stone-crack path { transition:stroke-dashoffset .4s var(--ease-io), opacity .1s var(--ease-out); }
.plot.is-cracked .rtd-stone { translate:0 -6px; }
.plot.is-cracked .plot-under { opacity:1; }
.plot .rtd-stone { transition:transform .5s var(--ease-out), translate .35s var(--ease-out), border-color .4s var(--ease-out), box-shadow .4s var(--ease-out), background .4s var(--ease-out); }
.plot .rtd-stone .rtd-btn-primary { background:transparent; color:var(--ink); border-color:var(--ink); }
.plot .rtd-stone .rtd-btn-primary:hover { background:var(--surface); box-shadow:none; }
.rtd-stone a.rtd-btn, .rtd-stone .rtd-btn { min-height:44px; }
@media (max-width: 699px) {
  .yard-field { display:grid; grid-template-columns:1fr 1fr; gap:28px 12px; align-items:end; }
  .yard-field.is-empty { display:block; }
  .plot { max-width:none; }
  .plot .rtd-stone { padding:36px 12px 12px; border-radius:50% 50% var(--radius-sm) var(--radius-sm) / 26% 26% var(--radius-sm) var(--radius-sm); }
  .plot .rtd-here, .plot .rtd-rule, .plot .rtd-facts, .plot .rtd-consent, .plot .rtd-meter-sub, .plot .rtd-meter-top span:last-child, .plot .c2-legend, .plot .rtd-brand { display:none; }
  .plot .rtd-chip { transform:scale(.86); margin-top:-6px; }
  .plot .rtd-sym { font-size:var(--fs-1); line-height:23px; margin-top:4px; overflow-wrap:anywhere; }
  .plot .rtd-dates { font-size:var(--fs-m1); line-height:14px; margin-top:4px; }
  .plot .rtd-cause { font-size:var(--fs-0); line-height:1.3; margin:8px 0 8px; }
  .plot .rtd-meter-top { font-size:var(--fs-m1); }
  .plot .candle2 { width:22px; height:58px; }
  .plot .rtd-meter.has-candle { column-gap:8px; margin-bottom:8px; }
  .plot .rtd-btn { font-size:var(--fs-m1); padding:0 8px; }
  .plot .stone-candle { right:14px; top:10px; }
  .page-home .yard-field .plot:nth-child(n + 5) { display:none; }
}

/* ---------- consent: quorum meter, real CTO button, empty panels hidden */
.quorum { display:grid; gap:16px; margin:var(--space-4) 0; }
.q-top { display:flex; justify-content:space-between; gap:12px; font-size:var(--fs-0); }
.q-label { font-weight:600; }
.q-val { color:var(--ink-muted); font-size:var(--fs-m1); }
.q-track { position:relative; height:8px; border-radius:4px; border:1px solid var(--line); background:var(--ground); margin-top:8px; overflow:hidden; }
.q-track i { position:absolute; inset:0; background:var(--ink); transform-origin:left; transform:scaleX(0); transition:transform .8s var(--ease-out); }
.q-track.is-pending { background:repeating-linear-gradient(-45deg, var(--ground) 0 6px, rgba(236,229,214,.08) 6px 12px); }
.q-track.is-pending i { opacity:.35; }
.q-track b { position:absolute; right:0; top:-3px; bottom:-3px; width:2px; background:var(--candle); }
.q-note { font-size:var(--fs-m1); line-height:18px; color:var(--ink-muted); margin:8px 0 0; }
#consent-cto { border:1px solid var(--ink); color:var(--ink); background:transparent; }
#consent-cto:hover { background:var(--surface); }
.is-empty-panel { display:none !important; }

/* ---------- tap targets ≥ 44px */
.chip-btn, .copy { min-height:44px; min-width:44px; }
.mint-line a { display:inline-flex; align-items:center; min-height:44px; padding:0 4px; }
.foot-nav a { min-height:44px; }
.site-footer .brand, .menu-top .brand, .site-header .brand { min-height:44px; }
.chip, .rtd-btn { min-height:44px; }

/* ---------- RISEN slam */
.rtd-stamp.slam { animation:slam .14s var(--ease-out) both, slamglow 1.2s var(--ease-out) .14s; }
@keyframes slam { from { transform:scale(1.6) rotate(-4deg); opacity:0; } to { transform:scale(1) rotate(-4deg); opacity:1; } }
@keyframes slamglow { from { box-shadow:0 0 60px 12px rgba(255,122,26,.7); } }
.risen-panel .rtd-stamp { transform:rotate(-4deg); }
body.shake { animation:shake .36s steps(6) both; }
@keyframes shake { 0%, 100% { translate:0 0; } 20% { translate:-3px 1px; } 40% { translate:3px -2px; } 60% { translate:-2px 2px; } 80% { translate:2px -1px; } }
.ember-burst { position:absolute; inset:0; pointer-events:none; z-index:2; }

/* ---------- vigil page: brand layer over revival.css (the wallet track owns layout and the vg-* contract) */
.page-revival .vg-ticker, .page-revival .rev-head .rtd-sym { font-family:var(--font-display); font-weight:900; letter-spacing:-.01em; }
.page-revival .vg-total, .page-revival .vg-clock, .page-revival .countdown { font-family:var(--font-mono); }
.page-revival .vg-candle .candle2-big { width:100%; height:auto; }
.page-revival .vg-track { display:none; }
.page-revival .vg-input, .page-revival #amount { min-height:48px; }
.page-revival .chip-btn, .page-revival .vg-disconnect, .page-revival .vg-wallet-chip { min-height:44px; }
.page-revival .vg-err { color:var(--blood); }
.page-revival .vg-id .rtd-chip, .page-revival .rev-head .rtd-chip { justify-self:center; width:auto; }

/* ---------- hero live action: paste a mint, get a death certificate */
.btn-flame .flame-dot, .rtd-btn-primary .flame-dot { display:none; }
.hero-sub#hero-ask { font:600 var(--fs-1)/1.35 var(--font-sans); color:var(--ink); margin-top:var(--space-4); }
.hero-check { display:flex; gap:8px; margin-top:var(--space-3); max-width:520px; }
.hero-check input { flex:1; min-width:0; min-height:52px; padding:0 16px; border-radius:var(--radius-md); border:1px solid rgba(236,229,214,.32); background:rgba(8,7,6,.72); color:var(--ink); font:400 var(--fs-0)/1 var(--font-mono); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.hero-check input::placeholder { color:var(--ink-muted); }
.hero-check input:focus-visible { border-color:var(--ink); }
.hero-check input[aria-invalid="true"] { border-color:var(--blood); }
.hero-check .rtd-btn { min-height:52px; padding:0 24px; flex:none; }
.hero-check-err { min-height:0; margin:8px 0 0; font-size:var(--fs-m1); color:var(--blood); }
.hero-check-err:empty { display:none; }
.hero-overlay .hero-actions { margin-top:var(--space-4); }
body.has-cert .hero-check .rtd-btn-primary { background:transparent; color:var(--ink); border-color:var(--ink); box-shadow:none; }
body.has-cert .hero-vigil { display:none; }
body.has-cert .hero-hint { display:none; }

.cert { position:relative; width:min(420px, 100%); align-self:flex-end; background:linear-gradient(180deg, #1d1a17, #141210); border:1px solid rgba(236,229,214,.22); border-radius:50% 50% var(--radius-md) var(--radius-md) / 64px 64px var(--radius-md) var(--radius-md); padding:44px 24px 20px; color:var(--ink); box-shadow:0 30px 80px rgba(0,0,0,.55); opacity:0; translate:0 12px; transition:opacity .3s var(--ease-out), translate .45s var(--ease-out); overflow:hidden; max-height:calc(100svh - var(--header-h) - 40px); overflow-y:auto; }
.cert.is-in { opacity:1; translate:0 0; }
.cert::before { content:""; position:absolute; inset:6px; border:1px solid rgba(236,229,214,.1); border-radius:inherit; pointer-events:none; }
.cert-head { text-align:center; position:relative; }
.cert-kicker { margin:0; font:600 var(--fs-m1)/1.45 var(--font-sans); letter-spacing:.18em; text-transform:uppercase; color:var(--ink-muted); }
.cert-sym { margin:8px 0 0; font:900 var(--fs-3)/1.05 var(--font-display); letter-spacing:-.01em; overflow-wrap:anywhere; }
.cert-mint { margin:4px 0 0; font-size:var(--fs-m1); color:var(--ink-muted); }
.cert-close { position:absolute; top:-36px; right:-10px; width:44px; height:44px; border:0; background:none; cursor:pointer; color:var(--ink-muted); }
.cert-close::before, .cert-close::after { content:""; position:absolute; left:14px; right:14px; top:21px; height:1.5px; background:currentColor; rotate:45deg; }
.cert-close::after { rotate:-45deg; }
.cert-score { text-align:center; margin:16px 0 12px; color:var(--ink-muted); font-size:var(--fs-0); }
.cert-score b { font:400 var(--fs-4)/1 var(--font-mono); color:var(--ink); letter-spacing:-.03em; }
.cert-signs { list-style:none; margin:0; padding:0; display:grid; gap:8px; border-top:1px solid var(--line); padding-top:12px; }
.cert-sign { display:grid; grid-template-columns:22px 1fr; gap:12px; align-items:start; opacity:0; translate:0 8px; transition:opacity .3s var(--ease-out), translate .4s var(--ease-out); }
.cert-sign.is-in { opacity:1; translate:0 0; }
.cert-mark { width:20px; height:20px; border-radius:50%; border:1px solid var(--line); margin-top:1px; position:relative; }
.cert-sign.is-held .cert-mark { border-color:var(--ink); background:var(--ink); }
.cert-sign.is-held .cert-mark::after { content:""; position:absolute; left:6px; top:3px; width:5px; height:9px; border:solid var(--ground); border-width:0 2px 2px 0; rotate:45deg; }
.cert-sign.is-unknown .cert-mark { border-style:dashed; }
.cert-sign-l { margin:0; font-weight:600; font-size:var(--fs-0); }
.cert-ev { margin:2px 0 0; font-size:var(--fs-m1); line-height:17px; color:var(--ink-muted); }
.cert-sign.is-no .cert-sign-l { color:var(--ink-muted); }
.cert-cause { margin:16px 0 0; font:italic 400 var(--fs-1)/1.3 var(--font-epitaph); text-align:center; }
.cert-links { display:flex; justify-content:center; flex-wrap:wrap; gap:4px 16px; margin:8px 0 16px; font-size:var(--fs-m1); }
.cert-links a { color:var(--ink-muted); min-height:44px; display:inline-flex; align-items:center; text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:3px; }
.cert-links a:hover { color:var(--ink); }
.cert-cta { width:100%; min-height:50px; }

/* gate pass 2: rules/flames carry token colours; the featured coin link is a full 44px target */
.rtd-rule { color:var(--line); }
.c2-flame { fill:var(--color-accent); }
.fv-sym a.plain { display:inline-flex; align-items:center; min-height:44px; min-width:44px; }

/* soon state: an EXAMPLE certificate in place of an empty box; phones skip the box entirely (decided at build, no shift) */
.hero-vigil.is-soon { flex-direction:column; align-items:stretch; gap:var(--sp-4); min-width:min(340px, 100%); }
.fv-cert { border:1px solid var(--line); border-radius:var(--radius-sm); padding:var(--sp-4); display:grid; gap:var(--sp-1); background:var(--color-ground); }
.fv-cert p { margin:0; }
.fv-cert-k { color:var(--ink-muted); font-size:var(--fs-m1); text-transform:uppercase; letter-spacing:.08em; display:flex; gap:var(--sp-2); align-items:center; }
.fv-example { color:var(--color-ground); background:var(--ink); border-radius:var(--radius-sm); padding:0 var(--sp-1); }
.fv-cert-t { font:900 var(--fs-3)/1.05 var(--font-display); color:var(--ink); }
.fv-cert-s { color:var(--color-ink-soft); font-size:var(--fs-m1); }
.hero-vigil.is-soon .fv-label { font:900 var(--fs-1)/1.2 var(--font-display); }
@media (max-width: 699px) { html[data-vigils="soon"] .hero-vigil { display:none; } }
/* desktop: the EXAMPLE certificate hangs top-right in the sky, clear of the fist and its torn earth */
@media (min-width: 700px) { html[data-vigils="soon"] .hero-vigil { align-self:flex-start; margin-top:var(--sp-6); } }
/* phones: the copy hangs from a fixed line under the fist, so a vigil card that appears later grows downward (no shift) */
@media (max-width: 699px) { .hero-overlay { justify-content:flex-start; padding-top:max(calc(var(--header-h) + 24px), min(46svh, calc(100svh - 420px))); } }

/* critic R2: header flame in bone (one orange per viewport), SAMPLE tag, real renders below the fold */
.site-header .rtd-mark-small [fill^="url"] { fill:var(--ink); }
.site-header .rtd-mark-small [fill="#ffd27a"] { fill:var(--color-ground); }
.rv-sample { position:absolute; top:var(--sp-2); left:var(--sp-2); z-index:3; font-size:var(--fs-m1); text-transform:uppercase; letter-spacing:.08em; color:var(--color-ground); background:var(--ink); border-radius:var(--radius-sm); padding:0 var(--sp-2); }
@media (max-width: 699px) { .rv-sample { top:0; left:auto; right:0; } }
section.field { position:relative; isolation:isolate; }
.field-media { position:absolute; inset:0 0 auto; height:min(560px, 70vh); z-index:-1; overflow:hidden; pointer-events:none; }
.field-media img { width:100%; height:100%; object-fit:cover; object-position:50% 70%; opacity:.68; }
.field-media::after { content:""; position:absolute; inset:0; background:linear-gradient(to bottom, var(--ground) 0%, transparent 30%, transparent 55%, var(--ground) 100%); }
.cta-photo { margin:0; width:clamp(200px, 26vw, 340px); aspect-ratio:1; border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; background:var(--color-surface); }
.cta-photo img { width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width: 699px) { .cta-photo { width:100%; max-width:360px; } }

/* chapters: the rendered yard behind the line-art stone, so media carries the revival sections too */
.rv-media { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.rv-media img { width:100%; height:100%; object-fit:cover; object-position:30% 62%; opacity:.42; }
.rv-media::after { content:""; position:absolute; inset:0; background:linear-gradient(to right, var(--ground) 0%, rgba(11, 10, 9, .55) 40%, rgba(11, 10, 9, .25) 70%, var(--ground) 100%), linear-gradient(to bottom, var(--ground) 0%, transparent 18%, transparent 82%, var(--ground) 100%); }
.rv-stage > .wrap { position:relative; z-index:1; }
.rv-stage > .rv-progress { z-index:1; }
.rv-stage .rv-stone > path:first-child { fill:rgba(11, 10, 9, .72); }

/* critic R4: the call reads as a headline; chapter III's flame and wax are light, not a second orange; no zero strip */
.gates-call { font:900 var(--fs-2)/1.1 var(--font-display); color:var(--ink); }
.rv-flame path:first-child { fill:var(--data-3); stroke:var(--data-3); }
.rv-flame path:last-child { fill:var(--ink); }
.rv-stage[data-step="3"] .rv-meter-n b { color:var(--ink); }
.strip.is-empty { display:block; border:0; }
.strip.is-empty .stat { display:none; }
.strip-empty { margin:0; padding:var(--sp-6) 0; text-align:center; font:900 var(--fs-2)/1.15 var(--font-display); color:var(--ink); }

/* certificate share + qualify label */
.cert-share { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:var(--sp-2) var(--sp-4); margin:var(--sp-4) 0 0; }
.cert-share:empty { display:none; }
.cert-post { min-height:44px; }
.cert-card-link { min-height:44px; display:inline-flex; align-items:center; color:var(--ink-muted); font-size:var(--fs-m1); text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:3px; }
.cert-card-link:hover { color:var(--ink); }
.cert-qualify, .plot-qualify { display:block; margin-top:var(--sp-1); color:var(--ink-muted); font-size:var(--fs-m1); letter-spacing:.04em; }

/* $RAISE panel: only rendered once the mint is in config */
.raise-panel { border:1px solid var(--line); border-radius:var(--radius-md); background:var(--color-surface); padding:var(--sp-6); margin-block:var(--sp-8); display:grid; gap:var(--sp-5); }
.raise-panel[hidden] { display:none; }
.raise-head { display:grid; gap:var(--sp-2); }
.raise-head h2 { margin:0; }
.raise-sub { margin:0; color:var(--ink-soft, var(--ink-muted)); }
.raise-ca-l { color:var(--ink-muted); font-size:var(--fs-m1); text-transform:uppercase; letter-spacing:.08em; }
.raise-ca { display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2) var(--sp-3); }
.raise-ca code { font-family:var(--font-mono); font-size:var(--fs-0); color:var(--ink); background:var(--color-slab); border-radius:var(--radius-sm); padding:var(--sp-2) var(--sp-3); }
.raise-ca button { min-height:44px; min-width:44px; }
.raise-stats { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--sp-4); margin:0; }
.raise-stats div { display:grid; gap:var(--sp-1); }
.raise-stats dt { color:var(--ink-muted); font-size:var(--fs-m1); text-transform:uppercase; letter-spacing:.08em; }
.raise-stats dd { margin:0; font-family:var(--font-mono); font-size:var(--fs-2); font-variant-numeric:tabular-nums; color:var(--ink); }
.raise-src { color:var(--ink-muted); font-size:var(--fs-m1); margin:0; }
.raise-links { display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-3) var(--sp-5); }
.raise-links a { min-height:44px; display:inline-flex; align-items:center; }
@media (max-width: 699px) { .raise-panel { margin-inline:var(--sp-4); padding:var(--sp-5); } .raise-stats { grid-template-columns:1fr; } .raise-stats dd { font-size:var(--fs-1); } }
.cert-stamp { position:absolute; top:108px; right:14px; margin:0; padding:8px 12px; border:2px solid var(--candle); outline:1px solid var(--candle); outline-offset:-6px; border-radius:var(--radius-sm); color:var(--candle); font:900 var(--fs-1)/1 var(--font-display); letter-spacing:.14em; text-transform:uppercase; rotate:-10deg; opacity:0; scale:1.7; transition:opacity .14s var(--ease-out), scale .2s var(--ease-pop); pointer-events:none; }
.cert-stamp.is-in { opacity:.95; scale:1; }
.cert-wait { text-align:center; padding:20px 0 8px; color:var(--ink-muted); font-size:var(--fs-0); }
.cert-wick { display:block; width:2px; height:18px; margin:0 auto 12px; background:var(--ash); position:relative; }
.cert-wick::after { content:""; position:absolute; left:-3px; top:-9px; width:8px; height:11px; background:var(--candle); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow:0 0 12px 2px rgba(255,122,26,.6); }
@media (prefers-reduced-motion: no-preference) { .cert-wick::after { animation:flick 1.6s var(--ease-io) infinite; } }
.cert-msg { text-align:center; color:var(--ink-muted); margin:16px 0 4px; }
@media (min-width: 900px) { .cert { margin-left:auto; } }
@media (max-width: 899px) {
  /* Phones and tablets: the certificate rises as a sheet over the lower hero. */
  .cert { position:absolute; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); width:auto; z-index:6; max-height:calc(100svh - var(--header-h) - 24px); }
  .hero-check .rtd-btn { padding:0 20px; }
}

/* ---------- hero composite: film grain over scene and still (static, painted once) */
.hero-stage::after { content:""; position:absolute; inset:0; z-index:3; pointer-events:none; opacity:.5; background-image:url(/img/grain.png); }

/* ---------- phone climax: the still cross-fades to the pre-rendered Risen Fist as the hero scrolls (no WebGL on phones) */
.hero-risen-still { position:absolute; inset:0; display:none; }
.hero-risen-still img { width:100%; height:100%; object-fit:cover; object-position:50% 60%; }
@media (max-width: 699px) {
  .hero-risen-still { display:block; z-index:1; opacity:clamp(0, calc((var(--hp) - .12) * 4), 1); transform:scale(calc(1.06 - var(--hp) * .06)); transform-origin:50% 62%; }
}
@media (max-width: 699px) and (prefers-reduced-motion: reduce) { .hero-risen-still { display:none; } }
.gl-off .hero-risen-still { display:block; z-index:1; opacity:clamp(0, calc((var(--hp) - .12) * 4), 1); transform:scale(calc(1.06 - var(--hp) * .06)); transform-origin:50% 62%; }

/* ---------- gate fixes: controls inherit ink, 44px targets, legal small print on the scale */
button { color:inherit; }
.icon-btn { flex:none; min-width:44px; }
.foot-nav a { min-width:44px; justify-content:center; }
.disclaimer small { font-size:inherit; }

@media (max-width: 699px) { .hero-stage::after { display:none; } }

/* ---------- below-the-fold sections skip layout and paint until they near the viewport (Lighthouse render delay) */
section.field { content-visibility:auto; contain-intrinsic-size:auto 900px; }
section.strip { content-visibility:auto; contain-intrinsic-size:auto 320px; }

/* ---------- reduced motion (last on purpose: nothing below can undo it) */
@media (prefers-reduced-motion: reduce) {
  .page-hero-media img { animation:none; }
  html { scroll-snap-type:none !important; }
  .hero-run { height:auto !important; }
  .hero-stage { position:relative; height:100vh; height:100svh; }
  .hero-copy, .hero-vigil, .hero-hint { opacity:1 !important; transform:none !important; }
  .revival-run { height:auto !important; }
  .rv-snap { display:none; }
  .rv-stage { position:relative; height:auto; min-height:0; padding:var(--space-12) 0; overflow:visible; }
  .rv-grid { grid-template-columns:1fr !important; grid-template-rows:auto auto; height:auto; padding-top:0; gap:var(--space-6); }
  .rv-steps { height:auto !important; display:grid; gap:var(--space-4); }
  .rv-step { position:static; opacity:1; transform:none; }
  .rv-line { font-size:var(--fs-3); }
  .rv-scene { width:min(100%, calc(50svh * 600 / 560)); height:auto; max-height:none; margin:0 auto 152px; }
  .rv-progress { display:none; }
  .reveal { opacity:1; transform:none; transition:none; }
  .plot .rtd-stone { transition:none; transform:none; }
  .menu-links a { transition:none; opacity:1; transform:none; }
  .cta-bar { transition:none; }
  * { scroll-behavior:auto !important; }
}
@media (prefers-reduced-motion: reduce) and (min-width: 700px) { .rv-scene { margin-bottom:0; } .rv-ring { right:-30%; } }
