/* DYWYZY Mascot System 1.0.0 — generated. Do not hand-edit. */
.dywyzy-mascot,
.dywyzy-mascot-full:not(img) {
  position: relative;
  display: grid;
  place-items: center;
  opacity: 1;
  transform-origin: 50% 82%;
  transition: transform 160ms cubic-bezier(0.2, 0, 0, 1);
  --mascot-tilt-x: 0deg;
  --mascot-tilt-y: 0deg;
}
.dywyzy-mascot:not(.dywyzy-mascot-full) {
  width: 28px;
  height: 28px;
}
.dywyzy-mascot-full:not(.mascot-mark):not(.mascot-figure):not(img) {
  width: 96px;
  height: 96px;
}
.dywyzy-mascot-full img,
img.dywyzy-mascot-full,
.mascot-figure-full,
.assistant-mascot-full {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: transparent;
  opacity: 1;
  transform-origin: 50% 82%;
  will-change: transform;
}

/* --- rig v5: full PNG body + soft head look (no body punch / no squares) --- */
.dywyzy-mascot-full,
.mascot-figure,
.assistant-launcher-mark {
  perspective: 980px;
  /* Flat root — preserve-3d on host + masked head caused square boxes */
  transform-style: flat;
}

.mascot-rig-base,
.mascot-rig-arm-left,
.mascot-rig-arm-right,
.mascot-rig-figure {
  display: none;
}

.mascot-rig-scene {
  position: relative;
  width: 100%;
  height: 100%;
  /* Flat stacking — preserve-3d + masks produced square layer boxes */
  transform-style: flat;
}

.mascot-rig-layer {
  position: absolute;
  inset: 0;
  background-image: var(--mascot-src);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  pointer-events: none;
  image-rendering: auto;
  -webkit-mask-image: none;
  mask-image: none;
}

