/* Short visual feedback for each game event. */
.scene::before,.scene::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0}
.scene::before{z-index:3}
.scene::after{z-index:2}
.scene.safe-flash::before{background:radial-gradient(circle at 28% 55%,#46ed6d66,transparent 52%);animation:scene-flash .65s ease-out}
.scene.impact::before{background:#f34a6655;animation:scene-flash .48s ease-out}
.scene.win-flash::before{background:radial-gradient(circle at 50% 45%,#ffe38888,transparent 65%);animation:scene-flash .75s ease-out}
.scene.moving::after{background:repeating-linear-gradient(104deg,transparent 0 30px,#ffffff26 31px 34px,transparent 35px 80px);animation:speed-lines .4s linear infinite;opacity:.17}
.scene.impact .stage{animation:road-shake .48s ease-out}
.effects{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.spark{position:absolute;width:9px;height:9px;border-radius:50%;background:#f9dc65;box-shadow:0 0 10px #ffe779;animation:spark-flight .72s cubic-bezier(.17,.68,.38,1) var(--delay) both}
.spark.safe{background:#8cff8e;box-shadow:0 0 12px #63ee77}
.spark.lost{background:#ff7082;box-shadow:0 0 12px #ff456c}
.spark.win{width:12px;height:12px;border-radius:3px;background:#ffd850;box-shadow:0 0 14px #f8d23a}
.chicken.hop{animation:chicken-hop .43s cubic-bezier(.24,.63,.34,1) both}
.chicken.crash{animation:chicken-crash .58s cubic-bezier(.25,.7,.3,1) both}
.chicken.returning{animation:chicken-return .58s ease-in-out both}
.step-token.current{animation:token-pop .44s cubic-bezier(.2,.8,.24,1.25)}
.step-token.lost{animation:token-fail .45s ease-out}
.scene-message.show{animation:message-pop .32s cubic-bezier(.2,.8,.2,1.2)}
.play:not(:disabled){animation:play-breathe 2.8s ease-in-out infinite}
.status-actions{display:flex;align-items:center;gap:18px}
.status-actions a{color:#d2d8e8;text-decoration:underline;white-space:nowrap}
.balance-change{font-variant-numeric:tabular-nums;white-space:nowrap;color:#d6deef}
.balance-change.positive{color:#94eca6}
.balance-change.negative{color:#ff9b9f}
@keyframes scene-flash{0%{opacity:0}18%{opacity:1}100%{opacity:0}}
@keyframes speed-lines{from{background-position:0 0}to{background-position:90px 0}}
@keyframes road-shake{0%,100%{translate:0 0}14%{translate:-8px 3px}32%{translate:7px -3px}52%{translate:-4px 2px}75%{translate:2px -1px}}
@keyframes spark-flight{0%{opacity:1;transform:translate(0,0) scale(.35) rotate(0deg)}25%{opacity:1;transform:translate(0,0) scale(1.2) rotate(50deg)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.2) rotate(180deg)}}
@keyframes chicken-hop{0%{transform:translateY(0) scale(1,1)}18%{transform:translateY(4px) scale(1.13,.87)}52%{transform:translateY(-52px) scale(.88,1.13) rotate(-7deg)}77%{transform:translateY(-20px) scale(.96,1.05)}100%{transform:translateY(0) scale(1,1)}}
@keyframes chicken-crash{0%{transform:translateY(-12px) rotate(-8deg) scale(1.05)}40%{transform:translateY(9px) rotate(76deg) scale(.85)}65%{transform:translateY(-7px) rotate(55deg) scale(.88)}100%{transform:translateY(0) rotate(65deg) scale(.85)}}
@keyframes chicken-return{0%{transform:scaleX(1) translateY(0)}16%{transform:scaleX(-1) translateY(-8px)}48%{transform:scaleX(-1) translateY(-23px)}78%{transform:scaleX(-1) translateY(-6px)}100%{transform:scaleX(1) translateY(0)}}
@keyframes token-pop{0%{transform:scale(.76);filter:brightness(1.7)}58%{transform:scale(1.13)}100%{transform:scale(1);filter:brightness(1)}}
@keyframes token-fail{0%{transform:scale(1)}25%{transform:scale(1.15) rotate(-7deg)}60%{transform:scale(.9) rotate(8deg)}100%{transform:scale(1) rotate(0)}}
@keyframes message-pop{0%{transform:translate(-50%,-12px) scale(.85)}70%{transform:translate(-50%,0) scale(1.05)}100%{transform:translate(-50%,0) scale(1)}}
@keyframes play-breathe{0%,100%{box-shadow:0 5px 0 #232a3f55,0 0 0 0 #45e47200}50%{box-shadow:0 5px 0 #232a3f55,0 0 0 6px #45e47224}}
@media(max-width:600px){.status-row{flex-wrap:wrap}.status-actions{width:100%;justify-content:space-between}}
@media(prefers-reduced-motion:reduce){.scene::before,.scene::after,.spark{display:none}.scene.impact .stage,.chicken.hop,.chicken.crash,.chicken.returning,.step-token.current,.step-token.lost,.scene-message.show,.play:not(:disabled){animation:none!important}}
