/* Botanical framing and hearts requested by Samir. The letter stays readable. */
.wordmark .wordmark-heart{width:18px;height:18px;stroke-width:1.4;margin-left:2px}
.hero,.letter-section,.memories,.future,.proposal{isolation:isolate;overflow:clip}
.botanical{position:absolute;pointer-events:none;user-select:none;object-fit:contain;z-index:0}
.invitation{z-index:3}
.hero-peonies{width:clamp(280px,35vw,510px);left:-40px;bottom:-32px;z-index:2;transform:rotate(-9deg);transform-origin:bottom left}
.hero-lilies{width:clamp(280px,35vw,510px);right:-48px;bottom:-25px;z-index:2;transform:rotate(7deg);transform-origin:bottom right}
.hero-tulips{width:clamp(160px,20vw,295px);bottom:170px;z-index:1}
.hero-tulips-left{left:12px;transform:rotate(-10deg)}
.hero-tulips-right{right:7px;transform:scaleX(-1) rotate(-8deg)}
.hero-keepsake{position:relative;margin:21px auto 0;width:100%}
.hero-keepsake .hero-envelope{margin-top:0}
.mobile-flower{display:none}
.letter-paper{z-index:1}
.letter-peonies{width:300px;left:max(-30px,calc((100% - 840px)/2 - 220px));top:100px;transform:rotate(-25deg)}
.letter-lilies{width:320px;right:max(-35px,calc((100% - 840px)/2 - 240px));bottom:80px;transform:rotate(18deg)}
.flower-trio{position:relative;width:310px;max-width:100%;height:170px;pointer-events:none;user-select:none}
.flower-trio img{position:absolute;width:54%;height:auto;bottom:0;object-fit:contain}
.flower-trio img:first-child{left:0;z-index:2;transform:rotate(-10deg)}
.flower-trio img:nth-child(2){width:34%;left:33%;bottom:3px;z-index:1;transform:rotate(3deg)}
.flower-trio img:nth-child(3){right:0;z-index:2;transform:rotate(9deg)}
.letter-flowers{width:260px;height:140px;margin:28px auto -6px}
.memories{background:var(--soft)}
.memories .section-heading{display:grid;grid-template-columns:minmax(0,1fr) 116px;column-gap:30px;align-items:center;position:relative;z-index:1}
.memories .section-heading h2{grid-column:1;align-self:end}
.memories .section-heading>p{grid-column:1;align-self:start}
.memory-tulips{grid-column:2;grid-row:1/3;width:116px;max-height:174px;object-fit:contain;transform:rotate(8deg)}
.memory-freefire{grid-column:1/7;grid-row:2/4;align-self:start;transform:rotate(-1.5deg)}
.memory-freefire h3{font-size:var(--body);line-height:1.35}
.memory-dialog[data-memory="freefire"] .memory-dialog-copy h2{font-size:var(--lead);line-height:1.25}
.memory-discord{grid-column:8/13;grid-row:2;align-self:start;margin-top:30px}
.distance-note{grid-column:8/13;grid-row:3;align-self:start;max-width:330px;padding:0 18px}
.scrapbook,.future-picture,.future-copy,.proposal-note,.reply-card{position:relative;z-index:1}
.future-copy>p:last-of-type{max-width:430px}
.future-picture.video-memory{width:min(100%,360px);padding:12px;transform:none;justify-self:center;margin-inline:auto}
.video-memory video{display:block;width:100%;height:auto;background:var(--deep);object-fit:contain}
.future-flowers{margin:28px 0 0;width:250px;height:135px}
.proposal-note{max-width:390px}
.proposal-flowers{width:350px;height:200px;margin:38px 0 0}
.heart-garland{height:23px;display:flex;justify-content:center;align-items:center;gap:16px;margin-bottom:22px;color:var(--forest)}
.heart-garland svg{width:17px;height:17px;fill:currentColor;stroke:none}
.heart-garland svg:nth-child(2){width:23px;height:23px;color:var(--sage)}
.response-flowers{width:250px;height:140px;margin:0 auto 24px}
.romantic-hearts{position:absolute;inset:0;overflow:hidden;pointer-events:none;user-select:none;z-index:0;color:var(--forest)}
.hero .romantic-hearts{z-index:0;color:var(--paper)}
.proposal .romantic-hearts{color:var(--sage)}
.romantic-hearts svg{position:absolute;width:var(--heart-size,36px);height:var(--heart-size,36px);fill:currentColor;stroke:none;opacity:.55;animation:romantic-float var(--heart-duration,7s) ease-in-out var(--heart-delay,0s) infinite alternate}
.romantic-hearts svg:nth-child(3n){fill:none;stroke:currentColor;stroke-width:1.6;opacity:.75}
.letter-section .romantic-hearts svg,.memories .romantic-hearts svg,.future .romantic-hearts svg{opacity:.34}
.love-heart-row{display:flex;align-items:center;justify-content:center;gap:16px;pointer-events:none;user-select:none;position:relative;z-index:1;color:var(--forest)}
.love-heart-row svg{display:block;width:24px;height:24px;flex-shrink:0;fill:currentColor;stroke:none;animation:love-beat 3.4s ease-in-out var(--beat-delay,0s) infinite;transform-origin:center}
.love-heart-row svg:nth-child(even){color:#6a8b5d}
.love-heart-row svg:nth-child(3n){fill:none;stroke:currentColor;stroke-width:1.6}
.love-opening{height:30px;margin:0 0 18px;gap:18px}
.love-opening svg:nth-child(4){width:34px;height:34px}
.love-under-action{height:22px;gap:20px;margin:18px auto 0}
.love-under-action svg{width:18px;height:18px}
.love-under-action svg:nth-child(3){width:25px;height:25px;fill:currentColor;stroke:none}
.hero-keepsake{margin-top:12px}
.love-signature{margin:28px auto 0;gap:18px}
.love-signature svg{width:22px;height:22px}
.love-signature svg:nth-child(4){width:32px;height:32px}
.heart-garland.love-question{height:43px;margin-bottom:25px;gap:18px}
.heart-garland.love-question svg{width:26px;height:26px;color:var(--forest)}
.heart-garland.love-question svg:nth-child(even){color:#6a8b5d}
.heart-garland.love-question svg:nth-child(4){width:42px;height:42px;color:var(--forest)}
.love-response{margin:0 auto 24px;gap:20px}
.love-response svg:nth-child(3){width:36px;height:36px;fill:currentColor;stroke:none}
@keyframes love-beat{0%,45%,100%{transform:scale(1)}55%{transform:scale(1.13)}65%{transform:scale(1)}75%{transform:scale(1.08)}}
@keyframes romantic-float{from{transform:translateY(0) rotate(-8deg)}to{transform:translateY(-16px) rotate(8deg)}}
@media(max-width:1100px){.hero-peonies,.hero-lilies{width:330px;bottom:-25px}.hero-tulips{width:195px;bottom:190px}.hero-tulips-left{left:-28px}.hero-tulips-right{right:-28px}.letter-peonies{left:-60px;width:230px}.letter-lilies{right:-60px;width:230px}.proposal-flowers{width:100%;height:170px}}
@media(max-width:700px){
  .hero>.botanical{display:none}
  .hero-keepsake{height:158px;margin-top:12px}
  .hero-keepsake .hero-envelope{position:absolute;width:149px;bottom:1px;left:50%;margin:0;transform:translateX(-50%);animation:none;z-index:3}
  .mobile-flower{display:block;position:absolute;object-fit:contain;pointer-events:none;user-select:none}
  .mobile-tulips{width:86px;left:calc(50% - 43px);top:0;z-index:0}
  .mobile-peonies{width:145px;left:-18px;bottom:-3px;z-index:2;transform:rotate(-12deg)}
  .mobile-lilies{width:145px;right:-18px;bottom:-3px;z-index:2;transform:rotate(12deg)}
  .hero-date{position:relative;margin-top:12px;z-index:4}
  .letter-peonies,.letter-lilies{display:none}
  .letter-flowers{width:220px;height:120px;margin-top:26px}
  .memories .section-heading{grid-template-columns:minmax(0,1fr) 79px;column-gap:12px;margin-bottom:36px}
  .memories .section-heading h2{font-size:38px}
  .memories .section-heading>p{font-size:20px;margin-top:14px}
  .memory-tulips{width:79px;max-height:142px;transform:rotate(5deg)}
  .memories .section-heading h2{grid-column:1/-1}
  .memories .section-heading>p{align-self:center}
  .memories .section-heading .memory-tulips{grid-row:2}
  .memory-freefire{grid-column:1/3;grid-row:2;max-width:440px;width:100%;justify-self:center}
  .memory-discord{grid-column:1/3;grid-row:3;margin-top:8px}
  .distance-note{grid-column:1/3;grid-row:4;max-width:none;padding:0}
  .future-flowers{width:230px;height:130px;margin:28px auto 0}
  .proposal-note{max-width:none}
  .proposal-flowers{width:270px;max-width:100%;height:155px;margin:26px auto 0}
  .heart-garland{margin-bottom:20px}
  .response-flowers{width:220px;height:120px;margin-bottom:22px}
  .romantic-hearts svg{width:calc(var(--heart-size,36px)*.76);height:calc(var(--heart-size,36px)*.76)}
  .love-opening{gap:15px;height:27px;margin-bottom:18px}
  .love-opening svg{width:21px;height:21px}
  .love-opening svg:nth-child(4){width:30px;height:30px}
  .love-signature{gap:14px}
  .love-signature svg{width:19px;height:19px}
  .love-signature svg:nth-child(4){width:29px;height:29px}
  .heart-garland.love-question{gap:12px}
  .heart-garland.love-question svg{width:23px;height:23px}
  .heart-garland.love-question svg:nth-child(4){width:36px;height:36px}
}
@media(max-width:370px){.mobile-peonies,.mobile-lilies{width:130px}.hero-keepsake .hero-envelope{width:137px}.memories .section-heading h2{font-size:34px}.memories .section-heading{grid-template-columns:minmax(0,1fr) 65px}.memory-tulips{width:65px}.wordmark .wordmark-heart{width:15px}.memory-dialog[data-memory="freefire"] .memory-dialog-copy h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.romantic-hearts svg,.love-heart-row svg{animation:none}.hero-peonies,.hero-lilies,.hero-tulips,.flower-trio img,.memory-tulips{transform:none}}
@media print{.romantic-hearts,.botanical,.flower-trio,.mobile-flower,.heart-garland{display:none}.hero-keepsake{height:auto}.hero-keepsake .hero-envelope{position:static;transform:none;margin:auto}.memory-tulips{display:none}.memories .section-heading{display:block}}
