/* His Glow v2 — evening navy, lamplight, Bible-page paper, ribbon red. See HISGLOW_DESIGN_SYSTEM.md */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
:root{
  --vesper:#141B2D;--dusk:#1E2840;--lamp:#F0B65A;--candle:#F7ECD6;--hush:#B9B3A6;
  --page:#EFE2C6;--ink:#2A2118;--ribbon:#A3312A;--rule:rgba(247,236,214,.14);--prule:rgba(42,33,24,.16);
  --disp:'Libre Caslon Display',Georgia,'Times New Roman',serif;
  --text:'Libre Caslon Text',Georgia,'Times New Roman',serif;
  --ui:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
}
body{background:var(--vesper);color:var(--candle);font-family:var(--text);font-size:19px;line-height:1.72;-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--lamp);text-underline-offset:3px}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:68ch;margin-left:auto;margin-right:auto}

/* ---------- signature: the lamp turns on as you scroll ---------- */
body::before{content:"";position:fixed;z-index:0;pointer-events:none;top:-38vh;right:-30vw;width:110vw;height:110vh;border-radius:50%;
  background:radial-gradient(closest-side,rgba(240,182,90,.30),rgba(240,182,90,.10) 45%,rgba(240,182,90,0) 72%);opacity:.9;transform:scale(1)}
@supports (animation-timeline: scroll()){
  body::before{animation:lampOn linear both;animation-timeline:scroll(root)}
  .mark .halo{animation:haloOn linear both;animation-timeline:scroll(root)}
}
@keyframes lampOn{from{opacity:.18;transform:scale(.55)}to{opacity:1;transform:scale(1.15)}}
@keyframes haloOn{from{opacity:.25}to{opacity:1}}
main,nav,footer{position:relative;z-index:1}

/* ---------- nav ---------- */
nav{background:rgba(20,27,45,.88);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:40;backdrop-filter:blur(8px)}
.navin{max-width:1120px;margin:0 auto;padding:12px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.mark{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--candle)}
.mark svg{height:44px;width:auto;flex:none}
.mark b{font-family:var(--disp);font-size:26px;font-weight:400;line-height:1;display:block}
.mark i{font-family:var(--text);font-style:italic;font-size:13px;color:var(--hush);display:block;margin-top:3px}
.nlinks{display:flex;gap:26px;align-items:center;font-family:var(--ui)}
.nlinks a{font-size:15px;font-weight:500;color:var(--candle);text-decoration:none;padding:6px 0;border-bottom:1px solid transparent}
.nlinks a:hover,.nlinks a[aria-current=page]{color:var(--lamp);border-bottom-color:var(--lamp)}
.nlinks .ncta{background:var(--lamp);color:var(--vesper);padding:10px 16px;border-radius:6px;border:0;font-weight:600}
.nlinks .ncta:hover{background:var(--candle);color:var(--vesper)}
.burger{display:none;background:none;border:1px solid var(--rule);border-radius:6px;padding:8px 12px;font-size:18px;cursor:pointer;color:var(--candle);line-height:1}
@media(max-width:860px){
  .burger{display:block}.navin{flex-wrap:wrap}
  .nlinks{display:none;width:100%;flex-direction:column;gap:0;align-items:stretch}
  .nlinks.on{display:flex}
  .nlinks a{padding:14px 2px;border-top:1px solid var(--rule);border-bottom:0}
  .nlinks .ncta{text-align:center;margin:10px 0 4px}
}

/* ---------- type ---------- */
.eyebrow{display:block;font-family:var(--text);font-style:italic;font-size:17px;color:var(--lamp);letter-spacing:0;text-transform:none;font-weight:400;margin-bottom:10px}
h1{font-family:var(--disp);font-weight:400;font-size:clamp(42px,7.4vw,84px);line-height:1.02;letter-spacing:-.01em;margin:0 0 20px;text-wrap:balance}
h2{font-family:var(--disp);font-weight:400;font-size:clamp(32px,4.4vw,50px);line-height:1.08;margin:0 0 18px;text-wrap:balance}
h3{font-family:var(--text);font-weight:700;font-size:21px;line-height:1.3;margin:0 0 8px}
p{margin:0 0 18px;max-width:68ch;text-wrap:pretty}
p:last-child{margin-bottom:0}
.lede{font-size:21px;line-height:1.6}
.muted{color:var(--hush)}

/* ---------- sections ---------- */
section{padding:104px 0;position:relative}
section.tight{padding:64px 0}
.shead{max-width:60ch;margin:0 0 48px}
.dark{background:transparent}
.sandbg{background:transparent}
@media(max-width:700px){section{padding:64px 0}.shead{margin-bottom:32px}body{font-size:18px}}

