/* Emberline Essentials: Anthem. Full-bleed dark cinematic bands on a pure white page, oversized condensed display type,
   an accent strip for the next service, a horizontal snap rail and a staircase of next steps. Fonts are served from this site. */
@font-face{font-family:"Big Shoulders Display";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/big-shoulders-display-latin-wght-normal.woff2) format("woff2")}
@font-face{font-family:"Onest";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/onest-latin-wght-normal.woff2) format("woff2")}
/* Metric-matched stand-ins so a late font does not move the layout. */
@font-face{font-family:"Anthem Display Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold");font-weight:100 900;size-adjust:66.5%;ascent-override:148%;descent-override:32%;line-gap-override:0%}
@font-face{font-family:"Anthem Sans Fallback";src:local("Arial"),local("Liberation Sans");font-weight:100 900;size-adjust:105.1%;ascent-override:92.3%;descent-override:29%;line-gap-override:0%}
:root{
  --display:"Big Shoulders Display","Anthem Display Fallback","Arial Narrow",Impact,sans-serif;
  --sans:"Onest","Anthem Sans Fallback",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gut:clamp(1.1rem,3.4vw,3.25rem);
  --maxw:1500px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --soft:.8;
  --soft-accent:.85;
  --surface:color-mix(in srgb,var(--on-field) 10%,var(--field));
  --hair:color-mix(in srgb,var(--ink) 18%,transparent);
  --hair-dark:color-mix(in srgb,var(--on-field) 20%,transparent);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:5rem}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55;overflow-x:clip;-webkit-font-smoothing:antialiased}
img,video,iframe{display:block;max-width:100%}
picture{display:contents}
img{height:auto}
a{color:inherit}
h1,h2,h3,h4,p,figure,ul,ol,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit;cursor:pointer}
.skip{position:absolute;left:-999px;top:0;background:var(--paper);color:var(--ink);padding:.8rem 1.1rem;z-index:200;font-weight:700}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--accent-text);outline-offset:3px}
.dark :focus-visible,.menu :focus-visible,.site-footer :focus-visible,.site-header:not(.solid) :focus-visible,.accent :focus-visible{outline-color:var(--accent)}
.accent :focus-visible{outline-color:var(--on-accent)}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{padding-inline:var(--gut);max-width:var(--maxw);margin-inline:auto}
.muted{color:var(--muted)}

/* Type: a tall condensed face in capitals for headlines, a clean grotesk for everything else */
.display,.display-s,.hero__title,.pagehead__title{font-family:var(--display);font-weight:850;text-transform:uppercase;letter-spacing:.003em;text-wrap:balance}
.display{font-size:clamp(3.3rem,8.8vw,8.4rem);line-height:.9}
.display-s{font-size:clamp(2.5rem,5.4vw,5rem);line-height:.92}
.display em,.display-s em{font-style:normal;color:var(--accent-text)}
.dark .display em,.dark .display-s em{color:var(--accent)}
.accent .display em,.accent .display-s em{font-style:normal;color:inherit;text-decoration:underline;text-decoration-thickness:.06em;text-underline-offset:.1em}
.eyebrow{display:flex;align-items:center;gap:.7rem;font-size:.74rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:1.1rem}
.eyebrow::before{content:"";width:1.8rem;height:3px;background:var(--accent-text);flex:none}
.dark .eyebrow{color:color-mix(in srgb,var(--on-field) 80%,transparent)}
.dark .eyebrow::before{background:var(--accent)}
.accent .eyebrow{color:var(--on-accent)}
.accent .eyebrow::before{background:var(--on-accent)}
.lede{font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.55;max-width:44ch;color:var(--muted)}
.dark .lede{color:color-mix(in srgb,var(--on-field) 80%,transparent)}
.accent .lede{color:var(--on-accent)}
.copy{max-width:56ch}
.more{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:.9rem;letter-spacing:.04em;text-decoration:none;color:var(--accent-text);border-bottom:2px solid currentColor;padding-bottom:.12rem;width:fit-content}
.more:hover{gap:.8rem}
.dark .more{color:var(--accent)}
.accent .more{color:var(--on-accent)}
.dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:currentColor;flex:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,currentColor 55%,transparent)}100%{box-shadow:0 0 0 .7rem transparent}}
.dot{animation:pulse 2s ease-out infinite}

/* Buttons: square, capitals, no pill */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;background:var(--ink);color:var(--paper);border:0;border-radius:0;padding:1rem 1.6rem;font-family:var(--sans);font-weight:800;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;line-height:1.1;transition:transform .3s var(--ease),background .25s,color .25s,box-shadow .25s}
.btn:hover{transform:translateY(-2px);background:var(--accent-text);color:var(--paper)}
.btn.small{padding:.7rem 1.1rem;font-size:.72rem}
.btn.big{padding:1.2rem 2rem;font-size:.85rem}
.btn.accent{background:var(--accent);color:var(--on-accent)}
.btn.accent:hover{background:var(--on-field);color:var(--field)}
.btn.accent-ink{background:var(--ink);color:var(--paper)}
.btn.ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 2px currentColor}
.btn.ghost:hover{background:var(--on-field);color:var(--field);box-shadow:inset 0 0 0 2px var(--on-field)}
.btn.dark{background:var(--ink);color:var(--paper)}
.btn.dark:hover{background:var(--paper);color:var(--ink)}
.dark .btn:not(.accent):not(.ghost){background:var(--on-field);color:var(--field)}
.dark .btn:not(.accent):not(.ghost):hover{background:var(--accent);color:var(--on-accent)}
.acts{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}

