
:root{
  --cream:#fffdf8;
  --cream-2:#f9f4e9;
  --cream-3:#f1e7d6;
  --wine:#801927;
  --wine-dark:#5c101a;
  --wine-soft:#a84b57;
  --gold:#bc8c43;
  --gold-light:#ead5a8;
  --sage:#8f9770;
  --ink:#3d302a;
  --muted:#7d6c60;
  --line:#e4d7c6;
  --white:#fff;
  --shadow:0 18px 48px rgba(76,49,31,.10);
  --shadow-soft:0 9px 28px rgba(76,49,31,.08);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(circle at 90% 8%,rgba(230,202,147,.22),transparent 24rem),
    linear-gradient(180deg,#fffefb 0%,#fbf7ee 55%,#f8f2e7 100%);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  overflow-x:hidden;
}
body.menu-open{overflow:hidden}
a{color:inherit}
button{font:inherit}
#lightCanvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;opacity:.72}

.site-header{
  position:fixed;
  z-index:100;
  left:12px;right:12px;top:10px;
  height:66px;
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 10px 8px 12px;
  background:rgba(255,253,248,.90);
  border:1px solid rgba(224,210,190,.88);
  border-radius:18px;
  box-shadow:0 12px 38px rgba(74,48,31,.07);
  backdrop-filter:blur(18px);
  transition:.35s ease;
}
.site-header.scrolled{height:58px;box-shadow:0 12px 36px rgba(74,48,31,.12)}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;min-width:0}
.brand img{width:49px;height:auto}
.brand strong{
  font-size:11px;line-height:1.12;letter-spacing:.035em;
  color:#302621;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.menu-button{
  border:0;width:43px;height:43px;border-radius:50%;
  background:#fff8ee;box-shadow:0 5px 16px rgba(87,59,38,.09);
  display:grid;place-content:center;gap:4px;cursor:pointer;
}
.menu-button span{display:block;width:19px;height:2px;background:var(--wine);border-radius:2px;transition:.25s}
.menu-button.active span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-button.active span:nth-child(2){opacity:0}
.menu-button.active span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mobile-menu{
  position:fixed;z-index:99;left:12px;right:12px;top:84px;
  padding:12px;background:rgba(255,253,248,.98);border:1px solid var(--line);
  border-radius:20px;box-shadow:0 24px 70px rgba(71,48,32,.17);
  transform:translateY(-16px) scale(.98);opacity:0;pointer-events:none;transition:.28s ease;
}
.mobile-menu.open{transform:none;opacity:1;pointer-events:auto}
.mobile-menu a,.mobile-menu button{
  display:block;width:100%;text-align:left;padding:14px;border:0;background:transparent;
  text-decoration:none;border-bottom:1px solid #eee4d7;font-weight:800;color:#59483c;
}
.mobile-menu a:last-of-type{border-bottom:1px solid #eee4d7}
.mobile-menu button{color:var(--wine);border-bottom:0}

.hero{
  min-height:100svh;
  position:relative;
  display:flex;align-items:flex-end;
  overflow:hidden;
  padding:105px 22px 68px;
  background:
    radial-gradient(circle at 73% 17%,rgba(255,238,190,.88),transparent 13rem),
    radial-gradient(circle at 92% 23%,rgba(255,255,255,.94),transparent 22rem),
    linear-gradient(145deg,#fffdf8 0%,#fdf7eb 48%,#f5e8d1 100%);
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,253,248,.97) 0%,rgba(255,253,248,.88) 43%,rgba(255,253,248,.25) 78%,rgba(255,253,248,.08) 100%);
}
.hero-cloud{position:absolute;border-radius:50%;filter:blur(10px);opacity:.75}
.cloud-a{width:300px;height:130px;background:rgba(255,255,255,.76);right:-80px;top:160px;animation:cloudFloat 12s ease-in-out infinite alternate}
.cloud-b{width:240px;height:100px;background:rgba(255,255,255,.55);right:30px;top:305px;animation:cloudFloat 15s ease-in-out infinite alternate-reverse}
.sun-rays{
  position:absolute;right:-95px;top:-70px;width:520px;height:520px;border-radius:50%;
  background:conic-gradient(from 8deg,
    transparent 0 9deg,rgba(231,191,109,.28) 10deg 12deg,
    transparent 13deg 25deg,rgba(255,224,161,.36) 26deg 28deg,
    transparent 29deg 47deg,rgba(238,202,129,.22) 48deg 50deg,
    transparent 51deg 100%);
  filter:blur(1px);animation:raySpin 36s linear infinite;
}
.hero-cross{
  position:absolute;z-index:1;right:12%;top:19%;width:74px;height:126px;
  filter:drop-shadow(0 0 18px rgba(197,143,58,.38));
  transform:translateY(var(--cross-shift,0px));
  transition:transform .1s linear;
}
.hero-cross::before,.hero-cross::after{
  content:"";position:absolute;border-radius:3px;
  background:linear-gradient(180deg,#e2bd72,#b77c30);
}
.hero-cross::before{width:14px;height:126px;left:30px}
.hero-cross::after{height:14px;width:74px;top:34px}
.hero-cross i{
  position:absolute;inset:-32px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,238,184,.65),rgba(255,238,184,0) 68%);
  animation:holyGlow 4.7s ease-in-out infinite;
}
.hero-content{position:relative;z-index:2;width:100%;max-width:700px}
.hero-logo{display:none}
.pretitle{
  margin:0 0 13px;font-size:10px;font-weight:950;letter-spacing:.16em;color:var(--gold);
}
.hero h1{
  margin:0;font-family:Georgia,"Times New Roman",serif;
  line-height:.91;letter-spacing:-.047em;color:var(--wine);
}
.hero h1 span{display:block;font-size:clamp(51px,14vw,83px)}
.hero h1 em{
  display:block;margin-top:9px;font-style:normal;font-size:clamp(44px,11vw,67px);
  color:#a16d29;letter-spacing:-.035em;
}
.verse{
  position:relative;max-width:440px;margin-top:27px;padding:17px 0 0 17px;
  border-top:1px solid rgba(183,142,70,.42);
}
.verse .quote{
  position:absolute;left:-2px;top:8px;font:52px Georgia,serif;color:rgba(128,25,39,.18);line-height:1;
}
.verse p{
  margin:0;font:italic 17px/1.55 Georgia,"Times New Roman",serif;color:#4e4037;
}
.verse strong{
  display:block;margin-top:9px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--wine);
}
.scroll-cue{
  display:inline-flex;align-items:center;gap:9px;margin-top:30px;
  color:#9b7a46;text-decoration:none;font-size:9px;font-weight:900;letter-spacing:.18em;
}
.scroll-cue i{
  width:24px;height:38px;border:1px solid #d6bd91;border-radius:20px;position:relative;
}
.scroll-cue i::after{
  content:"";position:absolute;width:4px;height:7px;border-radius:4px;background:var(--gold);
  left:9px;top:7px;animation:scrollDot 1.8s ease-in-out infinite;
}

