@font-face{font-family:"Dancing Script";src:url('./assets/fonts/dancing-script.woff') format('woff');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Patrick Hand";src:url('./assets/fonts/patrick-hand.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
:root{--blush-bg:#fff7fb;--paper:#fff;--ink:#472439;--rose:#b62760;--ribbon:#da9bb4;--wrap-pink:#f3c7d8;--navy:#26324d;--muted:#795466;--line:#ecd5df;--rose-pale:#f7e1ea;--space:clamp(22px,5vw,72px);--ease:cubic-bezier(.2,.7,.2,1);--spring:cubic-bezier(.22,.85,.35,1.2)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:36px}
body{margin:0;background:var(--blush-bg);color:var(--ink);font-family:"Patrick Hand",cursive;font-weight:400;font-synthesis:none;font-size:21px;line-height:1.55;-webkit-text-size-adjust:100%;overflow-wrap:break-word}
button,a{-webkit-tap-highlight-color:transparent}
button,input{font:inherit;color:inherit}
button{cursor:pointer;border:0}
a{color:inherit;text-decoration:none}
button:disabled{cursor:wait}
button:focus-visible,a:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--rose);outline-offset:6px}
::selection{background:var(--ribbon);color:var(--ink)}
[hidden]{display:none!important}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:"Dancing Script",cursive;font-weight:600;line-height:1.2;text-wrap:balance}
h1{font-size:clamp(60px,6.9vw,96px);letter-spacing:-1.8px}
h2{font-size:clamp(40px,4.4vw,62px)}
h3{font-size:34px}
p{max-width:62ch}
img{display:block;max-width:100%}
.wrap{width:min(1200px,calc(100% - var(--space)*2));margin-inline:auto}
.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}
.screen-reader-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link{position:fixed;top:12px;left:12px;z-index:100;padding:12px 20px;background:var(--paper);border:2px solid var(--rose);transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.site-header{display:flex;align-items:center;gap:24px;min-height:100px;border-bottom:1px solid var(--line)}
.wordmark{position:relative;font-family:"Dancing Script",cursive;font-size:33px;font-weight:600;display:inline-flex;gap:9px;align-items:center;min-height:44px;white-space:nowrap}
.wordmark .icon{width:23px;height:23px;stroke:var(--rose)}
.header-nav{display:flex;gap:30px;margin-left:auto;font-size:20px}
.header-nav a{min-height:44px;display:flex;align-items:center}
.header-nav a:hover,.text-link:hover{color:var(--rose)}

.button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:15px;padding:13px 25px;min-height:54px;border-radius:5px 17px 5px 17px;line-height:1.45;transition:background 180ms,transform 180ms var(--ease),box-shadow 180ms;max-width:100%;text-align:center}
.button.primary{color:var(--paper);background:var(--rose);box-shadow:0 5px 0 #8e204b}
.button.primary:hover{background:#9d1e50;box-shadow:0 3px 0 #8e204b;transform:translateY(2px)}
.button.primary:active{transform:translateY(4px);box-shadow:0 1px 0 #8e204b}
.button[aria-busy="true"] .icon{fill:currentColor}
.text-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;background:transparent;padding:5px 0;font-size:19px;text-decoration:underline;text-decoration-color:var(--ribbon);text-underline-offset:6px;text-decoration-thickness:1px;transition:color 180ms}
.text-link .icon{width:18px;height:18px}
.hero{position:relative;display:grid;grid-template-columns:.94fr 1.15fr;gap:12px;align-items:center;padding-top:42px;padding-bottom:28px;min-height:740px}
.hero-copy{position:relative;z-index:2;padding-bottom:36px;min-width:0}
.hero-title-continuation{display:block;font-size:.42em;line-height:1.45;letter-spacing:0;margin-top:.2em}
.date-note{display:flex;align-items:center;gap:12px;font-size:20px;color:var(--rose);margin-bottom:26px}
.date-dash{width:35px;border-top:1px solid var(--rose)}
.hero-intro{margin:20px 0 29px;font-size:23px;line-height:1.65;color:var(--muted)}
.ink-heart{width:min(310px,82%);height:55px;margin-top:4px;margin-left:10px;overflow:visible}
.ink-heart path{stroke:var(--rose);stroke-width:1.7;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:ink-draw 1350ms var(--ease) 250ms forwards}
.hero-next{display:flex;width:fit-content;margin-top:21px;font-size:20px}
.hero-scene{position:relative;isolation:isolate;min-width:0;padding-top:55px}
.anniversary-mark{position:absolute;top:-30px;left:11%;font-family:"Dancing Script",cursive;font-size:clamp(120px,15vw,210px);line-height:1.1;color:#efd0df;font-weight:500;white-space:nowrap;z-index:-1;user-select:none}
.anniversary-mark span{font-size:.68em;margin-inline:5px}
.hero-scene::before{content:"";position:absolute;inset:19% 0 11% 2%;border-radius:49% 51% 44% 56% / 50% 47% 53% 50%;background:#f6e4ec;z-index:-1;transform:rotate(-5deg)}
.scene-window{position:relative;width:100%;aspect-ratio:1;isolation:isolate;overflow:hidden}
.story-sprite{position:absolute;max-width:none!important;width:100%;height:100%;inset:0;object-fit:contain;transform:translate(var(--pose-x,.33%),var(--pose-y,3.79%)) scale(var(--pose-scale,.9687));transform-origin:center;pointer-events:none;user-select:none}
.scene-ground{position:absolute;top:96%;left:17%;right:5%;height:12px;background:#d8bac8;opacity:.3;border-radius:50%;z-index:-1;filter:blur(5px)}
figcaption{color:var(--muted);font-size:19px;line-height:1.5;text-align:center;margin-top:16px}
.scene-scribble{position:absolute;right:-7px;top:35%;font-family:"Dancing Script",cursive;font-size:24px;color:var(--rose);writing-mode:vertical-rl;transform:rotate(-4deg)}
.hero-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding-top:22px;font-size:17px;color:var(--muted)}
.hero-bottom a{position:relative;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--ribbon);border-radius:50%;color:var(--rose)}
.flower-chapter{position:relative;background:var(--paper);margin-top:45px;padding-block:65px 80px;isolation:isolate}
.flower-chapter::before{content:"";position:absolute;top:-21px;left:0;width:100%;height:26px;background:var(--paper);clip-path:polygon(0 70%,3% 15%,6% 62%,10% 38%,13% 58%,17% 14%,21% 70%,25% 25%,29% 63%,33% 30%,38% 65%,42% 22%,46% 62%,50% 35%,54% 64%,59% 25%,64% 66%,69% 20%,74% 70%,79% 29%,84% 67%,89% 24%,94% 69%,97% 32%,100% 70%,100% 100%,0 100%)}
.flower-layout{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:50px}
.flower-art{position:relative;min-width:0;padding:15px 15px 35px;isolation:isolate}
.botanical-orbit{position:absolute;inset:10% 4% 12%;border:1px solid var(--line);border-radius:50%;transform:rotate(-15deg);z-index:-1}
.botanical-orbit::after{content:"";position:absolute;inset:9px -8px -9px 8px;border:1px solid var(--rose-pale);border-radius:50%;transform:rotate(7deg)}
.object-button{position:relative;display:block;width:100%;max-width:390px;aspect-ratio:1;background:transparent;padding:0;isolation:isolate;touch-action:manipulation;margin-inline:auto}
.object-button img{width:100%;height:100%;object-fit:contain;transition:transform 250ms var(--ease);filter:drop-shadow(0 15px 13px #47243912)}
@media(hover:hover) and (pointer:fine){.object-button:hover img{transform:translateY(-5px) rotate(-1deg)}}
.object-button:active img{transform:scale(.98)}
.bouquet-button{max-width:530px;aspect-ratio:1}
.bouquet-button img{filter:drop-shadow(0 20px 17px #47243919)}
.touch-note{display:flex;align-items:center;justify-content:flex-end;gap:5px;max-width:none;position:absolute;bottom:0;right:0;font-size:20px;color:var(--muted);transform:rotate(-4deg)}
.touch-note svg{width:74px;height:34px;fill:none;stroke:var(--rose);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.chapter-note{font-size:20px;color:var(--rose);margin-bottom:16px}
.flower-copy{min-width:0}
.flower-copy h2{font-size:clamp(38px,4.5vw,64px);margin-bottom:26px}
.flower-copy>p:not(.chapter-note){font-size:23px;color:var(--muted);line-height:1.65;margin-bottom:22px}
.flower-copy .text-link{font-size:18px}
.gifts-chapter{padding-block:100px 88px}
.section-heading{text-align:center;max-width:850px;margin-inline:auto}
.section-heading>p{margin:17px auto 0;color:var(--muted);font-size:22px}
.section-heading>p.chapter-note{margin:0 auto 16px;color:var(--rose);font-size:20px}
.little-spark{width:26px;height:26px;stroke:var(--rose);fill:none;stroke-width:1.1;margin-bottom:19px}

.gift-hint{margin:15px auto 18px;text-align:center;color:var(--muted);font-size:18px}
.chapter-link{display:flex;width:fit-content;justify-content:center;margin:0 auto}
.hug-chapter{background:#f3e5ed;position:relative;padding-block:44px 65px}
.hug-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:58px;align-items:center}
.hug-art{min-width:0}
.hug-art .scene-window{width:100%;max-width:550px;margin-inline:auto}
.hug-art figcaption{font-size:18px;max-width:420px;margin-inline:auto}
.hug-copy h2{margin-bottom:22px}
.hug-copy>p{color:var(--muted);font-size:23px;margin-bottom:27px}
.hug-copy .text-link{display:flex;margin-top:20px;font-size:18px;max-width:fit-content}
.letter-chapter{padding-block:100px 70px;max-width:1100px}
.letter-presentation{display:flex;flex-direction:column;align-items:center;margin-top:35px;isolation:isolate}
.envelope-scene{position:relative;width:min(400px,88%);aspect-ratio:1.38;perspective:1200px;margin:36px 0 34px;filter:drop-shadow(0 16px 20px #47243915)}
.envelope-back{position:absolute;inset:0;background:#d6a2b8;border-radius:5px;z-index:1}
.envelope-front{position:absolute;inset:0;background:#edb9cd;clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%);z-index:5;border-radius:4px}
.envelope-front::after{content:"";position:absolute;inset:0;background:#f3c7d8;clip-path:polygon(0 100%,50% 41%,100% 100%);border-radius:4px}
.envelope-flap{position:absolute;inset:0;background:#f6d4e1;clip-path:polygon(0 0,100% 0,50% 54%);transform-origin:center top;z-index:6;backface-visibility:hidden;transition:transform 480ms var(--ease)}
.envelope-letter{position:absolute;left:9%;right:9%;top:10%;height:82%;padding:16px 25px 10px;background:var(--paper);z-index:3;transition:transform 480ms var(--ease) 250ms;box-shadow:0 0 0 1px #47243908;display:flex;flex-direction:column;align-items:center;overflow:hidden}
.envelope-letter span{align-self:flex-start;font-family:"Dancing Script",cursive;font-size:32px;line-height:1.5;margin-bottom:9px}
.envelope-letter i{display:block;width:100%;border-bottom:1px solid var(--line);height:25px;flex-shrink:0}
.envelope-letter i:nth-of-type(3){width:65%;align-self:flex-start}
.envelope-letter .icon{color:var(--rose);width:20px;height:20px;margin-top:16px;flex-shrink:0}
.wax-seal{position:absolute;width:51px;height:51px;left:calc(50% - 25.5px);top:41%;background:var(--rose);border:3px double #d36891;border-radius:48% 52% 50% 47%;display:grid;place-items:center;z-index:7;box-shadow:0 2px 5px #47243920;transition:opacity 160ms,transform 250ms}
.wax-seal .icon{stroke:#fff0f5;fill:none;width:23px;height:23px}
.envelope-address{position:absolute;z-index:6;bottom:25px;left:0;width:100%;text-align:center;font-family:"Dancing Script",cursive;font-size:27px;color:#783e58;transition:opacity 180ms}
.letter-is-open .envelope-flap{transform:rotateX(-180deg)}
.letter-is-open .envelope-letter{transform:translateY(-35%)}
.letter-is-open .wax-seal{opacity:0;transform:scale(.5);pointer-events:none}
.letter-is-open .envelope-address{opacity:0}
.letter-is-open .envelope-scene{margin-top:74px}
.letter-whisper{font-size:18px;color:var(--muted);text-align:center;margin-top:17px}
.letter-paper{position:relative;isolation:isolate;max-width:720px;margin:40px auto 0;padding:48px 58px 44px;background:var(--paper);box-shadow:0 12px 45px #4724390c,3px 5px 0 #f3e3eb,-3px 8px 0 #fff;transform:rotate(-.4deg);border:1px solid #eddee5;border-radius:2px}
.letter-paper::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23472439' opacity='.15' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");z-index:-1}
.paper-pin{position:absolute;top:-11px;left:45%;width:85px;height:22px;background:#edcfddad;transform:rotate(5deg)}
.paper-date{text-align:right;color:var(--muted);font-size:18px;margin-bottom:24px}
.letter-paper h3{font-size:38px;text-align:left;margin-bottom:24px}
#letter-body{font-size:25px;line-height:1.8}
#letter-body>p+p{margin-top:20px}
.letter-placeholder{text-align:center;min-height:220px;padding-top:20px}
.letter-placeholder>.icon{color:var(--ribbon);width:29px;height:29px;stroke-width:1.2}
.letter-placeholder>p{margin:15px auto 0;font-size:24px}
.letter-placeholder>span{display:block;font-size:17px;color:var(--muted);margin-top:5px}
.empty-lines{margin:24px auto 15px;width:85%}
.empty-lines i{display:block;border-bottom:1px solid var(--line);height:35px}
.empty-lines i:last-child{width:66%}
.signature{font-family:"Dancing Script",cursive;font-size:31px;text-align:right;margin:30px 0 0 auto;font-weight:500;line-height:1.6}
.letter-paper.is-revealing{animation:paper-appear 420ms var(--ease) both}
.ending{text-align:center;padding-block:60px 75px;display:flex;flex-direction:column;align-items:center}
.ending-copy{position:relative;z-index:2}
.ending-copy>p:last-child{margin:18px auto 0;color:var(--muted);font-size:23px}
.ending-copy .chapter-note{margin-inline:auto}
.ending-art{position:relative;width:min(510px,100%);margin-top:26px;isolation:isolate}
.ending-art::before{content:"";position:absolute;inset:15% 0 0 4%;border-radius:50% 50% 0 0;background:#f7e3ec;z-index:-1}
.ending-heart{position:absolute;right:12%;top:3%;width:65px;height:65px;fill:none;stroke:var(--rose);stroke-width:1.4;z-index:3;transform:rotate(10deg);opacity:0}
.ending-heart path{stroke-dasharray:1;stroke-dashoffset:1}
.hands-joined .ending-heart{opacity:1}
.hands-joined .ending-heart path{animation:ink-draw 900ms var(--ease) forwards}
.ending>.button{margin-top:26px}
.ending-promise{font-family:"Dancing Script",cursive;font-size:37px;margin-top:22px;color:var(--rose);animation:note-appear 250ms var(--ease)}
.final-dedication{margin:35px auto 12px;font-size:22px}
.replay-button{font-size:18px;color:var(--muted)}
.site-footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:24px 30px;font-size:17px;color:var(--muted)}
.site-footer .wordmark{font-size:27px;color:var(--ink)}
.site-footer .text-link{font-size:17px}
.photo-dialog{width:min(680px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:22px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:9px;box-shadow:0 20px 90px #47243940;overflow:auto;overscroll-behavior:contain}
.photo-dialog::backdrop{background:#30142199;backdrop-filter:blur(4px)}
.photo-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.photo-dialog-header h2{font-size:30px}
.icon-button{background:var(--blush-bg);border:1px solid var(--line);border-radius:50%;width:44px;height:44px;display:grid;place-items:center;flex:none}
.photo-gift{width:100%;max-width:none;height:56vh;height:min(56dvh,550px);aspect-ratio:auto;background:var(--blush-bg);border-radius:18px;overflow:visible}
.photo-gift img{width:100%;height:100%;object-fit:contain;padding:12px}
.photo-dialog>p{font-size:20px;text-align:center;margin:18px auto 0;color:var(--rose)}
.effect-layer{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:8}
.chibi-particle{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);opacity:0;overflow:visible;animation:chibi-burst 1100ms var(--ease) var(--delay,0ms) both;filter:drop-shadow(0 2px 1px #4724390d);pointer-events:none}
.petal-particle{animation-duration:1250ms}
.spark-particle{animation:chibi-twinkle 850ms var(--ease) var(--delay,0ms) both}
.icon-burst-layer .chibi-particle{animation-duration:780ms}
.chibi-ripple{position:absolute;left:var(--x);top:var(--y);width:56px;height:30px;border:2px solid var(--ribbon);border-radius:50%;opacity:0;animation:chibi-ripple 700ms var(--ease) both}
.object-button.is-celebrating img{animation:chibi-gift-pop 680ms var(--spring)}
.bouquet-button.is-celebrating img{animation:chibi-bouquet 980ms var(--ease)}
.is-celebrating>.icon{animation:chibi-icon-pop 520ms var(--spring)}

.noscript-note{text-align:center;max-width:720px;margin:20px auto;padding:20px;background:var(--paper);border:1px solid var(--line)}
@keyframes ink-draw{to{stroke-dashoffset:0}}
@keyframes chibi-gift-pop{0%,100%{transform:scale(1)}20%{transform:translateY(3px) scale(.96)}52%{transform:translateY(-10px) scale(1.035) rotate(-2deg)}78%{transform:translateY(1px) scale(.99) rotate(1deg)}}
@keyframes chibi-bouquet{0%,100%{transform:rotate(0)}20%{transform:rotate(-4deg) scale(.98)}52%{transform:rotate(3deg) translateY(-5px)}78%{transform:rotate(-1deg)}}
@keyframes chibi-icon-pop{0%,100%{transform:scale(1)}35%{transform:scale(1.22) rotate(-9deg)}65%{transform:scale(.93) rotate(5deg)}}
@keyframes note-appear{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes paper-appear{from{opacity:0;transform:translateY(12px) rotate(0)}to{opacity:1;transform:translateY(0) rotate(-.4deg)}}
@keyframes chibi-burst{0%{opacity:0;transform:translate(-50%,0) scale(.35) rotate(0)}16%{opacity:1}48%{opacity:1;transform:translate(calc(var(--dx)*.6),calc(var(--dy) - 12px)) scale(1.1) rotate(calc(var(--spin)*.5))}100%{opacity:0;transform:translate(var(--dx),calc(var(--dy) + var(--fall))) scale(.65) rotate(var(--spin))}}
@keyframes chibi-twinkle{0%,100%{opacity:0;transform:scale(.3) rotate(-25deg)}40%{opacity:1;transform:scale(1.15) rotate(15deg)}65%{opacity:.8;transform:scale(.9) rotate(25deg)}}
@keyframes chibi-ripple{0%{opacity:.7;transform:translate(-50%,-50%) scale(.3)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.5)}}
@media(min-width:1400px){.hero{min-height:780px}.hero-scene{padding-top:65px}}
@media(max-width:1050px){.hero{grid-template-columns:.95fr 1fr;min-height:650px}.hero h1{font-size:clamp(58px,7.2vw,75px)}.hero-intro{font-size:21px}.hero-scene{padding-top:60px}.scene-scribble{display:none}.flower-layout{gap:30px}.hug-layout{gap:25px}.hug-copy h2{font-size:48px}.header-nav{gap:20px}}
@media(max-width:760px){:root{--space:26px}body{font-size:20px}.site-header{min-height:83px;gap:13px}.wordmark{font-size:29px}.header-nav{gap:18px;font-size:18px}.hero{grid-template-columns:1fr;min-height:0;gap:0;padding-top:38px;padding-bottom:20px}.hero-copy{padding-bottom:0;text-align:center}.hero h1{font-size:clamp(60px,11.5vw,82px);letter-spacing:-1px}.date-note{justify-content:center;font-size:18px;margin-bottom:23px}.hero-intro{font-size:22px;max-width:430px;margin:12px auto 23px;line-height:1.55}.ink-heart{height:43px;width:255px;margin-top:2px}.hero-next{margin:17px auto 0;font-size:18px}.hero-scene{width:min(480px,100%);margin:28px auto 0;padding-top:49px}.anniversary-mark{top:-13px;left:16%;font-size:clamp(110px,24vw,160px)}.hero-scene::before{inset:20% 0 12%}.hero-scene figcaption{font-size:17px;margin-top:12px}.hero-bottom{padding-top:25px;font-size:15px;gap:13px}.hero-bottom a{flex:none}.flower-chapter{margin-top:30px;padding-block:45px 55px}.flower-layout{grid-template-columns:1fr;gap:36px}.flower-art{width:min(430px,100%);margin-inline:auto;padding:0 13px 25px}.flower-copy{text-align:center}.chapter-note{font-size:18px;margin-bottom:16px}.flower-copy h2{font-size:clamp(36px,6.7vw,48px);margin-bottom:20px}.flower-copy>p:not(.chapter-note){font-size:21px;margin:0 auto 12px}.flower-copy .text-link{font-size:17px}.touch-note{font-size:17px;right:3%}.touch-note svg{width:55px}.gifts-chapter{padding-block:60px 55px}.section-heading h2{font-size:45px}.section-heading>p{font-size:20px;margin-top:15px}.gift-hint{font-size:17px;margin-top:5px}.chapter-link{font-size:18px}.hug-chapter{padding-block:40px 50px}.hug-layout{grid-template-columns:1fr;gap:28px}.hug-art{order:2;max-width:460px;margin-inline:auto}.hug-copy{text-align:center;order:1}.hug-copy h2{font-size:48px}.hug-copy>p{font-size:21px;margin:15px auto 23px}.hug-copy .text-link{font-size:17px;margin:20px auto 0}.hug-art figcaption{font-size:17px;max-width:310px}.letter-chapter{padding-block:65px 50px}.section-heading>p.chapter-note{font-size:17px}.letter-presentation{margin-top:25px}.envelope-scene{width:min(360px,96%);margin-top:28px}.envelope-letter{padding:12px 20px}.envelope-letter span{font-size:27px;margin-bottom:3px}.envelope-letter i{height:22px}.envelope-address{bottom:22px;font-size:25px}.letter-paper{padding:33px 26px 30px;margin-top:32px}.letter-paper h3{font-size:33px}.paper-date{font-size:16px;margin-bottom:19px}#letter-body{font-size:23px;line-height:1.7}.letter-placeholder{min-height:230px;padding-top:17px}.letter-placeholder>p{font-size:23px}.letter-placeholder>span{font-size:16px}.signature{font-size:29px}.ending{padding-block:36px 45px}.ending-copy h2{font-size:46px}.ending-copy .chapter-note{font-size:17px;max-width:280px}.ending-copy>p:last-child{font-size:21px}.ending-art{max-width:420px;margin-top:20px}.ending-heart{width:45px;height:45px;top:0}.final-dedication{font-size:20px;max-width:300px;line-height:1.6}.site-footer{flex-wrap:wrap;justify-content:space-between;padding-block:21px;gap:8px}.site-footer>span{order:3;flex-basis:100%;font-size:16px}.site-footer .text-link{font-size:16px}.photo-dialog{padding:17px}.photo-dialog>p{font-size:19px}}
@media(max-width:380px){:root{--space:20px}.site-header{gap:8px}.header-nav{gap:12px;font-size:17px}.wordmark{font-size:27px;gap:5px}.wordmark .icon{width:20px}.hero h1{font-size:56px}.hero-intro{font-size:20px}.hero-copy .button{padding-inline:20px;font-size:20px}.hero-bottom span{max-width:210px}.section-heading h2{font-size:41px}.hug-copy h2{font-size:43px}.ending-copy h2{font-size:42px}.letter-paper{padding-inline:22px}.letter-paper h3{font-size:31px}.envelope-address{font-size:23px;bottom:17px}.wax-seal{width:44px;height:44px;left:calc(50% - 22px)}.envelope-letter i{height:17px}}
@media print{.site-header,.hero-bottom,.button,.text-link,.effect-layer,.envelope-scene,.gift-hint,.letter-whisper,.photo-dialog,.site-footer{display:none!important}body{background:#fff;color:#000}.wrap{width:100%}section{break-inside:avoid;padding:25px 0!important;margin:0!important}.letter-paper[hidden]{display:block!important}.letter-paper{box-shadow:none;transform:none}.scene-window{max-width:300px;margin:auto}.hero{min-height:0;display:block}.hero-scene{max-width:300px}.hero-copy{text-align:center}.flower-art{max-width:300px;margin:auto}.ending-art{max-width:300px}.gifts-chapter,.flower-chapter{break-inside:auto}}
