:root{
  --radius: 22px;
}

*{ box-sizing:border-box; }

html,body{
  height:100%;
  min-height:100%;
  background-color: var(--bg2);
  background-image: linear-gradient(180deg, var(--bg1), var(--bg2));
  overscroll-behavior-y: none;
}

body{
  margin:0;
  min-height:100vh;
  min-height:100svh;
  min-height:100dvh;
  font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--ink);
  background:
    radial-gradient(1200px 700px at 20% 10%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(900px 600px at 80% 90%, rgba(255,255,255,.70), transparent 58%),
    linear-gradient(180deg, var(--bg1), var(--bg2));
  overflow-x:hidden;
  -webkit-font-smoothing: antialiased;
}

.page{
  max-width: 980px;
  margin: 0 auto;
  padding: 26px 16px 26px;
}
@media (min-width: 900px){
  .page{ padding: 42px 22px 42px; }
}

.frame{
  border-radius: calc(var(--radius) + 12px);
  padding: 2px;
  box-shadow: 0 28px 80px rgba(0,0,0,.11);
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg,
    rgba(255,255,255,.86),
    rgba(235,245,255,.46),
    rgba(255,235,246,.40),
    rgba(235,255,245,.42),
    rgba(255,250,238,.52),
    rgba(255,255,255,.86)
  );
}
.frame:before{
  content:"";
  position:absolute;
  inset:0;
  padding:2px;
  border-radius: calc(var(--radius) + 12px);
  background: conic-gradient(from 180deg,
    rgba(255,255,255,.92),
    rgba(246,252,255,.78),
    rgba(255,248,252,.72),
    rgba(246,255,248,.72),
    rgba(255,252,245,.78),
    rgba(255,255,255,.92)
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: .55;
  pointer-events:none;
  z-index:0;
}
.frame > *{ position: relative; z-index:1; }

.paper{
  background: var(--paper);
  border-radius: var(--radius);
  padding: 56px 22px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
@media (min-width: 720px){
  .paper{ padding: 64px 40px; }
}

.rgb{
  display:inline-block;
  background: var(--rgbText);
  background-size: 320% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  color: transparent;
  animation: rgbFlow 8s linear infinite;
}
@keyframes rgbFlow{
  0%{ background-position: 0% 50%; }
  100%{ background-position: 100% 50%; }
}

.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:7px 14px;
  border-radius:999px;
  background: rgba(255,255,255,.65);
  border:1px solid rgba(0,0,0,.08);
  color: var(--muted);
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: 11px;
}
.badge .dot{
  width:7px;height:7px;border-radius:999px;
  background: color-mix(in srgb, var(--accent) 65%, rgba(255,255,255,0));
}

.names{ margin-top: 18px; margin-bottom: 22px; }
.name{
  font-family:"Marck Script", cursive;
  font-size: clamp(60px, 9.2vw, 106px);
  line-height: 1.00;
}
.and{
  font-family:"Marck Script", cursive;
  font-size: clamp(52px, 7.6vw, 88px);
  margin: 6px 0 10px;
  opacity:0;
  transform: translateY(6px) scale(.98);
}
.and.show{
  opacity:1; transform:none;
  transition: opacity .55s ease, transform .55s ease;
}

.subtitle{
  margin-top:10px;
  max-width: 58ch;
  margin-left:auto;
  margin-right:auto;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}

.divider{
  height: 1px;
  width: min(520px, 100%);
  margin: 26px auto 0;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,.10), transparent);
  opacity: .8;
}

.grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
  margin-top: 22px;
}
@media (max-width: 820px){
  .grid{ grid-template-columns: minmax(0,1fr); }
}

.tile{
  border-radius: 18px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(0,0,0,.08);
  padding: 14px 14px 16px;
  text-align:center;
}
.tile .k{
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
}
.tile .v{
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: 14px;
  line-height: 1.5;
}
.tile .t{
  margin-top:6px;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.55;
}

.timer{
  margin-top: 18px;
  border-radius: 18px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(0,0,0,.08);
  padding: 16px 14px 14px;
  text-align:center;
}
.timerTop{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.timerTop .pill{
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
}
.timerGrid{
  display:flex;
  justify-content: space-between;
  gap:10px;
  margin-top:12px;
  align-items:flex-end;
}
.u{ flex:1; }
.u .n{
  font-family: Georgia,"Times New Roman",serif;
  font-size: 22px;
  letter-spacing: .06em;
}
.u .l{
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 4px;
}
.sep{ align-self:center; opacity:.45; transform: translateY(-2px); }

.photoBlock{
  margin-top: 18px;
  border-radius: 24px;
  overflow:hidden;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.03);
  box-shadow: 0 18px 46px rgba(0,0,0,.08);
}
.photoBlock img{
  width:100%;
  height: 560px;
  object-fit: cover;
  object-position: var(--img-pos);
  display:block;
}
@media (max-width: 560px){ .photoBlock img{ height: 340px; } }

.sectionTitle{
  margin-top: 26px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.sectionSub{
  margin-top: 10px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
  max-width: 70ch;
  margin-left:auto;
  margin-right:auto;
}

.storyGrid{
  margin-top: 16px;
  display:grid;
  grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr);
  gap: 12px;
  align-items:start;
}
@media (max-width: 820px){ .storyGrid{ grid-template-columns: 1fr; } }

.storyCard{
  border-radius: 22px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.55);
  padding: 16px 16px 14px;
  text-align:left;
}
.storyCard p{
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}
.storyCard p:last-child{ margin-bottom:0; }

.storySide{ display:flex; flex-direction:column; gap:10px; }
.storyPhoto{
  border-radius: 22px;
  overflow:hidden;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(0,0,0,.04);
}
.storyPhoto img{
  width:100%;
  height: 260px;
  object-fit: cover;
  object-position: var(--img-pos);
  display:block;
}
@media (max-width: 820px){ .storyPhoto img{ height: 240px; } }

.miniNotes{ display:flex; flex-direction:column; gap:10px; }
.note{
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.55);
  padding: 12px;
  display:grid;
  grid-template-columns: 28px minmax(0,1fr);
  column-gap: 10px;
  text-align:left;
}
.note .ic{ display:grid; place-items:center; color: var(--accent); font-size: 16px; }
.note .h{ font-size: 12px; letter-spacing:.18em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.note .p{ font-size: 13px; color: var(--muted); line-height: 1.55; }

.schedule{ margin-top: 18px; display:flex; flex-direction:column; gap: 18px; }
.sc-row{ display:grid; grid-template-columns: 70px 20px minmax(0,1fr); align-items:flex-start; }
.sc-time{
  text-align:right;
  padding-top:2px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  letter-spacing:.08em;
  opacity:.85;
}
.sc-line{ position: relative; }
.sc-line::before{
  content:"";
  position:absolute;
  left:50%;
  top:2px;
  bottom:-18px;
  width:1px;
  background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.06));
}
.schedule .sc-row:last-child .sc-line::before{ display:none; }

.sc-content{
  padding: 10px 14px 10px 16px;
  border-radius: 18px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(0,0,0,.07);
  text-align:left;
}
.sc-title{ font-size: 13px; letter-spacing:.18em; text-transform: uppercase; margin-bottom: 4px; }
.sc-desc{ font-size: 13px; line-height: 1.55; color: var(--muted); }

.iviDress{ margin-top: 26px; }
.iviDressWrap{
  border-radius: 22px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.55);
  padding: 18px 16px 16px;
  box-shadow: 0 18px 46px rgba(0,0,0,.08);
  text-align:center;
}
.iviDressKicker{
  font-size: 11px;
  letter-spacing: .20em;
  text-transform: uppercase;
  color: var(--muted);
}
.iviDressTitle{
  margin: 10px 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink);
  font-weight: 400;
  line-height: 1.25;
}
.iviDressSwatches{
  margin: 14px auto 0;
  display:flex;
  justify-content:center;
  gap: 10px;
  flex-wrap:wrap;
}
.iviDressDot{
  width: 52px; height: 52px;
  border-radius: 999px;
  background: var(--c) !important;
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 14px 28px rgba(0,0,0,.10);
  position:relative;
}
.iviDressText{
  margin: 12px auto 0;
  max-width: 72ch;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
  white-space: pre-line;
}
@media (max-width: 520px){
  .iviDressDot{ width: 48px; height: 48px; }
}

.iviGallery{ margin-top: 14px !important; }
.iviGalleryGrid{
  display:grid !important;
  grid-template-columns: repeat(12, 1fr) !important;
  gap: 10px !important;
}
.iviGalleryItem{
  grid-column: span 3 !important;
  border-radius: 18px !important;
  overflow:hidden !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  background: rgba(0,0,0,.04) !important;
  text-decoration:none !important;
  position:relative !important;
  display:block !important;
}
.iviGalleryItem img{
  width:100% !important;
  height:100% !important;
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  object-position: var(--img-pos) !important;
  display:block !important;
}
@media (max-width: 820px){ .iviGalleryItem{ grid-column: span 6 !important; } }
@media (max-width: 520px){ .iviGalleryItem{ grid-column: span 12 !important; } }

.iviLoc{ margin-top: 26px; }
.iviLocGrid{
  margin-top: 14px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
  align-items:start;
}
@media (max-width: 820px){ .iviLocGrid{ grid-template-columns: 1fr; } }

.iviLocCard{
  border-radius: 22px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.58);
  overflow:hidden;
  box-shadow: 0 18px 46px rgba(0,0,0,.08);
}
.iviLocPhoto img{
  width:100%;
  height: 220px;
  object-fit: cover;
  display:block;
}
.iviLocBody{ padding: 16px 16px 16px; text-align:left; }
.iviLocName{
  margin: 12px 0 6px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  letter-spacing: .06em;
  color: var(--ink);
  font-weight: 600;
}
.iviLocAddr, .iviLocNote{
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}
.iviLocActions{
  margin-top: 12px;
  display:grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.iviBtn{
  width:100%;
  height: 46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  text-decoration:none;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  transition: transform .15s ease, opacity .15s ease;
}
.iviBtn:hover{ transform: translateY(-1px); opacity: .96; }
.iviBtnPrimary{
  background: color-mix(in srgb, var(--accent) 88%, #ffffff 12%);
  color:#fff;
  box-shadow: 0 14px 28px rgba(0,0,0,.12);
  border: 1px solid rgba(0,0,0,.06);
}
.iviBtnGhost{
  background: rgba(255,255,255,.70);
  color: var(--ink);
  border: 1px solid rgba(0,0,0,.12);
}

#rsvp.rsvpSection{
  margin-top: 26px;
  padding: 0;
  text-align:center;
  scroll-margin-top: 18px;
}
#rsvp.rsvpSection h2{
  margin: 26px 0 8px;
  font-family: Georgia,"Times New Roman",serif;
  font-size: 18px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink);
  font-weight: 400;
}
#rsvp .rose-line-svg{ display:none; }

