:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;color:#17231e;background:#f5f7f4}*{box-sizing:border-box}body{margin:0}a{color:inherit}.demo-topbar{position:sticky;top:0;z-index:20;min-height:52px;padding:10px max(18px,calc((100vw - 1180px)/2));display:flex;align-items:center;gap:16px;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid #e0e7e2;font-size:13px}.demo-topbar a{text-decoration:none;font-weight:700}.demo-topbar span{margin-left:auto;font-weight:800}.demo-topbar small{color:#748078}.demo-shell{width:min(1180px,calc(100% - 28px));margin:auto}.demo-hero{padding:clamp(46px,7vw,90px) 0 42px}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.15em;color:#557064}.demo-hero h1{font-size:clamp(38px,6.5vw,76px);line-height:.96;letter-spacing:-.055em;max-width:920px;margin:12px 0 20px}.demo-hero>p{max-width:720px;font-size:18px;line-height:1.6;color:#66746d}.hero-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.hero-pills span{padding:10px 14px;border-radius:999px;background:#fff;border:1px solid #dde6e0;box-shadow:0 8px 20px rgba(28,63,48,.05);font-weight:700;font-size:13px}.demo-section{padding:34px 0 60px}.section-title{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:20px}.section-title h2,.demo-flow h2{font-size:clamp(27px,4vw,43px);letter-spacing:-.035em;margin:8px 0}.section-title p{margin:0;color:#69766f}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.event-card,.theme-card{background:#fff;border:1px solid #e0e6e2;border-radius:26px;overflow:hidden;box-shadow:0 18px 55px rgba(29,57,44,.07)}.event-preview{min-height:310px;padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--s);background:radial-gradient(circle at 30% 10%,color-mix(in srgb,var(--a) 24%,transparent),transparent 34%),linear-gradient(150deg,var(--surface),#fff)}.event-type{font-size:10px;font-weight:900;letter-spacing:.15em;text-transform:uppercase;color:var(--p)}.event-ornament{font-size:44px;margin:22px 0 8px}.event-preview h3{font-family:Georgia,serif;font-size:30px;line-height:1.05;margin:7px 0;color:var(--s)}.event-preview p{margin:12px 0 5px}.event-preview strong{font-size:12px;letter-spacing:.08em}.event-body{padding:18px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.stats span{text-align:center;background:#f6f8f6;border-radius:14px;padding:10px 5px}.stats b{display:block;font-size:18px}.stats small{font-size:9px;color:#718078}.demo-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:13px;border:1px solid #d8e2dc;text-decoration:none;font-weight:800;font-size:13px}.demo-btn.primary{width:100%;background:var(--p);color:white;border-color:var(--p)}.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.theme-card{padding:12px}.theme-mini{height:210px;border-radius:20px;background:linear-gradient(145deg,var(--surface),#fff);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--s);position:relative;overflow:hidden}.theme-mini:before,.theme-mini:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;background:var(--a);opacity:.12;filter:blur(4px)}.theme-mini:before{left:-35px;top:-30px}.theme-mini:after{right:-35px;bottom:-30px}.theme-mini>span{font-size:34px}.theme-mini small{margin-top:12px;text-transform:uppercase;letter-spacing:.15em;font-size:9px;color:var(--p);font-weight:900}.theme-mini strong{font-family:Georgia,serif;font-size:20px;margin:5px 14px}.theme-mini i{width:55px;height:1px;background:var(--a);margin-top:12px}.theme-card>div:last-child{padding:12px 4px 4px}.theme-card h3{margin:0 0 5px;font-size:15px}.theme-card p{margin:0 0 12px;min-height:48px;color:#6d7872;font-size:12px;line-height:1.45}.demo-flow{border-top:1px solid #dfe6e1}.flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.flow-grid article{background:#fff;border:1px solid #e0e6e2;border-radius:20px;padding:20px}.flow-grid article>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#17372f;color:#fff;font-weight:900}.flow-grid b{display:block;margin-top:16px}.flow-grid p{margin:5px 0;color:#718078;font-size:13px}.demo-footer{text-align:center;padding:28px;color:#7b857f;font-size:12px}.demo-footer span{margin:0 8px}.demo-ribbon{position:sticky;top:0;z-index:30;background:#162e25;color:#fff;display:flex;justify-content:center;gap:14px;padding:9px 14px;font-size:11px;font-weight:800;letter-spacing:.08em}.demo-ribbon a{color:#e7d29b}.demo-invite{background:radial-gradient(circle at 10% 10%,color-mix(in srgb,var(--a) 20%,transparent),transparent 30%),linear-gradient(160deg,var(--surface),#fff 50%,color-mix(in srgb,var(--p) 7%,#fff));min-height:100vh;color:var(--s)}.invite-stage{width:min(760px,calc(100% - 24px));margin:0 auto;padding:34px 0}.invite-cover{min-height:76vh;border-radius:36px;padding:clamp(38px,8vw,74px) clamp(22px,7vw,64px);background:rgba(255,255,255,.78);border:1px solid color-mix(in srgb,var(--p) 15%,#fff);box-shadow:0 30px 90px color-mix(in srgb,var(--s) 15%,transparent);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;position:relative;overflow:hidden}.floating-mark{position:absolute;font-size:68px;opacity:.11}.floating-mark.one{top:7%;left:7%;transform:rotate(-15deg)}.floating-mark.two{right:8%;bottom:8%;color:var(--a)}.invite-kicker{font-size:10px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--p)}.invite-cover h1{font-family:Georgia,serif;font-size:clamp(45px,10vw,74px);line-height:.92;letter-spacing:-.045em;margin:20px 0 8px}.invite-cover h2{font-size:16px;font-weight:600;color:var(--p);margin:0 0 22px}.invite-cover>p{max-width:520px;line-height:1.65;color:#66746d}.date-lockup{margin:22px 0 28px;display:flex;flex-direction:column;gap:5px}.date-lockup small{text-transform:uppercase;letter-spacing:.14em;font-size:9px}.date-lockup strong{font-size:19px}.date-lockup span{font-size:13px;color:#68766e}.invite-action{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border:0;border-radius:15px;background:var(--p);color:#fff;text-decoration:none;font-weight:850;cursor:pointer}.invite-details{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}.invite-details article{background:rgba(255,255,255,.82);border:1px solid #e2e7e3;border-radius:22px;padding:20px}.invite-details article>span{font-size:25px}.invite-details small{display:block;margin:12px 0 4px;color:#78847d;text-transform:uppercase;letter-spacing:.1em;font-size:9px}.invite-details h3{font-size:15px;margin:0}.invite-details p{font-size:12px;line-height:1.45;color:#68766e}.invite-details a{font-size:11px;color:var(--p);font-weight:800}.rsvp-card{background:#fff;border:1px solid #e0e6e2;border-radius:28px;padding:clamp(24px,6vw,42px);margin-top:14px;box-shadow:0 20px 60px rgba(25,55,42,.08)}.rsvp-card h2{font-size:29px;letter-spacing:-.03em;margin:8px 0}.rsvp-card>p{color:#68756e;line-height:1.5}.rsvp-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.rsvp-choice button{min-height:54px;border-radius:15px;border:1px solid #d9e2dc;background:#f8faf8;font-weight:800;cursor:pointer}.rsvp-count{margin-top:24px;border-top:1px solid #e5eae7;padding-top:22px}.rsvp-count label{display:block;font-weight:800;margin-bottom:10px}.count-control{display:flex;align-items:center;justify-content:center;gap:20px;margin:14px 0 20px}.count-control button{width:48px;height:48px;border-radius:50%;border:1px solid #d6e0da;background:#fff;font-size:24px}.count-control strong{font-size:34px;min-width:44px;text-align:center}.success-badge{display:inline-flex;padding:8px 12px;border-radius:999px;background:#eaf6ee;color:#267244;font-weight:850;font-size:12px}.rsvp-result{text-align:center}.rsvp-result h3{font-size:28px;margin:14px 0 6px}.qr-wrap{display:grid;place-items:center;margin:20px auto 12px;width:220px;min-height:220px;border:10px solid #fff;border-radius:22px;box-shadow:0 12px 36px rgba(24,52,40,.13)}.qr-wrap img,.qr-wrap canvas{max-width:100%;height:auto}.access-code{font-size:12px;color:#707d75}.access-code b{font-size:16px;letter-spacing:.12em;color:var(--s)}.entry-result{margin-top:20px;padding:20px;border-radius:20px;background:#f3f8f4;border:1px solid #d8e7dd;text-align:left}.entry-result>span{color:#287245;font-weight:900}.entry-result h3{margin:8px 0 14px}.entry-result>div{display:inline-flex;flex-direction:column;margin-right:28px}.entry-result small{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#738078}.entry-result b{font-size:22px}.entry-result p{font-size:12px;color:#68766e}.rsvp-declined{text-align:center;padding:30px 0}.rsvp-declined>span{font-size:40px}.demo-note{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding:18px;color:#718078;font-size:11px}@media(max-width:900px){.theme-grid{grid-template-columns:repeat(2,1fr)}.event-grid{grid-template-columns:1fr}.flow-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.demo-topbar small{display:none}.demo-topbar{padding-inline:14px}.demo-shell{width:min(100% - 18px,1180px)}.theme-grid{grid-template-columns:1fr 1fr;gap:8px}.theme-card{border-radius:19px;padding:7px}.theme-mini{height:168px;border-radius:15px}.theme-card p{display:none}.theme-card h3{font-size:12px}.demo-btn{font-size:11px;min-height:38px}.flow-grid{grid-template-columns:1fr 1fr}.invite-stage{width:min(100% - 14px,760px);padding-top:12px}.invite-cover{border-radius:24px;min-height:72vh}.invite-details{grid-template-columns:1fr}.rsvp-card{border-radius:22px}.rsvp-choice{grid-template-columns:1fr}.demo-ribbon{justify-content:space-between;font-size:9px}.event-preview{min-height:275px}.event-preview h3{font-size:27px}}

