[class*=anim-]{transform-box:fill-box;transform-origin:50% 100%}.anim-bob{animation:2.4s ease-in-out infinite mm-bob}.anim-hop{animation:.9s ease-in-out infinite mm-hop}.anim-blink{transform-origin:50%;animation:4.2s infinite mm-blink}.anim-spin{transform-origin:50%;animation:.9s ease-in-out infinite mm-spin}.anim-dance{animation:.8s ease-in-out infinite mm-dance}.anim-wave{transform-origin:0 100%;animation:.6s ease-in-out infinite alternate mm-wave}.anim-heli{transform-origin:50% 80%;animation:.5s linear infinite mm-heli}.anim-twinkle{transform-origin:50%;animation:1.6s ease-in-out infinite mm-twinkle}.anim-glow{transform-origin:50%;animation:1.8s ease-in-out infinite mm-glow}.anim-swirl{transform-origin:50%;animation:1.2s ease-in-out infinite mm-glow}.anim-z{animation:2.6s ease-in-out infinite mm-z}.anim-float,.anim-sigh{animation:2s ease-in-out infinite mm-float}.anim-wobble{animation:.35s ease-in-out infinite mm-wobble}.anim-nudge-r{animation:3s ease-in-out mm-nudge-r}.anim-nudge-l{animation:3s ease-in-out mm-nudge-l}.anim-chase{animation:1s ease-in-out 3 mm-chase}.anim-sky{transition:fill 3s}@keyframes mm-bob{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-3px)scale(1.015,.985)}}@keyframes mm-hop{0%,to{transform:translateY(0)scale(1.04,.96)}45%{transform:translateY(-14px)scale(.97,1.03)}}@keyframes mm-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes mm-spin{0%,to{transform:scaleX(1)}50%{transform:scaleX(-1)}}@keyframes mm-dance{0%,to{transform:rotate(-7deg)}50%{transform:rotate(7deg)translateY(-6px)}}@keyframes mm-wave{0%{transform:rotate(-12deg)}to{transform:rotate(14deg)}}@keyframes mm-heli{to{transform:rotate(360deg)}}@keyframes mm-twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}@keyframes mm-glow{0%,to{filter:brightness()}50%{filter:brightness(1.08)}}@keyframes mm-z{0%{opacity:0;transform:translateY(10px)}30%{opacity:1}to{opacity:0;transform:translate(10px,-24px)}}@keyframes mm-wobble{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes mm-nudge-r{0%,to{transform:translate(0)}30%,70%{transform:translate(40px)}}@keyframes mm-nudge-l{0%,to{transform:translate(0)}30%,70%{transform:translate(-40px)}}@keyframes mm-chase{0%,to{transform:translate(0)}50%{transform:translate(60px)}}@keyframes mm-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@media (prefers-reduced-motion:reduce){[class*=anim-]{transition:none!important;animation:none!important}}:root{color:#7a4b7e;font-family:ui-rounded,Arial Rounded MT Bold,system-ui,sans-serif}html{touch-action:manipulation}html,body,#root{overscroll-behavior:none;background:#fff0f6;height:100%;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}input{-webkit-user-select:text;user-select:text}button{font:inherit;color:inherit;touch-action:manipulation;cursor:pointer}.stage,.stage svg{touch-action:none}.stage{position:fixed;inset:0}.stage>svg{display:block}.fx{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.btn{background:#fff;border:3px solid #f3c6dc;border-radius:22px;min-width:64px;min-height:64px;padding:0 6px;font-size:32px;line-height:1;position:relative;box-shadow:0 4px #f3c6dc}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #f3c6dc}.btn:disabled{opacity:.4;filter:grayscale(.6)}.btn.wide{padding:0 16px;font-size:24px;font-weight:800}.btn.go{background:#ffe1ee}.price{font-size:13px;font-weight:800;position:absolute;bottom:2px;right:2px}.hud-tl,.hud-tr{align-items:center;gap:6px;display:flex;position:fixed;top:10px}.hud-tl{left:10px}.hud-tr{right:26px}.hud-l,.hud-r{flex-direction:column;gap:10px;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.hud-l{left:10px}.hud-r{right:10px}.care .btn{width:76px;height:76px;font-size:40px}.hud-r .btn{width:76px;height:76px;font-size:38px}.hud-r .moon{background:#2c3770;border-color:#8fa3ff;animation:1.6s ease-in-out infinite mm-pulse;box-shadow:0 4px #8fa3ff}.pill,.need{background:#ffffffe6;border:3px solid #f3c6dc;border-radius:20px;font-weight:800}.pill{padding:12px 14px;font-size:26px}.need{flex-direction:column;align-items:center;padding:4px 6px;font-size:26px;display:flex}.need meter{width:46px;height:10px}.dots,.steps{justify-content:center;gap:4px;display:flex}.dots{position:absolute;bottom:4px;left:0;right:0}.dot{background:#f3c6dc;border-radius:50%;width:9px;height:9px;display:block}.dot.on{background:#ff6fa8}.steps .dot{width:16px;height:16px}.learning{background:#fff6fb;border-style:dashed}.shake{animation:.4s ease-in-out mm-shake}.err-pop{white-space:nowrap;pointer-events:none;font-size:22px;animation:1.2s ease-out forwards mm-pop;position:absolute;top:-6px;left:50%}.fx-rise{transform-box:fill-box;animation:1.2s ease-out forwards mm-rise}.save-warn{opacity:.6;pointer-events:none;font-size:14px;position:fixed;top:2px;right:2px}.screen{background:linear-gradient(#ffe6f2,#e6f0ff);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}.title h1{color:#ff6fa8;text-shadow:0 5px #fff;margin:0;font-size:84px}.title-pet{width:300px;height:300px}.btn.play{background:#ffe1ee;border-radius:40px;width:180px;height:120px;font-size:64px}.title-sound{position:fixed;top:16px;right:16px}.adopt{justify-content:flex-start;padding-top:16px}.adopt-nav{justify-content:space-between;align-items:center;width:calc(100% - 32px);display:flex}.adopt-nav>span:empty{width:64px}.cards{flex-wrap:wrap;justify-content:center;gap:16px;max-width:980px;margin-top:40px;display:flex}.card{background:#fff;border:4px solid #f3c6dc;border-radius:30px;flex-direction:column;justify-content:center;align-items:center;width:180px;height:240px;font-size:24px;font-weight:800;display:flex;box-shadow:0 6px #f3c6dc}.card.on{background:#fff0f7;border-color:#ff6fa8;transform:scale(1.05)}.card-pet{width:160px;height:160px}.big-pet{width:300px;height:300px}.colours,.naming{flex-direction:column;align-items:center;gap:10px;display:flex}.row{align-items:center;gap:10px;display:flex}.row-icon{font-size:36px}.swatches{gap:6px;display:flex}.swatch{border:4px solid #fff;border-radius:50%;width:64px;height:64px;padding:0;box-shadow:0 0 0 2px #e6c6dc}.swatch.on{transform:scale(1.08);box-shadow:0 0 0 5px #ff6fa8}.name-input{box-sizing:border-box;width:340px;height:64px;font:inherit;text-align:center;color:#7a4b7e;border:3px solid #f3c6dc;border-radius:22px;font-size:36px;font-weight:800}.msg{color:#c0507e;margin:0;font-size:26px;font-weight:800}@keyframes mm-shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)}75%{transform:translate(7px)}}@keyframes mm-pop{0%{opacity:0;transform:translate(-50%)}20%{opacity:1}to{opacity:0;transform:translate(-50%,-36px)}}@keyframes mm-rise{0%{opacity:0;transform:translateY(20px)scale(.6)}25%{opacity:1;transform:translateY(0)scale(1.1)}to{opacity:0;transform:translateY(-70px)scale(1)}}@keyframes mm-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.shake,.err-pop,.fx-rise,.moon{animation:none!important}}.sheet-back{z-index:10;background:#7a4b7e2e;position:fixed;inset:0}.sheet{box-sizing:border-box;background:#fff8fc;border:4px solid #f3c6dc;border-bottom:0;border-radius:32px 32px 0 0;width:min(960px,100%);max-height:52vh;padding:10px 16px 16px;position:absolute;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}.sheet-x{background:#ffe1ee;width:64px;height:64px;font-size:30px;position:absolute;top:8px;right:12px}.sheet-title{margin:0 0 6px;font-size:28px}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:10px;padding-right:76px;display:flex}.tab{flex-direction:column;justify-content:center;align-items:center;min-width:72px;padding:0 10px;font-size:28px;display:flex}.tab small{font-size:14px;font-weight:800}.tab.on{background:#ffd6e8;border-color:#ff6fa8;box-shadow:0 4px #ff6fa8}.tiles{flex-wrap:wrap;gap:10px;display:flex}.tile{background:#fff;border:3px solid #f3c6dc;border-radius:20px;flex-direction:column;justify-content:flex-start;align-items:center;gap:2px;width:108px;min-height:108px;padding:6px 4px;font-size:14px;font-weight:800;display:flex;position:relative;box-shadow:0 4px #f3c6dc}.tile:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #f3c6dc}.tile.on{background:#fff0f7;border-color:#ff6fa8;box-shadow:0 0 0 4px #ff6fa8}.tile.focus{outline-offset:2px;outline:4px dashed #ffb347}.tile .prev{background:#e4d4f4;border-radius:12px;width:64px;height:64px}.tile .prev.none{justify-content:center;align-items:center;font-size:40px;display:flex}.tile.owned{opacity:.75;background:#eefaf0;border-color:#b9e4c4;box-shadow:0 4px #b9e4c4}.got-it{color:#2f9a58}.price-tag{font-size:15px}.tile.saving progress{width:84px;height:10px}.tile.sparkle{background:#fffbe6;border-color:#ffd34e;animation:1.4s ease-in-out infinite mm-glow;box-shadow:0 4px #ffd34e,0 0 14px #ffe27a}.tile.sparkle:after{content:"✨";font-size:22px;animation:1s ease-in-out infinite mm-pulse;position:absolute;top:-8px;right:-4px}.tile.sparkle.on{border-color:#ff6fa8;box-shadow:0 0 0 4px #ff6fa8}.got{background:#fff1b8;border-radius:22px;align-items:center;gap:12px;margin-bottom:10px;padding:6px 12px;display:flex;position:relative}.got .prev{width:64px;height:64px}.btn.buy{min-height:72px;font-size:30px}.coin-burst{pointer-events:none;position:absolute;top:50%;left:40px}.coin-burst i{font-size:26px;font-style:normal;animation:.9s ease-out forwards mm-burst;position:absolute}@keyframes mm-burst{0%{opacity:1;transform:rotate(var(--a)) translateY(0)}to{opacity:0;transform:rotate(var(--a)) translateY(-80px) rotate(calc(-1 * var(--a)))}}@media (prefers-reduced-motion:reduce){.tile.sparkle,.tile.sparkle:after,.coin-burst i{animation:none!important}}.sheet.low{max-height:40vh}.stage{transition:transform .25s ease-out}body:has(.sheet.low) .stage{transform:translateY(-34vh)}@media (prefers-reduced-motion:reduce){.stage{transition:none}}.sheet:has(.picker){max-height:86vh}.picker .tiles{margin-bottom:12px}.game-cards{justify-content:center;gap:16px;display:flex}.game-col{flex-direction:column;align-items:center;gap:10px;display:flex}.game-card{background:#fff;border:4px solid #f3c6dc;border-radius:34px;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:260px;height:200px;font-size:26px;font-weight:900;display:flex;box-shadow:0 6px #f3c6dc}.game-card:active{transform:translateY(4px);box-shadow:0 2px #f3c6dc}.gc-icon{font-size:84px;animation:1.8s ease-in-out infinite mm-pulse}.gc-star{background:#fff7d1;border-color:#ffd34e;box-shadow:0 6px #ffd34e}.gc-memory{background:#ffeef6}.gc-bubbles{background:#e6f5ff;border-color:#9fd3ff;box-shadow:0 6px #9fd3ff}.sizes{gap:8px;display:flex}.btn.size{padding:0 14px;font-size:24px;font-weight:900}.btn.size.on{background:#ffd6e8;border-color:#ff6fa8;box-shadow:0 4px #ff6fa8}.lock{font-size:22px;position:absolute;top:-12px;right:-10px}.mg{z-index:5;background:#fff0f6;position:fixed;inset:0}.mg-field{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.mg-bar{z-index:6;align-items:center;gap:12px;display:flex;position:fixed;top:10px;left:10px;right:10px}.mg-time{background:#fffa;border:3px solid #f3c6dc;border-radius:11px;flex:1;height:22px;overflow:hidden}.mg-time i{background:linear-gradient(90deg,#ff9cc2,#ffd34e,#9fe3b8,#9fd3ff);border-radius:8px;height:100%;display:block}.mg-rise{transform-box:fill-box;transform-origin:50%;animation:.7s ease-out forwards mm-rise}.mg-shimmer{transform-box:fill-box;transform-origin:50%;animation:.9s ease-in-out infinite mg-shimmer}@keyframes mg-shimmer{0%,to{filter:brightness();transform:scale(1)}50%{filter:brightness(1.25)drop-shadow(0 0 8px #ffe27a);transform:scale(1.08)}}.mg-memory{background:linear-gradient(#ffeef6,#e9dcff);grid-template-columns:repeat(4,1fr);gap:14px;display:grid;position:absolute;inset:96px 40px 24px}.mg{background:linear-gradient(#ffeef6,#e9dcff)}.mcard{perspective:800px;background:0 0;border:0;min-height:64px;padding:0;position:relative}.mcard-in{transform-style:preserve-3d;transition:transform .35s ease-out;position:absolute;inset:0}.mcard.up .mcard-in{transform:rotateY(180deg)}.mcard-back,.mcard-face{backface-visibility:hidden;border-radius:22px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.mcard-back{background:repeating-linear-gradient(45deg,#ff9cc2 0 14px,#ffb8d4 14px 28px);border:4px solid #fff;font-size:44px;box-shadow:0 5px #f3a6c8}.mcard-face{background:#fff;border:4px solid #f3c6dc;transform:rotateY(180deg)}.mcard-face svg{background:0 0;width:82%;height:82%}.mcard.matched{animation:.6s ease-in-out 2 mm-pulse}.mcard.matched .mcard-face{border-color:#ffd34e;box-shadow:0 0 16px #ffe27a}.mg-end{background:linear-gradient(#fff7d1,#ffeef6);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.mg-confetti{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.mg-twinkle{transform-box:fill-box;transform-origin:50%;animation:1.2s ease-in-out infinite mm-pulse}.mg-great{color:#ff5c93;text-shadow:0 5px #fff;margin:0;font-size:72px;font-weight:900;animation:1s ease-in-out infinite mm-pulse;position:relative}.mg-end-pet{width:260px;height:260px;position:relative;overflow:visible}.mg-won{color:#e09a00;font-size:56px;font-weight:900;position:relative}.mg-end .row{position:relative}.mg-end .btn.wide{min-height:80px;font-size:30px}@media (prefers-reduced-motion:reduce){.mg-rise,.mg-shimmer,.mg-twinkle,.mg-great,.gc-icon,.mcard-in,.mcard.matched{transition:none!important;animation:none!important}}.flash{z-index:20;pointer-events:none;background:#fff;animation:.2s ease-out forwards flash;position:fixed;inset:0}@keyframes flash{0%{opacity:1}to{opacity:0}}.sheet:has(.photo-body){max-height:94vh}.photo-body{align-items:center;gap:16px;padding-top:8px;display:flex}.photo-img{border-radius:12px;flex:0 0 56%;align-self:flex-start;width:56%;height:auto;margin-top:56px;box-shadow:0 4px 12px #7a4b7e33}.photo-side{flex-direction:column;flex:1;gap:10px;min-width:0;margin-top:56px;display:flex}.photo-frames{gap:8px;display:flex}.btn.frame{border-radius:16px;width:auto;min-width:64px;height:auto;min-height:64px;padding:4px}.btn.frame.on{background:#ffd6e8;border-color:#ff6fa8;box-shadow:0 4px #ff6fa8}.photo-side .btn.wide{min-height:72px;font-size:26px}.photo-msg{color:#7a4b7e;min-height:24px;margin:0;font-weight:800}.hold-ring{pointer-events:none;width:calc(100% + 12px);height:calc(100% + 12px);position:absolute;inset:-6px;transform:rotate(-90deg)}.hold-ring circle{fill:none;stroke:#ff6fa8;stroke-width:3px;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100px;animation:linear forwards hold-fill}@keyframes hold-fill{to{stroke-dashoffset:0}}.sheet:has(.grown){max-height:86vh}.grown .sheet-title{margin-bottom:14px;line-height:56px}.gu-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px;display:grid}.grown .btn.wide{min-height:72px;font-size:24px}.btn.alert{background:#fff1b8;border-color:#ffb300;animation:1.6s ease-in-out infinite mm-pulse;box-shadow:0 4px #ffb300}.btn.danger{background:#ffe9e9;border-color:#f5a3a3;box-shadow:0 4px #f5a3a3}.gu-warn{background:#fff1b8;border-radius:18px;margin:0 0 10px;padding:10px 14px;font-weight:800}.gu-lead{margin:0 0 6px;font-size:26px;font-weight:800}.gu-preview{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;font-weight:800;display:flex}.gu-preview figure{text-align:center;margin:0}.gu-pet{width:96px;height:96px}.gu-pick{flex-direction:column;align-items:center;width:auto;height:auto;padding:6px 10px;display:flex}.install-back{z-index:20;background:#7a4b7e55;place-items:center;display:grid;position:fixed;inset:0}.install{text-align:center;background:#fff0f6;border-radius:28px;width:min(620px,92vw);padding:18px 22px}.install h2{margin:0 0 8px;font-size:28px}.install-art{width:100%;height:auto}.install-warn{font-weight:800}.install-small{font-size:15px}.update-notice{min-height:72px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.turn-me{display:none}@media (orientation:portrait){.turn-me{z-index:100;background:linear-gradient(#ffe6f2,#e6f0ff);place-items:center;display:grid;position:fixed;inset:0}}.turn-card{text-align:center;background:#fff8fc;border:4px solid #f3c6dc;border-radius:36px;width:min(520px,86vw);padding:24px;box-shadow:0 8px #f3c6dc}.turn-art{width:100%;height:auto}.turn-label{color:#ff6fa8;margin:8px 0 0;font-size:40px;font-weight:900}.turn-ipad{animation:2.4s ease-in-out infinite mm-turn}@keyframes mm-turn{0%,25%{transform:rotate(0)}55%,85%{transform:rotate(90deg)}to{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.turn-ipad{animation:none;transform:rotate(90deg)}}
