/* A consistent little stage, from the gift to the last star. */
.landscape{--parallax-x:0px;--parallax-y:0px}.landscape>.botanical{display:none}.landscape>.moon{transform:translate3d(calc(var(--parallax-x)*-.45),calc(var(--parallax-y)*-.4),0)}.landscape>.sky-stars{transform:translate3d(calc(var(--parallax-x)*-.15),calc(var(--parallax-y)*-.1),0)}.coastal-blooms{position:absolute;bottom:12px;width:230px;height:310px;perspective:600px;transform:translate3d(var(--parallax-x),var(--parallax-y),0);filter:drop-shadow(8px 15px 8px #03111c77);pointer-events:none}.blooms-left{left:-40px}.blooms-right{right:-40px;transform:translate3d(var(--parallax-x),var(--parallax-y),0) scaleX(-1)}.coastal-blooms>.sculpted-flower{position:absolute;bottom:-5px;left:5px;width:100px;height:180px;transform:scale(1.55) rotate(-18deg);transform-origin:bottom center;opacity:.88}.coastal-blooms>.sculpted-flower:nth-child(2){left:78px;bottom:12px;transform:scale(1.12) rotate(23deg);opacity:.9}.coastal-blooms>.sculpted-flower:nth-child(3){left:136px;bottom:-25px;transform:scale(.75) rotate(36deg);opacity:.65}.blooms-right>.sculpted-flower:nth-child(1){transform:scale(1.35) rotate(-16deg)}
.sculpted-flower{display:block;position:relative;width:100%;height:150px;perspective:500px;transform-style:preserve-3d;--bloom-color:#e8abc0}.flower-stem{position:absolute;left:calc(50% - 2px);top:55px;height:86px;width:4px;border-radius:50%;background:linear-gradient(90deg,#354f44,#a6b998 50%,#476e55);box-shadow:3px 3px 3px #0002;transform:rotate(3deg)}.flower-leaf{position:absolute;width:15px;height:38px;left:calc(50% - 20px);top:82px;border-radius:95% 0 95% 0;background:linear-gradient(125deg,#bbc79c,#698b67 45%,#355447);box-shadow:2px 3px 3px #0002;transform:rotate(-42deg) rotateY(-20deg)}.leaf-right{left:calc(50% + 3px);top:72px;transform:rotate(25deg) rotateY(20deg)}.flower-leaf:after{content:'';position:absolute;left:48%;top:4px;width:1px;height:30px;background:#d0d4a94d;transform:rotate(16deg)}.flower-head{position:absolute;width:78px;height:78px;left:calc(50% - 39px);top:6px;transform-style:preserve-3d;transform:rotateX(18deg) rotateY(-9deg);transition:transform .6s cubic-bezier(.2,.75,.2,1)}.flower-petal{position:absolute;display:block;left:24px;top:3px;width:30px;height:43px;border-radius:60% 60% 42% 42%;transform-origin:50% 36px;background:radial-gradient(ellipse at 40% 22%,#fff9f288 0,transparent 53%),linear-gradient(155deg,transparent 48%,#66304d66),var(--bloom-color);box-shadow:inset 2px 1px 4px #ffffff44,inset -2px -3px 4px #60294144,1px 3px 3px #411d3933;transform:rotateZ(var(--petal-angle)) rotateX(-22deg) translateZ(2px);backface-visibility:visible}.petal-inner{width:22px;height:29px;left:28px;top:16px;transform-origin:50% 23px;transform:rotateZ(var(--petal-angle)) rotateX(-35deg) translateZ(8px);filter:brightness(1.07)}.flower-heart{position:absolute;width:18px;height:18px;left:30px;top:30px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff2b8,#d5ab55 56%,#907142);box-shadow:1px 3px 3px #472d4a55,inset 1px 1px 2px #fff4c7;transform:translateZ(17px)}.flower-button:hover .flower-head,.flower-button:focus-visible .flower-head{transform:rotateX(3deg) rotateY(13deg) translateZ(13px)}.flower-button.picked .flower-head{filter:drop-shadow(0 0 10px #efd5ac44)}.flower-button .sculpted-flower{filter:drop-shadow(5px 8px 5px #01061944)}
.sand-card{border:8px solid #ceb899;border-bottom:10px solid #a88c6f;border-top-color:#e9d7ba;box-shadow:0 2px 0 #8f7157,0 5px 0 #846b56,0 8px 0 #6d594d,0 13px 23px #02091977,inset 0 3px 12px #63493433;overflow:hidden}.sand-message{background:radial-gradient(ellipse at 25% 15%,#fff5e333,transparent 65%),linear-gradient(140deg,#ecdbc0,#d4bda0)}.sand-message>span{filter:drop-shadow(1px 2px 0 #f7e7cd);text-shadow:0 2px 3px #85674444}.sand-card:focus-within{outline:1px solid #f3d9b2}.sand-mark{background:radial-gradient(ellipse at top,#fff8dc11,transparent)}
.lantern{background:none!important;box-shadow:none!important;border-radius:0;perspective:360px}.lantern:before,.lantern:after{display:none}.lantern>span:not(.lantern-model){display:none}.lantern-model{position:absolute!important;display:block;width:51px!important;height:70px!important;left:0!important;top:0!important;bottom:auto!important;border-radius:0!important;background:none!important;box-shadow:none!important;transform-style:preserve-3d;transform:rotateX(-10deg) rotateY(-22deg)}.lantern-face{position:absolute;left:16px;top:0;width:19px;height:70px;border-radius:8px 8px 6px 6px;background:radial-gradient(ellipse at 50% 68%,#ffebad,#efbb72 30%,#cf8b52 78%,#a96b3d);border:1px solid #f9de9e55;transform:rotateY(var(--facet)) translateZ(23px);box-shadow:inset 2px 0 6px #ffedbc44,inset -2px 0 5px #75432033;backface-visibility:visible}.lantern-top,.lantern-base{position:absolute;left:1px;top:-24px;width:48px;height:48px;border-radius:50%;background:radial-gradient(circle,#f6d198,#b67942);transform:rotateX(90deg)}.lantern-base{top:46px;background:radial-gradient(circle,#ffdba0 20%,#b47538 55%,#775332);box-shadow:0 0 35px #f9cb8188}.lantern-fire{position:absolute;left:20px;top:55px;width:11px;height:15px;background:#fff0ad;border-radius:65% 65% 40% 40%;transform:translateZ(25px);box-shadow:0 0 20px #ffd078}.small-lantern{filter:drop-shadow(0 0 24px #f6c67955)}.moon-secret:before{content:'';position:absolute;width:100px;height:100px;border:1px solid #f4d7a333;border-radius:50%;left:calc(50% - 50px);top:-20px;transform:rotateX(65deg) rotateZ(-30deg);pointer-events:none}.touch-moon{position:relative;z-index:1}.touch-moon:after{content:'';position:absolute;inset:0;border-radius:50%;background:linear-gradient(120deg,#fff9df22,transparent 40%,#1b273155);pointer-events:none;box-shadow:inset -4px -4px 9px #1c293333}
.envelope-scene{margin:24px auto 25px;max-width:420px;perspective:1000px}.envelope-button{display:block;position:relative;width:300px;height:242px;max-width:100%;margin:auto;background:none;border:0;perspective:900px}.envelope-shadow{position:absolute;width:220px;height:25px;border-radius:50%;left:calc(50% - 110px);bottom:7px;background:#0005;filter:blur(14px)}.envelope-object{display:block;position:absolute;width:260px;height:164px;left:calc(50% - 130px);top:52px;transform-style:preserve-3d;transform:rotateX(13deg) rotateY(-14deg) rotateZ(-3deg);transition:transform .8s cubic-bezier(.2,.7,.2,1)}.envelope-button:hover .envelope-object{transform:rotateX(8deg) rotateY(-7deg) rotateZ(-1deg) translateY(-5px)}.envelope-back{position:absolute;inset:0;border-radius:6px;background:#c7a88e;box-shadow:1px 2px 0 #96735e,2px 3px 0 #8c6857,4px 5px 0 #755548,5px 8px 20px #0004;transform:translateZ(-2px)}.envelope-paper{position:absolute;inset:10px 13px 6px;background:#fff4e6;border-radius:3px;font-family:'Playfair Display',Georgia,serif;font-style:italic;color:#a77285;padding-top:30px;font-size:22px;transform:translateZ(1px);transition:transform .8s .3s}.envelope-pocket{position:absolute;inset:0;background:linear-gradient(30deg,#f1dcc2 49.8%,transparent 50%) left/51% 100% no-repeat,linear-gradient(-30deg,#e9cfb0 49.8%,transparent 50%) right/51% 100% no-repeat;transform:translateZ(3px);border-radius:3px;filter:drop-shadow(0 -1px 0 #bda28633)}.envelope-pocket:after{content:'';position:absolute;inset:25% 0 0;background:linear-gradient(180deg,#f0dcc4,#e0c2a3);clip-path:polygon(0 100%,50% 0,100% 100%);border-radius:0 0 3px 3px}.envelope-flap{position:absolute;left:0;top:0;width:100%;height:105px;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(160deg,#f5e3cc,#dbc1a0);transform-origin:50% 0;transform:translateZ(6px) rotateX(0deg);backface-visibility:visible;transition:transform .7s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 2px 1px #956c5422)}.wax-seal{position:absolute;left:calc(50% - 21px);top:76px;width:42px;height:42px;border-radius:47% 50% 45% 48%;background:radial-gradient(circle at 33% 27%,#dba4b5,#a66680 60%,#804864);box-shadow:inset 0 0 0 4px #b7779199,inset 0 0 0 5px #e6aabe66,2px 3px 0 #7d425d,3px 6px 8px #68485655;color:#f5c5d4;font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:25px;line-height:42px;text-shadow:0 1px 0 #723b58;transform:translateZ(9px);transition:opacity .25s,transform .5s}.envelope-button.unsealed .envelope-flap{transform:translateZ(6px) rotateX(175deg)}.envelope-button.unsealed .wax-seal{opacity:0;transform:translateZ(35px) translateY(30px)}.envelope-button.unsealed .envelope-paper{transform:translate3d(0,-60px,2px)}.envelope-button.unsealed .envelope-object{transform:rotateX(0) rotateY(0) rotateZ(0)}#letter-content{animation:letter-rise .8s cubic-bezier(.2,.7,.2,1) both}.letter{background:radial-gradient(ellipse at top left,#fff9ef,transparent 70%),#f0e0cb;box-shadow:1px 1px 0 #d6c7b7,2px 2px 0 #c8bcae,3px 4px 0 #9c938a,5px 7px 0 #86786844,0 24px 65px #050b1777}
.constellation-wrap{perspective:900px;transform-style:preserve-3d}.constellation-wrap>svg{position:relative;z-index:2;transform:rotateX(12deg) rotateY(-5deg);filter:drop-shadow(2px 10px 7px #09081a55)}.constellation-orbit{position:absolute;left:20%;right:20%;top:5%;height:90%;border:1px solid #ecd0ac33;border-radius:50%;transform:rotateX(67deg) rotateZ(-13deg);box-shadow:0 2px 0 #d5b38522,0 0 22px #bf9dcc11}.star-sculptures{position:absolute;inset:0;transform-style:preserve-3d}.star-pearl{position:absolute;border-radius:50%;background:radial-gradient(circle at 28% 25%,#fff8e1,#d6bb91 40%,#806f72 78%,#3c4059);box-shadow:2px 4px 5px #05091b77,0 0 20px #f0c9a422;transform:translateZ(var(--star-depth));opacity:.85}.finale-greeting p{text-shadow:1px 1px 0 #714e6c,2px 3px 0 #5e405b,0 8px 15px #090c2333}.milkshake{perspective:500px;transform:rotateY(-12deg) rotateZ(-3deg);filter:drop-shadow(9px 12px 5px #0004)}.glass{clip-path:none;border-radius:6px 6px 12px 12px / 8px 8px 5px 5px;background:linear-gradient(90deg,#a75f8a,#e9a8c8 24%,#f6d1dc 37%,#da91b3 64%,#9c5481);border:1px solid #e5b5ce88;box-shadow:inset 4px 0 3px #fbd9e822,inset -4px 0 8px #773d7133}.glass:after{content:'';position:absolute;bottom:-5px;left:0;width:100%;height:10px;border-radius:50%;background:linear-gradient(90deg,#9e6a91,#e7bad3,#855580)}.cream{background:radial-gradient(ellipse at 30% 10%,#fff8ed,#f3d7c2 75%,#c8a2a1);box-shadow:0 3px 3px #a6658333}.cream:before{background:radial-gradient(ellipse at 30% 15%,#fff8ed,#f0d6c2 75%,#d0acaa)}.cherry{background:radial-gradient(circle at 30% 25%,#f7a2b5,#c55073 45%,#742b51);box-shadow:1px 2px 3px #743c6755}.neon{text-shadow:1px 1px 0 #80345d,2px 2px 0 #743251,3px 4px 0 #442844,0 0 8px #f64caf,0 0 24px #f64caf88}@keyframes letter-rise{from{opacity:0;transform:perspective(1000px) translateY(35px) rotateX(6deg)}to{opacity:1;transform:perspective(1000px) translateY(0) rotateX(0)}}@media(max-width:650px){.coastal-blooms{width:155px;height:250px;bottom:0}.blooms-left{left:-68px}.blooms-right{right:-65px}.coastal-blooms>.sculpted-flower{transform:scale(1.1) rotate(-18deg)}.coastal-blooms>.sculpted-flower:nth-child(2){left:62px;transform:scale(.75) rotate(20deg)}.coastal-blooms>.sculpted-flower:nth-child(3){display:none}.blooms-right>.sculpted-flower:nth-child(1){transform:scale(1.05) rotate(-16deg)}.flower-head{transform:rotateX(15deg) rotateY(-5deg) scale(.9)}.envelope-scene{margin-top:15px}.envelope-button{width:280px;height:240px}.envelope-object{width:240px;height:160px;left:calc(50% - 120px)}.sand-card{border-width:6px;border-bottom-width:8px}.constellation-wrap>svg{transform:rotateX(8deg) rotateY(-3deg)}}@media(prefers-reduced-motion:reduce){.landscape>.moon,.landscape>.sky-stars,.coastal-blooms{transform:none}.blooms-right{transform:scaleX(-1)}.flower-head,.envelope-object,.envelope-flap,.envelope-paper,.wax-seal{transition:none!important}#letter-content{animation:none!important}}