#rsvp .rsvpGrid{
  margin-top: 16px;
  max-width: 980px;
  margin-left:auto;
  margin-right:auto;
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
  align-items:start;
}
#rsvp .rsvpFormCard{
  border-radius: 24px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.62);
  padding: 18px 16px 16px;
  text-align:left;
  box-shadow: 0 18px 46px rgba(0,0,0,.08);
}
#rsvp .statusBox{
  font-size: 13px;
  padding: 10px 12px;
  border-radius: 16px;
  margin-bottom: 12px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.70);
  line-height: 1.35;
}
#rsvp .statusBox.ok{
  border-color: rgba(16,185,129,.30);
  background: rgba(16,185,129,.08);
  color:#166534;
}
#rsvp .statusBox.bad{
  border-color: rgba(239,68,68,.30);
  background: rgba(239,68,68,.08);
  color:#991b1b;
}

#rsvp .rsvpHint{
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 14px;
}

#rsvpForm .row2{
  display:grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-bottom: 10px;
}
@media (min-width: 640px){
  #rsvpForm .row2{ grid-template-columns: 1fr 1fr; }
}

#rsvpForm .label{
  display:block;
  font-size: 11px;
  letter-spacing: .20em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 6px;
}

#rsvpForm .field{
  width:100%;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.78);
  padding: 12px 12px;
  font-size: 14px;
  font-family: inherit;
  color: var(--ink);
  outline: none;
}
#rsvpForm .field:focus{
  border-color: color-mix(in srgb, var(--accent) 55%, rgba(0,0,0,.20));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);
}

#rsvpForm textarea.field{
  min-height: 92px;
  resize: vertical;
  line-height: 1.45;
}

#rsvpForm .chips{
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
  padding: 10px;
  border-radius: 16px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(0,0,0,.08);
}

#rsvpForm .chip{
  appearance:none;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.72);
  padding: 9px 12px;
  font-size: 12px;
  letter-spacing: .10em;
  text-transform: uppercase;
  cursor:pointer;
  color: var(--ink);
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
  user-select:none;
}
#rsvpForm .chip[data-active="true"]{
  background: color-mix(in srgb, var(--accent) 88%, #ffffff 12%);
  border-color: color-mix(in srgb, var(--accent) 70%, rgba(0,0,0,.10));
  color: #fff;
  box-shadow: 0 10px 20px rgba(0,0,0,.12);
  transform: translateY(-1px);
}

#rsvpForm .consent{
  display:grid;
  grid-template-columns: 18px 1fr;
  column-gap: 10px;
  align-items:flex-start;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
  margin: 12px 0 10px;
  padding: 10px 10px;
  border-radius: 16px;
  background: rgba(255,255,255,.50);
  border: 1px solid rgba(0,0,0,.08);
}
#rsvpForm .consent input{
  margin-top: 3px;
  accent-color: var(--accent);
}

#rsvpForm .btn.btn-full{
  width:100%;
  border:none;
  border-radius: 14px;
  padding: 13px 14px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  cursor:pointer;
  color: #fff;
  background: color-mix(in srgb, var(--accent) 90%, #000 10%);
  box-shadow: 0 14px 28px rgba(0,0,0,.14);
}

.stickyRsvp{
  position: fixed;
  left: 14px;
  right: 14px;
  bottom: 14px;
  z-index: 50;
  display:none;
  transition: transform .25s ease, opacity .25s ease;
  will-change: transform, opacity;
}
.stickyRsvp-inner{ max-width: 980px; margin: 0 auto; }
.stickyRsvp.sticky-hidden{
  transform: translateY(140%);
  opacity: 0;
  pointer-events:none;
}
.stickyBtn{
  width: 100%;
  border: none;
  border-radius: 999px;
  padding: 12px 16px;
  background: color-mix(in srgb, var(--accent) 88%, #ffffff 12%);
  color: #fff;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  box-shadow: 0 14px 28px rgba(0, 0, 0, .16);
  cursor: pointer;
}
@media (max-width: 820px){
  .stickyRsvp{ display:block; }
  body.hasStickyPad{ padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px)); }
}

.psFooterHero{
  margin-top: 34px;
  padding-top: 18px;
  border-top: 1px solid rgba(0,0,0,.08);
  text-align:center;
}
.psFooterHero .line1{
  font-family: Georgia,"Times New Roman",serif;
  font-size: 22px;
  letter-spacing: .08em;
  margin: 0 0 10px;
  color: var(--ink);
}
.psFooterHero .line2{
  margin:0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.65;
}
.psFooterHero .line3{
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}
/* =========================================================
   PEARL SCRIPT 3.0 — ATELIER REDESIGN
   Distinct editorial direction built from the original theme
========================================================= */
:root{ --radius: 10px; }
body{
  font-family: Manrope, system-ui, sans-serif;
  background:
    linear-gradient(rgba(255,255,255,.36) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.36) 1px, transparent 1px),
    linear-gradient(145deg,var(--bg1),var(--bg2));
  background-size: 32px 32px,32px 32px,auto;
}
.page{max-width:1240px;padding:26px 18px 54px}
.frame{padding:0;border-radius:28px;background:transparent;box-shadow:0 38px 90px rgba(46,34,24,.13);overflow:visible}
.frame:before{display:none}
.paper{padding:0;border-radius:28px;text-align:left;background:var(--paper);overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 20%,#fff 80%)}
.paper:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 85% 8%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 30%)}

