/* A sunflower-sealed parcel, a little photo album, and a personal last page. */
.scene{animation-duration:.65s;animation-timing-function:cubic-bezier(.2,.75,.25,1)}.brand{letter-spacing:2px!important}.intro-orbit{display:none}.welcome:after{display:none}.welcome{padding-top:20px;padding-bottom:25px;flex-direction:column;gap:0}.welcome-content{width:100%;max-width:650px}.welcome .eyebrow{margin-bottom:19px}.welcome h1{font-size:clamp(56px,6.2vw,88px);line-height:1.03;margin-bottom:17px}.welcome .lead{margin-bottom:20px}.welcome .footnote{margin-top:17px;line-height:1.7}.welcome-bottom{position:static;margin-top:24px}.welcome .start{min-width:255px}.welcome .start:disabled{opacity:1;cursor:default}.gift-art{position:relative;width:280px;height:185px;margin:25px auto 27px;perspective:800px;transform:rotate(-4deg);transition:transform .7s,opacity .7s}.gift-parcel{position:absolute;inset:0;border-radius:5px;border:1px solid #c4aa84;background:#edddc2;box-shadow:0 12px 28px #83603b26,inset 0 0 0 5px #f6ebd7}.gift-parcel:after{content:'';position:absolute;inset:10px;border:1px dashed #bba27d88;border-radius:2px}.gift-flap{position:absolute;inset:0;z-index:2;transform-origin:top center;clip-path:polygon(0 0,100% 0,50% 72%);background:linear-gradient(#f9efdc,#dfcaa6);border-radius:5px;transition:transform .8s ease;backface-visibility:hidden}.gift-ribbon{position:absolute;z-index:3;background:repeating-linear-gradient(90deg,#9eac7d99 0,#9eac7d99 1px,#c5ceab88 1px,#c5ceab88 3px);border-left:1px solid #8e9d6e80;border-right:1px solid #8e9d6e80;transition:transform .7s,opacity .55s}.ribbon-vertical{left:calc(50% - 12px);top:0;bottom:0;width:24px}.ribbon-horizontal{height:21px;left:0;right:0;top:calc(50% - 10px);transform:none}.gift-seal{position:absolute;top:calc(50% - 51px);left:calc(50% - 51px);width:102px;height:102px;padding:0;border:0;background:none;z-index:5;filter:drop-shadow(0 5px 5px #7e552c40);transition:transform .65s,opacity .65s;transform:rotate(8deg)}.gift-seal img{width:100%;height:100%;object-fit:contain;display:block}.gift-seal:hover{transform:rotate(-3deg) scale(1.06)}.parcel-address{position:absolute;left:15px;bottom:12px;font-family:'Cormorant Garamond',Georgia,serif;font-size:21px;font-style:italic;color:#705338;z-index:4;transform:rotate(2deg);margin:0}.parcel-tag{position:absolute;right:-24px;top:16px;background:#fff9ec;box-shadow:0 3px 9px #76502e22;border:1px solid #dcc7a3;padding:12px 13px;font-size:9px;line-height:1.8;color:#82643d;z-index:4;transform:rotate(12deg);letter-spacing:1px}.parcel-tag strong{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:30px;line-height:1.1;letter-spacing:0;color:#926326;font-weight:500}.unwrapping .gift-seal{transform:translateY(-12px) rotate(32deg) scale(1.35);opacity:0}.unwrapping .ribbon-vertical{transform:translateY(45px);opacity:0}.unwrapping .ribbon-horizontal{transform:translateX(-50px);opacity:0}.unwrapping .gift-flap{transform:rotateX(155deg)}.unwrapping .gift-art{transform:rotate(0deg) translateY(10px) scale(1.04);opacity:.4}.unwrapping .welcome-content>.eyebrow,.unwrapping .welcome-content>h1,.unwrapping .welcome-content>.lead{transition:opacity .65s;opacity:.4}.chapter-label{font-size:10px;letter-spacing:.7px;color:#856c51;text-align:center;display:block;margin-bottom:12px}.footer-center{display:flex;flex-direction:column;align-items:center}.steps{gap:17px}.step:before{inset:-10px}.garden-keepsake{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin:15px 0 0;color:#8b6d47;font-size:11px;letter-spacing:.3px}.garden-pips{display:flex;gap:7px}.garden-pips i{width:5px;height:5px;display:block;border:1px solid #b89b71;border-radius:50%;transition:background .3s,transform .3s}.garden-pips i.found{background:#81955b;border-color:#81955b;transform:scale(1.2)}.photo-heart.visited:after{content:'✓';position:absolute;right:2%;top:5%;display:grid;place-items:center;width:19px;height:19px;border-radius:50%;font-size:11px;background:#71864f;color:#fff9e9;border:2px solid #f9efd9;box-shadow:0 2px 4px #66502c22}.garden.growing{animation:bouquet-sway 9s ease-in-out 6s infinite;transform-origin:50% 100%}.garden-actions .primary{gap:19px}.answer-choice{transition:background .2s,border-color .2s,transform .2s,box-shadow .2s}.answer-choice.chosen{box-shadow:inset 3px 0 #a67932,0 3px 12px #a6793210}.question-footnote{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:16px!important}.letter{border-radius:5px}.letter h3{font-size:39px}.letter .signature span{font-size:31px}.letter-scene.opened .letter{animation:letter-unfold .9s cubic-bezier(.2,.75,.25,1) both}
#photo-dialog{max-width:min(94vw,520px);padding:23px 23px 18px;overflow:auto;scrollbar-width:thin}.album-heading{margin:0 44px 17px 0;color:#8f6a3d;font-size:10px;letter-spacing:2px;line-height:1.5}.photo-stage{position:relative;overflow:hidden;background:#eadcc8;border-radius:9px;touch-action:pan-y;user-select:none}.photo-stage.new-photo #full-photo{animation:photo-arrives .45s ease both}#full-photo{width:100%;height:50dvh;max-height:560px;object-fit:contain;border-radius:0;-webkit-user-drag:none}#photo-message{font-size:23px;margin:16px 0 12px;min-height:2.6em;line-height:1.35}.photo-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px}.photo-navigation>button{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#f3e7d1;border:1px solid #c4a780;color:#6f4c29;font-size:20px}.photo-navigation .photo-count{margin:0;font-size:11px}.photo-thumbnail-strip{display:flex;justify-content:center;gap:9px;margin-top:15px;padding:3px 0}.photo-thumbnail{width:44px;height:53px;flex-shrink:0;border:2px solid transparent;background:#f6ead7;padding:2px;opacity:.65;transform:rotate(-3deg);border-radius:3px;transition:opacity .2s,transform .2s,border-color .2s}.photo-thumbnail:nth-child(even){transform:rotate(3deg)}.photo-thumbnail img{width:100%;height:100%;object-fit:cover;object-position:center 45%;display:block;border-radius:1px}.photo-thumbnail.selected{opacity:1;border-color:#b58b46;transform:translateY(-3px) rotate(0)}.album-hint{font-size:11px;line-height:1.6;text-align:center;margin:12px 0 0;color:#8a7154}#close-photo{top:16px;right:16px;width:38px;height:38px;font-size:23px}.finale{padding-top:20px;padding-bottom:28px}.finale>.eyebrow{margin-bottom:12px}.final-portrait{position:relative;width:340px;max-width:90vw;height:245px;margin:0 auto 15px}.portrait-card{position:absolute;background:#fffaf1;padding:8px 8px 22px;border:1px solid #e5d4b6;border-radius:3px;box-shadow:0 9px 21px #795b3224;transition:transform .6s}.portrait-card img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 48%}.portrait-left{width:115px;height:161px;left:20px;top:50px;transform:rotate(-14deg)}.portrait-right{width:115px;height:161px;right:18px;top:42px;transform:rotate(13deg)}.portrait-main{width:157px;height:209px;left:calc(50% - 78px);top:9px;transform:rotate(-3deg);z-index:2}.portrait-main img{object-position:center 47%}.birthday-stamp{position:absolute;right:38px;top:0;z-index:3;width:57px;height:57px;border-radius:50%;display:grid;place-items:center;background:#efd49d;border:1px dashed #b78c40;box-shadow:0 0 0 4px #efd49d;font:35px 'Cormorant Garamond',Georgia,serif;color:#93662b;transform:rotate(14deg)}.portrait-caption{position:absolute;bottom:0;left:0;right:0;text-align:center;font:italic 20px 'Cormorant Garamond',Georgia,serif;color:#8e6744;margin:0}.finale .final-script{font-size:32px;margin-bottom:0}.finale h2{font-size:90px;line-height:1;margin:0 0 15px;letter-spacing:-2px}.finale .lead{margin-bottom:20px}.birthday-wish-card{max-width:480px;width:100%;margin:0 auto 18px;border:1px solid #d4b98d;border-radius:8px;padding:17px 24px;background:#fffaefc9;box-shadow:0 5px 18px #93672f0a}.wish-number{font-size:9px;letter-spacing:1.6px;color:#99713a;display:block;margin-bottom:8px}.birthday-wish-card p{font-family:'Cormorant Garamond',Georgia,serif;font-size:23px;line-height:1.35;color:#70503a;margin:0;min-height:2.7em}.birthday-wish-card.fresh-wish p{animation:arrive .5s ease both}.finale .final-buttons{gap:22px}.finale .final-love{font-size:17px;margin-top:23px}.final-portrait .portrait-card{animation:photo-arrives .9s ease both}.final-portrait .portrait-right{animation-delay:.12s}.final-portrait .portrait-main{animation-delay:.24s}.wish-button-label{font-size:14px!important;font-weight:600!important}
@keyframes bouquet-sway{0%,100%{transform:rotate(-.45deg)}50%{transform:rotate(.45deg)}}@keyframes photo-arrives{from{opacity:0;filter:blur(2px)}to{opacity:1;filter:blur(0)}}@keyframes letter-unfold{from{opacity:0;transform:translateY(22px) rotate(-2deg)}to{opacity:1;transform:translateY(0) rotate(1deg)}}
@media(max-width:760px){.welcome{padding-top:12px;padding-bottom:20px;justify-content:center}.welcome h1{font-size:clamp(47px,12vw,60px);letter-spacing:-1.6px;line-height:1.04;margin-bottom:15px}.welcome .eyebrow{font-size:9px;margin-bottom:15px;letter-spacing:1.8px}.welcome .lead{font-size:14px;line-height:1.7;max-width:290px;margin:0 auto 15px}.gift-art{width:246px;height:164px;margin:22px auto 25px}.gift-seal{width:93px;height:93px;left:calc(50% - 46px);top:calc(50% - 46px)}.parcel-tag{right:-15px;top:12px;font-size:8px;padding:10px 11px}.parcel-tag strong{font-size:28px}.parcel-address{font-size:20px;bottom:10px;left:12px}.welcome .start{min-width:250px;min-height:55px}.welcome .footnote{font-size:12px;max-width:290px;margin-top:16px}.welcome-bottom{margin-top:19px;font-size:7px}.garden-keepsake{align-items:center;margin-top:10px;gap:7px;font-size:10px}.garden-wrap{margin-top:5px!important}.chapter-label{font-size:9px;margin-bottom:10px;max-width:200px;white-space:nowrap}.steps{gap:16px}.chapter-count{font-size:8px}.garden-actions{gap:13px}.garden-actions .primary{font-size:12px}#photo-dialog{padding:18px 15px 15px;max-height:calc(100dvh - 26px - var(--safe-top) - var(--safe-bottom))}.album-heading{font-size:9px;letter-spacing:1.8px;margin-bottom:14px}#full-photo{height:43dvh;max-height:none}#photo-message{font-size:22px;margin:14px 2px 12px}.photo-thumbnail-strip{gap:8px;margin-top:13px}.album-hint{font-size:11px;margin-top:10px}#close-photo{top:10px;right:10px}.finale{padding-top:15px;padding-bottom:26px}.finale>.eyebrow{font-size:9px;letter-spacing:1.6px;max-width:300px;line-height:1.7;margin-bottom:10px}.final-portrait{width:310px;height:225px;margin-bottom:14px}.portrait-left,.portrait-right{width:105px;height:148px}.portrait-left{left:16px;top:46px}.portrait-right{right:15px;top:40px}.portrait-main{width:143px;height:192px;left:calc(50% - 71px)}.portrait-card{padding:7px 7px 19px}.birthday-stamp{width:49px;height:49px;right:31px;font-size:30px}.portrait-caption{font-size:18px}.finale .final-script{font-size:27px}.finale h2{font-size:76px;margin-bottom:14px;letter-spacing:-2px}.finale .lead{font-size:15px;margin-bottom:18px}.birthday-wish-card{padding:15px 18px;margin-bottom:18px;max-width:390px}.birthday-wish-card p{font-size:21px;min-height:2.7em}.wish-number{font-size:8px;letter-spacing:1.3px}.finale .final-buttons{flex-direction:column;gap:10px}.finale .primary{min-height:54px}.finale .final-love{font-size:16px;margin-top:18px}.letter h3{font-size:35px}.letter .signature span{font-size:29px}}
@media(max-width:760px) and (max-height:740px){.welcome{padding-top:10px;justify-content:flex-start}.welcome h1{font-size:45px}.welcome .lead{font-size:13px}.gift-art{width:220px;height:144px;margin:18px auto 20px}.gift-seal{width:82px;height:82px;left:calc(50% - 41px);top:calc(50% - 41px)}.welcome .start{min-height:52px}.welcome-bottom{margin-top:15px}.garden-keepsake{margin-top:7px;font-size:10px}.garden-copy .eyebrow{margin-bottom:6px}.garden-copy .lead{margin-bottom:2px}.garden-wrap{width:min(83%,330px)!important}.chapter-label{font-size:8px;margin-bottom:8px}#full-photo{height:36dvh}#photo-message{font-size:21px}.photo-thumbnail{width:39px;height:47px}.photo-thumbnail-strip{gap:7px}.final-portrait{transform:scale(.9);margin-top:-7px;margin-bottom:0;height:235px}.finale h2{font-size:68px}}
@media(prefers-reduced-motion:reduce){.garden.growing{animation:none}.gift-art,.gift-seal,.gift-ribbon,.gift-flap{transition:none}.photo-stage.new-photo #full-photo,.final-portrait .portrait-card,.letter-scene.opened .letter{animation:none}.scene{animation-duration:.01ms}}
