:root{--color-primary: #1b2f29;--color-secondary: #c9a263;--color-background: #faf6f0;--color-text: #2f2f2f;--color-text-light: #6a6a6a;--font-serif: "Playfair Display", serif;--font-sans: "Inter", sans-serif;--transition-smooth: all .4s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-background);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:400;color:var(--color-primary);margin-bottom:1rem}a{color:var(--color-secondary);text-decoration:none;transition:var(--transition-smooth)}a:hover{opacity:.8}button,.btn{font-family:var(--font-sans);background-color:var(--color-primary);color:#fff;border:none;padding:.75rem 2rem;font-size:1rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:var(--transition-smooth);border-radius:2px}button:hover,.btn:hover{background-color:var(--color-secondary);color:#fff}.section-padding{padding:5rem 1.5rem}@media(min-width:768px){.section-padding{padding:8rem 2rem}}.container{max-width:1200px;margin:0 auto}.text-center{text-align:center}.fade-in{opacity:0;transform:translateY(20px)}.visible{opacity:1;transform:translateY(0);transition:opacity .8s ease-out,transform .8s ease-out}.hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden}.hero-background{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat;z-index:-2;animation:zoomInOut 20s infinite alternate linear}@keyframes zoomInOut{0%{transform:scale(1)}to{transform:scale(1.1)}}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#1b2f2966;z-index:-1}.hero-content{padding:0 1rem}.hero-subtitle{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:4px;font-size:.9rem;display:block;margin-bottom:1.5rem}.hero-title{font-size:4rem;color:#fff;margin-bottom:1.5rem;line-height:1.1;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.hero-date{display:flex;align-items:center;justify-content:center;gap:1rem;font-size:1.2rem;text-transform:uppercase;letter-spacing:2px}.hero-date-day{font-size:2.5rem;font-family:var(--font-serif);color:var(--color-secondary)}@media(min-width:768px){.hero-title{font-size:6rem}}.story{background-color:var(--color-background)}.story-container{max-width:800px}.section-title{font-size:2.5rem;margin-bottom:1.5rem}.divider{width:60px;height:2px;background-color:var(--color-secondary);margin:0 auto 2rem}.story-text{font-size:1.1rem;line-height:1.8;color:var(--color-text-light);margin-bottom:2rem}.story-signature{font-family:var(--font-serif);font-size:1.8rem;color:var(--color-primary);font-style:italic}.gallery{background-color:#fff}.gallery-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:1.5rem;margin-top:3rem}@media(min-width:600px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:992px){.gallery-grid{grid-template-columns:repeat(4,1fr)}}.gallery-item{position:relative;overflow:hidden;border-radius:4px;aspect-ratio:4 / 5;cursor:pointer}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.gallery-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#c9a26333;opacity:0;transition:opacity .4s ease}.gallery-item:hover img{transform:scale(1.05)}.gallery-item:hover .gallery-overlay{opacity:1}.details{background-color:var(--color-background)}.details-grid{display:grid;grid-template-columns:1fr;gap:2rem;margin-top:3rem}@media(min-width:768px){.details-grid{grid-template-columns:repeat(3,1fr)}}.details-card{background-color:#fff;padding:4rem 2rem;text-align:center;border-radius:8px;box-shadow:0 10px 30px #0000000d;transition:transform .3s ease;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.details-card:hover{transform:translateY(-5px)}.details-icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;background-color:#c9a2631a;border-radius:50%;margin-bottom:1.5rem;color:var(--color-secondary)}.details-icon{width:28px;height:28px}.details-card h3{font-size:1.8rem;margin-bottom:1rem}.details-time{font-family:var(--font-serif);font-size:1.2rem;color:var(--color-secondary);margin-bottom:.5rem}.details-location{font-weight:500;margin-bottom:.25rem}.details-address{color:var(--color-text-light);font-size:.95rem;margin-bottom:1rem}.btn-link{display:inline-block;font-size:.9rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--color-secondary);padding-bottom:2px;margin-top:1rem}.details-info-section{margin-bottom:1.5rem}.details-info-section:last-child{margin-bottom:0}.details-info-section h4{font-family:var(--font-sans);font-size:.9rem;text-transform:uppercase;letter-spacing:1px;color:var(--color-primary);margin-bottom:.5rem}.details-info-section p{color:var(--color-text-light);font-size:.95rem;line-height:1.5}.rsvp{background-color:#fff;padding-bottom:8rem}.rsvp-box{background-color:var(--color-primary);color:#fff;padding:4rem 2rem;border-radius:8px;box-shadow:0 20px 40px #1b2f2933;max-width:800px;margin:0 auto;position:relative;overflow:hidden}.rsvp-box:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(201,162,99,.1) 0%,transparent 60%);z-index:0}.rsvp-box>*{position:relative;z-index:1}.rsvp-divider{background-color:var(--color-secondary)}.rsvp-text{font-size:1.2rem;line-height:1.8;margin-bottom:2.5rem;color:#ffffffe6}.rsvp-deadline{font-weight:600;color:var(--color-secondary)}.rsvp-btn{background-color:var(--color-secondary);color:var(--color-primary);font-weight:600;padding:1rem 3rem;border-radius:40px;font-size:1.1rem;box-shadow:0 4px 15px #c9a2634d;display:inline-block}.rsvp-btn:hover{background-color:#d8b273;color:var(--color-primary);box-shadow:0 6px 20px #c9a26366}.rsvp-page-container{min-height:100vh;background-color:var(--color-background);padding:4rem 1.5rem}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-primary);font-weight:500;margin-bottom:2rem;transition:var(--transition-smooth)}.back-link:hover{color:var(--color-secondary)}.rsvp-form-wrapper{max-width:600px;margin:0 auto;background-color:#fff;border-radius:8px;box-shadow:0 10px 40px #00000014;overflow:hidden}.rsvp-header{background-color:var(--color-primary);color:#fff;padding:3rem 2rem;text-align:center}.rsvp-header h2{color:#fff;margin-bottom:.5rem;font-size:2.5rem}.deadline-text{color:var(--color-secondary);font-weight:500}.rsvp-form{padding:3rem 2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}.form-group input[type=text],.form-group input[type=email],.form-group select,.form-group textarea{width:100%;padding:.8rem 1rem;border:1px solid #ddd;border-radius:4px;font-family:var(--font-sans);font-size:1rem;transition:border-color .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-secondary)}.radio-group{display:flex;flex-direction:column;gap:.8rem;margin-top:.5rem}@media(min-width:480px){.radio-group{flex-direction:row;gap:2rem}}.radio-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400!important}.radio-label input[type=radio]{accent-color:var(--color-secondary);width:1.2rem;height:1.2rem}.attending-details{overflow:hidden}.submit-btn{width:100%;margin-top:1rem;padding:1rem}.submit-btn:disabled{background-color:#ccc;cursor:not-allowed}.error-message{background-color:#fee2e2;color:#b91c1c;padding:1rem;margin:2rem 2rem 0;border-radius:4px;text-align:center}.success-container{display:flex;align-items:center;justify-content:center}.success-message{background-color:#fff;padding:4rem 2rem;border-radius:8px;box-shadow:0 10px 40px #00000014;text-align:center;max-width:500px;width:100%}.success-icon{color:var(--color-secondary);margin-bottom:1.5rem}.success-message h2{font-size:2.5rem;margin-bottom:1rem}.success-message p{color:var(--color-text-light);margin-bottom:2rem;font-size:1.1rem}.back-home-btn{display:inline-block}
