*{margin:0;padding:0;box-sizing:border-box}:root{--sage: #6b7a5e;--sage-dark: #444737;--cream: #eee6db;--gold: #c4a96a;--text-light: #f5f0ea;--text-dark: #3a3a3a;--font-script: "Cormorant Garamond", serif;--font-body: "Montserrat", sans-serif}body{margin:0;font-family:var(--font-body);color:var(--text-dark);background-color:var(--cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}html{scroll-behavior:smooth;overflow-x:hidden}.rsvp-inline{background:url(/paper-texture.jpg) center repeat;background-color:var(--cream);display:flex;justify-content:center;padding:4rem 2rem}.rsvp-page-content{text-align:center;max-width:420px;width:100%}.rsvp-page-title{font-family:var(--font-script);font-style:italic;font-size:3rem;font-weight:300;color:var(--text-dark);margin-bottom:.5rem}.rsvp-guest-name{font-family:var(--font-script);font-style:italic;font-size:1.4rem;color:var(--sage);margin-bottom:2rem}.rsvp-details{margin-bottom:2.5rem;padding:1.5rem 2rem;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:#fff}.rsvp-details p{font-family:var(--font-body);font-size:.9rem;color:var(--text-dark);margin:.4rem 0;line-height:1.6}.rsvp-details a{color:var(--sage);text-decoration:underline;text-underline-offset:2px}.rsvp-prompt{font-family:var(--font-script);font-style:italic;font-size:1.3rem;color:var(--text-dark);margin-bottom:1.2rem}.rsvp-form{display:flex;flex-direction:column;gap:.8rem}.rsvp-guest-card{border:1px solid rgba(0,0,0,.1);border-radius:8px;background:#fff;padding:1.2rem}.rsvp-guest-card-name{font-family:var(--font-script);font-style:italic;font-size:1.3rem;font-weight:400;color:var(--text-dark);margin-bottom:.6rem}.rsvp-child-tag{font-family:var(--font-body);font-style:normal;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;background:var(--sage);color:#fff;padding:.15rem .5rem;border-radius:4px;margin-left:.5rem;vertical-align:middle}.rsvp-meal-options{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.8rem}.rsvp-card-options{display:flex;flex-direction:column;gap:.5rem}.rsvp-option{display:flex;align-items:center;gap:.8rem;padding:1rem 1.2rem;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:#fff;cursor:pointer;transition:border-color .2s,background-color .2s;font-family:var(--font-body);font-size:.9rem;color:var(--text-dark)}.rsvp-option:hover{border-color:var(--sage)}.rsvp-option.selected{border-color:var(--sage);background-color:#6b7a5e14}.rsvp-option input{accent-color:var(--sage)}.rsvp-dietary{text-align:left;margin-top:1rem}.rsvp-message{text-align:left;margin-top:1.5rem}.rsvp-saved-message{text-align:left;margin-top:1.2rem;padding:1rem;background:#00000008;border-radius:8px}.rsvp-saved-message p{font-family:var(--font-body);font-size:.85rem;color:var(--text-dark);margin:0}.rsvp-saved-message p:first-child{margin-bottom:.4rem}.rsvp-dietary-label{display:block;font-family:var(--font-body);font-size:.85rem;color:var(--text-dark);margin-bottom:.5rem}.rsvp-dietary-field{width:100%;padding:.8rem 1rem;font-family:var(--font-body);font-size:.9rem;border:1px solid rgba(0,0,0,.15);border-radius:8px;background:#fff;outline:none;resize:vertical;transition:border-color .2s}.rsvp-dietary-field:focus{border-color:var(--sage)}.rsvp-error{font-family:var(--font-body);font-size:.85rem;color:#c44;margin:0}.rsvp-submit{margin-top:.8rem;padding:.9rem;background-color:var(--sage);color:#fff;border:none;border-radius:8px;font-family:var(--font-body);font-size:.9rem;letter-spacing:.08em;cursor:pointer;transition:background-color .2s,opacity .2s}.rsvp-submit:hover{background-color:var(--sage-dark)}.rsvp-submit:disabled{opacity:.4;cursor:not-allowed}.rsvp-confirmation{padding:2rem;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:#fff}.rsvp-confirmation p{font-family:var(--font-body);font-size:.95rem;color:var(--text-dark);margin:.3rem 0}.rsvp-confirmation p:first-child{font-family:var(--font-script);font-style:italic;font-size:1.5rem;margin-bottom:.5rem}.rsvp-summary{margin-top:1.5rem;display:flex;flex-direction:column;gap:.8rem}.rsvp-summary-item{display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap}.rsvp-summary-name{font-weight:500;font-size:.9rem}.rsvp-summary-status{font-size:.8rem;font-weight:500;letter-spacing:.05em}.rsvp-summary-status.yes{color:var(--sage)}.rsvp-summary-status.no{color:#c44}.rsvp-summary-dietary{font-size:.8rem;color:#888}.rsvp-calendar-btn{margin-top:1.5rem;padding:.6rem 1.5rem;background:var(--sage);border:1px solid var(--sage);color:#fff;border-radius:8px;font-family:var(--font-body);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.rsvp-calendar-btn:hover{background:var(--sage-dark);border-color:var(--sage-dark)}.rsvp-edit-btn{margin-top:.8rem;padding:.6rem 1.5rem;background:none;border:1px solid var(--sage);color:var(--sage);border-radius:8px;font-family:var(--font-body);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.rsvp-edit-btn:hover{background:var(--sage);color:#fff}.guest-gate{height:100svh;display:flex;align-items:center;justify-content:center;background-color:var(--cream);padding:2rem;text-align:center}.guest-gate p{font-family:var(--font-script);font-style:italic;font-size:1.4rem;color:var(--text-dark);max-width:400px}.floating-rsvp{position:fixed;top:1.5rem;right:1.5rem;z-index:100;padding:.6rem 1.4rem;background-color:var(--sage);color:#fff;border:none;border-radius:4px;font-family:var(--font-body);font-size:.75rem;letter-spacing:.15em;cursor:pointer;transition:background-color .3s,color .3s,opacity .3s;opacity:.9}.floating-rsvp:hover{opacity:1}.floating-rsvp.fab-default{background-color:transparent;color:#fff}.floating-rsvp.fab-on-sage{background-color:var(--cream);color:var(--sage-dark)}.floating-rsvp.fab-on-dark{background-color:var(--sage);color:#fff}.floating-rsvp.fab-on-cream{background-color:var(--sage-dark);color:#fff}.floating-rsvp.fab-hidden{opacity:0;pointer-events:none}.hero{position:relative;width:100%;height:100svh;min-height:600px;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:0;transition:opacity 1s ease}.hero-bg.loaded{opacity:1}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background-color:var(--sage-dark);display:flex;align-items:center;justify-content:center;transition:opacity .8s ease}.loading-screen.hide{opacity:0;pointer-events:none}.loading-content{text-align:center;animation:fadeUp 1s ease both}.loading-heart{width:40px;height:38px;will-change:transform;transform:translateZ(0)}.loading-line{width:40px;height:1px;background:#fff6;margin:1.5rem auto 0;animation:breathe 1.8s ease-in-out infinite}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{0%,to{width:40px;opacity:.3}50%{width:70px;opacity:.8}}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1}.hero-content{position:relative;z-index:2;text-align:center;color:#fff;padding:2rem}.hero-subtitle{font-family:var(--font-script);font-style:italic;font-size:1.6rem;font-weight:300;letter-spacing:.05em;margin-bottom:.5rem}.hero-names{font-family:var(--font-script);font-style:italic;font-size:clamp(3rem,8vw,5.5rem);font-weight:300;letter-spacing:.02em;line-height:1.1;margin-bottom:2rem}.hero-names .ampersand{font-size:.7em;margin:0 .15em}.hero-bottom{position:absolute;bottom:0;left:0;right:0;z-index:2;display:flex;justify-content:space-between;padding:1.5rem 3rem;color:#fff;font-family:var(--font-body);font-size:1rem;letter-spacing:.2em;text-transform:uppercase;font-weight:400;background:linear-gradient(transparent,#6b7a5e80)}.invitation{background:var(--sage) url(/paper-texture.jpg) center repeat;-webkit-background-blend-mode:multiply;background-blend-mode:multiply;color:var(--text-light);padding:5rem 2rem;text-align:center;position:relative;overflow:hidden}.invitation-flowers{position:absolute;bottom:-130px;right:-40px;width:350px;height:auto;opacity:.7;pointer-events:none;filter:brightness(.7)}.invitation-content{max-width:700px;margin:0 auto;position:relative;z-index:1}.invitation h2{font-family:var(--font-script);font-style:italic;font-size:2.5rem;font-weight:400;margin-bottom:2rem}.invitation p{font-family:var(--font-body);font-size:.95rem;line-height:1.8;font-weight:300;margin-bottom:1.5rem;opacity:.95}.invitation .signature{font-family:var(--font-script);font-style:italic;font-size:1.8rem;font-weight:400;margin-top:1rem}.invitation .divider{width:80px;height:1px;background:#ffffff4d;margin:2rem auto}@media (max-width: 768px){.invitation-flowers{width:220px;bottom:-80px}}.floral-band{position:relative;z-index:10;pointer-events:none;height:0;overflow:visible}.floral-band .floral{position:absolute;width:65vw;height:65vw;background:url(/flower.png) no-repeat center / contain;pointer-events:none}.floral-band-left .floral{top:-20vw;left:-45vw}.floral-visible.floral-band-left .floral{transform:scaleY(-1) rotate(0);opacity:1}.floral-band-right .floral{top:-32.5vw;right:-45vw}.floral-visible.floral-band-right .floral{transform:scaleX(-1) rotate(0);opacity:1}@media (max-width: 768px){.floral-band .floral{width:80vw;height:80vw}.floral-band-left .floral{top:-25vw;left:-55vw}.floral-band-right .floral{top:-40vw;right:-55vw}}.countdown-section{background-color:var(--sage-dark);color:var(--text-light);padding:4rem 2rem;text-align:center;position:relative;overflow:hidden}.countdown-title{font-family:var(--font-script);font-style:italic;font-size:2.2rem;font-weight:400;margin-bottom:2rem}.countdown-timer{display:flex;justify-content:center;gap:2rem;margin-bottom:1rem}.countdown-item{text-align:center}.countdown-number{font-family:var(--font-body);font-size:clamp(2.5rem,6vw,4rem);font-weight:300;letter-spacing:.05em;line-height:1}.countdown-separator{font-family:var(--font-body);font-size:clamp(2.5rem,6vw,4rem);font-weight:200;opacity:.5;line-height:1}.countdown-label{font-family:var(--font-body);font-size:.6rem;text-transform:uppercase;letter-spacing:.25em;margin-top:.5rem;opacity:.7}.rsvp-section{background-color:var(--cream);padding:13rem 2rem 8rem;display:flex;flex-direction:column;align-items:center;gap:0}.rsvp-btn-wrapper{margin-top:-95px;z-index:10}.envelope-wrapper{height:260px;width:380px;background-color:#6b7a5e;position:relative;display:flex;justify-content:center;z-index:0;border-radius:4px;box-shadow:0 8px 30px #00000026;scale:min(1,calc((100vw - 4rem) / 380))}.lid{position:absolute;height:100%;width:100%;top:0;left:0;border-right:190px solid transparent;border-bottom:130px solid transparent;border-left:190px solid transparent;transform-origin:top;transition:transform .25s linear}.lid.one{border-top:130px solid #7a8a6e;transform:rotateX(0);z-index:3;transition-delay:.75s}.lid.two{border-top:130px solid #5e6e50;transform:rotateX(90deg);z-index:1;transition-delay:.5s}.envelope{position:absolute;height:100%;width:100%;top:0;left:0;border-top:130px solid transparent;border-right:190px solid #7a8a6e;border-bottom:130px solid #7a8a6e;border-left:190px solid #6b7a5e;z-index:3}.letter{position:absolute;top:0;width:80%;height:100%;background:url(/paper-texture.jpg) center / 300px repeat;background-color:#fff;background-blend-mode:soft-light;border-radius:4px;z-index:2;transition:.5s;transition-delay:0s;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem}.letter-label{font-family:var(--font-script);font-size:1.8rem;font-weight:400;color:var(--text-dark);margin:0}.letter-date{font-family:var(--font-script);font-style:italic;font-size:3.2rem;font-weight:400;color:var(--sage-dark);margin:0}.letter-date sup{font-size:.4em;vertical-align:super;font-style:italic}.envelope-wrapper.open .lid.one{transform:rotateX(90deg);transition-delay:0s}.envelope-wrapper.open .lid.two{transform:rotateX(180deg);transition-delay:.25s}.envelope-wrapper.open .letter{transform:translateY(-120px);transition-delay:.5s}.rsvp-btn{display:inline-block;padding:.9rem 3.5rem;background-color:#444737d9;color:#fff;border:1.5px solid var(--gold);font-family:var(--font-body);font-size:.85rem;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;transition:background-color .3s;text-decoration:none}.rsvp-btn:hover{background-color:#444737}@media (max-width: 768px){.envelope-wrapper{transform:scale(.75)}.rsvp-btn-wrapper{margin-top:-115px}.rsvp-section{padding:9rem 2rem 6rem}}.floral-decoration{position:absolute;pointer-events:none}.floral-decoration svg{width:100%;height:100%}.love-story{background:var(--sage-dark) url(/paper-texture.jpg) center repeat;-webkit-background-blend-mode:multiply;background-blend-mode:multiply;color:var(--text-light);padding:5rem 2rem;text-align:center}.love-story h2{font-family:var(--font-script);font-style:italic;font-size:2.8rem;font-weight:300;margin-bottom:2rem}.love-story-content{max-width:650px;margin:0 auto}.love-story-content p{font-family:var(--font-body);font-size:.95rem;line-height:1.8;font-weight:300;opacity:.9;margin-bottom:1.5rem}.love-story-content p:last-child{margin-bottom:0}.memory-lane{background:url(/paper-texture.jpg) center repeat;background-color:var(--cream);background-blend-mode:normal;padding:4rem 2rem 5rem;text-align:center}.memory-lane h2{font-family:var(--font-script);font-style:italic;font-size:2.5rem;font-weight:400;color:var(--text-dark);margin-bottom:3rem}.memory-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1.5rem;max-width:1000px;margin:0 auto;justify-items:center}.polaroid{background:#fff;padding:.4rem .4rem .6rem;box-shadow:0 2px 12px #0000001a;position:relative;transform:rotate(var(--rotation, 0deg));transition:transform .3s ease;width:100%;max-width:170px}.polaroid:hover{transform:rotate(0) scale(1.05);z-index:2;cursor:pointer}.polaroid-img{width:100%;aspect-ratio:1;background:linear-gradient(135deg,#d4c5b0,#baa995);border-radius:1px;overflow:hidden}.polaroid-img img{width:100%;height:100%;object-fit:cover}.polaroid-year{font-family:var(--font-script);font-style:italic;font-size:1.1rem;color:var(--sage);margin-top:.4em;text-align:center;line-height:1}.tape{position:absolute;top:-8px;width:50px;height:18px;background:#d2be8c80;transform:rotate(var(--tape-rotation, -5deg))}.tape-left{left:10px}.tape-right{right:10px}.program{background:var(--sage) url(/paper-texture.jpg) center repeat;-webkit-background-blend-mode:multiply;background-blend-mode:multiply;color:var(--text-light);padding:5rem 2rem;position:relative}.program-inner{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:2rem 4rem}.program-title{font-family:var(--font-script);font-style:italic;font-size:2.5rem;font-weight:400;margin-bottom:2.5rem;grid-column:1 / -1}.schedule{display:flex;flex-direction:column;gap:0}.schedule-item{display:flex;align-items:center;gap:1.5rem;padding:.8rem 0;border-bottom:1px solid rgba(255,255,255,.15)}.schedule-time{font-family:var(--font-body);font-size:.85rem;font-weight:500;letter-spacing:.05em;min-width:80px;text-align:right}.schedule-dot{width:8px;height:8px;border-radius:50%;background:#ffffff80;flex-shrink:0}.schedule-event{font-family:var(--font-body);font-size:.9rem;font-weight:400;letter-spacing:.05em}.program-details h3{font-family:var(--font-script);font-style:italic;font-size:1.5rem;font-weight:400;margin-bottom:.8rem;margin-top:2rem}.program-details h3:first-child{margin-top:0}.program-details p{font-family:var(--font-body);font-size:.88rem;line-height:1.7;font-weight:300;opacity:.85}.program-map-link{color:#fff;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.program-header{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center}.program-venue-img{width:200px;height:auto;opacity:.4}.accommodation{background-color:var(--sage-dark);color:var(--text-light);padding:5rem 2rem;text-align:center}.accommodation h2{font-family:var(--font-script);font-style:italic;font-size:2.5rem;font-weight:400;margin-bottom:.5rem}.accommodation h2 span{display:block}.accommodation-content{max-width:700px;margin:2rem auto 0}.accommodation-content p{font-family:var(--font-body);font-size:.95rem;line-height:1.8;font-weight:300;opacity:.9;margin-bottom:2rem}.accommodation-options{display:flex;flex-direction:column;gap:2.5rem;text-align:left}.accommodation-option{display:flex;gap:1.5rem;align-items:center;color:inherit}.accommodation-map{width:180px;height:140px;flex-shrink:0;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #0003;transition:opacity .2s}.accommodation-map:hover{opacity:.8}.accommodation-map img{width:100%;height:100%;object-fit:cover}.accommodation-info h3{font-family:var(--font-script);font-style:italic;font-size:1.4rem;font-weight:400;margin-bottom:.3rem}.accommodation-info p{font-family:var(--font-body);font-size:.8rem;font-weight:300;opacity:.8;margin-bottom:0}.accommodation-info a{color:#fff;text-decoration:underline;text-underline-offset:2px}.accommodation-info a:hover{opacity:.8}@media (max-width: 768px){.accommodation-option{flex-direction:column;text-align:center}.accommodation-map{width:100%;height:180px}}.faq{background-color:var(--cream);padding:5rem 2rem;text-align:center}.faq h2{font-family:var(--font-script);font-style:italic;font-size:2.5rem;font-weight:400;color:var(--text-dark);margin-bottom:3rem}.faq-grid{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.faq-item{text-align:left;background:#6b7a5e14;padding:1.5rem 2rem;border-radius:4px}.faq-question{font-family:var(--font-body);font-size:.95rem;font-weight:600;margin-bottom:.5rem;color:var(--sage-dark)}.faq-answer{font-family:var(--font-body);font-size:.9rem;line-height:1.7;font-weight:300;color:var(--text-dark);opacity:.8}.footer{position:relative;padding:5rem 2rem;text-align:center;color:#fff;min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.footer-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:url(/footer-bg.jpg) center/cover no-repeat;z-index:0}@media (min-width: 500px){.footer-bg{top:-50vw}}.footer-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1}.footer-content{position:relative;z-index:2}.monogram{position:relative;width:100px;height:100px;margin:0 auto 2rem}.heart-logo{width:100%;height:100%}.monogram-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:.15rem;padding-bottom:.3rem}.monogram-k{font-family:var(--font-script);font-style:italic;font-size:1.6rem;font-weight:400;color:var(--cream)}.monogram-amp{font-family:var(--font-script);font-style:italic;font-size:1rem;font-weight:300;color:var(--cream);opacity:.8}.footer p{font-family:var(--font-body);font-size:.95rem;line-height:1.8;font-weight:300;opacity:.9}.footer a{color:#fff;text-decoration:none;font-weight:400}.footer a:hover{text-decoration:underline}.rsvp-form-section{background-color:var(--cream);padding:5rem 2rem;text-align:center}.rsvp-form-section h2{font-family:var(--font-script);font-style:italic;font-size:2.5rem;font-weight:400;color:var(--text-dark);margin-bottom:2rem}@media (max-width: 768px){.hero-bottom{padding:1.5rem 1.5rem 2.5rem;font-size:.75rem}.program-inner{grid-template-columns:1fr;gap:2rem}.countdown-timer{gap:1rem}.memory-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.polaroid{max-width:150px}}@media (max-width: 480px){.hero-bottom{flex-direction:column;align-items:center;gap:.5rem;text-align:center}.polaroid{max-width:130px;padding:.4rem .4rem .6rem}.polaroid-year{font-size:.95rem}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0000;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:background .4s ease;-webkit-tap-highlight-color:transparent}.lightbox.active{background:#000000bf;pointer-events:all;cursor:pointer}.lightbox-polaroid{background:#fff;padding:1.2rem 1.2rem 1.4rem;box-shadow:0 12px 60px #0006;transform:scale(.3);opacity:0;transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .3s ease;cursor:default;max-width:70vw;max-height:80vh}.lightbox.active .lightbox-polaroid{transform:scale(1);opacity:1}.lightbox-img{width:400px;max-width:60vw;aspect-ratio:1;background:linear-gradient(135deg,#d4c5b0,#baa995);border-radius:1px;overflow:hidden}.lightbox-img img{width:100%;height:100%;object-fit:cover}.lightbox-year{font-family:var(--font-script);font-style:italic;font-size:2rem;color:var(--sage);text-align:center;margin-top:.8rem}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:4rem;cursor:pointer;padding:1rem;opacity:.7;transition:opacity .2s;z-index:1001;line-height:1;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;outline:none}.lightbox-arrow:hover{opacity:1}.lightbox-arrow-left{left:2rem}.lightbox-arrow-right{right:2rem}.lightbox-nav{display:none}@media (max-width: 768px){.lightbox-arrow-desktop{display:none}.lightbox-nav{display:contents}.lightbox-nav .lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;border-radius:0;width:auto;height:auto;font-size:3rem;color:#fff;cursor:pointer;opacity:.7;padding:1rem;z-index:1001;-webkit-tap-highlight-color:transparent}.lightbox-nav .lightbox-arrow-left{left:.5rem}.lightbox-nav .lightbox-arrow-right{right:.5rem}}
