@import "https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;700;800&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--pink:#ff7bb0;--pink-soft:#ffd1e5;--purple:#b388ff;--cream:#fff6fb;--ink:#5b3a58;--yellow:#ffd54f;--shadow:0 10px 30px #ff7bb047}html{height:100%}body{min-height:100%;color:var(--ink);cursor:default;background:linear-gradient(120deg,#ffe3f1,#e8dbff,#ffeccf,#d8f7ff,#ffe3f1) 0 0/400% 400%;font-family:"Baloo 2",Comic Sans MS,cursive,sans-serif;animation:24s infinite bg-drift;overflow-x:hidden}@keyframes bg-drift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}#bg-paws{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.bg-paw{filter:saturate(.8);animation:linear infinite float-up;position:absolute;bottom:-60px}@keyframes float-up{0%{transform:translateY(0)rotate(-12deg)}50%{transform:translateY(-55vh)rotate(14deg)translate(24px)}to{transform:translateY(-115vh)rotate(-10deg)}}#confetti-layer{pointer-events:none;z-index:50;position:fixed;inset:0;overflow:hidden}.confetto{animation:ease-in forwards confetti-fall;position:absolute;top:-40px}@keyframes confetti-fall{0%{opacity:1;transform:translate(0)rotate(0)}85%{opacity:1}to{transform:translate(var(--drift), 105vh) rotate(var(--spin));opacity:0}}.spark{font-size:14px;animation:.7s ease-out forwards spark-fly;position:absolute;transform:translate(-50%,-50%)}@keyframes spark-fly{0%{opacity:1;transform:translate(-50%,-50%)scale(.4)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.2);opacity:0}}.app{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:22px;max-width:560px;margin:0 auto;padding:28px 20px 40px;display:flex;position:relative}.header{animation:.8s cubic-bezier(.34,1.56,.64,1) both drop-in}@keyframes drop-in{0%{opacity:0;transform:translateY(-60px)scale(.8)}to{opacity:1;transform:translateY(0)scale(1)}}.logo{-webkit-user-select:none;user-select:none;cursor:pointer;justify-content:center;align-items:center;gap:10px;display:flex}.logo-paw{transform-origin:60px 75px;animation:3s ease-in-out infinite paw-bob}@keyframes paw-bob{0%,to{transform:rotate(-4deg)translateY(0)}50%{transform:rotate(4deg)translateY(-5px)}}.toe{transform-origin:50%;animation:3s ease-in-out infinite toe-wiggle}.toe-1{animation-delay:0s}.toe-2{animation-delay:.15s}.toe-3{animation-delay:.3s}.toe-4{animation-delay:.45s}@keyframes toe-wiggle{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.sparkle{transform-origin:50%;transform-box:fill-box;animation:1.8s ease-in-out infinite twinkle}.sparkle.s2{animation-delay:.5s}.sparkle.s3{animation-delay:1s}@keyframes twinkle{0%,to{opacity:.5;transform:scale(.6)rotate(0)}50%{opacity:1;transform:scale(1.15)rotate(20deg)}}.logo-word{letter-spacing:1px;font-size:clamp(2.6rem,9vw,3.6rem);font-weight:800;display:flex}.logo-letter{background:linear-gradient(180deg, var(--pink), var(--purple));-webkit-text-fill-color:transparent;animation:2.4s ease-in-out infinite letter-bounce;animation-delay:calc(var(--i,0) * .1s);-webkit-background-clip:text;background-clip:text;display:inline-block}.logo-letter:first-child{--i:0}.logo-letter:nth-child(2){--i:1}.logo-letter:nth-child(3){--i:2}.logo-letter:nth-child(4){--i:3}.logo-letter:nth-child(5){--i:4}.logo-letter:nth-child(6){--i:5}.logo-letter:nth-child(7){--i:6}.logo-pop{background:linear-gradient(180deg, var(--purple), var(--pink));-webkit-background-clip:text;background-clip:text}.logo-bang{background:linear-gradient(180deg, var(--yellow), #ff9d76);-webkit-background-clip:text;background-clip:text}@keyframes letter-bounce{0%,20%,to{transform:translateY(0)}10%{transform:translateY(-8px)scale(1.08)}}.logo.party .logo-paw{animation:.8s cubic-bezier(.34,1.56,.64,1) paw-party}@keyframes paw-party{0%{transform:rotate(0)scale(1)}30%{transform:rotate(-18deg)scale(1.25)}60%{transform:rotate(14deg)scale(1.15)}to{transform:rotate(0)scale(1)}}.tagline{opacity:.75;margin-top:4px;font-size:1.05rem;font-weight:500}.tagline em{color:var(--pink);font-style:normal;font-weight:700}.pet-picker{flex-wrap:wrap;justify-content:center;gap:10px;animation:.8s cubic-bezier(.34,1.56,.64,1) .15s both drop-in;display:flex}.pet-chip{color:var(--ink);cursor:pointer;background:#ffffffbf;border:3px solid #0000;border-radius:999px;align-items:center;gap:7px;padding:8px 16px;font-family:inherit;font-size:1rem;font-weight:700;transition:transform .2s cubic-bezier(.34,1.56,.64,1),border-color .2s,background .2s,box-shadow .2s;display:flex;box-shadow:0 4px 14px #5b3a581f}.pet-chip:hover{transform:translateY(-4px)scale(1.06);box-shadow:0 8px 20px #5b3a582e}.pet-chip:hover .pet-emoji{animation:.5s ease-in-out infinite emoji-wiggle}@keyframes emoji-wiggle{0%,to{transform:rotate(-14deg)}50%{transform:rotate(14deg)}}.pet-emoji{font-size:1.25rem;display:inline-block}.pet-icon-svg{justify-content:center;align-items:center;display:inline-flex}.pet-svg{width:1.3em;height:1.3em;display:block}.pet-chip.is-active{border-color:var(--pink);box-shadow:var(--shadow);background:#fff}.pet-chip.jelly{animation:.6s cubic-bezier(.34,1.56,.64,1) jelly}@keyframes jelly{0%{transform:scale(1)}30%{transform:scale(1.2,.8)}50%{transform:scale(.85,1.15)}70%{transform:scale(1.08,.94)}to{transform:scale(1)}}.stage{flex-direction:column;align-items:center;gap:24px;width:100%;animation:.8s cubic-bezier(.34,1.56,.64,1) .3s both drop-in;display:flex}.name-card{width:min(100%,420px);box-shadow:var(--shadow);border:3px dashed var(--pink-soft);background:#ffffffe6;border-radius:32px;position:relative}.name-card.pop .name-card-inner{animation:.55s cubic-bezier(.34,1.56,.64,1) card-pop}@keyframes card-pop{0%{transform:scale(.92)rotate(-1.5deg)}55%{transform:scale(1.05)rotate(1deg)}to{transform:scale(1)rotate(0)}}.name-card-inner{flex-direction:column;align-items:center;gap:8px;padding:30px 26px 34px;transition:opacity .2s,transform .2s;display:flex}.name-card.is-loading .name-card-inner{opacity:.58;transform:scale(.985)}.name-card.is-loading:after{content:"🐾";font-size:1.25rem;animation:.7s ease-in-out infinite paw-bob;position:absolute;top:16px;right:18px}.fav-btn:disabled,.fav-remove:disabled,.pop-btn[aria-busy=true]{cursor:wait}.name-emoji{font-size:3rem;line-height:1}.name-emoji .pet-svg{width:1.4em;height:1.4em}.name-emoji.spin{animation:.7s cubic-bezier(.34,1.56,.64,1) emoji-spin}@keyframes emoji-spin{0%{transform:scale(0)rotate(-360deg)}70%{transform:scale(1.25)rotate(10deg)}to{transform:scale(1)rotate(0)}}.pet-name{width:100%;color:var(--pink);white-space:nowrap;min-height:1.3em;font-size:clamp(2.2rem,8vw,3rem);font-weight:800;line-height:1.2}.letter{animation:.45s cubic-bezier(.34,1.56,.64,1) both letter-pop;display:inline-block}@keyframes letter-pop{0%{opacity:0;transform:scale(0)translateY(20px)rotate(15deg)}70%{transform:scale(1.25)translateY(-4px)rotate(-4deg)}to{opacity:1;transform:scale(1)translateY(0)rotate(0)}}.name-blurb{opacity:0;min-height:1.5em;font-size:1rem;font-weight:500}.name-blurb.show{animation:.6s both blurb-in}@keyframes blurb-in{0%{opacity:0;transform:translateY(8px)}to{opacity:.8;transform:translateY(0)}}.fav-btn{color:#e3d0de;cursor:pointer;background:#fff;border:none;border-radius:50%;width:52px;height:52px;font-size:1.5rem;transition:transform .2s cubic-bezier(.34,1.56,.64,1),color .2s;position:absolute;top:-14px;right:-10px;box-shadow:0 6px 16px #5b3a5833}.fav-btn:hover{transform:scale(1.18)rotate(-8deg)}.fav-btn.is-faved{color:#ff4f8b}.fav-btn.heartbeat .heart{animation:.7s cubic-bezier(.34,1.56,.64,1) heartbeat;display:inline-block}@keyframes heartbeat{0%{transform:scale(1)}25%{transform:scale(1.7)}45%{transform:scale(.9)}65%{transform:scale(1.35)}to{transform:scale(1)}}.pop-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;font-family:inherit}.pop-btn-face{background:linear-gradient(135deg, var(--pink), var(--purple));color:#fff;box-shadow:0 8px 0 #d15c93, var(--shadow);border-radius:999px;align-items:center;gap:10px;padding:16px 34px;font-size:1.5rem;font-weight:800;transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .15s;animation:2.6s ease-in-out infinite btn-breathe;display:flex}@keyframes btn-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.pop-btn:hover .pop-btn-face{animation-play-state:paused;transform:scale(1.08)rotate(-1.5deg)}.pop-btn:active .pop-btn-face{transform:scale(.94)translateY(6px);box-shadow:0 2px #d15c93,0 4px 12px #ff7bb04d}.pop-btn.boing .pop-btn-face{animation:.5s cubic-bezier(.34,1.56,.64,1) boing}@keyframes boing{0%{transform:scale(1)}30%{transform:scale(1.15,.85)}60%{transform:scale(.9,1.1)}to{transform:scale(1)}}.pop-btn-paw{animation:1.6s ease-in-out infinite paw-wave;display:inline-block}@keyframes paw-wave{0%,to{transform:rotate(0)}30%{transform:rotate(-20deg)scale(1.15)}60%{transform:rotate(16deg)}}.favorites{width:min(100%,420px);animation:.8s cubic-bezier(.34,1.56,.64,1) .45s both drop-in}.favorites-title{margin-bottom:10px;font-size:1.2rem;font-weight:800}.fav-title-heart{color:#ff4f8b;animation:1.6s ease-in-out infinite heartbeat;display:inline-block}.fav-list{flex-wrap:wrap;justify-content:center;gap:8px;list-style:none;display:flex}.fav-item{background:#ffffffd9;border-radius:999px;align-items:center;gap:6px;padding:6px 8px 6px 12px;font-weight:700;transition:transform .2s cubic-bezier(.34,1.56,.64,1);animation:.45s cubic-bezier(.34,1.56,.64,1) both fav-in;display:flex;box-shadow:0 3px 10px #5b3a581f}.fav-item:hover{transform:translateY(-3px)rotate(-2deg)scale(1.05)}.fav-item-emoji .pet-svg{width:1.15em;height:1.15em}@keyframes fav-in{0%{opacity:0;transform:scale(0)rotate(-10deg)}to{opacity:1;transform:scale(1)rotate(0)}}.fav-item.bye{animation:.35s ease-in both fav-out}@keyframes fav-out{to{opacity:0;transform:scale(0)rotate(12deg)}}.fav-remove{background:var(--pink-soft);color:var(--ink);cursor:pointer;border:none;border-radius:50%;width:22px;height:22px;font-size:.7rem;font-weight:800;transition:transform .15s,background .15s}.fav-remove:hover{background:var(--pink);color:#fff;transform:rotate(90deg)scale(1.15)}.fav-empty{opacity:.6;font-size:.95rem}.footer{opacity:.65;font-size:.9rem;animation:.8s cubic-bezier(.34,1.56,.64,1) .6s both drop-in}.footer-heart{color:#ff4f8b;animation:1.6s ease-in-out infinite heartbeat;display:inline-block}.mode-toggle{background:#ffffff8c;border-radius:999px;gap:6px;padding:6px;animation:.8s cubic-bezier(.34,1.56,.64,1) .1s both drop-in;display:flex;box-shadow:0 4px 14px #5b3a581f}.mode-btn{color:var(--ink);cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:999px;padding:8px 18px;font-family:inherit;font-size:1rem;font-weight:800;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background .25s,color .25s,opacity .25s,box-shadow .25s}.mode-btn:hover{opacity:1;transform:translateY(-2px)scale(1.05)}.mode-btn:hover .mode-emoji{animation:.5s ease-in-out infinite emoji-wiggle;display:inline-block}.mode-btn.is-active{background:linear-gradient(135deg, var(--pink), var(--purple));color:#fff;opacity:1;box-shadow:var(--shadow)}.mode-btn.jelly{animation:.6s cubic-bezier(.34,1.56,.64,1) jelly}#mode-flash{pointer-events:none;z-index:40;opacity:0;background:radial-gradient(circle at 50% 35%, var(--pink), transparent 78%);position:fixed;inset:0}#mode-flash.flash{animation:.9s ease-out both mode-flash}@keyframes mode-flash{0%{opacity:0;transform:scale(1.25)}25%{opacity:.65;transform:scale(1)}to{opacity:0;transform:scale(1)}}body.naughty{--pink:#ff2e55;--pink-soft:#6e1230;--purple:#ff7a1a;--cream:#23000f;--ink:#ffd7e2;--yellow:#ffb300;--shadow:0 10px 30px #ff2e5566;background:linear-gradient(120deg,#1c0512,#38001c,#3f0505,#240233,#1c0512) 0 0/400% 400%;animation:18s infinite bg-drift}.logo-horns .horn{opacity:0;transform-box:fill-box;transform-origin:bottom;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .3s;transform:scale(0)}body.naughty .logo-horns .horn{opacity:1;transform:scale(1)}body.naughty #pawGrad stop:first-child{stop-color:#ff2e55}body.naughty #pawGrad stop:nth-child(2){stop-color:#ff5233}body.naughty #pawGrad stop:nth-child(3){stop-color:#ff7a1a}body.naughty #padGrad stop:first-child{stop-color:#ffe0e8}body.naughty #padGrad stop:nth-child(2){stop-color:#ffb3c4}#pawGrad stop,#padGrad stop{transition:stop-color .6s}body.naughty .logo-blob{opacity:.35}body.naughty .sparkle{fill:#ff7a1a}body.naughty .tagline{opacity:.9}body.naughty .tagline em{color:#ff7a1a;text-shadow:0 0 12px #ff7a1a99}body.naughty .mode-toggle,body.naughty .pet-chip,body.naughty .fav-item{color:var(--ink);background:#3c0820cc;box-shadow:0 4px 14px #00000073}body.naughty .pet-chip.is-active{border-color:var(--pink);background:#5a0a2af2;box-shadow:0 0 18px #ff2e5580}body.naughty .name-card{background:#280416e0;border-color:#ff2e5573;box-shadow:0 0 34px #ff2e5559}body.naughty .pet-name{color:var(--pink);text-shadow:0 0 16px #ff2e558c}body.naughty .name-emoji{position:relative}body.naughty .name-emoji:after{content:"😈";font-size:1.2rem;animation:1.2s ease-in-out infinite emoji-wiggle;position:absolute;top:-8px;right:-18px}body.naughty .fav-btn{color:#ffd7e259;background:#3c0820f2;box-shadow:0 6px 16px #00000080}body.naughty .fav-btn.is-faved{color:#ff2e55;text-shadow:0 0 10px #ff2e55cc}body.naughty .pop-btn-face{background:linear-gradient(135deg,#ff2e55,#ff7a1a);box-shadow:0 8px #7e0f28,0 10px 30px #ff2e5573}body.naughty .pop-btn:active .pop-btn-face{box-shadow:0 2px #7e0f28,0 4px 12px #ff2e5559}body.naughty .fav-remove{color:var(--ink);background:#ff2e5540}body.naughty .fav-remove:hover{background:var(--pink);color:#fff}.fav-item-mode{font-size:.85rem}body.naughty .fav-title-heart,body.naughty .footer-heart{color:#ff2e55;text-shadow:0 0 10px #ff2e55cc}body,.name-card,.mode-toggle,.pet-name,.tagline em{transition:background .6s,background-color .6s,color .6s,border-color .6s,box-shadow .6s,text-shadow .6s}body.vulgar{--pink:#d7ff00;--pink-soft:#253400;--purple:#00e5ff;--cream:#090909;--ink:#f7f7f7;--yellow:#ffea00;--shadow:0 10px 30px #d7ff004d;background:repeating-linear-gradient(135deg,#050505 0 28px,#111 28px 56px);animation:none}body.vulgar .logo-horns .horn{opacity:1;transform:scale(1)rotate(8deg)}body.vulgar #pawGrad stop:first-child{stop-color:#d7ff00}body.vulgar #pawGrad stop:nth-child(2){stop-color:#ffea00}body.vulgar #pawGrad stop:nth-child(3){stop-color:#00e5ff}body.vulgar #padGrad stop:first-child{stop-color:#fff}body.vulgar #padGrad stop:nth-child(2){stop-color:#d7ff00}body.vulgar .logo-blob{opacity:.2}body.vulgar .sparkle{fill:#d7ff00}body.vulgar .tagline em{color:#d7ff00;text-shadow:2px 2px #7b00ff}body.vulgar .mode-toggle,body.vulgar .pet-chip,body.vulgar .fav-item{color:var(--ink);background:#0f0f0feb;border-color:#444;box-shadow:4px 4px #000}body.vulgar .pet-chip.is-active{background:#181818;border-color:#d7ff00;box-shadow:4px 4px #d7ff00}body.vulgar .name-card{background:#080808f5;border-color:#d7ff00;box-shadow:8px 8px #7b00ff}body.vulgar .pet-name{color:#d7ff00;text-shadow:3px 3px #7b00ff}body.vulgar .name-emoji{position:relative}body.vulgar .name-emoji:after{content:"🤬";font-size:1.2rem;animation:.8s ease-in-out infinite emoji-wiggle;position:absolute;top:-8px;right:-18px}body.vulgar .fav-btn{color:#ffffff59;background:#111;box-shadow:4px 4px #000}body.vulgar .fav-btn.is-faved,body.vulgar .fav-title-heart,body.vulgar .footer-heart{color:#d7ff00;text-shadow:0 0 10px #d7ff00cc}body.vulgar .pop-btn-face{color:#090909;background:linear-gradient(135deg,#d7ff00,#00e5ff);box-shadow:0 8px #647700,6px 12px #7b00ff}body.vulgar .pop-btn:active .pop-btn-face{box-shadow:0 2px #647700,2px 4px #7b00ff}body.vulgar .fav-remove{color:#fff;background:#333}body.vulgar .fav-remove:hover{color:#090909;background:#d7ff00}@media (width<=380px){.mode-toggle{gap:4px;padding:5px}.mode-btn{padding:7px 10px;font-size:.88rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
