@import url('https://fonts.googleapis.com/css2?family=Allura&family=Cormorant+Garamond:wght@400;500;600;700&family=Great+Vibes&family=Lora:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700;800&family=Parisienne&family=Playfair+Display:wght@400;500;600;700;800&display=swap');

:root{--accent:#ff4f86;--accent2:#6654ff;--surface:#fffaf7;--ink:#101325;--radius:26px;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--surface);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}a{color:inherit}.site-nav{position:fixed;z-index:30;left:50%;top:18px;transform:translateX(-50%);width:min(calc(100% - 30px),980px);display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:1px solid #ffffff88;background:#fffdf8d9;backdrop-filter:blur(18px);border-radius:999px;box-shadow:0 16px 50px #30304a18}.brand{display:flex;align-items:center;gap:10px;font-weight:850;letter-spacing:.18em}.brand img{width:33px;height:33px;object-fit:contain}.navlinks{display:flex;gap:18px;font-size:13px}.hero{min-height:92vh;position:relative;overflow:hidden;display:flex;align-items:flex-end;background:#111}.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.84}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#101325d9 0%,#1013255e 46%,#10132522 72%),linear-gradient(0deg,#101325c7,transparent 55%)}.hero-copy{position:relative;z-index:2;color:white;width:min(calc(100% - 40px),var(--max));margin:0 auto 8vh}.eyebrow{letter-spacing:.27em;text-transform:uppercase;font-size:12px;font-weight:800}.hero h1{font-family:Georgia,serif;font-size:clamp(54px,8vw,116px);line-height:.88;max-width:840px;margin:18px 0}.hero p{font-size:clamp(17px,2vw,23px);max-width:620px;line-height:1.55;color:#fffdf0}.grad{background:linear-gradient(90deg,#ff7064,var(--accent),#9d4aff,#4a83ff);-webkit-background-clip:text;color:transparent}.section{padding:110px 24px}.wrap{width:min(100%,var(--max));margin:auto}.split{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}.section h2{font-family:Georgia,serif;font-size:clamp(40px,5vw,76px);line-height:.98;margin:10px 0 28px}.section p{font-size:18px;line-height:1.75;color:#54566a}.photo{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);box-shadow:0 30px 90px #251d3c20}.schedule{background:#101325;color:white}.schedule .eyebrow{color:#ff9bac}.schedule-list{margin-top:45px}.schedule-item{display:grid;grid-template-columns:130px 1fr auto;gap:20px;padding:24px 0;border-top:1px solid #ffffff26;align-items:baseline}.schedule-item strong{font-family:Georgia,serif;font-size:28px}.schedule-item span{color:#b9bac9}.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:270px 270px;gap:14px}.gallery-grid img{width:100%;height:100%;object-fit:cover;border-radius:22px}.gallery-grid img:first-child{grid-row:span 2}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}.person{background:white;border:1px solid #ece7e1;border-radius:24px;overflow:hidden;box-shadow:0 18px 50px #2b253815}.person img{width:100%;height:260px;object-fit:cover}.person div{padding:22px}.person h3{font-family:Georgia,serif;font-size:28px;margin:0 0 4px}.pill{display:inline-flex;padding:13px 19px;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent2));color:white;text-decoration:none;font-weight:800}.cta{padding:120px 24px;text-align:center;background:linear-gradient(135deg,#ffe9dc,#ffe7f1 45%,#e9e5ff)}.cta h2{font-family:Georgia,serif;font-size:clamp(45px,7vw,85px);margin:0 auto 30px;max-width:900px}.sample-note{position:fixed;z-index:40;right:18px;bottom:18px;padding:10px 14px;border-radius:999px;background:#101325;color:#fff;font-size:12px;box-shadow:0 15px 50px #0003}.empty-public{min-height:100vh;display:grid;place-items:center;text-align:center;padding:40px;background:radial-gradient(circle at 20% 10%,#ffe6e4,transparent 35%),radial-gradient(circle at 80% 20%,#e8e3ff,transparent 35%),#fffaf7}.empty-public img{width:120px}.empty-public h1{font:64px/1 Georgia,serif;margin:20px 0}.empty-public p{color:#666;max-width:560px;line-height:1.7}@media(max-width:760px){.navlinks{display:none}.split{grid-template-columns:1fr}.section{padding:80px 20px}.schedule-item{grid-template-columns:90px 1fr}.schedule-item span{grid-column:2}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:220px 180px 180px}.gallery-grid img:first-child{grid-column:span 2;grid-row:auto}.people-grid{grid-template-columns:1fr}.hero h1{font-size:62px}}


/* ================================================================
   M28 — SIBBIAN DESIGN SYSTEM
   ================================================================ */
:root{
 --sib-primary:var(--accent);
 --sib-accent:var(--accent2);
 --sib-secondary:var(--surface);
 --sib-text:var(--ink);
 --sib-muted:#626575;
 --sib-radius:26px;
 --sib-section-gap:110px;
 --sib-max:1180px;
 --sib-heading-scale:1;
 --sib-overlay-start:.84;
 --sib-overlay-end:.18;
 --sib-focal-x:50%;
 --sib-focal-y:50%;
}
body.sib-public{background:var(--sib-secondary);color:var(--sib-text);transition:background .25s ease,color .25s ease}
body.sib-public .wrap{max-width:var(--sib-max)}
body.sib-public .section{padding-top:var(--sib-section-gap);padding-bottom:var(--sib-section-gap)}
body.sib-public .photo,body.sib-public .gallery-grid img,body.sib-public .person,body.sib-public .site-nav{border-radius:var(--sib-radius)}
body.sib-public .pill{background:linear-gradient(90deg,var(--sib-primary),var(--sib-accent))}
body.sib-public .section p{color:color-mix(in srgb,var(--sib-text) 68%,transparent)}
body.sib-public .hero img{object-position:var(--sib-focal-x) var(--sib-focal-y)}
body.sib-public .hero h1{font-size:calc(clamp(54px,8vw,116px) * var(--sib-heading-scale))}

/* typography personalities */
body[data-sib-type="timeless"] :is(.hero h1,.section h2,.person h3,.schedule-item strong,.cta h2){font-family:Georgia,"Times New Roman",serif}
body[data-sib-type="romantic"] :is(.hero h1,.section h2,.person h3,.schedule-item strong,.cta h2){font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:500}
body[data-sib-type="editorial"] :is(.hero h1,.section h2,.person h3,.schedule-item strong,.cta h2){font-family:Georgia,"Times New Roman",serif;letter-spacing:-.055em}
body[data-sib-type="editorial"] .eyebrow{letter-spacing:.34em}
body[data-sib-type="modern"] :is(.hero h1,.section h2,.person h3,.schedule-item strong,.cta h2){font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:800;letter-spacing:-.06em}
body[data-sib-type="relaxed"] :is(.hero h1,.section h2,.person h3,.schedule-item strong,.cta h2){font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.025em}
body[data-sib-type="bold"] :is(.hero h1,.section h2,.person h3,.schedule-item strong,.cta h2){font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:900;letter-spacing:-.075em;text-transform:uppercase}

/* spacing */
body[data-sib-spacing="compact"]{--sib-section-gap:72px}
body[data-sib-spacing="comfortable"]{--sib-section-gap:110px}
body[data-sib-spacing="airy"]{--sib-section-gap:145px}
body[data-sib-spacing="dramatic"]{--sib-section-gap:190px}

/* corners */
body[data-sib-corners="square"]{--sib-radius:4px}
body[data-sib-corners="soft"]{--sib-radius:15px}
body[data-sib-corners="rounded"]{--sib-radius:26px}
body[data-sib-corners="pill"]{--sib-radius:38px}

/* widths */
body[data-sib-width="narrow"]{--sib-max:960px}
body[data-sib-width="balanced"]{--sib-max:1180px}
body[data-sib-width="wide"]{--sib-max:1360px}

/* photo language */
body[data-sib-photo="soft"] :is(.photo,.gallery-grid img,.person img,.hero>img){filter:saturate(.84) contrast(.96) brightness(1.02)}
body[data-sib-photo="editorial"] :is(.photo,.gallery-grid img,.person img,.hero>img){filter:saturate(.86) contrast(1.08)}
body[data-sib-photo="cinematic"] :is(.photo,.gallery-grid img,.person img,.hero>img){filter:saturate(.78) contrast(1.13) brightness(.92)}
body[data-sib-photo="clean"] :is(.photo,.gallery-grid img,.person img,.hero>img){filter:none}

/* header position */
body[data-sib-header-position="fixed"] .site-nav{position:fixed}
body[data-sib-header-position="sticky"] .site-nav{position:sticky;top:18px;transform:none;margin:18px auto -78px}
body[data-sib-header-position="static"] .site-nav{position:relative;top:auto;left:auto;transform:none;margin:16px auto}

/* header treatment */
body[data-sib-header-style="floating"] .site-nav{background:color-mix(in srgb,var(--sib-secondary) 88%,transparent);border:1px solid color-mix(in srgb,var(--sib-text) 8%,transparent);backdrop-filter:blur(18px)}
body[data-sib-header-style="transparent"] .site-nav{background:transparent;border-color:transparent;box-shadow:none;color:#fff;backdrop-filter:none}
body[data-sib-header-style="solid"] .site-nav{background:var(--sib-secondary);border:1px solid color-mix(in srgb,var(--sib-text) 10%,transparent);box-shadow:0 12px 35px color-mix(in srgb,var(--sib-text) 12%,transparent)}

/* nav layout */
body[data-sib-nav-layout="centered"] .site-nav{display:grid;grid-template-columns:1fr auto 1fr}
body[data-sib-nav-layout="centered"] .navlinks{justify-self:center}
body[data-sib-nav-layout="centered"] .site-nav>.pill{justify-self:end}
body[data-sib-nav-layout="minimal"] .site-nav{width:min(calc(100% - 30px),720px)}
body[data-sib-nav-layout="minimal"] .navlinks{gap:11px;font-size:11px}

/* RSVP button */
body[data-sib-header-button="outline"] .site-nav .nav-rsvp-button{background:transparent;border:1px solid currentColor;color:inherit}
body[data-sib-header-button="soft"] .site-nav .nav-rsvp-button{background:color-mix(in srgb,var(--sib-primary) 14%,var(--sib-secondary));color:var(--sib-text)}
body[data-sib-header-button="filled"] .site-nav .nav-rsvp-button{background:linear-gradient(90deg,var(--sib-primary),var(--sib-accent));color:#fff}

/* hero height */
body[data-sib-hero-height="compact"] .hero{min-height:68vh}
body[data-sib-hero-height="full"] .hero{min-height:82vh}
body[data-sib-hero-height="screen"] .hero{min-height:100vh}

/* hero overlay */
body[data-sib-hero-overlay="light"] .hero:after{background:linear-gradient(90deg,#1013258a 0%,#10132525 55%,transparent),linear-gradient(0deg,#10132580,transparent 45%)}
body[data-sib-hero-overlay="balanced"] .hero:after{background:linear-gradient(90deg,#101325d9 0%,#1013255e 46%,#10132522 72%),linear-gradient(0deg,#101325c7,transparent 55%)}
body[data-sib-hero-overlay="dramatic"] .hero:after{background:linear-gradient(90deg,#080a11f2 0%,#101325a8 54%,#10132555),linear-gradient(0deg,#080a11eb,transparent 62%)}

/* hero heading presence */
body[data-sib-hero-presence="quiet"]{--sib-heading-scale:.72}
body[data-sib-hero-presence="balanced"]{--sib-heading-scale:.88}
body[data-sib-hero-presence="dramatic"]{--sib-heading-scale:1}

/* hero alignment */
body[data-sib-hero-align="center"] .hero-copy{text-align:center;margin-left:auto;margin-right:auto}
body[data-sib-hero-align="center"] .hero-copy :is(h1,p){margin-left:auto;margin-right:auto}
body[data-sib-hero-align="right"] .hero-copy{text-align:right;margin-left:auto}
body[data-sib-hero-align="right"] .hero-copy :is(h1,p){margin-left:auto}

/* hero compositions */
body[data-sib-hero-layout="centered"] .hero{align-items:center}
body[data-sib-hero-layout="centered"] .hero:after{background:#0d102066}
body[data-sib-hero-layout="centered"] .hero-copy{text-align:center;margin:auto;color:#fff}
body[data-sib-hero-layout="centered"] .hero-copy :is(h1,p){margin-left:auto;margin-right:auto}

body[data-sib-hero-layout="split"] .hero,
body[data-sib-hero-layout="portrait"] .hero,
body[data-sib-hero-layout="minimal"] .hero{background:var(--sib-secondary);color:var(--sib-text)}
body[data-sib-hero-layout="split"] .hero>img{left:52%;width:48%;opacity:1}
body[data-sib-hero-layout="split"] .hero:after{background:linear-gradient(90deg,var(--sib-secondary) 0 45%,transparent 61%)}
body[data-sib-hero-layout="split"] .hero-copy{color:var(--sib-text);width:min(44%,600px);margin-left:max(6vw,calc((100vw - var(--sib-max))/2))}
body[data-sib-hero-layout="split"] .hero-copy p{color:color-mix(in srgb,var(--sib-text) 72%,transparent)}

body[data-sib-hero-layout="portrait"] .hero>img{
 inset:8% 6% 8% auto;width:43%;height:84%;border-radius:var(--sib-radius);opacity:1;box-shadow:0 30px 85px #14111d28
}
body[data-sib-hero-layout="portrait"] .hero:after{display:none}
body[data-sib-hero-layout="portrait"] .hero-copy{color:var(--sib-text);width:min(44%,580px);margin-left:max(6vw,calc((100vw - var(--sib-max))/2));margin-bottom:14vh}
body[data-sib-hero-layout="portrait"] .hero-copy p{color:color-mix(in srgb,var(--sib-text) 68%,transparent)}

body[data-sib-hero-layout="minimal"] .hero>img{
 inset:12% 6% 12% auto;width:34%;height:76%;border-radius:var(--sib-radius);opacity:.62
}
body[data-sib-hero-layout="minimal"] .hero:after{display:none}
body[data-sib-hero-layout="minimal"] .hero-copy{color:var(--sib-text);width:min(52%,680px);margin-left:max(6vw,calc((100vw - var(--sib-max))/2));margin-bottom:16vh}
body[data-sib-hero-layout="minimal"] .hero-copy p{color:color-mix(in srgb,var(--sib-text) 62%,transparent)}

/* motion */
@keyframes sibHeroFade{from{opacity:0}to{opacity:1}}
@keyframes sibHeroRise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes sibHeroReveal{from{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(-12px)}to{opacity:1;clip-path:inset(0 0 0 0);transform:none}}
@keyframes sibHeroCinematicCopy{from{opacity:0;transform:translateY(34px) scale(.975);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes sibHeroCinematicImage{from{transform:scale(1.08);filter:saturate(.72)}to{transform:scale(1);filter:none}}
body[data-sib-hero-motion="none"] .hero-copy{animation:none}
body[data-sib-hero-motion="fade"] .hero-copy{animation:sibHeroFade .75s ease both}
body[data-sib-hero-motion="rise"] .hero-copy{animation:sibHeroRise .95s cubic-bezier(.2,.8,.2,1) both}
body[data-sib-hero-motion="reveal"] .hero-copy{animation:sibHeroReveal 1s cubic-bezier(.16,.8,.2,1) both}
body[data-sib-hero-motion="cinematic"] .hero-copy{animation:sibHeroCinematicCopy 1.2s cubic-bezier(.16,.8,.2,1) both}
body[data-sib-hero-motion="cinematic"] .hero>img{animation:sibHeroCinematicImage 1.5s cubic-bezier(.16,.8,.2,1) both}
body[data-sib-motion="elegant"] :is(.photo,.person,.gallery-grid img){transition:transform .35s ease,box-shadow .35s ease}
body[data-sib-motion="elegant"] :is(.photo,.person,.gallery-grid img):hover{transform:translateY(-3px)}
body[data-sib-motion="expressive"] :is(.photo,.person,.gallery-grid img){transition:transform .45s cubic-bezier(.16,.8,.2,1),filter .45s ease}
body[data-sib-motion="expressive"] :is(.photo,.person,.gallery-grid img):hover{transform:translateY(-7px) scale(1.01)}

/* preview affordances */
body.sib-design-preview [data-sib-design-target]{cursor:pointer}
body.sib-design-preview [data-sib-design-target]:hover{outline:2px solid #846af4;outline-offset:-2px}
body.sib-design-preview [data-sib-design-target]:hover:before{
 content:"Edit "+attr(data-sib-design-target);position:absolute;z-index:80;left:14px;top:14px;
 padding:7px 9px;border-radius:999px;background:#171a28;color:#fff;font:700 10px Inter,system-ui
}

.public-mobile-menu-toggle{display:none;border:0;background:transparent;color:inherit;padding:7px;cursor:pointer}
.public-mobile-menu-toggle span{display:block;width:22px;height:2px;background:currentColor;margin:4px 0;border-radius:3px}

@media(max-width:760px){
 body.sib-public{--sib-section-gap:min(var(--sib-section-gap),90px)}
 body[data-sib-hero-layout="split"] .hero>img,
 body[data-sib-hero-layout="portrait"] .hero>img,
 body[data-sib-hero-layout="minimal"] .hero>img{inset:0;width:100%;height:100%;border-radius:0;opacity:.84}
 body[data-sib-hero-layout="split"] .hero:after,
 body[data-sib-hero-layout="portrait"] .hero:after,
 body[data-sib-hero-layout="minimal"] .hero:after{display:block;background:linear-gradient(0deg,#101325dc,transparent 75%)}
 body[data-sib-hero-layout="split"] .hero-copy,
 body[data-sib-hero-layout="portrait"] .hero-copy,
 body[data-sib-hero-layout="minimal"] .hero-copy{color:#fff;width:min(calc(100% - 40px),var(--sib-max));margin:0 auto 8vh}
 body[data-sib-hero-layout="split"] .hero-copy p,
 body[data-sib-hero-layout="portrait"] .hero-copy p,
 body[data-sib-hero-layout="minimal"] .hero-copy p{color:#fffdf0}

 .site-nav{
   top:12px!important;left:12px!important;right:12px!important;transform:none!important;width:auto!important;
   display:grid!important;grid-template-columns:1fr auto!important;gap:8px!important;
   border-radius:18px!important;padding:10px 12px!important
 }
 .site-nav .brand{order:1}
 .public-mobile-menu-toggle{display:block;order:2}
 .site-nav .navlinks{display:none}
 .site-nav.mobile-open .navlinks{
   display:flex;order:3;grid-column:1/-1;flex-direction:column;gap:4px;width:100%;
   padding:9px 0 2px;border-top:1px solid color-mix(in srgb,currentColor 12%,transparent)
 }
 .site-nav.mobile-open .navlinks a{padding:10px 8px;border-radius:10px}
 

 body[data-sib-mobile-nav="drawer"] .site-nav.mobile-open{
   position:fixed!important;left:auto!important;right:0!important;top:0!important;bottom:0!important;
   width:min(86vw,350px)!important;border-radius:0!important;display:flex!important;flex-direction:column!important;
   align-items:stretch!important;justify-content:flex-start!important;padding:18px!important
 }
 body[data-sib-mobile-nav="drawer"] .site-nav.mobile-open .public-mobile-menu-toggle{position:absolute;right:15px;top:15px}
 body[data-sib-mobile-nav="drawer"] .site-nav.mobile-open .navlinks{display:flex!important;margin-top:35px;border-top:0}
 body[data-sib-mobile-nav="drawer"] 

 body[data-sib-mobile-nav="fullscreen"] .site-nav.mobile-open{
   position:fixed!important;inset:0!important;width:100%!important;border-radius:0!important;
   display:flex!important;flex-direction:column!important;align-items:stretch!important;padding:22px!important;
   background:var(--sib-secondary)!important;color:var(--sib-text)!important
 }
 body[data-sib-mobile-nav="fullscreen"] .site-nav.mobile-open .public-mobile-menu-toggle{position:absolute;right:18px;top:18px}
 body[data-sib-mobile-nav="fullscreen"] .site-nav.mobile-open .navlinks{
   display:flex!important;flex:1;justify-content:center;align-items:center;border:0;font-size:24px
 }
 body[data-sib-mobile-nav="fullscreen"] 
}

@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* M32 smart navigation */
.site-nav .navlinks .nav-rsvp-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 16px;
  border-radius:999px;
  text-decoration:none;
  color:#fff;
}
.site-nav .navlinks a[hidden]{display:none!important}
@media(max-width:760px){
 .site-nav.mobile-open .navlinks .nav-rsvp-button{margin-top:6px;text-align:center}
}

/* ================================================================
   M34 — NESTED SMART NAVIGATION
   ================================================================ */
.site-nav .navlinks{
  align-items:center;
}
.nav-menu-group{
  position:relative;
  display:flex;
  align-items:center;
}
.nav-menu-parent{
  display:flex;
  align-items:center;
  gap:2px;
}
.nav-submenu-toggle{
  border:0;background:transparent;color:inherit;cursor:pointer;
  width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  font:800 13px/1 inherit;padding:0
}
.nav-submenu{
  position:absolute;
  top:calc(100% + 10px);
  left:50%;
  transform:translateX(-50%) translateY(-4px);
  min-width:180px;
  padding:7px;
  border-radius:14px;
  background:color-mix(in srgb,var(--sib-secondary) 96%,transparent);
  border:1px solid color-mix(in srgb,var(--sib-text) 10%,transparent);
  box-shadow:0 18px 44px color-mix(in srgb,var(--sib-text) 16%,transparent);
  backdrop-filter:blur(18px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.18s ease;
}
.nav-submenu a{
  display:block!important;
  padding:9px 11px!important;
  border-radius:9px;
  white-space:nowrap;
  color:var(--sib-text)!important;
}
.nav-submenu a:hover{background:color-mix(in srgb,var(--sib-primary) 10%,transparent)}
.nav-menu-group:hover .nav-submenu,
.nav-menu-group:focus-within .nav-submenu,
.nav-menu-group.submenu-open .nav-submenu{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)
}

/* Make the four Hero choices materially different. */
body[data-sib-hero-layout="full_bleed"] .hero{
  display:flex;
  align-items:flex-end;
}
body[data-sib-hero-layout="full_bleed"] .hero>img{
  inset:0;width:100%;height:100%;border-radius:0;opacity:1
}
body[data-sib-hero-layout="full_bleed"] .hero-copy{
  width:min(760px,82vw);
  margin:0 0 10vh max(6vw,calc((100vw - var(--sib-max))/2));
}

body[data-sib-hero-layout="split"] .hero{
  display:flex;align-items:center;background:var(--sib-secondary);color:var(--sib-text)
}
body[data-sib-hero-layout="split"] .hero>img{
  inset:0 0 0 auto;width:50%;height:100%;border-radius:0;opacity:1
}
body[data-sib-hero-layout="split"] .hero:after{
  background:linear-gradient(90deg,var(--sib-secondary) 0 47%,transparent 60%)
}
body[data-sib-hero-layout="split"] .hero-copy{
  width:min(42%,620px);margin:0 0 0 max(6vw,calc((100vw - var(--sib-max))/2));color:var(--sib-text)
}
body[data-sib-hero-layout="split"] .hero-copy p{color:color-mix(in srgb,var(--sib-text) 68%,transparent)}

body[data-sib-hero-layout="portrait"] .hero{
  background:var(--sib-secondary);color:var(--sib-text);display:flex;align-items:center
}
body[data-sib-hero-layout="portrait"] .hero>img{
  inset:8% 7% 8% auto;width:38%;height:84%;border-radius:var(--sib-radius);opacity:1;
  box-shadow:0 32px 85px color-mix(in srgb,var(--sib-text) 18%,transparent)
}
body[data-sib-hero-layout="portrait"] .hero:after{display:none}
body[data-sib-hero-layout="portrait"] .hero-copy{
  width:min(48%,650px);margin:0 0 0 max(6vw,calc((100vw - var(--sib-max))/2));color:var(--sib-text)
}
body[data-sib-hero-layout="portrait"] .hero-copy p{color:color-mix(in srgb,var(--sib-text) 68%,transparent)}

body[data-sib-hero-layout="minimal"] .hero{
  background:var(--sib-secondary);color:var(--sib-text);display:flex;align-items:center
}
body[data-sib-hero-layout="minimal"] .hero:after{display:none}
body[data-sib-hero-layout="minimal"] .hero>img{
  inset:auto 7% 9% auto;width:34%;height:28%;border-radius:var(--sib-radius);opacity:1;
  box-shadow:0 22px 60px color-mix(in srgb,var(--sib-text) 14%,transparent)
}
body[data-sib-hero-layout="minimal"] .hero-copy{
  width:min(68%,880px);margin:0 0 6vh max(6vw,calc((100vw - var(--sib-max))/2));color:var(--sib-text)
}
body[data-sib-hero-layout="minimal"] .hero-copy h1{
  max-width:10ch;
}
body[data-sib-hero-layout="minimal"] .hero-copy p{
  color:color-mix(in srgb,var(--sib-text) 62%,transparent);max-width:48ch
}

@media(max-width:760px){
  .nav-menu-group{
    width:100%;
    display:block;
  }
  .nav-menu-parent{
    width:100%;
    display:grid;
    grid-template-columns:1fr auto;
  }
  .nav-menu-parent>a{display:block}
  .nav-submenu-toggle{
    width:38px;height:38px
  }
  .nav-submenu{
    position:static;
    transform:none!important;
    min-width:0;
    width:100%;
    padding:3px 0 5px 14px;
    border:0;
    box-shadow:none;
    backdrop-filter:none;
    background:transparent;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    display:none;
  }
  .nav-menu-group.submenu-open .nav-submenu{display:block}
  .nav-submenu a{
    padding:9px 10px!important;
    border-left:2px solid color-mix(in srgb,var(--sib-primary) 35%,transparent);
    border-radius:0!important
  }

  /* On phones these still remain distinct while staying readable. */
  body[data-sib-hero-layout="split"] .hero>img{inset:0 0 44% 0;width:100%;height:56%;opacity:1}
  body[data-sib-hero-layout="split"] .hero:after{display:none}
  body[data-sib-hero-layout="split"] .hero-copy{
    position:absolute;left:20px;right:20px;bottom:6vh;width:auto;margin:0;color:var(--sib-text)
  }

  body[data-sib-hero-layout="portrait"] .hero>img{
    inset:7% 7% auto auto;width:46%;height:44%;border-radius:var(--sib-radius)
  }
  body[data-sib-hero-layout="portrait"] .hero-copy{
    width:86%;margin:auto auto 8vh 7%;color:var(--sib-text)
  }

  body[data-sib-hero-layout="minimal"] .hero>img{
    inset:auto 7% 7% auto;width:44%;height:20%
  }
  body[data-sib-hero-layout="minimal"] .hero-copy{
    width:86%;margin:auto auto 18vh 7%;color:var(--sib-text)
  }
}

/* ================================================================
   M35 — HERO PRESETS + SLOWER ENTRANCES
   ================================================================ */
body[data-sib-hero-motion="none"] .hero-copy{animation:none!important}
body[data-sib-hero-motion="fade"] .hero-copy{animation:sibHeroFade 1.25s ease .38s both!important}
body[data-sib-hero-motion="rise"] .hero-copy{animation:sibHeroRise 1.45s cubic-bezier(.2,.8,.2,1) .42s both!important}
body[data-sib-hero-motion="reveal"] .hero-copy{animation:sibHeroReveal 1.65s cubic-bezier(.16,.8,.2,1) .42s both!important}
body[data-sib-hero-motion="cinematic"] .hero-copy{animation:sibHeroCinematicCopy 1.85s cubic-bezier(.16,.8,.2,1) .48s both!important}
body[data-sib-hero-motion="cinematic"] .hero>img{animation:sibHeroCinematicImage 2.35s cubic-bezier(.16,.8,.2,1) .12s both!important}

/* Full Photo */
body[data-sib-hero-layout="full_bleed"] .hero{
  display:flex!important;align-items:flex-end!important;background:#101325!important
}
body[data-sib-hero-layout="full_bleed"] .hero>img{
  inset:0!important;width:100%!important;height:100%!important;border-radius:0!important;opacity:1!important
}
body[data-sib-hero-layout="full_bleed"] .hero:after{display:block!important}
body[data-sib-hero-layout="full_bleed"] .hero-copy{
  position:relative!important;width:min(760px,82vw)!important;
  margin:0 0 10vh max(6vw,calc((100vw - var(--sib-max))/2))!important;color:#fff!important;z-index:2!important
}
body[data-sib-hero-layout="full_bleed"] .hero-copy p{color:#fff!important}

/* Side by Side */
body[data-sib-hero-layout="split"] .hero{
  display:grid!important;grid-template-columns:1fr 1fr!important;align-items:stretch!important;
  background:var(--sib-secondary)!important;color:var(--sib-text)!important
}
body[data-sib-hero-layout="split"] .hero:after{display:none!important}
body[data-sib-hero-layout="split"] .hero>img{
  position:relative!important;inset:auto!important;grid-column:2!important;grid-row:1!important;
  width:100%!important;height:100%!important;border-radius:0!important;opacity:1
}
body[data-sib-hero-layout="split"] .hero-copy{
  position:relative!important;grid-column:1!important;grid-row:1!important;align-self:center!important;
  width:auto!important;max-width:620px!important;margin:0!important;padding:11vh clamp(40px,7vw,120px)!important;
  color:var(--sib-text)!important;z-index:2!important
}
body[data-sib-hero-layout="split"] .hero-copy p{color:color-mix(in srgb,var(--sib-text) 68%,transparent)!important}

/* Photo Card */
body[data-sib-hero-layout="portrait"] .hero{
  display:grid!important;grid-template-columns:minmax(320px,44%) minmax(0,1fr)!important;
  gap:clamp(40px,7vw,110px)!important;align-items:center!important;
  padding:9vh max(6vw,calc((100vw - var(--sib-max))/2))!important;
  background:var(--sib-secondary)!important;color:var(--sib-text)!important
}
body[data-sib-hero-layout="portrait"] .hero:after{display:none!important}
body[data-sib-hero-layout="portrait"] .hero>img{
  position:relative!important;inset:auto!important;grid-column:1!important;grid-row:1!important;
  width:100%!important;height:min(72vh,720px)!important;border-radius:var(--sib-radius)!important;
  object-fit:cover!important;opacity:1!important;
  box-shadow:0 34px 90px color-mix(in srgb,var(--sib-text) 17%,transparent)!important
}
body[data-sib-hero-layout="portrait"] .hero-copy{
  position:relative!important;grid-column:2!important;grid-row:1!important;
  width:auto!important;max-width:680px!important;margin:0!important;padding:0!important;color:var(--sib-text)!important
}
body[data-sib-hero-layout="portrait"] .hero-copy p{color:color-mix(in srgb,var(--sib-text) 68%,transparent)!important}

/* Big Heading */
body[data-sib-hero-layout="minimal"] .hero{
  display:flex!important;flex-direction:column!important;justify-content:space-between!important;
  padding:11vh max(6vw,calc((100vw - var(--sib-max))/2)) 7vh!important;
  background:var(--sib-secondary)!important;color:var(--sib-text)!important
}
body[data-sib-hero-layout="minimal"] .hero:after{display:none!important}
body[data-sib-hero-layout="minimal"] .hero-copy{
  position:relative!important;order:1!important;width:min(1050px,92%)!important;max-width:none!important;
  margin:0!important;padding:0!important;color:var(--sib-text)!important;z-index:2!important
}
body[data-sib-hero-layout="minimal"] .hero-copy h1{
  max-width:9ch!important;font-size:calc(clamp(70px,10vw,160px) * var(--sib-heading-scale))!important
}
body[data-sib-hero-layout="minimal"] .hero-copy p{
  max-width:48ch!important;color:color-mix(in srgb,var(--sib-text) 64%,transparent)!important
}
body[data-sib-hero-layout="minimal"] .hero>img{
  position:relative!important;order:2!important;inset:auto!important;width:min(760px,68vw)!important;
  height:22vh!important;min-height:170px!important;margin-left:auto!important;margin-top:5vh!important;
  border-radius:var(--sib-radius)!important;object-fit:cover!important;opacity:1!important
}

@media(max-width:760px){
  body[data-sib-hero-layout="full_bleed"] .hero-copy{width:calc(100% - 40px)!important;margin:0 20px 8vh!important}

  body[data-sib-hero-layout="split"] .hero{
    display:grid!important;grid-template-columns:1fr!important;grid-template-rows:52% 48%!important;padding:0!important
  }
  body[data-sib-hero-layout="split"] .hero>img{
    grid-column:1!important;grid-row:1!important;width:100%!important;height:100%!important
  }
  body[data-sib-hero-layout="split"] .hero-copy{
    grid-column:1!important;grid-row:2!important;align-self:center!important;padding:28px 24px 42px!important;color:var(--sib-text)!important
  }

  body[data-sib-hero-layout="portrait"] .hero{
    display:flex!important;flex-direction:column!important;gap:24px!important;padding:88px 22px 46px!important
  }
  body[data-sib-hero-layout="portrait"] .hero>img{
    order:1!important;width:82%!important;height:42vh!important;min-height:300px!important;margin:0 auto!important
  }
  body[data-sib-hero-layout="portrait"] .hero-copy{
    order:2!important;width:100%!important;max-width:none!important
  }

  body[data-sib-hero-layout="minimal"] .hero{padding:96px 22px 42px!important}
  body[data-sib-hero-layout="minimal"] .hero-copy{width:100%!important}
  body[data-sib-hero-layout="minimal"] .hero-copy h1{
    font-size:calc(clamp(54px,16vw,88px) * var(--sib-heading-scale))!important
  }
  body[data-sib-hero-layout="minimal"] .hero>img{
    width:72%!important;height:18vh!important;min-height:130px!important;margin:34px 0 0 auto!important
  }
}

/* ================================================================
   M38 — DATA-DRIVEN FLAGSHIP WEDDING THEME
   ================================================================ */
.sib-public [hidden]{display:none!important}
.section-heading{max-width:760px;margin-bottom:clamp(30px,5vw,64px)}
.section-heading h2{margin:5px 0 8px;font-size:clamp(42px,6vw,84px);line-height:.96;letter-spacing:-.055em}
.section-heading>p{font-size:15px;line-height:1.65;color:color-mix(in srgb,var(--sib-text) 62%,transparent);max-width:55ch}

/* WEDDING DETAILS */
.wedding-details-section{background:color-mix(in srgb,var(--sib-secondary) 93%,var(--sib-primary) 7%)}
.wedding-details-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.wedding-detail-card{
 min-height:155px;padding:22px;border-radius:var(--sib-radius);border:1px solid color-mix(in srgb,var(--sib-text) 10%,transparent);
 background:color-mix(in srgb,var(--sib-secondary) 96%,white 4%);display:flex;flex-direction:column;justify-content:flex-end
}
.wedding-detail-card>span{font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--sib-text) 52%,transparent)}
.wedding-detail-card>strong{font-family:var(--sib-heading);font-size:clamp(24px,3vw,42px);line-height:1;margin-top:10px}
.wedding-detail-card>small{font-size:12px;margin-top:8px;color:color-mix(in srgb,var(--sib-text) 60%,transparent)}
.wedding-detail-card.countdown-card{background:linear-gradient(145deg,var(--sib-primary),var(--sib-accent));color:#fff;border:0}
.wedding-detail-card.countdown-card strong{font-family:var(--sib-body);font-size:clamp(52px,7vw,100px);font-weight:900}
.wedding-detail-card.countdown-card span{color:#fff}
body[data-sib-details-layout="split"] .wedding-details-layout{grid-template-columns:minmax(280px,1.3fr) repeat(2,minmax(180px,.7fr))}
body[data-sib-details-layout="split"] .countdown-card{grid-row:span 2;min-height:330px}
body[data-sib-details-layout="minimal"] .wedding-details-layout{display:flex;flex-wrap:wrap;border-top:1px solid color-mix(in srgb,var(--sib-text) 14%,transparent)}
body[data-sib-details-layout="minimal"] .wedding-detail-card{flex:1;min-width:180px;min-height:120px;border:0;border-radius:0;border-bottom:1px solid color-mix(in srgb,var(--sib-text) 14%,transparent);background:transparent}
body.sib-details-no-countdown .countdown-card{display:none!important}

/* STORY */
.story-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:clamp(36px,8vw,120px);align-items:center}
.story-copy h2{font-size:clamp(44px,6vw,90px);line-height:.96;letter-spacing:-.055em;margin:8px 0 26px}
.story-copy p{font-size:clamp(17px,1.5vw,22px);line-height:1.75;color:color-mix(in srgb,var(--sib-text) 68%,transparent)}
.story-photo{width:100%;height:min(70vh,720px);object-fit:cover;border-radius:var(--sib-radius)}
body[data-sib-story-layout="wide_photo"] .story-layout{grid-template-columns:1fr}
body[data-sib-story-layout="wide_photo"] .story-photo{order:-1;height:min(68vh,760px)}
body[data-sib-story-layout="wide_photo"] .story-copy{max-width:850px;margin:0 auto;text-align:center}
body[data-sib-story-layout="text_first"] .story-layout{grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);align-items:end}
body[data-sib-story-layout="text_first"] .story-copy h2{font-size:clamp(56px,8vw,120px)}

/* WEDDING DAY */
.wedding-day-section{background:var(--sib-text);color:var(--sib-secondary)}
.wedding-day-section .section-heading>p{color:color-mix(in srgb,var(--sib-secondary) 68%,transparent)}
.wedding-day-list{display:grid;gap:0}
.wedding-day-item{
 display:grid;grid-template-columns:190px minmax(0,1fr);gap:clamp(24px,5vw,80px);
 padding:30px 0;border-top:1px solid color-mix(in srgb,var(--sib-secondary) 18%,transparent)
}
.wedding-day-item:last-child{border-bottom:1px solid color-mix(in srgb,var(--sib-secondary) 18%,transparent)}
.wedding-day-time{display:flex;flex-direction:column}
.wedding-day-time strong{font-size:18px}.wedding-day-time small{font-size:11px;opacity:.6;margin-top:5px}
.wedding-day-copy{position:relative;padding-left:60px}
.wedding-day-copy>span{position:absolute;left:0;top:4px;font-size:10px;letter-spacing:.12em;opacity:.5}
.wedding-day-copy h3{font-family:var(--sib-heading);font-size:clamp(30px,4vw,54px);line-height:1;margin:0 0 8px}
.wedding-day-copy>strong{display:block;font-size:12px;margin-bottom:7px;color:color-mix(in srgb,var(--sib-secondary) 70%,var(--sib-primary) 30%)}
.wedding-day-copy p{font-size:14px;line-height:1.55;opacity:.65;margin:0;max-width:62ch}
body[data-sib-schedule-layout="cards"] .wedding-day-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
body[data-sib-schedule-layout="cards"] .wedding-day-item{display:flex;flex-direction:column;gap:24px;border:1px solid color-mix(in srgb,var(--sib-secondary) 16%,transparent);border-radius:var(--sib-radius);padding:24px}
body[data-sib-schedule-layout="cards"] .wedding-day-copy{padding-left:0}
body[data-sib-schedule-layout="cards"] .wedding-day-copy>span{position:static;display:block;margin-bottom:16px}
body[data-sib-schedule-layout="compact"] .wedding-day-item{grid-template-columns:150px minmax(0,1fr);padding:17px 0}
body[data-sib-schedule-layout="compact"] .wedding-day-copy{padding-left:0;display:grid;grid-template-columns:minmax(180px,.6fr) 1fr;gap:12px;align-items:center}
body[data-sib-schedule-layout="compact"] .wedding-day-copy>span{display:none}
body[data-sib-schedule-layout="compact"] .wedding-day-copy h3{font-family:var(--sib-body);font-size:17px;font-weight:850;margin:0}
body.sib-schedule-hide-end .wedding-day-time small{display:none}
body.sib-schedule-hide-place .wedding-day-copy>strong{display:none}
body.sib-schedule-hide-notes .wedding-day-copy>p{display:none}

/* PLACES */
.places-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.place-card{border-radius:var(--sib-radius);overflow:hidden;border:1px solid color-mix(in srgb,var(--sib-text) 11%,transparent);background:color-mix(in srgb,var(--sib-secondary) 98%,white 2%)}
.place-photo{height:340px;overflow:hidden}.place-photo img{width:100%;height:100%;object-fit:cover}
.place-card-copy{padding:25px}.place-card-copy h3{font-family:var(--sib-heading);font-size:clamp(30px,4vw,50px);line-height:1;margin:5px 0 12px}
.place-card-copy p{font-size:13px;line-height:1.55;color:color-mix(in srgb,var(--sib-text) 62%,transparent)}
.place-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.place-actions a{padding:9px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--sib-text) 14%,transparent);font-size:10px;font-weight:850;text-decoration:none;color:inherit}
body[data-sib-places-layout="feature"] .places-grid{grid-template-columns:1fr 1fr}
body[data-sib-places-layout="feature"] .place-card:first-child{grid-row:span 2}
body[data-sib-places-layout="feature"] .place-card:first-child .place-photo{height:560px}
body[data-sib-places-layout="list"] .places-grid{grid-template-columns:1fr;gap:0}
body[data-sib-places-layout="list"] .place-card{display:grid;grid-template-columns:220px minmax(0,1fr);border-radius:0;border-left:0;border-right:0;border-bottom:0}
body[data-sib-places-layout="list"] .place-photo{height:180px}
body.sib-places-hide-photos .place-photo{display:none}
body.sib-places-hide-directions .place-actions a:first-child{display:none}
body.sib-places-hide-websites .place-actions a:last-child{display:none}

/* WEDDING PARTY */
.wedding-party-section{background:color-mix(in srgb,var(--sib-secondary) 94%,var(--sib-accent) 6%)}
.public-party-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.public-party-card{background:var(--sib-secondary);border-radius:var(--sib-radius);overflow:hidden}
.public-party-photo{aspect-ratio:4/5;background:color-mix(in srgb,var(--sib-primary) 10%,var(--sib-secondary));display:grid;place-items:center}
.public-party-photo img{width:100%;height:100%;object-fit:cover}.public-party-photo span{font-family:var(--sib-heading);font-size:80px}
.public-party-copy{padding:20px}.public-party-copy h3{font-family:var(--sib-heading);font-size:30px;margin:4px 0 9px}.public-party-copy p{font-size:13px;line-height:1.6;color:color-mix(in srgb,var(--sib-text) 64%,transparent)}
body[data-sib-people-layout="editorial"] .public-party-grid{grid-template-columns:1fr}
body[data-sib-people-layout="editorial"] .public-party-card{display:grid;grid-template-columns:minmax(220px,.55fr) 1fr;align-items:center}
body[data-sib-people-layout="editorial"] .public-party-photo{aspect-ratio:1/1}
body[data-sib-people-layout="editorial"] .public-party-copy{padding:clamp(25px,5vw,65px)}
body[data-sib-people-layout="compact"] .public-party-grid{grid-template-columns:repeat(2,1fr)}
body[data-sib-people-layout="compact"] .public-party-card{display:flex;align-items:center;padding:14px 16px}
body[data-sib-people-layout="compact"] .public-party-photo{width:72px;height:72px;aspect-ratio:1;border-radius:50%;flex:0 0 auto;overflow:hidden}
body[data-sib-people-layout="compact"] .public-party-copy{padding:0 0 0 14px}
body[data-sib-people-layout="compact"] .public-party-copy h3{font-family:var(--sib-body);font-size:17px}
body.sib-people-hide-bios .public-party-copy p{display:none}

/* TRAVEL */
.travel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.travel-card{padding:22px;border:1px solid color-mix(in srgb,var(--sib-text) 11%,transparent);border-radius:var(--sib-radius);display:grid;grid-template-columns:42px 1fr;gap:14px;background:var(--sib-secondary)}
.travel-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--sib-primary),var(--sib-accent));color:#fff;font-size:12px;font-weight:900}
.travel-card span{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:color-mix(in srgb,var(--sib-text) 52%,transparent);font-weight:850}
.travel-card h3{font-size:19px;margin:4px 0 10px}.travel-card p{font-size:13px;line-height:1.55;color:color-mix(in srgb,var(--sib-text) 65%,transparent)}.travel-card a{font-size:10px;font-weight:850;color:var(--sib-primary);text-decoration:none}
body[data-sib-travel-layout="list"] .travel-grid{grid-template-columns:1fr}.travel-section[data-sib-design-target] body{}
body[data-sib-travel-layout="list"] .travel-card{border-radius:0;border-left:0;border-right:0;border-bottom:0}
body[data-sib-travel-layout="bands"] .travel-grid{grid-template-columns:1fr}.travel-card{}
body[data-sib-travel-layout="bands"] .travel-card{padding:30px 35px;grid-template-columns:60px 1fr}.travel-section .travel-card:nth-child(odd){background:color-mix(in srgb,var(--sib-secondary) 93%,var(--sib-primary) 7%)}

/* QUESTIONS */
.questions-section{background:color-mix(in srgb,var(--sib-secondary) 95%,var(--sib-primary) 5%)}
.questions-list{max-width:960px}
.question-item{border-top:1px solid color-mix(in srgb,var(--sib-text) 13%,transparent)}
.question-item:last-child{border-bottom:1px solid color-mix(in srgb,var(--sib-text) 13%,transparent)}
.question-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;cursor:pointer;font-family:var(--sib-heading);font-size:clamp(24px,3vw,38px)}
.question-item summary::-webkit-details-marker{display:none}.question-item summary span{font-family:var(--sib-body);font-size:22px;font-weight:400}
.question-item[open] summary span{transform:rotate(45deg)}
.question-item>div{padding:0 0 26px;font-size:15px;line-height:1.7;color:color-mix(in srgb,var(--sib-text) 66%,transparent);max-width:70ch}
body[data-sib-questions-layout="cards"] .questions-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:none}
body[data-sib-questions-layout="cards"] .question-item{border:1px solid color-mix(in srgb,var(--sib-text) 10%,transparent);border-radius:var(--sib-radius);padding:0 20px;background:var(--sib-secondary)}
body[data-sib-questions-layout="cards"] .question-item>div{display:block!important}
body[data-sib-questions-layout="cards"] .question-item summary span{display:none}
body[data-sib-questions-layout="simple"] .question-item>div{display:block!important}
body[data-sib-questions-layout="simple"] .question-item summary span{display:none}

/* GALLERY */
body[data-sib-gallery-layout="masonry"] .gallery-grid{grid-template-columns:1.2fr .8fr .8fr;grid-auto-rows:220px}
body[data-sib-gallery-layout="masonry"] .gallery-grid img{height:100%;object-fit:cover}
body[data-sib-gallery-layout="masonry"] .gallery-grid img:first-child{grid-row:span 2}
body[data-sib-gallery-layout="filmstrip"] .gallery-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:12px}
body[data-sib-gallery-layout="filmstrip"] .gallery-grid img{width:min(72vw,720px);height:480px;flex:0 0 auto;scroll-snap-align:start;object-fit:cover}

/* RSVP */
.rsvp-section{margin:0}
body[data-sib-rsvp-layout="panel"] .rsvp-section{margin:var(--sib-section-gap) auto;max-width:var(--sib-max);border-radius:var(--sib-radius)}
body[data-sib-rsvp-layout="banner"] .rsvp-section{border-radius:0;min-height:55vh}
body[data-sib-rsvp-layout="minimal"] .rsvp-section{background:transparent!important;color:var(--sib-text)!important;min-height:45vh;border-top:1px solid color-mix(in srgb,var(--sib-text) 12%,transparent)}
body[data-sib-rsvp-layout="minimal"] .rsvp-section .pill{color:#fff}

/* design-preview target label works for every section */
body.sib-design-preview [data-sib-design-target]{position:relative}

/* RESPONSIVE */
@media(max-width:900px){
 .wedding-details-layout,.places-grid,.public-party-grid,.travel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 body[data-sib-schedule-layout="cards"] .wedding-day-list{grid-template-columns:repeat(2,1fr)}
 .story-layout{grid-template-columns:1fr}.story-photo{order:-1;height:55vh}
}
@media(max-width:760px){
 .section-heading h2{font-size:46px}
 .wedding-details-layout,.places-grid,.public-party-grid,.travel-grid,
 body[data-sib-schedule-layout="cards"] .wedding-day-list,
 body[data-sib-questions-layout="cards"] .questions-list{grid-template-columns:1fr!important}
 body[data-sib-details-layout="split"] .wedding-details-layout{grid-template-columns:1fr!important}
 body[data-sib-details-layout="split"] .countdown-card{grid-row:auto;min-height:170px}
 .wedding-day-item{grid-template-columns:95px 1fr;gap:12px;padding:22px 0}
 .wedding-day-copy{padding-left:32px}.wedding-day-copy h3{font-size:31px}
 body[data-sib-schedule-layout="compact"] .wedding-day-item{grid-template-columns:95px 1fr}
 body[data-sib-schedule-layout="compact"] .wedding-day-copy{display:block}
 body[data-sib-places-layout="feature"] .place-card:first-child{grid-row:auto}
 body[data-sib-places-layout="feature"] .place-card:first-child .place-photo{height:340px}
 body[data-sib-places-layout="list"] .place-card{grid-template-columns:1fr}.place-photo{height:280px}
 body[data-sib-people-layout="editorial"] .public-party-card{grid-template-columns:1fr}
 body[data-sib-people-layout="compact"] .public-party-grid{grid-template-columns:1fr}
 body[data-sib-gallery-layout="masonry"] .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:190px}
 body[data-sib-gallery-layout="filmstrip"] .gallery-grid img{width:84vw;height:380px}
}

/* ================================================================
   M39 — FOUR INDEPENDENT HERO DESIGNS
   Shared content: image + title + tagline
   ================================================================ */

/* Compact overall proportions: dramatic, but no longer a 100vh wall by default. */
body[data-sib-hero-height="compact"] .hero{min-height:56vh!important;height:56vh!important}
body[data-sib-hero-height="standard"] .hero{min-height:72vh!important;height:72vh!important}
body[data-sib-hero-height="tall"] .hero{min-height:86vh!important;height:86vh!important}

.hero-design{
  position:relative!important;overflow:hidden!important;isolation:isolate;
  --hero-heading-auto:#fff;--hero-tagline-auto:#f8f5ef;--hero-meta-auto:#fff
}
.hero-design .hero-image{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  object-fit:cover!important;object-position:var(--sib-focal-x) var(--sib-focal-y)!important;
  opacity:1;z-index:0
}
.hero-design .hero-veil{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-design .hero-decoration{position:absolute;inset:0;z-index:2;pointer-events:none}
.hero-design .hero-copy{position:relative;z-index:3}
.hero-design .hero-meta{
  display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px;
  color:var(--hero-meta-auto);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase
}
.hero-design .hero-meta span+span:before{content:"•";margin-right:12px;opacity:.55}
.hero-design .hero-copy h1{color:var(--hero-heading-auto)}
.hero-design .hero-copy p{color:var(--hero-tagline-auto)}

body[data-sib-hero-custom-colors="1"] .hero-design .hero-copy h1{color:var(--sib-hero-heading-color)!important}
body[data-sib-hero-custom-colors="1"] .hero-design .hero-copy p{color:var(--sib-hero-tagline-color)!important}
body[data-sib-hero-custom-colors="1"] .hero-design .hero-meta{color:var(--sib-hero-meta-color)!important}

/* ----------------------------------------------------------------
   1. FULL IMAGE
   Editorial/cinematic photograph, compact lower text.
   ---------------------------------------------------------------- */
body[data-sib-hero-layout="full_image"] .hero-design{
  display:flex!important;align-items:flex-end!important;background:#11131c!important
}
body[data-sib-hero-layout="full_image"] .hero-veil{
  background:linear-gradient(90deg,#0c0e17d9 0%,#0c0e1785 37%,transparent 72%),
             linear-gradient(0deg,#0c0e17b8 0%,transparent 52%)
}
body[data-sib-hero-layout="full_image"][data-sib-hero-overlay="light"] .hero-veil{
  background:linear-gradient(90deg,#0c0e1782,transparent 68%),linear-gradient(0deg,#0c0e176b,transparent 42%)
}
body[data-sib-hero-layout="full_image"][data-sib-hero-overlay="dramatic"] .hero-veil{
  background:linear-gradient(90deg,#080910f2 0%,#080910b4 42%,#08091025 77%),linear-gradient(0deg,#080910e0,transparent 60%)
}
body[data-sib-hero-layout="full_image"] .hero-copy{
  width:min(calc(100% - 64px),var(--sib-max))!important;margin:0 auto 8vh!important;color:#fff!important
}
body[data-sib-hero-layout="full_image"] .hero-copy h1{
  font-family:var(--sib-heading)!important;font-size:clamp(54px,7.2vw,108px)!important;
  line-height:.89!important;letter-spacing:-.045em!important;max-width:9ch!important;margin:12px 0 18px!important
}
body[data-sib-hero-layout="full_image"] .hero-copy p{
  font-size:clamp(15px,1.45vw,20px)!important;line-height:1.55!important;max-width:48ch!important;margin:0!important
}
body[data-sib-hero-layout="full_image"][data-sib-hero-align="center"] .hero-copy{text-align:center}
body[data-sib-hero-layout="full_image"][data-sib-hero-align="center"] .hero-copy :is(h1,p){margin-left:auto!important;margin-right:auto!important}
body[data-sib-hero-layout="full_image"][data-sib-hero-align="center"] .hero-meta{justify-content:center}
body[data-sib-hero-layout="full_image"][data-sib-hero-align="right"] .hero-copy{text-align:right}
body[data-sib-hero-layout="full_image"][data-sib-hero-align="right"] .hero-copy :is(h1,p){margin-left:auto!important}
body[data-sib-hero-layout="full_image"][data-sib-hero-align="right"] .hero-meta{justify-content:flex-end}

/* Full Image navigation becomes part of the photograph. */
body[data-sib-hero-layout="full_image"] .site-nav{
  background:#10121b2b!important;border-color:#ffffff42!important;color:#fff!important;box-shadow:none!important
}
body[data-sib-hero-layout="full_image"] .site-nav .nav-submenu{color:var(--sib-text)}
body[data-sib-hero-layout="full_image"] .site-nav .nav-rsvp-button{border-color:#ffffff80}

/* ----------------------------------------------------------------
   2. CENTERED
   Symmetrical, romantic, logo-like composition over full photo.
   ---------------------------------------------------------------- */
body[data-sib-hero-layout="centered"] .hero-design{
  display:grid!important;place-items:center!important;background:#15151a!important;
  --hero-heading-auto:#fffdf8;--hero-tagline-auto:#fff9f0;--hero-meta-auto:#fffaf2
}
body[data-sib-hero-layout="centered"] .hero-veil{background:#12131b5c}
body[data-sib-hero-layout="centered"][data-sib-hero-overlay="light"] .hero-veil{background:#12131b35}
body[data-sib-hero-layout="centered"][data-sib-hero-overlay="dramatic"] .hero-veil{background:#10111a83}
body[data-sib-hero-layout="centered"] .hero-decoration:before{
  content:"";position:absolute;width:min(33vw,360px);aspect-ratio:1;border-radius:50%;
  border:1px solid #ffffff68;left:50%;top:50%;transform:translate(-50%,-50%)
}
body[data-sib-hero-layout="centered"] .hero-decoration:after{
  content:"";position:absolute;width:min(27vw,300px);aspect-ratio:1;border-radius:50%;
  border:1px solid #ffffff28;left:50%;top:50%;transform:translate(-50%,-50%)
}
body[data-sib-hero-layout="centered"] .hero-copy{
  width:min(760px,82vw)!important;margin:0!important;padding:34px!important;text-align:center!important;color:#fff!important
}
body[data-sib-hero-layout="centered"] .hero-meta{justify-content:center;margin-bottom:16px}
body[data-sib-hero-layout="centered"] .hero-copy h1{
  font-family:var(--sib-heading)!important;font-size:clamp(48px,6.4vw,94px)!important;
  line-height:.93!important;letter-spacing:.015em!important;text-transform:uppercase!important;
  max-width:12ch!important;margin:8px auto 18px!important
}
body[data-sib-hero-layout="centered"] .hero-copy p{
  font-family:var(--sib-heading)!important;font-style:italic;font-size:clamp(16px,1.65vw,22px)!important;
  line-height:1.5!important;max-width:36ch!important;margin:0 auto!important
}
body[data-sib-hero-layout="centered"] .site-nav{
  background:#fffdf6d9!important;border-color:#ffffffa8!important;color:#171820!important
}

/* ----------------------------------------------------------------
   3. SPLIT
   Strong graphic panel + image. It is intentionally not an overlay Hero.
   ---------------------------------------------------------------- */
body[data-sib-hero-layout="split"] .hero-design{
  display:grid!important;grid-template-columns:46% 54%!important;align-items:stretch!important;
  background:var(--sib-secondary)!important;--hero-heading-auto:var(--sib-text);--hero-tagline-auto:color-mix(in srgb,var(--sib-text) 68%,transparent);--hero-meta-auto:color-mix(in srgb,var(--sib-text) 56%,transparent)
}
body[data-sib-hero-layout="split"] .hero-image{
  position:relative!important;inset:auto!important;grid-column:2!important;grid-row:1!important;height:100%!important
}
body[data-sib-hero-layout="split"] .hero-veil{display:none!important}
body[data-sib-hero-layout="split"] .hero-decoration{
  grid-column:1;grid-row:1;position:relative!important;background:var(--sib-secondary);z-index:1
}
body[data-sib-hero-layout="split"] .hero-decoration:after{
  content:"";position:absolute;left:clamp(28px,5vw,80px);bottom:8vh;width:76px;height:4px;
  background:linear-gradient(90deg,var(--sib-primary),var(--sib-accent));border-radius:5px
}
body[data-sib-hero-layout="split"] .hero-copy{
  position:absolute!important;left:max(5vw,calc((100vw - var(--sib-max))/2));top:50%;transform:translateY(-50%);
  width:min(36vw,560px)!important;margin:0!important;padding:0!important;color:var(--sib-text)!important
}
body[data-sib-hero-layout="split"] .hero-copy h1{
  font-family:var(--sib-heading)!important;font-size:clamp(48px,6.2vw,92px)!important;
  line-height:.9!important;letter-spacing:-.055em!important;max-width:8ch!important;margin:12px 0 20px!important
}
body[data-sib-hero-layout="split"] .hero-copy p{
  font-size:clamp(15px,1.35vw,19px)!important;line-height:1.6!important;max-width:38ch!important;margin:0!important
}
body[data-sib-hero-layout="split"][data-sib-hero-image-side="left"] .hero-image{grid-column:1!important}
body[data-sib-hero-layout="split"][data-sib-hero-image-side="left"] .hero-decoration{grid-column:2!important}
body[data-sib-hero-layout="split"][data-sib-hero-image-side="left"] .hero-copy{
  left:auto!important;right:max(5vw,calc((100vw - var(--sib-max))/2))!important
}
body[data-sib-hero-layout="split"][data-sib-hero-image-side="left"] .hero-decoration:after{left:auto;right:clamp(28px,5vw,80px)}
body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="light"] .hero-decoration{background:#fffaf3}
body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="light"]{--hero-heading-auto:#15161d;--hero-tagline-auto:#66636a;--hero-meta-auto:#77737b}
body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="dark"] .hero-decoration{background:#11131b}
body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="dark"]{--hero-heading-auto:#fff;--hero-tagline-auto:#dedde6;--hero-meta-auto:#bcbac5}
body[data-sib-hero-layout="split"] .site-nav{
  background:color-mix(in srgb,var(--sib-secondary) 94%,transparent)!important;color:var(--sib-text)!important
}

/* ----------------------------------------------------------------
   4. STATEMENT
   Typography is the graphic element. Photo remains the canvas.
   ---------------------------------------------------------------- */
body[data-sib-hero-layout="statement"] .hero-design{
  display:flex!important;align-items:flex-end!important;background:#10111a!important;
  --hero-heading-auto:#fff;--hero-tagline-auto:#fff;--hero-meta-auto:#fff
}
body[data-sib-hero-layout="statement"] .hero-veil{
  background:linear-gradient(0deg,#0a0b12d9 0%,#0a0b1268 48%,transparent 78%)
}
body[data-sib-hero-layout="statement"][data-sib-hero-overlay="light"] .hero-veil{background:linear-gradient(0deg,#0a0b1299,transparent 68%)}
body[data-sib-hero-layout="statement"][data-sib-hero-overlay="dramatic"] .hero-veil{background:linear-gradient(0deg,#07080cf2 0%,#0b0c15a8 60%,#0b0c152c)}
body[data-sib-hero-layout="statement"] .hero-decoration:after{
  content:"";position:absolute;left:max(5vw,calc((100vw - var(--sib-max))/2));bottom:5.3vh;
  width:min(32vw,390px);height:5px;background:linear-gradient(90deg,var(--sib-primary),var(--sib-accent))
}
body[data-sib-hero-layout="statement"] .hero-copy{
  width:min(calc(100% - 64px),var(--sib-max))!important;margin:0 auto 8vh!important;color:#fff!important
}
body[data-sib-hero-layout="statement"] .hero-meta{position:absolute;right:0;top:-14vh;max-width:340px;justify-content:flex-end;text-align:right}
body[data-sib-hero-layout="statement"] .hero-copy h1{
  font-family:var(--sib-heading)!important;font-size:clamp(70px,10.5vw,160px)!important;
  line-height:.77!important;letter-spacing:-.075em!important;max-width:8.5ch!important;margin:0 0 25px!important
}
body[data-sib-hero-layout="statement"] .hero-copy p{
  font-size:clamp(14px,1.2vw,18px)!important;line-height:1.55!important;max-width:42ch!important;margin:0 0 0 auto!important;text-align:right
}
body[data-sib-hero-layout="statement"][data-sib-hero-align="center"] .hero-copy{text-align:center}
body[data-sib-hero-layout="statement"][data-sib-hero-align="center"] .hero-copy h1{margin-left:auto!important;margin-right:auto!important}
body[data-sib-hero-layout="statement"][data-sib-hero-align="center"] .hero-copy p{margin-left:auto!important;margin-right:auto!important;text-align:center}
body[data-sib-hero-layout="statement"][data-sib-hero-align="center"] .hero-meta{position:static;justify-content:center;text-align:center;margin-bottom:18px}
body[data-sib-hero-layout="statement"][data-sib-hero-align="right"] .hero-copy{text-align:right}
body[data-sib-hero-layout="statement"][data-sib-hero-align="right"] .hero-copy h1{margin-left:auto!important}
body[data-sib-hero-layout="statement"] .site-nav{
  background:#0c0d141f!important;border-color:#ffffff40!important;color:#fff!important;box-shadow:none!important
}

/* ----------------------------------------------------------------
   HERO-SPECIFIC MOTION
   ---------------------------------------------------------------- */
@keyframes sibFullFade{from{opacity:0}to{opacity:1}}
@keyframes sibFullZoomImage{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes sibFullRevealImage{from{clip-path:inset(0 0 100% 0);transform:scale(1.04)}to{clip-path:inset(0);transform:scale(1)}}
@keyframes sibFullCopyRise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

@keyframes sibCenterFade{from{opacity:0}to{opacity:1}}
@keyframes sibCenterRing{from{opacity:0;transform:translate(-50%,-50%) scale(.7)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes sibCenterBuild{from{opacity:0;letter-spacing:.15em;transform:scale(.96)}to{opacity:1;letter-spacing:.015em;transform:none}}
@keyframes sibCenterFocus{from{opacity:0;filter:blur(14px);transform:scale(1.08)}to{opacity:1;filter:none;transform:scale(1)}}

@keyframes sibSplitImageRight{from{opacity:0;transform:translateX(7%)}to{opacity:1;transform:none}}
@keyframes sibSplitImageLeft{from{opacity:0;transform:translateX(-7%)}to{opacity:1;transform:none}}
@keyframes sibSplitCopyRight{from{opacity:0;transform:translate(34px,-50%)}to{opacity:1;transform:translate(0,-50%)}}
@keyframes sibSplitCopyLeft{from{opacity:0;transform:translate(-34px,-50%)}to{opacity:1;transform:translate(0,-50%)}}
@keyframes sibSplitReveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}

@keyframes sibStatementWords{from{opacity:0;transform:translateY(45px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes sibStatementMeta{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes sibStatementImage{from{transform:scale(1.06);filter:saturate(.7)}to{transform:scale(1);filter:none}}

body[data-sib-hero-motion="none"] .hero-design :is(.hero-copy,.hero-image,.hero-meta,.hero-decoration){animation:none!important}

body[data-sib-hero-motion="full_fade"] .hero-copy{animation:sibFullFade 1.35s ease .38s both!important}
body[data-sib-hero-motion="full_zoom"] .hero-image{animation:sibFullZoomImage 2.8s cubic-bezier(.18,.7,.2,1) .05s both!important}
body[data-sib-hero-motion="full_zoom"] .hero-copy{animation:sibFullCopyRise 1.35s cubic-bezier(.2,.8,.2,1) .55s both!important}
body[data-sib-hero-motion="full_reveal"] .hero-image{animation:sibFullRevealImage 1.8s cubic-bezier(.16,.8,.2,1) .12s both!important}
body[data-sib-hero-motion="full_reveal"] .hero-copy{animation:sibFullFade 1.2s ease .7s both!important}

body[data-sib-hero-motion="center_fade"] .hero-copy{animation:sibCenterFade 1.45s ease .4s both!important}
body[data-sib-hero-motion="center_build"] .hero-copy h1{animation:sibCenterBuild 1.6s cubic-bezier(.16,.8,.2,1) .45s both!important}
body[data-sib-hero-motion="center_build"] .hero-meta,
body[data-sib-hero-motion="center_build"] .hero-copy p{animation:sibCenterFade 1.2s ease .9s both!important}
body[data-sib-hero-motion="center_build"] .hero-decoration:before,
body[data-sib-hero-motion="center_build"] .hero-decoration:after{animation:sibCenterRing 1.65s ease .25s both}
body[data-sib-hero-motion="center_focus"] .hero-image{animation:sibCenterFocus 2.4s ease .08s both!important}
body[data-sib-hero-motion="center_focus"] .hero-copy{animation:sibCenterFade 1.2s ease .75s both!important}

body[data-sib-hero-motion="split_together"] .hero-image{animation:sibSplitImageRight 1.55s cubic-bezier(.16,.8,.2,1) .12s both!important}
body[data-sib-hero-image-side="left"][data-sib-hero-motion="split_together"] .hero-image{animation-name:sibSplitImageLeft!important}
body[data-sib-hero-motion="split_together"] .hero-copy{animation:sibSplitCopyLeft 1.5s cubic-bezier(.16,.8,.2,1) .28s both!important}
body[data-sib-hero-image-side="left"][data-sib-hero-motion="split_together"] .hero-copy{animation-name:sibSplitCopyRight!important}
body[data-sib-hero-motion="split_image"] .hero-image{animation:sibSplitReveal 1.7s cubic-bezier(.16,.8,.2,1) .15s both!important}
body[data-sib-hero-motion="split_copy"] .hero-copy{animation:sibSplitCopyLeft 1.5s cubic-bezier(.16,.8,.2,1) .35s both!important}
body[data-sib-hero-image-side="left"][data-sib-hero-motion="split_copy"] .hero-copy{animation-name:sibSplitCopyRight!important}

body[data-sib-hero-motion="statement_words"] .hero-copy h1{animation:sibStatementWords 1.55s cubic-bezier(.16,.8,.2,1) .38s both!important}
body[data-sib-hero-motion="statement_words"] .hero-copy p{animation:sibFullFade 1.1s ease .95s both!important}
body[data-sib-hero-motion="statement_words"] .hero-meta{animation:sibStatementMeta 1.1s ease .75s both!important}
body[data-sib-hero-motion="statement_stagger"] .hero-meta{animation:sibStatementMeta 1.05s ease .32s both!important}
body[data-sib-hero-motion="statement_stagger"] .hero-copy h1{animation:sibStatementWords 1.6s cubic-bezier(.16,.8,.2,1) .58s both!important}
body[data-sib-hero-motion="statement_stagger"] .hero-copy p{animation:sibFullFade 1.1s ease 1.12s both!important}
body[data-sib-hero-motion="statement_build"] .hero-image{animation:sibStatementImage 2.5s ease .08s both!important}
body[data-sib-hero-motion="statement_build"] .hero-copy h1{animation:sibStatementWords 1.6s cubic-bezier(.16,.8,.2,1) .62s both!important}
body[data-sib-hero-motion="statement_build"] .hero-decoration{animation:sibFullFade 1.1s ease 1.05s both!important}

/* ----------------------------------------------------------------
   HERO-SPECIFIC MOBILE COMPOSITIONS
   Each one remains intentionally different rather than collapsing
   into one generic mobile Hero.
   ---------------------------------------------------------------- */
@media(max-width:760px){
  body[data-sib-hero-height="compact"] .hero{min-height:56svh!important;height:56svh!important}
  body[data-sib-hero-height="standard"] .hero{min-height:66svh!important;height:66svh!important}
  body[data-sib-hero-height="tall"] .hero{min-height:78svh!important;height:78svh!important}

  body[data-sib-hero-layout="full_image"] .hero-copy{
    width:calc(100% - 36px)!important;margin:0 18px 6.5svh!important
  }
  body[data-sib-hero-layout="full_image"] .hero-copy h1{font-size:clamp(48px,15vw,72px)!important;max-width:8ch!important}
  body[data-sib-hero-layout="full_image"] .site-nav{background:#10121b4d!important}

  body[data-sib-hero-layout="centered"] .hero-decoration:before{width:66vw}
  body[data-sib-hero-layout="centered"] .hero-decoration:after{width:54vw}
  body[data-sib-hero-layout="centered"] .hero-copy{width:90vw!important;padding:22px!important}
  body[data-sib-hero-layout="centered"] .hero-copy h1{font-size:clamp(42px,13vw,66px)!important}

  body[data-sib-hero-layout="split"] .hero-design{
    display:grid!important;grid-template-columns:1fr!important;grid-template-rows:54% 46%!important
  }
  body[data-sib-hero-layout="split"] .hero-image{
    position:relative!important;grid-column:1!important;grid-row:1!important;width:100%!important;height:100%!important
  }
  body[data-sib-hero-layout="split"] .hero-decoration{
    position:relative!important;grid-column:1!important;grid-row:2!important
  }
  body[data-sib-hero-layout="split"] .hero-copy{
    position:absolute!important;left:22px!important;right:22px!important;top:auto!important;bottom:4.5svh!important;
    transform:none!important;width:auto!important
  }
  body[data-sib-hero-layout="split"] .hero-copy h1{font-size:clamp(42px,13vw,64px)!important}
  body[data-sib-hero-layout="split"] .hero-decoration:after{left:22px!important;right:auto!important;bottom:18px!important}
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="dark"] .hero-copy{
    --hero-heading-auto:#fff;--hero-tagline-auto:#ddd;--hero-meta-auto:#bbb
  }

  body[data-sib-hero-layout="statement"] .hero-copy{
    width:calc(100% - 36px)!important;margin:0 18px 6svh!important
  }
  body[data-sib-hero-layout="statement"] .hero-copy h1{
    font-size:clamp(58px,18vw,88px)!important;line-height:.8!important;max-width:7ch!important
  }
  body[data-sib-hero-layout="statement"] .hero-meta{
    position:static!important;justify-content:flex-start!important;text-align:left!important;margin-bottom:14px!important
  }
  body[data-sib-hero-layout="statement"] .hero-copy p{
    margin:0!important;text-align:left!important;max-width:32ch!important
  }
  body[data-sib-hero-layout="statement"] .hero-decoration:after{
    left:18px!important;bottom:3.5svh!important;width:42vw!important
  }
}

/* reduced motion remains respected even with Hero-specific effects */
@media(prefers-reduced-motion:reduce){
  .hero-design :is(.hero-copy,.hero-copy h1,.hero-copy p,.hero-image,.hero-meta,.hero-decoration,.hero-decoration:before,.hero-decoration:after){
    animation:none!important;transition:none!important
  }
}

/* ================================================================
   M40 — FOUR NAVIGATION DESIGN SYSTEMS
   ================================================================ */

body.sib-public{
  --sib-nav-clearance:0px;
}

/* Normalize the old header/layout settings underneath the new design selector. */
body[data-sib-nav-theme] .site-nav{
  z-index:80!important;
  box-sizing:border-box!important;
  transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease!important;
}
body[data-sib-nav-theme] .site-nav .navlinks{
  display:flex;align-items:center!important
}
body[data-sib-nav-theme] .site-nav .brand{white-space:nowrap}

/* Position behavior remains available, but without the old negative-margin trick. */
body[data-sib-header-position="fixed"] .site-nav{position:fixed!important}
body[data-sib-header-position="sticky"] .site-nav{
  position:sticky!important;left:auto!important;transform:none!important;top:12px!important;margin:12px auto!important
}
body[data-sib-header-position="static"] .site-nav{
  position:relative!important;left:auto!important;transform:none!important;top:auto!important;margin:14px auto!important
}

/* ------------------------------------------------
   1. FLOATING
   Compact dark glass capsule.
   ------------------------------------------------ */
body[data-sib-nav-theme="floating"] .site-nav{
  left:50%!important;top:20px!important;transform:translateX(-50%)!important;
  width:min(calc(100% - 44px),1120px)!important;
  min-height:64px!important;padding:10px 14px!important;
  border-radius:999px!important;
  background:rgba(17,18,27,.58)!important;
  border:1px solid rgba(255,255,255,.32)!important;
  color:#fff!important;
  backdrop-filter:blur(22px) saturate(1.1)!important;
  box-shadow:0 14px 44px rgba(10,11,18,.18)!important
}
body[data-sib-nav-theme="floating"] .site-nav .navlinks{gap:17px!important}
body[data-sib-nav-theme="floating"] .site-nav .nav-submenu{color:var(--sib-text)!important}
body[data-sib-header-position="fixed"][data-sib-nav-theme="floating"]{--sib-nav-clearance:104px}

/* ------------------------------------------------
   2. FULL WIDTH
   Full page-width grounded bar.
   ------------------------------------------------ */
body[data-sib-nav-theme="full_bar"] .site-nav{
  left:0!important;right:0!important;top:0!important;transform:none!important;
  width:100%!important;min-height:76px!important;
  padding:13px max(24px,calc((100vw - var(--sib-max))/2))!important;
  border-radius:0!important;
  background:color-mix(in srgb,var(--sib-secondary) 96%,white 4%)!important;
  border:0!important;border-bottom:1px solid color-mix(in srgb,var(--sib-text) 10%,transparent)!important;
  color:var(--sib-text)!important;
  backdrop-filter:blur(18px)!important;
  box-shadow:0 10px 34px color-mix(in srgb,var(--sib-text) 8%,transparent)!important
}
body[data-sib-nav-theme="full_bar"] .site-nav .navlinks{gap:22px!important}
body[data-sib-header-position="fixed"][data-sib-nav-theme="full_bar"]{--sib-nav-clearance:88px}
body[data-sib-header-position="sticky"][data-sib-nav-theme="full_bar"] .site-nav{top:0!important;margin:0 auto!important}

/* ------------------------------------------------
   3. CENTERED
   Two-row navigation: centered brand over centered links.
   ------------------------------------------------ */
body[data-sib-nav-theme="centered"] .site-nav{
  left:50%!important;top:16px!important;transform:translateX(-50%)!important;
  width:min(calc(100% - 42px),940px)!important;min-height:112px!important;
  display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto auto!important;
  justify-items:center!important;align-content:center!important;gap:12px!important;
  padding:14px 22px 13px!important;border-radius:25px!important;
  background:color-mix(in srgb,var(--sib-secondary) 94%,transparent)!important;
  border:1px solid color-mix(in srgb,var(--sib-text) 10%,transparent)!important;
  color:var(--sib-text)!important;
  backdrop-filter:blur(22px)!important;
  box-shadow:0 16px 44px color-mix(in srgb,var(--sib-text) 11%,transparent)!important
}
body[data-sib-nav-theme="centered"] .site-nav .brand{justify-self:center!important}
body[data-sib-nav-theme="centered"] .site-nav .navlinks{justify-self:center!important;gap:21px!important;font-size:12px!important}
body[data-sib-header-position="fixed"][data-sib-nav-theme="centered"]{--sib-nav-clearance:145px}

/* ------------------------------------------------
   4. MINIMAL
   No big container. Brand and links float independently.
   ------------------------------------------------ */
body[data-sib-nav-theme="minimal"] .site-nav{
  left:50%!important;top:22px!important;transform:translateX(-50%)!important;
  width:min(calc(100% - 48px),var(--sib-max))!important;min-height:54px!important;
  padding:0!important;border:0!important;border-radius:0!important;
  background:transparent!important;backdrop-filter:none!important;box-shadow:none!important;
  color:#fff!important
}
body[data-sib-nav-theme="minimal"] .site-nav .brand{
  padding:9px 12px!important;border-radius:999px!important;
  background:rgba(15,16,24,.46)!important;border:1px solid rgba(255,255,255,.25)!important;
  backdrop-filter:blur(16px)!important
}
body[data-sib-nav-theme="minimal"] .site-nav .navlinks{
  gap:15px!important;padding:9px 12px!important;border-radius:999px!important;
  background:rgba(15,16,24,.46)!important;border:1px solid rgba(255,255,255,.25)!important;
  backdrop-filter:blur(16px)!important
}
body[data-sib-nav-theme="minimal"][data-sib-hero-layout="split"] .site-nav{color:var(--sib-text)!important}
body[data-sib-nav-theme="minimal"][data-sib-hero-layout="split"] .site-nav .brand,
body[data-sib-nav-theme="minimal"][data-sib-hero-layout="split"] .site-nav .navlinks{
  background:color-mix(in srgb,var(--sib-secondary) 88%,transparent)!important;
  border-color:color-mix(in srgb,var(--sib-text) 12%,transparent)!important
}
body[data-sib-header-position="fixed"][data-sib-nav-theme="minimal"]{--sib-nav-clearance:92px}

/* Fixed navigation gets reserved visual clearance inside the Hero.
   This prevents dates/locations/copy from living behind the menu. */
body[data-sib-header-position="fixed"] .hero-design{
  padding-top:var(--sib-nav-clearance)!important
}

/* Statement metadata used to float up into the navigation. Keep it with the
   statement copy so it can never be obscured. */
body[data-sib-hero-layout="statement"] .hero-meta{
  position:static!important;
  right:auto!important;top:auto!important;
  justify-content:flex-start!important;text-align:left!important;
  max-width:none!important;margin:0 0 18px!important
}
body[data-sib-hero-layout="statement"][data-sib-hero-align="center"] .hero-meta{
  justify-content:center!important;text-align:center!important
}
body[data-sib-hero-layout="statement"][data-sib-hero-align="right"] .hero-meta{
  justify-content:flex-end!important;text-align:right!important
}

/* The Hero focal point remains authoritative across every Hero design. */
body[data-sib-hero-layout] .hero-image{
  object-position:var(--sib-focal-x) var(--sib-focal-y)!important
}

/* Nested menus inherit the selected navigation design but stay readable. */
body[data-sib-nav-theme] .nav-submenu{
  background:color-mix(in srgb,var(--sib-secondary) 97%,transparent)!important;
  color:var(--sib-text)!important
}

/* ------------------------------------------------
   MOBILE
   All four designs become a compact hamburger header. The chosen mobile
   opening behavior (drawer/sheet/full screen) still controls the menu panel.
   ------------------------------------------------ */
@media(max-width:760px){
  body[data-sib-nav-theme] .site-nav{
    position:fixed!important;
    left:14px!important;right:14px!important;top:12px!important;
    transform:none!important;width:auto!important;min-height:58px!important;
    display:flex!important;grid-template-columns:none!important;grid-template-rows:none!important;
    justify-content:space-between!important;align-items:center!important;
    padding:8px 10px!important;border-radius:20px!important;
    background:rgba(255,252,248,.92)!important;color:var(--sib-text)!important;
    border:1px solid color-mix(in srgb,var(--sib-text) 10%,transparent)!important;
    box-shadow:0 12px 32px rgba(18,19,29,.13)!important;
    backdrop-filter:blur(18px)!important
  }
  body[data-sib-nav-theme] .site-nav .brand{
    padding:0!important;background:transparent!important;border:0!important;backdrop-filter:none!important
  }
  body[data-sib-nav-theme] .site-nav:not(.mobile-open) .navlinks{
    display:none!important
  }
  body[data-sib-nav-theme] .public-mobile-menu-toggle{
    display:grid!important
  }
  body[data-sib-header-position="fixed"][data-sib-nav-theme]{--sib-nav-clearance:82px}
  body[data-sib-header-position="fixed"] .hero-design{padding-top:var(--sib-nav-clearance)!important}

  /* Preserve each selected menu opening style after the compact header. */
  body[data-sib-mobile-nav="sheet"] .site-nav.mobile-open .navlinks,
  body[data-sib-mobile-nav="drawer"] .site-nav.mobile-open .navlinks,
  body[data-sib-mobile-nav="fullscreen"] .site-nav.mobile-open .navlinks{
    color:var(--sib-text)!important
  }
}

/* ================================================================
   M41 — RELIABLE HERO MOTION + INDEPENDENT SPEEDS
   ================================================================ */
/* M43.8: duration defaults belong at the document root.
   Never define them on .hero-design: a child-local custom property would
   override the couple's saved Body values and make every timing slider lie. */
:root{
  --sib-hero-image-duration:2.8s;
  --sib-hero-heading-duration:1.5s;
  --sib-hero-tagline-duration:1.1s;
  --sib-hero-meta-duration:1.1s;
}

@keyframes sib41Fade{from{opacity:0}to{opacity:1}}
@keyframes sib41Rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes sib41SlideLeft{from{opacity:0;transform:translateX(-36px)}to{opacity:1;transform:none}}
@keyframes sib41SlideRight{from{opacity:0;transform:translateX(36px)}to{opacity:1;transform:none}}
@keyframes sib41Zoom{from{transform:scale(1.075)}to{transform:scale(1)}}
@keyframes sib41Focus{from{opacity:.35;filter:blur(13px);transform:scale(1.06)}to{opacity:1;filter:none;transform:scale(1)}}
@keyframes sib41Reveal{from{clip-path:inset(0 0 100% 0);transform:scale(1.035)}to{clip-path:inset(0);transform:scale(1)}}
@keyframes sib41TypeReveal{from{opacity:0;transform:translateY(42px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes sib41SoftScale{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}

/* Kill the old wrapper animations. M41 animates the actual things users control. */
body[data-sib-hero-motion] .hero-copy{animation:none!important}
body[data-sib-hero-motion="none"] .hero-design :is(.hero-image,.hero-copy h1,.hero-copy p,.hero-meta,.hero-decoration){
  animation:none!important
}

/* Full Image */
body[data-sib-hero-motion="full_fade"] .hero-image{
  animation:sib41Fade var(--sib-hero-image-duration) ease .05s both!important
}
body[data-sib-hero-motion="full_fade"] .hero-copy h1{
  animation:sib41Fade var(--sib-hero-heading-duration) ease .30s both!important
}
body[data-sib-hero-motion="full_fade"] .hero-copy p{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .55s both!important
}
body[data-sib-hero-motion="full_fade"] .hero-meta{
  animation:sib41Fade var(--sib-hero-meta-duration) ease .18s both!important
}

body[data-sib-hero-motion="full_zoom"] .hero-image{
  animation:sib41Zoom var(--sib-hero-image-duration) cubic-bezier(.18,.7,.2,1) .05s both!important
}
body[data-sib-hero-motion="full_zoom"] .hero-copy h1{
  animation:sib41Rise var(--sib-hero-heading-duration) cubic-bezier(.2,.8,.2,1) .38s both!important
}
body[data-sib-hero-motion="full_zoom"] .hero-copy p{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .68s both!important
}
body[data-sib-hero-motion="full_zoom"] .hero-meta{
  animation:sib41Fade var(--sib-hero-meta-duration) ease .24s both!important
}

body[data-sib-hero-motion="full_reveal"] .hero-image{
  animation:sib41Reveal var(--sib-hero-image-duration) cubic-bezier(.16,.8,.2,1) .08s both!important
}
body[data-sib-hero-motion="full_reveal"] .hero-copy h1{
  animation:sib41Rise var(--sib-hero-heading-duration) cubic-bezier(.16,.8,.2,1) .48s both!important
}
body[data-sib-hero-motion="full_reveal"] .hero-copy p{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .76s both!important
}
body[data-sib-hero-motion="full_reveal"] .hero-meta{
  animation:sib41Fade var(--sib-hero-meta-duration) ease .34s both!important
}

/* Centered */
body[data-sib-hero-motion="center_fade"] .hero-image{
  animation:sib41Fade var(--sib-hero-image-duration) ease .05s both!important
}
body[data-sib-hero-motion="center_fade"] .hero-copy h1{
  animation:sib41Fade var(--sib-hero-heading-duration) ease .35s both!important
}
body[data-sib-hero-motion="center_fade"] .hero-copy p{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .62s both!important
}
body[data-sib-hero-motion="center_fade"] .hero-meta{
  animation:sib41Fade var(--sib-hero-meta-duration) ease .22s both!important
}

body[data-sib-hero-motion="center_build"] .hero-image{
  animation:sib41Zoom var(--sib-hero-image-duration) ease .04s both!important
}
body[data-sib-hero-motion="center_build"] .hero-copy h1{
  animation:sib41SoftScale var(--sib-hero-heading-duration) cubic-bezier(.16,.8,.2,1) .38s both!important
}
body[data-sib-hero-motion="center_build"] .hero-copy p{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .74s both!important
}
body[data-sib-hero-motion="center_build"] .hero-meta{
  animation:sib41Fade var(--sib-hero-meta-duration) ease .24s both!important
}

body[data-sib-hero-motion="center_focus"] .hero-image{
  animation:sib41Focus var(--sib-hero-image-duration) ease .05s both!important
}
body[data-sib-hero-motion="center_focus"] .hero-copy h1{
  animation:sib41Fade var(--sib-hero-heading-duration) ease .55s both!important
}
body[data-sib-hero-motion="center_focus"] .hero-copy p{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .78s both!important
}
body[data-sib-hero-motion="center_focus"] .hero-meta{
  animation:sib41Fade var(--sib-hero-meta-duration) ease .40s both!important
}

/* Split */
body[data-sib-hero-motion="split_together"] .hero-image{
  animation:sib41SlideRight var(--sib-hero-image-duration) cubic-bezier(.16,.8,.2,1) .08s both!important
}
body[data-sib-hero-image-side="left"][data-sib-hero-motion="split_together"] .hero-image{
  animation-name:sib41SlideLeft!important
}
body[data-sib-hero-motion="split_together"] .hero-copy h1{
  animation:sib41SlideLeft var(--sib-hero-heading-duration) cubic-bezier(.16,.8,.2,1) .26s both!important
}
body[data-sib-hero-image-side="left"][data-sib-hero-motion="split_together"] .hero-copy h1{
  animation-name:sib41SlideRight!important
}
body[data-sib-hero-motion="split_together"] .hero-copy p{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .62s both!important
}
body[data-sib-hero-motion="split_together"] .hero-meta{
  animation:sib41Fade var(--sib-hero-meta-duration) ease .20s both!important
}

body[data-sib-hero-motion="split_image"] .hero-image{
  animation:sib41Reveal var(--sib-hero-image-duration) cubic-bezier(.16,.8,.2,1) .08s both!important
}
body[data-sib-hero-motion="split_image"] .hero-copy h1{
  animation:sib41Fade var(--sib-hero-heading-duration) ease .48s both!important
}
body[data-sib-hero-motion="split_image"] .hero-copy p{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .72s both!important
}
body[data-sib-hero-motion="split_image"] .hero-meta{
  animation:sib41Fade var(--sib-hero-meta-duration) ease .32s both!important
}

body[data-sib-hero-motion="split_copy"] .hero-image{
  animation:sib41Fade var(--sib-hero-image-duration) ease .05s both!important
}
body[data-sib-hero-motion="split_copy"] .hero-copy h1{
  animation:sib41SlideLeft var(--sib-hero-heading-duration) cubic-bezier(.16,.8,.2,1) .28s both!important
}
body[data-sib-hero-image-side="left"][data-sib-hero-motion="split_copy"] .hero-copy h1{
  animation-name:sib41SlideRight!important
}
body[data-sib-hero-motion="split_copy"] .hero-copy p{
  animation:sib41SlideLeft var(--sib-hero-tagline-duration) cubic-bezier(.16,.8,.2,1) .56s both!important
}
body[data-sib-hero-image-side="left"][data-sib-hero-motion="split_copy"] .hero-copy p{
  animation-name:sib41SlideRight!important
}
body[data-sib-hero-motion="split_copy"] .hero-meta{
  animation:sib41Fade var(--sib-hero-meta-duration) ease .18s both!important
}

/* Statement */
body[data-sib-hero-motion="statement_words"] .hero-image{
  animation:sib41Fade var(--sib-hero-image-duration) ease .05s both!important
}
body[data-sib-hero-motion="statement_words"] .hero-copy h1{
  animation:sib41TypeReveal var(--sib-hero-heading-duration) cubic-bezier(.16,.8,.2,1) .35s both!important
}
body[data-sib-hero-motion="statement_words"] .hero-copy p{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .78s both!important
}
body[data-sib-hero-motion="statement_words"] .hero-meta{
  animation:sib41Fade var(--sib-hero-meta-duration) ease .20s both!important
}

body[data-sib-hero-motion="statement_stagger"] .hero-image{
  animation:sib41Fade var(--sib-hero-image-duration) ease .05s both!important
}
body[data-sib-hero-motion="statement_stagger"] .hero-meta{
  animation:sib41Rise var(--sib-hero-meta-duration) ease .22s both!important
}
body[data-sib-hero-motion="statement_stagger"] .hero-copy h1{
  animation:sib41TypeReveal var(--sib-hero-heading-duration) cubic-bezier(.16,.8,.2,1) .52s both!important
}
body[data-sib-hero-motion="statement_stagger"] .hero-copy p{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .92s both!important
}

body[data-sib-hero-motion="statement_build"] .hero-image{
  animation:sib41Zoom var(--sib-hero-image-duration) ease .05s both!important
}
body[data-sib-hero-motion="statement_build"] .hero-meta{
  animation:sib41Fade var(--sib-hero-meta-duration) ease .32s both!important
}
body[data-sib-hero-motion="statement_build"] .hero-copy h1{
  animation:sib41TypeReveal var(--sib-hero-heading-duration) cubic-bezier(.16,.8,.2,1) .60s both!important
}
body[data-sib-hero-motion="statement_build"] .hero-copy p{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .98s both!important
}
body[data-sib-hero-motion="statement_build"] .hero-decoration{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease .88s both!important
}

@media(prefers-reduced-motion:reduce){
  .hero-design :is(.hero-image,.hero-copy h1,.hero-copy p,.hero-meta,.hero-decoration){
    animation:none!important
  }
}

/* ================================================================
   M42 — OPTIONAL DISPLAY / HEADING FONTS
   ================================================================ */
body[data-sib-heading-font="playfair"]{--sib-heading:"Playfair Display",Georgia,serif}
body[data-sib-heading-font="cormorant"]{--sib-heading:"Cormorant Garamond",Georgia,serif}
body[data-sib-heading-font="lora"]{--sib-heading:"Lora",Georgia,serif}
body[data-sib-heading-font="montserrat"]{--sib-heading:"Montserrat",Arial,sans-serif}
body[data-sib-heading-font="great_vibes"]{--sib-heading:"Great Vibes","Brush Script MT",cursive}
body[data-sib-heading-font]:not([data-sib-heading-font="theme"]) :is(.hero-copy h1,.section-heading h2,.story-copy h2,.wedding-detail-card>strong,.wedding-day-copy h3,.place-card-copy h3,.public-party-copy h3,.question-item summary,.rsvp-section h2){font-family:var(--sib-heading)!important}
body[data-sib-heading-font="great_vibes"] .hero-copy h1{letter-spacing:0!important;line-height:.98!important}
body[data-sib-heading-font="great_vibes"] :is(.section-heading h2,.story-copy h2){letter-spacing:0!important;line-height:1!important}


/* ================================================================
   M42.1 — SCRIPT FONT CASE PRESERVATION
   Great Vibes must display the wording exactly as the couple typed it.
   ================================================================ */
body[data-sib-heading-font="great_vibes"] :is(
  .hero h1,
  .hero-copy h1,
  .section h2,
  .section-heading h2,
  .story-copy h2,
  .person h3,
  .public-party-copy h3,
  .schedule-item strong,
  .wedding-day-copy h3,
  .place-card-copy h3,
  .wedding-detail-card>strong,
  .question-item summary,
  .cta h2,
  .rsvp-section h2
){
  text-transform:none!important;
  letter-spacing:0!important;
  font-variant-caps:normal!important;
}

/* Centered Hero normally uses uppercase as part of its own design.
   Script typography explicitly opts out of that treatment. */
body[data-sib-heading-font="great_vibes"][data-sib-hero-layout="centered"] .hero-copy h1{
  text-transform:none!important;
  letter-spacing:0!important;
}

/* Give the flowing script enough room without making the Hero huge. */
body[data-sib-heading-font="great_vibes"] .hero-copy h1{
  line-height:1.02!important;
  max-width:11ch!important;
}
body[data-sib-heading-font="great_vibes"] :is(.section-heading h2,.story-copy h2){
  line-height:1.05!important;
}

/* ================================================================
   M43 — THREE SCRIPT FONT COMBINATIONS
   ================================================================ */
body[data-sib-heading-font="great_vibes"]{
  --sib-heading:"Great Vibes","Brush Script MT",cursive;
  --sib-body:"Montserrat",Arial,sans-serif;
  font-family:var(--sib-body);
}
body[data-sib-heading-font="allura"]{
  --sib-heading:"Allura","Brush Script MT",cursive;
  --sib-body:"Lora",Georgia,serif;
  font-family:var(--sib-body);
}
body[data-sib-heading-font="parisienne"]{
  --sib-heading:"Parisienne","Brush Script MT",cursive;
  --sib-body:"Montserrat",Arial,sans-serif;
  font-family:var(--sib-body);
}

body:is(
  [data-sib-heading-font="great_vibes"],
  [data-sib-heading-font="allura"],
  [data-sib-heading-font="parisienne"]
) :is(
  .hero h1,
  .hero-copy h1,
  .section h2,
  .section-heading h2,
  .story-copy h2,
  .person h3,
  .public-party-copy h3,
  .schedule-item strong,
  .wedding-day-copy h3,
  .place-card-copy h3,
  .wedding-detail-card>strong,
  .question-item summary,
  .cta h2,
  .rsvp-section h2
){
  font-family:var(--sib-heading)!important;
  text-transform:none!important;
  letter-spacing:0!important;
  font-variant-caps:normal!important;
  font-style:normal!important;
  font-weight:400!important;
}

body:is(
  [data-sib-heading-font="great_vibes"],
  [data-sib-heading-font="allura"],
  [data-sib-heading-font="parisienne"]
)[data-sib-hero-layout="centered"] .hero-copy h1{
  text-transform:none!important;
  letter-spacing:0!important;
}

body:is(
  [data-sib-heading-font="great_vibes"],
  [data-sib-heading-font="allura"],
  [data-sib-heading-font="parisienne"]
) .hero-copy h1{
  line-height:1.02!important;
  max-width:11ch!important;
}

/* Public navigation displays the couple's site title instead of the product name. */
.public-site-title{
  min-width:0;
}
.public-site-title span{
  display:block;
  max-width:230px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
body[data-sib-nav-theme="centered"] .public-site-title span{
  max-width:360px;
}
@media(max-width:760px){
  .public-site-title span{max-width:175px}
}

/* ================================================================
   M43.1 — COUPLE MONOGRAM NAVIGATION
   ================================================================ */
.public-nav-home{
  text-decoration:none!important;
  color:inherit!important;
  cursor:pointer;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:64px;
  min-height:38px;
  padding:8px 13px!important;
  border-radius:999px;
  font-weight:850!important;
  letter-spacing:.035em!important;
  line-height:1!important;
  white-space:nowrap!important;
  transition:transform .18s ease,background .18s ease,opacity .18s ease;
}
.public-nav-home:hover{transform:translateY(-1px)}
.public-nav-home:focus-visible{
  outline:2px solid currentColor;
  outline-offset:3px;
}
.public-site-title span{
  display:block;
  max-width:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
body[data-sib-nav-theme="floating"] .public-nav-home,
body[data-sib-nav-theme="minimal"] .public-nav-home{
  background:rgba(255,255,255,.08);
}
body[data-sib-nav-theme="full_bar"] .public-nav-home,
body[data-sib-nav-theme="centered"] .public-nav-home{
  background:color-mix(in srgb,var(--sib-text) 5%,transparent);
}
@media(max-width:760px){
  .public-nav-home{
    min-width:56px;
    min-height:36px;
    padding:7px 11px!important;
  }
}

/* ================================================================
   M43.2 — STATEMENT HERO COMPOSITION POLISH
   The other three Hero designs are intentionally untouched.
   ================================================================ */

@media(min-width:761px){
  body[data-sib-hero-layout="statement"] .hero-copy{
    width:min(calc(100% - 80px),var(--sib-max))!important;
    margin:0 auto 7vh!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.2fr) minmax(260px,.58fr)!important;
    grid-template-areas:
      "title meta"
      "title tagline"!important;
    column-gap:clamp(36px,6vw,110px)!important;
    row-gap:14px!important;
    align-items:end!important;
    color:#fff!important;
  }

  body[data-sib-hero-layout="statement"] .hero-copy h1{
    grid-area:title!important;
    align-self:end!important;
    margin:0!important;
    max-width:8ch!important;
    font-size:clamp(66px,8.4vw,132px)!important;
    line-height:.82!important;
  }

  body[data-sib-hero-layout="statement"] .hero-meta{
    grid-area:meta!important;
    position:static!important;
    align-self:end!important;
    justify-content:flex-end!important;
    text-align:right!important;
    max-width:none!important;
    margin:0!important;
  }

  body[data-sib-hero-layout="statement"] .hero-copy p{
    grid-area:tagline!important;
    align-self:start!important;
    max-width:34ch!important;
    margin:0!important;
    text-align:right!important;
  }

  body[data-sib-hero-layout="statement"] .hero-decoration:after{
    left:max(5vw,calc((100vw - var(--sib-max))/2))!important;
    bottom:4.6vh!important;
    width:min(31vw,390px)!important;
  }

  /* Alignment remains meaningful without allowing content to climb into nav. */
  body[data-sib-hero-layout="statement"][data-sib-hero-align="center"] .hero-copy{
    grid-template-columns:1fr!important;
    grid-template-areas:
      "meta"
      "title"
      "tagline"!important;
    justify-items:center!important;
    text-align:center!important;
    width:min(900px,calc(100% - 80px))!important;
  }
  body[data-sib-hero-layout="statement"][data-sib-hero-align="center"] .hero-copy h1{
    margin-inline:auto!important;
    max-width:9ch!important;
  }
  body[data-sib-hero-layout="statement"][data-sib-hero-align="center"] .hero-meta{
    justify-content:center!important;
    text-align:center!important;
  }
  body[data-sib-hero-layout="statement"][data-sib-hero-align="center"] .hero-copy p{
    margin-inline:auto!important;
    text-align:center!important;
  }

  body[data-sib-hero-layout="statement"][data-sib-hero-align="right"] .hero-copy{
    grid-template-columns:minmax(260px,.58fr) minmax(0,1.2fr)!important;
    grid-template-areas:
      "meta title"
      "tagline title"!important;
  }
  body[data-sib-hero-layout="statement"][data-sib-hero-align="right"] .hero-copy h1{
    margin-left:auto!important;
    text-align:right!important;
  }
  body[data-sib-hero-layout="statement"][data-sib-hero-align="right"] .hero-meta{
    justify-content:flex-start!important;
    text-align:left!important;
  }
  body[data-sib-hero-layout="statement"][data-sib-hero-align="right"] .hero-copy p{
    text-align:left!important;
    margin:0!important;
  }

  /* Script choices need room for flourishes but should never grow into navigation. */
  body:is(
    [data-sib-heading-font="great_vibes"],
    [data-sib-heading-font="allura"],
    [data-sib-heading-font="parisienne"]
  )[data-sib-hero-layout="statement"] .hero-copy h1{
    font-size:clamp(72px,8.1vw,126px)!important;
    line-height:.96!important;
    max-width:8.6ch!important;
  }
}

/* Keep the existing purpose-built Statement mobile composition. */
@media(max-width:760px){
  body[data-sib-hero-layout="statement"] .hero-copy{
    display:block!important;
  }
  body[data-sib-hero-layout="statement"] .hero-meta{
    margin-bottom:14px!important;
  }
}

/* ================================================================
   M43.2 — BURGUNDY / GANACHE / GOLD PALETTE DETAILS
   ================================================================ */

/* Slightly warmer UI details when this rich dark preset is active. */
body[data-sib-palette="burgundy_ganache"]{
  --sib-burgundy:#7e263e;
  --sib-ganache:#2f201f;
  --sib-gold:#c9a35d;
}

/* ================================================================
   M43.3 — PRIMARY / SECONDARY / ACCENT / TEXT
   ================================================================ */
:root{
  --sib-primary:var(--accent);
  --sib-secondary:var(--surface);
  --sib-accent:var(--accent2);
  --sib-text:var(--ink);
}

body.sib-public{
  background:var(--sib-secondary)!important;
  color:var(--sib-text)!important;
}

/* Primary carries the identity. Accent is deliberately used in smaller doses. */
body.sib-public :is(.eyebrow,.wedding-day-copy>strong,.travel-card a){
  color:var(--sib-accent);
}
body.sib-public .hero-decoration:after{
  background:var(--sib-accent);
}
body.sib-public :is(.pill,.nav-rsvp-button,.travel-icon){
  background:linear-gradient(
    110deg,
    var(--sib-primary),
    color-mix(in srgb,var(--sib-primary) 72%,var(--sib-accent) 28%)
  );
}

/* True Burgundy + Ganache + Gold */
body[data-sib-palette="burgundy_ganache"]{
  --sib-primary:#800020;
  --sib-secondary:#3b2925;
  --sib-accent:#d0ad5f;
  --sib-text:#fff8ee;
}

body[data-sib-palette="burgundy_ganache"] .wedding-details-section{
  background:linear-gradient(
    145deg,
    color-mix(in srgb,var(--sib-secondary) 76%,var(--sib-primary) 24%),
    var(--sib-secondary)
  )!important;
}
body[data-sib-palette="burgundy_ganache"] :is(.wedding-party-section,.questions-section){
  background:color-mix(in srgb,var(--sib-secondary) 90%,var(--sib-primary) 10%)!important;
}
body[data-sib-palette="burgundy_ganache"] .wedding-day-section{
  background:var(--sib-primary)!important;
  color:var(--sib-text)!important;
}
body[data-sib-palette="burgundy_ganache"] :is(
  .wedding-detail-card,
  .place-card,
  .public-party-card,
  .travel-card,
  .question-item
){
  border-color:color-mix(in srgb,var(--sib-accent) 28%,transparent)!important;
}
body[data-sib-palette="burgundy_ganache"] :is(
  .section-heading .eyebrow,
  .wedding-detail-card>span,
  .place-card-copy .eyebrow,
  .public-party-copy .eyebrow
){
  color:var(--sib-accent)!important;
}

/* ================================================================
   M43.4 — FLAGSHIP HERO ENTRANCES
   ================================================================ */

@keyframes sib44CinematicImage{
  0%{
    opacity:0;
    transform:scale(1.12);
    filter:blur(15px) brightness(.64);
    clip-path:inset(11% 11% 11% 11% round 28px);
  }
  20%{
    opacity:.10;
    transform:scale(1.105);
    filter:blur(13px) brightness(.68);
    clip-path:inset(9% 9% 9% 9% round 24px);
  }
  50%{
    opacity:.48;
    transform:scale(1.07);
    filter:blur(8px) brightness(.78);
    clip-path:inset(5% 5% 5% 5% round 16px);
  }
  78%{
    opacity:.82;
    transform:scale(1.03);
    filter:blur(3px) brightness(.90);
    clip-path:inset(1.5% 1.5% 1.5% 1.5% round 7px);
  }
  100%{
    opacity:1;
    transform:scale(1);
    filter:none;
    clip-path:inset(0);
  }
}

@keyframes sib44CinematicHeading{
  0%{
    opacity:0;
    transform:translateY(66px) scale(.95);
    filter:blur(10px);
    clip-path:inset(0 0 100% 0);
  }
  24%{
    opacity:.08;
    transform:translateY(57px) scale(.955);
    filter:blur(9px);
    clip-path:inset(0 0 88% 0);
  }
  52%{
    opacity:.40;
    transform:translateY(36px) scale(.97);
    filter:blur(6px);
    clip-path:inset(0 0 55% 0);
  }
  80%{
    opacity:.78;
    transform:translateY(13px) scale(.99);
    filter:blur(2px);
    clip-path:inset(0 0 15% 0);
  }
  100%{
    opacity:1;
    transform:none;
    filter:none;
    clip-path:inset(0);
  }
}

@keyframes sib44CinematicText{
  0%{
    opacity:0;
    transform:translateY(28px);
    filter:blur(6px);
  }
  28%{
    opacity:.10;
    transform:translateY(24px);
    filter:blur(5px);
  }
  58%{
    opacity:.46;
    transform:translateY(14px);
    filter:blur(3px);
  }
  84%{
    opacity:.82;
    transform:translateY(5px);
    filter:blur(1px);
  }
  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes sib44EditorialImage{
  0%{
    opacity:.08;
    transform:scale(1.085);
    filter:saturate(.50) brightness(.66);
  }
  25%{
    opacity:.20;
    transform:scale(1.072);
    filter:saturate(.58) brightness(.71);
  }
  55%{
    opacity:.50;
    transform:scale(1.045);
    filter:saturate(.72) brightness(.80);
  }
  82%{
    opacity:.82;
    transform:scale(1.016);
    filter:saturate(.90) brightness(.92);
  }
  100%{
    opacity:1;
    transform:scale(1);
    filter:none;
  }
}

@keyframes sib44EditorialHeading{
  0%{
    opacity:0;
    transform:translateX(-56px);
    clip-path:inset(0 100% 0 0);
  }
  25%{
    opacity:.08;
    transform:translateX(-49px);
    clip-path:inset(0 90% 0 0);
  }
  55%{
    opacity:.42;
    transform:translateX(-30px);
    clip-path:inset(0 54% 0 0);
  }
  82%{
    opacity:.80;
    transform:translateX(-9px);
    clip-path:inset(0 14% 0 0);
  }
  100%{
    opacity:1;
    transform:none;
    clip-path:inset(0);
  }
}

@keyframes sib44EditorialText{
  0%{
    opacity:0;
    transform:translateX(-28px);
  }
  28%{
    opacity:.10;
    transform:translateX(-24px);
  }
  58%{
    opacity:.45;
    transform:translateX(-14px);
  }
  84%{
    opacity:.82;
    transform:translateX(-5px);
  }
  100%{
    opacity:1;
    transform:none;
  }
}

@keyframes sib44LuxurySweep{
  0%{
    opacity:0;
    transform:translateX(-120%) skewX(-10deg);
  }
  18%{
    opacity:.35;
    transform:translateX(-88%) skewX(-10deg);
  }
  50%{
    opacity:1;
    transform:translateX(-8%) skewX(-10deg);
  }
  82%{
    opacity:.45;
    transform:translateX(82%) skewX(-10deg);
  }
  100%{
    opacity:0;
    transform:translateX(120%) skewX(-10deg);
  }
}

/* CINEMATIC REVEAL */
body[data-sib-hero-motion="cinematic_reveal"] .hero-image{
  animation:sib44CinematicImage var(--sib-hero-image-duration)
    cubic-bezier(.42,0,.28,1) .05s both!important;
  will-change:transform,opacity,filter,clip-path;
}
body[data-sib-hero-motion="cinematic_reveal"] .hero-copy h1{
  animation:sib44CinematicHeading var(--sib-hero-heading-duration)
    cubic-bezier(.42,0,.28,1) .42s both!important;
  will-change:transform,opacity,filter,clip-path;
}
body[data-sib-hero-motion="cinematic_reveal"] .hero-meta{
  animation:sib44CinematicText var(--sib-hero-meta-duration)
    cubic-bezier(.42,0,.30,1) .62s both!important;
}
body[data-sib-hero-motion="cinematic_reveal"] .hero-copy p{
  animation:sib44CinematicText var(--sib-hero-tagline-duration)
    cubic-bezier(.42,0,.30,1) .84s both!important;
}
body[data-sib-hero-motion="cinematic_reveal"] .hero-decoration{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease 1s both!important;
}

/* EDITORIAL SWEEP */
body[data-sib-hero-motion="editorial_sweep"] .hero-image{
  animation:sib44EditorialImage var(--sib-hero-image-duration)
    cubic-bezier(.42,0,.28,1) .04s both!important;
  will-change:transform,opacity,filter;
}
body[data-sib-hero-motion="editorial_sweep"] .hero-copy h1{
  animation:sib44EditorialHeading var(--sib-hero-heading-duration)
    cubic-bezier(.42,0,.28,1) .53s both!important;
}
body[data-sib-hero-motion="editorial_sweep"] .hero-meta{
  animation:sib44EditorialText var(--sib-hero-meta-duration)
    cubic-bezier(.42,0,.30,1) .72s both!important;
}
body[data-sib-hero-motion="editorial_sweep"] .hero-copy p{
  animation:sib44EditorialText var(--sib-hero-tagline-duration)
    cubic-bezier(.42,0,.30,1) .94s both!important;
}
body[data-sib-hero-motion="editorial_sweep"] .hero-decoration{
  animation:sib41Fade var(--sib-hero-tagline-duration) ease 1.06s both!important;
}

body[data-sib-hero-motion="editorial_sweep"] .hero-design::after{
  content:"";
  position:absolute;
  inset:-12% -34%;
  z-index:3;
  pointer-events:none;
  background:linear-gradient(
    90deg,
    transparent 0%,
    color-mix(in srgb,var(--sib-accent) 10%,transparent) 34%,
    color-mix(in srgb,var(--sib-text) 28%,transparent) 49%,
    color-mix(in srgb,var(--sib-accent) 13%,transparent) 63%,
    transparent 100%
  );
  mix-blend-mode:screen;
  animation:sib44LuxurySweep var(--sib-hero-image-duration)
    cubic-bezier(.18,.8,.18,1) .08s both!important;
}

/* Preserve the personality of the four different Hero layouts. */
body[data-sib-hero-layout="centered"][data-sib-hero-motion="editorial_sweep"] .hero-copy h1{
  animation-name:sib44CinematicHeading!important;
}
body[data-sib-hero-layout="split"][data-sib-hero-image-side="left"][data-sib-hero-motion="editorial_sweep"] .hero-copy h1{
  animation-name:sib44CinematicHeading!important;
}
body[data-sib-hero-layout="statement"][data-sib-hero-motion="cinematic_reveal"] .hero-copy h1{
  transform-origin:left bottom;
}

/* Mobile keeps the cinematic rhythm but removes the heaviest photo blur. */
@media(max-width:760px){
  body[data-sib-hero-motion="cinematic_reveal"] .hero-image{
    animation:sib44EditorialImage var(--sib-hero-image-duration)
      cubic-bezier(.42,0,.28,1) .04s both!important;
  }
  body[data-sib-hero-motion="editorial_sweep"] .hero-design::after{
    inset:-10% -60%;
  }
}

/* Motion accessibility always wins. */
@media(prefers-reduced-motion:reduce){
  body[data-sib-hero-motion="cinematic_reveal"] .hero-design::after,
  body[data-sib-hero-motion="editorial_sweep"] .hero-design::after{
    display:none!important;
    animation:none!important;
  }
}

/* ================================================================
   M43.6 — TRUE TIMING GUARANTEE
   A slider value is intended to represent visible motion duration.
   ================================================================ */
body[data-sib-hero-motion="cinematic_reveal"] :is(
  .hero-image,.hero-copy h1,.hero-copy p,.hero-meta,.hero-decoration
),
body[data-sib-hero-motion="editorial_sweep"] :is(
  .hero-image,.hero-copy h1,.hero-copy p,.hero-meta,.hero-decoration
){
  animation-play-state:running!important;
}

/* Avoid a browser optimization that can make long clip-path/blur animations
   appear to snap to their resting state too early. */
body[data-sib-hero-motion="cinematic_reveal"] :is(.hero-image,.hero-copy h1),
body[data-sib-hero-motion="editorial_sweep"] :is(.hero-image,.hero-copy h1){
  backface-visibility:hidden;
  transform-style:preserve-3d;
}

/* ================================================================
   M43.7 — HERO READY + SMOOTH TRUE-TIME FLAGSHIP MOTION
   ================================================================ */

/* Stop the animation clock while the Hero asset is loading/decoding. */
body:not(.sib-hero-ready)[data-sib-hero-motion]:not([data-sib-hero-motion="none"]) .hero-design :is(
  .hero-image,
  .hero-copy h1,
  .hero-copy p,
  .hero-meta,
  .hero-decoration
),
body:not(.sib-hero-ready)[data-sib-hero-motion="editorial_sweep"] .hero-design::after{
  animation-play-state:paused!important;
}

/* Stable frame-zero appearance while paused. */
body:not(.sib-hero-ready)[data-sib-hero-motion="cinematic_reveal"] .hero-image{
  opacity:0!important;
}
body:not(.sib-hero-ready)[data-sib-hero-motion="cinematic_reveal"] :is(
  .hero-copy h1,.hero-copy p,.hero-meta
),
body:not(.sib-hero-ready)[data-sib-hero-motion="editorial_sweep"] :is(
  .hero-copy h1,.hero-copy p,.hero-meta
){
  opacity:0!important;
}

/* ------------------------------
   Cinematic Reveal
   GPU-friendly and visibly active through 100%.
   ------------------------------ */
@keyframes sib47CinematicImage{
  0%{opacity:0;transform:translate3d(0,1.5%,0) scale(1.12)}
  18%{opacity:.12;transform:translate3d(0,1.25%,0) scale(1.105)}
  42%{opacity:.38;transform:translate3d(0,.85%,0) scale(1.075)}
  68%{opacity:.66;transform:translate3d(0,.45%,0) scale(1.043)}
  86%{opacity:.86;transform:translate3d(0,.16%,0) scale(1.017)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}

@keyframes sib47CinematicHeading{
  0%{opacity:0;transform:translate3d(0,54px,0) scale(.97)}
  20%{opacity:.07;transform:translate3d(0,49px,0) scale(.973)}
  45%{opacity:.32;transform:translate3d(0,35px,0) scale(.982)}
  70%{opacity:.64;transform:translate3d(0,18px,0) scale(.99)}
  88%{opacity:.87;transform:translate3d(0,6px,0) scale(.997)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}

@keyframes sib47CinematicText{
  0%{opacity:0;transform:translate3d(0,23px,0)}
  24%{opacity:.08;transform:translate3d(0,20px,0)}
  52%{opacity:.38;transform:translate3d(0,13px,0)}
  78%{opacity:.70;transform:translate3d(0,6px,0)}
  100%{opacity:1;transform:translate3d(0,0,0)}
}

body[data-sib-hero-motion="cinematic_reveal"] .hero-image{
  animation:sib47CinematicImage var(--sib-hero-image-duration) cubic-bezier(.33,.01,.20,1) 0s both!important;
  will-change:transform,opacity!important;
  backface-visibility:hidden;
}
body[data-sib-hero-motion="cinematic_reveal"] .hero-copy h1{
  animation:sib47CinematicHeading var(--sib-hero-heading-duration) cubic-bezier(.33,.01,.20,1) 0s both!important;
  will-change:transform,opacity!important;
  backface-visibility:hidden;
}
body[data-sib-hero-motion="cinematic_reveal"] .hero-copy p{
  animation:sib47CinematicText var(--sib-hero-tagline-duration) cubic-bezier(.33,.01,.20,1) 0s both!important;
}
body[data-sib-hero-motion="cinematic_reveal"] .hero-meta{
  animation:sib47CinematicText var(--sib-hero-meta-duration) cubic-bezier(.33,.01,.20,1) 0s both!important;
}

/* ------------------------------
   Editorial Sweep
   Lightweight sweep overlay + transform/opacity image.
   ------------------------------ */
@keyframes sib47EditorialImage{
  0%{opacity:.16;transform:translate3d(-1.2%,0,0) scale(1.085)}
  20%{opacity:.26;transform:translate3d(-1%,0,0) scale(1.073)}
  45%{opacity:.47;transform:translate3d(-.7%,0,0) scale(1.052)}
  70%{opacity:.70;transform:translate3d(-.35%,0,0) scale(1.030)}
  88%{opacity:.88;transform:translate3d(-.12%,0,0) scale(1.012)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}

@keyframes sib47EditorialHeading{
  0%{opacity:0;transform:translate3d(-45px,0,0)}
  22%{opacity:.08;transform:translate3d(-40px,0,0)}
  48%{opacity:.36;transform:translate3d(-27px,0,0)}
  72%{opacity:.66;transform:translate3d(-14px,0,0)}
  90%{opacity:.88;transform:translate3d(-4px,0,0)}
  100%{opacity:1;transform:translate3d(0,0,0)}
}

@keyframes sib47Sweep{
  0%{opacity:0;transform:translate3d(-118%,0,0) skewX(-9deg)}
  16%{opacity:.25;transform:translate3d(-92%,0,0) skewX(-9deg)}
  42%{opacity:.72;transform:translate3d(-38%,0,0) skewX(-9deg)}
  62%{opacity:.90;transform:translate3d(8%,0,0) skewX(-9deg)}
  82%{opacity:.38;transform:translate3d(70%,0,0) skewX(-9deg)}
  100%{opacity:0;transform:translate3d(118%,0,0) skewX(-9deg)}
}

body[data-sib-hero-motion="editorial_sweep"] .hero-image{
  animation:sib47EditorialImage var(--sib-hero-image-duration) cubic-bezier(.33,.01,.20,1) 0s both!important;
  will-change:transform,opacity!important;
  backface-visibility:hidden;
}
body[data-sib-hero-motion="editorial_sweep"] .hero-copy h1{
  animation:sib47EditorialHeading var(--sib-hero-heading-duration) cubic-bezier(.33,.01,.20,1) 0s both!important;
  will-change:transform,opacity!important;
  backface-visibility:hidden;
}
body[data-sib-hero-motion="editorial_sweep"] .hero-copy p{
  animation:sib47CinematicText var(--sib-hero-tagline-duration) cubic-bezier(.33,.01,.20,1) 0s both!important;
}
body[data-sib-hero-motion="editorial_sweep"] .hero-meta{
  animation:sib47CinematicText var(--sib-hero-meta-duration) cubic-bezier(.33,.01,.20,1) 0s both!important;
}
body[data-sib-hero-motion="editorial_sweep"] .hero-design::after{
  animation:sib47Sweep var(--sib-hero-image-duration) linear 0s both!important;
  will-change:transform,opacity!important;
}

/* Make the active state explicit after the image has decoded. */
body.sib-hero-ready[data-sib-hero-motion]:not([data-sib-hero-motion="none"]) .hero-design :is(
  .hero-image,.hero-copy h1,.hero-copy p,.hero-meta,.hero-decoration
),
body.sib-hero-ready[data-sib-hero-motion="editorial_sweep"] .hero-design::after{
  animation-play-state:running!important;
}

/* Reduced motion always overrides visual effects. */
@media(prefers-reduced-motion:reduce){
  body[data-sib-hero-motion] .hero-design :is(
    .hero-image,.hero-copy h1,.hero-copy p,.hero-meta,.hero-decoration
  ){
    animation:none!important;
    opacity:1!important;
    transform:none!important;
  }
  body[data-sib-hero-motion="editorial_sweep"] .hero-design::after{
    display:none!important;
  }
}

/* ================================================================
   M43.8 — HERO TIMING SOURCE-OF-TRUTH FIX
   Saved values live on body; live Design values are written to body.
   Hero elements inherit those values instead of replacing them.
   ================================================================ */
.hero-design{
  --sib-hero-timing-engine:m43-8;
}


/* ================================================================
   M43.9 — MOBILE NAVIGATION USES THE SEMANTIC COLOR SYSTEM
   Secondary = menu surface
   Text      = readable labels
   Primary   = couple monogram / important actions
   Accent    = controls, dividers and small highlights
   ================================================================ */
@media(max-width:760px){
  /* Compact mobile header */
  body[data-sib-nav-theme] .site-nav{
    background:color-mix(in srgb,var(--sib-secondary) 96%,transparent)!important;
    color:var(--sib-text)!important;
    border:1px solid color-mix(in srgb,var(--sib-accent) 44%,transparent)!important;
    box-shadow:
      0 16px 44px color-mix(in srgb,var(--sib-secondary) 42%,transparent),
      inset 0 1px 0 color-mix(in srgb,var(--sib-text) 8%,transparent)!important;
    backdrop-filter:blur(20px) saturate(1.05)!important;
  }

  /* Couple monogram = Primary */
  body[data-sib-nav-theme] .site-nav .public-nav-home{
    background:var(--sib-primary)!important;
    color:var(--sib-text)!important;
    border:1px solid color-mix(in srgb,var(--sib-accent) 48%,transparent)!important;
    box-shadow:0 7px 22px color-mix(in srgb,var(--sib-primary) 28%,transparent)!important;
  }

  /* Hamburger = Accent, with a subtle Primary/Secondary control surface. */
  body[data-sib-nav-theme] .public-mobile-menu-toggle{
    width:42px!important;
    height:42px!important;
    padding:0!important;
    border-radius:50%!important;
    display:grid!important;
    place-content:center!important;
    background:color-mix(in srgb,var(--sib-primary) 14%,var(--sib-secondary))!important;
    color:var(--sib-accent)!important;
    border:1px solid color-mix(in srgb,var(--sib-accent) 44%,transparent)!important;
  }
  body[data-sib-nav-theme] .public-mobile-menu-toggle span{
    width:21px!important;
    height:2px!important;
    margin:3px 0!important;
    background:currentColor!important;
    box-shadow:none!important;
  }

  /* Every open style inherits the exact same semantic roles. */
  body[data-sib-mobile-nav] .site-nav.mobile-open{
    background:var(--sib-secondary)!important;
    color:var(--sib-text)!important;
    border-color:color-mix(in srgb,var(--sib-accent) 48%,transparent)!important;
  }

  body[data-sib-mobile-nav] .site-nav.mobile-open .navlinks{
    color:var(--sib-text)!important;
    border-top:1px solid color-mix(in srgb,var(--sib-accent) 40%,transparent)!important;
  }

  body[data-sib-mobile-nav] .site-nav.mobile-open .navlinks a,
  body[data-sib-mobile-nav] .site-nav.mobile-open .nav-menu-parent>a,
  body[data-sib-mobile-nav] .site-nav.mobile-open .nav-submenu a{
    color:var(--sib-text)!important;
    text-decoration:none!important;
  }

  body[data-sib-mobile-nav] .site-nav.mobile-open .navlinks> a,
  body[data-sib-mobile-nav] .site-nav.mobile-open .nav-menu-parent{
    border-radius:12px!important;
    transition:background .18s ease,color .18s ease,transform .18s ease!important;
  }

  body[data-sib-mobile-nav] .site-nav.mobile-open .navlinks>a:hover,
  body[data-sib-mobile-nav] .site-nav.mobile-open .navlinks>a:focus-visible,
  body[data-sib-mobile-nav] .site-nav.mobile-open .nav-menu-parent:hover,
  body[data-sib-mobile-nav] .site-nav.mobile-open .nav-menu-parent:focus-within{
    background:color-mix(in srgb,var(--sib-primary) 28%,var(--sib-secondary))!important;
  }

  /* Nested navigation uses Accent as the guide line, never washed-out text. */
  body[data-sib-mobile-nav] .site-nav.mobile-open .nav-submenu{
    background:color-mix(in srgb,var(--sib-primary) 7%,var(--sib-secondary))!important;
    color:var(--sib-text)!important;
    border:0!important;
  }
  body[data-sib-mobile-nav] .site-nav.mobile-open .nav-submenu a{
    border-left:2px solid var(--sib-accent)!important;
  }
  body[data-sib-mobile-nav] .site-nav.mobile-open .nav-submenu-toggle{
    color:var(--sib-accent)!important;
    background:color-mix(in srgb,var(--sib-accent) 10%,transparent)!important;
  }

  /* RSVP/important action = Primary with Accent detail. */
  body[data-sib-mobile-nav] .site-nav.mobile-open .nav-rsvp-button{
    color:var(--sib-text)!important;
    background:linear-gradient(115deg,var(--sib-primary),color-mix(in srgb,var(--sib-primary) 70%,var(--sib-accent) 30%))!important;
    border:1px solid color-mix(in srgb,var(--sib-accent) 52%,transparent)!important;
    box-shadow:0 10px 28px color-mix(in srgb,var(--sib-primary) 26%,transparent)!important;
  }

  /* Sheet keeps the compact rounded language. */
  body[data-sib-mobile-nav="sheet"] .site-nav.mobile-open{
    border-radius:22px!important;
    padding:10px 12px 14px!important;
  }

  /* Drawer is a true Secondary panel with an Accent edge. */
  body[data-sib-mobile-nav="drawer"] .site-nav.mobile-open{
    border-left:1px solid color-mix(in srgb,var(--sib-accent) 55%,transparent)!important;
    border-top:0!important;border-right:0!important;border-bottom:0!important;
    box-shadow:-24px 0 70px color-mix(in srgb,var(--sib-secondary) 42%,transparent)!important;
  }

  /* Full screen is intentionally immersive, but never pale-on-pale. */
  body[data-sib-mobile-nav="fullscreen"] .site-nav.mobile-open{
    background:
      radial-gradient(circle at 12% 12%,color-mix(in srgb,var(--sib-primary) 30%,transparent),transparent 42%),
      var(--sib-secondary)!important;
    color:var(--sib-text)!important;
  }
  body[data-sib-mobile-nav="fullscreen"] .site-nav.mobile-open .navlinks{
    border-top:0!important;
  }
  body[data-sib-mobile-nav="fullscreen"] .site-nav.mobile-open .navlinks>a,
  body[data-sib-mobile-nav="fullscreen"] .site-nav.mobile-open .nav-menu-parent>a{
    color:var(--sib-text)!important;
  }

  /* When the menu is open, the hamburger itself stays easy to find. */
  body[data-sib-mobile-nav] .site-nav.mobile-open .public-mobile-menu-toggle{
    background:var(--sib-primary)!important;
    color:var(--sib-accent)!important;
    border-color:color-mix(in srgb,var(--sib-accent) 58%,transparent)!important;
  }
}

/* ================================================================
   M44 — HERO TEXT SIZE CONTROLS
   ================================================================ */
:root{--sib-hero-heading-scale:1;--sib-hero-tagline-scale:1}
body[data-sib-hero-layout="full_image"] .hero-copy h1{font-size:calc(clamp(54px,7.2vw,108px) * var(--sib-hero-heading-scale))!important}
body[data-sib-hero-layout="centered"] .hero-copy h1{font-size:calc(clamp(48px,6.4vw,94px) * var(--sib-hero-heading-scale))!important}
body[data-sib-hero-layout="split"] .hero-copy h1{font-size:calc(clamp(48px,6.2vw,92px) * var(--sib-hero-heading-scale))!important}
body[data-sib-hero-layout="statement"] .hero-copy h1{font-size:calc(clamp(66px,8.4vw,132px) * var(--sib-hero-heading-scale))!important}
body:is([data-sib-heading-font="great_vibes"],[data-sib-heading-font="allura"],[data-sib-heading-font="parisienne"])[data-sib-hero-layout="statement"] .hero-copy h1{font-size:calc(clamp(72px,8.1vw,126px) * var(--sib-hero-heading-scale))!important}
body[data-sib-hero-layout="full_image"] .hero-copy p{font-size:calc(clamp(15px,1.45vw,20px) * var(--sib-hero-tagline-scale))!important}
body[data-sib-hero-layout="centered"] .hero-copy p{font-size:calc(clamp(16px,1.65vw,22px) * var(--sib-hero-tagline-scale))!important}
body[data-sib-hero-layout="split"] .hero-copy p{font-size:calc(clamp(15px,1.35vw,19px) * var(--sib-hero-tagline-scale))!important}
body[data-sib-hero-layout="statement"] .hero-copy p{font-size:calc(clamp(14px,1.2vw,18px) * var(--sib-hero-tagline-scale))!important}

/* ================================================================
   M44 — SPLIT HERO MOBILE RECOMPOSITION
   Image-led opening with an intentional overlapping editorial panel.
   ================================================================ */
@media(max-width:760px){
  body[data-sib-hero-layout="split"] .hero-design{
    display:flex!important;flex-direction:column!important;min-height:auto!important;height:auto!important;
    background:var(--sib-secondary)!important;overflow:hidden!important
  }
  body[data-sib-hero-layout="split"] .hero-image{
    position:relative!important;inset:auto!important;display:block!important;width:100%!important;height:clamp(330px,56svh,520px)!important;
    min-height:330px!important;object-fit:cover!important;grid-column:auto!important;grid-row:auto!important;z-index:0!important
  }
  body[data-sib-hero-layout="split"] .hero-veil{display:block!important;position:absolute!important;inset:0 0 auto 0!important;height:clamp(330px,56svh,520px)!important;z-index:1!important;
    background:linear-gradient(to bottom,transparent 58%,color-mix(in srgb,var(--sib-secondary) 30%,transparent) 78%,var(--sib-secondary) 100%)!important;pointer-events:none!important}
  body[data-sib-hero-layout="split"] .hero-decoration{display:none!important}
  body[data-sib-hero-layout="split"] .hero-copy{
    position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;
    z-index:3!important;width:calc(100% - 28px)!important;max-width:none!important;margin:-48px 14px 0!important;
    padding:30px 24px 34px!important;border-radius:30px 30px 0 0!important;background:var(--sib-secondary)!important;color:var(--sib-text)!important;
    box-shadow:0 -18px 42px rgba(0,0,0,.10)!important;text-align:left!important
  }
  body[data-sib-hero-layout="split"] .hero-copy:after{
    content:"";display:block;width:90px;height:3px;margin-top:20px;border-radius:999px;background:linear-gradient(90deg,var(--sib-primary),var(--sib-accent))
  }
  body[data-sib-hero-layout="split"] .hero-meta{
    position:static!important;display:flex!important;justify-content:flex-start!important;gap:8px!important;margin:0 0 12px!important;
    color:var(--sib-accent)!important;text-align:left!important
  }
  body[data-sib-hero-layout="split"] .hero-copy h1{
    font-size:clamp(38px,calc(13vw * var(--sib-hero-heading-scale)),88px)!important;line-height:.96!important;max-width:9ch!important;
    margin:0 0 15px!important;color:var(--sib-text)!important;letter-spacing:-.035em!important
  }
  body[data-sib-hero-layout="split"] .hero-copy p{
    font-size:clamp(13px,calc(4.2vw * var(--sib-hero-tagline-scale)),27px)!important;line-height:1.5!important;max-width:32ch!important;
    margin:0!important;color:color-mix(in srgb,var(--sib-text) 82%,transparent)!important;text-align:left!important
  }
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="light"] .hero-copy{background:#fffaf3!important;color:#15161d!important}
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="light"] .hero-copy h1{color:#15161d!important}
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="light"] .hero-copy p{color:#66636a!important}
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="dark"] .hero-copy{background:#11131b!important;color:#fff!important}
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="dark"] .hero-copy h1{color:#fff!important}
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="dark"] .hero-copy p{color:#dedde6!important}
}

/* ================================================================
   M44.2 — SPLIT HERO MOBILE OVERLAY
   The Split Hero stays image-led on mobile. Copy is ON the photograph.
   ================================================================ */
@media(max-width:760px){
  body[data-sib-hero-layout="split"] .hero-design{
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:clamp(560px,72svh,760px)!important;
    min-height:560px!important;
    overflow:hidden!important;
    background:var(--sib-secondary)!important;
  }

  body[data-sib-hero-layout="split"] .hero-image{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    object-fit:cover!important;
    object-position:var(--sib-focal-x) var(--sib-focal-y)!important;
    border-radius:0!important;
    z-index:0!important;
  }

  body[data-sib-hero-layout="split"] .hero-veil{
    display:block!important;
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    z-index:1!important;
    pointer-events:none!important;
    background:
      linear-gradient(
        to bottom,
        rgba(0,0,0,.02) 0%,
        rgba(0,0,0,.04) 40%,
        color-mix(in srgb,var(--sib-secondary) 16%,transparent) 54%,
        color-mix(in srgb,var(--sib-secondary) 70%,transparent) 76%,
        color-mix(in srgb,var(--sib-secondary) 94%,transparent) 100%
      )!important;
  }

  body[data-sib-hero-layout="split"] .hero-copy{
    position:absolute!important;
    z-index:3!important;
    left:clamp(18px,5vw,28px)!important;
    right:clamp(18px,5vw,28px)!important;
    bottom:clamp(20px,5vw,32px)!important;
    top:auto!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    transform:none!important;
    padding:clamp(20px,5vw,28px) clamp(20px,5vw,28px) clamp(22px,5vw,30px)!important;
    border-radius:24px!important;
    border:1px solid color-mix(in srgb,var(--sib-accent) 22%,rgba(255,255,255,.12))!important;
    background:color-mix(in srgb,var(--sib-secondary) 82%,transparent)!important;
    box-shadow:0 20px 50px rgba(0,0,0,.22)!important;
    backdrop-filter:blur(8px)!important;
    -webkit-backdrop-filter:blur(8px)!important;
    color:var(--sib-text)!important;
    text-align:left!important;
  }

  body[data-sib-hero-layout="split"] .hero-copy:after{
    content:""!important;
    display:block!important;
    width:92px!important;
    height:3px!important;
    margin-top:18px!important;
    border-radius:999px!important;
    background:linear-gradient(90deg,var(--sib-primary),var(--sib-accent))!important;
  }

  body[data-sib-hero-layout="split"] .hero-meta{
    position:static!important;
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:flex-start!important;
    gap:7px 10px!important;
    margin:0 0 10px!important;
    color:var(--sib-accent)!important;
    text-align:left!important;
  }

  body[data-sib-hero-layout="split"] .hero-copy h1{
    margin:0 0 12px!important;
    max-width:9ch!important;
    font-size:clamp(38px,calc(13vw * var(--sib-hero-heading-scale)),88px)!important;
    line-height:.94!important;
    color:var(--sib-text)!important;
    letter-spacing:-.03em!important;
  }

  body[data-sib-hero-layout="split"] .hero-copy p{
    margin:0!important;
    max-width:31ch!important;
    font-size:clamp(13px,calc(4.1vw * var(--sib-hero-tagline-scale)),27px)!important;
    line-height:1.45!important;
    color:color-mix(in srgb,var(--sib-text) 86%,transparent)!important;
    text-align:left!important;
  }

  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="light"] .hero-copy{
    background:rgba(255,250,243,.84)!important;
    border-color:rgba(255,255,255,.64)!important;
    color:#15161d!important;
  }
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="light"] .hero-copy h1{color:#15161d!important}
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="light"] .hero-copy p{color:#56525a!important}
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="light"] .hero-meta{color:var(--sib-primary)!important}

  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="dark"] .hero-copy{
    background:rgba(17,19,27,.82)!important;
    border-color:color-mix(in srgb,var(--sib-accent) 25%,rgba(255,255,255,.08))!important;
    color:#fff!important;
  }
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="dark"] .hero-copy h1{color:#fff!important}
  body[data-sib-hero-layout="split"][data-sib-hero-panel-tone="dark"] .hero-copy p{color:#e3e1e8!important}

  body[data-sib-hero-layout="split"][data-sib-hero-align="center"] .hero-copy{
    text-align:center!important;
  }
  body[data-sib-hero-layout="split"][data-sib-hero-align="center"] .hero-meta{
    justify-content:center!important;
    text-align:center!important;
  }
  body[data-sib-hero-layout="split"][data-sib-hero-align="center"] .hero-copy h1,
  body[data-sib-hero-layout="split"][data-sib-hero-align="center"] .hero-copy p{
    margin-left:auto!important;
    margin-right:auto!important;
    text-align:center!important;
  }

  body[data-sib-hero-layout="split"][data-sib-hero-align="right"] .hero-copy{
    text-align:right!important;
  }
  body[data-sib-hero-layout="split"][data-sib-hero-align="right"] .hero-meta{
    justify-content:flex-end!important;
    text-align:right!important;
  }
  body[data-sib-hero-layout="split"][data-sib-hero-align="right"] .hero-copy h1,
  body[data-sib-hero-layout="split"][data-sib-hero-align="right"] .hero-copy p{
    margin-left:auto!important;
    text-align:right!important;
  }

  body[data-sib-hero-layout="split"] .hero-decoration{
    display:none!important;
  }
}

/* ================================================================
   M45 — COMBINED WEDDING DETAILS + WEDDING DAY
   Four genuinely different public design systems.
   ================================================================ */
.wedding-details-section{position:relative;overflow:hidden;background:var(--sib-secondary);color:var(--sib-text)}
.wedding-details-section .wd-kicker,.wedding-details-section .wd-day-head>div>span{display:block;font-size:11px;font-weight:850;letter-spacing:.30em;text-transform:uppercase;color:var(--sib-accent)}
.wedding-details-section h2,.wedding-details-section h3{font-family:var(--sib-heading,Georgia,"Times New Roman",serif)}
.wedding-details-section .wd-intro{max-width:620px;margin:0;color:color-mix(in srgb,var(--sib-text) 72%,transparent);font-size:16px;line-height:1.65}
.legacy-section-anchor{position:absolute;top:0;left:0;width:1px;height:1px}
.wd-fact strong,.wd-editorial-fact strong,.wd-invitation-fact strong,.wd-journey-fact strong{display:block;color:inherit}
.wd-fact em,.wd-editorial-fact em,.wd-invitation-fact em,.wd-journey-fact em,.wd-moment em{display:block;font-style:normal;color:color-mix(in srgb,currentColor 64%,transparent)}
.wd-day-block{margin-top:46px}
.wd-day-block[hidden]{display:none!important}
.wd-day-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}
.wd-day-head h3{font-size:clamp(30px,4vw,54px);line-height:1;margin:6px 0 0}
.wd-day-head>small{max-width:360px;color:color-mix(in srgb,var(--sib-text) 58%,transparent);line-height:1.5}
.wd-moment{min-width:0}
.wd-moment time{font-weight:900;letter-spacing:.02em}
.wd-moment strong{display:block}.wd-moment small{display:block;color:color-mix(in srgb,currentColor 58%,transparent)}
.wd-moment p{font-size:12px!important;line-height:1.5!important;margin:8px 0 0!important;color:color-mix(in srgb,currentColor 65%,transparent)!important}
.wd-day-more{overflow:hidden;max-height:0;opacity:0;transition:max-height .5s cubic-bezier(.2,.8,.2,1),opacity .3s ease}
.wedding-details-section.is-day-expanded .wd-day-more{opacity:1}
.wd-expand-button{margin:24px auto 0;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px;padding:0 22px;border-radius:999px;border:1px solid color-mix(in srgb,var(--sib-accent) 60%,transparent);background:transparent;color:inherit;font:800 12px/1 var(--sib-body,Inter,sans-serif);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}
.wd-expand-button:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--sib-primary) 18%,transparent)}
.wd-expand-button i{font-style:normal;transition:transform .25s ease}.wedding-details-section.is-day-expanded .wd-expand-button i{transform:rotate(180deg)}
.wd-expand-button[hidden]{display:none!important}

/* 1 — CLASSIC */
body[data-sib-details-layout="classic"] .wedding-details-section{background:color-mix(in srgb,var(--sib-secondary) 91%,var(--sib-primary) 9%)}
.wd-classic-shell{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.75fr);gap:22px;align-items:stretch}
.wd-classic-main{padding:clamp(24px,4vw,52px);border:1px solid color-mix(in srgb,var(--sib-accent) 22%,transparent);border-radius:var(--sib-radius);background:color-mix(in srgb,var(--sib-secondary) 93%,transparent)}
.wd-classic-main h2{font-size:clamp(46px,6vw,84px);line-height:.96;margin:10px 0 18px}
.wd-classic-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:32px;background:color-mix(in srgb,var(--sib-accent) 20%,transparent);border:1px solid color-mix(in srgb,var(--sib-accent) 18%,transparent);border-radius:18px;overflow:hidden}
.wd-classic-facts .wd-fact{display:grid;grid-template-columns:30px 1fr;gap:12px;min-height:118px;padding:18px;background:var(--sib-secondary)}
.wd-fact-index{font-size:10px;font-weight:900;color:var(--sib-accent)}
.wd-classic-facts small{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:9px;color:color-mix(in srgb,var(--sib-text) 55%,transparent)}
.wd-classic-facts strong{font-family:var(--sib-heading,Georgia,serif);font-size:clamp(20px,2.3vw,32px);line-height:1.1;margin-top:8px}.wd-classic-facts em{font-size:11px;margin-top:6px}
.wd-classic-photo{position:relative;margin:0;border-radius:var(--sib-radius);overflow:hidden;min-height:440px}.wd-classic-photo img{width:100%;height:100%;object-fit:cover;display:block}.wd-classic-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.55),transparent 55%)}.wd-classic-photo span{position:absolute;z-index:2;left:20px;right:20px;bottom:18px;color:#fff;font:800 10px/1.4 var(--sib-body);letter-spacing:.12em;text-transform:uppercase}
.wd-classic-shell>.wd-day-block{grid-column:1/-1;padding:34px clamp(24px,4vw,46px);border-radius:var(--sib-radius);border:1px solid color-mix(in srgb,var(--sib-accent) 22%,transparent);background:color-mix(in srgb,var(--sib-secondary) 96%,var(--sib-primary) 4%)}
.wd-classic-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.wd-classic-timeline .wd-moment{position:relative;padding:18px 16px 18px 22px;border-left:1px solid color-mix(in srgb,var(--sib-accent) 46%,transparent)}.wd-classic-timeline .wd-moment:before{content:"";position:absolute;left:-4px;top:23px;width:7px;height:7px;border-radius:50%;background:var(--sib-accent)}.wd-classic-timeline time{font-size:15px;color:var(--sib-accent)}.wd-classic-timeline strong{font-family:var(--sib-heading,Georgia,serif);font-size:20px;margin:7px 0}.wd-classic-timeline em,.wd-classic-timeline small{font-size:10px}
.wd-classic-shell .wd-expand-button{display:flex}

/* 2 — EDITORIAL */
body[data-sib-details-layout="editorial"] .wedding-details-section{background:#f5f0e8;color:#16171b}
body[data-sib-details-layout="editorial"] .wd-editorial-shell{display:grid;grid-template-columns:minmax(210px,.72fr) minmax(0,1.08fr) minmax(260px,.72fr);gap:clamp(18px,3vw,42px);align-items:stretch}
.wd-editorial-date{padding:12px 0;border-top:1px solid #17181d;display:flex;flex-direction:column;align-items:flex-start}.wd-editorial-date>span{font-size:10px;letter-spacing:.28em}.wd-editorial-date>strong{font-family:var(--sib-heading,Georgia,serif);font-size:clamp(38px,5vw,66px);font-weight:500;line-height:.92;margin-top:26px}.wd-editorial-date>b{font-family:var(--sib-heading,Georgia,serif);font-size:clamp(82px,10vw,150px);line-height:.76;font-weight:500;letter-spacing:-.07em}.wd-editorial-date>em{font-family:var(--sib-heading,Georgia,serif);font-style:normal;font-size:clamp(40px,5vw,72px);line-height:.9}
.wd-editorial-copy{padding:16px 0 0}.wd-editorial-copy h2{font-size:clamp(40px,5vw,70px);line-height:.95;margin:0 0 18px}.wd-editorial-copy .wd-intro{color:#555158}.wd-editorial-facts{margin-top:28px;border-top:1px solid #c7beb2}.wd-editorial-fact{padding:15px 0;border-bottom:1px solid #d8d0c6}.wd-editorial-fact small{text-transform:uppercase;letter-spacing:.18em;font-size:8px}.wd-editorial-fact strong{font-family:var(--sib-heading,Georgia,serif);font-size:22px;margin-top:5px}.wd-editorial-fact em{font-size:10px;margin-top:4px}.wd-editorial-countdown{display:flex;align-items:baseline;gap:10px;margin-top:22px}.wd-editorial-countdown strong{font:700 48px/1 var(--sib-heading,Georgia,serif)}.wd-editorial-countdown span{font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.wd-editorial-art{position:relative;min-height:430px;overflow:hidden}.wd-editorial-art img,.wd-editorial-photo-fallback{width:100%;height:100%;object-fit:cover;display:block;background:linear-gradient(145deg,var(--sib-primary),var(--sib-secondary))}.wd-editorial-art:after{content:"";position:absolute;right:-20px;bottom:-10px;width:120px;height:170px;border:1px solid color-mix(in srgb,var(--sib-primary) 42%,transparent);transform:rotate(7deg)}.wd-editorial-art span{position:absolute;left:14px;bottom:14px;background:#f5f0e8;padding:8px 10px;font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.wd-editorial-day{grid-column:1/-1;margin-top:18px;padding-top:26px;border-top:1px solid #aaa196}.wd-editorial-day .wd-day-head h3{font-size:28px}.wd-editorial-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #c7beb2;border-bottom:1px solid #c7beb2}.wd-editorial-timeline .wd-moment{padding:18px 16px;min-height:150px;border-right:1px solid #d6cec4}.wd-editorial-timeline .wd-moment:last-child{border-right:0}.wd-editorial-timeline .wd-moment>span{display:block;font-size:9px;letter-spacing:.18em;color:#8b8072}.wd-editorial-timeline time{display:block;margin-top:16px;font-size:13px}.wd-editorial-timeline strong{font-family:var(--sib-heading,Georgia,serif);font-size:20px;margin:5px 0}.wd-editorial-timeline em,.wd-editorial-timeline small{font-size:9px}.wd-editorial-button{margin-left:auto;margin-right:0;color:#fff;background:#17181d;border-color:#17181d}.wd-editorial-button:hover{background:#35363b}

/* 3 — INVITATION */
body[data-sib-details-layout="invitation"] .wedding-details-section{background:color-mix(in srgb,var(--sib-secondary) 96%,#efe4cf 4%)}
.wd-invitation-wrap{max-width:1060px!important}.wd-invitation-paper{position:relative;text-align:center;padding:clamp(42px,7vw,88px) clamp(24px,7vw,86px);border:1px solid color-mix(in srgb,var(--sib-accent) 52%,transparent);background:color-mix(in srgb,var(--sib-secondary) 97%,white 3%);box-shadow:inset 0 0 0 9px var(--sib-secondary),inset 0 0 0 10px color-mix(in srgb,var(--sib-accent) 20%,transparent);border-radius:4px}.wd-invitation-paper:before,.wd-invitation-paper:after{content:"";position:absolute;width:110px;height:110px;border:1px solid color-mix(in srgb,var(--sib-primary) 25%,transparent);border-radius:50%}.wd-invitation-paper:before{left:-45px;top:-45px}.wd-invitation-paper:after{right:-45px;bottom:-45px}.wd-invitation-monogram{width:58px;height:58px;margin:0 auto 22px;display:grid;place-items:center;border-radius:50%;background:var(--sib-primary);color:#fff;font:700 14px/1 var(--sib-heading,Georgia,serif);box-shadow:0 0 0 5px color-mix(in srgb,var(--sib-accent) 35%,transparent)}.wd-invitation-paper h2{font-size:clamp(44px,6vw,76px);line-height:1;margin:10px 0 16px}.wd-invitation-paper .wd-intro{margin:0 auto;max-width:620px}.wd-invitation-rule{height:28px;display:grid;place-items:center;margin:16px 0}.wd-invitation-rule span{width:150px;height:1px;background:var(--sib-accent);position:relative}.wd-invitation-rule span:after{content:"✦";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--sib-secondary);padding:0 9px;color:var(--sib-primary)}
.wd-invitation-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:26px;border-top:1px solid color-mix(in srgb,var(--sib-text) 16%,transparent);border-bottom:1px solid color-mix(in srgb,var(--sib-text) 16%,transparent)}.wd-invitation-fact{padding:20px 14px;border-right:1px solid color-mix(in srgb,var(--sib-text) 14%,transparent)}.wd-invitation-fact:last-child{border-right:0}.wd-invitation-fact small{text-transform:uppercase;letter-spacing:.16em;font-size:8px;color:var(--sib-primary)}.wd-invitation-fact strong{font-family:var(--sib-heading,Georgia,serif);font-size:20px;line-height:1.1;margin-top:9px}.wd-invitation-fact em{font-size:9px;margin-top:6px}
.wd-invitation-day{margin-top:38px;padding:28px;border:1px solid color-mix(in srgb,var(--sib-accent) 34%,transparent)}.wd-invitation-day .wd-day-head{justify-content:center;text-align:center;display:block}.wd-invitation-day .wd-day-head>small{display:block;margin:8px auto 0}.wd-invitation-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:24px}.wd-invitation-timeline .wd-moment{position:relative;padding:24px 12px 12px;border-top:1px solid color-mix(in srgb,var(--sib-accent) 45%,transparent);text-align:center}.wd-invitation-dot{position:absolute;top:-6px;left:50%;width:11px;height:11px;border-radius:50%;transform:translateX(-50%);background:var(--sib-secondary);border:2px solid var(--sib-accent)}.wd-invitation-timeline time{font-size:11px;color:var(--sib-primary)}.wd-invitation-timeline strong{font-family:var(--sib-heading,Georgia,serif);font-size:18px;margin:7px 0}.wd-invitation-timeline em,.wd-invitation-timeline small{font-size:9px}.wd-invitation-button{display:flex;color:var(--sib-secondary);background:color-mix(in srgb,var(--sib-primary) 80%,#111 20%);border-color:transparent}

/* 4 — JOURNEY */
body[data-sib-details-layout="journey"] .wedding-details-section{padding-left:0;padding-right:0;background:#111;color:#fff}.wd-journey-shell{position:relative;min-height:680px;padding:var(--sib-section-gap) 24px;display:flex;align-items:center;overflow:hidden}.wd-journey-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.wd-journey-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,12,.52),rgba(8,10,12,.84) 72%,rgba(8,10,12,.94))}.wd-journey-content{position:relative;z-index:2;text-align:center}.wd-journey-content h2{font-size:clamp(48px,7vw,94px);line-height:.94;max-width:850px;margin:12px auto 16px;color:#fff}.wd-journey-content .wd-intro{margin:0 auto;color:#e8e2d8}.wd-journey-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:36px auto 0}.wd-journey-fact{display:flex;gap:12px;text-align:left;align-items:flex-start;min-width:190px;max-width:260px;padding:14px 16px;border:1px solid #ffffff30;border-radius:14px;background:#0e1014aa;backdrop-filter:blur(8px)}.wd-journey-fact>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--sib-accent);font-size:9px;color:var(--sib-accent);flex:0 0 auto}.wd-journey-fact small{text-transform:uppercase;letter-spacing:.13em;font-size:7px;color:var(--sib-accent)}.wd-journey-fact strong{font-family:var(--sib-heading,Georgia,serif);font-size:18px;margin-top:4px}.wd-journey-fact em{font-size:9px;margin-top:4px;color:#d3d0ca}
.wd-journey-day{margin-top:52px}.wd-journey-day .wd-day-head{justify-content:center;text-align:center}.wd-journey-day .wd-day-head>div{margin:auto}.wd-journey-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;position:relative;margin-top:34px}.wd-journey-timeline:before{content:"";position:absolute;left:8%;right:8%;top:23px;height:1px;background:linear-gradient(90deg,transparent,var(--sib-accent),transparent)}.wd-journey-timeline .wd-moment{position:relative;text-align:center;padding:0 12px 18px}.wd-journey-node{position:relative;z-index:2;margin:0 auto 14px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--sib-accent);background:#111;color:var(--sib-accent);font-size:9px}.wd-journey-timeline time{font-size:12px;color:var(--sib-accent)}.wd-journey-timeline strong{font-family:var(--sib-heading,Georgia,serif);font-size:20px;margin:6px 0;color:#fff}.wd-journey-timeline em,.wd-journey-timeline small{font-size:9px;color:#ccc}.wd-journey-button{display:flex;color:var(--sib-accent);border-color:var(--sib-accent);background:#0b0d11aa}

/* Expanded rows keep each design's language. */
.wd-day-more-inner{padding-top:12px;margin-top:12px}
body[data-sib-details-layout="classic"] .wd-day-more-inner,body[data-sib-details-layout="editorial"] .wd-day-more-inner,body[data-sib-details-layout="invitation"] .wd-day-more-inner,body[data-sib-details-layout="journey"] .wd-day-more-inner{grid-template-columns:repeat(4,minmax(0,1fr))}

@media(max-width:980px){
 .wd-classic-shell{grid-template-columns:1fr}.wd-classic-photo{min-height:330px}.wd-classic-shell>.wd-day-block{grid-column:1}
 body[data-sib-details-layout="editorial"] .wd-editorial-shell{grid-template-columns:1fr 1fr}.wd-editorial-art{min-height:320px}.wd-editorial-day{grid-column:1/-1}.wd-editorial-copy{grid-column:1}.wd-editorial-art{grid-column:2}.wd-editorial-date{grid-column:1/-1;display:grid;grid-template-columns:auto auto auto auto;align-items:end;gap:10px}.wd-editorial-date>strong,.wd-editorial-date>b,.wd-editorial-date>em{font-size:48px;margin:0;line-height:.9}
 .wd-classic-timeline,.wd-editorial-timeline,.wd-invitation-timeline,.wd-journey-timeline,.wd-day-more-inner{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .wd-invitation-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.wd-invitation-fact:nth-child(2n){border-right:0}
}
@media(max-width:760px){
 .wedding-details-section{padding-top:72px!important;padding-bottom:72px!important}.wd-day-head{display:block}.wd-day-head>small{margin-top:8px}
 .wd-classic-main{padding:26px 20px}.wd-classic-main h2{font-size:50px}.wd-classic-facts{grid-template-columns:1fr}.wd-classic-photo{min-height:280px}.wd-classic-shell>.wd-day-block{padding:26px 20px}
 .wd-classic-timeline,.wd-editorial-timeline,.wd-invitation-timeline,.wd-journey-timeline,.wd-day-more-inner{grid-template-columns:1fr!important}
 .wd-classic-timeline .wd-moment{min-height:auto}.wd-editorial-timeline .wd-moment{min-height:auto;border-right:0;border-bottom:1px solid #d6cec4}.wd-invitation-timeline .wd-moment{text-align:left;padding-left:28px}.wd-invitation-dot{left:8px}.wd-invitation-timeline .wd-moment{border-top:0;border-left:1px solid color-mix(in srgb,var(--sib-accent) 45%,transparent)}
 body[data-sib-details-layout="editorial"] .wd-editorial-shell{grid-template-columns:1fr}.wd-editorial-date,.wd-editorial-copy,.wd-editorial-art,.wd-editorial-day{grid-column:1}.wd-editorial-date{display:block}.wd-editorial-date>strong{display:inline;font-size:28px}.wd-editorial-date>b{display:inline;font-size:62px;margin-left:7px}.wd-editorial-date>em{display:block;font-size:42px}.wd-editorial-art{min-height:260px}
 .wd-invitation-paper{padding:46px 20px}.wd-invitation-facts{grid-template-columns:1fr}.wd-invitation-fact{border-right:0;border-bottom:1px solid color-mix(in srgb,var(--sib-text) 14%,transparent)}.wd-invitation-day{padding:22px 16px}
 .wd-journey-shell{padding:72px 20px;min-height:620px}.wd-journey-facts{display:grid;grid-template-columns:1fr 1fr}.wd-journey-fact{min-width:0;width:100%}.wd-journey-timeline:before{display:none}.wd-journey-timeline .wd-moment{text-align:left;padding:4px 0 22px 60px;border-left:1px solid #ffffff2b}.wd-journey-node{position:absolute;left:-23px;top:0;margin:0;width:44px;height:44px}.wd-journey-day .wd-day-head{text-align:left}.wd-journey-day .wd-day-head>div{margin:0}.wd-journey-button{margin-left:0}
}
@media(max-width:480px){.wd-journey-facts{grid-template-columns:1fr}}

/* M45 — all four Wedding Details renderers stay mounted so Studio can switch them live. */
.wd-design-variant{display:none}
body[data-sib-details-layout="classic"] .wd-variant-classic,
body[data-sib-details-layout="editorial"] .wd-variant-editorial,
body[data-sib-details-layout="invitation"] .wd-variant-invitation,
body[data-sib-details-layout="journey"] .wd-variant-journey{display:block}
body.sib-details-no-countdown .wedding-details-section .wd-countdown{display:none!important}
body.sib-details-hide-photo .wedding-details-section .wd-photo-element{display:none!important}
body.sib-details-hide-photo[data-sib-details-layout="classic"] .wd-classic-shell,
body[data-sib-details-layout="classic"] .wedding-details-section.wd-no-photo .wd-classic-shell{grid-template-columns:1fr}
body.sib-details-hide-photo[data-sib-details-layout="editorial"] .wd-editorial-shell,
body[data-sib-details-layout="editorial"] .wedding-details-section.wd-no-photo .wd-editorial-shell{grid-template-columns:minmax(210px,.72fr) minmax(0,1.28fr)}
body.sib-details-hide-photo[data-sib-details-layout="editorial"] .wd-editorial-day,
body[data-sib-details-layout="editorial"] .wedding-details-section.wd-no-photo .wd-editorial-day{grid-column:1/-1}
body.sib-schedule-hide-end .wedding-details-section .wd-moment-end,
body.sib-schedule-hide-place .wedding-details-section .wd-moment-place,
body.sib-schedule-hide-notes .wedding-details-section .wd-moment-notes{display:none!important}

/* ================================================================
   M45.1 — WEDDING DETAILS READABILITY + COLLAPSED DAY POLISH
   ================================================================ */

/* The schedule is genuinely collapsed by default in every design. */
.wedding-details-section [data-details-preview]{display:none!important}
.wedding-details-section .wd-day-more{max-height:0;opacity:0;overflow:hidden;transition:max-height .62s cubic-bezier(.2,.78,.2,1),opacity .28s ease}
.wedding-details-section.is-day-expanded .wd-day-more{opacity:1}
.wedding-details-section:not(.is-day-expanded) .wd-day-more{pointer-events:none}
.wedding-details-section .wd-day-head{margin-bottom:14px}
.wedding-details-section:not(.is-day-expanded) .wd-day-block{padding-bottom:30px}
.wedding-details-section .wd-expand-button{margin-top:14px}

/* Details and schedule values need to remain readable even if the couple has
   selected a decorative script for major headings. */
.wedding-details-section :is(
  .wd-classic-facts strong,.wd-editorial-fact strong,.wd-invitation-fact strong,.wd-journey-fact strong,
  .wd-classic-timeline strong,.wd-editorial-timeline strong,.wd-invitation-timeline strong,.wd-journey-timeline strong
){font-family:var(--sib-body,Inter,Arial,sans-serif)!important;font-weight:750!important;letter-spacing:-.015em!important}

/* ---------------- CLASSIC ---------------- */
.wd-classic-facts .wd-fact{grid-template-columns:1fr!important;gap:0!important}
.wd-classic-facts .wd-fact:last-child:nth-child(odd){grid-column:1/-1!important}
.wd-classic-facts .wd-countdown:last-child:nth-child(odd){display:grid!important;grid-template-columns:minmax(0,1fr)!important}
.wd-classic-facts .wd-fact-index{display:none!important}
.wd-classic-facts{background:color-mix(in srgb,var(--sib-accent) 16%,transparent)!important}
.wd-classic-facts .wd-fact{background:color-mix(in srgb,var(--sib-secondary) 98%,var(--sib-primary) 2%)!important}
.wd-classic-facts .wd-countdown{background:color-mix(in srgb,var(--sib-secondary) 94%,var(--sib-primary) 6%)!important}

/* ---------------- EDITORIAL ----------------
   A real warm-paper editorial treatment. Palette colors remain in accents,
   but contrast is never allowed to collapse into burgundy-on-burgundy. */
body[data-sib-details-layout="editorial"] .wedding-details-section{
  --wd-editorial-paper:#f6f0e8;
  --wd-editorial-ink:#17171b;
  --wd-editorial-muted:#625d58;
  background:var(--wd-editorial-paper)!important;
  color:var(--wd-editorial-ink)!important;
}
body[data-sib-details-layout="editorial"] .wd-editorial-shell{
  display:grid!important;
  grid-template-columns:minmax(260px,.78fr) minmax(320px,1.05fr)!important;
  grid-template-areas:"date art" "copy art" "day day"!important;
  gap:0 clamp(28px,4vw,58px)!important;
  align-items:stretch!important;
}
body[data-sib-details-layout="editorial"] .wd-editorial-date{
  grid-area:date!important;
  padding:28px 28px 32px!important;
  border:0!important;
  border-radius:22px 22px 0 0!important;
  background:var(--sib-primary)!important;
  color:#fffaf3!important;
}
body[data-sib-details-layout="editorial"] .wd-editorial-date>span{color:var(--sib-accent)!important;font-weight:850!important}
body[data-sib-details-layout="editorial"] .wd-editorial-date>strong,
body[data-sib-details-layout="editorial"] .wd-editorial-date>b,
body[data-sib-details-layout="editorial"] .wd-editorial-date>em{color:#fffaf3!important}
body[data-sib-details-layout="editorial"] .wd-editorial-copy{
  grid-area:copy!important;
  padding:34px 28px!important;
  border:1px solid #d8cfc5!important;
  border-top:0!important;
  border-radius:0 0 22px 22px!important;
  background:#fffaf4!important;
  color:var(--wd-editorial-ink)!important;
}
body[data-sib-details-layout="editorial"] .wd-editorial-copy h2{color:var(--wd-editorial-ink)!important}
body[data-sib-details-layout="editorial"] .wd-editorial-copy .wd-intro{color:var(--wd-editorial-muted)!important;font-size:15px!important;line-height:1.65!important}
body[data-sib-details-layout="editorial"] .wd-editorial-facts{display:grid!important;grid-template-columns:1fr 1fr!important;border:1px solid #ddd3c8!important;margin-top:28px!important}
body[data-sib-details-layout="editorial"] .wd-editorial-fact{padding:16px!important;border:0!important;border-right:1px solid #ddd3c8!important;border-bottom:1px solid #ddd3c8!important}
body[data-sib-details-layout="editorial"] .wd-editorial-fact:nth-child(2n){border-right:0!important}
body[data-sib-details-layout="editorial"] .wd-editorial-fact small{color:var(--sib-primary)!important;font-weight:850!important}
body[data-sib-details-layout="editorial"] .wd-editorial-fact strong{color:var(--wd-editorial-ink)!important;font-size:16px!important;margin-top:7px!important}
body[data-sib-details-layout="editorial"] .wd-editorial-fact em{color:var(--wd-editorial-muted)!important;font-style:normal!important}
body[data-sib-details-layout="editorial"] .wd-editorial-countdown{color:var(--wd-editorial-ink)!important}
body[data-sib-details-layout="editorial"] .wd-editorial-art{grid-area:art!important;min-height:600px!important;border-radius:24px!important;overflow:hidden!important;background:#d9d0c5!important}
body[data-sib-details-layout="editorial"] .wd-editorial-art img{object-fit:cover!important;object-position:center!important;filter:none!important}
body[data-sib-details-layout="editorial"] .wd-editorial-art span{background:#fffaf4!important;color:var(--wd-editorial-ink)!important;border-radius:999px!important}
body[data-sib-details-layout="editorial"] .wd-editorial-day{
  grid-area:day!important;
  margin-top:42px!important;
  padding:28px 0 0!important;
  border-top:1px solid #bfb4a8!important;
  color:var(--wd-editorial-ink)!important;
}
body[data-sib-details-layout="editorial"] .wd-editorial-day .wd-day-head span{color:var(--sib-primary)!important;font-weight:850!important}
body[data-sib-details-layout="editorial"] .wd-editorial-day h3{color:var(--wd-editorial-ink)!important}
body[data-sib-details-layout="editorial"] .wd-editorial-timeline{border-color:#cfc5ba!important;background:#fffaf4!important}
body[data-sib-details-layout="editorial"] .wd-editorial-timeline .wd-moment{color:var(--wd-editorial-ink)!important;border-color:#ddd3c8!important}
body[data-sib-details-layout="editorial"] .wd-editorial-timeline .wd-moment>span{color:var(--sib-primary)!important}
body[data-sib-details-layout="editorial"] .wd-editorial-timeline :is(time,strong,em,small,p){color:var(--wd-editorial-ink)!important}
body[data-sib-details-layout="editorial"] .wd-editorial-button{background:var(--sib-primary)!important;color:#fffaf3!important;border-color:var(--sib-primary)!important}

/* ---------------- INVITATION ---------------- */
body[data-sib-details-layout="invitation"] .wedding-details-section{
  background:linear-gradient(145deg,color-mix(in srgb,var(--sib-primary) 32%,var(--sib-secondary)),var(--sib-secondary))!important;
}
body[data-sib-details-layout="invitation"] .wd-invitation-paper{
  --wd-invite-paper:#fffaf1;
  --wd-invite-ink:#2c211f;
  background:var(--wd-invite-paper)!important;
  color:var(--wd-invite-ink)!important;
  box-shadow:inset 0 0 0 9px var(--wd-invite-paper),inset 0 0 0 10px color-mix(in srgb,var(--sib-accent) 42%,transparent),0 26px 80px rgba(0,0,0,.18)!important;
}
body[data-sib-details-layout="invitation"] .wd-invitation-paper :is(h2,.wd-intro){color:var(--wd-invite-ink)!important}
body[data-sib-details-layout="invitation"] .wd-invitation-paper .wd-intro{font-size:15px!important;line-height:1.65!important}
body[data-sib-details-layout="invitation"] .wd-invitation-rule span:after{background:var(--wd-invite-paper)!important;color:var(--sib-primary)!important}
body[data-sib-details-layout="invitation"] .wd-invitation-facts{border-color:#cfc4b6!important}
body[data-sib-details-layout="invitation"] .wd-invitation-fact{border-color:#ddd2c5!important;color:var(--wd-invite-ink)!important}
body[data-sib-details-layout="invitation"] .wd-invitation-fact small{color:var(--sib-primary)!important;font-weight:850!important}
body[data-sib-details-layout="invitation"] .wd-invitation-fact strong{color:var(--wd-invite-ink)!important;font-size:16px!important}
body[data-sib-details-layout="invitation"] .wd-invitation-fact em{color:#6a5e58!important;font-style:normal!important}
body[data-sib-details-layout="invitation"] .wd-invitation-day{border-color:color-mix(in srgb,var(--sib-accent) 58%,#b9aa98)!important;color:var(--wd-invite-ink)!important}
body[data-sib-details-layout="invitation"] .wd-invitation-day .wd-day-head>small{color:#6a5e58!important}
body[data-sib-details-layout="invitation"] .wd-invitation-timeline .wd-moment{color:var(--wd-invite-ink)!important;border-color:#cdbc9e!important}
body[data-sib-details-layout="invitation"] .wd-invitation-timeline :is(time,strong,em,small,p){color:var(--wd-invite-ink)!important}
body[data-sib-details-layout="invitation"] .wd-invitation-button{background:var(--sib-primary)!important;color:#fffaf1!important;border-color:var(--sib-primary)!important}

/* ---------------- JOURNEY ---------------- */
.wd-journey-bg{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  background-size:cover!important;
  background-position:var(--wd-details-bg-x,50%) var(--wd-details-bg-y,50%)!important;
  background-repeat:no-repeat!important;
  image-rendering:auto!important;
  transform:none!important;
}
body[data-sib-details-layout="journey"] .wd-journey-veil{background:linear-gradient(180deg,rgba(7,8,10,.48),rgba(7,8,10,.76) 58%,rgba(7,8,10,.94))!important}
body[data-sib-details-layout="journey"] .wd-journey-fact{background:rgba(9,10,13,.78)!important;border-color:color-mix(in srgb,var(--sib-accent) 34%,#ffffff22)!important}
body[data-sib-details-layout="journey"] .wd-journey-fact strong{color:#fff!important}
body[data-sib-details-layout="journey"] .wd-journey-fact em{color:#e0ddd7!important}
body[data-sib-details-layout="journey"] .wd-journey-timeline strong{color:#fff!important}
body[data-sib-details-layout="journey"] .wd-journey-timeline :is(em,small,p){color:#dedbd5!important}

@media(max-width:980px){
 body[data-sib-details-layout="editorial"] .wd-editorial-shell{grid-template-columns:1fr 1fr!important;grid-template-areas:"date art" "copy art" "day day"!important}
 body[data-sib-details-layout="editorial"] .wd-editorial-art{min-height:520px!important}
}
@media(max-width:760px){
 body[data-sib-details-layout="editorial"] .wd-editorial-shell{grid-template-columns:1fr!important;grid-template-areas:"date" "art" "copy" "day"!important;gap:18px!important}
 body[data-sib-details-layout="editorial"] .wd-editorial-date{border-radius:20px!important}
 body[data-sib-details-layout="editorial"] .wd-editorial-copy{border:1px solid #d8cfc5!important;border-radius:20px!important}
 body[data-sib-details-layout="editorial"] .wd-editorial-art{min-height:360px!important;border-radius:20px!important}
 body[data-sib-details-layout="editorial"] .wd-editorial-facts{grid-template-columns:1fr!important}
 body[data-sib-details-layout="editorial"] .wd-editorial-fact{border-right:0!important}
 body[data-sib-details-layout="invitation"] .wd-invitation-paper{padding:44px 20px!important}
}

/* ================================================================
   M45.2 — WEDDING DETAILS FINAL POLISH + SIBBIAN SCROLL REVEAL
   ================================================================ */

/* Sections meet edge-to-edge. Internal breathing room remains, but there are
   no external spacer bands between one public section and the next. */
body.sib-public > section.section,
body.sib-public > section.cta{
  margin:0!important;
}
body.sib-public > section.section:not(.wedding-details-section){
  padding-top:min(var(--sib-section-gap),88px)!important;
  padding-bottom:min(var(--sib-section-gap),88px)!important;
}
body[data-sib-details-layout="classic"] .wedding-details-section,
body[data-sib-details-layout="editorial"] .wedding-details-section,
body[data-sib-details-layout="invitation"] .wedding-details-section{
  padding-top:min(var(--sib-section-gap),88px)!important;
  padding-bottom:min(var(--sib-section-gap),88px)!important;
}
body[data-sib-details-layout="journey"] .wedding-details-section{
  padding:0!important;
}
body[data-sib-details-layout="journey"] .wd-journey-shell{
  padding-top:min(var(--sib-section-gap),88px)!important;
  padding-bottom:min(var(--sib-section-gap),88px)!important;
}

/* Optional section-level background color. Each design keeps its curated
   internal surfaces unless the couple deliberately chooses a section color. */
body.sib-details-custom-bg .wedding-details-section{
  background:var(--wd-section-bg)!important;
}
body.sib-details-custom-bg[data-sib-details-layout="journey"] .wd-journey-shell{
  background:var(--wd-section-bg)!important;
}

/* One uploaded Wedding Details photo is shared by every image-capable design. */
.wedding-details-section [data-details-photo]{
  object-position:var(--wd-details-bg-x) var(--wd-details-bg-y)!important;
}
.wd-journey-bg[data-details-photo]{
  background-position:var(--wd-details-bg-x) var(--wd-details-bg-y)!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
}

/* Invitation remains invitation-like; photography is a whisper rather than
   turning the paper composition into another photo card. */
.wd-invitation-paper{isolation:isolate;overflow:hidden}
.wd-invitation-paper > *:not(.wd-invitation-photo){position:relative;z-index:2}
.wd-invitation-photo{position:absolute!important;inset:0;z-index:0!important;opacity:.07;pointer-events:none;overflow:hidden}
.wd-invitation-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--sib-secondary) 60%,transparent),var(--sib-secondary) 88%)}
.wd-invitation-photo img{width:100%;height:100%;object-fit:cover;display:block}

/* Journey can be intentionally photo-free. */
body.sib-details-hide-photo[data-sib-details-layout="journey"] .wd-journey-shell{
  background:var(--wd-section-bg,var(--sib-secondary))!important;
}
body.sib-details-hide-photo[data-sib-details-layout="journey"] .wd-journey-veil{
  background:linear-gradient(145deg,color-mix(in srgb,var(--sib-primary) 16%,transparent),rgba(8,10,12,.34) 72%,rgba(8,10,12,.48))!important;
}

/* The countdown is a sentence, not a leftover fifth data tile. */
.wd-countdown-sentence{display:block!important}
.wd-countdown-sentence [data-details-countdown-sentence]{font-family:var(--sib-body,Inter,Arial,sans-serif)!important}
.wd-classic-countdown{
  margin-top:18px;padding:22px 24px;border:1px solid color-mix(in srgb,var(--sib-accent) 46%,transparent);
  border-radius:16px;background:linear-gradient(120deg,color-mix(in srgb,var(--sib-primary) 18%,var(--sib-secondary)),var(--sib-secondary));
}
.wd-classic-countdown small{display:block;margin-bottom:8px;color:var(--sib-accent);font-size:8px;font-weight:900;letter-spacing:.22em}
.wd-classic-countdown strong{display:block;font-size:clamp(20px,2.4vw,34px)!important;line-height:1.12!important;color:var(--sib-text)!important;font-weight:800!important}
.wd-editorial-countdown{margin-top:22px;padding:18px 20px;border-left:4px solid var(--sib-primary);background:#f1e8dd!important}
.wd-editorial-countdown span{color:#17171b!important;font:750 clamp(16px,1.8vw,23px)/1.3 var(--sib-body,Inter,Arial,sans-serif)!important;text-transform:none!important;letter-spacing:0!important}
.wd-invitation-countdown{margin:22px auto 0;max-width:650px;padding:14px 22px;border-top:1px solid color-mix(in srgb,var(--sib-accent) 45%,transparent);border-bottom:1px solid color-mix(in srgb,var(--sib-accent) 45%,transparent)}
.wd-invitation-countdown span{font:700 clamp(16px,1.8vw,22px)/1.35 var(--sib-body,Inter,Arial,sans-serif);color:var(--sib-text)}
.wd-journey-countdown{margin:22px auto 0;max-width:760px;padding:13px 20px;border:1px solid color-mix(in srgb,var(--sib-accent) 48%,transparent);border-radius:999px;background:#0e1014b8;backdrop-filter:blur(8px)}
.wd-journey-countdown span{font:750 clamp(15px,1.6vw,21px)/1.35 var(--sib-body,Inter,Arial,sans-serif);color:#fff}

/* ================================================================
   M45.3 — SIBBIAN FAIL-OPEN SCROLL REVEAL
   Sections are ALWAYS readable by default. Scrolling adds a self-finishing
   invitation-unfold animation; JavaScript never owns the visible state.
   ================================================================ */
.sib-section-reveal{
  position:relative;
  isolation:isolate;
  clip-path:none;
  transform:none;
}

/* One-shot center-seam unfolding. Because this is a CSS animation with a
   complete 0%→100% timeline, it cannot remain permanently collapsed. */
.sib-section-reveal.sib-section-reveal-run{
  animation:sibbianSectionUnfold 1.08s cubic-bezier(.2,.78,.16,1) both;
  will-change:clip-path,transform;
}

@keyframes sibbianSectionUnfold{
  0%{
    clip-path:inset(0 49.4% 0 49.4% round 28px);
    transform:scale(.994);
  }
  18%{
    clip-path:inset(0 43% 0 43% round 25px);
    transform:scale(.995);
  }
  54%{
    clip-path:inset(0 17% 0 17% round 15px);
    transform:scale(.998);
  }
  82%{
    clip-path:inset(0 3% 0 3% round 6px);
    transform:scale(1);
  }
  100%{
    clip-path:inset(0 0 0 0 round 0);
    transform:scale(1);
  }
}

.sib-section-reveal-done{
  clip-path:none!important;
  transform:none!important;
}

/* Signature ribbon rides the opening seam, then disappears. */
.sib-section-ribbon{
  position:absolute;
  z-index:30;
  pointer-events:none;
  left:50%;
  top:0;
  bottom:0;
  width:2px;
  transform:translateX(-50%) scaleY(.04);
  transform-origin:center;
  opacity:0;
  background:linear-gradient(
    180deg,
    transparent 2%,
    var(--sib-accent) 28%,
    var(--sib-primary) 52%,
    var(--sib-accent) 74%,
    transparent 98%
  );
  box-shadow:0 0 22px color-mix(in srgb,var(--sib-accent) 48%,transparent);
}
.sib-section-reveal-run > .sib-section-ribbon{
  animation:sibbianRibbonOpen 1.02s cubic-bezier(.2,.78,.16,1) both;
}
@keyframes sibbianRibbonOpen{
  0%{opacity:0;transform:translateX(-50%) scaleY(.05)}
  18%{opacity:.9;transform:translateX(-50%) scaleY(.32)}
  54%{opacity:1;transform:translateX(-50%) scaleY(1)}
  82%{opacity:.42;transform:translateX(-50%) scaleY(1)}
  100%{opacity:0;transform:translateX(-50%) scaleY(1)}
}

body[data-sib-motion="calm"] .sib-section-reveal-run{
  animation-duration:.82s!important;
}
body[data-sib-motion="calm"] .sib-section-reveal-run > .sib-section-ribbon{
  animation-duration:.76s!important;
}
body[data-sib-motion="expressive"] .sib-section-reveal-run{
  animation-duration:1.30s!important;
}
body[data-sib-motion="expressive"] .sib-section-reveal-run > .sib-section-ribbon{
  animation-duration:1.20s!important;
}

@media(max-width:760px){
  body.sib-public > section.section:not(.wedding-details-section){
    padding-top:min(var(--sib-section-gap),68px)!important;
    padding-bottom:min(var(--sib-section-gap),68px)!important;
  }
  body[data-sib-details-layout="classic"] .wedding-details-section,
  body[data-sib-details-layout="editorial"] .wedding-details-section,
  body[data-sib-details-layout="invitation"] .wedding-details-section{
    padding-top:min(var(--sib-section-gap),68px)!important;
    padding-bottom:min(var(--sib-section-gap),68px)!important;
  }
  body[data-sib-details-layout="journey"] .wd-journey-shell{
    padding-top:min(var(--sib-section-gap),68px)!important;
    padding-bottom:min(var(--sib-section-gap),68px)!important;
  }
  .wd-classic-countdown strong{font-size:21px!important}
  .wd-journey-countdown{border-radius:18px;text-align:left}

  .sib-section-reveal.sib-section-reveal-run{
    animation-name:sibbianSectionUnfoldMobile;
  }
  @keyframes sibbianSectionUnfoldMobile{
    0%{clip-path:inset(0 48.8% 0 48.8% round 20px);transform:scale(.996)}
    48%{clip-path:inset(0 20% 0 20% round 13px);transform:scale(.998)}
    82%{clip-path:inset(0 4% 0 4% round 5px);transform:scale(1)}
    100%{clip-path:inset(0);transform:scale(1)}
  }
}

/* Accessibility, print and static capture always get the complete page. */
@media(prefers-reduced-motion:reduce), print{
  .sib-section-reveal,
  .sib-section-reveal.sib-section-reveal-run,
  .sib-section-reveal.sib-section-reveal-done{
    animation:none!important;
    clip-path:none!important;
    transform:none!important;
  }
  .sib-section-ribbon{display:none!important}
}

/* M45.2 live-photo hosts remain mountable even on a blank install. */
.wedding-details-section .wd-photo-element.is-empty,
.wedding-details-section [data-details-photo].is-empty,
.wedding-details-section [data-details-photo-fallback].is-empty{display:none!important}

/* ================================================================
   M45.4 — VIEWPORT-STAGE SECTIONS + SLOW SIBBIAN UNFOLD POLISH
   ================================================================ */

/* Public sections behave like full visual chapters when content allows.
   If a section needs more room, it grows normally instead of clipping. */
body.sib-public > section.section{
  min-height:100svh;
  box-sizing:border-box;
}

/* Wedding Details is deliberately compact in its collapsed state so the
   complete composition can live comfortably within a desktop viewport. */
@media(min-width:1024px){
  .wedding-details-section{
    min-height:100svh!important;
    box-sizing:border-box!important;
  }
  body[data-sib-details-layout="classic"] .wedding-details-section,
  body[data-sib-details-layout="editorial"] .wedding-details-section,
  body[data-sib-details-layout="invitation"] .wedding-details-section{
    padding-top:clamp(54px,7vh,82px)!important;
    padding-bottom:clamp(42px,5.5vh,68px)!important;
  }
  .wd-classic-main{padding:clamp(24px,3vw,40px)!important}
  .wd-classic-photo{min-height:0!important;height:clamp(330px,48svh,500px)!important}
  .wd-classic-shell>.wd-day-block{padding:clamp(20px,2.6vw,28px) clamp(24px,3vw,38px)!important}

  body[data-sib-details-layout="editorial"] .wd-editorial-art{
    min-height:0!important;
    height:clamp(360px,52svh,520px)!important;
  }
  body[data-sib-details-layout="editorial"] .wd-editorial-date{padding:22px 26px 26px!important}
  body[data-sib-details-layout="editorial"] .wd-editorial-copy{padding:28px 26px!important}
  body[data-sib-details-layout="editorial"] .wd-editorial-day{margin-top:28px!important;padding-top:22px!important}

  body[data-sib-details-layout="invitation"] .wd-invitation-paper{
    padding:clamp(34px,5vh,58px) clamp(28px,5vw,72px)!important;
  }

  body[data-sib-details-layout="journey"] .wd-journey-shell{
    min-height:100svh!important;
    padding-top:clamp(72px,9vh,104px)!important;
    padding-bottom:clamp(52px,7vh,84px)!important;
  }
}

/* ------------------------------------------------
   Editorial mobile: the date already exists in the facts. The large burgundy
   date poster is desktop-only and is intentionally removed on phones.
   ------------------------------------------------ */
@media(max-width:760px){
  body[data-sib-details-layout="editorial"] .wd-editorial-shell{
    grid-template-areas:"copy" "art" "day"!important;
  }
  body[data-sib-details-layout="editorial"] .wd-editorial-date{
    display:none!important;
  }

  /* Sections still meet edge-to-edge; breathing room lives INSIDE the next
     section so headings never feel glued to the Hero boundary. */
  body[data-sib-details-layout="classic"] .wedding-details-section,
  body[data-sib-details-layout="editorial"] .wedding-details-section,
  body[data-sib-details-layout="invitation"] .wedding-details-section{
    padding-top:64px!important;
  }
  body[data-sib-details-layout="journey"] .wd-journey-shell{
    padding-top:64px!important;
  }
}

/* ------------------------------------------------
   Invitation countdown: readable ink on invitation paper with a restrained
   burgundy/gold highlight instead of low-contrast theme text.
   ------------------------------------------------ */
body[data-sib-details-layout="invitation"] .wd-invitation-countdown{
  margin:24px auto 0!important;
  max-width:680px!important;
  padding:16px 22px!important;
  border:1px solid color-mix(in srgb,var(--sib-primary) 24%,#cbbdad)!important;
  border-radius:14px!important;
  background:color-mix(in srgb,var(--sib-primary) 7%,#fffaf4)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sib-accent) 12%,transparent)!important;
}
body[data-sib-details-layout="invitation"] .wd-invitation-countdown span{
  color:var(--wd-invite-ink,#1b1816)!important;
  font-weight:820!important;
  text-shadow:none!important;
}

/* ------------------------------------------------
   Sibbian Signature Unfold v2
   Slower, more deliberate and much more visible than M45.3 while remaining
   fail-open: sections are readable whenever the animation is not running.
   ------------------------------------------------ */
.sib-section-reveal.sib-section-reveal-run{
  animation:sibbianSectionUnfoldM454 2.15s cubic-bezier(.16,.82,.18,1) both!important;
  will-change:clip-path,transform!important;
}
@keyframes sibbianSectionUnfoldM454{
  0%{
    clip-path:inset(0 49.7% 0 49.7% round 32px);
    transform:perspective(1400px) scale(.978) rotateX(.55deg);
  }
  12%{
    clip-path:inset(0 48.5% 0 48.5% round 31px);
    transform:perspective(1400px) scale(.98) rotateX(.48deg);
  }
  30%{
    clip-path:inset(0 42% 0 42% round 27px);
    transform:perspective(1400px) scale(.984) rotateX(.34deg);
  }
  56%{
    clip-path:inset(0 22% 0 22% round 18px);
    transform:perspective(1400px) scale(.992) rotateX(.16deg);
  }
  78%{
    clip-path:inset(0 6% 0 6% round 8px);
    transform:perspective(1400px) scale(.998) rotateX(.04deg);
  }
  92%{
    clip-path:inset(0 1.2% 0 1.2% round 3px);
    transform:perspective(1400px) scale(1) rotateX(0deg);
  }
  100%{
    clip-path:inset(0);
    transform:none;
  }
}

.sib-section-ribbon{
  width:3px!important;
  box-shadow:
    0 0 18px color-mix(in srgb,var(--sib-accent) 68%,transparent),
    0 0 42px color-mix(in srgb,var(--sib-primary) 38%,transparent)!important;
}
.sib-section-reveal-run > .sib-section-ribbon{
  animation:sibbianRibbonOpenM454 2.02s cubic-bezier(.16,.82,.18,1) both!important;
}
@keyframes sibbianRibbonOpenM454{
  0%{opacity:0;transform:translateX(-50%) scaleY(.03)}
  12%{opacity:.55;transform:translateX(-50%) scaleY(.18)}
  32%{opacity:1;transform:translateX(-50%) scaleY(.62)}
  58%{opacity:1;transform:translateX(-50%) scaleY(1)}
  78%{opacity:.88;transform:translateX(-50%) scaleY(1)}
  92%{opacity:.28;transform:translateX(-50%) scaleY(1)}
  100%{opacity:0;transform:translateX(-50%) scaleY(1)}
}

body[data-sib-motion="calm"] .sib-section-reveal-run{
  animation-duration:1.65s!important;
}
body[data-sib-motion="calm"] .sib-section-reveal-run > .sib-section-ribbon{
  animation-duration:1.55s!important;
}
body[data-sib-motion="expressive"] .sib-section-reveal-run{
  animation-duration:2.75s!important;
}
body[data-sib-motion="expressive"] .sib-section-reveal-run > .sib-section-ribbon{
  animation-duration:2.55s!important;
}

@media(max-width:760px){
  .sib-section-reveal.sib-section-reveal-run{
    animation-name:sibbianSectionUnfoldM454Mobile!important;
    animation-duration:2s!important;
  }
  @keyframes sibbianSectionUnfoldM454Mobile{
    0%{clip-path:inset(0 49.4% 0 49.4% round 24px);transform:scale(.982)}
    14%{clip-path:inset(0 47.5% 0 47.5% round 23px);transform:scale(.984)}
    34%{clip-path:inset(0 39% 0 39% round 20px);transform:scale(.988)}
    60%{clip-path:inset(0 17% 0 17% round 13px);transform:scale(.995)}
    82%{clip-path:inset(0 4% 0 4% round 5px);transform:scale(.999)}
    100%{clip-path:inset(0);transform:none}
  }
  body[data-sib-motion="calm"] .sib-section-reveal-run{animation-duration:1.55s!important}
  body[data-sib-motion="expressive"] .sib-section-reveal-run{animation-duration:2.45s!important}
}

@media(prefers-reduced-motion:reduce), print{
  .sib-section-reveal.sib-section-reveal-run{
    animation:none!important;
    clip-path:none!important;
    transform:none!important;
  }
}

/* ================================================================
   M45.5 — WEDDING DETAILS ADAPTIVE PHOTO GEOMETRY
   ================================================================ */
@media(min-width:981px){
  body[data-sib-details-layout="classic"] .wd-classic-photo{
    height:auto!important;
    min-height:0!important;
    align-self:stretch!important;
  }
  body[data-sib-details-layout="classic"] .wd-classic-photo img{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
  }

  body[data-sib-details-layout="editorial"] .wd-editorial-shell{
    grid-template-columns:minmax(290px,.82fr) minmax(360px,1.18fr)!important;
    grid-template-areas:
      "date art"
      "copy art"
      "day art"!important;
    align-items:stretch!important;
  }
  body[data-sib-details-layout="editorial"] .wd-editorial-art{
    grid-area:art!important;
    height:auto!important;
    min-height:0!important;
    align-self:stretch!important;
  }
  body[data-sib-details-layout="editorial"] .wd-editorial-art img{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
  }
  body[data-sib-details-layout="editorial"] .wd-editorial-day{
    grid-area:day!important;
    margin-top:24px!important;
  }

  body.sib-details-hide-photo[data-sib-details-layout="editorial"] .wd-editorial-shell,
  body[data-sib-details-layout="editorial"] .wedding-details-section.wd-no-photo .wd-editorial-shell{
    grid-template-columns:minmax(260px,.62fr) minmax(0,1.38fr)!important;
    grid-template-areas:
      "date copy"
      "day day"!important;
    gap:0 clamp(34px,5vw,72px)!important;
  }
  body.sib-details-hide-photo[data-sib-details-layout="editorial"] .wd-editorial-art,
  body[data-sib-details-layout="editorial"] .wedding-details-section.wd-no-photo .wd-editorial-art{
    display:none!important;
  }
  body.sib-details-hide-photo[data-sib-details-layout="editorial"] .wd-editorial-copy,
  body[data-sib-details-layout="editorial"] .wedding-details-section.wd-no-photo .wd-editorial-copy{
    border:1px solid #d8cfc5!important;
    border-radius:22px!important;
    padding:clamp(34px,4vw,58px)!important;
    align-self:stretch!important;
  }
  body.sib-details-hide-photo[data-sib-details-layout="editorial"] .wd-editorial-date,
  body[data-sib-details-layout="editorial"] .wedding-details-section.wd-no-photo .wd-editorial-date{
    border-radius:22px!important;
    align-self:stretch!important;
  }
}
@media(min-width:761px) and (max-width:980px){
  body[data-sib-details-layout="editorial"] .wd-editorial-shell{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-areas:"date art" "copy art" "day art"!important;
    align-items:stretch!important;
  }
  body[data-sib-details-layout="editorial"] .wd-editorial-art{
    height:auto!important;
    min-height:0!important;
    align-self:stretch!important;
  }
}

/* ================================================================
   M45.5 — SIBBIAN SILK REVEAL
   GPU-friendly transform + opacity only. No clip-path reveal.
   ================================================================ */
.sib-section-reveal{
  position:relative;
  isolation:isolate;
  clip-path:none!important;
  transform:none!important;
}
.sib-section-reveal.sib-section-reveal-run{
  animation:none!important;
  clip-path:none!important;
  transform:none!important;
  will-change:auto!important;
}
.sib-section-reveal.sib-section-reveal-run > :not(.sib-section-ribbon){
  animation:sibbianSilkSettle 2.35s cubic-bezier(.16,1,.3,1) both!important;
}
@keyframes sibbianSilkSettle{
  0%{opacity:.72;transform:scale(1.012)}
  34%{opacity:.88;transform:scale(1.006)}
  72%{opacity:.98;transform:scale(1.0015)}
  100%{opacity:1;transform:scale(1)}
}

.sib-section-ribbon{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  left:0!important;
  top:0!important;
  bottom:0!important;
  width:auto!important;
  height:auto!important;
  z-index:45!important;
  pointer-events:none!important;
  opacity:0!important;
  transform:none!important;
  background:
    linear-gradient(
      90deg,
      transparent 0 49.72%,
      color-mix(in srgb,var(--sib-accent) 82%,white 18%) 49.88% 50.12%,
      transparent 50.28% 100%
    )!important;
  box-shadow:none!important;
}
.sib-section-ribbon::before,
.sib-section-ribbon::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:50.2%;
  will-change:transform,opacity;
  backface-visibility:hidden;
  background:
    linear-gradient(
      115deg,
      color-mix(in srgb,var(--sib-secondary) 88%,transparent),
      color-mix(in srgb,var(--sib-primary) 22%,var(--sib-secondary) 78%),
      color-mix(in srgb,var(--sib-secondary) 92%,transparent)
    );
  opacity:.94;
}
.sib-section-ribbon::before{left:0}
.sib-section-ribbon::after{right:0}

.sib-section-reveal-run > .sib-section-ribbon{
  opacity:1!important;
  animation:sibbianSilkStitch 2.30s cubic-bezier(.16,1,.3,1) both!important;
}
.sib-section-reveal-run > .sib-section-ribbon::before{
  animation:sibbianSilkLeft 2.30s cubic-bezier(.16,1,.3,1) both!important;
}
.sib-section-reveal-run > .sib-section-ribbon::after{
  animation:sibbianSilkRight 2.30s cubic-bezier(.16,1,.3,1) both!important;
}
@keyframes sibbianSilkLeft{
  0%{transform:translate3d(0,0,0);opacity:.94}
  18%{transform:translate3d(-2.5%,0,0);opacity:.94}
  56%{transform:translate3d(-58%,0,0);opacity:.78}
  82%{transform:translate3d(-96%,0,0);opacity:.28}
  100%{transform:translate3d(-104%,0,0);opacity:0}
}
@keyframes sibbianSilkRight{
  0%{transform:translate3d(0,0,0);opacity:.94}
  18%{transform:translate3d(2.5%,0,0);opacity:.94}
  56%{transform:translate3d(58%,0,0);opacity:.78}
  82%{transform:translate3d(96%,0,0);opacity:.28}
  100%{transform:translate3d(104%,0,0);opacity:0}
}
@keyframes sibbianSilkStitch{
  0%{opacity:0}
  10%{opacity:.18}
  26%{opacity:1}
  58%{opacity:.9}
  82%{opacity:.24}
  100%{opacity:0}
}

body[data-sib-motion="calm"] .sib-section-reveal-run > :not(.sib-section-ribbon),
body[data-sib-motion="calm"] .sib-section-reveal-run > .sib-section-ribbon,
body[data-sib-motion="calm"] .sib-section-reveal-run > .sib-section-ribbon::before,
body[data-sib-motion="calm"] .sib-section-reveal-run > .sib-section-ribbon::after{
  animation-duration:1.75s!important;
}
body[data-sib-motion="expressive"] .sib-section-reveal-run > :not(.sib-section-ribbon),
body[data-sib-motion="expressive"] .sib-section-reveal-run > .sib-section-ribbon,
body[data-sib-motion="expressive"] .sib-section-reveal-run > .sib-section-ribbon::before,
body[data-sib-motion="expressive"] .sib-section-reveal-run > .sib-section-ribbon::after{
  animation-duration:2.85s!important;
}
@media(max-width:760px){
  .sib-section-reveal.sib-section-reveal-run > :not(.sib-section-ribbon),
  .sib-section-reveal-run > .sib-section-ribbon,
  .sib-section-reveal-run > .sib-section-ribbon::before,
  .sib-section-reveal-run > .sib-section-ribbon::after{
    animation-duration:2.05s!important;
  }
}
@media(prefers-reduced-motion:reduce), print{
  .sib-section-reveal.sib-section-reveal-run > :not(.sib-section-ribbon),
  .sib-section-reveal-run > .sib-section-ribbon,
  .sib-section-reveal-run > .sib-section-ribbon::before,
  .sib-section-reveal-run > .sib-section-ribbon::after{
    animation:none!important;
    opacity:1!important;
    transform:none!important;
  }
  .sib-section-ribbon{display:none!important}
}

/* ================================================================
   M45.6 — SIMPLE SILKY SECTION FADE
   Opacity only: no clip-path, blur, translate, scale, masks or overlay panels.
   ================================================================ */

/* Kill the previous Silk overlay completely. */
.sib-section-ribbon,
.sib-section-ribbon::before,
.sib-section-ribbon::after{
  display:none!important;
  animation:none!important;
  opacity:0!important;
}

/* Nothing about the section's geometry changes while it reveals. */
.sib-section-reveal{
  clip-path:none!important;
  transform:none!important;
}
.sib-section-reveal.sib-section-reveal-run{
  clip-path:none!important;
  transform:none!important;
  animation:sibbianSmoothSectionFade 1.55s cubic-bezier(.22,.61,.36,1) both!important;
  will-change:opacity!important;
}
.sib-section-reveal.sib-section-reveal-run > :not(.sib-section-ribbon){
  animation:none!important;
  transform:none!important;
}

@keyframes sibbianSmoothSectionFade{
  0%{opacity:.04}
  18%{opacity:.15}
  44%{opacity:.43}
  72%{opacity:.76}
  100%{opacity:1}
}

body[data-sib-motion="calm"] .sib-section-reveal.sib-section-reveal-run{
  animation-duration:1.20s!important;
}
body[data-sib-motion="expressive"] .sib-section-reveal.sib-section-reveal-run{
  animation-duration:1.90s!important;
}

@media(max-width:760px){
  .sib-section-reveal.sib-section-reveal-run{
    animation-duration:1.50s!important;
  }
}

@media(prefers-reduced-motion:reduce), print{
  .sib-section-reveal,
  .sib-section-reveal.sib-section-reveal-run,
  .sib-section-reveal.sib-section-reveal-done{
    animation:none!important;
    opacity:1!important;
    clip-path:none!important;
    transform:none!important;
  }
}

/* ================================================================
   M45.6 — EDITORIAL GEOMETRY
   Photo matches the combined height of Date + Details.
   Wedding Day always begins below BOTH columns.
   ================================================================ */
@media(min-width:981px){
  body[data-sib-details-layout="editorial"] .wd-editorial-shell{
    grid-template-columns:minmax(290px,.82fr) minmax(360px,1.18fr)!important;
    grid-template-areas:
      "date art"
      "copy art"
      "day day"!important;
    align-items:stretch!important;
  }

  body[data-sib-details-layout="editorial"] .wd-editorial-date{
    grid-area:date!important;
  }

  body[data-sib-details-layout="editorial"] .wd-editorial-copy{
    grid-area:copy!important;
  }

  body[data-sib-details-layout="editorial"] .wd-editorial-art{
    grid-area:art!important;
    height:auto!important;
    min-height:0!important;
    align-self:stretch!important;
    position:relative!important;
  }

  body[data-sib-details-layout="editorial"] .wd-editorial-art img,
  body[data-sib-details-layout="editorial"] .wd-editorial-photo-fallback{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  body[data-sib-details-layout="editorial"] .wd-editorial-day{
    grid-area:day!important;
    grid-column:1/-1!important;
    margin-top:clamp(26px,3vw,42px)!important;
    padding-top:clamp(24px,2.5vw,36px)!important;
  }
}

/* Tablet follows the same visual rule: two-column top, schedule below. */
@media(min-width:761px) and (max-width:980px){
  body[data-sib-details-layout="editorial"] .wd-editorial-shell{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-areas:
      "date art"
      "copy art"
      "day day"!important;
    align-items:stretch!important;
  }

  body[data-sib-details-layout="editorial"] .wd-editorial-art{
    grid-area:art!important;
    height:auto!important;
    min-height:0!important;
    align-self:stretch!important;
    position:relative!important;
  }

  body[data-sib-details-layout="editorial"] .wd-editorial-art img,
  body[data-sib-details-layout="editorial"] .wd-editorial-photo-fallback{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  body[data-sib-details-layout="editorial"] .wd-editorial-day{
    grid-area:day!important;
    grid-column:1/-1!important;
  }
}

/* ================================================================
   M46 — PUBLIC MOBILE WIDTH HARDENING
   The public document itself never becomes wider than the viewport.
   Horizontal components such as the filmstrip keep their own internal scroll.
   ================================================================ */
html,
body.sib-public{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
body.sib-public{
  position:relative;
}
body.sib-public > section,
body.sib-public > header,
body.sib-public .wrap{
  max-width:100%;
}
body.sib-public :is(img,video,svg,canvas){
  max-width:100%;
}
@supports not (overflow:clip){
  html,body.sib-public{overflow-x:hidden}
}
@media(max-width:760px){
  body.sib-public{
    min-width:0!important;
  }
  body.sib-public > section{
    width:100%!important;
    min-width:0!important;
  }
  .public-main-nav{
    max-width:calc(100vw - 24px)!important;
  }
  .sample-note{
    right:12px!important;
    max-width:calc(100vw - 24px)!important;
    white-space:normal!important;
    text-align:center;
  }
}

/* ================================================================
   M46 — OUR STORY: FOUR DESIGN SYSTEMS
   ================================================================ */
.story-section{
  --story-section-bg:var(--sib-secondary);
  --story-focal-x:50%;
  --story-focal-y:50%;
  position:relative;
  overflow:hidden;
  padding:0!important;
  background:var(--sib-secondary);
  color:var(--sib-text);
}
body.sib-story-custom-bg .story-section{
  background:var(--story-section-bg)!important;
}
.story-design{display:none}
body[data-sib-story-layout="keepsake"] .story-keepsake-design{display:block}
body[data-sib-story-layout="editorial"] .story-editorial-design{display:block}
body[data-sib-story-layout="letter"] .story-letter-design{display:block}
body[data-sib-story-layout="cinematic"] .story-cinematic-design{display:block}
body.sib-story-hide-photo .story-section figure,
body.sib-story-hide-photo .story-cinematic-bg{
  display:none!important;
}
.story-section h2{
  font-family:var(--sib-heading,Georgia,serif);
}
.story-section p{
  white-space:pre-line;
}

/* ---------------- KEEPSAKE ---------------- */
.story-keepsake-design{
  padding:clamp(64px,8vh,110px) 24px;
}
.story-keepsake-shell{max-width:var(--sib-max)}
.story-keepsake-card{
  min-height:min(78vh,760px);
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(340px,.98fr);
  border:1px solid color-mix(in srgb,var(--sib-accent) 24%,transparent);
  border-radius:var(--sib-radius);
  overflow:hidden;
  background:color-mix(in srgb,var(--sib-secondary) 94%,white 6%);
  box-shadow:0 28px 80px color-mix(in srgb,var(--sib-text) 12%,transparent);
}
.story-keepsake-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(40px,6vw,82px);
}
.story-keepsake-copy .eyebrow{color:var(--sib-primary)}
.story-keepsake-copy h2{
  font-size:clamp(48px,6vw,88px);
  line-height:.96;
  margin:12px 0 28px;
  max-width:9ch;
}
.story-keepsake-copy p{
  max-width:620px;
  margin:0;
  color:color-mix(in srgb,var(--sib-text) 74%,transparent);
  font-size:clamp(16px,1.35vw,20px);
  line-height:1.82;
}
.story-signature-line{
  width:96px;
  height:3px;
  margin-top:30px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--sib-primary),var(--sib-accent));
}
.story-keepsake-photo{
  position:relative;
  margin:0;
  min-height:500px;
  overflow:hidden;
}
.story-keepsake-photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:var(--story-focal-x) var(--story-focal-y);
}

/* No photo = intentional full-width keepsake card. */
.story-no-photo .story-keepsake-card,
body.sib-story-hide-photo .story-keepsake-card{
  grid-template-columns:1fr;
}
.story-no-photo .story-keepsake-copy,
body.sib-story-hide-photo .story-keepsake-copy{
  max-width:900px;
  margin:auto;
  text-align:center;
  align-items:center;
}
.story-no-photo .story-keepsake-copy h2,
body.sib-story-hide-photo .story-keepsake-copy h2{max-width:13ch}

/* ---------------- EDITORIAL ---------------- */
.story-editorial-design{
  padding:clamp(64px,8vh,110px) 24px;
  background:color-mix(in srgb,var(--story-section-bg) 92%,white 8%);
}
body:not(.sib-story-custom-bg)[data-sib-story-layout="editorial"] .story-section{
  --story-section-bg:#f2ece4;
  background:#f2ece4;
}
.story-editorial-shell{
  max-width:var(--sib-max);
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(300px,.62fr) minmax(340px,.9fr);
  grid-template-areas:"head body photo";
  gap:clamp(28px,5vw,72px);
  align-items:stretch;
}
.story-editorial-head{grid-area:head;align-self:center}
.story-editorial-head .eyebrow{color:var(--sib-primary)}
.story-editorial-head h2{
  font-size:clamp(62px,8vw,124px);
  line-height:.84;
  margin:14px 0 0;
  letter-spacing:-.05em;
}
.story-editorial-body{
  grid-area:body;
  align-self:center;
  position:relative;
  padding-top:54px;
}
.story-editorial-mark{
  position:absolute;
  left:-8px;
  top:-16px;
  color:var(--sib-accent);
  font:120px/.8 Georgia,serif;
  opacity:.55;
}
.story-editorial-body p{
  position:relative;
  z-index:1;
  margin:0;
  font-size:clamp(16px,1.3vw,20px);
  line-height:1.85;
  color:color-mix(in srgb,var(--sib-text) 74%,transparent);
}
.story-editorial-photo{
  grid-area:photo;
  min-height:min(74vh,720px);
  margin:0;
  border-radius:var(--sib-radius);
  overflow:hidden;
  position:relative;
}
.story-editorial-photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:var(--story-focal-x) var(--story-focal-y);
}

/* Editorial without photo uses the whole canvas instead of an empty column. */
.story-no-photo .story-editorial-shell,
body.sib-story-hide-photo .story-editorial-shell{
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);
  grid-template-areas:"head body";
  max-width:1080px;
}
.story-no-photo .story-editorial-body,
body.sib-story-hide-photo .story-editorial-body{
  padding:clamp(38px,5vw,68px);
  border:1px solid color-mix(in srgb,var(--sib-primary) 20%,transparent);
  border-radius:var(--sib-radius);
  background:color-mix(in srgb,var(--story-section-bg) 88%,white 12%);
}

/* ---------------- LOVE LETTER ---------------- */
.story-letter-design{
  padding:clamp(64px,8vh,110px) 24px;
  background:
    radial-gradient(circle at 12% 18%,color-mix(in srgb,var(--sib-primary) 8%,transparent),transparent 28%),
    radial-gradient(circle at 88% 82%,color-mix(in srgb,var(--sib-accent) 10%,transparent),transparent 30%);
}
.story-letter-shell{max-width:1000px}
.story-letter-paper{
  position:relative;
  min-height:min(76vh,760px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(48px,8vw,100px);
  border:1px solid color-mix(in srgb,var(--sib-accent) 42%,transparent);
  border-radius:6px;
  background:color-mix(in srgb,var(--sib-secondary) 96%,white 4%);
  box-shadow:
    inset 0 0 0 10px color-mix(in srgb,var(--sib-secondary) 96%,white 4%),
    inset 0 0 0 11px color-mix(in srgb,var(--sib-accent) 18%,transparent),
    0 26px 80px color-mix(in srgb,var(--sib-text) 10%,transparent);
}
.story-letter-paper .eyebrow{text-align:center;color:var(--sib-primary)}
.story-letter-paper h2{
  text-align:center;
  font-size:clamp(50px,6.6vw,94px);
  line-height:.96;
  margin:12px auto 18px;
  max-width:12ch;
}
.story-letter-rule{height:24px;display:grid;place-items:center;margin-bottom:18px}
.story-letter-rule span{width:130px;height:1px;background:var(--sib-accent)}
.story-letter-paper>p{
  width:min(100%,680px);
  margin:0 auto;
  text-align:left;
  font-size:clamp(16px,1.25vw,19px);
  line-height:1.9;
  color:color-mix(in srgb,var(--sib-text) 76%,transparent);
}
.story-letter-signoff{
  width:min(100%,680px);
  margin:24px auto 0;
  font-family:var(--sib-heading,Georgia,serif);
  font-size:22px;
  color:var(--sib-primary);
}
.story-letter-stamp{
  position:absolute;
  right:34px;
  top:30px;
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid var(--sib-accent);
  color:var(--sib-primary);
}
.story-letter-photo{
  position:absolute;
  right:clamp(28px,5vw,62px);
  bottom:clamp(26px,5vw,56px);
  width:clamp(120px,18vw,210px);
  aspect-ratio:4/5;
  margin:0;
  padding:8px;
  background:#fffaf3;
  box-shadow:0 16px 40px #0002;
  transform:rotate(2.5deg);
}
.story-letter-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:var(--story-focal-x) var(--story-focal-y);
}
.story-letter-paper:has(.story-letter-photo)>p,
.story-letter-paper:has(.story-letter-photo) .story-letter-signoff{
  padding-right:clamp(100px,16vw,190px);
}

/* ---------------- CINEMATIC ---------------- */
.story-cinematic-design{
  background:var(--story-section-bg);
}
body:not(.sib-story-custom-bg)[data-sib-story-layout="cinematic"] .story-section{
  --story-section-bg:var(--sib-secondary);
}
.story-cinematic-shell{
  position:relative;
  min-height:min(88svh,900px);
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  background:
    radial-gradient(circle at 72% 28%,color-mix(in srgb,var(--sib-primary) 32%,transparent),transparent 36%),
    linear-gradient(135deg,var(--sib-secondary),color-mix(in srgb,var(--sib-primary) 18%,var(--sib-secondary)));
}
.story-cinematic-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:var(--story-focal-x) var(--story-focal-y);
}
.story-cinematic-veil{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(8,10,14,.84) 0%,rgba(8,10,14,.64) 46%,rgba(8,10,14,.18) 78%),
    linear-gradient(0deg,rgba(8,10,14,.90),transparent 62%);
}
.story-cinematic-copy{
  position:relative;
  z-index:2;
  width:min(100%,var(--sib-max));
  padding:clamp(70px,10vh,120px) 24px;
  color:#fff;
}
.story-cinematic-copy .eyebrow{color:var(--sib-accent)}
.story-cinematic-copy h2{
  max-width:9ch;
  margin:12px 0 24px;
  font-size:clamp(58px,8vw,116px);
  line-height:.9;
  color:#fff;
}
.story-cinematic-copy p{
  max-width:680px;
  margin:0;
  font-size:clamp(16px,1.35vw,20px);
  line-height:1.82;
  color:#f1ece4;
}
.story-cinematic-rule{
  display:block;
  width:110px;
  height:3px;
  margin-top:30px;
  background:linear-gradient(90deg,var(--sib-primary),var(--sib-accent));
}

/* Keep custom section color meaningful across all four systems. */
body.sib-story-custom-bg .story-keepsake-design,
body.sib-story-custom-bg .story-editorial-design,
body.sib-story-custom-bg .story-letter-design{
  background:var(--story-section-bg)!important;
}

/* ================================================================
   M46 — OUR STORY RESPONSIVE COMPOSITIONS
   ================================================================ */
@media(max-width:980px){
  .story-keepsake-card{
    grid-template-columns:minmax(0,1fr) minmax(260px,.82fr);
  }
  .story-editorial-shell{
    grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
    grid-template-areas:
      "head photo"
      "body photo";
  }
  .story-editorial-photo{min-height:620px}
  .story-no-photo .story-editorial-shell,
  body.sib-story-hide-photo .story-editorial-shell{
    grid-template-columns:1fr 1fr;
    grid-template-areas:"head body";
  }
}

@media(max-width:760px){
  .story-keepsake-design,
  .story-editorial-design,
  .story-letter-design{
    padding:64px 18px!important;
  }
  .story-keepsake-card{
    min-height:0;
    grid-template-columns:1fr;
  }
  .story-keepsake-copy{
    padding:38px 26px 42px;
  }
  .story-keepsake-copy h2{
    font-size:clamp(44px,13vw,72px);
  }
  .story-keepsake-photo{
    order:-1;
    min-height:0;
    height:52svh;
  }

  .story-editorial-shell,
  .story-no-photo .story-editorial-shell,
  body.sib-story-hide-photo .story-editorial-shell{
    grid-template-columns:1fr;
    grid-template-areas:
      "head"
      "photo"
      "body";
    gap:24px;
  }
  .story-no-photo .story-editorial-shell,
  body.sib-story-hide-photo .story-editorial-shell{
    grid-template-areas:"head" "body";
  }
  .story-editorial-head h2{
    font-size:clamp(52px,16vw,82px);
    max-width:8ch;
  }
  .story-editorial-photo{
    min-height:0;
    height:54svh;
  }
  .story-editorial-body{
    padding:30px 4px 0;
  }
  .story-no-photo .story-editorial-body,
  body.sib-story-hide-photo .story-editorial-body{
    padding:30px 24px!important;
  }

  .story-letter-paper{
    min-height:0;
    padding:54px 26px 44px;
  }
  .story-letter-paper h2{
    font-size:clamp(48px,14vw,76px);
  }
  .story-letter-stamp{
    right:22px;
    top:20px;
  }
  .story-letter-photo{
    position:relative;
    right:auto;
    bottom:auto;
    width:min(70%,240px);
    margin:34px auto 0;
    transform:rotate(1.5deg);
  }
  .story-letter-paper:has(.story-letter-photo)>p,
  .story-letter-paper:has(.story-letter-photo) .story-letter-signoff{
    padding-right:0;
  }

  .story-cinematic-shell{
    min-height:78svh;
  }
  .story-cinematic-copy{
    padding:76px 24px 58px;
  }
  .story-cinematic-copy h2{
    font-size:clamp(52px,15vw,82px);
  }
  .story-cinematic-veil{
    background:
      linear-gradient(0deg,rgba(8,10,14,.92) 0%,rgba(8,10,14,.60) 60%,rgba(8,10,14,.18) 100%);
  }
}

/* ================================================================
   M46.1 — OUR STORY SECTION CONTINUITY
   Wedding Details and Our Story touch; breathing room lives inside Story.
   ================================================================ */
.wedding-details-section + .story-section{
  margin-top:0!important;
}
.story-section{
  margin-top:0!important;
}

/* Keep the chapter break visual, but inside the Story section itself. */
@media(min-width:761px){
  .story-keepsake-design,
  .story-editorial-design,
  .story-letter-design{
    padding-top:clamp(72px,8vh,108px)!important;
  }
  .story-cinematic-copy{
    padding-top:clamp(82px,10vh,122px)!important;
  }
}
@media(max-width:760px){
  .story-keepsake-design,
  .story-editorial-design,
  .story-letter-design{
    padding-top:64px!important;
  }
  .story-cinematic-copy{
    padding-top:76px!important;
  }
}

/* ================================================================
   M46.1 — EDITORIAL STORY DESKTOP REFINEMENT
   Desktop becomes a clean 2-column composition:
   left = heading + story copy, right = feature photograph.
   Mobile remains exactly as M46.
   ================================================================ */
@media(min-width:981px){
  body[data-sib-story-layout="editorial"] .story-editorial-shell{
    max-width:var(--sib-max)!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr)!important;
    grid-template-areas:
      "head photo"
      "body photo"!important;
    column-gap:clamp(54px,6vw,96px)!important;
    row-gap:clamp(24px,3vh,38px)!important;
    align-items:stretch!important;
  }

  body[data-sib-story-layout="editorial"] .story-editorial-head{
    grid-area:head!important;
    align-self:end!important;
    padding-top:clamp(10px,2vh,24px)!important;
  }

  body[data-sib-story-layout="editorial"] .story-editorial-head h2{
    max-width:8.5ch!important;
    margin:14px 0 0!important;
    font-size:clamp(64px,6.5vw,104px)!important;
    line-height:.90!important;
    letter-spacing:-.045em!important;
  }

  body[data-sib-story-layout="editorial"] .story-editorial-body{
    grid-area:body!important;
    align-self:start!important;
    max-width:690px!important;
    padding:18px 0 0 54px!important;
    position:relative!important;
  }

  body[data-sib-story-layout="editorial"] .story-editorial-mark{
    left:0!important;
    top:-6px!important;
    font-size:92px!important;
    line-height:.75!important;
    opacity:.42!important;
  }

  body[data-sib-story-layout="editorial"] .story-editorial-body p{
    max-width:620px!important;
    font-size:clamp(16px,1.18vw,19px)!important;
    line-height:1.82!important;
  }

  body[data-sib-story-layout="editorial"] .story-editorial-photo{
    grid-area:photo!important;
    position:relative!important;
    min-height:0!important;
    height:clamp(560px,70vh,760px)!important;
    align-self:center!important;
    margin:0!important;
    border-radius:clamp(24px,2.5vw,38px)!important;
    overflow:hidden!important;
  }

  body[data-sib-story-layout="editorial"] .story-editorial-photo img{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:var(--story-focal-x) var(--story-focal-y)!important;
  }

  /* Without a photo, Editorial still expands into a deliberate 2-column
     typography composition rather than leaving empty space. */
  body.sib-story-hide-photo[data-sib-story-layout="editorial"] .story-editorial-shell,
  body[data-sib-story-layout="editorial"] .story-section.story-no-photo .story-editorial-shell{
    max-width:1120px!important;
    grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr)!important;
    grid-template-areas:"head body"!important;
    align-items:center!important;
    column-gap:clamp(56px,7vw,100px)!important;
  }

  body.sib-story-hide-photo[data-sib-story-layout="editorial"] .story-editorial-head,
  body[data-sib-story-layout="editorial"] .story-section.story-no-photo .story-editorial-head{
    align-self:center!important;
  }

  body.sib-story-hide-photo[data-sib-story-layout="editorial"] .story-editorial-body,
  body[data-sib-story-layout="editorial"] .story-section.story-no-photo .story-editorial-body{
    max-width:none!important;
    padding:clamp(42px,5vw,68px)!important;
    border:1px solid color-mix(in srgb,var(--sib-primary) 20%,transparent)!important;
    border-radius:var(--sib-radius)!important;
    background:color-mix(in srgb,var(--story-section-bg) 88%,white 12%)!important;
  }
}

/* ================================================================
   M46.2 — WEDDING DETAILS → STORY MOBILE BREATHING ROOM
   Sections still touch. Space belongs inside Wedding Details so the
   collapsed Wedding Day button does not feel glued to the next chapter.
   ================================================================ */
@media(max-width:760px){
  .wedding-details-section{
    padding-bottom:clamp(38px,9vw,54px)!important;
  }

  /* Journey's inner shell owns its background; keep the extra breathing
     inside that shell so no foreign strip appears below it. */
  body[data-sib-details-layout="journey"] .wedding-details-section{
    padding-bottom:0!important;
  }
  body[data-sib-details-layout="journey"] .wd-journey-shell{
    padding-bottom:clamp(42px,10vw,58px)!important;
  }
}

/* ================================================================
   M46.2 — EDITORIAL STORY BACKGROUND CONTINUITY
   The outer section and the visible Editorial canvas always resolve to
   the same background. Theme Default and palette colors cannot expose
   a pale/foreign band between sections.
   ================================================================ */
body[data-sib-story-layout="editorial"] .story-section,
body[data-sib-story-layout="editorial"] .story-editorial-design{
  background:var(--story-section-bg)!important;
}

/* Preserve the curated default, but apply it consistently to BOTH layers. */
body:not(.sib-story-custom-bg)[data-sib-story-layout="editorial"] .story-section{
  --story-section-bg:#f2ece4!important;
}
body:not(.sib-story-custom-bg)[data-sib-story-layout="editorial"] .story-editorial-design{
  background:#f2ece4!important;
}

/* ================================================================
   M46.2 — CINEMATIC NO-PHOTO DESKTOP ART
   Photo-backed Cinematic is untouched. On desktop only, a no-photo
   Cinematic gains a quiet abstract wedding/orbit composition on the right.
   ================================================================ */
@media(min-width:981px){
  body[data-sib-story-layout="cinematic"].sib-story-hide-photo .story-cinematic-shell,
  body[data-sib-story-layout="cinematic"] .story-section.story-no-photo .story-cinematic-shell{
    isolation:isolate;
  }

  body[data-sib-story-layout="cinematic"].sib-story-hide-photo .story-cinematic-shell::before,
  body[data-sib-story-layout="cinematic"] .story-section.story-no-photo .story-cinematic-shell::before{
    content:"";
    position:absolute;
    z-index:1;
    right:clamp(70px,9vw,150px);
    top:50%;
    width:clamp(330px,31vw,520px);
    aspect-ratio:1;
    transform:translateY(-50%);
    border-radius:50%;
    border:1px solid color-mix(in srgb,var(--sib-accent) 38%,transparent);
    box-shadow:
      0 0 0 clamp(42px,4vw,68px) color-mix(in srgb,var(--sib-accent) 6%,transparent),
      0 0 0 clamp(86px,8vw,128px) color-mix(in srgb,var(--sib-primary) 5%,transparent);
    background:
      radial-gradient(circle at 50% 50%,
        color-mix(in srgb,var(--sib-accent) 12%,transparent) 0 18%,
        transparent 18.5% 100%);
    opacity:.9;
    pointer-events:none;
  }

  body[data-sib-story-layout="cinematic"].sib-story-hide-photo .story-cinematic-shell::after,
  body[data-sib-story-layout="cinematic"] .story-section.story-no-photo .story-cinematic-shell::after{
    content:"&";
    position:absolute;
    z-index:1;
    right:clamp(145px,15.2vw,255px);
    top:50%;
    transform:translateY(-52%);
    font-family:var(--sib-heading,Georgia,serif);
    font-size:clamp(118px,12vw,210px);
    line-height:1;
    color:color-mix(in srgb,var(--sib-accent) 72%,white 28%);
    opacity:.76;
    text-shadow:0 18px 50px rgba(0,0,0,.18);
    pointer-events:none;
  }

  /* Keep copy visually balanced against the art instead of stretching
     all the way across the empty canvas. */
  body[data-sib-story-layout="cinematic"].sib-story-hide-photo .story-cinematic-copy,
  body[data-sib-story-layout="cinematic"] .story-section.story-no-photo .story-cinematic-copy{
    padding-right:min(48vw,760px)!important;
  }

  body[data-sib-story-layout="cinematic"].sib-story-hide-photo .story-cinematic-copy p,
  body[data-sib-story-layout="cinematic"] .story-section.story-no-photo .story-cinematic-copy p{
    max-width:620px!important;
  }
}

/* ================================================================
   M46.3 — MOBILE WEDDING DAY BUTTON BREATHING ROOM
   This is a bug fix only: Wedding Details itself remains locked.
   ================================================================ */
@media(max-width:760px){
  .wedding-details-section .wd-expand-button{
    margin-bottom:clamp(28px,7vw,40px)!important;
  }
}

/* ================================================================
   M46.3 — EDITORIAL DEFAULT CONTRAST
   Theme Default is intentionally light, so it gets its own dark ink system.
   Palette/custom backgrounds continue using the normal semantic text color.
   ================================================================ */
body:not(.sib-story-custom-bg)[data-sib-story-layout="editorial"] .story-section,
body:not(.sib-story-custom-bg)[data-sib-story-layout="editorial"] .story-editorial-design{
  color:#17181d!important;
}
body:not(.sib-story-custom-bg)[data-sib-story-layout="editorial"] .story-editorial-head h2{
  color:#17181d!important;
}
body:not(.sib-story-custom-bg)[data-sib-story-layout="editorial"] .story-editorial-body p{
  color:#5e5852!important;
}
body:not(.sib-story-custom-bg)[data-sib-story-layout="editorial"] .story-editorial-head .eyebrow{
  color:#8f1736!important;
}
body:not(.sib-story-custom-bg)[data-sib-story-layout="editorial"] .story-editorial-mark{
  color:#b28b3f!important;
}

/* ================================================================
   M46.3 — CINEMATIC NO-PHOTO COUPLE MONOGRAM
   Replace the anonymous ampersand with the real navigation monogram.
   ================================================================ */
@media(min-width:981px){
  body[data-sib-story-layout="cinematic"].sib-story-hide-photo .story-cinematic-shell::after,
  body[data-sib-story-layout="cinematic"] .story-section.story-no-photo .story-cinematic-shell::after{
    content:attr(data-story-monogram)!important;
    right:clamp(105px,11.4vw,195px)!important;
    font-size:clamp(62px,6.8vw,112px)!important;
    letter-spacing:.02em!important;
    white-space:nowrap!important;
  }
}

/* ================================================================
   M46.3 — STORY PHOTO PICKER
   ================================================================ */
.story-photo-current{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:10px;
  align-items:center;
  margin-top:10px;
  padding:9px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}
.story-photo-current img{
  width:76px;
  height:66px;
  object-fit:cover;
  border-radius:9px;
}
.story-photo-current span{display:grid;gap:3px}
.story-photo-current strong{font-size:8px;color:var(--ink)}
.story-photo-current small{font-size:7px;line-height:1.35;color:var(--muted)}
.story-photo-empty{
  margin-top:10px;
  padding:11px 12px;
  border:1px dashed var(--line);
  border-radius:12px;
  color:var(--muted);
  font-size:8px;
}
.story-photo-picker{margin-top:10px}
.story-photo-clear{
  display:flex;
  gap:8px;
  align-items:flex-start;
  margin-top:9px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  color:var(--muted);
  font-size:7px;
  line-height:1.4;
}
.story-photo-clear input{margin-top:2px}

/* ================================================================
   M47 — VENUES LIVE INSIDE WEDDING DETAILS
   Compact ceremony/reception cards replace the retired public Places section.
   ================================================================ */
.wd-venue-tools{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:18px;
}
.wd-venue-mini{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:11px;
  align-items:center;
  padding:11px;
  border:1px solid color-mix(in srgb,var(--sib-accent) 30%,transparent);
  border-radius:16px;
  color:inherit;
  background:color-mix(in srgb,var(--sib-secondary) 10%,transparent);
}
.wd-venue-thumb{
  width:58px;
  height:58px;
  flex:none;
  object-fit:cover;
  border-radius:12px;
}
.wd-venue-mini-copy{
  min-width:0;
  display:grid;
  gap:3px;
}
.wd-venue-mini-copy>small{
  color:var(--sib-accent);
  font-size:9px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.wd-venue-mini-copy>strong{
  min-width:0;
  font-family:var(--sib-body,Arial,sans-serif);
  font-size:15px;
  line-height:1.22;
}
.wd-venue-address{
  color:color-mix(in srgb,currentColor 66%,transparent);
  font-size:10px;
  line-height:1.35;
}
.wd-venue-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:4px;
}
.wd-venue-actions a{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 9px;
  border-radius:999px;
  border:1px solid color-mix(in srgb,var(--sib-accent) 42%,transparent);
  color:inherit;
  font-size:9px;
  font-weight:850;
  line-height:1;
  text-decoration:none;
}
body.sib-details-hide-venue-photos .wd-venue-thumb{display:none!important}
body.sib-details-hide-venue-photos .wd-venue-mini{grid-template-columns:1fr}
body.sib-details-hide-venue-address .wd-venue-address{display:none!important}
body.sib-details-hide-directions .wd-venue-directions{display:none!important}
body.sib-details-hide-venue-website .wd-venue-website{display:none!important}

/* Classic remains restrained. */
body[data-sib-details-layout="classic"] .wd-venue-mini{
  background:color-mix(in srgb,var(--sib-secondary) 7%,transparent);
}

/* Editorial default is light; venue cards must use the editorial ink system. */
body:not(.sib-details-custom-bg)[data-sib-details-layout="editorial"] .wd-venue-mini{
  background:#fffaf4;
  color:#17181d;
  border-color:#d8c9b8;
}
body:not(.sib-details-custom-bg)[data-sib-details-layout="editorial"] .wd-venue-address{
  color:#6d655e;
}

/* Invitation stays paper-like rather than looking like app cards. */
body[data-sib-details-layout="invitation"] .wd-venue-tools{
  width:min(100%,820px);
  margin-left:auto;
  margin-right:auto;
}
body[data-sib-details-layout="invitation"] .wd-venue-mini{
  background:rgba(255,250,243,.72);
  color:#17181d;
  border-color:color-mix(in srgb,var(--sib-accent) 48%,#d9cfc1 52%);
}

/* Journey uses a translucent glass treatment over its image/color canvas. */
body[data-sib-details-layout="journey"] .wd-venue-mini{
  background:rgba(10,12,18,.60);
  border-color:color-mix(in srgb,var(--sib-accent) 42%,transparent);
  color:#fff;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}

@media(max-width:760px){
  .wd-venue-tools{
    grid-template-columns:1fr;
    margin-top:16px;
  }
  .wd-venue-mini{
    padding:10px;
  }
  .wd-venue-thumb{
    width:54px;
    height:54px;
  }
}

/* Old Places section CSS may remain for upgrade/custom-CSS compatibility,
   but Sibbian no longer emits a standalone public Places section. */

/* ================================================================
   M48 — SHARED PUBLIC BACKGROUND TREATMENTS
   ================================================================ */
body.sib-public [data-sib-section][data-background-mode="solid"],
body.sib-public [data-sib-section][data-background-mode="gradient"]{
  background:var(--sib-section-bg)!important;
  color:var(--sib-section-text,var(--sib-text))!important;
}
body.sib-public [data-sib-section][data-background-mode="solid"] .section-heading h2,
body.sib-public [data-sib-section][data-background-mode="gradient"] .section-heading h2,
body.sib-public [data-sib-section][data-background-mode="solid"] .section-heading .eyebrow,
body.sib-public [data-sib-section][data-background-mode="gradient"] .section-heading .eyebrow{
  color:var(--sib-section-text,var(--sib-text))!important;
}
body.sib-details-custom-bg .wedding-details-section{
  background:var(--wd-section-bg)!important;
  color:var(--sib-section-text,var(--sib-text))!important;
}
body.sib-story-custom-bg .story-section,
body.sib-story-custom-bg .story-editorial-design,
body.sib-story-custom-bg .story-keepsake-design,
body.sib-story-custom-bg .story-letter-design{
  background:var(--story-section-bg)!important;
  color:var(--sib-section-text,var(--sib-text))!important;
}
body.sib-story-custom-bg .story-section :is(h2,.eyebrow){color:var(--sib-section-text,var(--sib-text))!important}
body.sib-story-custom-bg .story-section p{color:var(--sib-section-muted)!important}
.questions-section[data-background-mode="solid"] .question-item,
.questions-section[data-background-mode="gradient"] .question-item{border-color:color-mix(in srgb,var(--sib-section-text) 18%,transparent)!important}
.questions-section[data-background-mode="solid"] .question-item>div,
.questions-section[data-background-mode="gradient"] .question-item>div{color:var(--sib-section-muted)!important}
.rsvp-section[data-background-mode="solid"],
.rsvp-section[data-background-mode="gradient"]{background:var(--sib-section-bg)!important;color:var(--sib-section-text)!important}
.rsvp-section[data-background-mode="solid"] h2,
.rsvp-section[data-background-mode="gradient"] h2,
.rsvp-section[data-background-mode="solid"] .eyebrow,
.rsvp-section[data-background-mode="gradient"] .eyebrow{color:var(--sib-section-text)!important}
body.sib-details-custom-bg[data-sib-details-layout="journey"] .wd-journey-shell{background:var(--wd-section-bg)!important}

/* ================================================================
   M49 — WEDDING DETAILS GRADIENT REGRESSION
   ================================================================ */
.wedding-details-section[data-background-mode="solid"],
.wedding-details-section[data-background-mode="gradient"]{background:var(--wd-section-bg)!important}
.wedding-details-section[data-background-mode="gradient"] .wd-classic-main,
.wedding-details-section[data-background-mode="gradient"] .wd-classic-shell>.wd-day-block{background:color-mix(in srgb,var(--sib-section-text) 7%,transparent)!important;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
body[data-sib-details-layout="invitation"] .wedding-details-section[data-background-mode="solid"],
body[data-sib-details-layout="invitation"] .wedding-details-section[data-background-mode="gradient"]{background:var(--wd-section-bg)!important}
body[data-sib-details-layout="journey"] .wedding-details-section[data-background-mode="solid"] .wd-journey-bg,
body[data-sib-details-layout="journey"] .wedding-details-section[data-background-mode="gradient"] .wd-journey-bg{display:none!important}
body[data-sib-details-layout="journey"] .wedding-details-section[data-background-mode="solid"] .wd-journey-shell,
body[data-sib-details-layout="journey"] .wedding-details-section[data-background-mode="gradient"] .wd-journey-shell{background:var(--wd-section-bg)!important}
body[data-sib-details-layout="journey"] .wedding-details-section[data-background-mode="solid"] .wd-journey-veil,
body[data-sib-details-layout="journey"] .wedding-details-section[data-background-mode="gradient"] .wd-journey-veil{background:linear-gradient(180deg,rgba(8,10,12,.12),rgba(8,10,12,.42) 78%,rgba(8,10,12,.54))!important}

/* ================================================================
   M49 — STORY → WEDDING PARTY CONTINUITY
   ================================================================ */
body.sib-public > .story-section{margin-bottom:0!important}
body.sib-public > .story-section + .wedding-party-section{margin-top:0!important;border-top:0!important}
.wedding-party-section{position:relative;overflow:hidden;padding:0!important;margin:0!important}

/* ================================================================
   M49 — WEDDING PARTY FOUR DESIGN SYSTEMS
   ================================================================ */
.party-design{display:none}
body[data-sib-people-layout="gallery"] .party-gallery-design{display:block}
body[data-sib-people-layout="carousel"] .party-carousel-design{display:block}
body[data-sib-people-layout="roster"] .party-roster-design{display:block}
body[data-sib-people-layout="strip"] .party-strip-design{display:block}
.party-section-shell{padding:clamp(68px,8vh,104px) 24px clamp(70px,8vh,108px)}
.party-heading{color:var(--sib-section-text,var(--sib-text))}
.party-heading .eyebrow{color:var(--sib-accent)}
.party-heading h2{margin:8px 0 0!important;font-family:var(--sib-heading,Georgia,serif)!important;color:var(--sib-section-text,var(--sib-text))}
.party-heading p{color:var(--sib-section-muted,color-mix(in srgb,var(--sib-text) 68%,transparent))!important}
.party-photo-frame{display:grid;place-items:center;overflow:hidden;background:color-mix(in srgb,var(--sib-primary) 14%,var(--sib-secondary))}
.party-photo-frame img{width:100%;height:100%;object-fit:cover;display:block}
.party-photo-frame>i{font-family:var(--sib-heading,Georgia,serif);font-style:normal;font-size:clamp(44px,5vw,76px);color:var(--sib-section-text,var(--sib-text))}
body[data-sib-people-shape="soft"] .party-photo-frame{border-radius:22px}
body[data-sib-people-shape="round"] :is(.party-gallery-photo,.party-roster-photo){border-radius:50%;aspect-ratio:1!important}
body[data-sib-people-shape="square"] .party-photo-frame{border-radius:2px}
body.sib-people-hide-roles .party-design small{display:none!important}

/* 1 — Portrait Gallery */
.party-heading-gallery{max-width:760px;margin-bottom:clamp(28px,4vw,46px)}
.party-heading-gallery h2{font-size:clamp(48px,6vw,82px);line-height:.94}
.party-heading-gallery p{margin:12px 0 0;font-size:15px}
.party-gallery-grid{display:grid;grid-template-columns:repeat(var(--party-cols,4),minmax(0,1fr));gap:clamp(12px,1.7vw,22px)}
.party-gallery-card{appearance:none;width:100%;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.party-gallery-photo{width:100%;aspect-ratio:4/5;max-height:300px;border:1px solid color-mix(in srgb,var(--sib-section-text) 13%,transparent);box-shadow:0 16px 38px color-mix(in srgb,#000 14%,transparent);transition:transform .38s cubic-bezier(.2,.8,.2,1),box-shadow .38s ease}
.party-gallery-card:hover .party-gallery-photo,.party-gallery-card:focus-visible .party-gallery-photo{transform:translateY(-5px);box-shadow:0 24px 52px color-mix(in srgb,#000 20%,transparent)}
.party-gallery-copy{display:grid;gap:3px;padding:13px 3px 0}
.party-gallery-copy small{color:var(--sib-accent);font-size:8px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.party-gallery-copy strong{font-family:var(--sib-heading,Georgia,serif);color:var(--sib-section-text,var(--sib-text));font-size:clamp(18px,1.8vw,25px);line-height:1.05}
.party-gallery-copy em{margin-top:3px;color:var(--sib-section-muted);font:700 8px/1 var(--sib-body,Arial,sans-serif);font-style:normal;letter-spacing:.08em;text-transform:uppercase;opacity:.72}

/* 2 — Signature Carousel */
.party-heading-carousel{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:32px}
.party-heading-carousel h2{font-size:clamp(50px,6.2vw,86px);line-height:.92}
.party-carousel-controls{display:flex;gap:8px;padding-bottom:5px}
.party-carousel-controls button{width:46px;height:46px;border-radius:50%;border:1px solid color-mix(in srgb,var(--sib-section-text) 22%,transparent);background:color-mix(in srgb,var(--sib-section-text) 6%,transparent);color:var(--sib-section-text);cursor:pointer;font-size:20px}
.party-carousel-viewport{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain;padding:22px 8% 28px;margin-inline:-24px}
.party-carousel-viewport::-webkit-scrollbar{display:none}
.party-carousel-track{display:flex;align-items:center;gap:clamp(16px,2.2vw,28px);width:max-content}
.party-carousel-card{appearance:none;flex:0 0 clamp(230px,27vw,340px);scroll-snap-align:center;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;opacity:.72;transform:scale(.92);transition:transform .48s cubic-bezier(.2,.8,.2,1),opacity .42s ease}
.party-carousel-card.is-active{opacity:1;transform:scale(1)}
.party-carousel-photo{aspect-ratio:4/5;height:min(43vh,390px);width:100%;border:1px solid color-mix(in srgb,var(--sib-section-text) 14%,transparent);box-shadow:0 26px 65px color-mix(in srgb,#000 22%,transparent)}
.party-carousel-copy{display:grid;gap:5px;padding:15px 5px 0}
.party-carousel-copy small{color:var(--sib-accent);font-size:8px;font-weight:900;letter-spacing:.17em;text-transform:uppercase}
.party-carousel-copy strong{color:var(--sib-section-text);font:600 clamp(24px,2.4vw,36px)/1 var(--sib-heading,Georgia,serif)}
.party-carousel-copy p{max-width:34ch;margin:4px 0 0!important;color:var(--sib-section-muted)!important;font-size:11px!important;line-height:1.5!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.party-carousel-progress{width:min(420px,70%);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;margin:10px auto 0;color:var(--sib-section-muted);font:800 9px/1 var(--sib-body,Arial,sans-serif);letter-spacing:.12em}
.party-carousel-progress i{height:1px;background:linear-gradient(90deg,var(--sib-accent),color-mix(in srgb,var(--sib-section-text) 18%,transparent))}

/* 3 — Editorial Roster */
.party-heading-roster{display:grid;grid-template-columns:minmax(0,.32fr) minmax(0,.68fr);gap:30px;align-items:end;padding-bottom:28px;border-bottom:1px solid color-mix(in srgb,var(--sib-section-text) 18%,transparent)}
.party-heading-roster h2{font-size:clamp(56px,7.2vw,96px);line-height:.88;max-width:8ch}
.party-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(30px,5vw,70px)}
.party-roster-card{appearance:none;display:grid;grid-template-columns:108px minmax(0,1fr);gap:18px;align-items:center;min-width:0;padding:22px 0;border:0;border-bottom:1px solid color-mix(in srgb,var(--sib-section-text) 16%,transparent);background:transparent;color:inherit;text-align:left;cursor:pointer}
.party-roster-photo{width:108px;aspect-ratio:4/5;border:1px solid color-mix(in srgb,var(--sib-section-text) 12%,transparent)}
.party-roster-copy{display:grid;gap:8px}.party-roster-copy>span{display:grid;gap:4px}
.party-roster-copy small{color:var(--sib-accent);font-size:8px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.party-roster-copy strong{color:var(--sib-section-text);font:600 clamp(22px,2.2vw,32px)/1 var(--sib-heading,Georgia,serif)}
.party-roster-copy p{margin:0!important;color:var(--sib-section-muted)!important;font-size:11px!important;line-height:1.48!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.party-roster-copy em{color:var(--sib-section-muted);font-size:9px;font-style:normal}

/* 4 — Celebration Strip */
.party-strip-design{padding:clamp(68px,8vh,104px) 0 clamp(70px,8vh,108px)}
.party-heading-strip{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}
.party-heading-strip h2{font-size:clamp(52px,6.4vw,88px);line-height:.9}
.party-heading-strip p{max-width:260px;margin:0!important;text-align:right;font-size:12px!important}
.party-strip-viewport{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:none;overscroll-behavior-inline:contain;padding:0 max(24px,calc((100vw - var(--sib-max))/2))}
.party-strip-viewport::-webkit-scrollbar{display:none}
.party-strip-track{display:flex;gap:10px;width:max-content}
.party-strip-card{appearance:none;position:relative;flex:0 0 max(190px,calc((min(100vw,var(--sib-max)) - 44px) / var(--party-strip-visible,5)));height:clamp(260px,36vw,390px);scroll-snap-align:start;padding:0;border:0;background:transparent;color:white;cursor:pointer;overflow:hidden}
.party-strip-photo{position:absolute;inset:0;width:100%;height:100%;border-radius:0!important}
.party-strip-card:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(0deg,rgba(7,8,11,.88),transparent);pointer-events:none}
.party-strip-overlay{position:absolute;z-index:2;left:16px;right:16px;bottom:16px;display:grid;gap:4px;text-align:left}
.party-strip-overlay small{color:#f0cf77;font-size:8px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.party-strip-overlay strong{color:#fff;font:600 clamp(19px,2vw,28px)/1 var(--sib-heading,Georgia,serif)}

.wedding-party-section[data-party-count="1"] :is(.party-gallery-grid,.party-roster-grid){max-width:440px}
.wedding-party-section[data-party-count="2"] .party-gallery-grid{max-width:660px}
.wedding-party-section[data-party-count="3"] .party-gallery-grid{max-width:880px}
.wedding-party-section[data-party-count="4"] .party-gallery-grid{max-width:1080px}
.wedding-party-section[data-party-count="1"] :is(.party-gallery-grid,.party-roster-grid),.wedding-party-section[data-party-count="2"] .party-gallery-grid,.wedding-party-section[data-party-count="3"] .party-gallery-grid,.wedding-party-section[data-party-count="4"] .party-gallery-grid{margin-inline:auto}

/* Profile */
body.sib-party-modal-open{overflow:hidden}
body.sib-party-modal-open .wedding-party-section{overflow:visible!important}
.party-profile-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .22s ease}
.party-profile-modal.is-open{opacity:1;pointer-events:auto}.party-profile-modal[hidden]{display:none!important}
.party-profile-backdrop{position:absolute;inset:0;background:rgba(8,9,13,.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.party-profile-dialog{position:relative;z-index:2;width:min(920px,100%);max-height:min(760px,calc(100svh - 48px));display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);overflow:hidden;border:1px solid color-mix(in srgb,var(--sib-accent) 38%,transparent);border-radius:30px;background:var(--sib-secondary);color:var(--sib-text);box-shadow:0 40px 120px rgba(0,0,0,.42);transform:scale(.975);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.party-profile-modal.is-open .party-profile-dialog{transform:scale(1)}
.party-profile-photo{min-height:480px;background:linear-gradient(145deg,var(--sib-primary),var(--sib-secondary));background-size:cover;background-position:center;display:grid;place-items:center}.party-profile-photo.has-photo>span{display:none}.party-profile-photo>span{color:#fff;font:500 110px/1 var(--sib-heading,Georgia,serif)}
.party-profile-copy{overflow:auto;padding:clamp(40px,6vw,72px)}.party-profile-copy .eyebrow{color:var(--sib-accent)}.party-profile-copy h3{margin:10px 0 22px;color:var(--sib-text);font:600 clamp(44px,5vw,70px)/.94 var(--sib-heading,Georgia,serif)}.party-profile-copy p{margin:0!important;color:color-mix(in srgb,var(--sib-text) 70%,transparent)!important;font-size:15px!important;line-height:1.75!important;white-space:pre-line}
.party-profile-nav{display:flex;gap:8px;margin-top:32px}.party-profile-nav button,.party-profile-close{border:1px solid color-mix(in srgb,var(--sib-text) 18%,transparent);background:transparent;color:var(--sib-text);cursor:pointer}.party-profile-nav button{min-height:40px;padding:10px 14px;border-radius:999px;font:800 9px/1 var(--sib-body,Arial,sans-serif)}.party-profile-close{position:absolute;z-index:3;right:16px;top:16px;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--sib-secondary) 82%,transparent);font-size:24px}

@media(max-width:980px){
 .party-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .party-roster-grid{grid-template-columns:1fr 1fr;column-gap:24px}.party-roster-card{grid-template-columns:86px 1fr}.party-roster-photo{width:86px}
 .party-carousel-card{flex-basis:clamp(220px,38vw,310px)}
}
@media(max-width:760px){
 .party-section-shell{padding:62px 18px 68px}.party-strip-design{padding:62px 0 68px}.party-strip-heading-wrap{padding-inline:18px}
 .party-heading-gallery,.party-heading-carousel,.party-heading-roster,.party-heading-strip{margin-bottom:26px}.party-heading h2{font-size:clamp(46px,13vw,70px)!important}
 .party-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.party-gallery-photo{max-height:none}.party-gallery-copy{padding-top:10px}.party-gallery-copy strong{font-size:20px}
 .party-heading-carousel{align-items:center}.party-carousel-controls button{width:40px;height:40px}.party-carousel-viewport{margin-inline:-18px;padding:16px 11% 24px}.party-carousel-card{flex-basis:min(72vw,285px);transform:scale(.94)}.party-carousel-card.is-active{transform:scale(1)}.party-carousel-photo{height:auto;aspect-ratio:4/5}
 .party-heading-roster{grid-template-columns:1fr;gap:8px;padding-bottom:20px}.party-roster-grid{grid-template-columns:1fr}.party-roster-card{grid-template-columns:78px 1fr;gap:14px;padding:16px 0}.party-roster-photo{width:78px}.party-roster-copy p{-webkit-line-clamp:2}
 .party-heading-strip{align-items:flex-start}.party-heading-strip p{display:none}.party-strip-viewport{padding-inline:18px}.party-strip-card{flex-basis:min(62vw,245px);height:min(86vw,330px)}
 .party-profile-modal{padding:12px}.party-profile-dialog{max-height:calc(100svh - 24px);grid-template-columns:1fr;grid-template-rows:min(43svh,380px) minmax(0,1fr);border-radius:24px}.party-profile-photo{min-height:0}.party-profile-copy{padding:28px 24px 30px}.party-profile-copy h3{font-size:clamp(40px,12vw,58px)}
}
.wedding-party-section[data-background-mode="solid"],.wedding-party-section[data-background-mode="gradient"]{background:var(--sib-section-bg)!important;color:var(--sib-section-text)!important}
.wedding-party-section[data-background-mode="solid"] :is(.party-heading h2,.party-gallery-copy strong,.party-carousel-copy strong,.party-roster-copy strong),.wedding-party-section[data-background-mode="gradient"] :is(.party-heading h2,.party-gallery-copy strong,.party-carousel-copy strong,.party-roster-copy strong){color:var(--sib-section-text)!important}

/* ================================================================
   M49.1 — TRUE STORY → WEDDING PARTY CONTINUITY
   The older M45.2 selector has higher specificity and was still injecting
   external section padding. These two custom sections own their spacing
   internally, so remove that outside padding completely.
   ================================================================ */
body.sib-public > section.section.story-section,
body.sib-public > section.section.wedding-party-section{
  margin:0!important;
  padding:0!important;
}
body.sib-public > section.section.story-section + section.section.wedding-party-section{
  margin-top:0!important;
  border-top:0!important;
}
body.sib-public > section.section.wedding-party-section[data-background-mode="solid"],
body.sib-public > section.section.wedding-party-section[data-background-mode="gradient"]{
  background:var(--sib-section-bg)!important;
}

/* ================================================================
   M49.1 — CELEBRATION STRIP DESKTOP CONTROLS
   ================================================================ */
.party-strip-desktop-tools{
  display:flex;
  align-items:flex-end;
  gap:18px;
}
.party-strip-desktop-tools>p{
  max-width:250px!important;
  margin:0!important;
  text-align:right!important;
  font-size:11px!important;
  line-height:1.45!important;
}
.party-strip-controls{
  display:flex;
  gap:8px;
  flex:none;
}
.party-strip-controls button{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--sib-section-text) 25%,transparent);
  background:color-mix(in srgb,var(--sib-section-text) 7%,transparent);
  color:var(--sib-section-text);
  font-size:20px;
  cursor:pointer;
  transition:transform .18s ease,background .18s ease,opacity .18s ease;
}
.party-strip-controls button:hover:not(:disabled){
  transform:translateY(-2px);
  background:color-mix(in srgb,var(--sib-section-text) 13%,transparent);
}
.party-strip-controls button:disabled{
  opacity:.28;
  cursor:default;
}
.party-strip-viewport[data-party-strip]{
  cursor:grab;
  user-select:none;
}
.party-strip-viewport[data-party-strip].is-dragging{
  cursor:grabbing;
  scroll-snap-type:none!important;
}
.party-strip-viewport[data-party-strip].is-dragging *{
  pointer-events:none;
}
@media(max-width:760px){
  .party-strip-desktop-tools>p,
  .party-strip-controls{display:none!important}
  .party-strip-viewport[data-party-strip]{cursor:auto;user-select:auto}
}

/* ================================================================
   M50 — REMOVE CAROUSEL NUMBER / RULE PROGRESS
   ================================================================ */
.party-carousel-progress{display:none!important}

/* ================================================================
   M50 — WEDDING PARTY LIGHTBOX DESIGN SYSTEMS
   ================================================================ */
.party-profile-modal{--party-lightbox-text:var(--sib-text);--party-lightbox-muted:color-mix(in srgb,var(--sib-text) 70%,transparent)}
.party-profile-decoration{display:none}
.party-profile-modal[data-background-mode="solid"] .party-profile-dialog,
.party-profile-modal[data-background-mode="gradient"] .party-profile-dialog{background:var(--party-lightbox-bg)!important;color:var(--party-lightbox-text)!important}
.party-profile-modal[data-background-mode="solid"] .party-profile-copy h3,
.party-profile-modal[data-background-mode="gradient"] .party-profile-copy h3,
.party-profile-modal[data-background-mode="solid"] .party-profile-copy .eyebrow,
.party-profile-modal[data-background-mode="gradient"] .party-profile-copy .eyebrow,
.party-profile-modal[data-background-mode="solid"] .party-profile-nav button,
.party-profile-modal[data-background-mode="gradient"] .party-profile-nav button,
.party-profile-modal[data-background-mode="solid"] .party-profile-close,
.party-profile-modal[data-background-mode="gradient"] .party-profile-close{color:var(--party-lightbox-text)!important}
.party-profile-modal[data-background-mode="solid"] .party-profile-copy p,
.party-profile-modal[data-background-mode="gradient"] .party-profile-copy p{color:var(--party-lightbox-muted)!important}
.party-profile-modal[data-background-mode="solid"] .party-profile-nav button,
.party-profile-modal[data-background-mode="gradient"] .party-profile-nav button,
.party-profile-modal[data-background-mode="solid"] .party-profile-close,
.party-profile-modal[data-background-mode="gradient"] .party-profile-close{border-color:color-mix(in srgb,var(--party-lightbox-text) 24%,transparent)!important}

/* Split Portrait */
body[data-sib-people-lightbox-layout="split"] .party-profile-dialog{grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);background:var(--sib-secondary)}
body[data-sib-people-lightbox-layout="split"] .party-profile-photo{min-height:480px}
body[data-sib-people-lightbox-layout="split"] .party-profile-copy{align-self:center}

/* Full Photo */
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-dialog{min-height:min(760px,calc(100svh - 48px));display:block;background:#11131a}
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-photo{position:absolute;inset:0;width:100%;min-height:0;background-position:center 28%}
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,8,11,.18) 0%,rgba(7,8,11,.28) 38%,rgba(7,8,11,.88) 100%)}
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-copy{position:relative;z-index:2;width:min(48%,460px);min-height:min(760px,calc(100svh - 48px));margin-left:auto;display:flex;flex-direction:column;justify-content:center;overflow:auto;color:#fff;background:linear-gradient(90deg,transparent,rgba(8,9,13,.52) 18%,rgba(8,9,13,.84))}
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-copy h3,
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-copy .eyebrow,
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-nav button,
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-close{color:#fff}
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-copy p{color:rgba(255,255,255,.76)!important}
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-modal[data-background-mode="solid"] .party-profile-copy,
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-modal[data-background-mode="gradient"] .party-profile-copy{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--party-lightbox-bg) 76%,transparent) 18%,var(--party-lightbox-bg))}

/* Keepsake */
body[data-sib-people-lightbox-layout="keepsake"] .party-profile-dialog{grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);padding:36px;gap:34px;background:#f6eee5;color:#221c19}
body[data-sib-people-lightbox-layout="keepsake"] .party-profile-photo{min-height:430px;border:12px solid #fff;border-bottom-width:46px;border-radius:5px;transform:rotate(-2.4deg);box-shadow:0 22px 55px rgba(39,28,22,.24)}
body[data-sib-people-lightbox-layout="keepsake"] .party-profile-decoration{display:block;position:absolute;left:32px;top:30px;width:120px;height:120px;border:1px solid color-mix(in srgb,var(--sib-accent) 44%,transparent);border-radius:50%}
body[data-sib-people-lightbox-layout="keepsake"] .party-profile-copy{padding:40px 34px 40px 4px;align-self:center;color:inherit}
body[data-sib-people-lightbox-layout="keepsake"] .party-profile-copy h3{color:inherit}
body[data-sib-people-lightbox-layout="keepsake"] .party-profile-copy p{color:color-mix(in srgb,currentColor 70%,transparent)!important}

/* Minimal */
body[data-sib-people-lightbox-layout="minimal"] .party-profile-dialog{width:min(690px,100%);grid-template-columns:1fr;justify-items:center;text-align:center;padding:54px clamp(28px,7vw,74px) 46px;background:var(--sib-secondary)}
body[data-sib-people-lightbox-layout="minimal"] .party-profile-photo{width:clamp(180px,28vw,250px);min-height:0;aspect-ratio:1;border-radius:50%;box-shadow:0 18px 48px rgba(0,0,0,.24)}
body[data-sib-people-lightbox-layout="minimal"] .party-profile-copy{width:100%;padding:28px 0 0;text-align:center}
body[data-sib-people-lightbox-layout="minimal"] .party-profile-copy h3{margin-bottom:16px}
body[data-sib-people-lightbox-layout="minimal"] .party-profile-copy p{max-width:48ch;margin-inline:auto!important}
body[data-sib-people-lightbox-layout="minimal"] .party-profile-nav{justify-content:center}
body[data-sib-people-lightbox-layout="minimal"] .party-profile-decoration{display:block;position:absolute;width:360px;height:360px;border-radius:50%;border:1px solid color-mix(in srgb,var(--sib-accent) 24%,transparent);top:-180px;right:-160px}

@media(max-width:760px){
  body[data-sib-people-lightbox-layout="split"] .party-profile-dialog,
  body[data-sib-people-lightbox-layout="keepsake"] .party-profile-dialog{grid-template-columns:1fr;grid-template-rows:min(42svh,360px) minmax(0,1fr)}
  body[data-sib-people-lightbox-layout="keepsake"] .party-profile-dialog{padding:18px;gap:0}
  body[data-sib-people-lightbox-layout="keepsake"] .party-profile-photo{min-height:0;height:100%;border-width:8px;border-bottom-width:30px;transform:rotate(-1deg)}
  body[data-sib-people-lightbox-layout="keepsake"] .party-profile-copy{padding:26px 10px 12px}
  body[data-sib-people-lightbox-layout="full_photo"] .party-profile-dialog{min-height:calc(100svh - 24px)}
  body[data-sib-people-lightbox-layout="full_photo"] .party-profile-photo:after{background:linear-gradient(180deg,rgba(7,8,11,.08) 0%,rgba(7,8,11,.2) 35%,rgba(7,8,11,.94) 80%)}
  body[data-sib-people-lightbox-layout="full_photo"] .party-profile-copy{width:100%;min-height:calc(100svh - 24px);justify-content:flex-end;padding:32px 24px 34px;background:linear-gradient(180deg,transparent 35%,rgba(8,9,13,.28) 53%,rgba(8,9,13,.92) 82%)}
  body[data-sib-people-lightbox-layout="minimal"] .party-profile-dialog{grid-template-rows:auto auto;padding:42px 24px 30px}
  body[data-sib-people-lightbox-layout="minimal"] .party-profile-photo{width:min(54vw,210px)}
}

/* ================================================================
   M50.1 — WEDDING PARTY SAFE READABILITY
   ================================================================ */
.wedding-party-section{color:var(--sib-section-text,var(--sib-text))!important}
.wedding-party-section :is(.party-heading h2,.party-gallery-copy strong,.party-carousel-copy strong,.party-roster-copy strong){
  color:var(--sib-section-text,var(--sib-text))!important
}
.wedding-party-section :is(.party-heading p,.party-gallery-copy em,.party-carousel-copy p,.party-roster-copy p,.party-roster-copy em,.party-strip-desktop-tools>p){
  color:var(--sib-section-muted)!important
}
.wedding-party-section :is(.party-heading .eyebrow,.party-gallery-copy small,.party-carousel-copy small,.party-roster-copy small){
  color:var(--sib-section-accent,var(--sib-section-text))!important
}
.wedding-party-section :is(.party-carousel-controls button,.party-strip-controls button){
  color:var(--sib-section-text)!important;
  border-color:color-mix(in srgb,var(--sib-section-text) 28%,transparent)!important
}
.wedding-party-section :is(.party-gallery-card,.party-carousel-card,.party-roster-card){
  color:var(--sib-section-text)!important
}
.party-strip-overlay strong{color:#fff!important;text-shadow:0 2px 16px rgba(0,0,0,.68)}
.party-strip-overlay small{color:#f5d57e!important;text-shadow:0 2px 12px rgba(0,0,0,.72)}

/* ================================================================
   M50.1 — PORTRAIT SHAPES IN ALL FOUR WEDDING PARTY DESIGNS
   ================================================================ */
body[data-sib-people-shape="soft"] :is(.party-gallery-photo,.party-carousel-photo,.party-roster-photo,.party-strip-photo,.party-strip-card){
  border-radius:22px!important
}
body[data-sib-people-shape="square"] :is(.party-gallery-photo,.party-carousel-photo,.party-roster-photo,.party-strip-photo,.party-strip-card){
  border-radius:2px!important
}
body[data-sib-people-shape="round"] :is(.party-gallery-photo,.party-carousel-photo,.party-roster-photo,.party-strip-photo,.party-strip-card){
  border-radius:50%!important
}
body[data-sib-people-shape="round"] :is(.party-gallery-photo,.party-carousel-photo,.party-roster-photo){
  aspect-ratio:1!important
}
body[data-sib-people-shape="round"] .party-carousel-photo{height:auto!important}
body[data-sib-people-shape="round"] .party-strip-card{height:auto!important;aspect-ratio:1!important}
body[data-sib-people-shape="round"] .party-strip-photo{inset:0!important;width:100%!important;height:100%!important}
body[data-sib-people-shape] .party-strip-card{overflow:hidden!important}

/* ================================================================
   M50.1 — LIGHTBOX ROOT STACKING
   ================================================================ */
.party-profile-modal{z-index:2147483000!important}
body.sib-party-modal-open .site-nav,
body.sib-party-modal-open .public-main-nav{z-index:20!important}

/* ================================================================
   M50.1 — DETAILS GRADIENT FINAL SPECIFICITY FIX
   ================================================================ */
body.sib-public .wedding-details-section[data-background-mode="solid"]{
  background:var(--wd-section-bg)!important
}
body.sib-public .wedding-details-section[data-background-mode="gradient"]{
  background:var(--wd-section-bg)!important;
  background-image:var(--wd-section-bg)!important
}
body.sib-public[data-sib-details-layout="classic"] .wedding-details-section[data-background-mode="gradient"] .wd-classic-main,
body.sib-public[data-sib-details-layout="classic"] .wedding-details-section[data-background-mode="gradient"] .wd-classic-shell>.wd-day-block{
  background:color-mix(in srgb,var(--sib-section-text) 7%,transparent)!important
}
body.sib-public[data-sib-details-layout="editorial"] .wedding-details-section[data-background-mode="gradient"],
body.sib-public[data-sib-details-layout="invitation"] .wedding-details-section[data-background-mode="gradient"]{
  background:var(--wd-section-bg)!important;
  background-image:var(--wd-section-bg)!important
}
body.sib-public[data-sib-details-layout="journey"] .wedding-details-section[data-background-mode="solid"] .wd-journey-bg,
body.sib-public[data-sib-details-layout="journey"] .wedding-details-section[data-background-mode="gradient"] .wd-journey-bg{
  display:none!important
}
body.sib-public[data-sib-details-layout="journey"] .wedding-details-section[data-background-mode="solid"] .wd-journey-shell,
body.sib-public[data-sib-details-layout="journey"] .wedding-details-section[data-background-mode="gradient"] .wd-journey-shell{
  background:var(--wd-section-bg)!important;
  background-image:var(--wd-section-bg)!important
}
.party-profile-modal[data-background-mode="solid"] .party-profile-copy .eyebrow,
.party-profile-modal[data-background-mode="gradient"] .party-profile-copy .eyebrow{
  color:var(--party-lightbox-accent,var(--party-lightbox-text))!important
}

/* ================================================================
   M50.2 — MOBILE PARTY LIGHTBOX PORTRAIT-SAFE LOCK
   Split Portrait, Keepsake and Minimal protect the whole uploaded portrait.
   Full Photo stays cinematic and cover-based.
   ================================================================ */
@media(max-width:760px){

  body:not([data-sib-people-lightbox-layout="full_photo"]) .party-profile-dialog{
    max-height:calc(100svh - 24px)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  body:not([data-sib-people-lightbox-layout="full_photo"]) .party-profile-dialog::-webkit-scrollbar{
    display:none;
  }
  body:not([data-sib-people-lightbox-layout="full_photo"]) .party-profile-copy{
    overflow:visible!important;
  }

  /* Split Portrait */
  body[data-sib-people-lightbox-layout="split"] .party-profile-dialog{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
  }
  body[data-sib-people-lightbox-layout="split"] .party-profile-photo{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:4/5!important;
    background-size:contain!important;
    background-repeat:no-repeat!important;
    background-position:center!important;
    background-color:var(--sib-secondary)!important;
  }

  /* Keepsake */
  body[data-sib-people-lightbox-layout="keepsake"] .party-profile-dialog{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
  }
  body[data-sib-people-lightbox-layout="keepsake"] .party-profile-photo{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:4/5!important;
    background-size:contain!important;
    background-repeat:no-repeat!important;
    background-position:center!important;
    background-color:#fff!important;
    border-width:8px!important;
    border-bottom-width:30px!important;
    transform:rotate(-1deg)!important;
  }

  /* Minimal: on mobile, protect the portrait instead of forcing a circular crop. */
  body[data-sib-people-lightbox-layout="minimal"] .party-profile-dialog{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    padding:34px 22px 30px!important;
  }
  body[data-sib-people-lightbox-layout="minimal"] .party-profile-photo{
    width:min(82vw,320px)!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:4/5!important;
    border-radius:22px!important;
    background-size:contain!important;
    background-repeat:no-repeat!important;
    background-position:center!important;
    background-color:var(--sib-secondary)!important;
  }

  /* Keep the close control reachable as the card scrolls. */
  body:not([data-sib-people-lightbox-layout="full_photo"]) .party-profile-close{
    position:sticky!important;
    float:right;
    top:12px!important;
    margin-bottom:-42px;
    margin-right:12px;
    z-index:8!important;
  }

  /* Theme-default lightboxes must keep navigation readable too. */
  body:not([data-sib-people-lightbox-layout="full_photo"]) .party-profile-nav button{
    color:var(--party-lightbox-text,var(--sib-text))!important;
    border-color:color-mix(in srgb,var(--party-lightbox-text,var(--sib-text)) 28%,transparent)!important;
    background:color-mix(in srgb,var(--party-lightbox-text,var(--sib-text)) 4%,transparent)!important;
  }
  body:not([data-sib-people-lightbox-layout="full_photo"]) .party-profile-copy h3{
    color:var(--party-lightbox-text,var(--sib-text))!important;
  }
  body:not([data-sib-people-lightbox-layout="full_photo"]) .party-profile-copy p{
    color:var(--party-lightbox-muted)!important;
  }
  body:not([data-sib-people-lightbox-layout="full_photo"]) .party-profile-copy .eyebrow{
    color:var(--party-lightbox-accent,var(--party-lightbox-text,var(--sib-text)))!important;
  }
}

/* Full Photo is explicitly protected from the portrait-safe change. */
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-photo{
  background-size:cover!important;
}

/* ================================================================
   M50.3 — LIGHTBOX READABILITY PROTECTION — FINAL LOCK
   ================================================================ */
.party-profile-modal:not([hidden]) .party-profile-dialog{
  color:var(--party-lightbox-text,var(--sib-text))!important;
}
.party-profile-modal:not([hidden]) .party-profile-copy h3{
  color:var(--party-lightbox-text,var(--sib-text))!important;
}
.party-profile-modal:not([hidden]) .party-profile-copy p{
  color:var(--party-lightbox-muted)!important;
}
.party-profile-modal:not([hidden]) .party-profile-copy .eyebrow{
  color:var(--party-lightbox-accent,var(--party-lightbox-text,var(--sib-text)))!important;
}
.party-profile-modal:not([hidden]) .party-profile-nav button{
  color:var(--party-lightbox-text,var(--sib-text))!important;
  border-color:color-mix(in srgb,var(--party-lightbox-text,var(--sib-text)) 30%,transparent)!important;
  background:color-mix(in srgb,var(--party-lightbox-text,var(--sib-text)) 5%,transparent)!important;
}
.party-profile-modal:not([hidden]) .party-profile-close{
  color:var(--party-lightbox-text,var(--sib-text))!important;
  border-color:color-mix(in srgb,var(--party-lightbox-text,var(--sib-text)) 32%,transparent)!important;
  background:color-mix(in srgb,var(--party-lightbox-text,var(--sib-text)) 8%,transparent)!important;
}

/* Full Photo is deliberately cinematic: its dark veil guarantees light copy. */
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-copy h3,
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-copy .eyebrow,
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-nav button,
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-close{
  color:#fffaf4!important;
}
body[data-sib-people-lightbox-layout="full_photo"] .party-profile-copy p{
  color:rgba(255,250,244,.82)!important;
}

/* ================================================================
   M51 — QUESTIONS / FAQ FLAGSHIP SECTION
   ================================================================ */
body.sib-public > section.section.questions-section{margin:0!important;padding:0!important;background:var(--sib-section-bg)!important;color:var(--sib-section-text)!important}
.questions-section .faq-shell{padding-block:clamp(68px,7vw,108px)}
.questions-section .faq-heading{margin-bottom:clamp(28px,4vw,52px)}
.questions-section .faq-heading .eyebrow{color:var(--sib-section-accent,var(--sib-section-text))!important}
.questions-section .faq-heading h2{color:var(--sib-section-text)!important;font-family:var(--sib-heading);font-size:clamp(48px,7vw,92px);line-height:.95;margin:8px 0 0}
.questions-section .faq-list{max-width:none!important}.questions-section .faq-item{color:var(--sib-section-text)}
.questions-section .faq-question-toggle{appearance:none;width:100%;border:0;padding:0;margin:0;background:none;color:inherit;text-align:left;cursor:pointer;font:inherit}
.faq-question-copy{display:grid;gap:5px}.faq-question-copy small{color:var(--sib-section-accent,var(--sib-section-text));font-size:9px;text-transform:uppercase;letter-spacing:.16em;font-weight:850}.faq-question-copy strong{color:var(--sib-section-text);font-family:var(--sib-heading);font-weight:650}
.faq-question-toggle>i{width:38px;height:38px;display:grid;place-items:center;flex:none;border:1px solid color-mix(in srgb,var(--sib-section-text) 24%,transparent);border-radius:50%;font-style:normal;font-size:20px;transition:transform .42s cubic-bezier(.2,.75,.25,1),background .25s ease}
.faq-item.is-open .faq-question-toggle>i{transform:rotate(45deg)}
.faq-answer-shell{max-height:0;overflow:hidden;transition:max-height .62s cubic-bezier(.2,.72,.2,1)}
.faq-answer{padding-top:4px;color:var(--sib-section-muted);font-size:15px;line-height:1.72}.faq-answer p{margin:0;max-width:70ch;color:inherit}
.faq-action{display:inline-flex;align-items:center;gap:9px;margin-top:18px;padding:11px 16px;border:1px solid color-mix(in srgb,var(--sib-section-text) 24%,transparent);border-radius:999px;text-decoration:none;color:var(--sib-section-text);font-size:10px;font-weight:850;letter-spacing:.04em;transition:transform .2s ease,background .2s ease}
.faq-action:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--sib-section-text) 7%,transparent)}

/* Classic Accordion */
body[data-sib-questions-layout="accordion"] .questions-section .faq-shell{max-width:min(1180px,calc(100% - 64px))}
body[data-sib-questions-layout="accordion"] .faq-heading{max-width:720px}
body[data-sib-questions-layout="accordion"] .faq-item{border-top:1px solid color-mix(in srgb,var(--sib-section-text) 18%,transparent)}
body[data-sib-questions-layout="accordion"] .faq-item:last-child{border-bottom:1px solid color-mix(in srgb,var(--sib-section-text) 18%,transparent)}
body[data-sib-questions-layout="accordion"] .faq-question-toggle{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0}
body[data-sib-questions-layout="accordion"] .faq-question-copy strong{font-size:clamp(24px,3vw,38px)}
body[data-sib-questions-layout="accordion"] .faq-answer{padding:0 56px 28px 0}

/* Answer Cards */
body[data-sib-questions-layout="cards"] .questions-section .faq-shell{max-width:min(1320px,calc(100% - 64px))}
body[data-sib-questions-layout="cards"] .faq-heading{text-align:center;max-width:760px;margin-inline:auto}
body[data-sib-questions-layout="cards"] .faq-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
body[data-sib-questions-layout="cards"] .faq-item{border:1px solid color-mix(in srgb,var(--sib-section-text) 16%,transparent);border-radius:24px;background:color-mix(in srgb,var(--sib-section-text) 5%,transparent);padding:0 22px;transition:background .28s ease}
body[data-sib-questions-layout="cards"] .faq-item.is-open{background:color-mix(in srgb,var(--sib-section-text) 8%,transparent)}
body[data-sib-questions-layout="cards"] .faq-question-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 0}
body[data-sib-questions-layout="cards"] .faq-question-copy strong{font-size:clamp(22px,2.2vw,31px)}
body[data-sib-questions-layout="cards"] .faq-answer{padding:0 0 24px}

/* Side Guide */
body[data-sib-questions-layout="side_guide"] .questions-section .faq-shell{max-width:min(1320px,calc(100% - 64px));display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:clamp(54px,8vw,130px);align-items:start}
body[data-sib-questions-layout="side_guide"] .faq-heading{position:sticky;top:130px;margin:0}
body[data-sib-questions-layout="side_guide"] .faq-heading h2{font-size:clamp(58px,8vw,110px)}
body[data-sib-questions-layout="side_guide"] .faq-item{border-bottom:1px solid color-mix(in srgb,var(--sib-section-text) 17%,transparent)}
body[data-sib-questions-layout="side_guide"] .faq-item:first-child{border-top:1px solid color-mix(in srgb,var(--sib-section-text) 17%,transparent)}
body[data-sib-questions-layout="side_guide"] .faq-question-toggle{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 0}
body[data-sib-questions-layout="side_guide"] .faq-question-copy strong{font-size:clamp(23px,2.4vw,34px)}
body[data-sib-questions-layout="side_guide"] .faq-answer{padding:0 54px 26px 0}

/* Quick Guide */
body[data-sib-questions-layout="quick_guide"] .questions-section .faq-shell{max-width:min(1320px,calc(100% - 64px))}
body[data-sib-questions-layout="quick_guide"] .faq-heading{max-width:760px}
.faq-quick-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.faq-category-group{border:1px solid color-mix(in srgb,var(--sib-section-text) 15%,transparent);border-radius:26px;padding:24px 26px;background:color-mix(in srgb,var(--sib-section-text) 4%,transparent)}
.faq-category-group>h3{margin:0 0 12px;color:var(--sib-section-accent,var(--sib-section-text));font:850 10px/1 var(--sib-body);text-transform:uppercase;letter-spacing:.18em}
.faq-category-group .faq-item{border-top:1px solid color-mix(in srgb,var(--sib-section-text) 13%,transparent)}
.faq-category-group .faq-question-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0}
.faq-category-group .faq-question-toggle>span{color:var(--sib-section-text);font-family:var(--sib-heading);font-size:clamp(20px,2vw,28px);font-weight:650}
.faq-category-group .faq-answer{padding:0 44px 20px 0}

body.sib-public .questions-section[data-background-mode="solid"],
body.sib-public .questions-section[data-background-mode="gradient"]{background:var(--sib-section-bg)!important;background-image:var(--sib-section-bg)!important}
.questions-section :is(.faq-heading h2,.faq-question-toggle,.faq-question-copy strong,.faq-category-group .faq-question-toggle>span){color:var(--sib-section-text)!important}
.questions-section :is(.faq-answer,.faq-answer p){color:var(--sib-section-muted)!important}
.questions-section :is(.faq-heading .eyebrow,.faq-question-copy small,.faq-category-group>h3){color:var(--sib-section-accent,var(--sib-section-text))!important}

@media(max-width:900px){
 body[data-sib-questions-layout="side_guide"] .questions-section .faq-shell{grid-template-columns:1fr;gap:30px}
 body[data-sib-questions-layout="side_guide"] .faq-heading{position:static}
}
@media(max-width:760px){
 .questions-section .faq-shell{max-width:none!important;width:100%!important;padding:62px 22px 70px!important}
 .questions-section .faq-heading{margin-bottom:28px!important}.questions-section .faq-heading h2{font-size:clamp(46px,15vw,68px)!important}
 body[data-sib-questions-layout="cards"] .faq-list,.faq-quick-groups{grid-template-columns:1fr!important}
 body[data-sib-questions-layout="accordion"] .faq-answer,body[data-sib-questions-layout="side_guide"] .faq-answer,.faq-category-group .faq-answer{padding-right:0}
 .faq-category-group{padding:20px}.faq-question-toggle>i{width:34px;height:34px}
}
@media(prefers-reduced-motion:reduce){.faq-answer-shell,.faq-question-toggle>i,.faq-action{transition:none!important}}

/* M51.1 renderer stabilization — live FAQ design/category switching. */
.faq-grouped-view{display:none}
body[data-sib-questions-layout="quick_guide"][data-sib-questions-categories="1"] .questions-section[data-has-categories="1"] .faq-standard-view{display:none}
body[data-sib-questions-layout="quick_guide"][data-sib-questions-categories="1"] .questions-section[data-has-categories="1"] .faq-grouped-view{display:block}
body[data-sib-questions-categories="0"] .questions-section [data-faq-category]{display:none!important}

/* When Quick Guide has no categories, it gracefully uses the standard list
   rather than creating a lonely fake category. */
body[data-sib-questions-layout="quick_guide"] .faq-standard-view .faq-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
body[data-sib-questions-layout="quick_guide"] .faq-standard-view .faq-item{
  border:1px solid color-mix(in srgb,var(--sib-section-text) 15%,transparent);
  border-radius:24px;
  padding:0 22px;
  background:color-mix(in srgb,var(--sib-section-text) 4%,transparent);
}
body[data-sib-questions-layout="quick_guide"] .faq-standard-view .faq-question-toggle{
  display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 0;
}
body[data-sib-questions-layout="quick_guide"] .faq-standard-view .faq-answer{padding:0 0 22px}

@media(max-width:760px){
 body[data-sib-questions-layout="quick_guide"] .faq-standard-view .faq-list{grid-template-columns:1fr}
}

/* ================================================================
   M51.1 — FAQ TWO COLUMN + PUBLIC INTERACTION STABILIZATION
   ================================================================ */
body[data-sib-questions-layout="columns"] .questions-section .faq-shell{
  max-width:min(1320px,calc(100% - 64px));
}
body[data-sib-questions-layout="columns"] .faq-heading{
  max-width:780px;
  margin-inline:auto;
  text-align:center;
}
body[data-sib-questions-layout="columns"] .faq-standard-view>.faq-list{
  columns:2;
  column-gap:clamp(32px,5vw,76px);
}
body[data-sib-questions-layout="columns"] .faq-standard-view .faq-item{
  display:inline-block;
  width:100%;
  break-inside:avoid;
  border-top:1px solid color-mix(in srgb,var(--sib-section-text) 18%,transparent);
}
body[data-sib-questions-layout="columns"] .faq-standard-view .faq-question-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:22px 0;
}
body[data-sib-questions-layout="columns"] .faq-standard-view .faq-question-copy strong{
  font-size:clamp(22px,2.2vw,32px);
}
body[data-sib-questions-layout="columns"] .faq-standard-view .faq-answer{
  padding:0 44px 25px 0;
}
.questions-section .faq-answer-shell{
  max-height:0;
  overflow:hidden;
  will-change:max-height;
  transition:max-height .68s cubic-bezier(.22,.72,.18,1);
}
.questions-section .faq-item.is-open .faq-question-toggle>i{
  transform:rotate(45deg);
}
@media(max-width:760px){
  body[data-sib-questions-layout="columns"] .faq-standard-view>.faq-list{columns:1}
  body[data-sib-questions-layout="columns"] .faq-standard-view .faq-answer{padding-right:0}
}

/* M52 — Curated Gallery, guest sharing and public Live Gallery */
.public-curated-gallery .section-heading{margin-bottom:34px}.public-gallery-preview{align-items:stretch}.public-gallery-tile{appearance:none;border:0;padding:0;margin:0;background:transparent;position:relative;overflow:hidden;border-radius:var(--sib-radius,var(--radius));cursor:zoom-in;min-width:0}.public-gallery-tile img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;transition:transform .45s cubic-bezier(.2,.7,.2,1)}.public-gallery-tile:hover img{transform:scale(1.025)}.public-gallery-tile>span{position:absolute;left:12px;right:12px;bottom:12px;padding:8px 10px;border-radius:12px;background:#101218b8;color:#fff;text-align:left;font-size:12px;line-height:1.35;backdrop-filter:blur(8px)}.gallery-grid.public-gallery-preview{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:270px 270px;gap:14px}.gallery-grid.public-gallery-preview .public-gallery-tile:first-child{grid-row:span 2}.gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(n+9){display:none}body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview{grid-template-columns:1.2fr .8fr .8fr;grid-auto-rows:220px;grid-template-rows:none}body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview .public-gallery-tile:first-child{grid-row:span 2}body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:12px}body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview .public-gallery-tile{width:min(72vw,720px);height:480px;flex:0 0 auto;scroll-snap-align:start;grid-row:auto}.public-gallery-view-all{display:flex;align-items:center;gap:9px;margin:22px auto 0;padding:12px 17px;border:1px solid color-mix(in srgb,var(--sib-section-text,currentColor) 18%,transparent);border-radius:999px;background:transparent;color:var(--sib-section-text,currentColor);font:inherit;font-weight:850;cursor:pointer}.public-gallery-view-all span{display:grid;place-items:center;min-width:25px;height:25px;border-radius:999px;background:color-mix(in srgb,var(--sib-section-text,currentColor) 10%,transparent);font-size:11px}.gallery-lightbox-open{overflow:hidden}.public-gallery-lightbox{position:fixed;z-index:9999;inset:0;background:#090a0deF;display:grid;grid-template-columns:minmax(52px,1fr) minmax(0,1200px) minmax(52px,1fr);align-items:center;padding:28px;color:#fff;backdrop-filter:blur(16px)}.public-gallery-lightbox[hidden]{display:none}.public-gallery-lightbox figure{margin:0;display:grid;justify-items:center;max-height:calc(100vh - 70px)}.public-gallery-lightbox figure img{display:block;max-width:100%;max-height:calc(100vh - 120px);object-fit:contain;border-radius:18px;box-shadow:0 24px 90px #0008}.public-gallery-lightbox figcaption{min-height:24px;margin-top:12px;color:#ddd9e4;font-size:13px;text-align:center}.public-gallery-lightbox-close{position:absolute;top:18px;right:20px;width:44px;height:44px;border-radius:50%;border:1px solid #ffffff38;background:#ffffff10;color:#fff;font-size:28px;cursor:pointer}.public-gallery-lightbox-nav{border:0;background:transparent;color:#fff;font-size:30px;cursor:pointer;opacity:.8}.public-gallery-lightbox-nav:hover{opacity:1}.public-gallery-lightbox-nav.prev{justify-self:end}.public-gallery-lightbox-nav.next{justify-self:start}
.guest-share-body{min-height:100vh;margin:0;background:radial-gradient(circle at 10% 10%,#ffe9ef,transparent 34%),radial-gradient(circle at 90% 20%,#ece8ff,transparent 36%),linear-gradient(180deg,#fffaf7,#f6f1f5);color:#151522;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.guest-share-shell{min-height:100vh;display:grid;place-items:center;padding:28px 16px}.guest-share-card{position:relative;width:min(100%,650px);border:1px solid #ffffffcc;background:#fffffff0;box-shadow:0 30px 100px #3224441c;border-radius:34px;padding:38px;overflow:hidden;text-align:center}.guest-share-card:before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:linear-gradient(135deg,#ff5d89,#735bff);filter:blur(90px);opacity:.1;right:-90px;top:-100px}.guest-share-mark{width:64px;height:64px;object-fit:contain;margin-bottom:16px}.guest-share-card .eyebrow{color:#7a7180}.guest-share-card h1{font-family:Georgia,serif;font-size:clamp(42px,8vw,70px);line-height:.95;margin:12px auto 16px;max-width:520px}.guest-share-lead{font-size:17px;line-height:1.65;color:#64606b;max-width:540px;margin:0 auto 22px}.guest-share-orbit{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;margin:20px auto 4px;background:linear-gradient(135deg,#ffeff4,#efebff);font-size:20px}.guest-share-window{display:grid;gap:4px;margin:0 auto 20px;padding:12px 15px;border-radius:15px;background:#f7f4f8;max-width:380px}.guest-share-window small{font-size:10px;letter-spacing:.12em;font-weight:850;color:#817987}.guest-share-window strong{font-size:14px}.guest-upload-form{text-align:left;margin-top:18px}.guest-honeypot{position:absolute!important;left:-9999px!important;opacity:0!important}.guest-upload-drop{display:grid;justify-items:center;border:1.5px dashed #d5cddd;background:#fbf9fc;border-radius:22px;padding:26px 18px;cursor:pointer}.guest-upload-drop>span{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#eee8f8;font-size:23px;margin-bottom:7px}.guest-upload-drop strong{font-size:16px}.guest-upload-drop small{margin:4px 0 12px;color:#827b88}.guest-upload-drop input{max-width:100%}.guest-upload-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.guest-upload-details label{font-size:12px;font-weight:800;color:#625c69}.guest-upload-details label span{font-weight:500;color:#98919d}.guest-upload-details input,.guest-upload-details textarea{display:block;width:100%;margin-top:6px;border:1px solid #dfd8e3;border-radius:13px;padding:11px 12px;background:#fff;color:#17131c;font:inherit;resize:vertical}.guest-share-primary{display:flex;justify-content:center;align-items:center;width:100%;border:0;border-radius:15px;padding:14px 18px;background:linear-gradient(90deg,#ff4f86,#765cff);color:#fff;font:inherit;font-weight:900;cursor:pointer;box-shadow:0 12px 30px #8058d32a;text-decoration:none}.guest-share-primary:disabled{opacity:.65;cursor:wait}.guest-share-primary.as-link{width:max-content;min-width:220px;margin:16px auto 0}.guest-share-secondary{display:inline-flex;gap:8px;margin-top:18px;text-decoration:none;font-weight:850;color:#5d5368}.guest-share-notice{margin:12px auto;padding:10px 12px;border-radius:13px;background:#eaf8ef;color:#24704c;font-size:13px;font-weight:750}.guest-share-notice.is-error{background:#fff0f2;color:#9a4054}.guest-share-card footer{margin-top:25px;padding-top:16px;border-top:1px solid #eee8ef;color:#97909b;font-size:11px}.guest-share-card footer strong{color:#68616f}
.guest-gallery-body{margin:0;min-height:100vh;background:#f9f6f5;color:#17151b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.guest-gallery-top{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px 22px;background:#f9f6f5e8;border-bottom:1px solid #ebe5e5;backdrop-filter:blur(16px)}.guest-gallery-top a{display:flex;align-items:center;gap:9px;text-decoration:none;font-weight:850;font-size:13px}.guest-gallery-top img{width:32px;height:32px;object-fit:contain}.guest-gallery-shell{width:min(calc(100% - 30px),1380px);margin:0 auto;padding:60px 0 90px}.guest-gallery-heading{text-align:center;margin-bottom:42px}.guest-gallery-heading h1{font-family:Georgia,serif;font-size:clamp(50px,8vw,88px);line-height:.95;margin:9px 0 10px}.guest-gallery-heading p{color:#746f78}.guest-public-grid{columns:4 250px;column-gap:12px}.guest-public-photo{appearance:none;display:block;width:100%;break-inside:avoid;margin:0 0 12px;border:0;padding:0;border-radius:16px;overflow:hidden;background:#eee;position:relative;cursor:zoom-in}.guest-public-photo img{display:block;width:100%;height:auto;transition:transform .35s ease}.guest-public-photo:hover img{transform:scale(1.018)}.guest-public-photo span{position:absolute;left:9px;bottom:9px;padding:6px 8px;border-radius:9px;background:#111b;color:#fff;font-size:10px}.guest-gallery-empty{text-align:center;max-width:560px;margin:100px auto;padding:35px;border:1px solid #e7e0e4;border-radius:26px;background:#fff}.guest-gallery-empty>span{font-size:30px}.guest-gallery-empty h2{font-family:Georgia,serif;font-size:34px;margin:12px 0 8px}.guest-gallery-empty p{color:#76717a}.guest-gallery-empty a{font-weight:850;text-decoration:none}
@media(max-width:760px){.gallery-grid.public-gallery-preview{grid-template-columns:1fr 1fr;grid-template-rows:220px 180px 180px}.gallery-grid.public-gallery-preview .public-gallery-tile:first-child{grid-column:span 2;grid-row:auto}.gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(n+7){display:none}body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview{grid-template-columns:1fr 1fr;grid-auto-rows:190px}body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview .public-gallery-tile{width:84vw;height:380px}.public-gallery-lightbox{grid-template-columns:44px minmax(0,1fr) 44px;padding:12px}.public-gallery-lightbox figure img{max-height:calc(100vh - 120px);border-radius:12px}.public-gallery-lightbox-close{top:12px;right:12px}.guest-share-card{padding:28px 18px;border-radius:26px}.guest-upload-details{grid-template-columns:1fr}.guest-gallery-shell{padding-top:38px}.guest-public-grid{columns:2 150px}.guest-gallery-top{padding:11px 13px}}
@media(min-width:761px){.public-gallery-view-all.mobile-gallery-view-all{display:none}}

/* M52.1 — Gallery scale, editorial collage, desktop filmstrip controls and front-page Live Gallery */
.gallery-section{max-width:100%}
.gallery-public-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:28px}.gallery-public-heading-row .section-heading{margin-bottom:0}.public-gallery-tabs{display:inline-flex;align-items:center;gap:5px;padding:5px;border:1px solid color-mix(in srgb,var(--sib-section-text,currentColor) 14%,transparent);background:color-mix(in srgb,var(--sib-section-bg,#fff) 82%,transparent);border-radius:999px;box-shadow:0 12px 34px #0000000b}.public-gallery-tabs button{appearance:none;border:0;background:transparent;color:var(--sib-section-muted,currentColor);padding:10px 14px;border-radius:999px;font:inherit;font-size:12px;font-weight:850;cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;transition:.2s ease}.public-gallery-tabs button.is-active{background:var(--sib-section-text,currentColor);color:var(--sib-section-bg,#fff);box-shadow:0 8px 22px #0002}.public-gallery-live-badge{display:inline-flex;align-items:center;gap:5px;font-size:9px;letter-spacing:.09em;font-weight:950}.public-gallery-live-badge i,.public-live-upload-fab small i{width:6px;height:6px;border-radius:50%;background:#36c978;box-shadow:0 0 0 0 #36c97888;animation:sibLivePulse 1.8s ease-out infinite}.public-gallery-panel[hidden]{display:none!important}
.public-filmstrip-toolbar{display:none;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px;color:var(--sib-section-muted,currentColor);font-size:11px;font-weight:700}.public-filmstrip-toolbar>div{display:flex;gap:7px}.public-filmstrip-toolbar button{width:36px;height:36px;border-radius:50%;border:1px solid color-mix(in srgb,var(--sib-section-text,currentColor) 18%,transparent);background:color-mix(in srgb,var(--sib-section-bg,#fff) 82%,transparent);color:var(--sib-section-text,currentColor);font:inherit;font-size:16px;cursor:pointer;transition:.2s ease}.public-filmstrip-toolbar button:hover{transform:translateY(-1px);background:var(--sib-section-text,currentColor);color:var(--sib-section-bg,#fff)}
.gallery-grid.public-gallery-preview{max-width:100%;min-width:0}
/* Editorial Collage replaces the old balanced grid. */
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:62px;grid-auto-flow:dense;gap:12px}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile{height:auto;grid-column:span 3;grid-row:span 3}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(8n+1){grid-column:span 5;grid-row:span 6}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(8n+2){grid-column:span 3;grid-row:span 3}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(8n+3){grid-column:span 4;grid-row:span 4}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(8n+4){grid-column:span 3;grid-row:span 3}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(8n+5){grid-column:span 4;grid-row:span 3}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(8n+6){grid-column:span 5;grid-row:span 3}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(8n+7){grid-column:span 3;grid-row:span 2}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(8n){grid-column:span 4;grid-row:span 2}
/* Mixed Sizes stays loose and image-led instead of resolving into a uniform grid. */
body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview{display:block;columns:3 250px;column-gap:12px}
body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview .public-gallery-tile{display:block;width:100%;height:auto;grid-row:auto;break-inside:avoid;margin:0 0 12px;aspect-ratio:4/5}
body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(4n+2){aspect-ratio:16/10}
body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(4n+3){aspect-ratio:1/1}
body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(4n){aspect-ratio:5/4}
/* Filmstrip: several smaller frames visible together, contained inside the section. */
body[data-sib-gallery-layout="filmstrip"] .public-filmstrip-toolbar{display:flex}
body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview{display:flex;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;gap:12px;padding:4px 2px 14px;scroll-snap-type:x proximity;overscroll-behavior-inline:contain;scrollbar-width:thin;cursor:grab;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview .public-gallery-tile{flex:0 0 auto;grid-row:auto;scroll-snap-align:start;width:clamp(195px,20vw,260px);height:clamp(230px,23vw,295px)}
body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(4n+2){width:clamp(245px,25vw,325px);height:clamp(190px,20vw,245px);align-self:center}
body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(4n+3){width:clamp(210px,22vw,275px);height:clamp(245px,24vw,305px)}
body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(4n){width:clamp(235px,24vw,310px);height:clamp(205px,21vw,260px);align-self:center}
.public-live-gallery-empty{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;border:1px solid color-mix(in srgb,var(--sib-section-text,currentColor) 12%,transparent);border-radius:24px;padding:28px;background:color-mix(in srgb,var(--sib-section-bg,#fff) 88%,transparent)}.public-live-camera{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,#ffedf3,#eeeaff);color:#6f58b6;font-size:30px;transform:rotate(-10deg)}.public-live-gallery-empty .eyebrow{font-size:9px}.public-live-gallery-empty h3{margin:5px 0 7px;font-family:var(--sib-heading,Georgia,serif);font-size:clamp(24px,3vw,34px)}.public-live-gallery-empty p{margin:0;color:var(--sib-section-muted,currentColor);font-size:14px;line-height:1.6}.public-live-gallery-empty a{display:inline-flex;gap:8px;margin-top:13px;font-size:13px;font-weight:900;text-decoration:none}.public-live-gallery-empty a span{transition:transform .2s ease}.public-live-gallery-empty a:hover span{transform:translateX(3px)}
.public-live-upload-fab{position:fixed;z-index:58;left:20px;bottom:20px;display:flex;align-items:center;gap:11px;padding:9px 15px 9px 9px;border-radius:999px;background:#151522;color:#fff;text-decoration:none;box-shadow:0 16px 50px #0004;border:1px solid #ffffff24;backdrop-filter:blur(12px);transition:transform .2s ease,box-shadow .2s ease}.public-live-upload-fab:hover{transform:translateY(-2px);box-shadow:0 20px 58px #0005}.public-live-upload-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#ff4f86,#775dff);font-size:17px}.public-live-upload-fab>span:last-child{display:grid}.public-live-upload-fab small{display:flex;align-items:center;gap:6px;font-size:8px;letter-spacing:.12em;color:#c9c5d0;font-weight:900}.public-live-upload-fab strong{font-size:12px;margin-top:1px}.public-live-upload-fab small i{display:block}
@keyframes sibLivePulse{0%{box-shadow:0 0 0 0 #36c97888}70%{box-shadow:0 0 0 7px #36c97800}100%{box-shadow:0 0 0 0 #36c97800}}
/* Design-card thumbnail now hints at the asymmetrical Editorial Collage. */
.section-layout-demo.gallery-grid:before{inset:3px auto auto 3px;width:43%;height:34px;background:#8f7be8;box-shadow:none}.section-layout-demo.gallery-grid:after{content:"";position:absolute;right:3px;top:3px;width:48%;height:15px;background:#fff;box-shadow:0 19px #8f7be8}
@media(max-width:760px){
 .gallery-public-heading-row{display:block;margin-bottom:20px}.public-gallery-tabs{margin-top:14px;max-width:100%;overflow-x:auto}.public-gallery-tabs button{padding:9px 12px}.public-filmstrip-toolbar{display:none!important}
 body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:105px;gap:9px}
 body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile{grid-column:span 1!important;grid-row:span 2!important}
 body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(6n+1){grid-column:span 2!important;grid-row:span 2!important}
 body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(6n+2){grid-row:span 3!important}
 body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(6n+3){grid-row:span 2!important}
 body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview{columns:2 135px;column-gap:9px}
 body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview .public-gallery-tile{margin-bottom:9px}
 body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview{gap:9px;padding-bottom:11px}
 body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview .public-gallery-tile{width:min(64vw,250px);height:270px}
 body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(4n+2){width:min(76vw,295px);height:210px}
 body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(4n+3){width:min(67vw,260px);height:285px}
 body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(4n){width:min(72vw,280px);height:225px}
 .public-live-gallery-empty{grid-template-columns:1fr;padding:22px}.public-live-camera{width:50px;height:50px}.public-live-upload-fab{left:12px;bottom:12px;padding-right:13px}.public-live-upload-fab strong{font-size:11px}
}

/* M52.2 — Gallery visibility, hidden-scrollbar filmstrip and distinct Editorial Spread */
body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview{
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:4px;
}
body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview::-webkit-scrollbar{
  width:0;
  height:0;
  display:none;
}
.public-gallery-tabs{scrollbar-width:none;-ms-overflow-style:none}.public-gallery-tabs::-webkit-scrollbar{display:none;width:0;height:0}

/* Editorial Spread is intentionally composed, not masonry: fixed placements, breathing room and gentle overlap. */
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:repeat(12,48px);
  grid-auto-flow:initial;
  gap:0;
  min-height:576px;
  padding:10px 0 28px;
  overflow:visible;
  align-items:stretch;
}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile{
  height:auto;
  grid-column:auto;
  grid-row:auto;
  box-shadow:0 20px 56px #00000017;
  border:1px solid color-mix(in srgb,var(--sib-section-text,currentColor) 8%,transparent);
}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(1){grid-column:1/span 6;grid-row:1/span 7;z-index:2}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(2){grid-column:8/span 4;grid-row:2/span 4;z-index:3;transform:translateX(5%)}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(3){grid-column:7/span 3;grid-row:6/span 5;z-index:5;transform:translateX(-8%)}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(4){grid-column:2/span 3;grid-row:8/span 4;z-index:4;transform:translateY(7%)}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(5){grid-column:10/span 3;grid-row:7/span 5;z-index:2;transform:translateX(-3%)}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(6){grid-column:5/span 4;grid-row:11/span 2;z-index:6;transform:translateY(-10%)}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(7){grid-column:6/span 2;grid-row:2/span 3;z-index:7;transform:translate(20%,-8%)}
body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(8){grid-column:8/span 2;grid-row:10/span 3;z-index:7;transform:translate(14%,10%)}

/* Mixed Sizes stays a continuous masonry wall with no deliberate overlaps. */
body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview{
  columns:4 210px;
  column-gap:12px;
  padding:0;
}
body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview .public-gallery-tile{
  box-shadow:none;
  transform:none;
}

.public-gallery-checkback{
  position:relative;
  display:grid;
  justify-items:center;
  text-align:center;
  width:min(100%,850px);
  margin:12px auto 0;
  padding:clamp(58px,8vw,92px) 24px;
  border-top:1px solid color-mix(in srgb,var(--sib-section-text,currentColor) 13%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--sib-section-text,currentColor) 13%,transparent);
}
.public-gallery-checkback>span{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  margin-bottom:18px;
  border-radius:50%;
  background:color-mix(in srgb,var(--sib-section-text,currentColor) 7%,transparent);
  color:var(--sib-section-text,currentColor);
  font-size:18px;
}
.public-gallery-checkback .eyebrow{font-size:9px;opacity:.72}
.public-gallery-checkback h3{margin:8px 0 10px;font-family:var(--sib-heading,Georgia,serif);font-size:clamp(34px,5vw,54px);line-height:1}
.public-gallery-checkback p{max-width:560px;margin:0;color:var(--sib-section-muted,currentColor);font-size:14px;line-height:1.7}

/* Design thumbnail: one dominant frame plus two deliberately offset frames. */
.section-layout-demo.gallery-grid:before{inset:3px auto auto 3px;width:48%;height:34px;background:#8f7be8;box-shadow:none}
.section-layout-demo.gallery-grid:after{content:"";position:absolute;right:5px;top:8px;width:37%;height:17px;background:#fff;box-shadow:-8px 22px 0 -2px #8f7be8}

@media(max-width:760px){
  body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview{
    grid-template-columns:repeat(6,minmax(0,1fr));
    grid-template-rows:none;
    grid-auto-rows:76px;
    gap:9px;
    min-height:0;
    padding:0;
    overflow:hidden;
  }
  body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile{transform:none!important;box-shadow:none;grid-column:auto!important;grid-row:auto!important}
  body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(1){grid-column:1/span 6!important;grid-row:span 3!important}
  body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(2){grid-column:1/span 3!important;grid-row:span 4!important}
  body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(3){grid-column:4/span 3!important;grid-row:span 3!important}
  body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(4){grid-column:4/span 3!important;grid-row:span 2!important}
  body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(5){grid-column:1/span 4!important;grid-row:span 3!important}
  body[data-sib-gallery-layout="grid"] .gallery-grid.public-gallery-preview .public-gallery-tile:nth-child(6){grid-column:5/span 2!important;grid-row:span 3!important}
  body[data-sib-gallery-layout="masonry"] .gallery-grid.public-gallery-preview{columns:2 135px}
  body[data-sib-gallery-layout="filmstrip"] .gallery-grid.public-gallery-preview{padding-bottom:2px}
  .public-gallery-checkback{padding:52px 18px}
}


/* M52.3 — Guest Gallery becomes a stacked second gallery, not a collection toggle. */
.public-live-gallery-section{
  margin-top:clamp(74px,10vw,132px);
  padding-top:clamp(50px,7vw,82px);
  border-top:1px solid color-mix(in srgb,var(--sib-section-text,currentColor) 13%,transparent);
}
.public-live-gallery-heading{
  display:flex;align-items:flex-end;justify-content:space-between;gap:28px;
  margin-bottom:clamp(28px,4vw,44px);
}
.public-live-gallery-heading>div{max-width:720px}
.public-live-gallery-heading .eyebrow{display:flex;align-items:center;gap:10px}
.public-live-gallery-heading h2{margin:8px 0 9px;font-family:var(--sib-heading,Georgia,serif);font-size:clamp(42px,6vw,72px);line-height:.96;color:var(--sib-section-text,currentColor)}
.public-live-gallery-heading p{margin:0;color:var(--sib-section-muted,currentColor);font-size:14px;line-height:1.7}
.public-live-gallery-cta,.public-gallery-empty-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  width:max-content;border:1px solid color-mix(in srgb,var(--sib-section-text,currentColor) 20%,transparent);
  border-radius:999px;padding:11px 16px;background:color-mix(in srgb,var(--sib-section-text,currentColor) 6%,transparent);
  color:var(--sib-section-text,currentColor);font-size:12px;font-weight:900;text-decoration:none;white-space:nowrap;
  transition:transform .2s ease,background .2s ease;
}
.public-live-gallery-cta:hover,.public-gallery-empty-cta:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--sib-section-text,currentColor) 10%,transparent)}
.public-gallery-live-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid color-mix(in srgb,var(--sib-section-text,currentColor) 15%,transparent);border-radius:999px;font-size:8px;letter-spacing:.12em;font-weight:900}
.public-gallery-live-badge i{width:6px;height:6px;border-radius:50%;background:#36c978;animation:sibLivePulse 1.8s infinite}
.public-guest-gallery-awaiting{margin-top:0}
.public-gallery-opening-time{display:grid;gap:5px;margin-top:25px;padding:13px 18px;border-radius:16px;background:color-mix(in srgb,var(--sib-section-text,currentColor) 6%,transparent);min-width:min(100%,330px)}
.public-gallery-opening-time small{font-size:8px;letter-spacing:.16em;font-weight:900;opacity:.68}
.public-gallery-opening-time strong{font-family:var(--sib-heading,Georgia,serif);font-size:18px;font-weight:700}
.public-gallery-empty-cta{margin-top:24px}
/* Old tab/floating controls are intentionally retired in M52.3. */
.public-gallery-tabs,.public-live-upload-fab{display:none!important}
@media(max-width:760px){
 .public-live-gallery-section{margin-top:72px;padding-top:46px}
 .public-live-gallery-heading{display:grid;align-items:start;gap:18px;margin-bottom:28px}
 .public-live-gallery-heading h2{font-size:clamp(40px,13vw,58px)}
 .public-live-gallery-cta{justify-self:start}
 .public-gallery-opening-time{width:100%;min-width:0}
}


/* M53.6 — explicit camera choice on the private guest upload page */
.guest-upload-picker{margin-top:18px;text-align:left}.guest-upload-picker-heading{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:10px}.guest-upload-picker-heading strong{font-size:15px}.guest-upload-picker-heading small{font-size:12px;color:#817a86}.guest-upload-picker-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.guest-camera-action,.guest-library-action{position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;border:1.5px solid #ded6e4;background:#fff;border-radius:18px;padding:16px;cursor:pointer;box-shadow:0 8px 24px #3a274708}.guest-camera-action{background:linear-gradient(135deg,#fff4f7,#f3efff)}.guest-camera-action>span,.guest-library-action>span{grid-row:1/3;display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#f0eafa;font-size:19px}.guest-camera-action strong,.guest-library-action strong{font-size:14px}.guest-camera-action small,.guest-library-action small{color:#837c89;font-size:11px}.guest-camera-action input,.guest-library-action input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.guest-camera-action:focus-within,.guest-library-action:focus-within{outline:3px solid #765cff35;outline-offset:2px}

/* M53.6 — token-authenticated Live Gallery moderator */
.live-moderator-body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 0,#ffeef3,transparent 34%),radial-gradient(circle at 95% 12%,#eeebff,transparent 34%),#f8f6f8;color:#161521;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.live-moderator-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:42px 0 64px}.live-moderator-head{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:24px}.live-moderator-head h1{margin:7px 0 5px;font-family:Georgia,serif;font-size:clamp(38px,6vw,64px);line-height:1}.live-moderator-head p{margin:0;color:#6e6874}.live-moderator-counts{display:flex;gap:8px}.live-moderator-counts span{display:grid;min-width:94px;padding:12px 14px;border-radius:16px;background:#fff;border:1px solid #ebe5ef;text-align:center}.live-moderator-counts strong{font-size:24px}.live-moderator-counts span{font-size:11px;color:#77717e}.live-moderator-notice{margin-bottom:18px;padding:12px 15px;border-radius:14px;background:#e9f8ef;color:#21704b;font-weight:750}.live-moderator-notice.is-error{background:#fff0f2;color:#9a4054}.live-moderator-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.live-moderator-photo{overflow:hidden;border:1px solid #eae4ed;background:#fff;border-radius:20px;box-shadow:0 12px 34px #33233e0c}.live-moderator-photo>img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.live-moderator-meta{padding:13px}.live-moderator-meta strong{display:block;margin-top:8px}.live-moderator-meta p{margin:5px 0 0;color:#716b78;font-size:12px;line-height:1.45}.live-moderator-status{display:inline-flex;padding:5px 8px;border-radius:999px;background:#fff2d8;color:#8b6105;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.live-moderator-status.is-live{background:#e9f8ef;color:#207149}.live-moderator-status.is-hidden{background:#f1eff3;color:#746d7b}.live-moderator-actions{display:flex;gap:7px;padding:0 13px 13px}.live-moderator-actions form{flex:1}.live-moderator-actions button{width:100%;border:0;border-radius:11px;padding:10px 11px;background:#191923;color:#fff;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.live-moderator-actions button.hide{background:#f3eff4;color:#645d69}.live-moderator-empty{text-align:center;padding:70px 24px;border:1px solid #eae4ed;background:#fff;border-radius:26px}.live-moderator-empty>span{display:grid;place-items:center;width:54px;height:54px;border-radius:18px;margin:0 auto 12px;background:#f1ebf8}.live-moderator-empty h1,.live-moderator-empty h2{font-family:Georgia,serif;margin:0 0 8px}.live-moderator-empty p{margin:0 auto;max-width:560px;color:#756f7c}.live-moderator-foot{text-align:center;margin-top:24px;color:#8b858f;font-size:12px}
@media(max-width:760px){.guest-upload-picker-heading{display:block}.guest-upload-picker-heading small{display:block;margin-top:3px}.guest-upload-picker-actions{grid-template-columns:1fr}.live-moderator-head{display:block}.live-moderator-counts{margin-top:16px}.live-moderator-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.live-moderator-grid{grid-template-columns:1fr}}
