@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Montserrat:wght@400;500;600&display=swap";:root{--color-background:#f8f3ec;--color-surface:#fffdf9;--color-text:#2d2926;--color-text-muted:#716963;--color-accent:#7b2638;--color-gold:#b08a4a;--font-heading:"Cormorant Garamond", serif;--font-body:"Montserrat", sans-serif;--space-xs:8px;--space-sm:16px;--space-md:24px;--space-lg:48px;--space-xl:80px;--space-xxl:120px;--container-width:1200px;--radius-sm:8px;--radius-md:16px;--transition:.3s ease}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:#2d2926;background:#f8f3ec}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:110px 24px 40px;display:flex;position:relative;overflow:hidden}.hero-decoration{color:var(--color-gold);margin-bottom:28px;font-size:18px}.hero-subtitle{font-family:var(--font-body);letter-spacing:4px;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:32px;font-size:11px;font-weight:500}.hero-title{font-family:var(--font-heading);letter-spacing:-3px;color:var(--color-text);font-size:clamp(64px,13vw,140px);font-weight:400;line-height:.8}.hero-name{display:block}.hero-and{color:var(--color-accent);margin:20px 0;font-size:.35em;font-style:italic;line-height:1;display:block}.hero-divider{width:min(280px,70%);color:var(--color-gold);align-items:center;gap:12px;margin-top:45px;display:flex}.hero-divider span:first-child,.hero-divider span:last-child{background:var(--color-gold);opacity:.5;flex:1;height:1px}.hero-divider span:nth-child(2){font-size:12px}.hero-date{font-family:var(--font-body);letter-spacing:3px;text-transform:uppercase;margin-top:20px;font-size:12px;font-weight:500}.hero-scroll{font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:8px;font-size:9px;display:flex;position:absolute;bottom:30px}.hero-scroll span{font-size:16px}.countdown{min-height:45vh;padding:var(--space-xl) var(--space-md);text-align:center;background:var(--color-surface);flex-direction:column;justify-content:center;align-items:center;display:flex}.countdown-label{font-family:var(--font-body);letter-spacing:3px;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:35px;font-size:10px}.countdown-grid{grid-template-columns:repeat(4,1fr);gap:20px;width:min(700px,100%);display:grid}.countdown-item{flex-direction:column;align-items:center;display:flex}.countdown-item span{font-family:var(--font-heading);color:var(--color-text);font-size:clamp(42px,8vw,72px);font-weight:400;line-height:1}.countdown-item small{font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;color:var(--color-text-muted);margin-top:10px;font-size:9px}.countdown-complete{font-family:var(--font-heading);color:var(--color-accent);font-size:clamp(32px,7vw,60px);font-weight:400}@media (width<=600px){.countdown-grid{gap:8px}.countdown-item span{font-size:42px}.countdown-item small{letter-spacing:1px;font-size:8px}}.events{min-height:100vh;padding:var(--space-xxl) var(--space-md);background:var(--color-background)}.section-heading{text-align:center;max-width:650px;margin:0 auto 70px}.section-label{font-family:var(--font-body);letter-spacing:4px;text-transform:uppercase;color:var(--color-accent);margin-bottom:18px;font-size:10px}.section-heading h2{font-family:var(--font-heading);margin-bottom:20px;font-size:clamp(48px,8vw,80px);font-weight:400;line-height:1}.section-description{max-width:450px;font-family:var(--font-body);color:var(--color-text-muted);margin:0 auto;font-size:14px;line-height:1.7}.events-list{flex-direction:column;gap:24px;max-width:900px;margin:0 auto;display:flex}.event-card{background:var(--color-surface);transition:transform var(--transition), box-shadow var(--transition);border:1px solid #2d292614;grid-template-columns:80px 1fr;gap:30px;padding:35px;display:grid}.event-card:hover{transform:translateY(-4px);box-shadow:0 15px 40px #2d292614}.event-number{font-family:var(--font-heading);color:var(--color-gold);font-size:28px}.event-content h3{font-family:var(--font-heading);margin-bottom:18px;font-size:38px;font-weight:500}.event-content p{font-family:var(--font-body);color:var(--color-text-muted);font-size:13px;line-height:1.6}.event-content .event-date{color:var(--color-accent);letter-spacing:1px;font-weight:600}.event-address{margin-top:4px}@media (width<=600px){.events{padding:var(--space-xl) var(--space-md)}.section-heading{margin-bottom:45px}.event-card{grid-template-columns:1fr;gap:12px;padding:28px 24px}.event-number{font-size:22px}.event-content h3{font-size:32px}}.venue{min-height:85vh;padding:var(--space-xxl) var(--space-md);background:var(--color-surface);flex-direction:column;justify-content:center;align-items:center;display:flex}.venue-card{text-align:center;border:1px solid #b08a4a59;width:min(700px,100%);padding:70px 40px;position:relative}.venue-symbol{color:var(--color-gold);margin-bottom:25px;font-size:18px}.venue-card h3{font-family:var(--font-heading);margin-bottom:24px;font-size:clamp(42px,7vw,68px);font-weight:400;line-height:1}.venue-address{max-width:450px;font-family:var(--font-body);color:var(--color-text-muted);margin:0 auto;font-size:14px;line-height:1.7}.venue-date{font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;color:var(--color-accent);margin-top:25px;font-size:11px}.venue-button{border:1px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;transition:all var(--transition);margin-top:35px;padding:14px 28px;font-size:10px;font-weight:600;text-decoration:none;display:inline-block}.venue-button:hover{background:var(--color-accent);color:var(--color-surface)}@media (width<=600px){.venue{min-height:auto;padding:var(--space-xl) var(--space-md)}.venue-card{padding:50px 24px}}.gallery{min-height:100vh;padding:var(--space-xxl) var(--space-md);background:var(--color-background)}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:16px;max-width:1100px;margin:0 auto;display:grid}.gallery-item{aspect-ratio:4/5;background:var(--color-surface);margin:0;overflow:hidden}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .7s;display:block}.gallery-item:hover img{transform:scale(1.04)}@media (width<=800px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=500px){.gallery{padding:var(--space-xl) var(--space-md)}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px}}.gallery-item{cursor:pointer;border:0;padding:0}.lightbox{z-index:1000;background:#14110feb;justify-content:center;align-items:center;padding:30px;display:flex;position:fixed;inset:0}.lightbox-image{object-fit:contain;width:auto;max-width:90vw;height:auto;max-height:85vh}.lightbox-close{color:#fff;cursor:pointer;background:0 0;border:0;font-size:36px;font-weight:300;line-height:1;position:absolute;top:24px;right:28px}.lightbox-close:hover{opacity:.7}@media (width<=600px){.lightbox{padding:16px}.lightbox-image{max-width:94vw;max-height:80vh}.lightbox-close{font-size:32px;top:16px;right:20px}}.navbar{z-index:900;-webkit-backdrop-filter:blur(12px);background:#f8f3ece0;border-bottom:1px solid #2d29260f;justify-content:space-between;align-items:center;width:100%;height:72px;padding:0 40px;display:flex;position:fixed;top:0;left:0}.navbar-logo{color:var(--color-text);font-family:var(--font-heading);letter-spacing:1px;font-size:25px;text-decoration:none}.monogram{width:42px;height:42px;font-family:var(--font-heading);color:var(--color-accent);letter-spacing:-4px;justify-content:center;align-items:center;font-size:20px;font-weight:500;transition:transform .3s,color .3s;display:inline-flex;position:relative}.monogram-second{opacity:.8;margin-left:-7px;position:relative;transform:translateY(5px)}.navbar-logo:hover .monogram{color:var(--color-text);transform:scale(1.08)}.navbar-logo:active .monogram{transform:scale(.95)}.navbar-logo span{color:var(--color-accent);margin:0 3px;font-style:italic}.navbar-links{align-items:center;gap:32px;display:flex}.navbar-links a{color:var(--color-text-muted);font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;transition:color var(--transition);font-size:10px;font-weight:500;text-decoration:none;position:relative}.navbar-links a:after{content:"";background:var(--color-accent);width:0;height:1px;transition:width var(--transition);position:absolute;bottom:-7px;left:0}.navbar-links a:hover{color:var(--color-accent)}.navbar-links a:hover:after{width:100%}.navbar-toggle{color:var(--color-text);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;font-size:24px;display:none}@media (width<=700px){.navbar{height:64px;padding:0 22px}.navbar-toggle{z-index:1001;display:block;position:relative}.navbar-links{background:var(--color-background);opacity:0;visibility:hidden;flex-direction:column;justify-content:center;align-items:center;gap:32px;height:100vh;transition:opacity .3s,transform .3s,visibility .3s;display:flex;position:fixed;inset:0;transform:translateY(-10px)}.navbar-links.open{opacity:1;visibility:visible;transform:translateY(0)}.navbar-links a{font-family:var(--font-heading);letter-spacing:0;text-transform:none;color:var(--color-text);font-size:34px;font-weight:400}.navbar-links a:after{display:none}.navbar-links a:hover{color:var(--color-accent)}}.reveal{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(24px)}.reveal-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}html{scroll-behavior:auto}}.story{min-height:80vh;padding:var(--space-xxl) var(--space-md);text-align:center;background:var(--color-surface);justify-content:center;align-items:center;display:flex}.story-content{width:min(700px,100%)}.story-content h2{font-family:var(--font-heading);color:var(--color-text);margin-top:14px;font-size:clamp(52px,9vw,90px);font-weight:400;line-height:.95}.story-divider{color:var(--color-gold);margin:35px 0;font-size:15px}.story-message{max-width:570px;font-family:var(--font-body);color:var(--color-text-muted);margin:0 auto;font-size:15px;line-height:2}@media (width<=600px){.story{min-height:70vh;padding:var(--space-xl) var(--space-md)}.story-message{font-size:14px;line-height:1.9}}.event-button{border:1px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;transition:all var(--transition);margin-top:20px;padding:11px 20px;font-size:9px;font-weight:600;text-decoration:none;display:inline-block}.event-button:hover{background:var(--color-accent);color:var(--color-surface)}.rsvp{min-height:75vh;padding:var(--space-xxl) var(--space-md);text-align:center;background:var(--color-surface);justify-content:center;align-items:center;display:flex}.rsvp-content{width:min(700px,100%)}.rsvp-content h2{font-family:var(--font-heading);margin-top:14px;font-size:clamp(48px,8vw,78px);font-weight:400;line-height:1}.rsvp-message{max-width:480px;font-family:var(--font-body);color:var(--color-text-muted);margin:25px auto 0;font-size:15px;line-height:1.8}.rsvp-actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:40px;display:flex}.rsvp-button{border:1px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all var(--transition);background:0 0;padding:14px 24px;font-size:10px;font-weight:600}.rsvp-button:hover,.rsvp-primary{background:var(--color-accent);color:var(--color-surface)}.rsvp-primary:hover{color:var(--color-accent);background:0 0}.rsvp-response{margin-top:45px}.rsvp-symbol{color:var(--color-gold);margin-bottom:20px;font-size:20px}.rsvp-response h3{font-family:var(--font-heading);font-size:clamp(28px,5vw,42px);font-weight:400}.rsvp-response p{font-family:var(--font-body);color:var(--color-text-muted);margin-top:12px;font-size:14px}@media (width<=600px){.rsvp{min-height:65vh;padding:var(--space-xl) var(--space-md)}.rsvp-actions{flex-direction:column;align-items:stretch}.rsvp-button{width:100%}}.families{min-height:80vh;padding:var(--space-xxl) var(--space-md);background:var(--color-background);flex-direction:column;justify-content:center;display:flex}.families-grid{grid-template-columns:repeat(2,1fr);gap:24px;width:min(900px,100%);margin:20px auto 0;display:grid}.family-card{text-align:center;background:var(--color-surface);transition:transform var(--transition), box-shadow var(--transition);border:1px solid #b08a4a47;padding:55px 35px;position:relative}.family-card:hover{transform:translateY(-4px);box-shadow:0 15px 40px #2d292612}.family-symbol{color:var(--color-gold);margin-bottom:22px;font-size:15px;display:block}.family-card h3{font-family:var(--font-heading);margin-bottom:25px;font-size:clamp(28px,4vw,40px);font-weight:400}.family-card p{font-family:var(--font-body);color:var(--color-text-muted);margin-top:8px;font-size:13px;line-height:1.6}@media (width<=600px){.families{padding:var(--space-xl) var(--space-md)}.families-grid{grid-template-columns:1fr;gap:16px}.family-card{padding:45px 25px}}.opening{z-index:2000;-webkit-backdrop-filter:blur(12px);background:#231b187a;justify-content:center;align-items:center;transition:opacity .9s,visibility .9s;display:flex;position:fixed;inset:0}.opening-hidden{opacity:0;visibility:hidden;pointer-events:none}.opening-content{text-align:center;flex-direction:column;align-items:center;display:flex}.opening-label{font-family:var(--font-heading);color:var(--color-surface);letter-spacing:1px;margin:0;font-size:clamp(42px,7vw,68px);font-style:italic;font-weight:400}.opening-arrow{color:var(--color-surface);margin-top:2px;margin-bottom:5px;font-size:30px;line-height:1;animation:1.8s ease-in-out infinite openingArrow}.opening-heart{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:96px;height:96px;padding:0;transition:transform .3s,filter .3s;animation:2.4s ease-in-out infinite heartPulse;display:flex;position:relative}.heart-shape{background:#c94b55;border-radius:8px;width:58px;height:58px;display:block;position:relative;transform:rotate(-45deg);box-shadow:0 0 12px #ff96a0b3,0 0 28px #c8465073}.heart-shape:before,.heart-shape:after{content:"";background:#c94b55;border-radius:50%;width:58px;height:58px;position:absolute}.heart-shape:before{top:-29px;left:0}.heart-shape:after{top:0;left:29px}.opening-heart:hover{filter:drop-shadow(0 0 16px #ffa0aacc)drop-shadow(0 0 35px #c8465073);transform:scale(1.08)}.opening-heart:active{transform:scale(.92)}.opening-hint{font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;color:#fff8f0cc;margin-top:18px;font-size:10px}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes openingArrow{0%,to{opacity:.65;transform:translateY(0)}50%{opacity:1;transform:translateY(6px)}}.heart-opening{animation:.9s ease-out forwards heartOpen}.heart-opening .heart-shape{animation:.9s ease-out forwards heartBurst}.celebration{pointer-events:none;position:absolute;inset:0}.celebration-particle{opacity:0;background:#ffdcaaf2;border-radius:50%;width:6px;height:6px;animation:.9s ease-out forwards particleBurst;position:absolute;top:50%;left:50%}.celebration-particle:first-child{--x:-90px;--y:-55px}.celebration-particle:nth-child(2){--x:-65px;--y:-95px}.celebration-particle:nth-child(3){--x:-30px;--y:-115px}.celebration-particle:nth-child(4){--x:15px;--y:-105px}.celebration-particle:nth-child(5){--x:55px;--y:-90px}.celebration-particle:nth-child(6){--x:90px;--y:-55px}.celebration-particle:nth-child(7){--x:-105px;--y:-10px}.celebration-particle:nth-child(8){--x:105px;--y:-15px}.celebration-particle:nth-child(9){--x:-85px;--y:35px}.celebration-particle:nth-child(10){--x:85px;--y:35px}.celebration-particle:nth-child(11){--x:-60px;--y:75px}.celebration-particle:nth-child(12){--x:60px;--y:75px}.celebration-particle:nth-child(13){--x:-35px;--y:105px}.celebration-particle:nth-child(14){--x:35px;--y:105px}.celebration-particle:nth-child(15){--x:-115px;--y:25px}.celebration-particle:nth-child(16){--x:115px;--y:20px}.celebration-particle:nth-child(17){--x:-15px;--y:-135px}.celebration-particle:nth-child(18){--x:15px;--y:135px}.celebration-particle:nth-child(3n){width:4px;height:4px}.celebration-particle:nth-child(4n){border-radius:1px;width:7px;height:7px}@keyframes heartOpen{0%{transform:scale(1)}30%{transform:scale(1.16)}55%{transform:scale(.92)}75%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes heartBurst{0%{filter:drop-shadow(0 0 12px #ff96a0b3)}35%{filter:drop-shadow(0 0 25px #ffb4be)drop-shadow(0 0 55px #dc5a64cc)}to{filter:drop-shadow(0 0 40px #ffbec826)}}@keyframes particleBurst{0%{opacity:0;transform:translate(-50%,-50%)scale(0)}15%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--x)), calc(-50% + var(--y))) scale(1)}}@media (width<=600px){.opening{padding:20px}.opening-heart{width:105px;height:105px}.heart-shape,.heart-shape:before,.heart-shape:after{width:52px;height:52px}.heart-shape:before{top:-26px}.heart-shape:after{left:26px}.opening-label{font-size:48px}.opening-hint{font-size:9px}}@media (prefers-reduced-motion:reduce){.opening-heart,.opening-arrow{animation:none}.opening{transition:none}}.music-player{z-index:1500;position:fixed;bottom:24px;right:24px}.music-toggle{width:52px;height:52px;color:var(--color-accent);cursor:pointer;-webkit-backdrop-filter:blur(8px);background:#fffaf4f0;border:1px solid #b08a4a73;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:transform .3s,box-shadow .3s;display:flex;box-shadow:0 8px 25px #2d29261f}.music-icon{font-size:22px;line-height:1}.music-toggle:hover{transform:translateY(-3px);box-shadow:0 12px 30px #2d29262e}.music-panel{-webkit-backdrop-filter:blur(14px);background:#fffaf4f7;border:1px solid #b08a4a4d;width:290px;padding:26px;animation:.3s ease-out musicPanelIn;position:absolute;bottom:66px;right:0;box-shadow:0 18px 45px #2d292629}.album-disc{background:#191716;border-radius:50%;width:150px;height:150px;margin:0 auto 24px;transition:transform .4s,box-shadow .4s;position:relative;overflow:hidden;box-shadow:0 10px 30px #2d292633}.album-cover{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.disc-center{background:#fffaf4e6;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #ffffff2e}.disc-center span{background:var(--color-accent);border-radius:50%;width:7px;height:7px}.album-disc-playing{animation:10s linear infinite discRotate}@keyframes discRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.music-label{font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;color:var(--color-accent);margin:0 0 8px;font-size:9px;font-weight:600}.music-title{font-family:var(--font-heading);color:var(--color-text);margin:0;font-size:28px;font-weight:400;line-height:1.2}.music-artist{font-family:var(--font-body);color:var(--color-text-muted);margin:7px 0 20px;font-size:11px}.music-progress{appearance:none;cursor:pointer;background:#b08a4a2e;border-radius:10px;width:100%;height:4px;margin:5px 0 20px}.music-progress::-webkit-slider-thumb{appearance:none;background:var(--color-accent);cursor:pointer;border-radius:50%;width:12px;height:12px}.music-progress::-moz-range-thumb{background:var(--color-accent);cursor:pointer;border:0;border-radius:50%;width:12px;height:12px}.music-controls{justify-content:center;align-items:center;gap:22px;display:flex}.music-control,.music-play{color:var(--color-text);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;transition:transform .2s,color .2s;display:flex}.music-control{width:30px;height:30px;font-size:12px}.music-play{border:1px solid var(--color-accent);width:46px;height:46px;color:var(--color-accent);border-radius:50%;font-size:12px}.music-control:hover{color:var(--color-accent);transform:scale(1.15)}.music-play:hover{transform:scale(1.08)}.music-count{text-align:center;font-family:var(--font-body);letter-spacing:1px;color:var(--color-text-muted);margin:18px 0 0;font-size:9px}@keyframes musicPanelIn{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=600px){.music-player{bottom:16px;right:16px}.music-toggle{width:50px;height:50px}.music-panel{width:min(290px,100vw - 32px);padding:24px;bottom:62px;right:0}.album-disc{width:135px;height:135px;margin-bottom:22px}.music-title{font-size:25px}}
