/* v655 — Avatar Room sticky/layout authority + living accessory FX. Loaded last. */
:root{--gg-avatar-room-sticky-top:88px}

/* Avatar Room structure: the scene is the sticky item; controls remain in normal flow below it. */
body.avatar-room-page:not(.gg-salon-room-v206) .room-main,
body.avatar-room-page:not(.gg-salon-room-v206) .room-main>.wrap,
body.avatar-room-page:not(.gg-salon-room-v206) .rich-avatar-shell,
body.avatar-room-page:not(.gg-salon-room-v206) .room-studio-card{
  overflow:visible!important;overflow-x:visible!important;overflow-y:visible!important;
  contain:none!important;transform:none!important;filter:none!important;
}
body.avatar-room-page:not(.gg-salon-room-v206) #avatarRoom{
  position:sticky!important;top:var(--gg-avatar-room-sticky-top)!important;z-index:62!important;
  transform:none!important;align-self:auto!important;margin:0 0 14px!important;
  isolation:isolate;
}
body.avatar-room-page:not(.gg-salon-room-v206) .gg-room-controls-v655{
  position:relative!important;z-index:10!important;display:block!important;clear:both!important;
  width:100%!important;margin:0!important;padding:0!important;transform:none!important;
}
body.avatar-room-page:not(.gg-salon-room-v206) #ggRoomAvatarFamiliarSwitcherV616{
  position:relative!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;
  transform:none!important;float:none!important;clear:both!important;
  width:min(590px,calc(100% - 28px))!important;max-width:590px!important;
  margin:10px auto 14px!important;padding:6px!important;z-index:11!important;
}
body.avatar-room-page:not(.gg-salon-room-v206) #roomEditorActiveLabelV061{
  position:relative!important;inset:auto!important;transform:none!important;z-index:auto!important;
  display:block!important;clear:both!important;margin:0 16px 7px!important;
}
body.avatar-room-page:not(.gg-salon-room-v206) .room-category-wrap-v061{
  position:relative!important;inset:auto!important;transform:none!important;clear:both!important;z-index:10!important;
  margin-top:0!important;
}
body.avatar-room-page:not(.gg-salon-room-v206) #roomOptionDrawer,
body.avatar-room-page:not(.gg-salon-room-v206) #roomSaveNote{position:relative!important;z-index:10!important}

/* Living Heart Eyes: animate internal artwork only. */
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .heart-pulse,
body:is(.avatar-page,.avatar-room-page) #roomExactAvatar #eyeAccessory .heart-pulse{
  transform-box:fill-box!important;transform-origin:center!important;
  animation:ggHeartEyesV655 2.55s cubic-bezier(.42,0,.2,1) infinite!important;
}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .heart-pulse>path{
  transform-box:fill-box!important;transform-origin:center!important;
  animation:ggHeartEyeBeatV655 2.55s cubic-bezier(.42,0,.2,1) infinite!important;
}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .heart-pulse>path:nth-child(2){animation-delay:-.18s!important}
@keyframes ggHeartEyesV655{0%,100%{transform:translate3d(0,0,0) scale(1)}30%{transform:translate3d(0,-1px,0) scale(1.045)}50%{transform:translate3d(0,1px,0) scale(.988)}72%{transform:translate3d(0,0,0) scale(1.022)}}
@keyframes ggHeartEyeBeatV655{0%,100%{transform:scale(1)}24%{transform:scale(1.09)}39%{transform:scale(1.01)}57%{transform:scale(1.12)}70%{transform:scale(1.02)}}

