:root {
  --ink: #11100d;
  --paper: #e8e2d5;
  --paper-soft: #c8c0af;
  --ember: #d2632b;
  --line: rgba(232,226,213,.19);
  /* Stamp red. Deliberately not --ember: the promotion has to read as ink
     pressed onto the page, not as another accent belonging to the design. */
  --stamp: #e02b20;
  --serif: "Palatino Linotype", Palatino, Georgia, serif;
  --sans: Inter, "Segoe UI", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; color: var(--paper); background: var(--ink); font-family: var(--sans); font-weight: 300; }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
.site-header { position: fixed; inset: 0 0 auto; z-index: 50; display: flex; align-items: center; justify-content: space-between; padding: 22px 4vw; mix-blend-mode: difference; }
.brand { display: flex; align-items: center; gap: 11px; font-size: 16px; font-weight: 700; letter-spacing: .14em; text-decoration: none; white-space: nowrap; }
/* The mark is the supplied vector wheel itself — one file, so replacing the logo
   never means editing CSS. favicon.svg carries the same artwork, cropped tighter
   for the browser tab. */
.brand-mark { width: 26px; height: 26px; display: inline-block; background: url("baikal-ritual-circle-logo.svg?v=1.9.15") center / contain no-repeat; }
.brand-mark.small { width: 21px; height: 21px; }
.main-nav { display: flex; align-items: center; gap: 28px; font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.main-nav a { text-decoration: none; }
.sound-toggle { border: 0; padding: 0; color: inherit; background: transparent; cursor: pointer; text-transform: uppercase; letter-spacing: .12em; font-size: 11px; }
.sound-icon { margin-right: 6px; }
.screen { min-height: 100svh; position: relative; overflow: hidden; }
.hero { display: flex; align-items: flex-end; padding: 13vh 7vw 12vh; }
.hero-film, .hero-shade { position: absolute; inset: 0; }
.hero-film { overflow: hidden; background: #0b0b09 url("media/ritual-fire-clean-poster.jpg?v=1.9.15") center / cover no-repeat; }
.hero-video { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.hero-shade { background: linear-gradient(90deg, rgba(5,6,5,.84) 0%, rgba(5,6,5,.43) 45%, rgba(5,6,5,.17) 100%), linear-gradient(0deg, rgba(5,5,4,.78), transparent 55%); }
.film-grain { position:absolute; inset:-50%; opacity:.11; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.44'/%3E%3C/svg%3E"); animation:grain .25s steps(2) infinite; pointer-events:none; }
.hero-content { position:relative; z-index:2; max-width:850px; }
.eyebrow { margin:0 0 22px; font-size:11px; font-weight:600; letter-spacing:.22em; color:#d9d0be; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; }
h1 { margin:0; font-size:clamp(54px,7.5vw,118px); line-height:.93; letter-spacing:-.045em; }
.hero-copy { max-width:590px; font-size:clamp(17px,1.5vw,22px); line-height:1.55; color:#d0c8b9; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:36px; }
.hero-actions p { margin:0; font-size:12px; color:#bcb4a5; }
.hero-actions strong { color:#fff; font-weight:500; }
.ritual-status { max-width:510px; line-height:1.55; }
.button { min-height:52px; padding:0 25px; border:1px solid transparent; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; text-transform:uppercase; letter-spacing:.13em; font-size:11px; font-weight:600; cursor:pointer; transition:.25s ease; }
.button-primary { color:#15120f; background:var(--paper); }
.button-primary:hover { background:#fff; transform:translateY(-2px); }
.button-secondary { color:var(--paper); background:transparent; border-color:rgba(232,226,213,.4); }
.button-secondary:hover { border-color:var(--paper); background:rgba(255,255,255,.05); }
.trust-strip { position:absolute; z-index:3; left:7vw; right:7vw; bottom:4.5vh; display:flex; gap:0; border-top:1px solid var(--line); padding-top:17px; }
.trust-strip span { flex:1; font-size:11px; letter-spacing:.08em; color:#aaa293; }
.trust-strip span::before { content:"◆"; font-size:7px; color:var(--ember); margin-right:9px; }
.scroll-cue { position:absolute; z-index:3; right:3vw; bottom:5vh; width:25px; height:50px; border:1px solid rgba(255,255,255,.24); border-radius:20px; }
.scroll-cue span { position:absolute; top:9px; left:10px; width:3px; height:8px; border-radius:2px; background:white; animation:scroll 1.8s ease infinite; }

/* --- Launch promotion -------------------------------------------------------
   Ink on the page rather than a band in the layout: absolutely positioned,
   rotated, wider than the viewport, and taking no pointer events, so it stamps
   the first screen without shifting a single element or intercepting a tap
   meant for the button beneath it. It crosses the headline, which is the point
   of a stamp; what keeps both readable is the wash behind the red, because
   without it the smaller line disappears into the white serif underneath and
   takes the sentence that makes the offer honest with it.
   app.js unhides it only once Stripe has confirmed the code. */
.promo-stamp {
  position:absolute; z-index:4; left:-5vw; right:-5vw; top:14%;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  transform:rotate(-7deg); transform-origin:center;
  pointer-events:none; text-align:center;
}
/* [hidden] is a UA rule, and any author `display` beats it. Without this the
   stamp would show before Stripe had confirmed anything. */
.promo-stamp[hidden] { display:none; }
.promo-stamp-line {
  margin:0; padding:.16em .46em;
  border:.085em solid var(--stamp);
  box-shadow:inset 0 0 0 .03em var(--stamp);
  /* Dark enough that red stays red over the headline and the fire behind it,
     light enough that the hero still reads through. */
  background:rgba(9,9,8,.8);
  color:var(--stamp); opacity:.94;
  font-weight:800; font-size:clamp(21px,6vw,84px); line-height:1.04;
  letter-spacing:.015em; text-transform:uppercase;
  text-shadow:0 2px 20px rgba(0,0,0,.6);
}
.promo-stamp-sub {
  margin:0; padding:.34em .8em;
  background:rgba(9,9,8,.86);
  color:var(--stamp); opacity:.88;
  font-weight:700; font-size:clamp(11px,1.5vw,19px);
  letter-spacing:.26em; text-transform:uppercase;
  text-shadow:0 2px 12px rgba(0,0,0,.65);
}
/* The struck price stays legible rather than becoming decoration: a reader has
   to be able to check what was crossed out against what replaced it. */
.price .price-was { color:#8f8776; font-family:var(--serif); font-size:23px; text-decoration-thickness:1.5px; text-decoration-color:var(--stamp); }
.price.is-promoted strong { color:var(--stamp); }
/* Two figures and a longer note than the plain state carries, so the block is
   allowed to take a second line rather than squeezing the note to a column. */
.price.is-promoted { flex-wrap:wrap; }
.promo-faq { color:#e0cfb4; }

.rituals { padding:11vh 5vw; background:#161512; }
.section-heading { max-width:740px; margin:0 auto 8vh; text-align:center; }
.section-heading h2, .auth-copy h2 { margin:0; font-size:clamp(42px,5vw,76px); line-height:1.02; letter-spacing:-.035em; }
.section-heading > p:last-child, .auth-copy > p { max-width:600px; margin:24px auto 0; color:#aaa293; line-height:1.7; }
.offer-grid { max-width:1440px; margin:auto; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.offer-card { min-height:630px; padding:28px; border:1px solid var(--line); background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.012)); display:flex; flex-direction:column; position:relative; overflow:hidden; }
.offer-card::before { content:""; position:absolute; inset:0; opacity:.28; background:radial-gradient(circle at 80% 5%,rgba(210,99,43,.35),transparent 28%); pointer-events:none; }
.offer-card.featured { border-color:rgba(210,99,43,.75); }
.offer-card.muted { filter:saturate(.66); }
.card-topline { display:flex; justify-content:space-between; font-size:9px; font-weight:600; letter-spacing:.18em; color:#b7ae9e; }
.card-topline span:first-child { color:#e17a42; }
.card-index { margin:55px 0 13px; font-family:var(--serif); color:#706a61; }
.offer-card h3 { margin:0; font-size:36px; line-height:1.05; }
.price { min-height:65px; display:flex; align-items:baseline; gap:10px; margin:23px 0 15px; }
.price strong { font-family:var(--serif); font-size:31px; font-weight:400; }
.price span { font-size:11px; color:#999181; text-transform:uppercase; letter-spacing:.1em; }
.card-lead { color:#bdb5a7; line-height:1.6; min-height:78px; }
.offer-card ul { list-style:none; padding:0; margin:20px 0 35px; flex:1; border-top:1px solid var(--line); }
.offer-card li { padding:13px 0; border-bottom:1px solid var(--line); font-size:13px; color:#c2baab; }
.offer-card li::before { content:"—"; margin-right:10px; color:var(--ember); }
.fine-print { margin:16px 0 0; font-size:10px; line-height:1.55; color:#827b70; }
.authenticity { padding:13vh 7vw 9vh; background:#d7d0c2; color:#171511; }
.authenticity .eyebrow { color:#6c655b; }
.auth-layout { display:grid; grid-template-columns:1fr .78fr; gap:10vw; align-items:center; max-width:1350px; margin:auto; }
.auth-copy > p { margin-left:0; color:#6d665c; }
.text-link { display:inline-block; margin-top:36px; text-decoration:none; padding-bottom:5px; border-bottom:1px solid #847c70; font-size:12px; text-transform:uppercase; letter-spacing:.12em; }
.document-frame { background:#11100d; color:var(--paper); padding:14px; transform:rotate(1.5deg); box-shadow:0 35px 80px rgba(31,27,20,.24); }
.document-image { height:400px; position:relative; overflow:hidden; background:radial-gradient(circle at 58% 23%,#9c9486,#46443f 36%,#191a18 68%); }
.document-image::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 55%,rgba(0,0,0,.73)); }
.document-image > span { position:absolute; z-index:2; left:20px; bottom:17px; font-size:9px; letter-spacing:.18em; }
.portrait-silhouette { position:absolute; width:155px; height:330px; left:42%; bottom:-10px; background:#0c0c0b; border-radius:48% 48% 0 0; transform:translateX(-50%); }
.portrait-silhouette::before { content:""; position:absolute; width:93px; height:93px; border-radius:50%; top:-55px; left:32px; background:#0b0b0a; }
.document-meta { padding:20px 8px 10px; }
.document-meta p,.document-meta small { color:#9f9789; font-size:10px; letter-spacing:.11em; text-transform:uppercase; }
.document-meta strong { display:block; margin:8px 0 18px; font-family:var(--serif); font-size:22px; font-weight:400; }
.principles { max-width:1350px; margin:12vh auto 0; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(23,21,17,.2); border-bottom:1px solid rgba(23,21,17,.2); }
.principles article { min-height:230px; padding:29px 28px 24px 0; border-right:1px solid rgba(23,21,17,.2); }
.principles article:not(:first-child){ padding-left:28px; }
.principles article:nth-child(4n) { border-right:0; }
.principles span { font-size:10px; color:#8e8579; }
.principles h3 { font-size:26px; margin:34px 0 10px; }
.principles p { color:#6d665c; font-size:13px; line-height:1.6; }
.ritual-journey-layout { margin-top:12vh; }
.site-footer { min-height:180px; padding:45px 5vw; display:grid; grid-template-columns:1fr 2fr 1fr; align-items:center; gap:25px; color:#8d867a; border-top:1px solid #28251f; font-size:10px; letter-spacing:.08em; }
.site-footer > div:first-child { display:flex; align-items:center; gap:10px; color:#cfc7b8; }
.footer-links { display:flex; justify-content:center; flex-wrap:wrap; gap:17px; }
.footer-links a, .footer-links button { padding:0; border:0; background:none; color:inherit; cursor:pointer; font-size:10px; text-decoration:none; }
.footer-links a:hover, .footer-links button:hover { color:var(--paper); text-decoration:underline; text-underline-offset:4px; }
.site-footer > p { text-align:right; }
.modal { width:min(610px,calc(100vw - 28px)); max-height:calc(100svh - 28px); overflow:auto; border:1px solid rgba(232,226,213,.22); padding:48px; color:var(--paper); background:#151411; box-shadow:0 30px 90px rgba(0,0,0,.6); }
.checkout-modal { width:min(760px,calc(100vw - 28px)); }
.modal::backdrop { background:rgba(5,5,4,.79); backdrop-filter:blur(8px); }
.modal h2 { font-size:42px; margin:0 0 14px; }
.modal > p:not(.eyebrow) { color:#aaa293; line-height:1.6; }
/* The astronomical instant, stated once where precision reassures rather than
   confuses. Empty until the ritual API answers, so it must not reserve space. */
.modal > p.moon-note { margin:14px 0 0; color:#81796d; font-size:12.5px; line-height:1.6; }
.modal > p.moon-note:empty { display:none; }
.modal-close { position:absolute; top:15px; right:18px; border:0; background:transparent; color:#cfc7b8; font-size:30px; cursor:pointer; }
.api-form { display:grid; gap:17px; margin-top:25px; }
.api-form label { display:grid; gap:8px; color:#b5ad9e; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.api-form input,.api-form select,.api-form textarea,.legal-form input,.legal-form select,.legal-form textarea { width:100%; min-height:46px; padding:14px 13px; border:1px solid #3b3730; border-radius:0; background:#0e0d0b; color:white; outline:none; resize:vertical; }
.api-form input:focus,.api-form select:focus,.api-form textarea:focus,.legal-form input:focus,.legal-form select:focus,.legal-form textarea:focus { border-color:#a79d8d; }
.api-form .check { grid-template-columns:auto 1fr; align-items:start; text-transform:none; letter-spacing:0; line-height:1.5; }
.check input { width:auto; margin-top:3px; }
.check a { color:#e3d8c5; text-underline-offset:3px; }
.form-message { min-height:20px; margin:0; color:#b8ae9e; font-size:12px; line-height:1.5; }
.form-message.error { color:#ff9d87; }
.form-message.success { color:#a9d9b0; }
.honeypot { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; }
.api-form [type="submit"][disabled] { opacity:.55; cursor:wait; transform:none; }
.preference-row { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:15px 0; border-top:1px solid var(--line); }
.preference-row span { display:grid; gap:5px; }
.preference-row small { color:#8f877a; }
.preference-row input { width:20px; height:20px; }
.cookie-modal .button { margin-top:24px; }
.payment-step { margin-top:28px; }
.payment-step[hidden],.checkout-details[hidden],.stripe-element-shell[hidden],.local-payment-simulation[hidden] { display:none; }
.payment-summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:17px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.payment-summary div { display:grid; gap:5px; }
.payment-summary span { color:#e8e2d5; font-family:var(--serif); font-size:21px; }
.payment-summary small { color:#8f877a; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.payment-summary > strong { color:#f4efe5; font-family:var(--serif); font-size:28px; font-weight:400; }
.payment-step h3 { margin:27px 0 10px; font-size:30px; }
.payment-disclosure { margin:0 0 23px; color:#aaa293; font-size:12px; line-height:1.65; }
.payment-disclosure strong { color:#d8d0c2; }
.stripe-element-shell { display:grid; gap:23px; }
.payment-element-group { display:grid; gap:9px; }
.payment-element-label { display:flex; justify-content:space-between; gap:12px; margin:0; color:#b5ad9e; font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.required-marker { color:#8f877a; font-size:9px; letter-spacing:.12em; }
.payment-required-note { margin:0; padding:9px 11px; color:#ffb3a4; background:rgba(130,35,20,.1); border-left:2px solid #ff6b55; font-size:11px; line-height:1.5; }
.payment-required-note[hidden] { display:none; }
.payment-element-group.has-validation-error .required-marker { color:#ff9d87; }
.payment-element-group.has-validation-error #billing-address-element { padding:8px; border:1px solid #ff6b55; background:rgba(130,35,20,.05); }
.payment-confirm { width:100%; margin-top:24px; }
.payment-security { margin:12px 0 0; color:#817a6e; font-size:10px; line-height:1.5; text-align:center; }
/* The seconds between submitting the details and a card field existing. The
   session is created, Stripe.js is downloaded, the checkout is initialised and
   two frames are mounted, and until the last of that lands the shell above is
   two labelled empty boxes under an offer to pay - which is what a broken page
   looks like. Saying what is happening instead costs nothing. The class is
   removed by the payment element's own "ready", by any failure, and by a
   timeout, so the worst case is the behaviour that existed before it. */
.payment-preparing { display:none; align-items:center; gap:10px; margin:23px 0 0; color:#a79d8d; font-size:12px; letter-spacing:.04em; }
.payment-preparing span { flex:none; width:7px; height:7px; border-radius:50%; background:#a79d8d; animation:payment-preparing-pulse 1.25s ease-in-out infinite; }
.payment-step.is-preparing .payment-preparing { display:flex; }
.payment-step.is-preparing .stripe-element-shell,
.payment-step.is-preparing .payment-confirm,
.payment-step.is-preparing .payment-security { display:none; }
@keyframes payment-preparing-pulse { 0%,100%{opacity:.25;transform:scale(.8)} 50%{opacity:1;transform:scale(1)} }
.local-payment-simulation { padding:20px; border:1px dashed #6f675b; background:#0e0d0b; }
.simulation-badge { display:inline-block; margin-bottom:10px; padding:5px 8px; color:#eac89e; border:1px solid #735736; font-size:9px; font-weight:600; letter-spacing:.14em; }
.local-payment-simulation p { margin:0 0 17px; color:#aaa293; font-size:12px; line-height:1.6; }
.simulated-card-row { display:flex; justify-content:space-between; gap:15px; padding:14px; color:#b5ad9e; border:1px solid #3b3730; font-size:12px; }
.simulated-card-row strong { color:#f4efe5; font-weight:500; letter-spacing:.08em; }

/* Long-form policy and account pages */
.legal-body { background:#d9d2c5; color:#1a1814; }
.legal-header { position:sticky; top:0; z-index:20; display:flex; justify-content:space-between; align-items:center; gap:25px; padding:18px 5vw; color:var(--paper); background:rgba(17,16,13,.97); border-bottom:1px solid rgba(232,226,213,.14); }
.legal-header .brand { color:var(--paper); }
.legal-header nav { display:flex; gap:18px; align-items:center; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.legal-header nav a { color:#bfb6a7; text-decoration:none; }
.legal-header nav a:hover { color:#fff; }
.legal-shell { width:min(1160px,90vw); margin:0 auto; padding:75px 0 100px; display:grid; grid-template-columns:245px minmax(0,1fr); gap:70px; }
.legal-toc { position:sticky; top:100px; align-self:start; padding:22px 0; border-top:1px solid #9e9588; border-bottom:1px solid #9e9588; }
.legal-toc strong { display:block; margin-bottom:13px; font-size:11px; text-transform:uppercase; letter-spacing:.15em; }
.legal-toc a { display:block; padding:6px 0; color:#5f584e; text-decoration:none; font-size:12px; line-height:1.4; }
.legal-toc a:hover { color:#11100d; }
.legal-content { max-width:780px; }
.legal-content .kicker { margin:0 0 18px; color:#756d62; font-size:11px; font-weight:600; letter-spacing:.17em; text-transform:uppercase; }
.legal-content h1 { margin:0 0 20px; font-size:clamp(45px,6vw,78px); line-height:1; }
.legal-content .policy-meta { margin-bottom:50px; color:#6c6459; font-size:13px; }
.legal-content .notice { margin:25px 0 45px; padding:18px 20px; border-left:3px solid var(--ember); background:rgba(255,255,255,.33); font-size:13px; line-height:1.6; }
.legal-content section { scroll-margin-top:105px; margin:0 0 48px; }
.legal-content h2 { margin:0 0 15px; font-size:30px; letter-spacing:-.02em; }
.legal-content h3 { margin:24px 0 10px; font-size:20px; }
.legal-content p,.legal-content li { color:#403b34; font-size:15px; line-height:1.75; }
.legal-content li + li { margin-top:7px; }
.legal-content a { color:#7f3318; text-underline-offset:3px; }
.legal-content table { width:100%; border-collapse:collapse; margin:20px 0; font-size:13px; }
.legal-content th,.legal-content td { padding:12px; border:1px solid #aaa194; text-align:left; vertical-align:top; line-height:1.55; }
.legal-content th { background:rgba(17,16,13,.06); }
.policy-list { padding-left:20px; }
.legal-footer { padding:35px 5vw; color:#999084; background:var(--ink); text-align:center; font-size:11px; }
.placeholder { padding:1px 5px; color:#7b2512; background:#f4bdac; font-weight:600; }
.legal-form { display:grid; gap:16px; margin-top:25px; padding:24px; color:var(--paper); background:#171512; }
.legal-form label { display:grid; gap:7px; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.legal-form .check { grid-template-columns:auto 1fr; text-transform:none; letter-spacing:0; }
.legal-form .form-message { color:#c2baab; }
.account-card { margin-top:30px; padding:28px; color:var(--paper); background:#171512; }
.account-card h2 { color:var(--paper); }
.account-card p { color:#bdb5a7; }
.account-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.status-pill { display:inline-block; padding:6px 10px; border:1px solid #675f54; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }

/* Paid member space */
.member-body { min-height:100vh; color:var(--paper); background:#11100d; }
.member-shell { width:min(1320px,92vw); margin:0 auto; padding:120px 0 90px; }
.member-intro { max-width:850px; margin-bottom:55px; }
.member-intro .kicker { color:#a79e90; font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.member-intro h1 { margin:10px 0 22px; font-size:clamp(52px,7vw,96px); }
.member-intro > p:last-child { max-width:680px; color:#aaa293; font-size:17px; line-height:1.7; }
.member-auth-grid,.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
.member-auth-grid { grid-template-columns:1fr 1fr; }
.member-panel { padding:30px; border:1px solid var(--line); background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.014)); }
.member-panel h2,.confirmation-section h2 { margin:0 0 18px; font-size:34px; line-height:1.1; }
.member-panel > p:not(.eyebrow),.confirmation-section > div:first-child > p:last-child { color:#aaa293; line-height:1.65; }
.member-form { display:grid; gap:17px; }
.member-form label,.file-control { display:grid; gap:8px; color:#b5ad9e; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.member-form input,.member-form select,.member-form textarea { width:100%; min-height:47px; padding:14px 13px; border:1px solid #3b3730; border-radius:0; color:white; background:#0e0d0b; outline:none; resize:vertical; }
.member-form input:focus,.member-form select:focus,.member-form textarea:focus { border-color:#a79d8d; }
.member-explainer { grid-column:auto; }
.member-explainer ul { margin:25px 0; padding:0; list-style:none; }
.member-explainer li { padding:13px 0; color:#c2baab; border-bottom:1px solid var(--line); font-size:13px; line-height:1.5; }
.member-explainer li::before { content:"◆"; margin-right:10px; color:var(--ember); font-size:7px; }
.member-dashboard { display:grid; gap:42px; }
.member-status-bar { display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:20px; align-items:center; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.member-status-bar > div { display:grid; gap:7px; }
.member-status-bar span { color:#81796d; font-size:9px; font-weight:600; letter-spacing:.17em; }
.member-status-bar strong { color:#ded6c7; font-family:var(--serif); font-size:20px; font-weight:400; text-transform:capitalize; }
.portrait-panel { display:grid; gap:15px; }
.portrait-preview { min-height:330px; display:grid; place-items:center; overflow:hidden; border:1px solid #35312b; color:#81796d; background:radial-gradient(circle at 50% 25%,#38352f,#171613 70%); }
.portrait-preview img { width:100%; height:100%; max-height:480px; object-fit:cover; }
.file-control input { padding:12px; color:#aaa293; border:1px dashed #5a5349; background:#0e0d0b; }
.portrait-panel small { color:#81796d; line-height:1.55; }
.confirmation-section { padding-top:12px; }
.confirmation-section > div:first-child { max-width:650px; margin-bottom:26px; }
.confirmation-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; }
.confirmation-grid figure { margin:0; border:1px solid var(--line); background:#181713; }
.confirmation-grid img { width:100%; aspect-ratio:4/3; display:block; object-fit:cover; background:#24211c; }
.confirmation-grid figcaption { display:grid; gap:7px; padding:16px; }
.confirmation-grid figcaption strong { font-family:var(--serif); font-size:18px; font-weight:400; }
.confirmation-grid figcaption span { color:#81796d; font-size:10px; letter-spacing:.09em; }
.empty-gallery { padding:34px; color:#8d8578; border:1px dashed #423d35; text-align:center; }
.billing-panel { display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center; }
.billing-panel .form-message { grid-column:1/-1; }
.billing-actions { display:grid; gap:10px; min-width:min(320px,100%); }
.member-auth-grid[hidden],.member-dashboard[hidden],.member-form[hidden],.empty-gallery[hidden] { display:none; }
.reveal { opacity:0; transform:translateY(25px); transition:opacity .9s ease,transform .9s ease; }
.reveal.is-visible { opacity:1; transform:none; }
.delay-one { transition-delay:.12s; } .delay-two { transition-delay:.24s; } .delay-three { transition-delay:.36s; }
@keyframes grain { 0%{transform:translate(0,0)} 25%{transform:translate(3%,-2%)} 50%{transform:translate(-2%,4%)} 75%{transform:translate(4%,2%)} 100%{transform:translate(-3%,-4%)} }
@keyframes scroll { 0%{transform:translateY(0);opacity:0} 30%{opacity:1} 100%{transform:translateY(20px);opacity:0} }
@media (max-width: 980px) {
  .main-nav a { display:none; }
  .hero { padding-left:5vw; padding-right:5vw; }
  .hero-content { padding-bottom:70px; }
  .trust-strip { left:5vw; right:5vw; flex-direction:column; gap:7px; bottom:3vh; }
  .scroll-cue { display:none; }
  .offer-grid { grid-template-columns:1fr; max-width:650px; }
  .offer-card { min-height:auto; }
  .auth-layout { grid-template-columns:1fr; }
  .document-frame { max-width:600px; width:100%; justify-self:center; }
  .principles { grid-template-columns:1fr 1fr; }
  .principles article { border-right:1px solid rgba(23,21,17,.2); border-bottom:1px solid rgba(23,21,17,.2); }
  .principles article:nth-child(2n) { border-right:0; }
  .principles article:nth-last-child(-n+2) { border-bottom:0; }
  .site-footer { grid-template-columns:1fr; text-align:center; }
  .site-footer > div:first-child,.footer-links { justify-content:center; }
  .site-footer > p { text-align:center; }
  .member-status-bar { grid-template-columns:1fr 1fr; }
  .confirmation-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 620px) {
  .site-header { padding:17px 18px; }
  .brand span:last-child { display:none; }
  .hero { align-items:center; padding:90px 20px 140px; }
  /* The phone hero centres its content, so the stamp moves up into the band
     above the headline and loses the rotation that would push it off-screen. */
  .promo-stamp { top:7%; left:-2vw; right:-2vw; gap:5px; transform:rotate(-5deg); }
  .promo-stamp-sub { letter-spacing:.18em; }
  .hero-video { object-position: 58% center; }
  h1 { font-size:51px; }
  .hero-copy { font-size:16px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:15px; }
  .trust-strip { font-size:9px; }
  .rituals,.authenticity { padding-left:20px; padding-right:20px; }
  .section-heading { text-align:left; }
  .section-heading > p:last-child { margin-left:0; }
  .offer-card { padding:23px; }
  .principles { grid-template-columns:1fr; }
  .principles article,.principles article:not(:first-child) { border-right:0; border-bottom:1px solid rgba(23,21,17,.2); padding-left:0; }
  .principles article:last-child { border-bottom:0; }
  .document-image { height:320px; }
  .modal { padding:42px 22px 26px; }
  .legal-header nav a:not(:last-child) { display:none; }
  .legal-shell { grid-template-columns:1fr; gap:25px; padding-top:45px; }
  .legal-toc { position:static; }
  .legal-content table { display:block; overflow-x:auto; }
  .member-shell { width:min(100% - 36px,720px); padding-top:95px; }
  .member-auth-grid,.member-grid { grid-template-columns:1fr; }
  .member-status-bar { grid-template-columns:1fr; }
  .confirmation-grid { grid-template-columns:1fr; }
  .billing-panel { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* Full-moon tradition and private post-ritual guidance */
.ritual-tradition { margin:72px 0 54px; padding:42px; border:1px solid var(--line); background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012)); }
.ritual-tradition > h3 { max-width:780px; margin:10px 0 18px; font-size:clamp(34px,4.2vw,58px); line-height:1.05; }
.ritual-tradition > p:not(.eyebrow):not(.fine-print) { max-width:900px; color:#aaa293; font-size:16px; line-height:1.75; }
.ritual-stage-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:34px 0 24px; }
.ritual-stage-grid article { padding:24px; border:1px solid var(--line); background:#15140f; }
.ritual-stage-grid span { color:var(--ember); font-size:10px; font-weight:600; letter-spacing:.17em; }
.ritual-stage-grid h4 { margin:15px 0 11px; font-family:var(--serif); font-size:26px; font-weight:400; }
.ritual-stage-grid p { margin:0; color:#aaa293; font-size:13px; line-height:1.65; }
.field-note { display:block; margin-top:-7px; color:#81796d; line-height:1.55; text-transform:none; letter-spacing:0; }
.guidance-section { padding-top:12px; }
.guidance-section > div:first-child { max-width:730px; margin-bottom:24px; }
.guidance-section h2 { margin:0 0 18px; font-size:34px; line-height:1.1; }
.guidance-section > div:first-child > p:last-child { color:#aaa293; line-height:1.65; }
.guidance-preparation-note { max-width:940px; margin-top:22px; padding-top:16px; border-top:1px solid rgba(255,255,255,.08); color:#91897d; }
.guidance-preparation-note summary { width:max-content; cursor:pointer; color:#b9b0a3; font-size:12px; letter-spacing:.05em; text-transform:uppercase; }
.guidance-preparation-note p { max-width:760px; margin:10px 0 0; color:#827a6f; font-size:12px; line-height:1.65; }
.guidance-grid { display:grid; gap:18px; }
.guidance-card { padding:30px; border:1px solid var(--line); background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.014)); }
.guidance-card h3 { margin:20px 0 18px; font-size:clamp(29px,4vw,44px); line-height:1.08; }
.guidance-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px 18px; color:#81796d; font-size:9px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.guidance-meta span:last-child { color:#c97743; }
.guidance-reflection,.guidance-closing { max-width:920px; color:#c2baab; font-size:15px; line-height:1.75; white-space:pre-line; }
.guidance-step { max-width:920px; margin:24px 0; padding:18px 20px; border:1px solid #343028; background:#11100d; }
.guidance-step strong { display:block; margin-bottom:7px; color:#d7cdbd; font-family:var(--serif); font-size:20px; font-weight:400; }
.guidance-step p { margin:0; color:#aaa293; line-height:1.65; }
.empty-guidance { padding:24px; border:1px dashed #3b3730; color:#81796d; }
.empty-guidance[hidden] { display:none; }

@media (max-width: 900px) {
  .ritual-stage-grid { grid-template-columns:1fr; }
}

@media (max-width: 640px) {
  .ritual-tradition { padding:26px 20px; }
  .guidance-card { padding:22px 20px; }
  .guidance-meta { display:grid; }
}

.danger-button { border-color:#9b5b55; }
.danger-button:hover, .danger-button:focus-visible { border-color:#c27a72; }
.receipt-link { display:inline-block; margin-top:12px; text-decoration:underline; }

/* v1.6 simplified email account and cancellation flow */
.password-pair { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.password-visibility { display:flex !important; align-items:center; gap:10px !important; color:#a79d8d !important; font-size:11px !important; letter-spacing:.06em !important; text-transform:none !important; cursor:pointer; }
.password-visibility input { width:18px !important; min-height:18px !important; margin:0; padding:0 !important; }
.single-action { min-width:min(390px,100%); }
.single-action .button { width:100%; }
.cancellation-dialog { width:min(650px,calc(100vw - 28px)); }
.dialog-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:28px; }
.danger-confirm { border-color:#b86e62; background:#7c3f36; color:#fff7f2; }
.danger-confirm:hover,.danger-confirm:focus-visible { background:#954d42; border-color:#d98b7e; }
.success-shell { grid-template-columns:1fr; max-width:900px; }
.success-card { max-width:760px; margin-inline:auto; }
.success-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.notice.success { border-color:rgba(133,187,142,.45); background:rgba(71,120,79,.15); }

@media (max-width: 640px) {
  .password-pair,.dialog-actions { grid-template-columns:1fr; }
  .single-action { min-width:0; }
}


/* v1.7 private ritual reading continuity */
.guidance-response { margin-top:26px; padding-top:20px; border-top:1px solid var(--line); }
.guidance-reply-details summary { width:max-content; max-width:100%; color:#b9b0a3; cursor:pointer; font-size:12px; }
.guidance-response-note { margin:12px 0 0; color:#81796d; font-size:11px; line-height:1.55; }
.guidance-reply-details textarea { width:100%; min-height:92px; margin-top:13px; padding:13px; border:1px solid #3b3730; color:#f4efe5; background:#0e0d0b; resize:vertical; }
.guidance-save-response { min-height:42px; margin-top:10px; }
.guidance-reply-details .form-message { margin-top:9px; }


/* ============================================================
   v1.9 grounded credibility layer — founder letter, named practitioners,
   ceremony log, honest AI disclosure, FAQ, media placeholders.
   ============================================================ */

/* --- Unfilled copy slots. Deliberately loud: nothing containing
       a [[…]] should ever reach production. --- */
.fill { padding:1px 6px; color:#3a1400; background:#e5a463; border-radius:2px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.86em; font-weight:500; line-height:1.5; }
.fill-block { display:block; }
.fill-block .fill { display:block; padding:14px 16px; border-left:3px solid #a5501c; line-height:1.65; }

/* --- Reusable media placeholder. Drop an <img>/<video> in and the
       frame disappears; sizing and cropping are already handled. --- */
.media-slot { position:relative; margin:0; overflow:hidden; }
.media-slot img, .media-slot video { width:100%; height:100%; display:block; object-fit:cover; }
.media-slot.portrait, .media-slot.person-photo { aspect-ratio:4/5; }
.media-slot.wide, .media-slot.log-media { aspect-ratio:3/2; }
.media-slot-frame { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:22px; border:1px dashed rgba(210,99,43,.5); background:repeating-linear-gradient(135deg,rgba(120,90,60,.09) 0 12px,transparent 12px 24px),#191713; text-align:center; }
.media-slot-frame span { color:#e5a463; font-size:10px; font-weight:600; letter-spacing:.18em; }
.media-slot-frame small { color:#8a8073; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:10px; line-height:1.75; }
.media-slot.signature { max-width:250px; height:74px; }
.media-slot.signature img { object-fit:contain; object-position:left center; }
.media-slot.signature .media-slot-frame { gap:6px; padding:10px; }

/* --- 1. Founder letter (paper) --- */
.founder { padding:13vh 7vw; background:#d7d0c2; color:#171511; }
.founder .eyebrow { color:#6c655b; }
.founder-layout { display:grid; grid-template-columns:.72fr 1fr; gap:7vw; align-items:start; max-width:1350px; margin:auto; }
.founder-visual { position:sticky; top:110px; }
.founder-visual .media-slot { box-shadow:0 30px 70px rgba(31,27,20,.26); }
.founder-visual figcaption { padding:14px 2px 0; color:#6d665c; font-size:11px; line-height:1.6; letter-spacing:.04em; }
.founder-letter h2 { margin:0 0 34px; font-family:var(--serif); font-size:clamp(34px,4.3vw,62px); font-weight:400; line-height:1.04; letter-spacing:-.035em; }
.founder-letter p { max-width:640px; margin:0 0 22px; color:#423d36; font-size:17px; line-height:1.8; }
.founder-letter strong { color:#171511; font-weight:600; }
.founder-sign { display:grid; gap:10px; margin-top:44px; padding-top:26px; border-top:1px solid rgba(23,21,17,.22); }
.founder-sign p { margin:0; font-family:var(--serif); font-size:19px; }
.founder-sign span { display:block; margin-top:4px; color:#6d665c; font-family:var(--sans); font-size:11px; letter-spacing:.11em; text-transform:uppercase; }

/* --- 2. The people --- */
.people { padding:12vh 5vw; background:#131210; }
.people .section-heading { margin-bottom:6vh; }
.people-grid { max-width:1350px; margin:auto; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.person-card { border:1px solid var(--line); background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012)); }
.person-meta { padding:26px; }
.person-role { margin:0 0 14px; color:var(--ember); font-size:9px; font-weight:600; letter-spacing:.18em; }
.person-card h3 { margin:0 0 12px; font-size:31px; line-height:1.08; }
.person-line { margin:0 0 20px; color:#9d958a; font-size:12px; line-height:1.7; letter-spacing:.03em; }
.person-card blockquote { margin:0; padding-top:18px; border-top:1px solid var(--line); color:#c2baab; font-family:var(--serif); font-size:17px; line-height:1.65; }
.consent-note { max-width:1350px; margin:52px auto 0; padding:38px 42px; border:1px solid rgba(210,99,43,.36); background:rgba(210,99,43,.05); }
.consent-note h3 { margin:0 0 20px; font-size:29px; }
.consent-note p { max-width:940px; margin:0 0 15px; color:#b3aa9c; font-size:15px; line-height:1.78; }
.consent-note p:last-child { margin-bottom:0; }
.consent-note strong { color:#eadfcd; font-weight:500; }

/* --- 3. Offer layout: one thing you can buy, two you cannot --- */
.offer-layout { max-width:1240px; margin:auto; display:grid; grid-template-columns:1.05fr .95fr; gap:18px; align-items:start; }
.offer-preparing { display:grid; gap:18px; align-content:start; }
.offer-card.compact { min-height:auto; }
.offer-card.compact ul { margin:16px 0 24px; }
.prep-card { padding:28px; border:1px solid var(--line); background:rgba(255,255,255,.018); }
.prep-card .card-topline { margin-bottom:20px; }
.prep-card .card-topline span:first-child { color:#8e8578; }
.prep-card h3 { margin:0 0 13px; font-size:29px; line-height:1.1; }
.prep-card p { margin:0 0 24px; color:#a49c8f; font-size:14px; line-height:1.7; }
.prep-card strong { color:#d5ccbc; font-weight:500; }
.prep-note { margin:4px 0 0; color:#7d7568; font-size:12px; line-height:1.7; }

/* --- 4. Ceremony photographs inside the ritual section --- */
.stage-media { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:8px 0 30px; }

/* --- 5. What arrives + the AI disclosure --- */
.arrival { padding:12vh 7vw; background:#13120f; }
.arrival-layout { display:grid; grid-template-columns:1fr .95fr; gap:7vw; align-items:center; max-width:1350px; margin:auto; }
.arrival-copy h2 { margin:0 0 26px; font-size:clamp(40px,5vw,72px); line-height:1.02; letter-spacing:-.035em; }
.arrival-copy p { max-width:560px; color:#a8a094; font-size:16px; line-height:1.78; }
.reading-sample { margin:0; padding:34px; border:1px solid var(--line); background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.014)); }
.reading-sample figcaption { margin-bottom:22px; padding-bottom:16px; border-bottom:1px solid var(--line); color:#81796d; font-size:9px; font-weight:600; letter-spacing:.15em; }
.reading-sample blockquote { margin:0; color:#cec5b5; font-family:var(--serif); font-size:18px; line-height:1.85; }
.disclosure-card { max-width:1350px; margin:8vh auto 0; padding:40px 44px; border:1px solid rgba(210,99,43,.4); border-left-width:3px; background:rgba(210,99,43,.05); }
.disclosure-card .eyebrow { margin-bottom:20px; color:#e5a463; }
.disclosure-card p { max-width:900px; margin:0 0 16px; color:#b3aa9c; font-size:15px; line-height:1.8; }
.disclosure-card strong { color:#f0e6d5; font-weight:500; }
.disclosure-punch { color:#e8ded0 !important; font-family:var(--serif); font-size:23px !important; line-height:1.5 !important; }
.disclosure-card .fine-print { max-width:900px; margin-top:22px; padding-top:18px; border-top:1px solid rgba(210,99,43,.24); font-size:11px; }
.disclosure-card .fine-print a { color:#d8c4a8; text-underline-offset:3px; }

/* --- 6. Ceremony log (paper) --- */
.log { padding:12vh 5vw; background:#d9d2c5; color:#171511; }
.log .eyebrow { color:#6c655b; }
.log .section-heading > p:last-child { color:#5f584e; }
.log-grid { max-width:1350px; margin:auto; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.log-entry { background:#cbc3b4; box-shadow:0 20px 50px rgba(31,27,20,.14); }
.log-entry .media-slot-frame { border-color:rgba(125,60,20,.42); background:repeating-linear-gradient(135deg,rgba(90,70,45,.1) 0 12px,transparent 12px 24px),#b8b0a1; }
.log-entry .media-slot-frame span { color:#8a3f13; }
.log-entry .media-slot-frame small { color:#5f584e; }
.log-meta { padding:24px; }
.log-date { margin:0 0 10px; font-family:var(--serif); font-size:22px; }
.log-facts { margin:0 0 16px; color:#6d665c; font-size:11px; line-height:1.75; letter-spacing:.06em; text-transform:uppercase; }
.log-meta p:last-child { margin:0; color:#423d36; font-size:14px; line-height:1.75; }
.log-honesty { max-width:820px; margin:52px auto 0; padding-top:22px; border-top:1px solid rgba(23,21,17,.22); color:#5f584e; font-size:14px; line-height:1.8; text-align:center; }

/* --- 7. Questions --- */
.questions { padding:12vh 5vw 14vh; background:#161512; }
.questions .section-heading { margin-bottom:5vh; }
.faq { max-width:900px; margin:auto; border-top:1px solid var(--line); }
.faq details { border-bottom:1px solid var(--line); }
.faq summary { position:relative; padding:26px 44px 26px 0; color:#e0d8c9; font-family:var(--serif); font-size:23px; line-height:1.35; cursor:pointer; list-style:none; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; position:absolute; top:50%; right:6px; color:var(--ember); font-family:var(--sans); font-size:24px; font-weight:300; transform:translateY(-50%); transition:transform .25s ease; }
.faq details[open] summary::after { transform:translateY(-50%) rotate(45deg); }
.faq summary:hover { color:#fff; }
.faq details > div { padding:0 44px 28px 0; }
.faq details p { margin:0 0 14px; color:#a8a094; font-size:15px; line-height:1.8; }
.faq details p:last-child { margin-bottom:0; }
.faq details a { color:#e0cfb4; text-underline-offset:3px; }
.closing-cta { max-width:900px; margin:9vh auto 0; padding-top:52px; border-top:1px solid var(--line); text-align:center; }
.closing-cta h3 { margin:0 0 14px; font-size:clamp(29px,3.4vw,44px); line-height:1.15; }
.closing-cta p { margin:0 0 32px; color:#8e8578; font-size:14px; letter-spacing:.06em; }

@media (max-width: 980px) {
  .founder-layout, .arrival-layout { grid-template-columns:1fr; gap:44px; }
  .founder-visual { position:static; max-width:420px; }
  .people-grid, .log-grid, .stage-media { grid-template-columns:1fr 1fr; }
  .offer-layout { grid-template-columns:1fr; max-width:650px; }
}
@media (max-width: 620px) {
  .founder, .people, .arrival, .log, .questions { padding-left:20px; padding-right:20px; }
  .people-grid, .log-grid, .stage-media { grid-template-columns:1fr; }
  .consent-note, .disclosure-card { padding:26px 22px; }
  .founder-letter p, .arrival-copy p { font-size:16px; }
  .faq summary { font-size:20px; padding-right:36px; }
  .reading-sample { padding:24px 20px; }
  .reading-sample blockquote { font-size:16px; }
}

/* --- Private coordinator control board --- */
.admin-review-body { min-height:100vh; background:#11100e; color:#e7dfd1; }
.admin-review-shell { width:min(1500px,calc(100% - 40px)); margin:0 auto; padding:72px 0 120px; }
.admin-token-panel { display:grid; grid-template-columns:1fr minmax(300px,520px); gap:44px; align-items:end; }
.admin-token-panel h2 { margin:8px 0 12px; }
.admin-token-panel p { color:#a9a093; line-height:1.7; }
.admin-token-form { margin:0; }

.board-bar { display:flex; justify-content:space-between; gap:20px; align-items:end; margin-bottom:24px; padding:20px; border:1px solid var(--line); background:rgba(255,255,255,.025); }
.board-bar-actions { display:flex; gap:12px; }
.board-cycle { min-width:340px; color:#b7aea0; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.board-cycle select { width:100%; margin-top:8px; }

/* The header numbers. Everything is neutral except the one count that means
   somebody is waiting on the coordinator. */
.board-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1px; margin:0 0 20px; padding:0; border:1px solid var(--line); background:var(--line); }
.board-stat { margin:0; padding:18px 20px; background:#141310; }
.board-stat dt { color:#8f877b; font-size:11px; letter-spacing:.09em; text-transform:uppercase; }
.board-stat dd { margin:10px 0 0; font-family:var(--serif); font-size:34px; line-height:1; }
.board-stat-alert { background:rgba(210,99,43,.1); }
.board-stat-alert dd { color:#e9ad78; }
.board-timing { margin:0 0 8px; color:#8f877b; font-size:13px; line-height:1.6; max-width:860px; }

.board-rows { display:grid; gap:14px; margin-top:22px; }
.board-row { border:1px solid var(--line); background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.012)); }
.board-row-needs_review { border-left:3px solid var(--ember); }
.board-row-needs_writing { border-left:3px solid #c34848; }
.board-row-failed { border-left:3px solid #c34848; }
.board-row-approved { border-left:3px solid #7f9c6a; }
.board-row-delivered { opacity:.72; }
.board-row-head { display:flex; justify-content:space-between; gap:24px; align-items:center; padding:22px 26px; }
.board-row-identity h2 { margin:6px 0 6px; font-size:25px; }
.board-state { margin:0; color:#b7aea0; font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.board-row-needs_review .board-state { color:#e9ad78; }
.board-row-needs_writing .board-state,.board-row-failed .board-state { color:#f1b0a7; }
.board-row-approved .board-state { color:#a8c48f; }
.board-meta { margin:0; color:#8f877b; font-size:13px; line-height:1.55; }
.board-row-timing { display:flex; gap:16px; align-items:center; flex-shrink:0; }
.board-release { margin:0; color:#8f877b; font-size:12px; text-align:right; }

.board-row-body { padding:0 26px 26px; border-top:1px solid var(--line); }
.board-columns { display:grid; grid-template-columns:1.15fr .85fr; gap:34px; padding-top:24px; }
.board-column h3 { margin:26px 0 12px; color:#d8cfbf; font-size:13px; letter-spacing:.08em; text-transform:uppercase; }
.board-column h3:first-child { margin-top:0; }
.board-intention { margin:0; padding:18px 20px; border:1px solid var(--line); background:#171612; color:#e5dac8; font-family:var(--serif); font-size:18px; line-height:1.6; white-space:pre-wrap; }
.board-intention-note { margin:10px 0 0; color:#8f877b; font-size:13px; line-height:1.6; }
.board-empty-note { margin:0; color:#81796e; font-size:14px; line-height:1.6; }

.board-messages { display:grid; gap:10px; max-height:330px; overflow-y:auto; }
.board-message { padding:14px 16px; border:1px solid var(--line); background:rgba(0,0,0,.14); }
.board-message-meta { display:flex; justify-content:space-between; gap:12px; color:#8c8377; font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.board-message p { margin:10px 0 0; color:#c0b7a9; line-height:1.6; white-space:pre-wrap; }
.board-history { display:grid; gap:10px; max-height:330px; overflow-y:auto; }
.board-past-note { padding:14px 16px; border:1px solid var(--line); background:rgba(0,0,0,.14); }
.board-past-note summary { color:#d8cfbf; cursor:pointer; }
.board-past-note p { margin:12px 0 0; color:#c0b7a9; line-height:1.6; white-space:pre-wrap; }
.board-provenance { margin:10px 0 0; color:#81796e; font-size:12px; }
.board-reply { margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.board-reply strong { color:#e0a16b; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }

.board-profile { display:grid; grid-template-columns:auto 1fr; gap:8px 16px; margin:0; }
.board-profile dt { color:#8c8377; font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.board-profile dd { margin:0; color:#c8bfb1; font-size:14px; overflow-wrap:anywhere; }

.board-posture { margin:0 0 12px; font-family:var(--serif); font-size:24px; color:#e5dac8; text-transform:capitalize; }
.board-spirit-facts { display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:0; }
.board-spirit-facts dt { color:#8c8377; font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.board-spirit-facts dd { margin:0; color:#c8bfb1; font-size:14px; text-transform:capitalize; }
.board-claims { margin-top:12px; color:#a9a093; font-size:13px; }
.board-claims summary { cursor:pointer; }
.board-claims ul { margin:10px 0 0; padding-left:20px; line-height:1.6; }

.board-shaman-form { margin:0; }
.board-shaman-form textarea { width:100%; }
.board-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:12px; }
.board-note-provenance { color:#81796e; font-size:12px; }

.board-draft { margin-top:30px; padding-top:24px; border-top:1px solid var(--line); }
.board-draft-head { display:flex; justify-content:space-between; gap:20px; align-items:baseline; flex-wrap:wrap; }
.board-draft-head h3 { margin:0; color:#d8cfbf; font-size:13px; letter-spacing:.08em; text-transform:uppercase; }
.board-draft-meta { margin:0; color:#81796e; font-size:12px; }
.board-draft-hint { margin:12px 0 18px; padding:14px 18px; border-left:3px solid var(--ember); background:rgba(210,99,43,.07); color:#c9bdac; line-height:1.6; }
.board-draft-form { margin:0; }

/* The member's own words, beside the box rather than above it. */
.board-reference { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1px; margin:0 0 18px; border:1px solid var(--line); background:var(--line); }
.board-reference-item { padding:14px 16px; background:#141310; }
.board-reference-item strong { display:block; margin-bottom:8px; color:#8c8377; font-size:11px; letter-spacing:.07em; text-transform:uppercase; }
.board-reference-item p { margin:0; color:#c0b7a9; font-size:14px; line-height:1.6; }

.board-counters { display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-top:10px; font-size:12px; }
.board-count { color:#8f877b; font-variant-numeric:tabular-nums; }
.board-count[data-state="outside"] { color:#e9ad78; }
.board-count[data-state="inside"] { color:#a8c48f; }
.board-saved-state { margin-left:auto; color:#81796e; }
.board-saved-state[data-state="unsaved"] { color:#e9ad78; }

.board-checks { margin:12px 0 0; padding:12px 16px 12px 34px; border-left:3px solid #c34848; background:rgba(195,72,72,.08); color:#e4bdb6; font-size:13px; line-height:1.7; }
.board-draft-form textarea { width:100%; font-family:var(--serif); font-size:17px; line-height:1.65; }
.board-draft-message { margin-top:12px; }

@media (max-width:1100px) {
  .board-columns { grid-template-columns:1fr; }
}
@media (max-width:900px) {
  .admin-token-panel { grid-template-columns:1fr; }
  .board-bar,.board-row-head { align-items:stretch; flex-direction:column; }
  .board-cycle { min-width:0; }
  .board-release { text-align:left; }
}



/* ============================================================
   v1.9.3 — THE RITUAL LANDING PAGE.
   The page is now built around one act: a name spoken at a fire
   near Olkhon. Photography carries the argument; type stays out
   of its way. Everything below overrides the earlier landing
   rules, which were written for a page with empty media slots.
   ============================================================ */

:root {
  --night: #0a0a08;
  --night-2: #100f0c;
  --paper-warm: #d9d2c5;
  --ember: #d2632b;
  --ember-soft: #e5a463;
  --gold-line: rgba(229,164,99,.22);
}

html, body { background: var(--night); }

/* Anchor jumps land with the fixed header clear of the section heading. */
main section[id] { scroll-margin-top: 76px; }

/* --- Header: a scrim over the hero, a solid bar once the page starts --- */
.site-header { mix-blend-mode: normal; background: linear-gradient(180deg, rgba(6,6,5,.78), transparent); transition: background .35s ease, box-shadow .35s ease; }
.site-header.is-condensed {
  background: rgba(9,9,7,.88);
  backdrop-filter: saturate(140%) blur(14px);
  box-shadow: 0 1px 0 rgba(232,226,213,.08);
}
.main-nav a { position: relative; color: #ded5c6; text-decoration: none; }
.main-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -6px; height: 1px; background: var(--ember-soft); transition: right .3s ease; }
.main-nav a:hover::after { right: 0; }
.brand-mark { filter: drop-shadow(0 0 9px rgba(242,161,74,.28)); }
.nav-toggle { display: none; }

/* --- 1. HERO ------------------------------------------------ */
.hero { padding: 13vh 7vw 15vh; }
.hero-film { background-color: #070706; }
.hero-video { opacity: .95; }
.hero-shade {
  background:
    radial-gradient(85% 80% at 12% 72%, rgba(6,6,5,.88) 0%, rgba(6,6,5,.5) 46%, rgba(6,6,5,0) 76%),
    linear-gradient(0deg, rgba(5,5,4,.9) 0%, rgba(5,5,4,.2) 46%, rgba(5,5,4,.44) 100%);
}
.hero-content { max-width: 900px; }
.hero .eyebrow { color: var(--ember-soft); letter-spacing: .3em; }
.hero h1 { font-size: clamp(46px,7vw,112px); line-height: .95; letter-spacing: -.04em; text-shadow: 0 2px 40px rgba(0,0,0,.6); }
.hero-copy { max-width: 640px; margin-top: 30px; color: #d9d1c3; font-size: clamp(17px,1.45vw,21px); line-height: 1.62; text-shadow: 0 1px 20px rgba(0,0,0,.65); }
.hero-actions { margin-top: 42px; }
.ritual-status { color: #c9c0b0 !important; font-size: 12.5px !important; letter-spacing: .04em; }
.ritual-status strong { color: #fff; }
.button-primary { color: #17130e; background: linear-gradient(180deg,#f2ead9,#ddd2bd); letter-spacing: .16em; }
.button-primary:hover { background: #fff; box-shadow: 0 14px 34px rgba(229,164,99,.22); }
.trust-strip { border-top-color: var(--gold-line); }
.trust-strip span { color: #b6ad9d; }
.trust-strip span::before { color: var(--ember-soft); }
.fine-print { font-size: 12px; line-height: 1.65; }

/* --- 2. THRESHOLD ------------------------------------------- */
.threshold { position: relative; padding: 14vh 6vw; background: var(--night-2); overflow: hidden; }
.threshold::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(60% 55% at 82% 12%, rgba(210,99,43,.11), transparent 70%);
}
.threshold-layout { position: relative; max-width: 1400px; margin: auto; display: grid; grid-template-columns: 1.08fr 1fr; gap: 6vw; align-items: center; }
.threshold-media { margin: 0; }
.threshold-media img { width: 100%; height: auto; display: block; aspect-ratio: 3/2; object-fit: cover; box-shadow: 0 40px 90px rgba(0,0,0,.55); }
.threshold-media figcaption { padding: 16px 2px 0; color: #857c6f; font-size: 11.5px; line-height: 1.7; letter-spacing: .03em; }
.threshold-copy .eyebrow { color: var(--ember-soft); }
.threshold-copy h2 { margin: 0 0 30px; font-size: clamp(34px,4.4vw,64px); line-height: 1.03; letter-spacing: -.035em; }
.threshold-copy p { max-width: 560px; color: #a9a094; font-size: 17px; line-height: 1.82; }
.threshold-line { margin-top: 34px !important; padding-top: 26px; border-top: 1px solid var(--gold-line); color: #e2d8c7 !important; font-family: var(--serif); font-size: 21px !important; line-height: 1.5 !important; }

/* --- 3. THE RITUAL JOURNEY ---------------------------------- */
.journey { padding: 14vh 6vw 12vh; background: var(--night); }
.journey .section-heading { max-width: 820px; margin-bottom: 10vh; }
.journey .eyebrow { color: var(--ember-soft); }
.journey-step { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 1.15fr .85fr; gap: 5vw; align-items: center; padding: 5vh 0; }
.journey-step + .journey-step { border-top: 1px solid rgba(232,226,213,.08); }
.journey-step.reversed .journey-media { order: 2; }
.journey-media { margin: 0; position: relative; overflow: hidden; background: #0d0c0a; }
.journey-media img, .journey-media video { width: 100%; height: 100%; display: block; aspect-ratio: 3/2; object-fit: cover; }
/* The map flight is a 2.44:1 band; letterboxing it into a 3:2 tile would crop the lake out. */
.journey-media.is-panorama video { aspect-ratio: 320/131; }
.journey-media::after { content: ""; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 120px rgba(0,0,0,.5); }
.journey-copy { max-width: 460px; }
.journey-index { margin: 0 0 20px; color: var(--ember); font-family: var(--serif); font-size: 15px; letter-spacing: .3em; }
.journey-copy h3 { margin: 0 0 18px; font-family: var(--serif); font-size: clamp(29px,3.3vw,46px); font-weight: 400; line-height: 1.08; letter-spacing: -.03em; }
.journey-copy p { margin: 0; color: #a9a094; font-size: 16.5px; line-height: 1.8; }
.journey-aside { margin-top: 18px !important; color: #7e766a !important; font-size: 13px !important; font-style: italic; }
.journey-close { max-width: 760px; margin: 9vh auto 0; padding-top: 34px; border-top: 1px solid var(--gold-line); text-align: center; }
.journey-close p { margin: 0; color: #cfc5b4; font-family: var(--serif); font-size: clamp(19px,2vw,26px); line-height: 1.6; }

/* --- 4. THE PEOPLE ------------------------------------------ */
.people { padding: 13vh 5vw; background: var(--night-2); }
.people .section-heading { margin-bottom: 8vh; }
.people .eyebrow { color: var(--ember-soft); }
.people-grid { max-width: 1400px; margin: auto; display: grid; grid-template-columns: repeat(3,1fr); gap: 34px; }
.person { display: flex; flex-direction: column; }
.person-photo { margin: 0; overflow: hidden; background: #0d0c0a; }
.person-photo img { width: 100%; height: 100%; display: block; aspect-ratio: 4/5; object-fit: cover; filter: saturate(1.02) contrast(1.02); transition: transform 1.1s cubic-bezier(.2,.7,.2,1); }
.person:hover .person-photo img { transform: scale(1.035); }
.person-body { padding: 28px 2px 0; }
.person-role { margin: 0 0 12px; color: var(--ember); font-size: 9.5px; font-weight: 600; letter-spacing: .2em; }
.person-body h3 { margin: 0 0 16px; font-size: clamp(28px,2.6vw,36px); line-height: 1.06; letter-spacing: -.02em; }
.person-body > p { margin: 0 0 22px; color: #a49b8f; font-size: 15px; line-height: 1.78; }
.person-body blockquote { margin: 0; padding: 20px 0 0; border-top: 1px solid var(--gold-line); color: #e0d6c4; font-family: var(--serif); font-size: 19px; line-height: 1.6; }
/* Only Bair's line is a real quotation. The other two are the page speaking
   about a person, so they must not be set as if the person said them. */
.person-body blockquote.attributed-to-page { color: #b8afa1; font-size: 17px; font-style: italic; }
.person-note { margin: 20px 0 0 !important; color: #7d7568 !important; font-size: 12.5px !important; line-height: 1.75 !important; }
/* Four of the five shamans are absent from the grid. Saying so out loud is
   worth more than a fourth empty card, so it gets its own block below it. */
.people-note { max-width: 780px; margin: 8vh auto 0; padding-top: 32px; border-top: 1px solid var(--gold-line); }
.people-note p { margin: 0 0 16px; color: #968d81; font-size: 14.5px; line-height: 1.8; }
.people-note p:last-child { margin-bottom: 0; }

/* --- 5. FOUNDER (paper) ------------------------------------- */
.founder { padding: 14vh 7vw; background: var(--paper-warm); color: #171511; }
.founder-layout { grid-template-columns: .78fr 1fr; align-items: start; }
.founder-visual { margin: 0; position: sticky; top: 110px; }
.founder-visual img { width: 100%; height: auto; display: block; aspect-ratio: 4/5; object-fit: cover; box-shadow: 0 34px 74px rgba(31,27,20,.3); }
.founder-visual figcaption { padding: 15px 2px 0; color: #6d665c; font-size: 11.5px; line-height: 1.65; letter-spacing: .03em; }
.founder-letter h2 { margin: 0 0 36px; font-size: clamp(38px,4.6vw,68px); }
.founder-letter p { font-size: 17.5px; line-height: 1.82; }
.founder-letter p:first-of-type { color: #2a251f; font-size: 20px; line-height: 1.72; }
.founder-sign { display: flex; align-items: center; gap: 26px; margin-top: 46px; padding-top: 28px; }

/* --- 6. THE OFFER ------------------------------------------- */
.rituals { padding: 14vh 5vw; background: var(--night); }
.rituals .eyebrow { color: var(--ember-soft); }
.rituals .section-heading { margin-bottom: 7vh; }
.offer-card { background: linear-gradient(160deg, rgba(210,99,43,.09), rgba(255,255,255,.015) 45%); border-color: rgba(229,164,99,.45); }
.offer-card.featured { box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.offer-card h3 { font-size: clamp(32px,3.4vw,44px); }
.price strong { font-size: 38px; }
.card-lead { color: #c3bbad; font-size: 16px; line-height: 1.65; }
.offer-card li { color: #cbc3b5; font-size: 13.5px; }
.offer-card li::before { content: "\25C6"; margin-right: 11px; color: var(--ember); font-size: 7px; vertical-align: middle; }
.offer-card .button-primary { width: 100%; min-height: 58px; }
.prep-card h3 { font-family: var(--serif); }

/* --- 7. THE RECORD ------------------------------------------ */
.record { padding: 14vh 6vw; background: var(--night-2); display: grid; grid-template-columns: 1.1fr .9fr; gap: 5vw 6vw; align-items: center; }
.record .eyebrow { color: var(--ember-soft); }
.record-film { margin: 0; }
.record-film figure { margin: 0; }
.record-film video { width: 100%; display: block; aspect-ratio: 16/10; object-fit: cover; background: #070706; box-shadow: 0 40px 100px rgba(0,0,0,.6); }
.record-film figcaption { padding: 16px 2px 0; color: #857c6f; font-size: 11.5px; line-height: 1.7; }
.record-copy h2 { margin: 0 0 26px; font-size: clamp(34px,4.2vw,60px); line-height: 1.03; letter-spacing: -.035em; }
.record-copy p { max-width: 540px; color: #a9a094; font-size: 16.5px; line-height: 1.82; }
.record-copy .text-link { color: #e5d9c4; border-bottom-color: rgba(229,164,99,.5); }
.record-stills { grid-column: 1 / -1; display: grid; grid-template-columns: 1.1fr .9fr; gap: 6vw; align-items: center; padding-top: 6vh; border-top: 1px solid rgba(232,226,213,.08); }
.record-stills figure { margin: 0; }
/* height:auto is load-bearing — the intrinsic height attribute would otherwise
   win over aspect-ratio and stretch the still into a portrait crop. */
.record-stills img { width: 100%; height: auto; display: block; aspect-ratio: 3/2; object-fit: cover; }
.record-stills figcaption { padding: 15px 2px 0; color: #857c6f; font-size: 11.5px; line-height: 1.7; }
.record-quote { margin: 0; padding-left: 32px; border-left: 2px solid var(--ember); }
.record-quote p { margin: 0; color: #ded4c2; font-family: var(--serif); font-size: clamp(19px,2.1vw,27px); line-height: 1.58; }

/* --- 8. QUESTIONS ------------------------------------------- */
.questions { background: var(--night); }
.questions .eyebrow { color: var(--ember-soft); }
.faq summary { font-size: 22px; }
.closing-cta { border-top-color: var(--gold-line); }
.closing-cta h3 { font-size: clamp(30px,3.6vw,48px); }
.closing-cta p { color: #948b7d; }

/* --- Footer ------------------------------------------------- */
.site-footer { background: #060605; border-top-color: rgba(232,226,213,.1); }

/* --- Ambient (non-hero) video: loads and plays once in view --- */
.ambient-video { opacity: 0; transition: opacity 1s ease; }
.ambient-video.is-playing { opacity: 1; }

/* --- Mobile sticky offer bar: the date and the price reachable from any
   screen, shown once the hero has scrolled away and hidden again while the
   offer itself is on screen. Desktop never sees it.
   Deliberately no backdrop-filter and no visibility transition: both belong
   to a family of fixed-element rendering bugs in Firefox's GPU compositor
   that paint the bar as an empty dark band. A near-opaque background and a
   transform-only slide need nothing from the compositor. --- */
.mobile-cta-bar { display: none; }
@media (max-width: 980px) {
  .mobile-cta-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    background: rgba(9,9,7,.97);
    border-top: 1px solid rgba(232,226,213,.14);
    transform: translateY(102%);
    pointer-events: none;
    transition: transform .35s ease;
  }
  .mobile-cta-bar.is-visible { transform: none; pointer-events: auto; }
  /* One quiet line; the count is the only bright thing in it. The whole bar
     is one tap target for the offer; the small button inside is the visual
     cue, not the only door. */
  .mobile-cta-bar { cursor: pointer; }
  .mobile-cta-text { margin: 0; color: #c9c0b0; font-size: 12.5px; letter-spacing: .04em; line-height: 1.45; min-width: 0; }
  .mobile-cta-text strong { color: #fff; font-weight: 600; }
  .mobile-cta-bar .button { flex-shrink: 0; min-height: 40px; padding: 10px 16px; }
  /* The footer clears the bar only once the bar has actually appeared, so a
     visitor whose scripts never ran is not left a blank band at the bottom. */
  body.has-cta-bar .site-footer { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
}

/* --- Responsive ---------------------------------------------- */
@media (max-width: 1080px) {
  /* One column means blocks arrive one at a time: the desktop stagger is pure
     latency here, and a slow fade reads as a blank screen mid-flick. */
  .reveal { transition-duration: .5s; }
  .delay-one, .delay-two, .delay-three { transition-delay: 0s; }
  .threshold-layout { grid-template-columns: 1fr; gap: 46px; }
  .journey-step, .journey-step.reversed { grid-template-columns: 1fr; gap: 34px; }
  .journey-step.reversed .journey-media { order: 0; }
  .journey-copy { max-width: 620px; }
  .people-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
  .people-grid .person:last-child { grid-column: 1 / -1; max-width: 460px; }
  .founder-layout { grid-template-columns: 1fr; gap: 44px; }
  .founder-visual { position: static; max-width: 460px; }
  .record { grid-template-columns: 1fr; gap: 44px; }
  .record-stills { grid-template-columns: 1fr; gap: 34px; }
  .offer-layout { grid-template-columns: 1fr; max-width: 680px; }
}
@media (max-width: 980px) {
  body.nav-open { overflow: hidden; }
  .site-header { padding: 17px 18px; }
  .main-nav {
    position: fixed;
    inset: 0;
    z-index: 48;
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-direction: column;
    gap: 0;
    padding: 92px 24px 32px;
    background: rgba(9,9,7,.97);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-12px);
    transition: opacity .22s ease, transform .22s ease;
  }
  .main-nav.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }
  .main-nav a,
  .main-nav a[href="#rituals"],
  .main-nav .sound-toggle {
    display: block;
    width: 100%;
    padding: 18px 0;
    border-top: 1px solid rgba(232,226,213,.12);
    color: #e8e2d5;
    font-size: 13px;
    letter-spacing: .13em;
    text-align: left;
  }
  .main-nav a:last-of-type,
  .main-nav .sound-toggle {
    border-bottom: 1px solid rgba(232,226,213,.12);
  }
  .main-nav a::after { display: none; }
  .nav-toggle {
    position: relative;
    z-index: 51;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(232,226,213,.24);
    background: rgba(9,9,7,.34);
    color: var(--paper);
    cursor: pointer;
  }
  .nav-toggle span {
    display: block;
    width: 18px;
    height: 1px;
    background: currentColor;
    transition: transform .2s ease, opacity .2s ease;
  }
  .nav-toggle.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav-toggle.is-open span:nth-child(2) { opacity: 0; }
  .nav-toggle.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .hero {
    align-items: flex-start;
    justify-content: flex-end;
    flex-direction: column;
    gap: 32px;
    overflow: visible;
    padding: 108px 5vw 44px;
  }
  .hero-content { padding-bottom: 0; }
  .trust-strip {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    width: 100%;
    max-width: 680px;
    flex-direction: column;
    gap: 8px;
    padding-top: 16px;
  }
  .trust-strip span { font-size: 12px; line-height: 1.45; }
}
@media (max-width: 620px) {
  .threshold, .journey, .people, .rituals, .record, .questions { padding-left: 20px; padding-right: 20px; }
  .founder { padding-left: 22px; padding-right: 22px; }
  .hero { gap: 24px; padding: 88px 20px 34px; }
  .hero h1 { font-size: clamp(40px, 11vw, 46px); line-height: .98; letter-spacing: -.035em; }
  .hero-copy { margin-top: 22px; font-size: 16px; line-height: 1.55; }
  .hero-actions { gap: 14px; margin-top: 28px; }
  .hero-actions .button { width: 100%; min-height: 50px; padding-left: 16px; padding-right: 16px; }
  .ritual-status { font-size: 12px !important; line-height: 1.5; }
  .trust-strip span { font-size: 12px; letter-spacing: .04em; }
  .card-topline, .person-role { font-size: 11px; line-height: 1.35; }
  .fine-print, .record-film figcaption, .record-stills figcaption, .founder-visual figcaption, .threshold-media figcaption { font-size: 12px; }
  /* On a phone the tall vh paddings put the price 13+ screens from the top.
     Halving them costs nothing the narrow layout was using. */
  .threshold { padding-top: 8vh; padding-bottom: 8vh; }
  .journey { padding-top: 8vh; padding-bottom: 6vh; }
  .people, .founder, .rituals, .record { padding-top: 8vh; padding-bottom: 8vh; }
  .people .section-heading, .rituals .section-heading { margin-bottom: 4vh; }
  .journey-close { margin-top: 5vh; }
  .people-note { margin-top: 4vh; }
  .journey .section-heading { margin-bottom: 6vh; }
  .journey-step { padding: 3.5vh 0; }
  .people-grid { grid-template-columns: 1fr; }
  .people-grid .person:last-child { max-width: none; }
  .record-quote { padding-left: 22px; }
  .founder-sign { flex-direction: column; align-items: flex-start; gap: 14px; }
}

/* Coordinator board: overdue cases and the visits panel. */
.board-row-overdue { border-color:#c96f5f; }
.board-row-overdue .board-state { color:#f1948a; }
.board-activity-facts { display:grid; grid-template-columns:auto 1fr; gap:4px 14px; margin:0; font-size:13px; }
.board-activity-facts dt { color:#8f877b; }
.board-activity-facts dd { margin:0; color:#d8cfbf; }
.board-activity-paths, .board-activity-recent { margin-top:10px; font-size:13px; color:#b7aea0; }
.board-activity-paths summary, .board-activity-recent summary { cursor:pointer; color:#d8cfbf; }
.board-activity-paths ul, .board-activity-recent ul { margin:8px 0 0; padding-left:18px; }
.board-activity-paths li, .board-activity-recent li { margin:3px 0; line-height:1.5; }

/* Privacy notice bar. Deliberately quiet: one line at the foot of the page,
   never a curtain over it, and gone on the first answer. */
.consent-bar { position:fixed; z-index:60; left:0; right:0; bottom:0; display:flex; align-items:center; gap:16px; flex-wrap:wrap; padding:13px 4vw; font-size:12.5px; line-height:1.5; color:#cfc7b8; background:rgba(17,16,13,.94); border-top:1px solid var(--line); backdrop-filter:blur(6px); }
.consent-bar p { margin:0; flex:1 1 320px; }
.consent-bar a { color:var(--paper); text-underline-offset:3px; }
.consent-bar button { padding:8px 18px; font-size:11px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; border:1px solid rgba(232,226,213,.4); background:transparent; color:var(--paper); }
.consent-bar button:hover { border-color:var(--paper); background:rgba(255,255,255,.06); }
.consent-bar .consent-accept { border-color:var(--ember); background:var(--ember); color:#fff; }
.consent-bar .consent-accept:hover { background:#e0713a; border-color:#e0713a; }
@media (max-width:620px) {
  .consent-bar { padding:12px 20px; gap:10px; }
  .consent-bar button { flex:1 1 auto; }
}
