*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg-main: #FAFAF8;--color-bg-section: #F3F1E9;--color-olive: #A8AE92;--color-olive-dark: #7D8467;--color-text-main: #3E3E3A;--color-text-muted: #8B8B82;--color-accent-gold: #C9A876;--color-white: #FFFFFF;--color-shadow: rgba(0, 0, 0, .08);--font-serif: "Playfair Display", Georgia, serif;--font-serif-alt: "Cormorant Garamond", Georgia, serif;--font-sans: "Montserrat", system-ui, sans-serif}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--color-bg-main);color:var(--color-text-main);line-height:1.7;letter-spacing:.02em;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font-family:inherit}.section-title{font-family:var(--font-serif);font-size:clamp(32px,5vw,52px);font-weight:600;color:var(--color-text-main);margin-bottom:20px}.section-divider{display:flex;align-items:center;justify-content:center;gap:16px}.section-divider span:first-child,.section-divider span:last-child{display:block;width:80px;height:1px;background:var(--color-olive);opacity:.5}.divider-dot{color:var(--color-olive);font-size:14px;flex-shrink:0}.hero{min-height:100vh;background:radial-gradient(ellipse at 30% 60%,#EDE9DC 0%,#F5F3EC 40%,var(--color-bg-main) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;position:relative;overflow:hidden;text-align:center}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 10% 80%,rgba(168,174,146,.12) 0%,transparent 50%),radial-gradient(circle at 90% 15%,rgba(201,168,118,.08) 0%,transparent 50%);pointer-events:none}.hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.hero-pretext{font-family:var(--font-sans);font-size:clamp(10px,2vw,12px);font-weight:400;letter-spacing:.4em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:36px}.hero-names{display:flex;flex-direction:column;align-items:center;gap:0}.hero-name{font-family:var(--font-serif);font-size:clamp(56px,11vw,108px);font-weight:600;color:var(--color-text-main);line-height:1;letter-spacing:-.01em}.hero-amp{font-family:var(--font-serif-alt);font-style:italic;font-size:clamp(30px,5.5vw,56px);color:var(--color-olive);line-height:1.4;margin:2px 0}.hero-divider{display:flex;align-items:center;gap:16px;margin:36px 0 28px;width:100%;max-width:300px}.hero-divider-line{flex:1;height:1px;background:var(--color-accent-gold);opacity:.6}.hero-divider-ornament{color:var(--color-accent-gold);font-size:22px;line-height:1}.hero-date{font-family:var(--font-serif-alt);font-style:italic;font-size:clamp(20px,3.5vw,30px);color:var(--color-text-muted);letter-spacing:.05em;margin-bottom:52px}.hero-button{font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--color-white);background:var(--color-olive-dark);padding:16px 44px;border-radius:999px;transition:background .3s ease}.hero-button:hover{background:#6a7057}.hero-scroll-hint{position:absolute;bottom:32px;left:50%;transform:translate(-50%);font-size:22px;color:var(--color-olive);animation:bounce 2.2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(9px)}}@media (max-width: 480px){.hero-button{padding:14px 34px}}.greeting{background:var(--color-bg-main);padding:100px 20px;text-align:center}.greeting-content{max-width:680px;margin:0 auto}.greeting-address{font-family:var(--font-serif-alt);font-style:italic;font-size:clamp(20px,3vw,26px);color:var(--color-text-muted);margin-bottom:32px}.greeting-title{font-family:var(--font-serif);font-size:clamp(28px,4.5vw,44px);font-weight:600;color:var(--color-text-main);line-height:1.3;margin-bottom:40px}.greeting-title em{font-style:italic;color:var(--color-olive-dark)}.greeting-divider{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:40px}.greeting-divider span:first-child,.greeting-divider span:last-child{display:block;width:80px;height:1px;background:var(--color-olive);opacity:.5}.greeting-ornament{color:var(--color-olive);font-size:14px}.greeting-text{font-size:clamp(15px,2vw,17px);color:var(--color-text-muted);line-height:1.85;margin-bottom:48px}.greeting-signature{font-family:var(--font-serif-alt);font-size:clamp(18px,2.5vw,22px);color:var(--color-text-main);line-height:1.6}.greeting-signature em{font-style:italic;font-size:1.15em}@media (max-width: 480px){.greeting{padding:70px 20px}}.countdown{background:var(--color-bg-section);padding:80px 20px;text-align:center}.countdown-inner{max-width:700px;margin:0 auto}.countdown-label{font-size:12px;font-weight:400;letter-spacing:.32em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:48px}.countdown-grid{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}.countdown-unit{display:flex;flex-direction:column;align-items:center;gap:10px}.countdown-value{font-family:var(--font-serif);font-size:clamp(44px,8vw,72px);font-weight:600;color:var(--color-text-main);line-height:1;background:var(--color-white);border:1px solid rgba(168,174,146,.3);border-radius:14px;padding:20px 22px;min-width:105px;text-align:center;box-shadow:0 4px 20px var(--color-shadow)}.countdown-unit-label{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--color-text-muted)}@media (max-width: 480px){.countdown{padding:60px 16px}.countdown-grid{gap:10px}.countdown-value{font-size:34px;padding:14px 16px;min-width:72px}}.save-the-date{background:var(--color-bg-main);padding:100px 20px;text-align:center}.std-content{max-width:400px;margin:0 auto}.std-eyebrow{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:12px}.std-title{font-family:var(--font-serif);font-size:clamp(32px,5vw,48px);font-weight:600;color:var(--color-text-main);margin-bottom:48px}.std-card{background:var(--color-white);border:1px solid rgba(168,174,146,.3);border-radius:20px;padding:36px 28px;box-shadow:0 8px 40px var(--color-shadow)}.std-month{font-family:var(--font-serif);font-size:18px;font-weight:600;color:var(--color-text-main);margin-bottom:20px;letter-spacing:.04em}.std-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:28px}.std-weekday{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);text-align:center;padding:4px 0 8px}.std-day{font-size:12px;color:var(--color-text-main);text-align:center;padding:5px 2px;border-radius:50%;aspect-ratio:1;display:flex;align-items:center;justify-content:center}.std-day--empty{visibility:hidden}.std-day--wedding{background:var(--color-olive-dark);color:var(--color-white);font-weight:700;box-shadow:0 3px 10px #7d846766}.std-date-display{display:flex;flex-direction:column;align-items:center;gap:4px;padding-top:24px;border-top:1px solid rgba(168,174,146,.3)}.std-date-number{font-family:var(--font-serif);font-size:54px;font-weight:600;color:var(--color-olive-dark);line-height:1}.std-date-text{font-family:var(--font-serif-alt);font-style:italic;font-size:17px;color:var(--color-text-muted)}@media (max-width: 480px){.save-the-date{padding:70px 16px}.std-card{padding:28px 18px}}.location{background:var(--color-bg-section);padding:100px 20px}.location-header{text-align:center;margin-bottom:60px}.location-cards{display:flex;gap:28px;justify-content:center;max-width:860px;margin:0 auto;flex-wrap:wrap}.location-cards--single{max-width:480px}.location-card{background:var(--color-white);border:1px solid rgba(168,174,146,.25);border-radius:20px;padding:48px 36px;flex:1;min-width:280px;max-width:390px;text-align:center;box-shadow:0 8px 40px var(--color-shadow);display:flex;flex-direction:column;align-items:center;gap:10px}.location-type{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--color-olive-dark);font-weight:500;margin-bottom:2px}.location-venue{font-family:var(--font-serif);font-size:clamp(20px,3vw,26px);font-weight:600;color:var(--color-text-main);line-height:1.3}.location-time{font-family:var(--font-serif-alt);font-style:italic;font-size:22px;color:var(--color-accent-gold);font-weight:600}.location-address{font-size:14px;color:var(--color-text-muted);line-height:1.6}.location-maps-btn{display:inline-block;margin-top:14px;padding:11px 26px;border:1.5px solid var(--color-olive-dark);border-radius:999px;font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--color-olive-dark);font-weight:500;transition:all .3s ease}.location-maps-btn:hover{background:var(--color-olive-dark);color:var(--color-white)}@media (max-width: 480px){.location{padding:70px 16px}.location-card{padding:36px 24px}}.timeline{background:var(--color-bg-main);padding:100px 20px}.timeline-header{text-align:center;margin-bottom:60px}.timeline-list{max-width:560px;margin:0 auto;display:flex;flex-direction:column}.timeline-item{display:grid;grid-template-columns:72px 36px 1fr;align-items:flex-start}.timeline-time{font-family:var(--font-serif-alt);font-style:italic;font-size:18px;font-weight:600;color:var(--color-accent-gold);text-align:right;padding-right:14px;padding-top:1px}.timeline-connector{display:flex;flex-direction:column;align-items:center}.timeline-dot{width:11px;height:11px;border-radius:50%;background:var(--color-olive-dark);border:3px solid var(--color-bg-main);box-shadow:0 0 0 2px var(--color-olive-dark);flex-shrink:0;margin-top:4px}.timeline-line{width:1px;flex:1;min-height:44px;background:#a8ae9266;margin:5px 0}.timeline-event{font-size:15px;color:var(--color-text-main);padding-left:14px;padding-bottom:28px;line-height:1.5}@media (max-width: 480px){.timeline{padding:70px 16px}.timeline-item{grid-template-columns:58px 28px 1fr}.timeline-time{font-size:15px}.timeline-event{font-size:14px}}.dresscode{background:var(--color-bg-section);padding:80px 20px;text-align:center}.dresscode-content{max-width:700px;margin:0 auto}.dresscode-title{font-family:Playfair Display,serif;font-size:clamp(36px,5vw,56px);font-weight:600;color:var(--color-text-main);margin-bottom:20px}.dresscode-text{font-family:Cormorant Garamond,serif;font-style:italic;font-size:clamp(17px,2.5vw,20px);color:var(--color-text-muted);max-width:600px;margin:0 auto 50px;line-height:1.7}.dresscode-palette{display:flex;flex-wrap:wrap;justify-content:center;gap:30px;margin-bottom:36px}.fabric-circle{width:100px;height:100px;border-radius:50%;overflow:hidden;border:5px solid var(--color-white);box-shadow:0 6px 16px var(--color-shadow);flex-shrink:0}.fabric-circle img{width:100%;height:100%;object-fit:cover}.dresscode-hint{font-size:13px;letter-spacing:.05em;color:var(--color-text-muted);opacity:.8}@media (max-width: 480px){.dresscode{padding:50px 16px}.dresscode-palette{gap:14px}.fabric-circle{width:65px;height:65px;border-width:4px}}.tips{background:var(--color-bg-main);padding:100px 20px}.tips-content{max-width:680px;margin:0 auto}.tips-list{list-style:none;display:flex;flex-direction:column;gap:14px}.tips-item{display:flex;gap:16px;align-items:flex-start;font-size:clamp(14px,2vw,16px);color:var(--color-text-main);line-height:1.7;background:var(--color-white);border:1px solid rgba(168,174,146,.2);border-radius:14px;padding:20px 24px;box-shadow:0 4px 16px var(--color-shadow)}.tips-icon{color:var(--color-olive);font-size:11px;margin-top:5px;flex-shrink:0}@media (max-width: 480px){.tips{padding:70px 16px}.tips-item{padding:16px 18px}}.transfer{background:var(--color-bg-main);padding:100px 20px;text-align:center}.transfer-content{max-width:680px;margin:0 auto}.transfer-intro{font-size:clamp(14px,2vw,16px);color:var(--color-text-muted);margin-bottom:32px;line-height:1.7}.transfer-list{display:flex;flex-direction:column;gap:14px;text-align:left}.transfer-item{display:flex;gap:24px;align-items:flex-start;background:var(--color-white);border:1px solid rgba(168,174,146,.2);border-radius:16px;padding:22px 28px;box-shadow:0 4px 16px var(--color-shadow)}.transfer-time{font-family:var(--font-serif-alt);font-style:italic;font-size:22px;font-weight:600;color:var(--color-accent-gold);min-width:58px;flex-shrink:0;padding-top:2px}.transfer-info{display:flex;flex-direction:column;gap:6px}.transfer-direction{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--color-olive-dark);font-weight:500}.transfer-route{font-size:14px;color:var(--color-text-main);line-height:1.6;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.transfer-arrow{color:var(--color-olive);font-size:15px;flex-shrink:0}@media (max-width: 480px){.transfer{padding:70px 16px}.transfer-item{flex-direction:column;gap:10px;padding:18px 20px}}.faq{background:var(--color-bg-section);padding:100px 20px}.faq-content{max-width:680px;margin:0 auto}.faq-list{display:flex;flex-direction:column;gap:10px}.faq-item{background:var(--color-white);border:1px solid rgba(168,174,146,.25);border-radius:14px;overflow:hidden;box-shadow:0 4px 16px var(--color-shadow)}.faq-item--open{border-color:#a8ae9280}.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;padding:22px 28px;gap:16px;font-size:clamp(14px,2vw,16px);font-weight:500;color:var(--color-text-main);text-align:left;transition:background .2s}.faq-question:hover{background:#a8ae920f}.faq-icon{color:var(--color-olive-dark);font-size:24px;font-weight:300;flex-shrink:0;line-height:1}.faq-answer{overflow:hidden}.faq-answer p{padding:0 28px 22px;font-size:clamp(13px,2vw,15px);color:var(--color-text-muted);line-height:1.75}@media (max-width: 480px){.faq{padding:70px 16px}.faq-question{padding:18px 20px}.faq-answer p{padding:0 20px 18px}}.rsvp{background:var(--color-bg-main);padding:100px 20px;text-align:center}.rsvp-content{max-width:560px;margin:0 auto}.rsvp-title{font-family:var(--font-serif);font-size:clamp(32px,5vw,48px);font-weight:600;color:var(--color-text-main);margin-bottom:24px}.rsvp-divider{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:48px}.rsvp-divider span:first-child,.rsvp-divider span:last-child{display:block;width:80px;height:1px;background:var(--color-olive);opacity:.5}.rsvp-divider span:nth-child(2){color:var(--color-olive);font-size:14px}.rsvp-general-text{font-family:var(--font-serif-alt);font-style:italic;font-size:clamp(16px,2.5vw,19px);color:var(--color-text-muted);line-height:1.8}.rsvp-loading{display:flex;justify-content:center;padding:48px}.rsvp-spinner{width:34px;height:34px;border:3px solid rgba(168,174,146,.3);border-top-color:var(--color-olive-dark);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.rsvp-confirmed{display:flex;flex-direction:column;align-items:center;gap:14px;background:var(--color-white);border:1px solid rgba(168,174,146,.3);border-radius:20px;padding:48px 40px;box-shadow:0 8px 40px var(--color-shadow)}.rsvp-confirmed-icon{color:var(--color-olive-dark);font-size:26px}.rsvp-confirmed-text{font-family:var(--font-serif);font-size:clamp(18px,3vw,22px);font-weight:600;color:var(--color-text-main);line-height:1.4}.rsvp-confirmed-sub{font-family:var(--font-serif-alt);font-style:italic;font-size:clamp(14px,2vw,16px);color:var(--color-text-muted)}.rsvp-form{display:flex;flex-direction:column;align-items:center;gap:32px;background:var(--color-white);border:1px solid rgba(168,174,146,.25);border-radius:20px;padding:48px 40px;box-shadow:0 8px 40px var(--color-shadow)}.rsvp-form-text{font-family:var(--font-serif-alt);font-style:italic;font-size:clamp(16px,2.5vw,19px);color:var(--color-text-muted);line-height:1.6}.rsvp-checkbox-label{display:flex;align-items:center;gap:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.rsvp-checkbox{display:none}.rsvp-checkbox-custom{width:22px;height:22px;border:2px solid var(--color-olive);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.rsvp-checkbox:checked+.rsvp-checkbox-custom{background:var(--color-olive-dark);border-color:var(--color-olive-dark)}.rsvp-checkbox:checked+.rsvp-checkbox-custom:after{content:"✓";color:var(--color-white);font-size:13px;font-weight:700}.rsvp-checkbox-text{font-size:clamp(14px,2vw,16px);color:var(--color-text-main)}.rsvp-submit-btn{padding:14px 40px;border-radius:999px;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;background:#a8ae9240;color:var(--color-text-muted);transition:all .3s ease;cursor:not-allowed}.rsvp-submit-btn--active{background:var(--color-olive-dark);color:var(--color-white);cursor:pointer}.rsvp-submit-btn--active:hover{background:#6a7057}.rsvp-submit-btn:disabled{opacity:.7}@media (max-width: 480px){.rsvp{padding:70px 16px}.rsvp-form,.rsvp-confirmed{padding:36px 24px}}.footer{background:var(--color-bg-section);padding:80px 20px;text-align:center}.footer-content{max-width:480px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:18px}.footer-divider{display:flex;align-items:center;gap:16px;width:100%;max-width:220px;margin-bottom:8px}.footer-divider span:first-child,.footer-divider span:last-child{display:block;flex:1;height:1px;background:var(--color-olive);opacity:.4}.footer-divider span:nth-child(2){color:var(--color-olive);font-size:14px}.footer-names{font-family:var(--font-serif);font-size:clamp(28px,5vw,44px);font-weight:600;color:var(--color-text-main);line-height:1.2}.footer-names em{font-style:italic;color:var(--color-olive);font-family:var(--font-serif-alt)}.footer-date{font-family:var(--font-serif-alt);font-style:italic;font-size:clamp(16px,2.5vw,20px);color:var(--color-text-muted)}.footer-tagline{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--color-text-muted);opacity:.7}@media (max-width: 480px){.footer{padding:60px 16px}}
