/* JTII AI SEASONAL MOTION V3 — scoped only to JTII chat, not global site. */
#jtii-ai-panel .jtii-ai-header-icon img.jtii-ai-seasonal-v3-typing {
  animation: jtii-v3-mascot-bob 1.6s ease-in-out infinite !important;
  transform-origin: 50% 70% !important;
  object-fit: cover !important;
  object-position: center !important;
}
@keyframes jtii-v3-mascot-bob {
  0%,100% { transform: translateY(0) rotate(0); }
  32% { transform: translateY(-1px) rotate(-4deg); }
  65% { transform: translateY(0) rotate(3deg); }
}

#jtii-ai-panel .jtii-ai-messages:has(> .jtii-ai-seasonal-v3-layer) {
  position: relative !important;
  isolation: isolate;
}
#jtii-ai-panel .jtii-ai-seasonal-v3-layer {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
  user-select: none !important;
  contain: paint;
}
#jtii-ai-panel .jtii-ai-messages > :not(.jtii-ai-seasonal-v3-layer) {
  position: relative;
  z-index: 1;
}
#jtii-ai-panel .jtii-ai-seasonal-v3-piece {
  position: absolute;
  display: block;
  width: 28px;
  height: 28px;
  pointer-events: none;
  opacity: .18;
  color: #725074;
  font-family: system-ui, 'Segoe UI Emoji', sans-serif;
  line-height: 1;
  text-align: center;
  will-change: transform;
}
#jtii-ai-panel .jtii-ai-seasonal-v3-piece::before {
  display: block;
  font-size: 19px;
  content: var(--jtii-v3-symbol, '✦');
}
#jtii-ai-panel .jtii-ai-seasonal-v3-piece:nth-child(1) {
  top: 10%; left: 3%; animation: jtii-v3-hover-a 9s ease-in-out infinite alternate;
}
#jtii-ai-panel .jtii-ai-seasonal-v3-piece:nth-child(2) {
  top: 24%; right: 4%; animation: jtii-v3-hover-b 11s ease-in-out infinite alternate;
}
#jtii-ai-panel .jtii-ai-seasonal-v3-piece:nth-child(3) {
  top: 58%; left: 8%; animation: jtii-v3-hover-b 13s ease-in-out infinite alternate-reverse;
}
#jtii-ai-panel .jtii-ai-seasonal-v3-piece:nth-child(4) {
  bottom: 9%; right: 9%; animation: jtii-v3-hover-a 10s ease-in-out infinite alternate-reverse;
}
@keyframes jtii-v3-hover-a {
  from {transform: translate3d(0,0,0) rotate(-9deg)}
  to {transform: translate3d(14px,-16px,0) rotate(12deg)}
}
@keyframes jtii-v3-hover-b {
  from {transform: translate3d(0,4px,0) rotate(8deg)}
  to {transform: translate3d(-15px,-20px,0) rotate(-12deg)}
}

/* Halloween: bat crosses the top; spider descends on a delicate thread. */
#jtii-ai-panel[data-jtii-seasonal-v3="halloween"] .jtii-ai-seasonal-v3-piece {
  color: #593567; opacity: .23;
}
#jtii-ai-panel[data-jtii-seasonal-v3="halloween"] .jtii-ai-seasonal-v3-piece:nth-child(1) {
  left: -30px; top: 14%; animation: jtii-v3-bat-flight 13s linear infinite;
}
#jtii-ai-panel[data-jtii-seasonal-v3="halloween"] .jtii-ai-seasonal-v3-piece:nth-child(2) {
  top: -16px; right: 9%; animation: jtii-v3-spider-drop 12s ease-in-out infinite;
}
#jtii-ai-panel[data-jtii-seasonal-v3="halloween"] .jtii-ai-seasonal-v3-piece:nth-child(2)::after {
  content: '';
  position: absolute;
  left: 50%; bottom: 19px;
  height: 95px;
  border-left: 1px solid rgba(88,61,99,.32);
}
#jtii-ai-panel[data-jtii-seasonal-v3="halloween"] .jtii-ai-seasonal-v3-piece:nth-child(3) {
  left: -23px; top: 68%; animation: jtii-v3-bat-flight 18s linear infinite 5s;
}
@keyframes jtii-v3-bat-flight {
  0% { transform: translate3d(-18px, 0, 0) scale(.75) rotate(-8deg); }
  45% { transform: translate3d(170px,-24px,0) scale(1) rotate(9deg); }
  100% { transform: translate3d(410px,4px,0) scale(.78) rotate(-8deg); }
}
@keyframes jtii-v3-spider-drop {
  0%, 100% { transform: translate3d(0,-9px,0); }
  48%, 62% { transform: translate3d(0,76px,0); }
}
/* Snow, petals, and celebrations: subtle drift, never covering chat input. */
#jtii-ai-panel[data-jtii-seasonal-v3="natal"] .jtii-ai-seasonal-v3-piece,
#jtii-ai-panel[data-jtii-seasonal-v3="sakura"] .jtii-ai-seasonal-v3-piece,
#jtii-ai-panel[data-jtii-seasonal-v3="tahunbaru"] .jtii-ai-seasonal-v3-piece {
  opacity: .19;
  animation: jtii-v3-soft-fall 14s linear infinite;
}
#jtii-ai-panel[data-jtii-seasonal-v3="sakura"] .jtii-ai-seasonal-v3-piece { color: #c27e9b; }
#jtii-ai-panel[data-jtii-seasonal-v3="natal"] .jtii-ai-seasonal-v3-piece { color: #648b87; }
#jtii-ai-panel[data-jtii-seasonal-v3="tahunbaru"] .jtii-ai-seasonal-v3-piece { color: #bd9e64; }
#jtii-ai-panel[data-jtii-seasonal-v3="natal"] .jtii-ai-seasonal-v3-piece:nth-child(2),
#jtii-ai-panel[data-jtii-seasonal-v3="sakura"] .jtii-ai-seasonal-v3-piece:nth-child(2),
#jtii-ai-panel[data-jtii-seasonal-v3="tahunbaru"] .jtii-ai-seasonal-v3-piece:nth-child(2) { animation-delay: -5s; }
#jtii-ai-panel[data-jtii-seasonal-v3="natal"] .jtii-ai-seasonal-v3-piece:nth-child(3),
#jtii-ai-panel[data-jtii-seasonal-v3="sakura"] .jtii-ai-seasonal-v3-piece:nth-child(3),
#jtii-ai-panel[data-jtii-seasonal-v3="tahunbaru"] .jtii-ai-seasonal-v3-piece:nth-child(3) { animation-delay: -9s; }
@keyframes jtii-v3-soft-fall {
  from { transform: translate3d(-4px,-25px,0) rotate(0); }
  to { transform: translate3d(23px,110px,0) rotate(170deg); }
}

@media (max-width: 480px) {
  #jtii-ai-panel .jtii-ai-seasonal-v3-piece:nth-child(3),
  #jtii-ai-panel .jtii-ai-seasonal-v3-piece:nth-child(4) { display:none; }
  #jtii-ai-panel .jtii-ai-seasonal-v3-piece { opacity: .14; }
}
@media (prefers-reduced-motion: reduce) {
  #jtii-ai-panel .jtii-ai-header-icon img.jtii-ai-seasonal-v3-typing,
  #jtii-ai-panel .jtii-ai-seasonal-v3-piece {
    animation: none !important;
    will-change: auto !important;
  }
  #jtii-ai-panel .jtii-ai-seasonal-v3-piece { opacity: .10; }
}
