/* Shared Festival Toybox skin for the bright Digital Media Gods collection. */
body.festival-toybox {
  --toy-ink: #17315b;
  --toy-blue: #1677ff;
  --toy-red: #ff4057;
  --toy-yellow: #ffd52f;
  --toy-green: #35c76f;
  --toy-orange: #ff8a2b;
  --toy-violet: #8d55e8;
  --toy-paper: #ffffff;
  color: var(--toy-ink) !important;
  background: #55c7ff !important;
  font-family: "Arial Rounded MT Bold", "Trebuchet MS", sans-serif !important;
}

body.festival-toybox #kenney-cloud-layer,
body.festival-toybox #kenney-grade-layer { display: none !important; }
body.flappy-fun #flight-vignette { display: none !important; }
body.frogger-fun::after {
  display: none !important;
  content: none !important;
  animation: none !important;
}
body.flappy-fun canvas,
body.frogger-fun canvas { filter: saturate(1.16) contrast(1.08) !important; }

body.festival-toybox #hud {
  border: 4px solid var(--toy-blue) !important;
  color: var(--toy-ink) !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 7px 0 #0959be, 0 16px 30px rgba(23,49,91,.2) !important;
  backdrop-filter: none !important;
}
body.festival-toybox #hud .title {
  color: var(--toy-red) !important;
  background: #fff0f2 !important;
  text-shadow: 0 2px 0 #ffd0d7 !important;
}
body.festival-toybox #hud .title small { color: var(--toy-blue) !important; }
body.festival-toybox .hud-stat {
  border-left: 2px solid #c9ddec !important;
  color: var(--toy-ink) !important;
  background: #edf8ff !important;
}
body.festival-toybox .hud-stat:nth-child(2) { background: #fff8c9 !important; border-color: #ffe075 !important; }
body.festival-toybox .hud-stat:nth-child(3) { background: #ecfff2 !important; border-color: #a9dfba !important; }
body.frogger-fun .hud-stat:nth-child(4) { background: #f3edff !important; border-color: #c4afe6 !important; }
body.festival-toybox .hud-stat::before { color: #637894 !important; }
body.festival-toybox #score { color: var(--toy-red) !important; }
body.festival-toybox #speed,
body.festival-toybox #crossings { color: var(--toy-green) !important; }
body.festival-toybox #lives { color: var(--toy-red) !important; }
body.festival-toybox #flight-meter,
body.festival-toybox #route-progress { background: #dbe9f3 !important; }
body.festival-toybox #flight-meter i,
body.festival-toybox #route-progress > i {
  background: linear-gradient(90deg, var(--toy-green), var(--toy-yellow), var(--toy-orange), var(--toy-red)) !important;
  box-shadow: none !important;
}

body.festival-toybox #hint {
  border: 3px solid #e2ac00 !important;
  color: var(--toy-ink) !important;
  background: rgba(255,249,201,.96) !important;
  box-shadow: 0 5px 0 #a97f00 !important;
  backdrop-filter: none !important;
}

body.festival-toybox #flight-callout,
body.festival-toybox #crossing-callout {
  padding: 8px 18px 7px;
  border: 4px solid #fff;
  border-radius: 17px;
  color: #fff !important;
  background: var(--toy-red);
  box-shadow: 0 7px 0 #b51e33, 0 15px 28px rgba(23,49,91,.22);
  text-shadow: 0 3px 0 rgba(23,49,91,.2) !important;
}
body.festival-toybox #flight-callout small,
body.festival-toybox #crossing-callout small { color: var(--toy-ink) !important; background: var(--toy-yellow); border-radius: 999px; padding: 4px 9px; }
body.festival-toybox #flight-flash,
body.festival-toybox #crossing-flash { background: radial-gradient(circle at center, rgba(255,255,255,.9), rgba(255,213,47,.44) 22%, transparent 62%) !important; }
body.festival-toybox #flight-flash.hit,
body.festival-toybox #crossing-flash.hit { background: radial-gradient(circle at center, rgba(255,255,255,.88), rgba(255,64,87,.52) 24%, transparent 64%) !important; }

body.festival-toybox #menu {
  background:
    radial-gradient(circle at 10% 13%, rgba(255,255,255,.94) 0 5%, transparent 5.2%),
    radial-gradient(circle at 86% 9%, rgba(255,255,255,.82) 0 7%, transparent 7.2%),
    linear-gradient(180deg, #69c9ff 0 64%, #76dd78 64.2% 100%) !important;
  backdrop-filter: none !important;
}
body.festival-toybox #menu .panel {
  border: 5px solid var(--toy-blue) !important;
  color: var(--toy-ink) !important;
  background: rgba(255,255,255,.985) !important;
  box-shadow: 0 9px 0 #0959be, 0 25px 50px rgba(23,49,91,.25) !important;
  scrollbar-color: var(--toy-blue) #fff0a8 !important;
}
body.frogger-fun #menu .panel::before {
  content: "NGUYEN VAN LINH • RAINBOW RAINLINE • RMIT BOUND" !important;
  color: var(--toy-violet) !important;
}
body.festival-toybox .menu-kicker { color: var(--toy-violet) !important; }
body.festival-toybox #menu h1 {
  color: var(--toy-blue) !important;
  font-family: "Arial Rounded MT Bold", "Trebuchet MS", sans-serif !important;
  text-shadow: 0 3px 0 #fff, 0 6px 0 #a7d0ff !important;
}
body.festival-toybox #menu h1 span { color: var(--toy-red) !important; }
body.festival-toybox .game-kicker { color: #536a88 !important; }

body.festival-toybox #character-grid .char-card {
  border: 3px solid var(--toy-blue) !important;
  color: var(--toy-ink) !important;
  background: #edf8ff !important;
  background-image: none !important;
  box-shadow: 0 5px 0 #9ebed7 !important;
}
body.festival-toybox #character-grid .char-card:nth-child(6n + 2) { border-color: var(--toy-red) !important; background: #fff0f2 !important; box-shadow: 0 5px 0 #e8a4ae !important; }
body.festival-toybox #character-grid .char-card:nth-child(6n + 3) { border-color: #e2ac00 !important; background: #fff8c9 !important; box-shadow: 0 5px 0 #dfc76e !important; }
body.festival-toybox #character-grid .char-card:nth-child(6n + 4) { border-color: var(--toy-green) !important; background: #ecfff2 !important; box-shadow: 0 5px 0 #9dd9b1 !important; }
body.festival-toybox #character-grid .char-card:nth-child(6n + 5) { border-color: var(--toy-orange) !important; background: #fff0df !important; box-shadow: 0 5px 0 #e3b98f !important; }
body.festival-toybox #character-grid .char-card:nth-child(6n) { border-color: var(--toy-violet) !important; background: #f3edff !important; box-shadow: 0 5px 0 #beace0 !important; }
body.festival-toybox #character-grid .char-card::after { color: var(--toy-blue) !important; }
body.festival-toybox #character-grid .char-card:hover,
body.festival-toybox #character-grid .char-card:focus-visible { outline: 4px solid var(--toy-yellow) !important; outline-offset: 2px !important; transform: translateY(-4px) rotate(-1deg) !important; }
body.festival-toybox .char-card img { border: 0 !important; border-radius: 50%; filter: drop-shadow(0 5px 6px rgba(23,49,91,.22)) !important; }
body.festival-toybox .char-card span { color: var(--toy-ink) !important; font-family: "Arial Rounded MT Bold", "Trebuchet MS", sans-serif !important; font-weight: 1000 !important; }

