.danmaku-layer[data-v-d42007f6]{z-index:6;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.danmaku-bullet[data-v-d42007f6]{white-space:nowrap;text-overflow:ellipsis;letter-spacing:.02em;color:#2a2a2a;max-width:min(92vw,400px);text-shadow:none;will-change:transform;background:linear-gradient(90deg,rgba(255,255,255,.92),rgba(250,250,250,.95),rgba(255,255,255,.92));border:1px solid rgba(0,0,0,.08);border-radius:999px;padding:6px 12px;font-size:13px;line-height:1.35;animation-name:danmaku-marquee-d42007f6;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.06)}@keyframes danmaku-marquee-d42007f6{0%{transform:translate(100vw)}to{transform:translate(calc(-100% - 100vw))}}@media (prefers-reduced-motion:reduce){.danmaku-bullet[data-v-d42007f6]{opacity:0;animation:none!important}}@font-face{font-family:Ni ShiWoDeKeAiBaoBei;src:url(/assets/NiShiWoDeKeAiBaoBei-2-DZwdmR1k.ttf)format("truetype");font-display:swap;font-weight:400;font-style:normal}:root{--font-hand:"Ni ShiWoDeKeAiBaoBei", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", cursive;color:#1a1a1a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--frame-width:min(100vw, 430px);--text-main:#1a1a1a;--text-soft:#4a4a4a;--text-faint:#7a7a7a;--line:rgba(0,0,0,.08);--line-strong:rgba(0,0,0,.16);--panel-bg:#fafafa;--panel-bg-strong:#f3f3f3;--shadow:0 12px 32px rgba(0,0,0,.08);background:#fff;font-family:Open Sans,PingFang SC,Helvetica Neue,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{background:#fff;min-height:100%;overflow-x:hidden}body{background:#fff;min-height:100%;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}#app{width:100%;min-height:100svh}.page-stage{isolation:isolate;background:#fff;width:100%;position:relative}.app-frame{z-index:1;width:var(--frame-width);background:#fff;min-height:100%;margin:0 auto;position:relative;overflow:visible}.page-stage--poster{background:#fff}.invitation-single{z-index:1;background:#fff;width:100%;position:relative}.poster-hero{isolation:isolate;flex-direction:column;min-height:78svh;padding:0;display:flex;position:relative}.panel.poster-hero{background:#1f1f1f;min-height:78svh;padding:0}.poster-hero__media{z-index:0;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.poster-hero__img{object-fit:cover;object-position:center 22%;width:100%;height:100%;transform:scale(1.02)}.poster-hero__veil{pointer-events:none;background:linear-gradient(rgba(5,5,5,.35) 0%,rgba(5,5,5,.08) 28%,rgba(5,5,5,.12) 50%,rgba(5,5,5,.55) 100%),linear-gradient(90deg,rgba(0,0,0,.2),transparent 40%,transparent 60%,rgba(0,0,0,.12));position:absolute;top:0;bottom:0;left:0;right:0}.poster-hero__script{z-index:2;width:100%;max-width:100%;padding:calc(env(safe-area-inset-top) + 36px) 20px calc(env(safe-area-inset-bottom) + 72px);text-align:center;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;display:flex;position:relative}.poster-hero__eyebrow{letter-spacing:.42em;text-transform:uppercase;color:rgba(255,248,233,.9);text-shadow:0 2px 12px rgba(0,0,0,.28);margin:0 0 .75rem;font-size:.78rem;font-weight:500}.poster-hero__date-heading{font-family:var(--font-hand);letter-spacing:.14em;color:rgba(255,248,240,.94);text-shadow:0 1px rgba(0,0,0,.3),0 4px 18px rgba(0,0,0,.35);margin:0 0 .45rem;font-size:max(1.3rem,min(6vw,1.8rem));font-weight:400;line-height:1.1}.poster-hero__title{font-family:var(--font-hand);letter-spacing:.12em;color:#fff8f0;text-shadow:0 1px rgba(0,0,0,.35),0 4px 24px rgba(0,0,0,.45),0 0 40px rgba(212,175,120,.25);margin:0;font-size:max(2.75rem,min(12vw,3.6rem));font-weight:400;line-height:1.12}.poster-hero__title-accent{color:#d4af78;background:linear-gradient(#f5ddb0 0%,#d4af78 48%,#b8863b 100%);text-shadow:0 1px rgba(60,34,0,.25),0 4px 18px rgba(120,82,20,.2);-webkit-background-clip:text;background-clip:text}.poster-hero__names{font-family:var(--font-hand);letter-spacing:.2em;color:rgba(255,248,240,.95);text-shadow:0 2px 16px rgba(0,0,0,.4);margin:10px 0 0;font-size:max(1.35rem,min(5.2vw,1.75rem));font-weight:400}.poster-hero__double-happiness{vertical-align:-.16em;object-fit:contain;width:max(1.2rem,min(5vw,1.65rem));height:max(1.2rem,min(5vw,1.65rem));margin:0 .24em;display:inline-block}.poster-hero__blurb{color:rgba(255,248,240,.82);letter-spacing:.12em;text-shadow:0 2px 12px rgba(0,0,0,.35);max-width:16em;margin:18px 0 0;font-size:.82rem;line-height:1.8}.poster-hero__datetime{flex-direction:column;align-items:center;gap:8px;margin:20px 0 0;display:flex}.poster-hero__date-line,.poster-hero__time-line{font-family:var(--font-hand);letter-spacing:.08em;color:rgba(255,250,245,.98);text-shadow:0 2px 12px rgba(0,0,0,.5);margin:0;font-size:max(1.1rem,min(3.8vw,1.4rem));font-weight:400;line-height:1.4}.poster-hero__meta-line{letter-spacing:.12em;color:rgba(255,255,255,.72);margin:4px 0 0;font-size:.82rem}.poster-hero__lunar{margin-top:12px}.poster-hero__venue{letter-spacing:.1em;color:rgba(255,255,255,.6);margin-top:4px;font-size:.78rem}.poster-hero__countdown{color:#b70000;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:12px;margin-top:0;display:flex}.countdown-section{text-align:center;isolation:isolate;background:#fff;justify-items:center;gap:16px;padding:30px 24px 34px;display:grid;position:relative;overflow:hidden}.poster-sheet .countdown-section__title{color:rgba(183,0,0,.72);letter-spacing:.24em;font-size:.9rem}.poster-hero__countdown-item{justify-items:center;gap:4px;width:42px;display:grid;overflow:hidden}.poster-hero__countdown-number{color:#b70000;letter-spacing:.02em;justify-content:center;min-width:2ch;font-size:1rem;font-weight:800;line-height:1;display:inline-flex}.poster-hero__countdown-digit-wrap{place-items:center;width:.62em;height:1em;display:inline-grid;position:relative;overflow:hidden}.poster-hero__countdown-digit{grid-area:1/1;display:block}.countdown-digit-enter-active,.countdown-digit-leave-active{transition:transform .52s cubic-bezier(.22,1,.36,1),opacity .52s}.countdown-digit-leave-active{position:absolute}.countdown-digit-enter-from{opacity:0;transform:translateY(-105%)}.countdown-digit-enter-to,.countdown-digit-leave-from{opacity:1;transform:translateY(0)}.countdown-digit-leave-to{opacity:0;transform:translateY(105%)}.poster-hero__countdown-label{color:#b70000;letter-spacing:.18em;font-size:1rem;line-height:1}.poster-hero__hint{z-index:3;color:rgba(255,255,255,.5)}.poster-sheet{padding:calc(env(safe-area-inset-top) + 36px) 24px calc(env(safe-area-inset-bottom) + 36px);text-align:center;isolation:isolate;background:#fff;justify-items:center;gap:24px;display:grid;position:relative}.poster-sheet:before,.poster-sheet:after{content:none}.material-decor{z-index:2;pointer-events:none;user-select:none;filter:drop-shadow(0 12px 18px rgba(78,45,35,.08));max-width:none;display:none;position:absolute}.material-decor--hero{z-index:2;opacity:.34;filter:drop-shadow(0 10px 18px rgba(0,0,0,.2));width:max(132px,min(42vw,190px));bottom:24px;left:50%;transform:translate(-50%)rotate(-4deg)}.material-decor--invite{opacity:.72;width:max(92px,min(29vw,132px));bottom:118px;right:-28px;transform:rotate(12deg)}.material-decor--invite-bouquet{opacity:.74;width:max(108px,min(34vw,152px));bottom:34px;left:-34px;transform:rotate(-13deg)}.material-decor--date{opacity:.64;width:max(118px,min(34vw,156px));bottom:-37px;right:134px}.material-decor--romantic{opacity:.76;width:max(96px,min(31vw,140px));bottom:72px;right:-40px;transform:rotate(8deg)}.material-decor--blessing{opacity:.66;width:max(108px,min(32vw,150px));bottom:18px;left:-34px;transform:rotate(-12deg)}.material-decor--closing{opacity:.68;width:max(120px,min(38vw,176px));bottom:-42px;right:-46px;transform:rotate(7deg)}.material-decor--staggered{opacity:.62;width:max(110px,min(34vw,154px));bottom:118px;left:-34px;transform:rotate(-13deg)}.material-decor--collage{opacity:.58;width:max(102px,min(32vw,144px));bottom:62px;right:-32px;transform:rotate(12deg)}.material-decor--poem{opacity:.32;width:max(104px,min(34vw,150px));top:18px;right:-52px;transform:rotate(18deg)}.material-decor--vow{opacity:.62;width:max(112px,min(35vw,164px));bottom:76px;left:-36px;transform:rotate(8deg)}.material-decor--info{opacity:.58;width:max(110px,min(34vw,152px));bottom:88px;right:-38px;transform:rotate(13deg)}.material-decor--countdown{opacity:.48;width:max(112px,min(36vw,164px));top:-20px;left:-42px;transform:rotate(-16deg)}.material-decor--story{opacity:.5;width:max(104px,min(32vw,148px));bottom:92px;right:-34px;transform:rotate(16deg)}.material-decor--memory{opacity:.58;width:max(108px,min(34vw,154px));bottom:86px;left:-42px;transform:rotate(-15deg)}.material-decor--gallery{opacity:.5;width:max(96px,min(30vw,138px));top:82px;right:-28px;transform:rotate(13deg)}.material-decor--banner{opacity:.42;width:max(112px,min(36vw,164px));bottom:92px;right:-36px;transform:rotate(18deg)}.material-decor--see-you{opacity:.54;width:max(112px,min(35vw,160px));bottom:84px;left:-38px;transform:rotate(9deg)}.material-decor--contact{opacity:.5;width:max(118px,min(38vw,174px));bottom:96px;right:-52px;transform:rotate(10deg)}.material-decor--minimal-date{opacity:.56;width:max(116px,min(35vw,160px));bottom:76px;right:-26px;transform:rotate(-9deg)}.material-decor--magazine{opacity:.54;width:max(104px,min(32vw,146px));bottom:54px;right:-28px;transform:rotate(14deg)}.material-decor--statement{opacity:.42;width:max(112px,min(36vw,164px));top:36px;left:-40px;transform:rotate(-16deg)}.material-decor--memory-grid{opacity:.5;width:max(110px,min(34vw,156px));top:64px;right:-38px;transform:rotate(12deg)}.material-decor--dual-vow{opacity:.5;width:max(104px,min(32vw,148px));bottom:46px;right:-32px;transform:rotate(14deg)}.material-decor--movie{opacity:.36;width:max(112px,min(36vw,164px));top:40px;left:-44px;transform:rotate(-14deg)}.poster-sheet--gallery{padding-top:calc(env(safe-area-inset-top) + 28px);padding-bottom:calc(env(safe-area-inset-bottom) + 28px);gap:14px}.poster-sheet--gallery .poster-sheet__copy{gap:8px}.poster-sheet--gallery h2{font-size:max(1.85rem,min(8vw,2.35rem))}.poster-sheet--gallery .poster-sheet__copy p{max-width:280px;font-size:.9rem;line-height:1.65}.poster-sheet--gallery .carousel-dots{flex-wrap:wrap;gap:5px;max-width:280px}.poster-sheet--gallery .carousel-dot{width:6px;height:6px}.poster-sheet--gallery .carousel-dot.active{width:18px}.poster-sheet__photo,.poster-sheet__round-photo{background:#f2f2f2;margin:0;position:relative;overflow:hidden}.poster-sheet__photo{aspect-ratio:4/5;width:100%;box-shadow:0 18px 34px rgba(0,0,0,.08)}.poster-sheet__photo:after,.poster-carousel--sheet:after{content:none}.poster-sheet__photo img,.poster-sheet__round-photo img{object-fit:cover;width:100%;height:100%}.poster-sheet__photo--tall{aspect-ratio:3/4}.poster-sheet__photo--wide{aspect-ratio:4/3}.poster-sheet__round-photo{border-radius:50%;width:max(168px,min(52vw,218px));height:max(168px,min(52vw,218px))}.poster-sheet__round-photo img{object-position:center 24%}.poster-sheet__copy{text-align:center;justify-items:center;gap:14px;width:100%;max-width:330px;display:grid}.poster-sheet__copy--center{max-width:330px}.poster-sheet__eyebrow{width:fit-content;color:var(--text-faint);letter-spacing:.28em;font-size:.72rem}.poster-sheet h2{max-width:9em;font-family:var(--font-hand);letter-spacing:.08em;text-transform:none;font-size:max(2.15rem,min(10vw,3rem));font-weight:400;line-height:1.14}.poster-sheet p{color:var(--text-soft);line-height:1.9}.poster-sheet__meta,.poster-sheet__caption{color:var(--text-faint);letter-spacing:.08em;font-size:.82rem}.poster-sheet__text-list{gap:12px;margin-top:8px;display:grid}.poster-sheet__text-list p{padding:0}.poster-carousel--sheet{aspect-ratio:1;background:#f2f2f2;width:100%;position:relative;overflow:hidden;box-shadow:0 18px 34px rgba(0,0,0,.08)}.poster-carousel--sheet .carousel-slide img{object-position:center 28%}.poster-sheet--memory .poster-sheet__photo img,.poster-sheet--see-you .poster-sheet__photo img{object-position:center 30%}.poster-sheet--vow .poster-sheet__photo img{object-position:center 24%}.romantic-invite-panel{padding:calc(env(safe-area-inset-top) + 42px) 24px calc(env(safe-area-inset-bottom) + 42px);color:#2b2926;text-align:center;isolation:isolate;background:#fff;gap:28px;display:grid;position:relative;overflow:hidden}.romantic-invite-panel>:not(.material-decor),.poster-sheet>:not(.material-decor),.date-statement-panel>:not(.material-decor),.landscape-photo-section>:not(.material-decor),.staggered-couple-panel>:not(.material-decor),.collage-note-panel>:not(.material-decor),.minimal-date-panel>:not(.material-decor),.magazine-love-panel>:not(.material-decor),.statement-poster-panel>:not(.material-decor),.dual-vow-panel>:not(.material-decor),.memory-grid-panel>:not(.material-decor),.movie-credit-panel>:not(.material-decor),.banner-vow-panel>:not(.material-decor),.vertical-poem-panel>:not(.material-decor),.countdown-section>:not(.material-decor),.closing-letter-section__inner>:not(.material-decor),.polaroid-collage-panel>:not(.material-decor),.masonry-waterfall-panel>:not(.material-decor){z-index:1;position:relative}.romantic-invite__heading{justify-items:center;gap:8px;display:grid}.romantic-invite__quote{color:#3a3630;max-width:330px;font-family:Georgia,Times New Roman,serif;font-size:max(1.05rem,min(4vw,1.28rem));font-style:italic;line-height:1.55}.romantic-invite__subtitle,.romantic-invite__copy,.romantic-player__status{color:rgba(43,41,38,.62)}.romantic-invite__subtitle{letter-spacing:.12em;font-size:.9rem}.romantic-couple{grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.romantic-person{justify-items:center;gap:8px;display:grid}.romantic-avatar{background:#ddd7cf;border-radius:50%;width:max(104px,min(29vw,132px));height:max(104px,min(29vw,132px));margin:0;overflow:hidden}.romantic-avatar img{object-fit:cover;object-position:center 24%;width:100%;height:100%}.romantic-role{color:rgba(43,41,38,.48);letter-spacing:.18em;text-transform:uppercase;font-family:Georgia,Times New Roman,serif;font-size:.78rem}.romantic-person h3{color:#2b2926;font-family:var(--font-hand);letter-spacing:.08em;font-size:max(1.45rem,min(6vw,1.9rem));font-weight:400}.romantic-heart{color:#c73535;transform-origin:50%;background:rgba(255,255,255,.74);border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;animation:1.45s ease-in-out infinite romantic-heartbeat;display:inline-flex;box-shadow:0 10px 22px rgba(130,58,50,.14)}.romantic-invite__copy{letter-spacing:.06em;max-width:300px;margin:2px auto 0;font-size:1rem;line-height:1.9}.romantic-player{gap:14px;width:min(100%,330px);margin:0 auto;padding:6px 0 0;display:grid;position:relative}.romantic-player__title{color:#2b2926;letter-spacing:.08em;font-family:Georgia,Times New Roman,serif;font-size:1.08rem;font-weight:700}.romantic-player__controls{justify-content:center;align-items:center;gap:12px;display:flex}.romantic-player__icon,.romantic-player__play{color:#2b2926;background:rgba(255,255,255,.72);border:none;justify-content:center;align-items:center;display:inline-flex}.romantic-player__icon{border-radius:50%;width:34px;height:34px}.romantic-player__controls--favorite .romantic-player__icon:nth-child(2),.romantic-player__controls--list-open .romantic-player__icon:nth-child(4){color:#b70000}.romantic-player__play{color:#fff;background:#2b2926;border-radius:50%;width:48px;height:48px}.romantic-player__status{font-size:.82rem}.romantic-player__list{gap:8px;width:min(100%,280px);margin:0 auto;padding-top:2px;display:grid}.romantic-player__track{color:#4f4742;letter-spacing:.04em;background:0 0;border:1px solid rgba(43,41,38,.12);border-radius:999px;justify-content:space-between;align-items:center;gap:10px;min-height:36px;padding:8px 14px;font-size:.82rem;display:flex}.romantic-player__track--active{color:#b70000;border-color:rgba(183,0,0,.38)}.romantic-player__track-star{flex:none}.music-list-enter-active,.music-list-leave-active{transition:max-height .42s cubic-bezier(.22,1,.36,1),opacity .32s,transform .42s cubic-bezier(.22,1,.36,1);overflow:hidden}.music-list-enter-from,.music-list-leave-to{opacity:0;max-height:0;transform:translateY(-8px)}.music-list-enter-to,.music-list-leave-from{opacity:1;max-height:180px;transform:translateY(0)}.landscape-photo-section{isolation:isolate;background:#fff;padding:0 0 42px;position:relative;overflow:hidden}.landscape-photo-frame{aspect-ratio:16/10;background:#f2f2f2;width:100%;margin:0;overflow:hidden;box-shadow:0 18px 34px rgba(42,33,28,.08)}.landscape-photo-frame img{object-fit:cover;object-position:center 35%;width:100%;height:100%}.date-statement-panel{text-align:center;isolation:isolate;background:#fff;justify-items:center;gap:18px;padding:52px 24px;display:grid;position:relative;overflow:hidden}.date-statement__year,.date-statement__names{color:rgba(31,29,26,.46);letter-spacing:.28em;font-family:Georgia,Times New Roman,serif}.date-statement__year{font-size:.92rem}.date-statement__main{color:#b70000;letter-spacing:.04em;align-items:center;gap:18px;font-family:Georgia,Times New Roman,serif;font-size:max(3.8rem,min(18vw,5.2rem));line-height:.88;display:flex}.date-statement__main i{background:rgba(183,0,0,.38);width:1px;height:56px;transform:rotate(18deg)}.date-statement__text{max-width:260px;color:var(--text-soft);line-height:1.9}.date-statement__names{font-size:.78rem}.staggered-couple-panel{padding:calc(env(safe-area-inset-top) + 38px) 24px calc(env(safe-area-inset-bottom) + 38px);color:#1f1d1a;isolation:isolate;background:#fff;gap:24px;display:grid;position:relative;overflow:hidden}.staggered-couple-photos{min-height:410px;position:relative}.staggered-photo{background:#eee8e2;margin:0;position:absolute;overflow:hidden}.staggered-photo:before{content:"";z-index:1;pointer-events:none;border:1px dashed rgba(255,255,255,.72);position:absolute;top:8px;bottom:8px;left:8px;right:8px}.staggered-photo img{object-fit:cover;filter:saturate(.96)contrast(1.02);width:100%;height:100%}.staggered-photo--groom{aspect-ratio:3/4.2;width:48%;top:0;left:0}.staggered-photo--groom img{object-position:center 28%}.staggered-photo--bride{aspect-ratio:3/4.2;width:48%;bottom:8px;right:0}.staggered-photo--bride img{object-position:center 24%}.double-happiness{z-index:2;color:#b70000;font-family:var(--font-hand);letter-spacing:.08em;writing-mode:horizontal-tb;font-size:max(1.55rem,min(7vw,2.1rem));position:absolute;top:50px;right:-2px}.staggered-date{color:rgba(31,29,26,.82);letter-spacing:.22em;margin-top:-6px;font-family:Georgia,Times New Roman,serif;font-size:max(1.35rem,min(7vw,1.9rem))}.staggered-copy{color:#3a3630;text-align:left;gap:8px;max-width:330px;font-size:.98rem;line-height:1.9;display:grid}.staggered-copy p{margin:0}.staggered-copy span{color:rgba(183,0,0,.78);letter-spacing:.24em;margin-top:8px}.staggered-signature{color:rgba(31,29,26,.52);letter-spacing:.08em;justify-self:end;font-family:Georgia,Times New Roman,serif;font-size:.9rem;font-style:italic}.collage-note-panel{isolation:isolate;background:#fff;gap:24px;padding:42px 24px;display:grid;position:relative;overflow:hidden}.collage-note__photos{grid-template-columns:1fr 1fr;align-items:end;gap:14px;display:grid}.collage-note__photo{background:#f2f2f2;margin:0;overflow:hidden;box-shadow:0 16px 30px rgba(42,33,28,.08)}.collage-note__photo--left{aspect-ratio:3/4.2}.collage-note__photo--right{aspect-ratio:3/3.8;margin-top:46px}.collage-note__photo img{object-fit:cover;object-position:center 28%;width:100%;height:100%}.collage-note__copy{text-align:left;gap:10px;max-width:310px;display:grid}.collage-note__copy span,.banner-vow__copy span{color:var(--text-faint);letter-spacing:.28em;font-size:.72rem}.collage-note__copy h2,.banner-vow__copy h2{font-family:var(--font-hand);letter-spacing:.08em;font-size:max(2rem,min(9vw,2.6rem));font-weight:400;line-height:1.18}.collage-note__copy p,.banner-vow__copy p{color:var(--text-soft);line-height:1.9}.minimal-date-panel{text-align:center;isolation:isolate;background:#fff;align-content:center;justify-items:center;gap:18px;min-height:340px;padding:32px 24px;display:grid;position:relative;overflow:hidden}.minimal-date__year,.minimal-date__names{color:rgba(31,29,26,.45);letter-spacing:.28em;text-transform:uppercase;font-family:Georgia,Times New Roman,serif}.minimal-date__year{font-size:.76rem}.minimal-date__date{color:#b70000;align-items:center;gap:22px;font-family:Georgia,Times New Roman,serif;font-size:max(4.6rem,min(21vw,6.4rem));line-height:.86;display:flex}.minimal-date__date i{background:rgba(183,0,0,.34);width:1px;height:64px;transform:rotate(18deg)}.minimal-date__copy{max-width:260px;color:var(--text-soft);letter-spacing:.08em;line-height:1.9}.minimal-date__names{font-size:.74rem}.magazine-love-panel{isolation:isolate;background:#fff;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:16px;padding:44px 24px;display:grid;position:relative;overflow:hidden}.magazine-love__photo{aspect-ratio:3/4.5;background:#f2f2f2;width:100%;margin:0;overflow:hidden;box-shadow:0 18px 34px rgba(42,33,28,.1)}.magazine-love__photo img,.statement-poster__photo img,.memory-grid__photos img{object-fit:cover;width:100%;height:100%}.magazine-love__photo img{object-position:center 25%}.magazine-love__copy{text-align:left;gap:12px;display:grid}.magazine-love__copy span,.memory-grid__copy span,.statement-poster__small{color:var(--text-faint);letter-spacing:.28em;font-size:.72rem}.magazine-love__copy h2,.memory-grid__copy h2{font-family:var(--font-hand);letter-spacing:.08em;font-size:max(2rem,min(9vw,2.55rem));font-weight:400;line-height:1.16}.magazine-love__copy p,.memory-grid__copy p,.statement-poster-panel>p{color:var(--text-soft);line-height:1.9}.statement-poster-panel{text-align:center;isolation:isolate;background:#fff;align-content:center;justify-items:center;gap:18px;min-height:560px;padding:50px 24px;display:grid;position:relative;overflow:hidden}.statement-poster-panel h2{color:#1f1d1a;max-width:7em;font-family:Georgia,Times New Roman,serif;font-size:max(2.4rem,min(12vw,3.4rem));font-style:italic;font-weight:400;line-height:1.05}.statement-poster-panel>p{max-width:270px}.statement-poster__photo{aspect-ratio:4/3;background:#f2f2f2;width:min(100%,350px);margin:10px 0 0;overflow:hidden;box-shadow:0 18px 34px rgba(42,33,28,.1)}.statement-poster__photo img{object-position:center 28%}.dual-vow-panel{text-align:center;isolation:isolate;background:#fff;gap:24px;padding:50px 24px;display:grid;position:relative;overflow:hidden}.dual-vow__eyebrow{color:var(--text-faint);letter-spacing:.32em;font-size:.72rem}.dual-vow__columns{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:14px;display:grid}.dual-vow__columns article{align-content:start;gap:10px;min-height:230px;padding:22px 12px;display:grid}.dual-vow__columns i{background:linear-gradient(transparent,rgba(183,0,0,.38),transparent);width:1px}.dual-vow__columns span{color:rgba(31,29,26,.42);letter-spacing:.2em;text-transform:uppercase;font-family:Georgia,Times New Roman,serif;font-size:.76rem}.dual-vow__columns h3{color:rgba(183,0,0,.82);font-family:var(--font-hand);letter-spacing:.08em;font-size:max(1.65rem,min(7vw,2.15rem));font-weight:400}.dual-vow__columns p{color:var(--text-soft);text-align:left;line-height:2}.memory-grid-panel{isolation:isolate;background:#fff;gap:24px;padding:46px 24px;display:grid;position:relative;overflow:hidden}.memory-grid__copy{text-align:left;gap:10px;max-width:320px;display:grid}.memory-grid__photos{grid-template-columns:1fr 1fr;gap:12px;display:grid}.memory-grid__photos figure{aspect-ratio:1;background:#f2f2f2;margin:0;overflow:hidden;box-shadow:0 16px 30px rgba(42,33,28,.08)}.memory-grid__photos img{object-position:center 26%}.movie-credit-panel{text-align:center;isolation:isolate;background:#fff;justify-items:center;gap:22px;padding:56px 24px;display:grid;position:relative;overflow:hidden}.movie-credit__label{color:rgba(183,0,0,.76);letter-spacing:.42em;font-family:Georgia,Times New Roman,serif;font-size:.82rem}.movie-credit-panel h2{max-width:8em;font-family:var(--font-hand);letter-spacing:.08em;font-size:max(2.3rem,min(11vw,3.2rem));font-weight:400;line-height:1.12}.movie-credit__list{gap:12px;width:min(100%,310px);display:grid}.movie-credit__list p{color:var(--text-soft);text-align:right;justify-content:space-between;gap:18px;font-size:.88rem;line-height:1.6;display:flex}.movie-credit__list span{color:rgba(31,29,26,.42);letter-spacing:.16em;text-transform:uppercase;flex:none;font-family:Georgia,Times New Roman,serif;font-size:.76rem}.movie-credit__ending{color:rgba(183,0,0,.68);letter-spacing:.08em;font-family:Georgia,Times New Roman,serif;font-size:.9rem;font-style:italic}.vertical-poem-panel{background:#fff;align-items:center;min-height:520px;padding:34px 24px;display:grid;position:relative;overflow:hidden}.vertical-poem__photo{aspect-ratio:3/4.2;background:#f2f2f2;width:58%;margin:0;position:absolute;bottom:154px;left:61px;overflow:hidden;box-shadow:0 18px 34px rgba(42,33,28,.1)}.vertical-poem__photo img{object-fit:cover;object-position:center 26%;width:100%;height:100%}.vertical-poem__copy{z-index:1;color:rgba(31,29,26,.78);font-family:var(--font-hand);writing-mode:vertical-rl;justify-self:end;gap:10px;font-size:max(1.55rem,min(7vw,2.1rem));line-height:1.2;display:flex;position:relative}.vertical-poem__mark{color:rgba(183,0,0,.86);font-family:var(--font-hand);font-size:3rem;position:absolute;bottom:76px;right:70px}.banner-vow-panel{isolation:isolate;background:#fff;align-items:end;min-height:480px;padding:0;display:grid;position:relative;overflow:hidden}.banner-vow__photo{background:#f2f2f2;margin:0;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.banner-vow__photo:after{content:"";background:linear-gradient(rgba(255,255,255,.08),rgba(255,255,255,.92));position:absolute;top:0;bottom:0;left:0;right:0}.banner-vow__photo img{object-fit:cover;object-position:center 28%;width:100%;height:100%}.banner-vow__copy{z-index:1;text-align:left;gap:10px;max-width:320px;padding:0 24px 42px;display:grid;position:relative}.poster-sheet__caption{text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:0;font-size:.78rem;line-height:1.6;display:-webkit-box;overflow:hidden}.wedding-information-panel{color:#5f5a58;background:#fff;gap:18px;padding:48px 28px 44px}.wedding-information-panel>.poster-sheet__copy{display:none}.wedding-information-panel .material-decor--info{opacity:.28;width:max(104px,min(31vw,142px));top:118px;bottom:auto;right:-48px;transform:rotate(16deg)}.poster-sheet .wedding-information__title{color:#c94b4b;letter-spacing:.28em;text-transform:none;margin:0;font-size:.88rem;font-weight:300;line-height:1.2}.wedding-information__visual{justify-items:center;width:min(100%,330px);margin-top:4px;padding-bottom:118px;display:grid;position:relative}.wedding-information__photo{aspect-ratio:.6;border-radius:50% 50% 0 0/25% 25% 0 0;width:min(100%,330px);margin:0;position:relative;overflow:hidden}.wedding-information__photo:after{content:"";background:linear-gradient(rgba(255,255,255,0),#fff 84%);height:44%;position:absolute;top:auto;bottom:0;left:0;right:0}.wedding-information__photo img{object-fit:cover;object-position:center 24%;filter:saturate(.88)contrast(1.02)brightness(1.04);width:100%;height:100%}.poster-sheet .wedding-information__date{color:#c94b4b;font-family:var(--font-hand);letter-spacing:.08em;justify-self:start;margin:0;font-size:1.92rem;font-weight:500;line-height:1}.wedding-calendar{z-index:3;border-radius:24px;gap:12px;width:min(100%,286px);padding:18px 18px 16px;display:grid;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.wedding-calendar__weekdays,.wedding-calendar__grid{grid-template-columns:repeat(7,1fr);place-items:center;display:grid}.wedding-calendar__weekdays{color:#777;letter-spacing:.08em;font-size:.76rem;font-weight:500}.wedding-calendar__weekdays .is-active{color:#c94b4b;font-weight:600}.wedding-calendar__grid{color:#aaa4a2;isolation:isolate;row-gap:13px;min-height:164px;font-size:.82rem;font-weight:300;position:relative}.wedding-calendar__grid>span:not(.wedding-calendar__ghost){z-index:1;place-items:center;width:28px;height:28px;line-height:1;display:grid;position:relative}.wedding-calendar__grid .is-selected{color:#fff;background:#c94b4b;border-radius:999px;font-weight:500}.wedding-calendar__ghost{z-index:0;color:rgba(201,75,75,.07);font-family:var(--font-hand);font-size:8.6rem;font-weight:500;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-52%)}.wedding-information__meta{color:#625d5b;letter-spacing:.06em;gap:6px;margin-top:2px;font-size:.88rem;font-weight:300;line-height:1.7;display:grid}.wedding-information__meta p{margin:0}.poster-info-grid{gap:14px;display:grid}.poster-map-card{background:#f5f2ef;width:min(100%,380px);margin:0;overflow:hidden}#section-contact{padding-top:0}.poster-map-card img{width:100%;height:auto;display:block}.poster-info-grid article{justify-items:center;gap:12px;padding-top:8px;display:grid}.poster-info-grid svg{color:var(--text-main)}.poster-info-grid h3,.poster-blessing-item h3{letter-spacing:.14em;margin-bottom:4px;font-size:.9rem}.poster-contact-list{gap:10px;margin-top:4px;display:grid}.poster-contact-list a{color:var(--text-main);letter-spacing:.04em;padding:12px 0;font-weight:700}.poster-blessing-list{gap:12px;display:grid}.poster-blessing-item{padding:12px 0}.poster-blessing-form{text-align:left;justify-self:stretch;justify-items:stretch;gap:14px;width:100%;margin-top:4px;padding-top:16px;display:grid}.poster-blessing-form .field{text-align:left;justify-items:stretch;width:100%}.poster-blessing-form .field span{justify-self:start}.poster-blessing-form .secondary-button{margin-top:2px}.poster-blessing-form .feedback-text{text-align:center}.invitation-intro-panel{text-align:center;background:#fff;justify-content:center;align-items:center;min-height:58svh;display:flex}.invitation-intro-panel:after{content:none}.invitation-intro-card{justify-items:center;gap:18px;width:100%;max-width:320px;display:grid}.invitation-intro-photo{background:#f2f2f2;border:6px solid #fff;border-radius:50%;width:max(148px,min(46vw,190px));height:max(148px,min(46vw,190px));margin:0;overflow:hidden;box-shadow:0 18px 34px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.08)}.invitation-intro-photo img{object-fit:cover;object-position:center 24%;width:100%;height:100%}.invitation-intro-title{font-family:var(--font-hand);letter-spacing:.12em;color:var(--text-main);margin-top:6px;font-size:max(2rem,min(9vw,2.6rem));line-height:1.1}.invitation-intro-copy{max-width:280px;color:var(--text-soft);font-size:.96rem;line-height:1.9}.invitation-intro-meta{color:var(--text-faint);letter-spacing:.08em;font-size:.78rem}.poster-panel__h2{letter-spacing:.02em;text-transform:none;font-size:1.35rem;font-weight:800;line-height:1.2}.poster-panel .glass-card{margin-top:4px}.poster-copy-card h2,.poster-gallery-card h2,.poster-info-card h2{text-transform:none;letter-spacing:0}.poster-carousel{min-height:50svh}.story-photo-card{isolation:isolate;background:#e8e8e8;width:calc(100% + 48px);min-height:46svh;margin:0 -24px 2px;position:relative;overflow:hidden}.story-photo-card:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(transparent 42%,rgba(0,0,0,.58) 100%),linear-gradient(90deg,rgba(0,0,0,.14),transparent 38%,rgba(0,0,0,.1));position:absolute;top:0;bottom:0;left:0;right:0}.story-photo-card img{object-fit:cover;object-position:center 28%;filter:saturate(.96)contrast(1.04);width:100%;height:100%;min-height:46svh}.story-photo-card figcaption{z-index:2;color:rgba(255,255,255,.92);font-family:var(--font-hand);letter-spacing:.08em;text-shadow:0 2px 18px rgba(0,0,0,.45);font-size:max(1.25rem,min(5vw,1.6rem));line-height:1.35;position:absolute;bottom:22px;left:24px;right:24px}.panel{min-height:0;padding:calc(env(safe-area-inset-top) + 36px) 24px calc(env(safe-area-inset-bottom) + 40px);isolation:isolate;background:#fff;position:relative}.panel:after{content:"";opacity:.6;background:linear-gradient(transparent,rgba(0,0,0,.06) 20%,rgba(0,0,0,.06) 80%,transparent);width:1px;position:absolute;top:0;bottom:0;right:15px}.poster-hero:after{content:none}.panel-media,.panel-overlay{position:absolute;top:0;bottom:0;left:0;right:0}.panel-media img{object-fit:cover;transform-origin:50%;filter:saturate(.98)contrast(1.03)brightness(.88);width:100%;height:100%;animation:18s ease-in-out infinite alternate drift}.panel-overlay{background:#fff}.panel-overlay-strong{background:#f5f5f5}.soft-light{background:#fafafa}.poster-panel .panel-overlay,.poster-panel .panel-overlay-strong,.poster-panel .soft-light{pointer-events:none}.panel-content{z-index:1;flex-direction:column;justify-content:flex-start;gap:18px;min-height:0;display:flex;position:relative}.eyebrow,.section-tag,.kicker{letter-spacing:.26em;text-transform:uppercase;font-size:12px}.eyebrow,.section-tag{color:var(--text-faint)}.kicker{color:#5a5a5a}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--text-main)}h1{letter-spacing:-.04em;text-transform:uppercase;margin-top:10px;font-size:max(2.9rem,min(10vw,4.4rem));font-weight:800;line-height:.92}h1 span{color:rgba(0,0,0,.45);margin-left:.08em;margin-right:.08em;display:inline-block}h2{letter-spacing:-.04em;text-transform:uppercase;font-size:2rem;font-weight:800;line-height:1.04}h3{text-transform:uppercase;letter-spacing:.04em;font-size:1rem;font-weight:700}.section-copy,.story-list p,.detail-item p,.timeline-item p,.travel-item p,.blessing-item p,.footer-note span{color:var(--text-soft)}.glass-card{border-top:1px solid var(--line-strong);background:0 0;padding-top:14px;position:relative}.glass-card:before{content:"";background:#1a1a1a;width:56px;height:1px;position:absolute;top:-1px;left:0}.info-pill-group{gap:10px;display:grid}.hero-meta{gap:6px}.info-pill{width:fit-content;color:var(--text-main);background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:.95rem;display:inline-flex}.info-pill--date{align-items:flex-start}.info-pill-date-text{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.lunar-date-line{color:var(--text-soft);letter-spacing:.03em;font-size:.86em}.hero-actions{flex-wrap:wrap;gap:10px;display:flex}.primary-button,.secondary-button{letter-spacing:.12em;text-transform:uppercase;border:1px solid transparent;border-radius:0;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:0 18px;font-size:.94rem;font-weight:800;transition:transform .18s,opacity .18s,background-color .18s,color .18s;display:inline-flex}.primary-button{color:#fff;background:#1a1a1a;border-color:#1a1a1a}.secondary-button{color:#1a1a1a;background:0 0;border-color:rgba(0,0,0,.22)}.primary-button:active,.secondary-button:active,.control-button:active,.carousel-dot:active,.segment-button:active{transform:scale(.98)}.full-width{width:100%}.closing-letter-section{padding:52px 24px calc(env(safe-area-inset-bottom) + 72px);background:#fff;position:relative;overflow:hidden}.closing-letter-section__inner{text-align:center;width:min(100%,320px);margin:0 auto;position:relative}.closing-letter-section__eyebrow{color:rgba(183,0,0,.82);letter-spacing:.34em;text-transform:uppercase;margin-bottom:16px;font-size:.78rem;display:inline-block}.closing-letter-section__lead{font-family:var(--font-hand);color:#1f1a17;margin:0;font-size:max(1.5rem,min(7vw,2rem));line-height:1.5}.closing-letter-section__body{color:#4f4742;letter-spacing:.06em;margin:20px 0 0;font-size:.95rem;line-height:2}.closing-letter-section__sign{color:rgba(183,0,0,.88);letter-spacing:.18em;margin:22px 0 0;font-size:.88rem}.swipe-hint{left:24px;bottom:calc(env(safe-area-inset-bottom) + 14px);z-index:2;color:var(--text-faint);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:8px;font-size:.8rem;animation:1.8s ease-in-out infinite bob;display:inline-flex;position:absolute}.floating-controls{top:calc(env(safe-area-inset-top) + 14px);left:max(14px, calc((100vw - var(--frame-width)) / 2 + 14px));z-index:12;gap:8px;display:flex;position:fixed}.control-button{color:#fff;width:32px;height:32px;box-shadow:none;backdrop-filter:none;background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.audio-prompt{right:max(14px, calc((100vw - var(--frame-width)) / 2 + 14px));bottom:calc(env(safe-area-inset-bottom) + 22px);z-index:12;border:1px solid var(--line);max-width:220px;color:var(--text-main);box-shadow:var(--shadow);background:rgba(255,255,255,.95);border-left:3px solid #1a1a1a;margin:0;padding:10px 14px;font-size:.82rem;position:fixed}.section-tag{border-bottom:1px solid var(--line);align-items:center;gap:8px;width:fit-content;padding-bottom:8px;display:inline-flex}.story-list,.timeline,.travel-grid,.blessing-list,.contact-list,.detail-grid,.field,.section-heading,.blessing-form{gap:14px;display:grid}.contact-list{gap:18px;margin-top:18px}.contact-item{border-top:1px solid var(--line);gap:6px;padding:14px 0;display:grid}.contact-item span{color:var(--text-faint);letter-spacing:.18em;text-transform:uppercase;font-size:.84rem}.contact-item h3{font-size:1.15rem}.story-list{margin-top:18px}.story-list p{padding-left:18px;position:relative}.story-list p:before{content:"";background:#1a1a1a;width:8px;height:1px;position:absolute;top:.7em;left:0}.gallery-card,.form-card,.blessing-card,.panel .glass-card{padding:14px 0 0}.carousel-stage{background:#f0f0f0;width:calc(100% + 48px);min-height:56svh;margin-top:14px;margin-left:-24px;margin-right:-24px;position:relative;overflow:hidden}.carousel-slide{opacity:0;transition:opacity .7s,transform 2.8s;position:absolute;top:0;bottom:0;left:0;right:0;transform:scale(1.04)}.carousel-slide.active{opacity:1;transform:scale(1)}.carousel-slide img{object-fit:cover;object-position:center center;width:100%;height:100%}.carousel-caption{min-height:3.2em;color:var(--text-soft);margin-top:14px;line-height:1.8}.carousel-dots{justify-content:center;gap:8px;display:flex}.carousel-dot{cursor:pointer;background:rgba(0,0,0,.12);border:none;border-radius:999px;width:9px;height:9px;padding:0}.carousel-dot.active{background:#1a1a1a;width:28px}.detail-grid{margin-top:14px}.detail-item,.travel-item{grid-template-columns:auto 1fr;align-items:start;gap:12px;display:grid}.detail-icon,.travel-item>svg,.footer-note>svg{color:var(--text-main)}.inline-link{color:#1565c0;text-underline-offset:3px;text-decoration:underline rgba(21,101,192,.35)}.timeline{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.timeline-item{grid-template-columns:72px 1fr;gap:12px;display:grid}.timeline-time{color:var(--text-main);letter-spacing:.1em;font-weight:800}.travel-grid{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.field span{color:var(--text-faint);text-transform:uppercase;letter-spacing:.14em;font-size:.9rem}.field input,.field textarea,.field select{width:100%;color:var(--text-main);-webkit-appearance:none;appearance:none;background:0 0;border:none;border-bottom:1px solid rgba(0,0,0,.2);border-radius:0;outline:none;padding:10px 0 12px}.field input::placeholder,.field textarea::placeholder{color:rgba(0,0,0,.35)}.field input:focus,.field textarea:focus,.field select:focus{border-bottom-color:#1a1a1a;box-shadow:inset 0 -1px #1a1a1a}.field textarea{resize:vertical;min-height:108px}.segmented-control{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.segment-button{border:1px solid var(--line-strong);min-height:44px;color:var(--text-main);background:#fafafa;border-radius:0}.segment-button.active{background:#f0f0f0;border-color:#1a1a1a}.feedback-text{color:var(--text-faint);font-size:.88rem}.legal-disclaimer{color:var(--text-faint);text-align:center;opacity:.3;font-size:.65rem;line-height:1.4}.blessing-item{border-bottom:1px solid var(--line);grid-template-columns:44px 1fr;align-items:start;gap:12px;padding-bottom:14px;display:grid}.blessing-avatar{border:1px solid var(--line-strong);width:44px;height:44px;color:var(--text-main);justify-content:center;align-items:center;font-weight:800;display:inline-flex}.blessing-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.blessing-head time{color:var(--text-faint);font-size:.8rem}.footer-note{border-top:1px solid var(--line);color:var(--text-soft);align-items:center;gap:10px;padding-top:14px;display:inline-flex}@media (min-width:431px){.app-frame{min-height:100%;box-shadow:var(--shadow);border:1px solid rgba(0,0,0,.08);margin:14px auto}}@media (max-width:380px){.panel{padding-left:18px;padding-right:18px}h1{font-size:2.6rem}h2{font-size:1.72rem}.timeline-item{grid-template-columns:58px 1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.polaroid-collage-panel{isolation:isolate;background:#fff;gap:28px;padding:52px 24px;display:grid;position:relative;overflow:hidden}.polaroid-collage__eyebrow{color:var(--text-faint);letter-spacing:.32em;text-align:center;font-size:.72rem}.polaroid-collage__grid{grid-template-columns:1fr 1fr;justify-items:center;gap:22px 14px;display:grid}.polaroid-card{gap:12px;width:min(100%,160px);margin:0;display:grid}.polaroid-card__frame{aspect-ratio:3/4;background:#fff;padding:7px 7px 24px;overflow:hidden;box-shadow:0 6px 18px rgba(42,33,28,.14),0 1px 3px rgba(42,33,28,.08)}.polaroid-card__frame img{object-fit:cover;object-position:center 26%;filter:saturate(.94)contrast(1.03);width:100%;height:100%}.polaroid-card figcaption{color:#4a4a4a;font-family:var(--font-hand);text-align:center;letter-spacing:.04em;font-size:.88rem}.polaroid-card--tilt-left{transform:rotate(-3deg)}.polaroid-card--tilt-right{transform:rotate(2.5deg)}.material-decor--polaroid{opacity:.48;width:max(108px,min(34vw,152px));bottom:36px;left:-38px;transform:rotate(-15deg)}.masonry-waterfall-panel{isolation:isolate;background:#fff;padding:46px 0 52px;position:relative}.masonry-waterfall__eyebrow{color:var(--text-faint);letter-spacing:.32em;text-align:center;margin-bottom:8px;font-size:.72rem}.masonry-waterfall__title{font-family:var(--font-hand);letter-spacing:.08em;text-align:center;margin-bottom:28px;font-size:max(1.85rem,min(8vw,2.35rem));font-weight:400;line-height:1.14}.masonry-waterfall__grid{columns:2;column-gap:0}.masonry-waterfall__item{break-inside:avoid;aspect-ratio:3/4;background:#f2f2f2;margin:0;overflow:hidden}.masonry-waterfall__item--tall{aspect-ratio:3/5}.masonry-waterfall__item img{object-fit:cover;object-position:center 28%;width:100%;height:100%}@keyframes drift{0%{transform:scale(1.02)translate(0,0)}to{transform:scale(1.08)translateY(-8px)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes countdown-roll{0%{opacity:0;transform:translateY(-85%)}55%{opacity:1}to{opacity:1;transform:translateY(0)}}@keyframes romantic-heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.16)}28%{transform:scale(.96)}42%{transform:scale(1.1)}62%{transform:scale(1)}}
