@font-face{font-family:HoaTay1;src:url(/assets/fonts/hoatay1.woff2) format("woff2"),url(/assets/fonts/hoatay1.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Quicksand;src:url(/assets/fonts/quicksand.woff2) format("woff2"),url(/assets/fonts/quicksand.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:scarlet-bradley.regular;src:url(/assets/fonts/scarlet-bradleyregular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sunshine Script;src:url(/assets/fonts/sunshine-script.woff2) format("woff2"),url(/assets/fonts/sunshine-script.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/assets/fonts/montserrat.woff2) format("woff2"),url(/assets/fonts/montserrat.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(/assets/fonts/roboto.woff2) format("woff2"),url(/assets/fonts/roboto.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Aquarelle;src:url(/assets/fonts/aquarelle.woff2) format("woff2"),url(/assets/fonts/aquarelle.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Belinda Avenue;src:url(/assets/fonts/belinda-avenue.woff2) format("woff2"),url(/assets/fonts/belinda-avenue.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:RetroSignature;src:url(/assets/fonts/retrosignature.woff2) format("woff2"),url(/assets/fonts/retrosignature.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Viaoda Libre;src:url(/assets/fonts/ViaodaLibre-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Lora;src:url(/assets/fonts/Lora-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--card-bg: #fef6f9;--card-bg-image: url(/assets/img/cover/floral-background.webp);--card-bg-wash: rgba(255, 255, 255, 0)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f0f2f5;overscroll-behavior:none}#root{height:100%}.pc-container{background-color:#f0f2f5;height:100vh;height:100dvh;width:100vw;padding-top:5vh}.pc-content{width:min(500px,49.5vh);max-width:100vw;height:90vh;margin:auto;position:relative;border:1px solid #e0e0e0;box-shadow:0 0 10px #0000001a;border-radius:3px;overflow:hidden}@media (max-width: 540px){.pc-container{padding-top:0}.pc-content{height:100vh;height:100dvh;border:none;border-radius:0;box-shadow:none}}#app-view-index{position:relative;height:100%;overflow:hidden;background:var(--card-bg)}.scroll-area{position:relative;height:100%;overflow-x:hidden;overflow-y:auto;background-color:var(--card-bg);touch-action:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}.scroll-area::-webkit-scrollbar{width:4px}.scroll-area::-webkit-scrollbar-thumb{background:#00000026;border-radius:4px}#root-page-container{position:relative;background-color:var(--card-bg);background-image:linear-gradient(var(--card-bg-wash),var(--card-bg-wash)),var(--card-bg-image);background-size:auto,180% auto;background-position:center,center top;background-repeat:repeat,repeat}.node{position:absolute;cursor:default}.node.text-box-component{height:auto!important}.node-hyperlink{cursor:pointer}.reveal-inner,.photo-component,.material-component,.qr-box-component{width:100%;height:100%}.photo-bg-wrap{width:100%;height:100%;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-clip:border-box}.qr-box-component .photo-bg-wrap{background-size:contain}.text-inner{height:auto;width:100%;min-width:20px;pointer-events:none;overflow:hidden;word-break:break-word}.text-inner div{min-height:1em}@keyframes animation-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}@keyframes animation-wobble{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@keyframes animation-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes animation-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes animation-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes animation-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes animation-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.calendar .template-three{width:100%;height:100%;display:flex;flex-wrap:wrap;position:relative}.calendar .template-three>div{width:14%;display:flex;justify-content:center;align-items:center}.template-three img.heart-date{position:absolute;width:15%;height:15%}.colorF{color:#fff!important;z-index:20}.countdown{width:100%;height:100%;margin:0 auto;display:flex;justify-content:space-between;background-color:transparent!important;gap:var(--spacing)}.countdown>div{height:100%;width:25%;display:flex;border-radius:4px;flex-direction:column;justify-content:center;align-items:center}.countdown.vertical{flex-direction:column}.countdown.vertical>div{width:100%!important;flex-direction:row!important;gap:5px!important}.rsvp-shell{--rsvp-paper: #fdfbf6;--rsvp-line: #ddd0b8;--rsvp-field-line: #e4d9c6;--rsvp-ink: #3f3a33;--rsvp-muted: #b3a795;--rsvp-gold: #bb9c68;--rsvp-gold-ink: #8a6a3a;--rsvp-gold-wash: #f6efe1;--rsvp-accent: #611010;width:100%;height:100%;display:flex;align-items:flex-start}.rsvp-card{flex:1;min-width:0;display:flex;flex-direction:column;gap:.93em;box-sizing:border-box;padding:1.29em 1.14em;border:1px solid var(--rsvp-line);border-radius:1.14em;background:var(--rsvp-paper);color:var(--rsvp-ink);font-family:inherit}.rsvp-field{display:flex;flex-direction:column;gap:.5em}.rsvp-label{display:block;margin:0;font-size:.95em;font-weight:500;color:var(--rsvp-ink)}.rsvp-req{color:#c0873f}.rsvp-input{width:100%;box-sizing:border-box;padding:.79em .93em;border:1px solid var(--rsvp-field-line);border-radius:.71em;background:#fff;color:var(--rsvp-ink);font-family:inherit;font-size:1em;transition:border-color .18s}.rsvp-input::placeholder{color:var(--rsvp-muted)}.rsvp-input:focus{outline:none;border-color:var(--rsvp-gold)}.rsvp-textarea{min-height:5.3em;resize:vertical;line-height:1.45}.rsvp-seg{display:flex;gap:.71em}.rsvp-seg-btn{flex:1;min-width:0;padding:.79em .57em;border:1px solid var(--rsvp-field-line);border-radius:.71em;background:#fff;color:#6b625a;font-family:inherit;font-size:.95em;line-height:1.3;cursor:pointer;transition:background .18s,border-color .18s,color .18s}.rsvp-seg-btn:hover{border-color:var(--rsvp-gold)}.rsvp-seg-btn.is-on{background:var(--rsvp-gold-wash);border-color:var(--rsvp-gold);color:var(--rsvp-gold-ink);font-weight:600}.rsvp-error{margin:-.29em 0 0;font-size:.9em;color:#b4483c}.rsvp-send{display:flex;align-items:center;justify-content:center;gap:.57em;margin-top:.14em;padding:.93em 1.14em;border:none;border-radius:999px;background:var(--rsvp-accent);color:#fff;font-family:inherit;font-size:1em;font-weight:500;cursor:pointer;transition:filter .18s}.rsvp-send:hover:not(:disabled){filter:brightness(1.12)}.rsvp-send:disabled{opacity:.6;cursor:default}.rsvp-done{align-items:center;justify-content:center;text-align:center;gap:.57em}.rsvp-done-mark{font-size:2.43em}.rsvp-done h3{margin:0;font-weight:700}.rsvp-done p{margin:0;line-height:1.6}.wish-composer{display:flex;flex-direction:column;gap:6px;width:100%;padding:8px 10px;box-sizing:border-box;border-radius:18px;background:#ffffffd1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.wish-composer input{width:100%;box-sizing:border-box;padding:7px 10px;border:1px solid #e3dcd2;border-radius:12px;background:#fff;color:#3f3a33;font-family:inherit;font-size:14px}.wish-composer input:focus{outline:none;border-color:#bb9c68}.wish-composer input::placeholder{color:#b3a795}.wish-row{display:flex;gap:6px}.wish-row .wish-text{flex:1;min-width:0}.wish-composer button{flex:none;padding:0 14px;border:none;border-radius:12px;background:#611010;color:#fff;font-family:inherit;font-size:14px;cursor:pointer;transition:filter .18s}.wish-composer button:disabled{opacity:.55;cursor:default}.wish-composer button:hover:not(:disabled){filter:brightness(1.2)}.photo-gallery-wrapper{width:100%;height:100%;display:flex;flex-direction:column;gap:12px}.gallery-stage{position:relative;flex:1;min-height:200px;overflow:hidden;border-radius:16px;background:#f3f4f6}.gallery-slide{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity .3s ease-in-out}.gallery-slide img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.gallery-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:10;display:flex;height:40px;width:40px;align-items:center;justify-content:center;border:none;border-radius:9999px;background:#fffc;color:#1f2937;box-shadow:0 4px 6px -1px #0000001a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;transition:background .2s}.gallery-btn:hover{background:#fff}.gallery-btn.prev{left:8px}.gallery-btn.next{right:8px}.gallery-fullscreen{position:absolute;right:8px;top:8px;z-index:10;display:flex;align-items:center;border:none;border-radius:9999px;background:#fffc;padding:8px;color:#374151;box-shadow:0 1px 3px #00000026;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.gallery-thumbs{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.gallery-thumbs::-webkit-scrollbar{display:none}.gallery-thumb{position:relative;flex:none;width:64px;min-width:64px;height:64px;overflow:hidden;border-radius:6px;border:1px solid transparent;padding:0;background:none;cursor:pointer;transition:all .2s}.gallery-thumb:hover{border-color:#60a5fa99}.gallery-thumb.active{border-color:#3b82f6;box-shadow:0 10px 15px -3px #3b82f64d}.gallery-thumb-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid #fff;pointer-events:none}.gallery-thumb img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.gallery-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4000;background:#000000eb;display:flex;align-items:center;justify-content:center;animation:gift-fade .18s ease-out}.gallery-lightbox img{max-width:94vw;max-height:90vh;object-fit:contain}.gallery-lightbox-close{position:absolute;top:14px;right:16px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#ffffff24;color:#fff;font-size:26px;line-height:1;cursor:pointer;transition:background .18s}.gallery-lightbox-close:hover{background:#ffffff47}.gallery-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#ffffff24;color:#fff;font-size:20px;cursor:pointer;transition:background .18s}.gallery-lightbox-nav:hover{background:#ffffff47}.gallery-lightbox-nav.prev{left:14px}.gallery-lightbox-nav.next{right:14px}.igb{display:block;position:relative;padding:0;border:none;background:transparent;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}.igb-stage{position:relative;transform-origin:top left;display:flex;align-items:flex-end;justify-content:center;padding-bottom:26px;box-sizing:border-box}.igb-bob{position:relative;width:200px;height:220px;animation:igbGiftBob 3s ease-in-out infinite}.igb-box{position:absolute;left:50%;bottom:0;width:170px;max-height:220px;margin-left:-85px;object-fit:contain;z-index:2;pointer-events:none;transform-origin:50% 100%;transition:transform .3s ease;filter:drop-shadow(0 10px 18px rgba(0,0,0,.25));will-change:transform}.igb-decor{position:absolute;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));will-change:transform,opacity}.igb-shadow{position:absolute;left:50%;bottom:-8px;width:144px;height:12px;margin-left:-72px;border-radius:50%;background:#00000073;filter:blur(4px);z-index:0;pointer-events:none;animation:igbShadowPulse 3s ease-in-out infinite;will-change:transform,opacity}.igb-sparkle{position:absolute;pointer-events:none;z-index:20;color:#933845;line-height:1;animation:igbSparkleAnim 2s ease-in-out infinite}.igb-sparkle-2{animation-delay:.6s}.igb-sparkle-3{animation-delay:1.2s}.igb-sparkle-4{animation-delay:1.7s}.igb-hint{position:absolute;bottom:0;left:50%;transform:translate(-50%);margin:0;font-size:12px;font-weight:500;white-space:nowrap;color:#cb5d6c;animation:igbHintPulse 2s ease-in-out infinite}.igb-confetti-origin{position:absolute;bottom:187px;left:50%;z-index:0;pointer-events:none}.igb-confetti{position:absolute;left:50%;top:0;opacity:0;pointer-events:none;will-change:transform,opacity}.igb-c1{width:11px;height:5.5px;margin:-2.75px 0 0 -5.5px;border-radius:2px;background:#ec4899}.igb-c2{width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#933845}.igb-c3{width:11px;height:5.5px;margin:-2.75px 0 0 -5.5px;border-radius:2px;background:#22c55e}.igb-c4{width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:#3b82f6}.igb-c5{width:12px;height:6px;margin:-3px 0 0 -6px;border-radius:2px;background:#a855f7}.igb-c6{width:0;height:0;margin:-5px 0 0 -5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:10px solid #facc15}.igb-c7{width:10px;height:5px;margin:-2.5px 0 0 -5px;border-radius:2px;background:#cb5d6c}.igb-c8{width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:#f97316}.igb-box{animation:igbBoxPop 2.4s ease-in-out infinite}.igb-decor-1{animation:igbDecorFlyUp1 1.6s ease-in-out 0s infinite}.igb-decor-2{animation:igbDecorFlyUp2 1.8s ease-in-out .15s infinite}.igb-decor-3{animation:igbDecorFlyUp3 1.4s ease-in-out .3s infinite}.igb-decor-4{animation:igbDecorFlyUp4 1.7s ease-in-out .45s infinite}.igb-decor-5{animation:igbDecorFlyUp5 1.9s ease-in-out .1s infinite}.igb-decor-6{animation:igbDecorFlyUp6 1.3s ease-in-out .35s infinite}.igb-decor-7{animation:igbDecorFlyUp7 1.7s ease-in-out .2s infinite}.igb-c1{animation:igbConfettiFly1 1s ease-out .05s infinite}.igb-c2{animation:igbConfettiFly2 1.1s ease-out .12s infinite}.igb-c3{animation:igbConfettiFly3 .95s ease-out .2s infinite}.igb-c4{animation:igbConfettiFly4 1.15s ease-out .3s infinite}.igb-c5{animation:igbConfettiFly5 1.05s ease-out .35s infinite}.igb-c6{animation:igbConfettiFly6 1.2s ease-out .4s infinite}.igb-c7{animation:igbConfettiFly7 .9s ease-out .5s infinite}.igb-c8{animation:igbConfettiFly8 1.1s ease-out .55s infinite}@keyframes igbGiftBob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes igbShadowPulse{0%,to{transform:scaleX(1);opacity:.3}50%{transform:scaleX(.9);opacity:.18}}@keyframes igbSparkleAnim{0%,to{opacity:0;transform:scale(.4)}50%{opacity:1;transform:scale(1.15)}}@keyframes igbHintPulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes igbBoxPop{0%,to{transform:translateY(0) scale(1) rotate(0)}35%{transform:translateY(-14px) scale(1.08) rotate(-3deg)}65%{transform:translateY(-8px) scale(1.05) rotate(1deg)}}@keyframes igbConfettiFly1{0%{transform:translate(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translate(-55px,-130px) rotate(540deg);opacity:0}}@keyframes igbConfettiFly2{0%{transform:translate(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translate(46px,-150px) rotate(-460deg);opacity:0}}@keyframes igbConfettiFly3{0%{transform:translate(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translate(-12px,-160px) rotate(620deg);opacity:0}}@keyframes igbConfettiFly4{0%{transform:translate(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translate(28px,-115px) rotate(-340deg);opacity:0}}@keyframes igbConfettiFly5{0%{transform:translate(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translate(-34px,-105px) rotate(320deg);opacity:0}}@keyframes igbConfettiFly6{0%{transform:translate(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translate(58px,-88px) rotate(-240deg);opacity:0}}@keyframes igbConfettiFly7{0%{transform:translate(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translate(8px,-170px) rotate(420deg);opacity:0}}@keyframes igbConfettiFly8{0%{transform:translate(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translate(-46px,-78px) rotate(-200deg);opacity:0}}@keyframes igbDecorFlyUp1{0%{translate:0;opacity:1}55%{translate:-6px -28px;opacity:1}80%{translate:-14px -55px;opacity:0}81%{translate:0;opacity:0}to{translate:0;opacity:1}}@keyframes igbDecorFlyUp2{0%{translate:0;opacity:1}55%{translate:6px -30px;opacity:1}80%{translate:14px -60px;opacity:0}81%{translate:0;opacity:0}to{translate:0;opacity:1}}@keyframes igbDecorFlyUp3{0%{translate:0;opacity:1}55%{translate:-4px -32px;opacity:1}80%{translate:-10px -65px;opacity:0}81%{translate:0;opacity:0}to{translate:0;opacity:1}}@keyframes igbDecorFlyUp4{0%{translate:0;opacity:1}55%{translate:5px -35px;opacity:1}80%{translate:12px -70px;opacity:0}81%{translate:0;opacity:0}to{translate:0;opacity:1}}@keyframes igbDecorFlyUp5{0%{translate:0;opacity:1}55%{translate:-3px -40px;opacity:1}80%{translate:-8px -80px;opacity:0}81%{translate:0;opacity:0}to{translate:0;opacity:1}}@keyframes igbDecorFlyUp6{0%{translate:0;opacity:1}55%{translate:4px -38px;opacity:1}80%{translate:10px -75px;opacity:0}81%{translate:0;opacity:0}to{translate:0;opacity:1}}@keyframes igbDecorFlyUp7{0%{translate:0;opacity:1}55%{translate:6px -36px;opacity:1}80%{translate:14px -72px;opacity:0}81%{translate:0;opacity:0}to{translate:0;opacity:1}}.gift-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4000;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px;animation:gift-fade .18s ease-out}@keyframes gift-fade{0%{opacity:0}to{opacity:1}}.gift-modal{width:100%;max-width:420px;max-height:90vh;overflow-y:auto;padding:24px 20px 18px;border-radius:24px;background:#fff;text-align:center;box-shadow:0 18px 50px #00000047;animation:gift-pop .22s ease-out}@keyframes gift-pop{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}.gift-modal h3{margin:0 0 10px;font-size:21px;font-weight:700;color:#2f2b28}.gift-sub{margin:0 0 18px;font-size:14px;color:#6d6a66}.gift-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gift-card{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 10px 16px;border:1px solid #ececec;border-radius:16px}.gift-role{font-size:17px;font-weight:700}.gift-qr-frame{width:100%;padding:7px;border:2px solid;border-radius:12px;box-sizing:border-box}.gift-qr-frame img{display:block;width:100%;aspect-ratio:1;object-fit:contain}.gift-name{margin-top:4px;font-size:13px;font-weight:700;color:#2f2b28;line-height:1.3}.gift-bank{font-size:12.5px;color:#55524e}.gift-number{font-size:12.5px;color:#6d6a66;letter-spacing:.4px}.gift-copy{margin-top:5px;padding:7px 14px;border:none;border-radius:999px;font-family:inherit;font-size:12.5px;font-weight:500;cursor:pointer;transition:filter .18s}.gift-copy:hover{filter:brightness(.96)}.gift-groom .gift-role{color:#3d8bd8}.gift-groom .gift-qr-frame{border-color:#c3ddf7}.gift-groom .gift-copy{background:#e9f3fd;color:#2f7fd0}.gift-bride .gift-role{color:#e0518a}.gift-bride .gift-qr-frame{border-color:#f8cede}.gift-bride .gift-copy{background:#fdeaf2;color:#d94a86}.gift-close{margin:18px auto 0;padding:9px 30px;border:1px solid #dcdcdc;border-radius:10px;background:#fff;color:#3d3a37;font-family:inherit;font-size:14px;cursor:pointer;transition:background .18s}.gift-close:hover{background:#f5f5f5}@media (max-width: 349px){.gift-grid{grid-template-columns:1fr}}#audio-control-wrapper{position:absolute;right:10px;top:10px;width:30px;height:30px;z-index:1200;display:flex;align-items:center;cursor:pointer}.audio-toggle{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;background:#a5a5a533;border-radius:50%;overflow:hidden}.audio-toggle.mrotate{animation:mrotate 5s linear infinite}@keyframes mrotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.music-icon{display:block;width:100%;height:100%;background:#611010}.icon-cancel{position:absolute;width:100%;height:100%;border-radius:50%;overflow:hidden;padding-top:15px;pointer-events:none}.icon-line{transform:rotate(45deg);width:100%;height:1px;background:#fff}.snowflakes{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1100;overflow:hidden}.snowflake{position:absolute;top:-10%;z-index:9999;-webkit-user-select:none;user-select:none;cursor:default;pointer-events:none;animation-name:snowflakes-shake;animation-duration:3s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;color:#fff;font-size:1em;font-family:Arial,sans-serif}.snowflake .inner{animation-duration:10s;animation-name:snowflakes-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes snowflakes-fall{0%{transform:translateY(0)}to{transform:translateY(110vh)}}@keyframes snowflakes-shake{0%,to{transform:translate(0)}50%{transform:translate(80px)}}.snowflake:nth-of-type(1){left:10%;animation-delay:1s}.snowflake:nth-of-type(1) .inner{animation-delay:1s}.snowflake:nth-of-type(2){left:20%;animation-delay:.5s}.snowflake:nth-of-type(2) .inner{animation-delay:6s}.snowflake:nth-of-type(3){left:30%;animation-delay:2s}.snowflake:nth-of-type(3) .inner{animation-delay:4s}.snowflake:nth-of-type(4){left:40%;animation-delay:2s}.snowflake:nth-of-type(4) .inner{animation-delay:2s}.snowflake:nth-of-type(5){left:50%;animation-delay:3s}.snowflake:nth-of-type(5) .inner{animation-delay:8s}.snowflake:nth-of-type(6){left:60%;animation-delay:2s}.snowflake:nth-of-type(6) .inner{animation-delay:6s}.snowflake:nth-of-type(7){left:70%;animation-delay:1s}.snowflake:nth-of-type(7) .inner{animation-delay:2.5s}.snowflake:nth-of-type(8){left:80%;animation-delay:0s}.snowflake:nth-of-type(8) .inner{animation-delay:1s}.snowflake:nth-of-type(9){left:90%;animation-delay:1.5s}.snowflake:nth-of-type(9) .inner{animation-delay:3s}.snowflake:nth-of-type(10){left:25%;animation-delay:0s}.snowflake:nth-of-type(10) .inner{animation-delay:2s}.snowflake:nth-of-type(11){left:65%;animation-delay:2.5s}.snowflake:nth-of-type(11) .inner{animation-delay:4s}.snowflake:nth-of-type(12){left:5%;animation-delay:3.5s}.snowflake:nth-of-type(12) .inner{animation-delay:5s}#cinelove-toolbar{position:absolute;left:0;bottom:0;z-index:1000;width:100%;height:64px;box-sizing:border-box}#cinelove-toolbar .toolbar{display:flex;align-items:center;justify-content:space-between;position:relative;width:100%;height:100%;padding:.5rem}.message-box-button,#animation-gift-preview-btn{background:linear-gradient(180deg,#6c1414e0,#3a0808eb);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border:1px solid rgba(255,228,228,.45);box-shadow:0 6px 18px #00000073,0 0 0 1px #00000038,inset 0 1px #ffffff38;text-shadow:0 1px 2px rgba(0,0,0,.45)}.message-box-button{padding:0 7px 0 15px;box-sizing:border-box;color:#fff;border-radius:30px;font-size:13px;width:150px;height:39px;line-height:39px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;overflow:hidden}.message-box-button img{height:24px;vertical-align:middle}.message-box-button input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:#fff;font-size:13px;font-family:inherit}.message-box-button input::placeholder{color:#ffffffb3}.message-box-button button{background:none;border:none;color:#fff;cursor:pointer;font-family:inherit;font-size:12px;padding:0 2px}.toolbar-right{display:flex;gap:10px;align-items:center}#animation-gift-preview-btn{padding:0 10px;box-sizing:border-box;color:#fff;border-radius:30px;font-size:14px;height:39px;line-height:39px;display:flex;align-items:center;cursor:pointer}#animation-gift-preview-btn img{height:30px;vertical-align:middle}#animation-gift-preview-btn span{display:inline-block;font-size:13px;margin-left:5px;white-space:nowrap}#cinelove-gift-button{background-image:url(/assets/img/gift-box.png);background-size:100%;background-repeat:no-repeat;animation:bounceGift 6s ease 0s infinite;width:39px;height:39px;cursor:pointer}@keyframes bounceGift{0%,20%,to{transform:translateY(0)}5%{transform:translateY(-6px)}10%{transform:translateY(0)}15%{transform:translateY(-3px)}}#blessing-box{display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;z-index:1000;height:180px;position:absolute;width:285px;bottom:58px;left:16px;transition:opacity .3s ease-in-out;-webkit-user-select:none;user-select:none;pointer-events:none}.blessing-message{font-size:11px;color:#fff;min-height:28px;line-height:14px;margin:3px 0;border-radius:7px;padding:2px 10px;display:flex;text-align:left;align-items:center;background:#e1757580;width:fit-content;max-width:100%;animation:blessing-in .4s ease-out}@keyframes blessing-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.blessing-message b{margin-right:4px;white-space:nowrap}.blessing-emoji{margin-right:4px}.toolbar-toggle-button{position:absolute;right:8px;bottom:68px;width:36px;height:36px;border-radius:50%;background-color:#ffffffe6;box-shadow:0 2px 10px #0003;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1001;transition:bottom .15s ease-in-out,transform .15s ease-in-out}.toolbar-toggle-button:hover{background-color:#fff;transform:scale(1.05)}.toolbar-toggle-button .toolbar-toggle-pill{position:absolute;left:0;bottom:0;width:100%;height:68px;transition:height .15s ease-in-out;background:linear-gradient(#ffeff2,#ff6883);border-radius:35px;box-sizing:border-box}.toolbar-toggle-button.toolbar-toggle-has-thumbnail .toolbar-toggle-pill{background:linear-gradient(#ff9aa6,#ff4969)}.toolbar-toggle-button .thumbnail{position:absolute;left:50%;top:-4px;transform:translate(-50%);z-index:1;border-radius:50%;width:37px;height:37px;object-fit:cover;border:1px solid #fff}.toolbar-toggle-button .icon-svg{width:36px;height:36px;padding:7px;box-sizing:border-box;color:#fff;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.watermark{position:absolute;bottom:148px;right:7px;text-align:center;transform:rotate(-90deg);width:20px;white-space:nowrap;height:20px;transition:all .3s ease;z-index:999}.watermark.hide-toolbar{bottom:30px}.watermark-content{text-align:center;color:#1c1c1c;font-size:14px;font-weight:300}.watermark-link{color:#414141;text-decoration:none;font-weight:500;margin-left:2px;transition:color .3s ease}.watermark-link:hover{color:#000}.heart-burst{position:absolute;bottom:60px;z-index:1400;pointer-events:none;animation:heart-fly 3s ease-in forwards}@keyframes heart-fly{0%{opacity:0;transform:translateY(0) scale(.4)}10%{opacity:1}to{opacity:0;transform:translateY(-70vh) scale(1.2)}}.cover-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5000;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;touch-action:none;overscroll-behavior:contain;background:#fff url(/assets/img/cover/floral-background.webp) center / 180% auto repeat;transition:opacity .85s ease,transform .85s ease}.cover-screen.is-leaving{opacity:0;transform:scale(1.06);pointer-events:none}.cover-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:#ffffff1f;backdrop-filter:blur(8px) saturate(1.05);-webkit-backdrop-filter:blur(8px) saturate(1.05)}.cover-petals{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;pointer-events:none}.cover-petal{position:absolute;top:-30px;animation-name:ambient-fall;animation-timing-function:ease-in-out;animation-iteration-count:infinite}@keyframes ambient-fall{0%{transform:translate(0) rotate(0);opacity:0}10%{opacity:.9}85%{opacity:.9}to{transform:translate(var(--sway, 0px),100vh) rotate(260deg);opacity:0}}.cover-stage{position:relative;z-index:10;width:min(88%,340px)}.cover-seal{position:absolute;top:50px;left:50%;z-index:30;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 30%,#cb5d6c,#ad3f4e);box-shadow:0 4px 20px #cb5d6c80,inset 0 2px 4px #ffffff4d;animation:seal-pulse 2s ease-in-out infinite}.cover-seal svg{width:28px;height:28px;fill:#fff}@keyframes seal-pulse{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.06)}}.cover-card{position:relative;border-radius:8px;box-shadow:0 25px 60px -12px #00000073,0 8px 24px #0003,0 0 40px #cb5d6c26;animation:cover-rise 1s ease-out both}@keyframes cover-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.cover-glass{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;overflow:hidden;clip-path:inset(0 round 8px);background:#ffffff4d;border:1px solid rgba(203,93,108,.15);backdrop-filter:blur(6px) saturate(1.08);-webkit-backdrop-filter:blur(6px) saturate(1.08)}.cover-flower{position:absolute;pointer-events:none;opacity:.9}.cover-flower-left,.cover-flower-right{top:0;width:50%;max-width:250px}.cover-flower-left{left:0;transform:translate(-10%,-14%)}.cover-flower-right{right:0;transform:translate(10%,-14%) scaleX(-1)}.cover-flower-bottom{bottom:0;left:50%;width:72%;max-width:330px;transform:translate(-50%,45%)}.cover-body{position:relative;z-index:10;padding:112px 24px 56px;text-align:center}.cover-names{margin:0 0 8px;color:#cb5d6c;font-family:Viaoda Libre,EB Garamond,cursive;font-size:30px;font-weight:400;line-height:1.25}.cover-names span{display:block}.cover-names .cover-amp{font-family:Baskerville,Times New Roman,serif;font-size:18px;line-height:1}.cover-rule{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px;color:#cb5d6c}.cover-rule i{width:40px;height:1px}.cover-rule i:first-child{background:linear-gradient(to right,transparent,#cb5d6c)}.cover-rule i:last-child{background:linear-gradient(to left,transparent,#cb5d6c)}.cover-rule span{font-size:14px;opacity:.7}.cover-date,.cover-invite{color:#933845cc;font-family:Lora,Times New Roman,serif;font-size:18px}.cover-date{margin-bottom:20px}.cover-invite{margin:0 0 32px;font-weight:300}.cover-btn{position:relative;display:flex;align-items:center;justify-content:center;margin:0 auto;padding:10px 32px;border:none;border-radius:999px;overflow:hidden;background-color:#cb5d6c;color:#fff;font-family:Lora,Times New Roman,serif;font-size:18px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;box-shadow:0 4px 14px #cb5d6c59;transition:transform .2s ease,box-shadow .2s ease}.cover-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px #cb5d6c73}.cover-btn:active{transform:translateY(1px)}.cover-shine{position:absolute;top:0;height:100%;width:32px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shine 3s ease-in-out infinite}@keyframes shine{0%{left:-32px}to{left:100%}}