/* Header: clear over the dark band at the top of every page, solid white once the page moves */
.site-header{position:fixed;inset:0 0 auto 0;z-index:60;color:var(--on-field);transition:transform .45s var(--ease),background .3s,color .3s,box-shadow .3s}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem var(--gut);max-width:var(--maxw);margin-inline:auto}
.site-header.solid,.no-hero .site-header{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--hair)}
.brand{display:inline-flex;align-items:center;font-family:var(--display);font-weight:900;font-size:2rem;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;line-height:1}
.brand::before{content:"";width:.34em;height:.78em;background:var(--accent);margin-right:.38em;transform:skewX(-10deg)}
.site-header.solid .brand::before,.no-hero .site-header .brand::before{background:var(--accent-text)}
.topnav{display:flex;align-items:center;gap:clamp(.9rem,1.7vw,1.9rem);font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.topnav a:not(.btn){text-decoration:none;position:relative;padding:.4rem 0}
.topnav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.topnav a:not(.btn):hover::after,.topnav a[aria-current]::after{transform:scaleX(1)}
.site-header .btn{background:var(--accent);color:var(--on-accent)}
.site-header .btn:hover{background:var(--on-field);color:var(--field)}
.site-header.solid .btn,.no-hero .site-header .btn{background:var(--ink);color:var(--paper)}
.site-header.solid .btn:hover,.no-hero .site-header .btn:hover{background:var(--accent-text);color:var(--paper)}
.menu-toggle{display:none;align-items:center;gap:.7rem;border:0;background:transparent;padding:.6rem 0;font-weight:800;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase}
.menu-toggle .bars{display:grid;gap:5px;width:26px}
.menu-toggle .bars i{display:block;height:2px;background:currentColor;transition:transform .35s var(--ease)}
.menu-open .menu-toggle .bars i:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-open .menu-toggle .bars i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:55;background:var(--field);color:var(--on-field);padding:6rem var(--gut) 2rem;overflow-y:auto;opacity:0;transform:translateY(-10px);transition:opacity .35s,transform .45s var(--ease)}
.menu[hidden]{display:none}
.menu.open{opacity:1;transform:none}
.menu-in{max-width:var(--maxw);margin-inline:auto;display:grid;gap:2rem}
.menu-nav{display:grid;gap:.1rem}
.menu-nav a{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(3rem,13vw,5.6rem);line-height:.98;text-decoration:none;letter-spacing:.005em;width:fit-content}
.menu-nav a[aria-current]{color:var(--accent)}
.menu-side{font-size:.95rem;line-height:1.6;color:color-mix(in srgb,var(--on-field) 85%,transparent)}
.menu-side b{color:var(--on-field)}
.menu-open .site-header{background:transparent;color:var(--on-field);box-shadow:none}
.menu-open .site-header .brand::before{background:var(--accent)}
.menu-open .site-header .btn{background:var(--accent);color:var(--on-accent)}
@media (max-width:1199px){.topnav{display:none}.menu-toggle{display:inline-flex}}
.no-hero main{padding-top:4.2rem}

/* Hero */
.hero{position:relative;min-height:max(100svh,41rem);display:flex;flex-direction:column;overflow:clip;background:var(--field);color:var(--on-field)}
.hero__media{position:absolute;inset:0;overflow:hidden}
.hero__img{position:absolute;left:0;top:-5%;width:100%;height:110%;object-fit:cover;transform:translate3d(0,calc(var(--sy,0) * .2px),0) scale(1.03);animation:heroin 2.2s var(--ease) both}
@keyframes heroin{from{opacity:0;scale:1.08}to{opacity:1;scale:1}}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s}
.hero__video.on{opacity:1}
.hero__shade{position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--field) 72%,transparent) 0,color-mix(in srgb,var(--field) 30%,transparent) 26%,color-mix(in srgb,var(--field) 62%,transparent) 62%,var(--field) 100%)}
.hero__beams{position:absolute;inset:0;pointer-events:none}
.hero--nophoto .hero__beams,.pagehead__beams{background:
  radial-gradient(55% 75% at 82% 8%,color-mix(in srgb,var(--accent) 34%,transparent),transparent 62%),
  radial-gradient(45% 60% at 4% 100%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 70%),
  repeating-linear-gradient(104deg,transparent 0 9.4%,color-mix(in srgb,var(--on-field) 5%,transparent) 9.4% 9.9%)}
