.plakai-idle {
  animation: idlePresence 3.6s ease-in-out infinite;
}

.plakai-thinking {
  animation: thinkingPresence 1.8s ease-in-out infinite alternate;
}

.thought-dot,
.thought-bubble {
  position: absolute;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  color: var(--forest);
  background: rgba(255,255,255,.92);
  box-shadow: 0 10px 24px rgba(32,40,36,.08);
}

.thought-dot.one {
  width: 9px;
  height: 9px;
  right: calc(50% - 72px);
  top: 58px;
  animation: thoughtPulse 1.6s .25s ease-in-out infinite;
}

.thought-dot.two {
  width: 15px;
  height: 15px;
  right: calc(50% - 94px);
  top: 32px;
  animation: thoughtPulse 1.6s .5s ease-in-out infinite;
}

.thought-bubble {
  display: grid;
  place-items: center;
  width: 50px;
  height: 44px;
  right: calc(50% - 140px);
  top: -8px;
  font-size: 22px;
  font-weight: 800;
  animation: thoughtFloat 2.4s ease-in-out infinite;
}

.screen-title.is-active .title-copy { animation: contentRise .5s .06s var(--ease-out) both; }
.screen-title.is-active .plakai-stage { animation: contentRise .55s .14s var(--ease-out) both; }
.screen-title.is-active .filters { animation: contentRise .55s .22s var(--ease-out) both; }
.screen-title.is-active #startButton { animation: contentRise .55s .3s var(--ease-out) both; }

.screen-thinking.is-active .shuffle-name { animation: thinkingLabel 1.4s ease-in-out infinite; }
.screen-thinking.is-active .thinking-status { animation: thinkingLabel .52s var(--ease-out); }
.thinking-status[data-caption-phase="0"],
.thinking-status[data-caption-phase="5"],
.thinking-status[data-caption-phase="7"] { animation: captionSwapA .34s var(--ease-out) both; }
.thinking-status[data-caption-phase="2"],
.thinking-status[data-caption-phase="6"] { animation: captionSwapB .34s var(--ease-out) both; }

.thinking-stage { width: min(100%, 390px); }
.thinking-stage::before { transition: background .3s, transform .3s var(--ease-out), opacity .3s; }
.thinking-stage .plakai-thinking { position: relative; z-index: 2; }
.thinking-sprite-wrap {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  transform-origin: 50% 90%;
  transition: transform .32s var(--ease-out);
}
.thinking-stage[data-gaze="left"] .thinking-sprite-wrap { transform: translateX(-4px) scaleX(-1); }
.thinking-stage[data-gaze="right"] .thinking-sprite-wrap { transform: translateX(4px) scaleX(1); }
.thinking-stage[data-gaze="center"] .thinking-sprite-wrap { transform: translateX(0) scaleX(1); }
.thinking-stage .thought-dot,
.thinking-stage .thought-bubble { z-index: 4; }

.thinking-cards {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
}

.meal-card {
  position: absolute;
  display: block;
  width: 62px;
  height: 80px;
  border: 3px solid rgba(255,255,255,.9);
  border-radius: 13px;
  background: var(--surface-raised);
  box-shadow: 0 10px 24px rgba(32,40,36,.16);
  overflow: hidden;
  opacity: .74;
  transition: left .52s var(--ease-out), right .52s var(--ease-out), top .52s var(--ease-out), transform .52s var(--ease-out), opacity .24s, box-shadow .24s, border-color .24s;
}

.meal-card img { display: block; width: 100%; height: 100%; object-fit: cover; }
.meal-card:nth-child(1) { left: 1%; top: 55%; transform: rotate(-16deg); }
.meal-card:nth-child(2) { left: 11%; top: 14%; transform: rotate(-9deg); }
.meal-card:nth-child(3) { left: 50%; top: 5%; transform: translateX(-50%); }
.meal-card:nth-child(4) { right: 11%; top: 14%; transform: rotate(9deg); }
.meal-card:nth-child(5) { right: 1%; top: 55%; transform: rotate(16deg); }

.meal-card.is-focused {
  z-index: 3;
  opacity: 1;
  border-color: #fff7d6;
  box-shadow: 0 13px 28px rgba(169,94,72,.25), 0 0 0 2px rgba(169,94,72,.2);
}

