.main-content>.letter-layout{row-gap:45px}.memory-gallery{grid-column:1/-1;width:100%;padding:35px 10px 18px;text-align:center}.memory-gallery>.eyebrow{font-size:12px;margin-bottom:14px}.memory-gallery h2{font-family:var(--serif);font-weight:400;font-size:clamp(40px,4.6vw,68px);color:var(--pink);line-height:1.03;margin-bottom:35px}.memory-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;max-width:1030px;margin:auto;align-items:start}.memory-photo{border:1px solid #fff8ef;background:var(--paper);padding:11px 11px 0;box-shadow:0 8px 20px #7631441c;transform:rotate(-2deg);transition:transform .3s var(--ease),box-shadow .3s;min-width:0}.memory-photo:nth-child(2){transform:rotate(2deg) translateY(10px)}.memory-photo:nth-child(3){transform:rotate(-1deg)}.memory-photo:nth-child(4){grid-column:span 2;width:min(100%,660px);justify-self:center;transform:rotate(1deg);margin-top:15px}.memory-photo:nth-child(5){transform:rotate(-2deg);margin-top:15px}.memory-photo:nth-child(6){grid-column:2;transform:rotate(1deg)}@media(max-width:760px){.memory-photo:nth-child(6){grid-column:1}}.memory-photo:nth-child(4) img{aspect-ratio:auto}@media(max-width:760px){.memory-photo:nth-child(4){grid-column:1/-1}.memory-photo:nth-child(5){margin-top:0}}.memory-photo:hover,.memory-photo:focus-visible{transform:rotate(0) translateY(-6px);box-shadow:0 15px 25px #76314425}.memory-photo img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain}.memory-photo>span{display:flex;align-items:center;justify-content:center;gap:13px;padding:9px 0 12px;font-size:28px}.memory-hint{font-family:var(--serif);font-size:21px;margin-top:32px}.photo-dialog{border:0;border-radius:4px;background:var(--paper);color:var(--wine);padding:52px 14px 8px;max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);overflow:auto;box-shadow:0 25px 100px #36091c55}.photo-dialog::backdrop{background:#431025bb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.photo-dialog>img{display:block;max-width:100%;width:auto;height:auto;max-height:calc(100svh - 150px);object-fit:contain;margin:auto}.photo-close{position:absolute;right:7px;top:4px}.photo-navigation{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:5px;font-size:14px}@media(max-width:760px){.memory-gallery{order:2;padding:15px 4px 5px}.letter-layout{row-gap:25px}.memory-gallery h2{font-size:43px;margin-bottom:28px}.memory-photos{grid-template-columns:1fr;max-width:360px;gap:28px;padding:0 8px}.memory-photo:nth-child(2){transform:rotate(2deg)}.memory-photo>span{font-size:27px}.letter-layout .gift-callout{order:3}.memory-hint{font-size:19px;margin-top:23px}}@media(prefers-reduced-motion:reduce){.memory-photo{transition:none}.memory-photo:hover,.memory-photo:focus-visible{transform:none}}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/font-0.ttf) format("truetype")}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-1.ttf) format("truetype")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/font-2.ttf) format("truetype")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/font-3.ttf) format("truetype")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/font-4.ttf) format("truetype")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-5.ttf) format("truetype")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-6.ttf) format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/font-7.ttf) format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-8.ttf) format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-9.ttf) format("truetype")}:root{font-family:DM Sans,sans-serif;color:#701737;background:#f9dfe7;font-synthesis:none;--pink:#cc1555;--wine:#701737;--paper:#fff6eb;--serif:"Cormorant Garamond",Georgia,serif;--hand:"Caveat",cursive;--ease:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box}body{margin:0;min-width:320px;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer;color:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait}button:focus-visible,a:focus-visible{outline:2px solid var(--wine);outline-offset:7px}::selection{background:#cd1c5c;color:#fff}h1,h2,p{margin:0}img{max-width:100%;display:block}button svg{flex-shrink:0}fieldset{border:0;padding:0;margin:0;min-width:0}.section-heading:focus,main:focus{outline:none}.birthday-app{min-height:100svh;padding:0 clamp(24px,4.8vw,90px);display:flex;flex-direction:column;overflow:hidden;background-color:#f9dfe7}.site-header{height:82px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #871b48;position:relative;z-index:2}.wordmark{font-family:var(--serif);font-size:38px;font-weight:600;letter-spacing:-1.5px}.header-note{font-size:12px;text-transform:uppercase;letter-spacing:.25em;font-weight:500}.site-footer{min-height:68px;border-top:1px solid var(--pink);display:flex;justify-content:center;align-items:center;gap:14px;font-family:var(--serif);font-size:18px;margin-top:auto;text-align:center}.main-content{flex:1;display:flex;align-items:center;opacity:1;transition:opacity .24s,transform .24s}.main-content.view-exit{opacity:0;transform:translateY(-15px)}.skip-link{position:fixed;top:-100px;left:25px;padding:12px 20px;background:var(--paper);z-index:60}.skip-link:focus{top:10px}.locked-layout{width:100%;display:grid;grid-template-columns:46% 54%;align-items:center;min-height:calc(100svh - 150px);padding:clamp(40px,6vh,86px) 0;animation:fade-in .8s var(--ease) both}.welcome-copy{position:relative;z-index:2}.eyebrow{text-transform:uppercase;font-size:14px;letter-spacing:.28em;line-height:1.5;font-weight:500;color:var(--pink);margin-bottom:23px}.birthday-title{font-family:var(--serif);font-weight:400;color:var(--pink);font-size:clamp(76px,8.8vw,155px);line-height:.89;letter-spacing:-.045em}.birthday-title span,.birthday-title em{display:block;white-space:nowrap}.birthday-title em{font-weight:400;font-size:.79em;letter-spacing:-.055em;margin-top:9px}.intro{font-family:var(--serif);font-weight:500;font-size:clamp(23px,2.05vw,32px);line-height:1.32;margin-top:36px;letter-spacing:-.025em}.code-form{margin-top:42px;width:min(100%,390px)}legend{font-size:16px;letter-spacing:.13em;margin-bottom:16px}.code-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.code-inputs input{width:100%;min-width:0;height:77px;text-align:center;font-family:var(--serif);font-size:43px;border:1.5px solid var(--pink);border-radius:7px;color:var(--wine);background:#ffffff0a;caret-color:var(--pink);transition:background .2s,box-shadow .2s,transform .2s;outline:none}.code-inputs input:focus{background:#fff5f8;box-shadow:0 0 0 3px #cf155520;transform:translateY(-2px)}.code-inputs input:disabled{opacity:.7}.primary-button{background:var(--pink);border:1px solid var(--pink);border-radius:9px;min-height:64px;padding:14px 27px;color:var(--paper);display:flex;align-items:center;justify-content:center;gap:24px;font-family:var(--serif);font-size:29px;line-height:1.1;transition:background .2s,transform .2s,box-shadow .2s}.primary-button:hover{background:#b60949;box-shadow:0 8px 20px #bd135520;transform:translateY(-2px)}.primary-button:active{transform:translateY(1px)}.open-button{margin-top:25px;width:100%}.form-message{min-height:23px;font-size:14px;line-height:1.5;margin-top:14px}.has-error .code-inputs{animation:shake .45s ease-in-out}.envelope-stage{position:relative;width:118%;margin-left:-5%;perspective:1200px}.envelope-float{position:relative;animation:float 6s ease-in-out infinite;will-change:transform}.envelope-float img{width:100%;mix-blend-mode:multiply}.opening-envelope{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transform:scale(.91) translateY(10px);transition:opacity .7s,transform 1.3s var(--ease)}.closed-envelope{transition:opacity .65s,transform .9s var(--ease)}.envelope-note{position:absolute;right:10%;bottom:2%;display:flex;gap:11px;align-items:center;transform:rotate(-8deg);color:var(--pink)}.handwriting{font-family:var(--hand);font-size:39px;font-weight:400;line-height:1.12}.is-opening .welcome-copy{opacity:.3;transition:opacity .65s}.is-opening .closed-envelope{opacity:0;transform:scale(1.05) rotate(3deg)}.is-opening .opening-envelope{opacity:1;transform:scale(1.03) translateY(-20px)}.is-opening .envelope-float{animation:open-pop 1.4s var(--ease) both}.heartbeat{animation:heartbeat .8s infinite}.letter-layout{display:grid;grid-template-columns:39% 1fr;gap:5.5%;width:100%;padding:35px 0 22px;align-items:center;animation:fade-in .7s var(--ease) both}.birthday-title.small{font-size:clamp(64px,6.3vw,108px)}.birthday-title.small em{font-size:.82em}.letter-side .eyebrow{margin-bottom:18px}.letter-side{display:flex;flex-direction:column;align-self:stretch;justify-content:center}.open-envelope{width:110%;max-width:none;margin:5px -5% -8px;max-height:410px;object-fit:contain;animation:float 7s ease-in-out infinite;mix-blend-mode:multiply}.gift-callout{text-align:center;width:100%;position:relative;margin-top:2px}.gift-button{border:2px solid #ec6798;border-radius:27px;background:#d11258;color:var(--paper);display:flex;align-items:center;justify-content:center;gap:23px;width:100%;padding:18px 20px;font-family:var(--serif);font-weight:500;font-size:clamp(25px,2.8vw,42px);line-height:1.04;box-shadow:inset 0 3px 4px #fff6,inset 0 -5px 4px #6e082477,0 6px #8f123e,0 15px 25px #87133822;transition:transform .18s,box-shadow .18s;animation:button-wiggle 6s 2s infinite}.gift-button:hover{animation:none;transform:rotate(-1deg) translateY(-3px);box-shadow:inset 0 3px 4px #fff6,inset 0 -5px 4px #6e082477,0 9px #8f123e,0 18px 28px #87133830}.gift-button:active{transform:translateY(5px) scale(.98);box-shadow:inset 0 3px 4px #fff3,inset 0 -2px 4px #6e082477,0 1px #8f123e}.gift-callout>p{font-family:var(--serif);font-size:21px;margin-top:18px}.letter-wrap{width:100%;max-width:780px;justify-self:center;text-align:center}.letter-paper{text-align:left;background-color:#fff5e9;border:1px solid #fffaf2;box-shadow:0 15px 25px #7a344214,0 2px 4px #76314418;padding:clamp(32px,4vw,70px) clamp(30px,4.7vw,77px) 38px;position:relative;transform-origin:bottom left;animation:letter-reveal 1s var(--ease) both}.letter-paper h2{font-size:clamp(45px,4.4vw,69px);margin-bottom:25px;font-weight:400}.letter-body{font-family:var(--serif);font-weight:500;font-size:clamp(21px,1.93vw,29px);line-height:1.27;letter-spacing:-.013em}.letter-body p+p{margin-top:23px}.signoff{font-size:clamp(43px,4.3vw,65px);display:flex;gap:17px;align-items:center;margin-top:26px}.paper-heart{position:absolute;bottom:28px;right:27px;color:var(--pink);transform:rotate(-14deg)}.text-button{border:0;background:transparent;font-family:var(--serif);font-size:21px;text-decoration:underline;text-underline-offset:5px;padding:10px 7px;display:inline-flex;align-items:center;justify-content:center;gap:13px;transition:color .2s,transform .2s;min-height:44px}.text-button:hover{color:var(--pink);transform:translateY(-2px)}.replay-button{margin-top:13px}.gifts-layout{text-align:center;width:100%;padding:25px 0 18px;animation:fade-in .7s var(--ease) both}.gifts-heading .eyebrow{margin-bottom:7px;font-size:13px}.gifts-heading h1{font-family:var(--serif);font-weight:400;font-size:clamp(60px,6.3vw,104px);line-height:.86;color:var(--pink);letter-spacing:-.035em}.gifts-heading h1 em{font-weight:400}.gifts-heading>p:last-child{font-family:var(--serif);font-size:clamp(22px,2.1vw,31px);font-weight:500;margin-top:13px}.gifts-scene{width:min(111%,1510px);position:relative;margin:-25px -5.5% -32px;animation:gifts-pop 1.2s var(--ease) both}.gifts-scene>img{width:100%;max-height:565px;object-fit:contain;mix-blend-mode:multiply}.gift-hotspots{position:absolute;top:11%;right:6%;bottom:7%;left:6%}.gift-hotspot{position:absolute;top:0;bottom:0;border:0;background:transparent;width:31%;border-radius:26px;transition:background .25s}.gift-1{left:0}.gift-2{left:34%}.gift-3{right:0}.gift-hover-label{display:flex;align-items:center;gap:8px;justify-content:center;position:absolute;bottom:3%;left:50%;white-space:nowrap;transform:translate(-50%,8px);opacity:0;border-radius:30px;background:var(--paper);color:var(--wine);padding:11px 17px;box-shadow:0 5px 20px #70173722;font-size:14px;transition:transform .22s,opacity .22s}.gift-hotspot:hover .gift-hover-label,.gift-hotspot:focus-visible .gift-hover-label{opacity:1;transform:translate(-50%)}.gift-hotspot:active{background:#df327b0e}.gift-aside{position:absolute;font-size:28px;line-height:.88;z-index:1;pointer-events:none}.gift-aside.left{left:1%;top:31%;transform:rotate(-12deg)}.gift-aside.right{right:1%;top:28%;transform:rotate(9deg)}.gift-instruction{position:relative;font-family:var(--serif);font-size:25px;font-weight:500;margin-top:4px}.gift-mobile-links{display:none}.gifts-layout>.text-button{font-size:21px;margin-top:4px}.gift-dialog{border:1px solid #fff7ef;border-radius:4px;background-color:var(--paper);color:var(--wine);width:min(530px,calc(100vw - 36px));max-height:calc(100svh - 40px);padding:48px 44px 38px;box-shadow:0 30px 100px #6a0a3140;text-align:center;overflow:auto;animation:dialog-pop .45s var(--ease) both}.gift-dialog::backdrop{background:#6c153766;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade-in .3s both}.icon-button{width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;border-radius:50%}.icon-button:hover{background:#f4d9e4}.dialog-close{position:absolute;right:10px;top:10px}.dialog-gift-icon{color:var(--pink);margin:0 auto 24px}.gift-dialog .eyebrow{font-size:12px;letter-spacing:.2em;margin-bottom:14px}.gift-dialog h2{font-family:var(--serif);font-weight:400;color:var(--pink);font-size:49px;line-height:1}.gift-description{font-family:var(--serif);font-weight:500;font-size:25px;line-height:1.35;margin-top:25px}.gift-note{font-size:33px;margin-top:25px}.gift-dialog .primary-button{font-size:24px;width:100%;margin-top:30px;gap:10px}@keyframes float{0%,to{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-12px) rotate(.7deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}@keyframes heartbeat{50%{transform:scale(1.2)}}@keyframes open-pop{0%{transform:translateY(0)}45%{transform:translateY(-25px) rotate(-4deg)}to{transform:translateY(-10px) rotate(1deg)}}@keyframes letter-reveal{0%{opacity:0;transform:translate(-100px,100px) rotate(-9deg) scale(.82)}to{opacity:1;transform:translate(0) rotate(0) scale(1)}}@keyframes gifts-pop{0%{opacity:0;transform:translateY(100px) scale(.8)}55%{opacity:1;transform:translateY(-12px) scale(1.015)}to{transform:translateY(0) scale(1)}}@keyframes button-wiggle{0%,85%,to{transform:rotate(0)}88%{transform:rotate(-2deg)}91%{transform:rotate(2deg)}94%{transform:rotate(-1deg)}97%{transform:rotate(1deg)}}@keyframes dialog-pop{0%{opacity:0;transform:translateY(25px) scale(.93)}to{opacity:1;transform:translateY(0) scale(1)}}@media(min-width:1600px){.birthday-app{padding-inline:max(70px,calc((100vw - 1550px)/2))}.locked-layout{grid-template-columns:46% 54%}}@media(min-width:901px)and (max-height:800px){.site-header{height:68px}.site-footer{min-height:53px;font-size:16px}.locked-layout{min-height:calc(100svh - 121px);padding:35px 0}.birthday-title{font-size:clamp(75px,8.2vw,118px)}.intro{margin-top:27px;font-size:26px}.code-form{margin-top:28px;width:340px}.code-inputs input{height:65px}.open-button{margin-top:20px;min-height:58px}.envelope-stage{width:111%}.letter-layout{padding:24px 0 10px;gap:6%;grid-template-columns:38% 1fr}.birthday-title.small{font-size:76px}.letter-side .eyebrow{margin-bottom:12px}.open-envelope{max-height:280px}.letter-paper{padding:33px 53px 30px}.letter-paper h2{font-size:49px;margin-bottom:18px}.letter-body{font-size:22px;line-height:1.22}.letter-body p+p{margin-top:17px}.signoff{font-size:47px;margin-top:18px}.gift-button{font-size:30px;padding:14px 16px;border-radius:23px}.gift-button svg{width:45px}.gift-callout>p{margin-top:14px;font-size:18px}.replay-button{margin-top:8px;font-size:18px}.gifts-layout{padding:18px 0 10px}.gifts-heading h1{font-size:78px}.gifts-heading>p:last-child{font-size:25px;margin-top:8px}.gifts-scene{margin-top:-28px;margin-bottom:-40px}.gifts-scene>img{max-height:390px}.gift-instruction{font-size:22px}}@media(max-width:1100px)and (min-width:761px){.birthday-title{font-size:8.5vw}.intro{font-size:24px}.code-form{width:315px}.letter-layout{gap:5%;grid-template-columns:39% 56%}.birthday-title.small{font-size:7vw}.letter-paper{padding:32px}.letter-body{font-size:23px}.gift-button{font-size:29px;gap:12px}.gift-button svg{width:40px}.handwriting{font-size:33px}}@media(max-width:760px){.birthday-app{padding:0 23px}.site-header{height:69px}.wordmark{font-size:31px}.header-note{font-size:9px;letter-spacing:.16em}.site-footer{min-height:64px;line-height:1.25;font-size:16px;padding:16px 6px;gap:9px}.site-footer svg{flex-shrink:0;width:18px}.main-content{align-items:stretch}.locked-layout{display:flex;flex-direction:column;padding:34px 0 8px;min-height:0;position:relative}.welcome-copy{width:100%;display:contents}.welcome-copy>.eyebrow{font-size:11px;letter-spacing:.25em;margin-bottom:16px;text-align:center;order:0}.birthday-title{font-size:clamp(65px,16vw,110px);text-align:center;order:1}.birthday-title em{margin-top:7px;font-size:.83em}.intro{order:3;text-align:center;font-size:22px;line-height:1.3;margin-top:3px}.code-form{order:4;margin:25px auto 0;width:min(100%,330px)}legend{font-size:14px;letter-spacing:.1em;margin-bottom:13px}.code-inputs{gap:12px}.code-inputs input{height:63px;font-size:36px}.primary-button{font-size:26px;min-height:59px}.open-button{margin-top:19px}.form-message{font-size:13px;min-height:20px;text-align:center;margin-top:12px}.envelope-stage{order:2;width:min(116%,560px);margin:-5px -8%;height:245px;align-self:center}.envelope-float{height:100%}.envelope-float img{height:100%;object-fit:contain}.envelope-note{display:none}.is-opening .welcome-copy{opacity:1}.is-opening .code-form,.is-opening .intro{opacity:.4;transition:opacity .4s}.letter-layout{display:flex;flex-direction:column;padding:29px 0 17px;gap:25px}.letter-side{display:contents}.letter-side .section-heading{order:0;text-align:center}.letter-side .eyebrow{font-size:11px;margin-bottom:13px}.birthday-title.small{font-size:60px}.birthday-title.small em{font-size:.83em}.letter-side>.open-envelope{display:none}.letter-wrap{order:1;max-width:540px}.letter-paper{padding:32px 25px 34px;animation:letter-reveal .85s var(--ease) both}.letter-paper h2{font-size:47px;margin-bottom:24px}.letter-body{font-size:23px;line-height:1.3;letter-spacing:-.01em}.letter-body p+p{margin-top:20px}.signoff{font-size:43px;gap:12px;margin-top:26px}.signoff svg{width:29px}.paper-heart{width:23px;right:16px;bottom:19px}.replay-button{font-size:17px;margin-top:9px}.gift-callout{order:2;width:min(100%,400px);margin:3px auto 11px}.gift-button{font-size:32px;padding:18px 20px;border-radius:24px;gap:20px}.gift-button svg{width:44px}.gift-callout>p{font-size:19px;margin-top:15px}.gifts-layout{padding:33px 0 25px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100svh - 133px)}.gifts-heading .eyebrow{font-size:10px;margin-bottom:17px}.gifts-heading h1{font-size:clamp(56px,14vw,88px);line-height:.94}.gifts-heading>p:last-child{font-size:23px;line-height:1.23;margin-top:18px;max-width:290px;margin-inline:auto}.gifts-scene{width:123%;margin:9px -11.5% -2px}.gifts-scene>img{width:100%;max-height:none}.gift-aside{display:none}.gift-hotspots{top:9%;right:4%;bottom:6%;left:4%}.gift-hover-label{font-size:10px;padding:7px 9px;gap:3px}.gift-hover-label svg{width:13px}.gift-mobile-links{display:flex;gap:18px;justify-content:center;width:100%;margin:0 0 25px}.gift-mobile-links button{background:#fff1f4;border:1px solid #bc2e6140;border-radius:30px;padding:9px 16px;display:flex;gap:9px;align-items:center;justify-content:center;font-family:var(--serif);font-size:23px;min-width:77px;min-height:47px}.gift-instruction{font-size:22px;line-height:1.25;max-width:285px;margin-inline:auto}.gifts-layout>.text-button{font-size:19px;margin-top:15px}.gift-dialog{padding:44px 26px 28px}.gift-dialog h2{font-size:43px}.gift-description{font-size:23px}.gift-note{font-size:31px}.gift-dialog .primary-button{font-size:23px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.envelope-float{will-change:auto}.is-opening .opening-envelope{transform:none}}@media(min-width:1101px)and (min-height:801px){.birthday-title:not(.small){font-size:clamp(130px,10.8vw,170px);line-height:.82}.birthday-title:not(.small) em{font-size:.72em}.welcome-copy{transform:translateY(-9px)}}.envelope-note{right:11%;bottom:-1%}@media(min-width:1101px)and (min-height:801px){.site-header{height:72px}.locked-layout{min-height:calc(100svh - 140px)}.letter-layout{grid-template-columns:36% 47%;gap:5%;padding-top:25px}.letter-paper{padding-left:65px;padding-right:65px}.gift-button svg{width:65px;height:65px}}.birthday-app,.letter-paper,.gift-dialog{background-image:url(/assets/paper-texture.png);background-size:500px}.envelope-float img,.open-envelope,.gifts-scene>img{mix-blend-mode:darken;-webkit-mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent),linear-gradient(to bottom,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent),linear-gradient(to bottom,transparent,#000 4%,#000 96%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}.gifts-heading{position:relative;z-index:2}.gifts-scene{width:min(100%,1250px);margin:0 auto -28px}.gifts-scene>img{max-height:none;width:100%}.gift-aside.left{left:-6%;top:30%}.gift-aside.right{right:-6%;top:30%}@media(min-width:901px)and (max-height:800px){.gifts-scene{width:min(100%,840px);margin:0 auto -24px}.gifts-scene>img{max-height:none}.gifts-heading h1{font-size:68px}.gifts-heading>p:last-child{font-size:23px}.gift-aside.left{left:-10%}.gift-aside.right{right:-10%}}@media(max-width:760px){.gifts-scene{width:123%;margin:9px -11.5% -2px}.gifts-scene>img{max-height:none}}.birthday-app,.letter-paper,.gift-dialog{background-blend-mode:soft-light}@media(min-width:901px)and (min-height:801px){.gifts-layout{padding:20px 0 12px}.gifts-heading h1{font-size:90px}.gifts-heading>p:last-child{font-size:29px}.gifts-scene{width:min(100%,1150px)}}@media(max-width:760px){.envelope-stage{height:235px;margin-top:12px}}.gift-parcels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;margin:12px auto 32px;gap:8px}.gift-parcel{display:flex;flex-direction:column;align-items:center;min-width:0;border:0;background:transparent;padding:0 0 12px;border-radius:16px;animation:gifts-pop .85s var(--ease) var(--gift-delay) both}.parcel-art{position:relative;display:block;width:100%;aspect-ratio:3/5;background-image:url(/assets/gifts-five.webp);background-size:500% 100%;background-position:var(--gift-position) center;mix-blend-mode:darken;-webkit-mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent);transition:transform .3s var(--ease);pointer-events:none}.parcel-number{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%) rotate(-8deg);font-size:clamp(28px,3vw,48px);color:var(--wine)}.parcel-art{-webkit-mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 13%,#000 85%,transparent);mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 13%,#000 85%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}.gift-parcel:hover .parcel-art,.gift-parcel:focus-visible .parcel-art{transform:translateY(-12px) rotate(-2deg)}.gift-parcel:active .parcel-art{transform:translateY(2px) scale(.95)}.parcel-label{display:flex;align-items:center;justify-content:center;gap:10px;font-family:var(--serif);font-size:25px;border:1px solid #bc2e6140;border-radius:30px;background:#fff1f4;padding:8px 17px;min-height:44px}.parcel-hint{font-size:12px;margin-top:8px;color:var(--wine)}.was-opened .parcel-label{background:#f5d3df}@media(max-width:760px){.gift-parcels{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 8px;margin:8px auto 28px}.gift-parcel:last-child:nth-child(odd){grid-column:1/-1;width:calc(50% - 4px);justify-self:center}.parcel-number{font-size:33px}.parcel-label{font-size:23px;padding:8px 13px;gap:8px}.parcel-hint{font-size:11px}.parcel-art{margin-bottom:-8px}}@media(prefers-reduced-motion:reduce){.gift-parcel{animation:none}.parcel-art{transition:none}.gift-parcel:hover .parcel-art,.gift-parcel:focus-visible .parcel-art,.gift-parcel:active .parcel-art{transform:none}}.letter-body p{white-space:pre-line}.letter-inline-heart{display:inline-block;vertical-align:-.15em;color:var(--pink)}.signoff{display:block;white-space:pre-line;font-size:clamp(33px,3.3vw,49px);line-height:1.2}@media(min-width:761px){.letter-side{align-self:start;position:sticky;top:25px}}@media(max-width:760px){.letter-paper h2{font-size:42px;line-height:1.1}.signoff{font-size:32px}}
