:root{--color-white: #ffffff;--color-cream: #faf8f5;--color-gold: #c9a959;--color-gold-light: #d4bc7a;--color-gold-dark: #a88b3d;--color-blue: #a7c4d4;--color-blue-light: #d4e5ed;--color-blue-dark: #7ba3b8;--color-orange: #e8c4a0;--color-orange-light: #f0d9c4;--color-orange-dark: #d4a574;--color-text: #3a3a3a;--color-text-light: #6b6b6b;--color-text-muted: #999999;--font-serif: "Cormorant Garamond", Georgia, serif;--font-sans: "Montserrat", -apple-system, BlinkMacSystemFont, sans-serif;--section-padding: 100px;--container-width: 1200px;--transition-fast: .2s ease;--transition-medium: .4s ease;--transition-slow: .6s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);font-weight:300;color:var(--color-text);background-color:var(--color-white);line-height:1.6;overflow-x:hidden}img{max-width:100%;height:auto}a{color:var(--color-gold);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-gold-dark)}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:400;line-height:1.2}h1{font-size:clamp(2.5rem,6vw,5rem)}h2{font-size:clamp(2rem,4vw,3.5rem)}h3{font-size:clamp(1.5rem,3vw,2rem)}h4{font-size:clamp(1.25rem,2vw,1.5rem)}p{margin-bottom:1rem}.container{max-width:var(--container-width);margin:0 auto;padding:0 24px}.btn{display:inline-block;padding:14px 32px;font-family:var(--font-sans);font-size:.875rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;border:none;cursor:pointer;transition:all var(--transition-medium);text-align:center}.btn-primary{background:var(--color-gold);color:var(--color-white);border:2px solid var(--color-gold)}.btn-primary:hover{background:transparent;color:var(--color-gold)}.btn-secondary{background:transparent;color:var(--color-gold);border:2px solid var(--color-gold)}.btn-secondary:hover{background:var(--color-gold);color:var(--color-white)}.btn-large{padding:18px 48px;font-size:1rem}.nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:20px 0;transition:all var(--transition-medium)}.nav.scrolled{background:#fffffffa;box-shadow:0 2px 20px #0000001a;padding:12px 0}.nav-container{max-width:var(--container-width);margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center}.nav-logo{font-family:var(--font-serif);font-size:1.75rem;font-weight:400;color:var(--color-white);transition:color var(--transition-medium)}.nav.scrolled .nav-logo{color:var(--color-gold)}.nav-menu{display:flex;list-style:none;gap:32px}.nav-link{font-size:.75rem;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-white);position:relative;padding:8px 0;transition:color var(--transition-medium)}.nav.scrolled .nav-link{color:var(--color-text)}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--color-gold);transition:width var(--transition-medium)}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-link:hover{color:var(--color-gold)}.nav-link--cta{background:var(--color-gold);padding:8px 20px;color:var(--color-white)!important}.nav-link--cta:after{display:none}.nav-link--cta:hover{background:var(--color-gold-dark)}.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:5px}.nav-toggle span{width:25px;height:2px;background:var(--color-white);transition:all var(--transition-fast)}.nav.scrolled .nav-toggle span{background:var(--color-text)}.hero{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-blue-dark) 0%,var(--color-blue) 50%,var(--color-orange-light) 100%);overflow:hidden}.hero:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="1" fill="%23ffffff" opacity="0.1"/></svg>');background-size:50px 50px;animation:twinkle 3s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.5}50%{opacity:1}}.hero-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at center,transparent 0%,rgba(0,0,0,.2) 100%)}.hero-content{position:relative;z-index:1;text-align:center;padding:100px 24px 120px;max-width:900px}.hero-subtitle{font-family:var(--font-sans);font-size:.875rem;font-weight:400;letter-spacing:4px;text-transform:uppercase;color:var(--color-white);margin-bottom:24px;opacity:.9}.hero-title{margin-bottom:24px}.hero-name{display:block;font-family:var(--font-serif);font-size:clamp(3rem,10vw,7rem);font-weight:300;font-style:italic;color:var(--color-white);line-height:1.1;text-shadow:2px 4px 20px rgba(0,0,0,.1)}.hero-ampersand{display:block;font-family:var(--font-serif);font-size:clamp(2rem,6vw,4rem);font-weight:300;color:var(--color-gold);margin:16px 0}.hero-divider{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:24px}.divider-line{width:60px;height:1px;background:var(--color-gold)}.divider-ornament{color:var(--color-gold);font-size:1.25rem}.hero-date{font-family:var(--font-serif);font-size:clamp(1.5rem,4vw,2.5rem);font-weight:400;color:var(--color-white);margin-bottom:8px}.hero-location{font-family:var(--font-sans);font-size:.875rem;font-weight:400;letter-spacing:3px;text-transform:uppercase;color:var(--color-white);opacity:.9;margin-bottom:48px}.countdown{display:flex;justify-content:center;gap:32px;margin-bottom:48px}.countdown-item{text-align:center}.countdown-number{display:block;font-family:var(--font-serif);font-size:clamp(2rem,5vw,3.5rem);font-weight:400;color:var(--color-white);line-height:1}.countdown-label{font-family:var(--font-sans);font-size:.7rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--color-gold)}.scroll-indicator{position:absolute;bottom:30px;left:50%;transform:translate(-50%);text-align:center;color:var(--color-white);opacity:.8;animation:bounce 2s infinite;z-index:10}.scroll-indicator span{display:block;font-size:.7rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}.scroll-arrow{width:20px;height:20px;margin:0 auto;border-right:2px solid var(--color-white);border-bottom:2px solid var(--color-white);transform:rotate(45deg)}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(10px)}60%{transform:translate(-50%) translateY(5px)}}.section{position:relative;z-index:2;padding:var(--section-padding) 0;background-color:var(--color-white)}.section--cream{background-color:var(--color-cream)}.section--accent{background:linear-gradient(135deg,var(--color-blue-light) 0%,var(--color-orange-light) 100%)}.section-header{text-align:center;margin-bottom:60px}.section-title{color:var(--color-text);margin-bottom:20px}.section-divider{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:16px}.section-subtitle{font-family:var(--font-serif);font-size:1.25rem;font-style:italic;color:var(--color-text-light)}.story-timeline{position:relative;max-width:800px;margin:0 auto}.story-timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--color-gold);transform:translate(-50%)}.story-item{display:flex;margin-bottom:60px;position:relative}.story-item:nth-child(odd){flex-direction:row}.story-item:nth-child(2n){flex-direction:row-reverse}.story-item:before{content:"";position:absolute;left:50%;top:20px;width:12px;height:12px;background:var(--color-gold);border-radius:50%;transform:translate(-50%);z-index:1}.story-date{flex:1;text-align:right;padding-right:40px}.story-item:nth-child(2n) .story-date{text-align:left;padding-right:0;padding-left:40px}.story-month{display:block;font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--color-gold)}.story-year{display:block;font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text)}.story-content{flex:1;padding-left:40px;text-align:left}.story-item:nth-child(2n) .story-content{padding-left:0;padding-right:40px;text-align:right}.story-content h3{color:var(--color-text);margin-bottom:12px}.story-content p{color:var(--color-text-light);margin-bottom:0}.party-section{margin-bottom:80px}.party-section:last-child{margin-bottom:0}.party-title{text-align:center;color:var(--color-gold);font-family:var(--font-serif);font-size:1.75rem;font-style:italic;margin-bottom:40px}.party-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:40px;max-width:1000px;margin:0 auto}.party-member{flex:0 0 calc(33.333% - 30px);max-width:250px;text-align:center}.party-photo{width:180px;height:180px;margin:0 auto 24px;border-radius:50%;overflow:hidden;border:3px solid var(--color-gold);padding:4px}.party-photo-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--color-blue-light),var(--color-orange-light));border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:.875rem}.party-name{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text);margin-bottom:8px}.party-role{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--color-gold);margin-bottom:8px}.party-relation{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-light);font-style:italic}.schedule-timeline{max-width:700px;margin:0 auto}.schedule-item{display:flex;margin-bottom:40px;padding-bottom:40px;border-bottom:1px solid rgba(201,169,89,.2)}.schedule-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.schedule-time{flex:0 0 120px;text-align:right;padding-right:32px;border-right:2px solid var(--color-gold)}.schedule-time .time{font-family:var(--font-serif);font-size:1.25rem;color:var(--color-gold)}.schedule-content{padding-left:32px}.schedule-content h3{color:var(--color-text);margin-bottom:8px}.schedule-content p{color:var(--color-text-light);margin-bottom:8px}.schedule-location{font-family:var(--font-sans);font-size:.75rem;font-weight:500;letter-spacing:1px;text-transform:uppercase;color:var(--color-text-muted)}.travel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px;margin-bottom:60px}.travel-card{background:var(--color-white);padding:40px;text-align:center;border-radius:4px;box-shadow:0 4px 20px #0000000d;transition:transform var(--transition-medium),box-shadow var(--transition-medium)}.travel-card:hover{transform:translateY(-5px);box-shadow:0 8px 40px #0000001a}.travel-icon{width:48px;height:48px;margin:0 auto 24px;color:var(--color-gold)}.travel-icon svg{width:100%;height:100%}.travel-card h3{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text);margin-bottom:16px}.travel-name{font-family:var(--font-sans);font-weight:500;color:var(--color-text);margin-bottom:8px!important}.travel-address{color:var(--color-text-light);font-size:.9rem;margin-bottom:16px!important}.travel-note{font-size:.8rem;color:var(--color-gold);font-style:italic;margin-bottom:16px!important}.travel-attractions{background:var(--color-cream);padding:48px;border-radius:4px;text-align:center}.travel-attractions h3{font-family:var(--font-serif);font-size:1.75rem;color:var(--color-text);margin-bottom:32px}.attractions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}.attraction{padding:20px}.attraction h4{font-family:var(--font-serif);font-size:1.25rem;color:var(--color-gold);margin-bottom:8px}.attraction p{color:var(--color-text-light);font-size:.9rem;margin-bottom:0}.registry-message{text-align:center;max-width:600px;margin:0 auto 48px}.registry-message p{font-size:1.1rem;color:var(--color-text-light)}.registry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:32px;max-width:900px;margin:0 auto 60px}.registry-card{display:block;background:var(--color-white);padding:48px 32px;text-align:center;border-radius:4px;box-shadow:0 4px 20px #0000000d;transition:all var(--transition-medium)}.registry-card:hover{transform:translateY(-5px);box-shadow:0 8px 40px #0000001a}.registry-logo{margin-bottom:16px}.registry-logo span{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text)}.registry-card p{font-size:.8rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--color-gold);margin-bottom:0}.registry-honeymoon{text-align:center;background:var(--color-white);padding:48px;border-radius:4px;max-width:600px;margin:0 auto;box-shadow:0 4px 20px #0000000d}.registry-honeymoon h3{font-family:var(--font-serif);font-size:1.75rem;color:var(--color-text);margin-bottom:16px}.registry-honeymoon p{color:var(--color-text-light);margin-bottom:24px}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.gallery-item{position:relative;aspect-ratio:1;overflow:hidden;border-radius:4px;cursor:pointer}.gallery-item--large{grid-column:span 2;grid-row:span 2}.gallery-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--color-blue-light),var(--color-orange-light));display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:.875rem;transition:transform var(--transition-medium)}.gallery-item:hover .gallery-placeholder{transform:scale(1.05)}.rsvp-form{max-width:600px;margin:0 auto;background:var(--color-white);padding:48px;border-radius:4px;box-shadow:0 4px 20px #0000000d}.form-group{margin-bottom:24px}.form-group label{display:block;font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--color-text);margin-bottom:8px}.form-group input[type=text],.form-group input[type=email],.form-group select,.form-group textarea{width:100%;padding:14px 16px;font-family:var(--font-sans);font-size:1rem;font-weight:300;color:var(--color-text);background:var(--color-cream);border:1px solid transparent;border-radius:4px;transition:border-color var(--transition-fast)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-gold)}.form-group textarea{resize:vertical;min-height:100px}.radio-group{display:flex;flex-direction:column;gap:20px}.radio-label{display:flex;align-items:center;cursor:pointer;font-size:1rem;font-weight:300}.radio-label input[type=radio]{display:none}.radio-custom{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px;min-width:24px;min-height:24px;margin-right:16px;border:2px solid var(--color-gold);border-radius:50%;position:relative;transition:all var(--transition-fast);box-sizing:border-box;vertical-align:middle}.radio-custom:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:10px;height:10px;background:var(--color-gold);border-radius:50%;transition:transform var(--transition-fast)}.radio-label input[type=radio]:checked+.radio-custom:after{transform:translate(-50%,-50%) scale(1)}.rsvp-form .btn{width:100%;margin-top:16px}.rsvp-success,.contact-success{text-align:center;padding:48px;background:var(--color-white);border-radius:4px;max-width:600px;margin:0 auto}.success-icon{width:80px;height:80px;margin:0 auto 24px;background:var(--color-gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;color:var(--color-white)}.rsvp-success h3,.contact-success h3{font-family:var(--font-serif);font-size:2rem;color:var(--color-text);margin-bottom:16px}.rsvp-success p,.contact-success p{color:var(--color-text-light);margin-bottom:0}.faq-list{max-width:800px;margin:0 auto}.faq-item{border-bottom:1px solid rgba(201,169,89,.2)}.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;padding:24px 0;background:none;border:none;cursor:pointer;text-align:left;font-family:var(--font-serif);font-size:1.25rem;color:var(--color-text);transition:color var(--transition-fast)}.faq-question:hover{color:var(--color-gold)}.faq-icon{position:relative;width:20px;height:20px;flex-shrink:0;margin-left:20px}.faq-icon:before,.faq-icon:after{content:"";position:absolute;background:var(--color-gold);transition:transform var(--transition-fast)}.faq-icon:before{width:100%;height:2px;top:50%;left:0;transform:translateY(-50%)}.faq-icon:after{width:2px;height:100%;top:0;left:50%;transform:translate(-50%)}.faq-question[aria-expanded=true] .faq-icon:after{transform:translate(-50%) rotate(90deg);opacity:0}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-medium),padding var(--transition-medium)}.faq-answer.open{max-height:300px}.faq-answer p{padding-bottom:24px;color:var(--color-text-light);line-height:1.8}.contact-content{max-width:700px;margin:0 auto}.contact-info{text-align:center;margin-bottom:48px}.contact-info>p:first-child{font-size:1.1rem;color:var(--color-text-light);margin-bottom:24px}.contact-detail{font-size:1rem}.contact-label{font-weight:500;color:var(--color-text)}.contact-detail a{color:var(--color-gold)}.contact-form{background:var(--color-white);padding:48px;border-radius:4px;box-shadow:0 4px 20px #0000000d}.contact-form .btn{width:100%}.footer{background:var(--color-text);padding:60px 0;text-align:center}.footer-content{color:var(--color-white)}.footer-names{font-family:var(--font-serif);font-size:2rem;font-style:italic;margin-bottom:16px}.footer-heart{color:var(--color-gold);margin:0 12px}.footer-date{font-size:.875rem;opacity:.8;margin-bottom:8px}.footer-hashtag{font-size:.875rem;color:var(--color-gold);margin-bottom:0}.animate-fade-up{opacity:0;transform:translateY(30px);animation:fadeUp .8s ease forwards}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.delay-6{animation-delay:.6s}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}.animate-on-scroll{opacity:0;transform:translateY(40px);transition:opacity .6s ease,transform .6s ease}.animate-on-scroll.visible{opacity:1;transform:translateY(0)}.party-grid .animate-on-scroll:nth-child(1){transition-delay:.1s}.party-grid .animate-on-scroll:nth-child(2){transition-delay:.2s}.party-grid .animate-on-scroll:nth-child(3){transition-delay:.3s}.party-grid .animate-on-scroll:nth-child(4){transition-delay:.4s}.party-grid .animate-on-scroll:nth-child(5){transition-delay:.5s}.travel-grid .animate-on-scroll:nth-child(1){transition-delay:.1s}.travel-grid .animate-on-scroll:nth-child(2){transition-delay:.2s}.travel-grid .animate-on-scroll:nth-child(3){transition-delay:.3s}.registry-grid .animate-on-scroll:nth-child(1){transition-delay:.1s}.registry-grid .animate-on-scroll:nth-child(2){transition-delay:.2s}.registry-grid .animate-on-scroll:nth-child(3){transition-delay:.3s}@media (max-width: 1024px){:root{--section-padding: 80px}.nav-menu{gap:20px}.nav-link{font-size:.7rem}}@media (max-width: 768px){:root{--section-padding: 60px}.nav-toggle{display:flex}.nav-menu{position:fixed;top:0;right:-100%;width:80%;max-width:400px;height:100vh;background:var(--color-white);flex-direction:column;justify-content:center;align-items:center;gap:0;padding:60px 40px;transition:right var(--transition-medium);box-shadow:-10px 0 40px #0000001a}.nav-menu.open{right:0}.nav-menu li{width:100%;text-align:center;border-bottom:1px solid var(--color-cream)}.nav-link{display:block;padding:20px;color:var(--color-text)!important;font-size:.9rem}.nav-link--cta{margin-top:20px;width:auto;display:inline-block}.nav-toggle.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.story-timeline:before{left:20px}.story-item{flex-direction:column!important;padding-left:50px}.story-item:before{left:20px;transform:none}.story-date{text-align:left!important;padding:0!important;margin-bottom:12px}.story-content{padding:0!important;text-align:left!important}.countdown{gap:16px}.countdown-number{font-size:1.75rem}.schedule-item{flex-direction:column}.schedule-time{flex:none;text-align:left;padding:0 0 12px;border-right:none;border-bottom:2px solid var(--color-gold);margin-bottom:16px}.schedule-content{padding-left:0}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px}.gallery-item--large{grid-column:span 2;grid-row:span 1;aspect-ratio:16/9}.party-member{flex:0 0 calc(50% - 20px)}.rsvp-form,.contact-form{padding:32px 24px}}@media (max-width: 480px){.hero-name{font-size:2.5rem}.hero-ampersand{font-size:1.5rem;margin:8px 0}.party-member{flex:0 0 100%;max-width:200px}.countdown{flex-wrap:wrap}.countdown-item{flex:0 0 45%}.btn{padding:12px 24px;font-size:.75rem}.btn-large{padding:14px 32px;font-size:.875rem}}