.pearlHero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);min-height:780px;position:relative}
.pearlHero__copy{padding:74px 54px 58px;display:flex;flex-direction:column;position:relative;z-index:2}
.pearlHero__eyebrow{display:flex;align-items:center;gap:12px;font-size:10px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}
.pearlHero__eyebrow span{display:block;width:54px;height:1px;background:var(--accent)}
.pearlHero__date{margin-top:58px;display:flex;align-items:flex-end;gap:14px;color:var(--ink)}
.pearlHero__dateDay{font-family:"Cormorant Garamond",serif;font-size:clamp(72px,8vw,118px);font-weight:500;line-height:.72;letter-spacing:-.06em}
.pearlHero__dateRest{padding-bottom:8px;max-width:90px;font-size:11px;line-height:1.7;letter-spacing:.22em;color:var(--muted)}
.names{margin:54px 0 26px;position:relative}
.name{font-family:"Cormorant Garamond",serif;font-size:clamp(72px,8vw,124px);font-weight:500;font-style:italic;line-height:.7;letter-spacing:-.055em;color:var(--ink)}
.name:last-child{text-align:right;margin-top:8px}
.and{position:absolute;left:48%;top:48%;margin:0;font-family:"Cormorant Garamond",serif;font-size:44px;color:var(--accent);opacity:1;transform:translate(-50%,-50%)}
.and.show{transform:translate(-50%,-50%)}
.rgb{background:none;color:inherit;animation:none}
.subtitle{max-width:46ch;margin:0;color:var(--muted);font-size:14px;line-height:1.85}
.pearlHero__meta{margin-top:36px;border-top:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-bottom:1px solid color-mix(in srgb,var(--accent) 25%,transparent);display:grid;grid-template-columns:repeat(3,1fr)}
.pearlHero__metaItem{padding:16px 12px 16px 0;min-width:0}
.pearlHero__metaItem+ .pearlHero__metaItem{padding-left:16px;border-left:1px solid color-mix(in srgb,var(--accent) 20%,transparent)}
.pearlHero__metaItem span{display:block;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.pearlHero__metaItem strong{display:block;font-family:"Cormorant Garamond",serif;font-size:18px;font-weight:600;line-height:1.2;overflow-wrap:anywhere}
.timer{margin-top:auto;padding:26px 0 0;background:transparent;border:0;border-radius:0}
.timerTop .pill{font-size:9px;font-weight:700;color:var(--muted)}
.timerGrid{margin-top:14px;gap:8px;justify-content:flex-start}
.timerGrid .sep{display:none}.u{flex:0 1 82px;text-align:left}.u .n{font-family:"Cormorant Garamond",serif;font-size:38px;line-height:1;color:var(--ink)}.u .l{font-size:8px;letter-spacing:.2em}

.pearlHero__visual{position:relative;min-height:780px;padding:34px 34px 62px;background:color-mix(in srgb,var(--accent) 8%,var(--paper) 92%);overflow:hidden}
.pearlHero__visual:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:color-mix(in srgb,var(--accent) 28%,transparent)}
.pearlHero__visual:after{content:"PEARL SCRIPT";position:absolute;right:13px;top:50%;transform:translateY(-50%) rotate(90deg);font-size:9px;letter-spacing:.38em;color:var(--muted)}
.photoBlock{margin:0;height:100%;min-height:684px;border:0;border-radius:240px 240px 16px 16px;box-shadow:none;background:transparent;position:relative;overflow:hidden}
.photoBlock:after{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.72);border-radius:228px 228px 10px 10px;pointer-events:none}
.photoBlock img{height:100%;min-height:684px;object-fit:cover;transition:transform 1.6s cubic-bezier(.2,.7,.2,1),filter 1.6s ease;filter:saturate(.88) contrast(.98)}
.pearlHero__visual:hover .photoBlock img{transform:scale(1.025);filter:saturate(1) contrast(1)}
.pearlHero__stamp{position:absolute;z-index:4;left:16px;top:26px;width:82px;height:82px;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);font-family:"Cormorant Garamond",serif;font-size:25px;font-style:italic;color:var(--accent);box-shadow:0 14px 36px rgba(43,31,20,.12)}
.pearlHero__stamp:before{content:"";position:absolute;inset:7px;border:1px dotted color-mix(in srgb,var(--accent) 55%,transparent);border-radius:50%}
.pearlHero__caption{position:absolute;left:34px;bottom:24px;font-family:"Cormorant Garamond",serif;font-size:18px;font-style:italic;letter-spacing:.08em;color:var(--muted)}
.pearlHero__pearl{position:absolute;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 15%,color-mix(in srgb,var(--accent) 16%,#fff 84%) 55%,color-mix(in srgb,var(--accent) 35%,#ddd 65%));box-shadow:inset -5px -7px 12px rgba(0,0,0,.08),0 10px 24px rgba(0,0,0,.09);z-index:5;animation:pearlFloat 6s ease-in-out infinite}
.pearlHero__pearl--one{width:28px;height:28px;right:22px;top:110px}.pearlHero__pearl--two{width:16px;height:16px;left:18px;bottom:118px;animation-delay:-2s}
@keyframes pearlFloat{50%{transform:translateY(-10px)}}

/* shared editorial sections */
#story,#schedule{scroll-margin-top:24px}
.sectionTitle{margin:0;font-family:"Cormorant Garamond",serif;font-size:clamp(40px,5vw,68px);font-weight:500;letter-spacing:-.035em;text-transform:none;line-height:1;color:var(--ink)}
.sectionSub{margin:10px 0 0;max-width:58ch;font-size:13px;line-height:1.8;color:var(--muted)}
#story + .sectionTitle,.schedule~*{} 
.storyGrid,.schedule,.iviDress,.iviLoc,#rsvp.rsvpSection,.psGalleryWrap{margin-left:clamp(22px,5vw,64px);margin-right:clamp(22px,5vw,64px)}
#story + .sectionTitle,#story + .sectionTitle + .sectionSub,#schedule + .sectionSub,#schedule + .sectionSub + .sectionTitle,#schedule + .sectionSub + .sectionTitle + .sectionSub{margin-left:clamp(22px,5vw,64px);margin-right:clamp(22px,5vw,64px)}
#story{margin-top:90px}.storyGrid{margin-top:28px;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:34px;align-items:stretch}
.storyCard{order:2;border:0;border-radius:0;background:transparent;padding:40px 0;text-align:left;position:relative}
.storyCard:before{content:"“";position:absolute;top:-18px;left:-16px;font-family:"Cormorant Garamond",serif;font-size:110px;color:color-mix(in srgb,var(--accent) 22%,transparent);line-height:1}
.storyCard p{font-family:"Cormorant Garamond",serif;font-size:24px;line-height:1.65;color:var(--ink)}
.storySide{order:1}.storyPhoto{border:0;border-radius:2px;background:transparent}.storyPhoto img{height:520px}.miniNotes{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:color-mix(in srgb,var(--accent) 18%,transparent)}
.note{border:0;border-radius:0;background:var(--paper);padding:18px;grid-template-columns:24px 1fr}.note .ic{font-size:14px}.note .h{font-size:9px}.note .p{font-size:12px}

#schedule{margin-top:96px}.schedule{margin-top:34px;gap:0;border-top:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}
.sc-row{grid-template-columns:110px 1fr;border-bottom:1px solid color-mix(in srgb,var(--accent) 22%,transparent);padding:22px 0;align-items:center}.sc-line{display:none}.sc-time{text-align:left;font-family:"Cormorant Garamond",serif;font-size:34px;color:var(--accent)}
.sc-content{padding:0;border:0;border-radius:0;background:transparent}.sc-title{font-family:"Cormorant Garamond",serif;font-size:25px;letter-spacing:0;text-transform:none;margin:0 0 5px}.sc-desc{font-size:13px}

.iviDressWrap,.iviLocCard,#rsvp .rsvpFormCard{border-radius:2px;background:transparent;border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);box-shadow:none}
.iviDress{margin-top:90px}.iviDressWrap{padding:34px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center}.iviDressKicker{grid-column:1;font-size:9px}.iviDressTitle{grid-column:1;margin:6px 0;font-family:"Cormorant Garamond",serif;font-size:42px;letter-spacing:-.02em;text-transform:none}.iviDressText{grid-column:1;margin:0;font-size:13px}.iviDressSwatches{grid-column:2;grid-row:1/4;margin:0;flex-wrap:nowrap}.iviDressDot{width:42px;height:88px;border-radius:21px;box-shadow:none}
.iviGallery{margin-top:26px!important}.iviGalleryGrid{gap:16px!important}.iviGalleryItem{border:0!important;border-radius:2px!important;background:transparent!important}.iviGalleryItem:nth-child(3n+1){grid-column:span 5!important}.iviGalleryItem:nth-child(3n+2){grid-column:span 3!important}.iviGalleryItem:nth-child(3n+3){grid-column:span 4!important}.iviGalleryItem img{aspect-ratio:auto!important;height:420px!important;object-fit:cover!important;transition:transform 1.1s ease}.iviGalleryItem:hover img{transform:scale(1.025)}
.iviLoc{margin-top:90px}.iviLocGrid{gap:20px}.iviLocCard{overflow:visible}.iviLocPhoto img{height:340px}.iviLocBody{padding:22px}.iviLocName{font-family:"Cormorant Garamond",serif;font-size:28px}.iviBtn{border-radius:2px}
#rsvp.rsvpSection{margin-top:90px;padding:46px;background:color-mix(in srgb,var(--accent) 7%,var(--paper) 93%)}#rsvp.rsvpSection h2{font-family:"Cormorant Garamond",serif;font-size:52px;letter-spacing:-.03em;text-transform:none}#rsvp .rsvpFormCard{background:var(--paper);padding:28px}#rsvpForm .field,#rsvpForm .chips,#rsvpForm .consent,#rsvp .statusBox{border-radius:2px}#rsvpForm .btn.btn-full{border-radius:2px}
.psFooterHero{margin:90px 0 0;padding:62px 20px;border-top:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.psFooterHero .line1{font-family:"Cormorant Garamond",serif;font-size:42px}.psFooterHero .line2{font-family:"Cormorant Garamond",serif;font-size:23px;font-style:italic}

@media(max-width:900px){
 .pearlHero{grid-template-columns:1fr;min-height:auto}.pearlHero__copy{padding:48px 28px 40px}.pearlHero__date{margin-top:36px}.pearlHero__visual{min-height:620px;padding:24px 24px 54px;order:-1}.photoBlock,.photoBlock img{min-height:540px}.photoBlock{border-radius:180px 180px 12px 12px}.photoBlock:after{border-radius:170px 170px 8px 8px}.pearlHero__visual:before{display:none}
 .storyGrid{grid-template-columns:1fr}.storyCard{order:1}.storySide{order:2}.storyPhoto img{height:420px}
 .iviDressWrap{grid-template-columns:1fr}.iviDressSwatches{grid-column:1;grid-row:auto}.iviGalleryItem:nth-child(n){grid-column:span 6!important}
}
@media(max-width:560px){
 .page{padding:10px 8px 28px}.frame,.paper{border-radius:18px}.pearlHero__copy{padding:38px 20px 34px}.pearlHero__visual{min-height:480px;padding:16px 16px 46px}.photoBlock,.photoBlock img{min-height:420px;height:420px}.photoBlock{border-radius:130px 130px 10px 10px}.photoBlock:after{border-radius:122px 122px 7px 7px}.pearlHero__stamp{width:62px;height:62px;font-size:20px}
 .pearlHero__dateDay{font-size:74px}.name{font-size:68px}.names{margin:38px 0 22px}.pearlHero__meta{grid-template-columns:1fr}.pearlHero__metaItem+ .pearlHero__metaItem{border-left:0;border-top:1px solid color-mix(in srgb,var(--accent) 18%,transparent);padding-left:0}.timerGrid{display:grid;grid-template-columns:repeat(4,1fr)}.u{min-width:0}.u .n{font-size:31px}
 .sectionTitle{font-size:42px}.storyGrid,.schedule,.iviDress,.iviLoc,#rsvp.rsvpSection,.psGalleryWrap,#story + .sectionTitle,#story + .sectionTitle + .sectionSub,#schedule + .sectionSub,#schedule + .sectionSub + .sectionTitle,#schedule + .sectionSub + .sectionTitle + .sectionSub{margin-left:18px;margin-right:18px}.storyCard p{font-size:20px}.storyPhoto img{height:340px}.miniNotes{grid-template-columns:1fr}.sc-row{grid-template-columns:76px 1fr}.sc-time{font-size:26px}.iviDressWrap{padding:24px}.iviDressTitle{font-size:36px}.iviDressSwatches{gap:5px}.iviDressDot{width:34px;height:66px}.iviGalleryItem:nth-child(n){grid-column:span 12!important}.iviGalleryItem img{height:auto!important;max-height:none!important;object-fit:contain!important}#rsvp.rsvpSection{padding:28px 18px}#rsvp.rsvpSection h2{font-size:42px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* =========================================================
   PEARL SCRIPT 4.0 — SOFT FLAT
   Soft, airy, flat redesign. No glass, no harsh editorial grid.
========================================================= */
:root{
  --soft-radius: 34px;
  --soft-line: color-mix(in srgb,var(--accent) 18%,transparent);
  --soft-fill: color-mix(in srgb,var(--accent) 5%,var(--paper) 95%);
  --soft-fill-2: color-mix(in srgb,var(--accent2) 7%,var(--paper) 93%);
}
body{
  background:
    radial-gradient(900px 520px at 8% 5%, color-mix(in srgb,var(--accent) 10%,transparent), transparent 64%),
    radial-gradient(760px 520px at 92% 82%, color-mix(in srgb,var(--accent2) 11%,transparent), transparent 62%),
    linear-gradient(180deg,var(--bg1),var(--bg2));
  background-attachment:fixed;
}
.page{max-width:1160px;padding:28px 18px 54px}
.frame{box-shadow:none;border-radius:40px;background:transparent}
.paper{
  border:1px solid var(--soft-line);
  border-radius:40px;
  box-shadow:0 22px 70px rgba(54,43,37,.08);
  background:var(--paper);
}
.paper:before{
  background:
    radial-gradient(520px 360px at 10% 3%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 72%),
    radial-gradient(560px 420px at 93% 8%,color-mix(in srgb,var(--accent2) 9%,transparent),transparent 72%);
}

.pearlHero{
  grid-template-columns:minmax(0,1fr) minmax(360px,.88fr);
  min-height:700px;
  gap:0;
  padding:28px;
}
.pearlHero__copy{
  padding:54px 48px 46px;
  border-radius:32px 0 0 32px;
  background:linear-gradient(180deg,var(--soft-fill),transparent 88%);
}
.pearlHero__eyebrow{font-size:10px;letter-spacing:.22em;color:var(--muted)}
.pearlHero__eyebrow span{width:38px;background:color-mix(in srgb,var(--accent) 55%,transparent)}
.pearlHero__date{margin-top:34px;align-items:center;gap:16px}
.pearlHero__dateDay{
  font-size:clamp(66px,7vw,100px);
  font-weight:500;
  line-height:.9;
  color:var(--accent);
}
.pearlHero__dateRest{
  max-width:none;
  padding:8px 14px;
  border-radius:999px;
  background:var(--soft-fill-2);
  border:1px solid var(--soft-line);
  font-size:10px;
  line-height:1.4;
}
.names{margin:42px 0 22px}
.name{
  font-size:clamp(62px,7.2vw,104px);
  line-height:.82;
  color:var(--ink);
}
.name:last-child{text-align:left;margin-top:10px;padding-left:18%}
.and{left:13%;top:51%;font-size:34px;color:var(--accent);opacity:.72}
.subtitle{font-size:15px;line-height:1.8;max-width:52ch}
.pearlHero__meta{
  margin-top:28px;
  border:0;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.pearlHero__metaItem,
.pearlHero__metaItem + .pearlHero__metaItem{
  padding:12px 15px;
  border:1px solid var(--soft-line);
  border-radius:18px;
  background:var(--paper);
  min-width:135px;
}
.pearlHero__metaItem span{font-size:8px;margin-bottom:5px}
.pearlHero__metaItem strong{font-size:17px}
.timer{
  margin-top:26px;
  padding:18px;
  border:1px solid var(--soft-line);
  border-radius:24px;
  background:var(--soft-fill);
}
.timerTop .pill{padding:0;background:none;border:0}
.timerGrid{margin-top:12px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.u{
  padding:12px 8px;
  border-radius:18px;
  background:var(--paper);
  border:1px solid color-mix(in srgb,var(--accent) 14%,transparent);
  text-align:center;
}
.u .n{font-size:32px;color:var(--accent)}
.u .l{font-size:7px}

.pearlHero__visual{
  min-height:644px;
  margin:0;
  padding:22px;
  border-radius:0 32px 32px 0;
  background:var(--soft-fill-2);
  overflow:visible;
}
.pearlHero__visual:before,.pearlHero__visual:after{display:none}
.photoBlock{
  min-height:600px;
  height:100%;
  border-radius:48% 48% 28px 28px / 28% 28% 28px 28px;
  box-shadow:0 24px 56px rgba(57,44,36,.12);
  overflow:hidden;
}
.photoBlock:after{
  inset:10px;
  border-radius:inherit;
  border-color:rgba(255,255,255,.68);
}
.photoBlock img{min-height:600px;filter:saturate(.92) contrast(.98)}
.pearlHero__visual:hover .photoBlock img{transform:scale(1.012);filter:saturate(.97)}
.pearlHero__stamp{
  left:-18px;top:34px;width:74px;height:74px;
  border:0;background:var(--paper);box-shadow:0 12px 30px rgba(57,44,36,.12)
}
.pearlHero__stamp:before{border-style:solid;opacity:.45}
.pearlHero__caption{
  left:50%;bottom:32px;transform:translateX(-50%);
  padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.82);
  backdrop-filter:none;font-size:15px;white-space:nowrap
}
.pearlHero__pearl{opacity:.65;box-shadow:none}

/* section rhythm */
#story,#schedule,#galleryWrap,#loc,#dresscodeWrap,#rsvp{scroll-margin-top:24px}
.sectionTitle{
  font-size:clamp(38px,4.8vw,62px);
  line-height:1.06;
  letter-spacing:-.025em;
}
.sectionSub{font-size:14px;line-height:1.75}
#story{margin-top:72px}
.storyGrid,.schedule,.iviDress,.iviLoc,#rsvp.rsvpSection,.psGalleryWrap{
  margin-left:clamp(22px,5vw,58px);
  margin-right:clamp(22px,5vw,58px);
}
#story + .sectionTitle,#story + .sectionTitle + .sectionSub,#schedule + .sectionSub,#schedule + .sectionSub + .sectionTitle,#schedule + .sectionSub + .sectionTitle + .sectionSub{
  margin-left:clamp(22px,5vw,58px);margin-right:clamp(22px,5vw,58px)
}
.storyGrid{margin-top:26px;grid-template-columns:1fr 1fr;gap:22px}
.storyCard{
  order:1;
  padding:34px;
  border:1px solid var(--soft-line);
  border-radius:30px;
  background:var(--soft-fill);
}
.storyCard:before{font-size:82px;top:4px;left:16px;opacity:.55}
.storyCard p{font-size:22px;line-height:1.62}
.storySide{order:2;display:flex;flex-direction:column;gap:14px}
.storyPhoto{border-radius:30px;overflow:hidden;background:var(--soft-fill-2)}
.storyPhoto img{height:400px;object-fit:cover}
.miniNotes{gap:12px;background:transparent}
.note{
  border:1px solid var(--soft-line);border-radius:22px;background:var(--paper);padding:17px
}

#schedule{margin-top:78px}
.schedule{
  margin-top:28px;
  padding:10px 24px;
  border:1px solid var(--soft-line);
  border-radius:30px;
  background:var(--soft-fill);
}
.sc-row{
  grid-template-columns:96px 1fr;
  padding:18px 0;
  border-color:var(--soft-line)
}
.sc-time{font-size:28px}
.sc-title{font-size:23px}
.sc-desc{font-size:14px;line-height:1.65}

.iviDress{margin-top:78px}
.iviDressWrap{
  padding:30px;
  border-radius:30px;
  background:var(--soft-fill);
  grid-template-columns:1fr auto;
}
.iviDressTitle{font-size:40px}
.iviDressSwatches{gap:9px}
.iviDressDot{width:46px;height:46px;border-radius:50%;border:4px solid var(--paper);box-shadow:0 0 0 1px var(--soft-line)}

.iviGallery{margin-top:24px!important}
.iviGalleryGrid{gap:14px!important;align-items:start}
.iviGalleryItem{
  border-radius:24px!important;
  overflow:hidden!important;
  box-shadow:none!important;
}
.iviGalleryItem:nth-child(n){grid-column:span 4!important}
.iviGalleryItem img{
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  object-fit:contain!important;
  border-radius:24px!important;
}
.iviGalleryItem:hover img{transform:scale(1.012)}

.iviLoc{margin-top:78px}
.iviLocGrid{gap:16px}
.iviLocCard{
  border-radius:30px;
  overflow:hidden;
  background:var(--paper);
}
.iviLocPhoto img{height:300px}
.iviLocBody{padding:24px}
.iviLocName{font-size:27px}
.iviBtn{border-radius:16px}

#rsvp.rsvpSection{
  margin-top:78px;
  padding:38px;
  border-radius:34px;
  border:1px solid var(--soft-line);
  background:var(--soft-fill-2);
}
#rsvp.rsvpSection h2{font-size:48px}
#rsvp .rsvpFormCard{
  border-radius:26px;
  padding:26px;
  background:var(--paper)
}
#rsvpForm .field,#rsvpForm .chips,#rsvpForm .consent,#rsvp .statusBox,#rsvpForm .btn.btn-full{border-radius:16px}
.psFooterHero{margin-top:78px;padding:50px 20px}

@media(max-width:900px){
  .pearlHero{grid-template-columns:1fr;padding:18px}
  .pearlHero__copy{border-radius:28px;padding:42px 28px 34px}
  .pearlHero__visual{order:-1;min-height:560px;border-radius:28px;padding:18px}
  .photoBlock,.photoBlock img{min-height:520px}
  .pearlHero__stamp{left:2px;top:28px}
  .storyGrid{grid-template-columns:1fr}
  .storySide{order:1}.storyCard{order:2}
  .storyPhoto img{height:360px}
  .iviGalleryItem:nth-child(n){grid-column:span 6!important}
}
@media(max-width:560px){
  .page{padding:8px 6px 24px}
  .paper,.frame{border-radius:24px}
  .pearlHero{padding:10px}
  .pearlHero__copy{padding:34px 18px 28px;border-radius:22px}
  .pearlHero__visual{min-height:420px;border-radius:22px;padding:12px}
  .photoBlock,.photoBlock img{min-height:396px;height:396px}
  .photoBlock{border-radius:44% 44% 20px 20px / 24% 24% 20px 20px}
  .pearlHero__stamp{width:58px;height:58px;left:-2px;top:22px}
  .pearlHero__date{margin-top:26px}.pearlHero__dateDay{font-size:62px}
  .name{font-size:58px}.name:last-child{padding-left:10%}.and{left:6%;font-size:28px}
  .pearlHero__meta{display:grid;grid-template-columns:1fr 1fr}
  .pearlHero__metaItem,.pearlHero__metaItem + .pearlHero__metaItem{min-width:0;padding:11px 12px}
  .timer{padding:14px}.timerGrid{gap:6px}.u{padding:10px 4px}.u .n{font-size:27px}
  .storyGrid,.schedule,.iviDress,.iviLoc,#rsvp.rsvpSection,.psGalleryWrap,#story + .sectionTitle,#story + .sectionTitle + .sectionSub,#schedule + .sectionSub,#schedule + .sectionSub + .sectionTitle,#schedule + .sectionSub + .sectionTitle + .sectionSub{margin-left:14px;margin-right:14px}
  .sectionTitle{font-size:38px}.sectionSub{font-size:13px}
  .storyCard{padding:26px 20px}.storyCard p{font-size:19px}.storyPhoto img{height:auto;max-height:none;object-fit:contain}
  .miniNotes{grid-template-columns:1fr}
  .schedule{padding:8px 16px}.sc-row{grid-template-columns:72px 1fr}.sc-time{font-size:23px}.sc-title{font-size:21px}
  .iviDressWrap{padding:24px 20px;grid-template-columns:1fr}.iviDressSwatches{grid-column:1}.iviDressTitle{font-size:34px}
  .iviGalleryItem:nth-child(n){grid-column:span 12!important}.iviGalleryItem{border-radius:20px!important}.iviGalleryItem img{border-radius:20px!important}
  .iviLocPhoto img{height:auto;max-height:none;object-fit:contain}
  #rsvp.rsvpSection{padding:26px 16px}#rsvp.rsvpSection h2{font-size:38px}
}

/* =========================================================
   PEARL SCRIPT 4.1 — DATA + SECTION SYSTEM FIX
========================================================= */
.psSectionHead{
  margin:78px clamp(22px,5vw,58px) 0;
  max-width:760px;
  position:relative;
  padding-left:22px;
}
.psSectionHead:before{
  content:"";
  position:absolute;
  left:0;
  top:4px;
  bottom:4px;
  width:3px;
  border-radius:999px;
  background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent2) 72%,var(--accent) 28%));
}
.psSectionHead__label{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 10px;
  color:var(--accent);
  font-size:10px;
  font-weight:700;
  letter-spacing:.24em;
  text-transform:uppercase;
}
.psSectionHead__label:after{
  content:"";
  width:42px;
  height:1px;
  background:color-mix(in srgb,var(--accent) 52%,transparent);
}
.psSectionHead__title{
  margin:0;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(42px,5vw,66px);
  font-weight:500;
  line-height:1;
  letter-spacing:-.035em;
  color:var(--ink);
}
.psSectionHead__text{
  margin:14px 0 0;
  max-width:62ch;
  color:var(--muted);
  font-size:15px;
  line-height:1.75;
}