/* page panels (Bible paper) */
.paper{background:var(--page);color:var(--ink);border-radius:2px;padding:56px clamp(22px,5vw,64px);box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 30px 60px -20px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.25)}
.paper .eyebrow{color:#8A5A12}
.paper .muted{color:#5E5143}
.paper a{color:#7A4A0C}
.paper h2,.paper h3{color:var(--ink)}

/* ribbon marker */
.ribbon{position:relative}
.ribbon::before{content:"";position:absolute;top:0;left:max(24px,calc(50% - 536px));width:8px;height:78px;background:var(--ribbon);clip-path:polygon(0 0,100% 0,100% 100%,50% 86%,0 100%)}

/* ---------- buttons ---------- */
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.btn,.btn-o{display:inline-block;text-decoration:none;padding:15px 26px;font-family:var(--ui);font-size:16px;font-weight:600;border-radius:6px;cursor:pointer;border:1px solid transparent;text-align:center;line-height:1.2}
.btn{background:var(--lamp);color:var(--vesper);border-color:var(--lamp)}
.btn:hover{background:var(--candle);border-color:var(--candle)}
.btn-o{background:transparent;color:var(--candle);border-color:rgba(247,236,214,.6)}
.btn-o:hover{border-color:var(--candle);background:rgba(247,236,214,.08)}
.paper .btn{background:var(--ink);color:var(--page);border-color:var(--ink)}
.paper .btn:hover{background:#7A4A0C;border-color:#7A4A0C}
.paper .btn-o{color:var(--ink);border-color:var(--ink)}
.note{font-family:var(--ui);font-size:15px;color:var(--hush);margin-top:14px}

/* ---------- hero ---------- */
.hero{position:relative;min-height:clamp(560px,88vh,820px);display:flex;align-items:center;color:var(--candle);overflow:hidden;background:var(--vesper);padding:0}
.hero video,.hero .poster,.hero picture{position:absolute;inset:0;width:100%;height:100%}
.hero .poster,.hero picture img{width:100%;height:100%;object-fit:cover;object-position:62% 45%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,27,45,.94) 0%,rgba(20,27,45,.78) 34%,rgba(20,27,45,.15) 66%,rgba(20,27,45,0) 100%)}
.hero .glow{position:absolute;z-index:1;width:46vw;height:46vw;max-width:640px;max-height:640px;left:44%;top:6%;border-radius:50%;background:radial-gradient(closest-side,rgba(240,182,90,.35),rgba(240,182,90,0));animation:heroLamp 1.4s ease-out both;pointer-events:none}
@keyframes heroLamp{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
.hero .in{position:relative;z-index:2;max-width:1120px;width:100%;margin:0 auto;padding:96px 24px}
.hero h1{max-width:11ch}
.hero .lede{max-width:34ch;color:var(--candle)}
.hero.short{min-height:clamp(380px,56vh,540px);align-items:flex-end}
.hero.short .in{padding:72px 24px 56px}
.hero.short::after{background:linear-gradient(180deg,rgba(20,27,45,.45) 0%,rgba(20,27,45,.6) 45%,rgba(20,27,45,.95) 100%)}
.hero.post-hero{min-height:clamp(340px,52vh,480px)}
@media(max-width:760px){
  .hero{display:block;min-height:0}
  .hero picture,.hero .poster,.hero video{position:relative;inset:auto;height:auto;aspect-ratio:4/5}
  .hero::after{display:none}
  .hero .glow{left:-10%;top:4%;width:90vw;height:90vw}
  .hero .in{padding:32px 24px 56px;margin-top:-90px;background:linear-gradient(180deg,rgba(20,27,45,0) 0,var(--vesper) 90px)}
  .hero h1{max-width:none}
  .hero.short{display:flex;min-height:380px}
  .hero.short .poster,.hero.short video{position:absolute;inset:0;height:100%;aspect-ratio:auto}
  .hero.short::after{display:block}
  .hero.short .in{margin-top:0;background:none}
}

/* ---------- layout ---------- */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.duo{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.duo.flip>:first-child{order:2}
@media(max-width:860px){.trio,.duo{grid-template-columns:1fr}.duo{gap:32px}.duo.flip>:first-child{order:0}}
.card{background:transparent;border-top:1px solid var(--rule);padding-top:20px;display:flex;flex-direction:column}
.card .ci{aspect-ratio:4/5;object-fit:cover;width:100%;margin-bottom:18px;outline:1px solid var(--rule)}
.card .ct{display:flex;flex-direction:column;flex:1}
.card .ct p{flex:1;color:var(--hush)}
.card a.more{font-family:var(--ui);font-weight:600;text-decoration:none;margin-top:12px}
.paper .card{border-top-color:var(--prule)}.paper .card .ct p{color:#5E5143}
.step{border-top:1px solid var(--rule);padding-top:18px}
.step .n{font-family:var(--disp);font-size:44px;line-height:1;color:var(--lamp);margin-bottom:10px}
.media{overflow:hidden;outline:1px solid var(--rule)}
.media video,.media img{width:100%;object-fit:cover}
.media.sq video,.media.sq img{aspect-ratio:1/1}
.media.tall video,.media.tall img{aspect-ratio:4/5;object-fit:cover}

/* checks (plain) */
.checks{list-style:none;margin:20px 0}
.checks li{position:relative;padding-left:26px;margin-bottom:10px}
.checks li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:10px;border-radius:50%;background:var(--lamp);box-shadow:0 0 12px rgba(240,182,90,.8)}
.paper .checks li::before{background:#8A5A12;box-shadow:none}

/* dedication */
.dedic{padding:96px 0 88px}
.dedic .in{max-width:46ch;margin-left:max(0px,calc(50% - 560px + 48px))}
.dedic p.say{font-family:var(--disp);font-size:clamp(28px,3.6vw,40px);line-height:1.25;color:var(--candle);max-width:none}
.dedic .from{font-style:italic;color:var(--hush);margin-top:16px;font-size:17px}

/* verses: Bible-page spread */
.verses{display:grid;grid-template-columns:repeat(2,1fr);gap:0 56px}
@media(max-width:860px){.verses{grid-template-columns:1fr}}
.verse{padding:22px 0;border-top:1px solid var(--rule)}
.paper .verse{border-top-color:var(--prule)}
.verse .room{display:block;font-style:italic;font-size:16px;color:var(--lamp);margin-bottom:6px}
.paper .verse .room{color:#8A5A12}
.verse q{display:block;font-family:var(--disp);font-size:26px;line-height:1.28;quotes:"\201C" "\201D"}
.verse cite{display:block;margin-top:8px;font-style:italic;font-size:16px;color:var(--hush)}
.paper .verse cite{color:#5E5143}
.bigq{font-family:var(--disp);font-size:clamp(30px,4.6vw,52px);line-height:1.18;text-align:center;max-width:22ch;margin:0 auto;color:var(--candle)}
.bigq cite{display:block;font-family:var(--text);font-style:italic;font-size:18px;color:var(--lamp);margin-top:18px}

/* band */
.band{position:relative;min-height:clamp(340px,48vw,560px);display:flex;align-items:center;color:var(--candle);overflow:hidden;background:var(--vesper);padding:0}
.band video,.band img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band::after{content:"";position:absolute;inset:0;background:rgba(20,27,45,.68)}
.band .in{position:relative;z-index:2;width:100%;padding:72px 24px}

/* offer */
.offer{background:var(--page);color:var(--ink);border-radius:2px;padding:30px 26px;box-shadow:0 24px 50px -20px rgba(0,0,0,.6)}
.offer h2,.offer h3{color:var(--ink)}
.offer .tag{display:inline-block;font-family:var(--text);font-style:italic;color:#8A5A12;font-size:17px;margin-bottom:8px}
.inbox{list-style:none;margin:14px 0 4px;border-top:1px solid var(--prule)}
.inbox li{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--prule)}
.inbox li span:last-child{color:#5E5143;white-space:nowrap}
.pill{display:inline-block;font-family:var(--ui);font-size:13px;font-weight:600;padding:3px 10px;border-radius:4px;background:var(--dusk);color:var(--candle)}

/* forms */
form.lead{max-width:520px;margin:24px 0 0;text-align:left}
.shead+form.lead,.narrow form.lead{margin-left:auto;margin-right:auto}
label{display:block;font-family:var(--ui);font-size:15px;font-weight:600;margin:16px 0 6px}
input,select,textarea{width:100%;padding:14px;border:1px solid rgba(247,236,214,.28);border-radius:6px;font-family:var(--ui);font-size:17px;background:var(--dusk);color:var(--candle)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--lamp);outline-offset:1px;border-color:var(--lamp)}
.paper input,.paper select,.paper textarea,.offer input,.offer select,.offer textarea{background:#FBF4E4;border-color:var(--prule);color:var(--ink)}
.paper label,.offer label{color:var(--ink)}
form.lead .btn{width:100%;margin-top:22px;border:0}
.offer form.lead .btn,.paper form.lead .btn{background:var(--ink);color:var(--page)}
.hp{position:absolute;left:-9999px}
.done{display:none;border:1px solid var(--lamp);border-radius:4px;padding:22px;margin-top:18px;background:var(--dusk);text-align:left}
.paper .done,.offer .done{background:#FBF4E4;border-color:#8A5A12;color:var(--ink)}
.done.on{display:block}

/* faq */
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;padding:20px 2px;font-family:var(--disp);font-size:25px;display:flex;gap:12px;align-items:baseline}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";margin-left:auto;color:var(--lamp);font-family:var(--ui);font-size:22px}
.faq details[open] summary::after{content:"\2013"}
.faq details p{padding:0 2px 20px;color:var(--hush)}

/* verse finder */
.vf{max-width:640px;margin:0 auto}
.prog{height:3px;background:var(--rule);border-radius:3px;margin:12px 0 26px;overflow:hidden}
.prog span{display:block;height:3px;background:var(--lamp);width:0;transition:width .25s}
.qh{font-family:var(--disp);font-size:clamp(30px,6vw,42px);line-height:1.12;margin:4px 0 24px}
.opt{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;font-family:var(--ui);font-size:18px;font-weight:500;color:var(--candle);background:var(--dusk);border:1px solid rgba(247,236,214,.18);border-radius:6px;padding:14px 18px;margin-bottom:10px;cursor:pointer;text-align:left}
.opt:hover,.opt:focus-visible{border-color:var(--lamp)}
.back{display:block;margin:14px 0 0;background:none;border:0;font-family:var(--ui);font-size:15px;color:var(--hush);cursor:pointer;padding:10px 0;text-decoration:underline}
.result{background:var(--page);color:var(--ink);border-radius:2px;padding:36px 26px;box-shadow:0 30px 60px -20px rgba(0,0,0,.55)}
.result q{display:block;font-family:var(--disp);font-size:clamp(30px,6vw,44px);line-height:1.18;quotes:"\201C" "\201D"}
.result cite{display:block;font-style:italic;font-size:17px;color:#8A5A12;margin:10px 0 0}
.result .eyebrow{color:#8A5A12}
.box{background:#FBF4E4;border-left:3px solid var(--ribbon);padding:18px 20px;margin:18px 0;text-align:left;color:var(--ink)}
.hide{display:none!important}

/* blog */
.post{max-width:68ch;margin:0 auto}
.post h2{font-size:clamp(28px,4vw,38px);margin-top:40px}
.post .meta{color:var(--hush);font-family:var(--ui);font-size:15px}
.post blockquote{border-left:3px solid var(--ribbon);padding:6px 0 6px 22px;margin:26px 0;font-family:var(--disp);font-size:27px;line-height:1.28}
.post blockquote cite{display:block;font-family:var(--text);font-style:italic;font-size:16px;color:var(--lamp);margin-top:8px}
.post ol{padding-left:22px}.post ol li{margin-bottom:12px}
.crumb{font-family:var(--ui);font-size:14px;color:var(--hush)}.crumb a{text-decoration:none}

/* footer */
footer{background:#0F1524;color:var(--candle);border-top:1px solid var(--rule);padding:64px 0 52px;text-align:left}
footer .wrap{display:grid;gap:22px}
footer .fm{display:inline-flex;align-items:center;gap:10px;font-family:var(--disp);font-size:30px}
footer .fm svg{height:50px;width:auto}
footer .ft{font-family:var(--text);font-style:italic;color:var(--lamp);font-size:18px}
.fnav{display:flex;flex-wrap:wrap;gap:6px 24px;font-family:var(--ui)}
.fnav a{font-size:15px;color:var(--candle);text-decoration:none;padding:6px 0}
.fnav a:hover{color:var(--lamp)}
.fsoc{display:flex;gap:4px;flex-wrap:wrap;margin-left:-12px}
.fsoc a{color:var(--candle);display:inline-flex;padding:12px;border-radius:50%}
.fsoc a:hover{color:var(--lamp)}
.fsoc svg{width:22px;height:22px}
.legal{font-family:var(--ui);font-size:14px;color:var(--hush);max-width:70ch;line-height:1.6}

:focus-visible{outline:2px solid var(--lamp);outline-offset:3px}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}video{display:none}
  body::before{animation:none!important;opacity:1;transform:scale(1.15)}
  .mark .halo{animation:none!important;opacity:1}
  .hero .glow{animation:none}
}
/* reveal is gone in v2 on purpose: one load moment (hero lamp) + the scroll lamp. */
.rv{opacity:1;transform:none}

/* v2.0.1 fixes */
.offer p,.offer .muted,.offer .note{color:#5E5143}
.offer h3,.offer .tag+h3{color:var(--ink)}
.result p,.result .muted{color:#3E3326}
.offer .btn{background:var(--ink);color:var(--page);border-color:var(--ink)}
.offer .btn:hover{background:#7A4A0C;border-color:#7A4A0C}
.offer .btn-o{color:var(--ink);border-color:var(--ink)}
.offer .btn-o:hover{background:rgba(42,33,24,.06)}
