/* Emberline Essentials. Template: Revival. For evangelists, traveling ministers, and prophetic voices.
   Black room, one fire. The name fills the screen edge to edge, photography is lit red, a louvered wall of
   images cuts between nights, and every section is annotated like a technical drawing.
   Shared machinery lives in the markup. This file is the voice. */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;background:var(--ink);color:var(--paper);
  font-family:var(--sans);font-size:1rem;line-height:1.5;font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body.menu-open{overflow:hidden}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;font-weight:800;line-height:1}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
figure{margin:0}
button{font:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:#000;padding:.5rem 1rem;z-index:100}
.skip:focus{left:1rem}
.hp{position:absolute;left:-9999px}

:root{
  --gutter:clamp(1rem,3vw,2.5rem);
  --max:1600px;
  --sans:"Archivo",system-ui,sans-serif;
  --serif:"Instrument Serif",Georgia,serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.16,1,.3,1);
  --linec:rgba(242,238,232,.11);
  --line:1px solid var(--linec);
  --dim:rgba(242,238,232,.62);
  --py:0px;
}

/* Film grain and the drafting grid. The grid is four columns on desktop, two on phones. */
.grain-def{position:absolute;width:0;height:0}
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:9999;opacity:.075;filter:url(#grain);mix-blend-mode:screen}
.gridlines{position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(90deg,var(--linec) 1px,transparent 1px);background-size:25% 100%;background-position:-1px 0}
main,.site-footer{position:relative;z-index:1}
@media (max-width:820px){.gridlines{background-size:50% 100%}}
@media (prefers-reduced-motion:reduce){.grain{display:none}}

/* Type. Archivo carries the weight, Instrument Serif italic is the one soft word, JetBrains Mono annotates. */
.mono{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:400;color:var(--dim)}
.mono b{color:var(--paper);font-weight:500}
.mono.acc{color:var(--accent)}
.display{font-family:var(--sans);text-transform:uppercase;font-weight:800;letter-spacing:-.03em;line-height:.92;font-variation-settings:"wdth" 104;font-size:clamp(2.4rem,5.4vw,5.6rem)}
.display.sm{font-size:clamp(1.9rem,3.6vw,3.6rem)}
.display .acc,.acc{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:-.01em;color:var(--accent);font-size:1.08em;line-height:.8}
.mono.acc{font-family:var(--mono);font-style:normal;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;line-height:inherit;color:var(--accent)}
.mark{font-family:var(--sans);text-transform:uppercase;font-weight:900;letter-spacing:-.04em;line-height:.8;font-variation-settings:"wdth" 118;display:grid;grid-template-columns:minmax(0,1fr);min-width:0;max-width:100%}
.mark-line{display:block;white-space:nowrap;width:max-content;justify-self:start;font-size:100px;line-height:.82}
.lede{font-size:clamp(1.05rem,1.4vw,1.3rem);line-height:1.4;font-weight:500;color:rgba(242,238,232,.86);max-width:44ch}
.copy{color:var(--dim);font-size:.98rem;max-width:52ch}
.serif{font-family:var(--serif);font-style:italic;font-weight:400}

/* Section annotation row: number left, name center, meta right. Every section opens with one. */
section{padding:clamp(3.5rem,8vw,7rem) var(--gutter)}
.wrap{max-width:var(--max);margin:0 auto}
.sec-row{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;padding:.85rem 0;border-top:var(--line);margin-bottom:clamp(2rem,5vw,4rem)}
.sec-row .mono:first-child{text-align:left}
.sec-row .mono:last-child{text-align:right}
.sec-row .mono:nth-child(2){color:var(--paper)}

/* Pills. The only button shape on the site. */
.pill{display:inline-flex;align-items:center;gap:.65rem;font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;line-height:1;padding:.85rem 1.25rem;border-radius:999px;border:1px solid rgba(242,238,232,.28);color:var(--paper);background:transparent;cursor:pointer;white-space:nowrap;transition:background .3s,color .3s,border-color .3s,transform .4s var(--ease)}
.pill:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.pill.solid{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.pill.solid:hover{background:var(--accent);border-color:var(--accent);color:#000}
.pill.fire{background:var(--accent);border-color:var(--accent);color:#000}
.pill.fire:hover{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.pill .arr{font-family:var(--sans);font-size:.9rem;line-height:0}
.dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(255,61,0,.6);animation:pulse 2.2s ease-out infinite}
@keyframes pulse{to{box-shadow:0 0 0 .6rem rgba(255,61,0,0)}}
a.inline{border-bottom:1px solid var(--accent)}

/* Motion primitives */
.reveal{opacity:0;transform:translateY(1.1rem);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--d,0) * 80ms)}
.reveal.in{opacity:1;transform:none}
.reveal-img{overflow:hidden}
.reveal-img img{transform:scale(1.08);clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease),transform 1.6s var(--ease);transition-delay:calc(var(--d,0) * 80ms)}
.reveal-img.in img{clip-path:inset(0);transform:scale(1)}
[data-parallax]{transform:translate3d(0,var(--py),0);will-change:transform}
.rise{opacity:0;transform:translateY(.6rem);animation:rise .9s var(--ease) forwards;animation-delay:calc(var(--i,0) * 110ms + .2s)}
@keyframes rise{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-img img,.rise{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important;animation:none!important}
  [data-parallax]{transform:none!important}
  .dot{animation:none}
}

/* Photography. Default "fire": the room is lit red. Mono and color are editor options. */
.graded{position:relative;overflow:hidden;background:#000}
.graded img,.graded video{width:100%;height:100%;object-fit:cover}
.graded::after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none}
.photos-fire .graded img,.photos-fire .graded video{filter:grayscale(.6) contrast(1.25) brightness(.7)}
.photos-fire .graded::after{background:linear-gradient(160deg,#FF3D00 0%,#9A1800 50%,#2A0400 100%);mix-blend-mode:color;opacity:.8}
.photos-fire .graded:not(.hero-media)::before{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(180deg,rgba(140,25,0,.3),rgba(25,3,0,.55));mix-blend-mode:multiply}
.photos-mono .graded img,.photos-mono .graded video{filter:grayscale(1) contrast(1.2) brightness(.8)}
.photos-color .graded img,.photos-color .graded video{filter:contrast(1.12) saturate(1.05) brightness(.82)}

/* Header: brand left, pill nav center, live status right. Hides on scroll down. */
.site-header{position:fixed;inset:0 0 auto 0;z-index:60;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:.9rem var(--gutter);transition:transform .5s var(--ease)}
.site-header.hide{transform:translateY(-100%)}
.brand{display:grid;gap:.15rem;justify-self:start}
.brand .mono{color:var(--accent)}
.brand b{font-family:var(--sans);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:1rem;line-height:1}
.pillnav{display:flex;gap:.1rem;padding:.3rem;border-radius:999px;border:var(--line);background:rgba(8,8,8,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.pillnav a{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:.6rem .95rem;border-radius:999px;color:var(--dim);transition:background .25s,color .25s}
.pillnav a:hover{color:var(--paper);background:rgba(242,238,232,.08)}
.pillnav a[aria-current]{background:var(--paper);color:var(--ink)}
.head-right{display:flex;align-items:center;gap:.6rem;justify-self:end}
.status{gap:.6rem;padding:.7rem 1rem;border-color:var(--linec);background:rgba(8,8,8,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.menu-toggle{width:2.75rem;height:2.75rem;display:none;place-content:center;gap:.4rem;background:rgba(8,8,8,.55);border:var(--line);border-radius:50%;cursor:pointer;padding:0}
.menu-toggle span{display:block;width:1.1rem;height:1.5px;background:var(--paper);transition:transform .4s var(--ease)}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(.28rem) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-.28rem) rotate(-45deg)}
@media (max-width:1000px){.pillnav{display:none}.menu-toggle{display:grid}.site-header{grid-template-columns:1fr auto}}
@media (max-width:640px){.status{display:none}}

/* Takeover menu */
.menu{position:fixed;inset:0;z-index:50;background:var(--ink);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);padding:6.5rem var(--gutter) 2.5rem;gap:2rem;opacity:0;transition:opacity .35s}
.menu.open{opacity:1}
.menu-nav a{display:block;font-family:var(--sans);text-transform:uppercase;font-weight:900;font-variation-settings:"wdth" 110;font-size:clamp(2.75rem,9vw,8rem);line-height:.9;letter-spacing:-.03em;transform:translateY(40px);opacity:0;transition:transform .8s var(--ease),opacity .8s var(--ease),color .2s;transition-delay:calc(var(--i) * 60ms + 80ms)}
.menu.open .menu-nav a{transform:none;opacity:1}
.menu-nav a:hover,.menu-nav a[aria-current]{color:var(--accent)}
.menu-side{align-self:end;display:grid;gap:1.1rem}
.menu-side p{display:grid;gap:.2rem;font-size:.95rem}
.menu-socials{display:flex;gap:.5rem;flex-wrap:wrap}
@media (max-width:820px){.menu{grid-template-columns:1fr;padding-top:6rem}.menu-side{display:none}}

/* Hero: the name fills the screen. Video lit red behind it, one sentence top-left, three facts along the bottom. */
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:1.5rem;padding:5.75rem var(--gutter) 1.25rem;isolation:isolate;overflow:hidden}
.hero-media{position:absolute;inset:0;z-index:-1}
.hero-media img,.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.hero-media iframe{position:absolute;top:50%;left:50%;width:max(100%,177.78vh);height:max(100%,56.25vw);transform:translate(-50%,-50%);border:0;pointer-events:none;opacity:.5}
.hero-media::before{content:"";position:absolute;inset:0;z-index:5;background:linear-gradient(to bottom,rgba(8,8,8,.55) 0%,rgba(8,8,8,.25) 40%,rgba(8,8,8,.7) 80%,var(--ink) 100%)}
.hero-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:start}
.hero-sub{font-size:clamp(.95rem,1.15vw,1.1rem);line-height:1.4;font-weight:500;color:rgba(242,238,232,.9);max-width:38ch}
.hero-mark{align-self:center;width:100%;min-width:0;color:var(--paper)}
.hero-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;border-top:var(--line);padding-top:1rem}
.hcell{display:grid;gap:.35rem;align-content:start}
.hcell .mono{display:flex;align-items:center;gap:.5rem}
.hcell .mono svg{width:.8rem;height:.8rem;fill:none;stroke:var(--accent);stroke-width:1.6}
.hval{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:-.01em;font-size:1rem;line-height:1.15}
.hval span{display:block;font-weight:400;text-transform:none;letter-spacing:0;color:var(--dim);font-size:.85rem;margin-top:.15rem}
.hcell:nth-child(2){text-align:center;justify-items:center}
.hcell:nth-child(3){text-align:right;justify-items:end}
.hcell a.hval:hover{color:var(--accent)}
@media (max-width:820px){
  .hero{padding-top:5rem;gap:1rem}
  .hero-top{grid-template-columns:1fr}
  .hero-top .mono{display:none}
  .hero-row{grid-template-columns:1fr;gap:1rem}
  .hcell:nth-child(2),.hcell:nth-child(3){text-align:left;justify-items:start}
}

/* The wall: a louvered block of photographs that cuts between nights. The signature of this template. */
.wall{padding-top:0;padding-bottom:0}
.slicer{position:relative;height:min(82vh,920px);display:flex;overflow:hidden;background:#000}
.slice{flex:1 1 0;position:relative;overflow:hidden;min-width:0}
.slice img{position:absolute;top:0;left:0;height:100%;width:calc(var(--n) * 100%);max-width:none;object-fit:cover;transform:translateX(calc(-100% * var(--i) / var(--n)));clip-path:inset(0 0 100% 0);transition:clip-path 1s var(--ease);transition-delay:calc(var(--i) * 55ms);z-index:1}
.slice img.on{clip-path:inset(0);z-index:2}
.slice::after{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--ink);z-index:3}
.slice:first-child::after{display:none}
.wall-tag,.wall-cap{position:absolute;z-index:6;display:grid;gap:.3rem}
.wall-tag{left:1.25rem;bottom:1.25rem}
.wall-cap{right:1.25rem;bottom:1.25rem;text-align:right;justify-items:end}
.wall-cap .mono b{font-family:var(--mono)}
.wall-ctr{font-family:var(--mono);font-size:clamp(1.2rem,2vw,1.6rem);color:var(--paper);letter-spacing:-.02em}
@media (max-width:820px){.slicer{height:70vh}}

/* The assignment: one sentence, lit word by word as the reader scrolls */
.words{font-family:var(--sans);font-weight:800;text-transform:uppercase;font-variation-settings:"wdth" 104;font-size:clamp(1.9rem,5vw,5.2rem);line-height:.96;letter-spacing:-.03em;max-width:24ch}
.words .w{color:rgba(242,238,232,.14);transition:color .4s}
.words .w.lit{color:var(--paper)}
.assign-foot{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;margin-top:clamp(2rem,5vw,4rem)}

/* Dates: a list, not a card deck. Index, range, city, detail, register. */
.dates-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2rem;align-items:end;margin-bottom:2.5rem}
.dates-head .copy{justify-self:end}
.dl{border-top:var(--line)}
.drow{display:grid;grid-template-columns:3rem minmax(0,.9fr) minmax(0,1.5fr) minmax(0,1.4fr) auto;gap:1.5rem;align-items:center;padding:1.4rem 0;border-bottom:var(--line);transition:background .3s}
.drow:hover{background:rgba(242,238,232,.025)}
.d-range{display:grid;gap:.25rem}
.d-range b{font-family:var(--sans);font-weight:700;text-transform:uppercase;font-size:1.15rem;letter-spacing:-.01em}
.d-city{font-family:var(--sans);font-weight:800;text-transform:uppercase;font-size:clamp(1.5rem,2.8vw,2.5rem);letter-spacing:-.03em;line-height:.95;transition:color .3s}
.drow:hover .d-city{color:var(--accent)}
.d-body{display:grid;gap:.3rem}
.d-title{font-weight:600;font-size:1rem}
.d-acts{display:flex;gap:.5rem;justify-self:end}
.empty{color:var(--dim);font-family:var(--serif);font-style:italic;font-size:1.3rem}
.dates-more{margin-top:1.75rem}
@media (max-width:900px){
  .dates-head{grid-template-columns:1fr}.dates-head .copy{justify-self:start}
  .drow{grid-template-columns:3rem minmax(0,1fr);gap:.4rem 1rem}
  .d-city{grid-column:2}.d-body{grid-column:2}.d-acts{grid-column:2;justify-self:start;margin-top:.5rem}
}

