.mascot{--cri-accent:#7FFFD4;--cri-accent-dark:#0a0a0a;--cri-blush:#FFB6C1;--cri-shine:#FFD700;--cri-heart:#FF4D6D;--cri-z-color:#7FB3D5;--cri-question:#FFFFFF;--cri-sweat:#B0BEC5;--cri-tear:#7FB3D5;--cri-confetti-1:#FF4D6D;--cri-confetti-2:#FFD700;--cri-confetti-3:#7FFFD4;--cri-confetti-4:#B27FFF;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(7,1fr);gap:1px;position:relative;overflow:visible;--scale:12;width:calc(var(--scale) * 7px + 6px);height:calc(var(--scale) * 7px + 6px)}.mascot .pix{background:transparent;position:relative}.mascot .pix.on{background:var(--cri-accent)}.mascot .pix.blush{background:var(--cri-blush)}.mascot .pix.heart{background:var(--cri-heart)}.mascot .pix.sub{display:grid;grid-template:repeat(2,1fr) /repeat(2,1fr);gap:0;background:transparent}.mascot .pix.sub>i{background:transparent;display:block}.mascot .pix.sub>i.on{background:var(--cri-accent)}.mascot .pix.sub>i.shine{background:var(--cri-shine)}.mascot .pix.sub>i.blush{background:var(--cri-blush)}.mascot .pix-extra{display:block;background:transparent;pointer-events:none}.mascot .pix-extra.on{background:var(--cri-accent)}.mascot .pix-extra.blush{background:var(--cri-blush)}.mascot .pix-extra.heart{background:var(--cri-heart)}.mascot .pix-extra.tear{background:var(--cri-tear)}.mascot.on-aqua .pix-extra.on{background:var(--cri-accent-dark)}.mascot .particle{display:block;position:absolute;pointer-events:none;border-radius:0}@keyframes particle-fall{0%{transform:translate(0);opacity:1}to{transform:translateY(80px);opacity:0}}@keyframes particle-fall-fast{0%{transform:translate(0);opacity:1}to{transform:translateY(100px);opacity:0}}@keyframes particle-rise{0%{transform:translate(0);opacity:0}20%{opacity:1}to{transform:translateY(-60px);opacity:0}}@keyframes particle-zzz{0%{transform:translate(0);opacity:0}20%{opacity:1}to{transform:translate(40px,-50px);opacity:0}}@keyframes particle-twinkle{0%,to{transform:scale(0);opacity:0}50%{transform:scale(1);opacity:1}}@keyframes particle-bob{0%,to{transform:translateY(0);opacity:1}50%{transform:translateY(-6px);opacity:.6}}@keyframes particle-burst{0%{transform:scale(0);opacity:1}60%{transform:scale(1.5);opacity:1}to{transform:scale(2);opacity:0}}.anim-walk{animation:cri-anim-walk 2.6s cubic-bezier(.36,0,.64,1) infinite}@keyframes cri-anim-walk{0%{transform:translateX(0)}20%{transform:translateX(-14px) translateY(-2px)}40%{transform:translateX(-24px)}60%{transform:translateX(-14px) translateY(-2px)}to{transform:translateX(0)}}.anim-dance{animation:cri-anim-dance 3s ease-in-out infinite}@keyframes cri-anim-dance{0%,to{transform:rotate(0) translateY(0)}10%{transform:rotate(-10deg) translateY(-3px)}25%{transform:rotate(10deg) translateY(0)}40%{transform:rotate(-10deg) translateY(-3px)}55%{transform:rotate(10deg) translateY(0)}70%{transform:rotate(-6deg) translateY(-2px)}85%{transform:rotate(6deg) translateY(0)}}.anim-jump{animation:cri-anim-jump 1.4s cubic-bezier(.34,1.56,.64,1) infinite}@keyframes cri-anim-jump{0%,to{transform:translateY(0) scaleY(1)}15%{transform:translateY(0) scaleY(.85)}35%{transform:translateY(-18px) scaleY(1.05)}55%{transform:translateY(0) scaleY(.92)}70%{transform:translateY(0) scaleY(1)}}.anim-wave{animation:cri-anim-wave 2s ease-in-out infinite}@keyframes cri-anim-wave{0%,to{transform:rotate(0)}20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}80%{transform:rotate(8deg)}}.anim-spin{animation:cri-anim-spin 2s cubic-bezier(.5,0,.5,1) infinite}@keyframes cri-anim-spin{0%{transform:rotate(0)}60%{transform:rotate(1turn)}to{transform:rotate(1turn)}}.anim-squish{animation:cri-anim-squish 1.6s ease-in-out infinite}@keyframes cri-anim-squish{0%,to{transform:scaleY(1) scaleX(1)}30%{transform:scaleY(.72) scaleX(1.18)}60%{transform:scaleY(1.1) scaleX(.94)}85%{transform:scaleY(.96) scaleX(1.02)}}.anim-zap{animation:cri-anim-zap 1.5s cubic-bezier(.34,1.56,.64,1) infinite}@keyframes cri-anim-zap{0%{transform:scaleY(1) scaleX(1) rotate(0)}12%{transform:scaleY(.65) scaleX(1.2) rotate(-12deg)}28%{transform:scaleY(1.18) scaleX(.92) translateY(-6px) rotate(10deg)}46%{transform:scaleY(.92) scaleX(1.06) translateY(0) rotate(-6deg)}64%{transform:scaleY(1.05) scaleX(.98) rotate(4deg)}82%{transform:scaleY(.98) scaleX(1.02) rotate(-2deg)}to{transform:scaleY(1) scaleX(1) rotate(0)}}.anim-dance-tiny{animation:cri-dance-tiny .8s ease-in-out infinite}@keyframes cri-dance-tiny{0%,to{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-3px)}}.anim-tilt-stay{animation:cri-tilt-stay 2.4s ease-in-out infinite}@keyframes cri-tilt-stay{0%,to{transform:rotate(-6deg)}50%{transform:rotate(-9deg)}}.anim-rage{animation:cri-rage-shake .15s linear infinite}@keyframes cri-rage-shake{0%,to{transform:translateX(0) rotate(0)}25%{transform:translateX(-1px) rotate(-1deg)}75%{transform:translateX(1px) rotate(1deg)}}.anim-breathe{animation:cri-anim-breathe 3s ease-in-out infinite}@keyframes cri-anim-breathe{0%,to{transform:scaleY(1) scaleX(1)}50%{transform:scaleY(.97) scaleX(1.03)}}.anim-sway{animation:cri-anim-sway 3.6s ease-in-out infinite}@keyframes cri-anim-sway{0%,to{transform:rotate(0) translateX(0)}25%{transform:rotate(-3deg) translateX(-2px)}75%{transform:rotate(3deg) translateX(2px)}}.anim-bounce{animation:cri-anim-bounce 1.2s ease-in-out infinite}@keyframes cri-anim-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.anim-wobble{animation:cri-anim-wobble .8s ease-in-out infinite}@keyframes cri-anim-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}.anim-shake{animation:cri-anim-shake .4s linear infinite}@keyframes cri-anim-shake{0%,to{transform:translateX(0)}20%{transform:translateX(-3px)}40%{transform:translateX(3px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}.anim-stretch{animation:cri-anim-stretch 1.6s ease-in-out infinite}@keyframes cri-anim-stretch{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.18) translateY(-4px)}}.anim-slump{animation:cri-anim-slump 1.6s ease-out infinite}@keyframes cri-anim-slump{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(4px) scaleY(.92)}}.anim-run{animation:cri-anim-run .8s cubic-bezier(.36,0,.64,1) infinite}@keyframes cri-anim-run{0%{transform:translateX(0) rotate(-3deg)}50%{transform:translateX(-30px) translateY(-3px) rotate(3deg)}to{transform:translateX(0) rotate(-3deg)}}.anim-hop{animation:cri-anim-hop 1s cubic-bezier(.34,1.56,.64,1) infinite}@keyframes cri-anim-hop{0%,to{transform:translateY(0) translateX(0) rotate(0)}40%{transform:translateY(-14px) translateX(-12px) rotate(-8deg)}80%{transform:translateY(0) translateX(-24px) rotate(0)}}.anim-roll{animation:cri-anim-roll 1.6s linear infinite}@keyframes cri-anim-roll{0%{transform:translateX(0) rotate(0)}to{transform:translateX(-40px) rotate(-1turn)}}.anim-tilt-l{animation:cri-anim-tilt-l 2s ease-in-out infinite}@keyframes cri-anim-tilt-l{0%,to{transform:rotate(-8deg)}50%{transform:rotate(-5deg)}}.anim-zap-2{animation:cri-anim-zap-once .65s cubic-bezier(.34,1.56,.64,1) both}@keyframes cri-anim-zap-once{0%{transform:scaleY(1) scaleX(1) rotate(0)}12%{transform:scaleY(.65) scaleX(1.2) rotate(-12deg)}28%{transform:scaleY(1.18) scaleX(.92) translateY(-6px) rotate(10deg)}46%{transform:scaleY(.92) scaleX(1.06) translateY(0) rotate(-6deg)}to{transform:scaleY(1) scaleX(1) rotate(0)}}.mascot.with-overlay{overflow:visible}.mascot.with-overlay:after,.mascot.with-overlay:before{content:"";position:absolute;pointer-events:none}.overlay-z:before{content:"Z";top:-16px;right:-20px;font-size:18px;animation:cri-float-z 2s ease-in-out infinite}.overlay-z:after,.overlay-z:before{font-family:ui-monospace,monospace;font-weight:700;color:var(--cri-z-color)}.overlay-z:after{content:"z";top:-4px;right:-12px;font-size:12px;opacity:.6;animation:cri-float-z 2s ease-in-out .5s infinite}@keyframes cri-float-z{0%,to{transform:translateY(0);opacity:.8}50%{transform:translateY(-6px);opacity:1}}.overlay-q:before{content:"?";top:-20px;right:-16px;font-family:ui-monospace,monospace;font-weight:800;color:var(--cri-question);font-size:22px;animation:cri-float-q 1.6s ease-in-out infinite}@keyframes cri-float-q{0%,to{transform:rotate(-10deg) translateY(0)}50%{transform:rotate(10deg) translateY(-3px)}}.overlay-heart:before{content:"♥";top:-16px;right:-8px;color:var(--cri-heart);font-size:18px;animation:cri-float-heart 2s ease-out infinite}.overlay-heart:after{content:"♥";top:-8px;left:-10px;color:var(--cri-heart);font-size:12px;opacity:.7;animation:cri-float-heart 2s ease-out .7s infinite}@keyframes cri-float-heart{0%{transform:translateY(0) scale(.6);opacity:0}20%{opacity:1}to{transform:translateY(-30px) scale(1);opacity:0}}.overlay-confetti:after,.overlay-confetti:before{content:"";position:absolute;inset:-20px;background-image:radial-gradient(circle 2px at 10% 20%,var(--cri-confetti-1) 100%,transparent 0),radial-gradient(circle 2px at 80% 30%,var(--cri-confetti-2) 100%,transparent 0),radial-gradient(circle 2px at 30% 80%,var(--cri-confetti-3) 100%,transparent 0),radial-gradient(circle 2px at 90% 60%,var(--cri-confetti-4) 100%,transparent 0),radial-gradient(circle 2px at 20% 50%,var(--cri-confetti-2) 100%,transparent 0),radial-gradient(circle 2px at 60% 10%,var(--cri-confetti-1) 100%,transparent 0),radial-gradient(circle 2px at 50% 90%,var(--cri-confetti-4) 100%,transparent 0);animation:cri-confetti-fall 1.6s linear infinite}.overlay-confetti:after{animation-delay:.8s}@keyframes cri-confetti-fall{0%{transform:translateY(-20px);opacity:1}to{transform:translateY(20px);opacity:0}}.overlay-think:before{top:-10px;right:-4px;font-size:24px;animation:cri-bubble 1.4s ease-in-out infinite}.overlay-think:after,.overlay-think:before{content:"·";position:absolute;color:var(--cri-sweat);line-height:0}.overlay-think:after{top:-18px;right:2px;font-size:32px;animation:cri-bubble 1.4s ease-in-out .4s infinite}@keyframes cri-bubble{0%,to{transform:scale(.5);opacity:.4}50%{transform:scale(1);opacity:1}}.overlay-sparkle:before{top:-14px;right:-12px;font-size:14px;animation:cri-sparkle 1.6s ease-in-out infinite}.overlay-sparkle:after,.overlay-sparkle:before{content:"✦";position:absolute;color:var(--cri-shine)}.overlay-sparkle:after{top:8px;left:-14px;font-size:10px;animation:cri-sparkle 1.6s ease-in-out .5s infinite}@keyframes cri-sparkle{0%,to{transform:scale(0);opacity:0}50%{transform:scale(1) rotate(180deg);opacity:1}}