:root{--wine:#651d27;--wine2:#491019;--paper:#f1e6d2;--ink:#321c19;--gold:#c9a45e;--rose:#bd7d7e;--cream:#fff8eb;--serif:'Cormorant Garamond',Georgia,serif;--display:'Italiana',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--wine);color:var(--cream);font-family:var(--sans);font-weight:300;overflow-x:hidden}body.locked{overflow:hidden}.grain{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.14'/%3E%3C/svg%3E")}.cover{position:fixed;z-index:90;inset:0;display:grid;place-content:center;text-align:center;padding:2rem;background:radial-gradient(circle at 50% 45%,#7c2d38 0,var(--wine) 43%,var(--wine2) 100%);transition:transform 1.2s cubic-bezier(.77,0,.18,1),opacity .8s}.cover.open{transform:translateY(-105%);opacity:.7}.cover-flowers{color:var(--gold);font-size:1.2rem;letter-spacing:.55rem;margin-bottom:2rem}.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:.66rem;font-weight:500}.cover h1{font-family:var(--display);font-size:clamp(3.2rem,14vw,7rem);font-weight:400;line-height:.82;margin:1.8rem 0}.cover h1 span{display:block}.cover h1 i,.closing h2 i{font-family:var(--serif);font-weight:400;color:var(--gold);font-size:.7em}.save{font-family:var(--serif);font-size:1.55rem;font-style:italic;margin:.75rem}.cover-date{font-family:var(--display);letter-spacing:.22em}.seal{width:74px;height:74px;border-radius:50%;border:0;margin:2rem auto .6rem;background:var(--gold);color:var(--wine2);box-shadow:0 8px 30px #1d05085c,inset 0 0 0 3px #6d4f25;cursor:pointer;font:600 1rem var(--serif);transition:.25s}.seal:hover{transform:scale(1.06) rotate(-4deg)}.seal small{font-style:italic}.tap{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;opacity:.65}.nav{position:fixed;z-index:40;top:0;left:0;width:100%;padding:1rem 5vw;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(#51131bea,transparent);mix-blend-mode:normal}.nav a{color:inherit;text-decoration:none}.nav-mark{font:1.25rem var(--display)}.menu-toggle{border:1px solid #ffffff55;background:#5d1824d9;border-radius:99px;color:inherit;padding:.65rem 1rem;font:500 .7rem var(--sans);letter-spacing:.12em;text-transform:uppercase}.menu{display:none;position:absolute;right:5vw;top:4rem;flex-direction:column;background:var(--paper);color:var(--ink);padding:1rem;min-width:170px;box-shadow:0 15px 50px #0004}.menu.open{display:flex}.menu a{padding:.65rem;font:500 1rem var(--serif)}.section{position:relative;padding:7rem 7vw}.hero{min-height:100svh;padding-top:9rem;text-align:center;overflow:hidden;background:radial-gradient(circle at 40% 20%,#852f3c,var(--wine) 45%,#55151e)}.display,.section-heading h2,.countdown h2{font:400 clamp(2.9rem,12vw,6.8rem)/.92 var(--display);margin:1.5rem auto;letter-spacing:-.035em}.display em,.section-heading em,.countdown em{font-family:var(--serif);color:var(--gold);font-weight:400}.intro{max-width:560px;margin:2rem auto 4rem;line-height:1.8;font-size:.95rem}.photo-strip{height:370px;max-width:850px;margin:0 auto 3rem;position:relative}.photo{position:absolute;width:210px;height:280px;background:linear-gradient(150deg,#d7b9a3,#815057);padding:10px 10px 45px;margin:0;box-shadow:0 18px 45px #23070c88;transform:rotate(-6deg);overflow:hidden}.photo:before,.story-photo:before{content:'S  &  P';position:absolute;inset:10px 10px 45px;display:grid;place-items:center;background:linear-gradient(145deg,#dcc7b3,#8c5b61);color:#5b2830;font:2rem var(--display)}.photo img,.story-photo img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover}.photo span{position:absolute;bottom:14px;left:0;width:100%;color:var(--ink);font:.95rem var(--serif);font-style:italic}.p1{left:4%;top:42px}.p2{left:50%;top:0;transform:translateX(-50%) rotate(2deg);z-index:2}.p3{right:4%;top:56px;transform:rotate(8deg)}.scroll-cue{color:inherit;text-decoration:none;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase}.scroll-cue span{display:block;font-size:1.5rem;margin-top:.5rem}.paper{background:var(--paper);color:var(--ink)}.paper:before,.paper:after{content:'';position:absolute;left:0;width:100%;height:22px;background:var(--paper);filter:url('#rough')}.paper-inner{text-align:center;max-width:760px;margin:auto;border:1px solid #765e4245;padding:5rem 1.5rem;position:relative}.paper-inner:before{content:'';position:absolute;inset:10px;border:1px solid #765e4233}.ink{color:#704831}.formal{font:1.1rem/1.7 var(--serif);letter-spacing:.04em}.paper h2{font:400 clamp(3.2rem,12vw,6.3rem)/.8 var(--display);margin:2rem 0}.paper h2 span{display:block}.paper h2 i{color:#a0733c;font:italic 2.8rem var(--serif)}.date-lockup{display:flex;align-items:center;justify-content:center;gap:1.3rem;margin:2rem auto}.date-lockup span{font:500 .68rem/1.6 var(--sans);text-transform:uppercase;letter-spacing:.15em}.date-lockup strong{font:400 4.5rem var(--display);padding:0 1.3rem;border-left:1px solid #765e4266;border-right:1px solid #765e4266}.ornament{color:#9d7440;font-size:1.6rem;margin-top:2rem}.events{background:#55151e}.section-heading{text-align:center;max-width:800px;margin:0 auto 4rem}.section-heading>p:not(.eyebrow){line-height:1.7}.event-list{max-width:1000px;margin:auto;border-top:1px solid #fff2}.event{display:grid;grid-template-columns:50px 1fr;gap:1rem;padding:2rem 0;border-bottom:1px solid #fff2}.event-number{font:1rem var(--display);color:var(--gold)}.event h3{font:400 2rem var(--display);margin:0 0 .7rem}.event-meta{font:.75rem var(--sans);text-transform:uppercase;letter-spacing:.12em;color:#e0bd8c;line-height:1.7}.event-note{font:italic 1.1rem var(--serif);margin-bottom:.4rem}.event-dress{font-size:.7rem;opacity:.65}.story{min-height:850px;display:grid;place-items:center;background:#35100f;overflow:hidden}.story-photo{width:min(75vw,480px);height:600px;position:relative;transform:rotate(-4deg);background:#a26b66;box-shadow:0 25px 70px #0008}.story-photo:before{inset:0;background:linear-gradient(145deg,#d6b79a,#725050)}.story-photo span{position:absolute;z-index:3;bottom:1rem;right:1rem;color:white;font:1.5rem var(--display)}.note{position:absolute;width:min(84vw,500px);padding:3.5rem 2.5rem;background:#eee0ca;color:var(--ink);transform:translate(16%,45%) rotate(3deg);box-shadow:0 20px 70px #0006}.note h2{font:400 3.5rem var(--display);margin:.6rem 0 1.2rem}.note p{font:1.1rem/1.65 var(--serif)}.note .signature{text-align:right;font-style:italic;font-size:1.5rem}.countdown{text-align:center;background:var(--wine);padding-block:9rem}.clock{display:flex;align-items:flex-start;justify-content:center;gap:.5rem;margin-top:4rem}.clock div{min-width:58px}.clock strong{display:block;font:400 clamp(2rem,8vw,4.5rem) var(--display)}.clock span{font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:#e0bd8c}.clock b{font:300 2rem var(--serif);color:var(--gold)}.venue{text-align:center}.venue-card{max-width:760px;margin:auto}.venue h2{font-size:clamp(2.7rem,10vw,5rem);line-height:1}.venue-card>p{font:1.15rem var(--serif)}.map-art{height:260px;margin:2.5rem 0;background:#e1d0b4;position:relative;overflow:hidden;border:1px solid #6f563434}.map-art:before,.map-art:after,.map-art div{content:'';position:absolute;width:130%;height:35px;background:#b9a486;transform:rotate(18deg);left:-10%;top:45%}.map-art:after{transform:rotate(-38deg);top:33%;background:#c7b596}.map-art div{transform:rotate(65deg);background:#a99274}.map-art span{position:absolute;z-index:3;left:56%;top:40%;width:44px;height:44px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--wine);color:white;display:grid;place-items:center}.map-art span::first-letter{transform:rotate(45deg)}.button{display:inline-flex;align-items:center;justify-content:center;gap:1rem;text-decoration:none;border:0;padding:1rem 1.4rem;min-height:52px;font:500 .72rem var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.dark{background:var(--wine);color:white}.light{background:var(--paper);color:var(--ink);width:100%}.rsvp{background:#2d0c12}.rsvp-form{max-width:620px;margin:auto}.rsvp-form>label,.rsvp-form fieldset{display:block;border:0;padding:0;margin:0 0 1.6rem;font:italic 1.1rem var(--serif)}input,select,textarea{display:block;width:100%;margin-top:.5rem;border:0;border-bottom:1px solid #fff7;background:#ffffff09;color:white;padding:.9rem .3rem;border-radius:0;font:300 1rem var(--sans)}select option{color:#222}textarea{resize:vertical}.rsvp-form fieldset{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.rsvp-form legend{margin-bottom:.7rem}.choice input{position:absolute;opacity:0}.choice span{display:block;border:1px solid #fff5;padding:1rem;text-align:center;font:400 .78rem var(--sans);cursor:pointer}.choice input:checked+span{background:var(--paper);color:var(--ink)}.form-status{text-align:center;min-height:1.5rem;font:italic 1rem var(--serif)}.closing{min-height:85svh;display:grid;place-content:center;text-align:center;background:radial-gradient(circle,#7f2b36,var(--wine2))}.closing h2{font:400 clamp(3.5rem,14vw,7rem) var(--display);margin:1.5rem 0}.closing h2 span{display:block}.closing-flower{font-size:2rem;color:var(--gold);margin:2rem}.tiny{text-transform:uppercase;font-size:.55rem;letter-spacing:.2em;opacity:.55}.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}@media(min-width:720px){.nav{padding-inline:3.5vw}.menu-toggle{display:none}.menu{display:flex;position:static;flex-direction:row;background:none;color:white;padding:0;box-shadow:none}.menu a{font:500 .65rem var(--sans);letter-spacing:.13em;text-transform:uppercase;margin-left:1.5rem}.event{grid-template-columns:70px 1.2fr 1fr;align-items:center}.event h3{font-size:2.7rem}.event-details{text-align:right}.story{grid-template-columns:1fr 1fr;padding:8rem 10vw}.story-photo{justify-self:end}.note{position:relative;transform:translate(-10%,20%) rotate(3deg)}.clock{gap:1.5rem}.clock div{min-width:100px}}@media(max-width:650px){.photo-strip{height:310px}.photo{width:145px;height:215px}.p1{left:-5%;top:40px}.p3{right:-5%;top:50px}.story{padding-bottom:14rem}.story-photo{height:480px}.note{transform:translate(0,58%) rotate(2deg)}.rsvp-form fieldset{grid-template-columns:1fr}.clock{gap:.2rem}.clock div{min-width:55px}}