/* The verse: the one soft voice on the page */
.verse{text-align:center;position:relative}
.verse::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 55% 50% at 50% 60%,rgba(255,61,0,.16),transparent 70%)}
.verse-text{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(2.3rem,6.4vw,6.4rem);line-height:1;letter-spacing:-.02em;max-width:18ch;margin:0 auto}
.verse-text .lit{color:var(--accent)}
.verse-ref{margin-top:1.75rem;justify-content:center}

/* What he does: four cells on the grid, each with a photo chip */
.areas-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:var(--line);border-left:var(--line)}
.area{display:grid;gap:1rem;align-content:start;padding:1.5rem 1.5rem 2rem;border-right:var(--line);border-bottom:var(--line)}
.area-thumb{aspect-ratio:3/2}
.area-word{font-family:var(--sans);text-transform:uppercase;font-weight:800;font-size:clamp(1.4rem,2.2vw,2rem);letter-spacing:-.03em;line-height:.95}
.area .copy{font-size:.92rem}
@media (max-width:1000px){.areas-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.areas-grid{grid-template-columns:1fr}}

/* Watch: one wide frame, the title in the corner, a round play button */
.watch-frame{position:relative;display:block;aspect-ratio:21/9}
.watch-text{position:absolute;left:1.5rem;right:1.5rem;bottom:1.5rem;z-index:6;display:grid;gap:.6rem;pointer-events:none}
.watch-text .display{text-shadow:0 2px 30px rgba(0,0,0,.5)}
.watch-top{position:absolute;left:1.5rem;top:1.5rem;z-index:6}
.playpill{position:absolute;inset:0;margin:auto;width:clamp(6rem,10vw,8.5rem);height:clamp(6rem,10vw,8.5rem);border-radius:50%;background:var(--paper);color:var(--ink);display:grid;place-content:center;font-family:var(--mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;z-index:6;transition:transform .5s var(--ease),background .3s}
.watch-frame:hover .playpill{transform:scale(1.07);background:var(--accent)}
@media (max-width:820px){.watch-frame{aspect-ratio:4/5}}

/* About: a portrait and a paragraph */
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(2rem,5vw,6rem);align-items:center}
.about-photo{aspect-ratio:4/5}
.about-text{display:grid;gap:1.5rem;justify-items:start}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;border-top:var(--line)}
.facts li{display:grid;gap:.35rem;padding:1.1rem 1rem 0 0}
.facts li+li{padding-left:1rem;border-left:var(--line)}
.facts b{font-family:var(--sans);font-weight:900;font-size:clamp(2.2rem,4.5vw,4rem);letter-spacing:-.04em;line-height:.9}
.pull{margin:0;padding:clamp(3rem,7vw,6rem) var(--gutter);text-align:center}
.pull p{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,3.6vw,3.2rem);line-height:1.1;letter-spacing:-.015em;max-width:26ch;margin:0 auto}
.pull cite{display:block;margin-top:1.25rem;font-style:normal}
@media (max-width:820px){.about-grid{grid-template-columns:1fr}}