.hero--nophoto .hero__beams{transform:translate3d(0,calc(var(--sy,0) * .12px),0)}
.hero__body{position:relative;z-index:2;width:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding-top:7.5rem;padding-bottom:clamp(1.6rem,4vh,2.6rem);transform:translate3d(0,calc(var(--sy,0) * -.06px),0)}
.hero__kicker{font-size:.76rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:color-mix(in srgb,var(--on-field) 88%,transparent);margin-bottom:1.3rem;display:flex;align-items:center;gap:.8rem}
.hero__kicker::before{content:"";width:2.2rem;height:3px;background:var(--accent)}
.hero__title{font-weight:900;font-size:clamp(4.6rem,15.4vw,15rem);line-height:.84;max-width:13ch}
.hero__row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.6rem 3rem;margin-top:clamp(1.6rem,3.4vh,2.6rem)}
.hero__sub{font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.45;max-width:34ch;color:color-mix(in srgb,var(--on-field) 92%,transparent)}
.hero__cta{display:flex;flex-wrap:wrap;gap:.8rem}
.wd{display:inline-block;overflow:hidden;vertical-align:top;padding:.07em .02em .05em;margin:-.07em -.02em -.05em}
.wi{display:inline-block;transform:translateY(112%);animation:wordup .95s var(--ease) forwards;animation-delay:calc(.15s + var(--i,0) * .075s)}
.wd.em .wi{color:var(--accent)}
@keyframes wordup{to{transform:none}}
.rise-in{animation:risein .9s var(--ease) both;animation-delay:calc(var(--i,0) * .1s + .1s)}
@keyframes risein{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.hero__pause{position:absolute;right:var(--gut);top:6rem;z-index:4;display:inline-flex;align-items:center;gap:.6rem;background:color-mix(in srgb,var(--field) 65%,transparent);color:var(--on-field);border:1.5px solid var(--hair-dark);padding:.5rem .9rem;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.hero__pause[hidden]{display:none}
.hero__pause-ic{width:.7rem;height:.8rem;border-left:3px solid currentColor;border-right:3px solid currentColor}
.hero__pause[data-paused="true"] .hero__pause-ic{border:0;border-left:.75rem solid currentColor;border-top:.45rem solid transparent;border-bottom:.45rem solid transparent;width:0;height:0}

/* Next-service strip */
.nextbar{position:relative;z-index:3;background:var(--accent);color:var(--on-accent)}
.nextbar__in{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:.4rem 2.4rem;padding-block:.9rem}
.nextbar__label{display:flex;align-items:center;gap:.6rem;font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.nextbar__when{font-size:.98rem;line-height:1.2}
.nextbar__when b{font-family:var(--display);font-weight:800;font-size:1.7rem;text-transform:uppercase;letter-spacing:.02em;margin-right:.6rem;vertical-align:-.06em}
.nextbar__in-t{font-weight:600;opacity:var(--soft-accent)}
.cd{display:inline-flex;gap:1rem;vertical-align:-.1em;margin-left:.4rem}
.cd[hidden]{display:none}
.cd__s{display:inline-flex;align-items:baseline;gap:.2rem}
.cd__s b{font-family:var(--display);font-weight:850;font-size:1.7rem;line-height:1;min-width:1.25ch;text-align:right;font-variant-numeric:tabular-nums}
.cd__s i{font-style:normal;font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.nextbar[data-state="now"] .cd{display:none}
.nextbar__where{font-size:.9rem;opacity:var(--soft-accent)}
.nextbar__link{font-weight:800;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:.1rem;white-space:nowrap;justify-self:end}
.nextbar[data-state="now"] .nextbar__in-t{display:none}
@media (max-width:560px){.nextbar__when b{display:block;margin:0}}
@media (max-width:900px){.nextbar__in{grid-template-columns:1fr auto;row-gap:.35rem}.nextbar__where{display:none}.nextbar__label{grid-column:1/-1}.nextbar__when b{font-size:1.45rem}}

/* Sections */
.band{position:relative;padding-block:clamp(4.5rem,9vw,8.5rem)}
.dark{background:var(--field);color:var(--on-field)}
.tint{background:var(--tint)}
.accent{background:var(--accent);color:var(--on-accent)}
.sec-head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1.5rem 4rem;align-items:end;margin-bottom:clamp(2.2rem,5vw,4.4rem)}
.sec-head .lede{justify-self:end}
@media (max-width:860px){.sec-head{grid-template-columns:1fr}.sec-head .lede{justify-self:start}}

/* I'm new */
.paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(1.4rem,3vw,3rem)}
.path{padding:1.1rem 0 1rem;border-top:5px solid var(--ink);display:flex;flex-direction:column;gap:1rem}
.path__no{display:block;font-family:var(--display);font-weight:900;font-size:clamp(5.5rem,12vw,11rem);line-height:.78;color:var(--accent-text);letter-spacing:-.01em}
.path__pic{aspect-ratio:4/3;overflow:hidden;background:var(--tint)}
.path__pic img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.path:hover .path__pic img{transform:scale(1.05)}
.path h3{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:clamp(2rem,3.2vw,3rem);line-height:.95}
.path p{color:var(--muted);max-width:34ch}
@media (max-width:860px){.paths{grid-template-columns:1fr;gap:2.6rem}}

/* Message hub */
.hub{overflow:hidden}
.hub__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18}
.hub__in{position:relative}
.hub__grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(1.4rem,3vw,3rem);align-items:start}
.poster{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--surface);color:var(--on-field);text-decoration:none}
.poster img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.poster:hover img{transform:scale(1.04)}
.play{position:absolute;left:50%;top:50%;width:5.2rem;height:5.2rem;margin:-2.6rem 0 0 -2.6rem;border-radius:50%;background:var(--accent);transition:transform .3s var(--ease)}
.play::after{content:"";position:absolute;left:50%;top:50%;margin:-.8rem 0 0 -.55rem;border-left:1.4rem solid var(--on-accent);border-top:.85rem solid transparent;border-bottom:.85rem solid transparent}
.poster:hover .play{transform:scale(1.1)}
.poster__tag{position:absolute;left:0;bottom:0;background:var(--accent);color:var(--on-accent);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;padding:.6rem 1rem}
.hub__side{display:grid;gap:1.4rem;align-content:start}
.k{font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.hub__latest .k{color:color-mix(in srgb,var(--on-field) 80%,transparent)}
.hub__latest h3{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:clamp(2.3rem,4vw,3.8rem);line-height:.92;margin:.7rem 0 0}
.hub__series{background:var(--surface);border-left:5px solid var(--accent);padding:1.5rem 1.6rem;display:grid;gap:.5rem}
.hub__series .k{color:var(--accent)}
.hub__series p:not(.k){color:color-mix(in srgb,var(--on-field) 80%,transparent);font-size:.98rem}
.hub__series .hub__series-name{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:clamp(2.2rem,3.4vw,3rem);line-height:.95;color:var(--on-field)}
.hub__soon .hub__series-name{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:clamp(2.6rem,5vw,4.4rem);line-height:.95;color:var(--accent);margin-bottom:.6rem}
.hub__soon{display:grid;gap:1.2rem;max-width:44rem}
.hub__more{margin-top:2rem}
@media (max-width:900px){.hub__grid{grid-template-columns:1fr}}

/* Campuses */
.campus-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.4rem}
.campus-grid > .campus-wrap{grid-column:span 2}
.campus-grid > .campus-wrap:last-child:nth-child(3n+2),.campus-grid > .campus-wrap:nth-last-child(2):nth-child(3n+1){grid-column:span 3}
.campus-grid > .campus-wrap:last-child:nth-child(3n+1):not(:first-child){grid-column:span 6}
.campus-grid > .campus-wrap:last-child:nth-child(3n+1):not(:first-child) .campus{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.campus-grid > .campus-wrap:last-child:nth-child(3n+1):not(:first-child) .campus__pic{aspect-ratio:auto;min-height:16rem;height:100%}
.campus-grid > .campus-wrap:last-child:nth-child(3n+2) .campus__pic,.campus-grid > .campus-wrap:nth-last-child(2):nth-child(3n+1) .campus__pic{aspect-ratio:2/1}
.campus-grid.one{grid-template-columns:1fr}
.campus-grid.one > .campus-wrap{grid-column:auto}
.campus-wrap[hidden]{display:none}
.campus{display:flex;flex-direction:column;height:100%;background:var(--paper);border-top:5px solid var(--ink)}
.campus__pic{aspect-ratio:3/2;overflow:hidden;background:var(--field)}
.campus__pic img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.campus:hover .campus__pic img{transform:scale(1.05)}
.campus__pic--type{display:grid;place-items:center;background:radial-gradient(70% 90% at 80% 10%,color-mix(in srgb,var(--accent) 38%,transparent),transparent 65%),var(--field)}
.campus__pic--type b{font-family:var(--display);font-weight:900;font-size:clamp(5rem,9vw,8rem);line-height:1;color:var(--accent);letter-spacing:.02em}
.campus__body{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.campus__name{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:clamp(2.2rem,3.2vw,3rem);line-height:.92}
.campus__pastor{font-size:.9rem;color:var(--muted)}
.campus__addr{font-size:.98rem}
.campus__addr a{text-decoration:none;border-bottom:1.5px solid var(--hair)}
.campus__addr a:hover{border-color:var(--ink)}
.campus__times{display:flex;flex-wrap:wrap;gap:.4rem}
.campus__times li{border:1.5px solid var(--ink);padding:.28rem .65rem;font-size:.84rem;font-weight:700}
.campus__acts{display:flex;align-items:center;flex-wrap:wrap;gap:.8rem 1.2rem;margin-top:auto;padding-top:.9rem}
.campus.wide{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.campus.wide .campus__pic{aspect-ratio:auto;min-height:20rem;height:100%}
.campus.wide .campus__body{padding:clamp(1.6rem,3.4vw,3.2rem);justify-content:center}
.campus.wide .campus__name{font-size:clamp(3rem,6vw,5.5rem)}
.where .more-row,.finder__none{margin-top:2.2rem}
.finder{margin-bottom:2rem;display:grid;gap:.5rem;max-width:36rem}
.finder[hidden]{display:none}
.finder__label{font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.finder__q{font:inherit;font-size:1.25rem;background:var(--paper);color:var(--ink);border:2px solid var(--muted);border-radius:0;padding:.85rem 1rem;width:100%}
.finder__q:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}
.finder__none{color:var(--muted);font-weight:600}
@media (max-width:1000px){.campus-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.campus-grid > .campus-wrap,.campus-grid > .campus-wrap:last-child:nth-child(n),.campus-grid > .campus-wrap:nth-last-child(2):nth-child(n){grid-column:auto}.campus-grid > .campus-wrap:last-child:nth-child(odd):not(:first-child){grid-column:1/-1}.campus-grid > .campus-wrap:last-child:nth-child(3n+1):not(:first-child) .campus{display:flex}}
@media (max-width:700px){.campus-grid{grid-template-columns:1fr}.campus-grid > .campus-wrap:last-child:nth-child(odd):not(:first-child){grid-column:auto}.campus.wide{grid-template-columns:1fr}.campus.wide .campus__pic{min-height:0;aspect-ratio:3/2}}
.note{margin-top:2rem;max-width:60ch;color:var(--muted)}
.map{margin-top:2rem;aspect-ratio:21/9;background:var(--tint);border-top:5px solid var(--ink)}
.map iframe{width:100%;height:100%;border:0}
@media (max-width:700px){.map{aspect-ratio:4/3}}

/* Numbers */
.facts__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:2.2rem 3rem}
.dark .fact{border-top-color:var(--accent)}
.dark .fact__label{color:color-mix(in srgb,var(--on-field) 82%,transparent)}
.fact{border-top:5px solid var(--ink);padding-top:1rem;display:grid;gap:.6rem;align-content:start}
.fact__num{position:relative;display:inline-block;width:fit-content;font-family:var(--display);font-weight:900;font-size:clamp(4.2rem,7.6vw,7.4rem);line-height:.85;font-variant-numeric:tabular-nums;letter-spacing:.005em}
.fact__live{position:absolute;left:0;top:0;white-space:nowrap}
.fact__num.counting .fact__final{opacity:0}
.fact__label{font-size:1rem;font-weight:600;max-width:20ch;color:var(--muted)}

/* Ministries rail */
.rail-sec{overflow:hidden}
.rail-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:clamp(2rem,4vw,3.4rem)}
.rail-head .lede{margin-top:1.4rem}
.rail-ctl{display:flex;gap:.6rem;flex:none}
.rail-ctl[hidden]{display:none}
.rail-btn{width:3.4rem;height:3.4rem;border:2px solid var(--ink);background:transparent;color:var(--ink);font-size:1.3rem;display:grid;place-items:center;transition:background .25s,color .25s}
.rail-btn:hover:not(:disabled){background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.dark .rail-btn{border-color:var(--on-field);color:var(--on-field)}
.rail-btn:disabled{opacity:.4;cursor:default}
.rail{overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none;padding-block:.4rem;scroll-padding-inline:max(var(--gut),calc((100vw - var(--maxw)) / 2 + var(--gut)))}
.rail::-webkit-scrollbar{display:none}
.rail__track{display:flex;gap:1.1rem;width:max-content;padding-inline:max(var(--gut),calc((100vw - var(--maxw)) / 2 + var(--gut)))}
.mcard{flex:none;width:clamp(16.5rem,26vw,23rem);scroll-snap-align:start}
.mcard article{color:var(--on-field);position:relative;isolation:isolate;aspect-ratio:3/4.3;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:linear-gradient(165deg,color-mix(in srgb,var(--accent) 34%,var(--field)),var(--surface) 60%)}
.mcard__pic{position:absolute;inset:0;z-index:-1;overflow:hidden}
.mcard__pic img{position:absolute;left:-12%;top:0;width:124%;max-width:none;height:100%;object-fit:cover;transform:translate3d(calc(var(--px,0) * 1px),0,0);transition:filter .4s}
.mcard__pic b{position:absolute;right:-.06em;top:-.1em;font-family:var(--display);font-weight:900;font-size:15rem;line-height:1;color:color-mix(in srgb,var(--on-field) 9%,transparent)}
.mcard__pic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 8%,color-mix(in srgb,var(--field) 80%,transparent) 44%,var(--field) 78%)}
.mcard__body{position:relative;padding:1.4rem 1.4rem 1.5rem;display:grid;gap:.6rem}
.mcard__when{font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.mcard h3{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(2.6rem,3.6vw,3.4rem);line-height:.88}
.mcard p:not(.mcard__when){font-size:.93rem;line-height:1.45;color:color-mix(in srgb,var(--on-field) 85%,transparent)}
.mcard__link{width:fit-content;font-weight:800;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:.1rem}
.mcard__link::after{content:"";position:absolute;inset:0;z-index:2}
.mcard article:hover .mcard__pic img{filter:saturate(1.1) brightness(1.08)}
.mcard article:focus-within{outline:3px solid var(--accent);outline-offset:-3px}
.mcard__link:focus-visible{outline:0}
.rail:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}
.rail-foot{display:flex;align-items:center;gap:2rem;margin-top:1.8rem}
.rail-prog{flex:1;height:3px;background:var(--hair);overflow:hidden}
.dark .rail-prog{background:var(--hair-dark)}
.dark .rail-prog i{background:var(--accent)}
.rail-prog i{display:block;height:100%;background:var(--accent-text);width:100%;transform-origin:left;transform:scaleX(var(--p,.25))}

