@font-face{font-family:Hand;src:url(assets/hand.woff)}@font-face{font-family:Script;src:url(assets/script.woff)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fdf9e2;color:#631b25;font:20px/1.12 Hand,cursive}main{max-width:680px;margin:auto;overflow:hidden;background:#fdf9e2}h1,h2,h3,p{font-weight:400;margin:0}h1,h2,h3,.script{font-family:Script,cursive}h2{font-size:58px;line-height:1.1;margin-bottom:55px}p{max-width:420px;margin:auto}section{text-align:center;padding:95px 35px}.pink{background:#c2255b;color:#fdf9e2}.hero{text-align:center}.thread{width:100%;height:135px;display:block}.thread path{fill:none;stroke:#c2255b;stroke-width:2.4}.thread text{fill:#c2255b;font:50px Georgia}.finally{font-size:25px}h1{font-size:clamp(51px,10vw,87px);line-height:1.1;color:#c2255b;margin:0 10px 20px}.hero img{width:100%;display:block;mix-blend-mode:multiply;margin-top:25px}.marquee{overflow:hidden;white-space:nowrap;background:#c2255b;color:#fdf9e2;padding:5px 0;font:25px/1 Script}.marquee span{display:inline-block;animation:run 25s linear infinite}.marquee i{font-style:normal;margin:0 35px}@keyframes run{to{transform:translateX(-50%)}}.intro{padding:110px 35px 120px}.date{font:44px Script;color:#c2255b;margin:16px 0 42px}.calendar{position:relative;background:white;max-width:350px;margin:auto;padding:24px 20px 30px;box-shadow:0 4px 18px #6c533b13;transform:rotate(-1deg)}.calendar:before{content:'';position:absolute;width:94px;height:25px;left:calc(50% - 47px);top:-10px;transform:rotate(-9deg);background:linear-gradient(145deg,#e2e1d67a,#ffffffbc 50%,#d7d5cc8a);clip-path:polygon(0 13%,96% 0,100% 90%,5% 100%)}.month{font-size:29px;margin:0 0 20px}.days{display:grid;grid-template-columns:repeat(7,1fr);row-gap:14px;font-size:18px}.days span{height:29px;display:grid;place-items:center}.weekday{color:#c2255b}.weekend{color:#e6bfc7}.chosen{position:relative;color:#c2255b}.chosen:after{content:'';position:absolute;inset:-3px 0;border:2px solid #c2255b;border-radius:48% 52% 46% 54%;transform:rotate(-15deg)}.save-date{font:25px/.8 Script;color:#c2255b;position:absolute;right:-15px;bottom:-22px;transform:rotate(-17deg);text-decoration:none}.photo-frame{position:relative;border:8px solid white;margin:0 auto 30px;max-width:500px;transform:rotate(-1deg)}.photo-frame:before{content:'♧';position:absolute;left:-17px;top:-30px;font-size:50px;color:#631b25;transform:rotate(15deg)}.photo-frame img{width:100%;display:block}.location h3{font-size:34px;margin:0 auto 10px}.button{display:block;background:white;border:0;border-radius:40px;color:#631b25;text-decoration:none;font:20px Hand;padding:15px 22px;max-width:350px;margin:27px auto 0;cursor:pointer}.button:hover{background:#f9ecd5}.button:focus-visible,input:focus-visible{outline:3px solid #631b25;outline-offset:4px}.route{position:relative;height:520px;max-width:380px;margin:auto}.route svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.route path{fill:none;stroke:#c2255b;stroke-width:2}.route text{fill:#c2255b;font:55px Georgia}.event{position:absolute;width:100%;left:0}.first{top:35px;padding-right:50px}.last{bottom:0}.event h3{font-size:48px;line-height:1}.event p{margin-top:6px}.day-note{position:absolute;top:220px;left:0;transform:rotate(-16deg);font:24px/.8 Script;color:#c2255b}.gift{position:relative;max-width:300px;margin:35px auto 65px;height:155px}.gift img{width:195px;position:absolute;top:6px;left:40px;transform:rotate(-4deg)}.gift .script{position:absolute;font-size:25px;bottom:-8px;right:0;transform:rotate(-14deg);color:#c2255b;line-height:.8}.wine{height:210px;margin-bottom:0}.wine img{width:80px;height:180px;object-fit:contain;left:105px;transform:rotate(-18deg)}.wine .script{right:0;top:60px;bottom:auto}.form-section>p{margin-bottom:65px}form{text-align:left;max-width:450px;margin:auto}input[type=text]{display:block;width:100%;font:20px Hand;color:#fdf9e2;background:transparent;border:0;border-bottom:1px solid #fdf9e2a0;border-radius:0;padding:16px 0;margin:15px 0 30px}input::placeholder{color:#fdf9e290}fieldset{border:0;padding:0;margin:28px 0 35px}legend{margin-bottom:17px}.choice{display:flex;gap:13px;align-items:flex-start;margin:12px 0;cursor:pointer}.choice input{appearance:none;flex:0 0 25px;width:25px;height:25px;border:1.5px solid #fdf9e2a0;background:transparent;margin:0}.choice input[type=radio]{border-radius:50%}.choice input:checked{background:#fdf9e2;box-shadow:inset 0 0 0 5px #c2255b}.form-section .button{width:100%;margin-top:38px}.form-note{font-size:16px;line-height:1.25;opacity:.85;margin-top:18px;text-align:center}output{display:block;text-align:center;margin-top:20px;line-height:1.3}.bottom-strip{background:white;color:#631b25}.ending{text-align:center;padding:65px 18px 0}.ending h2{font-size:50px;margin-bottom:8px}.ending p{font-size:23px}.ending .thread{height:145px}.ending .thread path{stroke:#fdf9e2}.ending .thread text{fill:#fdf9e2}@media(min-width:700px){body{background:#f1ecd5}main{box-shadow:0 0 70px #49352f12}.hero img{max-width:600px;margin:20px auto 0}.route{height:580px}}@media(max-width:420px){body{font-size:18px}section{padding:85px 25px}h2{font-size:49px}.thread{height:120px}.finally{font-size:23px}h1{font-size:53px}.hero img{margin-top:12px}.calendar{max-width:290px;padding:24px 17px}.intro{padding:90px 25px 100px}.date{font-size:38px}.location h3{font-size:30px}.photo-frame{border-width:7px}.route{height:480px}.event h3{font-size:43px}.day-note{font-size:22px}.form-section{padding:75px 20px}.ending h2{font-size:42px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee span{animation:none}}
.photo-frame:before{content:"";width:25px;height:65px;background:url(assets/clip.svg) center/contain no-repeat;left:-10px;top:-30px;transform:rotate(15deg)}.event.last{bottom:-35px}.route{margin-bottom:35px}