/* Where the fire has fallen: a cell for every city */
.fw{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--linec);border:var(--line)}
.fw-cell{background:var(--ink);padding:1.5rem 1.1rem 1.25rem;display:grid;gap:1.5rem;align-content:space-between;min-height:8.5rem;transition:background .3s}
.fw-cell:hover{background:rgba(255,61,0,.14)}
.fw-cell b{font-family:var(--sans);font-weight:800;text-transform:uppercase;font-size:clamp(1.05rem,1.4vw,1.35rem);letter-spacing:-.02em;line-height:1}
@media (max-width:1000px){.fw{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.fw{grid-template-columns:repeat(2,1fr)}}

/* Stories from the altar */
.story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:var(--line)}
.story{display:grid;gap:1.5rem;align-content:space-between;padding:1.75rem 1.5rem 1.75rem 0;border-right:var(--line)}
.story+.story{padding-left:1.5rem}
.story:last-child{border-right:0;padding-right:0}
.story-quote{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,1.9vw,1.75rem);line-height:1.15;letter-spacing:-.01em}
.story-quote::before{content:"\201C";color:var(--accent)}
@media (max-width:820px){.story-grid{grid-template-columns:1fr}.story{border-right:0;border-bottom:var(--line);padding:1.5rem 0}.story+.story{padding-left:0}}

