/* Holy Ghost: one dark reel. Palette and type from the web kit v2. */
:root{
  --ink:#030303; --black:#000; --char:#0d0d0d; --soot:#161616; --line:#2b2b2b;
  --bone:#f4efe7; --ash:#a8988a; --dim:#6e5e51;
  --gold:#f2b705; --primary:#f8b000; --primary-hi:#ffc61f; --on-primary:#140d03; --amber:#ef8b1d; --ember:#d9481c; --blood:#7a170c; --halo:#ffd98a;
  --f-d:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --f-b:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --f-m:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --f-hn:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --f-h:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --gut:clamp(16px,4vw,56px);
  --topH:64px;
  --logo:url(../assets/brand/logo-yellow.webp);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--ink);-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--ink);color:var(--bone);font:16px/1.55 var(--f-b);overflow-x:clip;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
button,input{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
::selection{background:var(--primary);color:var(--ink)}
.wrap{max-width:1360px;margin-inline:auto;padding-inline:var(--gut)}
.dsp{font-family:var(--f-hn);font-weight:700;letter-spacing:-.045em;line-height:.86;text-transform:uppercase;margin:0}
.mono{font-family:var(--f-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.eyebrow{margin:0 0 18px;color:var(--primary);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor}
.lbl{color:var(--ash)}
.dim{color:var(--ash)}

/* film grain over everything */
.grain{transition:opacity .6s;position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:200;opacity:.2;mix-blend-mode:overlay;animation:grain .6s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}17%{transform:translate(-4%,3%)}33%{transform:translate(3%,-5%)}50%{transform:translate(-6%,-2%)}67%{transform:translate(5%,4%)}83%{transform:translate(-2%,6%)}100%{transform:translate(0,0)}}
body.clean .grain,body.nograin .grain{opacity:0}

/* subtle header glitch: two fringe copies behind the text, driven from JS (the HOLY lock, far less travel) */
.hx{position:relative;isolation:isolate}
.hx::before,.hx::after{content:attr(data-text);position:absolute;inset:0;pointer-events:none;z-index:-1;white-space:inherit;opacity:var(--ho,.55)}
.hx::before{color:var(--fx1,#d9541e);transform:translate(var(--hx1,-.012em),var(--hy,0em));clip-path:var(--hc1,none)}
.hx::after{color:var(--fx2,#f2c230);transform:translate(var(--hx2,.012em),calc(var(--hy,0em) * -1));clip-path:var(--hc2,none)}

/* ---------- buttons: squircle, never a sharp rectangle ---------- */
.btn{--r:16px;position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:.6em;height:2.4em;padding:0 1.6em;border:0;border-radius:var(--r);font:700 18px/1 var(--f-b);letter-spacing:-.005em;text-decoration:none;white-space:nowrap;transition:transform .5s var(--ease),background-color .3s,box-shadow .3s,color .3s;-webkit-tap-highlight-color:transparent}
@supports (corner-shape:squircle){.btn{corner-shape:squircle;--r:999px}}
.btn.s{height:2.6em;padding:0 1.15em;font-size:13.5px;--r:12px}
@supports (corner-shape:squircle){.btn.s{--r:999px}}
.btn.cta{background:var(--primary);color:#000;font-weight:700;text-shadow:none;box-shadow:0 8px 28px -14px var(--primary)}
.btn.cta.light{background:var(--bone)}
.btn.cta:hover{transform:translateY(-2px);background:var(--primary-hi);box-shadow:0 16px 38px -14px var(--primary)}
.btn.cta.light:hover{background:#fff}
.btn.ghost{background:rgba(244,239,231,.06);color:var(--bone);box-shadow:inset 0 0 0 1px rgba(244,239,231,.2)}
.btn.ghost:hover{background:rgba(244,239,231,.12);transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.97)}
.btn .ar{display:inline-block;transition:transform .45s var(--ease)}
.btn:hover .ar{transform:translate(2px,-2px)}
.btn>span{position:relative}

.pills{display:flex;flex-wrap:wrap;gap:6px}
.pills button{white-space:nowrap;background:rgba(244,239,231,.04);border:1px solid var(--line);color:var(--ash);padding:.62em 1.05em;border-radius:999px;font-family:var(--f-m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;transition:.25s var(--ease)}
.pills button:hover{color:var(--bone);border-color:var(--ash)}
.pills button[aria-pressed=true]{background:var(--bone);color:var(--ink);border-color:var(--bone)}


/* scroll reveal */
[data-reveal]{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity .9s var(--ease),transform 1.1s var(--ease),filter 1s var(--ease)}
[data-reveal].in{opacity:1;transform:none;filter:none}

/* ---------- top bar ---------- */
.top{position:fixed;left:0;right:0;top:0;z-index:100;height:var(--topH);padding:env(safe-area-inset-top,0) var(--gut) 0;display:flex;align-items:center;justify-content:space-between;gap:16px;background:none}
/* no fill at all: two blur layers with masks, strongest at the top edge and fading to nothing toward the bottom */
.top::before,.top::after{content:"";position:absolute;left:0;right:0;top:0;z-index:-1;pointer-events:none}
.top::before{bottom:-26px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-mask-image:linear-gradient(to bottom,#000 10%,transparent 100%);mask-image:linear-gradient(to bottom,#000 10%,transparent 100%)}
.top::after{bottom:-6px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);-webkit-mask-image:linear-gradient(to bottom,#000 20%,transparent 85%);mask-image:linear-gradient(to bottom,#000 20%,transparent 85%)}
.top-l{display:flex;align-items:center;height:34px}
.top-free{color:var(--primary);white-space:nowrap;font-weight:500}
.top-logo{display:block;max-width:0;padding-right:0;overflow:hidden;transition:opacity .45s var(--ease),max-width .6s var(--ease),padding .6s var(--ease),filter .5s;opacity:0;filter:blur(4px);pointer-events:none}
.top-logo img{height:34px;width:auto}
.top.logo .top-logo{opacity:1;max-width:110px;padding-right:18px;filter:none;pointer-events:auto}
.top-cd,.top-cta{display:block;flex:none}
.top-cd{margin-inline:auto}
/* phones have no room for "Eintritt frei" next to the countdown, the language pill and the docked CTA, so it folds away once the countdown has docked */
@media (max-width:700px){.top-logo{display:none}.top{gap:8px}.top-free{font-size:10px;letter-spacing:.1em;max-width:120px;overflow:hidden;transition:max-width .5s var(--ease),opacity .35s}.top.cd-in .top-free{max-width:0;opacity:0}
  /* until the countdown docks its bar slots stay empty, so collapse them and let the language pill sit at the right edge */
  .top-cd,.top-cta{transition:width .5s var(--ease)}.top:not(.cd-in) .top-cd,.top:not(.cd-in) .top-cta{width:0!important}}

/* docks: fixed, scroll-driven from hero anchor to bar slot (see dockFrame in site.js) */
.dock{position:fixed;left:0;top:0;z-index:101;transform-origin:0 0;opacity:0;transition:opacity .4s}
.dock.on{opacity:1}
.dock.btn{transition:opacity .4s,background-color .45s,box-shadow .3s,color .3s}
.dock.btn.cta:hover{transform:none}
#dockCta{font-size:20px}
.cta-anchor{display:block;margin:0}
.anchor{flex:none}
.hero-top{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(14px,2.4vh,22px);margin-bottom:clamp(-14px,-1vw,-6px)}
.cd-dock{display:flex;align-items:flex-start;gap:clamp(6px,1.4vw,12px);color:var(--bone);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:700}
.cd-dock .u{position:relative;display:flex;flex-direction:column;align-items:center;min-width:1.5em}
.cd-dock b{font-weight:700;font-size:clamp(28px,3.4vw,44px);letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.cd-dock i{font-style:normal;font-size:clamp(28px,3.4vw,44px);line-height:1;color:var(--primary);opacity:.7}
.top-r{display:flex;align-items:center;gap:clamp(10px,2vw,22px)}
.lang{position:relative;display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:3px;border-radius:999px;background:rgba(244,239,231,.08);box-shadow:inset 0 0 0 1px rgba(244,239,231,.12);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.lang::before{content:"";position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:999px;background:var(--bone);transition:transform .5s var(--ease)}
.lang[data-cur=en]::before{transform:translateX(100%)}
.lang button{position:relative;z-index:1;background:none;border:0;padding:.55em 1.05em;font:600 11.5px/1 var(--f-hn);letter-spacing:.06em;color:rgba(244,239,231,.62);transition:color .35s}
.lang button[aria-pressed=true]{color:#000}
.lang button:not([aria-pressed=true]):hover{color:var(--bone)}

/* ---------- hero ---------- */
/* one fixed video behind the whole page, dimmed per section from JS (--dim) */
.bg{position:fixed;inset:0;z-index:0;background:var(--black);overflow:hidden;pointer-events:none}
.bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity 1.2s;transform:scale(1.03)}
.bg.has-video .bg-video{opacity:1}
.bg-dim{position:absolute;inset:0;background:#000;opacity:var(--dim,0)}
main,footer{position:relative;z-index:1}
.hero{position:relative;height:100vh;height:100svh;min-height:560px}
.hero-front{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(4px,1vh,10px);padding:var(--topH) var(--gut) 0;z-index:2}
.anchor{display:block}
.lgx{position:relative;isolation:isolate;margin:0;width:min(66vw,900px);font-size:min(6.6vw,90px);will-change:transform}
.lgx img{position:relative;z-index:1;width:100%;height:auto}
.lgx .fx{position:absolute;inset:0;z-index:0;opacity:var(--ho,.5);-webkit-mask:url(../assets/brand/holy-mask.webp) center/100% 100% no-repeat;mask:url(../assets/brand/holy-mask.webp) center/100% 100% no-repeat}
.lgx .f1{background:#d9541e;transform:translate(var(--hx1,-.012em),var(--hy,0em));clip-path:var(--hc1,none)}
.lgx .f2{background:#f2c230;transform:translate(var(--hx2,.012em),calc(var(--hy,0em) * -1));clip-path:var(--hc2,none)}
.lgx .f3{background:var(--logo) center/100% 100% no-repeat;opacity:var(--hg,0);transform:translate(var(--hs,0em),0);clip-path:var(--hc3,inset(0 0 100% 0))}
@media (max-width:700px){.lgx{width:88vw;font-size:8.8vw}.hero-top{margin-bottom:8px}}
/* phones in landscape: size the lockup by height so countdown, logo and CTA all fit on one screen */
@media (max-height:520px) and (orientation:landscape){.hero{min-height:0}.lgx{width:min(66vw,calc((100svh - 210px) * 1.95));font-size:min(6.6vw,calc((100svh - 210px) * .195))}.hero-top{margin-bottom:8px}}

/* ---------- verse ---------- */
.verse-sec{position:relative;z-index:3;min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:calc(var(--topH) + 40px) var(--gut)}
.verse-sec .verse-card{width:100%}
.verse-card{position:relative;max-width:1280px;margin:0 auto;container-type:inline-size}
.verse-top{position:relative;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;color:var(--ash);margin-top:clamp(22px,4cqw,52px)}
.verse-ref{display:flex;align-items:center;gap:14px}
.verse-pick{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
.verse-txt{position:relative;margin:0;font-family:var(--f-d);font-weight:700;letter-spacing:-.05em;line-height:.95;text-transform:uppercase;font-size:var(--vs,5.6cqw);text-wrap:balance;}
.verse-txt .w{display:inline-block;margin-right:.2em;opacity:0;filter:blur(.15em);color:var(--primary);text-shadow:0 0 .4em rgba(248,176,0,.9),0 0 1em rgba(217,72,28,.5);transform:translateY(.12em)}
.verse-txt .w.lit{opacity:1;filter:none;transform:none;transition:opacity .25s,filter .6s var(--ease),transform .7s var(--ease),color 1.4s ease,text-shadow 1.6s ease;color:var(--bone);text-shadow:0 0 0 transparent}
.verse-txt .w.fresh{color:var(--halo);text-shadow:0 0 .4em rgba(255,217,138,.9),0 0 1.2em rgba(217,72,28,.7)}

/* ---------- description ---------- */
.about{position:relative;z-index:3;min-height:100vh;display:flex;align-items:flex-end}
.about-in{position:relative;width:100%;padding-top:clamp(120px,22vh,240px);padding-bottom:clamp(60px,10vh,120px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 48px;align-items:end}
.about-col{display:flex;flex-direction:column;align-items:flex-start;gap:16px;max-width:560px}
.about-col .btn{margin-bottom:6px}
.about-text p{margin:0;font-size:clamp(16px,1.35vw,19px);line-height:1.5;font-weight:500;text-wrap:pretty}
.about-text p+p{margin-top:.8em;font-weight:400}
.churches{width:100%;display:flex;flex-direction:column;gap:16px}
.ch-logos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:20px clamp(22px,3vw,40px)}
.ch-logos li{display:flex;align-items:center;text-align:left;color:var(--ash);font-family:var(--f-d);font-weight:700;letter-spacing:-.04em;font-size:clamp(11px,1vw,14px);text-transform:uppercase;line-height:1}
.ch-logos li:nth-child(3) img{height:clamp(54px,5.6vw,72px)}
.ch-logos li img{height:clamp(44px,4.6vw,60px);width:auto;max-width:none}
@media (max-width:860px){.about-in{grid-template-columns:minmax(0,1fr)}}

/* ---------- gallery: plain scrolling section, prints drift at three speeds (JS), the room stays near-black ---------- */
.gp{position:relative;z-index:3;container-type:inline-size;height:calc(260vh + 220px);overflow:clip}
/* phones: the larger prints fill the room sooner, so a shorter run avoids a long empty black stretch before Dienste */
@media (max-width:700px){.gp{height:calc(230vh + 220px)}}
.gp-field{position:absolute;inset:0}
.gp-center{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:clamp(22px,4vh,40px);z-index:4;pointer-events:none;padding:0 var(--gut)}
.gp-center .btn{pointer-events:auto}
.gp-text{position:relative;text-align:center;font-size:min(10.5cqw,15vh);white-space:pre-line;text-shadow:0 .1em .6em rgba(0,0,0,.7)}
.pr{position:absolute;top:0;left:0;width:var(--w);will-change:transform;z-index:1}
.pr.front{z-index:3}
.pr.back{z-index:0}
.pr.back .pcard{filter:brightness(.62) saturate(.85) blur(.6px)}
.pr .pcard{display:block;margin:0;background:#f1ece2;padding:5.5% 5.5% 15%;box-shadow:0 1.4cqw 3cqw rgba(0,0,0,.55),0 .2cqw .4cqw rgba(0,0,0,.4);transform:rotate(var(--r));transition:transform .7s var(--ease),filter .4s;border-radius:3px}
.pr:hover{z-index:6}
.pr:hover .pcard{transform:rotate(calc(var(--r) * .2)) scale(1.05);filter:none}
.pr .ph{aspect-ratio:5/4;overflow:hidden;background:#111;position:relative}
.pr .ph img{width:100%;height:100%;object-fit:cover}
.pr .ph::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 1.4cqw rgba(0,0,0,.45);pointer-events:none}

/* ---------- volunteering: centred roster, the hovered row opens around a photo, the backdrop crossfades ---------- */
.serve{--size:clamp(22px,min(5.4vh,6.6vw),72px);position:relative;z-index:3;min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:calc(var(--topH) + 48px) 16px 72px;overflow:hidden;isolation:isolate}
.serve-bgs{position:absolute;inset:0;z-index:-1}
.serve-bgs::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.45);opacity:0;transition:opacity .6s var(--ease)}
.serve.live .serve-bgs::after{opacity:1}
.sbg{position:absolute;inset:0;opacity:0;transform:scale(1.12);transition:opacity .8s var(--ease),transform 1.4s var(--ease)}
.sbg img{width:100%;height:100%;object-fit:cover}
.sbg.on{opacity:1;transform:none}
.serve-in{width:min(1040px,100%);display:flex;flex-direction:column;align-items:center;gap:clamp(28px,5vh,56px)}
.serve-h{font-size:calc(var(--size) * .62);text-align:center;color:var(--ash);letter-spacing:-.04em}
.roster{width:100%;list-style:none;margin:0;padding:0}
.roster li{border-top:1px solid rgba(244,239,231,.14)}
.roster li:last-child{border-bottom:1px solid rgba(244,239,231,.14)}
.roster a{display:flex;justify-content:center;align-items:center;height:calc(var(--size) * 1.32);font:700 var(--size)/1 var(--f-hn);letter-spacing:-.045em;text-transform:uppercase;white-space:nowrap;text-decoration:none;color:var(--bone);transition:color .45s var(--ease),opacity .45s var(--ease)}
.roster a:focus-visible{outline:2px solid var(--ember);outline-offset:-2px}
.roster.live li:not(.on) a{opacity:.5}
.roster li.on a{color:var(--primary)}
.slot{display:inline-flex;align-items:center;justify-content:center;width:0;overflow:visible;transition:width .6s var(--ease)}
.slot.sp{width:.3em}
.roster li.on .slot{width:calc(var(--size) * 1.55)}
.tile{flex:none;width:calc(var(--size) * .95);aspect-ratio:1.15;overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,.45);transform:scale(.2) rotate(-14deg);opacity:0;transition:transform .6s var(--ease),opacity .35s var(--ease)}
.tile img{width:100%;height:100%;object-fit:cover}
.tile.ico{aspect-ratio:1;width:calc(var(--size) * .85);box-shadow:none;overflow:visible;display:grid;place-items:center;color:var(--primary)}
.tile.ico svg{width:100%;height:100%}
.roster li.on .tile{transform:none;opacity:1;transition-delay:.06s}
@media (max-width:520px){.roster li.on .slot{width:calc(var(--size) * 1.3)}.tile{width:calc(var(--size) * .8)}}

/* ---------- getting there: map fills the left half, details on the right, one screen tall ---------- */
.go{position:relative;z-index:3;background:#030303;height:100vh;height:100svh;min-height:560px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 22vh,#000 78vh,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 22vh,#000 78vh,transparent 100%)}
.go-stage{position:relative;overflow:hidden;background:#0a0a0a;isolation:isolate;min-height:0}
.gmap-wrap{position:absolute;inset:var(--topH) 0 0 0;overflow:hidden}
.gmap{position:absolute;left:0;top:-14%;width:100%;height:128%;will-change:transform;border:0;opacity:0;transition:opacity .9s var(--ease),filter .5s}
.gmap.ready{opacity:1}
.go-stage.dark .gmap{filter:invert(.92) hue-rotate(180deg) saturate(.55) brightness(.92) contrast(.95)}
.map-tone{position:absolute;bottom:16px;left:16px;z-index:3;border:1px solid rgba(244,239,231,.22);background:rgba(3,3,3,.7);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--bone);padding:.7em 1.1em;border-radius:999px;transition:.25s var(--ease)}
.map-tone:hover{border-color:var(--primary);color:var(--primary)}
.go-side{display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,4vh,40px);padding:calc(var(--topH) + 16px) var(--gut) 32px;max-width:640px}
.go-head h2{font-size:clamp(2.6rem,min(6vw,11vh),6.4rem);white-space:pre-line}
.go-head .eyebrow{margin-bottom:14px}
.go-card{display:flex;flex-direction:column;gap:clamp(22px,4vh,36px)}
.go-venue{display:flex;flex-direction:column;gap:10px}
.venue-name{font-family:var(--f-hn);font-weight:700;font-size:clamp(18px,2.6vh,24px);letter-spacing:-.03em;line-height:1;text-transform:uppercase;color:var(--ash)}
.venue-addr{font:700 clamp(30px,min(4.4vw,6.4vh),58px)/1.02 var(--f-hn);font-style:normal;letter-spacing:-.04em;color:var(--bone)}
.go-actions{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.alt-maps{display:flex;gap:22px;margin:0}
.alt-maps a{color:var(--ash);text-decoration:none;border-bottom:1px solid rgba(244,239,231,.25);padding-bottom:3px;transition:color .2s,border-color .2s}
.alt-maps a:hover{color:var(--bone);border-color:var(--bone)}
@media (max-width:860px){
  .go{height:auto;grid-template-columns:minmax(0,1fr);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 8vh,#000 calc(100% - 12vh),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 8vh,#000 calc(100% - 12vh),transparent 100%)}
  .go-stage{height:44svh;min-height:300px}
  .go-side{max-width:none;padding:36px var(--gut) 64px}
}

/* ---------- end ---------- */
.end{position:relative;z-index:3;padding:clamp(140px,26vh,280px) var(--gut) 28px;overflow:hidden;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end}
.end-in{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px 56px;align-items:end;max-width:1600px;margin:0 auto}
.end-h{font-size:clamp(2.2rem,7.2vw,10rem);line-height:.84}
.end-h .ln{display:block;width:fit-content;white-space:nowrap;transform:translateY(var(--ly,40%));opacity:var(--lo,0);transition:transform 1.2s var(--ease),opacity 1s}
.end-h .ln:nth-child(2){transition-delay:.12s}
.end.in .end-h .ln{--ly:0;--lo:1}
.end-side{display:flex;flex-direction:column;align-items:flex-start;gap:28px;padding-bottom:.6em}
.end-nav{display:grid;grid-template-columns:repeat(2,auto);gap:8px 32px}
.end-nav a{text-decoration:none;color:rgba(244,239,231,.75);font-weight:500;transition:color .2s}
.end-nav a:hover{color:var(--primary)}
.legal{position:relative;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:rgba(244,239,231,.5);border-top:1px solid rgba(244,239,231,.1);padding-top:20px;margin:clamp(60px,10vh,120px) auto 0;max-width:1600px}
.legal-r{display:flex;gap:22px}
.legal a{text-decoration:none}
.legal a:hover{color:var(--primary)}
@media (max-width:860px){.end-in{grid-template-columns:minmax(0,1fr)}.end-h{font-size:9.4vw}}

@media (prefers-reduced-motion:reduce){
  .grain{animation:none}
  [data-reveal]{opacity:1;transform:none;filter:none;transition:none}
  .end-h .ln{--ly:0;--lo:1}
}
.end-in,.legal{width:100%}

.hero-info{display:flex;align-items:center;gap:.55em;margin:clamp(-50px,-3.6vw,-22px) 0 0;font:600 clamp(15px,1.6vw,19px)/1 var(--f-b);letter-spacing:.01em;color:var(--bone);text-shadow:0 2px 18px rgba(0,0,0,.6);flex-wrap:wrap;justify-content:center}
.hero-info .dot{width:4px;height:4px;border-radius:50%;background:var(--bone);opacity:.6}


.sched{list-style:none;margin:6px 0 0;padding:0;width:100%;display:flex;flex-direction:column;border-top:1px solid rgba(244,239,231,.16)}
.sched li{display:grid;grid-template-columns:5.2em 1fr;gap:16px;align-items:baseline;padding:12px 0;border-bottom:1px solid rgba(244,239,231,.16)}
.sched .t{font:700 clamp(20px,2vw,26px)/1 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--primary)}
.sched b{display:block;font:700 clamp(15px,1.5vw,19px)/1.1 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:-.03em;text-transform:uppercase}
.sched span{display:block;margin-top:3px;color:var(--ash);font-size:14px}

.hero-cta{margin-top:clamp(-30px,-1.6vw,-8px)}
.top-slot{display:grid;justify-items:end;align-items:center}
.top-slot>*{grid-area:1/1}
.top-when{display:flex;gap:.6em;white-space:nowrap;color:var(--bone);font:500 13px/1 var(--f-hn);letter-spacing:.01em;transition:opacity .4s var(--ease),transform .5s var(--ease)}
.top-when b{font-weight:700;color:var(--primary)}
.top.cta-bar .top-when{opacity:0;transform:translateY(-6px);pointer-events:none}
@media (max-width:700px){.top-when{display:none}}
