*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--cream:#faf6f0;--cream-light:#fdf9f4;--cream-dark:#f0e8d8;--champagne:#d4af7a;--gold:#b8955a;--gold-light:#e8d5a3;--gold-dark:#8b6914;--forest:#2c4a3e;--forest-light:#3d6b5c;--forest-pale:#e8f0ec;--text-dark:#1a1a1a;--text-mid:#4a4a4a;--text-light:#8a8a8a;--border:#b4955a40;--font-serif:"Playfair Display", "Cormorant Garamond", Georgia, serif;--font-sans:"Inter", system-ui, sans-serif;--font-italic:"Cormorant Garamond", Georgia, serif;--section-pad:clamp(80px, 10vw, 140px);--container:1200px;--radius-lg:20px;--radius-md:12px;--radius-sm:8px;--shadow-soft:0 8px 40px #2c4a3e14;--shadow-card:0 20px 60px #2c4a3e1f;--shadow-gold:0 4px 24px #d4af7a59;--transition:.4s cubic-bezier(.25, .46, .45, .94)}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background-color:var(--cream);color:var(--text-dark);-webkit-font-smoothing:antialiased;line-height:1.7;overflow-x:hidden}img,iframe{max-width:100%;display:block}a{color:inherit;text-decoration:none}#preloader{background:var(--forest);z-index:9999;justify-content:center;align-items:center;transition:opacity .6s,visibility .6s;display:flex;position:fixed;inset:0}#preloader.hidden{opacity:0;visibility:hidden;pointer-events:none}.preloader-inner{text-align:center}.preloader-text{font-family:var(--font-serif);color:var(--champagne);letter-spacing:.3em;opacity:0;margin-bottom:2rem;font-size:clamp(2.5rem,8vw,5rem);animation:.6s .2s forwards preloaderFade;display:block}.preloader-bar{background:#d4af7a33;width:200px;height:1px;margin:0 auto;overflow:hidden}.preloader-fill{background:var(--champagne);width:0;height:100%;animation:1.6s .4s forwards preloaderBar}@keyframes preloaderFade{to{opacity:1}}@keyframes preloaderBar{to{width:100%}}.container{max-width:var(--container);margin:0 auto;padding:0 clamp(1.5rem,5vw,4rem)}.section{position:relative;overflow:hidden}.hero{background:var(--cream-light);justify-content:center;align-items:center;min-height:100svh;padding:6rem 2rem;display:flex;position:relative}.hero-bg-decor{pointer-events:none;position:absolute;inset:0;overflow:hidden}.bg-leaf{opacity:.07;background:var(--forest);border-radius:50% 0;position:absolute}.bg-leaf--1{border-radius:50% 10%;width:clamp(300px,40vw,600px);height:clamp(300px,40vw,600px);top:-10%;left:-12%;transform:rotate(30deg)}.bg-leaf--2{border-radius:10% 50%;width:clamp(200px,30vw,450px);height:clamp(200px,30vw,450px);bottom:-5%;right:-8%;transform:rotate(-45deg)}.bg-leaf--3{opacity:.04;width:clamp(100px,15vw,220px);height:clamp(100px,15vw,220px);top:60%;left:5%;transform:rotate(15deg)}.bg-circle{border:1px solid #d4af7a1f;border-radius:50%;width:clamp(400px,60vw,800px);height:clamp(400px,60vw,800px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero-content{text-align:center;z-index:2;max-width:800px;position:relative}.hero-eyebrow{font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;color:var(--gold);opacity:0;justify-content:center;align-items:center;gap:1.2rem;margin-bottom:2.5rem;font-size:clamp(.7rem,1.5vw,.85rem);font-weight:500;display:flex}.eyebrow-line{background:linear-gradient(90deg, transparent, var(--gold), transparent);width:clamp(40px,6vw,80px);height:1px;display:block}.names-wrapper{flex-direction:column;align-items:center;gap:0;margin-bottom:2.5rem;display:flex}@media (width>=640px){.names-wrapper{flex-direction:row;justify-content:center;align-items:center;gap:1.5rem}}.couple-name{font-family:var(--font-serif);color:var(--forest);letter-spacing:-.02em;opacity:0;font-size:clamp(4rem,14vw,9rem);font-weight:400;line-height:1}.ampersand-wrapper{opacity:0}.ampersand{font-family:var(--font-italic);color:var(--champagne);padding:0 .5rem;font-size:clamp(2.5rem,8vw,5.5rem);font-style:italic;font-weight:300;line-height:1;display:block}.date-wrapper{opacity:0;margin-bottom:3rem}.wedding-date{font-family:var(--font-serif);letter-spacing:.25em;color:var(--text-mid);margin-bottom:.4rem;font-size:clamp(1.2rem,3.5vw,1.8rem);font-weight:400}.wedding-time{font-family:var(--font-italic);color:var(--text-light);letter-spacing:.05em;font-size:clamp(.9rem,2vw,1.1rem);font-style:italic}.divider{color:var(--champagne);opacity:0;justify-content:center;align-items:center;gap:1rem;margin-bottom:3rem;display:flex}.divider-line{background:linear-gradient(90deg, transparent, var(--champagne));width:clamp(50px,8vw,100px);height:1px;display:block}.divider-line:last-child{background:linear-gradient(90deg, var(--champagne), transparent)}.divider-diamond{flex-shrink:0;transform:rotate(0)}.scroll-indicator{color:var(--text-light);opacity:0;cursor:default;flex-direction:column;align-items:center;gap:.5rem;display:flex}.scroll-text{letter-spacing:.3em;text-transform:uppercase;font-size:.7rem;font-weight:500}.scroll-arrow{animation:2s ease-in-out infinite scrollBounce}@keyframes scrollBounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}.section-header{text-align:center;margin-bottom:clamp(3rem,6vw,5rem)}.section-label{font-family:var(--font-sans);letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem;font-size:.75rem;font-weight:600}.section-title{font-family:var(--font-serif);color:var(--forest);letter-spacing:-.01em;margin-bottom:1.25rem;font-size:clamp(2.2rem,6vw,3.8rem);font-weight:400;line-height:1.2}.title-underline{background:var(--champagne);border-radius:2px;width:60px;height:2px;margin:0 auto}.reveal-element{opacity:0;transform:translateY(40px)}.reveal-element.revealed{opacity:1;transform:translateY(0)}.float-container{transition:transform .6s cubic-bezier(.25,.46,.45,.94),box-shadow .6s cubic-bezier(.25,.46,.45,.94)}.float-container:hover{box-shadow:var(--shadow-card);transform:translateY(-8px)}.story-section{padding:var(--section-pad) 0;background:var(--cream)}.story-grid{grid-template-columns:1fr;gap:clamp(3rem,5vw,5rem);display:grid}@media (width>=900px){.story-grid{grid-template-columns:repeat(3,1fr);gap:3rem}}.story-card{flex-direction:column;gap:1.75rem;display:flex}.story-card-media{border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);overflow:hidden}.story-image{aspect-ratio:4/5;border-radius:var(--radius-lg);position:relative;overflow:hidden}.story-image img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.image-overlay{background:linear-gradient(#0000 40%,#1a1a1a66 100%);position:absolute;inset:0}.story-year{font-family:var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:#ffffffe6;font-size:.7rem;font-weight:600;position:absolute;bottom:1.2rem;left:1.5rem}.story-card-body{padding:0 .5rem}.story-card-title{font-family:var(--font-serif);color:var(--forest);margin-bottom:.75rem;font-size:clamp(1.3rem,3vw,1.6rem);font-weight:500}.story-card-text{color:var(--text-mid);font-size:.95rem;line-height:1.8}.countdown-section{padding:var(--section-pad) 0;background:var(--forest);position:relative;overflow:hidden}.countdown-bg-decor{pointer-events:none;position:absolute;inset:0;overflow:hidden}.countdown-leaf{opacity:.06;background:var(--champagne);border-radius:50% 10%;position:absolute}.countdown-leaf--1{width:500px;height:500px;top:-150px;right:-100px;transform:rotate(45deg)}.countdown-leaf--2{width:350px;height:350px;bottom:-100px;left:-80px;transform:rotate(-30deg)}.countdown-grid{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(1rem,3vw,2.5rem);margin-bottom:2.5rem;display:flex}.countdown-unit{text-align:center;min-width:clamp(80px,15vw,140px)}.countdown-number{font-family:var(--font-serif);color:var(--cream);letter-spacing:-.03em;margin-bottom:.5rem;font-size:clamp(3.5rem,10vw,7rem);font-weight:300;line-height:1;transition:transform .15s}.countdown-number.flip{animation:.3s flipNum}@keyframes flipNum{0%{transform:translateY(0)scaleY(1)}50%{opacity:.5;transform:translateY(-8px)scaleY(.8)}to{opacity:1;transform:translateY(0)scaleY(1)}}.countdown-label{font-family:var(--font-sans);letter-spacing:.4em;text-transform:uppercase;color:var(--champagne);opacity:.8;font-size:clamp(.65rem,1.5vw,.78rem);font-weight:600}.countdown-separator{font-family:var(--font-serif);color:var(--champagne);opacity:.3;align-self:flex-start;margin-top:clamp(.5rem,1.5vw,1.2rem);font-size:clamp(2rem,5vw,4rem);line-height:1}.countdown-subtitle{text-align:center;font-family:var(--font-italic);color:#faf6f099;letter-spacing:.05em;font-size:clamp(1rem,2.5vw,1.2rem)}.countdown-subtitle em{color:var(--champagne);font-style:italic}.countdown-event-label{text-align:center;font-family:var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold-light);opacity:.8;margin-bottom:2rem;font-size:clamp(.7rem,1.8vw,.85rem);font-weight:600}.details-section{padding:var(--section-pad) 0;background:var(--cream-light)}.details-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}.details-grid--wedding{flex-wrap:wrap;justify-content:center;gap:1.5rem;display:flex}.details-grid--wedding .detail-card{flex:100%}@media (width>=640px){.details-grid--wedding .detail-card{flex:0 0 calc(33.333% - 1rem)}.details-grid{grid-template-columns:repeat(3,1fr)}}.detail-card{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;transition:var(--transition);box-shadow:var(--shadow-soft);flex-direction:column;justify-content:center;align-items:center;padding:clamp(2rem,4vw,3rem) clamp(1.5rem,3vw,2.5rem);display:flex}.detail-card:hover{box-shadow:var(--shadow-card);border-color:var(--champagne);transform:translateY(-6px)}.detail-icon{background:var(--forest-pale);width:64px;height:64px;color:var(--forest);transition:var(--transition);border:1px solid #2c4a3e1f;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.5rem;display:flex}.detail-card:hover .detail-icon{background:var(--forest);color:var(--champagne);border-color:var(--forest)}.detail-title{font-family:var(--font-serif);color:var(--forest);margin-bottom:1rem;font-size:1.25rem;font-weight:500}.detail-primary{color:var(--text-dark);margin-bottom:.3rem;font-size:1.05rem;font-weight:500}.detail-secondary{color:var(--text-light);font-size:.875rem}.map-section{padding:var(--section-pad) 0;background:var(--cream)}.maps-triple-grid{grid-template-columns:1fr;gap:clamp(2rem,4vw,3rem);display:grid}@media (width>=860px){.maps-triple-grid{grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr;align-items:start}.map-wrapper{grid-row:span 2;grid-template-rows:subgrid;display:grid}}@media (width>=860px) and (width<=1199px){.maps-triple-grid .map-wrapper:nth-child(3){grid-column:1/-1;max-width:calc(50% - 1.5rem);margin:0 auto}}@media (width>=1200px){.maps-triple-grid{grid-template-columns:repeat(3,1fr)}}.map-event-label{font-family:var(--font-sans);letter-spacing:.25em;text-transform:uppercase;color:var(--gold);text-align:center;justify-content:center;align-items:center;margin-bottom:.5rem;font-size:.8rem;font-weight:600;display:flex}.map-wrapper{width:100%}.map-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid var(--border);background:var(--cream-light);overflow:hidden}.map-embed{width:100%;line-height:0;overflow:hidden}.map-embed iframe{filter:saturate(.85)contrast(.95);width:100%;height:clamp(280px,40vw,420px);transition:filter var(--transition);border:none}.map-card:hover .map-embed iframe{filter:saturate()contrast()}.map-card-footer{background:var(--cream-light);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 2rem;display:flex}.map-address{color:var(--text-mid);align-items:center;gap:.6rem;font-size:.9rem;display:flex}.map-address svg{color:var(--gold);flex-shrink:0}.btn{font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:var(--transition);border:none;border-radius:50px;align-items:center;gap:.6rem;padding:.75rem 1.75rem;font-size:.82rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.btn-primary{background:var(--forest);color:var(--champagne);box-shadow:0 4px 20px #2c4a3e40}.btn-primary:hover{background:var(--forest-light);transform:translateY(-2px);box-shadow:0 8px 30px #2c4a3e59}.btn-primary:active{transform:translateY(0)}.footer{background:var(--forest);color:var(--cream);text-align:center;padding:clamp(4rem,8vw,7rem) 0 clamp(2rem,4vw,3rem);position:relative;overflow:hidden}.footer-decor{pointer-events:none;position:absolute;inset:0;overflow:hidden}.footer-leaf{opacity:.05;background:var(--champagne);border-radius:50% 10%;position:absolute}.footer-leaf--1{width:400px;height:400px;top:-100px;right:-80px;transform:rotate(30deg)}.footer-leaf--2{width:250px;height:250px;bottom:-60px;left:-50px;transform:rotate(-20deg)}.footer-inner{z-index:2;position:relative}.footer-monogram{font-family:var(--font-serif);color:var(--champagne);letter-spacing:.3em;opacity:.7;margin-bottom:1rem;font-size:clamp(2.5rem,6vw,4rem)}.footer-title{font-family:var(--font-serif);color:var(--cream);margin-bottom:.5rem;font-size:clamp(1.5rem,4vw,2rem)}.footer-date{font-family:var(--font-sans);letter-spacing:.35em;color:var(--champagne);text-transform:uppercase;margin-bottom:1.5rem;font-size:.8rem}.footer-tagline{font-family:var(--font-italic);color:#faf6f099;margin-bottom:2rem;font-size:clamp(1rem,2.5vw,1.2rem);font-style:italic}.footer-divider{color:var(--champagne);opacity:.3;justify-content:center;align-items:center;gap:1.2rem;margin-bottom:1.5rem;display:flex}.footer-divider span{background:currentColor;width:80px;height:1px;display:block}.footer-copy{color:#faf6f059;letter-spacing:.1em;font-size:.78rem}@media (width<=639px){.countdown-separator{display:none}.countdown-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.map-card-footer{text-align:center;flex-direction:column}.map-address{justify-content:center}}@media (width<=400px){.couple-name{font-size:3.2rem}.ampersand{font-size:2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
