html{scroll-behavior:smooth;scroll-padding-top:2rem}body,html{background:#fff;min-height:100vh;scroll-behavior:smooth}body.mobile-safe{padding-bottom:env(safe-area-inset-bottom,0)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}*{scroll-behavior:inherit}}.bg-sage-green{background:linear-gradient(180deg,#fff 0,#fff 50%,#fff 100%);position:relative}.bg-sage-green::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.1) 0,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.1) 0,transparent 50%);pointer-events:none}.watercolor-bg{background-image:radial-gradient(circle at 15% 25%,rgba(255,255,255,.2) 0,transparent 40%),radial-gradient(circle at 85% 75%,rgba(255,255,255,.15) 0,transparent 45%),radial-gradient(circle at 50% 50%,rgba(255,255,255,.1) 0,transparent 60%),radial-gradient(circle at 30% 70%,rgba(255,255,255,.3) 0,transparent 50%),radial-gradient(circle at 70% 30%,rgba(255,255,255,.25) 0,transparent 50%);animation:watercolorFlow 20s ease-in-out infinite;pointer-events:none}@keyframes watercolorFlow{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}.hero-section{position:relative;overflow:hidden}.music-toggle-spin{animation:indicatorSpin 1.4s linear infinite}@keyframes indicatorSpin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.invitation-panel{animation:panelFloat 6s ease-in-out infinite;transform-origin:center}@keyframes panelFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.01)}}.bamboo-stalk-1{animation:bambooSway1 4s ease-in-out infinite;transform-origin:top center}.bamboo-stalk-2{animation:bambooSway2 3.5s ease-in-out infinite;transform-origin:top center;animation-delay:.5s}.bamboo-stalk-3{animation:bambooSway3 3s ease-in-out infinite;transform-origin:top center;animation-delay:1s}@keyframes bambooSway1{0%,100%{transform:rotate(12deg)}50%{transform:rotate(14deg)}}@keyframes bambooSway2{0%,100%{transform:rotate(6deg)}50%{transform:rotate(8deg)}}@keyframes bambooSway3{0%,100%{transform:rotate(0)}50%{transform:rotate(2deg)}}.leaf-1,.leaf-2,.leaf-3{animation:leafFloat 3s ease-in-out infinite}.leaf-1{animation-delay:0s}.leaf-2{animation-delay:1s}.leaf-3{animation-delay:2s}@keyframes leafFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(5deg)}}.leaf-large-1,.leaf-large-2{animation:largeLeafFloat 8s ease-in-out infinite}.leaf-large-1{animation-delay:0s}.leaf-large-2{animation-delay:2s}@keyframes largeLeafFloat{0%,100%{transform:scale(1) rotate(0);opacity:.8}50%{transform:scale(1.05) rotate(2deg);opacity:.9}}.lantern-1,.lantern-2{animation:lanternSway 3s ease-in-out infinite;transform-origin:top center}.lantern-2{animation-delay:.5s}@keyframes lanternSway{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(-2px) rotate(-1deg)}75%{transform:translateX(2px) rotate(1deg)}}.lantern-1::before,.lantern-2::before{content:"";position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:2px;height:8px;background:linear-gradient(to bottom,#8b6914,#d4af37);border-radius:2px}.ring-icon{animation:ringPulse 2s ease-in-out infinite}@keyframes ringPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.9}}.date-line{animation:lineGrow 1.5s ease-out;transform-origin:top}@keyframes lineGrow{0%{height:0;opacity:0}100%{height:4rem;opacity:1}}.date-number{animation:numberPop 1s ease-out}@keyframes numberPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}.pixel-art-container{animation:pixelArtFloat 3s ease-in-out infinite}@keyframes pixelArtFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}.pixel-art-couple{animation:pixelArtBounce 2s ease-in-out infinite}@keyframes pixelArtBounce{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.doorway-illustration{animation:doorwaySlide 1s ease-out}@keyframes doorwaySlide{0%{transform:translateY(20px);opacity:0}100%{transform:translateY(0);opacity:1}}.made-by-text{animation:fadeInRight 2s ease-out;animation-delay:1s;opacity:0;animation-fill-mode:forwards}@keyframes fadeInRight{0%{opacity:0;transform:translateX(-20px) rotate(-90deg)}100%{opacity:1;transform:translateX(0) rotate(-90deg)}}.decorative-bamboo:hover .bamboo-stalk-1,.decorative-bamboo:hover .bamboo-stalk-2,.decorative-bamboo:hover .bamboo-stalk-3{animation-duration:2s}.decorative-leaf-left:hover .leaf-large-2,.decorative-leaf-right:hover .leaf-large-1{animation-duration:4s;transform:scale(1.1)}.bg-sage-light{background-color:#fff}.bg-sage-dark{background-color:#7a1d25}.text-sage-dark{color:#000}.text-sage-light{color:#fff}.calendar-day{transition:transform .3s ease,box-shadow .3s ease}.calendar-day:hover{transform:scale(1.08)}.calendar-selected{background:linear-gradient(135deg,#7a1d25,#7a1d25);color:#fff!important;box-shadow:0 12px 25px rgba(122,29,37,.25)}@font-face{font-family:UTM-Azkia;src:url("/assets/fonts/UTM-Azkia.ttf") format("truetype");font-display:swap}@font-face{font-family:Ephesis-Regular;src:url("/assets/fonts/Ephesis-Regular.ttf") format("truetype");font-display:swap}@font-face{font-family:VNF-Shelia-Regular;src:url("/assets/fonts/VNF-Shelia-Regular.ttf") format("truetype");font-display:swap}@font-face{font-family:UTM-Cafeta;src:url("/assets/fonts/UTM-Cafeta.ttf") format("truetype");font-display:swap}@font-face{font-family:LNTH-RaphLanokFuture;src:url("/assets/fonts/LNTH-RaphLanokFuture.otf") format("opentype");font-display:swap}.font-azkia{font-family:UTM-Azkia,sans-serif}.font-ephesis{font-family:Ephesis-Regular,sans-serif}.font-shelia{font-family:VNF-Shelia-Regular,sans-serif}.font-cafeta{font-family:UTM-Cafeta,sans-serif}.font-raphlanok{font-family:LNTH-RaphLanokFuture,sans-serif}.font-roboto{font-family:Roboto,sans-serif}.font-barlow{font-family:Barlow,sans-serif}.font-arial{font-family:Arial,sans-serif}.font-abril-fatface{font-family:"Abril Fatface",sans-serif}*{box-sizing:border-box;-webkit-font-smoothing:antialiased}.active-heart{position:relative}.active-heart::before{content:"";position:absolute;top:-50%;left:50%;transform:translateX(-50%);width:94px;height:94px;background:center center/cover no-repeat scroll content-box border-box url(/assets/images/heart.webp);filter:contrast(0%) grayscale(0%) hue-rotate(0deg) invert(0%) saturate(100%) sepia(0%) opacity(100%) brightness(200%);animation:fadeInOut 2s ease-in-out infinite}@keyframes fadeInOut{0%{opacity:0}50%{opacity:1}100%{opacity:0}}.heart-couple::before{content:"";position:absolute;top:-64px;width:146px;height:146px;left:50%;margin-left:-73px;transform-origin:center center;background:center center/cover no-repeat scroll content-box border-box url(/assets/images/heart.webp);filter:contrast(0%) grayscale(0%) hue-rotate(0deg) invert(0%) saturate(100%) sepia(0%) opacity(100%) brightness(200%);animation:zoomInOutHeartCouple 2.5s ease-in-out infinite}@keyframes zoomInOutHeartCouple{0%{transform:scale(1)}50%{transform:scale(1.1)}100%{transform:scale(1)}}.active-heart-couple::before{content:"";position:absolute;top:-50%;left:54%}.line-heart{overflow:hidden;position:absolute;right:-172px;top:-28px}.line-heart img{filter:contrast(0%) grayscale(0%) hue-rotate(0deg) invert(0%) saturate(100%) sepia(0%) opacity(100%) brightness(200%) blur(0px)}.split-left{position:absolute;top:0;left:0;width:50%;height:100%}.split-right{position:absolute;top:0;right:0}.processing-wedding::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#000;text-align:center}.processing-wedding::after{content:"Đang diễn ra";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:24px;font-weight:700}.bamboo-stalk{background:linear-gradient(90deg,#5a1519 0,#7a1d25 50%,#5a1519 100%);border-radius:2px;box-shadow:inset 0 0 10px rgba(0,0,0,.2)}.lantern{background:linear-gradient(180deg,#fff9e6 0,#fff 50%,#fff9e6 100%);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;box-shadow:0 4px 8px rgba(0,0,0,.2),inset 0 0 20px rgba(255,235,59,.3)}.photo-frame-arch{position:relative;overflow:hidden}.photo-frame-arch::before{content:"";position:absolute;top:0;left:0;right:0;height:60px;background:#fff;border-radius:50% 50% 0 0/100% 100% 0 0;z-index:1}.watercolor-texture{background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.15) 0,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.15) 0,transparent 50%),radial-gradient(circle at 50% 50%,rgba(255,255,255,.1) 0,transparent 70%)}.transition-smooth{transition:all .3s ease-in-out}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#7a1d25;border-radius:4px;transition:background .3s ease}::-webkit-scrollbar-thumb:hover{background:#5a1519}section{scroll-margin-top:2rem;transition:transform .3s ease,opacity .3s ease}@media (prefers-reduced-motion:no-preference){.decorative-bamboo,.decorative-leaf-left,.decorative-leaf-right{will-change:transform}}@supports (scroll-behavior:smooth){html{scroll-behavior:smooth}}.fade-in-on-scroll{opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s ease-out}.fade-in-on-scroll.visible{opacity:1;transform:translateY(0)}