/* Motion decorates the chosen UI; puzzle geometry and controls stay stationary. */
.delight-effects{position:fixed;inset:0;z-index:90;overflow:hidden;pointer-events:none;contain:strict}
.delight-particle{position:absolute;width:12px;height:12px;clip-path:polygon(50% 0,61% 34%,98% 35%,69% 57%,80% 94%,50% 72%,20% 94%,31% 57%,2% 35%,39% 34%);pointer-events:none;will-change:transform,opacity}
.delight-cheer{position:absolute;translate:-50% -100%;border:1.5px solid #d8ad4c;border-radius:12px;background:#fff3cc;color:#674015;padding:5px 13px;font:800 19px/1.3 'Baloo 2',sans-serif;white-space:nowrap;box-shadow:0 3px 0 #b8822730;pointer-events:none;will-change:transform,opacity}
.has-delight .hero-cast{z-index:auto}
.has-delight .delight-cast{position:relative;display:flex;align-items:flex-end;width:100%;height:100%;gap:0}
.has-delight .delight-puppet{position:relative;flex:1;min-width:0;height:100%}
.has-delight .delight-puppet:nth-child(2)>img{animation-duration:6.7s;animation-delay:-2.2s}
.has-delight .delight-puppet:nth-child(3)>img{animation-duration:6.1s;animation-delay:-4.1s}
.has-delight .delight-puppet:nth-child(4)>img{animation-duration:7.2s;animation-delay:-1.1s}
.has-delight .delight-puppet>img{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 5px 4px #49321b22);transform-origin:50% 85%;transition:transform .42s cubic-bezier(.16,1,.3,1);animation:delight-puppet-idle 5.8s cubic-bezier(.45,0,.55,1) infinite;animation-play-state:paused}
.has-delight .delight-puppet-hit{position:absolute;z-index:4;inset:1% 3% auto;width:94%;height:32%;min-height:44px;min-width:44px;padding:0;border:0;border-radius:16px;background:transparent;cursor:pointer;touch-action:manipulation}
.has-delight .delight-puppet-hit:focus-visible{outline:3px solid #955316;outline-offset:0;background:#fff2bd29}
.has-delight .delight-puppet-name{position:absolute;left:50%;bottom:calc(100% + 2px);translate:-50% 0;padding:4px 9px;border:1px solid #d1a460;border-radius:10px;background:#fff5d8;color:#5d351b;font:800 14px/1.3 'Nunito',sans-serif;opacity:0;pointer-events:none;white-space:nowrap;transition:opacity .15s}
.has-delight .delight-puppet-hit:focus-visible .delight-puppet-name{opacity:1}
.has-delight .hero-mascot .mascot{animation:delight-mascot-idle 5.4s cubic-bezier(.45,0,.55,1) infinite;animation-play-state:paused}
.has-delight .hero-mascot .mascot-girl{animation-duration:6.4s;animation-delay:-2.4s}
.has-delight .hero-mascot .mascot.has-react{animation:mascot-nod .5s cubic-bezier(.16,1,.3,1) 2;animation-play-state:paused}
.has-delight[data-delight='on'][data-hero-visible='true'] :is(.delight-puppet>img,.hero-mascot .mascot){animation-play-state:running}
.has-delight .story-spark{animation:delight-spark-idle 6.2s ease-in-out infinite;animation-play-state:paused}
.has-delight .spark-two{animation-delay:-3.2s}
.has-delight[data-delight='on'][data-hero-visible='true'] .story-spark{animation-play-state:running}
@media(hover:hover) and (pointer:fine){
  .has-delight[data-delight='on'] .delight-puppet:hover>img{transform:translateY(-8px) rotate(-2deg)}
  .has-delight .delight-puppet:hover .delight-puppet-name{opacity:1}
  .has-delight[data-delight='on'] :is(.topic-mini,.topic-card):hover .group-illustration{transform:translateY(-5px) rotate(-1deg)}
  .has-delight[data-delight='on'] .character-row:hover .illustrated-person{transform:translateY(-4px) rotate(-2deg)}
}
.has-delight :is(.group-illustration,.illustrated-person){transition:transform .42s cubic-bezier(.16,1,.3,1)}
@keyframes delight-puppet-idle{0%,100%{translate:0 0;rotate:0deg}35%{translate:0 -5px;rotate:-1deg}70%{translate:0 -1px;rotate:.7deg}}
@keyframes delight-mascot-idle{0%,100%{translate:0 0}45%{translate:0 -6px}70%{translate:0 -2px}}
@keyframes delight-spark-idle{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -8px;rotate:7deg}}
.has-delight[data-delight='off'] :is(.delight-puppet>img,.hero-mascot .mascot,.story-spark){animation:none!important}
.has-delight[data-delight='off'] :is(.delight-puppet>img,.group-illustration,.illustrated-person){transition:none!important;transform:none}
@media(prefers-reduced-motion:reduce){.has-delight :is(.delight-puppet>img,.hero-mascot .mascot,.story-spark){animation:none!important}.has-delight :is(.delight-puppet>img,.group-illustration,.illustrated-person){transition:none!important;transform:none!important}}
