/* Home intro: chicken drops → puffs up → POP → sausages & cold cuts burst out → fade.
   Total ≈1.85s (≈1s on repeat visits via .intro-quick, set by intro.js). Pure CSS so it
   always ends even if JS fails; hidden for prefers-reduced-motion. */
.maze-intro{
  --k:1;
  position:fixed;inset:0;z-index:9999;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(circle at 50% 45%, #F7F0DE 0%, #F1E8D3 55%, #E8DEC4 100%);
  pointer-events:none;
  animation:intro-out calc(350ms * var(--k)) ease-in calc(1500ms * var(--k)) forwards;
}
.intro-quick .maze-intro{--k:.55}
.intro-stage{position:relative;width:min(72vmin,440px);aspect-ratio:1;display:grid;place-items:center}

.intro-chicken{width:62%;height:auto;overflow:visible;transform-origin:50% 90%;
  animation:
    intro-drop calc(450ms * var(--k)) cubic-bezier(.3,1.4,.5,1) both,
    intro-pop  calc(140ms * var(--k)) ease-in calc(950ms * var(--k)) forwards}
.intro-body{transform-origin:100px 120px;animation:intro-puff calc(500ms * var(--k)) ease-in-out calc(450ms * var(--k)) both}
.intro-wing{transform-origin:90px 120px;animation:intro-flap calc(120ms * var(--k)) ease-in-out calc(450ms * var(--k)) 4 alternate}
.intro-eyes{transform-origin:135px 92px;animation:intro-eyes calc(500ms * var(--k)) ease-in calc(450ms * var(--k)) both}
.intro-cheek{animation:intro-blush calc(500ms * var(--k)) ease-in calc(450ms * var(--k)) both}
.intro-shadow{transform-origin:100px 186px;animation:intro-shadow calc(450ms * var(--k)) ease-out both}

.intro-flash{position:absolute;width:40%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle, #fff 0 30%, #E0A93F 31% 45%, rgba(194,75,50,.0) 70%);
  opacity:0;transform:scale(.2);
  animation:intro-flash calc(420ms * var(--k)) ease-out calc(950ms * var(--k)) forwards}

.intro-pieces{position:absolute;inset:0;display:grid;place-items:center}
.intro-piece{position:absolute;display:block;opacity:0;
  animation:intro-burst calc(700ms * var(--k)) cubic-bezier(.15,.7,.35,1) calc(950ms * var(--k) + var(--d)) forwards}
.intro-piece svg{display:block;width:100%;height:auto;filter:drop-shadow(0 3px 0 rgba(30,22,16,.18))}
.p-sausage{width:min(18vmin,96px)}
.p-link{width:min(22vmin,120px)}
.p-slice{width:min(10vmin,54px)}
.p-nugget{width:min(9vmin,50px)}
.p-feather{width:min(5vmin,26px)}

.intro-word{position:absolute;font-family:'Lalezar',serif;font-size:clamp(34px,9vmin,64px);color:#A63723;
  text-shadow:0 3px 0 #1E1610;opacity:0;transform:scale(.3) rotate(-8deg);
  animation:intro-word calc(520ms * var(--k)) cubic-bezier(.3,1.6,.5,1) calc(1000ms * var(--k)) forwards}

@keyframes intro-drop{
  0%{transform:translateY(-70vh) scale(.9,1.1)}
  70%{transform:translateY(0) scale(1.18,.82)}
  85%{transform:translateY(-4%) scale(.95,1.06)}
  100%{transform:translateY(0) scale(1)}
}
@keyframes intro-puff{
  0%{transform:scale(1) rotate(0)}
  20%{transform:scale(1.06) rotate(-4deg)}
  40%{transform:scale(1.1) rotate(4deg)}
  60%{transform:scale(1.16) rotate(-5deg)}
  80%{transform:scale(1.22) rotate(5deg)}
  100%{transform:scale(1.3) rotate(0)}
}
@keyframes intro-flap{from{transform:rotate(0)}to{transform:rotate(-24deg)}}
@keyframes intro-eyes{to{transform:scale(1.45)}}
@keyframes intro-blush{to{fill:#E86A55}}
@keyframes intro-shadow{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}
@keyframes intro-pop{to{transform:scale(1.7);opacity:0}}
@keyframes intro-flash{
  0%{opacity:1;transform:scale(.2)}
  100%{opacity:0;transform:scale(3.2)}
}
@keyframes intro-burst{
  0%{opacity:1;transform:translate(0,0) rotate(0) scale(.3)}
  60%{opacity:1;transform:translate(var(--dx),var(--dy)) rotate(calc(var(--rot) * .8)) scale(1)}
  100%{opacity:0;transform:translate(var(--dx),calc(var(--dy) + 12vmin)) rotate(var(--rot)) scale(.9)}
}
@keyframes intro-word{to{opacity:1;transform:scale(1) rotate(-4deg)}}
@keyframes intro-out{to{opacity:0;visibility:hidden}}

@media (prefers-reduced-motion:reduce){.maze-intro{display:none}}