/* schedule uses current studio items directly */
#schedule + .psSectionHead{margin-top:78px}
.schedule{
  display:flex!important;
  flex-direction:column!important;
  visibility:visible!important;
  opacity:1!important;
  margin-top:28px!important;
  padding:10px 26px!important;
  background:var(--soft-fill)!important;
  border:1px solid var(--soft-line)!important;
  border-radius:30px!important;
}
.schedule .sc-row{
  display:grid!important;
  grid-template-columns:94px minmax(0,1fr)!important;
  gap:20px!important;
  padding:20px 0!important;
  border-bottom:1px solid var(--soft-line)!important;
}
.schedule .sc-row:last-child{border-bottom:0!important}
.schedule .sc-time{display:block!important;color:var(--accent)!important;font-size:29px!important}
.schedule .sc-content{display:block!important}
.schedule .sc-title{font-size:24px!important;color:var(--ink)!important}
.schedule .sc-desc{font-size:14px!important;color:var(--muted)!important}

/* gallery is a real composition, no shared-block ambiguity */
.psGallerySection{margin-top:0}
.psGalleryGrid{
  margin:28px clamp(22px,5vw,58px) 0;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:18px;
  align-items:start;
}
.psGalleryPhoto{
  margin:0;
  grid-column:span 4;
  overflow:hidden;
  border-radius:28px;
  background:var(--soft-fill);
}
.psGalleryPhoto a{display:block;text-decoration:none}
.psGalleryPhoto img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter 1.2s ease;
}
.psGalleryPhoto:hover img{transform:scale(1.018);filter:saturate(1.03)}
.psGalleryPhoto figcaption{
  padding:12px 16px 15px;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}
