html{overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth}body{background:#f5f8ff}.calendar-day{transition:transform .3s ease,box-shadow .3s ease}.calendar-day:hover{transform:scale(1.08)}.calendar-selected{background:linear-gradient(135deg,#ffcfd6,#902732);color:#fff!important;box-shadow:0 12px 25px rgba(144,39,50,.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-face{font-family:BHN-BP-Ecatherina-Medium;src:url("/assets/fonts/BHN BP Ecatherina Medium.ttf") format("truetype");font-display:swap}@font-face{font-family:DancingScript-Regular;src:url("/assets/fonts/DancingScript-Regular.ttf") format("truetype");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}.font-ecatherina{font-family:BHN-BP-Ecatherina-Medium,sans-serif}.font-dancing{font-family:DancingScript-Regular,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}.wedding-page{font-family:Roboto,system-ui,sans-serif;background:linear-gradient(180deg,#fdf8f4 0,#f5ebe3 50%,#efe4d8 100%)}.wedding-serif{font-family:"Cormorant Garamond","Times New Roman",serif}.wedding-hero-overlay{background:linear-gradient(to top,rgba(45,24,22,.75) 0,transparent 55%)}.wedding-card{box-shadow:0 20px 50px rgba(62,32,28,.12),0 0 0 1px rgba(124,50,48,.08)}.wedding-divider{height:1px;background:linear-gradient(90deg,transparent,#c9a89a,transparent)}.invite-section{padding:28px 0 10px;background:0 0}.invite-wrapper{max-width:960px;margin:0 auto;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 20px 55px rgba(0,0,0,.12);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.2fr)}.invite-photo{position:relative;background:#111;min-height:420px}.invite-photo img{display:block;width:100%;height:100%;object-fit:cover}.invite-photo-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.75) 0,transparent 55%)}.invite-photo-content{position:absolute;inset:auto 0 28px 0;padding:24px 28px;text-align:center;color:#fff}.invite-photo-save{font-family:"Cormorant Garamond","Times New Roman",serif;font-size:28px;letter-spacing:.1em;text-transform:uppercase}.invite-photo-date{margin-top:14px;font-size:13px;letter-spacing:.25em;text-transform:uppercase}.invite-content{padding:26px 30px 26px 32px;color:#2b2524;background:#faf9fb}.invite-title-top{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:#777}.invite-guest{margin-top:8px;font-size:25px;color:#a03333;font-weight:600;font-family:"Cormorant Garamond","Times New Roman",serif}.invite-body{margin-top:14px;font-size:14px;line-height:1.7}.invite-names{font-family:"Cormorant Garamond","Times New Roman",serif;font-size:28px;color:#a03333}.invite-names span{display:inline-block}.invite-section-title{margin-top:22px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:#a03333}.invite-line{margin-top:6px;margin-bottom:10px;width:40px;height:2px;background:#a03333}.invite-line.light{background:#d9d2d2}.invite-block{font-size:13px;line-height:1.7}.invite-block a{color:#a03333;text-decoration:none;font-weight:600}.invite-note{margin-top:18px;font-size:12px;font-style:italic;color:#6a5d59}.invite-map-button{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;padding:8px 16px;border-radius:999px;border:1px solid #a03333;background:#fff;color:#a03333;font-size:12px;font-weight:600;text-decoration:none;box-shadow:0 0 0 0 rgba(160,51,51,.6);animation:invite-map-pulse 1.5s infinite}.invite-map-button:hover{background:#fff7f5}@keyframes invite-map-pulse{0%{box-shadow:0 0 0 0 rgba(160,51,51,.7);transform:scale(1)}50%{box-shadow:0 0 0 8px rgba(160,51,51,0);transform:scale(1.04)}100%{box-shadow:0 0 0 0 rgba(160,51,51,0);transform:scale(1)}}@media (max-width:768px){.invite-wrapper{grid-template-columns:1fr}.invite-content{padding:20px 18px 22px}}