/* Books: covers on a shelf */
.shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,4vw,4rem);perspective:1600px}
.book a{display:grid;gap:.6rem;justify-items:start}
.book3d{position:relative;display:block;width:min(100%,15rem);aspect-ratio:2/3;transform:rotateY(-22deg);transform-style:preserve-3d;transition:transform .7s var(--ease);box-shadow:30px 30px 60px rgba(0,0,0,.6);margin-bottom:1rem}
.book3d img{width:100%;height:100%;object-fit:cover;backface-visibility:hidden}
.book-spine{position:absolute;top:0;bottom:0;left:0;width:2.2rem;background:var(--spine);transform:rotateY(-90deg) translateX(-1.1rem);transform-origin:left;filter:brightness(.7)}
.book a:hover .book3d{transform:rotateY(-6deg) translateY(-6px)}
.book-title{font-family:var(--sans);text-transform:uppercase;font-weight:800;font-size:1.4rem;letter-spacing:-.02em;line-height:.95}
@media (max-width:820px){.shelf{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.shelf{grid-template-columns:1fr}}

/* Invite: paper room, the form is the point */
.invite-block{background:var(--paper);color:var(--ink)}
.invite-block .sec-row{border-top-color:rgba(8,8,8,.15)}
.invite-block .sec-row .mono,.invite-block .mono{color:rgba(8,8,8,.6)}
.invite-block .sec-row .mono:nth-child(2){color:var(--ink)}
.invite-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(2rem,6vw,6rem)}
.invite-info{display:grid;gap:1.25rem;align-content:start}
.invite-info .copy{color:rgba(8,8,8,.72)}
.invite-note{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:rgba(8,8,8,.6)}
@media (max-width:820px){.invite-grid{grid-template-columns:1fr}}

