/* ============ A1~A2 English clone - styles ============ */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body { font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; color: #0f172a; background: #fff; overflow-x: hidden; }
img { -webkit-user-drag: none; user-select: none; }
button { font-family: inherit; background: none; border: 0; cursor: pointer; }
a { text-decoration: none; color: inherit; }

/* ---------- fonts ---------- */
.font-sans { font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }
.font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
.font-pixel { font-family: "Press Start 2P", monospace; }
.font-arvo { font-family: Arvo, serif; }
.font-silkscreen { font-family: Silkscreen, monospace; }
.font-google { font-family: Nunito, "Trebuchet MS", ui-sans-serif, system-ui, sans-serif; }
#seasonTitle { text-shadow: 0 1px 0 rgba(255,255,255,.6), 0 3px 10px rgba(0,0,0,.12); }
.pixelated { image-rendering: pixelated; }

/* ---------- display ---------- */
.block { display: block; }
.inline-block { display: inline-block; }
.inline-flex { display: inline-flex; }
.flex { display: flex; }
.grid { display: grid; }
.hidden { display: none; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-baseline { align-items: baseline; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.flex-wrap { flex-wrap: wrap; }
.flex-1 { flex: 1 1 0%; }
.grow { flex-grow: 1; }
.shrink-0 { flex-shrink: 0; }
.gap-1 { gap: 4px; } .gap-1\.5 { gap: 6px; } .gap-2 { gap: 8px; } .gap-3 { gap: 12px; } .gap-3\.5 { gap: 14px; } .gap-4 { gap: 16px; } .gap-16 { gap: 64px; }
.min-w-0 { min-width: 0; }
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }

/* ---------- layout ---------- */
.relative { position: relative; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.inset-0 { inset: 0; }
.top-3 { top: 12px; }
.left-0 { left: 0; } .right-0 { right: 0; }
.bottom-0 { bottom: 0; }
.left-1\/2 { left: 50%; }
.-translate-x-1\/2 { transform: translateX(-50%); }
.z-10 { z-index: 10; } .z-20 { z-index: 20; } .z-30 { z-index: 30; }
.min-h-screen { min-height: 100vh; }
.w-full { width: 100%; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-6xl { max-width: 72rem; }
.max-w-md { max-width: 28rem; }
.max-w-xl { max-width: 36rem; }
.mx-auto { margin-left: auto; margin-right: auto; }
.mt-auto { margin-top: auto; }
.mt-2 { margin-top: 8px; } .mt-3 { margin-top: 12px; } .mt-4 { margin-top: 16px; }
.mb-2 { margin-bottom: 8px; } .mb-3 { margin-bottom: 12px; } .mb-4 { margin-bottom: 16px; } .mb-6 { margin-bottom: 24px; }
.pt-2 { padding-top: 8px; } .pt-4 { padding-top: 16px; } .pt-6 { padding-top: 24px; } .pt-8 { padding-top: 32px; } .pt-16 { padding-top: 64px; }
.px-2 { padding-left: 8px; padding-right: 8px; }
.px-3 { padding-left: 12px; padding-right: 12px; }
.px-3\.5 { padding-left: 14px; padding-right: 14px; }
.px-4 { padding-left: 16px; padding-right: 16px; }
.px-5 { padding-left: 20px; padding-right: 20px; }
.px-10 { padding-left: 40px; padding-right: 40px; }
.py-1 { padding-top: 4px; padding-bottom: 4px; }
.py-1\.5 { padding-top: 6px; padding-bottom: 6px; }
.py-2 { padding-top: 8px; padding-bottom: 8px; }
.py-3 { padding-top: 12px; padding-bottom: 12px; }
.py-3\.5 { padding-top: 14px; padding-bottom: 14px; }
.py-4 { padding-top: 16px; padding-bottom: 16px; }
.py-5 { padding-top: 20px; padding-bottom: 20px; }
.py-8 { padding-top: 32px; padding-bottom: 32px; }
.py-12 { padding-top: 48px; padding-bottom: 48px; }
.py-28 { padding-top: 112px; padding-bottom: 112px; }
.py-20 { padding-top: 80px; padding-bottom: 80px; }
.p-4 { padding: 16px; }
.pb-2 { padding-bottom: 8px; } .pb-4 { padding-bottom: 16px; } .pb-6 { padding-bottom: 24px; } .pb-8 { padding-bottom: 32px; }
.overflow-hidden { overflow: hidden; }
.overflow-x-hidden { overflow-x: hidden; }
.overflow-y-auto { overflow-y: auto; }

/* ---------- text ---------- */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-xs { font-size: 12px; line-height: 16px; }
.text-sm { font-size: 14px; line-height: 20px; }
.text-base { font-size: 16px; line-height: 24px; }
.text-lg { font-size: 18px; line-height: 28px; }
.text-xl { font-size: 20px; line-height: 28px; }
.text-2xl { font-size: 24px; line-height: 32px; }
.text-3xl { font-size: 30px; line-height: 36px; }
.text-4xl { font-size: 36px; line-height: 40px; }
.text-5xl { font-size: 48px; line-height: 1; }
.text-\[10px\] { font-size: 10px; line-height: 14px; }
.text-\[11px\] { font-size: 11px; line-height: 14px; }
.text-\[13px\] { font-size: 13px; line-height: 18px; }
.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.uppercase { text-transform: uppercase; }
.italic { font-style: italic; }
.tracking-wide { letter-spacing: .025em; }
.tracking-wider { letter-spacing: .05em; }
.tracking-tight { letter-spacing: -.025em; }
.tracking-widest { letter-spacing: .1em; }
.leading-snug { line-height: 1.375; }
.leading-tight { line-height: 1.25; }
.break-words { overflow-wrap: break-word; word-break: break-word; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.select-none { -webkit-user-select: none; user-select: none; }
.underline { text-decoration: underline; }
.whitespace-nowrap { white-space: nowrap; }

/* ---------- slate ---------- */
.text-slate-300 { color: #cbd5e1; } .text-slate-400 { color: #94a3b8; } .text-slate-500 { color: #64748b; } .text-slate-600 { color: #475569; } .text-slate-700 { color: #334155; } .text-slate-800 { color: #1e293b; } .text-slate-900 { color: #0f172a; }
.bg-slate-100 { background-color: #f1f5f9; } .bg-slate-200\/60 { background-color: rgba(226,232,240,.6); } .bg-slate-300 { background-color: #cbd5e1; } .bg-slate-400 { background-color: #94a3b8; } .bg-slate-900\/80 { background-color: rgba(15,23,42,.8); }
.border-slate-300\/40 { border-color: rgba(203,213,225,.4); }

/* ---------- amber ---------- */
.text-amber-500 { color: #f59e0b; } .text-amber-600 { color: #d97706; } .text-amber-700 { color: #b45309; } .text-amber-800 { color: #92400e; } .text-amber-950 { color: #451a03; }
.bg-amber-50\/90 { background-color: rgba(255,251,235,.9); } .bg-amber-100\/70 { background-color: rgba(254,243,199,.7); } .bg-amber-100\/80 { background-color: rgba(254,243,199,.8); } .bg-amber-400\/20 { background-color: rgba(251,191,36,.2); } .bg-amber-400\/25 { background-color: rgba(251,191,36,.25); } .bg-amber-400 { background-color: #fbbf24; } .bg-amber-500 { background-color: #f59e0b; }
.border-amber-300\/60 { border-color: rgba(252,211,77,.6); } .border-amber-500\/30 { border-color: rgba(245,158,11,.3); } .border-amber-600\/60 { border-color: rgba(217,119,6,.6); }

/* ---------- rose / purple / pink ---------- */
.text-rose-950 { color: #4c0519; } .text-rose-800 { color: #9f1239; } .text-rose-700 { color: #be123c; }
.bg-rose-50\/90 { background-color: rgba(255,241,242,.9); } .bg-rose-100 { background-color: #ffe4e6; }
.border-rose-300 { border-color: #fda4af; } .border-rose-200 { border-color: #fecdd3; } .border-rose-400 { border-color: #fb7185; }
.text-purple-950 { color: #3b0764; } .text-purple-800 { color: #6b21a8; } .text-purple-700 { color: #7e22ce; }
.bg-purple-50\/90 { background-color: rgba(250,245,255,.9); } .bg-purple-100 { background-color: #f3e8ff; }
.border-purple-300 { border-color: #d8b4fe; } .border-purple-200 { border-color: #e9d5ff; } .border-purple-400 { border-color: #c084fc; }
.text-pink-950 { color: #500724; } .text-pink-800 { color: #9d174d; } .text-pink-700 { color: #be185d; }
.bg-pink-50\/90 { background-color: rgba(253,242,248,.9); } .bg-pink-100 { background-color: #fce7f3; }
.border-pink-300 { border-color: #f9a8d4; } .border-pink-200 { border-color: #fbcfe8; } .border-pink-400 { border-color: #f472b6; }

/* ---------- slate/zinc for page 4/5 ---------- */
.text-slate-600 { color: #475569; } .text-slate-800 { color: #1e293b; } .text-slate-900 { color: #0f172a; }
.bg-slate-50 { background-color: #f8fafc; } .bg-slate-200 { background-color: #e2e8f0; }
.border-slate-300 { border-color: #cbd5e1; } .border-slate-200 { border-color: #e2e8f0; } .border-slate-400 { border-color: #94a3b8; }
.text-zinc-100 { color: #f4f4f5; } .text-zinc-400 { color: #a1a1aa; } .text-zinc-300 { color: #d4d4d8; } .text-zinc-800 { color: #27272a; }
.bg-zinc-950 { background-color: #09090b; } .bg-zinc-900\/90 { background-color: rgba(24,24,27,.9); } .bg-zinc-800 { background-color: #27272a; }
.border-zinc-700 { border-color: #3f3f46; } .border-zinc-800 { border-color: #27272a; } .border-zinc-600 { border-color: #52525b; }

/* ---------- borders & radius & shadows ---------- */
.border { border-width: 1px; border-style: solid; }
.border-2 { border-width: 2px; border-style: solid; }
.border-black\/5 { border-color: rgba(0,0,0,.05); } .border-black\/10 { border-color: rgba(0,0,0,.1); } .border-black\/15 { border-color: rgba(0,0,0,.15); } .border-black\/30 { border-color: rgba(0,0,0,.3); }
.border-t { border-top-width: 1px; border-top-style: solid; }
.rounded-sm { border-radius: 2px; }
.rounded { border-radius: 4px; }
.rounded-lg { border-radius: 8px; }
.rounded-xl { border-radius: 12px; }
.rounded-2xl { border-radius: 16px; }
.rounded-full { border-radius: 9999px; }
.shadow-sm { box-shadow: 0 1px 2px 0 rgba(0,0,0,.05); }
.shadow-md { box-shadow: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1); }
.shadow-lg { box-shadow: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1); }
.shadow-inner { box-shadow: inset 0 2px 4px 0 rgba(0,0,0,.06); }
.backdrop-blur { -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.backdrop-blur-md { -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.opacity-65 { opacity: .65; }
.opacity-30 { opacity: .3; }
.opacity-\[0\.035\] { opacity: .035; }
.bg-white { background-color: #fff; }
.bg-white\/70 { background-color: rgba(255,255,255,.7); }
.bg-white\/80 { background-color: rgba(255,255,255,.8); }
.bg-white\/85 { background-color: rgba(255,255,255,.85); }
.bg-white\/90 { background-color: rgba(255,255,255,.9); }
.bg-black { background-color: #000; }
.text-white { color: #fff; }
.text-black { color: #000; }
.bg-transparent { background-color: transparent; }

/* ---------- transitions / transforms ---------- */
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(.4,0,.2,1); transition-duration: .2s; }
.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(.4,0,.2,1); transition-duration: .2s; }
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(.4,0,.2,1); transition-duration: .2s; }
.duration-200 { transition-duration: .2s; }
.duration-300 { transition-duration: .3s; }
.duration-1000 { transition-duration: 1s; }
.ease-in-out { transition-timing-function: ease-in-out; }

/* ---------- custom shadows from original ---------- */
.ds-amber { box-shadow: 0 6px 18px rgba(245,158,11,.45); }
.ds-amber-hover { box-shadow: 0 8px 22px rgba(245,158,11,.6); }
.ds-block { box-shadow: 3px 3px 0px #000; }
.drop-shadow-hard { filter: drop-shadow(2px 3px 0px rgba(0,0,0,.12)); }
.drop-shadow-hard-15 { filter: drop-shadow(2px 3px 0px rgba(0,0,0,.15)); }

/* ---------- animation ---------- */
@keyframes eggPulse { 50% { opacity: .5; } }
.animate-pulse { animation: eggPulse 2s cubic-bezier(.4,0,.6,1) infinite; }

@keyframes eggBounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes eggPop { 0% { transform: scale(.2); opacity: 0; } 70% { transform: scale(1.25); } 100% { transform: scale(1); opacity: 1; } }
@keyframes eggSpin { to { transform: rotate(360deg); } }

/* ---------- cursor ---------- */
.cursor-pointer { cursor: pointer; }
.cursor-not-allowed { cursor: not-allowed; }

/* ---------- sizes ---------- */
.h-px { height: 1px; }
.w-2 { width: 8px; } .h-2 { height: 8px; }
.w-2\.5 { width: 10px; } .h-2\.5 { height: 10px; }
.w-3 { width: 12px; } .h-3 { height: 12px; }
.w-3\.5 { width: 14px; } .h-3\.5 { height: 14px; }
.w-4 { width: 16px; } .h-4 { height: 16px; }
.w-6 { width: 24px; }
.min-h-110 { min-height: 110px; }
.min-h-120 { min-height: 120px; }
.min-h-96c { min-height: calc(100vh - 96px); }
.rotate-45 { transform: rotate(45deg); }
.grad-line { background: linear-gradient(to right, transparent, #cbd5e1, transparent); }

/* ---------- hover / active / disabled (element-level) ---------- */
.hover\:-translate-y-1:hover { transform: translateY(-4px); }
.hover\:shadow-lg:hover { box-shadow: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1); }
.hover\:shadow-amber:hover { box-shadow: 0 8px 22px rgba(245,158,11,.6); }
.hover\:bg-amber-100:hover { background-color: #fef3c7; }
.hover\:bg-amber-400:hover { background-color: #fbbf24; }
.hover\:bg-slate-100:hover { background-color: #f1f5f9; }
.hover\:bg-slate-400:hover { background-color: #94a3b8; }
.hover\:border-black\/30:hover { border-color: rgba(0,0,0,.3); }
.hover\:scale-105:hover { transform: scale(1.05); }
.hover\:border-rose-400:hover { border-color: #fb7185; }
.hover\:border-purple-400:hover { border-color: #c084fc; }
.hover\:border-pink-400:hover { border-color: #f472b6; }
.hover\:border-slate-400:hover { border-color: #94a3b8; }
.hover\:border-zinc-600:hover { border-color: #52525b; }
.active\:scale-\[0\.98\]:active { transform: scale(.98); }
.active\:scale-\[0\.99\]:active { transform: scale(.99); }
.active\:scale-95:active { transform: scale(.95); }
.disabled\:opacity-30:disabled { opacity: .3; }
.disabled\:cursor-not-allowed:disabled { cursor: not-allowed; }
.enabled\:hover\:scale-105:hover:not(:disabled) { transform: scale(1.05); }
.enabled\:active\:scale-95:active:not(:disabled) { transform: scale(.95); }

/* ---------- speaking badge on word cards ---------- */
.wcard .spk-badge { display: none; }
.wcard.speaking .spk-badge { display: inline-flex; }
.wcard.speaking .pos-badge { display: none; }

/* ---------- hover (desktop) ---------- */
.group:hover .group-hover\:translate-x-0\.5 { transform: translateX(2px); }
.group:hover .group-hover\:block { display: block; }
.group:hover .group-hover\:text-amber-600 { color: #d97706; }
.group:hover .group-hover\:text-amber-700 { color: #b45309; }

/* ---------- responsive ---------- */
@media (min-width: 640px) {
  .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sm\:text-sm { font-size: 14px; line-height: 20px; }
  .sm\:text-base { font-size: 16px; line-height: 24px; }
  .sm\:text-lg { font-size: 18px; line-height: 28px; }
  .sm\:text-2xl { font-size: 24px; line-height: 32px; }
  .sm\:text-3xl { font-size: 30px; line-height: 36px; }
  .sm\:text-4xl { font-size: 36px; line-height: 40px; }
  .sm\:flex-row { flex-direction: row; }
}
@media (min-width: 768px) {
  .md\:text-3xl { font-size: 30px; line-height: 36px; }
  .md\:text-4xl { font-size: 36px; line-height: 40px; }
  .md\:text-5xl { font-size: 48px; line-height: 1; }
  .md\:text-sm { font-size: 14px; line-height: 20px; }
  .md\:text-lg { font-size: 18px; line-height: 28px; }
}
@media (min-width: 1024px) {
  .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1280px) {
  .xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ============ Easter egg layer ============ */
#egg-layer { position: fixed; inset: 0; z-index: 9999; pointer-events: none; overflow: hidden; }
#egg-layer .egg-img { position: absolute; image-rendering: pixelated; pointer-events: none; -webkit-user-select: none; user-select: none; }
#egg-layer .egg-clickable { pointer-events: auto; cursor: pointer; }

/* ---------- egg FX ---------- */
/* soft blue vignette for the swim egg */
#egg-layer.egg-vignette {
  background: radial-gradient(ellipse at center, rgba(56,150,255,.06) 0%, rgba(56,150,255,.16) 100%);
}

/* flash overlay */
#egg-layer .egg-flash {
  position: absolute; inset: 0; z-index: 50; pointer-events: none;
  animation: eggFlashFade .5s ease-out forwards;
}
@keyframes eggFlashFade { 0% { opacity: .85; } 100% { opacity: 0; } }

/* screen shake */
#egg-layer.egg-shake { animation: eggShake .5s linear; }
@keyframes eggShake {
  0%,100% { transform: translate(0,0); }
  10% { transform: translate(calc(var(--shake-amp,7px) * -1), 2px); }
  20% { transform: translate(var(--shake-amp,7px), -2px); }
  30% { transform: translate(calc(var(--shake-amp,7px) * -.7), 1px); }
  40% { transform: translate(calc(var(--shake-amp,7px) * .6), -1px); }
  50% { transform: translate(calc(var(--shake-amp,7px) * -.4), 0); }
  60% { transform: translate(calc(var(--shake-amp,7px) * .3), 1px); }
  70% { transform: translate(calc(var(--shake-amp,7px) * -.2), 0); }
  80% { transform: translate(calc(var(--shake-amp,7px) * .15), -1px); }
  90% { transform: translate(0, 0); }
}

/* breathing glow (sprite-safe via drop-shadow) */
#egg-layer .egg-glow { animation: eggGlow 1.1s ease-in-out infinite alternate; }
@keyframes eggGlow {
  from { filter: drop-shadow(0 0 1px var(--glow,#ffd700)); }
  to   { filter: drop-shadow(0 0 9px var(--glow,#ffd700)); }
}

/* strong glow for items revealed from lucky blocks */
#egg-layer .egg-glow-strong {
  animation: eggGlowStrong .7s ease-in-out infinite alternate;
}
@keyframes eggGlowStrong {
  from {
    filter:
      drop-shadow(0 0 4px var(--glow,#ffd700))
      drop-shadow(0 0 8px var(--glow,#ffd700));
  }
  to {
    filter:
      drop-shadow(0 0 9px var(--glow,#ffd700))
      drop-shadow(0 0 20px var(--glow,#ffd700))
      drop-shadow(0 0 30px #ffffff);
  }
}

/* gentle fade out for expired lucky blocks / collected items */
#egg-layer .egg-fade-out { animation: eggFadeOut .35s ease-out forwards; }
@keyframes eggFadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

/* rainbow shimmer (invincible mario / starman) */
#egg-layer .egg-rainbow { animation: eggRainbow .38s linear infinite; }
@keyframes eggRainbow { to { filter: hue-rotate(360deg); } }

/* pixel particles */
#egg-layer .egg-particle {
  position: absolute; image-rendering: pixelated; pointer-events: none;
  border-radius: 1px;
}

/* ambient rising bubbles (swim egg) */
#egg-layer .egg-bubble {
  position: absolute; bottom: -30px; border-radius: 9999px; pointer-events: none;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.9), rgba(190,230,255,.3));
  animation-name: eggRise; animation-timing-function: linear; animation-iteration-count: infinite;
  opacity: 0;
}
@keyframes eggRise {
  0%   { transform: translateY(0); opacity: 0; }
  8%   { opacity: .75; }
  85%  { opacity: .55; }
  100% { transform: translateY(-120vh); opacity: 0; }
}

/* scrollbar subtle (original site look) */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(100,116,139,.35); border-radius: 9999px; }

/* floating score popup (walk item pickup) */
#egg-layer .egg-score {
  position: absolute;
  pointer-events: none;
  z-index: 70;
  font-family: "Press Start 2P", monospace;
  font-weight: 700;
  font-size: 17px;
  letter-spacing: 1px;
  white-space: nowrap;
  color: var(--score-color, #ffffff);
  text-shadow:
    -2px 0 #000, 2px 0 #000, 0 -2px #000, 0 2px #000,
    -2px -2px #000, 2px -2px #000, -2px 2px #000, 2px 2px #000,
    0 0 10px var(--glow, #ffd700), 0 0 18px var(--glow, #ffd700);
  animation: eggScoreFloat 1.15s ease-out forwards;
}
/* 1UP uses the classic green text */
#egg-layer .egg-score.egg-score-oneup { --score-color: #6ee7b7; }
@keyframes eggScoreFloat {
  0%   { opacity: 0; transform: translateX(-50%) translateY(8px) scale(.5); }
  18%  { opacity: 1; transform: translateX(-50%) translateY(-2px) scale(1.2); }
  32%  { transform: translateX(-50%) translateY(-6px) scale(1); }
  100% { opacity: 0; transform: translateX(-50%) translateY(-70px) scale(1); }
}
/* rainbow shimmer on the 5000 star score */
#egg-layer .egg-score.egg-score-star {
  animation: eggScoreFloat 1.15s ease-out forwards, eggScoreHue .45s linear infinite;
}
@keyframes eggScoreHue { to { filter: hue-rotate(360deg); } }
