:root{--wine:#5d1b2c;--rose:#a9425d;--gold:#b58b42;--ink:#332829;--ivory:#f9f5ee;--cream:#eee3d3;--sans:'DM Sans',sans-serif;--display:'Italiana',serif;--serif:'Playfair Display',serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);overflow-x:hidden}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}h2{font-family:var(--display);font-size:clamp(2.65rem,5vw,4.7rem);line-height:.96;letter-spacing:-.025em}.section-pad{padding:8rem 0}.eyebrow{text-transform:uppercase;color:var(--gold);font-size:.67rem;font-weight:600;letter-spacing:.2em}.navbar{padding:1.5rem 0;transition:.3s;z-index:10}.navbar.scrolled{padding:.75rem 0;background:rgba(249,245,238,.96);box-shadow:0 1px 0 rgba(82,41,35,.08);backdrop-filter:blur(10px)}.navbar-brand{font-family:var(--serif);font-size:1.25rem;color:var(--wine);text-decoration:none}.navbar-brand i{font-size:.7rem;color:var(--rose)}.navbar-nav{align-items:center;gap:1.8rem}.navbar-nav a{font-size:.73rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);text-decoration:none}.navbar-nav .nav-rsvp{border:1px solid var(--wine);padding:.6rem 1rem;color:var(--wine)}.navbar-toggler{border:0;padding:0;width:30px;display:none}.navbar-toggler span{background:var(--wine);height:1px;display:block;margin:6px 0}.hero{min-height:100vh;position:relative;display:flex;align-items:center;background:linear-gradient(120deg,#f8f2e8 18%,#ead6c2 100%);overflow:hidden}.hero:before{content:'';position:absolute;width:55vw;height:55vw;border:1px solid rgba(181,139,66,.25);border-radius:50%;right:-10vw;top:8vh}.hero-copy{width:min(1180px,90%);margin:auto;z-index:2;padding-top:7rem}.ornament{font-size:2.1rem;color:var(--gold);line-height:1;margin-bottom:1rem}.hero h1{font-family:var(--display);font-size:clamp(4.1rem,9vw,9rem);line-height:.77;color:var(--wine);max-width:560px}.hero h1 span{display:block;font-family:var(--serif);font-size:.24em;font-style:italic;color:var(--gold);margin:.45em 0 .35em 1.1em}.hero-date{font-family:var(--serif);font-size:clamp(.9rem,1.2vw,1.15rem);letter-spacing:.02em;margin:2rem 0}.hero-date b{color:var(--gold)}.button{display:inline-flex;gap:1.2rem;align-items:center;background:var(--wine);border:1px solid var(--wine);padding:1rem 1.35rem;color:#fff;text-transform:uppercase;letter-spacing:.14em;font-size:.67rem;font-weight:600;text-decoration:none;transition:.25s}.button:hover{background:transparent;color:var(--wine)}.button span{font-size:1rem}.hero-art{position:absolute;width:min(48vw,680px);right:4vw;bottom:-1px;height:92vh;z-index:1}.hero-art img{width:100%;height:100%;object-fit:contain;object-position:bottom}.sun-disc{width:29vw;height:29vw;border-radius:50%;background:#d7b276;position:absolute;top:12%;left:10%;opacity:.5}.hero-bottom{position:absolute;bottom:2rem;left:5%;font-size:.61rem;text-transform:uppercase;letter-spacing:.17em}.hero-bottom span{display:inline-block;height:1px;width:50px;margin-left:12px;background:var(--gold);vertical-align:middle}.petal{position:absolute;color:var(--rose);z-index:1;animation:float 6s ease-in-out infinite}.p1{left:7%;top:24%;font-size:1.5rem}.p2{left:40%;top:15%;color:var(--gold);font-size:1.1rem;animation-delay:-3s}.p3{right:11%;top:20%;font-size:1.4rem;animation-delay:-1s}@keyframes float{50%{transform:translateY(-16px) rotate(15deg)}}.countdown{background:var(--wine);color:white}.countdown .eyebrow{color:#e7c889}.count-grid{display:flex;max-width:710px;margin:3rem auto 0;justify-content:center}.count-unit{width:25%;border-right:1px solid rgba(255,255,255,.25)}.count-unit:last-child{border:0}.count-unit strong{display:block;font-family:var(--display);font-size:clamp(2.8rem,6vw,5.2rem);line-height:1;color:#f5dfaf}.count-unit span{text-transform:uppercase;font-size:.58rem;letter-spacing:.2em}.story{background:#fbf9f5}.story-photo{position:relative}.story-photo img{width:85%;display:block;aspect-ratio:1/1;object-fit:cover;border-radius:50% 50% 4px 4px;filter:saturate(.9)}.photo-note{position:absolute;background:var(--rose);color:#fff;width:132px;height:132px;border-radius:50%;right:0;bottom:8%;padding:39px 10px;text-align:center;font-family:var(--serif);font-size:.87rem;line-height:1.2;transform:rotate(-12deg)}.photo-note em{font-size:1.15rem}.gold-line{width:68px;height:1px;background:var(--gold);margin:2rem 0}.body-copy{font-size:.95rem;line-height:1.9;color:#695b58}.signature{font-family:var(--serif);font-size:1.45rem;color:var(--wine);font-style:italic;margin-top:2rem}.events{background:var(--cream)}.event-card{height:100%;padding:2.5rem 2rem;display:flex;gap:1.6rem;background:rgba(255,255,255,.48);border:1px solid rgba(181,139,66,.38);transition:.3s}.event-card:hover{transform:translateY(-7px);box-shadow:0 15px 35px rgba(82,41,35,.1)}.event-card.featured{background:var(--wine);color:#fff}.event-number{font-family:var(--display);font-size:4.4rem;color:var(--gold);line-height:.8}.event-card h3{font-family:var(--serif);font-size:1.7rem}.event-card p:not(.eyebrow){font-size:.85rem;line-height:1.7}.event-place{font-size:.68rem;letter-spacing:.06em;color:var(--gold)}.gallery-grid{display:grid;grid-template-columns:1.12fr 1fr 1fr;grid-template-rows:225px 225px;gap:1rem}.gallery-item{border:0;padding:0;overflow:hidden;background:#ddd;cursor:pointer}.gallery-item:first-child{grid-row:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.6s}.gallery-item:hover img{transform:scale(1.07)}.gallery-item:first-child img{object-position:48% top}.gallery-item:nth-child(2) img{object-position:center 28%}.gallery-item:nth-child(3) img{object-position:center 24%}.venue{background:var(--wine);color:white;position:relative;overflow:hidden}.venue:before,.venue:after{content:'❦';position:absolute;color:rgba(235,199,132,.16);font-size:22rem}.venue:before{left:-50px;top:-120px}.venue:after{right:-50px;bottom:-120px;transform:rotate(180deg)}.venue-pattern{font-size:1.4rem;color:var(--gold);position:relative}.location-mark{font-size:2rem;color:#e7c889;margin:1rem}.venue h2{color:#f5dfaf}.venue-address{font-family:var(--serif);font-size:1.35rem;margin:1.2rem}.button-light{border-color:#e7c889;background:transparent;color:#f5dfaf}.button-light:hover{background:#f5dfaf;color:var(--wine)}.schedule{background:#fbf9f5}.schedule-line{display:flex;max-width:740px;margin:4rem auto 0;justify-content:space-between;position:relative}.schedule-line:before{content:'';height:1px;background:var(--gold);position:absolute;top:44px;left:12%;right:12%}.schedule-line>div{z-index:1;text-align:center;width:50%}.schedule-line strong{font-family:var(--serif);font-size:1.8rem;display:block}.schedule-line span{width:14px;height:14px;border-radius:50%;background:var(--wine);border:3px solid var(--ivory);display:inline-block;margin:17px}.schedule-line p{font-family:var(--serif);font-size:1.22rem}.schedule-line small{font-family:var(--sans);text-transform:uppercase;font-size:.55rem;letter-spacing:.15em;color:var(--gold)}.rsvp{background:#eadfce}.rsvp-card{max-width:1040px;margin:auto;background:#fffaf1;display:grid;grid-template-columns:1fr 1.15fr;box-shadow:0 20px 60px rgba(79,39,36,.09)}.rsvp-intro{background:var(--wine);padding:4rem;display:flex;flex-direction:column;justify-content:center;color:white}.rsvp-intro .eyebrow{color:#e7c889}.rsvp-intro h2{color:#f6ddad}.rsvp-intro p:last-child{font-size:.85rem;color:#e5cfc5;line-height:1.8}form{padding:3.5rem}form label,fieldset{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.13em;margin-bottom:1.25rem;color:#725a54}input,select,textarea{width:100%;border:0;border-bottom:1px solid #d9c7b9;background:transparent;font-family:var(--sans);font-size:.9rem;letter-spacing:0;padding:.7rem 0;color:var(--ink);outline:none}textarea{height:75px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--wine)}fieldset{border:0;padding:0;margin-top:1.6rem}legend{font-size:.66rem;letter-spacing:.13em;margin-bottom:.6rem}.radio{display:inline-flex;align-items:center;margin-right:1.2rem;text-transform:none;letter-spacing:0;font-size:.78rem}.radio input{width:auto;margin-right:.4rem}.form-message{font-size:.82rem;color:var(--wine);margin-top:1rem}footer{text-align:center;background:#2c1821;color:#f8e1b3;padding:5rem 1rem}footer .ornament{color:#b58b42}footer .eyebrow{color:#c99b55}footer h2{font-size:clamp(2.8rem,5vw,4.5rem)}footer h2 span{font-family:var(--serif);font-size:.6em;font-style:italic;color:#c99b55}footer p:last-child{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase}.mobile-rsvp{display:none}dialog{border:0;padding:0;background:rgba(0,0,0,.88);max-width:min(90vw,900px);max-height:90vh}dialog::backdrop{background:rgba(0,0,0,.75)}dialog img{display:block;max-width:100%;max-height:85vh;object-fit:contain}dialog button{position:absolute;right:0;top:0;border:0;background:#fff;color:#333;font-size:2rem;line-height:1;width:40px;height:40px}.reveal{opacity:0;transform:translateY(24px);transition:.8s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}@media(max-width:767px){.section-pad{padding:5.5rem 0}.navbar{padding:1rem 0}.navbar-toggler{display:block}.navbar-collapse{display:none}.navbar-collapse.open{display:block;position:absolute;top:100%;left:0;right:0;background:#fbf7f0;padding:1rem 5%;box-shadow:0 8px 15px rgba(0,0,0,.05)}.navbar-nav{align-items:stretch;gap:0}.navbar-nav li a{display:block;padding:1rem 0}.navbar-nav .nav-rsvp{border:0;padding:1rem 0}.hero{min-height:760px;align-items:flex-start}.hero-copy{padding-top:9.5rem;text-align:center}.hero h1{font-size:clamp(3.5rem,16vw,5.6rem);margin:auto}.hero h1 span{margin:.5em 0}.hero-date{font-size:.78rem;line-height:1.8;margin:1.5rem 0}.hero-art{width:95vw;height:51vh;right:3vw}.sun-disc{width:54vw;height:54vw;left:20%;top:3%}.hero-bottom{display:none}.p2{left:12%;top:19%}.p3{right:7%;top:46%}.count-grid{margin-top:2rem}.count-unit strong{font-size:2.55rem}.count-unit span{font-size:.45rem;letter-spacing:.1em}.story-photo img{width:92%;margin:auto}.photo-note{width:105px;height:105px;padding:29px 6px;right:2%;font-size:.75rem}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:220px 150px}.gallery-item:first-child{grid-row:span 2}.rsvp-card{grid-template-columns:1fr}.rsvp-intro,form{padding:2.5rem 1.6rem}.schedule-line{margin-top:2rem}.event-card{padding:2rem 1.3rem}.mobile-rsvp{display:flex;justify-content:center;gap:.6rem;position:fixed;bottom:12px;left:14px;right:14px;background:var(--wine);z-index:9;color:#fff;text-decoration:none;padding:1rem;font-size:.67rem;text-transform:uppercase;letter-spacing:.16em;box-shadow:0 6px 20px rgba(70,16,31,.25)}footer{padding-bottom:6rem}}