/* Forms */
form label{display:block;margin-bottom:1.1rem;font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}
form input:not([type=checkbox]),form select,form textarea{
  display:block;width:100%;margin-top:.4rem;padding:.7rem 0;font:inherit;font-family:var(--sans);font-size:1.05rem;font-weight:500;text-transform:none;letter-spacing:0;
  background:transparent;color:inherit;border:0;border-bottom:1px solid rgba(127,127,127,.55);border-radius:0;
}
form input::placeholder,form textarea::placeholder{color:rgba(127,127,127,.7)}
form input:focus,form select:focus,form textarea:focus{outline:none;border-bottom-color:var(--accent)}
form select{appearance:none;-webkit-appearance:none}
form select option{color:var(--ink)}
form .check{display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:start;font-family:var(--sans);font-size:.85rem;line-height:1.4;margin:.75rem 0 1.25rem;text-transform:none;letter-spacing:0}
form .check input{margin:.2rem 0 0;width:1rem;height:1rem;accent-color:var(--accent)}
form button[type=submit]{display:flex;justify-content:center;width:100%;margin-top:1rem;padding:1.1rem 1.5rem;background:var(--ink);color:var(--paper);border:0;cursor:pointer}
form button[type=submit]:hover{background:var(--accent);color:#000}
.form-error{margin-top:.75rem;font-size:.9rem;color:#B5473A}

/* Partner: full-bleed lit photograph, the ask at the bottom */
.partner{position:relative;min-height:88svh;display:grid;align-content:stretch;isolation:isolate;overflow:hidden;padding-bottom:clamp(2rem,5vw,4rem)}
.partner-bg{position:absolute;inset:-8% 0;z-index:-1}
.partner::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(8,8,8,.95) 0%,rgba(8,8,8,.5) 50%,rgba(8,8,8,.3) 100%)}
.partner .wrap{display:grid;grid-template-rows:auto 1fr;width:100%}
.partner-inner{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2rem;align-items:end;align-self:end}
.partner-side{display:grid;gap:1.25rem;justify-items:start}
@media (max-width:820px){.partner-inner{grid-template-columns:1fr}}