.psGalleryGrid--count-1 .psGalleryPhoto{grid-column:3 / span 8}
.psGalleryGrid--count-2 .psGalleryPhoto{grid-column:span 6}
.psGalleryGrid--count-3 .psGalleryPhoto:first-child{grid-column:span 6}
.psGalleryGrid--count-3 .psGalleryPhoto:nth-child(n+2){grid-column:span 3}
.psGalleryPhoto--2{margin-top:44px}
.psGalleryPhoto--4{margin-top:28px}

@media(max-width:760px){
  .psSectionHead{margin-top:62px;padding-left:16px}
  .psSectionHead__title{font-size:42px}
  .psSectionHead__text{font-size:14px}
  .schedule .sc-row{grid-template-columns:72px minmax(0,1fr)!important;gap:12px!important}
  .schedule .sc-time{font-size:23px!important}
  .schedule .sc-title{font-size:21px!important}
  .psGalleryGrid{grid-template-columns:1fr;gap:14px}
  .psGalleryGrid .psGalleryPhoto,
  .psGalleryGrid--count-1 .psGalleryPhoto,
  .psGalleryGrid--count-2 .psGalleryPhoto,
  .psGalleryGrid--count-3 .psGalleryPhoto:first-child,
  .psGalleryGrid--count-3 .psGalleryPhoto:nth-child(n+2){grid-column:auto;margin-top:0}
}

/* =========================================================
   PEARL SCRIPT 4.2 — LOCATION / GALLERY / DRESS SYSTEM
========================================================= */
.psLocationSection,
.psDressSection{position:relative}

/* The shared location block keeps only the useful cards. */
.psLocationSection #loc .iviLoc > .iviLocKicker,
.psLocationSection #loc .iviLoc > .iviLocTitle,
.psLocationSection #loc .iviLoc > .iviLocText,
.psLocationSection #loc .iviLoc > .sectionTitle,
.psLocationSection #loc .iviLoc > .sectionSub,
.psLocationSection #loc .iviLocHead,
.psLocationSection #loc .iviLocHeader{display:none!important}
.psLocationSection #loc .iviLoc{margin-top:28px!important}
.psLocationSection #loc .iviLocGrid{gap:18px!important;align-items:stretch}
.psLocationSection #loc .iviLocCard{
  border:1px solid var(--soft-line)!important;
  border-radius:30px!important;
  overflow:hidden!important;
  background:var(--paper)!important;
  box-shadow:0 18px 48px color-mix(in srgb,var(--ink) 7%,transparent)!important;
}
.psLocationSection #loc .iviLocPhoto{overflow:hidden!important;background:var(--soft-fill)!important}
.psLocationSection #loc .iviLocPhoto img{height:330px!important;object-fit:cover!important;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)!important}
.psLocationSection #loc .iviLocCard:hover .iviLocPhoto img{transform:scale(1.025)}
.psLocationSection #loc .iviLocBody{padding:24px!important}
.psLocationSection #loc .iviLocLabel,
.psLocationSection #loc .iviLocType{
  display:inline-flex!important;
  margin:0 0 12px!important;
  color:var(--accent)!important;
  font-size:10px!important;
  font-weight:800!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
}
.psLocationSection #loc .iviLocName{
  margin:0 0 8px!important;
  font-family:"Cormorant Garamond",Georgia,serif!important;
  font-size:clamp(30px,3vw,40px)!important;
  line-height:1!important;
  color:var(--ink)!important;
}
.psLocationSection #loc .iviLocAddress,
.psLocationSection #loc .iviLocNote{font-size:14px!important;line-height:1.65!important;color:var(--muted)!important}
.psLocationSection #loc .iviLocActions{gap:10px!important;margin-top:20px!important}
.psLocationSection #loc .iviBtn{min-height:48px!important;border-radius:16px!important}

/* Gallery header always uses a true label followed by the title. */
.psGallerySection .psSectionHead__label{min-height:14px}
.psGallerySection .psGalleryGrid{margin-top:32px}
.psGallerySection .psGalleryPhoto{
  border-radius:30px;
  box-shadow:0 16px 44px color-mix(in srgb,var(--ink) 7%,transparent);
  background:transparent;
}

/* Dress code becomes an independent editorial section. */
.psDressCard{
  margin:30px clamp(22px,5vw,58px) 0;
  padding:34px;
  display:grid;
  grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);
  gap:38px;
  align-items:center;
  border:1px solid var(--soft-line);
  border-radius:34px;
  background:linear-gradient(135deg,var(--soft-fill),color-mix(in srgb,var(--accent2) 5%,var(--paper) 95%));
}
.psDressCard__eyebrow{display:block;margin-bottom:12px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.psDressCard__copy p{margin:0;max-width:34ch;color:var(--muted);font-size:15px;line-height:1.75}
.psDressPalette{display:grid;grid-template-columns:repeat(var(--swatches,5),minmax(54px,1fr));gap:10px;align-items:end}
.psDressSwatch{display:grid;gap:9px;min-width:0;text-align:center}
.psDressSwatch i{
  display:block;
  height:128px;
  border-radius:999px 999px 22px 22px;
  background:var(--swatch);
  border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);
  box-shadow:inset 0 1px rgba(255,255,255,.7),0 12px 28px color-mix(in srgb,var(--swatch) 22%,transparent);
  transition:transform .65s cubic-bezier(.2,.7,.2,1),border-radius .65s ease;
}
.psDressSwatch:hover i{transform:translateY(-7px);border-radius:30px 30px 999px 999px}
.psDressSwatch b{font-size:9px;font-weight:700;letter-spacing:.16em;color:var(--muted)}

@media(max-width:760px){
  .psDressCard{margin-left:14px;margin-right:14px;padding:24px;grid-template-columns:1fr;gap:24px}
  .psDressPalette{grid-template-columns:repeat(5,1fr);gap:7px}
  .psDressSwatch i{height:82px;border-radius:999px 999px 16px 16px}
  .psLocationSection #loc .iviLoc{margin-left:14px!important;margin-right:14px!important}
  .psLocationSection #loc .iviLocPhoto img{height:260px!important}
  .psLocationSection #loc .iviLocBody{padding:20px!important}
}

/* =========================================================
   PEARL SCRIPT 4.3 — STRICT STUDIO DATA + PROGRAM FIX
========================================================= */
/* Program HTML has three children: time, rail, content. */
.schedule{
  overflow:visible!important;
  min-height:0!important;
}
.schedule .sc-row{
  grid-template-columns:94px 22px minmax(0,1fr)!important;
  gap:14px!important;
  align-items:stretch!important;
  position:relative!important;
}
.schedule .sc-line{
  display:block!important;
  position:relative!important;
  min-height:72px!important;
}
.schedule .sc-line:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:0!important;
  bottom:-20px!important;
  width:1px!important;
  transform:translateX(-50%)!important;
  background:color-mix(in srgb,var(--accent) 34%,transparent)!important;
}
.schedule .sc-line:after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:9px!important;
  width:10px!important;
  height:10px!important;
  border-radius:50%!important;
  transform:translate(-50%,-50%)!important;
  background:var(--paper)!important;
  border:3px solid var(--accent)!important;
  box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 10%,transparent)!important;
}
.schedule .sc-row:last-child .sc-line:before{bottom:calc(100% - 10px)!important}
.schedule .sc-content{
  display:block!important;
  padding:3px 0 20px!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  text-align:left!important;
  min-width:0!important;
}
.schedule .sc-title{margin:0 0 6px!important;text-transform:none!important;letter-spacing:0!important;font-weight:700!important}
.schedule .sc-desc{margin:0!important}

/* One visual language for every section heading. */
.psLocationSection>.psSectionHead,
.psGallerySection>.psSectionHead,
.psDressSection>.psSectionHead,
.psRsvpSection>.psSectionHead{max-width:820px}

/* Dress code contains only studio content and palette. */
.psDressCard--paletteOnly{
  grid-template-columns:1fr!important;
  padding:34px clamp(22px,5vw,48px)!important;
}
.psDressCard--paletteOnly .psDressPalette{
  width:min(720px,100%);
  margin:0 auto;
}
.psDressCard__copy{display:none!important}

/* Shared RSVP headings are replaced by the template heading above. */
.psRsvpSection #rsvp .rsvpKicker,
.psRsvpSection #rsvp .rsvpTitle,
.psRsvpSection #rsvp .rsvpText,
.psRsvpSection #rsvp > h2,
.psRsvpSection #rsvp > p:first-of-type{display:none!important}
.psRsvpSection #rsvp.rsvpSection{margin-top:28px!important}

@media(max-width:760px){
  .schedule .sc-row{grid-template-columns:62px 18px minmax(0,1fr)!important;gap:9px!important}
  .schedule .sc-time{font-size:20px!important}
  .schedule .sc-title{font-size:19px!important}
  .schedule .sc-desc{font-size:13px!important}
  .psDressCard--paletteOnly{padding:24px 16px!important}
}

/* =========================================================
   PEARL SCRIPT 5.0 — SOFT HERO / TRUE STUDIO TEXT / RSVP
========================================================= */
.pearlHero{
  background:
    radial-gradient(520px 360px at 84% 10%,var(--hero-glow),transparent 72%),
    linear-gradient(145deg,var(--hero-fill),var(--paper));
}
.pearlHero__copy{
  align-items:flex-start;
}
.pearlHero__eyebrow{
  color:var(--accent);
}
.names{
  width:100%;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:18px;
  margin:44px 0 24px;
}
.name,
.name:last-child{
  padding:0;
  margin:0;
  text-align:center;
  font-family:"Marck Script",cursive!important;
  font-size:clamp(68px,7.8vw,112px)!important;
  line-height:.92!important;
  font-weight:400!important;
  letter-spacing:-.025em!important;
  color:var(--script-color)!important;
  text-wrap:balance;
}
.and{
  position:static!important;
  inset:auto!important;
  margin:0!important;
  opacity:1!important;
  transform:none!important;
  font-family:"Cormorant Garamond",serif!important;
  font-size:42px!important;
  color:var(--accent)!important;
}
.pearlHero__visual{
  background:
    radial-gradient(320px 280px at 86% 12%,var(--hero-glow),transparent 72%),
    var(--hero-fill)!important;
}
.photoBlock{
  border-radius:var(--hero-radius)!important;
  transition:border-radius 1.25s cubic-bezier(.2,.72,.2,1),box-shadow 1.25s ease!important;
}
.photoBlock:after{border-radius:inherit!important}
.pearlHero__stamp{display:none!important}
.pearlHero__caption{
  color:var(--ink);
  border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);
}