.meal-card.is-pushing { z-index: 3; animation: cardPush .64s var(--ease-out) both; }
.meal-card.is-escaping { z-index: 4; animation: cardEscape .72s var(--ease-out) both; }
.meal-card.is-interrupting { z-index: 5; animation: cardInterrupt .72s var(--ease-out) both; }
.meal-card.is-reveal-source { opacity: 0 !important; }

.thinking-stage[data-story-act="verdict"]::after {
  width: 245px;
  height: 245px;
  bottom: -4px;
  background: rgba(32,40,36,.18);
  filter: blur(16px);
}
.thinking-stage[data-story-act="verdict"] .meal-card:not(.is-picked) { opacity: .1; filter: saturate(.3) brightness(.72); }

.thinking-status.is-caption-paused { color: transparent; box-shadow: none; }
.thinking-status.is-caption-paused::after {
  content: "";
  width: 22px;
  height: 3px;
  border-radius: 99px;
  background: var(--forest);
  opacity: .45;
  animation: captionBreath .38s ease-in-out infinite alternate;
}

.meal-card[data-rare-behavior="fall"] { animation: rareCardFall .9s var(--ease-out) both !important; }
.meal-card[data-rare-behavior="tail"] { animation: rareTailPick .9s var(--ease-out) both !important; }
.meal-card[data-rare-behavior="launch"] { animation: rareCardLaunch .9s var(--ease-out) both !important; }
.meal-card[data-rare-behavior="math"] { animation: rareMathPick .9s steps(4, end) both !important; }
.meal-card[data-rare-behavior="return"] { animation: rareWalkBack .95s var(--ease-out) both !important; }
.meal-card[data-rare-behavior="reject"] { animation: rareRejectAll .98s var(--ease-out) both !important; }

.thinking-stage[data-thinking-beat="1"] .meal-card { animation: cardDeal .56s var(--ease-out) both; }
.thinking-stage[data-thinking-beat="2"] .meal-card { animation: cardRiffle .58s var(--ease-out) both; }
.thinking-stage[data-thinking-beat="3"] .meal-card { animation: cardCompare .62s var(--ease-out) both; }
.thinking-stage[data-thinking-beat="4"] .meal-card.is-focused { animation: cardAlmostPicked .68s var(--ease-out) both; }
.thinking-stage[data-thinking-beat="5"] .meal-card.is-false-choice { z-index: 4; animation: cardFalseChoice .86s var(--ease-out) both; }
.thinking-stage[data-thinking-beat="6"] .meal-card.is-accidental { z-index: 4; animation: cardAccident .7s var(--ease-out) both; }
.thinking-stage[data-thinking-beat="6"] .plakai-thinking { animation: plakaiOops .52s var(--ease-out) both; }
.thinking-stage[data-thinking-beat="7"] .meal-card { opacity: .34; filter: saturate(.65); }
.thinking-stage[data-thinking-beat="7"] .meal-card.is-accidental { z-index: 4; opacity: 1; filter: none; animation: awkwardSilence .45s ease-in-out both; }
.thinking-stage[data-thinking-beat="7"] .plakai-thinking { animation: awkwardPlakai .45s ease-in-out both; }
.thinking-stage .meal-card:nth-child(2) { animation-delay: .04s; }
.thinking-stage .meal-card:nth-child(3) { animation-delay: .08s; }
.thinking-stage .meal-card:nth-child(4) { animation-delay: .12s; }
.thinking-stage .meal-card:nth-child(5) { animation-delay: .16s; }

.thinking-stage[data-thinking-beat="8"] .meal-card {
  left: 50%;
  right: auto;
  top: 42%;
  z-index: 1;
  opacity: .18;
  transform: translate(-50%,-50%) rotate(0) scale(.82);
}

.thinking-stage[data-thinking-beat="8"] .meal-card.is-picked {
  z-index: 3;
  opacity: 1;
  transform: translate(-50%,-68%) rotate(-2deg) scale(1.1);
  animation: cardPicked .55s var(--ease-out) both;
}

.meal-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 9px;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.86) 0 5px, transparent 6px),
    repeating-linear-gradient(135deg, rgba(255,255,255,.1) 0 7px, transparent 7px 14px),
    linear-gradient(145deg, var(--forest), var(--forest-deep));
  opacity: 0;
  transform: rotateY(90deg);
  transition: opacity .2s, transform .38s var(--ease-out);
}

