@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Manrope:wght@400;500;600&family=Marck+Script&display=swap');

:root{--ink:#202421;--muted:#737b75;--accent:#486966;--script:'Marck Script','Segoe Script',cursive;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);font-family:var(--sans);background:#b9e9ed url('assets/watercolor.png') center top/1280px 640px repeat}body:before{content:'';position:fixed;inset:0;background:rgba(240,255,255,.18);z-index:-1}a{color:inherit}a:focus-visible{outline:2px solid var(--accent);outline-offset:6px} .masthead{max-width:1140px;margin:auto;padding:30px 28px;display:flex;align-items:center;justify-content:space-between}.monogram{font:500 20px var(--serif);text-decoration:none;letter-spacing:3px}.monogram span{font-size:25px;margin:0 10px}.masthead nav{display:flex;gap:30px}.masthead nav a{font-size:11px;text-decoration:none;letter-spacing:1.3px;text-transform:uppercase}.masthead nav a:hover{border-bottom:1px solid}.intro{text-align:center;margin:35px 20px 47px}.eyebrow{font-size:10px;letter-spacing:2.2px;line-height:1.7;text-transform:uppercase}.intro h1{font:400 clamp(65px,7.8vw,104px)/1 var(--serif);letter-spacing:-3px;margin:14px 0 20px}.intro p{font-size:12px;letter-spacing:2.4px}.intro p span{margin:0 15px}.invitation-grid{display:grid;grid-template-columns:1.14fr 1fr;align-items:start;gap:30px;max-width:1040px;margin:0 auto;padding:0 24px}.paper{background:#fff;box-shadow:0 12px 65px #356a7120;border-radius:7px;overflow:hidden}.main-paper{transform:rotate(-.65deg)}.details-paper{margin-top:66px;transform:rotate(.65deg)}.paper-top{display:flex;justify-content:space-between;align-items:center;margin:25px 30px 0;font-size:9px;text-transform:uppercase;letter-spacing:1.8px;color:var(--muted)}.paper-top>span:last-child{font-size:21px;color:var(--ink)}h2{font:400 46px/1.08 var(--script);margin:20px 0}p{font-size:13px;line-height:1.8}.welcome{text-align:center;padding:10px 18px 0}.welcome h2{font-size:48px;transform:rotate(-3deg);margin:25px -8px 3px}.welcome h2 span{font-size:40px}.drawing{background-image:url('assets/illustrations.png');background-repeat:no-repeat;margin-left:auto;margin-right:auto;mix-blend-mode:multiply;pointer-events:none}.table-drawing{width:282px;height:208px;background-size:742px 1114px;background-position:-128px -214px;margin-top:15px}.welcome-copy{font-family:var(--serif);font-size:20px;line-height:1.35;margin:15px 0 17px}.flourish{height:55px;margin:8px 0}.flourish svg{width:100%;height:100%;overflow:visible}.flourish path{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}.date-section{text-align:center;padding:18px 0 40px}.date{font:400 81px/1 var(--serif);margin:20px 0 0}.date span{font:400 45px var(--script)}.year{font:400 91px/.95 var(--serif);letter-spacing:8px;padding-left:8px}.weekday{display:block;font-size:10px;text-transform:uppercase;letter-spacing:3px;margin:17px 0 25px}.calendar-link{font-size:10px;text-decoration:none;border-bottom:1px solid #a6b7b0;padding-bottom:7px;letter-spacing:.3px}.calendar-link span{margin-left:12px}.program{padding:25px 36px 0;border-top:1px solid #edece7;scroll-margin-top:30px}.program>.eyebrow{font-size:8px;letter-spacing:1.5px}.program h2{font-size:36px;margin:15px 0 30px}.timeline{margin-left:6px;padding-left:26px;border-left:1px solid #d9dfda}.event{position:relative;padding:0 0 38px}.event:last-child{padding-bottom:4px}.timeline-dot{position:absolute;left:-31px;top:13px;width:9px;height:9px;border:1px solid #708b80;background:white;border-radius:50%}.event time{font:400 46px/1 var(--serif)}.event h3{font-size:13px;font-weight:500;margin:10px 0}.handwritten{font:400 26px/1.1 var(--script);margin:9px 0 21px}.address{display:flex;gap:9px;align-items:start;font-size:11px;text-decoration:none}.address svg{width:15px;height:18px;fill:none;stroke:var(--accent);stroke-width:1.5;flex:none}.address small{display:block;margin-top:6px;font-size:9px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.rings-drawing{width:180px;height:133px;background-size:725px 1088px;background-position:-176px -957px;margin-top:25px;margin-bottom:24px}.dress-code,.gifts,.closing{text-align:center;padding:25px 27px 0}.dress-code>.eyebrow{display:block;margin-top:9px}.dress-code h2{font-size:43px;margin-top:13px}.dress-code p{margin-top:18px}.palette{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:286px;margin:27px auto 16px}.palette span{aspect-ratio:1;border-radius:50%;background:radial-gradient(ellipse at 25% 20%,#ffffff38,transparent 48%),linear-gradient(125deg,transparent 24%,#ffffff30 30%,transparent 37%,#00000029 46%,transparent 58%,#ffffff28 64%,transparent 70%),var(--color);box-shadow:inset 0 0 12px #00000016,0 0 0 4px #fff,0 0 0 5px #ecece7}.palette-note{font:italic 17px var(--serif);color:var(--muted)}.bouquet-drawing{width:230px;height:183px;background-size:640px 960px;background-position:-332px -223px;margin-top:27px;margin-bottom:16px}.gifts{padding-top:17px}.gifts h2{margin:12px 0 18px;font-size:47px}.gifts p{margin-bottom:5px}.tiny-heart{font:32px var(--serif);display:block;margin:10px 0}.details-paper>.flourish{margin:0 -8px 10px}.closing{padding-top:0}.closing h2{font-size:44px;transform:rotate(-4deg);margin:15px 0}.closing p{font:italic 17px var(--serif);margin:15px -10px 3px}.celebration-drawing{width:292px;height:354px;background-size:725px 1088px;background-position:-357px -640px;margin-bottom:0}footer{text-align:center;padding:55px 20px 35px;font:26px var(--script)}footer>span{margin-left:8px}footer small{display:block;font:9px var(--sans);letter-spacing:3px;margin-top:14px}
@media(min-width:1300px){.intro{margin-top:45px}.invitation-grid{max-width:1100px;gap:36px}.welcome h2{font-size:54px}.welcome h2 span{font-size:44px}.program{padding-left:48px;padding-right:44px}.dress-code,.gifts{padding-left:40px;padding-right:40px}}
@media(max-width:700px){.masthead{padding:22px 24px}.masthead nav{gap:20px}.masthead nav a{font-size:9px;letter-spacing:1px}.intro{margin:24px 12px 33px}.intro .eyebrow{font-size:8px;letter-spacing:1.6px}.intro h1{font-size:66px;letter-spacing:-2px;margin-top:17px}.intro p{font-size:10px;letter-spacing:1.8px}.invitation-grid{grid-template-columns:minmax(0,1fr);max-width:500px;padding:0 20px;gap:24px}.paper{transform:none}.details-paper{margin-top:0}.paper-top{margin:21px 24px 0;font-size:8px}.welcome h2{font-size:46px}.welcome h2 span{font-size:36px}.program{padding-left:28px;padding-right:24px}.program h2{font-size:34px}.dress-code{padding-top:28px}.dress-code h2{font-size:43px}.closing{padding-top:5px}.celebration-drawing{margin-top:15px}footer{padding-top:35px}}
.table-drawing{width:226px;height:180px;background-size:810px 1216px;background-position:-165px -250px;mask-image:linear-gradient(#000 80%,transparent 100%)}
.celebration-drawing{background-position:-357px -655px;height:339px}
.bouquet-drawing{width:280px;max-width:100%;height:157px;background-size:725px 1088px;background-position:-365px -255px}
.rings-drawing{width:150px;height:120px;background-position:-188px -966px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.rsvp{max-width:310px;margin:22px auto 30px}.rsvp [hidden]{display:none!important}.rsvp-button{display:block;width:100%;padding:13px 20px;border:1px solid var(--accent);border-radius:3px;background:var(--accent);color:white;font:500 13px var(--sans);cursor:pointer;transition:background .2s}.rsvp-button:hover{background:#35534f}.rsvp-button:focus-visible,.rsvp input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.rsvp-button:disabled{opacity:.65;cursor:wait}.rsvp-intro{font:italic 20px/1.3 var(--serif);margin:24px 0 18px}.rsvp label{display:block;text-align:left;font-size:12px;margin:0 0 8px}.rsvp input{display:block;width:100%;padding:13px 12px;border:1px solid #b9c9c2;border-radius:3px;font:16px var(--sans);color:var(--ink);background:#fafcfb;margin-bottom:14px}.rsvp .rsvp-privacy{font-size:10px;line-height:1.5;color:var(--muted);margin-top:12px}.rsvp-status{font-size:12px;line-height:1.6;margin:14px 0 0}.rsvp-status:empty{display:none}