body.festival-toybox #menu .chip,
body.festival-toybox #end-controls .chip {
  border: 3px solid var(--toy-blue) !important;
  color: var(--toy-ink) !important;
  background: #fff !important;
  background-image: none !important;
  box-shadow: 0 4px 0 #9ebed7 !important;
  text-shadow: none !important;
}
body.festival-toybox #toggle-sfx { border-color: #e2ac00 !important; background: #fff8c9 !important; }
body.festival-toybox #toggle-music { border-color: var(--toy-green) !important; background: #ecfff2 !important; }
body.festival-toybox #end-controls .chip-primary { border-color: var(--toy-red) !important; color: #fff !important; background: var(--toy-red) !important; box-shadow: 0 5px 0 #b51e33 !important; }
body.festival-toybox #result { border: 3px solid var(--toy-red) !important; color: var(--toy-ink) !important; background: #fff0f2 !important; }

body.festival-toybox #dmg-global-controls .dmg-ctl-btn,
body.festival-toybox #dmg-top-actions .dmg-btn {
  border: 3px solid var(--toy-blue) !important;
  color: var(--toy-ink) !important;
  background: #fff !important;
  box-shadow: 0 5px 0 #0959be !important;
  text-shadow: none !important;
}
body.festival-toybox #dmg-pause-overlay { background: rgba(82,190,235,.62) !important; backdrop-filter: blur(8px) !important; }

body.frogger-fun #touch-pad button {
  border: 3px solid var(--toy-blue) !important;
  color: var(--toy-ink) !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 5px 0 #0959be !important;
  backdrop-filter: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body.festival-toybox *, body.festival-toybox *::before, body.festival-toybox *::after { transition: none !important; animation-duration: .01ms !important; }
}