.meal-card.is-picked::after { opacity: 1; transform: rotateY(0); }

.thinking-signal {
  position: absolute;
  z-index: -1;
  display: block;
  border: 1px solid rgba(33,75,67,.22);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
}

.thinking-stage[data-thinking-mode="whisker"] .thinking-signal {
  width: 86px;
  height: 86px;
  right: calc(50% - 118px);
  top: 48px;
  animation: whiskerScan 1.05s ease-out infinite;
}
.thinking-stage[data-thinking-mode="whisker"] .signal-two { animation-delay: .35s; }

.thinking-stage[data-thinking-mode="stomach"] .thinking-signal {
  width: 90px;
  height: 34px;
  left: calc(50% - 45px);
  bottom: 24px;
  border-color: rgba(169,94,72,.3);
  animation: stomachSignal .72s ease-out infinite;
}
.thinking-stage[data-thinking-mode="stomach"] .signal-two { animation-delay: .24s; }

.thinking-stage[data-thinking-mode="tail"] .thinking-signal {
  width: 126px;
  height: 126px;
  left: calc(50% - 63px);
  top: 34px;
  border-style: dashed;
  animation: tailCompass 2.2s linear infinite;
}
.thinking-stage[data-thinking-mode="tail"] .signal-two {
  width: 2px;
  height: 72px;
  left: 50%;
  top: 60px;
  border: 0;
  border-radius: 99px;
  background: linear-gradient(var(--terracotta), transparent);
  transform-origin: 50% 100%;
  animation: tailNeedle 1.35s var(--ease-out) infinite alternate;
}

.thinking-stage[data-thinking-mode="nap"] .thinking-signal {
  width: 34px;
  height: 2px;
  right: calc(50% - 112px);
  top: 54px;
  border: 0;
  border-top: 2px solid rgba(33,75,67,.38);
  border-radius: 99px;
  animation: napDrift 1.5s ease-in-out infinite;
}
.thinking-stage[data-thinking-mode="nap"] .signal-two {
  width: 22px;
  right: calc(50% - 132px);
  top: 31px;
  animation-delay: .45s;
}
.thinking-stage[data-thinking-mode="nap"][data-thinking-beat="2"] .plakai-thinking,
.thinking-stage[data-thinking-mode="nap"][data-thinking-beat="3"] .plakai-thinking { animation: napNod 1.15s ease-in-out infinite; }

.thinking-stage[data-thinking-mode="scent"] .thinking-signal {
  width: 58px;
  height: 22px;
  left: calc(50% - 116px);
  top: 72px;
  border: 0;
  border-top: 3px dotted rgba(169,94,72,.42);
  animation: scentTrail 1.25s steps(5, end) infinite;
}
.thinking-stage[data-thinking-mode="scent"] .signal-two {
  left: auto;
  right: calc(50% - 118px);
  top: 48px;
  animation-delay: .32s;
}
.thinking-stage[data-thinking-mode="scent"][data-thinking-beat="3"] .meal-card.is-focused {
  animation: scentCard .62s ease-in-out both;
}

.thinking-stage[data-thinking-mode="calculator"] .thinking-signal {
  width: 118px;
  height: 118px;
  left: calc(50% - 59px);
  top: 36px;
  border-radius: 8px;
  border-style: dashed;
  background: repeating-linear-gradient(0deg, transparent 0 19px, rgba(33,75,67,.07) 20px 21px);
  animation: calculatorGrid 1.4s steps(4, end) infinite;
}
.thinking-stage[data-thinking-mode="calculator"] .signal-two {
  width: 2px;
  height: 118px;
  left: calc(50% - 1px);
  top: 36px;
  border: 0;
  border-radius: 0;
  background: var(--terracotta);
  animation: calculatorScan 1.4s steps(5, end) infinite;
}
.thinking-stage[data-thinking-mode="calculator"][data-thinking-beat="3"] .meal-card.is-focused {
  animation: calculatorCard .62s steps(3, end) both;
}