/* Next steps: a staircase */
.stairs{display:grid;grid-template-columns:repeat(var(--c,5),minmax(0,1fr));align-items:end;gap:0}
.stair{min-height:calc(19rem + var(--k,0) * 4.6rem);background:var(--tint);border-top:6px solid var(--accent-text);padding:1.3rem 1.3rem 1.6rem;display:flex;flex-direction:column;gap:.7rem}
.stair + .stair{border-left:1px solid var(--paper)}
.stair__no{font-family:var(--display);font-weight:900;font-size:clamp(5rem,8vw,8.4rem);line-height:.8;color:var(--accent-text);letter-spacing:-.01em;margin-bottom:.2rem}
.stair h3{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(2.2rem,3.2vw,3.2rem);line-height:.9}
.stair p{color:var(--muted);font-size:.96rem}
.stair .more{margin-top:auto}
.stair.top{background:var(--field);color:var(--on-field);border-top-color:var(--accent)}
.stair.top .stair__no,.stair.top .more{color:var(--accent)}
.stair.top p{color:color-mix(in srgb,var(--on-field) 80%,transparent)}
@media (max-width:900px){.stairs{grid-template-columns:1fr;gap:.5rem}.stair{min-height:0;margin-left:calc(var(--k,0) * 1.2rem);border-left:0 !important}}

