*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#fff9ef;color:#401521;font-family:Arial,Helvetica,sans-serif;font-size:16px}header{max-width:1200px;margin:auto;padding:28px 36px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #40152122}header>a{text-decoration:none;color:inherit;font-family:Georgia,serif;font-size:24px;letter-spacing:4px}header>a span{color:#a64554}header>span{font-size:14px;color:#74535a}.hero{max-width:1200px;margin:auto;padding:65px 36px 100px;display:grid;grid-template-columns:1fr 0.9fr;gap:70px;align-items:center}.eyebrow{font-size:12px;letter-spacing:2.3px;font-weight:700;line-height:1.7;color:#89524f}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(64px,7.5vw,104px);line-height:1.02;letter-spacing:-4px;margin:28px 0}em{font-weight:400;color:#a64554}h2{font-size:clamp(35px,4vw,56px);line-height:1.14;letter-spacing:-1.5px;margin:18px 0 28px}.lead{max-width:370px;font-size:18px;line-height:1.75;color:#735258}.button{display:inline-flex;justify-content:center;align-items:center;gap:25px;background:#401521;color:#fff9ef;border:0;border-radius:5px;padding:19px 25px;font-size:16px;text-decoration:none;cursor:pointer;font-family:inherit;line-height:1.3;transition:background .2s,transform .2s}.button:hover{background:#742c3c;transform:translateY(-2px)}.button:focus-visible,a:focus-visible{outline:3px solid #ba7a15;outline-offset:5px}.small{font-size:13px;color:#80656b;margin-top:18px}.portrait{position:relative;transform:rotate(3deg);background:#fff;padding:13px 13px 50px;box-shadow:0 18px 50px #40152118;max-width:450px}.portrait>img{display:block;width:100%;height:480px;object-fit:cover;object-position:center 35%}.photo-note{font-family:Georgia,serif;font-size:21px;font-style:italic;text-align:center;padding-top:20px}.stamp{position:absolute;right:-25px;bottom:90px;border-radius:50%;background:#f4cf75;padding:23px 19px;width:106px;height:106px;text-align:center;font-size:12px;line-height:1.5;letter-spacing:1px;transform:rotate(-12deg);box-shadow:0 4px 10px #40152115}.ribbon{background:#401521;color:#f4cf75;padding:25px;display:flex;align-items:center;justify-content:center;gap:42px;font:italic 22px Georgia,serif;overflow:hidden;white-space:nowrap}.ribbon span{font-style:normal}.letter-section{padding:95px 24px;text-align:center;background:#f6e9e7}.letter{max-width:720px;margin:40px auto 0;background:#fffaf2;text-align:left;padding:55px 65px;box-shadow:0 10px 35px #40152109;position:relative;border-top:3px solid #a64554}.letter-heart{float:right;font:40px Georgia,serif;color:#a64554}.letter h3{font-size:30px;margin:0 0 25px}.letter p{font-size:17px;line-height:1.9;color:#65434a}.letter .signature{color:#401521;font:italic 25px/1.5 Georgia,serif;padding-top:20px}.signature span{font-size:19px}.memories{max-width:1200px;margin:auto;padding:95px 36px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px}.section-heading>p{color:#735258;line-height:1.8;padding-bottom:15px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:35px}.gallery figure{margin:0;padding:10px 10px 24px;background:#fff;box-shadow:0 10px 30px #40152110;transform:rotate(-2deg)}.gallery figure:nth-child(2){transform:rotate(2deg);margin-top:24px}.gallery figure:nth-child(3){transform:rotate(-1deg)}.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}.gallery figcaption{text-align:center;font:italic 18px/1.5 Georgia,serif;margin-top:18px}.garden{padding:75px 24px 85px;text-align:center;border-top:1px solid #40152122}.garden-icons{font-size:47px;word-spacing:25px;margin:30px auto}.garden-icons span{font-size:65px}.garden>p:not(.eyebrow){line-height:1.85;color:#735258}.garden .button{margin-top:20px}.love-note{min-height:60px;max-width:460px;margin:22px auto 0;font-style:italic}.spark{position:fixed;pointer-events:none;color:#a64554;font-size:25px;z-index:20;animation:float 1.6s ease-out forwards}@keyframes float{from{transform:translateY(0) scale(.7);opacity:1}to{transform:translateY(-180px) rotate(25deg) scale(1.3);opacity:0}}footer{background:#401521;color:#fff9ef;text-align:center;padding:60px 24px}footer>span{font:italic 25px Georgia,serif;color:#f4cf75}footer strong{font:400 37px/1.3 Georgia,serif;display:block;margin:18px 0}footer p{font-size:14px;color:#e8c3c5}footer p span{color:#f4cf75}@media(max-width:700px){header{padding:22px}header>span{font-size:12px}.hero{grid-template-columns:1fr;gap:45px;padding:35px 26px 65px}.intro{padding:0 2px}h1{font-size:67px;letter-spacing:-3px;margin-top:22px}.lead{font-size:17px}.portrait{width:85%;margin:auto;max-width:360px}.portrait>img{height:350px}.stamp{right:-22px;bottom:65px}.ribbon{justify-content:flex-start;font-size:20px;gap:25px}.letter-section{padding:60px 18px}.letter{padding:30px 24px}.letter p{font-size:16px;line-height:1.85}.memories{padding:60px 26px}.section-heading{display:block}.section-heading>p{margin:0}.gallery{grid-template-columns:1fr;gap:35px;max-width:340px;margin:35px auto 0}.gallery figure:nth-child(2){margin-top:0}.garden{padding:60px 22px}.garden-icons{word-spacing:10px}.button{max-width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.spark{display:none}}
body .portrait{padding-bottom:13px}body .gallery figure{padding-bottom:10px}
.letter-page{animation:pageReveal .8s cubic-bezier(.2,.8,.2,1) both}.letter-main{position:relative;z-index:2}.back-link{display:block;max-width:920px;margin:34px auto 0;padding:0 24px;color:#89524f;text-decoration:none;font-size:15px}.back-link:hover{color:#401521;text-decoration:underline}.letter-page-section{padding-top:52px;min-height:calc(100vh - 150px)}.letter-page-section h1{text-align:center;font-size:clamp(42px,6vw,74px);line-height:1.08;letter-spacing:-2px;margin:20px 0 40px}.letter-page-section .letter h2{font-size:30px;margin-top:0}
.carta-memories{max-width:1000px;margin:0 auto;padding:45px 24px 70px;text-align:center}.carta-memories h2{font-size:clamp(34px,5vw,52px);margin:14px 0 25px}.carta-memories .gallery{margin-top:28px}.carta-memories .gallery img{aspect-ratio:4/5}.letter-page .ribbon{position:relative;z-index:2}
@media(max-width:700px){.letter-page header{padding:18px 20px}.letter-page header>a{font-size:21px}.letter-page .back-link{margin-top:24px;padding:0 20px;font-size:14px}.letter-page-section{padding:38px 12px 45px;min-height:auto}.letter-page-section h1{font-size:clamp(38px,11vw,56px);letter-spacing:-1px;margin:16px 0 28px}.letter-page-section .letter{padding:28px 21px}.letter-page-section .letter p{font-size:16px;line-height:1.75}.letter-page-section .letter h2{font-size:28px}.carta-memories{padding:45px 20px 55px}.carta-memories .gallery{max-width:330px;gap:25px}.carta-memories .gallery figure{margin-top:0!important}.letter-page .ribbon{padding:20px 18px;font-size:17px;gap:22px}.letter-page footer{padding:45px 20px}.letter-page footer strong{font-size:30px}}
.ribbon{width:100%;overflow:hidden;flex-wrap:wrap;white-space:normal;justify-content:center;text-align:center}.ribbon>span{max-width:100%}
@media(max-width:700px){.ribbon,.letter-page .ribbon{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);justify-content:center;gap:18px 8px;padding:24px 16px;font-size:17px;line-height:1.5;text-align:center}.ribbon span{display:block;overflow-wrap:break-word}.ribbon>span:nth-child(4){display:none}.home-ribbon{justify-content:center}}