.mascot-rig-body {
  z-index: 1;
  transform-origin: 50% 82%;
  transition: transform 200ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.mascot-rig-head {
  z-index: 2;
  opacity: 0;
  visibility: hidden;
  transform-origin: 50% 34%;
  /* Mask only applied while visible — avoids idle masked-layer boxes */
  -webkit-mask-image: none;
  mask-image: none;
  transition:
    opacity 120ms cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 140ms cubic-bezier(0.22, 0.61, 0.36, 1),
    visibility 0s linear 120ms;
}

.dywyzy-mascot-full .mascot-rig-body {
  animation: rig-idle-body 6.4s cubic-bezier(0.37, 0, 0.63, 1) infinite;
}

/* Look: full body leans softly; head yaw overlays with feathered mask only. */
.dywyzy-mascot-full[data-mascot-state="LOOKING"] .mascot-rig-body,
.dywyzy-mascot-full[data-mascot-ui="HOVER"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="LOOKING"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-ui="HOVER"] .mascot-rig-body {
  animation: none;
  transform:
    rotateX(calc(var(--mascot-tilt-x, 0deg) * 0.28))
    rotateY(calc(var(--mascot-tilt-y, 0deg) * 0.22))
    translateY(-1px);
}

.dywyzy-mascot-full[data-mascot-state="LOOKING"] .mascot-rig-head,
.dywyzy-mascot-full[data-mascot-ui="HOVER"] .mascot-rig-head,
.dywyzy-mascot[data-mascot-state="LOOKING"] .mascot-rig-head,
.dywyzy-mascot[data-mascot-ui="HOVER"] .mascot-rig-head {
  /* Head overlay only — soft mask feathers edges; never fade full body (deliver gate). */
  opacity: 1;
  visibility: visible;
  transition:
    opacity 140ms cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 160ms cubic-bezier(0.22, 0.61, 0.36, 1),
    visibility 0s;
  -webkit-mask-image: radial-gradient(ellipse 56% 46% at 50% 22%, #000 0%, #000 34%, rgba(0,0,0,0.72) 48%, rgba(0,0,0,0.32) 64%, rgba(0,0,0,0.1) 78%, transparent 92%);
  mask-image: radial-gradient(ellipse 56% 46% at 50% 22%, #000 0%, #000 34%, rgba(0,0,0,0.72) 48%, rgba(0,0,0,0.32) 64%, rgba(0,0,0,0.1) 78%, transparent 92%);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-mode: alpha;
  mask-mode: alpha;
  /* No translateZ — filter/3D flattening caused square compositor boxes. */
  transform:
    rotateX(calc(var(--mascot-tilt-x, -6deg) * 0.92))
    rotateY(calc(var(--mascot-tilt-y, 14deg) * 0.98))
    rotateZ(calc(var(--mascot-tilt-y, 0deg) * 0.06));
}

.dywyzy-mascot-full[data-mascot-state="THINKING"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="THINKING"] .mascot-rig-body,
.dywyzy-mascot-full[data-mascot-ui="THINKING"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-ui="THINKING"] .mascot-rig-body {
  animation: rig-think-body 2.8s cubic-bezier(0.37, 0, 0.63, 1) infinite;
}

.dywyzy-mascot-full[data-mascot-state="WAVE"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="WAVE"] .mascot-rig-body {
  animation: rig-wave-body 900ms cubic-bezier(0.22, 0.61, 0.36, 1) 2;
}

.dywyzy-mascot-full[data-mascot-state="RESPONDING"] .mascot-rig-body,
.dywyzy-mascot-full[data-mascot-ui="RESPONDING"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="RESPONDING"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-ui="RESPONDING"] .mascot-rig-body {
  animation: rig-nod-body 720ms cubic-bezier(0.22, 0.61, 0.36, 1) 1;
}

.dywyzy-mascot-full[data-mascot-state="HAPPY"] .mascot-rig-body,
.dywyzy-mascot-full[data-mascot-state="SUCCESS"] .mascot-rig-body,
.dywyzy-mascot-full[data-mascot-ui="SUCCESS"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="HAPPY"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="SUCCESS"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-ui="SUCCESS"] .mascot-rig-body {
  animation: rig-ack-body 720ms cubic-bezier(0.22, 0.61, 0.36, 1) 1;
}

.dywyzy-mascot-full[data-mascot-state="GUIDING"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="GUIDING"] .mascot-rig-body {
  animation: rig-guide-body 2.4s cubic-bezier(0.37, 0, 0.63, 1) infinite;
}

.dywyzy-mascot-full[data-mascot-state="TYPING"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="TYPING"] .mascot-rig-body {
  animation: rig-type-body 1.8s cubic-bezier(0.37, 0, 0.63, 1) infinite;
}

.dywyzy-mascot-full[data-mascot-state="SCANNING"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="SCANNING"] .mascot-rig-body {
  animation: rig-scan-body 3.6s cubic-bezier(0.37, 0, 0.63, 1) infinite;
}

.dywyzy-mascot-full[data-mascot-state="ACTIVE"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="ACTIVE"] .mascot-rig-body {
  animation: rig-active-body 2.2s cubic-bezier(0.37, 0, 0.63, 1) infinite;
}

.dywyzy-mascot-full[data-mascot-state="ALERT"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="ALERT"] .mascot-rig-body {
  animation: rig-alert-body 1.6s cubic-bezier(0.37, 0, 0.63, 1) infinite;
}

.dywyzy-mascot-full[data-mascot-state="PROTECTING"] .mascot-rig-body,
.dywyzy-mascot[data-mascot-state="PROTECTING"] .mascot-rig-body {
  animation: rig-protect-body 2s cubic-bezier(0.37, 0, 0.63, 1) infinite;
}

@keyframes rig-idle-body {
  0%, 100% { transform: rotate(-0.55deg) translateY(0); }
  50% { transform: rotate(0.55deg) translateY(-2px); }
}
@keyframes rig-think-body {
  0%, 100% { transform: rotate(-1.4deg) translateY(0); }
  50% { transform: rotate(-2.2deg) translateY(1px); }
}
@keyframes rig-wave-body {
  0%, 100% { transform: rotate(0deg); }
  35% { transform: rotate(-5deg) translateY(-1.5px); }
  70% { transform: rotate(3.5deg); }
}
@keyframes rig-nod-body {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  40% { transform: rotate(2.2deg) translateY(1.5px); }
}
@keyframes rig-ack-body {
  0%, 100% { transform: scale(1); }
  45% { transform: scale(1.02) translateY(-1.5px); }
}
@keyframes rig-guide-body {
  0%, 100% { transform: rotate(0.6deg) translateX(0); }
  50% { transform: rotate(1.6deg) translateX(2px); }
}
@keyframes rig-type-body {
  0%, 100% { transform: rotate(0.5deg) translateY(0); }
  25% { transform: rotate(-0.6deg) translateY(1px); }
  50% { transform: rotate(0.6deg) translateY(-1px); }
  75% { transform: rotate(-0.4deg) translateY(0.6px); }
}
@keyframes rig-scan-body {
  0%, 100% { transform: rotate(-1.4deg); }
  50% { transform: rotate(1.4deg); }
}
@keyframes rig-active-body {
  0%, 100% { transform: scale(1) translateY(0) rotate(-0.4deg); }
  50% { transform: scale(1.015) translateY(-2px) rotate(0.4deg); }
}
@keyframes rig-alert-body {
  0%, 100% { transform: scale(1.003); }
  50% { transform: scale(1.015); }
}
@keyframes rig-protect-body {
  0%, 100% { transform: rotate(-1deg); }
  50% { transform: rotate(-0.3deg); }
}

  @media (prefers-reduced-motion: reduce) {
  .mascot-rig-body,
  .mascot-rig-head,
  .dywyzy-mascot-full .mascot-rig-body,
  .dywyzy-mascot-full[data-mascot-state="LOOKING"] .mascot-rig-body,
  .dywyzy-mascot-full[data-mascot-state="LOOKING"] .mascot-rig-head,
  .dywyzy-mascot-full[data-mascot-ui="HOVER"] .mascot-rig-body,
  .dywyzy-mascot-full[data-mascot-ui="HOVER"] .mascot-rig-head {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }
  .mascot-rig-head {
    opacity: 0 !important;
    visibility: hidden !important;
  }
}

.dywyzy-mascot-seal {
  width: 28px;
  height: 28px;
  position: relative;
  z-index: 1;
}
.dywyzy-mascot-glyph {
  position: absolute;
  right: -5px;
  bottom: -5px;
  width: 14px;
  height: 14px;
  z-index: 2;
  border-radius: 4px;
  pointer-events: none;
}
/* Flat img fallback (glyph / legacy) */
.dywyzy-mascot-full img:not(.mascot-rig-scene img),
img.dywyzy-mascot-full,
.dywyzy-mascot-full:not(:has(.mascot-rig-scene)) .mascot-figure-full,
.dywyzy-mascot-full:not(:has(.mascot-rig-scene)) .assistant-mascot-full {
  animation: dywyzy-mascot-idle 5.6s cubic-bezier(0.37, 0, 0.63, 1) infinite;
}
.dywyzy-mascot:not(.dywyzy-mascot-full)[data-mascot-state="LOOKING"],
.dywyzy-mascot:not(.dywyzy-mascot-full)[data-mascot-ui="HOVER"] {
  transform: rotateY(8deg) rotateX(-4deg);
}
.dywyzy-mascot:not(.dywyzy-mascot-full)[data-mascot-state="THINKING"],
.dywyzy-mascot:not(.dywyzy-mascot-full)[data-mascot-ui="THINKING"] {
  transform: rotate(-7deg);
  opacity: 1;
}
.dywyzy-mascot:not(.dywyzy-mascot-full)[data-mascot-state="RESPONDING"],
.dywyzy-mascot:not(.dywyzy-mascot-full)[data-mascot-ui="RESPONDING"] {
  transform: rotateX(8deg) scale(1.04);
}
.dywyzy-mascot:not(.dywyzy-mascot-full)[data-mascot-state="HAPPY"],
.dywyzy-mascot:not(.dywyzy-mascot-full)[data-mascot-state="SUCCESS"],
.dywyzy-mascot:not(.dywyzy-mascot-full)[data-mascot-ui="SUCCESS"] {
  transform: scale(1.05);
}
.dywyzy-mascot:not(.dywyzy-mascot-full)[data-mascot-state="MINIMIZED"],
.dywyzy-mascot:not(.dywyzy-mascot-full)[data-mascot-ui="DEFAULT"][data-mascot-open="true"] {
  transform: scale(0.94);
}
.dywyzy-mascot-full[data-mascot-state="MINIMIZED"],
.dywyzy-mascot[data-mascot-state="MINIMIZED"] {
  transform: scale(0.94);
}
@keyframes dywyzy-mascot-idle {
  0%, 100% { transform: rotate(-0.8deg) translateY(0); }
  50% { transform: rotate(0.8deg) translateY(-2px); }
}
@keyframes dywyzy-mascot-think {
  0%, 100% { transform: rotate(-4deg); }
  50% { transform: rotate(-2deg); }
}
@keyframes dywyzy-mascot-wave {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(6deg); }
}
@keyframes dywyzy-mascot-nod {
  0%, 100% { transform: translateY(0); }
  40% { transform: translateY(1px); }
}
@keyframes dywyzy-mascot-ack {
  0%, 100% { transform: scale(1); }
  45% { transform: scale(1.04); }
}
@keyframes dywyzy-mascot-type {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(1px); }
}
@keyframes dywyzy-mascot-scan {
  0%, 100% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
}
@keyframes dywyzy-mascot-guide {
  0%, 100% { transform: rotate(2deg); }
  50% { transform: rotate(4deg); }
}
@keyframes dywyzy-mascot-active {
  0%, 100% { transform: scale(1.01); }
  50% { transform: scale(1.03); }
}
@keyframes dywyzy-mascot-alert {
  0%, 100% { transform: scale(1.02); }
  50% { transform: scale(1.03); }
}
@keyframes dywyzy-mascot-protect {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(-1deg); }
}
@media (max-width: 767px) {
  .dywyzy-mascot:not(.dywyzy-mascot-full),
  .dywyzy-mascot-seal {
    width: 24px;
    height: 24px;
  }
  .dywyzy-mascot-glyph {
    width: 12px;
    height: 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .dywyzy-mascot,
  .dywyzy-mascot-full,
  .dywyzy-mascot-full img,
  img.dywyzy-mascot-full,
  .mascot-figure-full,
  .assistant-mascot-full,
  .mascot-rig-layer,
  .mascot-rig-scene {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}
