:root{--ivory:#faf6ed;--paper:#fffdf8;--ink:#3c342f;--muted:#786d64;--gold:#ae8957;--gold2:#d8bc8c;--rose:#bd8b83;--green:#71867a;--serif:"Cormorant Garamond",Georgia,serif;--script:"Great Vibes",cursive;--sans:Inter,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ivory);color:var(--ink);font-family:var(--serif);margin:0;font-size:18px;overflow-x:hidden}body:before{content:"";pointer-events:none;opacity:.28;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='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit}.botanical{z-index:-1;opacity:.12;pointer-events:none;background:url(/images/botanical.png) 50%/cover no-repeat;position:fixed;inset:0}nav{z-index:20;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:linear-gradient(#faf6edf5,#faf6ed26);justify-content:space-between;align-items:center;padding:18px clamp(22px,5vw,72px);display:flex;position:fixed;top:0;left:0;right:0}nav .brand{font:600 18px var(--serif);letter-spacing:.13em;color:var(--gold);text-decoration:none}nav .brand span{font-style:italic;font-weight:400}nav div{gap:clamp(16px,3vw,38px);display:flex}nav div a{font:500 11px var(--sans);text-transform:uppercase;letter-spacing:.18em;text-decoration:none}section,footer{text-align:center;padding:110px max(24px,6vw);position:relative}.hero{flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding-top:100px;display:flex;overflow:hidden}.hero:before,.hero:after{content:"";aspect-ratio:1;opacity:.4;background:url(/images/botanical.png) 0/auto 140% no-repeat;width:min(41vw,430px);position:absolute}.hero:before{top:-9%;left:-9%}.hero:after{bottom:-12%;right:-9%;transform:rotate(180deg)}.hero>*{z-index:1;position:relative}.eyebrow,.kicker{font:500 11px var(--sans);text-transform:uppercase;letter-spacing:.3em;color:var(--gold);margin:0 0 22px}.hero h1{font:400 clamp(4.5rem,12vw,9rem)/.85 var(--script);color:#9f7369;text-shadow:0 2px 18px #5f413714;align-items:center;gap:clamp(12px,2.5vw,32px);margin:0;display:flex}.hero h1 b{font:italic 400 clamp(2rem,5vw,4rem) var(--serif);color:var(--gold)}.hero p{margin:38px 0 18px;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.55}.flourish{color:var(--gold2);justify-content:center;align-items:center;gap:12px;margin:18px auto;display:flex}.flourish span{background:linear-gradient(90deg,transparent,var(--gold2));width:46px;height:1px}.flourish span:last-child{transform:rotate(180deg)}.flourish i{font-size:10px;font-style:normal}.hero-date{grid-template-columns:auto auto auto;align-items:center;gap:22px;margin-top:12px;display:grid}.hero-date strong{font-size:2.5rem;font-weight:400}.hero-date>span{border-inline:1px solid var(--gold2);text-transform:uppercase;letter-spacing:.2em;padding:0 22px;font-size:.9rem}.hero-date small{font:400 9px var(--sans);letter-spacing:.2em;margin-top:4px;display:block}.time{font:500 12px var(--sans);letter-spacing:.25em;margin-top:12px}.scroll{font:500 9px var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;position:absolute;bottom:26px}.scroll span{animation:1.8s infinite bob;display:inline-block}.verse{max-width:760px;margin:auto;padding:72px 20px}.verse blockquote{font:italic 400 clamp(1.7rem,4vw,2.6rem)/1.25 var(--serif);margin:22px auto 8px}.verse cite{font:500 10px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-style:normal}.verse.small{padding-block:80px}.verse.small blockquote{font-size:clamp(1.35rem,3vw,1.9rem)}.details{max-width:800px;margin:auto}.details h2,footer h2{font:400 clamp(3.2rem,8vw,6.3rem)/1 var(--script);color:#a6756d;margin:0 0 42px}.details h2 i,footer h2 i{font:italic 400 .55em var(--serif);color:var(--gold)}.date-card{justify-content:center;align-items:center;gap:26px;display:flex}.date-card span{font:500 12px var(--sans);text-transform:uppercase;letter-spacing:.17em;max-width:90px}.date-card strong{border-inline:1px solid var(--gold2);padding:0 28px;font-size:4.5rem;font-weight:400;line-height:1}.detail-time{font:500 12px var(--sans);letter-spacing:.2em;margin:25px 0 35px}.details h3{text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px;font-size:2rem;font-weight:500}.details>p:last-child,.venue p{color:var(--muted);max-width:420px;margin-inline:auto;line-height:1.6}.count-section{background:#ede7da;border-block:1px solid #ae895733}.count-section h2,.photos h2,.special h2,.venue h2{margin:0 0 50px;font-size:clamp(2.7rem,6vw,5rem);font-weight:400}.countdown{grid-template-columns:repeat(4,1fr);max-width:760px;margin:auto;display:grid}.countdown div{border-right:1px solid #ae89574d;padding:15px}.countdown div:last-child{border:0}.countdown strong{font:400 clamp(2.4rem,6vw,4.5rem)/1 var(--serif);color:#8f6c46;display:block}.countdown span{font:500 9px var(--sans);text-transform:uppercase;letter-spacing:.18em}.today{font:400 3rem var(--script);color:var(--rose)}.photos{padding-inline:0;overflow:hidden}.carousel-wrap{max-width:1200px;margin:auto}.carousel{scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;gap:22px;padding:16px max(24px,50vw - 550px);display:flex;overflow-x:auto}.carousel::-webkit-scrollbar{display:none}.carousel:active{cursor:grabbing}.carousel figure{scroll-snap-align:center;background:#eee5d9;border-radius:180px 180px 14px 14px;flex:0 0 min(76vw,420px);height:min(100vw,540px);margin:0;position:relative;overflow:hidden;box-shadow:0 18px 50px #523e2e1f}.carousel img{object-fit:cover;width:100%;height:100%;transition:transform .6s}.carousel figure:hover img{transform:scale(1.025)}.carousel.gallery figure{border-radius:12px;flex-basis:min(68vw,350px);height:min(78vw,440px)}.photo-fallback{color:#fff;background:linear-gradient(145deg,#eee3d7,#d6c2ab);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.photo-fallback span{font:400 5rem var(--script)}.photo-fallback em{font:500 10px var(--sans);text-transform:uppercase;letter-spacing:.25em}.carousel-controls{justify-content:center;align-items:center;gap:25px;margin-top:26px;display:flex}.carousel-controls button{border:1px solid var(--gold2);width:44px;height:44px;color:var(--gold);cursor:pointer;background:0 0;border-radius:50%;place-items:center;display:grid}.carousel-controls button:hover{background:var(--gold);color:#fff}.carousel-controls svg{width:17px}.carousel-controls span{font:500 9px var(--sans);text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}.special{background:var(--paper)}.special h2 em{color:var(--rose);font-weight:400}.special .script{font:400 clamp(3.5rem,8vw,6rem) var(--script);color:#a6756d;margin-top:30px}.special>p:last-child{font:500 11px/2 var(--sans);letter-spacing:.18em;text-transform:uppercase}.venue{padding-block:150px}.venue-inner{background:#fffdf8db;border:1px solid #ae895759;border-radius:260px 260px 22px 22px;max-width:740px;margin:auto;padding:80px 30px;box-shadow:0 25px 70px #503e2c1a}.cross{color:var(--gold);margin-bottom:18px}.venue h2{text-transform:uppercase;letter-spacing:.06em;margin-bottom:20px}.venue a{color:#fff;font:500 11px var(--sans);text-transform:uppercase;letter-spacing:.16em;background:#9b754b;border-radius:999px;align-items:center;gap:10px;margin-top:30px;padding:16px 25px;text-decoration:none;transition:all .25s;display:inline-flex;box-shadow:0 9px 25px #644a2c33}.venue a:hover{background:#80603f;transform:translateY(-2px)}.venue a svg{width:17px}.moments{background:#eee8dc}footer{flex-direction:column;justify-content:center;align-items:center;min-height:85vh;display:flex;overflow:hidden}footer:after{content:"";opacity:.28;pointer-events:none;background:url(/images/botanical.png) bottom/100% no-repeat;height:55%;position:absolute;inset:auto 0 -23%}footer>*{z-index:1;position:relative}.footer-date{font:500 11px var(--sans);letter-spacing:.35em;color:var(--gold)}footer .verse{padding:30px 10px}.blessing{color:var(--muted);font-style:italic}.music{z-index:30;color:var(--gold);cursor:pointer;background:#fffdf8eb;border:1px solid #ae895773;border-radius:999px;align-items:center;gap:8px;padding:11px 15px;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 8px 28px #46322321}.music svg{width:17px}.music span{font:500 9px var(--sans);text-transform:uppercase;letter-spacing:.1em}.music.playing svg{animation:1.5s infinite pulse}.reveal{opacity:0;transition:opacity .9s,transform .9s;transform:translateY(24px)}.reveal.visible{opacity:1;transform:none}@keyframes bob{50%{transform:translateY(5px)}}@keyframes pulse{50%{transform:scale(1.15)}}@media (width<=600px){nav{padding:16px 18px}nav div{gap:14px}nav div a{letter-spacing:.1em;font-size:8px}nav div a:first-child{display:none}.hero{padding-inline:20px}.hero h1{flex-direction:column;gap:0;font-size:5.4rem}.hero h1 b{margin:-6px 0;font-size:2rem}.hero p{margin-top:26px;font-size:1rem}.hero:before,.hero:after{opacity:.3;width:75vw}.hero-date{gap:12px}.hero-date strong{font-size:2rem}.hero-date>span{padding-inline:13px}.scroll{bottom:18px}.countdown div{padding:9px 4px}.countdown strong{font-size:2.1rem}.countdown span{letter-spacing:.08em;font-size:7px}.date-card{gap:12px}.date-card strong{padding-inline:16px;font-size:3.7rem}.date-card span{font-size:9px}.venue-inner{border-radius:160px 160px 18px 18px;padding:65px 22px}.venue h2{font-size:2.6rem}.music span{display:none}.music{padding:12px}.verse{padding-inline:10px}section,footer{padding-inline:22px}.photos{padding-inline:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}.hero:before,.hero:after,footer:after{background-image:none!important;display:none!important}body{background-image:linear-gradient(#faf6edcc,#faf6edcc),url(/images/botanical.png);background-position:50%;background-size:cover;background-attachment:fixed}