/* Dress code: show all normalized studio/theme texts and keep line breaks. */
.psDressSection .psSectionHead__text{white-space:pre-line}
.psDressCard--paletteOnly{margin-top:28px!important}

/* RSVP: only one editorial heading. Hide every heading wrapper from shared block,
   while keeping the actual form and status messages visible. */
.psRsvpSection #rsvp > header,
.psRsvpSection #rsvp .rsvpHead,
.psRsvpSection #rsvp .rsvpHeader,
.psRsvpSection #rsvp .rsvpIntro,
.psRsvpSection #rsvp .rsvpHero,
.psRsvpSection #rsvp .rsvpLead,
.psRsvpSection #rsvp .rsvpCopy,
.psRsvpSection #rsvp .rsvpKicker,
.psRsvpSection #rsvp .rsvpTitle,
.psRsvpSection #rsvp .rsvpText,
.psRsvpSection #rsvp > .badge,
.psRsvpSection #rsvp > h1,
.psRsvpSection #rsvp > h2,
.psRsvpSection #rsvp > h3,
.psRsvpSection #rsvp > p:first-of-type{
  display:none!important;
}
.psRsvpSection #rsvp.rsvpSection{
  padding:0!important;
  border:0!important;
  background:transparent!important;
  margin-top:28px!important;
}
.psRsvpSection #rsvp .rsvpGrid{
  max-width:880px;
  margin:0 auto!important;
}
.psRsvpSection #rsvp .rsvpFormCard{
  border:1px solid var(--soft-line)!important;
  background:linear-gradient(145deg,var(--paper),var(--soft-fill))!important;
  box-shadow:0 22px 56px color-mix(in srgb,var(--ink) 7%,transparent)!important;
}

/* Each theme changes the hero silhouette, not only its color. */
body[data-theme="lemon"] .photoBlock{--hero-radius:48% 48% 24px 24px / 28% 28% 24px 24px}
body[data-theme="terracotta"] .photoBlock{--hero-radius:36px 180px 36px 180px / 36px 120px 36px 120px}
body[data-theme="sage"] .photoBlock{--hero-radius:46% 46% 46% 18px / 24% 24% 40% 18px}
body[data-theme="blush"] .photoBlock{--hero-radius:220px 220px 42px 42px / 150px 150px 42px 42px}
body[data-theme="cocoa"] .photoBlock{--hero-radius:28px 160px 28px 160px}
body[data-theme="moon"] .photoBlock{--hero-radius:48% 48% 48% 48% / 38% 38% 38% 38%}
body[data-theme="sand"] .photoBlock{--hero-radius:170px 30px 170px 30px}
body[data-theme="ink"] .photoBlock{--hero-radius:8px}
body[data-theme="blue-porcelain"] .photoBlock{--hero-radius:190px 190px 30px 30px / 120px 120px 30px 30px}
body[data-theme="olive-gold"] .photoBlock{--hero-radius:44% 44% 20px 20px / 22% 22% 20px 20px}
body[data-theme="pearl-mist"] .photoBlock{--hero-radius:50% 50% 34px 34px / 30% 30% 34px 34px}
body[data-theme="peach-silk"] .photoBlock{--hero-radius:34px 210px 34px 210px / 34px 130px 34px 130px}
body[data-theme="lavender-milk"] .photoBlock{--hero-radius:46% 46% 18% 18% / 28% 28% 18% 18%}
body[data-theme="pistachio-cream"] .photoBlock{--hero-radius:180px 28px 180px 28px / 130px 28px 130px 28px}
body[data-theme="seafoam-pearl"] .photoBlock{--hero-radius:52% 48% 40% 60% / 34% 42% 58% 66%}

@media(max-width:760px){
  .names{grid-template-columns:1fr;gap:2px;margin:34px 0 22px}
  .name,.name:last-child{font-size:clamp(56px,18vw,78px)!important;text-align:center!important}
  .and{font-size:30px!important;line-height:.7}
  .psRsvpSection #rsvp .rsvpFormCard{padding:20px!important}
}


/* =========================================================
   PEARL SCRIPT 5.1 — HERO NAME FIT + DC_TEXT FIX
========================================================= */
.pearlHero__copy{
  min-width:0;
  overflow:hidden;
}
.names{
  width:100%!important;
  max-width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:0!important;
  margin:42px 0 26px!important;
  container-type:inline-size;
  overflow:visible!important;
}
.name,
.name:last-child{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  font-family:"Marck Script",cursive!important;
  font-size:clamp(52px,14cqw,88px)!important;
  line-height:.92!important;
  letter-spacing:-.035em!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  color:var(--script-color)!important;
}
.name:first-child{text-align:left!important;padding-right:8%!important}
.name:last-child{text-align:right!important;padding-left:8%!important}
.name span{display:block;max-width:100%}
.and{
  position:static!important;
  align-self:center!important;
  margin:-2px 0 -4px!important;
  font-size:34px!important;
  line-height:1!important;
  transform:none!important;
}

.psDressSection .psSectionHead__text{
  white-space:pre-line!important;
  max-width:72ch!important;
}

@media(max-width:760px){
  .names{margin:30px 0 22px!important}
  .name,.name:last-child{
    font-size:clamp(48px,16cqw,72px)!important;
    text-align:center!important;
    padding:0!important;
  }
  .and{font-size:28px!important;margin:-2px 0!important}
}

/* =========================================================
   PEARL SCRIPT 5.3 — CALENDAR DATE + SIGNATURE COUNTDOWN
========================================================= */
.pearlHero__date{
  position:relative!important;
  display:inline-grid!important;
  grid-template-columns:auto auto!important;
  align-items:center!important;
  gap:15px!important;
  width:max-content!important;
  max-width:100%!important;
  margin-top:34px!important;
  padding:12px 20px 12px 13px!important;
  border:1px solid color-mix(in srgb,var(--accent) 26%,transparent)!important;
  border-radius:26px!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--paper) 90%,var(--accent) 10%),var(--paper))!important;
  box-shadow:0 16px 34px color-mix(in srgb,var(--ink) 7%,transparent)!important;
  overflow:hidden;
}
.pearlHero__date:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,var(--accent),var(--accent2));
}
.pearlHero__date:after{
  content:"";
  position:absolute;
  width:76px;height:76px;
  right:-34px;top:-38px;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);
  pointer-events:none;
}
.pearlHero__dateDay{
  min-width:72px!important;
  font-family:"Cormorant Garamond",serif!important;
  font-size:clamp(64px,7vw,92px)!important;
  font-weight:500!important;
  line-height:.72!important;
  letter-spacing:-.065em!important;
  color:var(--accent)!important;
  text-align:center;
}
.pearlHero__dateWords{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  padding-right:8px;
}
.pearlHero__dateWords strong{
  font-family:"Cormorant Garamond",serif;
  font-size:25px;
  font-weight:600;
  line-height:1;
  color:var(--ink);
  text-transform:lowercase;
}
.pearlHero__dateWords em{
  font-style:normal;
  font-size:10px;
  font-weight:700;
  letter-spacing:.28em;
  color:var(--muted);
}
.pearlHero__dateFallback{
  padding:8px 10px;
  font-family:"Cormorant Garamond",serif;
  font-size:28px;
  color:var(--ink);
}

.timer{
  position:relative!important;
  margin-top:28px!important;
  padding:18px 18px 16px!important;
  border:1px solid color-mix(in srgb,var(--accent) 22%,transparent)!important;
  border-radius:28px!important;
  background:
    radial-gradient(180px 90px at 0 0,color-mix(in srgb,var(--accent) 12%,transparent),transparent 72%),
    linear-gradient(145deg,var(--paper),color-mix(in srgb,var(--paper) 88%,var(--accent) 12%))!important;
  box-shadow:0 18px 42px color-mix(in srgb,var(--ink) 7%,transparent)!important;
  overflow:hidden;
}
.timer:before{
  content:"";
  position:absolute;
  left:18px;right:18px;top:0;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--accent),var(--accent2),transparent);
  opacity:.75;
}
.timerTop{display:flex;align-items:center;gap:10px!important}
.timerTop:before{
  content:"♡";
  width:28px;height:28px;
  display:grid;place-items:center;
  border-radius:50%;
  background:var(--accent);
  color:#fff;
  font-size:14px;
  box-shadow:0 8px 18px color-mix(in srgb,var(--accent) 28%,transparent);
}
.timerTop .pill{
  padding:0!important;
  font-size:9px!important;
  font-weight:800!important;
  letter-spacing:.22em!important;
  text-transform:uppercase!important;
  color:var(--muted)!important;
}
.timerGrid{
  position:relative;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:15px!important;
}
.timerGrid .u,
.u{
  position:relative;
  min-width:0!important;
  padding:15px 7px 12px!important;
  border:0!important;
  border-radius:20px!important;
  background:color-mix(in srgb,var(--paper) 92%,var(--accent) 8%)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent)!important;
  text-align:center!important;
  overflow:hidden;
}
.timerGrid .u:not(:last-child):after{
  content:"";
  position:absolute;
  width:3px;height:3px;
  right:-7px;top:50%;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 8px 0 var(--accent);
  opacity:.65;
}
.timerGrid .u .n,
.u .n{
  font-family:"Cormorant Garamond",serif!important;
  font-size:clamp(31px,3vw,43px)!important;
  font-weight:500!important;
  line-height:.82!important;
  letter-spacing:-.04em!important;
  color:var(--accent)!important;
  font-variant-numeric:tabular-nums;
}
.timerGrid .u .l,
.u .l{
  margin-top:8px!important;
  font-size:7px!important;
  font-weight:700!important;
  letter-spacing:.19em!important;
  text-transform:uppercase!important;
  color:var(--muted)!important;
}

/* Names are always visible. Any cursor/typewriter leftovers are suppressed. */
.names .name span{opacity:1!important;visibility:visible!important}
.names .name span:after,.names .name span:before{display:none!important;animation:none!important}
.and{opacity:1!important}

