@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Gochi+Hand&family=Lora:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap";.birthday-calendar{position:relative;display:inline-flex;flex-direction:column;align-items:center;width:64px;border:1px solid #d6bfdf;border-radius:12px;background:#fffafc;box-shadow:0 5px 13px #9872ad12;transform:rotate(-5deg);margin:4px 0 0;color:#89649e}.birthday-calendar:before,.birthday-calendar:after{content:"";position:absolute;top:-5px;width:4px;height:11px;background:#a386b3;border-radius:3px;z-index:1}.birthday-calendar:before{left:15px}.birthday-calendar:after{right:15px}.calendar-month{width:100%;padding:9px 0 5px;font-size:10px;letter-spacing:.17em;font-weight:700;line-height:1;border-radius:11px 11px 0 0;background:#e6d6ee}.calendar-day{font-family:Lora,Georgia,serif;font-size:32px;line-height:1.2;padding:3px 0 9px}.calendar-heart{position:absolute;bottom:5px;right:7px;font-size:12px;color:#c18fa8}.personal-greeting{display:flex;align-items:center;justify-content:center;gap:9px;margin:25px 0 16px}.welcome .personal-greeting .hello{font-size:clamp(25px,3vw,32px);font-weight:500;letter-spacing:-.6px;line-height:1.35;margin:0;color:#7b5c8b}.greeting-paw{position:relative;display:inline-grid;place-items:center;width:48px;height:48px;flex-shrink:0;padding:8px;border:1px solid #e2cde9;border-radius:50%;background:#eee1f477;color:#aa85bb;overflow:visible}.greeting-paw svg{width:29px;height:29px;transform:rotate(12deg);transition:transform .2s}.greeting-paw:active svg{transform:rotate(-10deg) scale(.88)}.greeting-hearts{position:absolute;inset:0;pointer-events:none}.greeting-hearts>span{position:absolute;left:50%;top:7px;font-size:24px;line-height:1;color:#c18baa;opacity:0;animation:greetingHeart 1.15s ease-out both;animation-delay:var(--heart-delay);text-shadow:0 2px 9px #fff9}.greeting-hearts>span:nth-child(2n){color:#a782bd;font-size:28px}@keyframes greetingHeart{0%{opacity:0;transform:translate(-50%) scale(.4)}15%{opacity:1}70%{opacity:.9}to{opacity:0;transform:translate(calc(-50% + var(--drift)),-100px) rotate(var(--heart-turn)) scale(1.1)}}@media(max-width:600px){.personal-greeting{margin-top:22px;margin-bottom:15px}.welcome .personal-greeting .hello{font-size:27px}.birthday-calendar{width:60px}.calendar-day{font-size:30px}}@media(prefers-reduced-motion:reduce){.greeting-hearts>span{animation:none;opacity:1;transform:translate(calc(-50% + var(--drift)),-50px)}.greeting-paw svg{transition:none}}:root{font-family:DM Sans,sans-serif;color:#675274;background:#f6eff9;font-synthesis:none;font-weight:400;--purple:#8863a7;--ink:#5a3f6c;--muted:#96819d}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,a,input{touch-action:manipulation}button{font:inherit;cursor:pointer}button:disabled{cursor:default}button,a,input{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #a371b9}button{transition:transform .2s,background .2s}button:hover:not(:disabled){transform:translateY(-2px)}a{color:inherit}main:focus{outline:none}.storybook{min-height:100svh;position:relative;overflow:hidden;background:radial-gradient(ellipse at 52% 43%,#fffaf7 0,transparent 56%),radial-gradient(ellipse at 5% 75%,#f6e1e9 0,transparent 50%),#f4ecf8}header,footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;max-width:1380px;margin:auto;padding:30px 5.2%}.brand{text-decoration:none;font-size:13px;letter-spacing:.02em}.brand span{font-size:25px;margin-right:10px;vertical-align:middle;color:#9978b1}.music-toggle{border:1px solid #dbcde3;border-radius:30px;padding:10px 16px;background:#fff8;font-size:12px;color:#867291;display:flex;align-items:center;gap:10px}.music-toggle span{font-size:18px}.music-toggle.active{background:#eee0f7}main{position:relative;z-index:1;min-height:calc(100svh - 184px)}.welcome{text-align:center;padding:25px 20px 28px;animation:fadeIn 1s both}.date-pill{display:inline-flex;gap:17px;align-items:center;color:#9c7fb3;font-size:10px;letter-spacing:.23em;border:1px solid #e3d5e9;border-radius:30px;padding:9px 18px}.date-pill span{font-size:12px}.hello{font-size:15px;margin:24px 0 14px}h1,h2{font-family:Lora,Georgia,serif;font-weight:400;color:var(--ink)}h1{font-size:clamp(42px,5.2vw,70px);line-height:1.13;letter-spacing:-2px;margin:12px 0 20px}h1 em{font-weight:400;color:#9978b3}h1 .title-star{font-size:42px;position:absolute;margin-left:13px;color:#b79cc7}.intro,.content-page>p{font-size:14px;color:#96819d;line-height:1.9}.intro{margin:0}.hero-art{position:relative;width:330px;height:260px;margin:10px auto 16px}.hero-halo{position:absolute;background:#ece1f0;border:1px solid #e5d6eb;width:216px;height:216px;border-radius:50%;left:57px;top:13px;box-shadow:0 0 0 14px #eee4f54a}.hero-art .photo{position:absolute;left:65px;top:10px;width:200px;height:215px}.hero-art .photo:has(img:not([hidden])){border-radius:100px;overflow:hidden;height:210px;border:7px solid #fff9f4}.photo img{width:100%;height:100%;object-fit:contain;background:#f9f0f6}.photo>div{height:100%}.cat{display:block;width:100%;height:100%;overflow:visible}.orbit-heart{position:absolute;color:#bd8ca9;font-size:36px}.heart-one{left:31px;top:56px;transform:rotate(-22deg)}.heart-two{right:22px;top:110px;font-size:24px;transform:rotate(20deg)}.tiny-star{position:absolute;color:#b9a0cc;font-size:26px}.star-one{right:35px;top:29px}.star-two{left:38px;top:155px}.handwritten{font-family:Gochi Hand,cursive;color:#a48bae;font-size:19px}.hero-art .handwritten{position:absolute;bottom:2px;left:49px;transform:rotate(-4deg)}.art-swoop{position:absolute;width:48px;height:50px;right:12px;bottom:13px;color:#ae92be}.primary{background:#9070ad;color:#fff;border:1px solid #9070ad;border-radius:50px;padding:16px 27px;box-shadow:0 7px 17px #8f6ba52a;font-size:13px;line-height:1.5}.primary span{margin-left:18px;font-size:19px}.primary:hover{background:#7d5b99}.small-note{font-size:10px;letter-spacing:.025em;color:#ab97b2;margin:16px 0 0}footer{font-size:9px;letter-spacing:.14em;color:#ae98b6;padding-top:23px;padding-bottom:25px;gap:20px}footer b{font-size:17px;padding-left:12px}.chapter-dots{display:flex;gap:7px}.chapter-dots i{width:5px;height:5px;background:#d9c8e1;border-radius:50%}.chapter-dots .selected{width:18px;border-radius:10px;background:#ab8abd}.ambient{position:absolute;inset:0;pointer-events:none;overflow:hidden}.ambient span{position:absolute;top:-40px;color:#c8a8c8;opacity:.28;font-size:calc(10px + var(--i)*.8px);animation:petals 22s linear infinite}.content-page{max-width:950px;margin:auto;text-align:center;padding:35px 24px 60px;animation:fadeIn .7s both}.content-page h1{font-size:clamp(36px,4.5vw,57px)}.content-page>.eyebrow,.eyebrow{font-size:9px;color:#a488b3;letter-spacing:.2em;font-weight:600;margin-bottom:20px}.cake-scene{height:330px;max-width:650px;margin:25px auto 0;position:relative}.scene-floor{position:absolute;width:100%;height:90px;background:#e8dced99;border-radius:50%;bottom:15px}.cake-delivery{position:absolute;left:28%;width:44%;bottom:35px;animation:deliver 3s ease both}.cake{width:100%;overflow:visible}.party-cat{position:absolute;width:27%;height:180px;bottom:40px}.cat-a{left:0;animation:enterLeft 2s both}.cat-b{right:0;animation:enterRight 2.6s both}.main-cat{position:absolute;bottom:0;left:38%;width:24%;height:160px;background:none;border:none;padding:0;animation:enterLeft 3s both}.main-cat span{display:block;font-family:Gochi Hand,cursive;font-size:16px;color:#9975ae;background:#fff7fc;border-radius:16px;padding:4px}.ready .party-cat .cat,.is-cut .party-cat .cat{animation:dance 1.1s ease-in-out infinite alternate}.waving .paw{transform-origin:60px 158px;animation:wave 2.7s ease-in-out infinite}.cake-status{min-height:100px;max-width:510px;margin:30px auto 15px}.cake-status p{font-size:14px;line-height:1.8}.cake-status h2{font-size:27px}.cake .knife{opacity:0}.cake.cut .knife{animation:knife 1s ease both}.cut .cake-left{transform:translate(-9px) rotate(-2deg);transform-origin:bottom;transition:transform 1s}.cut .cake-right{transform:translate(9px) rotate(2deg);transform-origin:bottom;transition:transform 1s}.cut .flame{opacity:0}.confetti{position:absolute;inset:0;pointer-events:none}.confetti i{position:absolute;width:6px;height:12px;top:30%;animation:confetti 1.8s ease-out both;animation-delay:calc(var(--i)*18ms)}.gift-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;max-width:790px;margin:37px auto}.gift-card{border:1px solid #dfcfe7;border-radius:18px;padding:24px 27px 30px;background:#ffffff70;box-shadow:0 12px 30px #a68ab20b}.gift-card.letter{background:#fff7f0a8}.gift-topline{display:flex;justify-content:space-between;color:#a48aaf;font-size:8px;letter-spacing:.12em;gap:12px}.gift-illustration{height:195px;position:relative;width:240px;max-width:100%;margin:20px auto}.gift-illustration>.cat{position:absolute;width:145px;height:160px;right:0;bottom:0}.gift-box{position:absolute;width:99px;height:90px;left:10px;bottom:0;background:linear-gradient(90deg,transparent 42%,#a98ab9 42% 57%,transparent 57%),#d9c5e8;border-radius:6px;border:2px solid #b89acb;transform:rotate(-6deg)}.gift-box:before{content:"୨୧";position:absolute;left:20px;top:-45px;font-size:59px;color:#ac89bd}.gift-box:after{content:"";position:absolute;left:-5px;right:-5px;top:0;height:16px;border-radius:3px;background:#c6acd9}.gift-box span{position:absolute;top:27px;left:33px;font-size:30px;color:#8c68a2}.letter .gift-box{background:linear-gradient(90deg,transparent 42%,#c98fa8 42% 57%,transparent 57%),#f1d9e1;border-color:#ddb2c3}.letter .gift-box:after{background:#e8c4d2}.letter .gift-box:before{color:#cf9cb3}.gift-card h2{font-size:24px;margin:17px 0 10px}.gift-card p{font-size:12px;color:#a08aaa;margin-bottom:25px}.secondary{border:1px solid #cab3d8;background:#fffbfd99;color:#8c6a9f;border-radius:50px;padding:12px 24px;font-size:12px;min-width:140px}.secondary span{margin-left:20px}.gift-note{margin-top:35px}.back{margin:20px 0 0 7%;background:none;border:0;font-size:12px;color:#9d80ad}.player-card{position:relative;max-width:460px;margin:30px auto;padding:30px 35px;border:1px solid #dfcfe7;border-radius:24px;background:#fff9;box-shadow:0 18px 50px #9d81ad16}.record{width:190px;height:190px;border-radius:50%;padding:12px;background:repeating-radial-gradient(#c4a8d6 0 1px,#d5c1e1 2px 5px);margin:auto}.record .photo{width:100%;height:100%;border-radius:50%;overflow:hidden;background:#f6ecf7;padding:8px}.record .photo:has(img){padding:0}.spinning{animation:sway 4s ease-in-out infinite}.music-notes{position:absolute;top:90px;right:12px;font-size:23px;writing-mode:vertical-rl;color:#c3a8d6;animation:float 3s ease-in-out infinite}.player-card h2{font-size:23px;line-height:1.4}.player-card p{font-size:12px;line-height:1.8;color:#a38aaa}.progress{margin:25px 0 20px}.progress input{width:100%;accent-color:#9e79b6;height:4px;cursor:pointer}.progress>div{display:flex;justify-content:space-between;font-size:10px;color:#a38aaa;margin-top:12px}.play{border:0;background:#9b7ab1;width:58px;height:58px;border-radius:50%;color:#fff;font-size:20px;padding-left:8px;box-shadow:0 5px 20px #aa8cb63a}.player-card .audio-status{font-size:11px;min-height:38px;margin:18px 0 0}blockquote{font-family:Lora,Georgia,serif;font-style:italic;font-size:16px;line-height:1.9;color:#9b80aa;max-width:490px;margin:35px auto}.letter-paper{text-align:left;position:relative;max-width:700px;margin:32px auto 0;padding:48px 55px;border:1px solid #e4d9d1;background:#fffaf1;box-shadow:0 15px 50px #ad91ad15;border-radius:5px;transform:rotate(-.3deg)}.letter-paper h2{font-family:Gochi Hand,cursive;font-size:30px}.letter-paper>p{font-family:Lora,Georgia,serif;font-size:15px;line-height:2;color:#806b80;margin:24px 0;white-space:pre-wrap}.letter-decoration{text-align:right;color:#b79ac1;font-size:25px}.letter-cat{width:90px;margin:25px 0}.hug{text-align:center}.hug.show{animation:fadeIn .5s}.hug .cat{width:150px;margin:25px auto 5px;animation:float 2s ease-in-out infinite}.hug p{font-family:Gochi Hand,cursive;color:#9f7cb1}.memories{margin-top:65px}.memories>div{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}.memories figure{background:#fff7f5;padding:12px;width:210px;transform:rotate(-3deg);margin:10px}.memories figure:nth-child(2n){transform:rotate(3deg)}.memories .photo{height:200px}.memories figcaption{font-family:Gochi Hand,cursive;font-size:17px;margin-top:12px}dialog{padding:0;border:1px solid #e2d4e9;border-radius:24px;background:#fcf7fd;color:#8b7597;max-width:420px;width:calc(100% - 36px);box-shadow:0 25px 100px #60417330}dialog::backdrop{background:#4d355d66;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-inner{text-align:center;padding:30px}.modal-inner>.cat{width:100px;height:110px;margin:auto}.close{position:absolute;right:14px;top:10px;border:none;background:none;color:#9d85ab;font-size:27px;padding:5px 10px}.modal-inner h2{font-size:27px}.modal-inner>p:not(.eyebrow){font-size:13px;line-height:1.8}.modal-inner input{margin-top:10px;width:100%;padding:14px;background:#fffdfd;border:1px solid #dfcfe7;border-radius:12px;color:#795b8b;font:inherit;font-size:13px}.form-status{min-height:31px;font-size:11px;color:#ad7095;margin:10px 0}.modal-inner .primary{width:100%}.shake{animation:shake .4s}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}[hidden]{display:none!important}@keyframes wave{0%,50%,to{transform:rotate(0)}15%,35%{transform:rotate(14deg)}25%{transform:rotate(-8deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes petals{0%{transform:translateY(-20px) rotate(0)}to{transform:translate(45px,120svh) rotate(150deg)}}@keyframes enterLeft{0%{transform:translate(-250px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes enterRight{0%{transform:translate(250px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes deliver{0%{transform:translate(-270px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes dance{0%{transform:translateY(0) rotate(-4deg)}to{transform:translateY(-12px) rotate(4deg)}}@keyframes float{50%{transform:translateY(-9px)}}@keyframes sway{50%{transform:rotate(8deg)}}@keyframes knife{0%{opacity:0;transform:translateY(-40px)}30%{opacity:1}80%{opacity:1;transform:translateY(35px)}to{opacity:0;transform:translateY(35px)}}@keyframes confetti{0%{transform:translateY(-40px) rotate(0);opacity:1}to{transform:translateY(230px) rotate(330deg);opacity:0}}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@media(min-width:1400px){.welcome{padding-top:40px}.hero-art{height:280px;margin-top:20px;margin-bottom:22px}.hero-art .photo{top:25px}.hero-halo{top:28px}}@media(max-width:600px){header{padding:20px 22px}.brand{font-size:10px}.brand span{margin-right:6px;font-size:21px}.music-toggle{font-size:10px;padding:7px 11px;gap:7px}.welcome{padding-top:28px}h1{font-size:46px;letter-spacing:-1.7px}.hello{margin-top:24px;font-size:14px}.intro{font-size:12px}.hero-art{margin-top:15px;height:258px;width:300px}.hero-art .photo{left:50px}.hero-halo{left:42px}.hero-art .handwritten{left:30px}.primary{font-size:12px;padding:15px 21px}.primary span{margin-left:9px}.small-note{font-size:9px}footer{padding:22px;flex-wrap:wrap;gap:13px;font-size:7px}footer>span:last-child{display:none}.chapter-dots{margin-left:auto}.content-page{padding:27px 19px 45px}.content-page h1{font-size:40px}.content-page>p{font-size:12px}.content-page>.eyebrow{font-size:8px;letter-spacing:.16em}.cake-scene{height:255px;margin-top:5px}.party-cat{height:130px;bottom:40px}.main-cat{height:125px;width:26%;left:37%}.cake-delivery{bottom:44px;left:24%;width:52%}.scene-floor{height:60px}.cake-status{margin-top:24px}.cake-status h2{font-size:23px}.cake-status p{font-size:12px}.gift-grid{grid-template-columns:1fr;gap:20px;max-width:350px;margin-top:28px}.gift-card{padding:23px}.gift-illustration{height:175px;margin-top:10px}.gift-card h2{font-size:24px}.gift-note{font-size:17px}.player-card{padding:28px 23px}.letter-paper{padding:28px 25px;transform:none}.letter-paper>p{font-size:14px;line-height:1.9}.letter-paper h2{font-size:27px}.back{margin:16px 0 0 6%}blockquote{font-size:14px}.gift-topline{font-size:8px}}.cat-tail{transform-origin:145px 168px;animation:tailSwish 3.2s ease-in-out infinite}.cat-eyes{transform-origin:100px 90px;animation:catBlink 6s ease-in-out infinite}.peeking-cats{position:absolute;top:280px;left:0;right:0;pointer-events:none;z-index:0}.peek-cat{position:absolute;width:145px;text-align:center}.peek-cat .cat{height:155px}.peek-left{left:-47px;transform:rotate(30deg);animation:peekLeft 8s ease-in-out infinite}.peek-right{right:-47px;transform:rotate(-30deg);animation:peekRight 8s 2s ease-in-out infinite}.peek-cat>span{display:block;font-family:Gochi Hand,cursive;font-size:15px;color:#b099bd;white-space:nowrap}.kitten-club{max-width:850px;margin:0 auto;padding:5px 24px 20px;text-align:center;position:relative}.kitten-club h2{font-size:29px;margin:12px 0}.kitten-club .eyebrow{font-size:8px;letter-spacing:.19em;margin-bottom:10px}.kitten-invite{font-size:12px;color:#a18aa9;line-height:1.8}.paw-trail{height:48px;display:flex;gap:24px;justify-content:center;margin:10px 0 30px;align-items:center}.paw-trail span{font-size:14px;opacity:.2;transform:rotate(-25deg);animation:pawAppear 4.5s ease-in-out infinite;animation-delay:calc(var(--step)*.3s)}.paw-trail span:nth-child(2n){margin-top:18px;transform:rotate(10deg)}.kitten-lineup{display:flex;align-items:flex-end;justify-content:center;gap:17px;margin:25px auto 0}.kitten-friend{background:none;border:0;padding:10px 3px;position:relative;width:120px;min-width:0;color:#9b7bab;border-radius:25px}.kitten-friend:hover:not(:disabled){transform:none;background:#ffffff50}.kitten-motion{display:block;width:100%;height:125px;transform-origin:bottom center;animation-delay:calc(var(--kitten-index)*-.5s)!important}.bouncy .kitten-motion{animation:kittenBounce 2.2s ease-in-out infinite}.wiggly .kitten-motion{animation:kittenWiggle 2.6s ease-in-out infinite}.sleepy .kitten-motion{animation:kittenBreathe 3.5s ease-in-out infinite}.lovey .kitten-motion{animation:kittenSway 2.7s ease-in-out infinite}.groovy .kitten-motion{animation:kittenGroove 2s ease-in-out infinite}.kitten-name{display:inline-block;font-family:Gochi Hand,cursive;font-size:17px;margin-top:10px}.petted .kitten-motion{animation:kittenBoop .65s ease-in-out 2}.sleep-bubbles{position:absolute;top:0;right:0;font-family:Gochi Hand,cursive;letter-spacing:4px;color:#ae97bf;font-size:13px;animation:sleepRise 3s ease-in-out infinite}.kitten-heart-burst{position:absolute;inset:0;pointer-events:none}.kitten-heart-burst i{position:absolute;top:35px;left:42%;font-size:25px;font-style:normal;color:#c187aa;animation:kittenHearts 1.2s ease-out both;--drift:-25px}.kitten-heart-burst i:nth-child(2){--drift:22px;animation-delay:.15s}.kitten-heart-burst i:nth-child(3){--drift:0px;animation-delay:.3s;color:#c1a2d4;font-size:18px}.kitten-wish{min-height:55px;margin:18px auto 0;font-family:Gochi Hand,cursive;font-size:19px;color:#a285af;line-height:1.5;max-width:480px}.yarn-runway{position:relative;max-width:400px;margin:0 auto;height:100px;border-bottom:1px dashed #d9c8e1;overflow:hidden}.yarn-kitten{position:absolute;width:70px;height:76px;bottom:0;left:0;animation:yarnChase 8s ease-in-out infinite}.yarn-kitten .cat{animation:kittenBounce .7s infinite}.yarn-ball{position:absolute;bottom:0;left:83px;width:29px;height:29px;color:#b08cc9;background:#e6d5ef;border:1px solid #c2a7d3;border-radius:50%;font-size:25px;line-height:27px;animation:yarnRoll 8s ease-in-out infinite}.yarn-caption{position:absolute;top:5px;right:8px;font-family:Gochi Hand,cursive;font-size:13px;color:#b79fc1}.gift-illustration>.cat{animation:kittenBreathe 3s ease-in-out infinite}.letter-cat .cat{animation:kittenSway 3s ease-in-out infinite}@keyframes tailSwish{0%,to{transform:rotate(-5deg)}50%{transform:rotate(9deg)}}@keyframes catBlink{0%,43%,47%,to{transform:scaleY(1)}45%{transform:scaleY(.12)}}@keyframes peekLeft{0%,to{transform:translate(-15px) rotate(30deg)}35%,65%{transform:translate(20px) rotate(20deg)}}@keyframes peekRight{0%,to{transform:translate(15px) rotate(-30deg)}35%,65%{transform:translate(-20px) rotate(-20deg)}}@keyframes pawAppear{0%,75%,to{opacity:.15}25%,50%{opacity:.55}}@keyframes kittenBounce{0%,to{transform:translateY(0) scale(1)}45%{transform:translateY(-10px) scale(.98,1.03)}70%{transform:translateY(0) scale(1.04,.97)}}@keyframes kittenWiggle{0%,to{transform:rotate(-5deg)}50%{transform:rotate(6deg)}}@keyframes kittenBreathe{0%,to{transform:scaleY(.98)}50%{transform:scale(1.02)}}@keyframes kittenSway{0%,to{transform:translateY(0) rotate(4deg)}50%{transform:translateY(-5px) rotate(-4deg)}}@keyframes kittenGroove{0%,to{transform:rotate(-7deg) translateY(0)}25%{transform:rotate(0) translateY(-8px)}50%{transform:rotate(7deg) translateY(0)}75%{transform:rotate(0) translateY(-8px)}}@keyframes kittenBoop{0%,to{transform:scale(1)}35%{transform:translateY(-16px) rotate(-6deg)}65%{transform:translateY(-8px) rotate(6deg)}}@keyframes kittenHearts{0%{opacity:1;transform:translate(0) scale(.6)}to{opacity:0;transform:translate(var(--drift),-70px) scale(1.3)}}@keyframes sleepRise{0%{opacity:0;transform:translateY(7px)}50%{opacity:.8}to{opacity:0;transform:translateY(-13px)}}@keyframes yarnChase{0%,to{transform:translate(0)}45%,55%{transform:translate(205px)}50%{transform:translate(205px) rotate(-8deg)}}@keyframes yarnRoll{0%,to{transform:translate(0) rotate(0)}45%,55%{transform:translate(230px) rotate(540deg)}}@media(max-width:1000px){.peeking-cats{top:370px}.peek-cat{width:100px}.peek-cat .cat{height:110px}.peek-cat>span{display:none}.peek-left{left:-50px}.peek-right{right:-50px}}@media(max-width:600px){.peeking-cats{top:420px}.peek-cat{width:75px}.peek-cat .cat{height:83px}.peek-left{left:-43px}.peek-right{right:-43px}.kitten-club{padding:0 22px 20px}.kitten-club h2{font-size:26px}.kitten-invite{font-size:11px;max-width:260px;margin:0 auto}.kitten-lineup{gap:2px;flex-wrap:wrap;max-width:320px;margin-top:20px}.kitten-friend{width:30%;padding:8px 3px}.kitten-motion{height:96px}.kitten-name{font-size:16px;margin-top:3px}.kitten-wish{font-size:17px;min-height:62px;margin-top:12px}.paw-trail{gap:19px;margin-bottom:24px}.yarn-runway{max-width:290px}.yarn-kitten{animation-name:yarnChaseMobile}.yarn-ball{animation-name:yarnRollMobile}}@keyframes yarnChaseMobile{0%,to{transform:translate(0)}45%,55%{transform:translate(145px)}}@keyframes yarnRollMobile{0%,to{transform:translate(0) rotate(0)}45%,55%{transform:translate(165px) rotate(540deg)}}.party-cat.cat-c,.party-cat.cat-d{width:18%;height:130px;bottom:165px}.cat-c{left:14%;animation:enterLeft 2.2s both}.cat-d{right:14%;animation:enterRight 2.8s both}.ready .cat-c .cat,.is-cut .cat-c .cat{animation-delay:-.4s}.ready .cat-d .cat,.is-cut .cat-d .cat{animation-delay:-.7s}@media(max-width:600px){.party-cat.cat-c,.party-cat.cat-d{height:83px;bottom:135px}.cat-c{left:12%}.cat-d{right:12%}}.password-hint{margin:18px 0 5px;padding:13px 15px;text-align:left;border:1px dashed #d8c3e3;border-radius:13px;background:#f3eaf7}.password-hint p{margin:0;font-size:12px;line-height:1.7;color:#8c6b9e}.password-hint .password-case-note{margin-top:7px;font-size:10px;color:#a087af}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.ambient{display:none}.cake.cut .knife{opacity:0}}.meow-toggle{margin:14px auto 0;justify-content:center}.birthday-cake{width:100%;display:block;overflow:visible}.birthday-cake .slice-gap,.birthday-cake .served-plate,.birthday-cake .cake-server,.birthday-cake .candle-smoke,.birthday-cake .slice-sparkles,.birthday-cake .slice-caption{opacity:0}.birthday-cake .candle-light{animation:candleFlicker 1.7s ease-in-out infinite alternate}.birthday-cake.has-cut .candle-light{animation:candleOut .45s ease-in forwards}.birthday-cake.has-cut .candle-smoke{animation:littleSmoke 1s .3s ease-out both}.birthday-cake.has-cut .cake-server{animation:makeCakeCut 2s .45s cubic-bezier(.45,0,.2,1) both;transform-origin:188px 108px}.birthday-cake.has-cut .cake-cut-line{animation:drawCakeCut .75s 1.1s ease-in-out forwards,fadeCutLine .3s 2.3s forwards}.birthday-cake.has-cut .slice-gap{animation:cakeReveal .3s 2.15s both}.birthday-cake.has-cut .served-plate{animation:cakeReveal .5s 1.85s both}.birthday-cake.has-cut .birthday-slice{animation:serveBirthdaySlice 1.4s 2.2s cubic-bezier(.22,.7,.28,1) both;transform-origin:215px 225px}.birthday-cake.has-cut .slice-sparkles{animation:sliceTwinkle 1s 3.35s both}.birthday-cake.has-cut .slice-caption{animation:cakeReveal .6s 3.55s both}.celebration .cake-scene{height:400px;max-width:720px;margin-top:35px;isolation:isolate}.celebration .cake-delivery{left:17%;width:66%;bottom:20px;z-index:2;pointer-events:none}.celebration .main-cat{left:2%;width:21%;height:155px;bottom:0;z-index:3}.celebration .main-cat>span{font-size:13px;white-space:nowrap}.celebration .cat-a{left:0;bottom:150px;width:23%;height:150px;z-index:1}.celebration .cat-b{right:0;bottom:135px;width:23%;height:150px;z-index:1}.celebration .cat-c{left:23%;bottom:260px;width:16%;height:112px}.celebration .cat-d{right:23%;bottom:260px;width:16%;height:112px}.celebration .scene-floor{bottom:13px;height:90px}.celebration .cutting .party-cat .cat{animation:waitingWiggle .8s ease-in-out infinite alternate}.celebration .celebrated .party-cat .cat{animation:birthdayCatJump .7s ease-in-out 4}.celebration .celebrated .cat-b .cat,.celebration .celebrated .cat-d .cat{animation-delay:.15s}.celebration .confetti{z-index:4;pointer-events:none}.cake-replay{display:block;border:0;background:none;color:#a084b0;font-size:11px;margin:18px auto 0;padding:10px 18px;text-decoration:underline;text-underline-offset:4px}@keyframes candleFlicker{0%{transform:scale(1) rotate(-3deg)}to{transform:scale(.92,1.06) rotate(3deg)}}@keyframes candleOut{to{opacity:0;transform:scale(.2) translateY(-8px)}}@keyframes littleSmoke{0%{opacity:0;transform:translateY(0)}25%{opacity:.65}to{opacity:0;transform:translateY(-19px)}}@keyframes makeCakeCut{0%{opacity:0;transform:translate(-8px,-65px) rotate(-18deg)}18%{opacity:1;transform:translateY(-42px) rotate(-5deg)}48%{opacity:1;transform:translateY(25px) rotate(0)}65%{opacity:1;transform:translateY(28px) rotate(0)}85%{opacity:1;transform:translate(27px,-65px) rotate(15deg)}to{opacity:0;transform:translate(45px,-90px) rotate(20deg)}}@keyframes drawCakeCut{to{stroke-dashoffset:0}}@keyframes fadeCutLine{to{opacity:0}}@keyframes cakeReveal{0%{opacity:0}to{opacity:1}}@keyframes serveBirthdaySlice{0%{transform:translate(0) rotate(0)}30%{transform:translate(18px,-16px) rotate(-5deg)}75%{transform:translate(94px,22px) rotate(-4deg)}90%{transform:translate(99px,34px) rotate(0)}to{transform:translate(99px,33px) rotate(0)}}@keyframes sliceTwinkle{0%{opacity:0;transform:translateY(7px)}50%{opacity:1}to{opacity:.8;transform:translateY(0)}}@keyframes waitingWiggle{0%{transform:rotate(-3deg)}to{transform:rotate(3deg)}}@keyframes birthdayCatJump{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-20px) rotate(5deg)}}@media(max-width:600px){.celebration .cake-scene{height:310px;margin-top:25px}.celebration .cake-delivery{left:6%;width:88%;bottom:24px}.celebration .main-cat{left:0;width:24%;height:100px;bottom:0}.celebration .main-cat>span{font-size:10px}.celebration .cat-a,.celebration .cat-b{height:96px;width:24%;bottom:166px}.celebration .cat-a{left:-2%}.celebration .cat-b{right:-2%}.celebration .cat-c,.celebration .cat-d{height:78px;width:18%;bottom:230px}.celebration .cat-c{left:24%}.celebration .cat-d{right:24%}.celebration .scene-floor{height:60px;bottom:24px}}@media(prefers-reduced-motion:reduce){.birthday-cake.has-cut .candle-light,.birthday-cake.has-cut .cake-server,.birthday-cake.has-cut .cake-cut-line{opacity:0}.birthday-cake.has-cut .slice-gap,.birthday-cake.has-cut .served-plate,.birthday-cake.has-cut .slice-caption,.birthday-cake.has-cut .slice-sparkles{opacity:1}.birthday-cake.has-cut .birthday-slice{transform:translate(99px,33px)}}.birthday-cake .cake-crumbs{opacity:0}.birthday-cake .cake-body{transform-origin:175px 262px}.birthday-cake .slice-sparkles path{transform-box:fill-box;transform-origin:center}.birthday-cake.has-cut .candle-light{animation:candleBlow .7s calc(.25s + var(--c)*.2s) ease-in forwards}.birthday-cake.has-cut .candle-smoke{animation:candleSmokeCurl 1.7s calc(.6s + var(--c)*.2s) ease-out both}.birthday-cake.has-cut .cake-body{animation:cakeKnifePress .55s 1.5s ease-in-out both,cakeSettle .8s 2.1s ease-out both}.birthday-cake.has-cut .cake-crumbs{animation:cakeReveal .1s 1.5s both}.birthday-cake.has-cut .cake-crumbs circle{animation:crumbFall .9s calc(1.55s + var(--k)*.07s) cubic-bezier(.4,0,.8,.6) both}.birthday-cake.has-cut .served-plate{animation:cakeReveal .5s 1.85s both,platePop .5s 1.85s cubic-bezier(.3,1.6,.5,1) both,plateBump .55s 3.3s ease-out;transform-origin:319px 307px}.birthday-cake.has-cut .birthday-slice{animation:serveBirthdaySliceV2 1.5s 2.2s cubic-bezier(.22,.7,.28,1) both}.birthday-cake.has-cut .birthday-slice circle{transform-box:fill-box;transform-origin:center;animation:cherryPop .6s 3.5s cubic-bezier(.3,1.8,.5,1) both}.birthday-cake.has-cut .slice-sparkles path{animation:sparkPulse 1.8s 3.4s ease-in-out infinite}.birthday-cake.has-cut .slice-sparkles path:nth-child(2){animation-delay:3.9s}.birthday-cake.has-cut .slice-caption{animation:cakeReveal .6s 3.55s both,captionBob 3s 4.2s ease-in-out infinite}@keyframes candleBlow{0%{transform:scale(1) rotate(0)}25%{transform:scale(.9,1.12) rotate(14deg)}55%{transform:scale(.7,.8) rotate(24deg);opacity:.7}to{transform:scale(.1) rotate(30deg) translate(3px,-6px);opacity:0}}@keyframes candleSmokeCurl{0%{opacity:0;transform:translateY(4px) scaleY(.6)}25%{opacity:.7}60%{transform:translate(5px,-12px) scaleY(1)}to{opacity:0;transform:translate(-3px,-30px) scaleY(1.2)}}@keyframes cakeKnifePress{0%,to{transform:scale(1)}50%{transform:scale(1.015,.975)}}@keyframes cakeSettle{0%{transform:translate(0)}30%{transform:translate(-2px) rotate(-.4deg)}65%{transform:translate(1px) rotate(.2deg)}to{transform:translate(0)}}@keyframes crumbFall{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--dx),70px)}}@keyframes platePop{0%{transform:scale(.6)}to{transform:scale(1)}}@keyframes plateBump{0%,to{transform:translateY(0)}35%{transform:translateY(3px) scale(1.01,.97)}70%{transform:translateY(-1px)}}@keyframes serveBirthdaySliceV2{0%{transform:translate(0) rotate(0)}22%{transform:translate(12px,-22px) rotate(-6deg)}60%{transform:translate(70px,-6px) rotate(-5deg)}82%{transform:translate(98px,30px) rotate(1deg)}90%{transform:translate(99px,37px) rotate(0)}95%{transform:translate(99px,31px)}to{transform:translate(99px,33px) rotate(0)}}@keyframes cherryPop{0%{transform:scale(1)}40%{transform:scale(1.6) translateY(-4px)}to{transform:scale(1)}}@keyframes sparkPulse{0%,to{opacity:.5;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.2) rotate(20deg)}}@keyframes captionBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.birthday-cake.has-cut .cake-body,.birthday-cake.has-cut .cake-crumbs,.birthday-cake.has-cut .cake-crumbs circle,.birthday-cake.has-cut .served-plate,.birthday-cake.has-cut .birthday-slice,.birthday-cake.has-cut .birthday-slice circle,.birthday-cake.has-cut .slice-sparkles path,.birthday-cake.has-cut .candle-smoke{animation:none!important}.birthday-cake.has-cut .served-plate{opacity:1}.birthday-cake.has-cut .birthday-slice{transform:translate(99px,33px)}}.surprise-sticker{display:block;object-fit:contain;height:auto;max-width:100%;margin-left:auto;margin-right:auto}.letter-sticker-welcome{margin:25px auto 15px;text-align:center}.letter-love-sticker{width:185px;height:175px;animation:stickerHello .6s ease-out both}.letter-sticker-welcome .handwritten{margin:10px 0 0;font-size:19px}.melody-checkpoint{max-width:600px;min-height:550px;padding-bottom:60px}.checkpoint-progress{display:flex;justify-content:center;gap:8px;margin:0 0 25px}.checkpoint-progress span{width:21px;height:5px;border-radius:20px;background:#e3d5eb}.checkpoint-progress .selected{background:#b293c4}.checkpoint-sticker{width:215px;height:215px;animation:stickerHello .5s ease-out both;margin-bottom:25px}.checkpoint-sticker.original-cat-sticker{width:195px;height:195px;border-radius:15px;box-shadow:0 10px 25px #9677a31c}.melody-checkpoint h1{font-size:clamp(32px,5vw,47px);letter-spacing:-1px;outline:none}.melody-checkpoint>.primary{margin-top:15px;min-width:170px}.checkpoint-back{display:block;margin:14px auto 0;padding:12px 18px;border:0;background:none;color:#a087ad;font-size:12px;text-decoration:underline;text-underline-offset:4px}.shy-singer-note{max-width:410px;margin:28px auto 0;text-align:center;animation:stickerHello .6s ease-out both}.shy-dog-sticker{width:155px;height:160px}.shy-singer-note p{font-family:Gochi Hand,cursive;font-size:21px;color:#a182b0;line-height:1.5;margin:13px 0}@keyframes stickerHello{0%{opacity:0;transform:translateY(10px) rotate(-3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@media(max-width:600px){.checkpoint-sticker{width:190px;height:190px}.melody-checkpoint{min-height:500px}.letter-love-sticker{width:160px;height:155px}.shy-singer-note p{font-size:19px}}@media(prefers-reduced-motion:reduce){.surprise-sticker,.shy-singer-note{animation:none}}.cat .cat-head{transform-origin:100px 132px;animation:lovelyHeadTilt 7.5s ease-in-out infinite;animation-delay:calc(var(--kitten-index,0)*-.85s)}.cat .cat-ears{transform-origin:100px 65px;animation:littleEarTwitch 9s ease-in-out infinite;animation-delay:calc(var(--kitten-index,0)*-1.2s)}.cat .cat-eyes{transform-origin:100px 91px;animation:softKittenBlink 6s ease-in-out infinite;animation-delay:calc(var(--kitten-index,0)*-.9s)}.cat .cat-tail{transform-origin:145px 168px;animation:lovelyTailCurl 4.5s ease-in-out infinite;animation-delay:calc(var(--kitten-index,0)*-.7s)}.cat .cat-sleep-eyes,.cat .cat-love-eyes,.cat .cat-cuddle-heart{opacity:0}.cat .cat-blush{opacity:.7;transition:opacity .3s}.waving.cat .paw{transform-origin:60px 158px;animation:gentlePawHello 5.5s ease-in-out infinite;animation-delay:calc(var(--kitten-index,0)*-.6s)}.kitten-friend .kitten-motion{animation-duration:4.5s;animation-timing-function:ease-in-out}.kitten-friend.bouncy .kitten-motion{animation-name:softKittenHop}.kitten-friend.wiggly .kitten-motion,.kitten-friend.groovy .kitten-motion{animation-name:softKittenRock}.kitten-friend.lovey .kitten-motion{animation-name:softKittenSnuggle}.sleepy .cat-eyes{opacity:0;animation:none}.sleepy .cat-sleep-eyes{opacity:1}.sleepy .cat-head{animation:sleepyKittenNod 5s ease-in-out infinite}.kitten-friend.petted .kitten-motion{animation:happyKittenCuddle 1.1s ease-in-out 2}.petted .cat .cat-head{animation:lovingHeadNuzzle 1.6s ease-in-out infinite}.petted .cat .cat-eyes,.petted .cat .cat-sleep-eyes{opacity:0;animation:none}.petted .cat .cat-love-eyes,.petted .cat .cat-cuddle-heart,.petted .cat .cat-blush{opacity:1}.petted .cat .cat-cuddle-heart{transform-origin:100px 175px;animation:cuddleHeartbeat 1.15s ease-in-out infinite}.petted .cat .paw{animation:littleKittenHug 1.6s ease-in-out infinite;transform-origin:60px 158px}.petted .cat .cat-other-paw{transform-origin:132px 160px;animation:otherKittenHug 1.6s ease-in-out infinite}.petted .cat .cat-tail{animation:lovelyTailCurl 1.5s ease-in-out infinite}.petted .sleep-bubbles{opacity:0;animation:none}.cat-purr-bubble{position:absolute;top:-13px;left:50%;transform:translate(-50%);white-space:nowrap;padding:6px 11px;border:1px solid #e2cde9;border-radius:20px 20px 20px 5px;background:#fff8fc;color:#b081a3;font-family:Gochi Hand,cursive;font-size:15px;pointer-events:none;animation:purrBubblePop .35s ease-out both;box-shadow:0 4px 12px #a583b012}.kitten-friend .kitten-heart-burst i{animation-duration:1.65s}.kitten-friend .kitten-heart-burst i:nth-child(2){animation-delay:.35s}.kitten-friend .kitten-heart-burst i:nth-child(3){animation-delay:.7s}@keyframes lovelyHeadTilt{0%,35%,to{transform:rotate(0)}48%,62%{transform:rotate(5deg)}78%,86%{transform:rotate(-3deg)}}@keyframes littleEarTwitch{0%,65%,80%,to{transform:scaleX(1)}69%,76%{transform:scaleX(.96) translateY(1px)}72%{transform:scaleX(1.02)}}@keyframes softKittenBlink{0%,39%,44%,75%,80%,to{transform:scaleY(1)}41%,77%{transform:scaleY(.1)}}@keyframes lovelyTailCurl{0%,to{transform:rotate(-5deg)}50%{transform:rotate(10deg)}}@keyframes gentlePawHello{0%,25%,75%,to{transform:rotate(0)}38%,57%{transform:rotate(13deg)}47%,65%{transform:rotate(-5deg)}}@keyframes softKittenHop{0%,35%,75%,to{transform:translateY(0) scale(1)}48%{transform:translateY(-6px) scale(.99,1.02)}60%{transform:translateY(0) scale(1.02,.98)}}@keyframes softKittenRock{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg) translateY(-2px)}}@keyframes softKittenSnuggle{0%,to{transform:rotate(2deg)}50%{transform:rotate(-3deg) translateY(-3px)}}@keyframes sleepyKittenNod{0%,to{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(1deg) translateY(2px)}}@keyframes happyKittenCuddle{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-7px) scale(1.025)}65%{transform:translateY(-2px) rotate(3deg)}}@keyframes lovingHeadNuzzle{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg) translateY(1px)}}@keyframes cuddleHeartbeat{0%,to{transform:scale(.94)}35%{transform:scale(1.08)}65%{transform:scale(1)}}@keyframes littleKittenHug{0%,to{transform:rotate(-14deg)}50%{transform:rotate(-24deg)}}@keyframes otherKittenHug{0%,to{transform:rotate(10deg)}50%{transform:rotate(20deg)}}@keyframes purrBubblePop{0%{opacity:0;transform:translate(-50%,5px) scale(.8)}to{opacity:1;transform:translate(-50%) scale(1)}}@media(max-width:600px){.cat-purr-bubble{font-size:13px;padding:5px 8px;top:-12px}}@media(prefers-reduced-motion:reduce){.cat *,.kitten-motion,.cat-purr-bubble{animation:none!important;transition:none!important}.petted .cat .cat-cuddle-heart{opacity:1}.cat-purr-bubble{transform:translate(-50%)}}.cat .cat-body{transform-origin:100px 205px;animation:kittenBreathBody 3.8s ease-in-out infinite;animation-delay:calc(var(--kitten-index,0)*-.7s)}.cat .cat-whiskers{transform-origin:100px 103px;animation:whiskerTwitch 7s ease-in-out infinite;animation-delay:calc(var(--kitten-index,0)*-1.4s)}.cat .cat-eyes{animation-name:softKittenBlinkDouble}.cat .cat-tail{animation-name:lovelyTailFlick;animation-duration:3.6s}.sleepy .cat-body{animation-duration:5.6s}.sleepy .cat-tail{animation-duration:6.5s}.sleepy .sleep-bubbles{animation-name:sleepRiseDrift;animation-duration:3.6s}.kitten-friend.bouncy .kitten-motion{animation-name:softKittenHopSquash}.kitten-friend:hover:not(.petted) .cat-head{animation:curiousHeadTilt 1.4s ease-in-out infinite}.kitten-friend:hover:not(.petted) .cat-tail{animation-duration:1.6s}.kitten-friend:active .kitten-motion{transform:scale(1.06,.93)}.kitten-friend.petted .kitten-motion{animation:happyKittenPounce 1.3s cubic-bezier(.3,.7,.4,1) 2}.petted .cat .cat-body{animation:purrVibrate .18s linear infinite}.petted .cat .cat-whiskers{animation:whiskerTwitch .5s ease-in-out infinite}.kitten-heart-burst i:nth-child(4){--drift:-42px;animation-delay:.5s;font-size:16px;color:#d9a0bd}.kitten-heart-burst i:nth-child(5){--drift:38px;animation-delay:.65s;font-size:15px;color:#c1a2d4}.cat-purr-bubble{animation:purrBubblePop .4s cubic-bezier(.3,1.5,.5,1) both}.yarn-runway{--run:205px}.yarn-runway .yarn-kitten{animation:yarnKittenChase 9s ease-in-out infinite}.yarn-runway .yarn-ball{animation:yarnBallRoll 9s ease-in-out infinite;transform-origin:center}.yarn-runway .yarn-kitten .cat{animation:kittenTrot .6s ease-in-out infinite}@media(max-width:600px){.yarn-runway{--run:145px}}@keyframes kittenBreathBody{0%,to{transform:scale(1)}50%{transform:scale(1.025,1.04)}}@keyframes whiskerTwitch{0%,70%,to{transform:rotate(0)}74%{transform:rotate(-2.5deg)}78%{transform:rotate(2deg)}82%{transform:rotate(0)}}@keyframes softKittenBlinkDouble{0%,38%,43%,47%,70%,75%,to{transform:scaleY(1)}40%,45%,72%{transform:scaleY(.08)}}@keyframes lovelyTailFlick{0%,to{transform:rotate(-6deg)}30%{transform:rotate(11deg)}42%{transform:rotate(7deg)}55%{transform:rotate(14deg)}75%{transform:rotate(-2deg)}}@keyframes softKittenHopSquash{0%,30%,80%,to{transform:translateY(0) scale(1)}38%{transform:translateY(1px) scale(1.04,.94)}52%{transform:translateY(-9px) scale(.97,1.05)}66%{transform:translateY(0) scale(1.05,.94)}73%{transform:translateY(0) scale(.99,1.01)}}@keyframes curiousHeadTilt{0%,to{transform:rotate(-6deg) translateY(0)}50%{transform:rotate(7deg) translateY(-2px)}}@keyframes happyKittenPounce{0%{transform:translateY(0) scale(1)}15%{transform:translateY(2px) scale(1.06,.92)}40%{transform:translateY(-16px) rotate(-4deg) scale(.96,1.07)}60%{transform:translateY(-9px) rotate(4deg)}78%{transform:translateY(0) scale(1.05,.95)}90%{transform:scale(.99,1.02)}to{transform:translateY(0) scale(1)}}@keyframes purrVibrate{0%,to{transform:translate(0)}50%{transform:translate(.8px) scaleX(1.01)}}@keyframes sleepRiseDrift{0%{opacity:0;transform:translateY(7px) scale(.8)}50%{opacity:.85}to{opacity:0;transform:translate(8px,-16px) scale(1.15)}}@keyframes kittenTrot{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-4px) rotate(1.5deg)}}@keyframes yarnKittenChase{0%,6%{transform:translate(0) scaleX(1)}10%{transform:translate(0) scale(1.05,.92)}34%{transform:translate(calc(var(--run)*.9)) scaleX(1)}40%{transform:translate(var(--run)) scale(.97,1.06)}46%,52%{transform:translate(var(--run)) scaleX(1)}53%{transform:translate(var(--run)) scaleX(-1)}90%{transform:translate(0) scaleX(-1)}92%,to{transform:translate(0) scaleX(1)}}@keyframes yarnBallRoll{0%,8%{transform:translate(0) rotate(0)}30%{transform:translate(calc(var(--run) + 25px)) rotate(540deg)}40%{transform:translate(calc(var(--run) + 22px)) rotate(500deg)}46%,52%{transform:translate(calc(var(--run) + 22px)) rotate(520deg)}88%,to{transform:translate(0) rotate(0)}}.album-cat-actor .cat-body{animation-duration:4.4s}@media(prefers-reduced-motion:reduce){.yarn-kitten,.yarn-ball{animation:none!important}}.cat .cat-look{transform:translate(calc(var(--look-x,0)*4px),calc(var(--look-y,0)*3px));transition:transform .25s ease-out}.cat .cat-yawn{transform-origin:100px 106px;transform:scaleY(.05);transition:opacity .2s}.sleepy .cat-look{transform:none}.act-yawn .cat-yawn{animation:catYawn 2.4s ease-in-out}.act-yawn .cat-eyes{animation:none;transform:scaleY(.15)}.act-yawn .cat-head{animation:yawnHead 2.4s ease-in-out}.act-stretch .kitten-motion{animation:catStretch 2.4s ease-in-out!important}.act-stretch .cat-tail{animation:tailUp 2.4s ease-in-out}.act-groom .cat-head{animation:groomHead 2.4s ease-in-out}.act-groom .paw{transform-origin:60px 158px;animation:groomPaw 2.4s ease-in-out!important}.act-spin .kitten-motion{animation:catTailChase 1.6s cubic-bezier(.5,0,.3,1)!important}.act-spin .cat-tail{animation:lovelyTailCurl .25s ease-in-out infinite}.act-peek .cat-head{animation:lookAround 2.4s ease-in-out}.act-peek .cat-ears{animation:earPerk 2.4s ease-in-out}.club-butterfly{position:absolute;left:0;top:210px;font-size:22px;pointer-events:none;z-index:3;opacity:.85;animation:butterflyPath 16s ease-in-out infinite}@media(max-width:600px){.club-butterfly{top:240px;font-size:18px;animation-name:butterflyPathMobile}}@keyframes catYawn{0%,15%,85%,to{opacity:0;transform:scaleY(.05)}40%,65%{opacity:.95;transform:scaleY(1)}}@keyframes yawnHead{0%,to{transform:rotate(0) translateY(0)}45%,62%{transform:rotate(-4deg) translateY(-3px)}}@keyframes catStretch{0%,to{transform:scale(1)}25%{transform:scale(1.14,.86) translateY(2px)}60%{transform:scale(.92,1.12)}80%{transform:scale(1.03,.98)}}@keyframes tailUp{0%,to{transform:rotate(-5deg)}40%,70%{transform:rotate(-22deg)}}@keyframes groomHead{0%,to{transform:rotate(0)}25%,75%{transform:rotate(-9deg) translateY(2px)}}@keyframes groomPaw{0%,to{transform:rotate(0)}25%{transform:rotate(-32deg) translate(8px,-14px)}40%{transform:rotate(-38deg) translate(10px,-18px)}50%{transform:rotate(-28deg) translate(8px,-14px)}60%{transform:rotate(-38deg) translate(10px,-18px)}75%{transform:rotate(-30deg) translate(8px,-14px)}}@keyframes catTailChase{0%{transform:rotate(0) scale(1)}15%{transform:rotate(0) scale(1.05,.93)}70%{transform:rotate(360deg) scale(.95,1.04) translateY(-4px)}to{transform:rotate(360deg) scale(1)}}@keyframes lookAround{0%,to{transform:rotate(0)}20%,35%{transform:rotate(-9deg) translate(-3px)}60%,78%{transform:rotate(9deg) translate(3px)}}@keyframes earPerk{0%,to{transform:scale(1)}20%,35%,60%,78%{transform:scale(1.02,1.07)}}@keyframes butterflyPath{0%{transform:translate(-30px,40px) rotate(15deg);opacity:0}8%{opacity:.85}25%{transform:translate(180px,-10px) rotate(-10deg)}45%{transform:translate(380px,70px) rotate(20deg)}65%{transform:translate(560px) rotate(-15deg)}92%{opacity:.85}to{transform:translate(840px,60px) rotate(10deg);opacity:0}}@keyframes butterflyPathMobile{0%{transform:translate(-20px,30px) rotate(15deg);opacity:0}10%{opacity:.85}35%{transform:translate(110px,-10px) rotate(-12deg)}65%{transform:translate(220px,40px) rotate(14deg)}90%{opacity:.85}to{transform:translate(360px) rotate(0);opacity:0}}@media(prefers-reduced-motion:reduce){.club-butterfly{display:none}.cat .cat-look{transition:none}}.act-sneeze .kitten-motion{animation:catSneeze 2s ease-in-out!important}.act-sneeze .cat-eyes{animation:none;transform:scaleY(.1)}.act-sneeze:after{content:"ACHOO!";position:absolute;top:8px;right:-4px;font-family:Gochi Hand,cursive;font-size:14px;color:#b081a3;pointer-events:none;animation:achooPop 2s ease-out both}.act-flop .kitten-motion{animation:catBellyFlop 2.4s ease-in-out!important}.zoomies .kitten-motion{animation:catZoomies 1.8s ease-in-out!important}.zoomies .cat-tail{animation:lovelyTailCurl .2s linear infinite}.zoomies:before{content:"💨";position:absolute;left:-6px;bottom:38px;font-size:18px;pointer-events:none;animation:zoomDust 1.8s ease-out both}.paw-trail .hidden-paw{background:none;border:0;padding:8px;font-size:14px;line-height:1;opacity:.2;transform:rotate(-25deg);animation:pawAppear 4.5s ease-in-out infinite;animation-delay:calc(var(--step)*.3s);border-radius:50%}.paw-trail .hidden-paw:nth-child(2n){margin-top:18px;transform:rotate(10deg)}.paw-trail .hidden-paw:hover{opacity:.7;animation:none}.paw-trail .hidden-paw.found{animation:none;opacity:.85;filter:hue-rotate(-30deg) saturate(1.5)}.club-butterfly{pointer-events:auto;background:none;border:0;padding:10px;cursor:pointer}.club-butterfly.caught{animation:butterflyPath 16s ease-in-out infinite,butterflyCaught .6s ease-out}.kitten-wish.is-pickup{color:#b0679a;animation:pickupPop .45s cubic-bezier(.3,1.5,.5,1) both}.pickup-tag{display:block;font-family:DM Sans,sans-serif;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#c9a3c0;margin-bottom:2px}.kitten-hint{font-size:10px;color:#b9a3c1;margin:2px 0 10px;font-style:italic}@keyframes catSneeze{0%,35%,to{transform:translate(0) scale(1)}45%{transform:translateY(2px) scale(1.04,.94)}55%{transform:translate(-3px,-8px) scale(.95,1.1) rotate(-6deg)}70%{transform:translate(3px) rotate(4deg)}85%{transform:translate(0)}}@keyframes achooPop{0%,45%{opacity:0;transform:scale(.4) translate(0)}55%{opacity:1;transform:scale(1.2) translate(4px,-4px)}to{opacity:0;transform:scale(1) translate(14px,-14px)}}@keyframes catBellyFlop{0%,15%,to{transform:rotate(0) scale(1)}35%{transform:rotate(12deg) translate(4px,2px)}55%,80%{transform:rotate(88deg) translate(4px,22px) scale(.95)}90%{transform:rotate(80deg) translate(4px,20px)}}@keyframes catZoomies{0%{transform:translate(0)}12%{transform:translate(-30px) scaleX(-1)}30%{transform:translate(-55px) scaleX(-1) translateY(-8px)}45%{transform:translate(50px) scaleX(1) translateY(0)}60%{transform:translate(60px) translateY(-10px)}78%{transform:translate(-10px) scaleX(-1)}to{transform:translate(0) scaleX(1)}}@keyframes zoomDust{0%{opacity:0;transform:translate(0)}20%{opacity:.8}to{opacity:0;transform:translate(-24px) scale(1.4)}}@keyframes butterflyCaught{0%{transform:scale(1)}40%{transform:scale(2) rotate(25deg)}to{transform:scale(1)}}@keyframes pickupPop{0%{opacity:0;transform:scale(.9) translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.act-sneeze:after,.zoomies:before{display:none}}.music-player-screen .compact-melody-card{padding:24px 30px;margin:24px auto;max-width:430px}.compact-melody-card .player-artwork{height:155px;display:grid;place-items:center}.compact-melody-card .record{width:155px;height:155px;padding:10px}.compact-melody-card .player-dog-art{width:150px;height:155px;border-radius:12px}.compact-melody-card .player-personal-note{font-family:Gochi Hand,cursive;font-size:19px;line-height:1.4;color:#9c77ae;min-height:54px;display:grid;place-items:center;margin:13px 0 9px}.compact-melody-card h2{font-size:22px;line-height:1.35;margin:9px 0}.compact-melody-card .player-subtitle{margin:0;font-size:11px}.compact-melody-card .progress{margin:21px 0 17px}.compact-melody-card .audio-status{min-height:20px;margin:12px 0 0;font-size:11px}@media(max-width:600px){.music-player-screen{padding:19px 18px 30px}.music-player-screen>.eyebrow{margin:0 0 12px}.music-player-screen h1{font-size:31px;line-height:1.18;letter-spacing:-1px;max-width:330px;margin:0 auto 9px}.music-player-screen>p:not(.eyebrow){font-size:11px;line-height:1.6;margin:0 0 16px}.music-player-screen .compact-melody-card{padding:18px 22px;margin:0 auto 20px;border-radius:22px}.compact-melody-card .player-artwork{height:125px}.compact-melody-card .record{width:125px;height:125px;padding:8px}.compact-melody-card .player-dog-art{width:125px;height:125px}.compact-melody-card .player-personal-note{font-size:18px;min-height:48px;margin:10px 0 5px;line-height:1.3}.compact-melody-card h2{font-size:20px;line-height:1.3;margin:6px 0 7px}.compact-melody-card .player-subtitle{font-size:10px;line-height:1.6}.compact-melody-card .progress{margin:18px 0 14px}.compact-melody-card .progress>div{margin-top:9px}.compact-melody-card .play{width:48px;height:48px;font-size:18px}.compact-melody-card .audio-status{font-size:10px;line-height:1.6;margin-top:11px;min-height:16px}.music-player-screen blockquote{font-size:12px;line-height:1.8;margin:22px auto 0;max-width:310px}}@media(max-width:600px)and (max-height:720px){.music-player-screen{padding-top:14px}.music-player-screen h1{font-size:28px}.music-player-screen .compact-melody-card{padding:15px 20px}.compact-melody-card .player-artwork,.compact-melody-card .record,.compact-melody-card .player-dog-art{width:100px;height:100px;margin-left:auto;margin-right:auto}.compact-melody-card .player-personal-note{font-size:16px;min-height:42px;margin-top:8px}.compact-melody-card h2{font-size:18px}.compact-melody-card .progress{margin:13px 0}}.gift-grid>.secret-gift-card{grid-column:1/-1;max-width:460px;width:100%;justify-self:center;background:#fff5fbcc;animation:fadeIn .7s ease both}.secret-gift-thumbnail{display:block;width:118px;height:145px;object-fit:contain;margin:25px auto 20px;border-radius:12px}.secret-surprise-page{max-width:650px}.secret-discovery-cat{display:block;width:200px;max-width:65vw;height:auto;margin:30px auto;border-radius:18px;box-shadow:0 10px 30px #a387ad22}.secret-clue{padding:22px 28px;border:1px dashed #d7bfe3;background:#fff8fc80;border-radius:22px;max-width:430px;margin:auto}.secret-clue>.handwritten{font-size:21px;margin:0 0 15px}.secret-clue h2{font-size:25px;line-height:1.5;margin:0 0 13px}.secret-clue>p:last-child{font-size:12px;line-height:1.8;color:#a089ab;margin-bottom:0}.letter-next-surprise{max-width:440px;margin:35px auto 0;padding:24px 20px;border-radius:20px;border:1px dashed #d9c1e3;background:#fcf7fd;text-align:center}.letter-next-surprise p{font-family:Gochi Hand,cursive;font-size:21px;color:#a181b1;margin:0 0 18px;line-height:1.5}@media(max-width:600px){.secret-clue{padding:20px}.secret-clue h2{font-size:22px}.secret-discovery-cat{width:170px;margin:25px auto}.secret-gift-thumbnail{width:105px;height:130px}}@media(prefers-reduced-motion:reduce){.gift-grid>.secret-gift-card{animation:none}}.kitten-love-note{display:flex;align-items:center;justify-content:center;gap:12px;max-width:355px;margin:0 auto 19px;padding:12px 16px;background:#fff8fcaa;border:1px dashed #d8c2e3;border-radius:18px;text-align:left}.kitten-love-note>span{font-size:21px;flex-shrink:0;opacity:.6}.kitten-love-note p{font-size:12px;line-height:1.6;color:#997aa7;margin:0}.kitten-love-note p+p{font-family:Gochi Hand,cursive;font-size:20px;line-height:1.4;color:#976daa;margin-top:3px}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}img,svg{max-width:100%}@media(max-width:600px){:root{--phone-gutter:clamp(16px,5vw,24px)}body{min-width:0;color:#705879}.storybook{width:100%;overflow-x:clip;padding-bottom:env(safe-area-inset-bottom,0px)}.storybook header{padding:calc(12px + env(safe-area-inset-top,0px)) var(--phone-gutter) 10px;gap:12px;min-height:68px}.brand{font-size:12px;line-height:1.4;min-width:0;display:flex;align-items:center;min-height:44px}.brand span{font-size:25px;flex-shrink:0}.music-toggle{font-size:12px;padding:8px 13px;min-height:44px;flex-shrink:0;gap:7px;color:#795c89}main{min-height:0;width:100%}button,a,input{scroll-margin-block:24px}.primary,.secondary{min-height:48px;font-size:14px;padding:13px 20px;max-width:100%;white-space:normal;line-height:1.5}.back,.checkpoint-back,.cake-replay{min-height:44px;font-size:12px;line-height:1.5}.back{margin:0 0 0 var(--phone-gutter);padding:8px 0}.content-page{width:100%;padding:20px var(--phone-gutter) 32px;max-width:520px}.content-page h1{font-size:clamp(32px,8.8vw,40px);line-height:1.2;letter-spacing:-1.2px;overflow-wrap:anywhere}.content-page>p{font-size:14px;line-height:1.75;color:#8a7294}.content-page>.eyebrow,.kitten-club .eyebrow{font-size:10px;letter-spacing:.12em;line-height:1.7;margin-top:0;margin-bottom:13px}.welcome{padding:18px var(--phone-gutter) 28px;max-width:520px;margin:auto}.welcome h1{font-size:clamp(37px,10.5vw,48px);line-height:1.15;letter-spacing:-1.7px;margin:8px 0 18px}.welcome h1 .title-star{font-size:28px;margin-left:7px}.personal-greeting{margin:18px 0 11px;gap:8px}.welcome .personal-greeting .hello{font-size:clamp(25px,7vw,30px)}.welcome .intro{font-size:13px;line-height:1.8;color:#8b7495;margin:0 auto;max-width:350px}.welcome .hero-art{width:280px;max-width:100%;height:235px;margin:12px auto 17px}.hero-art .hero-halo{width:196px;height:196px;left:42px;top:14px}.hero-art .photo{width:180px;height:194px;left:50px;top:8px}.hero-art .photo:has(img:not([hidden])){height:194px}.hero-art .handwritten{left:24px;font-size:19px;bottom:0}.hero-art .art-swoop{right:3px}.welcome>.primary{width:100%;max-width:350px;font-size:13px;padding-inline:12px}.welcome>.small-note{font-size:11px;line-height:1.7;margin-top:12px}.welcome .kitten-love-note{width:100%;max-width:350px;margin-bottom:16px;padding:10px 12px;gap:10px}.kitten-love-note p{font-size:11px}.kitten-love-note p+p{font-size:19px}.storybook:not(.page-welcome) .peeking-cats{display:none}.page-welcome .peeking-cats{top:420px}.gifts .gift-grid{width:100%;max-width:370px;margin:25px auto;gap:18px;grid-template-columns:minmax(0,1fr)}.gift-card{min-width:0;padding:20px;border-radius:20px}.gift-topline{font-size:9px;letter-spacing:.08em;align-items:center;line-height:1.6;gap:8px}.gift-card .gift-illustration{height:148px;margin:14px auto 8px;width:218px}.gift-illustration>.cat{width:132px;height:143px}.gift-card h2{font-size:clamp(23px,6.3vw,27px);line-height:1.3;margin:14px 0 10px}.gift-card>p{font-size:13px;line-height:1.7;color:#8c7497;margin:0 0 18px}.gift-card>.secondary{width:100%;min-height:46px}.gift-note{font-size:18px;line-height:1.6;margin:23px auto}.celebration .cake-scene{height:clamp(265px,78vw,320px);margin:26px auto 0;max-width:410px}.celebration .cake-delivery{left:6%;width:88%;bottom:23px}.celebration .main-cat{height:100px;width:25%;left:0;bottom:0;min-width:64px}.celebration .main-cat>span{font-size:11px;line-height:1.4;padding:5px 3px}.celebration .cat-a,.celebration .cat-b{bottom:54%;width:22%;height:94px}.celebration .cat-c,.celebration .cat-d{bottom:77%;height:72px;width:17%}.celebration .cat-a{left:0}.celebration .cat-b{right:0}.celebration .cat-c{left:25%}.celebration .cat-d{right:25%}.celebration .cake-status{min-height:85px;margin:22px auto 10px}.cake-status p{font-size:14px;line-height:1.75}.cake-status h2{font-size:25px;line-height:1.4}.celebration>.primary{width:100%;max-width:350px}.music-page.melody-checkpoint{min-height:0;padding-top:18px;padding-bottom:30px}.checkpoint-progress{margin-bottom:20px}.melody-checkpoint .checkpoint-sticker{height:clamp(145px,23svh,195px);width:195px;margin-bottom:22px}.melody-checkpoint .checkpoint-sticker.original-cat-sticker{height:clamp(145px,23svh,185px);width:185px}.melody-checkpoint h1{font-size:34px;letter-spacing:-1px;outline:none}.melody-checkpoint>.primary{width:100%;max-width:310px}.music-player-screen{padding-top:10px}.music-player-screen h1{font-size:30px;line-height:1.2;max-width:330px;margin:0 auto 8px}.music-player-screen>p:not(.eyebrow){font-size:12px;line-height:1.6;margin:0 auto 15px}.music-player-screen .compact-melody-card{max-width:370px;padding:18px 20px;margin:0 auto 18px}.compact-melody-card .player-artwork,.compact-melody-card .record,.compact-melody-card .player-dog-art{height:112px}.compact-melody-card .record,.compact-melody-card .player-dog-art{width:112px}.compact-melody-card .player-personal-note{font-size:19px;min-height:50px;line-height:1.3;margin:10px 0 6px}.compact-melody-card h2{font-size:21px;margin:6px 0 8px}.compact-melody-card .player-subtitle{font-size:12px;line-height:1.5;color:#8a7396}.compact-melody-card .progress{margin:10px 0 12px}.compact-melody-card .progress input{height:28px;margin:0;vertical-align:middle}.compact-melody-card .progress>div{margin-top:1px;font-size:11px}.compact-melody-card .play{width:50px;height:50px;min-height:50px}.compact-melody-card .audio-status{font-size:11px;min-height:18px;line-height:1.5;margin:9px 0 0}.music-player-screen blockquote{font-size:13px;line-height:1.85;margin:20px auto 0}.letter-sticker-welcome{margin:17px auto 20px}.letter-love-sticker{width:145px;height:140px}.letter-paper{width:100%;padding:24px 21px;transform:none;border-radius:14px;margin:20px auto 0}.letter-paper>p{font-size:15px;line-height:1.95;margin:22px 0;overflow-wrap:anywhere}.letter-paper h2{font-size:27px;line-height:1.4;margin:15px 0 22px}.letter-decoration{font-size:21px}.letter-paper>.secondary,.letter-next-surprise>.primary{width:100%}.letter-next-surprise{margin-top:24px;padding:22px 18px}.secret-surprise-page .secret-discovery-cat{width:150px;margin:22px auto}.secret-clue{padding:22px 18px}.secret-clue h2{font-size:23px;line-height:1.5}.secret-clue>p:last-child{font-size:13px}.page-letter .kitten-club,.page-melody .kitten-club,.page-secret .kitten-club,.page-cake .kitten-club{display:none}.kitten-club{padding:0 var(--phone-gutter) 20px;max-width:430px}.kitten-club .kitten-invite{font-size:13px;line-height:1.7;max-width:310px;color:#8c7497}.kitten-lineup{gap:6px;max-width:340px;justify-content:center}.kitten-friend{width:29%;min-height:125px}.kitten-friend .kitten-name{font-size:18px}.kitten-wish{font-size:19px;line-height:1.5;min-height:58px}.paw-trail{margin:8px 0 22px}.memories figure{width:min(245px,100%);transform:rotate(-2deg)}footer{padding:20px var(--phone-gutter) calc(18px + env(safe-area-inset-bottom,0px));font-size:9px;letter-spacing:.08em;line-height:1.7}dialog{position:fixed;top:calc(var(--visible-top,0px) + 12px);bottom:auto;margin:0 auto;width:calc(100% - 24px);max-width:390px;max-height:calc(var(--visible-height,100dvh) - 24px);overflow-y:auto;overscroll-behavior:contain;border-radius:20px;scroll-padding:18px;-webkit-overflow-scrolling:touch}.modal-inner{padding:24px 20px 20px}.modal-inner>.cat{height:78px;width:76px;margin-bottom:10px}.modal-inner>.eyebrow{font-size:10px;margin:8px 0 12px;line-height:1.6}.modal-inner h2{font-size:27px;line-height:1.3;margin:10px 0 14px}.modal-inner>p:not(.eyebrow){font-size:14px;line-height:1.7}.modal-inner .close{width:44px;height:44px;min-height:44px;padding:0;top:5px;right:7px}.modal-inner input{font-size:16px;line-height:1.4;min-height:48px;padding:13px;border-radius:12px}.modal-inner .password-hint{padding:12px;margin-top:14px}.password-hint p{font-size:13px;line-height:1.7}.password-hint .password-case-note{font-size:12px;line-height:1.6}.form-status{font-size:12px;line-height:1.6;min-height:26px;margin:9px 0}.modal-inner .primary{width:100%;font-size:14px;min-height:48px}}@media(max-width:360px){.brand{font-size:11px;max-width:160px}.music-toggle{font-size:11px;padding-inline:10px}.welcome h1{font-size:36px}.welcome h1 .title-star{font-size:23px;margin-left:3px}.welcome .hero-art{transform:scale(.92);transform-origin:top center;margin-bottom:0}.content-page h1{font-size:32px}.gift-card{padding:18px}.gift-topline{font-size:8px}.letter-paper{padding-inline:18px}.compact-melody-card h2{font-size:19px}.compact-melody-card .player-personal-note{font-size:17px}}@media(max-width:600px)and (max-height:720px){.welcome{padding-top:9px}.birthday-calendar{width:52px}.calendar-month{font-size:9px}.calendar-day{font-size:25px;padding-bottom:6px}.personal-greeting{margin-top:13px;margin-bottom:8px}.welcome .personal-greeting .hello{font-size:25px}.welcome h1{font-size:37px;margin-bottom:13px}.welcome .hero-art{height:205px;margin-top:6px;margin-bottom:10px}.hero-art .hero-halo{width:174px;height:174px;left:53px;top:9px}.hero-art .photo{width:164px;height:176px;left:58px;top:0}.hero-art .photo:has(img:not([hidden])){height:176px}.hero-art .handwritten{font-size:18px;left:29px}.music-player-screen h1{font-size:27px}.music-player-screen>.eyebrow{margin-bottom:8px}.music-player-screen .compact-melody-card{padding:14px 18px}.compact-melody-card .player-artwork,.compact-melody-card .record,.compact-melody-card .player-dog-art{height:88px}.compact-melody-card .record,.compact-melody-card .player-dog-art{width:88px}.compact-melody-card .player-personal-note{min-height:44px;font-size:17px;margin-top:8px}.compact-melody-card h2{font-size:19px}.compact-melody-card .player-subtitle{font-size:11px}}.shared-photo-album{width:100%;max-width:950px;margin:0 auto;padding:0 24px}.photo-memories{max-width:500px;margin:55px auto 15px;text-align:center}.photo-memories>.eyebrow{font-size:10px;letter-spacing:.14em;margin:0 0 14px}.photo-memories>h2{font-size:32px;margin:0 0 14px;line-height:1.3}.memory-intro{font-size:13px;line-height:1.8;color:#92739e;margin:0 0 24px}.memory-polaroid{padding:14px 14px 10px;border:1px solid #e1d2e8;border-radius:18px;background:#fffaf5;box-shadow:0 12px 28px #9770a214}.memory-photo-button{position:relative;display:block;width:100%;height:clamp(330px,52svh,500px);padding:0;border:0;border-radius:9px;background:#f1e9f1;overflow:hidden;touch-action:pan-y pinch-zoom}.memory-photo-button:hover:not(:disabled){transform:none}.memory-photo-button img{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;object-position:center;image-orientation:from-image;animation:memoryAppear .35s ease both}.memory-expand{position:absolute;right:9px;bottom:9px;width:30px;height:30px;display:grid;place-items:center;background:#fff9;border-radius:50%;color:#7e5c93;font-size:22px}.memory-caption{font-family:Gochi Hand,cursive;font-size:21px;color:#9b77a9;line-height:1.5;margin:16px 8px 8px;min-height:32px}.memory-controls{display:flex;align-items:center;justify-content:center;gap:26px;margin-top:8px}.memory-controls button{width:46px;height:46px;min-height:46px;border:1px solid #e1cde9;border-radius:50%;background:#f4eaf8;color:#9169a6;font-size:21px}.memory-controls span{font-size:12px;color:#987ba5;min-width:55px;font-variant-numeric:tabular-nums}.memory-help{font-size:11px;color:#9b85a5;line-height:1.8;margin:15px 0}.memory-error{font-size:14px;padding:25px;line-height:1.7;color:#95779e}dialog.memory-lightbox{max-width:800px;width:calc(100% - 24px);padding:0;border-radius:20px;max-height:calc(var(--visible-height,100dvh) - 24px);overflow:auto;background:#fff8fb}.memory-lightbox-inner{padding:18px 20px}.memory-lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 12px}.memory-lightbox-header h2{font-size:20px;line-height:1.4;margin:0}.memory-lightbox-header button{flex-shrink:0;border:0;background:#eee0f5;border-radius:50%;width:44px;height:44px;min-height:44px;font-size:26px;color:#9673a7}.memory-lightbox-inner>img{width:100%;height:min(64vh,620px);height:min(calc(var(--visible-height,100dvh) - 210px),620px);object-fit:contain;display:block;touch-action:pan-y pinch-zoom;background:#f3edf5;border-radius:8px}.memory-lightbox .memory-caption{font-size:19px;text-align:center}.hero-art .photo:has(img:not([hidden])){width:158px;height:210px;left:calc(50% - 79px);top:2px;border:6px solid #fffaf5;border-radius:16px;transform:rotate(-3deg);box-shadow:0 8px 22px #8f6da026;background:#fffaf5}.hero-art .photo img{border-radius:8px}.portrait-kitten{position:absolute;right:7px;bottom:36px;width:82px;height:88px;pointer-events:none}.compact-melody-card .record:has(img:not([hidden])){border-radius:14px;padding:5px;background:#e9d9f0;animation:none}.compact-melody-card .record .photo:has(img:not([hidden])){border-radius:10px}@keyframes memoryAppear{0%{opacity:.35}to{opacity:1}}@media(max-width:600px){.shared-photo-album{padding:0 var(--phone-gutter,20px)}.photo-memories{margin:35px auto 12px;max-width:370px;width:100%}.photo-memories>h2{font-size:28px}.memory-intro{font-size:13px;margin-bottom:20px}.memory-polaroid{padding:10px 10px 8px;border-radius:17px}.memory-photo-button{height:clamp(265px,91vw,350px)}.memory-caption{font-size:20px;line-height:1.45;margin:13px 3px 8px}.memory-controls{gap:22px}.memory-help{font-size:11px;max-width:290px;margin:13px auto}.memory-lightbox-inner{padding:14px}.memory-lightbox-header h2{font-size:18px}.memory-lightbox-inner>img{height:calc(var(--visible-height,100dvh) - 220px);min-height:110px;max-height:600px}.hero-art .photo:has(img:not([hidden])){width:145px;height:194px;left:calc(50% - 72.5px);top:1px}.portrait-kitten{right:8px;bottom:31px;width:75px;height:81px}}@media(max-width:600px)and (max-height:720px){.hero-art .photo:has(img:not([hidden])){width:128px;height:174px;left:calc(50% - 64px);top:0}.portrait-kitten{right:16px;bottom:27px;width:65px;height:70px}}@media(prefers-reduced-motion:reduce){.memory-photo-button img{animation:none}}.album-cat-row{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:12px;text-align:left;margin:10px 3px 4px;min-height:95px}.album-cat-stage{position:relative;width:86px;height:95px;isolation:isolate;pointer-events:none}.album-cat-stage:before{content:"";position:absolute;inset:22px 0 0;background:#f0e3f4;border-radius:50%;opacity:.65;z-index:-1}.album-cat-actor{position:absolute;display:block;width:74px;height:80px;bottom:5px;left:5px;transform-origin:50% 90%;animation:albumCatSway 4s ease-in-out infinite}.album-cat-prop{position:absolute;right:0;top:0;font-size:22px;color:#b59ac5;animation:albumPropFloat 4s ease-in-out infinite}.album-cat-ground{position:absolute;bottom:2px;left:7px;width:68px;height:5px;background:#cfb7dc55;border-radius:50%;z-index:-1}.album-cat-heart{position:absolute;left:0;top:36px;color:#ca9ab4;font-size:16px;animation:albumLittleHeart 4.2s ease-in-out infinite}.album-cat-words .memory-caption{font-size:21px;line-height:1.4;min-height:0;margin:0 0 6px;color:#9873a7}.album-cat-whisper{font-size:12px;line-height:1.65;color:#a58ab1;margin:0}.album-cat--sunshine .album-cat-prop{color:#d9b063;animation:albumSunTurn 14s linear infinite}.album-cat--garden .album-cat-prop,.album-cat--meadow .album-cat-prop{color:#a7b18a}.album-cat--garden .album-cat-actor{animation:albumFlowerSniff 5s ease-in-out infinite}.album-cat--meadow .album-cat-actor{animation:albumMeadowPeek 5.5s ease-in-out infinite}.album-cat--dreamy .album-cat-actor,.album-cat--shy .album-cat-actor{animation:albumSleepNod 5s ease-in-out infinite}.album-cat--dreamy .cat-eyes,.album-cat--shy .cat-eyes{opacity:0;animation:none}.album-cat--dreamy .cat-sleep-eyes,.album-cat--shy .cat-sleep-eyes{opacity:1}.album-cat--boat .album-cat-stage:before{background:#dceaf0}.album-cat--boat .album-cat-actor{animation:albumBoatRock 4.2s ease-in-out infinite}.album-cat--boat .album-cat-ground{height:6px;background:repeating-linear-gradient(90deg,#b9d8e5 0 9px,transparent 9px 15px);animation:albumWaterRipple 3s ease-in-out infinite}.album-cat--boat .album-cat-prop{color:#9ebdce;font-size:30px;top:2px}.album-cat--twirl .album-cat-actor{animation:albumHappyTwirl 4.5s ease-in-out infinite}.album-cat--sparkle .album-cat-prop{animation:albumStarGlow 2.7s ease-in-out infinite}.album-cat--birthday .album-cat-actor{animation:albumBirthdayHop 3.3s ease-in-out infinite}.album-cat--birthday .album-cat-prop{right:-4px;top:-3px;font-size:26px;animation:albumBalloon 4.3s ease-in-out infinite}.album-cat--playful .album-cat-actor{animation:albumSillyDance 2.8s ease-in-out infinite}.album-cat--playful .album-cat-prop{color:#c694b4}.album-cat--lovely .album-cat-heart{animation-duration:3s}.album-cat-row{animation:albumCatArrive .45s ease-out both}@keyframes albumCatArrive{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes albumCatSway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes albumPropFloat{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-4px) rotate(5deg)}}@keyframes albumLittleHeart{0%,to{opacity:.25;transform:translateY(3px) scale(.85)}50%{opacity:.8;transform:translateY(-9px) scale(1.1)}}@keyframes albumSunTurn{to{transform:rotate(360deg)}}@keyframes albumFlowerSniff{0%,to{transform:rotate(0)}40%,60%{transform:rotate(7deg) translate(2px,-2px)}}@keyframes albumMeadowPeek{0%,to{transform:translateY(2px)}50%{transform:translateY(-4px) rotate(-3deg)}}@keyframes albumSleepNod{0%,to{transform:rotate(-3deg) scaleY(.99)}50%{transform:rotate(2deg) translateY(2px) scaleY(1.02)}}@keyframes albumBoatRock{0%,to{transform:rotate(-5deg) translateY(1px)}50%{transform:rotate(5deg) translateY(-3px)}}@keyframes albumWaterRipple{50%{transform:translate(5px);opacity:.5}}@keyframes albumHappyTwirl{0%,to{transform:rotate(-5deg)}35%{transform:rotate(7deg) translateY(-4px)}70%{transform:rotate(-3deg)}}@keyframes albumStarGlow{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.15) rotate(10deg)}}@keyframes albumBirthdayHop{0%,70%,to{transform:translateY(0)}35%{transform:translateY(-7px) rotate(3deg)}50%{transform:scale(1.03,.98)}}@keyframes albumBalloon{0%,to{transform:rotate(-7deg) translateY(0)}50%{transform:rotate(7deg) translateY(-5px)}}@keyframes albumSillyDance{0%,to{transform:rotate(-6deg)}25%{transform:translateY(-4px)}50%{transform:rotate(6deg)}75%{transform:translateY(-4px)}}@media(max-width:600px){.album-cat-row{grid-template-columns:74px minmax(0,1fr);gap:9px;margin:10px 0 4px;min-height:86px}.album-cat-stage{width:74px;height:86px}.album-cat-actor{width:65px;height:70px;left:4px}.album-cat-stage:before{inset:22px 0 0}.album-cat-ground{width:59px;left:5px}.album-cat-prop{font-size:19px}.album-cat-words .memory-caption{font-size:19px;line-height:1.4;margin-bottom:4px}.album-cat-whisper{font-size:11px;line-height:1.6}.album-cat--birthday .album-cat-prop{font-size:22px}}@media(prefers-reduced-motion:reduce){.album-cat-row,.album-cat-stage *{animation:none!important;transition:none!important}.album-cat-heart{opacity:.7}}.brand{display:inline-flex;align-items:center;gap:9px}.brand-cat-logo{width:36px;height:36px;flex-shrink:0;display:block;object-fit:contain}@media(max-width:600px){.brand{gap:8px}.brand-cat-logo{width:32px;height:32px}}@media(max-width:360px){.brand{gap:6px}.brand-cat-logo{width:29px;height:29px}}