/* Events: cards in a grid; on phones the home row is a sideways snap row */
.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18.5rem),1fr));gap:1.2rem}
.ev{display:flex;flex-direction:column;gap:1rem;background:var(--tint);border-top:6px solid var(--ink);padding:1.4rem 1.5rem 1.6rem}
.ev__when{display:flex;align-items:baseline;gap:.7rem;line-height:1}
.ev__when b{font-family:var(--display);font-weight:900;font-size:clamp(4.6rem,6vw,5.8rem);line-height:.8}
.ev__when span{font-size:.82rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text)}
.ev__when small{font-size:.8rem;color:var(--muted)}
.ev__main :is(h2,h3){font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:clamp(2rem,2.6vw,2.5rem);line-height:.94}
.ev__main p{color:var(--muted);margin-top:.6rem;font-size:.96rem}
.ev__where{display:grid;gap:.15rem;font-size:.92rem;color:var(--muted);margin-top:auto;border-top:1px solid var(--hair);padding-top:.9rem}
.ev__where b{color:var(--ink)}
.ev-empty{padding:2rem 0;color:var(--muted)}
.ev-rail:focus-visible,.hub__rail:focus-visible{outline:3px solid var(--accent-text);outline-offset:4px}
.dark .hub__rail:focus-visible{outline-color:var(--accent)}

/* Giving band */
.giveband{overflow:hidden}
.giveband__disc{position:absolute;right:-16vw;top:-60%;width:58vw;aspect-ratio:1;border-radius:50%;background:color-mix(in srgb,var(--on-accent) 7%,transparent);pointer-events:none}
.giveband__in{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2rem 4rem;align-items:end}
.giveband .display{font-size:clamp(3.4rem,9.4vw,9rem)}
.giveband__fine{margin-top:1rem;font-size:.85rem;color:var(--on-accent)}
@media (max-width:860px){.giveband__in{grid-template-columns:1fr}}

