.gei-mascot-image {
  display:block;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  pointer-events:none;
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.2));
}

.gei-mascot-button {
  -webkit-tap-highlight-color:transparent;
}

.gei-mascot-image--idle {
  animation:geiAdamFloat 3.8s ease-in-out infinite;
}

.gei-mascot-button--interactive .gei-mascot-image--idle {
  will-change:transform;
}

/* Home Adam: larger, transparent cutout presentation with a gentle pulse. */
.home-mascot-button {
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  width:clamp(96px,28vw,126px);
  height:clamp(112px,31vw,138px);
  padding:0;
  margin:0 auto;
  border:0;
  outline:0;
  background:transparent;
  color:inherit;
  cursor:pointer;
  overflow:visible;
}

.home-mascot-button .mascot-ring {
  z-index:-1;
}

.home-mascot-button .home-mascot-image {
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  animation:geiAdamPulse 2.8s ease-in-out infinite;
  transform-origin:center 62%;
  will-change:transform;
}

.home-mascot-button .mascot-caption {
  z-index:3;
  bottom:-1px;
  pointer-events:none;
}

.home-mascot-button:focus-visible {
  outline:2px solid var(--cyan);
  outline-offset:4px;
  border-radius:18px;
}

@keyframes geiAdamFloat {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-3px); }
}

@keyframes geiAdamPulse {
  0%,100% { transform:translateY(0) scale(1); }
  50% { transform:translateY(-3px) scale(1.045); }
}

@media (max-width:360px) {
  .home-mascot-button {
    width:clamp(88px,29vw,104px);
    height:clamp(102px,33vw,116px);
  }
}

@media (prefers-reduced-motion:reduce) {
  .gei-mascot-image--idle,
  .home-mascot-button .home-mascot-image { animation:none!important; }
}