.thinking-stage[data-thinking-mode="fortune"] .thinking-signal {
  width: 132px;
  height: 132px;
  left: calc(50% - 66px);
  top: 28px;
  border-style: dotted;
  animation: fortuneOrbit 2.4s linear infinite;
}
.thinking-stage[data-thinking-mode="fortune"] .signal-two {
  width: 16px;
  height: 16px;
  left: calc(50% + 48px);
  top: 44px;
  border: 0;
  border-radius: 2px;
  background: var(--terracotta);
  transform: rotate(45deg);
  animation: fortuneSpark 1.2s steps(4, end) infinite;
}
.thinking-stage[data-thinking-mode="fortune"][data-thinking-beat="3"] .meal-card.is-focused {
  animation: fortuneCard .72s ease-in-out both;
}

.thinking-stage[data-thinking-mode="committee"] .thinking-signal {
  width: 48px;
  height: 34px;
  left: 6%;
  top: 56px;
  border-radius: 9px 9px 9px 2px;
  background: rgba(255,255,255,.54);
  animation: committeeVote 1.05s steps(3, end) infinite;
}
.thinking-stage[data-thinking-mode="committee"] .signal-two {
  left: auto;
  right: 6%;
  top: 78px;
  border-radius: 9px 9px 2px 9px;
  animation-delay: .28s;
}
.thinking-stage[data-thinking-mode="committee"][data-thinking-beat="3"] .meal-card.is-focused {
  animation: committeeCard .58s var(--ease-out) both;
}

.thinking-stage[data-thinking-beat="8"] .plakai-thinking { animation: thinkingVerdict .55s var(--ease-out) both; }
.thinking-stage[data-thinking-beat="8"]::before {
  background: radial-gradient(circle, rgba(234,217,182,.92) 0 48%, rgba(220,229,220,.48) 62%, transparent 74%);
  transform: scale(1.12);
}
.thinking-stage[data-thinking-beat="8"] .thought-bubble {
  color: var(--white);
  border-color: var(--terracotta);
  background: var(--terracotta);
  animation: verdictBubble .55s var(--ease-out) both;
}

.screen-result.is-active .food-art {
  animation: foodReveal .72s var(--ease-out) both;
}

.screen-result.is-active .category-label,
.screen-result.is-active .result-meta,
.screen-result.is-active #foodName {
  animation: contentRise .48s .18s var(--ease-out) both;
}

.screen-result.is-active .plakai-comment {
  animation: contentRise .5s .3s var(--ease-out) both;
}

.screen-result.is-active .result-actions {
  animation: contentRise .5s .42s var(--ease-out) both;
}

.meal-reveal {
  position: absolute;
  z-index: 60;
  inset: 0;
  display: none;
  pointer-events: none;
}
.meal-reveal.is-ready { display: block; }
.meal-reveal::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(20,28,24,0);
  backdrop-filter: blur(0);
  transition: background .5s, backdrop-filter .5s;
}
.meal-reveal-card {
  position: absolute;
  left: var(--reveal-left);
  top: var(--reveal-top);
  width: var(--reveal-width);
  height: var(--reveal-height);
  overflow: hidden;
  border: 3px solid rgba(255,255,255,.94);
  border-radius: 13px;
  background: var(--surface-raised);
  box-shadow: 0 12px 28px rgba(20,28,24,.22);
  transform: translate(0,0) rotate(-2deg);
  transition: left .78s var(--ease-out), top .78s var(--ease-out), width .78s var(--ease-out), height .78s var(--ease-out), border-radius .78s var(--ease-out), transform .78s var(--ease-out), box-shadow .78s var(--ease-out), opacity .22s;
}
.meal-reveal-card img { width: 100%; height: 100%; object-fit: cover; }
.meal-reveal.is-revealing::before { background: rgba(20,28,24,.62); backdrop-filter: blur(3px); }
.meal-reveal.is-revealing .meal-reveal-card {
  left: 50%;
  top: min(43%, 360px);
  width: min(72vw, 286px);
  height: min(72vw, 286px);
  border-radius: 24px;
  box-shadow: 0 28px 70px rgba(20,28,24,.38), 0 0 0 7px rgba(255,255,255,.18);
  transform: translate(-50%,-50%) rotate(0) scale(1);
}
.meal-reveal.is-finished { opacity: 0; transition: opacity .22s; }

