.motion-scene{height:100svh;min-height:560px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#fff9ef,#eddfd3);color:#77574f;text-align:center;isolation:isolate;font-family:"Microsoft YaHei",sans-serif}.motion-scene *{box-sizing:border-box}.motion-scene.motion-dark{background:#0e0c1b;color:#f2dfe9}.motion-scene button{touch-action:manipulation}.motion-galaxy,.motion-anniversary{touch-action:none}.motion-canvas,.motion-vignette,.motion-photo-space{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.motion-vignette{z-index:3;box-shadow:inset 0 0 160px #21132718;background:linear-gradient(0deg,#e8d8c21c,transparent 30%,transparent 80%,#fffcf31c)}.motion-dark .motion-vignette{background:linear-gradient(#0a0b1766,transparent 25%,transparent 70%,#0a0b1780);box-shadow:inset 0 0 160px #07081577}.motion-header{position:absolute;z-index:8;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:23px 30px}.motion-brand{font:italic 12px Georgia;color:#9a7f70}.motion-dark .motion-brand{color:#b2a0bf}.motion-header>div{display:flex;gap:10px}.motion-header button{background:#ffffff0b;border:1px solid #a08b7b40;border-radius:50%;width:35px;height:35px;color:inherit;font-size:19px;display:grid;place-items:center}.motion-header .playing{animation:music-spin 8s linear infinite}.motion-story{position:absolute;top:12%;left:20px;right:20px;z-index:5;pointer-events:none;opacity:0;transform:translateY(18px);transition:opacity 1.8s,transform 1.8s;text-shadow:0 2px 20px #f8e5d650}.motion-dark .motion-story{text-shadow:0 2px 25px #160e2b}.motion-overline{font:8px Georgia;letter-spacing:4px;color:#a78b79}.motion-dark .motion-overline{color:#ad91b0}.motion-recipient{font:italic 17px Georgia,SimSun,serif;color:var(--gift-accent);margin:18px 0 8px}.motion-dark .motion-recipient{color:#f2b3cc}.motion-story h1{font:normal 31px/1.65 SimSun,Georgia,serif;letter-spacing:3px;margin:0 auto 8px;max-width:700px;overflow-wrap:anywhere}.motion-subtitle{font-size:10px;letter-spacing:3px;color:#a18777}.motion-dark .motion-subtitle{color:#b4a1bb}.motion-stage{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;transition:opacity 1.5s 1s}.motion-stage button{pointer-events:auto}.motion-footer{position:absolute;z-index:6;bottom:5%;left:15px;right:15px;opacity:0;translate:0 15px;transition:opacity 1.5s 1.5s,translate 1.5s 1.5s;pointer-events:none}.motion-footer button{pointer-events:auto}.motion-hint{font-size:10px;letter-spacing:2px;color:#a78b79;margin-bottom:20px}.motion-dark .motion-hint{color:#bdacc5}.motion-actions{display:flex;justify-content:center;align-items:center;gap:9px}.motion-actions button{border-radius:30px;border:1px solid #aa897547;padding:10px 20px;color:#9e7464;background:#ffffff40;font-size:11px;backdrop-filter:blur(12px)}.motion-actions .motion-letter{background:var(--gift-accent);color:#fff5f3;border-color:transparent;box-shadow:0 6px 25px #9e546524}.motion-dark .motion-actions button{background:#a66e9d1c;color:#e2c8dc;border-color:#b492b140}.motion-dark .motion-actions .motion-letter{background:#8c4c7566;border-color:#c990b877}.motion-actions button.active{box-shadow:0 0 15px #c889b256}.motion-footer>small{display:block;margin-top:18px;font:italic 12px Georgia;color:#aa8b7b}.motion-dark .motion-footer>small{color:#a88eb1}.is-open .motion-story{opacity:1;transform:none}.is-open .motion-stage{opacity:1}.is-open .motion-footer{opacity:1;translate:0 0}.motion-photo-space{z-index:2;perspective:1000px}.cosmic-photo{position:absolute;left:0;top:0;width:92px;height:115px;border:1px solid #dfb5d766;border-radius:3px;background:#22172e;box-shadow:0 0 20px #e4b0da15;transform-origin:50% 50%;will-change:transform;opacity:0;pointer-events:auto;color:#e2bad4;padding:5px;overflow:hidden;backdrop-filter:blur(5px)}.cosmic-photo img{height:calc(100% - 18px);width:100%;object-fit:cover;display:block}.cosmic-photo>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:7px Georgia;margin-top:4px}.photo-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#b985a06b,#3c3056);gap:10px}.photo-placeholder>span{font:45px Georgia;color:#edc6dd}.photo-placeholder small{font:italic 7px Georgia;white-space:nowrap}.placeholder-1{background:linear-gradient(145deg,#ba7f8960,#4f345c)}.placeholder-2{background:linear-gradient(145deg,#9b9bb070,#3e3c59)}.placeholder-3{background:linear-gradient(145deg,#a2a69d60,#4b3c52)}.cosmic-days{position:absolute;left:0;right:0;top:40%;display:flex;flex-direction:column;color:#f8c5df;text-shadow:0 0 25px #ff9dc590}.cosmic-days small{font:11px SimSun,serif;letter-spacing:4px}.cosmic-days strong{font:80px/1.25 Georgia}.cosmic-days>span{font-size:10px;letter-spacing:3px}.motion-anniversary .cosmic-days{pointer-events:none}.motion-intro{position:absolute;inset:0;z-index:20;background:radial-gradient(ellipse at 50% 45%,#fff9ef,#e5d4c4);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity 1.6s .5s,visibility 1.6s .5s;overflow:hidden}.motion-dark .motion-intro{background:radial-gradient(ellipse at 50% 50%,#28203c,#0c0e1c 75%)}.intro-ambient{position:absolute;inset:-20%;background-image:radial-gradient(2px 2px at 10% 20%,#d9b695,transparent),radial-gradient(2px 2px at 75% 80%,#d9b695,transparent);background-size:113px 127px,173px 197px;opacity:.3;animation:intro-drift 40s linear infinite;pointer-events:none}.motion-dark .intro-ambient{background-image:radial-gradient(1px 1px at 10% 20%,#e7caef,transparent),radial-gradient(2px 2px at 75% 80%,#a897cd,transparent)}.intro-label{font:8px Georgia;letter-spacing:4px;color:#b39a86;position:absolute;top:18%}.intro-to{font:22px SimSun,serif;letter-spacing:4px;color:#9a7561;margin:0 0 45px;position:relative}.motion-dark .intro-to{color:#d7b5d1}.intro-instruction{font:12px SimSun,serif;letter-spacing:3px;color:#a48876;position:relative;margin-top:32px}.motion-dark .intro-instruction{color:#bba1be}.intro-start{background:none;border:0;border-bottom:1px solid #bca08d50;color:#9e7865;font-size:10px;letter-spacing:2px;padding:8px 0;position:relative}.motion-dark .intro-start{color:#b89aba;border-color:#b89aba44}.motion-intro>small{position:absolute;bottom:13%;font:9px system-ui;color:#b8a294;letter-spacing:2px}.motion-dark .motion-intro>small{color:#8d7a9c}.is-opening .motion-intro{opacity:0;visibility:hidden;pointer-events:none}.is-opening .intro-envelope{transform:translateY(-15px) scale(1.1)}.hold-heart{position:relative;width:138px;height:138px;background:none;border:0;user-select:none;-webkit-user-select:none;touch-action:none;outline-offset:9px}.hold-heart svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.hold-track,.hold-progress{fill:none;stroke:#ac779537;stroke-width:1}.hold-progress{stroke:#ffafd3;stroke-width:1.8;stroke-dasharray:340;stroke-dashoffset:calc(340 - var(--progress,0)*340);filter:drop-shadow(0 0 5px #ff9fce)}.hold-heart>span{font:83px Georgia;color:#eab0cf;text-shadow:0 0 14px #e297c7,0 0 65px #b561b688;display:block;animation:heart-beat 2s infinite}.hold-heart i{position:absolute;inset:22px;border-radius:50%;box-shadow:0 0 70px #c87db42c;animation:heart-beat 2s infinite}.hold-heart.is-holding>span{animation:heart-beat .5s infinite;color:#ffe1f0}.intro-envelope{position:relative;width:250px;height:160px;display:block;border:0;background:none;perspective:900px;transform-style:preserve-3d;animation:letter-float 5s ease-in-out infinite;transition:transform .8s}.env-back{position:absolute;inset:0;background:#d7b79a;box-shadow:0 15px 45px #96704b2a;border-radius:3px}.env-card{position:absolute;left:16px;right:16px;top:13px;height:126px;background:#fffaf0;padding-top:25px;font:12px/2 SimSun,serif;letter-spacing:2px;color:#a28470;transition:translate .8s .25s}.env-card b{font:italic 11px Georgia;display:block;letter-spacing:1px}.env-front{position:absolute;inset:0;background:linear-gradient(27deg,#e6cbb2,#edd7be);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);z-index:3}.env-flap{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 65%);background:#f0deca;transform-origin:50% 0;z-index:4;transition:transform .8s,z-index 0s .4s}.env-seal{position:absolute;left:calc(50% - 20px);top:78px;width:40px;height:40px;border-radius:50%;background:var(--gift-accent);border:4px double #edbeb855;display:grid;place-items:center;color:#f5d7ce;font:22px Georgia;z-index:5;transition:opacity .25s}.is-opening .env-flap{transform:rotateX(180deg);z-index:1}.is-opening .env-card{translate:0 -100px}.is-opening .env-seal{opacity:0}.living-bouquet{position:absolute;width:420px;height:390px;top:48%;left:50%;transform:translate(-50%,-42%);perspective:900px;animation:bouquet-sway 9s ease-in-out infinite;transform-origin:50% 85%}.flower-field{position:absolute;inset:0;z-index:3;transform-style:preserve-3d}.living-flower{position:absolute;width:112px;height:260px;left:calc(50% - 56px);top:2px;border:0;background:none;transform-origin:50% 100%;transform:rotate(var(--angle));padding:0;opacity:0;translate:0 100px;transition:opacity 1s var(--delay),translate 1.4s var(--delay);animation:flower-sway 7s ease-in-out infinite;animation-delay:calc(var(--i)*-.8s)}.is-open .living-flower{opacity:1;translate:0 0}.flower-stem{position:absolute;top:70px;left:54px;width:4px;height:225px;background:linear-gradient(90deg,#66744e,#99a26e);transform:rotate(-2deg);transform-origin:50% 100%}.flower-stem>i{position:absolute;top:45px;left:2px;width:45px;height:17px;border-radius:0 100% 0 100%;background:linear-gradient(20deg,#586b49,#a6b18a);transform:rotate(-25deg)}.flower-stem>i:nth-child(2){top:90px;left:-40px;transform:rotate(25deg) scaleX(-1)}.flower-head{position:absolute;top:calc(mod(var(--i),3)*12px);left:0;width:112px;height:112px;filter:drop-shadow(0 5px 7px #9f6a6622);transform:rotate(calc(var(--i)*11deg))}.bloom-svg{position:absolute;inset:-12px;width:136px;height:136px}.flower-head>img{position:absolute;left:22px;top:22px;width:68px;height:68px;object-fit:cover;border-radius:50%;border:3px solid #f9dfc9;box-shadow:0 3px 10px #995e5b35;transform:rotate(calc(var(--i)*-11deg))}.flower-center{position:absolute;inset:0;display:grid;place-items:center;font:22px Georgia;color:#b78868}.bouquet-glow{position:absolute;inset:-70px;background:radial-gradient(ellipse,#ffefd5aa,transparent 65%);filter:blur(20px)}.wrap-back{position:absolute;left:65px;right:65px;top:150px;height:220px;background:linear-gradient(60deg,#d7b196,#f5dfc4);clip-path:polygon(0 0,50% 20%,100% 0,67% 100%,33% 100%);z-index:2}.wrap-left{position:absolute;left:63px;right:88px;top:180px;height:190px;background:linear-gradient(110deg,#e7c9a9,#c89f7f);clip-path:polygon(0 0,100% 40%,63% 100%,33% 100%);z-index:4}.wrap-right{position:absolute;left:119px;right:63px;top:170px;height:200px;background:linear-gradient(65deg,#c89e7f,#efd8bc 75%);clip-path:polygon(100% 0,0 50%,22% 100%,56% 100%);z-index:5}.bouquet-ribbon{position:absolute;left:50%;top:320px;translate:-50% 0;z-index:6;width:116px;height:48px;display:flex;justify-content:center;align-items:center}.bouquet-ribbon span{width:48px;height:30px;background:linear-gradient(140deg,#ca8a94,#a55c70);border-radius:60% 10% 60% 10%;transform:rotate(20deg);box-shadow:inset 0 2px 5px #ffc8c733}.bouquet-ribbon span:last-child{transform:scaleX(-1) rotate(20deg)}.bouquet-ribbon i{font:20px Georgia;color:#f5d3cb;position:absolute;left:calc(50% - 15px);top:7px;border-radius:50%;width:30px;height:30px;background:#ab6472;display:grid;place-items:center;z-index:1}.bouquet-caption{position:absolute;bottom:-7px;left:0;right:0;font:italic 11px Georgia;color:#b39076;z-index:7}.motion-garden{background:radial-gradient(ellipse at 50% 40%,#fffcdf,#e0e7d2)}.living-garden{width:530px;animation:none}.living-garden .living-flower{transform:translateX(calc((var(--i) - (var(--n) - 1)/2)*64px)) translateY(calc(mod(var(--i),3)*23px));top:30px;animation:garden-sway 6s ease-in-out infinite;animation-delay:calc(var(--i)*-.8s);transform-origin:50% 100%}.living-garden .flower-head{scale:.9}.garden-ground{position:absolute;bottom:20px;left:-30px;right:-30px;height:80px;border-radius:50%;background:radial-gradient(ellipse,#bdc99477,transparent 70%)}.floating-letter{position:absolute;top:47%;left:50%;translate:-50% -37%;width:245px;height:245px;border:1px solid #d8c4a5;background:repeating-linear-gradient(#fff8e9 0 30px,#eadcc9 31px,#fff8e9 32px);box-shadow:0 20px 50px #92704a20;rotate:-7deg;padding:28px;text-align:left;animation:letter-float 7s ease-in-out infinite;color:#a17c65}.floating-letter>span{font:italic 27px Georgia;display:block}.floating-letter>i{font:12px/2 SimSun;display:block;margin-top:20px;letter-spacing:2px}.floating-letter>b{display:block;font:55px Georgia;color:var(--gift-accent);text-align:center}.floating-letter>small{font:italic 10px Georgia}.motion-letter-dialog{background:#fff9ed;width:min(600px,calc(100vw - 30px));text-align:left;border:1px solid #d8c5ad;border-radius:5px;padding:60px 50px 35px;box-shadow:0 25px 100px #26182060;animation:letter-unfold .7s ease both}.motion-letter-dialog::backdrop,.motion-book-dialog::backdrop{background:#100d1b99;backdrop-filter:blur(9px)}.motion-close{position:absolute;right:15px;top:8px;background:none;border:0;color:#ab8b76;font-size:28px;z-index:6}.letter-stamp{position:absolute;right:40px;top:35px;font:45px Georgia;color:#cfaa94;rotate:15deg;border:1px dashed #c8a58f;width:70px;height:70px;display:grid;place-items:center}.letter-date{font:10px Georgia;letter-spacing:2px;color:#b3947c}.motion-letter-dialog h2{font:20px SimSun,serif;margin:35px 0 20px;color:#8a6654}.motion-letter-content{font:16px/2.5 SimSun,serif;white-space:pre-wrap;overflow-wrap:anywhere;min-height:150px;color:#80614e;letter-spacing:1px;background:repeating-linear-gradient(transparent 0 39px,#b99a7c16 39px 40px)}.letter-complete{border:0;background:transparent;color:#b38d77;font-size:10px;display:block;margin-top:15px}.letter-photo{display:block;width:min(100%,250px);max-height:300px;object-fit:cover;margin:25px auto;border:8px solid #fffdf7;box-shadow:0 5px 15px #80644920;rotate:-3deg}.motion-letter-sign{text-align:right;font:italic 15px Georgia,SimSun;color:#aa7d68;margin:30px 0 10px}.motion-book-dialog{background:transparent;border:0;box-shadow:none;width:min(800px,96vw);padding:55px 15px 25px;overflow:visible;color:#f0d6c7;max-height:95vh}.motion-book-dialog .motion-close{color:#e8d3c7;top:0;right:20px}.memory-book{position:relative;display:flex;perspective:1600px;filter:drop-shadow(0 20px 35px #0006);height:min(430px,58vh);border-radius:5px;background:#b08c6f;padding:6px;transform-style:preserve-3d}.book-spine{position:absolute;top:5px;bottom:5px;left:50%;width:10px;translate:-50% 0;background:linear-gradient(90deg,#8c6a5144,#5e3d3922,#fff1d1);z-index:4;pointer-events:none}.book-leaf{width:50%;padding:25px;position:relative;background:#f8edd9;color:#937259;display:flex;flex-direction:column;align-items:center;overflow:hidden}.book-left{border-radius:3px 0 0 3px;box-shadow:inset -15px 0 20px #a1805e16}.book-right{border-radius:0 3px 3px 0;box-shadow:inset 15px 0 20px #a1805e13}.book-page-number{font:7px Georgia;letter-spacing:2px;color:#b99d7f;align-self:flex-start;margin-bottom:17px}.book-photo{width:100%;height:65%;min-height:120px;border:8px solid #fffaf0;border-bottom-width:20px;box-shadow:0 5px 15px #8e695528;rotate:-3deg;flex-shrink:1}.book-right .book-photo{rotate:3deg}.book-photo img{width:100%;height:100%;object-fit:cover;display:block}.book-illustration{display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(145deg,#e0cdc0,#d4c4b0);color:#a26d75}.book-illustration span{font:70px Georgia}.book-illustration small{font:italic 9px Georgia;color:#9b7864}.book-leaf p,.book-turn p{font:13px/1.8 SimSun,serif;text-align:center;color:#96775f;margin:22px 0 5px;overflow-wrap:anywhere}.book-handwritten{font:italic 9px Georgia;color:#ba9b81}.book-turn{position:absolute;top:6px;bottom:6px;width:calc(50% - 6px);display:none;background:#f8edd9;backface-visibility:hidden;transform-style:preserve-3d;z-index:5;overflow:hidden;padding:25px;flex-direction:column;align-items:center;color:#937259}.book-turn.turning{display:flex}.book-turn.forward{left:50%;transform-origin:0 50%;animation:page-forward .8s ease-in-out}.book-turn.backward{right:50%;transform-origin:100% 50%;animation:page-backward .8s ease-in-out}.book-controls{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:25px;font:11px Georgia}.book-controls button{border:1px solid #bba18f66;border-radius:50%;width:34px;height:34px;background:#fff1d316;color:#ecd6c0}.motion-book-dialog>p{text-align:center;font-size:10px;letter-spacing:2px;color:#cdb7aa;margin-top:15px}.birthday-particle-label{position:absolute;top:48%;left:0;right:0;opacity:0;pointer-events:none}.real-cake{position:absolute;top:48%;left:50%;translate:-50% -30%;width:200px;height:210px;background:none;border:0;opacity:0;scale:.7;transition:opacity 2s,scale 2s;perspective:600px;pointer-events:none!important;animation:cake-float 7s ease-in-out infinite}.cake-body{position:absolute;top:65px;left:15px;width:170px;height:110px;border-radius:0 0 85px 85px/0 0 26px 26px;background:linear-gradient(90deg,#be798e,#f5bac9 45%,#d590a5);box-shadow:inset 0 -15px 0 #a9647b33;overflow:hidden}.cake-top{position:absolute;top:40px;left:15px;width:170px;height:55px;border-radius:50%;background:radial-gradient(ellipse,#fff2e5,#f9d4d5 65%,#df9db1);z-index:3;box-shadow:0 7px 0 #ffe8e4}.cake-body>span{position:absolute;top:20px;left:13px;width:14px;height:55px;border-radius:0 0 10px 10px;background:#ffe6de}.cake-body>span:nth-child(2){left:43px;height:35px}.cake-body>span:nth-child(3){left:75px;height:60px}.cake-body>span:nth-child(4){left:112px;height:30px}.cake-body>span:nth-child(5){left:142px;height:50px}.cake-candle{position:absolute;top:1px;left:95px;width:10px;height:55px;background:repeating-linear-gradient(25deg,#f2e0c8 0 7px,#b5758c 7px 13px);z-index:5;border-radius:3px}.candle-flame{position:absolute;top:-25px;left:-2px;width:14px;height:27px;display:block;border-radius:90% 20% 70% 40%;background:radial-gradient(ellipse at 50% 70%,#fff2b5,#f7bc6c 60%,#ff925a);filter:drop-shadow(0 0 15px #ffb36a);rotate:8deg;animation:flame-flicker .23s infinite alternate;transition:opacity .4s,scale .4s}.cake-plate{position:absolute;top:145px;left:-5px;width:210px;height:55px;border-radius:50%;background:linear-gradient(#e3d3d4,#b9a3ba);z-index:-1;box-shadow:0 6px 0 #9d829e}.cake-shadow{position:absolute;left:-20px;right:-20px;bottom:-5px;height:40px;border-radius:50%;background:#0002;filter:blur(12px);z-index:-2}.cake-instruction{position:absolute;top:calc(48% + 160px);left:0;right:0;font-size:11px;letter-spacing:2px;color:#c6a0b8;opacity:0;transition:opacity 1.5s}.birthday-ready .real-cake{opacity:1;scale:1;pointer-events:auto!important}.birthday-ready .cake-instruction{opacity:1}.motion-birthday:not(.birthday-ready) .motion-footer{opacity:0;pointer-events:none}.motion-birthday:not(.birthday-ready) .motion-footer button{pointer-events:none}.candle-out .candle-flame{opacity:0;scale:.1}.wishes-active .motion-story{opacity:.25}.wishes-active .motion-stage{opacity:.25}.wishes-active .motion-photo-space{opacity:.2;transition:opacity .8s}.is-preview .motion-intro{display:none}.is-preview .motion-story{top:9%}.motion-galaxy .motion-stage{pointer-events:none}
@keyframes music-spin{to{rotate:360deg}}@keyframes intro-drift{to{translate:30px 60px}}@keyframes heart-beat{0%,100%{scale:1}20%{scale:1.07}40%{scale:.99}60%{scale:1.04}}@keyframes letter-float{50%{translate:0 -9px}}@keyframes bouquet-sway{0%,100%{rotate:-2deg}50%{rotate:2deg}}@keyframes flower-sway{50%{rotate:3deg}}@keyframes garden-sway{50%{rotate:2deg}}@keyframes letter-unfold{from{opacity:0;transform:translateY(40px) rotateX(-15deg)}to{opacity:1;transform:none}}@keyframes page-forward{from{transform:rotateY(0)}to{transform:rotateY(-180deg)}}@keyframes page-backward{from{transform:rotateY(0)}to{transform:rotateY(180deg)}}@keyframes cake-float{50%{rotate:2deg;translate:-50% calc(-30% - 7px)}}@keyframes flame-flicker{to{scale:.85 1.08;rotate:-6deg}}
@media(max-width:640px){.motion-scene{min-height:520px}.motion-header{padding:15px 17px}.motion-brand{font-size:9px}.motion-header button{width:30px;height:30px;font-size:17px}.motion-story{top:13%}.motion-story h1{font-size:24px;letter-spacing:2px;max-width:330px}.motion-overline{font-size:7px;letter-spacing:2px}.motion-recipient{font-size:15px;margin-top:14px}.motion-subtitle{font-size:9px;letter-spacing:1px}.motion-footer{bottom:5%}.motion-actions{gap:6px}.motion-actions button{padding:9px 12px;font-size:10px}.motion-hint{font-size:9px;letter-spacing:1px;margin-bottom:16px}.motion-footer>small{font-size:10px;margin-top:15px}.cosmic-photo{width:70px;height:88px;padding:4px}.cosmic-photo>span{font-size:6px}.photo-placeholder>span{font-size:32px}.photo-placeholder small{font-size:5px}.living-bouquet{scale:.84;top:47%}.living-garden{scale:.68;top:48%}.intro-label{font-size:6px;letter-spacing:2px;top:20%}.intro-to{font-size:21px;margin-bottom:40px}.intro-envelope{scale:.9}.intro-instruction{font-size:11px;letter-spacing:2px}.motion-intro>small{font-size:8px}.motion-letter-dialog{padding:42px 27px 25px}.motion-letter-content{font-size:15px;line-height:2.6}.letter-stamp{width:50px;height:50px;right:25px;top:25px;font-size:30px}.motion-letter-dialog h2{font-size:19px;margin-top:30px}.memory-book{height:min(310px,50vh);padding:4px}.book-leaf,.book-turn{padding:17px 11px}.book-page-number{font-size:5px;letter-spacing:1px;margin-bottom:13px}.book-photo{border-width:5px;border-bottom-width:13px;min-height:80px;height:64%}.book-illustration span{font-size:47px}.book-illustration small{font-size:6px}.book-leaf p,.book-turn p{font-size:11px;margin-top:15px;line-height:1.6}.book-handwritten{font-size:7px}.book-turn{top:4px;bottom:4px;width:calc(50% - 4px)}.motion-book-dialog{width:98vw;padding:50px 6px 20px}.cosmic-days strong{font-size:64px}.cosmic-days small{font-size:10px}.cosmic-days>span{font-size:8px;letter-spacing:1px}.floating-letter{scale:.85;top:45%}.real-cake{scale:.85}.birthday-ready .real-cake{scale:.9}.cake-instruction{top:calc(48% + 135px);font-size:10px}.is-preview .living-bouquet{scale:.7;top:46%}.is-preview .living-garden{scale:.56}.is-preview .motion-story{top:11%}.is-preview .motion-story h1{font-size:22px}.is-preview .motion-recipient{margin-top:8px}.is-preview .motion-subtitle{display:none}.is-preview .motion-footer{bottom:4%}.is-preview .motion-footer>small{margin-top:8px}.is-preview .motion-hint{margin-bottom:10px}.is-preview .motion-actions button{padding:8px 11px}.is-preview .real-cake{top:43%;scale:.7}.is-preview.birthday-ready .real-cake{scale:.8}.is-preview .cake-instruction{top:calc(43% + 110px)}}
@media(prefers-reduced-motion:reduce){.motion-scene *{animation:none!important;transition-duration:.05s!important}.living-flower{translate:0 0!important}}

/* Keep translation outside the scaling transform, so small screens stay centered. */
.living-bouquet{transform:none;translate:-50% -50%;top:52%;transform-origin:50% 50%}
.is-preview .living-bouquet{top:52%}

.cosmic-heart-name{position:absolute;top:49%;left:50%;translate:-50% -50%;font:italic 22px Georgia,SimSun;color:#ffe2ef;text-shadow:0 0 16px #ff8fca;letter-spacing:3px;white-space:nowrap}.cosmic-heart-name>small{display:block;font:italic 9px Georgia;letter-spacing:1px;margin-top:10px;color:#d7a4c7}.motion-photo-space{transition:opacity .8s}.motion-book-dialog,.motion-letter-dialog{touch-action:pan-y}
@media(max-width:640px){.cosmic-heart-name{font-size:17px}.cosmic-heart-name>small{font-size:7px}.motion-actions button{backdrop-filter:none}}
