.wedding-flow{background:#f9f6ed;color:#4c2d23;max-width:440px;margin:0 auto;box-shadow:0 0 50px #c9c3b1;overflow:hidden}.invite{height:956px;min-height:100svh;color:#fff;position:relative;display:flex;justify-content:center;align-items:center;background:#8d8b72 var(--photo) center/cover no-repeat;text-align:center;overflow:hidden}.invite__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(36,28,17,.5),rgba(32,29,18,.08) 48%,rgba(28,25,16,.7))}.back{position:absolute;top:30px;left:25px;color:#fff;text-decoration:none;font-size:9px;letter-spacing:.15em;text-transform:uppercase;z-index:1}.cover__copy,.final__copy{position:relative;z-index:1;text-align:center;margin-top:48vh}.cover__copy span{font:36px "Cormorant Garamond",serif}.cover__copy h1{font:50px "Cormorant Garamond",serif;font-style:italic;font-weight:400;margin:8px 0}.cover__copy p{font-size:12px;letter-spacing:.1em;text-transform:uppercase}.cover__copy b{display:block;margin:28px auto;border:1px solid #fff;border-radius:50%;height:40px;width:40px;padding-top:10px;font-weight:400}.story-section{min-height:956px;padding:58px 33px 40px;text-align:center;position:relative}.story-section--welcome{background:#f9f6ed;padding-top:0}.story-section--welcome:before{content:"";position:absolute;inset:0 0 205px;background:var(--photo) center/cover no-repeat;clip-path:polygon(0 0,100% 0,100% 96%,96% 95%,92% 98%,88% 95%,84% 97%,80% 94%,76% 98%,72% 95%,68% 97%,64% 94%,60% 98%,56% 95%,52% 97%,48% 94%,44% 98%,40% 95%,36% 97%,32% 94%,28% 98%,24% 95%,20% 97%,16% 94%,12% 98%,8% 95%,4% 97%,0 94%);z-index:0}.script{font:italic 36px "Cormorant Garamond",serif}.story-section h2{font:32px "Cormorant Garamond",serif;font-weight:400;margin:10px 0}.story-section--welcome .script,.story-section--welcome h2,.story-section--welcome .story-divider{position:absolute;left:32px;right:32px;z-index:1}.story-section--welcome .script{top:775px;margin:0}.story-section--welcome h2{top:822px;margin:0}.story-section--welcome .story-divider{top:870px;margin:0}.story-section--welcome .story-lead,.story-section--welcome>p:last-child{display:none}.story-section--welcome .slide-video{height:auto;bottom:205px;clip-path:polygon(0 0,100% 0,100% 96%,96% 95%,92% 98%,88% 95%,84% 97%,80% 94%,76% 98%,72% 95%,68% 97%,64% 94%,60% 98%,56% 95%,52% 97%,48% 94%,44% 98%,40% 95%,36% 97%,32% 94%,28% 98%,24% 95%,20% 97%,16% 94%,12% 98%,8% 95%,4% 97%,0 94%);z-index:0}.story-lead{font:30px "Cormorant Garamond",serif;margin-top:465px}.story-divider{font-size:44px;margin:30px}.story-section--date{background:#aaa88d;padding-top:57px}.eyebrow{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:#82745e;margin:0 0 24px}.countdown{display:flex;justify-content:center;align-items:flex-start;gap:10px;margin:20px 0 42px}.countdown div{display:flex;flex-direction:column;min-width:52px}.countdown strong{font:30px "Cormorant Garamond",serif}.countdown span{font-size:8px;text-transform:uppercase}.countdown i{font:25px "Cormorant Garamond",serif;font-style:normal}.story-section--date h2{font-size:32px}.venue{font:11px Montserrat;letter-spacing:.1em;text-transform:uppercase}.date-photo{height:295px;margin-top:35px;background-size:cover;background-position:center}.timeline-section{background:#efe9d9;text-align:left}.timeline{border-left:1px solid #8c8069;margin:50px 8px 0;padding-left:20px}.timeline article{position:relative;padding:0 0 35px}.timeline article:before{content:"";position:absolute;left:-25px;top:3px;width:9px;height:9px;border-radius:50%;background:#806b4f}.timeline time{font:25px "Cormorant Garamond",serif}.timeline h3{font:14px Montserrat;margin:5px 0}.timeline p,.timeline small{font:13px/1.4 "Cormorant Garamond",serif;margin:0;color:#766b5f}.menu-section{background:#f7f3e8}.menu-grid{margin-top:35px;text-align:left}.menu-grid article{display:grid;grid-template-columns:46% 1fr;gap:12px;border-bottom:1px solid #d5cdbd;padding:15px 0}.menu-grid img{width:100%;height:148px;object-fit:cover}.menu-grid h3{font:18px "Cormorant Garamond",serif;margin:0}.menu-grid p{font:13px/1.3 "Cormorant Garamond",serif;margin-top:8px}.providers-section{background:#eee9d8;min-height:956px}.provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;text-align:left}.provider-card{border-bottom:1px solid #b8aa93;padding-bottom:15px}.provider-card img{width:100%;aspect-ratio:1;object-fit:cover}.provider-card h3{font:15px Montserrat;margin:10px 0 3px}.provider-card span{font-size:10px;text-transform:uppercase;color:#806e58}.provider-card p{font:14px/1.3 "Cormorant Garamond",serif}.provider-card footer{display:flex;flex-direction:column;gap:4px;font-size:9px}.provider-card a{color:#4c2d23;text-decoration:none}.invite--final{height:956px}.final__copy{margin-top:60vh}.final__copy h1{font:36px "Cormorant Garamond",serif;letter-spacing:.1em;text-transform:uppercase}.final__copy>p:last-child{font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.empty-section{font:18px "Cormorant Garamond",serif;color:#867763;margin:80px 0}
.slide-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}.invite--cover .invite__shade,.invite--cover .back,.invite--cover .cover__copy{z-index:1}.story-section--welcome .slide-video{z-index:0}.story-section--welcome>*:not(.slide-video){position:relative;z-index:1}
.section-wave{position:absolute;left:0;width:100%;height:auto;pointer-events:none;opacity:.9;z-index:1}.section-wave--top{top:0;transform:rotate(180deg);filter:sepia(.2)}.story-section--welcome .script,.story-section--welcome h2,.story-section--welcome .story-divider,.story-section--welcome .story-lead,.story-section--welcome>p:last-child{z-index:2}.ornament{position:absolute;color:#9c9278;font:22px "Cormorant Garamond",serif;opacity:.8}.ornament--date{top:28px;left:50%;transform:translateX(-50%)}.ornament--date:before,.ornament--date:after{content:"";display:inline-block;width:66px;height:1px;background:#c6baa4;vertical-align:middle;margin:0 12px}.section-frame{position:absolute;inset:24px;border:1px solid rgba(126,108,80,.3);pointer-events:none}.section-frame:before,.section-frame:after{content:"";position:absolute;width:36px;height:36px;border:1px solid #9d8d70}.section-frame:before{top:-1px;left:-1px;border-right:0;border-bottom:0}.section-frame:after{right:-1px;bottom:-1px;border-left:0;border-top:0}.timeline-section .eyebrow,.menu-section .eyebrow,.providers-section .eyebrow,.timeline-section .timeline,.menu-section h2,.menu-section .menu-grid,.providers-section h2,.providers-section .provider-grid{position:relative;z-index:1}.menu-section:before,.providers-section:before{content:"";position:absolute;left:50%;top:98px;width:110px;height:1px;background:#a39478;transform:translateX(-50%)}.menu-section h2,.providers-section h2{margin-top:42px}.final-wave{position:absolute;left:0;top:7%;width:100%;height:168px;opacity:.85;pointer-events:none}.final__copy{z-index:2}
.final-edge-top{position:absolute;left:0;top:0;width:100%;height:auto;z-index:1;pointer-events:none}
.final-edge-content{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:230px;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-evenly;
  padding:34px 38px 30px;
  color:#fff;
  text-align:center;
  pointer-events:none;
}
.final-edge-title{
  margin:0;
  font:italic 31px/1 "Palatino Linotype Local","Palatino Linotype",Palatino,serif;
}
.final-edge-content .countdown{
  width:100%;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  align-items:start;
  margin:0;
}
.final-edge-content .countdown div{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.final-edge-content .countdown strong{
  font:35px/1 "Oranienbaum",serif;
  letter-spacing:.02em;
}
.final-edge-content .countdown span{
  margin-top:5px;
  font:400 15px/1 "Montserrat Alternates Local",Montserrat,sans-serif;
  text-transform:lowercase;
  white-space:nowrap;
}
.wedding-flow{height:100svh;min-height:620px;position:relative;overflow:hidden}.flow-page{position:absolute;inset:0;min-height:100%;overflow-y:auto;overflow-x:hidden;overflow-wrap:anywhere;opacity:0;transform:translate3d(100%,0,0);pointer-events:none;transition:transform .72s cubic-bezier(.76,0,.24,1),opacity .5s ease}.flow-page.is-active{opacity:1;transform:translate3d(0,0,0);pointer-events:auto;z-index:2}.flow-page.is-before{transform:translate3d(-22%,0,0);opacity:0}.invite--cover{z-index:3}.flow-page::-webkit-scrollbar{width:0}.flow-page h1,.flow-page h2,.flow-page h3,.flow-page p,.flow-page span,.flow-page small,.flow-page time{max-width:100%;overflow-wrap:anywhere;word-break:normal}.cover__copy h1,.final__copy h1{font-size:clamp(30px,11vw,50px);line-height:1.05;padding:0 22px}.story-section--welcome .story-lead{margin-top:clamp(260px,48vh,465px)}.story-section--welcome p:not(.script):not(.story-lead){margin-top:clamp(80px,18vh,170px)}

/* Keep every invitation screen aligned to the 440 x 956 Figma frame. */
.wedding-flow{width:440px;height:956px;min-height:956px;margin:0 auto;position:relative}
.flow-page{width:440px;height:956px;min-height:956px}
.invite,.story-section{height:956px;min-height:956px}
.section-frame{inset:24px 25px}
.section-wave{left:0;width:440px;max-width:none}
.final-wave{left:0;top:auto;bottom:0;width:440px;height:auto;max-height:none}
@media (max-width:440px){
  .wedding-flow{margin:0;width:100vw}
  .flow-page{width:100vw}
  .section-wave,.final-wave{width:100vw}
}

/* Figma screen-specific composition: the source frames use an olive paper palette,
   centered serif typography, clipped paper edges and 2-column catalog layouts. */
.wedding-flow{border-radius:0;box-shadow:none;background:#aaa88d}
.flow-page{width:440px;max-width:none;border-radius:0}
.invite--cover{border-radius:0;background-position:center;background-size:cover}
.invite--cover .invite__shade{background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.08) 55%,rgba(0,0,0,.42))}
.cover__copy{width:100%;margin-top:48vh}
.cover__copy span{font-size:30px;letter-spacing:.02em}
.cover__copy h1{font-size:48px;text-transform:none}
.cover__copy p{font-size:12px;letter-spacing:0;text-transform:none}
.cover__copy b{position:absolute;left:28px;top:290px;width:32px;height:32px;padding:0;background:#fff;color:#ed526a;border:0;font-size:0;line-height:32px}
.cover__copy b:after{content:"в™Ґ";font-size:18px}
.cover__copy:after{content:"";position:absolute;left:62px;right:62px;top:306px;border-top:2px dashed #e69caa}
.cover__copy:before{content:"";position:absolute;right:28px;top:274px;width:50px;height:50px;border-radius:50%;background:#fff}
.story-section{background:#aaa88d;color:#fff;border-radius:0;padding:58px 32px 40px}
.story-section--welcome{background-color:#f8f5eb;background-image:var(--photo);background-position:center top;background-size:100% 800px;background-repeat:no-repeat;color:#59372c;padding-top:800px}
.story-section--welcome:before,.timeline-section:after,.menu-section:after{content:"";position:absolute;left:0;right:0;height:26px;z-index:1;background:#f8f5eb;clip-path:polygon(0 55%,4% 38%,8% 64%,13% 42%,18% 67%,23% 39%,28% 60%,34% 35%,40% 61%,46% 43%,52% 68%,58% 39%,64% 62%,70% 36%,76% 63%,82% 42%,88% 64%,94% 40%,100% 57%,100% 100%,0 100%)}
.story-section--welcome:before{bottom:130px}
.story-section--welcome .slide-video{height:800px;bottom:auto;object-fit:cover}
.story-section--welcome .script{margin:0;font-size:34px}
.story-section--welcome h2{font-size:27px}
.story-section--welcome .story-divider{margin:16px}
.story-section--welcome .story-lead{margin:100px auto 0;font-size:29px}
.story-section--welcome p:not(.script):not(.story-lead){display:none}
.story-section--date{background:#aaa88d;background-attachment:local;color:#fff;padding-top:58px}
.story-section--date .date-edge{position:absolute;left:0;width:440px;z-index:0;display:block;pointer-events:none}
.story-section--date .date-edge--bottom{display:block;bottom:0;height:auto}
.story-section--date .date-edge--top{top:-20px;height:350px;clip-path:inset(0 0 12px 0)}
.story-section--date .date-edge--bottom{bottom:0;height:auto}
.story-section--date > *:not(.date-edge){position:relative;z-index:1}
.story-section--date .eyebrow{width:100%;color:#A7A384;font:500 italic 27px/1.2 "Cormorant Garamond",serif;letter-spacing:.01em;text-align:center;text-transform:none;margin:0 auto;text-shadow:0 .3px 0 currentColor}
.story-section--date .countdown{margin:20px 0 15px}
.story-section--date .countdown strong{font-size:31px}
.story-section--date .countdown span{font-size:10px;text-transform:none}
.date-calendar{color:#A7A384;margin:16px auto 0;text-align:center}
.date-calendar__month{font:clamp(29px,7vw,35px)/.9 "Great Vibes",cursive;letter-spacing:.03em;margin:0 0 3px;text-transform:none}
.date-calendar__days{display:flex;justify-content:center;align-items:center;gap:11px}
.date-calendar__day{display:grid;place-items:center;width:34px;height:34px;font:400 22px/1 "Oranienbaum",serif}
.date-calendar__day--side{
  border:0;
  font-size:16px;
  background:url("../../../images/date-number-frame.png") center/100% 100% no-repeat;
}
.date-calendar__day--current{position:relative;color:#f8f5eb;font-size:27px;z-index:0}
.date-calendar__day--current:before{content:"";position:absolute;inset:1px 0 0;background:#A7A384;clip-path:path("M17 32 C14 29 2 22 2 12 C2 4 10 2 17 9 C24 2 32 4 32 12 C32 22 20 29 17 32Z");z-index:-1}
.story-section--date .date-message{font:24px/1.05 "Cormorant Garamond",serif;margin:16px auto 14px;color:#A7A384}
.story-section--date .venue-title{width:100%;font:clamp(32px,8vw,36px)/1.08 "Miama Nueva Local","Miama Nueva","Great Vibes",cursive;font-weight:500;letter-spacing:.04em;margin:50px auto 6px;color:#fff;white-space:nowrap}
.story-section--date .venue-title span{display:inline-block;font:clamp(26px,7vw,32px)/1.15 "Cinzel Decorative",serif;font-weight:700;font-style:normal;letter-spacing:.04em;margin-top:5px}
.story-section--date .venue{font:14px/1.15 "Cormorant Garamond",serif;font-weight:400;letter-spacing:.01em;margin:35px auto 0}
.story-section--date .map-link--light{font-size:12px;padding:7px 12px;margin-top:10px}
.story-section--date .date-photo{height:300px;border:2px solid #fff;border-radius:30px;margin-top:35px}
.screen-tabs{position:relative;z-index:4;display:flex;justify-content:center;gap:5px;margin:-2px 0 18px}
.screen-tabs button{border:1px solid currentColor;border-radius:5px;background:transparent;color:inherit;padding:8px 7px 6px;min-height:48px;font:14px/1 "Cormorant Garamond",serif;cursor:pointer}
.screen-tabs button.is-current{font-size:18px;padding-inline:12px}
.timeline-section{background:#f8f5eb;color:#59372c;padding-top:66px;position:relative;overflow:hidden}
.timeline-section:after{display:none}
.timeline-section .section-frame{display:none}
.timeline-section .eyebrow{display:none}
.schedule-video{margin:0 auto 18px;width:100%;height:150px;border:2px solid #aaa88d;border-radius:22px;overflow:hidden;background:#aaa88d}
.schedule-video video{display:block;width:100%;height:100%;object-fit:cover}
.schedule-video__placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-position:center;background-size:cover;color:#f9f6ed;font:italic 24px "Cormorant Garamond",serif}
.timeline{margin:0 8px 35px 15px;padding:0 0 100px 20px;border-color:#aaa88d}
.timeline article{padding-bottom:12px}
.timeline article:before{background:#aaa88d;left:-25px}
.timeline time{font-size:21px}
.timeline h3{font:20px "Cormorant Garamond",serif;margin:0}
.timeline p,.timeline small{font-size:15px;line-height:1.1}
.timeline article{
  display:grid;
  grid-template-columns:1fr;
  row-gap:4px;
}
.timeline__row{display:block;min-height:17px;margin:0}
.timeline__row--heading{display:flex;align-items:baseline;gap:10px}
.timeline__row--heading time{flex:0 0 auto}
.timeline__row--heading h3{min-width:0}
.timeline__row--description-primary{font-size:20px!important;font-weight:700!important;color:#000!important}
.timeline__row--location .map-link{margin-top:0}
.schedule-note{position:absolute;left:38px;right:38px;bottom:10px;z-index:2;margin:0;text-align:center;color:#F9F6ED;font:clamp(22px,6vw,28px)/1.05 "Great Vibes",cursive}
.schedule-edge-bottom{position:absolute;left:0;right:0;bottom:0;z-index:1;width:100%;height:82px;object-fit:fill;pointer-events:none}
.menu-section{background:#f8f5eb;color:#59372c;padding-top:66px}
.menu-section .screen-tabs{position:absolute;top:8px;left:32px;right:32px;margin:0}
.menu-section .section-frame{display:none}
.menu-section .eyebrow{display:none}
.timeline-section .screen-tabs button,
.menu-section .screen-tabs button,
.providers-section--hosts .screen-tabs button{min-height:38px;padding:5px 5px 4px;font-size:11px}
.timeline-section .screen-tabs button.is-current,
.menu-section .screen-tabs button.is-current,
.providers-section--hosts .screen-tabs button.is-current{font-size:11px;padding-inline:5px}
.timeline-section .screen-tabs button.is-current{
  height:48px;
  min-height:48px;
  padding:8px 10px 6px;
  font-size:14px;
}
.timeline-section .screen-tabs button:not(.is-current){
  height:38px;
  min-height:38px;
}
.timeline-section .screen-tabs{
  left:0;
  right:0;
  justify-content:center;
  align-items:center;
}
.menu-section:before,.menu-section:after{display:none}
.menu-edge-top{position:absolute;top:0;left:0;z-index:1;display:block;width:100%;height:70px;object-fit:fill;margin:0;pointer-events:none}
.menu-section h2{font:42px/1 "Great Vibes",cursive;letter-spacing:.03em;margin:8px 0 20px;color:#aaa88d}
.menu-group{margin:0 0 22px}
.menu-group>h3{font:32px/1 "Great Vibes",cursive;letter-spacing:.03em;color:#25251f;margin:0 0 8px}
.menu-group-divider{display:block;width:247px;height:23px;margin:0 auto 10px;object-fit:contain}
.menu-grid{margin-top:0}
.menu-grid article{grid-template-columns:110px 1fr;gap:12px;padding:8px 0 16px;margin-bottom:8px;border-bottom:0;position:relative}
.menu-grid article:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:10px;background:url("/static/images/menu-divider.png") center/100% 10px no-repeat}
.menu-grid img{width:110px;height:110px;border:2px solid #aaa88d;border-radius:25px;object-fit:cover}
.menu-grid h4{font-size:21px;text-align:center;margin:0}
.menu-grid h4,.menu-grid p{overflow-wrap:anywhere}
.menu-grid p{font-size:15px;line-height:1.05;text-align:center;margin:2px 0}
.providers-section{background:#aaa88d;color:#fff;padding-top:28px}
.providers-section--hosts{padding-top:105px;background-color:#A7A384!important;background-image:linear-gradient(#F9F6ED 0 78px,transparent 78px 100%)!important;background-attachment:local!important;color:#fff}
.providers-section--hosts .screen-tabs{position:absolute;top:8px;left:32px;right:32px;z-index:2;margin:0}
.providers-section--hosts .screen-tabs button{background:transparent;border-color:#4C2D23;color:#4C2D23}
.providers-section--hosts .screen-tabs button.is-current{background:transparent;border-color:#4C2D23;color:#4C2D23}
.hosts-edge-top{position:absolute;top:46px;left:0;z-index:1;width:100%;height:86px;object-fit:fill;pointer-events:none}
.providers-section--hosts h2{position:absolute;top:78px;left:32px;right:32px;z-index:2;margin:0;text-align:center}
.providers-section--hosts .hosts-divider{position:absolute;top:118px;left:50%;z-index:2;transform:translateX(-50%);margin:0}
.providers-section--hosts .provider-grid,
.providers-section--hosts .provider-divider,
.providers-section--hosts .provider-description{position:relative}
.providers-section--hosts .provider-grid{margin-top:52px}
.hosts-divider{display:block;width:247px;height:23px;margin:0 auto 10px;object-fit:contain}
.providers-section .section-frame{inset:405px 32px auto;height:145px;border:2px solid #fff}
.providers-section .section-frame:before,.providers-section .section-frame:after{border-color:#fff}
.providers-section .eyebrow{display:none}
.providers-section h2{font:italic 36px "Cormorant Garamond",serif;margin:0 0 12px}
.provider-grid{gap:12px}
.provider-card{border:0;text-align:center;padding:0}
.provider-card img{width:182px;height:182px;margin:0 auto;border:2px solid #fff;border-radius:50%;object-fit:cover}
.provider-card h3{font:17px "Cormorant Garamond",serif;font-weight:400;margin:5px 0 2px}
.provider-card span{display:none}
.provider-card p{font:16px/1.05 "Cormorant Garamond",serif;margin:108px 40px 0}
.provider-card footer{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:3px;margin:10px 0;font-size:12px;text-align:left}
.provider-card a{color:#fff}
.provider-card:after{content:"";display:block;margin-top:2px;border-bottom:1px solid #fff}
.invite--final{background-position:center;border-radius:0}
.final__copy{margin-top:60vh}
.final-wave{display:none}
.map-link{display:inline-block;margin-top:5px;padding:4px 9px;border:1px solid currentColor;border-radius:5px;color:#59372c;text-decoration:none;font:11px Montserrat}
.map-link--light{color:#fff;margin-top:8px}
.story-section--welcome{color:#59372c}
.story-section--date{color:#fff}
.story-section--date .screen-tabs{color:#59372c}
.story-section--date .eyebrow{color:#6f4c3e}
.story-section--date .venue{color:#fff}
.story-section--date .countdown{color:#fff}
.timeline-section,.menu-section{color:#59372c}
.timeline-section .screen-tabs,.menu-section .screen-tabs{color:#59372c}
.providers-section{color:#fff}
.providers-section .screen-tabs{color:#fff}
.providers-section .map-link{color:#fff}
.providers-section .section-frame{display:none}
.providers-section{background:#aaa88d;color:#fff;padding-left:32px;padding-right:32px}
.providers-section .screen-tabs{margin-bottom:14px}
.providers-section h2{font-size:36px;line-height:1.05;margin:0 0 14px}
.provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;text-align:center}
.provider-row{display:block}
.provider-card{min-width:0;border:0;padding:0}
.provider-card img{display:block;width:182px;height:182px;max-width:100%;margin:0 auto;border:2px solid #f8f5eb;border-radius:50%;object-fit:cover}
.provider-card h3{color:#fff;font:17px "Cormorant Garamond",serif;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:7px 0 5px}
.provider-card span{display:none}
.provider-card footer{display:flex;flex-direction:column;gap:3px;min-height:35px;margin:0;color:#fff;text-align:left;font:12px Montserrat}
.provider-card a{color:#fff;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.provider-card .provider-instagram{display:flex;align-items:center;justify-content:flex-end;gap:2px;width:100%;white-space:nowrap;color:#fff!important}
.provider-card .provider-instagram img{display:block;width:14px!important;height:14px!important;max-width:14px;flex:0 0 14px;border:0;border-radius:0;object-fit:contain}
.provider-card .provider-instagram span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#fff!important}
.provider-card:after{display:none}
.provider-card__contacts{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:31px;margin:2px 0 0;text-align:center;font:12px Montserrat}
.provider-card__contacts a{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;color:#fff;text-decoration:none;white-space:nowrap}
.provider-card__contacts a img{display:block;width:20px!important;height:20px!important;max-width:20px;flex:0 0 20px;border:0;border-radius:0;object-fit:contain}
.provider-card__contacts a span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#fff}
.provider-description{position:relative;margin:12px 0 0;padding:24px 28px;color:#fff;text-align:center;font:16px/1.08 "Cormorant Garamond",serif;border:0;background:transparent url("/static/images/hosts-description-frame.png") center/100% 100% no-repeat}
.provider-description:before,.provider-description:after{display:none}
.provider-divider-wrap{position:relative;width:100%;height:42px;margin:2px auto 0}
.provider-divider{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;object-fit:fill}
.provider-row__contacts{position:absolute;inset:0;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;align-items:center}
.provider-divider-wrap .provider-card__contacts{flex-direction:column;gap:2px;min-height:0;margin:0;font-size:10px;line-height:1}
.provider-divider-wrap .provider-card__contacts a{gap:4px}
.provider-divider-wrap .provider-card__contacts a img{width:14px!important;height:14px!important;max-width:14px;flex-basis:14px}

/* Keep the cover controls on the same baseline at every viewport height. */
.wedding-flow{height:956px;min-height:956px}
.cover__copy{position:absolute;left:0;right:0;bottom:28px;width:100%;margin:0}
.cover__copy p{margin:0}
.cover__copy:before,.cover__copy:after{display:none}
.cover__unlock{position:relative;height:50px;margin:24px 28px 0;touch-action:none}
.cover__unlock:before{content:"";position:absolute;left:34px;right:34px;top:24px;border-top:2px}
.cover__unlock:after{content:"";position:absolute;right:0;top:0;width:50px;height:50px;border-radius:50%;background:#fff;transition:box-shadow .3s ease}
.cover__unlock-fill{display:none}
.cover__unlock b{position:absolute;left:0;top:10px;z-index:3;width:32px;height:32px;margin:0;padding:0;border:0;background:#fff;color:#ed526a;font-size:0;line-height:32px;cursor:grab;box-shadow:0 2px 8px rgba(0,0,0,.25);transition:transform .38s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease}
.cover__unlock b:after{content:"❤️";font-size:18px}
.cover__unlock b.is-dragging{transition:box-shadow .2s ease;cursor:grabbing;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.cover__unlock.is-unlocked:after{box-shadow:0 0 0 6px rgba(237,82,106,.25)}
.cover__hint{
  position:relative;
  top:59px;
  z-index:2;
  overflow:hidden;
  display:inline-block;
}
.cover__hint.is-erasing{
  -webkit-mask-image:linear-gradient(
    to right,
    transparent 0,
    transparent calc(var(--unlock-erase-x,-100px) - 2px),
    #000 calc(var(--unlock-erase-x,-100px) + 2px),
    #000 100%
  );
  mask-image:linear-gradient(
    to right,
    transparent 0,
    transparent calc(var(--unlock-erase-x,-100px) - 2px),
    #000 calc(var(--unlock-erase-x,-100px) + 2px),
    #000 100%
  );
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  z-index:2;
}
@supports (background-clip:text) or (-webkit-background-clip:text){
.cover__hint{color:transparent;background:linear-gradient(100deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.55) 42%,#fff 50%,rgba(255,255,255,.55) 58%,rgba(255,255,255,.55) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;animation:coverHintShimmer 2.8s ease-in-out infinite}
}
@keyframes coverHintShimmer{0%{background-position:120% 0}100%{background-position:-120% 0}}
.invite--cover.is-unlocking{transition:filter .4s ease,transform .4s ease;filter:brightness(1.15) blur(1.5px);transform:scale(1.015)}

/* The welcome screen has a separate lower paper panel with a torn photo edge. */
.story-section--welcome{background:#f9f6ed;background-image:none;padding-top:0}
.story-section--welcome:before{top:0;right:0;bottom:0;left:0;height:auto;background:var(--photo) center/cover no-repeat;clip-path:none}
.story-section--welcome .slide-video{height:100%;bottom:0;top:0;object-fit:cover;clip-path:none}
.story-section--welcome .script,.story-section--welcome h2,.story-section--welcome .story-divider,.story-section--welcome .story-lead{position:absolute;left:0;right:0;width:100%;text-align:center;z-index:1}
.story-section--welcome .script{top:145px;margin:0;font:400 clamp(46px,14vw,64px)/1 "Great Vibes","Cormorant Garamond",serif;color:#fffaf0;text-shadow:0 2px 12px rgba(30,22,15,.55)}
.story-section--welcome h2{top:88px;margin:0;font:500 clamp(43px,11vw,52px)/1 "Cormorant Garamond",serif;letter-spacing:.015em;color:#fffaf0;text-shadow:0 2px 12px rgba(30,22,15,.6)}
.story-section--welcome .story-divider{top:770px;margin:0}
.story-section--welcome .story-lead{display:block;top:877px;margin:0;font:italic 25px/1.1 "Cormorant Garamond",serif;color:#806b5f}
.story-section--welcome>p:last-child{display:block}

/* Use the supplied Figma vector raster for the refined paper edge. */
.story-section--welcome:before{height:860px;clip-path:none}
.story-section--welcome:after{display:none}
.story-section--welcome .welcome-edge{position:absolute;left:0;top:813px;width:440px;height:146px;z-index:3;display:block;filter:drop-shadow(0 -1px 1px rgba(76,45,35,.14))}
.story-section--welcome .slide-video{clip-path:none}
.story-section--welcome .script,.story-section--welcome h2,.story-section--welcome .story-divider{z-index:4!important}
.story-section--welcome .story-lead{z-index:4;font-size:clamp(30px,8.5vw,40px);line-height:1.1}
.story-section--welcome .story-divider{height:24px;font-size:0}
.story-section--welcome .story-divider span{display:block;width:13px;height:13px;margin:0 auto;border-right:1.5px solid #806b5f;border-bottom:1.5px solid #806b5f;transform:rotate(45deg)}

/* Keep the closing copy and paper edge together as the welcome-screen footer. */
.story-section--welcome .welcome-edge{top:auto;bottom:0}
.story-section--welcome .story-lead{position:absolute;top:auto;left:32px;right:32px;bottom:30px;z-index:4;margin:0}
.timeline-section .schedule-edge-bottom{bottom:0}
.timeline-section .schedule-note{bottom:18px}

/* Pin slide chrome to the viewport while the central content scrolls underneath. */
.story-section--welcome{padding-bottom:150px}
.welcome-footer,.timeline-footer{position:absolute;top:0;left:-32px;width:440px;height:106px;margin:0;z-index:4;pointer-events:none}
.timeline-footer{left:0}
.story-section--welcome .welcome-edge{position:absolute;left:0;bottom:0;width:440px;height:auto;z-index:3}
.story-section--welcome .story-lead{position:absolute;left:0;right:0;width:440px;bottom:50px;z-index:4;text-align:center;color:#4C2D23}
.timeline-section{padding-bottom:125px}
.timeline-section .timeline-footer{height:110px}
.timeline-section .schedule-edge-bottom{position:absolute;left:0;bottom:0;width:440px;z-index:1}
.timeline-section .schedule-note{
  position:absolute;
  left:38px;
  right:38px;
  bottom:4px;
  z-index:2;
  font-size:24px;
  line-height:1;
  white-space:normal;
}
.timeline-section .schedule-note span{
  display:block;
  white-space:nowrap;
}
.timeline-section .screen-tabs,
.menu-section .screen-tabs,
.providers-section--hosts .screen-tabs{position:absolute;top:8px;z-index:5;margin:0;pointer-events:auto}
.timeline-section .screen-tabs{left:32px;right:32px}
.menu-section .screen-tabs{left:32px;right:32px}

/* Keep the cover's horizontal reveal; subsequent invitation screens move vertically. */
.flow-page:not(.invite--cover){transform:translate3d(0,100%,0)}
.flow-page:not(.invite--cover).is-active{transform:translate3d(0,0,0)}
.flow-page:not(.invite--cover).is-before{transform:translate3d(0,-22%,0)}

/* Scale the complete Figma frame as one unit instead of stretching its layers. */
body:has(.wedding-flow){overflow:hidden}
.wedding-flow{position:fixed;left:0;top:0;width:440px;height:var(--flow-height,956px);min-height:0;margin:0;transform:scale(var(--flow-scale,1));transform-origin:top left}
.wedding-flow .flow-page{height:100%;min-height:100%}

/* Typography from the approved invitation font specification. */
.invite--cover .cover__copy>span{font-family:"Sree Krushnadevaraya",serif;font-weight:400}
.invite--cover .cover__copy h1{font-family:Playball,cursive;font-style:normal;font-weight:400}
.invite--cover .cover__hint{font-family:Montserrat,sans-serif;font-weight:500}

.story-section--welcome h2{font-family:Oranienbaum,serif;font-weight:400}
.story-section--welcome .script,
.invite--final .script{font-family:"Miama Nueva Local","Miama Nueva","Great Vibes",cursive;font-weight:500;font-style:normal}
.story-section--welcome .story-lead{font-family:"Palatino Linotype Local","Palatino Linotype",Palatino,serif;font-weight:400}

.story-section--date .eyebrow,
.story-section--date .date-message,
.story-section--date .venue,
.story-section--date .map-link{font-family:"Montserrat Alternates Local",Montserrat,sans-serif;font-weight:400}
.story-section--date .date-calendar__month{font-family:"Miama Nueva Local","Miama Nueva","Great Vibes",cursive;font-weight:500;color:#000}
.story-section--date .date-calendar__day--current{font-family:Oranienbaum,serif;font-weight:400}
.story-section--date .date-calendar__day--current{
  width:50px;
  height:50px;
  font-size:23px!important;
  line-height:1!important;
  place-items:center;
}
.story-section--date .date-calendar__day--current:before{
  inset:0;
  clip-path:path("M25 48 C21 44 3 34 3 18 C3 6 15 4 25 14 C35 4 47 6 47 18 C47 34 29 44 25 48Z");
}
.story-section--date .date-calendar__day--side{font-size:18px!important}
.story-section--date .venue-title{font-family:"Miama Nueva Local","Miama Nueva","Great Vibes",cursive;font-weight:500}
.story-section--date .venue-title span{font-family:"Cinzel Decorative",serif;font-weight:700}
.story-section--date .venue{
  font:14px/1.15 "Cormorant Garamond",serif!important;
  font-weight:400!important;
  font-style:normal!important;
}

@font-face{
  font-family:"Montserrat Alternates Local";
  src:url("../../../fonts/MontserratAlternates-Regular.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:"Miama Nueva Local";
  src:url("../../../fonts/MiamaNueva-Medium.ttf") format("truetype");
  font-style:normal;
  font-weight:500;
  font-display:swap;
}
@font-face{
  font-family:"Palatino Linotype Local";
  src:url("../../../fonts/PalatinoLinotype-Regular.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:"Bodoni Bk BT Local";
  src:url("../../../fonts/BodoniBkBT-Book.otf") format("opentype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
.story-section--date .eyebrow,
.story-section--date .date-message,
.story-section--date .map-link,
.timeline-section .timeline .map-link{
  font-family:"Montserrat Alternates Local",sans-serif!important;
  font-weight:400!important;
}
.story-section--date .eyebrow,
.story-section--date .date-message{
  font-size:14pt!important;
  line-height:1.2;
  font-family:"Montserrat Alternates Local",sans-serif!important;
  font-style:normal!important;
  font-weight:400!important;
  color:#A7A384!important;
  position:relative;
  top:-20px;
}

/* Keep the address copy on the invitation's Montserrat Alternates Regular style. */
.story-section--date .venue{
  font-family:"Montserrat Alternates Local",sans-serif!important;
  font-size:15px!important;
  line-height:1.15!important;
  font-style:normal!important;
  font-weight:400!important;
  text-transform:none!important;
  position:relative;
  top:20px;
}
.story-section--date .map-link--light{
  font-size:14px!important;
  position:relative;
  top:20px;
}
.story-section--date .date-calendar{position:relative;top:-20px}

.timeline-section .screen-tabs button,
.menu-section .screen-tabs button,
.providers-section--hosts .screen-tabs button,
.timeline-section .timeline__row--heading h3{font-family:"Palatino Linotype Local","Palatino Linotype",Palatino,serif;font-weight:400}
.timeline-section .timeline time{font-family:"Bodoni Bk BT Local","Bodoni Bk BT",Bodoni,Georgia,serif;font-weight:400}
.timeline-section .timeline__row--address{
  font-family:"Montserrat Alternates Local",Montserrat,sans-serif;
  font-size:15px;
  font-weight:400;
  line-height:1.1;
  white-space:nowrap;
}
.timeline-section .timeline .map-link{font-family:"Montserrat Alternates Local",Montserrat,sans-serif;font-weight:400}
.timeline-section .schedule-note{
  font-family:"Miama Nueva Local","Miama Nueva","Great Vibes",cursive!important;
  font-weight:500!important;
}

/* Keep every section navigation button aligned with the schedule slide. */
.screen-tabs button{
  min-height:38px;
  height:38px;
  padding:5px 5px 4px;
  font-size:11px;
}
.screen-tabs button.is-current{
  height:48px;
  min-height:48px;
  padding:8px 10px 6px;
  font-size:14px;
}
.screen-tabs{
  justify-content:center;
  align-items:center;
}

.menu-section h2,
.providers-section h2{font-family:"Palatino Linotype Local","Palatino Linotype",Palatino,serif;font-style:normal;font-weight:400}
.menu-section .menu-group>h3{font-family:"Palatino Linotype Local","Palatino Linotype",Palatino,serif;font-style:italic;font-weight:400}
.menu-section .menu-grid h4{font-family:"Palatino Linotype Local","Palatino Linotype",Palatino,serif;font-style:normal;font-weight:400}
.menu-section .menu-grid p{
  font-family:"Times New Roman",Times,serif!important;
  font-style:normal;
  font-weight:400;
}

.providers-section--hosts h2{font-family:"Palatino Linotype Local","Palatino Linotype",Palatino,serif;font-style:italic;font-weight:400}
.providers-section .provider-card h3{font-family:"Cinzel Decorative",serif;font-style:normal;font-weight:400}
.providers-section .provider-description{font-family:"Palatino Linotype Local","Palatino Linotype",Palatino,serif;font-style:normal;font-weight:400}
.providers-section .provider-card__contacts .host-contact__instagram{font-family:Montserrat,sans-serif;font-weight:500}
.providers-section .provider-card__contacts .host-contact__phone{font-family:"Montserrat Alternates Local",Montserrat,sans-serif;font-weight:400}

.invite--final .final__copy h1{font-family:Oranienbaum,serif;font-style:normal;font-weight:400}
.story-section--welcome .welcome-names-separator{font-family:Oranienbaum,serif;font-size:.72em;margin:0 .12em}

/* Keep the welcome-slide hierarchy stable: names always precede the wedding text. */
.story-section--welcome h2{
  position:absolute!important;
  left:0;
  right:0;
  width:100%;
  top:68px;
  font-size:30px!important;
  margin:0;
  z-index:5!important;
}
.story-section--welcome .script{
  position:absolute;
  left:0;
  right:0;
  width:100%;
  top:109px;
  font-size:46px!important;
  margin:0;
  z-index:5!important;
}

.story-section--welcome .story-divider{
  color:#F9F6ED;
  font-weight:700;
}
.story-section--welcome .story-divider span{
  border-right:3px solid #F9F6ED;
  border-bottom:3px solid #F9F6ED;
  animation:welcomeDividerBounce 1.35s ease-in-out infinite;
}
@keyframes welcomeDividerBounce{
  0%,100%{transform:rotate(45deg) translate(0,0)}
  50%{transform:rotate(45deg) translate(4px,4px)}
}

/* Keep the closing message and names on one readable line. */
.invite--final .final__copy{
  position:absolute;
  left:24px;
  right:24px;
  bottom:76px;
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:baseline;
  justify-content:flex-end;
  gap:8px;
  text-align:left;
  white-space:nowrap;
}
.invite--final .final__copy .script{
  flex:0 0 auto;
  margin:0;
  font-size:36px;
  line-height:1;
  align-self:flex-start;
}
.invite--final .final__copy h1{
  width:100%;
  flex:0 0 auto;
  min-width:0;
  margin:0;
  font-size:clamp(20px,6.4vw,30px);
  line-height:1;
  letter-spacing:.02em;
  white-space:nowrap;
  text-align:right;
  overflow:hidden;
  text-overflow:clip;
}