.section-container{width:min(920px,calc(100% - 28px));margin:auto}
.next-section{padding:28px 0 66px}
.next-meeting{
  position:relative;padding:23px 20px;
  background:rgba(255,253,248,.95);border:1px solid var(--line);border-radius:24px;
  box-shadow:var(--shadow);
  display:grid;grid-template-columns:58px 1fr;gap:14px;
  overflow:hidden;
}
.next-meeting::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:6px;
  background:linear-gradient(180deg,var(--wine),#a73c49);
}
.next-icon{
  width:54px;height:54px;border-radius:50%;background:var(--wine);display:grid;place-items:center;
  box-shadow:0 8px 23px rgba(128,25,39,.20);
}
.next-icon svg{width:30px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round}
.small-heading{font-size:9px;letter-spacing:.14em;color:#a27b3d;font-weight:950}
.next-main h2{font:700 31px/1.02 Georgia,serif;color:var(--wine);margin:4px 0 6px}
.next-main h3{font-size:14px;margin:0 0 5px}
.next-main p{font-size:12px;color:var(--muted);margin:0;line-height:1.45}
.next-date{display:none}
.next-date-mobile{margin-top:11px;display:grid;gap:3px}
.next-date-mobile strong{font-size:11px;color:#59473b}
.next-date-mobile span{font-size:11px;color:#8d7c6e}
.next-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;margin-top:5px}

.button{
  appearance:none;border:1px solid transparent;padding:10px 13px;border-radius:10px;
  text-decoration:none;font-size:11px;font-weight:900;cursor:pointer;transition:.22s ease;
}
.button:hover{transform:translateY(-2px)}
.button.primary{background:var(--wine);color:#fff;box-shadow:0 8px 20px rgba(128,25,39,.13)}
.button.outline{background:#fffaf2;color:#745e4a;border-color:#dbc9ac}

.countdown{
  margin-top:16px;padding:21px 15px 17px;background:rgba(255,253,248,.9);
  border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-soft);text-align:center;
}
.countdown>p{margin:0 0 14px;font-size:9px;letter-spacing:.12em;font-weight:900;color:#886b40}
.counter-row{display:grid;grid-template-columns:repeat(4,1fr)}
.counter-row div{padding:0 4px;border-right:1px solid #e2d6c4}
.counter-row div:last-child{border-right:0}
.counter-row strong{display:block;font:700 31px/1 Georgia,serif;color:var(--wine)}
.counter-row span{display:block;margin-top:6px;font-size:8px;color:#a07c43;font-weight:900}
.countdown>small{display:block;margin-top:15px;font-size:9px;letter-spacing:.12em;color:#735e4d;font-weight:850}

.journey-section{padding:0 0 75px}
.section-heading{text-align:center;margin-bottom:23px}
.section-heading>span{font-size:9px;letter-spacing:.19em;font-weight:950;color:var(--gold)}
.section-heading h2{margin:6px 0 9px;font:700 38px/1.05 Georgia,serif;color:var(--wine)}
.ornament{display:flex;align-items:center;justify-content:center;gap:9px;color:#c29a59}
.ornament i{display:block;width:55px;height:1px;background:#dfc89d}
.ornament b{font-size:12px}
.journey-card{
  position:relative;padding:24px 17px 12px;border:1px solid var(--line);
  border-radius:26px;background:
    radial-gradient(circle at 85% 25%,rgba(237,215,171,.20),transparent 18rem),
    rgba(255,253,248,.93);
  box-shadow:var(--shadow);overflow:hidden;
}
.journey-copy{text-align:center}
.journey-copy h3{margin:0;font:700 24px/1.15 Georgia,serif;color:#55453b}
.journey-copy p{margin:9px auto 0;font-size:11px;line-height:1.55;color:#8a796b;max-width:430px}
.map-wrap{position:relative;width:min(100%,490px);aspect-ratio:1/1.08;margin:18px auto 0}
.nz-map-image{
  position:absolute;inset:1% 7% 0 7%;width:86%;height:94%;object-fit:contain;
  filter:drop-shadow(0 14px 15px rgba(93,76,53,.11));
  transform:translateY(18px);opacity:.15;
  transition:transform 1.1s cubic-bezier(.2,.75,.2,1),opacity 1.1s ease;
}
.journey-card.in-view .nz-map-image{transform:none;opacity:1}
.route-overlay{position:absolute;left:8%;top:4%;width:84%;height:91%;overflow:visible}
.route-overlay path{
  fill:none;stroke:#cf9e44;stroke-width:1.15;stroke-linecap:round;
  stroke-dasharray:140;stroke-dashoffset:140;filter:drop-shadow(0 0 2px rgba(200,145,47,.35));
  transition:stroke-dashoffset 2.15s ease .45s;
}
.journey-card.in-view .route-overlay path{stroke-dashoffset:0}
.map-pin{
  position:absolute;z-index:3;padding:0;border:0;background:transparent;cursor:pointer;
  opacity:0;transform:scale(.45);transition:.55s cubic-bezier(.2,.8,.2,1);
}
.journey-card.in-view .map-pin{opacity:1;transform:scale(1)}
.map-pin span{
  width:21px;height:21px;border-radius:50%;display:grid;place-items:center;
  background:var(--wine);color:#fff;font-size:9px;font-weight:950;
  box-shadow:0 0 0 5px rgba(188,140,67,.12),0 5px 15px rgba(104,44,31,.18);
  animation:pinPulse 2.8s ease-in-out infinite;
}
.map-pin b{
  position:absolute;left:26px;top:2px;white-space:nowrap;font-size:9px;color:#58483e;
  font-weight:850;text-shadow:0 1px 0 #fff;
}
.pin-1{left:52%;top:69%;transition-delay:.55s}
.pin-2{left:49%;top:83%;transition-delay:.68s}
.pin-3{left:67%;top:45%;transition-delay:.82s}
.pin-4{left:64%;top:52%;transition-delay:.96s}
.pin-5{left:67%;top:27%;transition-delay:1.10s}
.pin-6{left:66%;top:24%;transition-delay:1.24s}
.pin-7{left:69%;top:35%;transition-delay:1.38s}

.schedule-section{padding:0 0 75px}
.meeting-list{display:grid;gap:10px}
.meeting-card{
  position:relative;padding:16px 13px 14px 76px;background:rgba(255,253,248,.95);
  border:1px solid var(--line);border-radius:19px;box-shadow:var(--shadow-soft);overflow:hidden;
  transform:translateY(26px);opacity:0;
  transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease;
}
.meeting-card.visible{opacity:1;transform:none}
.meeting-card:hover{box-shadow:0 16px 42px rgba(76,49,31,.13)}
.day-column{
  position:absolute;left:0;top:0;bottom:0;width:62px;background:linear-gradient(180deg,#941f30,#761521);
  color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.day-column small{font-size:8px;letter-spacing:.1em}
.day-column strong{font:700 31px/1 Georgia,serif;margin-top:2px}
.status-pill{
  display:inline-flex;padding:5px 8px;border-radius:999px;font-size:8px;letter-spacing:.08em;font-weight:900;
  color:#8a652a;background:#fbf1dc;border:1px solid #ead8b5;float:right;
}
.meeting-title{margin:0 0 8px;font:700 23px/1.05 Georgia,serif;color:var(--wine)}
.meeting-row{display:flex;gap:8px;align-items:flex-start;margin:5px 0;color:#67584d;font-size:11px;line-height:1.4}
.meeting-row svg{flex:0 0 14px;width:14px;height:14px;stroke:#b38235;fill:none;stroke-width:1.8;margin-top:1px}
.meeting-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.meeting-actions .button{padding:8px 10px;font-size:10px}
.contacts{margin-top:9px;display:flex;gap:6px;flex-wrap:wrap}
.contact-chip{
  font-size:9px;text-decoration:none;color:#765f4c;background:#fff8ec;border:1px solid #e3d3ba;
  border-radius:999px;padding:6px 8px;
}

.schedule-tools{display:grid;grid-template-columns:1fr;gap:9px;margin-top:17px}
.tool-button{
  display:flex;align-items:center;gap:12px;width:100%;padding:13px;border-radius:15px;
  text-decoration:none;background:#fffdf8;border:1px solid var(--line);box-shadow:var(--shadow-soft);
  color:#514239;text-align:left;cursor:pointer;
}
.tool-button>span{
  flex:0 0 39px;width:39px;height:39px;border-radius:50%;display:grid;place-items:center;
  color:var(--wine);border:1px solid #dbc59d;background:#fff8e9;font-size:18px;font-weight:700;
}
.tool-button strong{display:block;font-size:11px}
.tool-button small{display:block;margin-top:2px;font-size:9px;color:#948276}

.speaker-section{padding:0 0 65px}
.speaker-card{
  display:grid;grid-template-columns:92px 1fr;gap:18px;align-items:center;
  padding:23px 18px;border-radius:24px;background:
    radial-gradient(circle at 100% 50%,rgba(236,210,156,.23),transparent 17rem),
    rgba(255,253,248,.95);
  border:1px solid var(--line);box-shadow:var(--shadow);
}
.gospel-emblem{
  width:92px;height:107px;border-radius:45px 45px 19px 19px;
  position:relative;display:grid;place-items:end center;
  color:#b8863f;background:#fbf2e1;border:1px solid #e3cfaa;
}
.gospel-emblem svg{width:71px;height:48px;margin-bottom:11px;fill:none;stroke:#b8863f;stroke-width:2}
.emblem-cross{position:absolute;top:13px;left:50%;width:32px;height:45px;transform:translateX(-50%)}
.emblem-cross::before,.emblem-cross::after{content:"";position:absolute;background:var(--wine)}
.emblem-cross::before{left:13px;width:6px;height:45px}.emblem-cross::after{left:0;top:12px;width:32px;height:6px}
.speaker-card h2{margin:5px 0 5px;font:700 29px/1 Georgia,serif;color:var(--wine)}
.speaker-card>div:last-child>p{margin:0;font-size:11px;color:#746257}
.speaker-card blockquote{
  margin:12px 0 0;padding-left:11px;border-left:2px solid #d8b979;
  font:italic 13px/1.52 Georgia,serif;color:#655248;
}

.scripture-section{padding:0 0 65px}
.scripture-card{
  position:relative;overflow:hidden;text-align:center;padding:35px 22px;border-radius:25px;
  color:#fff;background:
    radial-gradient(circle at 85% 18%,rgba(255,219,140,.28),transparent 13rem),
    linear-gradient(135deg,#811b29,#62121b);
  box-shadow:0 18px 48px rgba(102,21,31,.19);
}
.scripture-card>span{font-size:9px;letter-spacing:.18em;color:#f2d79c;font-weight:900}
.scripture-card blockquote{margin:12px auto;font:700 24px/1.35 Georgia,serif;max-width:620px}
.scripture-card cite{font-style:normal;font-size:9px;letter-spacing:.16em;color:#f3ddb0;font-weight:900}
.scripture-cross{position:absolute;right:9%;top:13%;width:44px;height:68px;opacity:.13}
.scripture-cross::before,.scripture-cross::after{content:"";position:absolute;background:#fff6e3}
.scripture-cross::before{width:7px;height:68px;left:18px}.scripture-cross::after{width:44px;height:7px;top:19px}

.live-section{padding:0 0 74px}
.live-card{
  text-align:center;padding:30px 20px;border-radius:23px;background:rgba(255,253,248,.94);
  border:1px solid var(--line);box-shadow:var(--shadow-soft);
}
.live-card h2{font:700 30px/1.06 Georgia,serif;color:var(--wine);margin:6px 0 8px}
.live-card p{font-size:11px;color:#837166;margin:0 auto 16px}
.hidden{display:none!important}

.site-footer{
  position:relative;overflow:hidden;padding:36px 18px calc(38px + env(safe-area-inset-bottom));
  color:#fff;background:linear-gradient(145deg,#7e1725,#561018);
}
.footer-glow{
  position:absolute;right:-50px;top:-80px;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(245,207,126,.34),transparent 65%);
}
.footer-inner{position:relative;z-index:2;width:min(900px,100%);margin:auto;text-align:center}
.footer-inner img{width:95px;background:#fff;border-radius:14px;padding:7px}
.footer-inner strong{display:block;margin-top:16px;font:700 19px Georgia,serif;letter-spacing:.02em}
.footer-inner p{margin:4px 0 9px;font-size:11px;color:#f3d7b1}
.footer-inner a{font-size:11px;color:#fff6df;text-decoration:none}
.footer-inner blockquote{
  margin:25px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.19);
  max-width:470px;font:italic 14px/1.5 Georgia,serif;color:#f8ead5;
}
.footer-inner cite{display:block;margin-top:6px;font-style:normal;font-size:9px;letter-spacing:.12em;color:#e7c78b}

.toast{
  position:fixed;z-index:300;left:50%;bottom:18px;transform:translate(-50%,16px);
  opacity:0;pointer-events:none;padding:10px 14px;border-radius:12px;background:#4a3830;color:#fff;
  font-size:11px;font-weight:900;transition:.25s;
}
.toast.show{opacity:1;transform:translate(-50%,0)}

.scroll-reveal{
  opacity:0;transform:translateY(27px);
  transition:opacity .78s ease,transform .78s cubic-bezier(.18,.72,.22,1);
}
.scroll-reveal.visible{opacity:1;transform:none}

@keyframes cloudFloat{to{transform:translateX(-34px) translateY(10px)}}
@keyframes raySpin{to{transform:rotate(360deg)}}
@keyframes holyGlow{50%{transform:scale(1.13);opacity:.65}}
@keyframes scrollDot{0%{opacity:0;transform:translateY(0)}45%{opacity:1}100%{opacity:0;transform:translateY(14px)}}
@keyframes pinPulse{50%{box-shadow:0 0 0 8px rgba(188,140,67,.07),0 5px 15px rgba(104,44,31,.18)}}

@media(min-width:720px){
  .site-header{left:24px;right:24px;top:16px;height:74px;padding-left:17px}
  .brand img{width:57px}.brand strong{font-size:13px}
  .hero{padding-left:max(7vw,55px);padding-right:max(7vw,55px)}
  .hero-cross{right:20%;width:96px;height:162px}
  .hero-cross::before{height:162px;left:40px}.hero-cross::after{width:96px;top:45px}
  .next-meeting{grid-template-columns:68px 1fr 180px;padding:26px 24px}
  .next-icon{width:62px;height:62px}
  .next-date-mobile{display:none}
  .next-date{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    border-left:1px solid #e2d4c0;color:#5d4939;
  }
  .next-date small{font-size:9px;color:#a07836;font-weight:900}
  .next-date strong{font:700 45px/1 Georgia,serif;color:var(--wine);margin:4px 0}
  .next-date span{font-size:10px;text-transform:uppercase}
  .next-date b{font-size:11px;margin-top:7px}
  .next-actions{grid-column:2/-1}
  .schedule-tools{grid-template-columns:repeat(3,1fr)}
  .speaker-card{grid-template-columns:125px 1fr;padding:30px}
  .gospel-emblem{width:120px;height:132px}
  .speaker-card h2{font-size:39px}
  .meeting-card{padding-left:95px}
  .day-column{width:76px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .scroll-reveal,.meeting-card,.nz-map-image,.map-pin{opacity:1!important;transform:none!important}
  .route-overlay path{stroke-dashoffset:0!important}
}


/* ===== v3.1 Enhanced Gospel Motion ===== */
.map-pin{
  display:flex;
  align-items:center;
  gap:7px;
  transform-origin:left center;
}
.map-pin span{
  position:relative;
  overflow:visible;
}
.map-pin span::after{
  content:"DAY " attr(data-day-label);
}
.map-pin b{
  position:relative;
  left:auto;
  top:auto;
  display:block;
  padding:5px 7px;
  border-radius:8px;
  background:rgba(255,253,248,.88);
  border:1px solid rgba(210,188,151,.75);
  box-shadow:0 5px 13px rgba(78,55,34,.08);
  font-size:8px;
  line-height:1.2;
  color:#4e4037;
}
.map-pin b::before{
  content:attr(data-day);
  display:block;
  color:#8a1d2b;
  font-size:7px;
  letter-spacing:.08em;
  font-weight:950;
  margin-bottom:1px;
}

/* Hero shimmer */
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(115deg,transparent 20%,rgba(255,255,255,.35) 40%,transparent 60%);
  transform:translateX(-100%);
  animation:heroShimmer 8s ease-in-out infinite;
}
.hero-content{z-index:3}

/* floating scripture sparks */
.hero .spark{
  position:absolute;
  width:5px;height:5px;border-radius:50%;
  background:#d7ab59;
  box-shadow:0 0 14px rgba(215,171,89,.6);
  opacity:.18;
  animation:sparkFloat var(--dur,7s) ease-in-out infinite;
}
.spark.s1{left:13%;top:23%;--dur:7.8s}
.spark.s2{left:29%;top:18%;--dur:9.2s}
.spark.s3{right:29%;top:35%;--dur:8.4s}
.spark.s4{right:17%;top:47%;--dur:10.3s}
.spark.s5{left:18%;bottom:19%;--dur:9.7s}

/* next meeting card subtle alive border */
.next-meeting{
  isolation:isolate;
}
.next-meeting::after{
  content:"";
  position:absolute;
  inset:-1px;
  z-index:-1;
  border-radius:inherit;
  background:linear-gradient(100deg,
    transparent 0%,
    rgba(189,140,66,.16) 27%,
    rgba(128,25,39,.13) 50%,
    rgba(189,140,66,.16) 72%,
    transparent 100%);
  background-size:220% 100%;
  animation:borderSweep 7s linear infinite;
}

/* countdown numbers softly breathe */
.counter-row strong{
  animation:numberBreath 3.2s ease-in-out infinite;
}
.counter-row div:nth-child(2) strong{animation-delay:.35s}
.counter-row div:nth-child(3) strong{animation-delay:.70s}
.counter-row div:nth-child(4) strong{animation-delay:1.05s}

/* journey map deeper animation */
.journey-card.in-view .nz-map-image{
  animation:mapFloat 6.5s ease-in-out 1.8s infinite;
}
.journey-card.in-view .route-overlay path{
  animation:routeDash 8s linear 2.2s infinite;
}
.map-pin span{
  animation:pinPulse 2.6s ease-in-out infinite, pinBob 3.8s ease-in-out infinite;
}
.pin-2 span{animation-delay:.25s}
.pin-3 span{animation-delay:.5s}
.pin-4 span{animation-delay:.75s}
.pin-5 span{animation-delay:1s}
.pin-6 span{animation-delay:1.25s}
.pin-7 span{animation-delay:1.5s}

/* schedule cards slide alternately */
.meeting-card:nth-child(odd){
  transform:translateX(-25px) translateY(14px);
}
.meeting-card:nth-child(even){
  transform:translateX(25px) translateY(14px);
}
.meeting-card.visible{
  transform:none;
}
.meeting-card::after{
  content:"";
  position:absolute;
  width:110px;height:110px;
  right:-52px;bottom:-58px;
  border-radius:50%;
  border:1px solid rgba(188,140,67,.15);
  transform:scale(.8);
  opacity:0;
  transition:.75s ease .2s;
}
.meeting-card.visible::after{
  opacity:1;
  transform:scale(1);
}

/* speaker gospel emblem animation */
.gospel-emblem{
  animation:emblemFloat 5s ease-in-out infinite;
}
.emblem-cross{
  filter:drop-shadow(0 0 9px rgba(128,25,39,.22));
  animation:crossGlow 3.4s ease-in-out infinite;
}

/* Scripture card slow glow sweep */
.scripture-card::after{
  content:"";
  position:absolute;
  inset:-30% -60%;
  background:linear-gradient(110deg,transparent 43%,rgba(255,241,199,.13) 50%,transparent 57%);
  transform:translateX(-30%);
  animation:scriptureLight 7.5s ease-in-out infinite;
  pointer-events:none;
}

/* buttons more polished hover/tap */
.button,.tool-button{
  position:relative;
  overflow:hidden;
}
.button::after,.tool-button::after{
  content:"";
  position:absolute;
  top:0;bottom:0;
  width:45%;
  left:-60%;
  transform:skewX(-22deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transition:left .65s ease;
}
.button:hover::after,.tool-button:hover::after{
  left:120%;
}

/* section heading ornament animation */
.ornament i{
  transform:scaleX(.25);
  opacity:.25;
  transition:transform 1s ease,opacity 1s ease;
}
.section-heading.visible .ornament i{
  transform:scaleX(1);
  opacity:1;
}
.ornament b{
  animation:ornamentGlow 3s ease-in-out infinite;
}

/* Footer soft holy glow */
.footer-glow{
  animation:footerGlow 5s ease-in-out infinite;
}

@keyframes heroShimmer{
  0%,18%{transform:translateX(-120%)}
  48%,100%{transform:translateX(120%)}
}
@keyframes sparkFloat{
  0%,100%{transform:translateY(0) scale(.8);opacity:.12}
  50%{transform:translateY(-28px) scale(1.25);opacity:.42}
}
@keyframes borderSweep{
  to{background-position:220% 0}
}
@keyframes numberBreath{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.035)}
}
@keyframes mapFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-5px)}
}
@keyframes routeDash{
  to{stroke-dashoffset:-140}
}
@keyframes pinBob{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}
@keyframes emblemFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-5px)}
}
@keyframes crossGlow{
  0%,100%{filter:drop-shadow(0 0 5px rgba(128,25,39,.15))}
  50%{filter:drop-shadow(0 0 15px rgba(128,25,39,.35))}
}
@keyframes scriptureLight{
  0%,20%{transform:translateX(-40%)}
  65%,100%{transform:translateX(40%)}
}
@keyframes ornamentGlow{
  0%,100%{filter:drop-shadow(0 0 0 rgba(194,154,89,0))}
  50%{filter:drop-shadow(0 0 6px rgba(194,154,89,.4))}
}
@keyframes footerGlow{
  0%,100%{transform:scale(.94);opacity:.7}
  50%{transform:scale(1.08);opacity:1}
}

@media(prefers-reduced-motion:reduce){
  .hero::before,.hero .spark,.next-meeting::after,.counter-row strong,
  .journey-card.in-view .nz-map-image,.journey-card.in-view .route-overlay path,
  .map-pin span,.gospel-emblem,.emblem-cross,.scripture-card::after,.ornament b,.footer-glow{
    animation:none!important;
  }
}


/* =========================================================
   v3.2 — PRO MOTION / DENTCARE-INSPIRED MOTION LANGUAGE
   (original visual identity retained)
   ========================================================= */

/* Scroll progress */
#scrollProgress{
  position:fixed;
  z-index:500;
  left:0;top:0;
  height:3px;width:0;
  background:linear-gradient(90deg,#7f1927,#c59343,#ead49b);
  box-shadow:0 0 12px rgba(197,147,67,.45);
  transform-origin:left center;
}

/* One-time cinematic page intro */
.page-intro{
  position:fixed;inset:0;z-index:1000;
  display:grid;place-items:center;
  background:#fffdf8;
  transition:opacity .75s ease,visibility .75s ease;
}
.page-intro.done{opacity:0;visibility:hidden}
.intro-mark{
  position:relative;width:100px;height:100px;
  display:grid;place-items:center;
}
.intro-mark::before{
  content:"";
  position:absolute;inset:0;
  border:1px solid rgba(128,25,39,.18);
  border-radius:50%;
  animation:introRing 1.3s cubic-bezier(.2,.75,.2,1) forwards;
}
.intro-cross{position:relative;width:38px;height:58px}
.intro-cross::before,.intro-cross::after{
  content:"";position:absolute;background:#801927;border-radius:2px;
  transform-origin:center;
}
.intro-cross::before{width:6px;height:58px;left:16px;transform:scaleY(0);animation:introCrossV .62s .18s forwards}
.intro-cross::after{height:6px;width:38px;top:17px;transform:scaleX(0);animation:introCrossH .5s .54s forwards}
.intro-text{
  position:absolute;top:114px;white-space:nowrap;
  color:#6d5848;font-size:9px;font-weight:950;letter-spacing:.18em;
  opacity:0;transform:translateY(6px);animation:introText .55s .75s forwards;
}

/* Hero has a moving editorial reveal, closer to premium commercial sites */
.hero-content .pretitle,
.hero-content h1,
.hero-content .verse,
.hero-content .scroll-cue{
  will-change:transform,opacity,clip-path;
}
.hero.loaded .pretitle{
  animation:heroStageUp .75s .10s both cubic-bezier(.17,.72,.2,1);
}
.hero.loaded h1{
  animation:heroClip 1.05s .22s both cubic-bezier(.17,.72,.2,1);
}
.hero.loaded .verse{
  animation:heroStageUp .85s .54s both cubic-bezier(.17,.72,.2,1);
}
.hero.loaded .scroll-cue{
  animation:heroStageUp .7s .78s both cubic-bezier(.17,.72,.2,1);
}
.hero h1 span,.hero h1 em{display:block}
.hero h1 span{
  background:linear-gradient(90deg,#801927 0%,#9d3442 38%,#6c101b 58%,#801927 100%);
  background-size:220% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:titleMetal 8s linear infinite;
}

/* large slow moving glow in hero */
.hero-pro-orb{
  position:absolute;z-index:0;border-radius:50%;pointer-events:none;
  filter:blur(24px);
}
.hero-pro-orb.one{
  width:220px;height:220px;right:-45px;top:25%;
  background:rgba(230,196,127,.20);
  animation:orbDrift1 10s ease-in-out infinite alternate;
}
.hero-pro-orb.two{
  width:150px;height:150px;left:-75px;bottom:12%;
  background:rgba(128,25,39,.06);
  animation:orbDrift2 12s ease-in-out infinite alternate;
}

/* Sections reveal with clipped headings, not simple fades */
.section-heading{
  overflow:hidden;
}
.section-heading>span,
.section-heading h2,
.section-heading .ornament{
  opacity:0;
}
.section-heading.visible>span{animation:sectionLabel .55s both}
.section-heading.visible h2{animation:sectionTitle .85s .08s both cubic-bezier(.17,.72,.2,1)}
.section-heading.visible .ornament{animation:sectionLabel .6s .35s both}

/* Next meeting enters in layered sequence */
.next-meeting.visible .next-icon{animation:iconPop .75s .08s both cubic-bezier(.15,.9,.25,1)}
.next-meeting.visible .next-main{animation:cardContentIn .7s .16s both}
.next-meeting.visible .next-date{animation:cardContentIn .7s .28s both}
.next-meeting.visible .next-actions{animation:cardContentIn .7s .36s both}

/* Countdown digit transition feel */
.counter-row strong{
  transform-origin:center 75%;
  transition:transform .18s ease,opacity .18s ease;
}
.counter-row strong.tick{
  transform:translateY(-5px) scale(1.07);
  opacity:.55;
}

/* Map uses actual original 612x612 geometry */
.map-wrap{
  aspect-ratio:1 / 1!important;
  width:min(100%,560px)!important;
  margin:18px auto 0!important;
}
.nz-map-image{
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
.route-overlay{
  left:0!important;top:0!important;width:100%!important;height:100%!important;
}
.map-pin{
  transform:translate(-50%,-50%) scale(.55)!important;
}
.journey-card.in-view .map-pin{
  transform:translate(-50%,-50%) scale(1)!important;
}

/* Map label glass treatment */
.map-pin b{
  font-size:8px!important;
  background:rgba(255,253,248,.93)!important;
  backdrop-filter:blur(8px);
  border-color:rgba(206,179,131,.82)!important;
  box-shadow:0 7px 18px rgba(77,55,35,.10)!important;
}
.map-pin b::before{
  font-size:7px!important;
  letter-spacing:.12em!important;
}

/* animated active pulse travels across days */
.map-pin.is-active span{
  background:#b88436!important;
  box-shadow:0 0 0 8px rgba(184,132,54,.12),0 0 22px rgba(184,132,54,.5)!important;
  transform:scale(1.14);
}
.map-pin.is-active b{
  color:#801927!important;
  transform:translateX(2px);
}

/* Product-style horizontal number rail, inspired by premium section navigation */
.day-rail{
  display:flex;gap:8px;
  overflow-x:auto;scrollbar-width:none;
  padding:2px 2px 14px;
  margin:-3px 0 12px;
}
.day-rail::-webkit-scrollbar{display:none}
.day-rail button{
  flex:0 0 auto;
  border:1px solid #e2d4c0;background:#fffdf8;color:#675347;
  border-radius:999px;padding:8px 12px;
  font-size:9px;font-weight:900;letter-spacing:.06em;
  cursor:pointer;transition:.25s;
}
.day-rail button.active{
  background:#801927;color:#fff;border-color:#801927;
  box-shadow:0 8px 18px rgba(128,25,39,.14);
}

/* Meeting cards now have richer entrance motion */
.meeting-card{
  transform-style:preserve-3d;
  perspective:900px;
}
.meeting-card .day-column{
  transition:transform .45s cubic-bezier(.2,.8,.2,1),background .35s;
}
.meeting-card.visible .day-column{
  animation:dayColumnIn .65s both cubic-bezier(.16,.8,.2,1);
}
.meeting-card:hover .day-column{transform:translateX(4px)}
.meeting-card .meeting-title,
.meeting-card .meeting-row,
.meeting-card .contacts,
.meeting-card .meeting-actions{
  opacity:0;transform:translateY(10px);
}
.meeting-card.visible .meeting-title{animation:cardContentIn .55s .13s both}
.meeting-card.visible .meeting-row:nth-of-type(1){animation:cardContentIn .55s .20s both}
.meeting-card.visible .meeting-row:nth-of-type(2){animation:cardContentIn .55s .27s both}
.meeting-card.visible .meeting-row:nth-of-type(3){animation:cardContentIn .55s .34s both}
.meeting-card.visible .contacts{animation:cardContentIn .55s .41s both}
.meeting-card.visible .meeting-actions{animation:cardContentIn .55s .48s both}

/* scroll-parallax decoration */
.parallax-flare{
  position:absolute;width:140px;height:140px;border-radius:50%;
  pointer-events:none;opacity:.18;filter:blur(24px);
  background:#d7b16d;
  transform:translate3d(0,var(--p,0px),0);
}

/* speaker section editorial split motion */
.speaker-card.visible .gospel-emblem{animation:speakerEmblemIn .9s both cubic-bezier(.17,.8,.2,1)}
.speaker-card.visible>div:last-child{animation:cardContentIn .75s .16s both}

/* Live section pulse */
.live-card.visible{
  animation:liveCardEnter .9s both cubic-bezier(.17,.8,.2,1);
}

/* Desktop pointer depth */
@media(hover:hover) and (pointer:fine){
  .meeting-card,.next-meeting,.tool-button{
    transition:transform .18s ease,box-shadow .25s ease,border-color .25s ease;
  }
}

/* Animations */
@keyframes introRing{
  0%{transform:scale(.45);opacity:0}
  45%{opacity:1}
  100%{transform:scale(1.2);opacity:0}
}
@keyframes introCrossV{to{transform:scaleY(1)}}
@keyframes introCrossH{to{transform:scaleX(1)}}
@keyframes introText{to{opacity:1;transform:none}}
@keyframes heroStageUp{
  from{opacity:0;transform:translateY(28px)}
  to{opacity:1;transform:none}
}
@keyframes heroClip{
  from{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(18px)}
  to{opacity:1;clip-path:inset(0 0 0 0);transform:none}
}
@keyframes titleMetal{to{background-position:220% center}}
@keyframes orbDrift1{to{transform:translate(-36px,30px) scale(1.13)}}
@keyframes orbDrift2{to{transform:translate(42px,-24px) scale(.92)}}
@keyframes sectionLabel{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:none}
}
@keyframes sectionTitle{
  from{opacity:0;transform:translateY(34px);clip-path:inset(0 0 100% 0)}
  to{opacity:1;transform:none;clip-path:inset(0)}
}
@keyframes iconPop{
  from{opacity:0;transform:scale(.4) rotate(-18deg)}
  to{opacity:1;transform:none}
}
@keyframes cardContentIn{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:none}
}
@keyframes dayColumnIn{
  from{transform:translateX(-100%);opacity:.3}
  to{transform:none;opacity:1}
}
@keyframes speakerEmblemIn{
  from{opacity:0;transform:translateX(-30px) rotate(-5deg) scale(.88)}
  to{opacity:1;transform:none}
}
@keyframes liveCardEnter{
  from{opacity:0;transform:translateY(28px) scale(.97)}
  to{opacity:1;transform:none}
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  .page-intro{display:none}
  .hero.loaded .pretitle,.hero.loaded h1,.hero.loaded .verse,.hero.loaded .scroll-cue,
  .section-heading.visible>span,.section-heading.visible h2,.section-heading.visible .ornament,
  .next-meeting.visible .next-icon,.next-meeting.visible .next-main,
  .next-meeting.visible .next-date,.next-meeting.visible .next-actions,
  .meeting-card.visible .day-column,.meeting-card.visible .meeting-title,
  .meeting-card.visible .meeting-row,.meeting-card.visible .contacts,.meeting-card.visible .meeting-actions,
  .speaker-card.visible .gospel-emblem,.speaker-card.visible>div:last-child,
  .live-card.visible{animation:none!important;opacity:1!important;transform:none!important;clip-path:none!important}
}

.pin-1{left:50.23%!important;top:67.07%!important;}

.pin-2{left:40.20%!important;top:81.80%!important;}

.pin-3{left:64.22%!important;top:47.15%!important;}

.pin-4{left:60.29%!important;top:52.98%!important;}

.pin-5{left:60.64%!important;top:25.95%!important;}

.pin-6{left:59.94%!important;top:25.64%!important;}

.pin-7{left:62.66%!important;top:31.03%!important;}


/* =========================================================
   v3.3 — MODERN NEXT GOSPEL MEETING CARD
   ========================================================= */

.next-meeting{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    linear-gradient(135deg,
      rgba(255,253,248,.97) 0%,
      rgba(255,248,236,.93) 34%,
      rgba(250,239,218,.88) 64%,
      rgba(255,253,248,.96) 100%);
  background-size:220% 220%;
  animation:nextCardGradient 10s ease-in-out infinite;
  border:1px solid rgba(211,188,151,.95);
  box-shadow:
    0 22px 65px rgba(91,58,34,.12),
    0 2px 0 rgba(255,255,255,.78) inset;
}

/* animated gradient border glow */
.next-edge-glow{
  position:absolute;
  inset:-1px;
  z-index:-1;
  border-radius:inherit;
  padding:1px;
  background:
    linear-gradient(110deg,
      rgba(128,25,39,.18),
      rgba(218,173,94,.55),
      rgba(255,244,207,.92),
      rgba(172,112,43,.44),
      rgba(128,25,39,.18));
  background-size:300% 100%;
  animation:nextBorderFlow 8s linear infinite;
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask-composite:exclude;
  pointer-events:none;
}

/* modern aurora movement across whole box */
.next-aurora{
  position:absolute;
  z-index:0;
  border-radius:50%;
  filter:blur(35px);
  pointer-events:none;
  opacity:.26;
  mix-blend-mode:multiply;
}
.next-aurora.aurora-a{
  width:220px;
  height:220px;
  left:-65px;
  top:-75px;
  background:radial-gradient(circle,#d5ae67 0%,rgba(213,174,103,.32) 45%,transparent 72%);
  animation:nextAuroraA 9s ease-in-out infinite alternate;
}
.next-aurora.aurora-b{
  width:260px;
  height:260px;
  right:-90px;
  bottom:-110px;
  background:radial-gradient(circle,#a04a57 0%,rgba(160,74,87,.22) 43%,transparent 72%);
  animation:nextAuroraB 11s ease-in-out infinite alternate;
}

/* faint premium grid / line texture */
.next-grid-light{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.14;
  background-image:
    linear-gradient(rgba(154,122,76,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(154,122,76,.08) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(120deg,transparent 0%,#000 26%,#000 72%,transparent 100%);
}

/* soft light passes across whole card */
.next-sweep{
  position:absolute;
  z-index:1;
  top:-30%;
  bottom:-30%;
  width:38%;
  left:-55%;
  transform:skewX(-18deg);
  background:linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.32),
    rgba(255,247,224,.42),
    rgba(255,255,255,.18),
    transparent
  );
  filter:blur(6px);
  pointer-events:none;
  animation:nextSweep 7.5s ease-in-out infinite;
}

/* ensure card contents stay above animation layers */
.next-meeting > *:not(.next-aurora):not(.next-grid-light):not(.next-sweep):not(.next-edge-glow){
  position:relative;
  z-index:3;
}

.next-heading{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.next-status-dot{
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#b98a43;
  box-shadow:
    0 0 0 4px rgba(185,138,67,.10),
    0 0 14px rgba(185,138,67,.44);
  animation:nextStatusPulse 2.2s ease-in-out infinite;
}

/* make the date panel itself animated/glass */
.next-date{
  position:relative;
  border-left:1px solid rgba(206,181,140,.80)!important;
  background:
    linear-gradient(145deg,
      rgba(255,255,255,.52),
      rgba(255,247,232,.42));
  border-radius:17px;
  margin-left:8px;
  min-height:142px;
  overflow:hidden;
  box-shadow:
    0 9px 24px rgba(105,72,40,.06),
    inset 0 1px 0 rgba(255,255,255,.78);
}
.next-date::before{
  content:"";
  position:absolute;
  inset:-20% -55%;
  background:
    linear-gradient(
      110deg,
      transparent 40%,
      rgba(255,255,255,.42) 49%,
      rgba(236,204,145,.22) 52%,
      transparent 60%);
  animation:datePanelSweep 6.5s ease-in-out infinite;
}
.next-date > *{
  position:relative;
  z-index:2;
}
.date-panel-label{
  position:absolute!important;
  right:8px;
  top:8px;
  padding:4px 6px;
  border-radius:999px;
  font-size:6px!important;
  letter-spacing:.10em;
  font-weight:950!important;
  color:#8a642b!important;
  background:rgba(255,248,232,.90);
  border:1px solid rgba(216,187,137,.68);
}

/* icon panel gets a soft animated ring */
.next-icon{
  position:relative;
  overflow:visible;
}
.next-icon::after{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:50%;
  border:1px solid rgba(128,25,39,.16);
  animation:nextIconRing 2.8s ease-out infinite;
}

/* upgraded modern buttons */
.modern-action{
  display:inline-flex!important;
  align-items:center;
  gap:7px;
  min-height:40px;
  padding:10px 14px!important;
}
.action-icon{
  width:22px;
  height:22px;
  border-radius:50%;
  display:grid;
  place-items:center;
  flex:0 0 22px;
  font-size:12px;
}
.button.primary .action-icon{
  background:rgba(255,255,255,.14);
  color:#fff;
}
.button.outline .action-icon{
  background:#fff5df;
  color:#8b652f;
  border:1px solid rgba(204,169,111,.45);
}

/* modern button glow on hover/tap */
.modern-action::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  opacity:0;
  background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.20),transparent 70%);
  transition:opacity .22s ease;
}
.modern-action:hover::before{
  opacity:1;
}

/* Make the entire card subtly lift while scrolling into view */
.next-meeting.visible{
  animation:nextCardEnter .95s both cubic-bezier(.16,.82,.2,1);
}

/* Fine modern divider under venue */
.next-main{
  position:relative;
}
.next-main::after{
  content:"";
  display:block;
  width:54px;
  height:2px;
  margin-top:12px;
  border-radius:2px;
  background:linear-gradient(90deg,#801927,#cf9f4d,transparent);
  animation:nextDividerGrow 1.1s .45s both cubic-bezier(.2,.8,.2,1);
  transform-origin:left;
}

/* desktop additional richness */
@media(min-width:720px){
  .next-meeting{
    padding:30px 28px 24px;
  }
  .next-icon{
    width:68px;
    height:68px;
  }
  .next-icon svg{
    width:33px;
  }
  .next-main h2{
    font-size:36px;
  }
  .next-date{
    padding:18px 12px;
  }
}

/* smaller phones */
@media(max-width:430px){
  .next-meeting{
    padding:21px 17px;
  }
  .next-aurora.aurora-a{
    width:180px;height:180px;
  }
  .next-aurora.aurora-b{
    width:210px;height:210px;
  }
  .next-actions .button{
    flex:1 1 140px;
  }
}

/* animations */
@keyframes nextCardGradient{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}
@keyframes nextBorderFlow{
  to{background-position:300% 0}
}
@keyframes nextAuroraA{
  0%{transform:translate(0,0) scale(.92)}
  100%{transform:translate(75px,55px) scale(1.16)}
}
@keyframes nextAuroraB{
  0%{transform:translate(0,0) scale(1)}
  100%{transform:translate(-85px,-50px) scale(1.12)}
}
@keyframes nextSweep{
  0%,17%{left:-55%;opacity:0}
  28%{opacity:1}
  58%{left:120%;opacity:.75}
  62%,100%{left:120%;opacity:0}
}
@keyframes nextStatusPulse{
  0%,100%{transform:scale(1);box-shadow:0 0 0 4px rgba(185,138,67,.10),0 0 12px rgba(185,138,67,.35)}
  50%{transform:scale(1.25);box-shadow:0 0 0 8px rgba(185,138,67,.05),0 0 20px rgba(185,138,67,.55)}
}
@keyframes datePanelSweep{
  0%,18%{transform:translateX(-35%)}
  58%,100%{transform:translateX(35%)}
}
@keyframes nextIconRing{
  0%{transform:scale(.78);opacity:.65}
  100%{transform:scale(1.32);opacity:0}
}
@keyframes nextCardEnter{
  from{opacity:0;transform:translateY(30px) scale(.975)}
  to{opacity:1;transform:none}
}
@keyframes nextDividerGrow{
  from{transform:scaleX(0);opacity:.2}
  to{transform:scaleX(1);opacity:1}
}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  .next-meeting,
  .next-edge-glow,
  .next-aurora,
  .next-sweep,
  .next-status-dot,
  .next-date::before,
  .next-icon::after,
  .next-meeting.visible,
  .next-main::after{
    animation:none!important;
  }
}


/* =========================================================
   v4 — NEW GENERATION GOSPEL
   SKY / TEAL / DEEP BLUE / CREAM / GOLD
   ========================================================= */
:root{
  --cream:#fffdf9;
  --cream-2:#f7fbfa;
  --cream-3:#eaf7f5;
  --wine:#0d5f78;
  --wine-dark:#083e59;
  --wine-soft:#249ba7;
  --gold:#d0a14e;
  --gold-light:#f0d59f;
  --sage:#66bdb4;
  --ink:#16384b;
  --muted:#657d85;
  --line:#d5e7e5;
  --white:#fff;
  --shadow:0 20px 58px rgba(18,78,95,.10);
  --shadow-soft:0 10px 30px rgba(18,78,95,.08);
}
body{
  color:var(--ink);
  background:
    radial-gradient(circle at 88% 6%,rgba(143,221,224,.24),transparent 23rem),
    radial-gradient(circle at 6% 35%,rgba(239,210,148,.12),transparent 20rem),
    linear-gradient(180deg,#fffefa 0%,#f6fbfa 54%,#edf8f8 100%);
}
#lightCanvas{opacity:.88}
.site-header{
  background:rgba(255,255,252,.92);
  border-color:rgba(188,221,221,.88);
  box-shadow:0 14px 40px rgba(15,78,95,.08);
}
.brand strong{color:#0d4160}
.menu-button{
  background:#f2fbfa;
  box-shadow:0 5px 16px rgba(14,75,92,.09);
}
.menu-button span{background:#0b5c78}
.mobile-menu{
  background:rgba(255,255,252,.98);
  border-color:#d4e9e7;
  box-shadow:0 24px 70px rgba(20,80,96,.15);
}
.mobile-menu a,.mobile-menu button{color:#2d5c68;border-color:#e3f0ef}
.mobile-menu button{color:#0b6c82}

/* hero */
.hero{
  background:
    radial-gradient(circle at 75% 12%,rgba(255,239,188,.80),transparent 12rem),
    radial-gradient(circle at 87% 25%,rgba(176,227,235,.60),transparent 23rem),
    linear-gradient(145deg,#fffdfa 0%,#f3fbfb 42%,#dff4f7 100%);
}
.hero::after{
  background:linear-gradient(90deg,rgba(255,253,249,.97) 0%,rgba(255,253,249,.83) 45%,rgba(255,255,255,.20) 76%,transparent 100%);
}
.hero h1{color:#075a78}
.hero h1 span{
  background:linear-gradient(90deg,#075a78,#1687a2,#08728a,#075a78)!important;
  background-size:220% auto!important;
  -webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;
}
.hero h1 em{color:#28a8af}
.pretitle{color:#a27730}
.verse p{color:#244854}
.verse strong{color:#0c6881}
.hero-cross::before,.hero-cross::after{
  background:linear-gradient(180deg,#edcb83,#c69a46);
}
.hero-dove{
  position:absolute;
  z-index:2;
  width:142px;
  right:4%;
  top:12%;
  opacity:.94;
  filter:drop-shadow(0 12px 22px rgba(39,121,136,.15));
  animation:doveFloat 6.5s ease-in-out infinite;
  transform-origin:center;
}
@keyframes doveFloat{
  0%,100%{transform:translate(0,0) rotate(-2deg)}
  50%{transform:translate(-10px,-13px) rotate(2deg)}
}

/* next meeting modern teal card */
.next-meeting{
  background:
    radial-gradient(circle at 89% 20%,rgba(119,214,218,.36),transparent 18rem),
    linear-gradient(135deg,rgba(244,253,252,.97),rgba(226,247,246,.95),rgba(255,252,243,.96))!important;
  border-color:#b9dcda!important;
  box-shadow:0 24px 70px rgba(19,90,104,.13)!important;
}
.next-meeting::before{
  background:linear-gradient(180deg,#0b7089,#31b9b2)!important;
}
.next-edge-glow{
  background:linear-gradient(110deg,
    rgba(11,112,137,.28),
    rgba(61,190,187,.60),
    rgba(244,209,141,.85),
    rgba(49,167,181,.52),
    rgba(11,112,137,.28))!important;
}
.next-aurora.aurora-a{
  background:radial-gradient(circle,#72d2d0 0%,rgba(72,190,191,.28) 45%,transparent 72%)!important;
}
.next-aurora.aurora-b{
  background:radial-gradient(circle,#e8c66f 0%,rgba(232,198,111,.22) 43%,transparent 72%)!important;
}
.next-icon{background:linear-gradient(145deg,#0c6883,#1596a4)!important}
.next-main h2{color:#075b78!important}
.next-status-dot{background:#2bbab4!important}
.button.primary{
  background:linear-gradient(135deg,#0c778e,#27b7ae)!important;
  border-color:#0d758a!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(21,143,151,.18)!important;
}
.button.outline{
  background:#fffefa!important;
  color:#20596a!important;
  border-color:#b9d8d6!important;
}
.countdown{
  background:rgba(255,255,252,.92)!important;
  border-color:#d0e5e3!important;
}
.counter-row strong{color:#075b78!important}
.countdown>p{color:#238e95!important}
.countdown>small{color:#326b75!important}

/* section headings */
.section-heading>span,.small-heading{color:#248a96!important}
.section-heading h2{color:#0b5574!important}
.ornament{color:#c69a48!important}
.ornament i{background:#d9c390!important}

/* Journey card */
.journey-card{
  background:
    radial-gradient(circle at 90% 20%,rgba(115,208,211,.14),transparent 17rem),
    rgba(255,255,252,.95)!important;
  border-color:#d2e8e6!important;
  box-shadow:0 20px 58px rgba(19,87,103,.10)!important;
}
.journey-copy h3{color:#125b72!important}
.journey-copy p{color:#658088!important}

/* Accurate inline SVG map */
.map-svg-wrap{
  position:relative;
  width:min(100%,610px);
  margin:18px auto 0;
}
.accurate-nz-map{
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
}
.svg-route{
  fill:none;
  stroke:url(#routeTeal);
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:10 10;
  filter:url(#mapGlow);
  animation:svgRouteMove 9s linear infinite;
}
.travel-dot{
  fill:#f3c968;
  stroke:#fff;
  stroke-width:3;
  filter:url(#mapGlow);
}
.city-callout{
  stroke:#76bfc4;
  stroke-width:1.5;
  stroke-dasharray:4 4;
  opacity:.78;
}
.city-pulse{
  fill:none;
  stroke:#43bdba;
  stroke-width:2;
  animation:svgCityPulse 2.5s ease-out infinite;
  transform-box:fill-box;
  transform-origin:center;
}
.city-dot{
  fill:#fff;
  stroke:#0f8093;
  stroke-width:4;
  filter:url(#mapGlow);
}
.city-label rect{
  fill:rgba(255,255,252,.95);
  stroke:#c8e1df;
  stroke-width:1.4;
}
.city-day{
  fill:#278a94;
  font-size:9px;
  font-weight:900;
  letter-spacing:1px;
}
.city-name{
  fill:#17495c;
  font-size:10px;
  font-weight:800;
}
.svg-city{
  cursor:pointer;
  transition:filter .25s ease;
}
.svg-city:hover{filter:brightness(1.08)}
.svg-city.is-active .city-dot{
  fill:#f1bf5b;
  stroke:#fff;
}
.svg-city.is-active .city-label rect{
  stroke:#e3b75c;
  filter:drop-shadow(0 8px 11px rgba(17,94,109,.10));
}
@keyframes svgRouteMove{to{stroke-dashoffset:-180}}
@keyframes svgCityPulse{
  0%{transform:scale(.55);opacity:.9}
  100%{transform:scale(1.65);opacity:0}
}

/* Schedule - simple vertical Day 1 -> Day 7, NO decorative city icons */
.meeting-list{display:grid!important;gap:11px!important}
.meeting-card{
  background:rgba(255,255,252,.96)!important;
  border-color:#d4e6e5!important;
  box-shadow:0 12px 34px rgba(15,78,95,.08)!important;
}
.day-column{
  background:linear-gradient(180deg,#0a7890,#1b9ca3)!important;
}
.meeting-title{color:#0c5873!important}
.meeting-row svg{stroke:#b38c43!important}
.status-pill{
  color:#1d7e86!important;
  background:#effaf8!important;
  border-color:#c9e7e3!important;
}
.contact-chip{
  color:#2d6671!important;
  background:#f5fbfa!important;
  border-color:#cae1df!important;
}

/* speaker: no picture, no bible, no microphone */
.speaker-minimal{
  display:block!important;
  position:relative;
  overflow:hidden;
  padding:34px 26px!important;
  text-align:center;
  background:
    radial-gradient(circle at 12% 20%,rgba(87,202,202,.18),transparent 15rem),
    radial-gradient(circle at 90% 70%,rgba(235,202,128,.16),transparent 16rem),
    linear-gradient(135deg,#f7ffff,#eef9f8,#fffaf0)!important;
  border-color:#cde6e3!important;
}
.speaker-light{
  position:absolute;
  width:220px;height:220px;
  border-radius:50%;
  right:-80px;top:-105px;
  background:radial-gradient(circle,rgba(84,195,194,.22),transparent 67%);
  animation:speakerGlowMove 7s ease-in-out infinite alternate;
}
.speaker-copy-only{position:relative;z-index:2}
.speaker-card h2{color:#0b5972!important}
.speaker-card blockquote{
  border-left:0!important;
  max-width:640px;
  margin:15px auto 0!important;
  color:#36717a!important;
}
@keyframes speakerGlowMove{
  to{transform:translate(-70px,60px) scale(1.12)}
}

/* Scripture */
.scripture-card{
  background:
    radial-gradient(circle at 85% 18%,rgba(255,221,144,.25),transparent 13rem),
    linear-gradient(135deg,#07566f,#0b7d91)!important;
}

/* Live */
.live-card{
  background:linear-gradient(135deg,#ffffff,#f1fbfa)!important;
  border-color:#d2e8e5!important;
}
.live-card h2{color:#0b5972!important}

/* Footer - NO Facebook / Instagram / social icons */
.site-footer{
  background:
    radial-gradient(circle at 84% 0%,rgba(73,190,190,.25),transparent 16rem),
    linear-gradient(145deg,#073d5b,#075d73 52%,#0b7882)!important;
}
.footer-inner a{color:#d7f4f2!important}
.footer-inner blockquote{color:#edf9f7!important}
.footer-inner cite{color:#efce86!important}

/* richer modern animated mesh across white sections */
.next-section,.journey-section,.schedule-section,.speaker-section,.live-section{
  position:relative;
}
.next-section::before,.journey-section::before,.schedule-section::before,.speaker-section::before,.live-section::before{
  content:"";
  position:absolute;
  pointer-events:none;
  width:240px;height:240px;
  border-radius:50%;
  filter:blur(45px);
  opacity:.08;
  background:#39b9bc;
  animation:sectionMeshFloat 10s ease-in-out infinite alternate;
}
.next-section::before{right:-110px;top:10%}
.journey-section::before{left:-130px;top:35%;animation-delay:-2s}
.schedule-section::before{right:-130px;top:30%;animation-delay:-4s}
.speaker-section::before{left:-120px;top:10%;animation-delay:-6s}
.live-section::before{right:-130px;top:0;animation-delay:-8s}
@keyframes sectionMeshFloat{
  to{transform:translate(55px,45px) scale(1.16)}
}

@media(max-width:650px){
  .hero-dove{width:92px;right:0;top:13%}
  .city-label rect{width:135px}
  .city-name{font-size:9px}
  .city-day{font-size:8px}
}
@media(prefers-reduced-motion:reduce){
  .hero-dove,.svg-route,.city-pulse,.speaker-light,
  .next-section::before,.journey-section::before,.schedule-section::before,.speaker-section::before,.live-section::before{
    animation:none!important;
  }
}
