/* Finite character gestures and full-size decorative art. Original SVG
   anchors and the relative order of all content sections remain unchanged.
   Where a true outer rail is too narrow, decoration has its own flow space. */
:is(body.visual-refresh, body.parea-decor-page) [data-pm-robot-body],
:is(body.visual-refresh, body.parea-decor-page) [data-pm-eyes],
:is(body.visual-refresh, body.parea-decor-page) [data-pm-wave],
:is(body.visual-refresh, body.parea-decor-page) [data-pm-smile],
:is(body.visual-refresh, body.parea-decor-page) .pm-decor-drift,
:is(body.visual-refresh, body.parea-decor-page) .pm-helicopter-rotor,
:is(body.visual-refresh, body.parea-decor-page) .pm-rocket-flame {
  transform-box: fill-box;
  transform-origin: center;
}
:is(body.visual-refresh, body.parea-decor-page) [data-pm-robot-body] { transform-origin: 50% 100%; }
:is(body.visual-refresh, body.parea-decor-page) [data-pm-wave] { transform-origin: 0% 100%; }
:is(body.visual-refresh, body.parea-decor-page) [data-pm-smile] { transform-origin: 50% 0%; }
/* Decoration never receives focus or pointer input. Its transparent strips
   are independent siblings, so pictures, text and controls retain their area. */
:is(body.visual-refresh, body.parea-decor-page) [data-pm-owned],
:is(body.visual-refresh, body.parea-decor-page) [data-pm-owned] * {
  pointer-events: none !important;
  user-select: none;
}
:is(body.visual-refresh, body.parea-decor-page) .pm-decor-strip {
  position: relative;
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  flex: none;
  grid-column: 1 / -1;
  clear: both;
  margin: 8px 0;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: visible;
}
:is(body.visual-refresh, body.parea-decor-page) [data-pm-page-gutters] {
  position: absolute;
  overflow: visible;
  z-index: 3;
  contain: layout;
}
:is(body.visual-refresh, body.parea-decor-page) .pm-page-art {
  position: absolute;
  display: block;
  min-width: 0;
  max-width: none;
  max-height: none;
  overflow: visible;
  opacity: .9;
}
:is(body.visual-refresh, body.parea-decor-page) .pm-decor-drift { transform-origin: 50% 90%; }

:is(body.visual-refresh, body.parea-decor-page)[data-pm-enabled="true"][data-pm-motion="active"]:not(.quiet):not(.reduced-motion) svg[data-pm-visible="true"] [data-pm-robot-body] {
  animation: parea-playful-hop 2800ms cubic-bezier(.35, 0, .25, 1) 1 both !important;
}
:is(body.visual-refresh, body.parea-decor-page)[data-pm-enabled="true"][data-pm-motion="active"]:not(.quiet):not(.reduced-motion) svg[data-pm-visible="true"] [data-pm-eyes] {
  animation: parea-playful-blink 2800ms ease-in-out 1 both !important;
}
:is(body.visual-refresh, body.parea-decor-page)[data-pm-enabled="true"][data-pm-motion="active"]:not(.quiet):not(.reduced-motion) svg[data-pm-visible="true"] [data-pm-wave] {
  animation: parea-playful-wave 2800ms ease-in-out 1 both !important;
}
:is(body.visual-refresh, body.parea-decor-page)[data-pm-enabled="true"][data-pm-motion="active"]:not(.quiet):not(.reduced-motion) svg[data-pm-visible="true"] [data-pm-smile] {
  animation: parea-playful-smile 2800ms ease-in-out 1 both !important;
}
:is(body.visual-refresh, body.parea-decor-page)[data-pm-enabled="true"][data-pm-motion="active"]:not(.quiet):not(.reduced-motion) svg[data-pm-visible="true"] .pm-decor-drift {
  animation: parea-playful-drift 2800ms ease-in-out 1 both;
}
:is(body.visual-refresh, body.parea-decor-page)[data-pm-enabled="true"][data-pm-motion="active"]:not(.quiet):not(.reduced-motion) svg[data-pm-visible="true"] .pm-helicopter-rotor {
  animation: parea-playful-rotor 700ms ease-in-out 4;
}
:is(body.visual-refresh, body.parea-decor-page)[data-pm-enabled="true"][data-pm-motion="active"]:not(.quiet):not(.reduced-motion) svg[data-pm-visible="true"] .pm-rocket-flame {
  animation: parea-playful-flame 1400ms ease-in-out 2;
}
:is(body.visual-refresh, body.parea-decor-page)[data-pm-age="6-8"] [data-pm-robot-body],
:is(body.visual-refresh, body.parea-decor-page)[data-pm-age="8-10"] [data-pm-robot-body] { --pm-hop: -4px; --pm-tilt: -1deg; }

@keyframes parea-playful-hop {
  0%, 100% { transform: translateY(0) rotate(0) scale(1); }
  10% { transform: translateY(1px) rotate(0) scale(1.012, .99); }
  24% { transform: translateY(var(--pm-hop, -7px)) rotate(var(--pm-tilt, -1.4deg)) scale(1); }
  40% { transform: translateY(0) rotate(.65deg) scale(1.01, .99); }
  56% { transform: translateY(-3px) rotate(.7deg) scale(1); }
  74% { transform: translateY(0) rotate(0) scale(1); }
}
@keyframes parea-playful-blink {
  0%, 14%, 21%, 62%, 69%, 100% { transform: scaleY(1); }
  17%, 18%, 65%, 66% { transform: scaleY(.1); }
}
@keyframes parea-playful-wave {
  0%, 16%, 78%, 100% { transform: rotate(0); }
  30%, 58% { transform: rotate(-12deg); }
  44%, 68% { transform: rotate(4deg); }
}
@keyframes parea-playful-smile {
  0%, 100% { transform: scale(1); }
  25%, 64% { transform: scale(1.12, 1.2); }
}
@keyframes parea-playful-drift {
  0%, 100% { transform: translate(0, 0) rotate(0); }
  40% { transform: translate(1px, -4px) rotate(-1.3deg); }
  73% { transform: translate(-1px, -2px) rotate(.8deg); }
}
@keyframes parea-playful-rotor {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(.76); }
}
@keyframes parea-playful-flame {
  0%, 100% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(.86); opacity: 1; }
}

:is(body.visual-refresh, body.parea-decor-page).quiet [data-pm-owned],
:is(body.visual-refresh, body.parea-decor-page).quiet [data-pm-owned] *,
:is(body.visual-refresh, body.parea-decor-page).reduced-motion [data-pm-owned],
:is(body.visual-refresh, body.parea-decor-page).reduced-motion [data-pm-owned] *,
:is(body.visual-refresh, body.parea-decor-page)[data-pm-enabled="false"] [data-pm-owned],
:is(body.visual-refresh, body.parea-decor-page)[data-pm-enabled="false"] [data-pm-owned] * {
  animation: none !important;
  transition: none !important;
}
@media (prefers-reduced-motion: reduce) {
  :is(body.visual-refresh, body.parea-decor-page) [data-pm-owned], :is(body.visual-refresh, body.parea-decor-page) [data-pm-owned] * {
    animation: none !important;
    transition: none !important;
  }
}

@media print {
  .pm-decor-strip, [data-pm-page-gutters] { display: none !important; }
}
