/* Small discoveries, a growing bouquet, and Zita's special delivery. */
[hidden]{display:none!important}
.cat-interaction{cursor:pointer;outline:none;touch-action:manipulation}
.cat-interaction:focus-visible>ellipse{stroke:#72578c;stroke-width:3;stroke-dasharray:4 4}
.cat-whisper{position:absolute;bottom:16%;left:4%;width:92%;padding:11px 14px;margin:0!important;max-width:none!important;border:1px solid #cfbddb;border-radius:16px;background:#fffdf5;box-shadow:0 4px 14px #4b3e5412;font-size:12px!important;text-align:center;color:#604b73!important;opacity:0;transform:translateY(5px);pointer-events:none;transition:opacity .18s,transform .18s;z-index:3}
.cat-whisper:empty{display:none}
.cat-whisper.visible{opacity:1;transform:translateY(0)}
.cat-just-petted .yarn-roll{animation:secret-yarn .9s ease-in-out 2!important}
.cat-just-petted .cat-eyes{animation:happy-eyes .8s ease-in-out 2!important}
@keyframes secret-yarn{0%,100%{transform:translateX(-13px)}40%{transform:translate(41px,-9px)}70%{transform:translateX(20px)}}
@keyframes happy-eyes{0%,100%{transform:scaleY(1)}40%,65%{transform:scaleY(.16)}}
.bouquet-panel{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 38px;padding:16px 24px;background:linear-gradient(120deg,#eef1e6,#f3edf5);border:1px solid #d9dfd0;border-radius:22px;min-height:190px;overflow:hidden}
.bouquet-panel>div:first-child{flex:1;min-width:0;text-align:left}
.bouquet-panel b{font-family:'DM Serif Display',Georgia,serif;font-size:25px;font-weight:400}
.bouquet-panel p{font-size:12px;margin:8px 0 0;color:var(--muted)}
.bouquet-display{width:230px;max-width:55%;flex:none}
.bouquet{display:block;width:100%;height:auto;overflow:visible}
.bouquet .bouquet-paper,.bouquet .bouquet-fold,.bouquet .bouquet-ribbon{opacity:0}
.bouquet-complete .bouquet-paper,.bouquet-complete .bouquet-fold,.bouquet-complete .bouquet-ribbon{opacity:1}
.bouquet-complete .bouquet-paper,.bouquet-complete .bouquet-fold{animation:bouquet-wrap .8s ease-out both;animation-delay:1.2s}
.bouquet-complete .bouquet-ribbon{transform-origin:190px 278px;animation:tie-ribbon .65s ease-out both;animation-delay:1.8s}
.awaiting-flower:not(.bouquet-arriving) .bouquet-paper,.awaiting-flower:not(.bouquet-arriving) .bouquet-fold,.awaiting-flower:not(.bouquet-arriving) .bouquet-ribbon{animation-play-state:paused}
.bouquet .fresh-flower .bouquet-bloom{opacity:0}
.bouquet-arriving .fresh-flower .bouquet-bloom{animation:new-flower-bloom .6s cubic-bezier(.2,.8,.3,1.2) both;animation-delay:1.05s}
.bouquet-arriving .fresh-flower>path{animation:stem-arrives .5s ease-out both;animation-delay:.8s}
.flower-earned{display:inline-block;font-size:32px;line-height:1;color:var(--purple);margin-top:10px}
.flying-flower{position:fixed;font-size:32px;color:#a47aba;pointer-events:none;z-index:20;line-height:1;text-shadow:0 2px 8px #fff}
.win .bouquet-panel{margin:22px -4px 10px;padding:12px 16px;min-height:170px}
.win .bouquet-panel b{font-size:21px}
.win .bouquet-panel p{font-size:11px}
.win .bouquet-display{width:200px}
@keyframes new-flower-bloom{from{transform:scale(.05);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes stem-arrives{from{opacity:0}to{opacity:1}}
@keyframes bouquet-wrap{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes tie-ribbon{from{opacity:0;transform:scale(.1)}to{opacity:1;transform:scale(1)}}
.special-delivery{text-align:center;max-width:620px;margin:30px auto 40px;padding:28px 18px 0;border-radius:28px;border:1px solid #ded3e7;background:radial-gradient(ellipse at 50% 80%,#eee4f1,transparent 70%),#fffdf7;overflow:hidden}
.special-delivery h1{font-size:clamp(39px,7vw,60px);margin-bottom:14px;letter-spacing:-1px}
.special-delivery>p{color:var(--muted);font-size:14px;margin-bottom:0}
.special-delivery>.bouquet-display{width:260px;max-width:75%;margin:0 auto -25px}
.courier-stage{position:relative;width:100%;max-width:400px;margin:0 auto;aspect-ratio:400/260}
.courier-arrival{position:relative;width:100%;height:100%;animation:zita-delivers 2.2s cubic-bezier(.22,.61,.36,1) both}
.courier-arrival>svg{display:block;width:100%;height:100%;overflow:visible}
.courier-cat .cat-body{animation:delivery-steps .35s ease-in-out 6;transform-box:fill-box;transform-origin:center bottom}
.courier-tag{position:absolute;left:65%;top:64%;width:29%;padding:15px 6px 10px;border-radius:5px 14px 14px 5px;background:#f7e8c4;border:1.5px solid #bca278;color:#64503a;box-shadow:0 5px 0 #9a876b18;transform:rotate(7deg);min-height:68px;animation:gift-tag-swing 1.1s ease-in-out 2;animation-delay:2.1s}
.courier-tag:before{content:'';display:block;width:5px;height:5px;border-radius:50%;background:#ab8cb5;margin:0 auto 5px}
.courier-tag span{display:block;font-family:'DM Serif Display',Georgia,serif;font-size:21px;font-weight:400}
.courier-tag small{display:block;font-size:10px;margin-top:3px}
.courier-tag:hover{transform:rotate(0) translateY(-2px);background:#f5e0b1}
@keyframes zita-delivers{from{transform:translateX(-115%);opacity:0}15%{opacity:1}to{transform:translateX(0);opacity:1}}
@keyframes delivery-steps{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}
@keyframes gift-tag-swing{0%,100%{transform:rotate(7deg)}50%{transform:rotate(-5deg)}}
@media(max-width:550px){.bouquet-panel{padding:12px 15px;min-height:170px;margin-bottom:28px}.bouquet-panel b{font-size:21px}.bouquet-panel p{font-size:10px;line-height:1.5}.bouquet-display{width:190px;max-width:54%}.win .bouquet-panel{padding:10px;min-height:150px}.win .bouquet-panel b{font-size:18px}.win .bouquet-panel p{font-size:10px}.win .bouquet-display{width:165px}.special-delivery{padding:25px 8px 8px}.special-delivery .eyebrow{font-size:10px;letter-spacing:1.4px}.special-delivery>.bouquet-display{margin-bottom:-10px}.courier-tag span{font-size:19px}.cat-whisper{font-size:11px!important;padding:9px}}
@media(prefers-reduced-motion:reduce){.bouquet *,.courier-arrival,.courier-cat *,.courier-tag,.cat-just-petted *{animation:none!important;transition:none!important}.bouquet .fresh-flower .bouquet-bloom{opacity:1}.cat-whisper{transition:none}}
