:root{--bg:#2c1e16;--surface:#38251b;--surface-2:#432d21;--cream:#f5f1df;--muted:#cbbfa9;--gold:#d4af37;--gold-soft:#aa8a35;--line:rgba(212,175,55,.3);--serif:"Playfair Display",Georgia,serif;--script:"Great Vibes",cursive;--sans:"DM Sans",Arial,sans-serif;--shadow:0 24px 60px rgba(12,6,3,.28)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--cream);font-family:var(--sans);font-size:16px;line-height:1.7;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}body.locked{overflow:hidden}.splash{position:fixed;z-index:100;inset:0;display:grid;place-items:center;background:radial-gradient(circle at center,#422b20,#211610 72%);transition:opacity 1s ease,visibility 1s}.splash.opened{opacity:0;visibility:hidden}.splash-grain{position:absolute;inset:0;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.7' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.envelope-button{position:relative;width:min(82vw,380px);border:0;background:none;color:var(--cream);font:500 1rem var(--serif);letter-spacing:.04em;cursor:pointer;animation:float 4s ease-in-out infinite}.envelope-button:focus-visible{outline:2px solid var(--gold);outline-offset:8px}.envelope{display:block;width:100%;filter:drop-shadow(0 24px 20px rgba(0,0,0,.28));margin-bottom:28px}.open-kicker{display:block;color:var(--gold);font:600 .7rem var(--sans);letter-spacing:.28em;margin-bottom:5px}@keyframes float{50%{transform:translateY(-8px)}}.sound-toggle{position:fixed;z-index:50;right:18px;top:18px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:rgba(44,30,22,.82);backdrop-filter:blur(10px);color:var(--gold);cursor:pointer}.sound-bars{display:flex;gap:3px;justify-content:center;align-items:center;height:16px}.sound-bars i{display:block;width:2px;height:8px;background:currentColor;animation:pulse .8s ease-in-out infinite alternate}.sound-bars i:nth-child(2){height:15px;animation-delay:.2s}.sound-bars i:nth-child(3){height:11px;animation-delay:.4s}.sound-toggle.muted .sound-bars i{animation:none;height:2px}@keyframes pulse{to{height:16px}}.invitation{opacity:0;transform:translateY(18px);transition:opacity 1s .25s,transform 1s .25s}.invitation.visible{opacity:1;transform:none}.section-shell{position:relative;width:min(100% - 36px,760px);margin:auto;padding:88px 0;text-align:center;border-bottom:1px solid var(--line)}.section-shell h2{font:500 clamp(2.1rem,9vw,3.8rem)/1.1 var(--serif);margin:4px 0 30px}.section-number{position:absolute;top:94px;left:0;margin:0;color:var(--gold-soft);font-size:.72rem;letter-spacing:.24em}.eyebrow{margin:0 0 28px;color:var(--gold);font-size:.68rem;font-weight:600;letter-spacing:.3em}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding-top:110px}.hero h1{margin:0;font:400 clamp(4.2rem,20vw,8rem)/.77 var(--script);display:flex;flex-direction:column}.hero h1 b{color:var(--gold);font:400 2rem/1 var(--serif);margin:12px}.botanical{color:var(--gold);font-size:3.5rem;opacity:.9}.ornament{display:flex;align-items:center;gap:12px;color:var(--gold);margin:32px 0}.ornament span{display:block;width:48px;height:1px;background:var(--line)}.lead{max-width:520px;color:var(--muted);font-family:var(--serif);font-size:1.05rem;font-style:italic}.date-label{font-family:var(--serif);font-size:1.12rem;letter-spacing:.08em}.text-link{margin-top:24px;color:var(--gold);font-size:.76rem;letter-spacing:.24em;text-decoration:none}.count-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.count-box{padding:20px 3px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,rgba(255,255,255,.035),transparent)}.count-box strong{display:block;color:var(--gold);font:500 clamp(1.7rem,8vw,3rem) var(--serif)}.count-box span{font-size:.62rem;letter-spacing:.12em;color:var(--muted)}.script-label{font:400 2rem/1 var(--script);color:var(--gold);margin:0}.gallery-wrap{margin-inline:calc(50% - 50vw);overflow:hidden}.gallery{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px calc((100vw - min(82vw,520px))/2) 22px;scrollbar-width:none}.gallery::-webkit-scrollbar{display:none}.slide{flex:0 0 min(82vw,520px);aspect-ratio:4/5;border-radius:140px 140px 18px 18px;overflow:hidden;border:1px solid var(--line);scroll-snap-align:center;box-shadow:var(--shadow)}.slide img{width:100%;height:100%;object-fit:cover;display:block}.gallery-dots{display:flex;justify-content:center;gap:8px}.gallery-dots i{width:7px;height:7px;border:1px solid var(--gold);border-radius:50%;transition:.3s}.gallery-dots i.active{background:var(--gold);transform:scale(1.25)}.story-copy{max-width:540px;margin:28px auto 0;color:var(--muted);font-family:var(--serif);font-style:italic}.venue-photo{position:relative;margin:0 0 18px;border-radius:160px 160px 18px 18px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}.venue-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.venue-photo figcaption{display:flex;flex-direction:column;padding:22px}.venue-photo strong{font:500 1.35rem var(--serif);color:var(--gold)}.venue-photo span{color:var(--muted);font-size:.88rem}.map{width:100%;height:300px;border:1px solid var(--line);border-radius:18px;filter:sepia(.35) saturate(.75) contrast(1.05)}.actions{display:grid;gap:12px;margin-top:18px}.button{display:flex;align-items:center;justify-content:center;min-height:54px;padding:12px 20px;border-radius:999px;font:600 .78rem var(--sans);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;cursor:pointer}.button-gold{border:1px solid var(--gold);background:var(--gold);color:#271810}.button-outline{border:1px solid var(--gold);background:transparent;color:var(--cream)}.calendar-menu{position:relative}.calendar-menu summary{list-style:none}.calendar-menu summary::-webkit-details-marker{display:none}.calendar-menu>div{position:absolute;z-index:10;top:calc(100% + 8px);left:0;right:0;padding:8px;background:var(--cream);border-radius:14px;box-shadow:var(--shadow)}.calendar-menu>div a{display:block;padding:10px;color:var(--bg);text-decoration:none}.timeline{position:relative;max-width:500px;margin:auto;text-align:left}.timeline:before{content:"";position:absolute;left:31px;top:20px;bottom:20px;width:1px;background:var(--line)}.timeline-item{position:relative;display:grid;grid-template-columns:64px 70px 1fr;align-items:center;min-height:90px}.timeline-icon{z-index:1;display:grid;place-items:center;width:38px;height:38px;margin-left:12px;border:1px solid var(--gold);border-radius:50%;background:var(--bg);color:var(--gold);font-size:.85rem}.timeline-time{color:var(--gold);font:500 1rem var(--serif)}.timeline-title{font:500 1.08rem var(--serif)}.accordions{text-align:left}.accordions details{border-bottom:1px solid var(--line)}.accordions summary{display:flex;justify-content:space-between;align-items:center;padding:21px 4px;cursor:pointer;font-family:var(--serif);font-size:1.05rem;list-style:none}.accordions summary:after{content:"+";color:var(--gold);font:300 1.5rem var(--sans)}.accordions details[open] summary:after{content:"−"}.accordions p{margin:0;padding:0 30px 22px 4px;color:var(--muted);font-size:.92rem}.section-intro{color:var(--muted);max-width:520px;margin:-10px auto 30px}form{text-align:left;padding:22px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.025)}label,legend{display:block;color:var(--muted);font-size:.82rem;letter-spacing:.04em}input,select,textarea{width:100%;margin:7px 0 18px;padding:14px 15px;border:1px solid var(--line);border-radius:12px;background:#251812;color:var(--cream);font:1rem var(--sans);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,175,55,.12)}fieldset{border:0;padding:0;margin:0 0 18px}.radio{display:inline-flex;align-items:center;margin:9px 8px 0 0}.radio input{position:absolute;opacity:0;width:1px}.radio span{display:block;border:1px solid var(--line);border-radius:999px;padding:9px 13px;color:var(--cream)}.radio input:checked+span{background:var(--gold);border-color:var(--gold);color:var(--bg)}.submit{width:100%}.form-status{min-height:26px;text-align:center;color:var(--gold);margin:14px 0 0}footer{text-align:center;padding:70px 20px 24px;color:var(--muted)}.footer-names{font:400 2.4rem var(--script);color:var(--gold)}.admin-secret{display:block;margin:38px auto 0;border:0;background:none;color:rgba(212,175,55,.16);font-size:.8rem;cursor:pointer}@media(min-width:700px){.hero h1{flex-direction:row;align-items:center;gap:24px}.hero h1 b{margin:0}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.actions{grid-template-columns:1fr 1fr}.section-shell{padding:112px 0}.section-number{top:119px}.timeline-item{grid-template-columns:76px 90px 1fr}.timeline:before{left:38px}.timeline-icon{margin-left:19px}}
#rsvpForm:has(input[name="attendance"][value="no"]:checked) #guestCountWrap{display:none!important}
.whatsapp-share{display:inline-flex;align-items:center;gap:9px;margin:18px auto 0;padding:12px 18px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--cream);font:600 .76rem var(--sans);letter-spacing:.08em;cursor:pointer}.whatsapp-share span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--gold);color:var(--bg);font-size:.9rem}.whatsapp-share:hover{border-color:var(--gold)}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