@keyframes captionBreath { to { width: 32px; opacity: .72; } }
@keyframes cardPush { 45% { translate: 9px -5px; rotate: 5deg; } 100% { translate: 3px 0; } }
@keyframes cardEscape { 45% { translate: 18px -14px; rotate: 10deg; } 100% { translate: 7px -5px; rotate: 4deg; } }
@keyframes cardInterrupt { 0% { translate: 22px 13px; scale: .86; } 55% { translate: -5px -22px; scale: 1.15; } 100% { translate: 0 -12px; scale: 1.08; } }
@keyframes rareCardFall { 0% { translate: 0 -18px; rotate: 0; } 44% { translate: 5px 18px; rotate: 82deg; } 70% { translate: -3px 8px; rotate: 72deg; } 100% { translate: 0 -12px; rotate: -2deg; scale: 1.1; } }
@keyframes rareTailPick { 30% { translate: -16px 2px; rotate: -13deg; } 68% { translate: 12px -18px; rotate: 7deg; scale: 1.16; } 100% { translate: 0 -12px; rotate: -2deg; scale: 1.1; } }
@keyframes rareCardLaunch { 0% { translate: -35px 32px; rotate: -24deg; opacity: .2; } 48% { translate: 13px -34px; rotate: 14deg; opacity: 1; } 72% { translate: -5px -8px; rotate: -5deg; } 100% { translate: 0 -12px; rotate: -2deg; scale: 1.1; } }
@keyframes rareMathPick { 0% { translate: -8px 0; } 25% { translate: 8px -5px; } 50% { translate: -4px -10px; } 75%,100% { translate: 0 -13px; scale: 1.1; } }
@keyframes rareWalkBack { 0% { translate: 70px 10px; opacity: 0; } 42% { translate: -16px -5px; opacity: 1; } 67% { translate: 9px -8px; } 100% { translate: 0 -13px; scale: 1.1; } }
@keyframes rareRejectAll { 0% { translate: 0 35px; opacity: .2; } 42% { translate: -28px 20px; opacity: .45; } 70% { translate: 9px -17px; opacity: 1; } 100% { translate: 0 -13px; scale: 1.1; } }

.steam {
  position: absolute;
  z-index: 3;
  top: 24px;
  width: 32px;
  height: 62px;
  border-left: 3px solid rgba(255,255,255,.55);
  border-radius: 50%;
  filter: blur(.4px);
  animation: steamDrift 2.8s ease-out infinite;
}

.mini-plakai[class*="reaction-"] {
  transform-origin: 50% 92%;
  animation: reactionPresence 2.1s ease-in-out infinite;
}

.mini-plakai.reaction-very_excited,
.mini-plakai.reaction-celebration,
.mini-plakai.reaction-excited {
  animation-name: reactionLift;
  animation-duration: 1.15s;
}

.mini-plakai.reaction-spicy_panic,
.mini-plakai.reaction-hot_food,
.mini-plakai.reaction-last_reroll_annoyed {
  animation-name: reactionTension;
  animation-duration: .72s;
}

.mini-plakai.reaction-sweet_love,
.mini-plakai.reaction-smells_good,
.mini-plakai.reaction-satisfied {
  animation-name: reactionFloat;
  animation-duration: 2.4s;
}

.mini-plakai.reaction-premium_polite { animation-name: reactionBow; }

.mini-plakai.reaction-giant_portion,
.mini-plakai.reaction-shocked { animation-name: reactionSurprise; animation-duration: 1.35s; }

.mini-plakai.reaction-reluctant,
.mini-plakai.reaction-healthy_unsure,
.mini-plakai.reaction-sleepy_food { animation-name: reactionConsider; animation-duration: 2.6s; }

.mini-plakai.reaction-protect_food,
.mini-plakai.reaction-no_share { animation-name: reactionGuard; animation-duration: 1.8s; }

@keyframes idlePresence {
  0%, 100% { transform: translateY(0) scale(1); }
  48% { transform: translateY(-4px) scale(1.012); }
  54% { transform: translateY(-4px) scale(1.012); }
}

@keyframes thinkingPresence {
  from { transform: translateX(-2px) rotate(-.7deg); }
  to { transform: translateX(3px) translateY(-3px) rotate(1deg); }
}