@media(max-width:760px){
  .pearlHero__date{margin-top:26px!important;padding:10px 16px 10px 11px!important;border-radius:23px!important}
  .pearlHero__dateDay{min-width:58px!important;font-size:58px!important}
  .pearlHero__dateWords strong{font-size:21px}
  .pearlHero__dateWords em{font-size:9px}
  .timer{padding:15px 13px 13px!important;border-radius:23px!important}
  .timerGrid{gap:6px!important}
  .timerGrid .u,.u{padding:12px 3px 10px!important;border-radius:16px!important}
  .timerGrid .u .n,.u .n{font-size:29px!important}
  .timerGrid .u .l,.u .l{font-size:6px!important;letter-spacing:.12em!important}
  .timerGrid .u:not(:last-child):after{display:none}
}

/* =========================================================
   PEARL SCRIPT 5.4 — HERO LOCATION INSTEAD OF META CARDS
========================================================= */
.and{
  margin-top:8px!important;
  margin-bottom:8px!important;
}
.pearlHero__meta{display:none!important}
.pearlHero__location{
  width:min(100%,520px);
  margin-top:30px;
  padding:17px 20px;
  display:flex;
  align-items:center;
  gap:15px;
  border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);
  border-radius:24px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--paper) 94%,var(--accent) 6%),var(--paper));
  box-shadow:0 16px 38px color-mix(in srgb,var(--ink) 6%,transparent);
}
.pearlHero__locationIcon{
  flex:0 0 48px;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:color-mix(in srgb,var(--accent) 12%,var(--paper));
  color:var(--accent);
  font-size:19px;
}
.pearlHero__locationCopy{min-width:0;display:grid;gap:3px}
.pearlHero__locationCopy span{
  font-size:9px;
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--accent);
}
.pearlHero__locationCopy strong{
  font-family:"Cormorant Garamond",serif;
  font-size:23px;
  font-weight:600;
  line-height:1.08;
  color:var(--ink);
  overflow-wrap:anywhere;
}
.pearlHero__locationCopy em{
  font-style:normal;
  font-size:13px;
  line-height:1.4;
  color:var(--muted);
}
@media(max-width:760px){
  .and{margin-top:8px!important;margin-bottom:8px!important}
  .pearlHero__location{margin-top:24px;padding:14px 15px;border-radius:20px;gap:12px}
  .pearlHero__locationIcon{flex-basis:42px;width:42px;height:42px;border-radius:15px}
  .pearlHero__locationCopy strong{font-size:20px}
}

/* Pearl Script 5.5: Russian-only labels, clean story and single RSVP heading */
.psRsvpSection #rsvp > header,
.psRsvpSection #rsvp .sectionHead,
.psRsvpSection #rsvp .section-head,
.psRsvpSection #rsvp .blockHead,
.psRsvpSection #rsvp .block-head,
.psRsvpSection #rsvp .rsvpKicker,
.psRsvpSection #rsvp .rsvpTitle,
.psRsvpSection #rsvp .rsvpText,
.psRsvpSection #rsvp .sectionKicker,
.psRsvpSection #rsvp .sectionTitle,
.psRsvpSection #rsvp .sectionSub,
.psRsvpSection #rsvp .blockLabel,
.psRsvpSection #rsvp .blockTitle,
.psRsvpSection #rsvp .blockText,
.psRsvpSection #rsvp > h1,
.psRsvpSection #rsvp > h2,
.psRsvpSection #rsvp > h3,
.psRsvpSection #rsvp > p:first-of-type {
  display:none!important;
}
.storySide{align-self:start}
.storySide .storyPhoto{margin-bottom:0}
.psGalleryPhoto a{display:block;cursor:zoom-in}
.psGalleryPhoto a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}


/* ivilove brand-aware button colors */
.btn,
.button,
button[type="submit"],
input[type="submit"],
.ps-btn,
.rsvp-submit,
.location-btn,
.loc-btn,
.mapBtn,
.calendarBtn,
#rsvpForm .btn.btn-full {
  background: var(--button-bg, var(--accent)) !important;
  border-color: var(--button-border, var(--button-bg, var(--accent))) !important;
  color: var(--button-text, #fff) !important;
}

.btn:hover,
.button:hover,
button[type="submit"]:hover,
input[type="submit"]:hover,
.ps-btn:hover,
.rsvp-submit:hover,
.location-btn:hover,
.loc-btn:hover,
.mapBtn:hover,
.calendarBtn:hover,
#rsvpForm .btn.btn-full:hover {
  background: var(--button-bg-hover, var(--accent2)) !important;
  border-color: var(--button-bg-hover, var(--accent2)) !important;
  color: var(--button-text, #fff) !important;
}

/* =========================================================
   Pearl Script 5.7 — expressive schedule cards
   ========================================================= */
.schedule{
  position:relative;
  display:flex!important;
  flex-direction:column!important;
  gap:16px!important;
  margin-top:30px!important;
  padding:24px!important;
  border:1px solid color-mix(in srgb,var(--accent) 24%,transparent)!important;
  border-radius:34px!important;
  background:
    radial-gradient(circle at 9% 0%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 26%),
    var(--soft-fill)!important;
  overflow:hidden;
}
.schedule::before{
  content:"";
  position:absolute;
  left:145px;
  top:64px;
  bottom:64px;
  width:2px;
  border-radius:999px;
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--accent) 18%,transparent),
    color-mix(in srgb,var(--accent) 72%,transparent) 24%,
    color-mix(in srgb,var(--accent) 72%,transparent) 76%,
    color-mix(in srgb,var(--accent) 18%,transparent));
}
.sc-row{
  position:relative;
  z-index:1;
  display:grid!important;
  grid-template-columns:92px 58px minmax(0,1fr)!important;
  align-items:center!important;
  gap:0!important;
  min-height:118px;
  padding:10px 0!important;
  border:0!important;
  opacity:0;
  transform:translateY(14px);
  animation:psScheduleIn .72s cubic-bezier(.2,.75,.25,1) forwards;
  animation-delay:var(--sc-delay,0ms);
}
.sc-time{
  padding:0 18px 0 0!important;
  text-align:right!important;
  color:var(--accent)!important;
  font-family:"Cormorant Garamond",Georgia,serif!important;
  font-size:clamp(28px,2.8vw,40px)!important;
  font-weight:500;
  line-height:1!important;
  letter-spacing:.02em!important;
  opacity:1!important;
  font-variant-numeric:tabular-nums;
}
.sc-rail{
  position:relative;
  display:grid;
  place-items:center;
  align-self:stretch;
}
.sc-icon{
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border-radius:50%;
  color:var(--accent);
  background:var(--paper);
  border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);
  box-shadow:
    0 0 0 8px color-mix(in srgb,var(--accent) 8%,transparent),
    0 12px 30px color-mix(in srgb,var(--accent) 14%,transparent);
  transition:transform .55s cubic-bezier(.2,.8,.2,1),box-shadow .55s ease,background .55s ease,color .55s ease;
}
.sc-icon svg{
  width:27px;
  height:27px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.sc-content{
  min-height:96px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  margin-left:24px;
  padding:22px 26px!important;
  text-align:left!important;
  border:1px solid color-mix(in srgb,var(--accent) 18%,transparent)!important;
  border-radius:24px!important;
  background:color-mix(in srgb,var(--paper) 94%,var(--accent) 6%)!important;
  box-shadow:0 14px 40px rgba(45,31,34,.045);
  transition:transform .55s cubic-bezier(.2,.8,.2,1),border-color .55s ease,box-shadow .55s ease;
}
.sc-title{
  margin:0!important;
  color:var(--ink)!important;
  font-family:"Cormorant Garamond",Georgia,serif!important;
  font-size:clamp(25px,2.4vw,34px)!important;
  font-weight:600!important;
  line-height:1.08!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
.sc-desc{
  margin:7px 0 0!important;
  color:var(--muted)!important;
  font-size:15px!important;
  line-height:1.6!important;
}
.sc-row:hover .sc-icon{
  transform:translateY(-3px) scale(1.055);
  color:#fff;
  background:var(--accent);
  box-shadow:
    0 0 0 10px color-mix(in srgb,var(--accent) 10%,transparent),
    0 18px 34px color-mix(in srgb,var(--accent) 24%,transparent);
}
.sc-row:hover .sc-content{
  transform:translateX(5px);
  border-color:color-mix(in srgb,var(--accent) 38%,transparent)!important;
  box-shadow:0 18px 46px color-mix(in srgb,var(--accent) 10%,transparent);
}
@keyframes psScheduleIn{
  to{opacity:1;transform:none}
}
@media(max-width:700px){
  .schedule{
    padding:18px 14px!important;
    border-radius:26px!important;
    gap:10px!important;
  }
  .schedule::before{
    left:100px;
    top:55px;
    bottom:55px;
  }
  .sc-row{
    grid-template-columns:68px 42px minmax(0,1fr)!important;
    min-height:104px;
  }
  .sc-time{
    padding-right:12px!important;
    font-size:25px!important;
  }
  .sc-icon{
    width:42px;
    height:42px;
    box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 8%,transparent);
  }
  .sc-icon svg{width:21px;height:21px}
  .sc-content{
    min-height:82px;
    margin-left:14px;
    padding:17px 16px!important;
    border-radius:20px!important;
  }
  .sc-title{font-size:23px!important}
  .sc-desc{font-size:13px!important;line-height:1.5!important}
}
@media(prefers-reduced-motion:reduce){
  .sc-row{opacity:1;transform:none;animation:none}
  .sc-icon,.sc-content{transition:none}
}

/* =========================================================
   Pearl Script 5.8 — perfectly aligned schedule rail
   ========================================================= */
.schedule::before{
  display:none!important;
}
.schedule .sc-rail{
  position:relative!important;
  align-self:stretch!important;
  display:grid!important;
  place-items:center!important;
}
.schedule .sc-rail::before{
  content:"";
  position:absolute;
  z-index:0;
  left:50%;
  top:-50%;
  bottom:-50%;
  width:2px;
  transform:translateX(-50%);
  border-radius:999px;
  background:linear-gradient(
    180deg,
    color-mix(in srgb,var(--accent) 16%,transparent),
    color-mix(in srgb,var(--accent) 68%,transparent) 24%,
    color-mix(in srgb,var(--accent) 68%,transparent) 76%,
    color-mix(in srgb,var(--accent) 16%,transparent)
  );
}
.schedule .sc-row:first-child .sc-rail::before{
  top:50%;
}
.schedule .sc-row:last-child .sc-rail::before{
  bottom:50%;
}
.schedule .sc-icon{
  z-index:2!important;
}

/* =========================================================
   Pearl Script 5.9 — rail locked to the exact icon centre
   ========================================================= */
.schedule .sc-rail::before{
  display:none!important;
}
.schedule .sc-icon::before,
.schedule .sc-icon::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:50%;
  width:2px;
  transform:translateX(-50%);
  background:color-mix(in srgb,var(--accent) 54%,transparent);
  pointer-events:none;
}
.schedule .sc-icon::before{
  bottom:50%;
  height:calc(50% + 70px);
}
.schedule .sc-icon::after{
  top:50%;
  height:calc(50% + 70px);
}
.schedule .sc-row:first-child .sc-icon::before{
  display:none;
}
.schedule .sc-row:last-child .sc-icon::after{
  display:none;
}
.schedule .sc-icon{
  isolation:isolate;
}
@media(max-width:700px){
  .schedule .sc-icon::before{
    height:calc(50% + 58px);
  }
  .schedule .sc-icon::after{
    height:calc(50% + 58px);
  }
}