/* Online campus */
.online{overflow:hidden;padding-block:clamp(5.5rem,11vw,10rem)}
.online__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.34}
.online--photo::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--field) 5%,color-mix(in srgb,var(--field) 55%,transparent) 70%,color-mix(in srgb,var(--field) 30%,transparent))}
.online__rings{position:absolute;right:-18vw;top:50%;width:76vw;max-width:70rem;aspect-ratio:1;transform:translateY(-50%);border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 3.8rem,color-mix(in srgb,var(--accent) 30%,transparent) 3.8rem calc(3.8rem + 2px));-webkit-mask-image:radial-gradient(circle,#000 20%,transparent 70%);mask-image:radial-gradient(circle,#000 20%,transparent 70%)}
.online__in{position:relative;z-index:2}
.online .display{max-width:12ch;font-size:clamp(3.6rem,10vw,9.4rem)}
.online__cols{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:2rem 4rem;align-items:end;margin-top:2.4rem}
.online__sched{margin-top:1.2rem;font-weight:700;color:var(--accent)}
.online .acts{margin:0;justify-content:flex-start}
@media (max-width:860px){.online__cols{grid-template-columns:1fr}}

/* Closing and form */
.closing-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,34rem);gap:3rem clamp(2rem,6vw,6rem);align-items:start}
.closing .lede{margin-top:1.6rem}
.facts-line{margin-top:2rem;display:grid;gap:.2rem;border-left:5px solid var(--accent-text);padding-left:1.1rem}
.facts-line b{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.9rem;line-height:1}
.facts-line span{color:var(--muted)}
@media (max-width:960px){.closing-grid{grid-template-columns:1fr}}
.visit-form{background:var(--paper);color:var(--ink);padding:clamp(1.4rem,2.8vw,2.4rem);display:grid;gap:1rem;border-top:6px solid var(--ink)}
.visit-form h3{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:2.6rem;line-height:.9}
.visit-form .sub{font-size:.95rem;color:var(--muted);margin-top:-.4rem}
.visit-form label{display:grid;gap:.35rem;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.visit-form input:not([type=radio]):not([type=checkbox]),.visit-form select,.visit-form textarea{font:inherit;font-size:1rem;letter-spacing:0;text-transform:none;font-weight:400;color:var(--ink);background:var(--paper);border:2px solid var(--muted);border-radius:0;padding:.7rem .8rem;width:100%}
.visit-form input:focus-visible,.visit-form select:focus-visible,.visit-form textarea:focus-visible{outline:3px solid var(--accent-text);outline-offset:1px}
.visit-form .two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.visit-form .consent{font-size:.82rem;line-height:1.45;color:var(--muted)}
.visit-form .btn{justify-self:start;margin-top:.4rem}
.form-error{color:var(--accent-text);font-size:.9rem;font-weight:600}
@media (max-width:520px){.visit-form .two{grid-template-columns:1fr}}

/* Inner pages */
.pagehead{position:relative;min-height:clamp(27rem,56vh,36rem);padding:9rem 0 clamp(2.4rem,5vw,4rem);display:flex;align-items:flex-end;overflow:hidden}
.pagehead__in{position:relative;z-index:2;width:100%}
.pagehead__title{font-weight:900;font-size:clamp(3.8rem,11vw,10.5rem);line-height:.85;max-width:15ch}
.pagehead .lede{margin-top:1.5rem}
.pagehead .acts{margin-top:1.8rem}
.service-big{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 3rem}
.service-big > div{border-top:5px solid var(--ink);padding-top:1rem;display:grid;gap:.4rem;align-content:start}
.service-big .k{color:var(--muted)}
.service-big b{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:clamp(2.4rem,4vw,3.6rem);line-height:.95}
.service-big a{margin-top:.4rem}
@media (max-width:860px){.service-big{grid-template-columns:1fr}}
.vc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.8rem}
.vc-list a{display:grid;gap:.3rem;padding:1.1rem 1.2rem;background:var(--paper);border-left:5px solid var(--accent-text);text-decoration:none;position:relative;transition:transform .3s var(--ease)}
.vc-list a:hover{transform:translateX(4px)}
.vc-name{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:2rem;line-height:.95}
.vc-times{font-size:.88rem;color:var(--muted)}
.vc-go{position:absolute;right:1rem;top:1rem;color:var(--accent-text)}
.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.tl{border-top:5px solid var(--ink);padding:1rem 1.6rem 1rem 0;display:grid;gap:.6rem;align-content:start}
.tl + .tl{padding-left:1.6rem;border-left:1px solid var(--hair)}
.tl__t{font-family:var(--display);font-weight:900;font-size:clamp(3.4rem,6vw,5.6rem);line-height:.85;color:var(--accent-text)}
.tl h3{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:2rem;line-height:.95}
.tl p{color:var(--muted)}
@media (max-width:960px){.timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 0}.tl:nth-child(3){padding-left:0;border-left:0}}
@media (max-width:560px){.timeline{grid-template-columns:1fr}.tl + .tl{padding-left:0;border-left:0}}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.photo-block{aspect-ratio:4/5;overflow:hidden;background:var(--tint)}
.photo-block img{width:100%;height:100%;object-fit:cover}
.photo-type{display:grid;place-items:center;width:100%;height:100%;background:radial-gradient(70% 90% at 80% 10%,color-mix(in srgb,var(--accent) 36%,transparent),transparent 65%),var(--field)}
.photo-type b{font-family:var(--display);font-weight:900;font-size:clamp(6rem,16vw,14rem);line-height:1;color:var(--accent)}
@media (max-width:860px){.two-col{grid-template-columns:1fr}.photo-block{aspect-ratio:4/3}}
.kids .display{margin-bottom:0}
.faq{display:grid;gap:0;max-width:60rem;border-top:5px solid var(--ink)}
.faq details{border-bottom:1px solid var(--hair);padding:1.2rem 0}
.faq summary{cursor:pointer;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-weight:400;font-size:2rem;line-height:.8;color:var(--accent-text)}
.faq details[open] summary::after{content:"\2212"}
.faq p{margin-top:.8rem;color:var(--muted);max-width:60ch}
.story__p{font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.5;max-width:36ch;margin-bottom:1.3rem}
.values{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2.4rem}
.values li{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(1.7rem,3vw,2.6rem);line-height:1;padding:.55rem 1.1rem;border:2px solid var(--on-field)}
.beliefs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.4rem 3rem}
.beliefs > div{border-top:5px solid var(--ink);padding-top:1rem;display:grid;gap:.5rem;align-content:start}
.beliefs__no{font-family:var(--display);font-weight:900;font-size:2.2rem;line-height:1;color:var(--accent-text)}
.beliefs h3{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:2.2rem;line-height:.95}
.beliefs p{color:var(--muted)}
@media (max-width:900px){.beliefs{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.beliefs{grid-template-columns:1fr}}
.team{background:var(--tint)}
.team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem 1.4rem}
.person{display:grid;gap:.5rem;align-content:start}
.person__pic{aspect-ratio:4/5;overflow:hidden;background:var(--field);margin-bottom:.6rem}
.person__pic img{width:100%;height:100%;object-fit:cover}
.person__pic--type{display:grid;place-items:center;background:radial-gradient(70% 90% at 80% 10%,color-mix(in srgb,var(--accent) 36%,transparent),transparent 65%),var(--field)}
.person__pic--type b{font-family:var(--display);font-weight:900;font-size:6rem;line-height:1;color:var(--accent)}
.person h3{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:2.2rem;line-height:.95}
.person .role{font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-text)}
.person p{color:var(--muted);font-size:.95rem}
.person .mail{margin-top:.2rem}
@media (max-width:1000px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.player{aspect-ratio:16/9;background:var(--field);border-top:6px solid var(--accent-text)}
.player iframe,.player .poster{width:100%;height:100%;border:0;aspect-ratio:auto}
.player-sec .display-s{max-width:20ch}
.msgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 1.4rem}
.msg a{display:grid;gap:.9rem;text-decoration:none}
.msg__pic{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--field)}
.msg__pic img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.msg a:hover .msg__pic img{transform:scale(1.05)}
.msg .play{width:3.6rem;height:3.6rem;margin:-1.8rem 0 0 -1.8rem}
.msg .play::after{margin:-.6rem 0 0 -.4rem;border-left-width:1rem;border-top-width:.6rem;border-bottom-width:.6rem}
.msg__body{display:grid;gap:.3rem}
.msg__date{font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}
.msg__title{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:1.9rem;line-height:.95}
.msg__meta{font-size:.9rem;color:var(--muted)}
@media (max-width:900px){.msgs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.msgs{grid-template-columns:1fr}}
.give-fine{margin-top:1.2rem;font-size:.9rem;color:var(--muted)}
.give-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.4rem 3rem}
.give-points > div{border-top:5px solid var(--ink);padding-top:1rem;display:grid;gap:.6rem;align-content:start}
.give-points__no{font-family:var(--display);font-weight:900;font-size:4.4rem;line-height:.85;color:var(--accent-text)}
.give-points h2{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:2.4rem;line-height:.95}
.give-points p{color:var(--muted)}
@media (max-width:860px){.give-points{grid-template-columns:1fr}}
.jump{padding-block:1.2rem;background:var(--paper);border-bottom:1px solid var(--hair)}
.jump ul{display:flex;gap:.5rem 1.6rem;flex-wrap:wrap}
.jump a{font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-bottom:2px solid transparent;padding:.3rem 0}
.jump a:hover{border-color:var(--accent-text);color:var(--accent-text)}
.mrow__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.mrow__in.flip .mrow__pic{order:2}
.mrow__pic{aspect-ratio:4/3;overflow:hidden;background:var(--field)}
.mrow__pic img{width:100%;height:100%;object-fit:cover}
.mrow__text{display:grid;gap:1.1rem;justify-items:start}
.mrow .lede{max-width:46ch}
@media (max-width:860px){.mrow__in{grid-template-columns:1fr}.mrow__in.flip .mrow__pic{order:0}}
.legal-body .prose{max-width:46rem}
.prose h2{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:2.2rem;line-height:1;margin:2.2rem 0 .6rem}
.prose p,.prose li{max-width:64ch;margin-bottom:.9rem}
.prose ul{list-style:disc;padding-left:1.3rem}
.prose a{color:var(--accent-text)}