@keyframes thoughtPulse {
  0%, 100% { opacity: .45; transform: scale(.82); }
  50% { opacity: 1; transform: scale(1); }
}

@keyframes thoughtFloat {
  50% { transform: translateY(-5px); }
}

@keyframes contentRise {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes thinkingLabel {
  50% { color: var(--terracotta); box-shadow: 0 12px 34px rgba(32,40,36,.1); }
}
@keyframes captionSwapA {
  from { opacity: .25; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes captionSwapB {
  from { opacity: .25; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes foodReveal {
  from { opacity: 0; transform: scale(.92); filter: saturate(.7) blur(3px); }
  to { opacity: 1; transform: scale(1); filter: saturate(1) blur(0); }
}

@keyframes steamDrift {
  0% { opacity: 0; transform: translateY(22px) translateX(8px) scale(.8); }
  35% { opacity: .65; }
  100% { opacity: 0; transform: translateY(-28px) translateX(-9px) scale(1.15); }
}

@keyframes reactionPresence { 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes reactionLift { 45% { transform: translateY(-7px) scale(1.035); } }
@keyframes reactionTension { 30% { transform: translateX(-2px) rotate(-2deg); } 70% { transform: translateX(2px) rotate(2deg); } }
@keyframes reactionFloat { 50% { transform: translateY(-5px) scale(1.02); } }
@keyframes reactionBow { 50% { transform: rotate(5deg) translateY(2px); } }
@keyframes reactionSurprise { 42% { transform: translateY(-8px) scale(1.04); } 58% { transform: translateY(0) scaleY(.97); } }
@keyframes reactionConsider { 50% { transform: rotate(-4deg) translateY(1px); } }
@keyframes reactionGuard { 50% { transform: scaleX(1.045) scaleY(.98); } }

@keyframes decisionPop {
  0% { opacity: 0; transform: translate(-50%, -42%) scale(.82); }
  18%, 72% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0; transform: translate(-50%, -56%) scale(.97); }
}

@keyframes decisionCard {
  28% { transform: translateY(-5px) scale(1.012); filter: saturate(1.08); }
  65% { transform: translateY(1px) scale(.998); }
}

@keyframes decisionPlakai {
  48% { transform: translateY(-9px) rotate(4deg) scale(1.04); }
}

@keyframes whiskerScan {
  0% { opacity: 0; transform: scale(.45); }
  35% { opacity: .6; }
  100% { opacity: 0; transform: scale(1.35); }
}
@keyframes stomachSignal {
  0% { opacity: 0; transform: scale(.72); }
  45% { opacity: .62; }
  100% { opacity: 0; transform: scale(1.28); }
}
@keyframes tailCompass {
  0% { opacity: .16; transform: rotate(0); }
  50% { opacity: .46; }
  100% { opacity: .16; transform: rotate(360deg); }
}
@keyframes tailNeedle {
  from { opacity: .38; transform: rotate(-58deg); }
  to { opacity: .82; transform: rotate(66deg); }
}
@keyframes napDrift {
  0%, 100% { opacity: 0; transform: translate(0, 5px) scale(.8); }
  45% { opacity: .7; }
  70% { opacity: .35; transform: translate(12px, -10px) scale(1.08); }
}
@keyframes napNod {
  0%, 100% { transform: rotate(0) translateY(0); }
  62% { transform: rotate(-5deg) translateY(6px); }
}
@keyframes scentTrail {
  0% { opacity: 0; transform: translateX(-8px) scaleX(.72); }
  35% { opacity: .72; }
  100% { opacity: 0; transform: translateX(12px) scaleX(1.12); }
}
@keyframes scentCard {
  0%, 100% { translate: 0 0; rotate: 0deg; }
  45% { translate: 0 -8px; rotate: -3deg; filter: saturate(1.15); }
  70% { translate: 3px -6px; rotate: 2deg; }
}
@keyframes calculatorGrid {
  0%, 100% { opacity: .14; transform: scale(.94); }
  50% { opacity: .48; transform: scale(1.02); }
}
@keyframes calculatorScan {
  0% { opacity: 0; transform: translateX(-54px); }
  18%, 82% { opacity: .46; }
  100% { opacity: 0; transform: translateX(54px); }
}
@keyframes calculatorCard {
  0%, 100% { translate: 0 0; scale: 1; }
  35% { translate: -4px -6px; scale: 1.04; }
  70% { translate: 4px -8px; scale: 1.08; }
}
@keyframes fortuneOrbit {
  0% { opacity: .18; transform: rotate(0) scale(.92); }
  50% { opacity: .52; transform: rotate(180deg) scale(1.02); }
  100% { opacity: .18; transform: rotate(360deg) scale(.92); }
}
@keyframes fortuneSpark {
  0%, 100% { opacity: .22; transform: rotate(45deg) scale(.65); }
  50% { opacity: .82; transform: rotate(135deg) scale(1.1); }
}
@keyframes fortuneCard {
  0% { translate: 0 4px; rotate: -4deg; }
  55% { translate: 0 -13px; rotate: 4deg; filter: brightness(1.08); }
  100% { translate: 0 -5px; rotate: 0deg; }
}
@keyframes committeeVote {
  0%, 100% { opacity: .12; transform: translateY(6px) scale(.9); }
  45% { opacity: .7; transform: translateY(-5px) scale(1.04); }
}
@keyframes committeeCard {
  0%, 100% { translate: 0 0; }
  55% { translate: 0 -18px; rotate: -2deg; }
}
@keyframes thinkingVerdict {
  0% { transform: translateY(4px) scale(.96) rotate(-2deg); }
  48% { transform: translateY(-9px) scale(1.045) rotate(2deg); }
  100% { transform: translateY(0) scale(1) rotate(0); }
}
@keyframes verdictBubble {
  0% { opacity: 0; transform: scale(.55) rotate(-8deg); }
  65% { opacity: 1; transform: scale(1.12) rotate(3deg); }
  100% { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes cardDeal {
  from { opacity: 0; translate: 0 22px; scale: .72; }
  to { opacity: .78; translate: 0 0; scale: 1; }
}
@keyframes cardRiffle {
  0% { translate: 0 0; }
  48% { translate: 0 -10px; rotate: -3deg; }
  100% { translate: 0 0; }
}
@keyframes cardCompare {
  0%, 100% { translate: 0 0; }
  42% { translate: 5px -5px; scale: 1.035; }
  70% { translate: -3px 2px; }
}
@keyframes cardAlmostPicked {
  0% { translate: 0 0; scale: 1; }
  52% { translate: 0 -16px; scale: 1.12; }
  76% { translate: 0 -13px; scale: 1.09; }
  100% { translate: 0 -3px; scale: 1.02; }
}
@keyframes cardFalseChoice {
  0% { translate: 0 0; scale: 1; filter: saturate(1); }
  46% { translate: 0 -22px; scale: 1.16; filter: saturate(1.18); }
  72% { translate: 0 -18px; scale: 1.12; filter: saturate(.35); }
  100% { translate: 9px 16px; rotate: 13deg; scale: .88; filter: saturate(.25); opacity: .38; }
}
@keyframes cardAccident {
  0% { translate: 0 0; rotate: 0deg; scale: 1; }
  35% { translate: 12px -18px; rotate: 12deg; scale: 1.15; }
  62% { translate: -6px -10px; rotate: -7deg; scale: 1.12; }
  100% { translate: 0 -13px; rotate: -2deg; scale: 1.1; }
}
@keyframes plakaiOops {
  0% { transform: translateX(0) rotate(0); }
  28% { transform: translateX(-5px) rotate(-3deg) scale(.98); }
  58% { transform: translateX(5px) rotate(3deg) scale(1.025); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes awkwardSilence {
  from { translate: 0 -13px; rotate: -2deg; scale: 1.1; }
  to { translate: 0 -13px; rotate: -2deg; scale: 1.1; }
}
@keyframes awkwardPlakai {
  from { transform: translateX(0) rotate(0); }
  to { transform: translateX(0) rotate(0); }
}
@keyframes cardPicked {
  0% { opacity: .3; transform: translate(-50%,-45%) rotate(8deg) scale(.72); }
  68% { opacity: 1; transform: translate(-50%,-74%) rotate(-4deg) scale(1.18); }
  100% { opacity: 1; transform: translate(-50%,-68%) rotate(-2deg) scale(1.1); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
