/* ===== Maskotízate Ultra Premium V13: interactive brand mascot ===== */
:root{--mascot-ground:18px;--oasis-glow:rgba(140,78,190,.28)}
.oasis-mascot-stage{position:fixed;left:0;right:0;bottom:var(--mascot-ground);height:126px;z-index:8800;pointer-events:none;overflow:visible;contain:layout style;transition:opacity .35s ease,transform .35s ease}
.oasis-mascot-stage.is-hidden{opacity:0;transform:translateY(140px)}
.oasis-mascot{position:absolute;left:24px;bottom:0;width:104px;height:108px;transform:translate3d(var(--dog-x,0),0,0) scaleX(var(--dog-dir,1));transform-origin:50% 100%;will-change:transform;filter:drop-shadow(0 14px 14px rgba(49,24,67,.2));transition:filter .25s}
.oasis-mascot.is-running{animation:dogBounce .23s ease-in-out infinite alternate}.oasis-mascot.is-happy{animation:dogHappy .42s ease-in-out 2}.oasis-mascot.is-sleeping{filter:drop-shadow(0 8px 9px rgba(49,24,67,.14));animation:dogSleep 2.1s ease-in-out infinite}.oasis-mascot.is-looking{animation:dogLook .5s ease-in-out}
.oasis-mascot svg{width:100%;height:100%;overflow:visible}.dog-body{transform-origin:center}.dog-tail{transform-origin:78px 65px;animation:tailWag .44s ease-in-out infinite alternate}.dog-ear-left{transform-origin:34px 36px}.dog-ear-right{transform-origin:69px 36px}.dog-leg{transform-origin:50% 0}.is-running .dog-leg-a{animation:legRun .22s linear infinite alternate}.is-running .dog-leg-b{animation:legRun .22s linear infinite alternate-reverse}.is-running .dog-ear-left,.is-running .dog-ear-right{animation:earRun .25s ease-in-out infinite alternate}.is-sleeping .dog-tail{animation:none;transform:rotate(-12deg)}.is-sleeping .dog-eye{transform:scaleY(.12);transform-origin:center}.is-sleeping .dog-body{transform:translateY(7px) rotate(4deg)}
.dog-pupil{transition:transform .12s linear}.dog-mouth{transition:d .2s}.dog-accessory{transform-origin:center;filter:drop-shadow(0 2px 2px rgba(0,0,0,.12))}
.oasis-ball{position:fixed;left:0;top:0;width:28px;height:28px;border-radius:50%;z-index:8799;pointer-events:none;background:radial-gradient(circle at 32% 28%,#fff 0 7%,#a9ecf3 9% 28%,#6f35b5 30% 65%,#41205e 68%);box-shadow:0 8px 18px rgba(50,24,70,.24);opacity:0;transform:translate3d(-100px,-100px,0) rotate(0);will-change:transform,opacity}.oasis-ball.is-live{opacity:1}
.mascot-bubble{position:absolute;left:120px;bottom:80px;max-width:205px;padding:10px 14px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.8);border-radius:18px 18px 18px 5px;box-shadow:0 12px 30px rgba(55,25,78,.16);font:600 13px/1.35 'Fredoka',sans-serif;color:var(--deep);opacity:0;transform:translateY(7px) scale(.95);transition:.25s var(--ease-premium);backdrop-filter:blur(10px)}.mascot-bubble.is-visible{opacity:1;transform:none}
.mascot-controls{position:fixed;left:18px;bottom:148px;z-index:8802;display:flex;gap:8px;opacity:.35;transition:.25s}.mascot-controls:hover,.mascot-controls:focus-within{opacity:1}.mascot-control{pointer-events:auto;width:36px;height:36px;border:1px solid rgba(255,255,255,.78);border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.76);box-shadow:0 8px 22px rgba(49,24,67,.13);backdrop-filter:blur(12px);cursor:pointer;color:var(--deep);font-size:16px}.mascot-control:hover{transform:translateY(-2px);background:#fff}
.oasis-particle{position:fixed;left:0;top:0;z-index:8798;pointer-events:none;font-size:18px;animation:particlePop .9s ease-out forwards;will-change:transform,opacity}
.oasis-pawprint{position:fixed;left:0;top:0;z-index:8797;pointer-events:none;color:var(--purple);font-size:18px;opacity:.24;transform:translate(-50%,-50%) rotate(var(--paw-r));animation:pawFade 2.4s ease forwards}
.portfolio-cat{position:fixed;right:0;bottom:34px;width:92px;height:94px;z-index:8700;pointer-events:none;transform:translateX(46px);transition:transform .48s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 10px 12px rgba(49,24,67,.2))}.portfolio-cat.is-peeking{transform:translateX(8px)}.portfolio-cat.is-hiding{transform:translateX(72px)}.portfolio-cat svg{width:100%;height:100%}.cat-tail{transform-origin:66px 72px;animation:catTail 1.7s ease-in-out infinite alternate}.cat-pupil{transition:transform .14s linear}
.click-ripple{position:fixed;width:18px;height:18px;border:2px solid rgba(122,71,173,.45);border-radius:50%;z-index:8796;pointer-events:none;transform:translate(-50%,-50%);animation:ripple .65s ease-out forwards}
@keyframes dogBounce{to{transform:translate3d(var(--dog-x,0),-7px,0) scaleX(var(--dog-dir,1)) rotate(-1deg)}}
@keyframes dogHappy{25%{transform:translate3d(var(--dog-x,0),-12px,0) scaleX(var(--dog-dir,1)) rotate(-3deg)}65%{transform:translate3d(var(--dog-x,0),-3px,0) scaleX(var(--dog-dir,1)) rotate(3deg)}}
@keyframes dogSleep{50%{transform:translate3d(var(--dog-x,0),3px,0) scaleX(var(--dog-dir,1))}}
@keyframes dogLook{50%{transform:translate3d(var(--dog-x,0),-4px,0) scaleX(var(--dog-dir,1)) rotate(2deg)}}
@keyframes tailWag{from{transform:rotate(-23deg)}to{transform:rotate(28deg)}}@keyframes legRun{to{transform:rotate(25deg) translateY(2px)}}@keyframes earRun{to{transform:rotate(12deg)}}
@keyframes particlePop{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}20%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--px)),calc(-50% + var(--py))) scale(1.25) rotate(var(--pr))}}
@keyframes pawFade{0%{opacity:0;transform:translate(-50%,-50%) scale(.6) rotate(var(--paw-r))}20%{opacity:.25}100%{opacity:0;transform:translate(-50%,-50%) scale(1.08) rotate(var(--paw-r))}}
@keyframes catTail{to{transform:rotate(16deg)}}@keyframes ripple{to{width:70px;height:70px;opacity:0}}
@media(max-width:780px){:root{--mascot-ground:8px}.oasis-mascot-stage{height:92px}.oasis-mascot{width:76px;height:80px;left:8px}.mascot-bubble{left:78px;bottom:62px;max-width:165px;font-size:11px}.mascot-controls{left:8px;bottom:101px}.mascot-control{width:32px;height:32px}.portfolio-cat{width:70px;height:72px;bottom:20px}.oasis-ball{width:23px;height:23px}}
@media(pointer:coarse){.mascot-controls{opacity:.78}.oasis-mascot-stage{pointer-events:none}}
@media(prefers-reduced-motion:reduce){.oasis-mascot,.dog-tail,.dog-leg,.dog-ear-left,.dog-ear-right,.portfolio-cat,.cat-tail{animation:none!important;transition:none!important}.oasis-particle,.oasis-pawprint,.click-ripple{display:none!important}}

/* V7.1 - Gato interactivo que persigue la pelota */
.cat-runner-tail{transform-origin:80px 74px;animation:catRunnerTail .62s ease-in-out infinite alternate}
.is-running .cat-runner-tail{animation-duration:.26s}
@keyframes catRunnerTail{from{transform:rotate(-12deg)}to{transform:rotate(22deg)}}
