@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;600;700&family=Montserrat:wght@300;400;500;600&display=swap";:root{--primary: #8b9d83;--primary-light: #a8b9a0;--primary-dark: #6b7d63;--secondary: #2c2c2c;--accent: #c4d4bc;--bg-light: #f0f4ee;--bg-white: #ffffff;--text-dark: #1a1a1a;--text-light: #4a4a4a;--text-muted: #808080;--font-heading: "Cormorant Garamond", serif;--font-body: "Montserrat", sans-serif;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 4rem;--spacing-xl: 6rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .16)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--text-dark);background-color:var(--bg-light);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.2;color:var(--text-dark)}h1{font-size:clamp(2.5rem,5vw,4.5rem);font-weight:300;letter-spacing:.02em}h2{font-size:clamp(2rem,4vw,3.5rem);font-weight:400}h3{font-size:clamp(1.5rem,3vw,2rem)}p{font-size:1rem;line-height:1.8;color:var(--text-light)}a{color:var(--primary);text-decoration:none;transition:color .3s ease}a:hover{color:var(--primary-dark)}button{font-family:var(--font-body);font-size:1rem;font-weight:500;padding:1rem 2.5rem;border:2px solid var(--primary);background-color:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.1em}button:hover,button.secondary{background-color:transparent;color:var(--primary)}button.secondary:hover{background-color:var(--primary);color:#fff}img{max-width:100%;height:auto;display:block}section{padding:var(--spacing-xl) var(--spacing-md)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}@media(max-width:768px){section{padding:var(--spacing-lg) var(--spacing-sm)}.container{padding:0 var(--spacing-sm)}}@media(max-width:480px){:root{--spacing-xl: 4rem;--spacing-lg: 3rem;--spacing-md: 1.5rem}section{padding:var(--spacing-md) .75rem}.container{padding:0 .75rem}h1{font-size:clamp(2rem,8vw,3.5rem)}h2{font-size:clamp(1.6rem,6vw,2.5rem)}h3{font-size:clamp(1.3rem,5vw,1.8rem)}p{font-size:.95rem}button{padding:.875rem 2rem;font-size:.9rem}}.navigation{position:fixed;top:0;left:0;right:0;z-index:1000;background-color:transparent;transition:all .3s ease;padding:1.5rem 0}.navigation.scrolled{background-color:#fffffffa;box-shadow:var(--shadow-sm);padding:1rem 0}.nav-container{display:flex;justify-content:space-between;align-items:center}.nav-logo a{font-family:var(--font-heading);font-size:1.8rem;font-weight:600;color:var(--text-dark);letter-spacing:.1em}.nav-menu{display:flex;gap:2.5rem;align-items:center}.nav-link{font-size:.95rem;font-weight:400;color:var(--text-light);text-transform:uppercase;letter-spacing:.08em;position:relative;transition:color .3s ease}.nav-link:after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:1px;background-color:var(--primary);transition:width .3s ease}.nav-link:hover{color:var(--primary)}.nav-link:hover:after{width:100%}.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:.5rem;cursor:pointer}.nav-toggle span{display:block;width:25px;height:2px;background-color:var(--text-dark);transition:all .3s ease}@media(max-width:768px){.nav-toggle{display:flex}.nav-menu{position:fixed;top:0;right:-100%;width:70%;height:100vh;background-color:var(--bg-white);flex-direction:column;justify-content:center;gap:2rem;transition:right .3s ease;box-shadow:var(--shadow-lg)}.nav-menu.active{right:0}.nav-link{font-size:1.2rem}}@media(max-width:480px){.navigation{padding:1rem 0}.navigation.scrolled{padding:.75rem 0}.nav-logo a{font-size:1.5rem}.nav-menu{width:80%}.nav-link{font-size:1.1rem}}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;background:linear-gradient(135deg,var(--accent) 0%,var(--bg-light) 100%);text-align:center;padding:var(--spacing-xl) var(--spacing-md)}.hero-content{max-width:800px;animation:fadeInUp 1s ease-out}.hero-date{font-family:var(--font-body);font-size:.9rem;letter-spacing:.2em;color:var(--primary);font-weight:500;margin-bottom:1.5rem}.hero-names{font-size:clamp(3rem,8vw,6rem);font-weight:300;margin-bottom:1rem;color:var(--text-dark)}.hero-names span{font-family:var(--font-heading);font-style:italic;font-size:.8em;color:var(--primary);margin:0 .5rem}.hero-subtitle{font-size:1.3rem;color:var(--text-light);margin-bottom:2rem;font-weight:300}.hero-divider{width:60px;height:2px;background-color:var(--primary);margin:2rem auto}.hero-cta{display:inline-block;margin-top:1rem}.hero-scroll{position:absolute;bottom:3rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;animation:bounce 2s infinite}.hero-scroll span{font-size:.8rem;letter-spacing:.15em;color:var(--text-muted);text-transform:uppercase}.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--primary),transparent)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media(max-width:768px){.hero{padding:var(--spacing-lg) var(--spacing-sm)}.hero-date{font-size:.8rem}.hero-subtitle{font-size:1.1rem}}@media(max-width:480px){.hero{min-height:90vh;padding:var(--spacing-md) var(--spacing-sm)}.hero-date{font-size:.75rem;margin-bottom:1rem}.hero-subtitle{font-size:1rem;margin-bottom:1.5rem}.hero-scroll{bottom:2rem}.hero-scroll span{font-size:.7rem}.scroll-line{height:30px}}.invitation{background-color:var(--bg-white);padding:var(--spacing-xl) var(--spacing-md);display:flex;justify-content:center;align-items:center}.invitation-container{max-width:500px;width:100%;margin:0 auto}.invitation-card{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;animation:fadeInUp 1s ease-out}.invitation-card:hover{transform:translateY(-8px);box-shadow:0 12px 40px #00000026}.invitation-image{width:100%;height:auto;display:block;object-fit:cover}@media(max-width:768px){.invitation{padding:var(--spacing-lg) var(--spacing-sm)}.invitation-card{border-radius:var(--radius-md)}}.countdown{background:linear-gradient(135deg,var(--primary-light) 0%,var(--accent) 100%);padding:var(--spacing-xl) var(--spacing-md);text-align:center}.countdown h2{color:var(--text-dark);margin-bottom:var(--spacing-lg)}.countdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--spacing-md);max-width:800px;margin:0 auto}.countdown-item{background-color:var(--bg-white);padding:var(--spacing-md);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform .3s ease,box-shadow .3s ease}.countdown-item:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}.countdown-number{font-family:var(--font-heading);font-size:3.5rem;font-weight:600;color:var(--primary);line-height:1;margin-bottom:.5rem}.countdown-label{font-size:.9rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-light);font-weight:500}@media(max-width:768px){.countdown-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.countdown-number{font-size:2.5rem}.countdown-item{padding:var(--spacing-sm)}}@media(max-width:480px){.countdown{padding:var(--spacing-lg) var(--spacing-sm)}.countdown h2{font-size:1.8rem}.countdown-grid{gap:.75rem}.countdown-item{padding:.75rem}.countdown-number{font-size:2rem}.countdown-label{font-size:.8rem}}.gallery-modal{position:fixed;inset:0;background-color:#000000f2;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:fadeIn .3s ease-out}.gallery-content{position:relative;width:90%;max-width:1200px;height:70vh;display:flex;align-items:center;justify-content:center}.gallery-close{position:absolute;top:-50px;right:0;background:none;border:none;color:#fff;font-size:3rem;cursor:pointer;padding:.5rem 1rem;transition:transform .2s ease;z-index:10}.gallery-close:hover{transform:scale(1.1)}.gallery-image-container{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.gallery-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 10px 50px #00000080}.gallery-counter{position:absolute;bottom:-40px;left:50%;transform:translate(-50%);color:#fff;font-size:1rem;background-color:#000000b3;padding:.5rem 1rem;border-radius:var(--radius-sm)}.gallery-nav{position:absolute;background-color:#ffffff1a;border:none;color:#fff;font-size:4rem;cursor:pointer;padding:1rem 1.5rem;transition:background-color .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-sm)}.gallery-nav:hover{background-color:#fff3}.gallery-prev{left:20px}.gallery-next{right:20px}.gallery-thumbnails{display:flex;gap:.5rem;margin-top:2rem;max-width:90%;overflow-x:auto;padding:1rem 0;scrollbar-width:thin;scrollbar-color:var(--primary) rgba(255,255,255,.1)}.gallery-thumbnails::-webkit-scrollbar{height:6px}.gallery-thumbnails::-webkit-scrollbar-track{background:#ffffff1a;border-radius:3px}.gallery-thumbnails::-webkit-scrollbar-thumb{background:var(--primary);border-radius:3px}.gallery-thumb{flex-shrink:0;width:80px;height:80px;cursor:pointer;opacity:.5;transition:opacity .3s ease,transform .3s ease;border-radius:var(--radius-sm);overflow:hidden;border:2px solid transparent}.gallery-thumb:hover{opacity:.8;transform:scale(1.05)}.gallery-thumb.active{opacity:1;border-color:var(--primary);transform:scale(1.1)}.gallery-thumb img{width:100%;height:100%;object-fit:cover}@media(max-width:768px){.gallery-content{height:60vh}.gallery-nav{font-size:2.5rem;padding:.5rem 1rem}.gallery-prev{left:10px}.gallery-next{right:10px}.gallery-close{top:-40px;font-size:2rem}.gallery-thumbnails{gap:.3rem}.gallery-thumb{width:60px;height:60px}}.accommodation-modal{position:fixed;inset:0;background-color:#000000d9;z-index:10000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:fadeIn .3s ease-out}.accommodation-content{position:relative;background-color:var(--bg-white);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}.accommodation-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;color:var(--text-muted);font-size:2rem;cursor:pointer;padding:.5rem;transition:color .2s ease;line-height:1}.accommodation-close:hover{color:var(--text-dark)}.accommodation-content h2{color:var(--text-dark);margin-bottom:var(--spacing-lg);font-size:2rem;padding-right:2rem}.accommodation-content h3{color:var(--text-dark);margin-bottom:var(--spacing-sm);font-size:1.2rem;font-weight:600}.accommodation-section{margin-bottom:var(--spacing-lg)}.accommodation-description{color:var(--text-light);line-height:1.6;font-size:1.05rem}.discount-code-box{display:flex;gap:var(--spacing-sm);align-items:center;background-color:var(--bg-light);padding:var(--spacing-md);border-radius:var(--radius-md);border:2px dashed var(--primary)}.discount-code{flex:1;font-family:Courier New,monospace;font-size:1.3rem;font-weight:700;color:var(--primary);letter-spacing:.05em}.copy-button{background-color:var(--primary);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.9rem;transition:background-color .2s ease}.copy-button:hover{background-color:var(--primary-dark)}.booking-link{display:inline-block;color:#fff;padding:.75rem 1.5rem;border-radius:var(--radius-md);text-decoration:none;font-weight:600;transition:background-color .2s ease,transform .2s ease}.booking-link:hover{background-color:var(--primary-dark);transform:translate(5px)}.accommodation-section p{color:var(--text-light);line-height:1.6;margin-bottom:.5rem}.accommodation-section a{color:var(--primary);text-decoration:none;font-weight:500}.accommodation-section a:hover{text-decoration:underline}.additional-info p{margin-bottom:0;font-size:.95rem;font-style:italic}@media(max-width:768px){.accommodation-content{padding:var(--spacing-lg);max-height:85vh}.accommodation-content h2{font-size:1.5rem}.discount-code{font-size:1.1rem}.copy-button{font-size:.85rem;padding:.4rem .8rem}}@media(max-width:480px){.accommodation-modal{padding:var(--spacing-sm)}.accommodation-content{padding:var(--spacing-md)}.accommodation-content h2{font-size:1.3rem}.accommodation-content h3{font-size:1.1rem}.accommodation-description{font-size:.95rem}.discount-code{font-size:1rem}.discount-code-box{flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm)}.copy-button{width:100%;font-size:.85rem}.booking-link{font-size:.9rem;padding:.6rem 1.2rem}.accommodation-section p{font-size:.9rem}.additional-info p{font-size:.85rem}}.afternoon-modal{position:fixed;inset:0;background-color:#000000d9;z-index:10000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:fadeIn .3s ease-out}.afternoon-content{position:relative;background-color:var(--bg-white);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}.afternoon-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;color:var(--text-muted);font-size:2rem;cursor:pointer;padding:.5rem;transition:color .2s ease;line-height:1}.afternoon-close:hover{color:var(--text-dark)}.afternoon-content h2{color:var(--text-dark);margin-bottom:var(--spacing-lg);font-size:2rem;padding-right:2rem}.afternoon-content h3{color:var(--text-dark);margin-bottom:var(--spacing-md);font-size:1.3rem;font-weight:600}.afternoon-section{margin-bottom:var(--spacing-lg)}.afternoon-description{color:var(--text-light);line-height:1.6;font-size:1.05rem}.activities-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.activity-item{background-color:var(--bg-light);padding:var(--spacing-md);border-radius:var(--radius-md);border-left:3px solid var(--primary)}.activity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}.activity-header h4{color:var(--text-dark);font-size:1.1rem;font-weight:600;margin:0}.activity-duration{background-color:var(--primary);color:#fff;padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500}.activity-description{color:var(--text-light);line-height:1.6;margin:0;font-size:.95rem}.meeting-info{background-color:var(--bg-light);padding:var(--spacing-md);border-radius:var(--radius-md)}.meeting-info p{color:var(--text-light);margin-bottom:.75rem;line-height:1.6}.meeting-info p:last-child{margin-bottom:0}.meeting-info strong{color:var(--text-dark);font-weight:600}.additional-info{background-color:var(--bg-light);padding:var(--spacing-md);border-radius:var(--radius-md);border-left:3px solid var(--primary)}.additional-info p{margin-bottom:0;font-size:.95rem;font-style:italic;color:var(--text-light);line-height:1.6}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.afternoon-content{padding:var(--spacing-lg);max-height:85vh}.afternoon-content h2{font-size:1.5rem}.activity-header{flex-direction:column;align-items:flex-start}.activity-duration{font-size:.8rem}}@media(max-width:480px){.afternoon-modal{padding:var(--spacing-sm)}.afternoon-content{padding:var(--spacing-md)}.afternoon-content h2{font-size:1.3rem}.afternoon-content h3{font-size:1.15rem}.afternoon-description{font-size:.95rem}.activity-item{padding:var(--spacing-sm)}.activity-header h4{font-size:1rem}.activity-description{font-size:.85rem}.meeting-info{padding:var(--spacing-sm)}.meeting-info p{font-size:.9rem}.additional-info{padding:var(--spacing-sm)}.additional-info p{font-size:.85rem}}.event-details{background-color:var(--bg-white);padding:var(--spacing-xl) var(--spacing-md)}.location-info{text-align:center;background:linear-gradient(135deg,var(--accent) 0%,var(--bg-light) 100%);padding:var(--spacing-lg);border-radius:var(--radius-lg);margin:var(--spacing-lg) auto;max-width:600px}.location-info h3{color:var(--text-dark);margin-bottom:.5rem;font-size:1.5rem}.location-info p{color:var(--text-light);margin-bottom:var(--spacing-sm)}.location-link{display:inline-block;color:var(--primary);font-weight:500;font-size:.95rem;transition:transform .2s ease}.location-link:hover{transform:translate(5px)}.timeline{max-width:900px;margin:var(--spacing-xl) auto;position:relative;padding-left:5rem}.timeline:before{content:"";position:absolute;left:2.25rem;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,var(--primary),var(--accent))}.timeline-item{position:relative;margin-bottom:var(--spacing-xl);opacity:0;animation:fadeInLeft .6s ease-out forwards}.timeline-item:nth-child(1){animation-delay:.1s}.timeline-item:nth-child(2){animation-delay:.2s}.timeline-item:nth-child(3){animation-delay:.3s}.timeline-item:nth-child(4){animation-delay:.4s}.timeline-item.optional{opacity:.85}.timeline-icon-container{position:absolute;left:-4.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center}.time-icon{font-size:1.8rem;background-color:var(--bg-white);width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:3px solid var(--primary);box-shadow:var(--shadow-md)}.time-badge{display:inline-block;background-color:var(--primary);color:#fff;padding:.3rem .8rem;border-radius:var(--radius-sm);font-weight:600;font-size:.9rem;margin-bottom:.75rem}.timeline-content{background-color:var(--bg-light);border-radius:var(--radius-md);border-left:3px solid var(--primary);overflow:hidden;display:flex;gap:var(--spacing-md);position:relative;transition:transform .2s ease,box-shadow .2s ease}.timeline-content.clickable{cursor:pointer}.timeline-content.clickable:hover{transform:translate(5px);box-shadow:var(--shadow-md)}.timeline-image{flex-shrink:0;width:220px;height:220px;overflow:hidden;position:relative}.timeline-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.timeline-image:hover img{transform:scale(1.05)}.image-overlay{position:absolute;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.timeline-image:hover .image-overlay{opacity:1}.view-gallery-icon{color:#fff;font-size:.9rem;font-weight:500;text-align:center;padding:.5rem}.timeline-text{flex:1;padding:var(--spacing-md);padding-left:0}.timeline-text h3{color:var(--text-dark);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem;font-size:1.4rem}.optional-badge{font-size:.7rem;background-color:transparent;color:var(--primary);border:2px solid var(--primary);padding:.2rem .6rem;border-radius:var(--radius-sm);font-weight:600;text-transform:uppercase}.click-hint{font-size:.85rem;color:var(--primary);font-weight:500;font-style:italic;margin-left:.5rem}.timeline-description{color:var(--text-light);margin-bottom:.5rem;font-style:italic}.timeline-location{color:var(--text-muted);font-size:.9rem}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@media(max-width:768px){.timeline{padding-left:3.5rem}.timeline:before{left:1.5rem}.timeline-icon-container{left:-3rem;top:50%;transform:translateY(-50%)}.time-icon{width:45px;height:45px;font-size:1.4rem}.timeline-content{flex-direction:column}.timeline-image{width:100%;height:180px}.timeline-text{padding:var(--spacing-sm)}.time-badge{font-size:.85rem;padding:.25rem .6rem}}@media(max-width:480px){.timeline{padding-left:2.5rem}.timeline:before{left:1rem}.timeline-icon-container{left:-2.25rem}.time-icon{width:35px;height:35px;font-size:1.2rem;border:2px solid var(--primary)}.timeline-text h3{font-size:1.2rem}.time-badge{font-size:.75rem;padding:.2rem .5rem}.optional-badge{font-size:.65rem;padding:.15rem .5rem}.click-hint{font-size:.75rem}.timeline-description{font-size:.9rem}.timeline-location{font-size:.85rem}.location-info{padding:var(--spacing-md)}.location-info h3{font-size:1.3rem}}.dress-code{margin-top:var(--spacing-xl);padding:var(--spacing-xl);background:linear-gradient(135deg,var(--primary-light) 0%,var(--accent) 100%);border-radius:var(--radius-lg);max-width:800px;margin-left:auto;margin-right:auto}.dress-code h3{color:var(--text-dark);margin-bottom:var(--spacing-sm);font-size:1.8rem;text-align:center}.dresscode-description{font-size:1.1rem;color:var(--text-light);font-style:italic;text-align:center;margin-bottom:var(--spacing-lg);line-height:1.6}.dresscode-details{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.dresscode-column h4{color:var(--text-dark);font-size:1.2rem;margin-bottom:var(--spacing-sm);font-weight:600}.dresscode-column ul{list-style:none;padding:0;margin:0}.dresscode-column ul li{color:var(--text-light);padding:.4rem 0 .4rem 1.5rem;position:relative;line-height:1.5}.dresscode-column ul li:before{content:"✓";position:absolute;left:0;color:var(--primary-dark);font-weight:700}.dresscode-tips{background-color:#ffffff80;padding:var(--spacing-md);border-radius:var(--radius-md);margin-top:var(--spacing-md)}.dresscode-tips h4{color:var(--text-dark);font-size:1.1rem;margin-bottom:var(--spacing-sm);font-weight:600}.dresscode-tips ul{list-style:none;padding:0;margin:0}.dresscode-tips ul li{color:var(--text-light);padding:.4rem 0 .4rem 1.5rem;position:relative;line-height:1.6;font-size:.95rem}.dresscode-tips ul li:before{content:"→";position:absolute;left:0;color:var(--primary-dark)}@media(max-width:768px){.events-grid{grid-template-columns:1fr;gap:var(--spacing-md)}.event-card{padding:var(--spacing-md)}.dresscode-details{grid-template-columns:1fr;gap:var(--spacing-md)}.dress-code{padding:var(--spacing-lg)}.dress-code h3{font-size:1.4rem}}@media(max-width:480px){.dress-code{padding:var(--spacing-md)}.dress-code h3{font-size:1.3rem}.dresscode-description{font-size:1rem}.dresscode-column h4{font-size:1.1rem}.dresscode-column ul li{font-size:.9rem}.dresscode-tips{padding:var(--spacing-sm)}.dresscode-tips h4{font-size:1rem}.dresscode-tips ul li{font-size:.85rem}}.gallery{background-color:var(--bg-light);padding:var(--spacing-xl) var(--spacing-md)}.gallery-subtitle{text-align:center;margin-top:var(--spacing-sm);max-width:600px;margin-left:auto;margin-right:auto;font-style:italic}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-lg)}.gallery-item{position:relative;overflow:hidden;border-radius:var(--radius-md);aspect-ratio:1 / 1;cursor:pointer;transition:transform .3s ease}.gallery-item:hover{transform:scale(1.05)}.gallery-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--primary-light) 0%,var(--accent) 50%,var(--secondary) 100%);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:4rem;color:#fff;opacity:.8}.gallery-note{text-align:center;margin-top:var(--spacing-lg);color:var(--text-muted);font-size:.9rem;font-style:italic}@media(max-width:768px){.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-sm)}.gallery-placeholder span{font-size:2.5rem}}@media(max-width:480px){.gallery{padding:var(--spacing-lg) var(--spacing-sm)}.gallery-subtitle{font-size:.95rem}.gallery-grid{grid-template-columns:1fr;gap:var(--spacing-sm)}.gallery-placeholder{font-size:3rem}.gallery-note{font-size:.85rem}}.claim-modal{position:fixed;inset:0;background-color:#000000d9;z-index:10000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:fadeIn .3s ease-out}.claim-content{position:relative;background-color:var(--bg-white);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}.claim-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;color:var(--text-muted);font-size:2rem;cursor:pointer;padding:.5rem;transition:color .2s ease;line-height:1}.claim-close:hover{color:var(--text-dark)}.claim-content h2{color:var(--text-dark);margin-bottom:var(--spacing-lg);font-size:1.8rem;padding-right:2rem}.claim-gift-info{background-color:var(--bg-light);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);border-left:3px solid var(--primary)}.claim-gift-info h3{color:var(--text-dark);font-size:1.3rem;margin-bottom:.5rem}.claim-gift-info p{color:var(--text-light);line-height:1.6;margin-bottom:.5rem}.claim-price{display:inline-block;color:var(--primary-dark);font-weight:600;font-size:1rem}.contribution-info{background-color:#8b9d831a;padding:var(--spacing-sm);border-radius:var(--radius-sm);margin-top:var(--spacing-sm)}.contribution-info p{margin-bottom:.5rem;font-size:.95rem;line-height:1.5}.contribution-info p:last-child{margin-bottom:0}.contribution-info strong{color:var(--text-dark);font-weight:600}.claim-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:var(--text-dark);font-weight:600;font-size:1rem}.form-group input{padding:.75rem;border:2px solid var(--bg-light);border-radius:var(--radius-md);font-size:1rem;transition:border-color .2s ease;font-family:inherit}.form-group input:focus{outline:none;border-color:var(--primary)}.form-group input:disabled{background-color:var(--bg-light);cursor:not-allowed}.form-group textarea{padding:.75rem;border:2px solid var(--bg-light);border-radius:var(--radius-md);font-size:1rem;transition:border-color .2s ease;font-family:inherit;resize:vertical;min-height:80px}.form-group textarea:focus{outline:none;border-color:var(--primary)}.form-group textarea:disabled{background-color:var(--bg-light);cursor:not-allowed}.calculated-amount{display:block;margin-top:.5rem;color:var(--primary-dark);font-weight:600;font-size:1.1rem}.error-message{background-color:#fee;color:#c33;padding:.75rem;border-radius:var(--radius-sm);font-size:.95rem;border-left:3px solid #c33}.claim-info{background-color:var(--bg-light);padding:var(--spacing-sm);border-radius:var(--radius-sm)}.claim-info p{color:var(--text-light);font-size:.9rem;line-height:1.5;margin:0;font-style:italic}.claim-buttons{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.cancel-btn,.confirm-btn{flex:1;padding:.75rem;border-radius:var(--radius-md);font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease;border:none}.cancel-btn{background-color:var(--bg-light);color:var(--text-dark)}.cancel-btn:hover:not(:disabled){background-color:#ddd}.confirm-btn{background-color:var(--primary);color:#fff}.confirm-btn:hover:not(:disabled){background-color:var(--primary-dark)}.cancel-btn:disabled,.confirm-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.claim-content{padding:var(--spacing-lg)}.claim-content h2{font-size:1.5rem}.claim-buttons{flex-direction:column}}@media(max-width:480px){.claim-modal{padding:var(--spacing-sm)}.claim-content{padding:var(--spacing-md)}.claim-content h2{font-size:1.3rem}.claim-gift-info h3{font-size:1.2rem}.claim-gift-info p{font-size:.9rem}.contribution-info p{font-size:.85rem}.form-group label{font-size:.9rem}.form-group input,.form-group textarea{font-size:.9rem;padding:.6rem}.calculated-amount{font-size:1rem}.cancel-btn,.confirm-btn{font-size:.9rem;padding:.6rem}}.gift-registry{background-color:var(--bg-white);padding:var(--spacing-xl) var(--spacing-md)}.gift-intro{max-width:700px;margin:var(--spacing-md) auto var(--spacing-xl);text-align:center;color:var(--text-light);font-size:1.05rem;line-height:1.6}.gift-filters{display:flex;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);flex-wrap:wrap}.filter-btn{padding:.6rem 1.2rem;border:2px solid var(--primary);background-color:transparent;color:var(--primary);border-radius:var(--radius-md);cursor:pointer;font-weight:600;font-size:.95rem;transition:all .2s ease}.filter-btn:hover{background-color:var(--primary-light);color:#fff}.filter-btn.active{background-color:var(--primary);color:#fff}.gifts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg);max-width:1200px;margin:0 auto}.gift-card{background-color:var(--bg-light);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;border:2px solid transparent}.gift-card.available{border-color:var(--primary-light)}.gift-card.available:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}.gift-card.taken{opacity:.7}.gift-image{width:100%;height:200px;overflow:hidden;background-color:var(--bg-white)}.gift-image img{width:100%;height:100%;object-fit:cover}.gift-content{padding:var(--spacing-md);flex:1}.gift-category{display:inline-block;background-color:var(--accent);color:var(--text-dark);padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;text-transform:uppercase;margin-bottom:var(--spacing-sm)}.gift-card h3{color:var(--text-dark);font-size:1.3rem;margin-bottom:.75rem}.gift-card p{color:var(--text-light);line-height:1.6;margin-bottom:var(--spacing-sm);font-size:.95rem}.gift-price{display:inline-block;color:var(--primary-dark);font-weight:600;font-size:1rem}.gift-progress{margin-top:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid var(--bg-white)}.progress-bar{width:100%;height:8px;background-color:var(--bg-white);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-light));transition:width .3s ease;border-radius:var(--radius-sm)}.progress-text{display:block;font-size:.9rem;color:var(--text-dark);font-weight:600;margin-bottom:.25rem}.contributors-count{font-size:.85rem;color:var(--text-muted);font-style:italic}.gift-actions{padding:var(--spacing-md);padding-top:0}.claim-btn{width:100%;padding:.75rem;background-color:var(--primary);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:1rem;cursor:pointer;transition:background-color .2s ease}.claim-btn:hover{background-color:var(--primary-dark)}.gift-status{text-align:center;padding:.75rem;border-radius:var(--radius-md);font-weight:600;display:flex;align-items:center;justify-content:center;gap:.5rem}.gift-status.taken{background-color:var(--bg-white);color:var(--text-muted);border:2px solid var(--bg-white)}.status-icon{font-size:1.2rem}.loading,.no-gifts{text-align:center;padding:var(--spacing-xl);color:var(--text-muted);font-size:1.1rem}@media(max-width:768px){.gifts-grid{grid-template-columns:1fr}.gift-filters{gap:.5rem}.filter-btn{padding:.5rem 1rem;font-size:.9rem}}@media(max-width:480px){.gift-intro{font-size:1rem}.filter-btn{padding:.4rem .8rem;font-size:.85rem}.gift-card h3{font-size:1.2rem}.gift-card p{font-size:.9rem}.gift-content{padding:var(--spacing-sm)}.gift-category{font-size:.75rem}.progress-text{font-size:.85rem}.contributors-count{font-size:.8rem}}.response{background-color:var(--bg-white);padding:var(--spacing-xl) var(--spacing-md)}.response-subtitle{text-align:center;margin-top:var(--spacing-sm);max-width:600px;margin-left:auto;margin-right:auto;color:var(--text-light)}.response-content{max-width:700px;margin:var(--spacing-lg) auto 0}.response-form{background-color:var(--bg-light);padding:var(--spacing-lg);border-radius:var(--radius-lg)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md)}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-dark);font-weight:500;font-size:.95rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.875rem 1rem;border:2px solid rgba(212,165,116,.2);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:1rem;color:var(--text-dark);background-color:var(--bg-white);transition:border-color .3s ease,box-shadow .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #d4a5741a}.form-group textarea{resize:vertical;min-height:100px}.submit-btn{width:100%;margin-top:var(--spacing-sm);padding:1rem 2rem;font-size:1rem}.response-success{text-align:center;padding:var(--spacing-xl) var(--spacing-md);background-color:var(--bg-light);border-radius:var(--radius-lg);animation:fadeInScale .5s ease-out}.success-icon{width:80px;height:80px;margin:0 auto var(--spacing-md);background-color:var(--primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3rem;animation:scaleIn .5s ease-out}.response-success h3{color:var(--text-dark);margin-bottom:var(--spacing-sm)}.response-success p{color:var(--text-light);font-size:1.1rem}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}@media(max-width:768px){.response-form{padding:var(--spacing-md)}.form-row{grid-template-columns:1fr;gap:0}}@media(max-width:480px){.response{padding:var(--spacing-lg) var(--spacing-sm)}.response-subtitle{font-size:.95rem}.response-form{padding:var(--spacing-sm)}.form-group label{font-size:.9rem}.form-group input,.form-group select,.form-group textarea{font-size:.9rem;padding:.75rem .875rem}.submit-btn{font-size:.9rem;padding:.875rem 1.5rem}.response-success h3{font-size:1.3rem}.response-success p{font-size:1rem}}.faq{background-color:var(--bg-light);padding:var(--spacing-xl) var(--spacing-md)}.faq-list{max-width:800px;margin:var(--spacing-lg) auto 0}.faq-item{background-color:var(--bg-white);margin-bottom:var(--spacing-sm);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .3s ease}.faq-item:hover{box-shadow:var(--shadow-md)}.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:none;border:none;text-align:left;cursor:pointer;font-family:var(--font-body);font-size:1.05rem;font-weight:500;color:var(--text-dark);transition:color .3s ease}.faq-question:hover{color:var(--primary)}.faq-icon{font-size:1.5rem;color:var(--primary);font-weight:300;transition:transform .3s ease}.faq-item.active .faq-icon{transform:rotate(180deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}.faq-item.active .faq-answer{max-height:300px;padding:0 var(--spacing-md) var(--spacing-md)}.faq-answer p{line-height:1.8;color:var(--text-light)}.faq-contact{text-align:center;margin-top:var(--spacing-xl);padding:var(--spacing-lg);background-color:var(--bg-white);border-radius:var(--radius-md);max-width:600px;margin-left:auto;margin-right:auto}.faq-contact p{font-size:1.1rem;color:var(--text-dark);margin-bottom:.5rem;font-weight:500}.faq-contact a{font-size:1.1rem;color:var(--primary);font-weight:500}@media(max-width:768px){.faq-question{font-size:.95rem;padding:var(--spacing-sm)}.faq-answer{padding:0 var(--spacing-sm) var(--spacing-sm)}}@media(max-width:480px){.faq{padding:var(--spacing-lg) var(--spacing-sm)}.faq-question{font-size:.9rem;padding:.75rem}.faq-icon{font-size:1.3rem}.faq-answer p{font-size:.9rem}.faq-contact{padding:var(--spacing-md)}.faq-contact p,.faq-contact a{font-size:1rem}}.footer{background-color:var(--text-dark);color:var(--bg-light);padding:var(--spacing-xl) var(--spacing-md) var(--spacing-md)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.footer-section h3{font-family:var(--font-heading);font-size:1.8rem;color:var(--primary-light);margin-bottom:.5rem;font-weight:400}.footer-section h4{font-size:1.1rem;color:var(--primary-light);margin-bottom:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em}.footer-section p{color:#ffffffb3;margin-bottom:.5rem;font-size:.95rem}.footer-tagline{font-style:italic;margin-top:1rem}.footer-section a{color:#ffffffb3;transition:color .3s ease}.footer-section a:hover{color:var(--primary-light)}.footer-nav{display:flex;flex-direction:column;gap:.5rem}.footer-nav a{font-size:.95rem}.footer-divider{height:1px;background:linear-gradient(to right,transparent,rgba(255,255,255,.2),transparent);margin:var(--spacing-lg) 0}.footer-bottom{text-align:center}.footer-bottom p{color:#ffffff80;font-size:.85rem;margin-bottom:.5rem}.footer-joke{font-style:italic;font-size:.8rem;opacity:.7}@keyframes heartbeat{0%,to{transform:scale(1)}10%,30%{transform:scale(1.2)}20%,40%{transform:scale(1)}}@media(max-width:768px){.footer-content{grid-template-columns:1fr;gap:var(--spacing-md);text-align:center}.footer-nav{align-items:center}}@media(max-width:480px){.footer{padding:var(--spacing-lg) var(--spacing-sm) var(--spacing-sm)}.footer-section h3{font-size:1.5rem}.footer-section h4{font-size:1rem}.footer-section p,.footer-nav a{font-size:.9rem}.footer-bottom p{font-size:.8rem}.footer-joke{font-size:.75rem}}.password-protection{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md)}.password-overlay{position:absolute;inset:0;background:linear-gradient(135deg,var(--accent) 0%,var(--bg-light) 50%,var(--primary-light) 100%);opacity:.95}.password-container{position:relative;z-index:1;background-color:var(--bg-white);padding:var(--spacing-xl) var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:500px;width:100%;animation:fadeInUp .6s ease-out}.password-container.shake{animation:shake .5s ease-in-out}.password-header{text-align:center;margin-bottom:var(--spacing-lg)}.password-header h1{font-family:var(--font-heading);font-size:3rem;font-weight:300;color:var(--text-dark);margin-bottom:1rem}.password-divider{width:60px;height:2px;background-color:var(--primary);margin:1rem auto}.password-date{font-size:.9rem;letter-spacing:.2em;color:var(--primary);font-weight:500;text-transform:uppercase}.password-content{text-align:center}.password-content h2{font-size:1.8rem;color:var(--text-dark);margin-bottom:1rem}.password-content p{color:var(--text-light);margin-bottom:.5rem}.password-subtitle{font-size:.95rem;margin-bottom:var(--spacing-md);font-style:italic}.password-form{margin:var(--spacing-lg) 0}.password-input-group{margin-bottom:var(--spacing-md)}.password-input-group input{width:100%;padding:1rem 1.5rem;border:2px solid rgba(212,165,116,.3);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:1.1rem;text-align:center;color:var(--text-dark);background-color:var(--bg-light);transition:all .3s ease}.password-input-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #d4a5741a;background-color:var(--bg-white)}.password-input-group input.error{border-color:#d84545;animation:shake .3s ease-in-out}.password-error{color:#d84545;font-size:.9rem;margin-top:.5rem;animation:fadeIn .3s ease-out}.password-submit{width:100%;padding:1rem 2rem;font-size:1rem;margin-top:var(--spacing-sm)}.password-help{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid rgba(212,165,116,.2)}.password-help p{font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem}.password-help a{color:var(--primary);font-weight:500;font-size:.95rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-8px)}20%,40%,60%,80%{transform:translate(8px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:768px){.password-container{padding:var(--spacing-lg) var(--spacing-md)}.password-header h1{font-size:2.5rem}.password-content h2{font-size:1.5rem}.password-input-group input{padding:.875rem 1.25rem;font-size:1rem}}@media(max-width:480px){.password-protection{padding:var(--spacing-sm)}.password-container{padding:var(--spacing-md) var(--spacing-sm)}.password-header h1{font-size:2rem}.password-date{font-size:.8rem}.password-content h2{font-size:1.3rem}.password-content p{font-size:.9rem}.password-subtitle{font-size:.85rem}.password-input-group input{padding:.75rem 1rem;font-size:.95rem}.password-submit{padding:.875rem 1.5rem;font-size:.9rem}.password-help p{font-size:.85rem}.password-help a{font-size:.9rem}}.app{width:100%;overflow-x:hidden}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#f0f4ee,#e8efe4)}.loading-spinner{width:50px;height:50px;border:4px solid rgba(139,157,131,.2);border-top-color:#8b9d83;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
