:root{--paper:#f8f3eb;--ink:#403d34;--rose:#934b56;--muted:#756c60;--line:#dbd2c5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--rose);outline-offset:6px}header{max-width:1320px;margin:auto;padding:26px 6%;display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}header>a{font:italic 25px Georgia,serif}header span{color:var(--rose)}nav{display:flex;gap:32px;font-size:12px}.hero{max-width:1320px;margin:auto;min-height:740px;padding:86px 8% 100px;display:grid;grid-template-columns:1.2fr 1fr;gap:8%;align-items:center;position:relative}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:600}.hero h1{font:normal clamp(60px,6.5vw,96px)/1.06 Georgia,serif;letter-spacing:-4px;margin:30px 0}.hero h1 em,h2 em{font-weight:normal;color:var(--rose)}.doodle{display:inline-block;font:normal 53px Georgia;color:var(--rose);transform:rotate(-15deg);margin-left:17px}.intro{font-size:17px;line-height:1.8;color:var(--muted)}.pill{border:1px solid var(--rose);border-radius:40px;background:transparent;padding:14px 24px;display:inline-flex;gap:22px;align-items:center;font-size:12px;margin-top:20px}.pill:hover{background:var(--rose);color:white}.handwritten{font:italic 17px Georgia;color:var(--rose);margin:20px 0}.hero-photo{background:#fffdf8;padding:13px 13px 0;transform:rotate(5deg);position:relative;box-shadow:0 18px 42px #5b49331c;max-width:380px;margin:auto}.hero-photo img{width:100%;height:425px;object-fit:cover;object-position:45% 60%;display:block}.hero-photo p{text-align:center;font:italic 20px Georgia;margin:20px 0 25px}.tape{position:absolute;top:-16px;left:32%;width:120px;height:35px;background:#dfc9a7ac;transform:rotate(-8deg);z-index:1}.star{position:absolute;right:-40px;bottom:28px;font:70px Georgia;color:var(--rose)}.side-note{position:absolute;bottom:30px;left:8%;font-size:9px;letter-spacing:2px;color:var(--muted)}.ribbon{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px;display:flex;justify-content:space-around;gap:35px;white-space:nowrap;overflow:hidden;font:italic 20px Georgia;color:var(--rose)}.ribbon span{font-style:normal}.memories{max-width:1200px;margin:auto;padding:100px 6%}.section-top{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:54px}h2{font:normal 48px/1.15 Georgia;letter-spacing:-1.7px;margin:20px 0}.section-top>p{font-size:13px;color:var(--muted);padding-bottom:6px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:38px 26px;align-items:start}.photo{border:0;background:#fffdf9;padding:10px 10px 18px;width:100%;box-shadow:0 5px 14px #5145340c;transition:transform .25s}.photo:nth-child(3n+1){transform:rotate(-2deg)}.photo:nth-child(3n+2){transform:rotate(2deg);margin-top:24px}.photo:hover{transform:rotate(0) translateY(-7px)}.photo img{width:100%;height:290px;display:block;object-fit:cover}.photo p{font:italic 17px Georgia;margin:17px 0 0}.love-notes{text-align:center;background:#eee4dd;padding:75px 24px}.love-notes>p:not(.eyebrow){color:var(--muted)}.text-button{background:none;border:0;border-bottom:1px solid var(--rose);color:var(--rose);padding:10px;margin-top:20px}#sweet{min-height:27px;font:italic 20px Georgia}.letter-section{max-width:1120px;margin:0 auto;padding:110px 6%;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.letter-section>div>p:last-child{color:var(--muted)}.envelope{border:1px solid #d7aaa4;position:relative;width:100%;max-width:360px;height:240px;background:#e7c2bb;box-shadow:0 20px 30px #49302916;transform:rotate(-5deg);transition:transform .3s;margin:30px auto}.envelope:hover{transform:rotate(0deg) translateY(-7px)}.flap{position:absolute;inset:0;background:#efd3cd;clip-path:polygon(0 0,100% 0,50% 53%)}.seal{position:absolute;top:89px;left:calc(50% - 24px);width:48px;height:48px;border-radius:50%;background:var(--rose);color:#fff2df;font:30px/48px Georgia}.envelope-label{position:absolute;bottom:27px;left:0;right:0;font:italic 21px Georgia}.envelope-label small{font:10px Arial;letter-spacing:2px;display:inline-block;margin-top:10px}.ending{text-align:center;padding:65px 20px 85px;border-top:1px solid var(--line)}.ending>span{font:45px Georgia;color:var(--rose)}.ending p{color:var(--muted)}#wishText{min-height:24px}footer{padding:20px 6%;border-top:1px solid var(--line);text-align:center;font-size:11px;letter-spacing:1px}footer span{color:var(--rose)}dialog{border:0;max-width:min(90vw,660px);max-height:90dvh;padding:35px;background:var(--paper);color:var(--ink);box-shadow:0 20px 100px #0005}dialog::backdrop{background:#28231cbd;backdrop-filter:blur(5px)}.close{position:absolute;right:8px;top:5px;border:0;background:var(--paper);border-radius:50%;font-size:28px;width:38px;height:38px}#largePhoto{display:block;max-width:100%;max-height:65dvh;margin:auto;object-fit:contain}#photoCaption{text-align:center;font:italic 20px Georgia}.photo-controls{display:flex;align-items:center;justify-content:center;gap:24px}.photo-controls button{background:none;border:1px solid var(--line);border-radius:50%;width:40px;height:40px}.letter-text{font:18px/1.9 Georgia}.signature{font-style:italic;color:var(--rose)}#confetti{pointer-events:none;position:fixed;inset:0;overflow:hidden;z-index:5}.heart{position:absolute;top:100%;font-size:25px;animation:float 3s ease-out forwards;color:var(--rose)}@keyframes float{to{transform:translate(var(--drift),-110vh) rotate(50deg);opacity:0}}@media(max-width:700px){header{padding:20px 6%}nav{gap:16px;font-size:10px}.hero{grid-template-columns:1fr;gap:50px;padding:50px 8% 75px}.hero h1{font-size:65px;letter-spacing:-3px}.hero-photo{width:80%;max-width:320px}.hero-photo img{height:350px}.side-note{bottom:20px;font-size:7px}.eyebrow{font-size:8px;letter-spacing:2px}.intro{font-size:15px}.star{right:-26px;font-size:50px}.ribbon{font-size:17px}.memories{padding:65px 6%}.section-top{display:block;margin-bottom:35px}h2{font-size:38px}.gallery{grid-template-columns:1fr 1fr;gap:22px 15px}.photo img{height:220px}.photo{padding:7px 7px 14px}.photo p{font-size:14px}.photo:nth-child(3n+2){margin-top:0}.photo:nth-child(even){margin-top:22px}.letter-section{grid-template-columns:1fr;gap:20px;padding:65px 8%}.envelope{max-width:310px;height:215px}.seal{top:78px}.love-notes{padding:60px 6%}dialog{padding:30px 20px}.letter-text{font-size:16px}.ending p{font-size:13px}}@media(max-width:380px){.photo img{height:180px}.hero h1{font-size:56px}.pill{padding:12px 18px;font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Dreamy garden */
:root{--paper:#faf8ef;--ink:#394633;--rose:#53683e;--muted:#6c7361;--line:#d9dfcb}
body{background-color:var(--paper);background-image:radial-gradient(#73885b0a .7px,transparent .7px);background-size:5px 5px}
header{border-color:#b5c09c66}header>a{letter-spacing:-.5px}.hero{isolation:isolate;grid-template-columns:1fr 1fr;gap:9%;min-height:760px;padding-top:90px;padding-bottom:100px}.hero:before,.hero:after{content:'';position:absolute;background:url('botanical.svg') center/contain no-repeat;pointer-events:none;z-index:-1;opacity:.85;width:195px;height:480px}.hero:before{left:-45px;bottom:0;transform:rotate(-13deg)}.hero:after{right:-20px;top:-30px;transform:rotate(180deg);height:400px;width:170px}.hero-copy{position:relative;z-index:1}.hero h1{font-size:clamp(60px,6.4vw,89px);letter-spacing:-3.5px}.hero-photo{transform:none;background:transparent;padding:0;box-shadow:none;width:100%;max-width:350px;border:1px solid #a6b48c;border-radius:190px 190px 0 0;padding:10px 10px 0}.hero-photo img{border-radius:180px 180px 0 0;height:450px;object-position:44% 60%}.hero-photo:after{content:'';position:absolute;left:-71px;bottom:-34px;width:120px;height:290px;background:url('botanical.svg') center/contain no-repeat;pointer-events:none;transform:rotate(-17deg)}.hero-photo p{margin:19px 0 21px;color:var(--rose);font-size:18px}.tape{display:none}.star{font-size:52px;right:-22px;bottom:10px;color:#a2ae7d}.doodle{font-size:44px}.ribbon{background:#edf0e2;border-color:#d3dac2}.pill{background:#f9fbf0}.memories{position:relative}.section-top h2:after{content:' ❧';color:#92a475;font-size:33px}.photo{background:#fffef9;border:1px solid #dce1ce;box-shadow:0 7px 20px #4a5c3010;border-radius:130px 130px 4px 4px;padding:9px 9px 20px}.photo img{border-radius:120px 120px 2px 2px}.photo:nth-child(3n+1),.photo:nth-child(3n+2){transform:none}.photo:hover{transform:translateY(-6px);box-shadow:0 12px 24px #4a5c3020}.photo p{color:var(--rose)}.love-notes{background:#e9eedf;position:relative;isolation:isolate;overflow:hidden}.love-notes:before,.love-notes:after{content:'';position:absolute;background:url('botanical.svg') center/contain no-repeat;width:145px;height:340px;z-index:-1;opacity:.6;bottom:-80px}.love-notes:before{left:3%;transform:rotate(30deg)}.love-notes:after{right:3%;transform:scaleX(-1) rotate(30deg)}.envelope{border-color:#a9b58f;background:#d2dbc0;box-shadow:0 20px 30px #34432912;transform:rotate(-3deg)}.flap{background:#e1e8d3}.seal{color:#fffef4;background:#617449;box-shadow:inset 0 0 0 3px #9aaa8155}.ending{position:relative;background:linear-gradient(180deg,transparent,#edf0e366)}.ending>span{color:#7d9163}footer{background:#edf0e3}
@media(min-width:1400px){.hero:before{left:-65px}.hero:after{right:-65px}}
@media(max-width:700px){.hero{grid-template-columns:1fr;gap:42px;padding:54px 9% 75px;min-height:0}.hero h1{font-size:64px;letter-spacing:-3px}.hero:before{width:100px;height:270px;left:-32px;bottom:15px;opacity:.65}.hero:after{width:100px;height:240px;right:-21px;top:4px;opacity:.6}.hero-photo{width:79%;max-width:310px}.hero-photo img{height:350px}.hero-photo:after{width:85px;height:225px;left:-52px;bottom:-30px}.hero-photo p{font-size:16px}.love-notes:before,.love-notes:after{opacity:.3;width:100px;height:240px}.love-notes:before{left:-35px}.love-notes:after{right:-35px}.photo{border-radius:90px 90px 4px 4px;padding:7px 7px 16px}.photo img{border-radius:84px 84px 2px 2px}.photo p{font-size:13px}.side-note{font-size:6px}.star{right:-18px;font-size:43px}.section-top h2:after{font-size:28px}}
@media(max-width:380px){.hero h1{font-size:55px}.hero-photo{width:85%}}

body{overflow-x:clip}

.hero-photo img{object-position:50% 48%}

#letterDialog{background-color:var(--paper);background-image:linear-gradient(rgba(250,248,239,.88),rgba(250,248,239,.88)),url("photos/letter.jpg");background-size:cover;background-position:center 58%;background-repeat:no-repeat}#letterDialog .close{background:#faf8efe8}