body.demo-gallery{background:radial-gradient(circle at top left,rgba(236,227,199,.45),transparent 30%),linear-gradient(180deg,#f6f7f5,#eef2ef 40%,#f8faf8)}
.demo-hero,.demo-section,.event-card,.theme-card,.flow-grid article,.rsvp-card,.invite-details article{position:relative;overflow:hidden}
.demo-hero:before,.invite-cover:before,.rsvp-card:before{content:"";position:absolute;inset:-40%;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.45) 46%,transparent 57%);transform:translateX(-65%) rotate(8deg);animation:glint 7s ease-in-out infinite;pointer-events:none}
.event-card,.theme-card,.flow-grid article,.invite-details article{transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.event-card:hover,.theme-card:hover,.flow-grid article:hover,.invite-details article:hover{transform:translateY(-6px);box-shadow:0 25px 70px rgba(29,57,44,.13);border-color:color-mix(in srgb,var(--p, #17372f) 18%,#dfe6e1)}
.theme-mini,.event-preview{transform-style:preserve-3d}
.theme-card:hover .theme-mini,.event-card:hover .event-preview{transform:perspective(1000px) rotateX(2deg) rotateY(-3deg) scale(1.01)}
.floating-mark{animation:floaty 5.8s ease-in-out infinite}
.floating-mark.two{animation-delay:-2.3s}
.invite-cover:after{content:"";position:absolute;inset:auto auto 14% -8%;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle, color-mix(in srgb,var(--a) 34%,transparent), transparent 65%);filter:blur(8px);animation:orb 8s ease-in-out infinite;opacity:.65}
.reveal-up{opacity:0;transform:translateY(16px) scale(.985);animation:revealUp .85s cubic-bezier(.2,.7,.2,1) forwards}
.delay-1{animation-delay:.08s}.delay-2{animation-delay:.18s}.delay-3{animation-delay:.28s}.delay-4{animation-delay:.38s}
.invite-action.shimmer{position:relative;overflow:hidden;box-shadow:0 12px 34px color-mix(in srgb,var(--p) 28%,transparent);animation:buttonPulse 2.6s ease-in-out infinite}
.invite-action.shimmer:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0 38%,rgba(255,255,255,.42) 48%,transparent 58%);transform:translateX(-140%);animation:shimmer 3s ease-in-out infinite}
.hero-pills span,.success-badge{animation:softFloat 4.6s ease-in-out infinite}
.hero-pills span:nth-child(2){animation-delay:-.6s}.hero-pills span:nth-child(3){animation-delay:-1.2s}.hero-pills span:nth-child(4){animation-delay:-1.8s}
.qr-wrap{position:relative;overflow:visible}
.qr-wrap:before,.qr-wrap:after{content:"";position:absolute;border-radius:50%;background:color-mix(in srgb,var(--a) 26%,transparent);filter:blur(4px);z-index:-1;animation:orb 7s ease-in-out infinite}
.qr-wrap:before{width:110px;height:110px;left:-18px;top:-18px}
.qr-wrap:after{width:86px;height:86px;right:-12px;bottom:-12px;animation-delay:-2.5s}
[data-reveal-group] article{opacity:0;transform:translateY(18px);animation:revealUp .7s cubic-bezier(.2,.7,.2,1) forwards}
[data-reveal-group] article:nth-child(1){animation-delay:.1s}[data-reveal-group] article:nth-child(2){animation-delay:.18s}[data-reveal-group] article:nth-child(3){animation-delay:.26s}
.confetti-burst{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.confetti-burst i{position:absolute;top:46%;left:50%;width:10px;height:18px;border-radius:3px;opacity:0;transform:translate(-50%,-50%) rotate(0deg);animation:confetti 1150ms cubic-bezier(.2,.7,.2,1) forwards}
@keyframes glint{0%,18%,100%{transform:translateX(-80%) rotate(8deg)} 28%,34%{transform:translateX(130%) rotate(8deg)}}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(-10deg)}50%{transform:translateY(-16px) rotate(-4deg)}}
@keyframes orb{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(16px,-12px,0) scale(1.08)}}
@keyframes revealUp{to{opacity:1;transform:none}}
@keyframes shimmer{0%,15%{transform:translateX(-140%)}30%,100%{transform:translateX(160%)}}
@keyframes buttonPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
@keyframes softFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes confetti{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(0deg)}15%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1) rotate(var(--r))}}
@media (prefers-reduced-motion:reduce){.floating-mark,.invite-action.shimmer,.invite-action.shimmer:after,.hero-pills span,.success-badge,.demo-hero:before,.invite-cover:before,.rsvp-card:before,[data-reveal-group] article,.reveal-up{animation:none !important;opacity:1;transform:none}.event-card:hover,.theme-card:hover,.flow-grid article:hover,.invite-details article:hover{transform:none}}


