@font-face{font-family:Cormorant;src:url('assets/fonts/cormorant.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/fonts/cormorant-italic.ttf') format('truetype');font-style:italic;font-weight:600;font-display:swap}
@font-face{font-family:DM;src:url('assets/fonts/dm-sans.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Caveat;src:url('assets/fonts/caveat.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
:root{--ink:#203d52;--blue:#d9e9f6;--cream:#fffaf1;--red:#b63836;--muted:#597081;--line:rgba(32,61,82,.2);--hand:Caveat,cursive;--serif:Cormorant,Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;color:var(--ink);background:var(--cream);font:16px/1.65 DM,Arial,sans-serif;overflow-x:clip}body.dialog-open{overflow:hidden}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}img{display:block;max-width:100%;object-fit:cover}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:6px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.04}h2{font-size:clamp(48px,5.2vw,78px);letter-spacing:-.035em}h2 em{font-weight:600}p{line-height:1.75}.eyebrow{font-size:11px;letter-spacing:.2em;font-weight:600;line-height:1.5}.handwritten{font:600 32px/1.15 var(--hand)}.section-pad{padding:110px max(6vw,24px)}.section-intro{text-align:center;max-width:760px;margin:0 auto 65px}.section-intro h2{margin:14px 0 24px}.section-intro p{color:var(--muted)}.section-intro .eyebrow{color:var(--ink)}.section-intro .handwritten{color:var(--red);font-size:30px}.skip-link{position:fixed;top:-80px;left:12px;background:var(--cream);padding:12px 20px;z-index:200}.skip-link:focus{top:12px}
.header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 5.5vw;background:rgba(255,250,241,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.monogram{font:600 34px/1 var(--serif);text-decoration:none;letter-spacing:-2px}.monogram span{display:inline-block;color:var(--red);font:20px/1 Georgia;transform:rotate(-12deg);margin:0 4px}.header nav{display:flex;gap:34px}.header nav a{text-decoration:none;font-size:12px}.header nav a:hover{color:var(--red)}.header-date{text-decoration:none;border:1px solid var(--ink);border-radius:50%;padding:7px 21px;font-size:12px;letter-spacing:.08em}.header-date span{margin-left:10px;color:var(--red)}
.hero{background:var(--blue);padding:65px 24px 55px;position:relative;isolation:isolate;overflow:hidden;background-image:radial-gradient(#849ab317 .6px,transparent .6px);background-size:5px 5px}.hero-copy{text-align:center;position:relative;z-index:3}.hero h1{font-size:clamp(80px,11.8vw,178px);letter-spacing:-.055em;margin:5px 0 13px;line-height:1}.hero h1 em{color:var(--red);font-size:.8em;display:inline-block;transform:rotate(-10deg);padding:0 .03em}.hero-date{font-size:13px;letter-spacing:.04em}.hero-date span{margin:0 16px;color:var(--red)}.hero-doodle{position:absolute;z-index:0;line-height:1;color:var(--red);will-change:transform}.doodle-star{font-size:80px;top:110px;left:8%;transform:rotate(-15deg)}.doodle-heart{font-family:Georgia,serif;font-size:95px;right:6.5%;top:90px;transform:rotate(20deg)}.doodle-flower{font-size:75px;right:11%;bottom:70px;color:#63899e}.photo-collage{position:relative;max-width:1080px;height:400px;margin:48px auto 0}.polaroid{background:#fffefb;padding:12px 12px 4px;box-shadow:0 6px 16px #21344618;position:absolute;will-change:transform}.polaroid img{width:100%;height:100%;object-fit:cover}.polaroid figcaption{font:600 26px/1.35 var(--hand);text-align:center;padding:8px 0 5px;color:var(--ink)}.collage-left{width:31%;left:0;top:55px;rotate:-9deg;z-index:1}.collage-left img{aspect-ratio:1.48}.collage-center{width:48%;left:26%;top:4px;rotate:4deg;z-index:2}.collage-center img{aspect-ratio:1.7}.collage-right{width:30%;right:-1%;top:78px;rotate:11deg;z-index:1}.collage-right img{aspect-ratio:1.45}.tape{position:absolute;width:120px;height:34px;left:37%;top:-16px;rotate:-6deg;background:#f2e1b7ae;clip-path:polygon(4% 0,100% 3%,96% 100%,0 94%)}.hand-note{position:absolute;left:5%;top:-32px;font:600 29px var(--hand);color:var(--red);rotate:-10deg}.hand-note svg{width:90px;height:60px;position:absolute;left:98%;top:0;fill:none;stroke:var(--red);stroke-width:2.3;stroke-linecap:round}.round-stamp{position:absolute;right:16%;bottom:4px;z-index:5;background:var(--cream);border:1.5px solid var(--red);outline:1px solid var(--red);outline-offset:-7px;color:var(--red);border-radius:50%;height:104px;width:104px;text-align:center;padding:17px 5px;font:9px/1.5 DM;letter-spacing:.08em;rotate:15deg}.round-stamp strong{font:29px/.8 Georgia;display:block;margin:7px 0 -8px}.hero-bottom{position:relative;z-index:5;display:flex;justify-content:center;align-items:center;gap:70px;margin:16px auto 0}.hero-bottom p{font-size:15px;line-height:1.6}.hero-bottom em{font-family:var(--serif);font-size:24px;line-height:1.2}.button{display:inline-flex;gap:36px;align-items:center;text-decoration:none;padding:15px 27px;border-radius:3px;font-size:12px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button-red{background:var(--red);color:white}.button-red:hover{background:#982a28}.button span{font-size:20px}.love-ribbon{overflow:hidden;background:var(--red);color:var(--cream);padding:14px 0;border-block:5px solid var(--cream)}.love-ribbon>div{font:600 30px/1.3 var(--serif);font-style:italic;white-space:nowrap;width:max-content;animation:ribbon 36s linear infinite}.love-ribbon span{font:18px Georgia;display:inline-block;margin:0 55px}@keyframes ribbon{to{transform:translateX(-50%)}}
.day-layout{max-width:1010px;margin:0 auto;display:grid;grid-template-columns:390px 1fr;gap:110px;align-items:center}.date-card{background:#eef3e8;padding:30px 32px 25px;rotate:-3deg;box-shadow:7px 9px 0 #b9c5a936;position:relative;min-height:370px;display:flex;flex-direction:column;text-align:center;border:1px solid #657d5c40}.date-card:before{content:'';position:absolute;inset:10px;border:1px solid #657d5c55;pointer-events:none}.date-card-top{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.13em;padding:4px}.date-card-top span{color:var(--red);font:25px/1 Georgia}.date-number{font:600 177px/.98 var(--serif);letter-spacing:-10px;padding-top:12px}.date-year{font-size:10px;letter-spacing:.18em;margin:16px 0 29px}.calendar-link{border-top:1px solid #657d5c55;padding-top:17px;font-size:12px;text-underline-offset:5px;position:relative;z-index:1}.calendar-link span{margin-left:24px}.day-details .handwritten{color:var(--red);margin-bottom:18px}.day-details h3{font-size:54px;letter-spacing:-.03em;margin-bottom:7px}.day-details .location{font-size:14px}.rule{height:1px;background:var(--line);margin:28px 0}.day-details p:not(.handwritten):not(.location){font-size:14px;color:var(--muted)}.day-actions{display:flex;align-items:center;gap:27px;margin-top:26px}.text-link{font-size:12px;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:5px}.text-link span{margin-left:25px}.detail-note{font-size:11px;color:var(--muted);font-style:italic}.countdown{display:flex;gap:16px;align-items:center;margin-top:30px}.countdown strong{font:600 52px/1 var(--serif);color:var(--red)}.countdown span:not(.count-heart){font-size:10px;text-transform:uppercase;letter-spacing:.14em;line-height:1.6}.count-heart{font:58px/1 var(--serif);margin-left:14px;rotate:15deg;color:var(--red)}
.photo-break{height:510px;position:relative;overflow:hidden;background:#6b97b5}.photo-break>img{width:100%;height:130%;object-position:50% 50%;position:absolute;top:-15%;filter:brightness(.66);will-change:transform}.photo-break-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:white;text-align:center;text-shadow:0 2px 12px #162b4166}.photo-break-text span{font:600 39px var(--hand);rotate:-5deg}.photo-break-text strong{font:600 clamp(62px,8vw,112px)/1.05 var(--serif);letter-spacing:-.03em;font-style:italic}.photo-break-text i{font:60px/1 Georgia;display:block;margin-top:20px}
.stay-heading{display:flex;max-width:1120px;margin:0 auto 60px;justify-content:space-between;align-items:flex-end}.stay-heading h2{margin-top:14px}.stay-heading>p{font-size:15px;color:var(--muted);padding-bottom:6px}.travel-grid{display:grid;grid-template-columns:340px 1fr;gap:85px;max-width:1120px;margin:auto}.flight-note{background:var(--blue);border:1px solid #b5c6d4;padding:35px 30px;position:relative;align-self:start}.flight-note:after{content:'';position:absolute;inset:7px;border:1px dashed #6c8caa6b;pointer-events:none}.plane{font-size:45px;color:var(--red);display:block;rotate:-14deg;line-height:1.2;margin-bottom:25px}.flight-note h3{font-size:41px;margin:15px 0 20px;letter-spacing:-.03em}.flight-note p:not(.eyebrow){font-size:13px;color:#425d70}.flight-note p.small{font-size:11px;margin:18px 0 24px}.flight-note .handwritten{font-size:25px;color:var(--red)}.hotel-list>a{display:flex;justify-content:space-between;gap:24px;align-items:center;text-decoration:none;padding:22px 0;border-bottom:1px solid var(--line);transition:padding .2s}.hotel-list>a:first-child{padding-top:0}.hotel-list>a:hover{padding-left:10px}.hotel-list h3{font-size:29px;margin-bottom:6px}.hotel-list p{font-size:11px;color:var(--muted)}.hotel-list>a>span{font-size:25px;color:var(--red)}.hotel-disclaimer{margin-top:20px;font-style:italic}
.explore-section{background:#edf2e8;position:relative}.explore-section:before{content:'';position:absolute;top:-12px;left:0;width:100%;height:16px;background:radial-gradient(circle at 12px 14px,#edf2e8 13px,transparent 13.5px) 0 0/24px 16px repeat-x}.places-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1120px;margin:0 auto;gap:22px}.place-card{padding:30px 27px 33px;background:#fffaf1a6;border:1px solid #72846c3d;text-decoration:none;position:relative;min-height:245px;transition:transform .2s,background .2s}.place-card:hover{transform:translateY(-6px) rotate(-1deg);background:var(--cream)}.place-icon{display:block;font:55px/1 var(--serif);color:var(--red);margin-bottom:21px}.place-kind{display:block;font-size:8px;letter-spacing:.13em;margin-bottom:11px}.place-card h3{font-size:32px;max-width:245px;margin-bottom:10px;letter-spacing:-.025em}.place-card p{font-size:11px;color:var(--muted)}.place-arrow{position:absolute;bottom:24px;right:25px;font-size:23px}
.gallery-section{overflow:hidden;padding-bottom:125px}.gallery-section .section-intro{margin-bottom:62px}.gallery{max-width:1140px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0 auto}.gallery-photo{border:1px solid #d9d4c8;background:#fff;padding:11px 11px 0;box-shadow:4px 6px 0 #122f420b;position:relative;transition:scale .2s,rotate .2s}.gallery-photo:hover{scale:1.025;rotate:0deg}.gallery-photo img{width:100%;height:250px;object-fit:cover}.gallery-photo span{display:block;font:27px/1.2 var(--hand);padding:15px 0 18px}.gallery-one{rotate:-6deg}.gallery-one img{object-position:61% 50%}.gallery-two{rotate:3deg;top:28px}.gallery-two img{object-position:52% 50%}.gallery-three{rotate:-3deg}.gallery-three img{object-position:52% 50%}.details-section{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;max-width:1280px;margin:auto;padding-top:35px}.details-title .handwritten{display:block;color:var(--red);margin-bottom:13px}.details-title h2{font-size:64px}.faqs details{border-bottom:1px solid var(--line)}.faqs summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:14px;padding:21px 0;cursor:pointer}.faqs summary::-webkit-details-marker{display:none}.faqs summary span{font-size:26px;font-weight:400;color:var(--red);line-height:1;transition:rotate .2s}.faqs details[open] summary span{rotate:45deg}.faqs details p{font-size:13px;color:var(--muted);padding:0 45px 24px 0}
footer{background:var(--blue);text-align:center;padding:70px 5.5vw 0;position:relative}footer:before{content:'';position:absolute;top:-12px;left:0;width:100%;height:16px;background:radial-gradient(circle at 12px 14px,var(--blue) 13px,transparent 13.5px) 0 0/24px 16px repeat-x}.footer-names{font:600 clamp(66px,9vw,125px)/1.2 var(--serif);letter-spacing:-.05em;margin:12px 0}.footer-names em{color:var(--red)}footer>p:not(.handwritten){font-size:12px;letter-spacing:.03em}footer p span{margin:0 14px}.love-button{background:none;border:none;font:52px/1 Georgia;color:var(--red);padding:16px;margin:10px 0 -2px;transition:transform .2s}.love-button:hover{transform:scale(1.15) rotate(-8deg)}footer .handwritten{font-size:23px;color:var(--red)}.footer-bottom{margin-top:52px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0;font-size:10px;gap:20px}.footer-bottom button{background:none;border:0;padding:8px 0;font-size:10px;text-decoration:underline;text-underline-offset:3px}
.welcome{position:fixed;inset:0;z-index:100;background:var(--cream);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px;pointer-events:none;animation:welcome-out .7s .9s forwards}.welcome-note{font:600 32px var(--hand);color:var(--red);rotate:-4deg}.welcome-heart{width:100px;height:92px;fill:var(--red);overflow:visible;animation:heart-open 1.6s cubic-bezier(.5,0,.4,1) forwards}.welcome-signature{font:600 34px var(--serif)}@keyframes heart-open{0%{transform:scale(.6) rotate(-10deg)}25%{transform:scale(1.1) rotate(5deg)}50%{transform:scale(.95) rotate(-5deg)}100%{transform:scale(16);opacity:0}}@keyframes welcome-out{to{opacity:0;visibility:hidden}}#confetti{position:fixed;inset:0;pointer-events:none;z-index:90;overflow:hidden}.confetti-heart{position:absolute;bottom:-40px;font:var(--size) Georgia;color:var(--color);animation:float-heart var(--duration) ease-out forwards;left:var(--left);opacity:0}@keyframes float-heart{5%{opacity:1}100%{transform:translate(var(--drift),-110vh) rotate(var(--rotation));opacity:0}}
.reveal{opacity:1;transform:none}html.motion-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}html.motion-ready .reveal.visible{opacity:1;transform:translateY(0)}.motion-off *, .motion-off *:before,.motion-off *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-off .welcome{display:none}.motion-off .reveal{opacity:1!important;transform:none!important}.motion-off [data-parallax],.motion-off [data-parallax-image]{transform:none!important}
dialog{border:0;padding:16px;background:var(--cream);max-width:min(920px,92vw);width:920px;max-height:92dvh;overflow:auto;box-shadow:0 20px 80px #0003}dialog::backdrop{background:#122a3bea;backdrop-filter:blur(6px)}dialog>img{width:100%;max-height:70dvh;object-fit:contain}.dialog-close{position:absolute;right:23px;top:23px;border:0;border-radius:50%;height:42px;width:42px;background:var(--cream);font:30px/1 Arial;box-shadow:0 1px 8px #0002}.dialog-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0 0}.dialog-controls p{font:27px var(--hand);text-align:center}.dialog-controls button{border:1px solid var(--line);width:42px;height:42px;background:none;font-size:22px;flex-shrink:0}
@media(min-width:1500px){.hero{padding-top:85px}.photo-collage{margin-top:65px}.hero-bottom{margin-top:25px}}
@media(max-width:1000px){.header nav{gap:25px}.hero{padding-top:55px}.hero h1{font-size:13vw}.photo-collage{height:350px;margin-top:58px;max-width:850px}.collage-center{width:50%;left:24%}.collage-left{width:32%;top:42px}.collage-right{width:32%;top:70px;right:0}.round-stamp{bottom:0;right:14%}.hand-note{left:3%;font-size:25px}.doodle-star{left:4%;font-size:60px}.doodle-heart{right:3%;font-size:65px}.day-layout{grid-template-columns:320px 1fr;gap:55px}.day-details h3{font-size:43px}.day-actions{gap:17px}.travel-grid{grid-template-columns:290px 1fr;gap:45px}.places-grid{gap:16px}.place-card{padding:26px 22px}.place-card h3{font-size:28px}.gallery-photo img{height:200px}.details-section{gap:45px}.section-pad{padding-top:90px;padding-bottom:90px}.gallery-section{padding-bottom:110px}}
@media(max-width:700px){html{scroll-padding-top:70px}.header{height:68px;padding:0 20px}.monogram{font-size:30px}.header nav{gap:17px}.header nav a{font-size:10px}.header-date{display:none}.hero{padding:44px 18px 38px}.hero .eyebrow{font-size:9px;letter-spacing:.18em}.hero h1{font-size:16.8vw;margin:13px -7px 17px}.hero-date{font-size:10px;letter-spacing:.015em}.hero-date span{margin:0 7px}.doodle-star{top:26px;left:2%;font-size:45px}.doodle-heart{top:27px;right:3%;font-size:38px}.doodle-flower{font-size:46px;right:6%;bottom:30px}.photo-collage{height:340px;max-width:470px;margin-top:43px}.collage-center{width:78%;left:11%;top:0;rotate:3deg;padding:9px 9px 0}.collage-center figcaption{font-size:24px;padding:5px 0 8px}.collage-center img{aspect-ratio:1.62}.collage-left{width:43%;top:170px;left:1%;rotate:-10deg;z-index:3;padding:7px 7px 0}.collage-right{width:43%;top:175px;right:0;rotate:11deg;z-index:3;padding:7px 7px 0}.collage-left img,.collage-right img{aspect-ratio:1.48}.collage-left figcaption,.collage-right figcaption{font-size:17px;padding:6px 0}.hand-note{font-size:22px;left:3%;top:-32px;z-index:4}.hand-note svg{width:52px;left:106%;top:0}.tape{width:85px;height:27px;left:37%;top:-12px}.round-stamp{height:76px;width:76px;right:40%;bottom:0;font-size:6px;padding:12px 3px;z-index:4}.round-stamp strong{font-size:23px;margin:6px 0 -5px}.hero-bottom{flex-direction:column;gap:20px;text-align:center;margin-top:15px}.hero-bottom p{font-size:12px}.hero-bottom em{font-size:22px}.button{padding:12px 22px;font-size:11px;gap:36px}.love-ribbon{padding:11px 0}.love-ribbon>div{font-size:24px}.love-ribbon span{margin:0 28px;font-size:13px}.section-pad{padding:70px 24px}.section-intro{margin-bottom:42px}.section-intro h2{margin:12px 0 20px}h2{font-size:48px}.section-intro p{font-size:13px}.eyebrow{font-size:9px}.day-layout{grid-template-columns:1fr;gap:53px;max-width:430px}.date-card{width:285px;min-height:330px;justify-self:center;padding:25px 28px 23px}.date-number{font-size:155px}.date-year{font-size:8px}.date-card-top{font-size:10px}.day-details{text-align:center}.day-details .handwritten{font-size:31px;margin-bottom:14px}.day-details h3{font-size:47px}.day-details p:not(.handwritten):not(.location){font-size:13px}.day-actions{justify-content:center}.countdown{justify-content:center}.rule{margin:24px 0}.photo-break{height:400px}.photo-break>img{width:150%;max-width:none;left:-25%;object-position:center}.photo-break-text span{font-size:30px}.photo-break-text strong{font-size:67px}.photo-break-text i{font-size:45px}.stay-heading{display:block;text-align:center;margin-bottom:35px}.stay-heading>p{font-size:13px;margin-top:20px}.travel-grid{grid-template-columns:1fr;gap:35px;max-width:470px}.flight-note{padding:30px;display:grid;grid-template-columns:1fr auto}.flight-note .plane{grid-column:2;grid-row:1/3;font-size:50px;align-self:center;margin:0 12px 0 0}.flight-note .eyebrow{grid-column:1;grid-row:1}.flight-note h3{grid-column:1;grid-row:2;font-size:37px;margin:13px 0 16px}.flight-note p:not(.eyebrow),.flight-note .handwritten{grid-column:1/-1}.flight-note p.small{margin:13px 0 18px}.hotel-list h3{font-size:27px}.hotel-list p{font-size:10px}.hotel-list>a{padding:20px 0}.places-grid{grid-template-columns:1fr 1fr;gap:12px}.place-card{padding:23px 18px 27px;min-height:235px}.place-icon{font-size:43px;margin-bottom:17px}.place-kind{font-size:7px;line-height:1.6;letter-spacing:.08em;min-height:23px}.place-card h3{font-size:27px;line-height:1.03}.place-card p{font-size:9px}.place-arrow{font-size:19px;bottom:17px;right:14px}.gallery-section{padding-bottom:90px}.gallery-section .section-intro{margin-bottom:44px}.gallery{grid-template-columns:1fr;gap:35px;max-width:320px}.gallery-photo{padding:9px 9px 0}.gallery-photo img{height:210px}.gallery-photo span{font-size:25px;padding:12px 0 15px}.gallery-two{top:0;rotate:4deg}.gallery-three{rotate:-4deg}.details-section{grid-template-columns:1fr;gap:20px;padding-top:0;padding-bottom:70px}.details-title{text-align:center}.details-title h2{font-size:48px}.details-title .handwritten{font-size:29px}.faqs summary{font-size:12px;padding:20px 0}.faqs details p{font-size:12px;padding-right:15px}footer{padding:55px 24px 0}.footer-names{font-size:70px;margin:13px 0}footer>p:not(.handwritten){font-size:10px}footer p span{margin:0 7px}footer .handwritten{font-size:22px}.footer-bottom{margin-top:35px;display:grid;grid-template-columns:1fr auto;text-align:left;font-size:9px;gap:8px}.footer-bottom>span:nth-child(2){grid-row:2;grid-column:1/-1}.footer-bottom button{grid-row:1;grid-column:2;font-size:9px}dialog{padding:10px;width:96vw;max-width:96vw}.dialog-close{height:36px;width:36px;top:16px;right:16px}.dialog-controls{gap:10px;padding-top:12px}.dialog-controls p{font-size:23px}.dialog-controls button{height:38px;width:38px}.welcome-note{font-size:28px}}
@media(max-width:360px){.header nav{gap:12px}.photo-collage{height:302px}.collage-left,.collage-right{top:150px}.round-stamp{bottom:0}.places-grid{grid-template-columns:1fr}.place-card{min-height:210px}.place-kind{min-height:0}.place-card h3{max-width:100%}}
.welcome{background:transparent;animation:none;display:block}.heart-curtain{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.heart-window-scale{transform-origin:500px 500px;transform:scale(0);animation:heart-window 1.5s .9s cubic-bezier(.65,0,.2,1) forwards}.welcome-content{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px;animation:welcome-content-out .4s .85s forwards}.welcome-heart{animation:welcome-beat .85s ease-in-out both}.welcome-note{font-size:34px}@keyframes welcome-beat{0%{transform:scale(.3) rotate(-12deg)}45%{transform:scale(1.2) rotate(8deg)}70%{transform:scale(.9) rotate(-4deg)}100%{transform:scale(1) rotate(0)}}@keyframes heart-window{to{transform:scale(32)}}@keyframes welcome-content-out{to{opacity:0;transform:translateY(-10px)}}
.photo-collage{perspective:1000px;transform-style:preserve-3d}.polaroid{transition:box-shadow .25s;backface-visibility:hidden}.polaroid:hover{box-shadow:0 15px 30px #2134462b}.hero-copy{animation:hero-in 1.1s 1.15s both}.collage-left{animation:photo-left-in 1.3s 1.15s both}.collage-center{animation:photo-center-in 1.3s 1.05s both}.collage-right{animation:photo-right-in 1.3s 1.25s both}.hero-bottom{animation:hero-in 1s 1.45s both}@keyframes hero-in{from{opacity:0;translate:0 25px}to{opacity:1;translate:0 0}}@keyframes photo-left-in{from{opacity:0;translate:-70px 50px;rotate:-23deg}to{opacity:1;translate:0 0;rotate:-9deg}}@keyframes photo-center-in{from{opacity:0;translate:0 70px;scale:.85;rotate:-5deg}to{opacity:1;translate:0 0;scale:1;rotate:4deg}}@keyframes photo-right-in{from{opacity:0;translate:80px 50px;rotate:24deg}to{opacity:1;translate:0 0;rotate:11deg}}
.love-swoosh{position:absolute;left:-2%;top:0;width:104%;height:100%;z-index:0;pointer-events:none;overflow:visible}.love-swoosh path{fill:none;stroke:var(--red);stroke-width:1.8;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw-love 2.5s 1.7s ease-in-out forwards}@keyframes draw-love{to{stroke-dashoffset:0}}.cursor-heart{position:fixed;z-index:80;pointer-events:none;font:15px Georgia;color:var(--red);animation:cursor-float 1.1s ease-out forwards}@keyframes cursor-float{from{opacity:.7;transform:translate(-50%,-50%) scale(.6)}to{opacity:0;transform:translate(-50%,-80px) scale(1.1) rotate(25deg)}}
.registry-section{background:#f6e7df;display:flex;align-items:center;justify-content:center;gap:90px;margin-bottom:90px;position:relative;overflow:hidden}.registry-section:before{content:'';position:absolute;left:-30px;right:-30px;top:0;height:9px;background:repeating-linear-gradient(90deg,var(--red) 0 17px,transparent 17px 36px);opacity:.4}.registry-copy{max-width:500px}.registry-copy h2{margin:15px 0 24px}.registry-copy>p:not(.eyebrow){font-size:14px;color:var(--muted)}.coming-soon{display:inline-flex;gap:25px;border:1px solid #b6383666;padding:11px 19px;color:var(--red);font-size:9px;letter-spacing:.14em;margin-top:25px}.coming-soon span{font:18px/1 Georgia}.registry-copy .button{margin-top:24px}[hidden]{display:none!important}.registry-art{width:270px;height:250px;position:relative;flex-shrink:0}.gift-box{position:absolute;left:42px;top:75px;width:180px;height:150px;background:var(--blue);border:2px solid var(--ink);rotate:-9deg;box-shadow:10px 10px 0 #fffaf177;animation:gift-sway 5s ease-in-out infinite}.gift-box:before{content:'';position:absolute;top:-12px;left:-10px;right:-10px;height:30px;background:var(--blue);border:2px solid var(--ink);z-index:2}.gift-ribbon{position:absolute;left:74px;top:-12px;height:160px;width:29px;background:var(--red);z-index:3}.gift-bow{position:absolute;left:52px;top:-75px;font:85px/1 Georgia;color:var(--red);rotate:0;z-index:5}.gift-spark{position:absolute;color:var(--red)}.spark-one{font-size:45px;right:0;top:18px;animation:sparkle 3s infinite}.spark-two{font-size:30px;left:0;top:75px;animation:sparkle 3s 1s infinite}.spark-three{font:38px Georgia;right:0;bottom:4px;rotate:20deg;animation:sparkle 3s .5s infinite}@keyframes gift-sway{0%,100%{rotate:-9deg;translate:0 0}50%{rotate:-4deg;translate:0 -7px}}@keyframes sparkle{0%,100%{opacity:.5;scale:.8}50%{opacity:1;scale:1.1}}
@media(max-width:700px){.header nav{gap:13px}.header nav a{font-size:11px}.registry-section{gap:22px;margin-bottom:65px;flex-direction:column;padding-top:45px;padding-bottom:55px}.registry-art{scale:.8;margin:-15px 0 -35px}.registry-copy{text-align:center}.registry-copy h2{font-size:49px}.registry-copy>p:not(.eyebrow){font-size:13px}.love-swoosh{display:none}.welcome-note{font-size:28px}.collage-left{animation-name:photo-left-mobile-in}.collage-center{animation-name:photo-center-mobile-in}@keyframes photo-left-mobile-in{from{opacity:0;translate:-40px 40px;rotate:-23deg}to{opacity:1;translate:0 0;rotate:-10deg}}@keyframes photo-center-mobile-in{from{opacity:0;translate:0 45px;scale:.85;rotate:-5deg}to{opacity:1;translate:0 0;scale:1;rotate:3deg}}}
@media(max-width:360px){.header nav{gap:10px}.header nav a{font-size:9px}.header{padding:0 15px}.monogram{font-size:27px}.registry-copy h2{font-size:45px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.welcome{display:none}.reveal{opacity:1!important;transform:none!important}[data-parallax],[data-parallax-image]{transform:none!important}.love-swoosh path{stroke-dashoffset:0}}
.motion-off .love-swoosh path{stroke-dashoffset:0}.motion-off .cursor-heart{display:none}
