#xi-couple-section{position:relative;z-index:20;width:100%;background:#171a10}
.xi-couple-panel{position:relative;display:flex;min-height:100svh;align-items:flex-end;overflow:hidden;isolation:isolate}
.xi-couple-panel__image{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform 10s cubic-bezier(.2,.7,.2,1)}
.xi-couple-panel--groom .xi-couple-panel__image{object-position:center 34%}
.xi-couple-panel--bride .xi-couple-panel__image{object-position:center 30%}
.xi-couple-panel::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(9,12,6,.06) 20%,rgba(9,12,6,.18) 48%,rgba(9,12,6,.88) 100%)}
.xi-couple-panel::after{content:"";position:absolute;inset:1rem;z-index:-1;border:1px solid rgba(255,255,255,.16);pointer-events:none}
.xi-couple-panel.is-visible .xi-couple-panel__image{transform:scale(1.045)}
.xi-couple-panel__content{width:min(100%,76rem);margin:0 auto;padding:clamp(5rem,10vw,8rem) clamp(2rem,7vw,6rem)}
.xi-couple-panel__role{margin:0 0 .7rem;color:rgba(255,255,255,.66);font-family:var(--template-font-display-stack,serif);font-size:clamp(1.15rem,2.4vw,1.7rem);font-style:italic;letter-spacing:.04em}
.xi-couple-panel__name{margin:0;color:#fff;font-family:var(--template-font-heading-stack,serif);font-size:clamp(3.3rem,9vw,7.8rem);font-weight:400;line-height:.84;letter-spacing:-.045em;text-wrap:balance}
.xi-couple-panel__family{max-width:32rem;margin:1.4rem 0 0;color:rgba(255,255,255,.82);font-size:clamp(.9rem,1.5vw,1.05rem);line-height:1.65;letter-spacing:.035em}

#eventory-invite.xi-schedule-section{--template-text:#fff;--template-muted:rgba(255,255,255,.76);--template-border:rgba(255,255,255,.24);--template-card:rgba(20,24,12,.44);display:flex!important;min-height:100svh;align-items:center;background-image:linear-gradient(180deg,rgba(12,16,7,.58),rgba(12,16,7,.82)),url("../assets/couple/XavierIvanaStudio-32.jpg");background-position:center 36%;background-size:cover;background-attachment:fixed;color:#fff}
#eventory-invite.xi-schedule-section>div{width:100%}
#eventory-invite.xi-schedule-section .ei-eyebrow,#eventory-invite.xi-schedule-section .ei-couple{display:none!important}
#eventory-invite.xi-schedule-section .xi-schedule-heading{margin:0 0 clamp(2rem,5vw,4rem);color:#fff;font-family:var(--template-font-heading-stack,serif);font-size:clamp(3.4rem,8vw,7rem);font-weight:400;line-height:.86;letter-spacing:-.05em;text-align:center}
#eventory-invite.xi-schedule-section .xi-schedule-kicker{display:block;margin-bottom:.9rem;font-family:var(--template-font-body-stack,sans-serif);font-size:.72rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase}
#eventory-invite.xi-schedule-section .ei-events{width:min(100%,60rem);margin:0 auto!important}
#eventory-invite.xi-schedule-section .ei-card{border-color:rgba(255,255,255,.25)!important;background:rgba(19,23,12,.48)!important;box-shadow:0 24px 70px rgba(0,0,0,.18)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
#eventory-invite.xi-schedule-section .ei-card h3,#eventory-invite.xi-schedule-section .ei-line,#eventory-invite.xi-schedule-section .ei-venue{color:#fff!important}
#eventory-invite.xi-schedule-section .ei-venue{opacity:.78}

#xi-carousel-gallery{position:relative;z-index:20;display:flex;min-height:100svh;align-items:center;overflow:hidden;background:var(--template-background,#fcf7ed);color:var(--template-text,#2f241b)}
.xi-gallery-inner{width:100%;padding:clamp(5.5rem,10vw,8rem) 0}
.xi-gallery-heading{display:flex;width:min(100% - 3rem,76rem);margin:0 auto 2.2rem;align-items:end;justify-content:space-between;gap:2rem}
.xi-gallery-kicker{margin:0 0 .7rem;font-size:.7rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase}
.xi-gallery-title{margin:0;font-family:var(--template-font-heading-stack,serif);font-size:clamp(3.5rem,8vw,7rem);font-weight:400;line-height:.82;letter-spacing:-.05em}
.xi-gallery-count{font-family:var(--template-font-display-stack,serif);font-size:1rem;font-style:italic;white-space:nowrap}
.xi-gallery-viewport{overflow:hidden}
.xi-gallery-track{display:flex;transition:transform .8s cubic-bezier(.22,.8,.22,1);will-change:transform}
.xi-gallery-slide{min-width:100%;padding:0 clamp(1.5rem,7vw,6rem);box-sizing:border-box}
.xi-gallery-slide img{display:block;width:100%;height:min(68svh,760px);object-fit:cover;object-position:center 40%;border-radius:1.25rem;box-shadow:0 22px 70px rgba(49,39,20,.18)}
.xi-gallery-controls{display:flex;width:min(100% - 3rem,76rem);margin:1.6rem auto 0;align-items:center;justify-content:space-between}
.xi-gallery-dots{display:flex;gap:.55rem}
.xi-gallery-dot{width:.5rem;height:.5rem;padding:0;border:1px solid rgba(41,35,22,.55);border-radius:50%;background:transparent;transition:background .25s,transform .25s}
.xi-gallery-dot[aria-current="true"]{background:#292316;transform:scale(1.15)}
.xi-gallery-arrows{display:flex;gap:.75rem}
.xi-gallery-arrow{display:grid;width:3rem;height:3rem;place-items:center;border:1px solid rgba(41,35,22,.42);border-radius:50%;background:transparent;color:#292316;font-size:1.25rem;cursor:pointer;transition:background .25s,color .25s}
.xi-gallery-arrow:hover{background:#292316;color:#f5eddb}

#eventory-rsvp{--template-text:#fff;--template-muted:rgba(255,255,255,.76);--template-accent:#8a5a2b;--template-border:rgba(255,255,255,.24);--template-card:rgba(252,247,237,.92);--template-surface:rgba(255,250,241,.92);display:flex;min-height:100svh;align-items:center;background-image:linear-gradient(180deg,rgba(12,16,7,.72),rgba(12,16,7,.84)),url("../assets/couple/XavierIvanaStudio-32.jpg");background-position:center 36%;background-size:cover;background-attachment:fixed}
#eventory-rsvp>div{width:100%}
#eventory-rsvp .er-card{background:rgba(252,247,237,.92)!important;border-color:rgba(255,255,255,.22)!important;box-shadow:0 24px 80px rgba(0,0,0,.24)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
#eventory-rsvp .er-card{--template-text:#2f241b;--template-muted:#76614d;--template-border:rgba(47,36,27,.12);--template-surface:#fffaf1}

@media (max-width:700px){
  .xi-couple-panel::after{inset:.65rem}
  .xi-couple-panel__content{padding:5.5rem 1.7rem 4.2rem}
  .xi-couple-panel--groom .xi-couple-panel__image{object-position:center 24%}
  .xi-couple-panel--bride .xi-couple-panel__image{object-position:center 22%}
  #eventory-invite.xi-schedule-section,#eventory-rsvp{background-attachment:scroll;background-position:center center}
  #eventory-invite.xi-schedule-section>div{padding:3.5rem 1.1rem 2.5rem!important}
  #eventory-invite.xi-schedule-section .xi-schedule-heading{margin-bottom:1.4rem;font-size:clamp(2.65rem,12vw,3.7rem)}
  #eventory-invite.xi-schedule-section .xi-schedule-kicker{margin-bottom:.55rem;font-size:.62rem}
  #eventory-invite.xi-schedule-section .ei-events{gap:.75rem}
  #eventory-invite.xi-schedule-section .ei-card{padding:1.1rem .9rem;border-radius:1rem}
  #eventory-invite.xi-schedule-section .ei-card h3{margin-bottom:.55rem;font-size:1.45rem}
  #eventory-invite.xi-schedule-section .ei-line{margin:.22rem 0;font-size:.86rem}
  #eventory-invite.xi-schedule-section .ei-rule{margin:.6rem auto}
  #eventory-invite.xi-schedule-section .ei-venue{margin-top:.35rem;font-size:.82rem}
  #eventory-invite.xi-schedule-section .ei-cal{margin-top:1.15rem}
  #eventory-invite.xi-schedule-section .ei-cal-btn{padding:.65rem 1.05rem;font-size:.78rem}
  .xi-gallery-heading{align-items:start;flex-direction:column;gap:.7rem}
  .xi-gallery-slide{padding:0 1.15rem}
  .xi-gallery-slide img{height:66svh;border-radius:.85rem}
}

@media (prefers-reduced-motion:reduce){.xi-couple-panel__image,.xi-gallery-track{transition:none!important}}

/* ---- Personal Message section ---- */
#xi-personal-message{background:var(--template-background,#fcf7ed);color:var(--template-text,#2f241b)}
.xi-pm-inner{width:min(100% - 3rem,44rem);margin:0 auto;padding:clamp(4.5rem,9vw,7rem) 0}
.xi-pm-head{text-align:center}
.xi-pm-kicker{margin:0 0 .7rem;font-size:.7rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--template-muted)}
.xi-pm-title{margin:0;font-family:var(--template-font-heading-stack,serif);font-size:clamp(3rem,7vw,5.5rem);font-weight:400;line-height:.9;letter-spacing:-.045em;color:var(--template-text)}
.xi-pm-sub{margin:1rem 0 0;font-size:clamp(.95rem,1.6vw,1.1rem);color:var(--template-muted)}
.xi-pm-form{display:flex;flex-direction:column;gap:.9rem;margin:2.4rem auto 0}
.xi-pm-input{width:100%;box-sizing:border-box;padding:.95rem 1.1rem;border:1px solid var(--template-border);border-radius:.9rem;background:var(--template-surface,#fffaf1);color:var(--template-text);font-family:var(--template-font-body-stack,sans-serif);font-size:1rem;transition:border-color .2s,box-shadow .2s}
.xi-pm-input::placeholder{color:var(--template-muted);opacity:.85}
.xi-pm-input:focus{outline:none;border-color:var(--template-accent);box-shadow:0 0 0 3px var(--template-accent-soft,rgba(138,90,43,.25))}
.xi-pm-textarea{resize:vertical;min-height:7rem;line-height:1.55}
.xi-pm-btn{margin-top:.4rem;padding:1rem 1.25rem;border:none;border-radius:.9rem;background:var(--template-accent,#8a5a2b);color:var(--template-button-text,#fff9f1);font-family:var(--template-font-body-stack,sans-serif);font-size:.82rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:opacity .2s,transform .2s}
.xi-pm-btn:hover{opacity:.9}
.xi-pm-btn:disabled{opacity:.6;cursor:default}
.xi-pm-list{display:flex;flex-direction:column;gap:.85rem;margin:1.8rem auto 0}
.xi-pm-list:empty{margin:0}
.xi-pm-item{border:1px solid var(--template-border);background:var(--template-card,#fff);border-radius:1rem;padding:1rem 1.15rem;text-align:left;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}
.xi-pm-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.4rem}
.xi-pm-item-name{font-weight:600;color:var(--template-text)}
.xi-pm-item-date{flex:none;font-size:.7rem;letter-spacing:.04em;color:var(--template-muted)}
.xi-pm-item-body{color:var(--template-text);line-height:1.55;white-space:pre-wrap;word-break:break-word}

/* ---- Footer quote: honor line breaks from the quote text ---- */
[data-testid="footer-quote"]{white-space:pre-line}

/* ---- Background music toggle ---- */
.xi-music-btn{position:fixed;right:1.1rem;bottom:calc(1.1rem + env(safe-area-inset-bottom,0px));z-index:9990;display:grid;place-items:center;width:3rem;height:3rem;padding:0;border:none;border-radius:9999px;background:var(--template-accent,#8a5a2b);color:var(--template-button-text,#fff9f1);cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.28);transition:transform .2s ease,opacity .2s ease}
.xi-music-btn:hover{transform:scale(1.06)}
.xi-music-btn:not(.is-playing){opacity:.72}
.xi-music-bars{display:flex;align-items:center;justify-content:center;gap:2px;height:16px}
.xi-music-bars i{display:block;width:3px;height:6px;background:currentColor;border-radius:2px;transform-origin:center}
.xi-music-btn.is-playing .xi-music-bars i{animation:xi-eq .95s ease-in-out infinite}
.xi-music-btn.is-playing .xi-music-bars i:nth-child(2){animation-delay:.18s}
.xi-music-btn.is-playing .xi-music-bars i:nth-child(3){animation-delay:.36s}
.xi-music-btn.is-playing .xi-music-bars i:nth-child(4){animation-delay:.12s}
@keyframes xi-eq{0%,100%{height:5px}50%{height:15px}}
@media (prefers-reduced-motion:reduce){.xi-music-btn .xi-music-bars i{animation:none!important}}

/* ---- Custom navigation menu (replaces the data-driven nav links) ---- */
/* Suppress the template's built-in nav UI: desktop link list + mobile hamburger/drawer */
nav ul[data-testid="nav-list"]{display:none!important}
nav button[aria-controls="primary-menu"]{display:none!important}
#primary-menu{display:none!important}
nav [data-testid="nav-container"]{max-width:min(94vw,1080px)!important}
nav [data-testid="nav-content"]>a[href="index.html"]{width:66px;max-height:none!important;font-size:66px!important;line-height:1!important}

/* Desktop link row */
.xi-nav-list{display:flex;align-items:center;gap:clamp(10px,1.5vw,20px);list-style:none;margin:0;padding:0;min-width:0}
.xi-nav-list li{flex:none}
.xi-nav-link{white-space:nowrap;font-size:14px;line-height:1;color:inherit;text-decoration:none;cursor:pointer;background:none;border:0;padding:0;font-family:inherit;transition:opacity .3s ease}
.xi-nav-link:hover{opacity:.7}
@media (max-width:1000px){.xi-nav-link{font-size:13px}.xi-nav-list{gap:14px}}

/* Mobile hamburger */
.xi-nav-burger{display:none;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:0;background:none;color:inherit;cursor:pointer}
.xi-burger-box{display:flex;flex-direction:column;justify-content:space-between;width:22px;height:15px}
.xi-nav-burger span span{display:block;height:2px;width:100%;background:currentColor;border-radius:2px;transition:transform .3s ease,opacity .25s ease}
.xi-nav-burger[aria-expanded="true"] span span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.xi-nav-burger[aria-expanded="true"] span span:nth-child(2){opacity:0}
.xi-nav-burger[aria-expanded="true"] span span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* Mobile drawer */
.xi-nav-drawer{position:absolute;right:0;top:100%;margin-top:.55rem;min-width:200px;padding:.7rem 1.15rem;border-radius:1.1rem;border:1px solid rgba(0,0,0,.06);background:rgba(255,255,255,.95);box-shadow:0 22px 46px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;text-align:right;transform-origin:top right;opacity:0;transform:scale(.95);pointer-events:none;transition:opacity .25s ease,transform .25s ease;z-index:60}
.xi-nav-drawer[data-open="true"]{opacity:1;transform:scale(1);pointer-events:auto}
.xi-nav-drawer-link{display:block;padding:.62rem 0;font-size:15px;line-height:1.1;color:#111;text-decoration:none;white-space:nowrap;transition:opacity .2s ease}
.xi-nav-drawer-link+.xi-nav-drawer-link{border-top:1px solid rgba(0,0,0,.06)}
.xi-nav-drawer-link:hover{opacity:.6}

/* Breakpoint: desktop row above 768px, fixed top-right hamburger below */
@media (max-width:767px){
  .xi-nav-list{display:none}
  .xi-nav-burger{
    display:flex;
    position:fixed;
    top:calc(env(safe-area-inset-top,0px) + 2px);
    right:18px;
    z-index:80;
  }
  .xi-nav-drawer{
    position:fixed;
    top:calc(env(safe-area-inset-top,0px) + 46px);
    right:18px;
    margin-top:0;
    z-index:79;
  }
}
@media (min-width:768px){.xi-nav-drawer{display:none}}

/* Mobile story: nudge the proposal photo frames down so the caption text clears them
   (the caption is an absolute overlay whose room is viewport-height dependent). */
@media (max-width:767px){[data-design-anchor="story"] .shrink-0.transform-gpu{margin-top:12px!important}}