/* Footer */
.site-footer{background:var(--ink);color:var(--paper);padding:clamp(3.5rem,7vw,6rem) 0 1.6rem;overflow:hidden}
.footer-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem}
.footer-cols .col{display:grid;gap:.5rem;align-content:start;font-size:.95rem}
.footer-cols .k{font-size:.72rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.3rem}
.footer-cols a{text-decoration:none;width:fit-content}
.footer-cols a:hover{text-decoration:underline}
.footer-mark{margin:clamp(2.5rem,7vh,5rem) 0 .8rem;font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.8;letter-spacing:.01em;color:color-mix(in srgb,var(--paper) 9%,var(--ink));overflow:hidden}
.footer-mark span{display:inline-block;white-space:nowrap}
.footer-mark span::before{content:attr(data-text)}
.footer-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem 2rem;font-size:.82rem;color:color-mix(in srgb,var(--paper) 60%,var(--ink));border-top:1px solid color-mix(in srgb,var(--paper) 18%,transparent);padding-top:1.1rem}
.footer-base a{text-decoration:none;border-bottom:1px solid currentColor}
.legal{display:flex;gap:1.4rem}
@media (max-width:860px){.footer-cols{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.footer-cols{grid-template-columns:1fr}}

/* Reveals: content fades up, photos open with a wipe. Everything is visible without script or with reduced motion. */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--d,0) * 90ms)}
.reveal.in{opacity:1;transform:none}
.reveal-img{clip-path:inset(0 0 100% 0);transition:clip-path 1.15s var(--ease);transition-delay:calc(var(--d,0) * 90ms)}
.reveal-img.in{clip-path:inset(0)}
html:not(.js) .reveal,html:not(.js) .reveal-img{opacity:1;transform:none;clip-path:none;transition:none}