/* Closing: the line across the screen */
.closing{display:grid;gap:2rem;border-top:var(--line);text-align:center;justify-items:center}
.closing .mark{width:100%}
.closing-mission{font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,2.2vw,1.9rem);max-width:36ch;color:rgba(242,238,232,.85)}

/* Fixed chip, bottom right, after the hero */
.chip{position:fixed;right:1rem;bottom:1rem;z-index:55;display:inline-flex;align-items:center;gap:.6rem;background:var(--paper);color:var(--ink);font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:.85rem 1.1rem;border-radius:999px;transform:translateY(160%);transition:transform .6s var(--ease),background .3s}
.chip.show{transform:none}
.chip:hover{background:var(--accent)}
.chip-dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--accent)}
.chip:hover .chip-dot{background:#000}

/* Inner pages */
.page-head{padding-top:clamp(7.5rem,15vw,11rem);display:grid;gap:1.5rem}
.page-head .mark{width:100%}
.page-head .lede{max-width:56ch}
.page-acts{display:flex;gap:.6rem;flex-wrap:wrap}
.thanks .page-acts{margin-top:.5rem}
.how{padding-top:0}
.how-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:var(--line);border-left:var(--line)}
.how-steps li{display:grid;gap:.9rem;align-content:start;padding:1.5rem;border-right:var(--line);border-bottom:var(--line)}
.how-steps b{font-family:var(--sans);font-size:2rem;font-weight:900;letter-spacing:-.04em;line-height:1}
.how-steps span{color:var(--dim);font-size:.95rem}
.why-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:var(--line);border-left:var(--line)}
.why-grid li{display:grid;gap:.6rem;padding:1.75rem;border-right:var(--line);border-bottom:var(--line)}
.why-grid b{font-family:var(--sans);text-transform:uppercase;font-size:1.4rem;font-weight:800;letter-spacing:-.02em}
.why-grid span{color:var(--dim)}
.belief-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 4rem}
.belief-grid p{font-size:1.05rem;color:rgba(242,238,232,.85);padding-left:1.25rem;border-left:2px solid var(--accent)}
@media (max-width:820px){.how-steps,.why-grid,.belief-grid{grid-template-columns:1fr}}

