/* Chewe Engine V4.30 — internal companion only. The login/minigame is intentionally separate. */
@media(min-width:1001px){.sidebar{display:flex;flex-direction:column}}
:root{--chewe-cyan:#5ed8e7;--chewe-violet:#ab92ff;--chewe-gold:#ebc76c}
.chewe-dock,.evo-chewe-stage,.chewe-mobile-pop{position:relative}
.chewe-sprite-wrap{
  position:relative;width:92px;height:92px;display:grid;place-items:center;
  filter:drop-shadow(0 10px 16px rgba(0,0,0,.38));
  transition:transform .22s ease,opacity .22s ease,filter .22s ease;
  transform-origin:50% 82%;
}
.chewe-sprite{
  width:64px;height:64px;
  background-image:url('/chewe/chewe-atlas-v2.png?v=4.28.1');
  background-size:256px 192px;background-repeat:no-repeat;background-position:0 0;
  image-rendering:pixelated;transform:scale(1.34);transform-origin:center;
}
[data-chewe-interactive]{cursor:pointer;border-radius:12px;outline:none}
[data-chewe-interactive]:focus-visible{box-shadow:0 0 0 2px rgba(94,216,231,.78),0 0 0 5px rgba(94,216,231,.14)}
[data-chewe-interactive]:hover{filter:drop-shadow(0 0 13px rgba(94,216,231,.35))}
.chewe-bubble{
  position:absolute;z-index:95;padding:11px 12px;border:1px solid rgba(130,170,255,.34);
  border-radius:9px;background:rgba(7,13,30,.97);box-shadow:0 14px 34px rgba(0,0,0,.4);
  color:#edf3ff;font-size:12px;line-height:1.45;letter-spacing:.01em;text-align:center;
}
.chewe-bubble::before{
  content:"";position:absolute;width:8px;height:8px;background:inherit;
  border-left:inherit;border-bottom:inherit;transform:rotate(45deg);
}
.chewe-dock{
  width:100%;display:flex;justify-content:center;align-items:flex-end;min-height:122px;
  margin-top:auto;padding:12px 0 4px;transition:opacity .2s ease,transform .2s ease;overflow:visible;
}
.chewe-dock .chewe-bubble{
  left:10px;right:10px;bottom:111px;width:auto;max-width:none;
}
.chewe-dock .chewe-bubble::before{
  left:50%;bottom:-5px;transform:translateX(-50%) rotate(-45deg);
}
.chewe-dock.is-away{opacity:0;transform:translateY(10px);pointer-events:none}
.chewe-speaking .chewe-sprite-wrap{transform:translateY(-4px)}
.chewe-arriving .chewe-sprite-wrap{animation:cheweArrive .58s cubic-bezier(.2,.9,.25,1) both}
.chewe-leaving .chewe-sprite-wrap{animation:cheweLeave .4s ease-in both}
.tone-fierce .chewe-sprite-wrap,.tone-bold .chewe-sprite-wrap{filter:drop-shadow(0 0 11px rgba(94,216,231,.48))}
.tone-happy .chewe-sprite-wrap,.tone-cute .chewe-sprite-wrap,.tone-enthusiastic .chewe-sprite-wrap{filter:drop-shadow(0 0 13px rgba(235,199,108,.42))}
.tone-excited .chewe-sprite-wrap,.tone-adventurous .chewe-sprite-wrap{filter:drop-shadow(0 0 13px rgba(171,146,255,.44))}
.chewe-speaking .chewe-sprite-wrap::after{
  content:"";position:absolute;right:8px;top:9px;width:4px;height:4px;background:#d8fbff;
  box-shadow:8px -5px 0 #7be7f0,-5px -8px 0 #ab92ff;animation:cheweSpark .8s steps(2,end) infinite
}
.chewe-mobile-pop{display:none}

/* Evolution: Chewe is deliberately more present here than elsewhere. */
.evo-chewe-stage{
  min-height:218px;padding:20px;border:1px solid rgba(94,216,231,.22);border-radius:14px;background:
  radial-gradient(circle at 72% 20%,rgba(171,146,255,.18),transparent 36%),
  linear-gradient(145deg,rgba(10,18,41,.92),rgba(15,26,55,.72));overflow:visible
}
.evo-chewe-stage[hidden]{display:none!important}
.evo-chewe-stage .chewe-stage-top{display:flex;align-items:center;gap:18px}
.evo-chewe-stage .chewe-sprite-wrap{width:118px;height:118px;flex:0 0 118px}
.evo-chewe-stage .chewe-sprite{transform:scale(1.64)}
.evo-chewe-stage .chewe-stage-copy small{display:block;color:#89dfe8;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.evo-chewe-stage .chewe-stage-copy strong{display:block;font-size:22px;margin-top:4px}
.evo-chewe-stage .chewe-stage-copy p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.evo-chewe-stage .chewe-bubble{left:20px;right:20px;bottom:18px;width:auto}
.evo-chewe-stage .chewe-bubble::before{left:58px;top:-5px;bottom:auto;transform:rotate(135deg)}
.evo-chewe-stage .chewe-idle-line{position:absolute;left:20px;right:20px;bottom:18px;height:1px;background:linear-gradient(90deg,transparent,rgba(94,216,231,.3),transparent)}

.evo-chewe-toggle{
  display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(122,162,255,.22);
  border-radius:999px;background:rgba(255,255,255,.025);color:var(--muted);padding:7px 10px;font-size:11px
}
.evo-chewe-toggle::before{content:"";width:8px;height:8px;border-radius:50%;background:#5ed8e7;box-shadow:0 0 8px rgba(94,216,231,.5)}
.evo-chewe-toggle.is-off::before{background:#6f7b93;box-shadow:none}

/* Movement library — sequences use official atlas frames; CSS supplies body motion. */
.chewe-motion-blink .chewe-sprite-wrap{animation:cheweMicroPulse .8s ease}
.chewe-motion-look .chewe-sprite-wrap{animation:cheweLook 1.9s ease-in-out}
.chewe-motion-sit .chewe-sprite-wrap{animation:cheweSit 2.2s ease-in-out}
.chewe-motion-hop .chewe-sprite-wrap{animation:cheweHop 1.18s cubic-bezier(.22,.85,.3,1)}
.chewe-motion-bounce .chewe-sprite-wrap{animation:cheweBounce 1.34s ease}
.chewe-motion-think .chewe-sprite-wrap{animation:cheweThink 2.7s ease-in-out}
.chewe-motion-inspect .chewe-sprite-wrap{animation:cheweInspect 2.25s ease-in-out}
.chewe-motion-impatient .chewe-sprite-wrap{animation:cheweImpatient 1.75s ease-in-out}
.chewe-motion-patrol .chewe-sprite-wrap{animation:chewePatrol 1.8s ease-in-out}
.chewe-motion-sidestep .chewe-sprite-wrap{animation:cheweSideStep 1.47s ease-in-out}
.chewe-motion-celebrate .chewe-sprite-wrap{animation:cheweCelebrate 2.05s ease}
.chewe-motion-doze .chewe-sprite-wrap{animation:cheweDoze 2.86s ease-in-out}
.chewe-motion-doze .chewe-sprite-wrap::before{
  content:"z";position:absolute;right:4px;top:2px;color:#a8dff2;font:700 11px/1 ui-monospace,monospace;
  text-shadow:8px -8px 0 rgba(168,223,242,.64);animation:cheweZzz 1.25s ease-in-out infinite
}
.chewe-motion-perkup .chewe-sprite-wrap{animation:chewePerkUp 1.65s cubic-bezier(.2,.85,.3,1)}
.chewe-motion-notice .chewe-sprite-wrap{animation:cheweNotice 1.25s ease}
.chewe-motion-nod .chewe-sprite-wrap{animation:cheweNod 1.24s ease}

@keyframes cheweArrive{0%{opacity:0;transform:translateX(-78px) scale(.86)}70%{opacity:1;transform:translateX(7px) scale(1.03)}100%{opacity:1;transform:translateX(0) scale(1)}}
@keyframes cheweLeave{0%{opacity:1;transform:translateX(0) scale(1)}100%{opacity:0;transform:translateX(-90px) scale(.88)}}
@keyframes cheweSpark{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes cheweMicroPulse{0%,100%{transform:scale(1)}48%{transform:scale(.985,1.015)}}
@keyframes cheweLook{0%,100%{transform:translateX(0)}24%{transform:translateX(-5px) rotate(-1.5deg)}62%{transform:translateX(5px) rotate(1.5deg)}}
@keyframes cheweSit{0%,100%{transform:translateY(0)}35%,72%{transform:translateY(6px) scale(.98)}}
@keyframes cheweHop{0%,100%{transform:translateY(0)}35%{transform:translateY(-13px) scale(1.03)}58%{transform:translateY(2px) scale(.98,1.03)}}
@keyframes cheweBounce{0%,100%{transform:translateY(0)}24%{transform:translateY(-8px)}48%{transform:translateY(1px)}70%{transform:translateY(-5px)}}
@keyframes cheweThink{0%,100%{transform:rotate(0)}30%{transform:rotate(-2deg) translateY(1px)}62%{transform:rotate(1.5deg) translateY(-1px)}}
@keyframes cheweInspect{0%,100%{transform:translateX(0) scale(1)}25%{transform:translateX(-6px) scale(1.02)}55%{transform:translateX(4px) scale(1.035)}}
@keyframes cheweImpatient{0%,100%{transform:translateX(0)}20%{transform:translateX(-3px)}40%{transform:translateX(3px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}
@keyframes chewePatrol{0%,100%{transform:translateX(0)}30%{transform:translateX(-13px)}65%{transform:translateX(12px)}}
@keyframes cheweSideStep{0%,100%{transform:translateX(0)}35%{transform:translateX(8px)}68%{transform:translateX(-5px)}}
@keyframes cheweCelebrate{0%,100%{transform:translateY(0) rotate(0)}22%{transform:translateY(-10px) rotate(-2deg)}48%{transform:translateY(0) rotate(2deg)}68%{transform:translateY(-7px) rotate(0)}}
@keyframes cheweDoze{0%,100%{transform:translateY(0)}25%,74%{transform:translateY(5px) rotate(1deg)}50%{transform:translateY(6px) rotate(-1deg)}}
@keyframes cheweZzz{0%,100%{opacity:0;transform:translate(0,5px)}45%{opacity:.9;transform:translate(4px,-5px)}}
@keyframes chewePerkUp{0%,100%{transform:translateY(0) scale(1)}30%{transform:translateY(-3px) scale(1.04)}55%{transform:translateY(-5px) scale(1.07)}}
@keyframes cheweNotice{0%,100%{transform:translateX(0) scale(1)}35%{transform:translateX(4px) scale(1.04)}60%{transform:translateX(-2px) scale(1.02)}}
@keyframes cheweNod{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(3px) rotate(1deg)}58%{transform:translateY(-1px) rotate(-1deg)}}

html[data-ui="mobile"] .chewe-dock{display:none!important}
html[data-ui="mobile"] .chewe-mobile-pop{
  display:block;position:fixed;left:14px;bottom:72px;z-index:120;opacity:0;
  transform:translateY(14px);pointer-events:none;transition:.22s ease
}
html[data-ui="mobile"] .chewe-mobile-pop.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}
html[data-ui="mobile"] .chewe-mobile-pop .chewe-sprite-wrap{width:78px;height:78px}
html[data-ui="mobile"] .chewe-mobile-pop .chewe-sprite{transform:scale(1.1)}
html[data-ui="mobile"] .chewe-mobile-pop .chewe-bubble{left:80px;bottom:10px;width:min(224px,calc(100vw - 116px));text-align:left}
html[data-ui="mobile"] .chewe-mobile-pop .chewe-bubble::before{left:-5px;bottom:15px}

@media(max-width:1000px){
  .evo-chewe-stage{min-height:205px}
  .evo-chewe-stage .chewe-sprite-wrap{width:102px;height:102px;flex-basis:102px}
  .evo-chewe-stage .chewe-sprite{transform:scale(1.42)}
}
@media(max-width:650px){
  .evo-chewe-stage .chewe-stage-top{align-items:flex-start}
  .evo-chewe-stage .chewe-sprite-wrap{width:92px;height:92px;flex-basis:92px}
  .evo-chewe-stage .chewe-sprite{transform:scale(1.28)}
}
@media(prefers-reduced-motion:reduce){
  .chewe-sprite-wrap,.chewe-dock,.chewe-mobile-pop{animation:none!important;transition:none!important}
  .chewe-speaking .chewe-sprite-wrap::after,.chewe-motion-doze .chewe-sprite-wrap::before{animation:none!important}
}
