@font-face{font-family:Birthday;src:local('Georgia')} :root{--paper:#faf5ec;--ink:#493549;--muted:#786975;--peach:#edbfa2;--pink:#eac2cf;--lilac:#c8c0e4;--yellow:#edce73;--green:#bccbb5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Segoe UI',Arial,sans-serif;font-size:16px;background-image:url("data:image/svg+xml,%3Csvg width='140' height='140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23584138' opacity='.035' filter='url(%23n)' d='M0 0h140v140H0z'/%3E%3C/svg%3E")}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #8663a1;outline-offset:6px}button{border:0}header{height:100px;max-width:1440px;margin:auto;padding:0 5%;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{color:var(--ink);text-decoration:none;font-size:16px;font-weight:600;letter-spacing:-.3px;display:flex;align-items:center;gap:12px}.brand span{font-size:35px;font-weight:400}.header-actions{display:flex;gap:20px;align-items:center}.date{background:none;font-size:15px;font-weight:600;letter-spacing:2px}.icon-button{background:transparent;border:1px solid #d8cfd2;border-radius:50%;width:44px;height:44px}main{min-height:calc(100svh - 185px);outline:none;position:relative}.scene{max-width:1200px;margin:auto;text-align:center;padding:25px 24px 32px;position:relative;animation:arrive .55s cubic-bezier(.22,1,.36,1)}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:12px;font-weight:600;margin:0 0 20px;color:var(--muted)}h1,h2{font-family:Birthday,Georgia,serif;font-weight:400;letter-spacing:-2.6px;line-height:1.1;margin:0 auto;max-width:900px;font-size:clamp(38px,4.6vw,68px)}h1 em{font-weight:400;color:#9b6576}h2{font-size:clamp(34px,3.7vw,52px);max-width:850px}.subtitle{font-size:17px;line-height:1.55;color:var(--muted);margin:19px auto 0}.primary{display:inline-flex;align-items:center;justify-content:center;gap:24px;background:var(--ink);color:var(--paper);border-radius:100px;min-height:54px;padding:15px 28px;font-size:15px;font-weight:600;transition:transform .2s,background .2s}.primary:hover{transform:translateY(-3px);background:#624961}.primary:active{transform:scale(.96)}.primary:disabled{opacity:.45;transform:none}.primary .arrow{font-size:22px;font-weight:400}.intro .stage{height:315px}.stage{position:relative;max-width:750px;margin:8px auto 10px;display:flex;align-items:center;justify-content:center;isolation:isolate}.halo{position:absolute;width:330px;height:250px;border-radius:48% 52% 50% 50%;background:#efe2df;z-index:-1;transform:rotate(-9deg)}.cat-wrap{position:relative;width:320px;max-width:75vw}.cat-button{display:block;background:none;width:100%;padding:0;position:relative;touch-action:manipulation}.cat{display:block;overflow:visible;width:100%;height:auto;filter:drop-shadow(0 12px 0 #49354907)}.cat .tail{transform-origin:245px 225px;animation:tail 3.7s ease-in-out infinite}.cat .head{transform-origin:160px 135px;transform:rotate(var(--head,0deg));transition:transform .25s}.cat .ear{transform-origin:center;transform-box:fill-box}.cat-button:hover .ear{animation:ear .7s ease-in-out}.cat .eye-open{transform-origin:center;transform-box:fill-box;animation:blink 5.1s infinite}.cat .eye-closed{display:none}.happy .eye-open{display:none}.happy .eye-closed{display:block}.cat .pupil{transform:translate(var(--eye-x,0px),var(--eye-y,0px));transition:transform .12s}.hat{display:none}.has-hat .hat{display:block}.cat .front-paw{transform-origin:112px 196px;transition:transform .3s}.swat .front-paw{transform:rotate(-36deg)}.jump{animation:jump .55s ease-out}.turned .head{transform:rotate(-13deg)}.bubble{position:absolute;bottom:88%;left:50%;transform:translateX(-50%);background:#fffdf7;border:1px solid #d9cbd3;border-radius:18px;padding:12px 16px;min-width:140px;max-width:280px;width:max-content;font-size:14px;box-shadow:0 5px 20px #49354908;z-index:5;pointer-events:none}.bubble:empty{display:none}.doodle{position:absolute;color:#ae8c6c;font-family:Georgia,serif;font-style:italic;font-size:18px;line-height:1.5;transform:rotate(-9deg);left:4%;top:40%}.doodle.right{left:auto;right:4%;top:42%;transform:rotate(9deg)}.doodle .line{display:block;font-size:32px}.spark{position:absolute;color:#ae8b43;font-size:34px;left:21%;top:10%;animation:float 5s ease-in-out infinite}.spark.two{left:auto;right:21%;top:65%;color:#9e81aa;font-size:26px}.tiny-note{font-size:13px;color:var(--muted);margin:14px 0 0}.hidden-paw{position:absolute;padding:10px;background:none;opacity:.4;transform:rotate(-22deg);font-size:22px;min-width:44px;min-height:44px;transition:opacity .2s,transform .2s}.hidden-paw:hover{opacity:1;transform:rotate(0) scale(1.1)}.hidden-paw.found{opacity:.18;cursor:default}.paw-0{bottom:8%;right:12%}.paw-1{left:12%;top:32%}.paw-2{right:5%;top:10%}.paw-3{left:5%;bottom:15%}.paw-4{right:10%;bottom:13%}footer{min-height:85px;max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:16px 5%;gap:18px;font-size:12px;color:var(--muted)}#chapter{min-width:220px}#steps{display:flex;gap:5px}#steps button{background:none;width:27px;height:38px;position:relative}#steps button:after{content:'';width:6px;height:6px;border-radius:50%;background:#d8ccd1;position:absolute;left:10px;top:16px}#steps button.active:after{background:var(--ink);width:20px;left:3px;border-radius:8px}#steps button:disabled{opacity:.35}#paw-counter{background:#f0e9e3;border:1px solid #e3d9d4;border-radius:40px;padding:10px 16px;display:flex;gap:9px;align-items:center;font-size:13px;min-height:44px;position:fixed;right:5%;bottom:20px;z-index:8}footer{padding-right:calc(5% + 140px)}#toast{position:fixed;left:50%;bottom:85px;transform:translate(-50%,15px);opacity:0;transition:.25s;background:var(--ink);color:var(--paper);padding:14px 22px;border-radius:20px;max-width:min(90vw,460px);width:max-content;font-size:15px;z-index:30;pointer-events:none;text-align:center}#toast.show{transform:translate(-50%,0);opacity:1}#confetti{position:fixed;inset:0;width:100%;height:100%;z-index:25;pointer-events:none}.pet .stage{height:310px}.pet .cat-button{touch-action:none}.meter-wrap{width:280px;max-width:90%;margin:0 auto 24px;text-align:left}.meter-label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:10px}.meter{height:8px;border-radius:20px;background:#e9dfdd;overflow:hidden}.meter span{height:100%;display:block;background:#a285ad;border-radius:20px;transition:width .15s;width:0}.pet-result{min-height:26px;font-size:15px;margin:0 0 16px}.gifts{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:45px auto 20px;max-width:1000px}.gift{background:none;padding:0 8px;min-height:300px;display:flex;flex-direction:column;align-items:center}.gift svg{width:220px;max-width:100%;overflow:visible;transition:transform .2s}.gift:hover:not(:disabled) svg{animation:wiggle .45s infinite}.gift .lid{transition:transform .7s,opacity .7s}.gift.open .lid{transform:translateY(-55px) rotate(-12deg);opacity:.25}.gift.open svg{width:130px}.gift-name{font-size:13px;letter-spacing:2px;margin:15px 0}.wish{font-family:Georgia,serif;font-size:21px;line-height:1.5;animation:arrive .5s ease-out}.scene-status{min-height:25px;margin:10px 0 20px;color:var(--muted);font-size:15px}.balloon-field{height:330px;position:relative;max-width:830px;margin:20px auto}.balloon{position:absolute;background:none;width:100px;height:180px;padding:0;left:var(--x);top:var(--y);animation:float 3.8s ease-in-out infinite;animation-delay:var(--delay);transition:opacity .18s,transform .18s}.balloon svg{width:100%;height:100%;overflow:visible}.balloon.popped{opacity:0;pointer-events:none;transform:scale(1.4);animation:none}.cake-stage{height:320px;margin:16px auto 0;max-width:650px;position:relative;display:flex;justify-content:center;align-items:end}.cake-art{width:340px;max-width:90%}.candles{position:absolute;bottom:212px;display:flex;gap:23px;z-index:2}.candle{position:relative;width:44px;height:95px;background:none;padding:0}.wax{height:51px;width:13px;position:absolute;bottom:0;left:16px;background:repeating-linear-gradient(-35deg,#b099bf 0 8px,#ddcce4 8px 14px);border-radius:4px}.flame{position:absolute;left:16px;top:6px;width:15px;height:28px;border-radius:60% 40% 50% 50%;background:#e5ac43;box-shadow:0 0 30px 12px #efc97650;transform:rotate(7deg);animation:flicker .8s ease-in-out infinite alternate}.candle.out .flame{display:none}.candle.out:after{content:'〰';position:absolute;left:10px;top:8px;color:#a9a0a6;animation:smoke 1.2s ease-out forwards}.cake-stage:before{content:'';position:absolute;width:310px;height:260px;background:#f2d88f;opacity:var(--glow,.15);border-radius:50%;z-index:-1;bottom:25px;filter:blur(30px);transition:opacity .5s}.final{padding-top:14px}.final h1{font-size:clamp(38px,4.3vw,60px);max-width:820px}.final .letter{max-width:670px;margin:24px auto;font-size:17px;line-height:1.7}.final .letter .lead{font-size:20px;font-family:Georgia,serif}.final .letter p{margin:13px 0}.final-bottom{display:flex;align-items:center;justify-content:center;gap:30px}.final-bottom .cat-wrap{width:150px}.final-bottom .cake-art{width:140px}.last-title{font-family:Georgia,serif;font-size:25px;margin:20px 0 8px}.final .date{margin-bottom:12px}.final-controls{margin-top:15px}.heart-particle{position:fixed;pointer-events:none;color:#b5798e;font-size:24px;z-index:15;animation:heart 1s ease-out forwards}#secret{position:fixed;bottom:85px;right:22px;width:290px;max-width:90vw;background:#e8e0ee;border:1px solid #cec0d8;border-radius:30px;padding:22px;text-align:center;box-shadow:0 10px 50px #49354915;z-index:20;animation:arrive .5s ease-out}#secret .secret-cat{width:100px;margin:auto}#secret p{line-height:1.5;margin:10px 0}#secret small{font-size:13px}.close{position:absolute;right:12px;top:10px;background:none;font-size:26px;width:44px;height:44px}#runner{position:fixed;bottom:63px;left:-130px;width:115px;background:none;padding:0;z-index:18;animation:run 6s linear forwards}#runner.caught{animation-play-state:paused}#runner .cat{transform:rotate(5deg)}[hidden]{display:none!important}@keyframes arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes tail{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(10deg)}}@keyframes blink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.07)}}@keyframes ear{50%{transform:rotate(10deg)}}@keyframes jump{45%{transform:translateY(-22px) scale(.97,1.04)}75%{transform:scale(1.04,.96)}}@keyframes float{50%{transform:translateY(-12px) rotate(3deg)}}@keyframes wiggle{25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes flicker{to{transform:rotate(-7deg) scale(.9,1.08)}}@keyframes smoke{to{opacity:0;transform:translateY(-45px) scale(1.8)}}@keyframes heart{to{opacity:0;transform:translateY(-75px) rotate(20deg)}}@keyframes run{to{left:calc(100% + 130px)}}
@media(min-width:1500px) and (min-height:950px){.scene{padding-top:55px}.intro .stage{height:390px}.intro .cat-wrap{width:380px}.intro .halo{width:380px;height:290px}.intro .primary{margin-top:12px}}
@media(max-width:700px){header{height:78px;padding:0 22px}.brand{font-size:13px;gap:8px}.brand span{font-size:29px}.header-actions{gap:8px}.date{font-size:13px}.icon-button{width:40px;height:40px}main{min-height:calc(100svh - 158px)}.scene{padding:23px 20px 25px}.eyebrow{font-size:11px;letter-spacing:2px;margin-bottom:18px}h1,h2{letter-spacing:-1.5px}h1{font-size:43px}.subtitle{font-size:15px;max-width:290px;margin-top:16px}.intro .stage{height:280px;margin-top:12px}.cat-wrap{width:275px}.halo{width:265px;height:210px}.doodle{font-size:13px;left:0;top:25%}.doodle.right{right:0;top:68%}.doodle .line{font-size:22px}.spark{left:13%;font-size:23px}.spark.two{right:8%}.primary{font-size:14px;padding:14px 21px;gap:15px;min-height:52px}.tiny-note{font-size:12px}.paw-0{right:0;bottom:19%}footer{padding:12px 22px 24px;align-items:start;min-height:80px;flex-direction:column;gap:0}#chapter{font-size:11px;min-width:0}#steps{gap:0}#steps button{width:24px;height:28px}#steps button:after{top:12px}#paw-counter{bottom:22px;right:20px;padding:10px 13px}.pet .stage{height:280px}.pet .paw-1{left:0;top:30%}.gifts{gap:0;margin:25px auto 15px;grid-template-columns:1fr}.gift{min-height:0;display:grid;grid-template-columns:100px 1fr;align-items:center;text-align:left;gap:15px;padding:8px 0}.gift svg,.gift.open svg{width:100px}.gift-name{font-size:12px}.wish{font-size:16px;line-height:1.45}.gift.open .lid{transform:translateY(-22px) rotate(-12deg)}.scene-status{font-size:14px;line-height:1.5}.balloon-field{height:320px;margin:20px -4px}.balloon{width:70px;height:150px;left:calc(var(--x)*.92)}.cake-stage{height:300px}.cake-art{width:310px}.candles{bottom:193px;gap:17px}.final h1{font-size:38px}.final .letter{font-size:15px;line-height:1.65;margin:20px auto}.final .letter .lead{font-size:18px}.final-bottom{gap:16px}.final-bottom .cat-wrap{width:110px}.final-bottom .cake-art{width:100px}.last-title{font-size:22px}.final{padding-top:12px}#secret{bottom:85px;right:15px}.paw-4{right:0;bottom:20%}}
.cake-stage{width:340px;max-width:100%}.cake-stage .cake-art{width:100%;max-width:100%}.candles{bottom:160px}
@media(max-width:700px){.paw-0,.paw-4{right:12px}.pet .paw-1{left:10px}.paw-2{top:auto;bottom:8%;right:12px}.candles{bottom:155px}}
@media(max-width:380px){h1{font-size:38px}.intro .stage{height:255px}.scene{padding-top:18px}.brand{font-size:12px}.header-actions{gap:3px}.header-actions .date{letter-spacing:1px}.cat-wrap{width:255px}.subtitle{font-size:14px}.doodle{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}#runner{animation:none;left:10px}.eye-open{animation:none!important}}
