/* Decorative motion only. No loading veil, text animation, or scroll interception. */
.ulu-site .ulu-entered { animation: none; }
.ulu-motion-scope { --ulu-play: paused; --ulu-drift: 0px; --ulu-unfold: 1; }
.ulu-motion-inview { --ulu-play: running; }
.ulu-motion-scope *, .ulu-motion-scope *::before, .ulu-motion-scope *::after, .ulu-motion-scope::before, .ulu-motion-scope::after { animation-play-state: var(--ulu-play)!important; }
.ulu-motion-paused .ulu-motion-scope *, .ulu-motion-paused .ulu-motion-scope *::before, .ulu-motion-paused .ulu-motion-scope *::after, .ulu-motion-paused .ulu-motion-scope::before, .ulu-motion-paused .ulu-motion-scope::after { animation-play-state: paused!important; }
.ulu-motion-field, .ulu-motion-shapes, .ulu-motion-ground, .ulu-motion-corner, .ulu-motion-buddy, .ulu-motion-title-shapes { pointer-events: none; user-select: none; }
.ulu-motion-mobile { display: none; pointer-events: none; }

/* The hero is a small kinetic composition: a bear, a folding page, a petal and two soft blocks. */
.ulu-content .ulu-motion-hero {
  background: transparent; isolation: isolate; overflow: visible;
  --ulu-look-x: 0px; --ulu-look-y: 0px;
}
.ulu-content .ulu-motion-hero::before, .ulu-content .ulu-motion-hero::after { display: none; }
.ulu-motion-field {
  position: absolute; inset: 0 -3% 0 2%; z-index: -2;
  background: var(--ulu-sky);
  border-radius: 48% 6% 0 26%; transform-origin: 75% 65%;
  animation: ulu-field-breathe 13s ease-in-out infinite;
}
.ulu-motion-field::before, .ulu-motion-field::after {
  content: ''; position: absolute; display: block; bottom: 0; right: 0;
  transform-origin: bottom right;
}
.ulu-motion-field::before {
  width: 50%; height: 37%; background: var(--ulu-leaf); border-radius: 85% 0 0 0;
  animation: ulu-leaf-unfold 10s ease-in-out infinite;
}
.ulu-motion-field::after {
  width: 28%; height: 22%; background: var(--ulu-yellow); border-radius: 100% 0 0 0;
  animation: ulu-leaf-unfold 10s -3s ease-in-out infinite reverse;
}
.ulu-motion-shapes { position: absolute; inset: 0; z-index: 2; transform: translateY(var(--ulu-drift)); }
.ulu-motion-piece { position: absolute; display: block; width: 78px; height: 78px; }
.ulu-motion-piece i { display: block; width: 100%; height: 100%; position: relative; }
.ulu-motion-piece--petal { left: 4%; top: 3%; animation: ulu-petal-travel 8s ease-in-out infinite; }
.ulu-motion-piece--petal i { background: var(--ulu-coral); border-radius: 55% 55% 15% 55%; animation: ulu-soft-turn 8s ease-in-out infinite; }
.ulu-motion-piece--fold { right: 9%; top: 5%; width: 64px; height: 88px; animation: ulu-fold-travel 9s -2s ease-in-out infinite; }
.ulu-motion-piece--fold i { background: #8cbe80; border-radius: 12px 28px 12px 28px; transform: rotate(15deg); animation: ulu-fold-sway 9s -2s ease-in-out infinite; }
.ulu-motion-piece--fold i::after { content: ''; position: absolute; inset: 0 50% 0 0; background: #c5e8b7; border-radius: 12px 0 0 28px; transform-origin: right; animation: ulu-paper-fold 9s -2s ease-in-out infinite; }
.ulu-motion-piece--arch { right: 0; bottom: 25%; width: 86px; height: 60px; animation: ulu-arch-travel 7s -.8s ease-in-out infinite; }
.ulu-motion-piece--arch i { border-radius: 60px 60px 14px 14px; background: #5798d0; animation: ulu-arch-squash 7s -.8s ease-in-out infinite; }
.ulu-motion-piece--seed { left: 9%; bottom: 8%; width: 88px; height: 56px; animation: ulu-seed-travel 10s -4s ease-in-out infinite; }
.ulu-motion-piece--seed i { background: #f4cc63; border-radius: 14px 40px 14px 40px; animation: ulu-seed-squash 10s -4s ease-in-out infinite; }
.ulu-content .ulu-motion-hero .ulu-motion-bear {
  z-index: 3; transform-origin: 50% 85%;
  animation: ulu-bear-bob 6.8s -.5s cubic-bezier(.45,0,.3,1) infinite;
}
.ulu-motion-bear img { transform: translate(var(--ulu-look-x), var(--ulu-look-y)); transition: transform .65s ease-out; }
.ulu-motion-ground {
  position: absolute; left: 30%; bottom: 16%; width: 45%; height: 17px;
  border-radius: 50%; background: #537c8916; filter: blur(3px); z-index: -1;
  animation: ulu-ground-breathe 6.8s -.5s ease-in-out infinite;
}

/* Animated corners stay in the existing margins, away from copy and controls. */
.ulu-content .ulu-motion-panel { position: relative; isolation: isolate; background: transparent; --ulu-panel-color: var(--ulu-sky); }
.ulu-motion-panel.ulu-leaf { --ulu-panel-color: var(--ulu-leaf); }
.ulu-motion-panel.ulu-yellow { --ulu-panel-color: var(--ulu-yellow); }
.ulu-motion-panel::before {
  content: ''; position: absolute; z-index: -1; inset: 0; background: var(--ulu-panel-color); border-radius: inherit;
  transform: scaleX(var(--ulu-unfold)); transform-origin: right center;
  transition: transform .35s ease-out;
}
.ulu-motion-corner { position: absolute; top: -29px; right: 10%; width: 100px; height: 75px; z-index: 1; transform: translateY(var(--ulu-drift)); }
.ulu-motion-corner i { position: absolute; display: block; width: 40px; height: 60px; background: #f4cc63; border-radius: 26px 26px 10px 26px; transform-origin: 50% 85%; animation: ulu-corner-dance 8s var(--ulu-motion-delay,0s) ease-in-out infinite; }
.ulu-motion-corner i + i { left: 46px; top: 11px; height: 44px; background: var(--ulu-coral); border-radius: 8px 24px 24px 24px; animation-delay: calc(var(--ulu-motion-delay,0s) - 1.2s); }
.ulu-leaf > .ulu-motion-corner i { background: #5798d0; }
.ulu-yellow > .ulu-motion-corner i { background: #8cbe80; }
.ulu-showcase .ulu-motion-corner { right: 17%; }
.ulu-content .ulu-motion-friend figure, .ulu-content figure.ulu-motion-friend { transform-origin: 50% 80%; animation: ulu-friend-sway 8s ease-in-out infinite; animation-play-state: var(--ulu-play)!important; }
.ulu-content .ulu-motion-friend:not(.ulu-motion-inview) figure, .ulu-content figure.ulu-motion-friend:not(.ulu-motion-inview), .ulu-motion-paused .ulu-motion-friend figure, .ulu-motion-paused figure.ulu-motion-friend { animation-play-state: paused!important; }

/* The geometric bear has just two eyes, like the original character. */
.ulu-motion-buddy { position: absolute; right: 9%; bottom: -20px; width: 106px; height: 84px; z-index: 2; animation: ulu-buddy-peek 9s -2s ease-in-out infinite; }
.ulu-motion-face { position: absolute; bottom: 3px; left: 0; width: 106px; height: 74px; border-radius: 46% 46% 40% 40%; background: #fff; box-shadow: 0 3px 0 #293a3b0b; }
.ulu-motion-ear { position: absolute; width: 31px; height: 31px; border-radius: 50%; background: #fff; top: 0; }
.ulu-motion-ear--left { left: 3px; }.ulu-motion-ear--right { right: 3px; }
.ulu-motion-face i { position: absolute; left: 33px; top: 30px; width: 8px; height: 11px; border-radius: 50%; background: var(--ulu-ink); animation: ulu-bear-blink 5.7s infinite; }
.ulu-motion-face i + i { left: 65px; }
.ulu-motion-paw { position: absolute; right: -14px; bottom: 0; width: 28px; height: 35px; background: #fff; border-radius: 50%; transform-origin: 50% 100%; animation: ulu-bear-wave 9s -2s ease-in-out infinite; }
.ulu-content .ulu-motion-title { position: relative; }
.ulu-motion-title-shapes { position: absolute; top: 55px; right: 1%; width: 210px; height: 120px; }
.ulu-motion-title-shapes .ulu-motion-piece { width: 40px; height: 40px; }
.ulu-motion-title-shapes .ulu-motion-piece--fold { right: 30%; }
.ulu-motion-title-shapes .ulu-motion-piece--seed { display: none; }

.ulu-motion-control {
  position: fixed; z-index: 30; bottom: 18px; right: 20px;
  display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 14px;
  border: 1px solid #d9e1e6; border-radius: 25px; background: #fff; color: var(--ulu-muted);
  font-size: 11px!important; line-height: 1.5!important; box-shadow: 0 3px 12px #243b4410; cursor: pointer;
}
.ulu-motion-control[hidden] { display: none; }
.ulu-motion-control-icon { width: 9px; height: 11px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.ulu-motion-control[aria-pressed=true] .ulu-motion-control-icon { border: 0; background: currentColor; clip-path: polygon(5% 0,100% 50%,5% 100%); }
.ulu-site .ulu-button span[aria-hidden], .ulu-site .wp-block-button__link span[aria-hidden], .ulu-header-cta span { display: inline-block; transition: transform .3s; }
.ulu-site a:hover > span[aria-hidden] { transform: translateX(5px); }

@keyframes ulu-field-breathe { 0%,100% { border-radius: 48% 6% 0 26%; transform: rotate(-2deg) scale(.98); } 50% { border-radius: 30% 30% 0 40%; transform: rotate(2deg) scale(1.02); } }
@keyframes ulu-leaf-unfold { 0%,100% { transform: scale(.9,1) rotate(0); } 50% { transform: scale(1.12,.86) rotate(-7deg); } }
@keyframes ulu-petal-travel { 0%,100% { transform: translate(0,0); } 50% { transform: translate(20px,-32px); } }
@keyframes ulu-soft-turn { 0%,100% { transform: rotate(-18deg) scale(1,.9); border-radius: 55% 55% 15% 55%; } 50% { transform: rotate(72deg) scale(.82,1.08); border-radius: 28% 55% 55% 55%; } }
@keyframes ulu-fold-travel { 0%,100% { transform: translateY(0); } 50% { transform: translateY(26px); } }
@keyframes ulu-fold-sway { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(-20deg); } }
@keyframes ulu-paper-fold { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(.28); } }
@keyframes ulu-arch-travel { 0%,100% { transform: translate(0,0); } 45% { transform: translate(-13px,-28px); } 60% { transform: translate(-10px,-24px); } }
@keyframes ulu-arch-squash { 0%,100% { transform: rotate(12deg) scale(1); } 45% { transform: rotate(-16deg) scale(.86,1.15); } }
@keyframes ulu-seed-travel { 0%,100% { transform: translate(0,0); } 50% { transform: translate(22px,-18px); } }
@keyframes ulu-seed-squash { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(35deg) scale(.88,1.15); } }
@keyframes ulu-bear-bob { 0%,100% { transform: translateY(7px) rotate(-4deg) scale(1.01,.99); } 45% { transform: translateY(-24px) rotate(4deg) scale(.99,1.01); } 70% { transform: translateY(-15px) rotate(1deg); } }
@keyframes ulu-ground-breathe { 0%,100% { transform: scaleX(1); opacity: .8; } 45% { transform: scaleX(.76); opacity: .35; } }
@keyframes ulu-corner-dance { 0%,100% { transform: translateY(0) rotate(-14deg); } 45% { transform: translateY(-13px) rotate(18deg) scale(.94,1.04); } }
@keyframes ulu-friend-sway { 0%,100% { transform: translateY(4px) rotate(-3deg); } 50% { transform: translateY(-12px) rotate(3deg); } }
@keyframes ulu-buddy-peek { 0%,100% { transform: translateY(5px) rotate(-7deg); } 35%,60% { transform: translateY(-10px) rotate(5deg); } }
@keyframes ulu-bear-blink { 0%,42%,46%,100% { transform: scaleY(1); } 44% { transform: scaleY(.1); } }
@keyframes ulu-bear-wave { 0%,25%,65%,100% { transform: rotate(10deg); } 35%,55% { transform: rotate(30deg) translateY(-8px); } 45% { transform: rotate(-20deg) translateY(-8px); } }

@media(min-width:761px) {
  .ulu-content .ulu-motion-hero .ulu-motion-bear { width: 80%; max-width: 330px; }
}
@media(max-width:1100px) and (min-width:761px) {
  .ulu-motion-piece { width: 57px; height: 57px; }
  .ulu-motion-piece--fold { width: 45px; height: 65px; }
  .ulu-motion-piece--arch { width: 60px; height: 44px; }
  .ulu-motion-piece--seed { width: 60px; height: 42px; }
}
@media(max-width:760px) {
  .ulu-motion-mobile { display: block; position: absolute; left: 0; top: -46px; width: 150px; height: 30px; }
  .ulu-motion-mobile .ulu-motion-piece { width: 23px; height: 26px; top: 0; bottom: auto; right: auto; animation: ulu-corner-dance 8s ease-in-out infinite; }
  .ulu-motion-mobile .ulu-motion-piece--petal { left: 0; }
  .ulu-motion-mobile .ulu-motion-piece--fold { left: 48px; animation-delay: -2s; }
  .ulu-motion-mobile .ulu-motion-piece--arch { left: 96px; animation-delay: -4s; }
  .ulu-motion-mobile .ulu-motion-piece--seed { display: none; }
  .ulu-content .ulu-motion-hero { margin-top: 55px; margin-bottom: 24px; height: 310px; }
  .ulu-content .ulu-motion-hero .ulu-motion-bear { width: 54%; max-width: 170px; }
  .ulu-motion-field { inset: 0 -3% 0 0; }
  .ulu-motion-piece { width: 49px; height: 49px; }
  .ulu-motion-piece--petal { left: 7%; top: 16%; }
  .ulu-motion-piece--fold { width: 37px; height: 53px; right: 14%; top: 6%; }
  .ulu-motion-piece--arch { width: 55px; height: 38px; right: 4%; bottom: 27%; }
  .ulu-motion-piece--seed { width: 55px; height: 36px; left: 13%; bottom: 11%; }
  .ulu-motion-ground { bottom: 16%; left: 30%; width: 40%; }
  .ulu-motion-corner { width: 72px; height: 52px; right: 13%; top: -23px; }
  .ulu-motion-corner i { width: 28px; height: 43px; }
  .ulu-motion-corner i + i { left: 32px; height: 31px; }
  .ulu-motion-buddy { right: 11%; scale: .72; transform-origin: bottom right; }
  .ulu-motion-title-shapes { top: 0; right: 5%; width: 130px; height: 60px; }
  .ulu-motion-title-shapes .ulu-motion-piece { width: 26px; height: 26px; }
  .ulu-motion-control { bottom: 10px; right: 12px; min-height: 40px; padding: 8px 12px; }
  .ulu-footer { padding-bottom: 36px; }
}
@media(prefers-reduced-motion:reduce) {
  .ulu-site *, .ulu-site *::before, .ulu-site *::after { animation: none!important; transition: none!important; }
  .ulu-motion-control { display: none!important; }
  .ulu-motion-shapes, .ulu-motion-corner { transform: none; }
}