.demo-shower{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}.demo-shower i{position:absolute;top:-12vh;width:13px;height:34px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(219,191,119,.22));box-shadow:0 0 18px rgba(255,255,255,.18);opacity:.28;animation:demoRain linear infinite}.demo-shower i:nth-child(1){left:5%;animation-duration:8.8s;animation-delay:-1.5s}.demo-shower i:nth-child(2){left:14%;animation-duration:10.2s;animation-delay:-5s}.demo-shower i:nth-child(3){left:24%;animation-duration:7.8s;animation-delay:-2.6s}.demo-shower i:nth-child(4){left:34%;animation-duration:11.4s;animation-delay:-6s}.demo-shower i:nth-child(5){left:45%;animation-duration:8.5s;animation-delay:-4.1s}.demo-shower i:nth-child(6){left:55%;animation-duration:9.8s;animation-delay:-1s}.demo-shower i:nth-child(7){left:64%;animation-duration:7.4s;animation-delay:-7.1s}.demo-shower i:nth-child(8){left:74%;animation-duration:10.8s;animation-delay:-3.2s}.demo-shower i:nth-child(9){left:85%;animation-duration:8.7s;animation-delay:-5.8s}.demo-shower i:nth-child(10){left:94%;animation-duration:11.6s;animation-delay:-8.4s}
.demo-frames{position:absolute;inset:0;pointer-events:none;overflow:hidden}.demo-frames b{position:absolute;border:1.5px solid rgba(255,255,255,.22);border-radius:22px;animation:demoFrame 12s ease-in-out infinite}.demo-frames b:nth-child(1){width:72px;height:72px;left:8%;top:14%;animation-delay:-1s}.demo-frames b:nth-child(2){width:120px;height:120px;right:9%;top:18%;animation-delay:-5s}.demo-frames b:nth-child(3){width:52px;height:52px;left:16%;bottom:18%;animation-delay:-7s}.demo-frames b:nth-child(4){width:140px;height:140px;right:16%;bottom:11%;animation-delay:-3s}.demo-frames b:nth-child(5){width:42px;height:42px;left:48%;top:16%;animation-delay:-8s}
.invite-cover h1,.invite-cover h2,.invite-cover p,.date-lockup,.invite-action{position:relative;z-index:2}
.invite-action.shimmer{animation:buttonPulse 2.5s ease-in-out infinite}
@keyframes demoRain{0%{transform:translate3d(0,-120%,0) rotate(12deg);opacity:0}10%{opacity:.28}100%{transform:translate3d(-5vw,126vh,0) rotate(28deg);opacity:0}}@keyframes demoFrame{0%,100%{transform:translate3d(0,0,0) rotate(0deg)}25%{transform:translate3d(8px,-12px,0) rotate(4deg)}50%{transform:translate3d(-5px,10px,0) rotate(-3deg)}75%{transform:translate3d(10px,3px,0) rotate(2deg)}}
@media(max-width:620px){.demo-frames b:nth-child(2),.demo-frames b:nth-child(4){display:none}}
@media(prefers-reduced-motion:reduce){.demo-shower,.demo-frames{display:none}}


