:root{
  --ink:#1a0f20;
  --ink-2:#24122b;
  --purple:#8551a0;
  --purple-2:#b57ad0;
  --lav:#d9c7e8;
  --lav-soft:#eee7f5;
  --cream:#f4e9d7;
  --paper:#faf8fb;
  --white:#fff;
  --muted:#766b7b;
  --line:rgba(47,25,56,.14);
  --glow:rgba(181,122,208,.42);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"DM Sans",sans-serif;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
button,a{-webkit-tap-highlight-color:transparent}
.skip-link{
  position:fixed;top:-4rem;left:1rem;z-index:99999;
  padding:.7rem 1rem;background:#fff;color:var(--ink);border-radius:.6rem;
}
.skip-link:focus{top:1rem}
.site-header{
  position:absolute;inset:0 0 auto;z-index:50;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.navbar{padding:1rem 0}
.brandmark{
  display:flex;align-items:center;gap:.65rem;font-weight:700;
  letter-spacing:.08em;font-size:.9rem
}
.brandmark small{font-weight:500;opacity:.7}
.brand-dot{
  width:.85rem;height:.85rem;border-radius:50%;
  background:var(--purple-2);box-shadow:0 0 0 .35rem rgba(181,122,208,.14)
}
.nav-link{color:rgba(255,255,255,.8)!important;font-size:.86rem}
.nav-link:hover{color:#fff!important}
.btn-accent{
  --bs-btn-color:#170d1b;
  --bs-btn-bg:#c894df;
  --bs-btn-border-color:#c894df;
  --bs-btn-hover-bg:#e0baf0;
  --bs-btn-hover-border-color:#e0baf0;
  font-weight:700;
}
.btn-ghost{
  --bs-btn-color:#fff;--bs-btn-border-color:rgba(255,255,255,.28);
  --bs-btn-hover-color:#fff;--bs-btn-hover-bg:rgba(255,255,255,.08);
}
.btn-ghost-light{
  --bs-btn-color:#fff;--bs-btn-border-color:rgba(255,255,255,.3);
  --bs-btn-hover-color:#fff;--bs-btn-hover-bg:rgba(255,255,255,.08);
}
.section-space{padding:7rem 0}
.section-label{
  display:inline-block;margin-bottom:1rem;
  font-size:.72rem;letter-spacing:.17em;font-weight:700;color:var(--purple);
}
.section-label.light{color:#dcbbea}
.section-title{
  font-family:"Bodoni Moda",serif;
  font-size:clamp(2.8rem,6vw,6rem);
  line-height:.98;letter-spacing:-.045em;
}
.section-title em{font-weight:600;color:var(--purple)}
.light-title{color:#fff}
.light-title em{color:#d8a9ed}
.text-muted-custom{color:var(--muted);line-height:1.8}

/* HERO */
.hero{
  min-height:100svh;position:relative;isolation:isolate;overflow:hidden;
  color:#fff;background:
    radial-gradient(circle at 80% 25%, rgba(159,92,187,.18), transparent 25rem),
    radial-gradient(circle at 15% 80%, rgba(101,55,122,.28), transparent 30rem),
    linear-gradient(135deg,#120b16 0%,#1a0f20 50%,#27142e 100%);
}
.hero-grid{
  position:absolute;inset:0;z-index:-2;opacity:.14;
  background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(to bottom,black,transparent 90%);
}
.hero-orb{
  position:absolute;border-radius:50%;filter:blur(14px);z-index:-1;opacity:.6
}
.orb-1{width:36vw;height:36vw;min-width:360px;min-height:360px;right:-10%;top:12%;background:radial-gradient(circle,#a868c7 0%,rgba(168,104,199,.08) 55%,transparent 72%)}
.orb-2{width:26vw;height:26vw;min-width:280px;min-height:280px;left:-8%;bottom:-10%;background:radial-gradient(circle,#68437e 0%,rgba(104,67,126,.05) 65%,transparent 75%)}
.hero-meta,.hero-bottom{
  position:absolute;left:3rem;right:3rem;display:flex;justify-content:space-between;
  font-size:.68rem;letter-spacing:.17em;color:rgba(255,255,255,.55)
}
.hero-meta{top:6.4rem}
.hero-bottom{bottom:1.8rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.12)}
.eyebrow{font-size:.74rem;letter-spacing:.22em;color:#d6b4e6;font-weight:700}
.hero-title{margin:.6rem 0 1.2rem;font-family:"DM Sans",sans-serif;font-weight:700;letter-spacing:-.075em;line-height:.78}
.hero-title .line{display:block;font-size:clamp(5.2rem,15vw,13rem)}
.hero-title .outline{
  color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.82);
  margin-left:8vw
}
.hero-subgrid{
  max-width:760px;display:grid;grid-template-columns:170px 1fr;gap:2rem;align-items:end
}
.hero-year{
  font-family:"Bodoni Moda",serif;font-size:4rem;line-height:.75;
  color:#dcb4ee;border-right:1px solid rgba(255,255,255,.18)
}
.hero-year span{display:block;margin-left:1.3rem}
.hero-lead p{margin:0 0 .35rem;color:rgba(255,255,255,.62)}
.hero-lead strong{font-size:1rem;letter-spacing:.12em}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}
.butterfly-stage{
  aspect-ratio:1/1;position:relative;display:grid;place-items:center;
}
.main-butterfly{
  width:min(30vw,420px);filter:drop-shadow(0 20px 50px rgba(195,137,220,.2));
  animation:heroFloat 5.2s ease-in-out infinite;
}
.ring{
  position:absolute;border:1px solid rgba(255,255,255,.17);border-radius:50%
}
.ring-a{inset:3%;animation:spin 18s linear infinite}
.ring-b{inset:17%;border-style:dashed;animation:spinReverse 22s linear infinite}
.ring-a::after,.ring-b::after{
  content:"";position:absolute;width:.65rem;height:.65rem;border-radius:50%;background:#ca97df;
  top:12%;left:18%;box-shadow:0 0 20px var(--glow)
}
.butterfly-caption{
  position:absolute;right:0;bottom:7%;font-family:"Bodoni Moda",serif;font-style:italic;
  font-size:1.1rem;color:rgba(255,255,255,.72);text-align:right
}
.float-butterfly{position:absolute;opacity:.09;filter:grayscale(1) brightness(2);z-index:-1}
.fb-1{width:90px;left:8%;top:20%;animation:floatTiny 8s ease-in-out infinite}
.fb-2{width:65px;right:10%;top:18%;animation:floatTiny 10s ease-in-out -3s infinite}
.fb-3{width:110px;right:34%;bottom:9%;animation:floatTiny 11s ease-in-out -6s infinite}

/* MARQUEE */
.word-marquee{overflow:hidden;background:#c493da;color:#1a0f20;padding:1.25rem 0}
.marquee-track{
  width:max-content;display:flex;align-items:center;gap:2.2rem;
  animation:marquee 22s linear infinite;
}
.marquee-track span{font-weight:700;font-size:clamp(1.25rem,2.5vw,2.4rem);letter-spacing:.05em}
.marquee-track i{font-style:normal;font-size:1.2rem}

/* INTRO */
.intro-section{background:#fff}
.info-list{margin:2rem 0;border-top:1px solid var(--line)}
.info-list div{
  display:grid;grid-template-columns:130px 1fr;gap:1rem;
  padding:1rem 0;border-bottom:1px solid var(--line)
}
.info-list span{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.info-list strong{font-weight:600}
.arrow-link{display:inline-flex;align-items:center;gap:.6rem;color:var(--ink);font-weight:700;text-decoration:none}
.arrow-link span{transition:transform .2s ease}
.arrow-link:hover span{transform:translate(3px,-3px)}
.invitation-poster{
  position:relative;display:block;width:min(100%,520px);margin-inline:auto;
  border:0;padding:0;border-radius:1.4rem;overflow:hidden;background:#eee;
  box-shadow:0 35px 70px rgba(39,20,46,.16);cursor:zoom-in
}
.invitation-poster img{width:100%;aspect-ratio:2/3;object-fit:cover}
.poster-shine{
  position:absolute;z-index:2;inset:-40%;width:35%;height:180%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);
  transform:rotate(16deg) translateX(-380%);animation:shine 5.5s ease-in-out infinite
}
.poster-badge{
  position:absolute;z-index:3;right:1rem;bottom:1rem;
  padding:.6rem .85rem;border-radius:999px;background:rgba(26,15,32,.82);
  color:#fff;font-size:.68rem;letter-spacing:.12em
}

/* COUNTDOWN */
.countdown-band{padding:5.5rem 0;background:#27152f;color:#fff}
.countdown-band h2{font-family:"Bodoni Moda",serif;font-size:clamp(2.7rem,5vw,5rem);line-height:1}
.countdown-band p{color:rgba(255,255,255,.55);max-width:420px}
.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.14)}
.countdown-grid div{padding:2rem 1rem;text-align:center;border-right:1px solid rgba(255,255,255,.14)}
.countdown-grid div:last-child{border-right:0}
.countdown-grid strong{display:block;font-size:clamp(2.5rem,5vw,5.5rem);font-family:"Bodoni Moda",serif;line-height:1}
.countdown-grid span{display:block;margin-top:.55rem;color:#d9b6e8;font-size:.66rem;letter-spacing:.16em}

/* EXPERIENCE */
.experience-section{background:#f7f3f9}
.experience-list{border-top:1px solid var(--line)}
.experience-row{
  display:grid;grid-template-columns:80px 1.4fr 1fr 50px;gap:1rem;align-items:center;
  min-height:170px;border-bottom:1px solid var(--line);transition:padding .25s ease,background .25s ease
}
.experience-row:hover{padding-inline:1rem;background:#fff}
.experience-num{font-size:.7rem;color:var(--muted)}
.experience-row h3{margin:0;font-size:clamp(2.5rem,6vw,6rem);letter-spacing:-.06em;font-weight:700}
.experience-row p{margin:0;color:var(--muted);line-height:1.7}
.experience-mark{font-size:1.7rem;color:var(--purple);text-align:right}

/* SPEAKERS */
.speakers-section{background:#170d1b;color:#fff}
.section-topline{display:flex;justify-content:space-between;gap:2rem;align-items:end}
.section-topline>p{max-width:300px;color:rgba(255,255,255,.48);font-size:.86rem}
.speaker-card{height:100%}
.speaker-image{
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #27152f;

  display: flex;
  align-items: center;
  justify-content: center;
}

.speaker-image img{
  width: 80%;
  height: 80%;
  object-fit: contain;
  object-position: center bottom;
  margin: auto;

  filter: saturate(.95);
  transition: transform .55s ease, filter .55s ease;
}
.speaker-card:hover .speaker-image img{transform:scale(1.035);filter:saturate(1)}
.speaker-index{
  position:absolute;top:1rem;right:1rem;width:3rem;height:3rem;border-radius:50%;
  display:grid;place-items:center;background:#c493da;color:#1a0f20;font-weight:700
}
.speaker-info{
  display:flex;justify-content:space-between;gap:1rem;padding:1.4rem 0;
  border-bottom:1px solid rgba(255,255,255,.15)
}
.church-logo-section{
    /* background: #c493da; */
    padding: 25px 0 30px;
    text-align: center;
}

.church-logo{
    width: 210px;
    max-width: 40vw;
    height: auto;
    display: inline-block;
}
@media (max-width: 767.98px){

  .speaker-image{
    aspect-ratio: 4 / 5;
  }

  .speaker-image img{
    object-position: center top;
  }

}
.speaker-info p{margin:0 0 .35rem;font-size:.67rem;letter-spacing:.15em;color:#caa2dc}
.speaker-info h3{margin:0;font-family:"Bodoni Moda",serif;font-size:2.15rem}
.speaker-details{display:flex;flex-direction:column;gap:.25rem;color:rgba(255,255,255,.55);font-size:.77rem;text-align:right}

/* GALLERY */
.gallery-section{background:#fff}
.event-carousel{overflow:hidden;background:#201126}
.event-carousel .carousel-item{height:min(70vh,680px);min-height:380px}
.event-carousel .carousel-item img{width:100%;height:100%;object-fit:cover}
.carousel-ui{
  position:absolute;left:1rem;right:1rem;bottom:1rem;z-index:5;
  display:flex;justify-content:space-between;align-items:center;color:#fff
}
.carousel-arrow{
  width:3.2rem;height:3.2rem;border-radius:50%;border:1px solid rgba(255,255,255,.35);
  color:#fff;background:rgba(20,10,25,.55);backdrop-filter:blur(8px)
}
.carousel-ui>span{font-size:.68rem;letter-spacing:.13em;padding:.7rem 1rem;border-radius:999px;background:rgba(20,10,25,.55);backdrop-filter:blur(8px)}
.mosaic-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:120px;gap:.8rem}
.mosaic{border:0;padding:0;overflow:hidden;background:#eee;cursor:zoom-in}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.mosaic:hover img{transform:scale(1.04)}
.m1{grid-column:span 4;grid-row:span 3}.m2{grid-column:span 4;grid-row:span 2}
.m3{grid-column:span 4;grid-row:span 3}.m4{grid-column:span 5;grid-row:span 2}
.m5{grid-column:span 3;grid-row:span 3}.m6{grid-column:span 4;grid-row:span 2}

/* FINAL */
.final-cta{background:#c493da;color:#180e1d}
.cta-frame{position:relative;border:1px solid rgba(24,14,29,.25);padding:clamp(2rem,5vw,5rem);overflow:hidden}
.cta-frame>p{font-size:.72rem;letter-spacing:.17em;font-weight:700}
.cta-frame h2{margin:.6rem 0 2rem;max-width:1000px;font-size:clamp(3rem,8vw,8rem);letter-spacing:-.065em;line-height:.83;font-weight:700}
.cta-frame h2 span{font-family:"Bodoni Moda",serif;font-style:italic;font-weight:600}
.cta-actions{display:flex;gap:.8rem;flex-wrap:wrap}
.cta-butterfly{position:absolute;width:min(34vw,430px);right:-7%;bottom:-14%;opacity:.17;transform:rotate(9deg)}
.footer{padding:1.4rem 0;background:#100914;color:rgba(255,255,255,.52);font-size:.67rem;letter-spacing:.14em}

/* MODAL / LIGHTBOX */
.invite-modal-content{background:#170d1b;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:1.2rem}
.invite-full{max-height:82vh;margin:auto;object-fit:contain}
.photo-lightbox[hidden]{display:none}
.photo-lightbox{
  position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:1rem;
  background:rgba(11,6,13,.93);backdrop-filter:blur(12px)
}
.photo-lightbox img{max-width:min(94vw,1300px);max-height:88vh;object-fit:contain}
.lightbox-close{
  position:absolute;top:1rem;right:1rem;width:3.2rem;height:3.2rem;border-radius:50%;
  border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;font-size:1.7rem
}

/* REVEAL */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .75s ease,transform .75s ease}
.reveal.is-visible{opacity:1;transform:none}

/* ANIMATIONS */
@keyframes heroFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-16px) rotate(2deg)}}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinReverse{to{transform:rotate(-360deg)}}
@keyframes floatTiny{0%,100%{transform:translate3d(0,0,0) rotate(-8deg)}50%{transform:translate3d(14px,-22px,0) rotate(8deg)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes shine{0%,35%{transform:rotate(16deg) translateX(-380%);opacity:0}44%{opacity:1}60%,100%{transform:rotate(16deg) translateX(600%);opacity:0}}

@media(max-width:991.98px){
  .site-header{position:absolute}
  .navbar-collapse{margin-top:1rem;padding:1rem;border:1px solid rgba(255,255,255,.12);background:rgba(18,11,22,.94);backdrop-filter:blur(15px)}
  .hero-meta{top:6rem}
  .hero-meta,.hero-bottom{left:1rem;right:1rem}
  .hero-title .line{font-size:clamp(4.8rem,17vw,9rem)}
  .hero-title .outline{margin-left:0}
  .butterfly-stage{max-width:470px;margin-inline:auto}
  .main-butterfly{width:min(60vw,360px)}
  .section-space{padding:5.5rem 0}
  .experience-row{grid-template-columns:60px 1fr 1fr 30px}
}
@media(max-width:767.98px){
  .hero-meta{display:none}
  .hero-bottom{position:static;display:grid;gap:.45rem;padding:1.2rem 0 2rem}
  .hero-title{line-height:.85}
  .hero-title .line{font-size:clamp(4rem,20vw,6rem)}
  .hero-subgrid{grid-template-columns:95px 1fr;gap:1rem}
  .hero-year{font-size:2.8rem}
  .hero-actions .btn{width:100%}
  .section-space{padding:4.5rem 0}
  .countdown-band{padding:4rem 0}
  .countdown-grid{grid-template-columns:repeat(2,1fr)}
  .countdown-grid div:nth-child(2){border-right:0}
  .countdown-grid div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.14)}
  .experience-row{grid-template-columns:42px 1fr 28px;min-height:auto;padding:1.5rem 0}
  .experience-row h3{font-size:2.7rem}
  .experience-row p{grid-column:2/4}
  .experience-mark{grid-column:3;grid-row:1}
  .section-topline{display:block}
  .section-topline>p{margin-top:1rem}
  .speaker-info{display:block}
  .speaker-details{margin-top:1rem;text-align:left}
  .event-carousel .carousel-item{height:52vh;min-height:330px}
  .mosaic-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}
  .mosaic,.m1,.m2,.m3,.m4,.m5,.m6{grid-column:span 1;grid-row:span 1}
  .m1,.m4{grid-column:span 2}
  .carousel-ui>span{display:none}
  .footer .container{text-align:center}
}
@media(max-width:420px){
  .hero-title .line{font-size:18vw}
  .hero-subgrid{grid-template-columns:1fr}
  .hero-year{border-right:0;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:1rem}
  .hero-year span{display:inline;margin-left:0}
  .mosaic-grid{grid-auto-rows:145px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
  .floating-butterflies,.poster-shine{display:none}
}
