*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fcfaf4;color:#382530;font-family:Montserrat,Arial,sans-serif}.landing-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;min-height:70px;padding:12px clamp(18px,6vw,90px);background:#fffdf8ed;border-bottom:1px solid #5421331a;backdrop-filter:blur(18px)}.landing-brand{color:#30202a;text-decoration:none;font:800 20px/1 Montserrat,sans-serif;letter-spacing:.14em}.landing-brand span,.landing-kicker{color:#8f263a}.landing-nav nav{display:flex;align-items:center;gap:22px}.landing-nav nav a{color:#5d4752;text-decoration:none;font-size:12px;font-weight:800}.landing-nav-cta,.landing-primary-link{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 20px;border-radius:999px;background:linear-gradient(135deg,#8f263a,#c55c78);color:#fff!important;box-shadow:0 12px 28px #8f263a2b}.landing-hero{position:relative;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;min-height:560px;padding:clamp(62px,9vw,120px) clamp(20px,9vw,140px);overflow:hidden;background:radial-gradient(circle at 78% 28%,#f0c3a66b,transparent 19%),radial-gradient(circle at 76% 62%,#a42c5040,transparent 28%),linear-gradient(135deg,#fffaf2,#f7e2dc 58%,#f1cfd7)}.landing-hero:before{content:"";position:absolute;inset:24px;border:1px solid #8f263a25}.landing-hero-copy,.landing-hero-ornament{position:relative;z-index:1}.landing-kicker{margin:0 0 14px;font-size:10px;font-weight:800;letter-spacing:.22em}.landing-hero h1,.landing-section-head h2,.landing-steps h2{margin:0;color:#3b1b2b;font:600 clamp(43px,6vw,82px)/.95 "Cormorant Garamond",serif}.landing-hero h1 em{color:#8f263a;font-family:"Great Vibes",cursive;font-style:normal;font-weight:400}.landing-hero-copy>p:not(.landing-kicker){max-width:540px;margin:25px 0 31px;color:#765f69;font-size:15px;line-height:1.8}.landing-primary-link{font-size:12px;font-weight:800;text-decoration:none}.landing-hero-ornament{display:grid;place-items:center;width:min(370px,100%);aspect-ratio:1;margin:auto;border:1px solid #99556477;border-radius:50%;color:#8f263a;box-shadow:inset 0 0 0 19px #fff7e866,0 25px 65px #8f263a24}.landing-hero-ornament:before,.landing-hero-ornament:after{content:"";position:absolute;width:74%;aspect-ratio:1;border:1px solid #bd7d8966;transform:rotate(45deg)}.landing-hero-ornament:after{width:46%;border-color:#bd7d8933}.landing-hero-ornament span{font:145px/1 "Great Vibes",cursive}.landing-hero-ornament i,.landing-hero-ornament b{position:absolute;font-style:normal;animation:landing-float 4s ease-in-out infinite}.landing-hero-ornament i{top:17%;right:18%;font-size:38px}.landing-hero-ornament b{bottom:18%;left:18%;font:50px/1 Georgia,serif;animation-delay:-2s}.landing-templates{padding:clamp(60px,9vw,110px) clamp(16px,7vw,110px);background:#fffdf8}.landing-section-head{display:flex;justify-content:space-between;gap:25px;max-width:1180px;margin:0 auto 38px}.landing-section-head h2,.landing-steps h2{font-size:clamp(38px,5vw,62px)}.landing-section-head>div>p:not(.landing-kicker){max-width:680px;color:#78636c;line-height:1.75}.landing-count{align-self:flex-start;padding:9px 12px;border:1px solid #d7ad6c88;border-radius:999px;color:#9d604d;font-size:11px;font-weight:800;letter-spacing:.12em}.landing-template-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(26px,5vw,70px);max-width:1180px;margin:auto;align-items:start}.landing-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.landing-template-card{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:center;padding:9px;border:1px solid #d7c7c680;border-radius:16px;background:#fff;cursor:pointer;text-align:left;transition:.25s}.landing-template-card:hover,.landing-template-card.is-selected{border-color:#bb715d;box-shadow:0 14px 30px #71374718;transform:translateY(-3px)}.landing-template-card-art{display:grid;place-items:center;align-content:center;gap:8px;min-height:110px;border-radius:11px;color:#fff;text-align:center}.landing-template-card-art i{font-size:28px;font-style:normal}.landing-template-card-art b{font:500 19px/1 "Cormorant Garamond",serif}.template-art-bordeaux,.template-art-rose-noir{background:linear-gradient(145deg,#8a2846,#31091b)}.template-art-royal-cream{background:#f2e6c9;color:#927139}.template-art-garden{background:#3d7767}.template-art-minimal{background:#ecebe6;color:#292725}.template-art-ocean-pearl{background:#4d9996}.template-art-terracotta{background:#b96543}.template-art-wisteria{background:#886d9b}.template-art-emerald{background:#0b6d5c}.template-art-midnight-silver{background:#263c70}.landing-template-card-copy{display:grid;gap:6px}.landing-template-card-copy strong{color:#3f2834;font:600 22px/1 "Cormorant Garamond",serif}.landing-template-card-copy small{color:#896f78;font-size:11px;line-height:1.45}.landing-demo-wrap{position:sticky;top:92px;overflow:hidden;border:1px solid #d6c2c16b;border-radius:24px;background:#fff;box-shadow:0 25px 70px #3f1b2720}.landing-demo-toolbar{display:flex;justify-content:space-between;padding:13px 18px;background:#35202c;color:#f4d697;font-size:10px;font-weight:800;letter-spacing:.12em}.landing-demo-card{position:relative;min-height:640px;padding:32px 28px;text-align:center;overflow:hidden;color:#fff;background:radial-gradient(circle at 50% 12%,var(--demo-accent),transparent 34%),linear-gradient(155deg,var(--demo-primary),#210b16);transition:opacity .28s,transform .28s}.landing-demo-card.is-changing{opacity:.4;transform:scale(.98)}.landing-demo-card:before,.landing-demo-card:after{content:"";position:absolute;pointer-events:none}.landing-demo-card:before{inset:16px;border:1px solid #fff8;border-radius:28px}.landing-demo-card:after{left:50%;top:18%;width:82%;aspect-ratio:1;border:1px solid #fff5;transform:translateX(-50%) rotate(45deg)}.landing-demo-card>*{position:relative;z-index:1}.landing-demo-decor{position:absolute!important;inset:0!important;z-index:0!important;color:#fff8;font-size:28px}.landing-demo-decor i{position:absolute;top:27px;left:30px;font-style:normal}.landing-demo-decor b{position:absolute;right:31px;bottom:180px}.landing-demo-subtitle{margin:4px 0 23px;color:#fff4cc;font-size:9px;font-weight:800;letter-spacing:.2em}.landing-demo-portraits{display:grid;grid-template-columns:1fr 42px 1fr;align-items:center;gap:10px}.landing-demo-person{display:grid;justify-items:center;gap:7px}.landing-demo-portrait{display:grid;place-items:center;width:100%;max-width:148px;aspect-ratio:1;overflow:hidden;border:4px solid #fff;border-radius:50%;background:#ffffff20;box-shadow:0 12px 25px #0004;color:#fff;font-size:9px;font-weight:800;letter-spacing:.1em}.landing-demo-portrait.is-placeholder{background:#ffffff25}.landing-demo-portrait img{width:100%;height:100%;object-fit:cover}.landing-demo-person small{color:#fff0c9;font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.landing-demo-person strong{font:400 clamp(31px,4vw,47px)/.88 "Great Vibes",cursive;color:#fff4d3;overflow-wrap:anywhere}.landing-demo-ampersand{font:45px/1 "Great Vibes",cursive;color:var(--demo-accent)}.landing-demo-families{display:grid;grid-template-columns:1fr 20px 1fr;gap:8px;align-items:start;margin:42px 0 29px;padding:18px 0;border-block:1px solid #fff4}.landing-demo-families div{display:grid;gap:5px}.landing-demo-families span{color:#fff1c5;font-size:8px;font-weight:800;letter-spacing:.14em}.landing-demo-families b{font:500 14px/1.35 "Cormorant Garamond",serif}.landing-demo-families small{font-size:9px;line-height:1.45;opacity:.84}.landing-demo-families i{font-style:normal;color:var(--demo-accent)}.landing-demo-event{display:grid;gap:7px;padding:16px;border:1px solid #fff5;border-radius:16px;background:#ffffff12}.landing-demo-event span{color:#fff2cd;font-size:10px;font-weight:800;letter-spacing:.12em}.landing-demo-event b{font:500 22px/1.2 "Cormorant Garamond",serif}.landing-demo-event small{font-size:10px;opacity:.9}.landing-demo-music{margin-top:15px;min-height:38px;padding:0 14px;border:1px solid #fff8;border-radius:999px;background:#ffffff16;color:inherit;font:700 10px Montserrat,sans-serif;cursor:pointer}.landing-demo-music.is-playing{background:#ffffff32}.landing-demo-card.template-royal-cream,.landing-demo-card.template-garden,.landing-demo-card.template-minimal,.landing-demo-card.template-ocean-pearl,.landing-demo-card.template-terracotta,.landing-demo-card.template-wisteria{color:#34443e;background:linear-gradient(160deg,#fffdf3,#e7f0de)}.landing-demo-card.template-royal-cream{background:linear-gradient(160deg,#fff9ea,#e8d3a6)}.landing-demo-card.template-minimal{background:linear-gradient(160deg,#faf9f4,#dfddd5)}.landing-demo-card.template-ocean-pearl{background:linear-gradient(160deg,#f4ffff,#bee5dc)}.landing-demo-card.template-terracotta{background:linear-gradient(160deg,#fff1df,#dfb082)}.landing-demo-card.template-wisteria{background:linear-gradient(160deg,#fffaff,#e8d8ef)}.landing-demo-card.template-royal-cream:before,.landing-demo-card.template-garden:before,.landing-demo-card.template-minimal:before,.landing-demo-card.template-ocean-pearl:before,.landing-demo-card.template-terracotta:before,.landing-demo-card.template-wisteria:before{border-color:#56736555}.landing-demo-card.template-royal-cream:after,.landing-demo-card.template-garden:after,.landing-demo-card.template-minimal:after,.landing-demo-card.template-ocean-pearl:after,.landing-demo-card.template-terracotta:after,.landing-demo-card.template-wisteria:after{border-color:#54756833}.landing-demo-card.template-royal-cream .landing-demo-subtitle,.landing-demo-card.template-garden .landing-demo-subtitle,.landing-demo-card.template-minimal .landing-demo-subtitle,.landing-demo-card.template-ocean-pearl .landing-demo-subtitle,.landing-demo-card.template-terracotta .landing-demo-subtitle,.landing-demo-card.template-wisteria .landing-demo-subtitle,.landing-demo-card.template-royal-cream .landing-demo-person small,.landing-demo-card.template-garden .landing-demo-person small,.landing-demo-card.template-minimal .landing-demo-person small,.landing-demo-card.template-ocean-pearl .landing-demo-person small,.landing-demo-card.template-terracotta .landing-demo-person small,.landing-demo-card.template-wisteria .landing-demo-person small{color:var(--demo-primary)}.landing-demo-card.template-royal-cream .landing-demo-person strong,.landing-demo-card.template-garden .landing-demo-person strong,.landing-demo-card.template-minimal .landing-demo-person strong,.landing-demo-card.template-ocean-pearl .landing-demo-person strong,.landing-demo-card.template-terracotta .landing-demo-person strong,.landing-demo-card.template-wisteria .landing-demo-person strong{color:var(--demo-primary)}.landing-demo-card.template-royal-cream .landing-demo-families,.landing-demo-card.template-garden .landing-demo-families,.landing-demo-card.template-minimal .landing-demo-families,.landing-demo-card.template-ocean-pearl .landing-demo-families,.landing-demo-card.template-terracotta .landing-demo-families,.landing-demo-card.template-wisteria .landing-demo-families{border-color:#4d705a33}.landing-demo-card.template-royal-cream .landing-demo-families span,.landing-demo-card.template-garden .landing-demo-families span,.landing-demo-card.template-minimal .landing-demo-families span,.landing-demo-card.template-ocean-pearl .landing-demo-families span,.landing-demo-card.template-terracotta .landing-demo-families span,.landing-demo-card.template-wisteria .landing-demo-families span,.landing-demo-card.template-royal-cream .landing-demo-event span,.landing-demo-card.template-garden .landing-demo-event span,.landing-demo-card.template-minimal .landing-demo-event span,.landing-demo-card.template-ocean-pearl .landing-demo-event span,.landing-demo-card.template-terracotta .landing-demo-event span,.landing-demo-card.template-wisteria .landing-demo-event span{color:var(--demo-primary)}.landing-demo-card.template-royal-cream .landing-demo-event,.landing-demo-card.template-garden .landing-demo-event,.landing-demo-card.template-minimal .landing-demo-event,.landing-demo-card.template-ocean-pearl .landing-demo-event,.landing-demo-card.template-terracotta .landing-demo-event,.landing-demo-card.template-wisteria .landing-demo-event{border-color:#4d705a55;background:#ffffff88}.landing-demo-note{margin:0;padding:12px 16px;background:#fffaf3;color:#846c76;font-size:10px;line-height:1.5;text-align:center}.landing-steps{padding:clamp(68px,10vw,130px) 20px;text-align:center;background:linear-gradient(145deg,#3c1527,#6e2540);color:#fff}.landing-steps .landing-kicker{color:#f4c97f}.landing-steps h2{color:#fff}.landing-steps>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:1000px;margin:42px auto}.landing-steps article{padding:25px;border:1px solid #ffffff24;border-radius:18px;background:#ffffff0a;text-align:left}.landing-steps article span{color:#f5c979;font:38px/1 "Cormorant Garamond",serif}.landing-steps h3{margin:12px 0 8px;color:#ffe8b6;font:600 25px "Cormorant Garamond",serif}.landing-steps article p{margin:0;color:#f4dfe5;font-size:13px;line-height:1.65}.landing-steps .landing-primary-link{background:#f2c676;color:#542138!important}.landing-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:25px clamp(20px,7vw,120px);background:#24101b;color:#e8d9df}.landing-footer .landing-brand{color:#fff}.landing-footer p{margin:0;font-size:11px}.landing-footer>a:last-child{color:#f4c977;font-size:11px;font-weight:800;text-decoration:none}@keyframes landing-float{50%{transform:translateY(-10px) rotate(8deg)}}@media(max-width:920px){.landing-hero{grid-template-columns:1fr;text-align:center}.landing-hero-copy{margin:auto}.landing-hero-ornament{margin-top:36px;width:min(310px,76vw)}.landing-template-layout{grid-template-columns:1fr}.landing-demo-wrap{position:relative;top:auto;max-width:620px;margin:auto}.landing-section-head{flex-direction:column}.landing-steps>div{grid-template-columns:1fr}.landing-steps article{text-align:center}}@media(max-width:640px){.landing-nav{min-height:62px;padding-inline:16px}.landing-nav nav{gap:12px}.landing-nav nav a:not(.landing-nav-cta){display:none}.landing-brand{font-size:17px}.landing-hero{min-height:0;padding:68px 18px}.landing-hero:before{inset:10px}.landing-hero h1{font-size:52px}.landing-templates{padding:62px 15px}.landing-template-grid{grid-template-columns:1fr}.landing-template-card{grid-template-columns:85px minmax(0,1fr)}.landing-demo-card{min-height:580px;padding:27px 17px}.landing-demo-portrait{max-width:124px}.landing-demo-person strong{font-size:36px}.landing-demo-families{margin-top:31px}.landing-footer{flex-direction:column;text-align:center}.landing-footer p{line-height:1.6}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Do not draw the large diamond over the couple portraits in the compact demo. */
.landing-demo-card:after{display:none!important}
.landing-demo-frame{display:block;width:100%;height:650px;border:0;background:#fff;overflow:hidden}
.landing-demo-wrap{isolation:isolate}.landing-demo-wrap.is-loading:after{content:"Đang tải giao diện mẫu…";position:absolute;z-index:8;inset:42px 0 0;display:grid;place-items:center;background:#fffdf8dd;color:#7d4658;font:800 11px Montserrat,sans-serif;letter-spacing:.05em;backdrop-filter:blur(2px)}
.demo-preview-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:10px clamp(16px,5vw,70px);background:#160f1be8;color:#f5ddb4;font:700 11px Montserrat,sans-serif;letter-spacing:.08em;backdrop-filter:blur(14px)}.demo-preview-bar a{color:#fff;text-decoration:none}.demo-preview-bar span{color:#f2c676;font-size:9px}

/* The full invitation is opened only from the demo-direct header. */
.landing-demo-open{position:relative;z-index:3;color:#f4d697;text-decoration:none;cursor:pointer;transition:background .2s,color .2s}.landing-demo-open:hover{background:#573141;color:#fff3d2}

/* Hiệu ứng chào mừng: 3 lục giác lớn->nhỏ xoay ngược chiều quanh trái tim đập, chữ đổi màu. */
.landing-welcome-scene{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 46%,#fff5f7 0 12%,#fbd7e0 42%,#f0aec3 78%,#d47893 100%);box-shadow:inset 0 0 0 10px #ffffff2b,0 30px 65px #7a1e3630}
.landing-welcome-scene:before,.landing-welcome-scene:after{display:none}
.landing-welcome-scene .hex{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);aspect-ratio:1;clip-path:polygon(25% 6.7%,75% 6.7%,100% 50%,75% 93.3%,25% 93.3%,0 50%);pointer-events:none}
.landing-welcome-scene .hex:after{content:"";position:absolute;inset:5px;clip-path:inherit;background:#ffffffcc}
.hex-big{width:82%;background:linear-gradient(135deg,#8f263a,#ff8ab0 50%,#8f263a);animation:hex-spin-cw 16s linear infinite,hex-hue-a 10s ease-in-out infinite}
.hex-mid{width:60%;background:linear-gradient(135deg,#c73863,#ffd1de 50%,#c73863);animation:hex-spin-ccw 11s linear infinite,hex-hue-b 8s ease-in-out infinite}
.hex-small{width:38%;background:linear-gradient(135deg,#ff97b6,#7d112e 50%,#ff97b6);animation:hex-spin-cw 7s linear infinite,hex-hue-c 6s ease-in-out infinite}
.landing-welcome-scene .welcome-heart{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:5;color:#c22e56;font:400 clamp(72px,10vw,132px)/1 Georgia,serif;text-shadow:0 4px 0 #fff8,0 14px 26px #7a1e3655;filter:drop-shadow(0 0 18px #ff8ab0aa);animation:heart-beat 1.4s cubic-bezier(.32,.02,.42,1) infinite,heart-hue 6s linear infinite}
.landing-welcome-scene p{position:absolute;z-index:6;left:0;right:0;bottom:9%;margin:0;text-align:center;font:600 clamp(17px,2.2vw,25px)/1.1 "Great Vibes",cursive;letter-spacing:.02em;background:linear-gradient(90deg,#7d112e,#c22e56 30%,#ff98b5 55%,#c22e56 75%,#7d112e);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:caption-shine 4.6s linear infinite}
@keyframes hex-spin-cw{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes hex-spin-ccw{from{transform:translate(-50%,-50%) rotate(360deg)}to{transform:translate(-50%,-50%) rotate(0)}}
@keyframes hex-hue-a{0%,100%{filter:hue-rotate(0deg) saturate(1)}50%{filter:hue-rotate(30deg) saturate(1.25)}}
@keyframes hex-hue-b{0%,100%{filter:hue-rotate(0deg) saturate(1.1)}50%{filter:hue-rotate(-25deg) saturate(1.2)}}
@keyframes hex-hue-c{0%,100%{filter:hue-rotate(0deg) saturate(1.15)}50%{filter:hue-rotate(20deg) saturate(1.3)}}
@keyframes heart-beat{0%,100%{transform:translate(-50%,-50%) scale(1)}18%{transform:translate(-50%,-50%) scale(1.15)}36%{transform:translate(-50%,-50%) scale(.96)}54%{transform:translate(-50%,-50%) scale(1.08)}}
@keyframes heart-hue{0%,100%{filter:drop-shadow(0 0 18px #ff8ab0aa) hue-rotate(0deg)}50%{filter:drop-shadow(0 0 26px #ff8ab0cc) hue-rotate(35deg)}}
@keyframes caption-shine{from{background-position:0 0}to{background-position:-220% 0}}
@media(max-width:640px){.landing-welcome-scene p{bottom:8%}.hex-big{animation-duration:22s,10s}.hex-mid{animation-duration:15s,8s}.hex-small{animation-duration:9s,6s}}
@media(prefers-reduced-motion:reduce){.landing-welcome-scene *{animation:none!important}}

/* Desktop frame: load the same desktop layout as demo trực tiếp, then scale it down. */
.landing-demo-viewport{position:relative;height:650px;overflow:hidden;background:#fff}.landing-demo-viewport .landing-demo-frame{display:block;width:1920px;height:3400px;border:0;background:#fff;transform:scale(.203);transform-origin:top left;pointer-events:none}@media(max-width:640px){.landing-demo-viewport{height:580px}.landing-demo-viewport .landing-demo-frame{width:430px;height:2200px;transform:scale(.9)}}

/* Template catalog only: each card opens its own full demo. */
.landing-template-layout{display:block;max-width:980px;margin:auto}.landing-template-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.landing-template-card{grid-template-columns:112px minmax(0,1fr);gap:15px;padding:11px}.landing-template-demo-link{display:inline-flex;align-items:center;justify-content:center;width:max-content;margin-top:4px;padding:8px 12px;border-radius:999px;background:#8f263a;color:#fff;text-decoration:none;font-size:10px;font-weight:800}.landing-template-demo-link:hover{background:#632036}@media(max-width:640px){.landing-template-grid{grid-template-columns:1fr}.landing-template-card{grid-template-columns:90px minmax(0,1fr)}}

/* Each catalogue card uses the photos configured by the administrator. */
.landing-template-card-art{position:relative;display:block;isolation:isolate;min-height:132px;overflow:hidden;background:linear-gradient(145deg,#8f263a,#e7b59c)}.landing-template-card-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,#2d102399);z-index:1}.landing-template-portrait{position:absolute;display:block;overflow:hidden;background:#f8e2d2;color:#7d263f}.landing-template-portrait img{display:block;width:100%;height:100%;object-fit:cover}.landing-template-portrait i{display:grid;width:100%;height:100%;place-items:center;font:28px/1 Georgia,serif}.landing-template-portrait.groom{inset:12px auto 18px 12px;width:59%;clip-path:polygon(14% 0,100% 0,86% 100%,0 100%)}.landing-template-portrait.bride{inset:20px 10px 10px auto;width:52%;border:2px solid #fff9;clip-path:polygon(0 0,86% 0,100% 100%,14% 100%)}.landing-template-card-art>b{position:absolute;z-index:2;right:8px;bottom:7px;left:8px;overflow:hidden;color:#fff;text-align:center;text-overflow:ellipsis;white-space:nowrap;font:600 16px/1.1 "Cormorant Garamond",serif;text-shadow:0 1px 5px #2b0d18}.landing-template-card-art>b em{font-family:"Great Vibes",cursive;font-style:normal;font-size:20px}.template-art-royal-cream{background:linear-gradient(140deg,#a87236,#ead9ad)}.template-art-garden{background:linear-gradient(140deg,#315b41,#b8c696)}.template-art-minimal{background:linear-gradient(140deg,#2f302d,#dcd5c9)}.template-art-rose-noir{background:linear-gradient(140deg,#69162f,#d9ad66)}.template-art-ocean-pearl{background:linear-gradient(140deg,#176777,#a6d5cf)}.template-art-terracotta{background:linear-gradient(140deg,#8b452f,#e7bd8d)}.template-art-wisteria{background:linear-gradient(140deg,#654d7d,#edc7e8)}.template-art-emerald{background:linear-gradient(140deg,#075044,#b9ba85)}.template-art-midnight-silver{background:linear-gradient(140deg,#172244,#cbd8f2)}.template-art-ivory-pocket{background:linear-gradient(140deg,#60482a,#f0dfb5)}.template-art-hy-kim{background:linear-gradient(140deg,#745a2b,#ead7a0)}.template-art-rose-noir .landing-template-portrait{clip-path:none;transform:rotate(45deg);border:1px solid #edc47c}.template-art-rose-noir .landing-template-portrait.groom{inset:22px auto auto 18px;width:58%;height:58%}.template-art-rose-noir .landing-template-portrait.bride{inset:auto 16px 18px auto;width:58%;height:58%}.template-art-garden .landing-template-portrait{border-radius:999px;clip-path:none}.template-art-minimal .landing-template-portrait.groom{border-radius:80px 80px 0 0}.template-art-minimal .landing-template-portrait.bride{border-radius:80px 80px 0 0}.template-art-terracotta .landing-template-portrait{padding:4px;background:#fff;clip-path:none;box-shadow:0 4px 9px #54281755}.template-art-wisteria .landing-template-portrait{border-radius:50% 50% 18px 18px}.template-art-emerald .landing-template-portrait{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.template-art-midnight-silver .landing-template-portrait{border:3px double #cbd8f2;clip-path:none}.template-art-ivory-pocket .landing-template-portrait{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.template-art-hy-kim .landing-template-portrait{clip-path:none;border:2px solid #d8bd7c}@media(max-width:640px){.landing-template-card-art{min-height:108px}.landing-template-card-art>b{font-size:14px}.landing-template-portrait.groom{inset:9px auto 15px 9px}.landing-template-portrait.bride{inset:16px 8px 8px auto}}

/* Premium wedding-rental landing finish: visual richness without changing the flow. */
body{background:linear-gradient(180deg,#fffaf5 0,#fffdf9 42%,#fdf3ef 100%)}.landing-nav{min-height:76px;padding-inline:clamp(18px,7vw,112px);box-shadow:0 8px 30px #7c23320c}.landing-brand{position:relative}.landing-brand:after{content:"";position:absolute;right:-10px;bottom:-8px;left:0;height:2px;background:linear-gradient(90deg,#a42c50,transparent)}.landing-nav nav a{transition:color .2s ease,transform .2s ease}.landing-nav nav a:hover{color:#a42c50;transform:translateY(-1px)}.landing-nav-cta{position:relative;overflow:hidden}.landing-nav-cta:before,.landing-primary-link:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#fff8 46%,transparent 72%);transform:translateX(-130%);transition:transform .65s ease}.landing-nav-cta:hover:before,.landing-primary-link:hover:before{transform:translateX(130%)}.landing-hero{min-height:640px;padding:clamp(74px,9vw,132px) clamp(24px,9vw,148px);background:radial-gradient(circle at 79% 22%,#fff8e7b8 0 4%,transparent 23%),radial-gradient(circle at 78% 63%,#bd315c30 0 18%,transparent 40%),radial-gradient(circle at 16% 80%,#ffddba80 0 8%,transparent 27%),linear-gradient(118deg,#fffdf7 3%,#fae9e1 46%,#efbecb 100%)}.landing-hero:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#9b27484f 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(90deg,#0000 0,#0006 48%,#0000 100%);opacity:.35}.landing-hero:before{inset:18px;border-color:#a4264933}.landing-hero-copy{max-width:630px}.landing-kicker{display:flex;align-items:center;gap:9px;color:#a12b4b;text-shadow:0 1px #fff}.landing-kicker span{width:28px;height:1px;background:currentColor}.landing-hero h1{font-size:clamp(55px,6vw,91px);letter-spacing:-.035em;text-shadow:0 2px #fff9}.landing-hero h1 em{display:inline-block;margin-top:5px;background:linear-gradient(100deg,#9d2444,#d95d7d 55%,#9d2444);background-size:180% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:landing-text-shine 6s linear infinite}.landing-hero-copy>p:not(.landing-kicker){max-width:510px;font-size:14px;color:#75525f}.landing-hero-actions{display:flex;align-items:center;gap:22px}.landing-primary-link{position:relative;overflow:hidden;min-height:50px;padding-inline:26px;background:linear-gradient(115deg,#7e1d3b,#bb3b62 54%,#de7793);box-shadow:0 16px 32px #8723413b;transition:transform .25s ease,box-shadow .25s ease}.landing-primary-link:hover{transform:translateY(-3px);box-shadow:0 22px 36px #8723414d}.landing-text-link{color:#66243a;font-size:11px;font-weight:800;text-decoration:none}.landing-text-link i{display:inline-block;margin-left:5px;font-size:14px;font-style:normal;transition:transform .2s ease}.landing-text-link:hover i{transform:translate(3px,-3px)}.landing-hero-trust{display:flex;flex-wrap:wrap;gap:9px;margin-top:34px}.landing-hero-trust span{padding:7px 10px;border:1px solid #9b355136;border-radius:999px;background:#fff9;color:#74505b;font-size:9px;font-weight:700}.landing-hero-trust b{margin-right:3px;color:#9c2647;font-size:12px}.hero-petal{position:absolute;z-index:1;color:#b3345788;pointer-events:none;animation:landing-petal 8s ease-in-out infinite}.petal-one{top:16%;right:47%;font-size:22px}.petal-two{right:8%;bottom:18%;font-size:35px;animation-delay:-3s}.petal-three{bottom:14%;left:5%;font-size:17px;animation-delay:-5s}.landing-welcome-scene{width:min(430px,36vw);aspect-ratio:1;margin:auto;border-radius:50%;background:radial-gradient(circle at 45% 40%,#fffefa 0 8%,#fde8e9 27%,#ef8dab 75%,#9e2349 130%);box-shadow:inset 0 0 0 11px #ffffff42,inset 0 0 70px #73123140,0 35px 75px #7e1d3e46}.landing-welcome-scene:before{content:"";display:block;position:absolute;inset:10%;border:1px solid #fff9;border-radius:50%;animation:landing-breathe 5s ease-in-out infinite}.landing-welcome-scene .hex{top:48%}.landing-welcome-scene .welcome-heart{top:48%;font-size:clamp(88px,11vw,145px);color:#bd3158}.hero-orbit{position:absolute;z-index:0;left:50%;top:48%;border:1px solid #fff8;border-radius:50%;transform:translate(-50%,-50%)}.orbit-one{width:120%;height:120%;animation:orbit-turn 18s linear infinite}.orbit-two{width:142%;height:142%;border-style:dashed;animation:orbit-turn 28s linear infinite reverse}.hero-scene-label{position:absolute;z-index:6;bottom:10%;left:0;right:0;color:#fff9;text-align:center;font:400 clamp(18px,2vw,25px)/1.05 "Great Vibes",cursive;text-shadow:0 2px 9px #66203c}.landing-welcome-scene p{display:none}.landing-templates{position:relative;padding:clamp(78px,10vw,130px) clamp(20px,7vw,112px);overflow:hidden}.landing-templates:before{content:"";position:absolute;top:12%;left:-10%;width:270px;height:270px;border:1px solid #d77c9740;border-radius:50%;box-shadow:0 0 0 26px #f7dce526,0 0 0 53px #f7dce512}.landing-section-head{position:relative;z-index:1;max-width:870px;margin:0 auto 35px}.landing-section-head h2{font-size:clamp(42px,5vw,67px)}.landing-section-head>div>p:not(.landing-kicker){max-width:620px;color:#856672;line-height:1.8}.landing-count{border:1px solid #d898a9;background:#fffaf7;box-shadow:0 8px 18px #9f294016}.landing-template-hint{margin:0 0 17px;color:#9c5b70;text-align:center;font-size:11px;font-weight:700}.landing-template-hint span{color:#bd365a}.landing-template-grid{position:relative;z-index:1;gap:20px}.landing-template-card{position:relative;overflow:hidden;border:1px solid #e7d5d6;background:#fffdfa;box-shadow:0 13px 24px #6520360d;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,border-color .28s ease}.landing-template-card:after{content:"";position:absolute;inset:auto -20% -45px;height:82px;background:radial-gradient(ellipse,#d0517130,transparent 68%);opacity:0;transition:opacity .28s ease}.landing-template-card:hover{z-index:2;transform:translateY(-7px) rotate(-.35deg);border-color:#d78398;box-shadow:0 24px 42px #76233a24}.landing-template-card:hover:after{opacity:1}.landing-template-card.is-selected{border-color:#b23052;box-shadow:0 18px 34px #97233b2a}.landing-template-card-art{min-height:150px;box-shadow:inset 0 0 0 1px #fff5}.landing-template-card-art:before{content:"";position:absolute;z-index:1;top:-30%;left:-40%;width:35%;height:165%;background:#fff5;transform:rotate(24deg);animation:card-glint 7s ease-in-out infinite}.landing-template-card-copy{position:relative;z-index:2}.landing-template-card-copy strong{font-size:19px}.landing-template-card-copy small{line-height:1.45}.landing-template-demo-link{position:relative;z-index:3;box-shadow:0 7px 14px #84213b28;transition:transform .2s ease,background .2s ease}.landing-template-demo-link:hover{transform:translateX(3px);background:#6a1e38}.landing-steps{position:relative;isolation:isolate;max-width:1180px;margin:20px auto 92px;padding:clamp(58px,8vw,92px) clamp(22px,8vw,102px);overflow:hidden;border:1px solid #f1cfd4;border-radius:30px;background:linear-gradient(135deg,#6e1734,#a52a52 52%,#df7890);box-shadow:0 28px 55px #72213c35;color:#fff;text-align:center}.landing-steps:before{content:"";position:absolute;z-index:-1;inset:13px;border:1px solid #fff4;border-radius:21px}.landing-steps:after{content:"";position:absolute;z-index:-1;top:-62%;right:-14%;width:600px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#ffd5dc55,transparent 65%)}.landing-steps .landing-kicker{justify-content:center;color:#ffe8cb}.landing-steps h2{color:#fff;font-size:clamp(45px,5.7vw,77px)}.landing-steps h2 em{font-family:"Great Vibes",cursive;font-size:1.07em;font-style:normal;font-weight:400;color:#ffddb2}.landing-steps-lead{max-width:540px;margin:18px auto 34px;color:#fff2f4;font-size:13px;line-height:1.75}.landing-steps>div:not(.landing-steps-glow){display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 auto 34px}.landing-steps article{position:relative;overflow:hidden;padding:28px 22px 24px;border:1px solid #fff4;border-radius:18px;background:#fff1;backdrop-filter:blur(8px);text-align:left;transition:transform .25s ease,background .25s ease}.landing-steps article:hover{transform:translateY(-6px);background:#fff2}.landing-steps article>span{display:block;color:#ffd39d;font:600 13px/1 Montserrat,sans-serif;letter-spacing:.14em}.landing-steps article>i{position:absolute;right:18px;top:19px;color:#ffe2bb;font:30px/1 Georgia,serif}.landing-steps article h3{margin:22px 0 8px;color:#fff;font:600 28px/1 "Cormorant Garamond",serif}.landing-steps article p{margin:0;color:#fff1f3;font-size:12px;line-height:1.7}.landing-final-cta{background:#fff;color:#83203e!important;box-shadow:0 14px 25px #400b1c3d}.landing-final-cta:hover{box-shadow:0 20px 30px #400b1c50}.landing-final-note{margin:14px 0 0;color:#ffe4e9;font-size:10px;font-weight:700;letter-spacing:.04em}.landing-footer{position:relative;padding:38px clamp(20px,7vw,112px) 45px;background:#351121;color:#f7dce1}.landing-footer:before{content:"";position:absolute;top:0;right:12%;left:12%;height:1px;background:linear-gradient(90deg,transparent,#f2b9c5,transparent)}.landing-footer .landing-brand{color:#fff}.landing-footer a{color:#ffc7d3}
@keyframes landing-text-shine{to{background-position:180% 0}}@keyframes landing-petal{0%,100%{transform:translate3d(0,0,0) rotate(0)}50%{transform:translate3d(10px,-18px,0) rotate(24deg)}}@keyframes landing-breathe{50%{transform:scale(1.06);opacity:.45}}@keyframes orbit-turn{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes card-glint{0%,18%,100%{transform:translateX(-180%) rotate(24deg)}42%{transform:translateX(480%) rotate(24deg)}}.landing-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.landing-reveal.is-visible{opacity:1;transform:none}
@media(max-width:760px){.landing-nav{min-height:64px;padding-inline:16px}.landing-brand{font-size:16px}.landing-nav nav{gap:13px}.landing-nav nav a{font-size:9px}.landing-nav nav a:first-child{display:none}.landing-nav-cta{min-height:38px!important;padding-inline:14px!important}.landing-hero{display:block;min-height:auto;padding:58px 22px 38px}.landing-hero:before{inset:10px}.landing-hero h1{font-size:clamp(48px,13vw,66px)}.landing-hero-copy>p:not(.landing-kicker){margin:19px 0 24px;font-size:12px}.landing-hero-actions{gap:15px}.landing-hero-trust{margin-top:26px}.landing-hero-trust span{font-size:8px}.landing-welcome-scene{width:min(265px,68vw);margin:42px auto 7px}.hero-scene-label{font-size:17px}.petal-one{right:8%;top:13%}.petal-two{display:none}.landing-templates{padding:66px 16px}.landing-section-head{margin-bottom:25px}.landing-section-head h2{font-size:42px}.landing-section-head>div>p:not(.landing-kicker){font-size:11px}.landing-count{top:3px;font-size:9px}.landing-template-hint{font-size:9px;line-height:1.5}.landing-template-grid{gap:13px}.landing-template-card{padding:8px;box-shadow:0 9px 20px #6520360c}.landing-template-card:hover{transform:none}.landing-template-card-art{min-height:118px}.landing-template-card-copy strong{font-size:17px}.landing-template-card-copy small{font-size:9px}.landing-template-demo-link{padding:7px 10px;font-size:9px}.landing-steps{margin:0 15px 52px;padding:50px 17px 37px;border-radius:22px}.landing-steps>div:not(.landing-steps-glow){grid-template-columns:1fr;gap:10px}.landing-steps article{padding:20px;text-align:left}.landing-steps article h3{margin-top:12px;font-size:25px}.landing-steps h2{font-size:46px}.landing-steps-lead{font-size:11px}.landing-steps article:hover{transform:none}.landing-final-note{font-size:8px}.landing-footer{padding:32px 20px}.landing-reveal{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.landing-hero *,.landing-template-card-art:before{animation:none!important}.landing-reveal{opacity:1;transform:none;transition:none}.landing-primary-link,.landing-template-card,.landing-steps article{transition:none}}

/* Phone-first interaction safeguards. */
@media(max-width:760px){html{-webkit-text-size-adjust:100%}.landing-nav{padding-top:max(10px,env(safe-area-inset-top));padding-right:max(16px,env(safe-area-inset-right));padding-left:max(16px,env(safe-area-inset-left))}.landing-nav nav{gap:9px}.landing-nav nav a{min-height:44px;display:inline-flex;align-items:center}.landing-nav-cta{min-height:42px!important}.landing-hero{padding-bottom:42px}.landing-hero-actions{align-items:stretch}.landing-primary-link{min-height:48px;flex:1;padding-inline:17px;font-size:11px}.landing-text-link{display:flex;align-items:center;justify-content:center;min-width:104px;min-height:48px}.landing-hero-trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.landing-hero-trust span{min-height:42px;display:flex;align-items:center;justify-content:center;padding:6px;text-align:center;line-height:1.25}.landing-welcome-scene{box-shadow:inset 0 0 0 8px #ffffff42,inset 0 0 46px #7312313b,0 20px 40px #7e1d3e36}.landing-template-card{min-height:132px;touch-action:manipulation}.landing-template-card-copy{align-self:center}.landing-template-demo-link{min-height:36px}.landing-template-card-art:before{animation-duration:11s}.landing-steps{padding-bottom:36px}.landing-final-cta{width:100%;min-height:50px}.landing-footer{padding-bottom:max(32px,env(safe-area-inset-bottom))}}
@media(max-width:390px){.landing-nav nav a:not(.landing-nav-cta){display:none}.landing-hero-actions{gap:9px}.landing-text-link{min-width:94px;font-size:9px}.landing-hero-trust span{font-size:7px}.landing-template-card{grid-template-columns:84px minmax(0,1fr)}.landing-template-card-art{min-height:112px}}

/* Mobile hero: clear reading comes before decoration. */
@media(max-width:760px){.landing-nav{position:relative;top:auto;z-index:2}.landing-hero{padding:34px 18px 28px}.landing-hero:before{inset:8px}.landing-kicker{margin-bottom:10px;font-size:8px;letter-spacing:.16em}.landing-kicker span{width:19px}.landing-hero h1{font-size:clamp(43px,11.8vw,56px);line-height:.95}.landing-hero h1 em{margin-top:3px}.landing-hero-copy>p:not(.landing-kicker){margin:17px 0 21px;font-size:11.5px;line-height:1.7}.landing-hero-actions{gap:10px}.landing-primary-link{min-height:48px;font-size:10px}.landing-text-link{min-width:100px;font-size:10px;white-space:nowrap}.landing-text-link i{font-family:Arial,sans-serif;font-size:15px}.landing-hero-trust{margin-top:19px}.landing-hero-trust span{min-height:39px;font-size:7.5px}.landing-welcome-scene{width:min(220px,59vw);margin:25px auto 2px;box-shadow:inset 0 0 0 6px #ffffff42,inset 0 0 35px #73123130,0 16px 32px #7e1d3e2c}.landing-welcome-scene .hex{top:50%}.landing-welcome-scene .welcome-heart{top:50%;font-size:86px}.hero-orbit{top:50%}.hero-scene-label{display:none}.petal-three{bottom:4%;left:6%;font-size:13px}.landing-templates{padding-top:52px}}

/* Larger catalogue previews on phones: let the couple photographs sell each design. */
@media(max-width:760px){.landing-template-card{grid-template-columns:clamp(118px,34vw,146px) minmax(0,1fr);min-height:174px;padding:10px}.landing-template-card-art{min-height:154px}.landing-template-card-copy strong{font-size:clamp(18px,5vw,22px)}.landing-template-card-copy small{margin-top:5px;font-size:10px}.landing-template-demo-link{min-height:39px;margin-top:9px;padding:8px 13px;font-size:10px}.landing-template-card-art>b{font-size:clamp(15px,4.4vw,18px)}}
@media(max-width:390px){.landing-template-card{grid-template-columns:110px minmax(0,1fr);min-height:158px}.landing-template-card-art{min-height:138px}.landing-template-card-copy strong{font-size:18px}.landing-template-demo-link{min-height:37px;margin-top:6px}}

/* Public landing refresh: refined invitation preview, readable mobile layout,
   and a catalogue that feels tactile without overloading it with effects. */
.landing-hero{background:radial-gradient(circle at 81% 20%,#fff7e8 0 5%,transparent 23%),radial-gradient(circle at 77% 68%,#bd315c2b 0 16%,transparent 39%),radial-gradient(circle at 13% 86%,#f2d4ae80 0 6%,transparent 26%),linear-gradient(118deg,#fffdf8 2%,#fae9e1 47%,#edb9c7 100%)}
.landing-hero-copy{animation:landing-copy-enter .75s cubic-bezier(.22,.8,.25,1) both}.landing-hero h1{letter-spacing:-.045em}.landing-hero h1 em{background:linear-gradient(105deg,#91213f,#d85275 48%,#91213f);background-size:180% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:landing-text-shine 7s linear infinite}.landing-hero-copy>p:not(.landing-kicker){max-width:510px;color:#715761}.landing-primary-link{position:relative;overflow:hidden;border:1px solid #fff5;box-shadow:0 13px 26px #8f263a35}.landing-text-link{color:#6e3346;font-weight:800}.landing-hero-trust span{border:1px solid #a12b4b20;background:#fff9;box-shadow:0 8px 20px #6020360b}.landing-hero-trust b{color:#992742}
.landing-welcome-scene{display:grid;place-items:center;width:min(100%,430px);aspect-ratio:1/1.03;margin-inline:auto;border:0;border-radius:52% 48% 46% 54% / 44% 51% 49% 56%;background:radial-gradient(circle at 50% 42%,#fffdf7 0 20%,#f6d6d5 47%,#de8da9 100%);box-shadow:inset 0 0 0 11px #fff6,inset 0 0 56px #8e234338,0 31px 65px #71233c2b;overflow:visible}.landing-welcome-scene:before{content:"";position:absolute;inset:10%;border:1px solid #9e2b4e50;border-radius:48% 52% 53% 47% / 50% 44% 56% 50%;transform:rotate(-9deg)}.landing-welcome-scene:after{content:"✦";position:absolute;top:12%;right:13%;color:#c65070;font-size:18px;animation:landing-sparkle 3.8s ease-in-out infinite}.landing-preview-card{position:relative;display:grid;place-items:center;align-content:center;gap:15px;width:62%;aspect-ratio:3/4;padding:25px 16px;border:1px solid #a42c5057;background:linear-gradient(145deg,#fffdf8,#f8e2df);box-shadow:11px 17px 0 #8f263a17,0 20px 38px #67203b2c;text-align:center;transform:rotate(6deg);animation:landing-card-float 5.5s ease-in-out infinite}.landing-preview-card:before{content:"";position:absolute;inset:7px;border:1px solid #ae365155}.landing-preview-card p,.landing-preview-card small{position:relative;z-index:1;margin:0;color:#9b3150;font:800 7px/1.25 Montserrat,sans-serif;letter-spacing:.26em}.landing-preview-card>i{position:relative;z-index:1;color:#b23a5a;font:31px/1 Georgia,serif;font-style:normal}.landing-preview-card strong{position:relative;z-index:1;color:#401b2b;font:400 clamp(25px,3.3vw,39px)/.9 "Great Vibes",cursive}.landing-preview-card strong em{display:block;margin:6px 0;color:#ad3655;font:400 .8em/.6 "Great Vibes",cursive}.landing-preview-line{position:relative;z-index:1;width:52px;border-top:1px solid #a83b555c}.landing-preview-note{position:absolute;right:-4%;bottom:9%;color:#8e2948;font:400 clamp(19px,2.3vw,27px)/1 "Great Vibes",cursive;transform:rotate(-7deg)}
.landing-template-card{position:relative;overflow:hidden;border:1px solid #8d2a4317;border-radius:18px;background:#fffdf9;box-shadow:0 12px 26px #6f23310d;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.landing-template-card:focus-visible{outline:3px solid #b84463;outline-offset:3px}.landing-template-card:hover,.landing-template-card:focus-visible{border-color:#a535564a;box-shadow:0 18px 34px #6d233225;transform:translateY(-3px)}.landing-template-card-art{border-radius:12px}.landing-template-card-copy{align-content:center}.landing-template-card-copy .landing-template-number{margin:0 0 5px;color:#ac3655;font:800 8px/1 Montserrat,sans-serif;letter-spacing:.18em}.landing-template-card-copy strong{color:#3c1e2b}.landing-template-demo-link{gap:7px;background:linear-gradient(135deg,#8f263a,#ba4b69);box-shadow:0 7px 14px #8f263a26}.landing-template-demo-link span{font-size:14px;line-height:.5}.landing-steps{box-shadow:0 24px 62px #70223c21}.landing-steps article{border-color:#ffffff4f}.landing-footer{border-top:1px solid #8f263a19}
@keyframes landing-copy-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes landing-card-float{0%,100%{transform:rotate(6deg) translateY(0)}50%{transform:rotate(4deg) translateY(-8px)}}@keyframes landing-sparkle{0%,100%{transform:scale(.8);opacity:.45}50%{transform:scale(1.18);opacity:1}}
@media(max-width:760px){.landing-nav{position:sticky;min-height:62px;background:#fffdf8f2}.landing-nav nav a:not(.landing-nav-cta){font-size:10px}.landing-hero{padding:35px 18px 31px}.landing-hero-copy{text-align:center}.landing-kicker{justify-content:center}.landing-hero h1{font-size:clamp(43px,12vw,56px);line-height:.93}.landing-hero-copy>p:not(.landing-kicker){margin:17px auto 22px;font-size:11.5px;line-height:1.72}.landing-hero-actions{justify-content:center}.landing-text-link{padding-inline:7px}.landing-hero-trust{max-width:410px;margin-right:auto;margin-left:auto}.landing-welcome-scene{width:min(254px,69vw);margin:28px auto 4px}.landing-preview-card{width:61%;padding:20px 12px;gap:11px}.landing-preview-card strong{font-size:29px}.landing-preview-note{right:-7%;bottom:7%;font-size:20px}.landing-templates{padding:53px 16px}.landing-section-head h2{font-size:40px;line-height:.98}.landing-template-hint{padding:10px 13px;border:1px solid #8f263a17;border-radius:12px;background:#fffaf8}.landing-template-grid{gap:12px}.landing-template-card{grid-template-columns:clamp(124px,36vw,148px) minmax(0,1fr);min-height:163px;padding:9px}.landing-template-card-art{min-height:145px}.landing-template-card-copy strong{font-size:clamp(19px,5vw,22px)}.landing-template-card-copy small:not(.landing-template-number){font-size:9px;line-height:1.45}.landing-template-demo-link{min-height:36px;margin-top:8px}.landing-steps{margin:0 14px 44px;padding:45px 17px 34px}.landing-steps h2{font-size:43px}.landing-steps article{border-radius:16px}.landing-footer{padding-top:30px}}
@media(prefers-reduced-motion:reduce){.landing-hero-copy,.landing-hero h1 em,.landing-preview-card,.landing-welcome-scene:after{animation:none!important}.landing-template-card{transition:none!important}}

/* Hard reset legacy welcome-scene selectors. The old scene styled every
   descendant <p> as a giant absolute script caption, which overlaps the new
   invitation preview on mobile. */
.landing-welcome-scene>.hero-orbit,
.landing-welcome-scene>.hex,
.landing-welcome-scene>.welcome-heart,
.landing-welcome-scene>.hero-scene-label{display:none!important}
.landing-welcome-scene>.landing-preview-card{
    position:relative!important;
    inset:auto!important;
    display:grid!important;
    width:62%!important;
    height:auto!important;
    opacity:1!important;
    color:inherit!important;
    transform:rotate(6deg);
}
.landing-welcome-scene .landing-preview-card p{
    position:relative!important;
    inset:auto!important;
    display:block!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    color:#9b3150!important;
    background:none!important;
    -webkit-background-clip:initial!important;
    background-clip:initial!important;
    -webkit-text-fill-color:#9b3150!important;
    font:800 7px/1.25 Montserrat,sans-serif!important;
    letter-spacing:.26em!important;
    text-align:center!important;
    text-shadow:none!important;
    animation:none!important;
}
.landing-welcome-scene .landing-preview-card strong{
    position:relative!important;
    inset:auto!important;
    display:block!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    color:#401b2b!important;
    background:none!important;
    -webkit-text-fill-color:#401b2b!important;
    font:400 clamp(25px,3.3vw,39px)/.9 "Great Vibes",cursive!important;
    text-shadow:none!important;
    animation:none!important;
}
.landing-welcome-scene .landing-preview-card small{
    position:relative!important;
    inset:auto!important;
    display:block!important;
    color:#9b3150!important;
    font:800 7px/1.25 Montserrat,sans-serif!important;
    text-shadow:none!important;
}
.landing-welcome-scene .landing-preview-card>i{
    position:relative!important;
    inset:auto!important;
    display:block!important;
    color:#b23a5a!important;
    font:31px/1 Georgia,serif!important;
    text-shadow:none!important;
    animation:none!important;
}
.landing-welcome-scene>.landing-preview-note{
    position:absolute!important;
    inset:auto -4% 9% auto!important;
    display:block!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    color:#8e2948!important;
    background:none!important;
    -webkit-text-fill-color:#8e2948!important;
    font:400 clamp(19px,2.3vw,27px)/1 "Great Vibes",cursive!important;
    text-shadow:none!important;
    transform:rotate(-7deg)!important;
    animation:none!important;
}
.landing-welcome-scene{isolation:isolate;overflow:hidden!important}
.landing-welcome-scene:before{z-index:0;inset:8%!important;border:1px solid #ffffff8c!important;box-shadow:0 0 0 18px #ffffff19,0 0 0 36px #a12b4b16;animation:landing-ring-turn 14s linear infinite!important}
.landing-welcome-scene:after{z-index:0!important;top:12%!important;right:13%!important;animation:landing-sparkle 2.8s ease-in-out infinite!important}
.landing-wave{position:absolute;z-index:0;left:50%;top:50%;width:76%;aspect-ratio:1;border:1px solid #ffffff62;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;animation:landing-wave-pulse 5.5s ease-out infinite}
.landing-wave:after{content:"";position:absolute;inset:10%;border:1px solid #a32b5060;border-radius:50%;animation:landing-wave-color 7s ease-in-out infinite}
.landing-wave.wave-two{width:91%;opacity:.55;animation-delay:1.8s}.landing-wave.wave-three{width:108%;opacity:.35;animation-delay:3.6s}
.landing-preview-card{z-index:2!important;box-shadow:11px 17px 0 #8f263a17,0 20px 38px #67203b2c,0 0 42px #fff8!important}
.landing-preview-card strong{display:grid!important;gap:7px!important;line-height:1!important;background:linear-gradient(105deg,#401b2b 0%,#a82e51 28%,#f08ca7 50%,#a82e51 72%,#401b2b 100%);background-size:240% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent!important;animation:landing-preview-text-wave 5s ease-in-out infinite!important}
.landing-preview-card strong>span{display:block!important;font:inherit!important}.landing-preview-card strong em{display:block!important;margin:0!important;font:400 .9em/1 "Great Vibes",cursive!important;background:inherit;background-size:inherit;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent!important}
.landing-preview-card p{animation:landing-preview-label-pulse 3.8s ease-in-out infinite!important}
.landing-preview-card>i{animation:landing-preview-heart 2.4s ease-in-out infinite!important}
.landing-preview-note{z-index:3!important;animation:landing-note-float 4s ease-in-out infinite!important}
@keyframes landing-wave-pulse{0%{transform:translate(-50%,-50%) scale(.78);opacity:0}18%{opacity:.7}100%{transform:translate(-50%,-50%) scale(1.17);opacity:0}}
@keyframes landing-wave-color{0%,100%{border-color:#ffffff52;transform:rotate(0deg) scale(.92)}50%{border-color:#c94d70a8;transform:rotate(180deg) scale(1.08)}}
@keyframes landing-ring-turn{to{transform:rotate(351deg)}}
@keyframes landing-preview-text-wave{0%,100%{background-position:0 50%;filter:hue-rotate(0deg)}50%{background-position:100% 50%;filter:hue-rotate(12deg)}}
@keyframes landing-preview-label-pulse{0%,100%{opacity:.72;letter-spacing:.26em}50%{opacity:1;letter-spacing:.31em}}
@keyframes landing-preview-heart{0%,100%{transform:scale(1);color:#b23a5a}50%{transform:scale(1.17);color:#d95d7d}}
@keyframes landing-note-float{0%,100%{transform:rotate(-7deg) translateY(0)}50%{transform:rotate(-4deg) translateY(-5px)}}
@media(max-width:760px){
    .landing-welcome-scene>.landing-preview-card{width:61%!important}
    .landing-welcome-scene>.landing-preview-note{inset:auto -7% 7% auto!important;font-size:20px!important}
    .landing-preview-card strong{font-size:clamp(24px,7vw,30px)!important}
}
@media(prefers-reduced-motion:reduce){.landing-wave,.landing-wave:after,.landing-welcome-scene:before,.landing-preview-card strong,.landing-preview-card p,.landing-preview-card>i,.landing-preview-note{animation:none!important}}
