*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:"Noto Serif Khmer",Playfair Display,serif;line-height:1.6;color:#2c3e50;background:url(/assets/backgound-image-DGGH7OzP.png) center center / cover no-repeat fixed,linear-gradient(135deg,#b8e6ff,#a3d8f4 15%,#87ceeb 35%,#b0e0e6 65%,#afeeee 85%,#e0f6ff);background-attachment:fixed;position:relative;min-height:100vh}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:#ffffff1a;pointer-events:none;z-index:-1;opacity:.3}body:after{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,rgba(176,224,230,.3) 0%,transparent 15%,transparent 85%,rgba(176,224,230,.3) 100%),linear-gradient(0deg,rgba(176,224,230,.3) 0%,transparent 15%,transparent 85%,rgba(176,224,230,.3) 100%);pointer-events:none;z-index:-1}.container{max-width:1200px;margin:0 auto;padding:0 20px}.nav{position:fixed;top:0;width:100%;background:url(/assets/nav-menu-bg-B6eIGl0X.png) top center / cover no-repeat,#b0e0e6f2;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);z-index:1000;padding:15px 0;text-align:center;box-shadow:0 4px 20px #87ceeb4d;border-bottom:2px solid rgba(135,206,235,.5)}.nav-link{text-decoration:none;color:#2c3e50;margin:0 25px;font-weight:600;font-size:1.1rem;transition:all .3s ease;position:relative}.nav-link:hover{color:#1e88e5;text-shadow:0 2px 4px rgba(30,136,229,.3)}.nav-link:after{content:"";position:absolute;bottom:-5px;left:50%;width:0;height:2px;background:#1e88e5;transition:all .3s ease;transform:translate(-50%)}.nav-link:hover:after{width:100%}.invitation-hero{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:100px 20px 50px;position:relative}.invitation-card{max-width:550px;background:#fffffff2;border-radius:15px;box-shadow:0 10px 40px #0000001a,inset 0 1px #fffc;overflow:hidden;position:relative;border:2px solid rgba(135,206,235,.4);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.floral-border{padding:40px 30px;background:#b0e0e626;position:relative;border-radius:13px}.floral-border:before{content:"";position:absolute;top:15px;left:15px;right:15px;bottom:15px;border:1px solid rgba(135,206,235,.3);border-radius:8px;pointer-events:none}.floral-border:after{display:none}.invitation-content{text-align:center;position:relative;z-index:2}.wedding-title{font-family:Dancing Script,cursive;font-size:2.2rem;color:#1e88e5;margin-bottom:0;text-shadow:none;font-style:italic;font-weight:400}.couple-names-khmer{margin-bottom:0;position:relative;padding:10px 0}.couple-names-khmer .bride-name,.couple-names-khmer .groom-name{display:block;font-family:"Noto Serif Khmer",serif;font-size:2.8rem;color:#2c3e50;font-weight:700;text-shadow:none;position:relative;line-height:1.1;letter-spacing:1px;transform:none;margin:0 0 5px}.couple-names-khmer .bride-name:before,.couple-names-khmer .groom-name:before,.couple-names-khmer .bride-name:after,.couple-names-khmer .groom-name:after{display:none}.khmer-names-image{max-width:100%;height:auto;display:block;margin:0 auto;width:600px;max-height:160px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}@keyframes heartBeat{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes floralSway{0%,to{transform:rotate(0)}25%{transform:rotate(5deg)}75%{transform:rotate(-5deg)}}.couple-names-english{display:flex;align-items:center;justify-content:center;gap:15px;margin-bottom:0;position:relative;padding:0}.bride-name-en,.groom-name-en{font-family:Dancing Script,cursive;font-size:2.2rem;color:#1e88e5;text-shadow:none;position:relative;font-weight:600;transform:none}.heart-divider{font-size:1.5rem;color:#ff6b9d;text-shadow:none;animation:none;position:relative;z-index:2}.guest-greeting{text-align:center;margin-bottom:0;padding:20px 0;background:#b0e0e61a;border-radius:10px;border:1px solid rgba(135,206,235,.2)}.guest-name-khmer{font-family:"Noto Serif Khmer",serif;font-size:1.2rem;color:#1e88e5;font-weight:600;margin:10px 0;text-shadow:0 1px 3px rgba(30,136,229,.2)}.invitation-message{font-family:"Noto Serif Khmer",serif;font-size:1.1rem;color:#34495e;margin-bottom:10px;font-weight:500}.invitation-message-en{font-size:1.1rem;color:#34495e;margin-bottom:10px;font-style:italic}.invitation-message-main{font-size:1.1rem;color:#34495e;margin-bottom:30px;font-style:italic;text-align:center}.wedding-date{margin-bottom:20px;padding:0;background:transparent;border:none;border-radius:0}.date-khmer{font-family:"Noto Serif Khmer",serif;font-size:1.1rem;color:#2c3e50;font-weight:500;margin-bottom:5px}.date-english{font-size:1rem;color:#1e88e5;font-weight:400;font-style:italic}.time-venue{text-align:center;margin-top:20px}.ceremony-time{font-size:1rem;color:#2c3e50;margin-bottom:8px;font-weight:500}.venue-name{font-size:1rem;color:#1e88e5;font-weight:400;font-style:italic}section{padding:80px 0}.section-title{font-family:Playfair Display,serif;font-size:2.5rem;text-align:center;margin-bottom:15px;color:#2c3e50;font-weight:700}.section-title-khmer{font-family:"Noto Serif Khmer",serif;font-size:1.8rem;text-align:center;margin-bottom:50px;color:#1e88e5;font-weight:600}.details{background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:30px;margin-top:40px}.detail-card{background:#ffffffe6;border-radius:15px;overflow:hidden;box-shadow:0 10px 30px #87ceeb4d;border:2px solid rgba(135,206,235,.2);transition:all .3s ease}.detail-card:hover{transform:translateY(-5px);box-shadow:0 15px 40px #87ceeb66}.card-header{background:linear-gradient(135deg,#87ceeb,#b0e0e6);padding:20px;text-align:center}.card-header h3{color:#fff;font-size:1.3rem;font-weight:600;text-shadow:0 2px 4px rgba(0,0,0,.2)}.card-content{padding:25px}.card-content p{margin-bottom:12px;color:#2c3e50;line-height:1.6}.card-content strong{color:#1e88e5;font-weight:600}.schedule{background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.schedule-content{max-width:900px;margin:0 auto}.schedule-intro{text-align:center;margin-bottom:50px;padding:25px;background:#b0e0e633;border-radius:15px;border:2px solid rgba(135,206,235,.3)}.schedule-subtitle-khmer{font-family:"Noto Serif Khmer",serif;font-size:1.2rem;color:#2c3e50;margin-bottom:10px;font-weight:600}.schedule-subtitle{font-style:italic;color:#1e88e5;font-size:1.1rem}.timeline{position:relative;padding:20px 0}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,#87ceeb,#b0e0e6,#afeeee);transform:translate(-50%);border-radius:2px;display:none}.timeline-section{margin-bottom:50px}.timeline-section-title{text-align:center;font-family:Playfair Display,serif;font-size:1.8rem;color:#1e88e5;margin-bottom:30px;padding:15px;background:#fffc;border-radius:10px;box-shadow:0 5px 15px #87ceeb33;border:2px solid rgba(135,206,235,.3)}.timeline-item{display:flex;align-items:center;margin-bottom:30px;position:relative;min-height:80px;flex-direction:row;justify-content:flex-start}.timeline-item:nth-child(odd){flex-direction:row;justify-content:flex-start}.timeline-item:nth-child(2n){flex-direction:row;justify-content:flex-start}.timeline-icon{width:60px;height:60px;background:linear-gradient(135deg,#87ceeb,#b0e0e6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#fff;box-shadow:0 5px 15px #87ceeb66;border:3px solid rgba(255,255,255,.9);position:static;z-index:2;flex-shrink:0;margin-right:20px}.timeline-content{flex:1;background:#ffffffe6;padding:25px;border-radius:15px;box-shadow:0 8px 25px #87ceeb33;border:2px solid rgba(135,206,235,.2);transition:all .3s ease;max-width:none}.timeline-item:nth-child(odd) .timeline-content{margin-left:0;margin-right:0}.timeline-item:nth-child(2n) .timeline-content{margin-right:0;margin-left:0}.timeline-content:hover{transform:translateY(-3px);box-shadow:0 12px 35px #87ceeb4d}.timeline-content:before{content:"";position:absolute;top:20px;width:0;height:0;border:15px solid transparent}.timeline-item:nth-child(odd) .timeline-content:before{left:-30px;border-right-color:#ffffffe6;border-left:none}.timeline-item:nth-child(2n) .timeline-content:before{right:-30px;border-left-color:#ffffffe6;border-right:none}.timeline-time{font-weight:600;color:#1e88e5;font-size:1.1rem;margin-bottom:10px;padding:8px 15px;background:#1e88e51a;border-radius:20px;display:inline-block;border:1px solid rgba(30,136,229,.2)}.timeline-title-khmer{font-family:"Noto Serif Khmer",serif;font-size:1.3rem;color:#2c3e50;font-weight:600;margin-bottom:8px;line-height:1.4}.timeline-title{font-size:1.2rem;color:#1e88e5;font-weight:600;margin-bottom:12px;font-style:italic}.timeline-description{color:#2c3e50;line-height:1.6;font-size:1rem;font-family:"Noto Serif Khmer",serif;padding:10px 0}.add-more-section{background:#b0e0e61a;padding:25px;border-radius:15px;border:2px dashed rgba(135,206,235,.4);text-align:center}.add-more-instruction{color:#2c3e50;font-style:italic;line-height:1.6;margin-top:15px}.schedule-note{text-align:center;margin-top:40px;padding:20px;background:#b0e0e626;border-radius:10px;border:1px solid rgba(135,206,235,.3)}.note-khmer{font-family:"Noto Serif Khmer",serif;color:#2c3e50;margin-bottom:8px;font-weight:500}.note-english{color:#1e88e5;font-style:italic;font-size:.9rem}@media (max-width: 768px){.timeline:before{left:30px;width:2px;display:none}.timeline-item{flex-direction:row!important;padding-left:0;align-items:center!important;min-height:60px}.timeline-item:nth-child(2n){flex-direction:row!important}.timeline-icon{width:50px;height:50px;font-size:1.2rem;position:static!important;transform:none!important;margin-left:5px;margin-right:20px;left:auto!important}.timeline-content{margin:0!important;flex:1;max-width:none!important}.timeline-content:before{display:none}.timeline-section-title{font-size:1.5rem}.timeline-title-khmer{font-size:1.1rem}.timeline-title{font-size:1rem}}@media (max-width: 480px){.timeline-content,.schedule-intro{padding:20px}.schedule-subtitle-khmer{font-size:1rem}}.gallery{background:#b0e0e64d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px;margin-top:40px}.photo-item{text-align:center}.photo-frame{background:#c8c8c84d;padding:20px;border-radius:15px;box-shadow:0 10px 30px #87ceeb4d;border:3px solid rgba(135,206,235,.2);transition:all .3s ease;overflow:hidden;cursor:pointer;height:320px;display:flex;align-items:center;justify-content:center}.photo-frame:hover{transform:scale(1.05) rotate(1deg);box-shadow:0 15px 40px #87ceeb66}.photo-frame img{max-width:100%;max-height:300px;object-fit:contain;border-radius:8px;display:block;cursor:pointer;opacity:1}.photo-caption{margin-top:15px;font-style:italic;color:#2c3e50;font-weight:500}.location{background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.location-content{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:40px;align-items:start}.location-info{display:flex;flex-direction:column;gap:25px}.venue-card,.directions-card{background:#ffffffe6;padding:25px;border-radius:15px;box-shadow:0 8px 25px #87ceeb33;border:2px solid rgba(135,206,235,.2);transition:all .3s ease}.venue-card:hover,.directions-card:hover{transform:translateY(-3px);box-shadow:0 12px 35px #87ceeb4d}.venue-card h3,.directions-card h3{color:#1e88e5;margin-bottom:15px;font-size:1.3rem;font-weight:600;border-bottom:2px solid rgba(30,136,229,.2);padding-bottom:8px}.venue-card p,.directions-card p{color:#2c3e50;margin-bottom:8px;line-height:1.6}.contact-card{margin-top:20px;background:#fffffff2!important;border:2px solid rgba(135,206,235,.3)!important;text-align:center;padding:25px!important;border-radius:15px!important;box-shadow:0 8px 25px #87ceeb33!important;transition:all .3s ease;display:block!important;visibility:visible!important}.contact-info-section{background:linear-gradient(135deg,#fffffffa,#f8fbfff2)!important}.highlight-card{border:3px solid rgba(30,136,229,.4)!important;box-shadow:0 10px 30px #1e88e526!important}.contact-card:hover{transform:translateY(-3px);box-shadow:0 15px 40px #1e88e540!important}.contact-title{color:#1e88e5!important;font-size:1.4rem;margin-bottom:20px;border-bottom:3px solid rgba(135,206,235,.4);padding-bottom:12px;font-weight:700;font-family:Playfair Display,serif}.contact-details{margin-top:15px}.contact-item{font-size:1.1rem;margin-bottom:12px;color:#2c3e50;line-height:1.6;font-weight:500}.phone-number{color:#1e88e5;font-weight:700;letter-spacing:.5px;font-family:Monaco,Consolas,monospace}.contact-note{font-size:.95rem;margin-top:15px;color:#5a6c7d;font-style:italic;border-top:1px solid rgba(135,206,235,.2);padding-top:12px}.contact-card p strong{color:#2c3e50;font-weight:600}.contact-wrapper{margin-top:30px;padding:0 20px}.contact-card{width:100%!important;max-width:100%!important;position:relative!important;z-index:10!important}@media (max-width: 768px){.contact-wrapper{padding:0 10px;margin-top:20px}.contact-card{padding:20px!important;margin:0!important}}.qr-section{margin-top:15px;text-align:center}.qr-placeholder{width:80px;height:80px;background:linear-gradient(135deg,#87ceeb,#b0e0e6);margin:10px auto;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.9rem;border:2px solid rgba(135,206,235,.3)}.map-container{height:340px;width:100%;max-width:900px;margin:0 auto;border-radius:15px;overflow:hidden;box-shadow:0 10px 30px #87ceeb4d;border:3px solid rgba(135,206,235,.2)}.map-section{height:100%;background:linear-gradient(135deg,#87ceeb,#b0e0e6,#afeeee);display:flex;flex-direction:column}.map-header{background:#ffffffe6;padding:15px;text-align:center;border-bottom:2px solid rgba(135,206,235,.3)}.map-header h4{color:#2c3e50;font-size:1.3rem;font-weight:600}.map-content{flex:1;display:flex;flex-direction:row;justify-content:space-around;align-items:center;padding:30px 20px;gap:20px;flex-wrap:wrap}.venue-marker{background:#fffffff2;padding:15px;border-radius:12px;box-shadow:0 4px 20px #00000026;display:flex;flex-direction:column;align-items:center;text-align:center;width:180px;min-height:120px;transition:all .3s ease;border:2px solid rgba(135,206,235,.3)}.venue-marker:hover{transform:translateY(-3px);box-shadow:0 6px 20px #00000026}.marker{font-size:1.8rem;margin-bottom:5px}.venue-marker p{color:#2c3e50;font-weight:500;margin:0;font-size:.85rem;line-height:1.3}.venue-marker small{color:#1e88e5;font-weight:600;font-size:.75rem;margin-top:5px;display:block}.directions-btn{background:linear-gradient(135deg,#1e88e5,#42a5f5);color:#fff;border:none;padding:12px 25px;border-radius:25px;cursor:pointer;font-weight:600;font-size:1rem;margin-top:20px;transition:all .3s ease;box-shadow:0 4px 15px #1e88e54d}.directions-btn:hover{background:linear-gradient(135deg,#1565c0,#1976d2);transform:translateY(-2px);box-shadow:0 6px 20px #1e88e566}.footer{background:linear-gradient(135deg,#2c3e50,#34495e);color:#fff;text-align:center;padding:40px 0}.footer-message{font-family:"Noto Serif Khmer",serif;font-size:1.1rem;margin-bottom:10px;font-weight:500}.footer-message-en{font-style:italic;margin-bottom:15px;color:#ffffffe6}.footer p:last-child{color:#ffffffb3;font-size:.9rem}@media (max-width: 768px){.nav-link{margin:0 15px;font-size:1rem}.invitation-card{margin:20px}.floral-border{padding:25px}.wedding-title{font-size:2rem}.couple-names-khmer .bride-name,.couple-names-khmer .groom-name{font-size:1.5rem}.khmer-names-image{width:480px;max-height:140px}.bride-name-en,.groom-name-en{font-size:2.1rem}.details-grid,.location-content{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}section{padding:60px 0}.section-title{font-size:2rem}.section-title-khmer{font-size:1.5rem}}@media (max-width: 480px){.invitation-hero{padding:100px 10px 50px}.couple-names-english{flex-direction:column;gap:10px}.khmer-names-image{width:360px;max-height:150px}.groom-name-en{order:2}.heart-divider{order:1;font-size:1.2rem;margin-top:-5px;margin-left:10px;color:#ff6b9d;display:inline-block;animation:heartBeat 1.5s ease-in-out infinite}.container{padding:0 15px}.card-content{padding:20px}.venue-marker{flex-direction:column;text-align:center;gap:10px;width:160px;min-height:110px}.map-content{flex-direction:column;gap:15px;padding:20px 15px}.map-container{height:450px;max-width:100%}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .6s ease forwards}.photo-modal{display:none;position:fixed;z-index:2000;left:0;top:0;width:100%;height:100%;background-color:#000c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.photo-modal.active{display:flex;align-items:center;justify-content:center}.modal-content{position:relative;max-width:90vw;max-height:90vh;margin:auto;background:#c8c8c81a;border-radius:15px;padding:20px;box-shadow:0 20px 60px #00000080}.modal-content img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:10px;display:block;margin:0 auto}.modal-close{position:absolute;top:-10px;right:-10px;background:#c8c8c8e6;color:#2c3e50;border:none;border-radius:50%;width:40px;height:40px;font-size:20px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.modal-close:hover{background:#c8c8c8;transform:scale(1.1)}.modal-nav{position:absolute;top:50%;transform:translateY(-50%);background:#c8c8c8cc;color:#2c3e50;border:none;border-radius:50%;width:50px;height:50px;font-size:24px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:1001}.modal-prev{left:20px}.modal-next{right:20px}.modal-nav:hover{background:#c8c8c8;transform:translateY(-50%) scale(1.1)}.modal-counter{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:500}
