@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=Pacifico&display=swap";
@font-face{font-family:Dancing Script;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/32fe63294b6cd18c-s.0tc1fqk3fgfsz.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Dancing Script;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/73091b67359a1d13-s.22yt1aol_-g3w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Dancing Script;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/406d3fc8d5ec9f59-s.p.0mnr43et3sf34.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Dancing Script Fallback;src:local(Arial);ascent-override:112.99%;descent-override:34.39%;line-gap-override:0.0%;size-adjust:81.43%}.dancing_script_24aedb90-module__ucTlXW__className{font-family:Dancing Script,Dancing Script Fallback;font-style:normal}.dancing_script_24aedb90-module__ucTlXW__variable{--font-hand:"Dancing Script", "Dancing Script Fallback"}
@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.2ytmazkdrg7t9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.p.3j3877k49yy0l.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.1icgra-w5i50b.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.1g73gv09-xcb6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_8c4ab588-module__AuOkkq__className{font-family:Instrument Serif,Instrument Serif Fallback;font-weight:400}.instrument_serif_8c4ab588-module__AuOkkq__variable{--font-serif:"Instrument Serif", "Instrument Serif Fallback"}
*{box-sizing:border-box;margin:0;padding:0}:root{--yellow:#ffe066;--gold:gold;--pink:#ff6b9d;--dark:#0a0a0f;--dark2:#12080e;--red-curtain:#8b0000;--btn-border:#ffc86480}html,body{color:#fff;background:#050508;width:100%;height:100%;font-family:Nunito,sans-serif;overflow:hidden}.page{z-index:10;flex-direction:column;justify-content:center;align-items:center;transition:opacity .6s,transform .6s;display:flex;position:fixed;inset:0}.page.hidden{opacity:0;pointer-events:none;transform:translateY(20px)}.curtain-panel{z-index:55;background-image:repeating-linear-gradient(90deg,#00000038 0,#0000 5px,#ffffff0a 8px,#0000002e 13px),linear-gradient(#5a0000 0%,#8a0000 15%,#b50008 35%,#cc000c 50%,#b50008 65%,#8a0000 85%,#5a0000 100%);width:50%;transition:transform 1s cubic-bezier(.76,0,.24,1);position:absolute;top:0;bottom:0}.curtain-left{left:0;transform:translate(0);box-shadow:inset -18px 0 40px #0000008c,4px 0 20px #00000080}.curtain-left:after{content:"";background:linear-gradient(90deg,#00000059 0%,#0000 40%,#ffc8a00a 60%,#00000040 100%);position:absolute;inset:0}.curtain-right{right:0;transform:translate(0);box-shadow:inset 18px 0 40px #0000008c,-4px 0 20px #00000080}.curtain-right:after{content:"";background:linear-gradient(270deg,#00000059 0%,#0000 40%,#ffc8a00a 60%,#00000040 100%);position:absolute;inset:0}.curtain-open-left{transform:translate(-100%)!important}.curtain-open-right{transform:translate(100%)!important}.curtain-valance{z-index:60;background:linear-gradient(#2a0000,#6a0000);height:18px;position:absolute;top:0;left:0;right:0;box-shadow:0 4px 18px #000000b3}.curtain-btn{z-index:20;color:#fff;cursor:pointer;letter-spacing:.5px;background:#0a0505d9;border:2px solid #ffb4b459;border-radius:50px;align-items:center;gap:10px;padding:14px 40px;font-family:Nunito,sans-serif;font-size:1.25rem;font-weight:800;transition:all .3s;display:flex;position:relative;box-shadow:0 0 30px #ff646433,0 0 0 1px #ff64641a}.curtain-btn:hover{background:#1e0a0ae6;transform:scale(1.05);box-shadow:0 0 50px #ff646459,0 0 0 1px #ff96964d}.heart-icon{font-size:1.4rem;animation:1.2s ease-in-out infinite heartbeat}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.3)}50%{transform:scale(1)}75%{transform:scale(1.2)}}.avatar{background:#140a14cc;border:3px solid #ffdc6466;border-radius:50%;justify-content:center;align-items:center;width:110px;height:110px;margin-bottom:28px;font-size:4rem;animation:3s ease-in-out infinite float;display:flex;box-shadow:0 0 30px #ffc85040}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.title-yellow{color:var(--yellow);text-align:center;text-shadow:0 0 20px #ffdc5080;margin-bottom:16px;font-family:Nunito,sans-serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:900;line-height:1.3}.subtitle{color:#ffe696bf;text-align:center;margin-bottom:36px;font-size:1rem;font-weight:600}.btn{color:var(--yellow);cursor:pointer;letter-spacing:.3px;background:#0f0808cc;border:2px solid #ffc86466;border-radius:50px;padding:14px 36px;font-family:Nunito,sans-serif;font-size:1.05rem;font-weight:800;transition:all .3s;box-shadow:0 0 20px #ffb4501a}.btn:hover{background:#1e0f0ae6;border-color:#ffdc64b3;transform:scale(1.04);box-shadow:0 0 35px #ffc85040}.age-tracker{grid-template-columns:repeat(2,1fr);align-items:end;gap:16px 26px;max-width:330px;margin:22px auto 34px;display:grid}.age-unit{flex-direction:column;align-items:center;gap:6px;display:flex}.age-num{color:var(--yellow);text-shadow:0 0 30px #ffdc5099;font-variant-numeric:tabular-nums;font-family:Nunito,sans-serif;font-size:clamp(1.7rem,6.5vw,2.8rem);font-weight:900;line-height:1}.age-label{color:#ffc864a6;letter-spacing:2px;text-transform:uppercase;font-size:.72rem;font-weight:700}.age-caption{color:#ffdc82d9;text-align:center;margin:4px 0 2px;font-size:.95rem;font-weight:700}.memories-section{flex-direction:column;align-items:center;width:100%;max-width:500px;display:flex}.memory-carousel{cursor:grab;touch-action:pan-y;border-radius:20px;width:280px;height:340px;margin-bottom:20px;position:relative;overflow:hidden;box-shadow:0 0 40px #ff649633}.memory-carousel:active{cursor:grabbing}.memory-slide{opacity:0;transition:opacity .6s;position:absolute;inset:0}.memory-slide.active{opacity:1}.memory-slide-empty{color:#ffffff59;background:#ffffff0d;justify-content:center;align-items:center;font-size:2.6rem;display:flex;position:absolute;inset:0}.memory-slide.active img{animation:7s ease-out forwards kenburns}@keyframes kenburns{0%{transform:scale(1)translate(0)}to{transform:scale(1.16)translate(-2%,-3%)}}.memory-caption{color:#ffe1aaf2;text-align:center;text-shadow:0 0 12px #ffb45a59;min-height:1.4em;margin-bottom:14px;font-family:Nunito,sans-serif;font-size:.98rem;font-weight:700;animation:.7s forwards captionFade}@keyframes captionFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.carousel-dots{gap:10px;margin-bottom:12px;display:flex}.dot{cursor:pointer;background:#ffb45059;border:none;border-radius:50%;width:10px;height:10px;transition:all .3s}.dot.active{background:var(--yellow);box-shadow:0 0 10px #ffdc5080}.swipe-hint{color:#ffc8648c;margin-bottom:28px;font-size:.8rem;font-weight:600}.puzzle-section{flex-direction:column;align-items:center;width:100%;display:flex}.puzzle-subtitle{color:#ffdc64b3;letter-spacing:.3px;margin-bottom:20px;font-size:.9rem;font-weight:700}.puzzle-meta{gap:16px;margin-bottom:20px;display:flex}.puzzle-stat{background:#140c0ccc;border:1px solid #ffc86440;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:14px 24px;display:flex}.puzzle-stat-num{color:var(--yellow);font-size:2rem;font-weight:900}.puzzle-stat-label{color:#ffc8648c;letter-spacing:1.5px;text-transform:uppercase;font-size:.65rem;font-weight:700}.puzzle-preview{border:1px solid #ffc86440;border-radius:12px;width:80px;height:80px;overflow:hidden}.puzzle-preview img{object-fit:cover;width:100%;height:100%}.puzzle-grid{border-radius:16px;grid-template-columns:repeat(3,1fr);gap:3px;width:300px;height:300px;margin-bottom:24px;display:grid;overflow:hidden;box-shadow:0 0 40px #ff649626}.puzzle-tile{cursor:pointer;background:#140a0ae6;border:1px solid #ffc86414;transition:transform .15s;position:relative;overflow:hidden}.puzzle-tile:hover{z-index:2;transform:scale(.97)}.puzzle-tile.empty{cursor:default;background:#050303f2}.puzzle-tile.empty:hover{transform:none}.puzzle-tile img{object-fit:cover;width:100%;height:100%;display:block}.shuffle-btn{align-items:center;gap:8px;display:flex}.music-btn{z-index:100;cursor:pointer;background:#140a0fd9;border:2px solid #ffc8644d;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.1rem;transition:all .3s;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 0 20px #ff965026}.music-btn:hover{border-color:#ffdc6499;transform:scale(1.1);box-shadow:0 0 30px #ffb4504d}.music-btn.playing{animation:3s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.confetti-piece{z-index:200;pointer-events:none;border-radius:2px;width:10px;height:10px;animation:linear forwards confettiFall;position:fixed;top:-20px}.confetti-piece.confetti-emoji{border-radius:0;width:auto;height:auto;line-height:1;background:0 0!important}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(110vh)rotate(720deg)}}.puzzle-grid.puzzle-solved{border-radius:20px;gap:0;animation:.6s forwards photoReveal;box-shadow:0 0 60px #ffc85066,0 0 30px #ff965040}@keyframes photoReveal{0%{filter:brightness(.7)saturate(.5);transform:scale(.97)}60%{filter:brightness(1.1)saturate(1.2)}to{filter:brightness()saturate();transform:scale(1)}}.puzzle-tile.tile-solved{transition:none;cursor:default!important;border:none!important}.puzzle-tile.tile-solved.empty{background:0 0!important}.puzzle-tile.tile-solved:hover{transform:none!important}.puzzle-full-reveal{border-radius:20px;width:300px;height:300px;margin-bottom:4px;animation:.8s cubic-bezier(.22,1,.36,1) forwards fullReveal;position:relative;overflow:hidden;box-shadow:0 0 0 3px #ffd7508c,0 0 40px #ffc83c80,0 0 80px #ffa03c4d,0 0 120px #ff783c26}@keyframes fullReveal{0%{opacity:0;filter:brightness(1.6)saturate(.4);transform:scale(.88)}40%{filter:brightness(1.25)saturate(1.3)}to{opacity:1;filter:brightness()saturate();transform:scale(1)}}.puzzle-full-img{object-fit:cover;border-radius:20px;width:100%;height:100%;display:block}.puzzle-full-shimmer{pointer-events:none;background:linear-gradient(115deg,#0000 0% 30%,#ffffff59 50%,#0000 70% 100%) 0 0/200% 100%;border-radius:20px;animation:1.2s .3s forwards shimmerSweep;position:absolute;inset:0}@keyframes shimmerSweep{0%{opacity:.9;left:-60%}to{opacity:.9;left:120%}}.puzzle-full-glow-ring{pointer-events:none;z-index:2;border:3px solid #ffd75099;border-radius:26px;animation:2s ease-in-out infinite ringPulse;position:absolute;inset:-6px}@keyframes ringPulse{0%,to{opacity:.6;box-shadow:0 0 12px #ffd75066}50%{opacity:1;box-shadow:0 0 28px #ffd750b3}}.puzzle-solved-msg{color:var(--yellow);text-align:center;text-shadow:0 0 12px #ffdc5080;margin-bottom:14px;font-size:1rem;font-weight:700;animation:.5s forwards fadeInUp}.letter-reveal{flex-direction:column;align-items:center;display:flex}.letter-btn{color:var(--yellow);cursor:pointer;letter-spacing:.5px;background:linear-gradient(135deg,#190a0ae6,#280f14f2);border:2px solid #ffb45099;border-radius:50px;padding:16px 44px;font-family:Nunito,sans-serif;font-size:1.15rem;font-weight:800;transition:all .35s;animation:2.2s ease-in-out infinite letterBtnPulse;box-shadow:0 0 28px #ffb43c59,0 0 60px #ff783c26,inset 0 0 20px #ffc8500f}.letter-btn:hover{border-color:#ffdc64e6;transform:scale(1.06);box-shadow:0 0 50px #ffc8508c,0 0 90px #ff8c3c4d}@keyframes letterBtnPulse{0%,to{box-shadow:0 0 28px #ffb43c59,0 0 60px #ff783c26}50%{box-shadow:0 0 45px #ffc8508c,0 0 90px #ff8c3c47}}.letter-page{z-index:10;scrollbar-width:thin;scrollbar-color:#ffc85040 transparent;flex-direction:column;justify-content:flex-start;align-items:center;padding:32px 16px 24px;display:flex;position:fixed;inset:0;overflow-y:auto}.letter-page::-webkit-scrollbar{width:4px}.letter-page::-webkit-scrollbar-track{background:0 0}.letter-page::-webkit-scrollbar-thumb{background:#ffc85040;border-radius:4px}.letter-envelope-icon{margin-bottom:12px;font-size:3.2rem;animation:3s ease-in-out infinite float}.letter-card{background:linear-gradient(145deg,#160a0eeb,#1e0c12f2);border:1px solid #ffc86438;border-radius:24px;width:100%;max-width:520px;margin-bottom:24px;padding:30px 28px;box-shadow:0 0 40px #ff96501a,0 0 0 1px #ffc86414}.letter-greeting{color:var(--yellow);text-shadow:0 0 12px #ffdc5066;margin-bottom:18px;font-family:Nunito,sans-serif;font-size:1.2rem;font-weight:800}.letter-body{color:#ffe1a0e0;margin-bottom:16px;font-size:.98rem;font-weight:500;line-height:1.85}.letter-sign{color:var(--yellow);text-shadow:0 0 14px #ffc85073;margin-top:24px;font-family:Nunito,sans-serif;font-size:1.05rem;font-weight:800}.letter-actions{justify-content:center;gap:12px;padding-bottom:20px;display:flex}.loading-dots{justify-content:center;align-items:center;gap:8px;display:flex}.loading-dot{background:var(--yellow);border-radius:50%;width:10px;height:10px;animation:.8s ease-in-out infinite bounce}.loading-dot:nth-child(2){animation-delay:.15s}.loading-dot:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(-12px)}}.loading-text{color:#ffdc64b3;letter-spacing:.5px;margin-top:16px;font-size:1.1rem;font-weight:700}.bj-loader{flex-direction:column;align-items:center;gap:22px;display:flex}.bj-loader-gift{justify-content:center;align-items:center;width:96px;height:96px;display:flex;position:relative}.bj-loader-gift-emoji{filter:drop-shadow(0 8px 22px #ff50a073);font-size:3.4rem;line-height:1;animation:1.8s ease-in-out infinite bjGiftBob}.bj-loader-ring{border:2px solid #ffc87859;border-radius:50%;animation:1.8s ease-out infinite bjRingPulse;position:absolute;inset:0;box-shadow:0 0 30px #ff965a40}.bj-loader-text{color:#ffdc82d1;letter-spacing:.4px;font-size:1.06rem;font-weight:700}@keyframes bjGiftBob{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-10px)rotate(3deg)}}@keyframes bjRingPulse{0%{opacity:.9;transform:scale(.7)}70%{opacity:0;transform:scale(1.25)}to{opacity:0;transform:scale(1.25)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.7s forwards fadeInUp}.fade-in-delay-1{opacity:0;animation-delay:.1s}.fade-in-delay-2{opacity:0;animation-delay:.3s}.fade-in-delay-3{opacity:0;animation-delay:.5s}.fade-in-delay-4{opacity:0;animation-delay:.7s}.gift-page-title{color:var(--yellow);text-align:center;text-shadow:0 0 28px #ffdc5099;margin-bottom:6px;font-size:clamp(1.5rem,4vw,2rem);font-weight:900;line-height:1.3}.gift-tap-hint{color:#ffaadccc;text-align:center;letter-spacing:.4px;margin-top:32px;font-size:.95rem;font-weight:700;transition:opacity .4s;animation:2s ease-in-out infinite hintPulse}@keyframes hintPulse{0%,to{opacity:.65;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@keyframes giftShake{0%{transform:translateY(0)rotate(0)}15%{transform:translateY(-5px)rotate(-4deg)}30%{transform:translateY(-7px)rotate(4deg)}45%{transform:translateY(-5px)rotate(-2.5deg)}60%{transform:translateY(-2px)rotate(2.5deg)}75%{transform:translateY(-1px)rotate(-1deg)}to{transform:translateY(0)rotate(0)}}.gift-inner{transform-style:preserve-3d;filter:drop-shadow(0 22px 32px #e6006459);transition:filter .55s}.gift-inner-notransform{transform:none!important}.gift-container:not(.gift-opening):hover .gift-inner{filter:drop-shadow(0 28px 45px #ff0082a6)}.gift-sparkle{pointer-events:none;color:gold;text-shadow:0 0 8px #ffd200e6;z-index:5;line-height:1;transition:text-shadow .35s;animation:3.8s ease-in-out infinite sparkleBob;position:absolute}.gift-container:not(.gift-opening):hover .gift-sparkle{text-shadow:0 0 14px #ff64b4,0 0 30px #ff0082d9;animation-duration:1.4s}.gs-1{font-size:.75rem;animation-delay:0s;top:-16px;left:-26px}.gs-2{font-size:1.05rem;animation-delay:.55s;top:-20px;right:-26px}.gs-3{font-size:.65rem;animation-delay:1.1s;top:42%;left:-32px}.gs-4{font-size:.9rem;animation-delay:1.65s;top:32%;right:-30px}.gs-5{font-size:.72rem;animation-delay:.8s;bottom:24px;left:-22px}.gs-6{font-size:.82rem;animation-delay:1.35s;bottom:18px;right:-22px}@keyframes sparkleBob{0%,to{opacity:.65;transform:translateY(0)scale(1)}50%{opacity:1;transform:translateY(-10px)scale(1.4)}}.gift-lid:before{content:"";background:linear-gradient(90deg,#0000,#ff64a08c 25%,#ffb4d2cc 50%,#ff64a08c 75%,#0000);border-radius:14px 14px 0 0;height:2px;position:absolute;top:0;left:4px;right:4px}.gift-lid:after{content:"";pointer-events:none;background:linear-gradient(160deg,#ff509614 0%,#0000 55%);position:absolute;inset:0}.lid-ribbon{background:linear-gradient(90deg,#b5004e 0%,#e8006a 18%,#ff4daa 38%,#ff80cc 50%,#ff4daa 62%,#e8006a 82%,#b5004e 100%) 0 0/240% 100%;width:28px;margin-left:-14px;animation:2.6s ease-in-out infinite ribbonShimmerH;position:absolute;top:0;bottom:0;left:50%;box-shadow:0 0 14px #ff3c96b3,0 0 28px #e6006459,inset 0 0 8px #ffc8e633}.gift-bow{width:120px;height:56px;transition:transform .3s;position:absolute;top:-34px;left:50%;transform:translate(-50%)}.gift-container:not(.gift-opening):hover .gift-bow{animation:.7s ease-in-out infinite bowWobble}@keyframes bowWobble{0%,to{transform:translate(-50%,-96%)rotate(0)}50%{transform:translate(-50%,-100%)rotate(-3deg)}}.bow-loop{background:radial-gradient(at 38% 30%,#ff9dd4 0%,#ff3d9a 35%,#e0006a 65%,#b50055 100%);border:1.5px solid #ff50a04d;border-radius:50%;width:54px;height:42px;transition:box-shadow .35s;position:absolute;top:8px;box-shadow:inset 0 -8px 14px #78003c80,inset 0 5px 10px #ffc8e673,0 4px 18px #e6006e99}.gift-container:not(.gift-opening):hover .bow-loop{box-shadow:inset 0 -8px 14px #78003c80,inset 0 5px 10px #ffc8e673,0 6px 28px #ff0082d9,0 0 45px #ff32aa73}.bow-left{left:2px;transform:rotate(-26deg)}.bow-right{right:2px;transform:rotate(26deg)}.bow-tail{background:linear-gradient(#ff3d9a 0%,#e0006a 50%,#9a0045 100%);border-radius:0 0 8px 8px;width:13px;height:28px;position:absolute;bottom:-20px;box-shadow:0 4px 10px #0006}.btl{transform-origin:top;left:calc(50% - 16px);transform:rotate(-20deg)}.btr{transform-origin:top;left:calc(50% + 3px);transform:rotate(20deg)}.bow-knot{z-index:2;background:radial-gradient(circle at 35% 28%,#ffd0ea,#ff3d9a 48%,#c2005a 100%);border-radius:50%;width:26px;height:26px;transition:box-shadow .35s;position:absolute;top:15px;left:50%;transform:translate(-50%);box-shadow:0 0 20px #ff3c96,0 0 42px #e600648c}.gift-container:not(.gift-opening):hover .bow-knot{box-shadow:0 0 30px #ff3c96,0 0 65px #ff0082b3}.gift-box-body{background-color:#160410;background-image:radial-gradient(circle,#ffffff0e 1.5px,#0000 1.5px),linear-gradient(158deg,#220818 0%,#180510 45%,#100208 75%,#080108 100%);background-size:18px 18px,100% 100%;border-radius:6px 6px 22px 22px;width:210px;height:162px;transition:box-shadow .45s;position:relative;overflow:hidden;box-shadow:0 0 0 1.5px #ff1e8273,0 0 30px #dc006440,0 0 65px #b4005024,0 16px 45px #000c,inset 0 1px #ff96c81f}.gift-container:not(.gift-opening):hover .gift-box-body{box-shadow:0 0 0 2px #ff3ca0b3,0 0 50px #e6006e99,0 0 100px #c8005a52,0 0 150px #a0004629,0 16px 45px #000c,inset 0 1px #ffaad233}.gift-box-body.box-glowing{box-shadow:0 0 0 2px #ffe650bf,0 0 55px #ffd73cd9,0 0 110px #ffb428a6,0 0 180px #ff8c1459,inset 0 0 65px #fff582bf}.box-ribbon-h{background:linear-gradient(90deg,#9a004a 0%,#d4005e 14%,#ff3d9a 32%,#ff80c8 48%,#ffaadc 50%,#ff80c8 52%,#ff3d9a 68%,#d4005e 86%,#9a004a 100%) 0 0/280% 100%;height:28px;margin-top:-14px;animation:3s ease-in-out infinite ribbonShimmerH;position:absolute;top:50%;left:0;right:0;box-shadow:0 0 16px #ff1e82a6,0 0 35px #dc00644d,inset 0 1px #ffdcf040,inset 0 -1px #78003c66}.box-ribbon-v{background:linear-gradient(90deg,#9a004a 0%,#d4005e 14%,#ff3d9a 32%,#ff80c8 48%,#ffaadc 50%,#ff80c8 52%,#ff3d9a 68%,#d4005e 86%,#9a004a 100%) 0 0/100% 280%;width:28px;margin-left:-14px;animation:3s ease-in-out infinite ribbonShimmerV;position:absolute;top:0;bottom:0;left:50%;box-shadow:0 0 16px #ff1e82a6,0 0 35px #dc00644d,inset 1px 0 #ffdcf040,inset -1px 0 #78003c66}@keyframes ribbonShimmerH{0%{background-position:-100% 0}50%{background-position:100% 0}to{background-position:-100% 0}}@keyframes ribbonShimmerV{0%{background-position:0 -100%}50%{background-position:0 100%}to{background-position:0 -100%}}.box-shine{pointer-events:none;background:linear-gradient(162deg,#ffffff14 0%,#ff8cc80d 35%,#0000 62%);border-radius:4px 4px 0 0;height:58%;transition:opacity .35s;position:absolute;top:0;left:0;right:0}.gift-container:not(.gift-opening):hover .box-shine{opacity:1.5}@keyframes innerGlowPop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes particleBurst{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(0)}15%{opacity:1}85%{opacity:.8}to{opacity:0;transform:translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) scale(1.1) rotate(var(--rot))}}.gift-page-subtitle{color:#ffc896b3;text-align:center;letter-spacing:.4px;margin-bottom:52px;font-size:.9rem;font-weight:600}.gift-tap-hint{color:#ffb464d9;text-align:center;margin-top:28px;font-size:1rem;font-weight:700;transition:opacity .4s;animation:1.8s ease-in-out infinite hintPulse}.gift-tap-hint.hint-hidden{opacity:0;pointer-events:none}.gift-container{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:210px;animation:2.8s ease-in-out infinite giftFloat;position:relative}.gift-container:hover .gift-box-body{filter:brightness(1.08)}@keyframes giftFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.gift-container.gift-opening{animation:.42s cubic-bezier(.36,.07,.19,.97) forwards giftShake}.gift-shadow{pointer-events:none;background:radial-gradient(#dc005066 0%,#0000 70%);border-radius:50%;width:140px;height:22px;transition:all .5s;position:absolute;bottom:-18px;left:50%;transform:translate(-50%)}.gift-shadow.shadow-burst{background:radial-gradient(#ffc83c80 0%,#0000 70%);width:240px;height:34px}.gift-lid{transform-origin:0 0;z-index:3;background-color:#1c0610;background-image:radial-gradient(circle,#ffffff0e 1.5px,#0000 1.5px),linear-gradient(155deg,#2e0c1a 0%,#1e0810 45%,#150308 100%);background-size:18px 18px,100% 100%;border-radius:16px 16px 6px 6px;width:222px;height:52px;margin-left:-6px;transition:transform .72s cubic-bezier(.18,-.1,.5,1.3) .28s,opacity .45s .75s;position:relative;overflow:hidden;box-shadow:0 0 0 1.5px #ff1e8280,0 0 22px #e6006447,inset 0 1px #ffa0d22e,inset 0 -4px 12px #0000008c}.gift-lid.lid-flying{opacity:0;transform:rotate(-62deg)translate(-65px,-105px)}.lid-ribbon{background:linear-gradient(90deg,#b5004e 0%,#e8006a 18%,#ff4daa 38%,#ff80cc 50%,#ff4daa 62%,#e8006a 82%,#b5004e 100%);border-radius:2px;width:28px;margin-left:-14px;position:absolute;top:0;bottom:0;left:50%;box-shadow:0 0 14px #ff3c96b3,0 0 28px #e6006459,inset 0 0 8px #ffc8e633}.box-inner-glow{pointer-events:none;background:radial-gradient(at 50% 20%,#fff078f2 0%,#ffbe3cb3 35%,#0000 65%);animation:.5s cubic-bezier(.22,1,.36,1) forwards innerGlowPop;position:absolute;inset:0}.gift-particle{pointer-events:none;opacity:0;font-size:1.5rem;line-height:1;animation:1.1s cubic-bezier(.22,1,.36,1) forwards particleBurst;position:absolute;top:50%;left:50%}.gift-container,.gift-inner{transform-style:preserve-3d}.gift-container{width:200px!important;animation:none!important}.gift-inner{filter:none}.gift3d{width:200px;height:210px;transform-style:preserve-3d;margin:0 auto;transition:transform .6s cubic-bezier(.22,1,.36,1);position:relative;transform:rotateX(-18deg)rotateY(-26deg)}.gift3d-open{transform:rotateX(-40deg)rotateY(-22deg)}.g-face{box-sizing:border-box;background-repeat:no-repeat;position:absolute;top:50%;left:50%;overflow:hidden}.box3d{width:160px;height:130px;transform-style:preserve-3d;margin-top:-65px;margin-left:-80px;position:absolute;top:50%;left:50%}.gb-front,.gb-back,.gb-right,.gb-left{width:160px;height:130px;margin-top:-65px;margin-left:-80px}.gb-top{width:160px;height:160px;margin-top:-80px;margin-left:-80px}.gb-front{transform:translateZ(80px)}.gb-back{transform:rotateY(180deg)translateZ(80px)}.gb-right{transform:rotateY(90deg)translateZ(80px)}.gb-left{transform:rotateY(-90deg)translateZ(80px)}.gb-top{transform:rotateX(90deg)translateZ(65px)}.gb-front{background-image:linear-gradient(120deg,#ffffff2e 0%,#0000 45%),linear-gradient(160deg,#f4609e 0%,#d83a80 55%,#b62468 100%);box-shadow:inset 0 2px #ffffff26,inset 0 -26px 36px #50002873}.gb-back{background-image:linear-gradient(160deg,#b8246a 0%,#8c1850 100%)}.gb-right{background-image:linear-gradient(160deg,#c43178 0%,#9a1f5a 100%);box-shadow:inset 0 -26px 36px #3c001e80}.gb-left{background-image:linear-gradient(160deg,#a82663 0%,#831a4d 100%);box-shadow:inset 0 -26px 36px #3c001e8c}.gb-top{background-image:linear-gradient(135deg,#ffffff38 0%,#0000 50%),linear-gradient(160deg,#ff8cbd 0%,#f458a0 100%)}.gb-inner-back,.gb-inner-left,.gb-inner-right{backface-visibility:hidden;background-image:linear-gradient(#3a0c1e 0%,#1c0410 60%,#120308 100%);width:150px;height:118px;margin-top:-59px;margin-left:-75px;box-shadow:inset 0 0 28px #000000a6}.gb-inner-left,.gb-inner-right{width:150px}.gb-inner-back{transform:translateZ(-70px)}.gb-inner-left{transform:rotateY(90deg)translateZ(-70px)}.gb-inner-right{transform:rotateY(-90deg)translateZ(-70px)}.gb-floor{background-image:radial-gradient(at 50% 45%,#ffe892 0%,#ff9c3e 22%,#c43a2a 48%,#3a0814 82%);width:150px;height:150px;margin-top:-75px;margin-left:-75px;transform:rotateX(90deg)translateZ(-58px)}.lid3d{width:178px;height:30px;transform-style:preserve-3d;margin-top:-15px;margin-left:-89px;transition:transform .85s cubic-bezier(.34,-.25,.4,1.3) .15s,opacity .5s .4s;position:absolute;top:50%;left:50%;transform:translateY(-80px)}.lid3d.lid-flying{opacity:0;transform:translateY(-220px)rotate(-24deg)rotateX(30deg)}.gl-front,.gl-back,.gl-right,.gl-left{width:178px;height:30px;margin-top:-15px;margin-left:-89px}.gl-top{width:178px;height:178px;margin-top:-89px;margin-left:-89px}.gl-front{transform:translateZ(89px)}.gl-back{transform:rotateY(180deg)translateZ(89px)}.gl-right{transform:rotateY(90deg)translateZ(89px)}.gl-left{transform:rotateY(-90deg)translateZ(89px)}.gl-top{transform:rotateX(90deg)translateZ(15px)}.gl-front{background-image:linear-gradient(120deg,#ffffff38 0%,#0000 45%),linear-gradient(160deg,#f86bab 0%,#d8458a 100%);box-shadow:inset 0 2px #ffffff40,0 8px 14px #46002366}.gl-back{background-image:linear-gradient(160deg,#c83d80 0%,#a02a66 100%)}.gl-right{background-image:linear-gradient(160deg,#d24a88 0%,#a82a66 100%);box-shadow:0 8px 14px #46002366}.gl-left{background-image:linear-gradient(160deg,#bb386f 0%,#922458 100%);box-shadow:0 8px 14px #46002366}.gl-top{background-image:linear-gradient(135deg,#ffffff47 0%,#0000 52%),linear-gradient(160deg,#ffa0cb 0%,#ff6cac 100%)}.rib{pointer-events:none;position:absolute}.rib-v{background:linear-gradient(90deg,#9c6a16 0%,#d9a838 16%,#ffe089 44%,#fff6d2 50%,#ffe089 56%,#d9a838 84%,#9c6a16 100%);width:28px;margin-left:-14px;top:0;bottom:0;left:50%;box-shadow:0 0 5px #00000040}.rib-h{background:linear-gradient(#9c6a16 0%,#d9a838 16%,#ffe089 44%,#fff6d2 50%,#ffe089 56%,#d9a838 84%,#9c6a16 100%);height:28px;margin-top:-14px;top:50%;left:0;right:0;box-shadow:0 0 5px #00000040}.bow3d{width:120px;height:58px;transform-style:preserve-3d;pointer-events:none;position:absolute;top:0;left:50%;transform:translate(-50%,-96%)}.gift-inner:hover .bow3d{animation:.8s ease-in-out infinite bowWobble}.bl{background:radial-gradient(at 38% 28%,#fff6d2 0%,#ffe089 38%,#e0a93a 72%,#b9821f 100%);border:1px solid #ffe29673;border-radius:50% 50% 46% 46%;width:50px;height:42px;position:absolute;top:4px;box-shadow:inset 0 5px 9px #ffffff8c,inset 0 -7px 12px #6e460073,0 4px 10px #0000004d}.bl-left{transform-origin:100% 100%;left:6px;transform:rotate(-30deg)}.bl-right{transform-origin:0 100%;right:6px;transform:rotate(30deg)}.bl:after{content:"";background:radial-gradient(#784b008c,#0000 70%);border-radius:50%;width:18px;height:16px;margin-left:-9px;position:absolute;top:9px;left:50%}.bt{background:linear-gradient(#ffe089 0%,#e0a93a 55%,#b9821f 100%);border-radius:0 0 7px 7px;width:15px;height:32px;position:absolute;bottom:-24px;box-shadow:0 3px 7px #0000004d}.bt:after{content:"";border-bottom:8px solid #1a0510;border-left:7px solid #0000;border-right:7px solid #0000;margin-left:-7px;position:absolute;bottom:0;left:50%}.bt-left{transform-origin:top;left:calc(50% - 17px);transform:rotate(-19deg)}.bt-right{transform-origin:top;left:calc(50% + 2px);transform:rotate(19deg)}.bk{z-index:3;background:radial-gradient(circle at 34% 28%,#fff6d2,#ffe089 42%,#c8951f 100%);border-radius:50%;width:26px;height:26px;margin-left:-13px;position:absolute;top:12px;left:50%;box-shadow:inset 0 2px 4px #ffffffa6,0 3px 9px #00000059}.gift3d-open .bow3d{opacity:0;transition:opacity .35s}.box3d .box-inner-glow{pointer-events:none;z-index:6;background:radial-gradient(#fff4aaf2 0%,#ffc45099 32%,#ff962840 55%,#0000 72%);width:180px;height:180px;margin-top:-90px;margin-left:-90px;animation:.55s cubic-bezier(.22,1,.36,1) forwards innerGlowPop;position:absolute;top:50%;left:50%;transform:rotateX(90deg)translateZ(68px)}.lock-screen{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:linear-gradient(160deg,#0c0516f5 0%,#160610f7 50%,#0a0312f5 100%);border:1px solid #ff8cc82e;border-radius:44px;flex-direction:column;align-items:center;width:clamp(290px,88vw,340px);padding:38px 28px 34px;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #ff508c1a,0 24px 64px #000000a6,0 0 90px #ff286414}.lock-top-glow{pointer-events:none;background:radial-gradient(at 50% 0,#ff64a01a 0%,#0000 70%);border-radius:44px 44px 0 0;height:120px;position:absolute;top:0;left:0;right:0}.lock-screen.lock-shake{animation:.52s cubic-bezier(.36,.07,.19,.97) forwards lockShake}@keyframes lockShake{0%,to{transform:translate(0)}12%{transform:translate(-10px)}24%{transform:translate(10px)}36%{transform:translate(-8px)}48%{transform:translate(8px)}64%{transform:translate(-4px)}80%{transform:translate(4px)}}.lock-screen.lock-unlocking{animation:1.4s cubic-bezier(.22,1,.36,1) forwards lockUnlock}@keyframes lockUnlock{0%{filter:brightness();transform:scale(1)}40%{filter:brightness(1.4);transform:scale(1.04);box-shadow:0 0 0 1px #ffd25080,0 0 80px #ffc85073}to{filter:brightness(2.2);opacity:0;transform:scale(1.12)}}.lock-time{color:#fff;letter-spacing:-3px;text-shadow:0 0 24px #ffaad259;z-index:1;margin-bottom:4px;font-size:4rem;font-weight:900;line-height:1}.lock-date{color:#ffaac8a6;letter-spacing:.6px;z-index:1;margin-bottom:22px;font-size:.82rem;font-weight:600}.lock-icon-wrap{z-index:1;margin-bottom:10px;font-size:2.5rem;transition:transform .4s cubic-bezier(.22,1,.36,1)}.lock-icon-wrap.lock-open{animation:.5s cubic-bezier(.22,1,.36,1) forwards iconPop}@keyframes iconPop{0%{transform:scale(1)rotate(0)}40%{transform:scale(1.5)rotate(-15deg)}70%{transform:scale(1.3)rotate(5deg)}to{transform:scale(1.15)rotate(0)}}.lock-emoji{display:block}.lock-msg{color:#ffc8a0b8;letter-spacing:.35px;text-align:center;z-index:1;min-height:1.2em;margin-bottom:18px;font-size:.8rem;font-weight:700}.pin-dots{z-index:1;gap:18px;margin-bottom:6px;display:flex}.pin-dot{background:0 0;border:2px solid #ff8cb466;border-radius:50%;width:15px;height:15px;transition:all .18s cubic-bezier(.22,1,.36,1)}.pin-dot.filled{background:var(--pink);border-color:var(--pink);transform:scale(1.2);box-shadow:0 0 12px #ff6b9dbf}.pin-dots.dots-error .pin-dot.filled{background:#f45;border-color:#f45;box-shadow:0 0 12px #ff3246cc}.pin-dots.dots-success .pin-dot.filled{background:#4fa;border-color:#4fa;box-shadow:0 0 14px #32ff96cc}.wrong-pin-msg{color:#ff6b80;text-align:center;z-index:1;min-height:1em;margin-bottom:4px;font-size:.76rem;font-weight:700;animation:.3s fadeInUp}.lock-keypad{z-index:1;grid-template-columns:repeat(3,1fr);gap:14px;width:100%;margin-top:20px;display:grid}.lock-key{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff12;border:1px solid #ffa0c824;border-radius:50%;justify-content:center;align-items:center;height:62px;font-family:Nunito,sans-serif;font-size:1.45rem;font-weight:700;transition:background .14s,transform .12s,box-shadow .14s;display:flex}.lock-key:hover:not(:disabled){background:#ff649b2e;border-color:#ff96be59;transform:scale(1.07);box-shadow:0 0 18px #ff649b38}.lock-key:active:not(:disabled){background:#ff649b52;transform:scale(.93);box-shadow:0 0 10px #ff649b66}.lock-key.key-ghost{pointer-events:none;cursor:default;background:0 0;border:none}.lock-key.key-del{color:#ffaac8bf;font-size:1.15rem}.gift-surprise{z-index:40;pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed;top:46%;left:50%;transform:translate(-50%,-50%)}.surprise-rays{background:conic-gradient(from 0deg, transparent 0 6%, #ffe17838 6% 12%, transparent 12% 22%, #ffe17838 22% 28%, transparent 28% 38%, #ffe17838 38% 44%, transparent 44% 54%, #ffe17838 54% 60%, transparent 60% 70%, #ffe17838 70% 76%, transparent 76% 86%, #ffe17838 86% 92%, transparent 92% 100%);opacity:0;border-radius:50%;width:320px;height:320px;animation:2.6s linear .5s forwards raysSpin;position:absolute;top:-90px}@keyframes raysSpin{0%{opacity:0;transform:rotate(0)scale(.4)}40%{opacity:.7}to{opacity:.5;transform:rotate(70deg)scale(1)}}.surprise-glow{opacity:0;background:radial-gradient(circle,#ffd25a8c 0%,#ff78aa2e 45%,#0000 70%);border-radius:50%;width:240px;height:240px;animation:2.2s ease-out .5s forwards surpriseGlow;position:absolute;top:-50px}@keyframes surpriseGlow{0%{opacity:0;transform:scale(.3)}40%{opacity:1}to{opacity:.85;transform:scale(1.2)}}.surprise-heart{filter:drop-shadow(0 0 26px #ff5aa0e6);opacity:0;font-size:5rem;line-height:1;animation:1.9s cubic-bezier(.22,1,.36,1) .55s forwards surpriseRise}@keyframes surpriseRise{0%{opacity:0;transform:translateY(70px)scale(.2)}35%{opacity:1}70%{transform:translateY(-34px)scale(1.2)}to{opacity:1;transform:translateY(-26px)scale(1.12)}}.surprise-msg{letter-spacing:.3px;color:var(--yellow,#ffd84d);text-shadow:0 0 16px #ffc85099;opacity:0;margin-top:16px;font-size:1rem;font-weight:800;animation:1.1s 1.45s forwards surpriseMsg}@keyframes surpriseMsg{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.letter-card.letter-hand{overflow-wrap:anywhere;word-break:normal}.letter-hand .letter-greeting,.letter-hand .letter-body,.letter-hand .letter-sign{font-family:var(--font-hand), "Segoe Script", "Brush Script MT", cursive;white-space:pre-wrap}.letter-hand .letter-greeting{font-size:1.7rem}.letter-hand .letter-body{letter-spacing:.2px;color:#ffe8b4f2;font-size:1.3rem;line-height:1.5}.letter-hand .letter-sign{font-size:1.5rem}.type-hidden{color:#0000}.type-cursor{width:0;color:var(--yellow,#ffd84d);margin-left:1px;font-weight:400;animation:.9s step-end infinite caretBlink;display:inline-block}@keyframes caretBlink{0%,49%{opacity:1}50%,to{opacity:0}}.cake-wrap{flex-direction:column;align-items:center;gap:12px;margin:10px 0 18px;display:flex}.cake{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 16px 22px #00000080);flex-direction:column;align-items:center;transition:transform .2s;display:flex}.cake:active{transform:scale(.98)}.cake-candles{z-index:3;justify-content:center;align-items:flex-end;gap:16px;height:50px;margin-bottom:-2px;display:flex}.candle{justify-content:center;width:10px;height:40px;display:flex;position:relative}.candle-stick{background:repeating-linear-gradient(45deg,#ff7eb0 0 6px,#fff 6px 12px);border-radius:3px;width:10px;height:40px;box-shadow:inset -2px 0 3px #0003}.flame{transform-origin:bottom;background:radial-gradient(at 50% 72%,#fff6c0 0%,#ffd24d 35%,#ff8a1e 70%,#ff5a1e 100%);border-radius:50%/62% 62% 40% 40%;width:13px;height:19px;animation:.3s ease-in-out infinite alternate flameFlicker;position:absolute;bottom:40px;box-shadow:0 -2px 16px 4px #ffaa28b3,0 0 32px 10px #ff8c1e66}.flame:after{content:"";background:radial-gradient(#78b4ffe6,#0000 70%);border-radius:50%;width:6px;height:9px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@keyframes flameFlicker{0%{transform:scaleY(1)scaleX(1)rotate(-3deg)}50%{transform:scaleY(1.08)scaleX(.96)rotate(1deg)}to{transform:scaleY(1.16)scaleX(.9)rotate(3deg)}}.smoke{opacity:0;background:#dcdce68c;border-radius:50%;width:8px;height:8px;animation:1.3s ease-out forwards smokeRise;position:absolute;bottom:40px}@keyframes smokeRise{0%{opacity:.7;transform:translateY(0)scale(.6)}to{opacity:0;transform:translateY(-44px)scale(2)}}.cake-tier{border-radius:12px 12px 8px 8px;position:relative}.cake-top{background:linear-gradient(#ffe3ef 0%,#ff9ec4 45%,#ff7eb0 100%);width:150px;height:44px;box-shadow:inset 0 -6px #0000000f}.cake-base{background:linear-gradient(#ffd0e4 0%,#ff8fbb 45%,#f06aa0 100%);width:196px;height:68px;margin-top:-2px;box-shadow:inset 0 -8px #00000014}.cake-base:after{content:"";background:radial-gradient(circle at 16%,#ffffffd9 0 3px,#0000 4px),radial-gradient(circle at 38%,#ffffffd9 0 3px,#0000 4px),radial-gradient(circle at 60%,#ffffffd9 0 3px,#0000 4px),radial-gradient(circle at 82%,#ffffffd9 0 3px,#0000 4px);height:8px;position:absolute;bottom:12px;left:0;right:0}.cake-plate{background:radial-gradient(at 50% 35%,#fff,#cfd2dd 60%,#9aa0b5 100%);border-radius:50%;width:222px;height:14px;margin-top:-3px;box-shadow:0 9px 16px #0006}.cake-controls{flex-direction:column;align-items:center;gap:8px;min-height:56px;display:flex}.cake-hint{color:#ffbe96cc;font-size:.85rem;font-weight:600}.mini-btn{color:#ffe1aaf2;cursor:pointer;background:#ffffff14;border:1px solid #ffb47859;border-radius:999px;padding:7px 16px;font-size:.82rem;font-weight:700;transition:background .2s,border-color .2s,transform .15s}.mini-btn:hover{background:#ff965a2e;border-color:#ffc88c99}.mini-btn:active{transform:scale(.96)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.fade-in,.fade-in-delay-1,.fade-in-delay-2,.fade-in-delay-3,.fade-in-delay-4{opacity:1!important;transform:none!important}}.num-candle{justify-content:center;width:34px;height:58px;display:flex;position:relative}.num-candle .flame,.num-candle .smoke{bottom:58px}.num-candle-body{color:#a81258;text-shadow:0 1px #ffffff73;background:linear-gradient(#ffe7a0 0%,#ffb3d4 45%,#ff8ec0 100%);border-radius:9px;justify-content:center;align-items:center;width:34px;height:58px;font-family:Nunito,sans-serif;font-size:1.7rem;font-weight:900;display:flex;box-shadow:inset -3px 0 5px #00000029,inset 3px 0 5px #ffffff59,0 3px 6px #00000040}.balloons-page{justify-content:flex-start;padding-top:8vh}.balloon-field{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:26px 30px;max-width:380px;margin-bottom:26px;display:flex}.balloon-slot{width:66px;height:82px;position:relative}.balloon{cursor:pointer;background:radial-gradient(ellipse at 35% 28%, #ffffffd9 0%, var(--bc,#ff6b9d) 42%, #0000002e 100%);background-color:var(--bc,#ff6b9d);transform-origin:bottom;border:none;border-radius:50%/46% 46% 54% 54%;width:66px;height:82px;padding:0;animation:3.4s ease-in-out infinite balloonBob;position:relative;box-shadow:inset -6px -8px 14px #00000038}.balloon:hover{filter:brightness(1.08)}.balloon:before{content:"";border-left:6px solid #0000;border-right:6px solid #0000;border-top:9px solid var(--bc,#ff6b9d);position:absolute;bottom:-7px;left:50%;transform:translate(-50%)}.balloon:after{content:"";background:#fff6;width:1.5px;height:40px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.balloon-shine{filter:blur(1px);pointer-events:none;background:#fff9;border-radius:50%;width:16px;height:22px;position:absolute;top:12px;left:14px}@keyframes balloonBob{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-10px)rotate(2deg)}}.balloon-pop{pointer-events:none;animation:.16s ease-in forwards balloonPop}@keyframes balloonPop{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.1)}}.balloon-burst{pointer-events:none;width:0;height:0;position:absolute;top:38px;left:50%}.balloon-burst .frag{background:var(--bc,#ff6b9d);width:9px;height:9px;box-shadow:0 0 6px var(--bc,#ff6b9d);border-radius:50%;margin:-4.5px 0 0 -4.5px;animation:.45s ease-out forwards fragFly;position:absolute;top:0;left:0}@keyframes fragFly{0%{opacity:1;transform:rotate(var(--a)) translateX(4px) scale(1)}to{opacity:0;transform:rotate(var(--a)) translateX(48px) scale(.3)}}.wish-bubble{color:#ffe6b4f5;text-align:center;background:linear-gradient(145deg,#28101af2,#341422f2);border:1px solid #ff96c84d;border-radius:18px;max-width:320px;margin-bottom:22px;padding:14px 20px;font-size:1.02rem;font-weight:700;animation:.5s cubic-bezier(.22,1,.36,1) forwards wishPop;box-shadow:0 0 30px #ff64a02e}@keyframes wishPop{0%{opacity:0;transform:scale(.7)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.balloon-continue{opacity:.55;pointer-events:none;transition:opacity .4s,transform .2s}.balloon-continue.show{opacity:1;pointer-events:all}.scratch-page{justify-content:flex-start;padding-top:9vh}.scratch-stage{border-radius:20px;width:320px;height:210px;margin-bottom:18px;padding:4px;position:relative}.scratch-glow-ring{filter:blur(7px);opacity:.45;z-index:0;background:linear-gradient(130deg,#ff6bd6,#ffd166,#6bd6ff,#c084fc,#ff6bd6) 0 0/300% 300%;border-radius:22px;transition:opacity .5s;animation:6s infinite ringFlow;position:absolute;inset:-3px}.scratch-stage.revealed .scratch-glow-ring{opacity:.95}@keyframes ringFlow{0%,to{background-position:0%}50%{background-position:100%}}.scratch-reveal{border-radius:16px;position:absolute;inset:4px;overflow:hidden;box-shadow:0 14px 30px #00000080}.scratch-reveal-img{position:absolute;inset:0}.scratch-reveal-img img{object-fit:cover;width:100%;height:100%}.scratch-reveal-overlay{text-align:center;background:linear-gradient(160deg,#7814508c,#14060cb8);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px;display:flex;position:absolute;inset:0}.sr-emoji{font-size:2rem;animation:.6s both srPop}.scratch-stage.revealed .sr-emoji{animation:1.4s ease-in-out infinite srBounce}.scratch-reveal-overlay strong{color:#ffe066;text-shadow:0 2px 12px #0009,0 0 18px #ffc85080;font-family:Nunito,sans-serif;font-size:1.6rem}.sr-msg{color:#ffebc8f5;text-shadow:0 2px 8px #0009;font-size:.95rem;font-weight:700}@keyframes srPop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes srBounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-6px)scale(1.12)}}.sr-sparkle{opacity:0;pointer-events:none;font-size:1.1rem;position:absolute}.scratch-stage.revealed .sr-sparkle{animation:1.8s ease-in-out infinite srSparkle}.sr-s1{animation-delay:.1s;top:12px;left:16px}.sr-s2{animation-delay:.6s;top:18px;right:18px}.sr-s3{animation-delay:1.1s;bottom:14px;left:24px}@keyframes srSparkle{0%,to{opacity:0;transform:scale(.6)rotate(0)}50%{opacity:1;transform:scale(1.2)rotate(20deg)}}.scratch-shimmer{pointer-events:none;opacity:0;background:linear-gradient(90deg,#0000,#ffffff59,#0000);width:50%;height:100%;position:absolute;top:0;left:-60%;transform:skew(-20deg)}.scratch-stage.revealed .scratch-shimmer{animation:1.6s .2s 2 shimmerSweep}.scratch-canvas{touch-action:none;cursor:grab;z-index:3;border-radius:16px;width:calc(100% - 8px);height:calc(100% - 8px);transition:opacity .6s;position:absolute;inset:4px}.scratch-canvas:active{cursor:grabbing}.scratch-canvas.scratched{opacity:0;pointer-events:none}.scratch-progress{background:#ffffff1f;border-radius:999px;width:220px;height:6px;margin-bottom:18px;overflow:hidden}.scratch-progress-fill{background:linear-gradient(90deg,#ffd166,#ff6bd6);border-radius:999px;height:100%;transition:width .2s}.scratch-continue{opacity:0;pointer-events:none;transition:opacity .5s}.scratch-continue.show{opacity:1;pointer-events:all}.wax-envelope{cursor:pointer;perspective:900px;background:0 0;border:none;width:300px;height:196px;margin:10px auto 24px;position:relative}.env-back{background:linear-gradient(160deg,#e7c08c 0%,#d8a463 100%);border-radius:10px;position:absolute;inset:0;box-shadow:0 18px 34px #00000073}.env-paper{background:linear-gradient(#fffdf6,#f3e7cf);border-radius:6px;height:120px;position:absolute;top:16px;left:12px;right:12px;box-shadow:0 4px 10px #00000026}.env-pocket{clip-path:polygon(0 38%,50% 80%,100% 38%,100% 100%,0 100%);z-index:2;background:linear-gradient(160deg,#f0cd94 0%,#e0ad6c 100%);border-radius:10px;position:absolute;inset:0}.env-flap{clip-path:polygon(0 0,100% 0,50% 92%);transform-origin:top;z-index:4;backface-visibility:hidden;background:linear-gradient(160deg,#edc587 0%,#d49e5e 100%);height:104px;transition:transform .7s,z-index 0s .35s;position:absolute;top:0;left:0;right:0;transform:rotateX(0)}.wax-envelope.opening .env-flap{z-index:1;transform:rotateX(-172deg)}.wax-seal{color:#fff;z-index:5;background:radial-gradient(circle at 35% 30%,#ff7a98,#c2185b 70%);border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.3rem;transition:opacity .3s,transform .3s;display:flex;position:absolute;top:66px;left:50%;transform:translate(-50%);box-shadow:0 3px 8px #00000073,inset 0 2px 4px #fff6}.wax-envelope.opening .wax-seal{opacity:0;transform:translate(-50%)scale(.6)}.env-hint{text-align:center;color:#ffbe78d9;font-size:.9rem;font-weight:700;animation:2s ease-in-out infinite hintPulse;position:absolute;bottom:-28px;left:0;right:0}.wax-envelope.opening .env-hint{opacity:0}.letter-card.letter-hand{background-image:repeating-linear-gradient(0deg,#0000 0 30px,#ffc8780f 30px 31px),radial-gradient(circle at 20% 15%,#ffb4780d 0 2px,#0000 3px),radial-gradient(circle at 75% 60%,#ffb4780d 0 2px,#0000 3px),linear-gradient(145deg,#1a0c10eb,#220e14f2);background-size:100% 100%,120px 120px,140px 140px,100% 100%}.landing{color:#f3eefb;background:radial-gradient(circle at 50% -10%,#2a1740 0%,#120a1e 45%,#0b0712 100%);min-height:100vh;padding-bottom:60px;position:relative;overflow-x:hidden}.landing-glow{pointer-events:none;z-index:0;background:radial-gradient(circle,#ff6bd638,#0000 65%);width:700px;height:500px;position:fixed;top:-120px;left:50%;transform:translate(-50%)}.landing-nav{z-index:2;justify-content:space-between;align-items:center;padding:20px clamp(16px,5vw,60px);display:flex;position:relative}.brand{font-size:1.1rem;font-weight:800}.nav-cta{color:#fff;background:#ffffff14;border:1px solid #ffffff2e;border-radius:999px;padding:8px 18px;font-size:.9rem;font-weight:700;text-decoration:none}.nav-link{color:#ffffffbf;padding:8px 6px;font-size:.9rem;font-weight:600;text-decoration:none}.nav-link:hover{color:#fff}.hero{z-index:2;text-align:center;max-width:760px;margin:0 auto;padding:50px 20px 30px;position:relative}.hero-badge{color:#e7d4ff;background:#c084fc2e;border:1px solid #c084fc66;border-radius:999px;margin-bottom:22px;padding:6px 16px;font-size:.82rem;font-weight:700;display:inline-block}.hero-title{background:linear-gradient(120deg,#fff,#ffc7ee 60%,#c9b3ff);color:#0000;-webkit-background-clip:text;background-clip:text;margin-bottom:18px;font-size:clamp(2rem,6vw,3.4rem);font-weight:900;line-height:1.1}.hero-sub{color:#c3b6df;max-width:620px;margin:0 auto 30px;font-size:clamp(.98rem,2.4vw,1.15rem);line-height:1.7}.hero-actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-bottom:16px;display:flex}.btn-primary{color:#fff;background:linear-gradient(135deg,#ff6bd6,#c084fc);border-radius:14px;padding:14px 28px;font-size:1.02rem;font-weight:800;text-decoration:none;box-shadow:0 12px 30px #c03cc866}.btn-ghost{color:#e7dcff;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:14px;padding:14px 28px;font-size:1.02rem;font-weight:700;text-decoration:none}.hero-price{color:#9c8fc0;font-size:.9rem;font-weight:600}.feature-grid{z-index:2;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;max-width:900px;margin:40px auto;padding:0 20px;display:grid;position:relative}.feature-card{text-align:center;background:#ffffff0a;border:1px solid #ffffff14;border-radius:16px;padding:22px}.feature-icon{margin-bottom:10px;font-size:2rem;display:block}.feature-card h3{margin-bottom:6px;font-size:1.05rem;font-weight:800}.feature-card p{color:#b1a3d4;font-size:.9rem;line-height:1.5}.landing-foot{z-index:2;text-align:center;margin-top:30px;position:relative}.landing-legal{justify-content:center;gap:18px;margin-top:22px;display:flex}.landing-legal a{color:#ffffff80;font-size:.82rem;font-weight:600;text-decoration:none}.landing{scroll-behavior:smooth;height:100dvh;overflow:hidden auto}.landing-nav-links{align-items:center;gap:18px;display:inline-flex}.landing-nav-links .nav-link{display:none}@media (min-width:760px){.landing-nav-links .nav-link{display:inline}}.hero-trust{color:#9c8fc0;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin-top:22px;font-size:.82rem;font-weight:600;display:flex}.section{z-index:2;text-align:center;max-width:1000px;margin:0 auto;padding:clamp(40px,7vw,80px) 20px 0;position:relative}.section-title{background:linear-gradient(120deg,#fff,#ffc7ee 70%,#c9b3ff);color:#0000;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:900}.section-sub{color:#b1a3d4;max-width:560px;margin:0 auto 32px;font-size:1rem;line-height:1.6}.steps{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;display:grid}.step-card{text-align:left;background:#ffffff0a;border:1px solid #ffffff14;border-radius:18px;padding:30px 22px 24px;position:relative}.step-num{color:#fff;background:linear-gradient(135deg,#ff6bd6,#c084fc);border-radius:50%;place-items:center;width:36px;height:36px;font-weight:900;display:grid;position:absolute;top:-16px;left:22px;box-shadow:0 8px 20px #c03cc873}.step-icon{margin:6px 0 12px;font-size:1.8rem;display:block}.step-card h3{margin-bottom:8px;font-size:1.15rem;font-weight:800}.step-card p{color:#b1a3d4;font-size:.92rem;line-height:1.6}.pricing-card{text-align:center;background:linear-gradient(160deg,#ff6bd61a,#c084fc0f);border:1px solid #ff6bd64d;border-radius:24px;max-width:440px;margin:0 auto;padding:32px 28px;box-shadow:0 20px 60px #c03cc82e}.pricing-price{justify-content:center;align-items:baseline;gap:10px;display:flex}.pricing-amount{color:#fff;font-size:3.2rem;font-weight:900;line-height:1}.pricing-per{color:#9c8fc0;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:700}.pricing-tag{color:#c3b6df;margin:10px 0 20px;font-size:.95rem}.pricing-list{text-align:left;gap:10px;margin:0 0 24px;padding:0;list-style:none;display:grid}.pricing-list li{color:#e7dcff;font-size:.92rem}.pricing-cta{display:inline-block}.pricing-note{color:#9c8fc0;margin-top:14px;font-size:.8rem}.quotes{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.quote-card{text-align:left;background:#ffffff0a;border:1px solid #ffffff14;border-radius:18px;margin:0;padding:24px}.quote-stars{color:#ffd166;letter-spacing:2px;margin-bottom:12px}.quote-card blockquote{color:#efe9ff;margin:0 0 14px;font-size:1rem;line-height:1.6}.quote-card figcaption{color:#9c8fc0;font-size:.85rem}.quote-card figcaption strong{color:#e7dcff}.faq{text-align:left;gap:12px;max-width:720px;margin:0 auto;display:grid}.faq-item{background:#ffffff0a;border:1px solid #ffffff14;border-radius:14px;padding:0 18px}.faq-item summary{cursor:pointer;color:#fff;justify-content:space-between;align-items:center;gap:14px;padding:18px 0;font-size:.98rem;font-weight:700;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-chev{color:#c084fc;flex-shrink:0;font-size:1.3rem;transition:transform .2s}.faq-item[open] .faq-chev{transform:rotate(45deg)}.faq-item p{color:#b1a3d4;margin:0;padding:0 0 18px;font-size:.92rem;line-height:1.65}.cta-band{z-index:2;text-align:center;background:linear-gradient(135deg,#ff6bd629,#c084fc1f);border:1px solid #ff6bd64d;border-radius:24px;max-width:900px;margin:clamp(50px,8vw,90px) auto 0;padding:clamp(36px,6vw,56px) 24px;position:relative}.cta-band h2{color:#fff;margin-bottom:10px;font-size:clamp(1.5rem,4vw,2.2rem);font-weight:900}.cta-band p{color:#c3b6df;margin-bottom:24px}.site-footer{z-index:2;border-top:1px solid #ffffff14;margin-top:clamp(50px,8vw,90px);padding:48px 20px 28px;position:relative}.site-footer-inner{grid-template-columns:2fr 1fr 1fr 1.4fr;gap:32px;max-width:1000px;margin:0 auto;display:grid}@media (max-width:700px){.site-footer-inner{grid-template-columns:1fr 1fr;gap:28px}}.site-footer-brand .brand{margin-bottom:10px;display:block}.site-footer-brand p{color:#9c8fc0;max-width:280px;font-size:.88rem;line-height:1.6}.site-social{gap:12px;margin-top:16px;display:flex}.site-social a{color:#c3b6df;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:color .16s,background .16s,border-color .16s,transform .16s;display:inline-flex}.site-social a:hover{color:#fff;background:#ff3d8a2e;border-color:#ff3d8a80;transform:translateY(-2px)}.site-footer-col{flex-direction:column;gap:10px;display:flex}.site-footer-col h4{text-transform:uppercase;letter-spacing:.1em;color:#8a7cb0;margin-bottom:4px;font-size:.78rem}.site-footer-col a{color:#c3b6df;font-size:.9rem;text-decoration:none}.site-footer-col a:hover{color:#fff}.site-footer-bottom{text-align:center;color:#756a96;border-top:1px solid #ffffff0f;max-width:1000px;margin:36px auto 0;padding-top:22px;font-size:.82rem}.landing-legal a:hover{color:#ffffffd9}.state-screen{color:#f3eefb;background:radial-gradient(circle at 50% 30%,#1c1030,#0b0712);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.state-msg{color:#d9c9ff;font-size:1.1rem;font-weight:600}.state-card{text-align:center;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:20px;max-width:360px;padding:34px}.state-card h1{margin-bottom:10px;font-size:1.5rem;font-weight:800}.state-card p{color:#b1a3d4;margin-bottom:18px;line-height:1.6}.state-link{color:#ff9be0;font-weight:700;text-decoration:none}html,body{height:100dvh}.page{-webkit-overflow-scrolling:touch;justify-content:safe center;padding:clamp(12px,3vh,28px) clamp(12px,3vw,24px);overflow:hidden auto}.page::-webkit-scrollbar{width:0;height:0}.page{scrollbar-width:none}@media (max-width:480px){.subtitle{margin-bottom:24px;padding:0 12px;font-size:.9rem}.curtain-btn{padding:12px 32px;font-size:1.1rem}.avatar{width:90px;height:90px;margin-bottom:20px;font-size:3rem}.age-tracker{gap:20px;margin:18px 0 30px}.memory-carousel{width:min(78vw,280px);height:min(94vw,340px)}.memory-caption{padding:0 14px;font-size:.92rem}.puzzle-grid,.puzzle-full-reveal{width:min(86vw,300px);height:min(86vw,300px)}.puzzle-meta{flex-wrap:wrap;justify-content:center;gap:10px}.puzzle-stat{padding:10px 16px}.puzzle-stat-num{font-size:1.7rem}.puzzle-preview{width:64px;height:64px}.gift-page-subtitle{margin-bottom:36px}.balloon-field{gap:14px 10px;max-width:92vw}.balloon-slot,.balloon{width:56px;height:70px}.wish-bubble{max-width:86vw;font-size:.95rem}.scratch-stage{width:min(92vw,320px)}.scratch-progress{width:min(70vw,220px)}.wax-envelope{width:min(86vw,300px)}.letter-page{padding:22px 12px 18px}.letter-card{border-radius:20px;padding:22px 18px}.letter-greeting{margin-bottom:14px;font-size:1.08rem}.letter-body{font-size:.92rem;line-height:1.75}.letter-sign{font-size:1rem}.cake-top{width:132px;height:38px}.cake-base{width:172px;height:60px}.cake-plate{width:196px;height:12px}.lock-time{font-size:3.2rem}.lock-key{height:56px;font-size:1.35rem}.lock-keypad{gap:12px}.pin-dots{gap:14px}.music-btn{width:42px;height:42px;bottom:14px;right:14px}}@media (max-width:360px){.age-tracker{gap:12px 18px;max-width:300px}.age-num{font-size:clamp(1.5rem,7vw,2.1rem)}.memory-carousel{width:220px;height:280px}.balloon-slot,.balloon{width:50px;height:64px}.lock-key{height:50px;font-size:1.2rem}.curtain-btn{padding:11px 26px;font-size:1rem}.letter-card{padding:18px 14px}}@media (max-width:300px){.avatar{width:72px;height:72px;margin-bottom:14px;font-size:2.2rem}.age-tracker{gap:10px 14px;max-width:260px;margin:12px auto 18px}.age-num{font-size:clamp(1.3rem,8vw,1.9rem)}.age-label{letter-spacing:1.4px;font-size:.62rem}.subtitle{margin-bottom:18px;padding:0 8px;font-size:.82rem}.memory-carousel{width:min(86vw,200px);height:min(118vw,260px)}.memory-caption{font-size:.84rem}.puzzle-grid,.puzzle-full-reveal{width:min(86vw,240px);height:min(86vw,240px)}.puzzle-meta{gap:8px}.puzzle-stat{padding:8px 12px}.puzzle-stat-num{font-size:1.4rem}.puzzle-preview{width:54px;height:54px}.balloon-field{gap:10px 8px}.balloon-slot,.balloon{width:44px;height:56px}.wish-bubble{max-width:86vw;padding:12px 14px;font-size:.86rem}.scratch-stage{width:min(92vw,240px)}.scratch-progress{width:min(80vw,200px)}.wax-envelope{width:min(86vw,240px)}.letter-card{padding:16px 12px}.letter-greeting{font-size:1rem}.letter-body{font-size:.88rem;line-height:1.7}.gift-container{width:150px}.gift-lid{width:188px;height:44px;margin-left:-5px}.gift-box-body{width:176px;height:132px}.gift-bow{width:102px;height:48px;top:-28px}.cake-top{width:110px;height:32px}.cake-base{width:144px;height:50px}.cake-plate{width:168px;height:10px}.lock-time{font-size:2.6rem}.lock-key{height:44px;font-size:1.1rem}.lock-keypad{gap:10px}.pin-dots{gap:12px}.pin-dot{width:12px;height:12px}.curtain-btn{padding:10px 22px;font-size:.95rem}.music-btn{width:36px;height:36px;font-size:.95rem;bottom:10px;right:10px}}@media (max-height:720px){.avatar{width:80px;height:80px;margin-bottom:14px;font-size:2.6rem}.age-tracker{margin:14px 0 22px}.gift-page-subtitle{margin-bottom:28px}.swipe-hint{margin-bottom:20px}}@media (max-height:600px){.avatar{width:64px;height:64px;margin-bottom:10px;font-size:2.1rem}.age-tracker{margin:8px auto 16px}.age-num{font-size:clamp(1.5rem,5vh,2.2rem)}.memory-carousel{width:min(46vh,260px);height:min(54vh,300px)}.puzzle-grid,.puzzle-full-reveal{width:min(58vh,280px);height:min(58vh,280px)}.cake-top{width:116px;height:32px}.cake-base{width:152px;height:50px}.cake-plate{width:172px;height:10px}.gift-page-subtitle{margin-bottom:20px}.letter-page{padding-top:18px}}@media (min-width:1400px){.memory-carousel{width:320px;height:380px}.puzzle-grid,.puzzle-full-reveal{width:340px;height:340px}.letter-card{max-width:580px}}.preview-watermark{z-index:9000;pointer-events:none;opacity:.1;flex-wrap:wrap;place-content:center;gap:28px 40px;display:flex;position:fixed;inset:0;overflow:hidden;transform:rotate(-24deg)scale(1.4)}.preview-watermark span{letter-spacing:.18em;color:#fff;white-space:nowrap;text-transform:uppercase;font-family:Nunito,sans-serif;font-size:1.1rem;font-weight:900}.preview-banner{z-index:9001;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#14091aeb;border:1px solid #ff3d8a66;border-radius:999px;align-items:center;gap:14px;max-width:calc(100vw - 24px);padding:10px 14px 10px 18px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080}.preview-banner span{color:#ffd9ec;white-space:nowrap;text-overflow:ellipsis;font-family:Nunito,sans-serif;font-size:.82rem;font-weight:600;overflow:hidden}.preview-banner a{color:#fff;background:linear-gradient(135deg,#ff3d9a,#e0006a);border-radius:999px;flex-shrink:0;padding:8px 18px;font-size:.82rem;font-weight:800;text-decoration:none;box-shadow:0 6px 18px #e0006a80}@media (max-width:520px){.preview-banner span{white-space:normal;font-size:.74rem}}.wa-fab{z-index:9500;color:#062e16;white-space:nowrap;background:#25d366;border-radius:999px;align-items:center;gap:0;height:56px;padding:0 16px;text-decoration:none;transition:transform .18s,box-shadow .18s,gap .25s,padding .25s;display:inline-flex;position:fixed;bottom:20px;right:20px;overflow:hidden;box-shadow:0 10px 28px #25d36673,0 2px 6px #0000004d}.wa-fab:hover{gap:10px;transform:translateY(-2px);box-shadow:0 16px 36px #25d36699}.wa-fab svg{flex-shrink:0}.wa-fab-label{opacity:0;max-width:0;font-family:Nunito,system-ui,sans-serif;font-size:.92rem;font-weight:800;transition:max-width .28s,opacity .2s}.wa-fab:hover .wa-fab-label{opacity:1;max-width:160px}@media (max-width:640px){.wa-fab{height:52px;bottom:14px;right:14px}.wa-fab:hover{gap:0}.wa-fab:hover .wa-fab-label{opacity:0;max-width:0}.wa-fab-label{display:none}}.auth-box{text-align:left;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:16px;padding:20px}.auth-box h3{color:#fff;margin:0 0 6px;font-family:Nunito,system-ui,sans-serif;font-size:1.1rem;font-weight:800}.auth-box>p{color:#f5edf29e;margin:0 0 14px;font-size:.88rem;line-height:1.5}.auth-row{gap:8px;display:flex}.auth-row input{color:#fff;background:#ffffff0d;border:1px solid #ffffff24;border-radius:12px;outline:none;flex:1;min-width:0;padding:13px 14px;font-size:.92rem}.auth-row input::placeholder{color:#f5edf266}.auth-row input:focus{border-color:#ff3d8a;box-shadow:0 0 0 4px #ff3d8a26}.auth-row button{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#ff3d9a,#e0006a);border:0;border-radius:12px;padding:13px 20px;font-size:.9rem;font-weight:700}.auth-row button:disabled{opacity:.6;cursor:progress}.auth-err{color:#ff8a8a;margin-top:10px;font-size:.8rem}.google-btn{color:#1f1f1f;cursor:pointer;background:#fff;border:1px solid #ffffff2e;border-radius:12px;justify-content:center;align-items:center;gap:12px;width:100%;padding:14px 18px;font-family:Nunito,system-ui,sans-serif;font-size:.95rem;font-weight:800;transition:transform .15s,box-shadow .18s;display:flex;box-shadow:0 6px 20px #00000040}.google-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 30px #00000059}.google-btn:disabled{opacity:.7;cursor:progress}.google-btn svg{flex-shrink:0}.auth-box-sent{text-align:center}.auth-box-emoji{margin-bottom:8px;font-size:2.4rem}.auth-box-sent h3{margin-bottom:8px}.auth-resend{color:#ffa3c8;cursor:pointer;background:0 0;border:0;margin-top:12px;font-size:.84rem;font-weight:600;text-decoration:underline}.acct-chip{color:#f5edf29e;align-items:center;gap:10px;font-size:.82rem;display:inline-flex}.acct-chip strong{color:#fff;font-weight:700}.acct-signout{color:#f5edf2bf;cursor:pointer;background:0 0;border:1px solid #ffffff29;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:600}.acct-signout:hover{color:#fff;background:#ffffff14}.brand-logo{object-fit:contain;width:auto;height:72px;display:block}.site-footer-brand .brand-logo{height:84px;margin-bottom:10px}.theme-toggle{cursor:pointer;background:#ffffff0f;border:1px solid #ffffff29;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1rem;line-height:1;transition:background .16s,border-color .16s;display:inline-flex}.theme-toggle:hover{background:#ffffff1f}[data-theme=light] .theme-toggle{background:#0000000a;border-color:#0000001f}[data-theme=light] .theme-toggle:hover{background:#00000014}[data-theme=light] .landing{color:#2a1730;background:radial-gradient(circle at 50% -10%,#ffe3f5 0%,#fff4fb 45%,#fff 100%)}[data-theme=light] .landing-glow{background:radial-gradient(circle,#ff6bd624,#0000 65%)}[data-theme=light] .brand{color:#2a1730}[data-theme=light] .nav-link{color:#2a1730b3}[data-theme=light] .nav-link:hover{color:#2a1730}[data-theme=light] .nav-cta{color:#fff;background:#2a1730;border-color:#2a1730}[data-theme=light] .hero-badge{color:#7b3fb0;background:#c084fc24;border-color:#c084fc66}[data-theme=light] .hero-title{background:linear-gradient(120deg,#2a1730,#c0248a 60%,#7b3fb0);color:#0000;-webkit-background-clip:text;background-clip:text}[data-theme=light] .section-title{background:linear-gradient(120deg,#2a1730,#c0248a 70%,#7b3fb0);color:#0000;-webkit-background-clip:text;background-clip:text}[data-theme=light] .hero-sub,[data-theme=light] .section-sub,[data-theme=light] .feature-card p,[data-theme=light] .step-card p,[data-theme=light] .faq-item p,[data-theme=light] .pricing-tag,[data-theme=light] .pricing-note,[data-theme=light] .pricing-per,[data-theme=light] .hero-trust,[data-theme=light] .quote-card figcaption,[data-theme=light] .cta-band p{color:#2a1730a8}[data-theme=light] .feature-card,[data-theme=light] .step-card,[data-theme=light] .quote-card,[data-theme=light] .faq-item{background:#fff;border-color:#00000014;box-shadow:0 4px 16px #78286e0f}[data-theme=light] .feature-card h3,[data-theme=light] .step-card h3,[data-theme=light] .faq-item summary,[data-theme=light] .cta-band h2,[data-theme=light] .pricing-amount{color:#2a1730}[data-theme=light] .pricing-list li,[data-theme=light] .quote-card blockquote{color:#3a2540}[data-theme=light] .quote-card figcaption strong{color:#2a1730}[data-theme=light] .pricing-card{background:linear-gradient(160deg,#ff6bd614,#c084fc0d);border-color:#ff6bd64d;box-shadow:0 20px 60px #c03cc81a}[data-theme=light] .cta-band{background:linear-gradient(135deg,#ff6bd61f,#c084fc1a);border-color:#ff6bd64d}[data-theme=light] .faq-chev{color:#c0248a}[data-theme=light] .btn-ghost{color:#2a1730;background:#00000008;border-color:#0003}[data-theme=light] .site-footer{border-top-color:#00000014}[data-theme=light] .site-footer-brand p,[data-theme=light] .site-footer-col a{color:#2a1730a8}[data-theme=light] .site-footer-col h4{color:#2a173080}[data-theme=light] .site-footer-col a:hover{color:#2a1730}[data-theme=light] .site-footer-bottom{color:#2a173080;border-top-color:#00000014}[data-theme=light] .site-social a{color:#7b3fb0;background:#fff;border-color:#0000001f}[data-theme=light] .dash{--bg0:#fff4fb;--bg1:#fff;--text:#2a1730;--dim:#2a17309e;--mute:#2a17306b;--border:#0000001a;background:radial-gradient(1000px 500px at 15% -10%,#e0006a14,#0000 60%),linear-gradient(#fff,#fff4fb)}[data-theme=light] .dash-stat,[data-theme=light] .dash-card,[data-theme=light] .dash-empty,[data-theme=light] .dash-profile-btn,[data-theme=light] .dash-search,[data-theme=light] .dash-filter,[data-theme=light] .dash-act,[data-theme=light] .dash-menu{background:#fff;box-shadow:0 2px 12px #78286e0f}[data-theme=light] .dash-stat-num,[data-theme=light] .dash-card-name,[data-theme=light] .dash-menu-name{color:#2a1730}[data-theme=light] .dash-act:hover,[data-theme=light] .dash-profile-btn:hover,[data-theme=light] .dash-menu-item:hover{background:#0000000d}[data-theme=light] .cr{--bg0:#fff4fb;--bg1:#fff;--text:#2a1730;--dim:#2a17309e;--mute:#2a17306b;--border:#0000001a;background:radial-gradient(1000px 500px at 50% -10%,#e0006a1a,#0000 60%),linear-gradient(#fff,#fff4fb)}[data-theme=light] .cr-card,[data-theme=light] .cr-top-link,[data-theme=light] .cr-qr-dl,[data-theme=light] .cr-linkbox input,[data-theme=light] .cr-share,[data-theme=light] .cr-btn{background:#fff;box-shadow:0 2px 12px #78286e0d}[data-theme=light] .cr-title .em,[data-theme=light] .cr-pin-key{color:#2a1730}[data-theme=light] .cr-pin-key{background:#0000000f}[data-theme=light] .bld{--bld-bg-0:#fff4fb;--bld-bg-1:#fff;--bld-surface:#fff;--bld-surface-hi:#fbeef6;--bld-border:#0000001a;--bld-border-hi:#0000002e;--bld-text:#2a1730;--bld-text-dim:#2a17309e;--bld-text-mute:#2a17306b;background:radial-gradient(1200px 600px at 20% -10%,#ff3d8a1a,#0000 60%),linear-gradient(#fff,#fff4fb)}[data-theme=light] .bld-footer{background:linear-gradient(#0000,#fff4fbeb 35%)}[data-theme=light] .bld-modal-bg,[data-theme=light] .bld-checkout-bg{background:#5a284b59}[data-theme=light] .bld-modal{background:linear-gradient(160deg,#fff,#fff4fb);border-color:#ff3d8a40;box-shadow:0 30px 80px #78286e33}[data-theme=light] .bld-checkout{background:linear-gradient(160deg,#fff,#fff4fb);border-color:#ff3d8a38;box-shadow:0 40px 100px #78286e2e}[data-theme=light] .bld-checkout-close{background:#0000000d}[data-theme=light] .bld-review-bar{background:linear-gradient(#fffffff2,#ffffff80 70%,#0000)}[data-theme=light] .bld-review-back{background:#0000000a;border-color:#00000024}[data-theme=light] .bld-field input[type=date]::-webkit-calendar-picker-indicator{filter:opacity(.6)}[data-theme=light] .legal{color:#2a1730;background:linear-gradient(#fff,#fff4fb)}[data-theme=light] .legal h1,[data-theme=light] .legal h2{color:#1a0f20}[data-theme=light] .legal p,[data-theme=light] .legal li{color:#2a1730cc}[data-theme=light] .legal-back{color:#2a173099}[data-theme=light] .legal-back:hover{color:#2a1730}@media (max-width:560px){.brand-logo{height:52px}.landing-nav{flex-wrap:wrap;gap:10px 12px;padding:16px 18px}.landing-nav-links{gap:12px}}
