/* Short, layered impact animation. No persistent target rings. */
.hero-impact{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none}
.impact-flare{position:absolute;left:-90px;top:-90px;width:180px;height:180px;stroke:none;overflow:visible;opacity:0;filter:drop-shadow(0 0 12px var(--gold))}
.impact-back{fill:var(--accent)}
.impact-core{fill:var(--gold)}
.impact-particle{position:absolute;left:0;top:0;width:0;height:0;transform:rotate(var(--angle))}
.impact-particle i{display:block;position:absolute;left:0;top:-3px;width:7px;height:7px;background:var(--particle-colour);opacity:0;box-shadow:0 0 8px var(--particle-colour)}
.impact-streak i{width:36px;height:3px;border-radius:100%}
.impact-confetti i{width:5px;height:11px;border-radius:1px}
.impact-spark i{width:10px;height:10px;clip-path:polygon(50% 0,65% 35%,100% 50%,65% 65%,50% 100%,35% 65%,0 50%,35% 35%)}
.impact-callout{position:absolute;left:-26px;top:43px;display:flex;flex-direction:column;align-items:center;width:124px;font-family:var(--font-display);font-weight:900;color:var(--gold);line-height:.85;letter-spacing:-.055em;opacity:0;text-shadow:2px 3px 0 var(--ink),-1px -1px 0 var(--ink);transform:translateX(-100%) rotate(-8deg)}
.impact-callout b{font-size:64px}
.impact-callout>span{margin-top:7px;font-size:14px;letter-spacing:.035em;color:var(--fg)}
.hero-impact.is-bursting .impact-flare{animation:impact-flare .82s cubic-bezier(.15,.8,.2,1) both}
.hero-impact.is-bursting .impact-particle i{animation:impact-scatter 1.05s var(--delay) cubic-bezier(.1,.65,.25,1) both}
.hero-impact.is-bursting .impact-callout{animation:impact-callout 1.65s .08s cubic-bezier(.16,1,.3,1) both}
.hero-flight-layer:has(.hero-impact.is-bursting) .hero-flight-dart{transform-origin:100% 50%;animation:dart-seat .5s ease-out}
@keyframes impact-flare{0%{opacity:0;transform:scale(.05) rotate(-13deg)}12%{opacity:1}48%{opacity:.9;transform:scale(1.18) rotate(5deg)}100%{opacity:0;transform:scale(1.45) rotate(12deg)}}
@keyframes impact-scatter{0%{opacity:0;transform:translateX(8px) scale(.2)}10%{opacity:1}72%{opacity:.9}100%{opacity:0;transform:translateX(var(--reach)) rotate(100deg) scale(.35)}}
@keyframes impact-callout{0%{opacity:0;transform:translate(-100%,12px) rotate(-12deg) scale(.6)}18%,70%{opacity:1;transform:translate(-100%,0) rotate(-8deg) scale(1)}100%{opacity:0;transform:translate(-100%,-12px) rotate(-6deg) scale(1.04)}}
@keyframes dart-seat{0%,100%{transform:translateY(-50%) rotate(0)}25%{transform:translateY(-50%) rotate(-2.3deg)}55%{transform:translateY(-50%) rotate(1.5deg)}78%{transform:translateY(-50%) rotate(-.5deg)}}

/* Three original, independently animated alternatives for the middle card. */
.people-stage{position:relative;max-width:100%}
.people-svg{display:block;width:100%;height:100%;stroke:none;overflow:visible}
.people-svg :is(.crew-friend,.party-star,.party-confetti,.cheers-glass,.clink-spark,.team-dart){animation-play-state:paused!important}
.people-stage.art-in-view .people-svg :is(.crew-friend,.party-star,.party-confetti,.cheers-glass,.clink-spark,.team-dart){animation-play-state:running!important}
.crew-friend{transform-box:fill-box;transform-origin:50% 90%;animation:crew-bounce 3.8s var(--art-delay,0s) ease-in-out infinite}
.party-star{transform-box:fill-box;transform-origin:center;animation:party-star 3.8s ease-in-out infinite}
.star-late{animation-delay:-1.4s}
.party-confetti{animation:party-confetti 3.8s ease-in-out infinite}
.cheers-glass{transform-box:fill-box;transform-origin:50% 90%;animation:cheers-left 3.8s ease-in-out infinite}
.cheers-right{animation-name:cheers-right}
.clink-spark{transform-box:fill-box;transform-origin:center;animation:clink-spark 3.8s ease-in-out infinite}
.team-dart{animation:team-dart 3.8s var(--art-delay,0s) ease-in-out infinite}
.score-readout{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;align-items:start}
.total-readout{display:flex;flex-direction:column;text-align:right}
#demo-total{font-family:var(--font-display);font-size:53px;line-height:1.1;color:var(--fg);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.score-readout .demo-caption{grid-column:1/-1;padding-bottom:2px;color:var(--muted)}
.follow-booking{padding-top:env(safe-area-inset-top,0px)}
@media(min-width:600px){.score-readout{grid-template-columns:1fr 1fr 1.4fr;align-items:center}.total-readout{text-align:left}.score-readout .demo-caption{grid-column:auto;font-size:12px}#demo-total{font-size:53px}}
@keyframes crew-bounce{0%,12%,58%,100%{transform:translateY(0) rotate(0)}28%{transform:translateY(-7px) rotate(-3deg)}42%{transform:translateY(-2px) rotate(2deg)}}
@keyframes party-star{0%,12%,70%,100%{transform:scale(.8) rotate(0);opacity:.55}35%{transform:scale(1.15) rotate(18deg);opacity:1}}
@keyframes party-confetti{0%,65%,100%{opacity:.4;transform:translateY(1px)}30%{opacity:1;transform:translateY(-4px)}}
@keyframes cheers-left{0%,12%,70%,100%{transform:rotate(-8deg) translateX(-2px)}35%,43%{transform:rotate(16deg) translateX(4px)}}
@keyframes cheers-right{0%,12%,70%,100%{transform:rotate(8deg) translateX(2px)}35%,43%{transform:rotate(-16deg) translateX(-4px)}}
@keyframes clink-spark{0%,22%,65%,100%{opacity:0;transform:scale(.3) rotate(0)}36%,44%{opacity:1;transform:scale(1.1) rotate(12deg)}}
@keyframes team-dart{0%,65%,100%{transform:translateY(0)}28%{transform:translateY(-9px)}42%{transform:translateY(-4px)}}
html[data-motion=paused] .people-stage.art-in-view .people-svg :is(.crew-friend,.party-star,.party-confetti,.cheers-glass,.clink-spark,.team-dart){animation-play-state:paused!important}
@media(max-width:359px){.impact-callout b{font-size:52px}.impact-callout{width:104px}.impact-callout>span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.hero-impact{display:none}.people-svg *{animation:none!important}}