/* =========================================================
   Pearl Script 6.0 — clean schedule without connector lines
   ========================================================= */
.schedule::before,
.schedule .sc-line::before,
.schedule .sc-line::after,
.schedule .sc-rail::before,
.schedule .sc-rail::after,
.schedule .sc-icon::before,
.schedule .sc-icon::after{
  content:none!important;
  display:none!important;
}
.schedule .sc-icon{
  isolation:auto!important;
  z-index:2!important;
}

/* =========================================================
   Pearl Script 6.1 — centred schedule composition
   ========================================================= */
.schedule{
  padding:30px 34px!important;
  gap:0!important;
}
.schedule .sc-row{
  width:min(100%,920px)!important;
  margin:0 auto!important;
  grid-template-columns:120px 76px minmax(0,1fr)!important;
  align-items:center!important;
  justify-content:center!important;
  column-gap:26px!important;
  min-height:138px!important;
  padding:18px 0!important;
  border-bottom:1px solid color-mix(in srgb,var(--accent) 22%,transparent)!important;
}
.schedule .sc-row:last-child{
  border-bottom:0!important;
}
.schedule .sc-time{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  padding:0!important;
  margin:0!important;
  text-align:center!important;
  font-size:clamp(30px,2.8vw,40px)!important;
  line-height:1!important;
}
.schedule .sc-rail{
  width:76px!important;
  min-width:76px!important;
  height:76px!important;
  display:grid!important;
  place-items:center!important;
  align-self:center!important;
}
.schedule .sc-icon{
  width:62px!important;
  height:62px!important;
  margin:0!important;
}
.schedule .sc-content{
  min-height:100px!important;
  width:100%!important;
  margin:0!important;
  padding:24px 30px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.schedule .sc-title{
  width:100%!important;
  text-align:center!important;
}
.schedule .sc-desc{
  width:100%!important;
  max-width:620px!important;
  margin:9px auto 0!important;
  text-align:center!important;
}
.schedule .sc-row:hover .sc-content{
  transform:translateY(-3px)!important;
}

@media(max-width:760px){
  .schedule{
    padding:22px 14px!important;
  }
  .schedule .sc-row{
    grid-template-columns:1fr!important;
    row-gap:14px!important;
    min-height:0!important;
    padding:26px 0!important;
  }
  .schedule .sc-time{
    font-size:29px!important;
  }
  .schedule .sc-rail{
    width:64px!important;
    min-width:64px!important;
    height:64px!important;
    margin:0 auto!important;
  }
  .schedule .sc-icon{
    width:54px!important;
    height:54px!important;
  }
  .schedule .sc-content{
    min-height:0!important;
    padding:20px 18px!important;
  }
  .schedule .sc-title{
    font-size:25px!important;
  }
  .schedule .sc-desc{
    font-size:14px!important;
    line-height:1.55!important;
  }
}


/* =========================================================
   STORY: WITH PHOTO / TEXT ONLY
========================================================= */
.storyGrid--with-photo{
  grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
  gap:18px;
  align-items:stretch;
}

.storyGrid--with-photo .storyCard,
.storyGrid--with-photo .storySide,
.storyGrid--with-photo .storyPhoto{
  min-height:360px;
}

.storyGrid--with-photo .storyCard{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(28px,4vw,54px);
}

.storyGrid--with-photo .storyPhoto img{
  height:100%;
  min-height:360px;
}

.storyGrid--text-only{
  display:block;
  margin-top:22px;
}

.storyGrid--text-only .storyCard{
  position:relative;
  width:min(980px,100%);
  min-height:430px;
  margin:0 auto;
  padding:clamp(58px,8vw,96px) clamp(28px,8vw,110px) clamp(48px,7vw,82px);
  overflow:hidden;
  text-align:center;
  background:
    radial-gradient(circle at 50% 12%, color-mix(in srgb,var(--accent) 9%,transparent), transparent 30%),
    rgba(255,255,255,.62);
  border:1px solid color-mix(in srgb,var(--accent) 20%,rgba(0,0,0,.08));
  box-shadow:0 24px 70px rgba(65,48,30,.08);
}

.storyGrid--text-only .storyCard::before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px dashed color-mix(in srgb,var(--accent) 26%,transparent);
  border-radius:16px;
  pointer-events:none;
}

.storyCard__quote{
  position:absolute;
  left:50%;
  top:12px;
  transform:translateX(-50%);
  color:color-mix(in srgb,var(--accent) 18%,transparent);
  font:500 180px/.8 Georgia,serif;
  pointer-events:none;
}

.storyCard__eyebrow{
  position:relative;
  z-index:1;
  margin-bottom:28px;
  color:var(--accent);
  font:700 11px/1.2 Manrope,Arial,sans-serif;
  letter-spacing:.22em;
  text-transform:uppercase;
}

.storyGrid--text-only .storyCard__body{
  position:relative;
  z-index:1;
  width:min(780px,100%);
  margin:0 auto;
}

.storyGrid--text-only .storyCard p{
  margin:0 0 18px;
  color:var(--ink);
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(24px,3vw,38px);
  font-style:italic;
  font-weight:400;
  line-height:1.48;
  text-wrap:pretty;
}

.storyGrid--text-only .storyCard p:last-child{
  margin-bottom:0;
}

.storyCard__signature{
  position:relative;
  z-index:1;
  width:min(560px,80%);
  margin:34px auto 0;
  padding-top:20px;
  border-top:1px solid color-mix(in srgb,var(--ink) 16%,transparent);
  color:var(--accent);
  font-family:"Marck Script","Cormorant Garamond",Georgia,serif;
  font-size:clamp(25px,3vw,38px);
  line-height:1.2;
}

@media(max-width:820px){
  .storyGrid--with-photo{
    grid-template-columns:1fr;
  }

  .storyGrid--with-photo .storyCard{
    min-height:0;
    padding:30px 24px;
  }

  .storyGrid--with-photo .storyPhoto img{
    height:320px;
    min-height:0;
  }

  .storyGrid--text-only .storyCard{
    min-height:0;
    padding:68px 24px 48px;
  }

  .storyGrid--text-only .storyCard p{
    font-size:clamp(22px,6vw,29px);
    line-height:1.55;
  }

  .storyCard__quote{
    font-size:128px;
  }

  .storyCard__signature{
    width:100%;
    font-size:28px;
  }
}

/* Pearl Script location cards: graceful even without a photo. */
.psNativeLocations{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  width:min(1080px,100%);
  margin:34px auto 0;
}

.psNativeLocations--single{
  grid-template-columns:minmax(0,1fr);
  width:min(920px,100%);
}

.psNativeLocationCard{
  position:relative;
  min-width:0;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);
  border-radius:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.5)),
    var(--paper);
  box-shadow:0 22px 60px rgba(76,58,28,.08);
}

.psNativeLocationCard::before,
.psNativeLocationCard::after{
  content:"";
  position:absolute;
  z-index:2;
  pointer-events:none;
}

.psNativeLocationCard::before{
  inset:12px;
  border:1px solid color-mix(in srgb,var(--accent) 14%,transparent);
}

.psNativeLocationCard::after{
  top:0;
  left:50%;
  width:72px;
  height:3px;
  transform:translateX(-50%);
  background:var(--accent);
}

.psNativeLocationCard__photo{
  position:relative;
  z-index:1;
  margin:0;
  height:360px;
  overflow:hidden;
  background:var(--soft-fill);
}

.psNativeLocationCard__photo::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:42%;
  background:linear-gradient(to top,rgba(24,21,17,.28),transparent);
  pointer-events:none;
}

.psNativeLocationCard__photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.1s cubic-bezier(.2,.7,.2,1);
}

.psNativeLocationCard:hover .psNativeLocationCard__photo img{
  transform:scale(1.025);
}

.psNativeLocationCard__body{
  position:relative;
  z-index:3;
  padding:38px 44px 42px;
  text-align:center;
}

.psNativeLocationCard--no-photo{
  min-height:300px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.psNativeLocationCard--no-photo .psNativeLocationCard__body{
  width:min(720px,100%);
  padding:58px 56px 54px;
}

.psNativeLocationCard__type{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:0 0 18px;
  color:var(--accent);
  font:700 10px/1.2 Manrope,Arial,sans-serif;
  letter-spacing:.24em;
  text-transform:uppercase;
}

.psNativeLocationCard__type::before,
.psNativeLocationCard__type::after{
  content:"";
  width:46px;
  height:1px;
  background:color-mix(in srgb,var(--accent) 52%,transparent);
}

.psNativeLocationCard__name{
  margin:0;
  color:var(--ink);
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(40px,5vw,66px);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.035em;
  text-wrap:balance;
}

.psNativeLocationCard__address,
.psNativeLocationCard__note{
  width:min(620px,100%);
  margin:18px auto 0;
  color:var(--muted);
  font:400 14px/1.75 Manrope,Arial,sans-serif;
  text-wrap:pretty;
}

.psNativeLocationCard__note{
  margin-top:12px;
}

.psNativeLocationCard__actions{
  margin-top:26px;
}

.psNativeLocationCard__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 24px;
  border:1px solid color-mix(in srgb,var(--accent) 66%,transparent);
  border-radius:0;
  background:transparent;
  color:var(--accent);
  font:700 11px/1 Manrope,Arial,sans-serif;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:none;
  transition:background .22s ease,color .22s ease,transform .22s ease;
}

.psNativeLocationCard__button::after{
  content:"  →";
  white-space:pre;
  font-size:15px;
  font-weight:400;
}

.psNativeLocationCard__button:hover{
  transform:translateY(-2px);
  background:var(--accent);
  color:var(--on-accent,#fff);
}

@media(max-width:760px){
  .psNativeLocations{
    grid-template-columns:1fr;
    gap:18px;
    width:auto;
    margin:26px 14px 0;
  }

  .psNativeLocations--single{
    width:auto;
  }

  .psNativeLocationCard__photo{
    height:280px;
  }

  .psNativeLocationCard__body,
  .psNativeLocationCard--no-photo .psNativeLocationCard__body{
    padding:42px 24px 38px;
  }

  .psNativeLocationCard--no-photo{
    min-height:250px;
  }

  .psNativeLocationCard__name{
    font-size:clamp(38px,12vw,52px);
  }

  .psNativeLocationCard__type::before,
  .psNativeLocationCard__type::after{
    width:28px;
  }
}