.invite-editorial .detail-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:18px;background:rgba(255,255,255,.82);color:var(--p);box-shadow:0 12px 24px rgba(20,30,25,.08)}.invite-editorial .detail-icon svg{width:24px;height:24px}.invite-editorial .detail-icon.elegant{background:rgba(255,248,234,.9);color:#7f5b24}
.invite-gifting{padding:18px 0 22px}.invite-gifting-head{text-align:center;max-width:760px;margin:0 auto 16px}.invite-gifting-head h2{margin:8px 0 6px;font-size:clamp(28px,5vw,42px);letter-spacing:-.035em}.invite-gifting-head p{margin:0 auto;color:#6d7872;line-height:1.6}.invite-gifting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gift-card{position:relative;overflow:hidden;background:#fff;border:1px solid #e0e6e2;border-radius:26px;padding:22px;box-shadow:0 16px 38px rgba(28,57,44,.08)}.gift-card:before{content:"";position:absolute;inset:auto -12% -35% auto;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--a) 18%,transparent),transparent 65%)}.gift-card small{display:inline-flex;width:max-content;padding:7px 10px;border-radius:999px;background:#f4f7f5;color:var(--p);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.gift-card h3{margin:10px 0 4px;font-size:23px;letter-spacing:-.03em}.gift-card p{margin:0;color:#6f7b74;line-height:1.58}.gift-card dl{display:grid;gap:10px;margin:4px 0 0}.gift-card dl div{padding:12px 13px;border:1px solid #edf1ee;border-radius:16px;background:#fbfcfb}.gift-card dt{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--p);font-weight:900}.gift-card dd{margin:3px 0 0;font-size:15px;font-weight:800}.gift-card.transfer dd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
@media(max-width:760px){.invite-gifting-grid{grid-template-columns:1fr}}


body.invite-locked{overflow:hidden}body.invite-locked .invite-stage,body.invite-locked .demo-shell{opacity:.08;transform:scale(.986) translateY(18px);filter:blur(10px);pointer-events:none}body.invite-opened .invite-stage,body.invite-opened .demo-shell{transition:opacity .78s ease,transform .78s cubic-bezier(.2,.8,.2,1),filter .78s ease;transition-delay:.48s;opacity:1;transform:none;filter:none}
.invite-opening-screen{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 18%,rgba(255,255,255,.2),transparent 26%),linear-gradient(160deg,color-mix(in srgb,var(--s) 92%,#0c1511),color-mix(in srgb,var(--p) 82%,#18241f));overflow:hidden}.invite-opening-screen.is-hidden{pointer-events:none}.invite-opening-aura{position:absolute;inset:0;background:radial-gradient(circle at center,color-mix(in srgb,var(--a) 18%,transparent),transparent 52%),radial-gradient(circle at 18% 20%,rgba(255,255,255,.08),transparent 30%),radial-gradient(circle at 82% 24%,rgba(255,255,255,.08),transparent 24%);filter:blur(8px)}.invite-opening-screen:before,.invite-opening-screen:after{content:"";position:absolute;width:36vw;height:36vw;max-width:340px;max-height:340px;border:1px solid rgba(255,255,255,.14);border-radius:50%;animation:openingHalo 14s linear infinite}.invite-opening-screen:before{left:-10%;top:-8%}.invite-opening-screen:after{right:-12%;bottom:-10%;animation-direction:reverse}
.invite-opening-scene{position:relative;z-index:1;display:grid;justify-items:center;gap:16px;width:min(520px,100%);text-align:center;color:#fff}.invite-opening-kicker{margin:0;color:color-mix(in srgb,var(--a) 82%,#fff);font-size:11px;font-weight:900;letter-spacing:.22em;text-transform:uppercase}.invite-opening-copy{max-width:430px;margin:0;color:rgba(255,255,255,.82);line-height:1.65}
.opening-envelope{position:relative;display:block;width:min(430px,92vw);height:290px;padding:0;border:0;background:none;cursor:pointer;outline:none;transform-style:preserve-3d;transition:transform .35s ease}.opening-envelope:hover{transform:translateY(-3px) scale(1.01)}.opening-envelope:focus-visible{filter:drop-shadow(0 0 0 3px rgba(255,255,255,.32))}.opening-envelope-shadow{position:absolute;left:10%;right:10%;bottom:16px;height:32px;border-radius:50%;background:rgba(0,0,0,.22);filter:blur(18px)}.opening-envelope-back,.opening-envelope-front,.opening-envelope-flap,.opening-envelope-letter{position:absolute;left:50%;transform:translateX(-50%)}.opening-envelope-back{bottom:28px;width:82%;height:58%;border-radius:0 0 24px 24px;background:linear-gradient(180deg,#fcf7ef,#ecdcc5);box-shadow:0 28px 60px rgba(0,0,0,.22)}.opening-envelope-front{bottom:28px;width:82%;height:58%;border-radius:0 0 24px 24px;background:linear-gradient(180deg,#f6ead9,#e6d1b0);clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%)}.opening-envelope-front:before,.opening-envelope-front:after{content:"";position:absolute;bottom:0;width:50%;height:100%;background:linear-gradient(180deg,#f4e7d1,#dfc59c)}.opening-envelope-front:before{left:0;clip-path:polygon(0 0,100% 56%,100% 100%,0 100%)}.opening-envelope-front:after{right:0;clip-path:polygon(0 56%,100% 0,100% 100%,0 100%)}.opening-envelope-flap{top:48px;width:82%;height:44%;transform:translateX(-50%);transform-origin:50% 0%;border-radius:24px 24px 8px 8px;background:linear-gradient(180deg,#fdf7ee,#ead7b6);clip-path:polygon(0 0,100% 0,50% 100%);box-shadow:0 10px 24px rgba(0,0,0,.12)}.opening-envelope-letter{top:86px;width:68%;min-height:148px;padding:22px 18px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,251,244,.98));box-shadow:0 10px 24px rgba(0,0,0,.1);display:grid;gap:8px;align-content:start;color:#223028;--letter-shift-x:0px;--letter-shift-y:-164px;--letter-scale:1.05;--letter-rotate:0deg;transform:translateX(-50%) translate3d(0,0,0) scale(1) rotate(0deg)}.opening-envelope-letter small{font-size:11px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--p)}.opening-envelope-letter strong{font-family:Georgia,"Times New Roman",serif;font-size:clamp(24px,5vw,34px);font-weight:500;line-height:1}.opening-envelope-letter em{font-style:normal;color:#68736d;line-height:1.45}.opening-envelope-seal{position:absolute;left:50%;bottom:100px;transform:translateX(-50%);display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff7da,var(--a));box-shadow:0 10px 20px rgba(0,0,0,.18);color:#6a4d12;font-size:20px;font-weight:900}

.invite-opening-screen.is-opening .opening-envelope-flap{animation:openingFlap 1.05s cubic-bezier(.22,.8,.18,1) forwards}.invite-opening-screen.is-opening .opening-envelope-letter{animation:openingLetterTarget 1.32s cubic-bezier(.22,.8,.18,1) forwards}.invite-opening-screen.is-opening .opening-envelope-seal{animation:openingSeal .7s ease-out forwards}.invite-opening-screen.is-opening .invite-opening-copy,.invite-opening-screen.is-opening .invite-opening-kicker{animation:openingFade .6s ease forwards}.invite-opening-screen.is-opening{animation:openingScreenFade 1.8s ease forwards}
@keyframes openingFlap{0%{transform:translateX(-50%) rotateX(0)}55%{transform:translateX(-50%) rotateX(-164deg)}100%{transform:translateX(-50%) rotateX(-178deg)}}@keyframes openingLetterTarget{0%{transform:translateX(-50%) translate3d(0,0,0) scale(1) rotate(0deg);opacity:1}18%{transform:translateX(-50%) translate3d(0,-26px,0) scale(1.02) rotate(0deg);opacity:1}62%{transform:translateX(-50%) translate3d(calc(var(--letter-shift-x) * .72),calc(var(--letter-shift-y) * .72),0) scale(calc(1 + ((var(--letter-scale) - 1) * .72))) rotate(calc(var(--letter-rotate) * .72));opacity:1}100%{transform:translateX(-50%) translate3d(var(--letter-shift-x),var(--letter-shift-y),0) scale(var(--letter-scale)) rotate(var(--letter-rotate));opacity:0}}@keyframes openingSeal{0%{opacity:1;transform:translateX(-50%) scale(1)}100%{opacity:0;transform:translateX(-50%) translateY(20px) scale(.6)}}@keyframes openingFade{to{opacity:0;transform:translateY(-8px)}}@keyframes openingScreenFade{0%,70%{opacity:1}100%{opacity:0}}@keyframes openingHalo{0%{transform:rotate(0deg) translateY(0)}100%{transform:rotate(360deg) translateY(0)}}
@media(max-width:620px){.opening-envelope{height:250px}.opening-envelope-letter{top:78px;width:72%;min-height:132px;padding:18px 14px}.opening-envelope-seal{bottom:90px;width:50px;height:50px}.invite-opening-copy{font-size:14px}}
@media(prefers-reduced-motion:reduce){body.invite-locked{overflow:auto}body.invite-locked .invite-stage,body.invite-locked .demo-shell{opacity:1;transform:none;filter:none;pointer-events:auto}.invite-opening-screen{display:none}}

.invite-opening-screen.is-opening .opening-envelope{animation:openingEnvelopeSink 1.25s cubic-bezier(.2,.75,.2,1) forwards}
.opening-envelope-letter.is-targeting{box-shadow:0 26px 54px rgba(0,0,0,.18),0 0 0 1px rgba(255,255,255,.35) inset}
@keyframes openingEnvelopeSink{0%{transform:none;opacity:1}100%{transform:translateY(18px) scale(.98);opacity:.82}}


.opening-flight{position:absolute;inset:0;pointer-events:none}.opening-flight i{position:absolute;left:50%;top:54%;opacity:0;transform:translate(var(--ox),var(--oy)) scale(.5) rotate(var(--rot));filter:drop-shadow(0 6px 18px rgba(0,0,0,.16))}.opening-flight i:before{display:block}
.opening-flight i:nth-child(1){--ox:-18px;--oy:-14px;--tx:-230px;--ty:-190px;--rot:-18deg}.opening-flight i:nth-child(2){--ox:8px;--oy:10px;--tx:-140px;--ty:-245px;--rot:8deg}.opening-flight i:nth-child(3){--ox:18px;--oy:-8px;--tx:0px;--ty:-278px;--rot:0deg}.opening-flight i:nth-child(4){--ox:-10px;--oy:6px;--tx:130px;--ty:-240px;--rot:10deg}.opening-flight i:nth-child(5){--ox:12px;--oy:-16px;--tx:225px;--ty:-180px;--rot:18deg}.opening-flight i:nth-child(6){--ox:0px;--oy:20px;--tx:268px;--ty:-86px;--rot:26deg}.opening-flight i:nth-child(7){--ox:-4px;--oy:2px;--tx:-265px;--ty:-85px;--rot:-26deg}.opening-flight i:nth-child(8){--ox:15px;--oy:8px;--tx:88px;--ty:-310px;--rot:12deg}
.opening-effect-petals .opening-flight i:before{content:"❀";font-size:clamp(18px,3.8vw,30px);color:#f6d3d8}.opening-effect-petals .invite-opening-aura{background:radial-gradient(circle at center,rgba(246,211,216,.16),transparent 52%),radial-gradient(circle at 18% 20%,rgba(255,255,255,.08),transparent 30%),radial-gradient(circle at 82% 24%,rgba(255,255,255,.08),transparent 24%)}
.opening-effect-sparkles .opening-flight i:before{content:"✦";font-size:clamp(18px,3.8vw,30px);color:#f4df94}.opening-effect-sparkles .opening-flight i:nth-child(even):before{content:"✧"}.opening-effect-sparkles .invite-opening-aura{background:radial-gradient(circle at center,rgba(244,223,148,.18),transparent 52%),radial-gradient(circle at 20% 18%,rgba(255,255,255,.08),transparent 30%),radial-gradient(circle at 80% 26%,rgba(255,255,255,.08),transparent 24%)}
.opening-effect-confetti .opening-flight i{width:16px;height:16px;border-radius:4px}.opening-effect-confetti .opening-flight i:nth-child(odd){border-radius:999px}.opening-effect-confetti .opening-flight i:nth-child(1),.opening-effect-confetti .opening-flight i:nth-child(5){background:#ffd166}.opening-effect-confetti .opening-flight i:nth-child(2),.opening-effect-confetti .opening-flight i:nth-child(6){background:#ef476f}.opening-effect-confetti .opening-flight i:nth-child(3),.opening-effect-confetti .opening-flight i:nth-child(7){background:#06d6a0}.opening-effect-confetti .opening-flight i:nth-child(4),.opening-effect-confetti .opening-flight i:nth-child(8){background:#118ab2}.opening-effect-confetti .invite-opening-aura{background:radial-gradient(circle at center,rgba(17,138,178,.12),transparent 52%),radial-gradient(circle at 20% 18%,rgba(255,209,102,.1),transparent 30%),radial-gradient(circle at 80% 26%,rgba(239,71,111,.12),transparent 24%)}
.opening-effect-leaves .opening-flight i{width:18px;height:30px;border-radius:18px 2px 18px 2px;background:linear-gradient(180deg,#b8d6b0,#6e9b63)}.opening-effect-leaves .opening-flight i:nth-child(even){background:linear-gradient(180deg,#d7e3aa,#7cae72)}.opening-effect-leaves .opening-flight i:nth-child(odd){transform:translate(var(--ox),var(--oy)) scale(.6) rotate(calc(var(--rot) - 25deg))}.opening-effect-leaves .invite-opening-aura{background:radial-gradient(circle at center,rgba(126,174,114,.16),transparent 52%),radial-gradient(circle at 20% 18%,rgba(255,255,255,.08),transparent 30%),radial-gradient(circle at 80% 26%,rgba(255,255,255,.08),transparent 24%)}
.invite-opening-screen.is-opening .opening-flight i{animation:openingObjectFly 1.65s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes openingObjectFly{0%{opacity:0;transform:translate(var(--ox),var(--oy)) scale(.45) rotate(var(--rot))}18%{opacity:1}100%{opacity:0;transform:translate(calc(var(--ox) + var(--tx)),calc(var(--oy) + var(--ty))) scale(1.18) rotate(calc(var(--rot) + 18deg))}}


.invite-photo-oval{position:relative;width:min(248px,72vw);aspect-ratio:1/1.18;margin:24px auto 0;border-radius:50% / 42%;padding:10px;background:linear-gradient(145deg,rgba(255,255,255,.84),rgba(255,255,255,.22));box-shadow:0 20px 48px rgba(18,36,28,.18),inset 0 0 0 1px rgba(255,255,255,.32);overflow:hidden;backdrop-filter:blur(8px)}
.invite-photo-oval:before{content:"";position:absolute;inset:6px;border-radius:50% / 42%;border:1px solid rgba(255,255,255,.42);pointer-events:none}.invite-photo-fallback{width:100%;height:100%;border-radius:50% / 42%}
.invite-photo-fallback{display:grid;place-items:center;align-content:center;gap:8px;padding:22px;background:radial-gradient(circle at 28% 20%,rgba(255,255,255,.28),transparent 28%),linear-gradient(155deg,color-mix(in srgb,var(--a) 34%,#fff),rgba(255,255,255,.14) 35%,color-mix(in srgb,var(--p) 72%,#fff));color:#fff;text-align:center}.invite-photo-fallback span{font-size:48px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.16))}.invite-photo-fallback strong{font-family:Georgia,serif;font-size:17px;line-height:1.15}.invite-photo-fallback small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.invite-date-animated .invite-date-line,.invite-date-animated .invite-time-line{display:block}.invite-date-animated .invite-date-line{animation:inviteDateDrift 4.6s ease-in-out infinite .8s}.invite-date-animated .invite-time-line{animation:inviteTimeGlow 3.8s ease-in-out infinite 1s}
body.invite-opened .invite-photo-oval{animation:invitePhotoFloat 5.8s ease-in-out infinite 1.05s}
@keyframes invitePhotoFloat{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-8px) rotate(.6deg)}}
@keyframes inviteDateDrift{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes inviteTimeGlow{0%,100%{text-shadow:0 0 0 rgba(0,0,0,0);letter-spacing:0}50%{text-shadow:0 0 18px rgba(255,255,255,.22);letter-spacing:.02em}}
@media(max-width:620px){.invite-photo-oval{width:min(220px,76vw);margin-top:20px}.invite-photo-fallback span{font-size:42px}.invite-photo-fallback strong{font-size:15px}}
@media (prefers-reduced-motion:reduce){.invite-photo-oval,.invite-date-animated .invite-date-line,.invite-date-animated .invite-time-line{animation:none !important;opacity:1;transform:none}}


.event-portrait{width:132px;height:154px;margin:18px auto 12px;padding:6px;border-radius:50% / 42%;background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(255,255,255,.28));box-shadow:0 18px 40px rgba(25,55,42,.15), inset 0 0 0 1px rgba(255,255,255,.4);overflow:hidden}
.event-portrait img,.invite-photo-oval img{display:block;width:100%;height:100%;object-fit:cover}
.event-portrait img{border-radius:50% / 42%}
.invite-photo-oval img{border-radius:50% / 42%}
@media(max-width:620px){.event-portrait{width:118px;height:138px}}


.invite-photo-oval,.event-portrait{display:block;position:relative;overflow:hidden;transform:translateZ(0)}
.invite-photo-oval{min-height:292px}
.invite-photo-oval.has-photo{background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(255,255,255,.34))}
.invite-photo-image,.event-portrait-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;opacity:1;visibility:visible;transform:scale(1.001)}
.event-portrait{min-height:154px}
.date-lockup.invite-date-animated{position:relative;overflow:hidden}
.date-lockup.invite-date-animated:before{content:"";position:absolute;inset:-20%;background:linear-gradient(120deg,transparent 25%,rgba(255,255,255,.18) 48%,transparent 70%);transform:translateX(-120%);animation:inviteSheen 4.4s ease-in-out infinite 1s;pointer-events:none}
.date-lockup.invite-date-animated .invite-date-line{display:block;animation:inviteDatePop .95s cubic-bezier(.2,.8,.2,1) .2s both, inviteDateDrift 4.8s ease-in-out 1.2s infinite}
.date-lockup.invite-date-animated .invite-time-line{display:block;animation:inviteTimePop .95s cubic-bezier(.2,.8,.2,1) .34s both, inviteTimeGlow 3.8s ease-in-out 1.4s infinite}
body.invite-opened .invite-photo-oval.has-photo{animation:invitePhotoReveal 1s cubic-bezier(.2,.8,.2,1) .15s both, invitePhotoFloat 6s ease-in-out 1.2s infinite}
@keyframes invitePhotoReveal{0%{opacity:0;transform:translateY(18px) scale(.92)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes inviteDatePop{0%{opacity:0;transform:translateY(16px);letter-spacing:.12em}100%{opacity:1;transform:translateY(0);letter-spacing:0}}
@keyframes inviteTimePop{0%{opacity:0;transform:translateY(14px) scale(.96)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes inviteSheen{0%,18%{transform:translateX(-120%)}40%,100%{transform:translateX(130%)}}
@media(max-width:620px){.invite-photo-oval{min-height:260px}}


.invite-cover{position:relative;overflow:hidden}
.invite-cover:before{content:"";position:absolute;inset:18px;border-radius:32px;border:1px solid rgba(255,255,255,.22);pointer-events:none;opacity:.85}
.invite-cover:after{content:"";position:absolute;inset:auto 10% 8% 10%;height:160px;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 68%);filter:blur(18px);pointer-events:none}
.invite-photo-oval.has-photo{box-shadow:0 30px 70px rgba(14,34,27,.22),inset 0 0 0 1px rgba(255,255,255,.55),0 0 0 10px rgba(255,255,255,.12);background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,255,255,.35))}
.invite-photo-oval.has-photo:after{content:"";position:absolute;inset:14px;border-radius:50% / 42%;border:1px solid rgba(255,255,255,.64);box-shadow:0 0 0 1px rgba(255,255,255,.18) inset;pointer-events:none}
.invite-photo-oval.has-photo .invite-photo-image{animation:invitePhotoZoom 11s ease-in-out infinite alternate}
.date-lockup.invite-date-animated{padding:18px 22px;border:1px solid rgba(255,255,255,.26);box-shadow:0 18px 42px rgba(18,36,28,.12),inset 0 1px 0 rgba(255,255,255,.24);backdrop-filter:blur(8px)}
.date-lockup.invite-date-animated small{letter-spacing:.24em;color:color-mix(in srgb,var(--p) 76%,#fff)}
.date-lockup.invite-date-animated .invite-date-line{font-size:clamp(22px,3.6vw,34px);font-weight:800;letter-spacing:-.03em}
.date-lockup.invite-date-animated .invite-time-line{margin-top:6px;font-size:clamp(15px,2.2vw,20px);font-weight:700;color:var(--s)}
.date-lockup.invite-date-animated:after{content:"✦";position:absolute;right:16px;top:12px;font-size:18px;color:rgba(255,255,255,.75);animation:twinkleStar 2.8s ease-in-out infinite}
body.invite-opened .date-lockup.invite-date-animated{animation:inviteDateCardReveal .95s cubic-bezier(.2,.8,.2,1) both .2s}
.reveal-up.delay-4.invite-action,.invite-action.shimmer{position:relative;overflow:hidden;box-shadow:0 18px 38px rgba(18,36,28,.18)}
.reveal-up.delay-4.invite-action:after,.invite-action.shimmer:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 18%,rgba(255,255,255,.34) 50%,transparent 82%);transform:translateX(-130%);animation:buttonSheen 3.6s ease-in-out infinite 1.2s}
.event-card{transition:transform .28s ease,box-shadow .28s ease}
.event-card:hover{transform:translateY(-8px);box-shadow:0 24px 68px rgba(18,36,28,.14)}
.event-portrait.has-photo{box-shadow:0 18px 44px rgba(18,36,28,.16),inset 0 0 0 1px rgba(255,255,255,.52),0 0 0 8px rgba(255,255,255,.12)}
.event-portrait.has-photo:after{content:"";position:absolute;inset:10px;border-radius:50% / 42%;border:1px solid rgba(255,255,255,.54);pointer-events:none}
.event-portrait.has-photo .event-portrait-image{animation:invitePhotoZoom 12s ease-in-out infinite alternate}
.demo-hero{position:relative;overflow:hidden}
.demo-hero:before,.demo-hero:after{content:"";position:absolute;border-radius:50%;filter:blur(8px);opacity:.38;pointer-events:none}
.demo-hero:before{width:180px;height:180px;right:5%;top:10%;background:color-mix(in srgb,#fff 40%,#d8c39a);animation:floatOrb 8.4s ease-in-out infinite}
.demo-hero:after{width:130px;height:130px;left:2%;bottom:8%;background:color-mix(in srgb,#fff 35%,#bad5c3);animation:floatOrb 10.5s ease-in-out infinite reverse}
.hero-pills span{position:relative;overflow:hidden}
.hero-pills span:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 14%,rgba(255,255,255,.48) 48%,transparent 84%);transform:translateX(-130%);animation:buttonSheen 4.2s ease-in-out infinite}
@keyframes invitePhotoZoom{0%{transform:scale(1)}100%{transform:scale(1.065)}}
@keyframes twinkleStar{0%,100%{transform:scale(1);opacity:.52}50%{transform:scale(1.35);opacity:1}}
@keyframes inviteDateCardReveal{0%{opacity:0;transform:translateY(22px) scale(.96)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes buttonSheen{0%,18%{transform:translateX(-130%)}45%,100%{transform:translateX(130%)}}
@keyframes floatOrb{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-12px,0)}}
@media(max-width:700px){.date-lockup.invite-date-animated{padding:16px 16px}.invite-cover:before{inset:12px;border-radius:26px}}



.event-type:after{content:"";position:absolute;inset:-50% -40%;background:linear-gradient(110deg,transparent 28%,rgba(255,255,255,.78) 48%,transparent 68%);transform:translateX(-125%);animation:kickerReflect 3.2s ease-in-out infinite .8s}
.event-type{position:relative;overflow:hidden;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--p) 8%,#fff)}

.invite-animate-on-view{opacity:0;transform:translateY(28px) scale(.985);transition:opacity .72s ease,transform .72s cubic-bezier(.2,.8,.2,1)}.invite-animate-on-view.is-in-view{opacity:1;transform:none}
@keyframes detailSheen{from{transform:translateX(-130%)}to{transform:translateX(130%)}}

.opening-effect-petals .demo-shower i{width:15px;height:15px;border-radius:58% 42% 62% 38%;background:linear-gradient(145deg,#fff6f7,#efbfc8);box-shadow:none;animation-name:demoPetalFall;opacity:.46}
.opening-effect-sparkles .demo-shower i{width:8px;height:8px;border-radius:50%;background:#f3dc84;box-shadow:0 0 14px rgba(243,220,132,.88);animation-name:demoSparkleFall;opacity:.62}
.opening-effect-confetti .demo-shower i{width:10px;height:18px;border-radius:2px;background:var(--a);box-shadow:none;animation-name:demoConfettiFall;opacity:.5}.opening-effect-confetti .demo-shower i:nth-child(3n){background:#ef476f}.opening-effect-confetti .demo-shower i:nth-child(3n+1){background:#06d6a0}.opening-effect-confetti .demo-shower i:nth-child(3n+2){background:#ffd166}
.opening-effect-leaves .demo-shower i{width:16px;height:24px;border-radius:70% 30% 65% 35%;background:linear-gradient(145deg,#b9d8af,#709b68);box-shadow:none;animation-name:demoLeafFall;opacity:.42}
@keyframes demoPetalFall{0%{transform:translate3d(0,-12vh,0) rotate(0deg);opacity:0}10%{opacity:.46}100%{transform:translate3d(6vw,118vh,0) rotate(360deg);opacity:0}}
@keyframes demoSparkleFall{0%{transform:translate3d(0,-12vh,0) scale(.7);opacity:0}20%{opacity:.7}50%{transform:translate3d(2vw,48vh,0) scale(1.25)}100%{transform:translate3d(-1vw,118vh,0) scale(.6);opacity:0}}
@keyframes demoConfettiFall{0%{transform:translate3d(0,-12vh,0) rotate(0deg);opacity:0}12%{opacity:.56}100%{transform:translate3d(-4vw,118vh,0) rotate(620deg);opacity:0}}
@keyframes demoLeafFall{0%{transform:translate3d(0,-12vh,0) rotate(-20deg);opacity:0}12%{opacity:.46}50%{transform:translate3d(3vw,52vh,0) rotate(120deg)}100%{transform:translate3d(-2vw,118vh,0) rotate(260deg);opacity:0}}

@media(prefers-reduced-motion:reduce){.invite-kicker-shine:after,.event-type:after,.opening-effect-petals .demo-shower i,.opening-effect-sparkles .demo-shower i,.opening-effect-confetti .demo-shower i,.opening-effect-leaves .demo-shower i{animation:none!important}.invite-animate-on-view{opacity:1;transform:none}}


.invite-kicker-shine{position:relative;display:inline-flex;overflow:hidden;padding:7px 13px;border-radius:999px;border:1px solid color-mix(in srgb,var(--p) 18%,#fff);background:rgba(255,255,255,.54)}.invite-kicker-shine:after{content:"";position:absolute;inset:-20% -40%;background:linear-gradient(110deg,transparent 28%,rgba(255,255,255,.78) 48%,transparent 68%);transform:translateX(-125%);animation:kickerReflect 3.2s ease-in-out infinite .8s}


.demo-invite.opening-effect-petals .demo-shower i{width:16px;height:16px;border-radius:70% 30% 70% 30%;background:linear-gradient(135deg,#f9e4e8,#d994a1);opacity:.48}.demo-invite.opening-effect-sparkles .demo-shower i{width:9px;height:9px;border-radius:1px;background:#f1d270;box-shadow:0 0 15px rgba(241,210,112,.75);opacity:.68;transform:rotate(45deg)}.demo-invite.opening-effect-confetti .demo-shower i{width:10px;height:17px;border-radius:2px;opacity:.62}.demo-invite.opening-effect-confetti .demo-shower i:nth-child(3n+1){background:#ffd166}.demo-invite.opening-effect-confetti .demo-shower i:nth-child(3n+2){background:#ef476f}.demo-invite.opening-effect-confetti .demo-shower i:nth-child(3n){background:#06d6a0}.demo-invite.opening-effect-leaves .demo-shower i{width:18px;height:13px;border-radius:75% 25% 70% 30%;background:linear-gradient(140deg,#aacb8e,#577d4c);opacity:.5}
.invite-detail-dress{animation-delay:1.4s!important}.invite-detail-note{animation-delay:1.56s!important}
@keyframes kickerReflect{0%,18%{transform:translateX(-125%)}42%,100%{transform:translateX(125%)}}@keyframes iconPulse{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.04)}}





.hero-title-stack{position:relative;z-index:2;display:grid;justify-items:center;gap:12px;width:min(100%,640px);margin:4px auto 0}
.hero-title-frame{position:relative;display:grid;justify-items:center;gap:10px;width:min(100%,600px);padding:26px 24px 22px;border-radius:34px;background:linear-gradient(160deg,rgba(255,255,255,.18),rgba(255,255,255,.08));border:1px solid rgba(255,255,255,.22);box-shadow:0 28px 70px rgba(17,37,29,.18), inset 0 1px 0 rgba(255,255,255,.2);backdrop-filter:blur(10px);overflow:hidden}
.hero-title-frame:before{content:"";position:absolute;inset:10px;border-radius:26px;border:1px solid rgba(255,255,255,.16);pointer-events:none}
.hero-title-frame:after{content:"";position:absolute;inset:auto -10% 4% -10%;height:88px;background:radial-gradient(circle,rgba(255,255,255,.15),transparent 72%);filter:blur(10px);pointer-events:none}
.hero-mini-mark{position:relative;display:inline-flex;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);font-size:10px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.hero-type-reflect{position:relative;display:inline-flex;padding:9px 18px 14px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.08));box-shadow:0 14px 32px rgba(17,37,29,.16);overflow:hidden}
.hero-type-reflect:before{content:attr(data-reflect);position:absolute;left:0;right:0;top:100%;padding-top:2px;text-align:center;font:inherit;letter-spacing:inherit;text-transform:inherit;color:rgba(255,255,255,.18);transform:scaleY(-1);mask-image:linear-gradient(to bottom,rgba(0,0,0,.55),transparent 70%);-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.55),transparent 70%)}
.hero-title-stack .invite-kicker{margin:0}
.hero-title-frame h1{margin:0;max-width:14ch;font-family:Georgia,"Times New Roman",serif;font-size:clamp(44px,9vw,82px);line-height:.96;letter-spacing:-.06em;text-wrap:balance;text-shadow:0 12px 32px rgba(17,37,29,.18)}
.hero-title-frame h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(22px,4vw,34px);font-style:italic;color:var(--a)}
.hero-title-frame .invite-for{margin:0;color:rgba(255,255,255,.88)}
.hero-date-nest{width:min(100%,430px)!important;margin-top:6px!important;padding:0!important;background:none!important;border:none!important;box-shadow:none!important;backdrop-filter:none!important;display:grid;gap:12px;justify-items:center}
.hero-date-nest small{display:inline-flex;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);font-size:10px;letter-spacing:.22em;color:rgba(255,255,255,.8)!important;text-transform:uppercase}
.hero-date-nest .invite-date-line{display:block;width:100%;padding:18px 16px 14px;border-radius:28px;background:linear-gradient(160deg,rgba(255,255,255,.96),rgba(255,255,255,.78));color:var(--s)!important;box-shadow:0 22px 54px rgba(17,37,29,.18);font-size:clamp(24px,4vw,38px)!important;font-weight:900;letter-spacing:-.04em;line-height:1.08}
.hero-date-nest .invite-time-line{display:inline-flex;align-items:center;justify-content:center;min-width:220px;padding:11px 20px;border-radius:999px;background:linear-gradient(135deg,color-mix(in srgb,var(--a) 68%,#fff),rgba(255,255,255,.95));color:var(--s)!important;box-shadow:0 14px 34px rgba(17,37,29,.18);font-size:clamp(15px,2.4vw,19px)!important;font-weight:900;letter-spacing:.02em}
.hero-intro-refined{max-width:570px;padding-inline:14px}
.hero-title-frame .delay-1,.hero-title-frame .delay-2{animation:none!important;opacity:1;transform:none}
body.invite-opened .hero-title-frame,body:not(.invite-locked) .hero-title-frame{animation:heroFrameReveal .92s cubic-bezier(.22,.8,.2,1) both .12s}
body.invite-opened .hero-type-reflect,body:not(.invite-locked) .hero-type-reflect{animation:heroPillDrop .9s cubic-bezier(.22,.8,.2,1) both .05s}
body.invite-opened .hero-date-nest .invite-date-line,body:not(.invite-locked) .hero-date-nest .invite-date-line{animation:heroDatePop .95s cubic-bezier(.22,.8,.2,1) both .3s, inviteDateDrift 4.8s ease-in-out 1.3s infinite}
body.invite-opened .hero-date-nest .invite-time-line,body:not(.invite-locked) .hero-date-nest .invite-time-line{animation:heroTimeFloat .95s cubic-bezier(.22,.8,.2,1) both .42s, inviteTimeGlow 3.8s ease-in-out 1.4s infinite}



@keyframes heroFrameReveal{0%{opacity:0;transform:translateY(18px) scale(.96)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes heroPillDrop{0%{opacity:0;transform:translateY(-16px) scale(.92)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes heroDatePop{0%{opacity:0;transform:translateY(16px) rotate(-2deg)}100%{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes heroTimeFloat{0%{opacity:0;transform:translateY(18px) scale(.94)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes contentGlow{0%,100%{text-shadow:0 0 0 rgba(255,255,255,0)}50%{text-shadow:0 0 16px rgba(255,255,255,.16)}}
@media(max-width:620px){.hero-title-frame{padding:22px 16px 18px;border-radius:26px}.hero-type-reflect{padding:8px 14px 12px}.hero-date-nest .invite-date-line{padding:16px 14px 13px;font-size:clamp(21px,6vw,29px)!important}.hero-date-nest .invite-time-line{min-width:0;width:100%}}


.itinerary-shell{position:relative;padding:30px 18px;border-radius:30px;background:linear-gradient(160deg,rgba(255,255,255,.9),color-mix(in srgb,var(--surface) 86%,#fff));border:1px solid #e2e8e4;box-shadow:0 20px 58px rgba(24,55,41,.08)}
.itinerary-head{max-width:760px;margin:0 auto 22px;text-align:center}.itinerary-head h2{margin:7px 0 10px;font-size:clamp(27px,5vw,42px);letter-spacing:-.04em;text-wrap:balance}.itinerary-head p{margin:0 auto;max-width:620px;color:#69756e;line-height:1.6}
.itinerary-grid{display:grid;grid-template-columns:1fr;gap:14px;max-width:980px;margin:0 auto}.itinerary-grid.has-two-stops{grid-template-columns:repeat(2,minmax(0,1fr))}
.itinerary-card{position:relative;display:grid;grid-template-columns:86px minmax(0,1fr);gap:15px;padding:17px;border-radius:26px;background:#fff;border:1px solid #e3e8e5;box-shadow:0 15px 38px rgba(28,57,44,.07);overflow:hidden;min-width:0}.itinerary-card:before{content:"";position:absolute;inset:0 auto 0 0;width:7px;background:linear-gradient(180deg,var(--a),color-mix(in srgb,var(--p) 80%,#fff))}.itinerary-card:after{content:"";position:absolute;right:-24px;bottom:-24px;width:108px;height:108px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--a) 13%,transparent),transparent 68%)}
.itinerary-order{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px 10px;border-radius:22px;background:linear-gradient(180deg,color-mix(in srgb,var(--p) 9%,#fff),rgba(255,255,255,.9));border:1px solid color-mix(in srgb,var(--p) 10%,#e0e8e2);text-align:center}.itinerary-order span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--p);color:#fff;font-size:18px;font-weight:900;box-shadow:0 12px 26px color-mix(in srgb,var(--p) 20%,transparent)}.itinerary-order small{display:block;color:var(--p);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;line-height:1.3}
.itinerary-body{display:grid;gap:12px;min-width:0}.itinerary-label{display:grid;grid-template-columns:50px minmax(0,1fr);gap:12px;align-items:center}.itinerary-label small{display:block;margin:0 0 4px;color:var(--p);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.itinerary-label h3{margin:0;font-size:clamp(22px,3.4vw,29px);letter-spacing:-.03em;line-height:1.1;text-wrap:balance}
.itinerary-chip-row{display:flex;flex-wrap:wrap;gap:10px}.itinerary-chip{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 14px;border-radius:999px;background:color-mix(in srgb,var(--a) 18%,#fff);color:var(--p);font-size:13px;font-weight:800}.itinerary-chip.strong{font-weight:900}.itinerary-address{margin:0;color:#6b7770;line-height:1.58;word-break:break-word}.itinerary-link{display:inline-flex;align-items:center;gap:6px;min-height:42px;width:max-content;max-width:100%;color:var(--p);font-weight:900;font-size:12px;text-decoration:none}.itinerary-link:hover{text-decoration:underline}
body.invite-opened .itinerary-card{opacity:0;transform:translateY(18px) scale(.985);animation:itineraryReveal .72s cubic-bezier(.22,.8,.2,1) forwards}.itinerary-card.ceremony{animation-delay:1s!important}.itinerary-card.reception{animation-delay:1.16s!important}
@keyframes itineraryReveal{0%{opacity:0;transform:translateY(18px) scale(.985)}100%{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:860px){.itinerary-grid.has-two-stops{grid-template-columns:1fr}.itinerary-card{grid-template-columns:76px minmax(0,1fr)}}
@media(max-width:620px){.itinerary-shell{padding:24px 12px;border-radius:24px}.itinerary-head h2{font-size:clamp(25px,7vw,33px)}.itinerary-card{grid-template-columns:1fr;gap:14px;padding:15px;border-radius:22px}.itinerary-order{flex-direction:row;justify-content:flex-start;padding:10px 12px;border-radius:18px}.itinerary-order span{width:40px;height:40px;font-size:17px}.itinerary-label{grid-template-columns:46px minmax(0,1fr);gap:10px}.itinerary-label h3{font-size:clamp(21px,6vw,27px)}.itinerary-link{width:100%;justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){body.invite-opened .itinerary-card{animation:none!important;opacity:1!important;transform:none!important}}


html,body{max-width:100%;overflow-x:hidden}main,section,article,form{min-width:0;max-width:100%}img,picture,video,canvas,svg{max-width:100%;height:auto}input,select,textarea,button{max-width:100%}.demo-shell,.invite-stage,.invite-cover,.hero-title-stack,.hero-title-frame,.hero-date-nest,.itinerary-grid,.itinerary-card,.invite-details,.rsvp-card{min-width:0;max-width:100%}
@media(max-width:420px){.demo-shell{width:calc(100% - 12px)}.demo-topbar{gap:8px;padding-left:10px;padding-right:10px}.demo-topbar span{font-size:11px}.theme-grid,.flow-grid{grid-template-columns:1fr}.invite-cover{padding-left:14px;padding-right:14px}.hero-title-frame{width:100%}.invite-photo-oval{width:min(210px,74vw);min-height:246px}.itinerary-chip{white-space:normal;text-align:center}.rsvp-choice{grid-template-columns:1fr}input,select,textarea{font-size:16px}}
@supports not (color:color-mix(in srgb,#000,#fff)){.event-preview,.theme-mini,.invite-cover,.itinerary-shell{background:#fff}.event-card,.theme-card,.itinerary-card,.invite-details article,.rsvp-card{border-color:#dfe6e1}.itinerary-order,.itinerary-chip{background:#f4f7f5}.invite-opening-kicker{color:#f0d793}}