/* Palette preview (demo only) */
.pal{position:fixed;right:10px;top:50%;transform:translateY(-50%);z-index:75;display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff;border-radius:999px;padding:8px 6px;box-shadow:0 0 0 1.5px #111,0 10px 30px rgba(10,20,30,.25)}
.pal__t{display:none}
.pal__b{position:relative;display:block;border:0;background:transparent;border-radius:50%;padding:3px;cursor:pointer}
.pal__b i{width:24px;height:24px;border-radius:50%;display:block;background:linear-gradient(135deg,var(--c) 0 55%,var(--k) 55% 100%);box-shadow:0 0 0 1.5px #111}
.pal__b span{position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);background:#111;color:#fff;border-radius:999px;padding:.3rem .7rem;font:600 .75rem var(--sans);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}
.pal__b:hover span,.pal__b:focus-visible span,.pal__b[aria-pressed="true"] span{opacity:1}
.pal__b[aria-pressed="true"]{box-shadow:0 0 0 2px #111}
.pal :focus-visible{outline:3px solid #2b6cff;outline-offset:2px}
.menu-open .pal{z-index:80}
@media (max-width:860px){.pal{right:4px;padding:6px 4px;gap:3px}.pal__b{padding:2px}.pal__b i{width:18px;height:18px}.pal__b[aria-pressed="true"] span{opacity:0}.pal__b:hover span,.pal__b:focus-visible span{opacity:1}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;transition-delay:0s !important}
  .wi{transform:none;animation:none}
  .reveal,.reveal-img{opacity:1;transform:none;clip-path:none}
  .hero__img,.hero__body,.hero__beams{transform:none}
  .dot{animation:none}
  .hero__img{animation:none}
  .rise-in{animation:none}
}

/* Light buttons: ghost on a white band */
.band:not(.dark):not(.accent) .btn.ghost:hover{background:var(--ink);color:var(--paper);box-shadow:inset 0 0 0 2px var(--ink)}

/* Live now: shown by script while a service is on and a live link is set */
.live-only{display:none}
html[data-live="now"] .live-only{display:block}

/* Watch hub: the rest of the messages as cards, a snap row on phones */
.hub__rail{margin-top:clamp(2rem,4vw,3.4rem)}
.hub__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1.2rem}
.hcard a{display:grid;gap:.9rem;text-decoration:none;align-content:start}
.hcard__pic{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--surface)}
.hcard__pic img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.hcard a:hover .hcard__pic img{transform:scale(1.05)}
.hcard .play{width:3.2rem;height:3.2rem;margin:-1.6rem 0 0 -1.6rem}
.hcard .play::after{margin:-.55rem 0 0 -.38rem;border-left-width:.95rem;border-top-width:.55rem;border-bottom-width:.55rem}
.hcard__body{display:grid;gap:.3rem}
.hcard__d{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.hcard__t{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:1.9rem;line-height:.95}
.hcard__s{font-size:.9rem;color:color-mix(in srgb,var(--on-field) 80%,transparent)}
.rail-foot--sm{display:none;margin-top:1.1rem}
.rail-foot[hidden]{display:none}

/* Phones: events and messages become sideways snap rows (grids again from 761px) */
@media (max-width:760px){
  .ev-rail.is-row,.hub__rail{overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scroll-padding-inline:var(--gut)}
  .ev-rail.is-row::-webkit-scrollbar,.hub__rail::-webkit-scrollbar{display:none}
  .ev-rail.is-row .ev-grid,.hub__row{display:flex;width:max-content;gap:1rem}
  .ev-rail.is-row .ev{width:min(78vw,19rem);scroll-snap-align:start}
  .hcard{width:min(76vw,17rem);scroll-snap-align:start}
  .rail-foot--sm{display:flex}
}

/* Students and young adults: full-bleed split panels */
.youth{padding-bottom:0;overflow:hidden}
.youth .sec-head{margin-bottom:clamp(2rem,4vw,3.4rem)}
.youth__panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.youth__panels[data-count="1"]{grid-template-columns:minmax(0,1fr)}
.youth__panels[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.ypanel{position:relative;isolation:isolate;min-height:clamp(30rem,68vh,46rem);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:radial-gradient(70% 80% at 85% 5%,color-mix(in srgb,var(--accent) 36%,transparent),transparent 65%),var(--surface)}
.ypanel + .ypanel{border-left:4px solid var(--accent)}
.ypanel__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.ypanel.has-photo::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,color-mix(in srgb,var(--field) 10%,transparent) 0,color-mix(in srgb,var(--field) 55%,transparent) 45%,var(--field) 100%)}
.ypanel:hover .ypanel__img{transform:scale(1.04)}
.ypanel__no{position:absolute;right:.04em;top:-.12em;z-index:-1;font-family:var(--display);font-weight:900;font-size:clamp(14rem,24vw,24rem);line-height:1;color:color-mix(in srgb,var(--on-field) 8%,transparent)}
.ypanel__body{padding:clamp(1.6rem,3.6vw,3.4rem);display:grid;gap:1rem;justify-items:start;max-width:40rem}
.ypanel__when{background:var(--accent);color:var(--on-accent);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;padding:.45rem .8rem}
.ypanel h3{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(4.2rem,8.4vw,8.6rem);line-height:.82}
.ypanel__body p:not(.ypanel__when){font-size:1.02rem;line-height:1.5;color:color-mix(in srgb,var(--on-field) 88%,transparent);max-width:38ch}
.ypanel .btn{margin-top:.4rem}
@media (max-width:900px){.youth__panels,.youth__panels[data-count="3"]{grid-template-columns:minmax(0,1fr)}.ypanel{min-height:30rem}.ypanel + .ypanel{border-left:0;border-top:4px solid var(--accent)}}

/* Heard on Sunday */
.heard__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.heard__grid[data-count="1"]{grid-template-columns:minmax(0,1fr)}
.heard__item{background:var(--paper);border-top:6px solid var(--accent-text);padding:clamp(1.5rem,3vw,2.8rem);display:flex}
.heard__grid[data-count="3"] .heard__item:first-child{grid-row:span 2}
.heard__item blockquote{margin:0;display:flex;flex-direction:column;gap:1.4rem;justify-content:space-between;width:100%}
.heard__item blockquote p{font-family:var(--display);font-weight:850;text-transform:uppercase;font-size:clamp(2rem,3vw,3rem);line-height:.98;text-wrap:balance}
.heard__item blockquote p::before{content:"\201C";display:block;font-size:2.4em;line-height:.6;height:.5em;color:var(--accent-text)}
.heard__item:first-child blockquote p{font-size:clamp(2.6rem,4.8vw,5rem);line-height:.94}
.heard__item footer{font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.heard__item cite{font-style:normal}
@media (max-width:860px){.heard__grid{grid-template-columns:minmax(0,1fr)}.heard__grid[data-count="3"] .heard__item:first-child{grid-row:auto}}

/* Pinned Plan your visit bar (phones and small tablets) */
.pinbar{display:none}
@media (max-width:899px){
  .pinbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:58;background:var(--ink);color:var(--paper);padding:.7rem var(--gut) calc(.7rem + env(safe-area-inset-bottom,0px));box-shadow:0 -1px 0 var(--hair-dark);transform:translateY(0);transition:transform .4s var(--ease),visibility 0s}
  .pinbar:not(.show),.menu-open .pinbar{transform:translateY(110%);visibility:hidden;transition:transform .4s var(--ease),visibility 0s .4s}
  .pinbar__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:var(--maxw);margin-inline:auto}
  .pinbar__t{display:grid;gap:.15rem;line-height:1;min-width:0}
  .pinbar__t span{font-size:.62rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--paper) 78%,transparent)}
  .pinbar__t b{font-family:var(--display);font-weight:850;font-size:1.5rem;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pinbar .btn{flex:none;padding:.95rem 1.2rem;font-size:.74rem}
  .pinbar :focus-visible{outline-color:var(--accent)}
  .site-footer{padding-bottom:calc(1.6rem + 5rem)}
}

.live-chip{display:none;align-items:center;gap:.6rem;font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
html[data-live="now"] .live-chip{display:inline-flex}
.hub .sec-head .hub__series{border-left:0;border-top:5px solid var(--accent);justify-self:end;width:100%;max-width:34rem}
.menu .btn{background:var(--accent);color:var(--on-accent)}
.menu .btn:hover{background:var(--on-field);color:var(--field)}
@media (max-width:860px){.pal{top:4.7rem;right:8px;transform:none;flex-direction:row;padding:5px 8px;gap:2px}.pal__b span{display:none}}
