:root{--sage: #7D8A6F;--cream: #F5F1E8;--gold: #D4AF37;--dark: #3a3a2f}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Literata,serif;background:var(--cream);color:var(--dark);line-height:1.7;overflow-x:hidden;font-size:16px}.skip-link{position:absolute;top:-40px;left:0;background:var(--gold);color:var(--dark);padding:.5rem 1rem;text-decoration:none;z-index:10000;font-weight:500}.skip-link:focus{top:0}.side-nav{position:fixed;right:3rem;top:50%;transform:translateY(-50%);z-index:1000;display:flex;flex-direction:column;gap:1.5rem}.nav-dot{width:12px;height:12px;border-radius:50%;background:transparent;border:2px solid var(--sage);cursor:pointer;transition:all .4s ease;position:relative;padding:8px}.nav-dot:focus{outline:3px solid var(--gold);outline-offset:4px}.nav-dot:focus .nav-label{display:block}.nav-label{position:absolute;right:25px;top:50%;transform:translateY(-50%);font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:var(--sage);white-space:nowrap;pointer-events:none}.nav-dot.active{background:var(--gold);border-color:var(--gold);transform:scale(1.3);box-shadow:0 0 0 4px #d4af3733}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:2rem}.hero-bg{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}.hero-overlay{position:absolute;inset:0;background:#000000bf;z-index:-1;pointer-events:none}.hero-content{text-align:center;align-items:center}.ornament-top{margin:0 auto;width:150px;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin-bottom:3rem;position:relative;opacity:0;animation:fadeInDown 1.2s ease forwards .3s}.ornament-top:before,.ornament-top:after{content:"❖";position:absolute;color:var(--gold);font-size:12px;top:-6px}.ornament-top:before{left:-20px}.ornament-top:after{right:-20px}.names{font-family:Allura,cursive;font-size:clamp(4rem,12vw,9rem);font-weight:400;color:var(--cream);text-align:center;line-height:1.1;margin-bottom:1.5rem;opacity:0;animation:fadeInUp 1.2s ease forwards .6s;text-shadow:2px 2px 8px rgba(0,0,0,.7);position:relative;z-index:1}.ampersand{font-size:.7em;color:var(--gold);display:inline-block;margin:0 .2em}.tagline{font-family:Literata,serif;font-size:1.3rem;letter-spacing:.3em;text-transform:uppercase;color:var(--cream);margin-bottom:2rem;font-weight:400;opacity:0;animation:fadeIn 1.2s ease forwards .9s;text-shadow:2px 2px 8px rgba(0,0,0,.7);position:relative;z-index:1}.date-hero{font-size:1.1rem;color:var(--cream);letter-spacing:.15em;opacity:0;animation:fadeIn 1.2s ease forwards 1.2s;text-shadow:2px 2px 8px rgba(0,0,0,.7);position:relative;z-index:1}.countdown-ornament{width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:2rem auto;opacity:0;animation:fadeIn 1.2s ease forwards 1.4s;position:relative;z-index:1}.countdown-ornament:before,.countdown-ornament:after{content:"◆";position:absolute;color:var(--gold);font-size:8px;top:-4px}.countdown-ornament:before{left:-15px}.countdown-ornament:after{right:-15px}.countdown-container{display:flex;gap:2.5rem;justify-content:center;margin-top:0;opacity:0;animation:fadeIn 1.2s ease forwards 1.5s;position:relative;z-index:1}.countdown-item{text-align:center}.countdown-number{font-size:3rem;font-weight:300;color:var(--gold);display:block;margin-bottom:.5rem;text-shadow:2px 2px 8px rgba(0,0,0,.7)}.countdown-number:empty:after{content:"...";color:var(--gold)}.countdown-label{font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cream);text-shadow:1px 1px 4px rgba(0,0,0,.7)}.scroll-indicator{position:absolute;bottom:3rem;left:50%;transform:translate(-50%);font-size:.9rem;color:var(--cream);letter-spacing:.2em;text-transform:uppercase;opacity:0;animation:fadeIn 1.2s ease forwards 1.8s;text-shadow:1px 1px 4px rgba(0,0,0,.7)}.scroll-indicator:after{content:"↓";display:block;text-align:center;margin-top:.5rem;animation:bounce 2s infinite}.story-section{padding:12rem 2rem;max-width:900px;margin:0 auto;background:var(--cream)}.story-content{position:relative;z-index:1;font-size:1.15rem;line-height:2.1;text-align:center}.story-content h2{font-size:clamp(2.5rem,5vw,3.5rem);font-weight:300;margin-bottom:3rem;letter-spacing:.08em}.story-content p{margin-bottom:2.5rem}.wedding-details-section{background:var(--cream);padding:10rem 2rem}.details-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:5rem;margin-top:5rem}.detail-item h3{font-size:1.6rem;color:var(--sage);margin-bottom:1.5rem;font-weight:400;letter-spacing:.05em}.detail-item p{font-size:1.1rem;line-height:2;color:var(--dark);margin-bottom:1rem;font-weight:300}.where-stay-section{background:var(--sage);color:var(--cream);padding:10rem 2rem}.where-stay-section .section-title{color:var(--cream)}.accommodation-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:4rem;margin-top:5rem}.accommodation-card{background:#f5f1e80d;border:1px solid rgba(245,241,232,.2);padding:3rem 2.5rem}.accommodation-card h3{font-size:1.6rem;color:var(--gold);margin-bottom:1rem;font-weight:400;letter-spacing:.05em}.accommodation-card .hotel-type{font-size:.95rem;text-transform:uppercase;letter-spacing:.2em;color:var(--cream);opacity:.7;margin-bottom:1.5rem}.accommodation-card p{font-size:1.1rem;line-height:2;margin-bottom:1.5rem;font-weight:300}.accommodation-card .distance{font-size:.95rem;color:var(--gold)}.faq-section{background:var(--cream);padding:10rem 2rem}.faq-container{max-width:900px;margin:0 auto}.faq-list{margin-top:5rem}.faq-item{margin-bottom:4rem;padding-bottom:4rem;border-bottom:1px solid rgba(125,138,111,.2)}.faq-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.faq-question{font-size:1.4rem;color:var(--sage);margin-bottom:1.5rem;font-weight:400;letter-spacing:.02em}.faq-answer{font-size:1.1rem;line-height:2;color:var(--dark);font-weight:300}.transportation-section{background:var(--dark);color:var(--cream);padding:10rem 2rem}.transportation-section .section-title{color:var(--cream)}.transport-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:4rem;margin-top:5rem}.transport-card{background:#f5f1e808;border:1px solid rgba(245,241,232,.1);padding:3rem 2.5rem}.transport-card h3{font-size:1.6rem;color:var(--gold);margin-bottom:2rem;font-weight:400;letter-spacing:.05em}.transport-card p{font-size:1.1rem;line-height:2;margin-bottom:1.5rem;font-weight:300}.image-hero{height:90vh;width:100%;position:relative;overflow:hidden}.image-hero img{width:100%;height:100%;object-fit:cover;object-position:center}.image-hero:before{content:"";position:absolute;inset:0;background:#0006}.image-overlay{position:absolute;bottom:4rem;left:50%;transform:translate(-50%);text-align:center;color:#fff;max-width:700px;padding:0 2rem;z-index:1}.image-overlay h2{font-size:clamp(2rem,5vw,3.5rem);margin-bottom:1.5rem;font-weight:300;letter-spacing:.05em}.image-overlay p{font-size:1.1rem;line-height:2;font-weight:300}.image-section{padding:8rem 2rem;max-width:1600px;margin:0 auto}.image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:3rem}.image-placeholder{aspect-ratio:3/4;position:relative;overflow:hidden}.image-placeholder img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.image-placeholder:hover img{transform:scale(1.03)}.dual-image{display:grid;grid-template-columns:1fr 1fr;min-height:80vh;gap:0}.dual-image-item{position:relative;overflow:hidden}.dual-image-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.dual-image-item:hover img{transform:scale(1.02)}.triple-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;height:70vh}.triple-grid-item{position:relative;overflow:hidden}.triple-grid-item img{width:100%;height:100%;object-fit:cover;transition:opacity .6s ease}.triple-grid-item:hover img{opacity:.95}.single-large-image{width:100%;height:85vh;position:relative;margin:0}.single-large-image img{width:100%;height:100%;object-fit:cover}.asymmetric-grid{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,50vh);gap:0;padding:0;background:var(--cream)}.asymmetric-grid-item{position:relative;overflow:hidden}.asymmetric-grid-item:first-child{grid-row:1 / 3}.asymmetric-grid-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.asymmetric-grid-item:hover img{transform:scale(1.02)}.collage-section{padding:0;background:var(--cream)}.collage-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:300px;gap:0;max-width:100%;margin:0 auto}.collage-item{position:relative;overflow:hidden;background:var(--sage)}.collage-item:nth-child(1){grid-column:1 / 3;grid-row:1 / 3}.collage-item:nth-child(4){grid-column:3 / 5;grid-row:2 / 4}.collage-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.collage-item:hover img{transform:scale(1.02)}.parallax-section{height:85vh;background-image:url(https://images.unsplash.com/photo-1465495976277-4387d4b0b4c6?w=1600&q=80);background-attachment:fixed;background-position:center;background-repeat:no-repeat;background-size:cover;display:flex;align-items:center;justify-content:center;position:relative}.parallax-section:before{content:"";position:absolute;inset:0;background:#0000004d}.parallax-content{position:relative;z-index:1;text-align:center;color:#fff;padding:2rem}.parallax-content h2{font-size:clamp(3rem,7vw,6rem);font-family:Allura,cursive;margin-bottom:1.5rem;font-weight:700}.parallax-content p{font-size:1.2rem;max-width:700px;line-height:2;font-weight:300}.quote-section{min-height:75vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(#00000059,#00000059),url(https://images.unsplash.com/photo-1511285560929-80b456fea0bc?w=1600&q=80) center/cover;background-attachment:fixed;padding:6rem 2rem}.quote-content{max-width:900px;text-align:center;color:#fff}.quote-text{font-size:clamp(1.8rem,4vw,2.8rem);font-style:italic;line-height:1.7;margin-bottom:2rem;font-weight:300}.quote-author{font-size:1.1rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.details-section{background:var(--sage);color:var(--cream);padding:8rem 2rem;position:relative}.details-section:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.details-container{max-width:1200px;margin:0 auto;text-align:center}.details-section .section-title{color:var(--cream)}.section-title{font-size:clamp(2.5rem,5vw,3.5rem);font-weight:500;margin-bottom:5rem;letter-spacing:.08em;text-align:center}.details-grid-celebration{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem}.detail-box{background:#f5f1e80d;border:1px solid rgba(245,241,232,.2);padding:3rem 2rem;backdrop-filter:blur(10px);transition:transform .3s ease}.detail-box:hover{transform:translateY(-5px)}.detail-label{font-size:.95rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem}.detail-content{font-size:1.4rem;line-height:2;font-weight:300}.timeline-section{background:var(--cream);padding:10rem 2rem;position:relative}.timeline-container{max-width:1000px;margin:0 auto}.timeline-item{display:grid;grid-template-columns:150px 1fr;gap:4rem;margin-bottom:5rem;padding-bottom:5rem;border-bottom:1px solid rgba(125,138,111,.2)}.timeline-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.timeline-time{font-size:1.5rem;font-weight:400;color:var(--gold);text-align:right;padding-top:.3rem}.timeline-content h3{font-size:1.8rem;margin-bottom:1rem;color:var(--dark);font-weight:400;letter-spacing:.05em}.timeline-content p{font-size:1.1rem;color:var(--sage);line-height:2;font-weight:300}.travel-section{background:linear-gradient(135deg,#ebe7dc 0%,var(--cream) 100%);padding:8rem 2rem}.travel-container{max-width:900px;margin:0 auto;text-align:center}.travel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:3rem;margin-top:4rem}.travel-card{background:#fff;padding:2.5rem 2rem;box-shadow:0 5px 30px #00000014}.travel-card h3{font-size:1.5rem;color:var(--sage);margin-bottom:1.5rem;letter-spacing:.1em}.travel-card p{font-size:1rem;line-height:1.8;margin-bottom:1rem}.rsvp-section{background:var(--dark);color:var(--cream);padding:8rem 2rem;text-align:center}.rsvp-container{max-width:600px;margin:0 auto}.rsvp-form{margin-top:3rem}.form-group{margin-bottom:2rem;text-align:left}.form-group label{display:block;margin-bottom:.5rem;letter-spacing:.1em;text-transform:uppercase;font-size:.95rem;color:var(--gold);font-weight:500}.form-group label [aria-label=required]{color:var(--gold)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:1rem;background:#f5f1e80d;border:1px solid rgba(245,241,232,.2);color:var(--cream);font-family:Literata,serif;font-size:1rem;transition:all .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:3px solid var(--gold);outline-offset:2px;background:#f5f1e814}.form-group textarea{min-height:120px;resize:vertical}.submit-btn{background:var(--gold);color:var(--dark);border:none;padding:1.2rem 3rem;font-family:Literata,serif;font-size:1rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:all .3s ease;margin-top:1rem;font-weight:500}.submit-btn:hover{background:var(--cream);transform:translateY(-2px);box-shadow:0 10px 30px #d4af374d}.submit-btn:focus{outline:3px solid var(--cream);outline-offset:2px}.registry-section{padding:8rem 2rem;background:var(--cream);text-align:center}.registry-container{max-width:700px;margin:0 auto}.registry-text{font-size:1.2rem;line-height:2;margin-bottom:3rem}.registry-links{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap}.registry-link{display:inline-block;padding:1rem 2.5rem;border:2px solid var(--sage);color:var(--sage);text-decoration:none;letter-spacing:.2em;text-transform:uppercase;font-size:.95rem;transition:all .3s ease;font-weight:500}.registry-link:hover,.registry-link:focus{background:var(--sage);color:var(--cream);transform:translateY(-2px);outline:2px solid var(--gold)}.footer{background:var(--sage);color:var(--cream);padding:4rem 2rem;text-align:center}.footer-ornament{width:100px;height:1px;background:var(--gold);margin:0 auto 2rem}.footer p{font-size:1rem;letter-spacing:.15em;opacity:.8}.footer .hashtag{color:var(--gold);margin-top:1rem;font-size:1.2rem;display:block}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.parallax-section,.quote-section{background-attachment:scroll}}@media(max-width:1024px){.side-nav{display:none}}@media(max-width:768px){.nav-label{display:none}.nav-dot{width:16px;height:16px}.details-grid-celebration{grid-template-columns:1fr;gap:2rem}.timeline-item{grid-template-columns:1fr;gap:1rem}.timeline-time{text-align:left}.travel-grid{grid-template-columns:1fr}.details-grid,.accommodation-grid,.transport-grid{grid-template-columns:1fr;gap:3rem}.registry-links{flex-direction:column;align-items:center}.dual-image{grid-template-columns:1fr;min-height:auto}.dual-image-item{min-height:50vh}.triple-grid{grid-template-columns:1fr;height:auto}.triple-grid-item{min-height:40vh}.asymmetric-grid{grid-template-columns:1fr;grid-template-rows:auto}.asymmetric-grid-item:first-child{grid-row:auto;min-height:50vh}.collage-grid{grid-template-columns:1fr;grid-auto-rows:300px}.collage-item:nth-child(1),.collage-item:nth-child(4){grid-column:1;grid-row:auto}.image-grid{grid-template-columns:1fr}.parallax-section,.quote-section,.story-section{background-attachment:scroll}.countdown-container{gap:1.5rem;margin-top:0;flex-wrap:wrap}.countdown-item{min-width:70px}.countdown-number{font-size:2.2rem}.countdown-label{font-size:.75rem}.scroll-indicator{bottom:2rem}.faq-answer,.timeline-content p,.detail-content{font-size:1.05rem;line-height:1.8}}@media(max-width:480px){.countdown-container{gap:1rem}.countdown-item{min-width:60px}.countdown-number{font-size:1.8rem}.countdown-ornament{margin:1.5rem auto}}@font-face{font-family:Literata;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Literata-Regular.ttf) format("truetype")}@font-face{font-family:Allura;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Allura-Regular.ttf) format("truetype")}