/* Living Turd Eyes: wobble/squash with neutral rest. */
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .poop-pulse{animation:none!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-poop-eye-life-v642{
  transform-box:fill-box!important;transform-origin:center!important;
  animation:ggTurdEyesV655 4.15s cubic-bezier(.42,0,.2,1) infinite!important;
}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-poop-eye-right-v642{animation-delay:-.48s!important}
@keyframes ggTurdEyesV655{0%,12%,100%{transform:translate3d(0,0,0) rotate(0) scale(1)}27%{transform:translate3d(0,-1px,0) rotate(-2.5deg) scale(1.04,.97)}43%{transform:translate3d(0,0,0) rotate(2deg) scale(.985,1.025)}63%{transform:translate3d(0,-1px,0) rotate(-1.4deg) scale(1.03,.985)}69%{transform:translate3d(1px,0,0) rotate(3deg) scale(1.02)}74%{transform:translate3d(-1px,0,0) rotate(-3deg) scale(.99)}80%{transform:translate3d(0,0,0) rotate(0) scale(1)}}

/* Star Glasses stay anchored; only star-dust/glint children move. */
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-glasses-v642{pointer-events:none!important;transform:none!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-dust-v642{opacity:1!important;overflow:visible!important;pointer-events:none!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-dust-v642>*{
  transform-box:fill-box!important;transform-origin:center!important;opacity:0;
  animation:ggStarDustFloatV655 2.15s ease-in-out infinite!important;
  filter:drop-shadow(0 0 3px rgba(255,226,102,.95));
}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-dust-v642>*:nth-child(1){--ggdx:-8px;animation-delay:-.15s!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-dust-v642>*:nth-child(2){--ggdx:7px;animation-delay:-.75s!important;animation-duration:2.55s!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-dust-v642>*:nth-child(3){--ggdx:-5px;animation-delay:-1.25s!important;animation-duration:1.85s!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-dust-v642>*:nth-child(4){--ggdx:9px;animation-delay:-1.7s!important;animation-duration:2.7s!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-dust-v642>*:nth-child(5){--ggdx:-7px;animation-delay:-.95s!important;animation-duration:2.2s!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-dust-v642>*:nth-child(6){--ggdx:6px;animation-delay:-2s!important;animation-duration:2.4s!important}
@keyframes ggStarDustFloatV655{0%{opacity:0;transform:translate3d(0,4px,0) scale(.45) rotate(0)}18%{opacity:1}58%{opacity:.95;transform:translate3d(var(--ggdx,4px),-7px,0) scale(1.22) rotate(42deg)}100%{opacity:0;transform:translate3d(calc(var(--ggdx,4px) * 1.45),-18px,0) scale(.72) rotate(105deg)}}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-lens-v642 path{animation:ggStarLensGlintV655 5.3s ease-in-out infinite!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-lens-v642 path:nth-child(2){animation-delay:-2.65s!important}
@keyframes ggStarLensGlintV655{0%,78%,100%{filter:drop-shadow(0 0 3px rgba(255,205,72,.28));opacity:1}84%{filter:drop-shadow(0 0 8px #fff3a7) drop-shadow(0 0 12px #ffd95f);opacity:1}90%{filter:drop-shadow(0 0 3px rgba(255,205,72,.28));opacity:1}}

/* Heart Glasses: authoritative red translucent lens + subtle glass shine. */
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-heart-glasses-v641>path:nth-child(1),
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-heart-glasses-v641>path:nth-child(2){fill:rgba(196,22,48,.72)!important;stroke:none!important;filter:drop-shadow(0 1px 1px rgba(90,0,10,.22))}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-heart-glasses-v641>path:last-child{animation:ggHeartGlassShineV655 4.8s ease-in-out infinite!important}
@keyframes ggHeartGlassShineV655{0%,72%,100%{opacity:.35}82%{opacity:1}89%{opacity:.48}}
/* v602 can render Heart Glasses without the v641 wrapper; state JS adds this class. */
body:is(.avatar-page,.avatar-room-page) #eyeAccessory.gg-heart-glasses-active-v655>path:nth-child(1),
body:is(.avatar-page,.avatar-room-page) #eyeAccessory.gg-heart-glasses-active-v655>path:nth-child(2){fill:rgba(196,22,48,.72)!important;stroke:#171217!important;stroke-width:6!important;stroke-linejoin:round!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory.gg-heart-glasses-active-v655>path:nth-child(3){fill:none!important;stroke:#171217!important;stroke-width:6!important;stroke-linecap:round!important}

/* Googly lenses: pupils live at bottom and one-shot shake inside frame. */
body:is(.avatar-page,.avatar-room-page) #eyeAccessory.gg-googly-active-v655{overflow:visible!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .googly-pupil{transform-box:fill-box!important;transform-origin:center!important;will-change:transform}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .googly-pupil.gg-googly-shake-a-v655{animation:ggGooglyShakeAV655 .68s cubic-bezier(.22,.8,.24,1) 1!important}
body:is(.avatar-page,.avatar-room-page) #eyeAccessory .googly-pupil.gg-googly-shake-b-v655{animation:ggGooglyShakeBV655 .68s cubic-bezier(.22,.8,.24,1) 1!important}
@keyframes ggGooglyShakeAV655{0%,100%{transform:translate3d(0,0,0)}18%{transform:translate3d(-9px,-17px,0)}36%{transform:translate3d(8px,-5px,0)}53%{transform:translate3d(-5px,-12px,0)}70%{transform:translate3d(5px,-3px,0)}84%{transform:translate3d(-2px,-6px,0)}}
@keyframes ggGooglyShakeBV655{0%,100%{transform:translate3d(0,0,0)}16%{transform:translate3d(8px,-14px,0)}34%{transform:translate3d(-9px,-7px,0)}52%{transform:translate3d(6px,-16px,0)}71%{transform:translate3d(-4px,-3px,0)}86%{transform:translate3d(2px,-7px,0)}}

/* Hazmat is the face-covering authority. v655 JS applies this class only to incompatible layers. */
body:is(.avatar-page,.avatar-room-page) svg.gg-hazmat-active-v655 .gg-hazmat-suppress-v655{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}

@media(max-width:760px){:root{--gg-avatar-room-sticky-top:86px}}
@media(prefers-reduced-motion:reduce){
 body:is(.avatar-page,.avatar-room-page) #eyeAccessory .heart-pulse,
 body:is(.avatar-page,.avatar-room-page) #eyeAccessory .heart-pulse>path,
 body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-poop-eye-life-v642,
 body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-dust-v642>*,
 body:is(.avatar-page,.avatar-room-page) #eyeAccessory .gg-star-lens-v642 path{animation:none!important}
}