/* Watch page */
.player{padding-top:0}
.player-frame{aspect-ratio:16/9;background:#000;position:relative;margin-bottom:1.5rem}
.player-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.player-poster{position:absolute;inset:0;display:block}
.player-meta{display:grid;gap:.6rem;justify-items:start}
.sermon-list{border-top:var(--line)}
.sermon-list li a{display:grid;grid-template-columns:4rem minmax(0,1.6fr) minmax(0,1fr) auto;gap:1.5rem;padding:1.2rem 0;border-bottom:var(--line);align-items:center}
.sermon-list li a:hover .sermon-title{color:var(--accent)}
.sermon-date{display:grid}
.sermon-date b{font-family:var(--sans);font-size:1.5rem;line-height:1;font-weight:800;letter-spacing:-.03em;color:var(--paper)}
.sermon-title{font-family:var(--sans);text-transform:uppercase;font-weight:800;font-size:1.3rem;letter-spacing:-.02em;line-height:1;transition:color .3s}
@media (max-width:820px){.sermon-list li a{grid-template-columns:3.5rem 1fr}.sermon-series{grid-column:2}.sermon-list .mono.arr{display:none}}

/* Footer: links on the grid, then the name outlined across the bottom */
.site-footer{padding:clamp(3rem,7vw,6rem) var(--gutter) 1.25rem;border-top:var(--line)}
.footer-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;max-width:var(--max);margin:0 auto 3rem}
.footer-cols .col{display:grid;gap:.4rem;align-content:start;justify-items:start}
.footer-cols .col a{font-size:.95rem;font-weight:500;color:var(--dim);transition:color .2s}
.footer-cols .col a:hover{color:var(--paper)}
.footer-cols .col .mono{margin-bottom:.5rem}
.footer-mark{color:transparent;-webkit-text-stroke:1px rgba(242,238,232,.3);width:100%;margin-bottom:1.5rem}
.footer-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;max-width:var(--max);margin:0 auto;padding-top:1rem;border-top:var(--line)}
.footer-base a{border-bottom:1px solid var(--linec)}
@media (max-width:820px){.footer-cols{grid-template-columns:repeat(2,1fr)}}
