html.loading-screen-active,
html.loading-screen-active body {
  width: 100%;
  height: 100%;
  overflow: hidden !important;
  background: #05070b;
}

html.loading-screen-active .game-shell {
  pointer-events: none;
}

.app-loading-screen {
  --loading-cyan: #58e8ff;
  --loading-mint: #54f5b8;
  --loading-gold: #ffe661;
  position: fixed;
  inset: 0;
  z-index: 999;
  display: block;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  padding:
    max(12px, env(safe-area-inset-top))
    max(18px, env(safe-area-inset-right))
    max(18px, env(safe-area-inset-bottom))
    max(18px, env(safe-area-inset-left));
  overflow: hidden;
  color: #f7fbff;
  direction: rtl;
  isolation: isolate;
  background:
    linear-gradient(180deg, rgba(2, 5, 18, 0.04), rgba(2, 5, 18, 0) 52%, rgba(1, 3, 12, 0.48)),
    url("assets/loading/kaflul-loading-background-v2.webp") center / cover no-repeat,
    #05070b;
  opacity: 1;
  transform: scale(1);
  transition:
    opacity 460ms ease,
    transform 460ms ease,
    visibility 460ms ease;
}

.app-loading-screen[hidden] {
  display: none !important;
}

.app-loading-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(180deg, rgba(1, 4, 15, 0.1), transparent 22%, transparent 72%, rgba(1, 3, 12, 0.58));
  pointer-events: none;
}

.app-loading-screen::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 12%, rgba(83, 156, 255, 0.2), transparent 28%),
    linear-gradient(90deg, rgba(2, 4, 18, 0.3), transparent 16%, transparent 84%, rgba(2, 4, 18, 0.3));
  box-shadow:
    inset 0 0 0 1px rgba(113, 228, 255, 0.14),
    inset 0 0 96px rgba(0, 0, 0, 0.34);
}

.loading-logo,
.loading-copy,
.loading-character-stage,
.loading-progress,
.loading-note {
  position: relative;
  z-index: 1;
}

.loading-logo {
  position: absolute;
  top: max(34px, 4.8dvh);
  left: 50%;
  width: min(62vw, 270px);
  max-height: 14dvh;
  object-fit: contain;
  filter:
    drop-shadow(0 7px 0 rgba(0, 0, 0, 0.28))
    drop-shadow(0 0 20px rgba(88, 232, 255, 0.42));
  transform: translateX(-50%);
  animation: loadingLogoArrive 620ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.loading-copy {
  position: absolute;
  top: max(154px, 20.4dvh);
  left: 50%;
  display: grid;
  gap: 3px;
  justify-items: center;
  width: min(380px, 92vw);
  padding: 0;
  text-align: center;
  transform: translateX(-50%);
  animation: loadingCopyArrive 540ms 140ms ease-out both;
}

.loading-copy strong {
  color: #faffcf;
  font-family: var(--display-font, "Fredoka", "Assistant", sans-serif);
  font-size: clamp(1.44rem, 6.4vw, 2.12rem);
  font-weight: 800;
  line-height: 1.03;
  text-shadow:
    0 3px 0 rgba(0, 0, 0, 0.5),
    0 0 16px rgba(255, 230, 97, 0.24);
}

.loading-copy span,
.loading-note {
  color: #d8f8ff;
  font-size: clamp(0.9rem, 4vw, 1.08rem);
  font-weight: 800;
  letter-spacing: 0;
  text-shadow: 0 2px 9px rgba(0, 0, 0, 0.56);
}

.loading-character-stage {
  position: absolute;
  top: 40%;
  left: 50%;
  width: min(448px, 98vw);
  height: min(286px, 34dvh);
  transform: translateX(-50%);
}

.loading-hero-slot {
  --hero-x: 0%;
  --hero-delay: 220ms;
  --hero-glow: rgba(88, 232, 255, 0.72);
  position: absolute;
  bottom: 0;
  display: block;
  opacity: 0;
  transform: translate3d(var(--hero-x), 18px, 0) scale(0.94);
  animation: loadingHeroArrive 620ms var(--hero-delay) cubic-bezier(0.16, 0.84, 0.28, 1.12) forwards;
}

.loading-character {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  filter:
    drop-shadow(0 15px 20px rgba(0, 0, 0, 0.46))
    drop-shadow(0 0 16px var(--hero-glow));
  animation: loadingHeroFloat 2.8s calc(var(--hero-delay) + 620ms) ease-in-out infinite;
}

.loading-hero-aura {
  position: absolute;
  right: 4%;
  bottom: 2%;
  left: 4%;
  z-index: 0;
  height: 22%;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, var(--hero-glow), transparent 70%);
  opacity: 0.66;
  transform: scaleX(1.18);
}

.loading-hero-bifly {
  left: 50%;
  z-index: 3;
  width: min(190px, 43vw);
  --hero-x: -50%;
  --hero-delay: 220ms;
  --hero-glow: rgba(70, 238, 255, 0.78);
}

.loading-hero-nabatick {
  left: 2%;
  z-index: 2;
  width: min(145px, 31vw);
  --hero-delay: 290ms;
  --hero-glow: rgba(111, 255, 167, 0.72);
}

.loading-hero-mia {
  right: 2%;
  z-index: 2;
  width: min(150px, 32vw);
  --hero-delay: 360ms;
  --hero-glow: rgba(255, 116, 231, 0.7);
}

.loading-progress {
  position: absolute;
  right: 50%;
  bottom: max(56px, 7dvh);
  width: min(330px, 80vw);
  height: 18px;
  padding: 3px;
  border: 1px solid rgba(145, 231, 255, 0.62);
  border-radius: 999px;
  background: rgba(1, 8, 22, 0.86);
  box-shadow:
    0 11px 22px rgba(0, 0, 0, 0.36),
    inset 0 0 0 1px rgba(255, 255, 255, 0.08);
  overflow: hidden;
  transform: translateX(50%);
}

.loading-progress-fill {
  display: block;
  width: var(--loading-progress, 10%);
  height: 100%;
  border-radius: inherit;
  background:
    linear-gradient(90deg, #4ce8ff, var(--loading-mint) 58%, var(--loading-gold));
  box-shadow:
    0 0 16px rgba(84, 245, 184, 0.62),
    inset 0 1px rgba(255, 255, 255, 0.4);
  transition: width 260ms ease;
}

.loading-note {
  position: absolute;
  right: 50%;
  bottom: max(17px, 2dvh);
  width: min(330px, 84vw);
  margin: 0;
  color: #e7f7ff;
  text-align: center;
  transform: translateX(50%);
}

html.loading-screen-complete .app-loading-screen {
  opacity: 0;
  visibility: hidden;
  transform: scale(1.018);
  pointer-events: none;
}

@keyframes loadingLogoArrive {
  from {
    opacity: 0;
    transform: translate3d(-50%, -10px, 0) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translate3d(-50%, 0, 0) scale(1);
  }
}

@keyframes loadingCopyArrive {
  from {
    opacity: 0;
    transform: translate3d(-50%, 8px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(-50%, 0, 0);
  }
}

@keyframes loadingHeroArrive {
  from {
    opacity: 0;
    transform: translate3d(var(--hero-x), 18px, 0) scale(0.94);
  }
  to {
    opacity: 1;
    transform: translate3d(var(--hero-x), 0, 0) scale(1);
  }
}

@keyframes loadingHeroFloat {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -4px, 0);
  }
}

@media (min-width: 700px) {
  .app-loading-screen::before {
    background: linear-gradient(180deg, rgba(3, 6, 20, 0.08), transparent 44%, rgba(2, 4, 13, 0.38));
  }

  .app-loading-screen {
    background:
      linear-gradient(180deg, rgba(3, 6, 20, 0.12), transparent 48%, rgba(2, 4, 13, 0.5)),
      url("assets/loading/kaflul-loading-background-v2.webp") center 45% / min(92vh, 52vw) auto no-repeat,
      radial-gradient(circle at center, rgba(21, 73, 142, 0.76), rgba(3, 7, 22, 0.95) 58%, #02040d),
      #02040d;
  }

  .loading-logo {
    top: max(28px, 4.4vh);
  }

  .loading-copy {
    top: max(150px, 21vh);
  }

  .loading-character-stage {
    top: 39%;
    width: min(600px, 74vw);
    height: min(280px, 38vh);
  }

  .loading-hero-nabatick {
    left: 10%;
  }

  .loading-hero-mia {
    right: 10%;
  }
}

@media (max-height: 760px) {
  .loading-logo {
    top: max(22px, 3.8dvh);
    width: min(54vw, 220px);
    max-height: 90px;
  }

  .loading-copy {
    top: max(118px, 18.5dvh);
  }

  .loading-character-stage {
    top: 36%;
    height: min(226px, 34dvh);
  }

  .loading-hero-bifly {
    width: min(148px, 39vw);
  }
}

html.android-low-memory-runtime .app-loading-screen {
  background:
    linear-gradient(180deg, rgba(2, 5, 18, 0.06), rgba(2, 5, 18, 0) 52%, rgba(1, 3, 12, 0.52)),
    url("assets/performance/low-memory/loading/kaflul-loading-background-v2.jpg") center / cover no-repeat,
    #05070b;
}

html.android-low-memory-runtime .loading-character {
  filter: none;
  animation: none;
}

html.android-low-memory-runtime .loading-hero-aura {
  opacity: 0.5;
}

@media (prefers-reduced-motion: reduce) {
  .loading-logo,
  .loading-copy,
  .loading-hero-slot,
  .loading-character {
    animation: none;
  }

  .loading-hero-slot {
    opacity: 1;
    transform: translate3d(var(--hero-x), 0, 0) scale(1);
  }

  .app-loading-screen,
  .loading-progress-fill {
    transition: none;
  }
}

#start-screen {
  --menu-cyan: #58e8ff;
  --menu-blue: #2f7dff;
  --menu-purple: #8f65ff;
  --menu-magenta: #ff5bd9;
  --menu-gold: #ffd84a;
  --menu-gold-deep: #f38b00;
  --menu-lime: #a4f52d;
  --menu-ink: #f8fbff;
  --menu-muted: #b7c7de;
  --menu-panel: rgba(5, 11, 28, 0.76);
  --menu-panel-strong: rgba(3, 7, 20, 0.94);
  --menu-line: rgba(123, 227, 255, 0.34);
  --menu-safe-top: max(10px, env(safe-area-inset-top));
  --menu-safe-right: max(10px, env(safe-area-inset-right));
  --menu-safe-bottom: max(10px, env(safe-area-inset-bottom));
  --menu-safe-left: max(10px, env(safe-area-inset-left));
  position: fixed;
  inset: 0;
  z-index: 14;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  background: #050714;
  color: var(--menu-ink);
  direction: rtl;
  isolation: isolate;
}

#start-screen[hidden],
.menu-sheet[hidden] {
  display: none;
}

#start-screen::before {
  content: "";
  position: absolute;
  inset: -2%;
  z-index: -6;
  background: url("assets/math-maze-poster.png") center / cover no-repeat;
  opacity: 0.28;
  filter: saturate(1.04) contrast(1.08) brightness(0.46);
  transform: scale(1.02);
}

#start-screen::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -5;
  pointer-events: none;
  background:
    radial-gradient(circle at 52% 27%, rgba(88, 232, 255, 0.2), transparent 30%),
    radial-gradient(circle at 72% 42%, rgba(164, 245, 45, 0.1), transparent 27%),
    linear-gradient(90deg, rgba(5, 5, 24, 0.98), rgba(7, 17, 34, 0.52) 24%, rgba(8, 13, 31, 0.32) 52%, rgba(20, 7, 48, 0.76) 82%, rgba(7, 5, 28, 0.98)),
    linear-gradient(180deg, rgba(2, 3, 12, 0.26), rgba(1, 3, 11, 0.52) 60%, rgba(1, 2, 9, 0.92));
  box-shadow:
    inset 0 0 0 1px rgba(118, 231, 255, 0.14),
    inset 0 0 130px rgba(0, 0, 0, 0.62);
}

#start-screen button,
#start-screen input {
  font-family: inherit;
}

#start-screen button {
  -webkit-tap-highlight-color: transparent;
}

.main-menu {
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(220px, 0.74fr) minmax(520px, 1.6fr) minmax(240px, 0.78fr);
  grid-template-rows: clamp(58px, 7dvh, 78px) clamp(86px, 13dvh, 138px) minmax(270px, 1fr) clamp(96px, 12dvh, 128px) clamp(62px, 8dvh, 76px);
  grid-template-areas:
    "top top top"
    "progress logo summary"
    "progress hero summary"
    ". cta ."
    "nav nav nav";
  gap: clamp(8px, 1.15vw, 18px);
  padding:
    var(--menu-safe-top)
    var(--menu-safe-right)
    var(--menu-safe-bottom)
    var(--menu-safe-left);
  overflow: hidden;
  direction: rtl;
}

.menu-world,
.maze-depth,
.menu-particle {
  position: absolute;
  pointer-events: none;
}

.menu-world {
  inset: 0;
  z-index: -1;
  overflow: hidden;
}

.menu-world::before {
  content: "";
  position: absolute;
  inset-inline: 8%;
  top: 12%;
  height: 54%;
  background:
    linear-gradient(90deg, rgba(88, 232, 255, 0.12) 1px, transparent 1px),
    linear-gradient(0deg, rgba(164, 245, 45, 0.08) 1px, transparent 1px);
  background-size: 74px 74px;
  opacity: 0.5;
  mask-image: radial-gradient(ellipse at center, #000 0 52%, transparent 76%);
}

.menu-world::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 8dvh;
  width: min(1040px, 82vw);
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(88, 232, 255, 0.62), rgba(255, 216, 74, 0.52), transparent);
  box-shadow: 0 0 24px rgba(88, 232, 255, 0.42);
  opacity: 0.72;
  transform: translateX(-50%);
}

.maze-depth {
  left: 50%;
  bottom: -11dvh;
  width: min(1260px, 126vw);
  height: min(560px, 58dvh);
  transform: translateX(-50%) perspective(820px) rotateX(62deg);
  transform-origin: center bottom;
  opacity: 0.58;
  background:
    linear-gradient(90deg, transparent 0 43px, rgba(88, 232, 255, 0.54) 45px 48px, transparent 50px),
    linear-gradient(0deg, transparent 0 43px, rgba(164, 245, 45, 0.28) 45px 48px, transparent 50px);
  background-size: 92px 92px;
  filter: drop-shadow(0 0 16px rgba(88, 232, 255, 0.3));
  mask-image: linear-gradient(to top, #000 0 45%, rgba(0, 0, 0, 0.78) 63%, transparent 100%);
}

.maze-depth-back {
  bottom: 8dvh;
  opacity: 0.2;
  transform: translateX(-50%) perspective(900px) rotateX(66deg) scale(0.82);
}

.maze-depth-front {
  bottom: -17dvh;
  opacity: 0.36;
  transform: translateX(-50%) perspective(700px) rotateX(58deg) scale(1.14);
}

.menu-enemy,
.hero-enemy {
  position: absolute;
  width: clamp(54px, 7.4vw, 128px);
  height: auto;
  opacity: 0.66;
  filter:
    drop-shadow(0 0 13px rgba(143, 101, 255, 0.76))
    drop-shadow(0 18px 24px rgba(0, 0, 0, 0.5));
}

.enemy-a {
  top: 38%;
  left: 9%;
  width: clamp(62px, 7vw, 116px);
  animation: menuFloat 7s ease-in-out infinite;
}

.enemy-b {
  top: 29%;
  right: 9%;
  width: clamp(76px, 8.8vw, 150px);
  animation: menuFloat 6.3s ease-in-out infinite -1.7s;
}

.enemy-c {
  top: 63%;
  right: 28%;
  width: clamp(42px, 4.8vw, 84px);
  opacity: 0.42;
  animation: menuFloat 8s ease-in-out infinite -3s;
}

.enemy-core {
  top: 36%;
  left: 50%;
  width: clamp(118px, 13vw, 230px);
  opacity: 0.34;
  transform: translateX(-50%);
}

.menu-particle {
  display: none;
  width: 9px;
  height: 4px;
  border-radius: 4px;
  background: var(--menu-gold);
  box-shadow: 0 0 14px rgba(255, 216, 74, 0.72);
  animation: particleDrift 8s ease-in-out infinite;
}

.particle-a { right: 15%; bottom: 27%; }
.particle-b { left: 17%; bottom: 23%; animation-delay: -2.2s; background: var(--menu-cyan); }
.particle-c { left: 44%; top: 32%; animation-delay: -4.1s; background: var(--menu-lime); }

.home-player-bar {
  grid-area: top;
  position: relative;
  z-index: 8;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: clamp(7px, 1vw, 12px);
  min-width: 0;
  direction: ltr;
}

.home-player-card,
.menu-best-card,
.home-rank-button,
.menu-icon-button,
.menu-leaderboard-card,
.menu-control-button,
.home-nav-button,
.menu-sheet-inner {
  border: 1px solid var(--menu-line);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.11), rgba(255, 255, 255, 0.035)),
    var(--menu-panel);
  box-shadow:
    0 14px 34px rgba(0, 0, 0, 0.34),
    inset 0 0 24px rgba(88, 232, 255, 0.07);
  backdrop-filter: blur(14px);
}

.home-player-card,
.menu-best-card,
.home-rank-button {
  min-height: 54px;
  border-radius: 16px;
}

.home-player-card {
  grid-area: player;
  order: 4;
  flex: 1 1 220px;
  min-width: 0;
  max-width: 420px;
  width: auto;
  display: grid;
  justify-content: start;
  gap: 1px;
  padding: 8px 13px;
  direction: rtl;
}

.home-mini-label,
.menu-best-copy span,
.menu-panel-title,
.menu-control-button small {
  color: #dce9ff;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.1;
}

.home-player-card strong,
.menu-best-copy strong,
.home-rank-button strong,
.menu-control-button strong,
.home-nav-button strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-player-card strong {
  color: #ffffff;
  font-size: clamp(17px, 1.7vw, 23px);
  font-weight: 900;
  line-height: 1.12;
}

.home-player-card.is-missing-nickname {
  border-color: rgba(255, 216, 74, 0.72);
  background: linear-gradient(180deg, rgba(255, 216, 74, 0.15), rgba(3, 11, 31, 0.9));
  box-shadow:
    0 14px 34px rgba(0, 0, 0, 0.34),
    inset 0 0 24px rgba(255, 216, 74, 0.09),
    0 0 20px rgba(255, 216, 74, 0.12);
}

.home-player-card.is-missing-nickname strong {
  color: #ffe77d;
}

.menu-best-card {
  appearance: none;
  grid-area: best;
  order: 3;
  flex: 0 1 260px;
  min-width: 0;
  width: auto;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  padding: 7px 11px;
  color: inherit;
  font: inherit;
  text-align: inherit;
  direction: rtl;
  cursor: pointer;
}

.menu-best-card:hover,
.menu-best-card:focus-visible {
  outline: none;
  border-color: rgba(255, 216, 74, 0.72);
  box-shadow:
    0 0 0 3px rgba(255, 216, 74, 0.14),
    0 14px 34px rgba(0, 0, 0, 0.34),
    inset 0 0 24px rgba(88, 232, 255, 0.11);
}

.menu-best-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: linear-gradient(180deg, #fff17a, #ffc51f 58%, #d57a00);
  color: #5c2400;
  font-size: 24px;
  box-shadow: 0 0 22px rgba(255, 197, 31, 0.4);
}

.menu-best-copy {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.menu-best-copy strong {
  color: var(--menu-gold);
  font-family: var(--display-font);
  font-size: clamp(22px, 2.7vw, 36px);
  line-height: 1.12;
  text-shadow: 0 0 16px rgba(255, 216, 74, 0.42);
}

.home-rank-button {
  grid-area: rank;
  order: 2;
  flex: 0 0 92px;
  position: static;
  top: auto;
  left: auto;
  z-index: auto;
  min-width: 74px;
  display: grid;
  place-items: center;
  padding: 5px 9px;
  color: #f8fbff;
  cursor: pointer;
  direction: rtl;
}

.home-rank-icon {
  color: var(--menu-gold);
  font-size: 16px;
  filter: drop-shadow(0 0 10px rgba(255, 216, 74, 0.36));
}

.home-rank-button strong {
  color: var(--menu-cyan);
  font-family: var(--display-font);
  font-size: clamp(24px, 3vw, 38px);
  line-height: 1.12;
}

.menu-actions {
  grid-area: actions;
  order: 1;
  flex: 0 0 auto;
  display: flex;
  justify-content: end;
  gap: 8px;
  min-width: 0;
  direction: rtl;
}

.menu-icon-button {
  position: relative;
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  padding: 0;
  border-radius: 16px;
  color: #f4f8ff;
  cursor: pointer;
}

.menu-icon-button .ui-icon,
.home-nav-button .ui-icon,
.menu-control-button .ui-icon {
  width: 1.45em;
  height: 1.45em;
}

.menu-logo {
  grid-area: logo;
  position: relative;
  z-index: 4;
  min-width: 0;
  align-self: center;
  display: grid;
  justify-items: center;
  text-align: center;
  direction: rtl;
}

#start-screen .menu-logo-title {
  display: grid;
  width: clamp(240px, 29vw, 480px);
  height: clamp(78px, 10.8dvh, 132px);
  margin: 0;
  color: inherit;
  font-size: 0;
  line-height: 0;
  place-items: center;
}

#start-screen .menu-logo-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter:
    drop-shadow(0 0 16px rgba(88, 232, 255, 0.5))
    drop-shadow(0 14px 20px rgba(0, 0, 0, 0.45));
}

.menu-logo p {
  display: none;
}

.home-hero-scene {
  grid-area: hero;
  position: relative;
  z-index: 2;
  min-width: 0;
  min-height: 0;
  display: grid;
  place-items: stretch;
  overflow: hidden;
  border: 1px solid rgba(88, 232, 255, 0.18);
  border-radius: clamp(22px, 3vw, 34px);
  background:
    radial-gradient(circle at 50% 56%, rgba(88, 232, 255, 0.16), transparent 42%),
    radial-gradient(circle at 66% 38%, rgba(164, 245, 45, 0.11), transparent 32%),
    linear-gradient(180deg, rgba(88, 232, 255, 0.08), rgba(255, 91, 217, 0.04)),
    rgba(2, 6, 18, 0.34);
  box-shadow:
    inset 0 0 48px rgba(88, 232, 255, 0.08),
    0 24px 60px rgba(0, 0, 0, 0.28);
}

.hero-maze-frame {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.hero-maze-frame::before,
.hero-maze-frame::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
}

.hero-maze-frame::before {
  bottom: -26%;
  width: min(760px, 118%);
  height: 58%;
  background:
    linear-gradient(90deg, transparent 0 38px, rgba(88, 232, 255, 0.55) 40px 43px, transparent 45px),
    linear-gradient(0deg, transparent 0 38px, rgba(164, 245, 45, 0.26) 40px 43px, transparent 45px);
  background-size: 82px 82px;
  opacity: 0.42;
  transform: translateX(-50%) perspective(620px) rotateX(62deg);
  transform-origin: center bottom;
  mask-image: linear-gradient(to top, #000 0 50%, transparent 100%);
}

.hero-maze-frame::after {
  bottom: 18%;
  width: 72%;
  height: 18%;
  border: 2px solid rgba(255, 216, 74, 0.22);
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(255, 216, 74, 0.13), transparent 68%);
  transform: translateX(-50%) perspective(520px) rotateX(70deg);
  box-shadow: 0 0 28px rgba(255, 216, 74, 0.16);
}

.hero-maze-node,
.hero-route {
  position: absolute;
  display: block;
}

.hero-maze-node {
  display: none;
}

.node-a { right: 16%; top: 24%; }
.node-b { left: 16%; top: 31%; background: var(--menu-cyan); }
.node-c { right: 28%; bottom: 26%; background: var(--menu-lime); }
.node-d { left: 28%; bottom: 22%; background: var(--menu-magenta); }

.hero-route {
  width: 28%;
  height: 2px;
  border-radius: 99px;
  background: linear-gradient(90deg, transparent, rgba(88, 232, 255, 0.36), transparent);
  transform: rotate(-12deg);
  opacity: 0.16;
}

.route-a { right: 17%; top: 31%; }
.route-b { left: 17%; bottom: 29%; transform: rotate(14deg); }

.hero-enemy {
  z-index: 1;
  animation: menuFloat 7s ease-in-out infinite;
}

.hero-enemy-a {
  right: 13%;
  top: 28%;
  width: clamp(58px, 7.2vw, 116px);
}

.hero-enemy-b {
  left: 13%;
  top: 30%;
  width: clamp(64px, 8.2vw, 134px);
  animation-delay: -2s;
}

.hero-enemy-c {
  left: 39%;
  bottom: 20%;
  width: clamp(42px, 5.3vw, 78px);
  opacity: 0.48;
  animation-delay: -4s;
}

.menu-character-options {
  position: relative;
  z-index: 3;
  width: 100%;
  height: 100%;
  min-height: 280px;
  direction: ltr;
}

#start-screen .menu-character {
  --character-rgb: 88, 232, 255;
  position: absolute;
  bottom: 13%;
  left: 50%;
  width: min(58%, 430px);
  min-width: 190px;
  display: grid;
  justify-items: center;
  cursor: pointer;
  direction: rtl;
  /* Keep vertical page gestures native, but reserve horizontal drags for the
     carousel even when the gesture begins directly on a character. */
  touch-action: pan-y;
  transform: translateX(-50%) scale(0.72);
  transform-origin: center bottom;
  opacity: 0.54;
  transition:
    transform 220ms var(--kf-motion-ease-emphasis),
    opacity 170ms ease,
    filter 170ms ease;
}

#start-screen .menu-character .character-card,
#start-screen .menu-character img,
#start-screen .menu-character .character-glow,
#start-screen .menu-character .character-nameplate {
  touch-action: pan-y;
}

#start-screen .menu-character-nabatick {
  --character-rgb: 164, 245, 45;
}

#start-screen .menu-character-bifly {
  z-index: 4;
  bottom: 17%;
  transform: translateX(-50%) scale(1);
  opacity: 1;
  filter: saturate(1.1) brightness(1.06);
}

#start-screen .menu-character-nabatick {
  left: 78%;
  transform: translateX(-50%) scale(0.58);
}

html[data-character="bifly"] #start-screen .menu-character-bifly,
html[data-character="nabatick"] #start-screen .menu-character-nabatick {
  left: 50%;
  z-index: 4;
  bottom: 17%;
  transform: translateX(-50%) scale(1);
  opacity: 1;
  filter: saturate(1.1) brightness(1.06);
  pointer-events: auto;
}

html[data-character="bifly"] #start-screen .menu-character-nabatick {
  left: 78%;
  z-index: 5;
  bottom: 11%;
  transform: translateX(-50%) scale(0.58);
  opacity: 0.68;
  filter: none;
  pointer-events: auto;
}

html[data-character="nabatick"] #start-screen .menu-character-bifly {
  left: 22%;
  z-index: 5;
  bottom: 11%;
  transform: translateX(-50%) scale(0.58);
  opacity: 0.68;
  filter: none;
  pointer-events: auto;
}

#start-screen .menu-character input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

#start-screen .menu-character .character-card {
  position: relative;
  width: 100%;
  min-height: clamp(250px, 39dvh, 460px);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  align-items: end;
  justify-items: center;
  border: 0;
  background: transparent;
  box-shadow: none;
  perspective: 680px;
  transform-style: preserve-3d;
  padding-bottom: clamp(10px, 1.4dvh, 18px);
}

#start-screen .menu-character .character-card::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: clamp(50px, 6dvh, 82px);
  width: 74%;
  height: 16%;
  border: 2px solid rgba(var(--character-rgb), 0.48);
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(var(--character-rgb), 0.28), rgba(var(--character-rgb), 0.08) 42%, transparent 72%);
  box-shadow: 0 0 28px rgba(var(--character-rgb), 0.25);
  opacity: 0.52;
  transform: translateX(-50%) perspective(520px) rotateX(70deg);
}

#start-screen .menu-character .character-card::after {
  display: none;
}

#start-screen .menu-character.is-character-reacting .character-card::after,
#start-screen .menu-character .character-card[data-reaction="tap"]::after,
#start-screen .menu-character .character-card[data-reaction="selected"]::after {
  opacity: 1;
  transform: translate(-50%, 0) scale(1) rotate(-2deg);
}

#start-screen .character-glow {
  position: absolute;
  left: 50%;
  bottom: clamp(86px, 10dvh, 126px);
  width: 80%;
  height: 58%;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(var(--character-rgb), 0.38), rgba(var(--character-rgb), 0.13) 36%, transparent 68%);
  opacity: 0.28;
  transform: translateX(-50%);
  filter: blur(5px);
}

#start-screen .menu-character img {
  position: relative;
  z-index: 1;
  grid-row: 1;
  justify-self: center;
  align-self: end;
  width: min(96%, clamp(230px, 26vw, 430px));
  max-height: clamp(226px, 37dvh, 440px);
  height: auto;
  object-fit: contain;
  transform-origin: center bottom;
  filter:
    drop-shadow(0 26px 28px rgba(0, 0, 0, 0.52))
    drop-shadow(0 0 24px rgba(var(--character-rgb), 0.34));
  transform: translateZ(34px) rotateX(2deg) rotateY(-3deg);
  animation: characterBreathe 5.6s ease-in-out infinite;
  transition: transform 220ms var(--kf-motion-ease-emphasis), filter 180ms ease;
  will-change: transform;
}

#start-screen .menu-character.is-character-live img {
  filter:
    drop-shadow(0 30px 32px rgba(0, 0, 0, 0.55))
    drop-shadow(0 0 30px rgba(var(--character-rgb), 0.44));
  animation: characterSelectedIdle 4.6s ease-in-out infinite;
}

#start-screen .menu-character.is-character-reacting img,
#start-screen .menu-character .character-card[data-reaction="tap"] img,
#start-screen .menu-character .character-card[data-reaction="selected"] img {
  animation: characterReactPop 900ms var(--kf-motion-ease-emphasis), characterSelectedIdle 4.6s ease-in-out infinite 900ms;
}

#start-screen .menu-character-nabatick img {
  width: min(93%, clamp(224px, 24vw, 408px));
}

#start-screen .menu-character-bifly img {
  margin-bottom: clamp(5px, 1dvh, 14px);
}

#start-screen .character-name-badge {
  position: relative;
  z-index: 6;
  grid-row: 2;
  max-width: 88%;
  overflow: hidden;
  margin-top: clamp(2px, 0.5dvh, 8px);
  padding: 0 12px 5px;
  color: rgb(var(--character-rgb));
  font-family: var(--display-font);
  font-size: clamp(34px, 4.4vw, 62px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(10px) scale(0.92);
  text-shadow:
    0 3px 0 rgba(3, 7, 20, 0.8),
    0 0 16px rgba(var(--character-rgb), 0.42),
    0 0 34px rgba(255, 216, 74, 0.16);
  pointer-events: none;
  transition:
    opacity 180ms ease,
    transform 220ms var(--kf-motion-ease-emphasis);
}

#start-screen .menu-character input:checked + .character-card .character-name-badge {
  opacity: 1;
  transform: translateY(0) scale(1);
}

#start-screen .menu-character input:checked + .character-card::before {
  opacity: 1;
  border-color: rgba(var(--character-rgb), 0.94);
  animation: characterOrbitPulse 2.8s ease-in-out infinite;
  box-shadow:
    0 0 26px rgba(var(--character-rgb), 0.5),
    0 0 62px rgba(var(--character-rgb), 0.25);
}

#start-screen .menu-character input:focus-visible + .character-card::before {
  border-color: rgba(255, 236, 126, 0.98);
  box-shadow:
    0 0 0 4px rgba(255, 216, 74, 0.18),
    0 0 34px rgba(255, 216, 74, 0.46);
}

#start-screen .menu-character .character-copy {
  display: none;
}

#start-screen .menu-character .character-copy strong {
  color: rgb(var(--character-rgb));
  font-family: var(--display-font);
  font-size: clamp(25px, 3vw, 44px);
  font-weight: 900;
  line-height: 1;
  text-shadow:
    0 3px 0 rgba(0, 0, 0, 0.48),
    0 0 18px rgba(var(--character-rgb), 0.5);
}

#start-screen .menu-character .character-copy small {
  color: #d9e8ff;
  font-size: clamp(11px, 1.2vw, 14px);
  font-weight: 900;
  line-height: 1.1;
}

#start-screen .menu-character .character-check {
  display: none;
}

#start-screen .menu-character .character-check .ui-icon {
  width: 62%;
  height: 62%;
  stroke-width: 3;
}

#start-screen .menu-character input:checked + .character-card .character-check {
  opacity: 1;
  transform: scale(1) rotate(-8deg);
}

.world-ribbon {
  position: absolute;
  inset-inline: clamp(14px, 3vw, 44px);
  bottom: clamp(12px, 2dvh, 22px);
  z-index: 6;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  pointer-events: none;
}

.world-ribbon span {
  min-width: 0;
  overflow: hidden;
  padding: 5px 6px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 10px;
  background: rgba(2, 7, 21, 0.58);
  color: #eaf7ff;
  font-size: clamp(10px, 1.15vw, 13px);
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-progress-card {
  grid-area: progress;
  position: relative;
  z-index: 6;
  align-self: center;
  justify-self: stretch;
  min-width: 0;
  display: grid;
  gap: 9px;
  padding: clamp(13px, 1.55vw, 18px);
  border-radius: 20px;
  text-align: right;
}

.home-progress-card:focus {
  outline: none;
}

.home-progress-card span:not(.menu-panel-title) {
  color: #dce8ff;
  font-size: clamp(13px, 1.2vw, 16px);
  font-weight: 900;
  line-height: 1.2;
}

.home-progress-card span strong {
  color: var(--menu-cyan);
  font-family: var(--display-font);
  font-size: clamp(20px, 2.3vw, 30px);
}

.home-progress-card p {
  margin: 0;
  color: #c9d9ef;
  font-size: clamp(12px, 1vw, 14px);
  font-weight: 800;
  line-height: 1.3;
}

.menu-text-button {
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid rgba(255, 216, 74, 0.46);
  border-radius: 13px;
  background: rgba(255, 216, 74, 0.1);
  color: #ffe784;
  cursor: pointer;
  font-weight: 900;
}

.home-pregame-summary {
  grid-area: summary;
  position: relative;
  z-index: 6;
  align-self: center;
  justify-self: stretch;
  display: grid;
  gap: 8px;
}

.menu-control-button {
  min-width: 0;
  min-height: 58px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  gap: 0 9px;
  padding: 8px 10px;
  border-radius: 17px;
  color: #edf6ff;
  cursor: pointer;
  text-align: right;
}

.menu-control-button > span {
  grid-row: 1 / 3;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: rgba(88, 232, 255, 0.14);
  color: var(--menu-cyan);
}

.menu-control-button strong {
  color: #f8fbff;
  font-size: clamp(15px, 1.45vw, 20px);
  font-weight: 900;
  line-height: 1.1;
}

.menu-cta {
  grid-area: cta;
  position: relative;
  z-index: 7;
  align-self: center;
  justify-self: center;
  width: min(680px, 100%);
  display: grid;
  justify-items: center;
  gap: 8px;
}

.arcade-play-button {
  position: relative;
  width: min(100%, 640px);
  min-height: clamp(86px, 10dvh, 112px);
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 3px solid rgba(255, 247, 178, 0.92);
  border-radius: 24px 20px 30px 20px;
  clip-path: polygon(5% 0, 95% 0, 100% 18%, 100% 82%, 95% 100%, 5% 100%, 0 82%, 0 18%);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.82), transparent 25%),
    linear-gradient(180deg, #fff45d 0%, var(--menu-gold) 38%, var(--menu-gold-deep) 100%);
  color: #6c2800;
  cursor: pointer;
  font-family: var(--display-font);
  font-size: clamp(42px, 5.1vw, 68px);
  font-weight: 900;
  line-height: 1;
  text-shadow: 0 2px rgba(255, 255, 255, 0.48);
  box-shadow:
    0 18px 0 #9e5700,
    0 30px 42px rgba(0, 0, 0, 0.42),
    0 0 44px rgba(255, 216, 74, 0.48),
    inset 0 -8px rgba(171, 87, 0, 0.18);
  transition:
    transform 120ms ease,
    box-shadow 120ms ease,
    filter 120ms ease;
}

.arcade-play-label {
  position: relative;
  z-index: 1;
  display: block;
  max-width: 100%;
  overflow: hidden;
  line-height: 1.24;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.arcade-play-button::before,
.arcade-play-button::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.arcade-play-button::before {
  inset: 8px 13px auto 13px;
  height: 30%;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0));
  opacity: 0.84;
}

.arcade-play-button::after {
  top: -40%;
  right: -28%;
  width: 28%;
  height: 180%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.42), transparent);
  transform: rotate(18deg);
  opacity: 0;
  transition: opacity 120ms ease, right 360ms ease;
}

.arcade-play-button:hover,
.arcade-play-button:focus-visible {
  outline: none;
  filter: brightness(1.07) saturate(1.08);
  transform: translateY(-3px);
  box-shadow:
    0 21px 0 #9e5700,
    0 34px 48px rgba(0, 0, 0, 0.44),
    0 0 58px rgba(255, 216, 74, 0.62),
    0 0 0 5px rgba(255, 236, 126, 0.17),
    inset 0 -8px rgba(171, 87, 0, 0.18);
}

.arcade-play-button:hover::after,
.arcade-play-button:focus-visible::after {
  right: 104%;
  opacity: 1;
}

.arcade-play-button:active,
.arcade-play-button.home-focus-pulse {
  transform: translateY(7px) scale(0.992);
  box-shadow:
    0 9px 0 #9e5700,
    0 15px 28px rgba(0, 0, 0, 0.44),
    0 0 36px rgba(255, 216, 74, 0.5),
    inset 0 -8px rgba(171, 87, 0, 0.18);
}

.arcade-play-button:disabled,
.arcade-play-button[aria-disabled="true"],
.arcade-play-button[aria-busy="true"],
.arcade-play-button.is-loading {
  cursor: wait;
  filter: saturate(0.65) brightness(0.82);
  opacity: 0.78;
}

.arcade-play-button[aria-busy="true"]::after,
.arcade-play-button.is-loading::after {
  right: 104%;
  opacity: 0.7;
  animation: buttonSheen 1.1s ease-in-out infinite;
}

#menu-selection-summary {
  min-height: 27px;
  max-width: 100%;
  margin: 0;
  padding: 4px 17px 6px;
  border: 1px solid rgba(123, 227, 255, 0.28);
  border-radius: 999px;
  background: rgba(3, 8, 28, 0.7);
  color: #e8f5ff;
  font-size: clamp(13px, 1.28vw, 18px);
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
  box-shadow: 0 0 22px rgba(88, 232, 255, 0.12);
}

#start-screen .form-note {
  min-height: 18px;
  margin: 0;
  color: #ff8795;
  font-size: 13px;
  font-weight: 800;
  text-align: center;
}

#start-screen .form-note:empty {
  min-height: 0;
}

.home-bottom-nav {
  grid-area: nav;
  position: relative;
  z-index: 6;
  align-self: end;
  justify-self: center;
  width: min(760px, 100%);
  min-height: 58px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.home-nav-button {
  min-width: 0;
  min-height: 56px;
  display: grid;
  grid-template-columns: auto minmax(0, auto);
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 7px 10px;
  border-radius: 17px;
  color: #dce9ff;
  cursor: pointer;
}

.home-nav-button[aria-current="page"] {
  border-color: rgba(255, 216, 74, 0.7);
  color: #fff3a0;
  background:
    linear-gradient(180deg, rgba(255, 216, 74, 0.18), rgba(88, 232, 255, 0.06)),
    var(--menu-panel);
}

.home-nav-button strong {
  font-size: clamp(13px, 1.35vw, 17px);
  font-weight: 900;
}

.home-player-card:hover,
.home-player-card:focus-visible,
.home-rank-button:hover,
.home-rank-button:focus-visible,
.menu-icon-button:hover,
.menu-icon-button:focus-visible,
.menu-control-button:hover,
.menu-control-button:focus-visible,
.home-nav-button:hover,
.home-nav-button:focus-visible,
.menu-text-button:hover,
.menu-text-button:focus-visible,
.sheet-close:hover,
.sheet-close:focus-visible,
.menu-save-button:hover,
.menu-save-button:focus-visible {
  outline: none;
  border-color: rgba(255, 232, 115, 0.88);
  box-shadow:
    0 0 0 3px rgba(255, 216, 74, 0.17),
    0 18px 46px rgba(0, 0, 0, 0.36),
    inset 0 0 24px rgba(255, 216, 74, 0.1);
}

.home-focus-pulse {
  animation: homeFocusPulse 520ms var(--kf-motion-ease-emphasis);
}

.hero-gallery[hidden] {
  display: none;
}

.hero-gallery {
  --hero-accent: var(--menu-cyan);
  --hero-secondary: var(--menu-magenta);
  --hero-glow: rgba(88, 232, 255, 0.58);
  position: absolute;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: stretch;
  overflow: hidden;
  color: var(--menu-ink);
  direction: rtl;
  touch-action: none;
  background:
    linear-gradient(90deg, rgba(4, 7, 24, 0.96), rgba(8, 20, 39, 0.9) 46%, rgba(16, 8, 42, 0.96)),
    radial-gradient(ellipse at 50% 42%, var(--hero-glow), transparent 54%);
}

.hero-gallery[data-gallery-character="nabatick"] {
  --hero-accent: var(--menu-lime);
  --hero-secondary: var(--menu-gold);
  --hero-glow: rgba(164, 245, 45, 0.58);
}

.hero-gallery-shell {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: clamp(8px, 1.2vw, 14px);
  padding:
    max(12px, env(safe-area-inset-top))
    max(14px, env(safe-area-inset-right))
    max(12px, env(safe-area-inset-bottom))
    max(14px, env(safe-area-inset-left));
  overflow: hidden;
  animation: heroGalleryEnter 360ms var(--kf-motion-ease-emphasis);
}

.hero-gallery-ambient,
.hero-gallery-card-light,
.hero-gallery-orbit,
.hero-gallery-enemy {
  position: absolute;
  pointer-events: none;
}

.hero-gallery-ambient {
  inset: 0;
  overflow: hidden;
}

.hero-gallery-ambient::before {
  content: "";
  position: absolute;
  inset-inline: 8%;
  bottom: 8%;
  height: 42%;
  background:
    linear-gradient(90deg, transparent 0 54px, rgba(88, 232, 255, 0.26) 56px 59px, transparent 61px),
    linear-gradient(0deg, transparent 0 54px, rgba(255, 216, 74, 0.16) 56px 59px, transparent 61px);
  background-size: 92px 92px;
  opacity: 0.72;
  transform: perspective(720px) rotateX(64deg);
  transform-origin: center bottom;
  mask-image: linear-gradient(to top, #000 0 55%, transparent 100%);
}

.hero-gallery-orbit {
  height: 3px;
  border-radius: 99px;
  background: linear-gradient(90deg, transparent, var(--hero-accent), transparent);
  opacity: 0.64;
  filter: drop-shadow(0 0 12px var(--hero-glow));
}

.orbit-a {
  width: 34%;
  right: 15%;
  top: 34%;
  transform: rotate(-12deg);
}

.orbit-b {
  width: 26%;
  left: 16%;
  top: 55%;
  transform: rotate(15deg);
}

.orbit-c {
  width: 30%;
  right: 36%;
  bottom: 20%;
  transform: rotate(2deg);
}

.hero-gallery-enemy {
  width: clamp(66px, 8.5vw, 128px);
  opacity: 0.46;
  filter: drop-shadow(0 0 18px rgba(143, 101, 255, 0.42));
  animation: menuFloat 7s ease-in-out infinite;
}

.hero-gallery-enemy.enemy-left {
  right: clamp(18px, 9vw, 160px);
  top: 40%;
}

.hero-gallery-enemy.enemy-right {
  left: clamp(18px, 9vw, 160px);
  top: 28%;
  animation-delay: -2.4s;
}

.hero-gallery-header,
.hero-gallery-actions {
  position: relative;
  z-index: 2;
  display: grid;
  align-items: center;
}

.hero-gallery-header {
  grid-template-columns: auto minmax(0, 1fr) minmax(150px, 260px);
  gap: 10px;
}

.hero-gallery-kicker,
.hero-gallery-status,
.hero-gallery-asset-note,
.hero-gallery-meta small {
  color: #dce9ff;
  font-size: clamp(11px, 1.1vw, 13px);
  font-weight: 900;
  line-height: 1.15;
}

.hero-gallery-title,
.hero-gallery-header h2,
.hero-gallery-copy h3 {
  margin: 0;
  color: #ffffff;
  font-family: var(--display-font);
  font-weight: 900;
  letter-spacing: 0;
}

.hero-gallery-header h2 {
  font-size: clamp(24px, 3vw, 42px);
  line-height: 1.14;
}

.hero-gallery-status {
  min-width: 0;
  justify-self: end;
  padding: 8px 12px;
  border: 1px solid rgba(123, 227, 255, 0.28);
  border-radius: 14px;
  background: rgba(3, 8, 23, 0.7);
  text-align: center;
}

.hero-gallery-icon-button,
.hero-gallery-nav,
.hero-gallery-select-button,
.hero-gallery-home-button {
  border: 1px solid var(--menu-line);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.035)),
    rgba(5, 11, 28, 0.82);
  color: #f6fbff;
  cursor: pointer;
  box-shadow:
    0 16px 34px rgba(0, 0, 0, 0.36),
    inset 0 0 24px rgba(88, 232, 255, 0.07);
}

.hero-gallery-icon-button {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 16px;
}

.hero-gallery-icon-button .ui-icon,
.hero-gallery-nav .ui-icon,
.hero-gallery-select-button .ui-icon {
  width: 1.45em;
  height: 1.45em;
}

.hero-gallery-stage {
  position: relative;
  z-index: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(52px, 0.12fr) minmax(0, 760px) minmax(52px, 0.12fr);
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 1.8vw, 20px);
}

.hero-gallery-card {
  position: relative;
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(220px, 1fr) auto auto auto;
  justify-items: center;
  align-items: end;
  padding: clamp(14px, 2vw, 24px);
  border: 1px solid rgba(123, 227, 255, 0.24);
  border-radius: clamp(22px, 3vw, 34px);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.025)),
    rgba(3, 8, 24, 0.62);
  box-shadow:
    0 28px 70px rgba(0, 0, 0, 0.36),
    inset 0 0 60px rgba(88, 232, 255, 0.07);
  overflow: hidden;
}

.hero-gallery-card::after {
  content: attr(data-character-line);
  position: absolute;
  z-index: 5;
  top: clamp(18px, 4dvh, 38px);
  right: clamp(16px, 5vw, 64px);
  max-width: min(72%, 360px);
  padding: 8px 14px 9px;
  border: 1px solid color-mix(in srgb, var(--hero-accent) 68%, white 16%);
  border-radius: 18px 18px 5px 18px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.035)),
    rgba(2, 7, 20, 0.88);
  color: #f8fbff;
  font-size: clamp(13px, 1.3vw, 17px);
  font-weight: 900;
  line-height: 1.12;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px) scale(0.94) rotate(1deg);
  transition: opacity 160ms ease, transform 180ms var(--kf-motion-ease-emphasis);
  box-shadow:
    0 16px 30px rgba(0, 0, 0, 0.36),
    0 0 30px var(--hero-glow);
}

.hero-gallery-card.is-reacting::after,
.hero-gallery-card.is-confirming::after {
  opacity: 1;
  transform: translateY(0) scale(1) rotate(1deg);
}

.hero-gallery-card-light {
  inset: 12% 10% 24%;
  border-radius: 42% 58% 50% 50%;
  background: radial-gradient(ellipse at center, var(--hero-glow), transparent 66%);
  opacity: 0.78;
  filter: blur(4px);
}

.hero-gallery-art-button {
  position: relative;
  z-index: 2;
  min-width: 0;
  width: min(100%, 540px);
  height: min(44dvh, 440px);
  min-height: 220px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  touch-action: manipulation;
}

.hero-animation-mount,
.hero-animation-rig,
.hero-animation-sheet {
  position: relative;
  width: min(100%, 470px);
  height: 100%;
  display: grid;
  place-items: end center;
}

.hero-animation-image,
.hero-animation-layer {
  display: block;
  width: min(100%, 440px);
  max-height: 100%;
  height: auto;
  object-fit: contain;
  object-position: center bottom;
  filter:
    drop-shadow(0 30px 30px rgba(0, 0, 0, 0.48))
    drop-shadow(0 0 28px var(--hero-glow));
  transform-origin: center bottom;
  animation: heroIdleHook 5.8s ease-in-out infinite;
}

.hero-animation-sheet {
  width: min(100%, 440px);
  background-repeat: no-repeat;
  background-size: calc(var(--frame-count, 1) * 100%) 100%;
  background-position: calc(var(--frame-index, 0) * -100%) center;
}

.hero-animation-rig {
  isolation: isolate;
}

.hero-animation-layer {
  position: absolute;
  inset: auto 0 0;
  margin: auto;
}

.hero-gallery-copy {
  position: relative;
  z-index: 3;
  display: grid;
  justify-items: center;
  gap: 5px;
  text-align: center;
}

.hero-gallery-copy h3 {
  color: var(--hero-accent);
  font-size: clamp(42px, 5.2vw, 74px);
  line-height: 1.18;
  text-shadow:
    0 4px 0 rgba(0, 0, 0, 0.42),
    0 0 24px var(--hero-glow);
}

.hero-gallery-copy p {
  max-width: 620px;
  margin: 0;
  color: #edf6ff;
  font-size: clamp(14px, 1.35vw, 18px);
  font-weight: 900;
  line-height: 1.25;
}

.hero-gallery-meta {
  position: relative;
  z-index: 3;
  width: min(100%, 620px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.hero-gallery-meta span {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 8px 12px;
  border: 1px solid rgba(123, 227, 255, 0.2);
  border-radius: 14px;
  background: rgba(2, 6, 18, 0.62);
}

.hero-gallery-meta strong {
  min-width: 0;
  overflow: hidden;
  color: #ffffff;
  font-size: clamp(13px, 1.35vw, 16px);
  font-weight: 900;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.hero-gallery-asset-note {
  position: relative;
  z-index: 3;
  margin: 10px 0 0;
  text-align: center;
}

.hero-gallery-nav {
  width: clamp(50px, 5vw, 66px);
  height: clamp(64px, 9dvh, 92px);
  display: grid;
  place-items: center;
  border-radius: 18px;
}

.hero-gallery-next .ui-icon {
  transform: rotate(180deg);
}

.hero-gallery-actions {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.hero-gallery-select-button,
.hero-gallery-home-button {
  min-height: 58px;
  border-radius: 18px;
  font-weight: 900;
}

.hero-gallery-select-button {
  display: inline-grid;
  grid-template-columns: auto minmax(0, auto);
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 clamp(20px, 4vw, 42px);
  border-color: rgba(255, 232, 115, 0.74);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.24), transparent 28%),
    linear-gradient(180deg, #fff45d, #ffd84a 42%, #f38b00);
  color: #5b2600;
  box-shadow:
    0 12px 0 #9e5700,
    0 24px 36px rgba(0, 0, 0, 0.42),
    0 0 34px rgba(255, 216, 74, 0.42);
}

.hero-gallery-home-button {
  padding: 0 18px;
}

.hero-gallery-select-button[aria-pressed="true"] {
  border-color: rgba(176, 255, 73, 0.92);
  box-shadow:
    0 12px 0 #668d00,
    0 24px 36px rgba(0, 0, 0, 0.42),
    0 0 38px var(--hero-glow);
}

.hero-gallery-icon-button:hover,
.hero-gallery-icon-button:focus-visible,
.hero-gallery-nav:hover,
.hero-gallery-nav:focus-visible,
.hero-gallery-home-button:hover,
.hero-gallery-home-button:focus-visible,
.hero-gallery-art-button:focus-visible {
  outline: none;
  border-color: rgba(255, 232, 115, 0.88);
  box-shadow:
    0 0 0 4px rgba(255, 216, 74, 0.16),
    0 18px 46px rgba(0, 0, 0, 0.4),
    inset 0 0 22px rgba(255, 216, 74, 0.12);
}

.hero-gallery-select-button:hover,
.hero-gallery-select-button:focus-visible {
  outline: none;
  filter: brightness(1.06) saturate(1.06);
  transform: translateY(-2px);
}

.hero-gallery-select-button:active,
.hero-gallery-home-button:active,
.hero-gallery-nav:active,
.hero-gallery-icon-button:active {
  transform: translateY(3px);
}

.hero-gallery-card.is-reacting .hero-animation-image,
.hero-gallery-card.is-reacting .hero-animation-sheet,
.hero-gallery-card.is-reacting .hero-animation-rig {
  animation: heroTapReaction 420ms var(--kf-motion-ease-emphasis);
}

.hero-gallery-card.is-confirming {
  border-color: rgba(176, 255, 73, 0.78);
  box-shadow:
    0 28px 70px rgba(0, 0, 0, 0.36),
    0 0 0 4px rgba(176, 255, 73, 0.13),
    0 0 54px var(--hero-glow),
    inset 0 0 60px rgba(176, 255, 73, 0.08);
}

.menu-sheet {
  position: fixed;
  inset: 0;
  z-index: 190;
  display: grid;
  place-items: center;
  padding:
    var(--menu-safe-top)
    var(--menu-safe-right)
    var(--menu-safe-bottom)
    var(--menu-safe-left);
  background: rgba(1, 3, 13, 0.64);
  backdrop-filter: blur(10px);
  direction: rtl;
}

.menu-sheet-inner {
  position: relative;
  width: min(650px, 100%);
  max-height: calc(100dvh - var(--menu-safe-top) - var(--menu-safe-bottom));
  display: grid;
  gap: 16px;
  overflow: auto;
  padding: clamp(18px, 3vw, 30px);
  border-radius: 24px;
}

#start-screen #difficulty-panel .menu-sheet-inner {
  width: min(900px, 100%);
}

#start-screen #difficulty-panel .difficulty-options strong {
  white-space: nowrap;
}

.menu-sheet h2 {
  margin: 0;
  color: var(--menu-gold);
  font-family: var(--display-font);
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1;
  text-align: center;
}

.sheet-close {
  position: absolute;
  top: 12px;
  left: 12px;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(123, 227, 255, 0.38);
  border-radius: 12px;
  background: rgba(2, 6, 20, 0.72);
  color: #f3f8ff;
  cursor: pointer;
}

#start-screen .mode-field,
#start-screen .difficulty-field {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  border: 0;
}

#start-screen .mode-field legend,
#start-screen .difficulty-field legend {
  padding: 0;
  color: #c8d8f1;
  font-size: 14px;
  font-weight: 800;
  text-align: center;
}

#start-screen .mode-options,
#start-screen .menu-sheet .difficulty-options {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

#start-screen .mode-options input,
#start-screen .difficulty-options input {
  position: absolute;
  opacity: 0;
}

#start-screen .mode-options span,
#start-screen .menu-sheet .difficulty-options span {
  min-height: 70px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  border: 1px solid rgba(123, 227, 255, 0.27);
  border-radius: 16px;
  background: rgba(7, 15, 42, 0.72);
  color: #edf6ff;
  cursor: pointer;
  text-align: right;
}

#start-screen .mode-options strong,
#start-screen .menu-sheet .difficulty-options strong {
  color: #f8fbff;
  font-size: 20px;
  font-weight: 900;
}

#start-screen .mode-options small,
#start-screen .menu-sheet .difficulty-options small {
  grid-column: 1 / -1;
  color: #aebbd0;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.25;
}

#start-screen .menu-sheet .difficulty-options em {
  color: var(--menu-gold);
  font-family: var(--display-font);
  font-size: 24px;
  font-style: normal;
  font-weight: 900;
}

#start-screen .mode-options input:checked + span,
#start-screen .menu-sheet .difficulty-options input:checked + span {
  border-color: rgba(255, 216, 74, 0.78);
  background: linear-gradient(180deg, rgba(255, 216, 74, 0.18), rgba(88, 232, 255, 0.06));
  box-shadow: inset 0 0 24px rgba(255, 216, 74, 0.08), 0 0 22px rgba(255, 216, 74, 0.12);
}

#start-screen .difficulty-locked span {
  cursor: not-allowed;
  opacity: 0.45;
  filter: grayscale(0.35);
}

#start-screen .difficulty-locked span::after {
  content: "נעול";
  justify-self: end;
  color: #ffd99a;
  font-size: 12px;
  font-weight: 900;
}

.settings-sheet label {
  color: #dbe8ff;
  font-size: 15px;
  font-weight: 900;
}

.settings-control-mode {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: 0;
}

.settings-control-mode legend {
  grid-column: 1 / -1;
  margin-block-end: 2px;
  color: #dbe8ff;
  font-size: 15px;
  font-weight: 900;
}

.settings-control-mode label,
.settings-language label,
.settings-operation-mode label {
  min-width: 0;
}

.settings-control-mode input,
.settings-language input,
.settings-operation-mode input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
  pointer-events: none;
}

.settings-operation-mode {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 12px;
  border: 1px solid rgba(255, 216, 74, 0.34);
  border-radius: 16px;
  background:
    radial-gradient(circle at 86% 4%, rgba(255, 216, 74, 0.13), transparent 38%),
    rgba(2, 7, 22, 0.68);
}

.settings-operation-mode legend {
  padding-inline: 5px;
  color: #fff6c6;
  font-size: 16px;
  font-weight: 950;
}

.settings-operation-mode > p {
  margin: 0;
  color: #c9dcf7;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.35;
}

.operation-mode-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.settings-operation-mode label > span {
  display: grid;
  min-height: 82px;
  align-content: center;
  gap: 5px;
  padding: 10px 9px;
  border: 1px solid rgba(123, 227, 255, 0.34);
  border-radius: 13px;
  background: rgba(2, 6, 22, 0.78);
  color: #dbe8ff;
  text-align: center;
  cursor: pointer;
}

.settings-operation-mode label strong {
  color: #f8fbff;
  font-size: 16px;
  font-weight: 950;
}

.settings-operation-mode label small {
  color: #b8cbe8;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.25;
}

.settings-operation-mode input:focus-visible + span {
  outline: 3px solid rgba(255, 216, 74, 0.38);
  outline-offset: 2px;
}

.settings-operation-mode input:checked + span {
  border-color: #ffd84a;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.2), transparent 42%),
    linear-gradient(180deg, rgba(255, 216, 74, 0.2), rgba(88, 232, 255, 0.09));
  box-shadow: 0 0 0 1px rgba(255, 216, 74, 0.16), 0 9px 18px rgba(0, 0, 0, 0.24);
}

.settings-operation-mode input:checked + span strong {
  color: #fff1a8;
}

.settings-game-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(123, 227, 255, 0.24);
  border-radius: 16px;
  background: rgba(2, 7, 22, 0.58);
}

.settings-game-card > strong {
  color: #f8fbff;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.12;
}

#settings-selection-summary {
  margin: 0;
  color: #dbe8ff;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.2;
}

.settings-sheet .home-pregame-summary {
  grid-area: auto;
  align-self: stretch;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.settings-sheet .menu-control-button {
  min-height: 58px;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto;
  justify-items: center;
  gap: 3px;
  padding: 8px 6px;
  border-radius: 14px;
  text-align: center;
}

.settings-sheet .menu-control-button > span {
  grid-row: auto;
}

.settings-sheet .pregame-open-button {
  justify-self: stretch;
  min-height: 44px;
}

.settings-language {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: 0;
}

.settings-language legend {
  grid-column: 1 / -1;
  margin-block-end: 2px;
  color: #dbe8ff;
  font-size: 15px;
  font-weight: 900;
}

.settings-control-mode span,
.settings-language span {
  display: grid;
  min-height: 46px;
  place-items: center;
  border: 1px solid rgba(123, 227, 255, 0.38);
  border-radius: 12px;
  background: rgba(2, 6, 22, 0.7);
  color: #dbe8ff;
  font-size: 16px;
  font-weight: 900;
}

.settings-control-mode input:focus-visible + span,
.settings-language input:focus-visible + span {
  outline: 3px solid rgba(255, 216, 74, 0.36);
  outline-offset: 2px;
}

.settings-control-mode input:checked + span,
.settings-language input:checked + span {
  border-color: rgba(255, 216, 74, 0.78);
  background: linear-gradient(180deg, rgba(255, 216, 74, 0.18), rgba(88, 232, 255, 0.08));
  color: #fff6c6;
}

#player-name-input {
  width: 100%;
  min-height: 52px;
  padding: 0 14px;
  border: 1px solid rgba(123, 227, 255, 0.44);
  border-radius: 14px;
  background: rgba(2, 6, 22, 0.82);
  color: #f8fbff;
  font-size: 20px;
  font-weight: 800;
  text-align: start;
}

.settings-nickname-card {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid rgba(123, 227, 255, 0.3);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(9, 27, 58, 0.82), rgba(2, 7, 24, 0.9));
  box-shadow: inset 0 0 20px rgba(88, 232, 255, 0.05);
}

.settings-nickname-card.has-error {
  border-color: rgba(255, 114, 132, 0.76);
  box-shadow:
    inset 0 0 20px rgba(255, 114, 132, 0.07),
    0 0 0 3px rgba(255, 114, 132, 0.08);
}

.settings-nickname-hint,
.settings-name-error {
  margin: 0;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.4;
}

.settings-nickname-hint {
  color: #b9d9ee;
}

.settings-name-error {
  min-height: 0;
  color: #ff9aa8;
}

.settings-name-error:empty {
  display: none;
}

.arcade-play-button.needs-nickname .arcade-play-label {
  max-width: min(88%, 540px);
  font-size: clamp(26px, 4vw, 48px);
  line-height: 1.08;
  white-space: normal;
  text-align: center;
}

#player-name-input:focus {
  outline: none;
  border-color: rgba(255, 216, 74, 0.88);
  box-shadow: 0 0 0 4px rgba(255, 216, 74, 0.15);
}

.settings-privacy-link {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  color: #bceeff;
  font-size: 14px;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-color: rgba(188, 238, 255, 0.52);
  text-underline-offset: 4px;
}

.settings-privacy-link:hover,
.settings-privacy-link:focus-visible {
  color: #fff6c6;
  outline: 2px solid rgba(255, 216, 74, 0.6);
  outline-offset: 2px;
}

.menu-save-button {
  min-height: 48px;
  border: 1px solid rgba(164, 245, 45, 0.52);
  border-radius: 14px;
  background: rgba(164, 245, 45, 0.13);
  color: #dfff8b;
  cursor: pointer;
  font-weight: 900;
}

.settings-nickname-card .menu-save-button {
  width: 100%;
  min-height: 52px;
  margin-top: 2px;
  border-color: rgba(190, 255, 82, 0.68);
  background:
    linear-gradient(180deg, rgba(190, 255, 82, 0.24), rgba(84, 211, 107, 0.1)),
    rgba(8, 25, 35, 0.94);
  box-shadow:
    0 8px 18px rgba(0, 0, 0, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

@keyframes menuFloat {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -10px; }
}

@keyframes particleDrift {
  0%, 100% { opacity: 0.3; transform: translate3d(0, 0, 0) scaleX(0.84); }
  50% { opacity: 0.86; transform: translate3d(16px, -18px, 0) scaleX(1.1); }
}

@keyframes characterBreathe {
  0%, 100% { transform: translate3d(0, 0, 34px) rotateX(2deg) rotateY(-3deg) scaleY(1); }
  50% { transform: translate3d(0, -6px, 42px) rotateX(0deg) rotateY(3deg) scaleY(1.012); }
}

@keyframes characterSelectedIdle {
  0%, 100% { transform: translate3d(0, 0, 38px) rotateX(2deg) rotateY(-4deg) rotateZ(0deg) scale(1); }
  22% { transform: translate3d(3px, -7px, 48px) rotateX(0deg) rotateY(5deg) rotateZ(1deg) scale(1.018, 0.992); }
  44% { transform: translate3d(-2px, -3px, 42px) rotateX(3deg) rotateY(-7deg) rotateZ(-1.2deg) scale(0.992, 1.018); }
  68% { transform: translate3d(2px, -10px, 50px) rotateX(-2deg) rotateY(4deg) rotateZ(0.7deg) scale(1.012); }
}

@keyframes characterReactPop {
  0%, 100% { transform: translate3d(0, 0, 34px) rotateX(2deg) rotateY(-3deg) scale(1); }
  18% { transform: translate3d(0, 9px, 28px) rotateX(8deg) rotateY(10deg) scale(0.955, 1.05); }
  45% { transform: translate3d(0, -16px, 54px) rotateX(-5deg) rotateY(-12deg) scale(1.055, 0.98); }
  72% { transform: translate3d(-3px, -6px, 46px) rotateX(1deg) rotateY(8deg) scale(0.995, 1.012); }
}

@keyframes characterOrbitPulse {
  0%, 100% { opacity: 0.84; transform: translateX(-50%) perspective(520px) rotateX(70deg) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) perspective(520px) rotateX(70deg) scale(1.08, 1.16); }
}

@keyframes buttonSheen {
  0% { right: -28%; }
  100% { right: 104%; }
}

@keyframes homeFocusPulse {
  0% { filter: brightness(1); }
  45% { filter: brightness(1.18) saturate(1.14); }
  100% { filter: brightness(1); }
}

@keyframes heroGalleryEnter {
  0% { opacity: 0; transform: translateY(18px) scale(0.985); }
  100% { opacity: 1; transform: none; }
}

@keyframes heroIdleHook {
  0%, 100% { transform: translate3d(0, 0, 26px) rotateX(2deg) rotateY(-2deg) scale(1); }
  50% { transform: translate3d(0, -5px, 34px) rotateX(0deg) rotateY(3deg) scale(1.012); }
}

@keyframes heroTapReaction {
  0%, 100% { transform: translate3d(0, 0, 26px) rotateX(2deg) rotateY(-2deg) scale(1); }
  42% { transform: translate3d(0, 8px, 20px) rotateX(8deg) rotateY(8deg) scale(0.965, 1.035); }
  72% { transform: translate3d(0, -6px, 38px) rotateX(-5deg) rotateY(-8deg) scale(1.025, 0.985); }
}

@media (max-width: 1180px) {
  .main-menu {
    grid-template-columns: minmax(190px, 0.68fr) minmax(420px, 1.38fr) minmax(210px, 0.72fr);
  }
}

@media (max-width: 760px) and (orientation: portrait) {
  #start-screen {
    --menu-safe-top: max(8px, env(safe-area-inset-top));
    --menu-safe-right: max(8px, env(safe-area-inset-right));
    --menu-safe-bottom: max(8px, env(safe-area-inset-bottom));
    --menu-safe-left: max(8px, env(safe-area-inset-left));
  }

  #start-screen::before {
    opacity: 0.34;
    background-position: center top;
  }

  .main-menu {
    grid-template-columns: 1fr;
    grid-template-rows:
      clamp(46px, 6.2dvh, 54px)
      clamp(58px, 8dvh, 76px)
      minmax(330px, 1fr)
      clamp(92px, 11.6dvh, 108px)
      clamp(52px, 7dvh, 60px);
    grid-template-areas:
      "top"
      "logo"
      "hero"
      "cta"
      "nav";
    gap: clamp(3px, 0.55dvh, 6px);
  }

  .home-player-bar {
    gap: 5px;
  }

  .home-player-card,
  .menu-best-card,
  .home-rank-button {
    min-height: 46px;
    border-radius: 14px;
  }

  .home-player-card {
    flex: 1 1 auto;
    max-width: none;
    padding: 5px 12px;
  }

  .home-player-card strong {
    font-size: clamp(13px, 4vw, 17px);
  }

  .home-mini-label,
  .menu-best-copy span,
  .menu-panel-title,
  .menu-control-button small {
    font-size: 9px;
  }

  .menu-best-card {
    flex: 0 0 72px;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 0;
    padding: 4px 6px;
  }

  .menu-best-icon {
    display: none;
  }

  .menu-best-copy strong {
    font-size: clamp(15px, 4.45vw, 20px);
  }

  .home-rank-button {
    display: none;
  }

  .home-rank-icon {
    display: none;
  }

  .home-rank-button strong {
    font-size: clamp(18px, 5.5vw, 24px);
  }

  .menu-actions {
    flex: 0 0 87px;
    gap: 5px;
  }

  .menu-icon-button {
    width: 41px;
    height: 41px;
    border-radius: 12px;
  }

  #start-screen .menu-logo-title {
    width: clamp(166px, 50vw, 238px);
    height: clamp(58px, 8dvh, 76px);
  }

  .menu-logo p {
    min-height: 20px;
    margin-top: -8px;
    padding: 2px 8px 3px;
    font-size: clamp(10px, 2.8vw, 12px);
  }

  .home-hero-scene {
    border-radius: 22px;
    align-self: stretch;
    height: 100%;
    max-height: none;
  }

  .menu-character-options {
    min-height: 300px;
  }

  #start-screen .menu-character {
    width: min(78%, 330px);
    min-width: 160px;
  }

  #start-screen .menu-character .character-card {
    min-height: clamp(252px, 39dvh, 380px);
  }

  #start-screen .menu-character img,
  #start-screen .menu-character-nabatick img {
    width: min(96%, clamp(190px, 58vw, 292px));
    max-height: clamp(190px, 36dvh, 292px);
  }

  #start-screen .character-name-badge {
    bottom: auto;
    margin-top: clamp(2px, 0.5dvh, 7px);
    font-size: clamp(31px, 8.6vw, 43px);
  }

  html[data-character="bifly"] #start-screen .menu-character-nabatick {
    left: 86%;
    transform: translateX(-50%) scale(0.5);
  }

  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    left: 14%;
    transform: translateX(-50%) scale(0.5);
  }

  #start-screen .menu-character .character-card::before {
    bottom: clamp(39px, 5dvh, 55px);
  }

  #start-screen .character-glow {
    bottom: clamp(62px, 7dvh, 84px);
  }

  #start-screen .menu-character .character-copy {
    min-width: min(76%, 176px);
    margin-top: -18px;
    padding: 3px 10px 5px;
    border-radius: 13px;
  }

  #start-screen .menu-character .character-copy strong {
    font-size: clamp(22px, 6vw, 31px);
  }

  #start-screen .menu-character .character-copy small {
    font-size: 10px;
  }

  #start-screen .menu-character .character-check {
    left: 11%;
    bottom: clamp(45px, 6dvh, 64px);
    width: 34px;
    height: 34px;
    border-width: 3px;
  }

  .world-ribbon {
    display: none;
    inset-inline: 10px;
    bottom: 8px;
    gap: 4px;
  }

  .world-ribbon span {
    padding: 4px 3px;
    border-radius: 8px;
    font-size: 9px;
  }

  .home-progress-card {
    display: none;
    align-self: stretch;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 4px 8px;
    padding: 6px 9px;
    border-radius: 15px;
  }

  .home-progress-card p {
    overflow: hidden;
    font-size: 10px;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .home-progress-card span:not(.menu-panel-title) {
    font-size: 11px;
  }

  .home-progress-card span strong {
    font-size: 17px;
  }

  .menu-text-button {
    min-height: 42px;
    padding: 0 7px;
    font-size: 10px;
  }

  .home-progress-card .menu-text-button {
    display: none;
  }

  .menu-cta {
    align-self: center;
    gap: 4px;
  }

  .arcade-play-button {
    width: min(100%, 390px);
    min-height: clamp(52px, 7.2dvh, 62px);
    border-width: 2px;
    border-radius: 18px 16px 22px 16px;
    font-size: clamp(29px, 8.6vw, 40px);
    box-shadow:
      0 11px 0 #9e5700,
      0 20px 28px rgba(0, 0, 0, 0.38),
      0 0 34px rgba(255, 216, 74, 0.4),
      inset 0 -7px rgba(171, 87, 0, 0.18);
  }

  .arcade-play-button:hover,
  .arcade-play-button:focus-visible {
    transform: translateY(-2px);
    box-shadow:
      0 13px 0 #9e5700,
      0 23px 30px rgba(0, 0, 0, 0.4),
      0 0 42px rgba(255, 216, 74, 0.5),
      0 0 0 4px rgba(255, 236, 126, 0.15),
      inset 0 -7px rgba(171, 87, 0, 0.18);
  }

  .arcade-play-button:active,
  .arcade-play-button.home-focus-pulse {
    transform: translateY(5px) scale(0.992);
    box-shadow:
      0 6px 0 #9e5700,
      0 12px 22px rgba(0, 0, 0, 0.38),
      0 0 28px rgba(255, 216, 74, 0.42),
      inset 0 -7px rgba(171, 87, 0, 0.18);
  }

  #menu-selection-summary {
    min-height: 17px;
    padding: 1px 10px 3px;
    font-size: clamp(10px, 2.85vw, 12px);
  }

  .menu-cta .pregame-open-button {
    width: auto;
    min-height: 32px;
    justify-self: center;
    padding: 0 12px;
    border-radius: 999px;
    font-size: 10px;
  }

  #start-screen .form-note {
    min-height: 13px;
    font-size: 11px;
  }

  .home-pregame-summary {
    align-self: stretch;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
  }

  .menu-control-button {
    min-height: 52px;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    justify-items: center;
    gap: 1px;
    padding: 5px 4px;
    border-radius: 14px;
    text-align: center;
  }

  .menu-control-button > span {
    width: 23px;
    height: 23px;
    grid-row: auto;
    border-radius: 8px;
  }

  .menu-control-button .ui-icon {
    width: 1.2em;
    height: 1.2em;
  }

  .menu-control-button strong {
    max-width: 100%;
    font-size: clamp(12px, 3.35vw, 15px);
  }

  .home-bottom-nav {
    align-self: stretch;
    width: 100%;
    min-height: 0;
    gap: 5px;
  }

  .home-nav-button {
    min-height: 50px;
    grid-template-columns: 1fr;
    gap: 1px;
    padding: 5px 3px;
    border-radius: 14px;
  }

  .home-nav-button .ui-icon {
    width: 1.25em;
    height: 1.25em;
  }

  .home-nav-button strong {
    font-size: clamp(11px, 3.2vw, 13px);
  }

  .menu-sheet {
    place-items: end center;
  }

  .menu-sheet-inner {
    width: 100%;
    max-height: min(72dvh, 620px);
    border-radius: 22px 22px 0 0;
    padding: 18px 14px max(18px, env(safe-area-inset-bottom));
  }

  .settings-sheet .home-pregame-summary {
    gap: 6px;
  }

  .settings-sheet .menu-control-button {
    min-height: 54px;
  }

  .hero-gallery-shell {
    gap: 6px;
    padding:
      max(9px, env(safe-area-inset-top))
      max(8px, env(safe-area-inset-right))
      max(9px, env(safe-area-inset-bottom))
      max(8px, env(safe-area-inset-left));
  }

  .hero-gallery-header {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 7px;
  }

  .hero-gallery-status {
    grid-column: 1 / -1;
    justify-self: stretch;
    padding: 5px 8px;
    border-radius: 12px;
    font-size: 11px;
  }

  .hero-gallery-icon-button {
    width: 42px;
    height: 42px;
    border-radius: 13px;
  }

  .hero-gallery-header h2 {
    font-size: clamp(22px, 7vw, 31px);
  }

  .hero-gallery-stage {
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    gap: 5px;
  }

  .hero-gallery-card {
    grid-template-rows: minmax(196px, 1fr) auto auto auto;
    padding: 10px;
    border-radius: 22px;
  }

  .hero-gallery-art-button {
    height: min(35dvh, 310px);
    min-height: 190px;
  }

  .hero-animation-mount,
  .hero-animation-rig,
  .hero-animation-sheet {
    width: min(100%, 300px);
  }

  .hero-animation-image,
  .hero-animation-layer {
    width: min(100%, 292px);
  }

  .hero-gallery-copy h3 {
    font-size: clamp(36px, 11vw, 48px);
  }

  .hero-gallery-copy p {
    font-size: 12px;
    line-height: 1.18;
  }

  .hero-gallery-meta {
    grid-template-columns: 1fr;
    gap: 5px;
    margin-top: 7px;
  }

  .hero-gallery-meta span {
    padding: 6px 8px;
    border-radius: 12px;
  }

  .hero-gallery-meta strong,
  .hero-gallery-asset-note,
  .hero-gallery-meta small {
    font-size: 10px;
  }

  .hero-gallery-asset-note {
    margin-top: 6px;
  }

  .hero-gallery-nav {
    width: 42px;
    height: 60px;
    border-radius: 14px;
  }

  .hero-gallery-actions {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .hero-gallery-select-button,
  .hero-gallery-home-button {
    min-height: 46px;
    border-radius: 15px;
    font-size: 14px;
  }
}

@media (max-width: 760px) and (orientation: portrait) and (max-height: 700px) {
  .main-menu {
    grid-template-rows: 44px 62px minmax(210px, 1fr) 72px 46px;
    gap: 4px;
  }

  .menu-logo p,
  .menu-panel-title,
  .world-ribbon {
    display: none;
  }

  #start-screen .menu-logo-title {
    width: clamp(140px, 43vw, 190px);
    height: 58px;
  }

  #start-screen .menu-character .character-card {
    min-height: clamp(176px, 29dvh, 220px);
  }

  #start-screen .menu-character img,
  #start-screen .menu-character-nabatick img {
    width: min(94%, clamp(130px, 44vw, 184px));
    max-height: clamp(130px, 27dvh, 184px);
  }

  #start-screen .menu-character .character-copy small,
  .home-progress-card p {
    display: none;
  }

  .home-progress-card {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .arcade-play-button {
    min-height: 54px;
  }

  .hero-gallery-header h2 {
    font-size: 22px;
  }

  .hero-gallery-status,
  .hero-gallery-kicker,
  .hero-gallery-asset-note {
    display: none;
  }

  .hero-gallery-card {
    grid-template-rows: minmax(154px, 1fr) auto auto;
  }

  .hero-gallery-art-button {
    height: min(31dvh, 210px);
    min-height: 150px;
  }

  .hero-animation-image,
  .hero-animation-layer {
    width: min(100%, 220px);
  }

  .hero-gallery-copy p {
    display: none;
  }

  .hero-gallery-meta {
    display: none;
  }
}

@media (max-width: 960px) and (orientation: landscape) {
  #start-screen {
    --menu-safe-top: max(7px, env(safe-area-inset-top));
    --menu-safe-right: max(8px, env(safe-area-inset-right));
    --menu-safe-bottom: max(8px, env(safe-area-inset-bottom));
    --menu-safe-left: max(8px, env(safe-area-inset-left));
  }

  .main-menu {
    grid-template-columns: minmax(150px, 0.7fr) minmax(330px, 1.28fr) minmax(120px, 0.5fr);
    grid-template-rows: 48px minmax(64px, 0.62fr) minmax(150px, 1fr) 58px;
    grid-template-areas:
      "top top nav"
      "progress logo nav"
      "progress hero nav"
      "progress cta nav";
    gap: 6px;
  }

  .home-player-bar {
    gap: 6px;
  }

  .home-player-card {
    flex: 1 1 230px;
    max-width: none;
  }

  .menu-best-card {
    flex: 0 1 120px;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 5px;
    padding: 5px 7px;
  }

  .menu-best-icon {
    width: 28px;
    height: 28px;
    border-radius: 9px;
    font-size: 17px;
  }

  .home-rank-button {
    flex: 0 0 58px;
    min-width: 58px;
  }

  .menu-actions {
    flex: 0 0 90px;
  }

  .home-player-card,
  .menu-best-card,
  .home-rank-button {
    min-height: 44px;
  }

  .menu-icon-button {
    width: 42px;
    height: 42px;
  }

  #start-screen .menu-logo-title {
    width: clamp(174px, 24vw, 236px);
    height: 56px;
  }

  .menu-logo p {
    display: none;
  }

  .home-progress-card {
    align-self: stretch;
    padding: 8px;
    gap: 5px;
  }

  .home-progress-card p {
    font-size: 10px;
  }

  .menu-text-button {
    min-height: 42px;
    padding-inline: 8px;
    font-size: 10px;
  }

  .menu-control-button {
    min-height: 44px;
    grid-template-columns: 28px minmax(0, 1fr);
    padding: 5px 7px;
    border-radius: 13px;
  }

  .menu-control-button > span {
    width: 26px;
    height: 26px;
    border-radius: 9px;
  }

  .menu-control-button small {
    font-size: 9px;
  }

  .menu-control-button strong {
    font-size: 13px;
  }

  .home-hero-scene {
    border-radius: 18px;
  }

  .menu-character-options {
    min-height: 148px;
  }

  #start-screen .menu-character {
    width: min(54%, 250px);
    min-width: 132px;
  }

  #start-screen .menu-character .character-card {
    min-height: 144px;
  }

  #start-screen .menu-character img,
  #start-screen .menu-character-nabatick img {
    width: min(88%, clamp(98px, 17vw, 138px));
    max-height: clamp(98px, 32dvh, 138px);
  }

  html[data-character="bifly"] #start-screen .menu-character-nabatick {
    left: 80%;
    transform: translateX(-50%) scale(0.52);
  }

  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    left: 20%;
    transform: translateX(-50%) scale(0.52);
  }

  #start-screen .menu-character .character-copy {
    min-width: min(78%, 150px);
    padding: 2px 8px 4px;
  }

  #start-screen .menu-character .character-copy strong {
    font-size: clamp(18px, 3vw, 23px);
  }

  #start-screen .menu-character .character-copy small {
    display: none;
  }

  #start-screen .menu-character .character-card::before {
    bottom: 26px;
  }

  #start-screen .menu-character .character-check {
    bottom: 30px;
    width: 28px;
    height: 28px;
  }

  .world-ribbon {
    display: none;
  }

  .arcade-play-button {
    min-height: 50px;
    border-radius: 16px 14px 20px 14px;
    font-size: clamp(30px, 5.2vw, 43px);
    box-shadow:
      0 8px 0 #9e5700,
      0 15px 23px rgba(0, 0, 0, 0.36),
      0 0 32px rgba(255, 216, 74, 0.38),
      inset 0 -7px rgba(171, 87, 0, 0.18);
  }

  .menu-cta {
    gap: 2px;
  }

  #menu-selection-summary {
    min-height: 18px;
    padding: 1px 9px 3px;
    font-size: 11px;
  }

  #start-screen .form-note {
    min-height: 0;
    font-size: 10px;
  }

  .home-bottom-nav {
    align-self: stretch;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 5px;
  }

  .home-nav-button {
    min-height: 42px;
    border-radius: 13px;
    padding: 4px;
  }

  .hero-gallery-shell {
    gap: 5px;
    padding:
      max(7px, env(safe-area-inset-top))
      max(8px, env(safe-area-inset-right))
      max(7px, env(safe-area-inset-bottom))
      max(8px, env(safe-area-inset-left));
  }

  .hero-gallery-header {
    grid-template-columns: 42px minmax(0, 1fr) minmax(160px, 230px);
    gap: 7px;
  }

  .hero-gallery-icon-button {
    width: 42px;
    height: 42px;
    border-radius: 13px;
  }

  .hero-gallery-header h2 {
    font-size: clamp(20px, 3.5vw, 28px);
  }

  .hero-gallery-status {
    padding: 5px 8px;
    font-size: 10px;
  }

  .hero-gallery-stage {
    grid-template-columns: 42px minmax(0, 470px) 42px;
    gap: 6px;
  }

  .hero-gallery-card {
    grid-template-rows: minmax(118px, 1fr) auto auto;
    padding: 8px 10px;
    border-radius: 18px;
  }

  .hero-gallery-art-button {
    height: min(42dvh, 170px);
    min-height: 116px;
  }

  .hero-animation-mount,
  .hero-animation-rig,
  .hero-animation-sheet {
    width: min(100%, 230px);
  }

  .hero-animation-image,
  .hero-animation-layer {
    width: min(100%, 220px);
  }

  .hero-gallery-copy h3 {
    font-size: clamp(28px, 5vw, 40px);
  }

  .hero-gallery-copy p,
  .hero-gallery-asset-note {
    display: none;
  }

  .hero-gallery-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 6px;
  }

  .hero-gallery-meta span {
    padding: 5px 7px;
  }

  .hero-gallery-meta strong,
  .hero-gallery-meta small {
    font-size: 10px;
  }

  .hero-gallery-nav {
    width: 42px;
    height: 58px;
    border-radius: 14px;
  }

  .hero-gallery-actions {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px;
  }

  .hero-gallery-select-button,
  .hero-gallery-home-button {
    min-height: 42px;
    border-radius: 14px;
    font-size: 13px;
  }
}

@media (hover: none), (pointer: coarse) {
  #start-screen .menu-character .character-copy,
  #start-screen .menu-character .character-check,
  .menu-enemy,
  .hero-gallery-enemy,
  .hero-animation-image,
  .hero-animation-layer {
    animation: none;
  }

  #start-screen .menu-character {
    transition-duration: 80ms;
  }

  #start-screen .menu-character img {
    transform: translateZ(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  #start-screen *,
  #start-screen *::before,
  #start-screen *::after {
    animation-duration: 1ms;
    animation-iteration-count: 1;
    scroll-behavior: auto;
    transition-duration: 1ms;
  }
}

/* Concept home screen pass: poster-like arcade lobby inspired by the supplied reference. */
#start-screen {
  --concept-panel: rgba(8, 9, 34, 0.78);
  --concept-panel-deep: rgba(4, 5, 22, 0.94);
  --concept-purple-line: rgba(151, 108, 255, 0.7);
  --concept-blue-line: rgba(91, 224, 255, 0.5);
  --concept-stone: rgba(41, 22, 84, 0.74);
  background:
    radial-gradient(ellipse at 50% 23%, rgba(69, 31, 152, 0.74), transparent 47%),
    linear-gradient(180deg, #030511 0%, #06051b 48%, #02020b 100%);
}

#start-screen::before {
  inset: -1%;
  background:
    radial-gradient(circle at 50% 19%, rgba(67, 104, 255, 0.46) 0 2px, transparent 3px),
    radial-gradient(circle at 23% 34%, rgba(244, 62, 255, 0.56) 0 2px, transparent 3px),
    radial-gradient(circle at 76% 28%, rgba(88, 232, 255, 0.54) 0 2px, transparent 3px),
    linear-gradient(90deg, rgba(4, 3, 14, 0.96) 0%, rgba(4, 3, 14, 0.18) 25%, rgba(4, 3, 14, 0.14) 72%, rgba(4, 3, 14, 0.96) 100%),
    linear-gradient(90deg, rgba(45, 24, 101, 0.72) 0 8%, transparent 8% 92%, rgba(45, 24, 101, 0.72) 92%),
    repeating-linear-gradient(90deg, transparent 0 74px, rgba(137, 80, 255, 0.28) 76px 80px, transparent 82px 156px),
    repeating-linear-gradient(0deg, transparent 0 62px, rgba(83, 214, 255, 0.18) 64px 67px, transparent 69px 132px),
    radial-gradient(ellipse at 50% 36%, rgba(102, 45, 210, 0.72), transparent 58%),
    linear-gradient(180deg, #030312 0%, #080421 42%, #02020a 100%);
  opacity: 1;
  filter: saturate(1.2) contrast(1.08);
  transform: scale(1.035);
}

#start-screen::after {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.62) 86%),
    radial-gradient(ellipse at 50% 20%, rgba(83, 214, 255, 0.22), transparent 34%),
    radial-gradient(ellipse at 50% 50%, rgba(133, 71, 255, 0.18), transparent 50%),
    linear-gradient(90deg, rgba(4, 3, 16, 0.82), transparent 21%, transparent 79%, rgba(4, 3, 16, 0.82));
  box-shadow:
    inset 0 0 0 1px rgba(151, 108, 255, 0.22),
    inset 0 0 90px rgba(0, 0, 0, 0.56);
}

.main-menu {
  grid-template-columns: minmax(128px, 0.58fr) minmax(0, 820px) minmax(128px, 0.58fr);
  grid-template-rows:
    clamp(76px, 8dvh, 96px)
    clamp(126px, 17dvh, 198px)
    minmax(330px, 1fr)
    clamp(112px, 13dvh, 142px);
  grid-template-areas:
    "top top top"
    "progress logo summary"
    "progress hero summary"
    ". cta .";
  gap: clamp(8px, 1dvh, 14px) clamp(12px, 1.4vw, 22px);
  padding:
    max(14px, env(safe-area-inset-top))
    max(24px, env(safe-area-inset-right))
    max(14px, env(safe-area-inset-bottom))
    max(24px, env(safe-area-inset-left));
}

.menu-world {
  z-index: -2;
}

.menu-world::before {
  inset-inline: 0;
  top: 12%;
  height: 78%;
  background:
    linear-gradient(90deg, transparent 0 52px, rgba(133, 71, 255, 0.22) 54px 58px, transparent 60px),
    linear-gradient(0deg, transparent 0 52px, rgba(88, 232, 255, 0.14) 54px 58px, transparent 60px);
  background-size: 112px 112px;
  opacity: 0.36;
  mask-image: radial-gradient(ellipse at center, #000 0 44%, transparent 76%);
}

.menu-world::after {
  bottom: 6dvh;
  width: min(900px, 82vw);
  height: min(510px, 55dvh);
  background:
    linear-gradient(90deg, transparent 0 46px, rgba(91, 224, 255, 0.4) 48px 51px, transparent 53px),
    linear-gradient(0deg, transparent 0 46px, rgba(151, 108, 255, 0.42) 48px 51px, transparent 53px);
  background-size: 96px 96px;
  box-shadow: none;
  opacity: 0.42;
  transform: translateX(-50%) perspective(760px) rotateX(66deg);
  transform-origin: center bottom;
  mask-image: linear-gradient(to top, #000 0 42%, rgba(0, 0, 0, 0.7) 63%, transparent 100%);
}

.maze-depth {
  opacity: 0.26;
  filter: drop-shadow(0 0 18px rgba(151, 108, 255, 0.28));
}

.home-player-bar {
  position: absolute;
  inset:
    max(14px, env(safe-area-inset-top))
    max(24px, env(safe-area-inset-right))
    auto
    max(24px, env(safe-area-inset-left));
  z-index: 10;
  display: grid;
  grid-template-columns: minmax(168px, 270px) 1fr auto;
  align-items: start;
  pointer-events: none;
}

.home-player-card {
  display: none;
}

.menu-best-card,
.menu-icon-button,
.home-rank-button,
.home-progress-card,
.home-quick-settings .menu-control-button {
  border: 2px solid var(--concept-purple-line);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.035)),
    radial-gradient(circle at 50% 0%, rgba(91, 224, 255, 0.18), transparent 58%),
    var(--concept-panel);
  box-shadow:
    0 10px 0 rgba(0, 0, 0, 0.28),
    0 0 0 2px rgba(70, 42, 163, 0.45),
    0 16px 34px rgba(0, 0, 0, 0.42),
    inset 0 0 26px rgba(91, 224, 255, 0.08);
}

.menu-best-card {
  order: 1;
  grid-column: 1;
  width: clamp(180px, 20vw, 276px);
  min-height: clamp(64px, 8dvh, 90px);
  grid-template-columns: clamp(46px, 4.8vw, 62px) minmax(0, 1fr);
  border-radius: 18px;
  padding: 8px 12px;
  pointer-events: auto;
}

.menu-best-icon {
  width: clamp(44px, 4.6vw, 60px);
  height: clamp(44px, 4.6vw, 60px);
  border-radius: 14px;
}

.menu-best-copy span {
  font-size: clamp(12px, 1.25vw, 16px);
}

.menu-best-copy strong {
  font-size: clamp(28px, 3.25vw, 48px);
  color: #ffe64f;
  text-shadow:
    0 3px 0 rgba(0, 0, 0, 0.58),
    0 0 18px rgba(255, 216, 74, 0.5);
}

.menu-actions {
  order: 3;
  grid-column: 3;
  justify-content: end;
  gap: clamp(10px, 1vw, 16px);
  pointer-events: auto;
}

.menu-icon-button {
  width: clamp(58px, 6dvh, 76px);
  height: clamp(58px, 6dvh, 76px);
  border-radius: 18px;
}

.menu-icon-button .ui-icon {
  width: 2em;
  height: 2em;
}

.menu-logo {
  align-self: end;
  transform: translateY(clamp(2px, 1.4dvh, 18px));
}

#start-screen .menu-logo-title {
  width: clamp(360px, 48vw, 690px);
  height: clamp(118px, 17dvh, 208px);
}

#start-screen .menu-logo-image {
  filter:
    drop-shadow(0 0 10px rgba(255, 255, 255, 0.8))
    drop-shadow(0 0 26px rgba(82, 112, 255, 0.9))
    drop-shadow(0 20px 24px rgba(0, 0, 0, 0.58));
}

.home-progress-card {
  align-self: start;
  justify-self: center;
  width: clamp(118px, 12vw, 168px);
  margin-top: clamp(92px, 11dvh, 138px);
  padding: clamp(12px, 1.35vw, 18px);
  border-radius: 18px;
  text-align: center;
}

.home-progress-card .menu-panel-title {
  color: #ffef8c;
  font-size: clamp(16px, 1.55vw, 22px);
}

.home-side-icon {
  width: clamp(42px, 4.5vw, 58px);
  height: clamp(42px, 4.5vw, 58px);
  justify-self: center;
  border-radius: 14px;
  background:
    linear-gradient(180deg, #fff17a, #ffc51f 58%, #d57a00);
  color: #2b1200;
  box-shadow: 0 0 22px rgba(255, 216, 74, 0.46);
}

.home-side-icon .ui-icon {
  width: 1.75em;
  height: 1.75em;
}

.home-progress-card span:not(.menu-panel-title),
.home-progress-card p {
  font-size: clamp(11px, 1vw, 14px);
}

.home-progress-card .menu-text-button {
  min-height: 38px;
  font-size: clamp(11px, 1vw, 14px);
}

.home-rank-button {
  grid-area: summary;
  position: relative;
  order: 2;
  align-self: center;
  justify-self: center;
  width: clamp(150px, 16vw, 220px);
  min-height: clamp(162px, 22dvh, 240px);
  display: grid;
  grid-template-rows: auto auto auto;
  justify-items: center;
  align-content: center;
  gap: 6px;
  padding: 16px 12px;
  border-radius: 22px;
  pointer-events: auto;
}

.home-rank-button::before {
  content: "המקום שלך";
  color: #dce9ff;
  font-size: clamp(14px, 1.5vw, 19px);
  font-weight: 900;
}

.home-rank-button::after {
  content: "שיא אישי";
  width: 100%;
  padding-top: 8px;
  border-top: 1px solid rgba(220, 233, 255, 0.18);
  color: var(--menu-cyan);
  font-size: clamp(12px, 1.1vw, 15px);
  font-weight: 900;
}

.home-rank-icon,
.home-rank-button .home-mini-label {
  display: none;
}

.home-rank-button strong {
  color: #ffe64f;
  font-size: clamp(54px, 6.2vw, 88px);
  text-shadow:
    0 4px 0 rgba(0, 0, 0, 0.58),
    0 0 24px rgba(255, 216, 74, 0.46);
}

.home-hero-scene {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.hero-maze-frame {
  inset: -24% -18% -8%;
}

.hero-maze-frame::before {
  bottom: 0;
  width: min(820px, 116%);
  height: 62%;
  opacity: 0.38;
  background:
    linear-gradient(90deg, transparent 0 42px, rgba(91, 224, 255, 0.42) 44px 47px, transparent 49px),
    linear-gradient(0deg, transparent 0 42px, rgba(151, 108, 255, 0.5) 44px 47px, transparent 49px);
  background-size: 92px 92px;
}

.hero-maze-frame::after {
  bottom: 16%;
  border-color: rgba(91, 224, 255, 0.22);
}

.hero-enemy {
  opacity: 0.88;
  filter:
    drop-shadow(0 0 18px rgba(151, 108, 255, 0.92))
    drop-shadow(0 18px 22px rgba(0, 0, 0, 0.52));
}

.hero-enemy-a {
  right: auto;
  left: 50%;
  top: 4%;
  width: clamp(132px, 13vw, 222px);
  transform: translateX(-50%);
}

.hero-enemy-b {
  left: 17%;
  top: 25%;
  width: clamp(76px, 8vw, 128px);
}

.hero-enemy-c {
  left: auto;
  right: 18%;
  top: 31%;
  bottom: auto;
  width: clamp(58px, 6vw, 102px);
  opacity: 0.78;
}

.enemy-core {
  top: 29%;
  width: clamp(150px, 15vw, 260px);
  opacity: 0.23;
}

.menu-character-options {
  min-height: 100%;
}

#start-screen .menu-character,
html[data-character="bifly"] #start-screen .menu-character-bifly,
html[data-character="nabatick"] #start-screen .menu-character-nabatick,
html[data-character="bifly"] #start-screen .menu-character-nabatick,
html[data-character="nabatick"] #start-screen .menu-character-bifly {
  bottom: clamp(0px, 1.5dvh, 16px);
  width: clamp(220px, 27vw, 390px);
  min-width: 0;
  opacity: 1;
  filter: saturate(1.08) brightness(1.03);
  transform: translateX(-50%) scale(1);
  pointer-events: auto;
}

#start-screen .menu-character-bifly,
html[data-character="bifly"] #start-screen .menu-character-bifly,
html[data-character="nabatick"] #start-screen .menu-character-bifly {
  left: 31%;
  z-index: 5;
}

#start-screen .menu-character-nabatick,
html[data-character="nabatick"] #start-screen .menu-character-nabatick,
html[data-character="bifly"] #start-screen .menu-character-nabatick {
  left: 69%;
  z-index: 5;
}

#start-screen .menu-character .character-card {
  min-height: clamp(260px, 38dvh, 430px);
  padding-bottom: 0;
}

#start-screen .menu-character img,
#start-screen .menu-character-nabatick img {
  width: min(100%, clamp(214px, 25vw, 360px));
  max-height: clamp(210px, 34dvh, 360px);
}

#start-screen .character-glow {
  bottom: clamp(58px, 7dvh, 94px);
  width: 86%;
  opacity: 0.5;
}

#start-screen .menu-character .character-card::before {
  bottom: clamp(44px, 5dvh, 68px);
  width: 86%;
  height: 18%;
  opacity: 0.8;
}

#start-screen .character-name-badge,
#start-screen .menu-character input:checked + .character-card .character-name-badge {
  position: relative;
  z-index: 18;
  min-width: min(82%, 220px);
  max-width: min(88%, 260px);
  opacity: 1;
  transform: translateY(0) scale(1);
  margin-top: clamp(4px, 0.8dvh, 10px);
  padding: 8px 14px 10px;
  border: 2px solid rgba(var(--character-rgb), 0.86);
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgba(var(--character-rgb), 0.18), rgba(2, 6, 18, 0.92)),
    rgba(2, 5, 17, 0.9);
  font-size: clamp(30px, 3.7vw, 54px);
  box-shadow:
    0 8px 0 rgba(0, 0, 0, 0.28),
    0 0 24px rgba(var(--character-rgb), 0.34);
}

#start-screen .menu-character input:checked + .character-card .character-name-badge {
  border-color: rgba(255, 236, 126, 0.9);
}

.world-ribbon,
.home-bottom-nav {
  display: none;
}

.menu-cta {
  transform: translateY(-4px);
}

html.start-screen-open #start-button.arcade-play-button,
.arcade-play-button {
  position: relative;
  bottom: auto;
  z-index: 7;
  width: min(100%, 610px);
  min-height: clamp(90px, 11dvh, 122px);
  margin-top: 0;
  border-radius: 24px;
  clip-path: none;
  border: 4px solid rgba(255, 245, 172, 0.94);
  font-size: clamp(42px, 5.1vw, 68px);
  box-shadow:
    0 18px 0 #9e5700,
    0 30px 42px rgba(0, 0, 0, 0.42),
    0 0 44px rgba(255, 216, 74, 0.48),
    inset 0 -8px rgba(171, 87, 0, 0.18);
}

#menu-selection-summary {
  position: relative;
  z-index: 8;
  border-color: rgba(151, 108, 255, 0.42);
  background: rgba(4, 5, 22, 0.78);
  color: #e8f5ff;
}

.home-quick-settings {
  grid-area: quick;
  position: relative;
  z-index: 7;
  align-self: stretch;
  justify-self: center;
  width: min(680px, 100%);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 1.4vw, 22px);
  direction: ltr;
}

.home-quick-settings .menu-control-button {
  min-height: clamp(66px, 8dvh, 90px);
  grid-template-columns: clamp(42px, 4.4vw, 58px) minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  border-radius: 18px;
  padding: 10px 16px;
  direction: ltr;
}

.home-quick-settings .menu-control-button > span {
  grid-column: 1;
  grid-row: 1 / span 2;
  width: clamp(40px, 4.3vw, 56px);
  height: clamp(40px, 4.3vw, 56px);
  border-radius: 14px;
  color: #f8fbff;
  background: rgba(151, 108, 255, 0.22);
}

.home-quick-settings .menu-control-button small {
  grid-column: 2;
  min-width: 0;
  justify-self: stretch;
  direction: rtl;
  text-align: right;
  color: #d9dcff;
  font-size: clamp(13px, 1.2vw, 17px);
}

.home-quick-settings .menu-control-button strong {
  grid-column: 2;
  min-width: 0;
  justify-self: stretch;
  overflow: visible;
  direction: rtl;
  text-align: right;
  text-overflow: clip;
  white-space: normal;
  color: #ffffff;
  font-size: clamp(20px, 2.2vw, 32px);
}

@media (max-width: 760px) and (orientation: portrait) {
  .main-menu {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows:
      clamp(62px, 7.4dvh, 82px)
      clamp(118px, 17dvh, 172px)
      minmax(390px, 1fr)
      clamp(104px, 12.4dvh, 130px);
    grid-template-areas:
      "top"
      "logo"
      "hero"
      "cta";
    padding:
      max(10px, env(safe-area-inset-top))
      max(11px, env(safe-area-inset-right))
      max(10px, env(safe-area-inset-bottom))
      max(11px, env(safe-area-inset-left));
    gap: clamp(4px, 0.65dvh, 8px);
  }

  .home-player-bar {
    inset:
      max(10px, env(safe-area-inset-top))
      max(11px, env(safe-area-inset-right))
      auto
      max(11px, env(safe-area-inset-left));
    grid-template-columns: minmax(132px, 1fr) auto;
    align-items: start;
  }

  .menu-best-card {
    width: clamp(142px, 38vw, 210px);
    min-height: 60px;
    grid-template-columns: 38px minmax(0, 1fr);
    padding: 6px 8px;
    border-radius: 15px;
  }

  .menu-best-icon {
    display: grid;
    width: 38px;
    height: 38px;
    border-radius: 11px;
  }

  .menu-best-copy span {
    font-size: 10px;
  }

  .menu-best-copy strong {
    font-size: clamp(22px, 6.3vw, 33px);
  }

  .menu-actions {
    grid-column: 2;
    gap: 8px;
  }

  .menu-icon-button {
    width: clamp(48px, 12.5vw, 60px);
    height: clamp(48px, 12.5vw, 60px);
    border-radius: 15px;
  }

  #start-screen .menu-logo-title {
    width: clamp(280px, 78vw, 430px);
    height: clamp(112px, 16dvh, 164px);
  }

  .menu-logo {
    align-self: center;
    transform: translateY(8px);
  }

  .home-progress-card {
    position: absolute;
    left: max(10px, env(safe-area-inset-left));
    top: clamp(250px, 32dvh, 350px);
    width: clamp(92px, 25vw, 124px);
    display: grid;
    gap: 5px;
    margin: 0;
    padding: 9px 7px;
    border-radius: 15px;
  }

  .home-side-icon {
    display: grid;
    width: 34px;
    height: 34px;
    border-radius: 10px;
  }

  .home-progress-card .menu-panel-title {
    font-size: 11px;
    line-height: 1.08;
  }

  .home-progress-card span:not(.menu-panel-title),
  .home-progress-card p,
  .home-progress-card .menu-text-button {
    font-size: 9px;
    line-height: 1.15;
  }

  .home-progress-card span:not(.menu-panel-title):not(.home-side-icon),
  .home-progress-card p {
    display: none;
  }

  .home-progress-card .menu-text-button {
    min-height: 30px;
    padding: 0 5px;
  }

  .home-rank-button {
    position: absolute;
    right: max(10px, env(safe-area-inset-right));
    top: clamp(270px, 34dvh, 370px);
    width: clamp(108px, 30vw, 142px);
    min-height: clamp(132px, 18dvh, 170px);
    padding: 11px 8px;
    border-radius: 17px;
  }

  .home-rank-button::before {
    font-size: 12px;
  }

  .home-rank-button strong {
    font-size: clamp(46px, 13vw, 66px);
  }

  .home-rank-button::after {
    font-size: 10px;
  }

  .home-hero-scene {
    min-height: 0;
  }

  .hero-maze-frame {
    inset: -18% -10% -4%;
  }

  .hero-enemy-a {
    top: 4%;
    width: clamp(118px, 32vw, 176px);
  }

  .hero-enemy-b {
    left: 22%;
    top: 27%;
    width: clamp(62px, 18vw, 92px);
  }

  .hero-enemy-c {
    right: 22%;
    top: 32%;
    width: clamp(50px, 15vw, 76px);
  }

  #start-screen .menu-character,
  html[data-character="bifly"] #start-screen .menu-character-bifly,
  html[data-character="nabatick"] #start-screen .menu-character-nabatick,
  html[data-character="bifly"] #start-screen .menu-character-nabatick,
  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    bottom: clamp(38px, 5dvh, 60px);
    width: clamp(156px, 43vw, 230px);
  }

  #start-screen .menu-character-bifly,
  html[data-character="bifly"] #start-screen .menu-character-bifly,
  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    left: 29%;
  }

  #start-screen .menu-character-nabatick,
  html[data-character="nabatick"] #start-screen .menu-character-nabatick,
  html[data-character="bifly"] #start-screen .menu-character-nabatick {
    left: 71%;
  }

  #start-screen .menu-character .character-card {
    min-height: clamp(220px, 36dvh, 340px);
  }

  #start-screen .menu-character img,
  #start-screen .menu-character-nabatick img {
    width: min(100%, clamp(142px, 40vw, 220px));
    max-height: clamp(142px, 30dvh, 220px);
  }

  #start-screen .character-name-badge,
  #start-screen .menu-character input:checked + .character-card .character-name-badge {
    min-width: min(94%, 170px);
    padding: 6px 8px 8px;
    border-radius: 10px;
    font-size: clamp(24px, 7.4vw, 34px);
  }

  html.start-screen-open #start-button.arcade-play-button,
  .arcade-play-button {
    position: relative;
    bottom: auto;
    width: min(100%, 430px);
    min-height: clamp(72px, 9.3dvh, 92px);
    margin-top: 0;
    border-width: 3px;
    border-radius: 21px;
    font-size: clamp(40px, 11vw, 58px);
    box-shadow:
      0 9px 0 #9e5700,
      0 16px 22px rgba(0, 0, 0, 0.42),
      0 0 42px rgba(255, 216, 74, 0.44),
      inset 0 -7px rgba(171, 87, 0, 0.18);
  }

  #menu-selection-summary {
    min-height: 21px;
    font-size: clamp(10px, 3vw, 13px);
  }

  .home-quick-settings {
    width: 100%;
    gap: 10px;
  }

  .home-quick-settings .menu-control-button {
    min-height: clamp(60px, 7.4dvh, 78px);
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-content: center;
    justify-items: start;
    padding: 8px 10px;
    border-radius: 16px;
    text-align: right;
    direction: ltr;
  }

  .home-quick-settings .menu-control-button > span {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }

  .home-quick-settings .menu-control-button small {
    grid-column: 2;
    justify-self: stretch;
    direction: rtl;
    text-align: right;
    font-size: 11px;
  }

  .home-quick-settings .menu-control-button strong {
    grid-column: 2;
    justify-self: stretch;
    overflow: visible;
    direction: rtl;
    text-align: right;
    text-overflow: clip;
    white-space: normal;
    font-size: clamp(17px, 4.5vw, 24px);
  }
}

@media (max-width: 760px) and (orientation: portrait) and (max-height: 700px) {
  .main-menu {
    grid-template-rows: 54px 92px minmax(250px, 1fr) 82px;
  }

  #start-screen .menu-logo-title {
    width: clamp(220px, 66vw, 330px);
    height: 92px;
  }

  .home-progress-card,
  .home-rank-button {
    display: none;
  }

  #start-screen .menu-character .character-card {
    min-height: clamp(176px, 31dvh, 238px);
  }

  #start-screen .menu-character img,
  #start-screen .menu-character-nabatick img {
    width: min(100%, clamp(122px, 35vw, 176px));
    max-height: clamp(122px, 27dvh, 176px);
  }

  .hero-enemy-a {
    width: clamp(88px, 25vw, 132px);
  }

  html.start-screen-open #start-button.arcade-play-button,
  .arcade-play-button {
    min-height: 62px;
    font-size: clamp(34px, 9vw, 44px);
  }
}

@media (max-width: 960px) and (orientation: landscape) {
  .main-menu {
    grid-template-columns: minmax(112px, 0.55fr) minmax(0, 1.5fr) minmax(112px, 0.55fr);
    grid-template-rows: 54px 74px minmax(160px, 1fr) 58px;
    grid-template-areas:
      "top top top"
      "progress logo summary"
      "progress hero summary"
      ". cta .";
  }

  .home-player-bar {
    inset:
      max(8px, env(safe-area-inset-top))
      max(10px, env(safe-area-inset-right))
      auto
      max(10px, env(safe-area-inset-left));
  }

  .menu-best-card {
    min-height: 46px;
  }

  .menu-icon-button {
    width: 44px;
    height: 44px;
  }

  #start-screen .menu-logo-title {
    width: clamp(220px, 34vw, 360px);
    height: 74px;
  }

  .home-progress-card {
    margin-top: 42px;
  }

  .home-rank-button {
    width: 112px;
    min-height: 122px;
  }

  .home-rank-button strong {
    font-size: 42px;
  }

  #start-screen .menu-character .character-card {
    min-height: 168px;
  }

  #start-screen .menu-character img,
  #start-screen .menu-character-nabatick img {
    width: min(100%, clamp(112px, 20vw, 170px));
    max-height: clamp(112px, 31dvh, 170px);
  }

  .home-quick-settings {
    width: min(320px, 100%);
  }
}

/* Home polish pass: locked viewport, cleaner hero labels, and upgraded controls. */
html.start-screen-open,
html.start-screen-open body {
  width: 100%;
  max-width: 100%;
  height: 100svh;
  min-height: 100svh;
  overflow: hidden !important;
  overscroll-behavior: none;
  position: fixed;
  inset: 0;
}

html.start-screen-open .game-shell,
html.start-screen-open .stage,
html.start-screen-open #start-screen {
  width: 100vw !important;
  max-width: 100vw !important;
  height: 100svh !important;
  min-height: 100svh !important;
  max-height: 100svh !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0;
  border-radius: 0;
  overflow: hidden !important;
  touch-action: none;
}

html.start-screen-open .game-shell {
  display: block;
}

html.start-screen-open .hud,
html.start-screen-open .mobile-joystick {
  display: none !important;
}

#start-screen .home-rank-button {
  display: none !important;
}

#start-screen .menu-best-card,
#start-screen .menu-icon-button,
#start-screen .home-progress-card,
#start-screen .home-quick-settings .menu-control-button {
  border-color: rgba(166, 123, 255, 0.86);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.035) 38%),
    radial-gradient(circle at 18% 18%, rgba(120, 229, 255, 0.22), transparent 46%),
    linear-gradient(155deg, rgba(31, 39, 79, 0.94), rgba(10, 11, 38, 0.88) 58%, rgba(33, 17, 73, 0.9));
  box-shadow:
    0 7px 0 rgba(5, 3, 20, 0.58),
    0 0 0 1px rgba(228, 220, 255, 0.12),
    0 18px 28px rgba(0, 0, 0, 0.38),
    0 0 22px rgba(126, 86, 255, 0.22),
    inset 0 0 22px rgba(105, 231, 255, 0.08);
}

#start-screen .menu-best-icon,
#start-screen .home-side-icon,
#start-screen .menu-icon-button .ui-icon-wrap,
#start-screen .home-quick-settings .menu-control-button > span {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 34% 24%, rgba(255, 255, 255, 0.58), transparent 28%),
    linear-gradient(180deg, #fff067 0%, #ffc42a 52%, #ee8300 100%);
  color: #2b1400;
  border: 1px solid rgba(255, 246, 177, 0.72);
  box-shadow:
    0 5px 0 rgba(115, 56, 0, 0.46),
    0 0 18px rgba(255, 210, 61, 0.36),
    inset 0 -7px 12px rgba(154, 63, 0, 0.16);
}

#start-screen .menu-icon-button .ui-icon-wrap {
  width: 72%;
  height: 72%;
  border-radius: 16px;
}

#start-screen .menu-icon-button {
  border-radius: 18px;
}

#start-screen .menu-icon-button[data-icon="sound-on"] .ui-icon-wrap,
#start-screen .menu-icon-button[data-icon="sound-off"] .ui-icon-wrap,
#start-screen #menu-settings-button .ui-icon-wrap {
  background:
    radial-gradient(circle at 32% 24%, rgba(255, 255, 255, 0.35), transparent 30%),
    linear-gradient(180deg, rgba(113, 229, 255, 0.24), rgba(93, 66, 203, 0.34)),
    rgba(24, 24, 66, 0.86);
  color: #f7fbff;
  border-color: rgba(171, 231, 255, 0.45);
  box-shadow:
    0 4px 0 rgba(8, 6, 34, 0.64),
    0 0 18px rgba(124, 91, 255, 0.36),
    inset 0 0 14px rgba(127, 231, 255, 0.13);
}

#start-screen .menu-icon-button .ui-icon,
#start-screen .home-quick-settings .menu-control-button .ui-icon,
#start-screen .menu-best-icon .ui-icon,
#start-screen .home-side-icon .ui-icon {
  width: 1.62em;
  height: 1.62em;
  filter: drop-shadow(0 2px 0 rgba(0, 0, 0, 0.24));
}

#start-screen .home-progress-card {
  cursor: pointer;
}

#start-screen .home-progress-card .menu-panel-title {
  color: #fff3a1;
  text-shadow: 0 0 12px rgba(255, 216, 74, 0.3);
}

#start-screen .home-quick-settings .menu-control-button {
  align-items: center;
}

#start-screen .home-quick-settings .menu-control-button small {
  color: #e7eaff;
  opacity: 0.92;
}

#start-screen .home-quick-settings .menu-control-button strong {
  color: #ffffff;
  text-shadow: 0 0 16px rgba(112, 229, 255, 0.24);
}

#start-screen .character-name-badge,
#start-screen .menu-character input:checked + .character-card .character-name-badge {
  min-width: 0;
  max-width: none;
  width: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: rgb(var(--character-rgb));
  font-family: var(--display-font);
  font-size: clamp(34px, 4vw, 58px);
  line-height: 0.95;
  letter-spacing: 0;
  -webkit-text-stroke: 1px rgba(3, 6, 18, 0.82);
  text-shadow:
    0 3px 0 rgba(0, 0, 0, 0.54),
    0 0 10px rgba(var(--character-rgb), 0.72),
    0 0 28px rgba(var(--character-rgb), 0.38);
}

#start-screen .menu-character input:checked + .character-card .character-name-badge {
  color: rgb(var(--character-rgb));
  filter: brightness(1.08);
}

@media (max-width: 760px) and (orientation: portrait) {
  #start-screen {
    width: 100vw !important;
    height: 100svh !important;
    min-height: 100svh !important;
  }

  #start-screen .main-menu {
    width: 100vw;
    height: 100svh;
    min-height: 0;
    grid-template-rows:
      clamp(58px, 6.8svh, 76px)
      clamp(104px, 14.4svh, 152px)
      minmax(0, 1fr)
      clamp(96px, 11.2svh, 118px);
    gap: clamp(3px, 0.5svh, 6px);
    padding:
      max(8px, env(safe-area-inset-top))
      max(12px, env(safe-area-inset-right))
      max(16px, env(safe-area-inset-bottom))
      max(12px, env(safe-area-inset-left));
    overflow: hidden !important;
  }

  #start-screen .menu-logo {
    transform: translateY(2px);
  }

  #start-screen .menu-logo-title {
    width: clamp(270px, 76vw, 410px);
    height: clamp(100px, 14svh, 145px);
  }

  #start-screen .home-progress-card {
    top: clamp(248px, 30.5svh, 330px);
    width: clamp(104px, 26vw, 126px);
    min-height: 58px;
    padding: 8px 8px;
    grid-template-columns: minmax(0, 1fr) 36px;
    align-items: center;
    text-align: right;
  }

  #start-screen .home-side-icon {
    grid-column: 2;
    width: 34px;
    height: 34px;
  }

  #start-screen .home-progress-card .menu-panel-title {
    grid-column: 1;
    font-size: clamp(12px, 3.2vw, 15px);
  }

  #start-screen .home-progress-card .menu-text-button {
    display: none;
  }

  #start-screen .menu-character,
  html[data-character="bifly"] #start-screen .menu-character-bifly,
  html[data-character="nabatick"] #start-screen .menu-character-nabatick,
  html[data-character="bifly"] #start-screen .menu-character-nabatick,
  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    bottom: clamp(30px, 4.2svh, 52px);
    width: clamp(150px, 39vw, 220px);
  }

  #start-screen .menu-character-bifly,
  html[data-character="bifly"] #start-screen .menu-character-bifly,
  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    left: 29%;
  }

  #start-screen .menu-character-nabatick,
  html[data-character="nabatick"] #start-screen .menu-character-nabatick,
  html[data-character="bifly"] #start-screen .menu-character-nabatick {
    left: 71%;
  }

  #start-screen .menu-character .character-card {
    min-height: clamp(188px, 31svh, 300px);
  }

  #start-screen .menu-character img,
  #start-screen .menu-character-nabatick img {
    width: min(100%, clamp(138px, 37vw, 205px));
    max-height: clamp(138px, 25svh, 205px);
  }

  #start-screen .character-glow {
    bottom: clamp(46px, 6svh, 76px);
  }

  #start-screen .menu-character .character-card::before {
    bottom: clamp(34px, 4.8svh, 58px);
  }

  #start-screen .character-name-badge,
  #start-screen .menu-character input:checked + .character-card .character-name-badge {
    font-size: clamp(34px, 8.2vw, 46px);
  }

  html.start-screen-open #start-button.arcade-play-button,
  #start-screen .arcade-play-button {
    width: min(100%, 500px);
    min-height: clamp(72px, 8.8svh, 92px);
    border-radius: 22px;
    font-size: clamp(42px, 10.5vw, 58px);
    box-shadow:
      0 7px 0 #9e5700,
      0 14px 20px rgba(0, 0, 0, 0.38),
      0 0 38px rgba(255, 216, 74, 0.42),
      inset 0 -7px rgba(171, 87, 0, 0.18);
  }

  #start-screen #menu-selection-summary {
    margin-top: -2px;
  }

  #start-screen .home-quick-settings {
    align-self: end;
    gap: 8px;
  }

  #start-screen .home-quick-settings .menu-control-button {
    min-height: clamp(56px, 6.8svh, 72px);
    border-radius: 18px;
    grid-template-columns: 38px minmax(0, 1fr);
    padding: 7px 10px;
  }

  #start-screen .home-quick-settings .menu-control-button > span {
    width: 36px;
    height: 36px;
    border-radius: 13px;
  }

  #start-screen .home-quick-settings .menu-control-button small {
    font-size: clamp(10px, 2.6vw, 12px);
  }

  #start-screen .home-quick-settings .menu-control-button strong {
    font-size: clamp(20px, 4.9vw, 26px);
  }
}

@media (max-width: 380px) and (orientation: portrait) {
  #start-screen .menu-character,
  html[data-character="bifly"] #start-screen .menu-character-bifly,
  html[data-character="nabatick"] #start-screen .menu-character-nabatick,
  html[data-character="bifly"] #start-screen .menu-character-nabatick,
  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    width: clamp(132px, 38vw, 172px);
  }

  #start-screen .home-progress-card {
    display: none;
  }
}

/* Keep the brand mark in its own row above the character stage. */
@media (min-width: 761px) {
  #start-screen .main-menu {
    grid-template-rows:
      clamp(76px, 8dvh, 96px)
      clamp(96px, 13dvh, 150px)
      minmax(330px, 1fr)
      clamp(112px, 13dvh, 142px);
  }

  #start-screen .menu-logo {
    align-self: center;
    transform: none;
  }

  #start-screen .menu-logo-title {
    width: clamp(300px, 34vw, 520px);
    height: clamp(88px, 12dvh, 138px);
  }

  #start-screen .menu-logo-image {
    min-width: 0;
    min-height: 0;
    max-width: 100%;
    max-height: 100%;
  }
}

/* Home screen polish: podium action, deeper maze background, clearer character selection. */
#start-screen {
  --home-glass-line: rgba(167, 137, 255, 0.58);
  --home-glass-fill: rgba(11, 15, 42, 0.78);
  --home-control-shadow:
    0 10px 18px rgba(0, 0, 0, 0.38),
    0 0 18px rgba(122, 82, 255, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -10px 18px rgba(2, 4, 19, 0.42);
}

#start-screen::before {
  background:
    radial-gradient(circle at 50% 19%, rgba(95, 117, 255, 0.36), transparent 28%),
    radial-gradient(circle at 22% 35%, rgba(187, 53, 255, 0.2), transparent 20%),
    radial-gradient(circle at 76% 37%, rgba(48, 229, 255, 0.15), transparent 24%),
    linear-gradient(180deg, rgba(3, 4, 18, 0.02), rgba(2, 3, 13, 0.86)),
    url("assets/math-maze-poster.png") center / cover no-repeat;
  opacity: 0.54;
  filter: saturate(1.16) contrast(1.14) brightness(0.54);
}

#start-screen::after {
  background:
    radial-gradient(circle at 50% 22%, rgba(94, 118, 255, 0.26), transparent 24%),
    radial-gradient(circle at 50% 58%, rgba(78, 245, 161, 0.12), transparent 28%),
    linear-gradient(90deg, rgba(3, 3, 16, 0.98), rgba(8, 10, 34, 0.36) 24%, rgba(8, 11, 30, 0.18) 51%, rgba(16, 5, 41, 0.58) 78%, rgba(3, 3, 16, 0.98)),
    linear-gradient(180deg, rgba(1, 2, 12, 0.26), rgba(1, 3, 12, 0.38) 48%, rgba(1, 2, 8, 0.92));
}

#start-screen .menu-world::before {
  inset-inline: 4%;
  top: 14%;
  height: 56%;
  background:
    linear-gradient(90deg, transparent 0 46px, rgba(117, 85, 255, 0.26) 47px 50px, transparent 52px),
    linear-gradient(0deg, transparent 0 46px, rgba(74, 233, 255, 0.18) 47px 50px, transparent 52px),
    radial-gradient(circle at 50% 42%, rgba(89, 220, 255, 0.16), transparent 48%);
  background-size: 96px 96px, 96px 96px, 100% 100%;
  opacity: 0.62;
  mask-image: radial-gradient(ellipse at center, #000 0 44%, rgba(0, 0, 0, 0.74) 62%, transparent 82%);
}

#start-screen .menu-world::after {
  bottom: -5dvh;
  width: min(900px, 92vw);
  height: 35dvh;
  border-radius: 50% 50% 0 0;
  background:
    linear-gradient(90deg, transparent 0 42px, rgba(74, 233, 255, 0.5) 43px 47px, transparent 49px),
    linear-gradient(0deg, transparent 0 42px, rgba(163, 96, 255, 0.48) 43px 47px, transparent 49px),
    radial-gradient(ellipse at center, rgba(74, 233, 255, 0.18), rgba(2, 6, 18, 0.04) 62%, transparent 78%);
  background-size: 92px 92px, 92px 92px, 100% 100%;
  opacity: 0.76;
  transform: translateX(-50%) perspective(760px) rotateX(64deg);
  transform-origin: center bottom;
  box-shadow:
    0 0 34px rgba(87, 224, 255, 0.28),
    inset 0 0 70px rgba(74, 233, 255, 0.06);
  mask-image: linear-gradient(to top, #000 0 50%, rgba(0, 0, 0, 0.72) 72%, transparent 100%);
}

#start-screen .maze-depth {
  opacity: 0.5;
  background:
    linear-gradient(90deg, transparent 0 40px, rgba(75, 226, 255, 0.42) 42px 45px, transparent 47px),
    linear-gradient(0deg, transparent 0 40px, rgba(144, 91, 255, 0.38) 42px 45px, transparent 47px);
  background-size: 88px 88px;
}

#start-screen .maze-depth-front {
  opacity: 0.58;
  filter: drop-shadow(0 0 22px rgba(90, 219, 255, 0.38));
}

#start-screen .enemy-core {
  top: 31%;
  width: clamp(178px, 22vw, 310px);
  opacity: 0.28;
  filter:
    drop-shadow(0 0 28px rgba(112, 76, 255, 0.78))
    drop-shadow(0 28px 32px rgba(0, 0, 0, 0.62));
}

#start-screen .menu-enemy,
#start-screen .hero-enemy {
  filter:
    drop-shadow(0 0 14px rgba(120, 84, 255, 0.94))
    drop-shadow(0 0 28px rgba(76, 226, 255, 0.18))
    drop-shadow(0 22px 28px rgba(0, 0, 0, 0.58));
}

#start-screen .enemy-a {
  top: 40%;
  left: 10%;
  opacity: 0.84;
}

#start-screen .enemy-b {
  top: 31%;
  right: 10%;
  opacity: 0.82;
}

#start-screen .enemy-c {
  top: 48%;
  right: 30%;
  opacity: 0.62;
}

#start-screen .hero-maze-frame {
  inset: -21% -20% -9%;
}

#start-screen .hero-maze-frame::before {
  bottom: -8%;
  width: min(880px, 126%);
  height: 68%;
  background:
    linear-gradient(90deg, transparent 0 36px, rgba(73, 226, 255, 0.5) 38px 42px, transparent 44px),
    linear-gradient(0deg, transparent 0 36px, rgba(154, 101, 255, 0.5) 38px 42px, transparent 44px),
    radial-gradient(ellipse at center, rgba(89, 231, 255, 0.15), transparent 64%);
  background-size: 86px 86px, 86px 86px, 100% 100%;
  opacity: 0.56;
  transform: translateX(-50%) perspective(660px) rotateX(64deg);
  box-shadow: 0 0 34px rgba(89, 231, 255, 0.2);
}

#start-screen .hero-maze-frame::after {
  bottom: 9%;
  width: 82%;
  height: 20%;
  border-color: rgba(99, 241, 255, 0.34);
  background:
    radial-gradient(ellipse at center, rgba(92, 236, 255, 0.16), rgba(161, 246, 55, 0.06) 46%, transparent 70%);
  box-shadow:
    0 0 26px rgba(93, 235, 255, 0.28),
    inset 0 0 18px rgba(164, 245, 45, 0.1);
}

#start-screen .hero-enemy-a {
  top: 2%;
  width: clamp(132px, 14vw, 236px);
  opacity: 0.78;
}

#start-screen .hero-enemy-b {
  left: 14%;
  top: 24%;
  opacity: 0.84;
}

#start-screen .hero-enemy-c {
  right: 14%;
  top: 29%;
  opacity: 0.82;
}

#start-screen .home-progress-card {
  display: none !important;
}

#start-screen .home-player-bar {
  gap: clamp(8px, 1.3vw, 14px);
}

#start-screen .menu-actions {
  gap: clamp(8px, 1vw, 12px);
  align-items: center;
}

#start-screen .menu-actions .menu-icon-button,
#start-screen #leaderboard-open.menu-icon-button {
  width: clamp(52px, 6.3dvh, 68px);
  height: clamp(52px, 6.3dvh, 68px);
  border-radius: 18px;
  border-color: var(--home-glass-line);
  background:
    radial-gradient(circle at 32% 20%, rgba(255, 255, 255, 0.28), transparent 32%),
    linear-gradient(180deg, rgba(98, 210, 255, 0.2), rgba(101, 75, 225, 0.24) 48%, rgba(10, 12, 42, 0.82)),
    var(--home-glass-fill);
  color: #f8fbff;
  box-shadow: var(--home-control-shadow);
  overflow: hidden;
}

#start-screen .menu-actions .menu-icon-button::before,
#start-screen #leaderboard-open.menu-icon-button::before {
  content: "";
  position: absolute;
  inset: 6px 8px auto;
  height: 34%;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.42), rgba(255, 255, 255, 0.04));
  opacity: 0.62;
  pointer-events: none;
}

#start-screen .menu-actions .menu-icon-button .ui-icon-wrap,
#start-screen #leaderboard-open.menu-icon-button .ui-icon-wrap {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: currentColor;
  box-shadow: none;
}

#start-screen .menu-actions .menu-icon-button .ui-icon,
#start-screen #leaderboard-open.menu-icon-button .ui-icon {
  width: 56%;
  height: 56%;
  color: currentColor;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2.8;
  filter:
    drop-shadow(0 2px 0 rgba(0, 0, 0, 0.38))
    drop-shadow(0 0 11px rgba(108, 231, 255, 0.45));
}

#start-screen #menu-settings-button {
  color: #f7fbff;
}

#start-screen #menu-sound-button {
  color: #e9fbff;
}

#start-screen #leaderboard-open.menu-icon-button {
  border-color: rgba(255, 226, 89, 0.72);
  background:
    radial-gradient(circle at 32% 20%, rgba(255, 255, 255, 0.44), transparent 31%),
    linear-gradient(180deg, #ffe963 0%, #ffc322 48%, #e58100 100%);
  color: #381800;
  box-shadow:
    0 10px 18px rgba(0, 0, 0, 0.38),
    0 0 20px rgba(255, 210, 58, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.52),
    inset 0 -11px 16px rgba(137, 54, 0, 0.24);
}

#start-screen #leaderboard-open.menu-icon-button .ui-icon {
  filter:
    drop-shadow(0 2px 0 rgba(255, 244, 162, 0.38))
    drop-shadow(0 4px 0 rgba(112, 48, 0, 0.24));
}

#start-screen #leaderboard-open .home-world-rank-badge {
  position: absolute;
  z-index: 6;
  right: 2px;
  bottom: 2px;
  display: flex;
  align-items: center;
  gap: 3px;
  max-width: calc(100% - 4px);
  padding: 2px 5px;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  background: rgba(31, 12, 64, 0.94);
  color: #fff6a4;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.45);
  line-height: 1;
  pointer-events: none;
}

#start-screen #leaderboard-open .home-world-rank-badge small {
  font-size: 7px;
  font-weight: 850;
}

#start-screen #leaderboard-open .home-world-rank-badge strong {
  overflow: hidden;
  font-size: 10px;
  font-weight: 950;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#start-screen .menu-actions .menu-icon-button::after {
  content: "";
  position: absolute;
  z-index: 3;
  width: 56%;
  height: 56%;
  background: currentColor;
  -webkit-mask: var(--action-icon-mask) center / contain no-repeat;
  mask: var(--action-icon-mask) center / contain no-repeat;
  filter:
    drop-shadow(0 2px 0 rgba(0, 0, 0, 0.36))
    drop-shadow(0 0 10px rgba(115, 234, 255, 0.34));
  pointer-events: none;
}

#start-screen #menu-settings-button {
  --action-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.35' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 8.6a3.4 3.4 0 1 0 0 6.8 3.4 3.4 0 0 0 0-6.8Z'/%3E%3Cpath d='M19.4 13.4c.1-.5.1-.9.1-1.4s0-.9-.1-1.4l2-1.5-2-3.5-2.4 1a8.3 8.3 0 0 0-2.4-1.4L14.2 2H9.8l-.4 3.2A8.3 8.3 0 0 0 7 6.6l-2.4-1-2 3.5 2 1.5a7.7 7.7 0 0 0 0 2.8l-2 1.5 2 3.5 2.4-1a8.3 8.3 0 0 0 2.4 1.4l.4 3.2h4.4l.4-3.2a8.3 8.3 0 0 0 2.4-1.4l2.4 1 2-3.5Z'/%3E%3C/svg%3E");
}

#start-screen #menu-sound-button[data-icon="sound-on"] {
  --action-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 9.5v5h4l5 4v-13l-5 4Z'/%3E%3Cpath d='M16.2 8.2a5.2 5.2 0 0 1 0 7.6M18.8 5.8a8.8 8.8 0 0 1 0 12.4' fill='none' stroke='black' stroke-width='2.35' stroke-linecap='round'/%3E%3C/svg%3E");
}

#start-screen #menu-sound-button[data-icon="sound-off"] {
  --action-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 9.5v5h4l5 4v-13l-5 4Z'/%3E%3Cpath d='m17 9 5 5M22 9l-5 5' fill='none' stroke='black' stroke-width='2.45' stroke-linecap='round'/%3E%3C/svg%3E");
}

#start-screen #leaderboard-open.menu-icon-button {
  --action-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.2 12.8h4.3V20H5.2ZM9.8 8.6h4.4V20H9.8ZM14.5 14.6h4.3V20h-4.3Z' fill='black'/%3E%3Cpath d='M4 20h16' fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round'/%3E%3Cpath d='m12 3.4.9 1.9 2.1.3-1.5 1.5.4 2.1L12 8.1l-1.9 1.1.4-2.1L9 5.6l2.1-.3Z' fill='black'/%3E%3C/svg%3E");
}

#start-screen .menu-actions .menu-icon-button:active {
  transform: translateY(2px) scale(0.98);
}

html[data-language="en"] #start-screen,
html[data-language="en"] #start-screen .main-menu,
html[data-language="en"] #start-screen .menu-sheet,
html[data-language="en"] #start-screen .menu-sheet-inner,
html[data-language="en"] #start-screen .settings-sheet,
html[data-language="en"] #start-screen .phase5-sheet-header,
html[data-language="en"] #start-screen .menu-control-button,
html[data-language="en"] #start-screen .pregame-choice-card,
html[data-language="en"] #start-screen .mode-options span,
html[data-language="en"] #start-screen .difficulty-options span,
html[data-language="en"] #start-screen .settings-language,
html[data-language="en"] #start-screen .settings-control-mode,
html[data-language="en"] #start-screen .settings-operation-mode {
  direction: ltr;
  unicode-bidi: plaintext;
}

html[data-language="en"] #start-screen .phase5-sheet-header p,
html[data-language="en"] #start-screen .mode-options small,
html[data-language="en"] #start-screen .difficulty-options small,
html[data-language="en"] #start-screen .settings-game-card p,
html[data-language="en"] #start-screen .menu-control-button small,
html[data-language="en"] #start-screen .menu-control-button strong {
  direction: ltr;
  unicode-bidi: plaintext;
}

html[data-language="en"] #start-screen .settings-sheet > label,
html[data-language="en"] #start-screen .settings-game-card > strong,
html[data-language="en"] #start-screen .settings-language legend,
html[data-language="en"] #start-screen .settings-control-mode legend,
html[data-language="en"] #start-screen .settings-operation-mode legend,
html[data-language="en"] #start-screen .settings-operation-mode > p {
  text-align: left;
}

#start-screen .home-quick-settings .menu-control-button {
  border-color: rgba(153, 119, 255, 0.62);
  background:
    radial-gradient(circle at 18% 16%, rgba(255, 255, 255, 0.18), transparent 28%),
    linear-gradient(180deg, rgba(26, 39, 76, 0.94), rgba(8, 12, 37, 0.94));
  box-shadow:
    0 9px 18px rgba(0, 0, 0, 0.34),
    0 0 16px rgba(136, 83, 255, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

#start-screen .home-quick-settings .menu-control-button > span {
  border-radius: 13px;
  background:
    radial-gradient(circle at 32% 22%, rgba(255, 255, 255, 0.42), transparent 29%),
    linear-gradient(180deg, #ffe864, #ffc224 52%, #e58400);
  color: #321800;
  box-shadow:
    0 4px 0 rgba(111, 48, 0, 0.28),
    0 0 14px rgba(255, 209, 58, 0.28);
}

#start-screen .character-name-badge,
#start-screen .menu-character input:checked + .character-card .character-name-badge {
  min-width: 0;
  max-width: min(92%, 270px);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: translateY(0) scale(1);
  opacity: 1;
  font-size: clamp(34px, 4.2vw, 58px);
  color: rgb(var(--character-rgb));
  -webkit-text-stroke: 1px rgba(2, 5, 17, 0.9);
  text-shadow:
    0 4px 0 rgba(0, 0, 0, 0.68),
    0 0 12px rgba(var(--character-rgb), 0.82),
    0 0 30px rgba(var(--character-rgb), 0.46);
}

#start-screen .menu-character .character-card {
  transition:
    transform 260ms var(--kf-motion-ease-emphasis),
    filter 190ms ease;
}

#start-screen .menu-character .character-card::before {
  transition:
    opacity 210ms ease,
    transform 260ms var(--kf-motion-ease-emphasis),
    border-color 210ms ease,
    box-shadow 210ms ease;
}

html[data-character="bifly"] #start-screen .menu-character-bifly,
html[data-character="nabatick"] #start-screen .menu-character-nabatick {
  bottom: clamp(16px, 3.1dvh, 34px);
  z-index: 9;
  transform: translateX(-50%) translateY(-14px) scale(1.08);
  filter: saturate(1.2) brightness(1.1);
}

html[data-character="bifly"] #start-screen .menu-character-nabatick,
html[data-character="nabatick"] #start-screen .menu-character-bifly {
  bottom: clamp(26px, 4.3dvh, 44px);
  z-index: 4;
  transform: translateX(-50%) translateY(2px) scale(0.82);
  opacity: 0.78;
  filter: saturate(0.92) brightness(0.82);
}

html[data-character="bifly"] #start-screen .menu-character-bifly .character-card,
html[data-character="nabatick"] #start-screen .menu-character-nabatick .character-card {
  transform: translateZ(46px);
}

html[data-character="bifly"] #start-screen .menu-character-bifly .character-card::before,
html[data-character="nabatick"] #start-screen .menu-character-nabatick .character-card::before {
  opacity: 1;
  border-color: rgba(255, 235, 107, 0.92);
  box-shadow:
    0 0 20px rgba(255, 223, 68, 0.3),
    0 0 34px rgba(var(--character-rgb), 0.36),
    inset 0 0 20px rgba(var(--character-rgb), 0.14);
  transform: translateX(-50%) perspective(520px) rotateX(70deg) scale(1.1);
}

html[data-character="bifly"] #start-screen .menu-character-bifly .character-glow,
html[data-character="nabatick"] #start-screen .menu-character-nabatick .character-glow {
  opacity: 0.72;
  filter: blur(3px);
}

html[data-character="bifly"] #start-screen .menu-character-bifly img,
html[data-character="nabatick"] #start-screen .menu-character-nabatick img {
  transform: translateZ(58px) translateY(-10px) rotateX(1deg) rotateY(-2deg) scale(1.04);
  filter:
    drop-shadow(0 34px 30px rgba(0, 0, 0, 0.6))
    drop-shadow(0 0 32px rgba(var(--character-rgb), 0.62))
    drop-shadow(0 0 18px rgba(255, 233, 94, 0.28));
}

html[data-character="bifly"] #start-screen .menu-character-nabatick img,
html[data-character="nabatick"] #start-screen .menu-character-bifly img {
  transform: translateZ(18px) translateY(0) scale(0.92);
}

html[data-character="bifly"] #start-screen .menu-character-nabatick .character-name-badge,
html[data-character="nabatick"] #start-screen .menu-character-bifly .character-name-badge {
  opacity: 0.72;
  transform: translateY(-3px) scale(0.92);
}

#start-screen .menu-character.is-character-reacting {
  animation: selectedCharacterStep 560ms var(--kf-motion-ease-emphasis);
}

#start-screen .menu-character.is-character-reacting .character-card::before,
#start-screen .menu-character .character-card[data-reaction="selected"]::before {
  animation: selectedGroundPulse 720ms ease;
}

@keyframes selectedCharacterStep {
  0% { transform: translateX(-50%) translateY(8px) scale(0.94); }
  54% { transform: translateX(-50%) translateY(-23px) scale(1.13); }
  100% { transform: translateX(-50%) translateY(-14px) scale(1.08); }
}

@keyframes selectedGroundPulse {
  0% { opacity: 0.52; transform: translateX(-50%) perspective(520px) rotateX(70deg) scale(0.86); }
  48% { opacity: 1; transform: translateX(-50%) perspective(520px) rotateX(70deg) scale(1.22); }
  100% { opacity: 1; transform: translateX(-50%) perspective(520px) rotateX(70deg) scale(1.1); }
}

@media (max-width: 760px) and (orientation: portrait) {
  #start-screen .menu-actions {
    gap: 8px;
  }

  #start-screen .menu-actions .menu-icon-button,
  #start-screen #leaderboard-open.menu-icon-button {
    width: clamp(48px, 8.4vw, 58px);
    height: clamp(48px, 8.4vw, 58px);
    border-radius: 16px;
  }

  #start-screen .hero-maze-frame {
    inset: -19% -18% -8%;
  }

  #start-screen .hero-enemy-a {
    top: 0;
    width: clamp(116px, 30vw, 172px);
  }

  #start-screen .hero-enemy-b {
    left: 8%;
    top: 25%;
    width: clamp(68px, 18vw, 104px);
  }

  #start-screen .hero-enemy-c {
    right: 8%;
    top: 30%;
    width: clamp(58px, 15vw, 92px);
  }

  html[data-character="bifly"] #start-screen .menu-character-bifly,
  html[data-character="nabatick"] #start-screen .menu-character-nabatick {
    bottom: clamp(18px, 3.3svh, 32px);
    transform: translateX(-50%) translateY(-12px) scale(1.07);
  }

  html[data-character="bifly"] #start-screen .menu-character-nabatick,
  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    bottom: clamp(28px, 4.8svh, 42px);
    transform: translateX(-50%) translateY(2px) scale(0.8);
  }

  #start-screen .character-name-badge,
  #start-screen .menu-character input:checked + .character-card .character-name-badge {
    font-size: clamp(35px, 8.6vw, 48px);
  }
}

@media (max-width: 380px) and (orientation: portrait) {
  #start-screen .menu-actions .menu-icon-button,
  #start-screen #leaderboard-open.menu-icon-button {
    width: 46px;
    height: 46px;
    border-radius: 15px;
  }

  html[data-character="bifly"] #start-screen .menu-character-bifly,
  html[data-character="nabatick"] #start-screen .menu-character-nabatick {
    transform: translateX(-50%) translateY(-9px) scale(1.04);
  }

  html[data-character="bifly"] #start-screen .menu-character-nabatick,
  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    transform: translateX(-50%) translateY(1px) scale(0.78);
  }
}

/* Keep the personal-best tile tucked above the logo on phone screens. */
#start-screen .menu-best-card {
  position: relative;
  z-index: 12;
  transform: translateY(clamp(-16px, -1.55svh, -9px));
}

@media (max-width: 760px) and (orientation: portrait) {
  #start-screen .home-player-bar {
    align-items: flex-start;
    padding-top: max(2px, env(safe-area-inset-top));
  }

  #start-screen .menu-best-card {
    margin-left: clamp(2px, 1.5vw, 8px);
    transform: translateY(clamp(-18px, -1.9svh, -10px));
  }
}

/* Final mobile top-bar composition: one clean row above the logo. */
@media (max-width: 760px) and (orientation: portrait) {
  #start-screen .main-menu {
    grid-template-rows:
      clamp(74px, 9svh, 92px)
      clamp(108px, 14svh, 142px)
      minmax(0, 1fr)
      clamp(96px, 11.2svh, 118px);
  }

  #start-screen .home-player-bar {
    position: absolute !important;
    inset:
      max(10px, env(safe-area-inset-top))
      max(12px, env(safe-area-inset-right))
      auto
      max(12px, env(safe-area-inset-left));
    height: clamp(52px, 6.5svh, 64px);
    display: grid !important;
    grid-template-columns: minmax(142px, 44vw) minmax(0, 1fr) auto;
    align-items: center !important;
    gap: clamp(8px, 2vw, 12px);
    padding: 0 !important;
    transform: none !important;
    direction: ltr;
    pointer-events: none;
  }

  #start-screen .home-player-card {
    display: none !important;
  }

  #start-screen .menu-best-card {
    grid-column: 1;
    width: min(44vw, 176px);
    min-width: 142px;
    min-height: clamp(52px, 6.5svh, 64px);
    display: grid;
    grid-template-columns: clamp(42px, 11vw, 52px) minmax(0, 1fr);
    align-items: center;
    gap: clamp(6px, 1.5vw, 9px);
    margin: 0 !important;
    padding: 6px 8px;
    border-radius: clamp(14px, 4vw, 18px);
    transform: none !important;
    pointer-events: auto;
  }

  #start-screen .menu-best-icon {
    display: grid;
    width: clamp(40px, 10.5vw, 50px);
    height: clamp(40px, 10.5vw, 50px);
    border-radius: 13px;
  }

  #start-screen .menu-best-copy {
    justify-items: center;
  }

  #start-screen .menu-best-copy span {
    font-size: clamp(10px, 2.65vw, 12px);
    line-height: 1;
  }

  #start-screen .menu-best-copy strong {
    font-size: clamp(24px, 7vw, 34px);
    line-height: 0.96;
  }

  #start-screen .menu-actions {
    grid-column: 3;
    width: auto;
    height: clamp(52px, 6.5svh, 64px);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(7px, 1.8vw, 10px);
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    pointer-events: auto;
  }

  #start-screen .menu-actions .menu-icon-button,
  #start-screen #leaderboard-open.menu-icon-button {
    flex: 0 0 clamp(50px, 13.2vw, 60px);
    position: relative;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: clamp(50px, 13.2vw, 60px);
    height: clamp(50px, 13.2vw, 60px);
    border-radius: clamp(15px, 4vw, 18px);
    transform: none;
  }

  #start-screen .menu-actions .menu-icon-button::after {
    width: 52%;
    height: 52%;
  }

  #start-screen .menu-logo {
    align-self: start;
    transform: translateY(clamp(6px, 1.2svh, 12px)) !important;
  }

  #start-screen .menu-logo-title {
    width: clamp(290px, 82vw, 430px);
    height: clamp(112px, 15svh, 152px);
  }
}

@media (max-width: 380px) and (orientation: portrait) {
  #start-screen .home-player-bar {
    grid-template-columns: minmax(132px, 42vw) minmax(0, 1fr) auto;
    gap: 6px;
  }

  #start-screen .menu-best-card {
    min-width: 132px;
    padding-inline: 7px;
  }

  #start-screen .menu-actions {
    gap: 6px;
  }

  #start-screen .menu-actions .menu-icon-button,
  #start-screen #leaderboard-open.menu-icon-button {
    flex-basis: 46px;
    width: 46px;
    height: 46px;
  }
}

/* Final character-stage balance: clear heroes without swallowing the home screen. */
#start-screen .menu-character,
html[data-character="bifly"] #start-screen .menu-character-bifly,
html[data-character="nabatick"] #start-screen .menu-character-nabatick,
html[data-character="bifly"] #start-screen .menu-character-nabatick,
html[data-character="nabatick"] #start-screen .menu-character-bifly {
  width: clamp(226px, 27.5vw, 400px);
}

#start-screen .menu-character .character-card {
  min-height: clamp(270px, 38dvh, 440px);
}

#start-screen .menu-character img,
#start-screen .menu-character-nabatick img {
  width: min(106%, clamp(232px, 26.5vw, 388px));
  max-height: clamp(226px, 34.5dvh, 386px);
}

#start-screen .menu-character-bifly img {
  width: min(106%, clamp(232px, 27vw, 392px));
}

#start-screen .menu-character-nabatick img {
  width: min(110%, clamp(244px, 28vw, 404px));
}

html[data-character="bifly"] #start-screen .menu-character-bifly,
html[data-character="nabatick"] #start-screen .menu-character-nabatick {
  transform: translateX(-50%) translateY(-12px) scale(1.04);
}

html[data-character="bifly"] #start-screen .menu-character-nabatick,
html[data-character="nabatick"] #start-screen .menu-character-bifly {
  transform: translateX(-50%) translateY(1px) scale(0.8);
  opacity: 0.86;
  filter: saturate(0.94) brightness(0.86);
}

html[data-character="bifly"] #start-screen .menu-character-nabatick .character-name-badge,
html[data-character="nabatick"] #start-screen .menu-character-bifly .character-name-badge {
  opacity: 0.86;
  transform: translateY(-2px) scale(0.9);
}

html[data-language="en"] #start-screen .character-name-badge,
html[data-language="en"] #start-screen .menu-character input:checked + .character-card .character-name-badge {
  width: max-content;
  max-width: min(96%, 340px);
  overflow: visible;
  padding: 0 8px 4px;
  font-family: "Assistant", "Segoe UI", Arial, sans-serif;
  font-size: clamp(34px, 3.9vw, 58px);
  font-weight: 800;
  line-height: 0.96;
  letter-spacing: 0;
  text-overflow: clip;
  white-space: nowrap;
  opacity: 1;
  filter: saturate(1.04) brightness(1.05);
  -webkit-text-stroke: 0.65px rgba(2, 5, 17, 0.92);
  text-shadow:
    0 3px 0 rgba(0, 0, 0, 0.68),
    0 0 9px rgba(var(--character-rgb), 0.74),
    0 0 20px rgba(var(--character-rgb), 0.38);
}

html[data-language="en"] #start-screen .menu-character-bifly .character-name-badge {
  font-size: clamp(35px, 4vw, 60px);
}

html[data-language="en"] #start-screen .menu-character-nabatick .character-name-badge {
  max-width: min(98%, 360px);
  font-size: clamp(32px, 3.55vw, 54px);
}

@media (max-width: 760px) and (orientation: portrait) {
  #start-screen .menu-character,
  html[data-character="bifly"] #start-screen .menu-character-bifly,
  html[data-character="nabatick"] #start-screen .menu-character-nabatick,
  html[data-character="bifly"] #start-screen .menu-character-nabatick,
  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    width: clamp(188px, 45.5vw, 292px);
  }

  #start-screen .menu-character .character-card {
    min-height: clamp(222px, 29.5svh, 318px);
  }

  #start-screen .menu-character img,
  #start-screen .menu-character-nabatick img {
    width: min(108%, clamp(194px, 45vw, 294px));
    max-height: clamp(190px, 26.5svh, 292px);
  }

  #start-screen .menu-character-bifly img {
    width: min(108%, clamp(194px, 45.5vw, 296px));
  }

  #start-screen .menu-character-nabatick img {
    width: min(112%, clamp(204px, 47.5vw, 306px));
  }

  html[data-character="bifly"] #start-screen .menu-character-bifly,
  html[data-character="nabatick"] #start-screen .menu-character-nabatick {
    transform: translateX(-50%) translateY(-7px) scale(1.01);
  }

  html[data-character="bifly"] #start-screen .menu-character-nabatick,
  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    transform: translateX(-50%) translateY(1px) scale(0.76);
    opacity: 0.84;
  }

  html[data-language="en"] #start-screen .character-name-badge,
  html[data-language="en"] #start-screen .menu-character input:checked + .character-card .character-name-badge {
    max-width: min(100%, 260px);
    padding-inline: 6px;
    font-size: clamp(30px, 7.2vw, 43px);
    -webkit-text-stroke-width: 0.55px;
    text-shadow:
      0 2px 0 rgba(0, 0, 0, 0.72),
      0 0 8px rgba(var(--character-rgb), 0.68),
      0 0 18px rgba(var(--character-rgb), 0.34);
  }

  html[data-language="en"] #start-screen .menu-character-bifly .character-name-badge {
    font-size: clamp(31px, 7.4vw, 44px);
  }

  html[data-language="en"] #start-screen .menu-character-nabatick .character-name-badge {
    font-size: clamp(27px, 6.4vw, 38px);
  }
}

@media (max-width: 380px) and (orientation: portrait) {
  #start-screen .menu-character,
  html[data-character="bifly"] #start-screen .menu-character-bifly,
  html[data-character="nabatick"] #start-screen .menu-character-nabatick,
  html[data-character="bifly"] #start-screen .menu-character-nabatick,
  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    width: clamp(178px, 45vw, 268px);
  }

  #start-screen .menu-character .character-card {
    min-height: clamp(214px, 28svh, 296px);
  }

  html[data-character="bifly"] #start-screen .menu-character-bifly,
  html[data-character="nabatick"] #start-screen .menu-character-nabatick {
    transform: translateX(-50%) translateY(-6px) scale(0.98);
  }

  html[data-character="bifly"] #start-screen .menu-character-nabatick,
  html[data-character="nabatick"] #start-screen .menu-character-bifly {
    transform: translateX(-50%) translateY(1px) scale(0.74);
  }

  html[data-language="en"] #start-screen .menu-character-nabatick .character-name-badge {
    font-size: clamp(25px, 6.2vw, 35px);
  }
}

/* Premium home-character motion: restrained weight, personality, and clean settling. */
#start-screen .menu-character .character-card {
  transition:
    transform 520ms cubic-bezier(0.22, 0.78, 0.24, 1),
    filter 260ms ease;
}

#start-screen .menu-character img {
  backface-visibility: hidden;
  transform: translate3d(0, 0, 18px) scale(0.92);
  animation: premiumCharacterRest 7.2s cubic-bezier(0.42, 0, 0.58, 1) infinite;
  transition:
    filter 280ms ease,
    opacity 160ms ease;
  will-change: transform;
}

#start-screen .menu-character-bifly img {
  animation-delay: -1.1s;
}

#start-screen .menu-character-nabatick img {
  animation-delay: -3.4s;
}

#start-screen .menu-character-bifly.is-character-live img {
  animation: premiumBiflyIdle 6.4s cubic-bezier(0.42, 0, 0.58, 1) infinite;
}

#start-screen .menu-character-nabatick.is-character-live img {
  animation: premiumNabatickIdle 7s cubic-bezier(0.42, 0, 0.58, 1) infinite;
}

#start-screen .menu-character.is-character-reacting {
  animation: none;
}

#start-screen .menu-character-bifly .character-card[data-reaction="selected"] img {
  animation: premiumBiflySelect 940ms cubic-bezier(0.16, 0.84, 0.24, 1) both;
}

#start-screen .menu-character-nabatick .character-card[data-reaction="selected"] img {
  animation: premiumNabatickSelect 940ms cubic-bezier(0.16, 0.84, 0.24, 1) both;
}

#start-screen .menu-character-bifly .character-card[data-reaction="tap"] img {
  animation: premiumBiflyTap 560ms cubic-bezier(0.2, 0.82, 0.24, 1) both;
}

#start-screen .menu-character-nabatick .character-card[data-reaction="tap"] img {
  animation: premiumNabatickTap 560ms cubic-bezier(0.2, 0.82, 0.24, 1) both;
}

#start-screen .menu-character .character-card[data-reaction="blink"] img {
  animation: premiumCharacterBlink 190ms ease-in-out both;
}

#start-screen .menu-character.is-character-reacting .character-card::before,
#start-screen .menu-character .character-card[data-reaction="selected"]::before {
  animation: premiumGroundResponse 820ms cubic-bezier(0.2, 0.78, 0.24, 1);
}

@keyframes premiumCharacterRest {
  0%, 100% { transform: translate3d(0, 0, 18px) scale(0.92); }
  48% { transform: translate3d(0, -2px, 21px) scale(0.923, 0.918); }
  56% { transform: translate3d(0, -2.5px, 22px) scale(0.924, 0.918); }
}

@keyframes premiumBiflyIdle {
  0%, 100% { transform: translate3d(0, -10px, 58px) rotateZ(0deg) scale(1.04); }
  46% { transform: translate3d(0, -12.5px, 60px) rotateZ(-0.18deg) scale(1.044, 1.034); }
  54% { transform: translate3d(0, -13px, 61px) rotateZ(0.12deg) scale(1.045, 1.033); }
}

@keyframes premiumNabatickIdle {
  0%, 100% { transform: translate3d(0, -10px, 58px) rotateZ(0deg) scale(1.04); }
  36% { transform: translate3d(-0.8px, -13px, 61px) rotateZ(-0.34deg) scale(1.042, 1.036); }
  68% { transform: translate3d(0.8px, -11.5px, 60px) rotateZ(0.28deg) scale(1.043, 1.037); }
}

@keyframes premiumBiflySelect {
  0% { transform: translate3d(0, 0, 18px) scale(0.92); }
  20% { transform: translate3d(0, 3px, 24px) scale(0.96, 0.9); }
  52% { transform: translate3d(0, -16px, 62px) rotateZ(-0.7deg) scale(1.052, 1.025); }
  76% { transform: translate3d(0, -8px, 56px) rotateZ(0.28deg) scale(1.032, 1.046); }
  100% { transform: translate3d(0, -10px, 58px) rotateZ(0deg) scale(1.04); }
}

@keyframes premiumNabatickSelect {
  0% { transform: translate3d(0, 0, 18px) scale(0.92); }
  18% { transform: translate3d(0, 2px, 24px) rotateZ(-0.45deg) scale(0.95, 0.91); }
  50% { transform: translate3d(0, -14px, 62px) rotateZ(0.9deg) scale(1.046, 1.025); }
  74% { transform: translate3d(-1px, -9px, 57px) rotateZ(-0.36deg) scale(1.036, 1.044); }
  100% { transform: translate3d(0, -10px, 58px) rotateZ(0deg) scale(1.04); }
}

@keyframes premiumBiflyTap {
  0%, 100% { transform: translate3d(0, -10px, 58px) scale(1.04); }
  24% { transform: translate3d(0, -6px, 55px) scale(1.055, 1.018); }
  58% { transform: translate3d(0, -13px, 61px) scale(1.03, 1.052); }
}

@keyframes premiumNabatickTap {
  0%, 100% { transform: translate3d(0, -10px, 58px) rotateZ(0deg) scale(1.04); }
  30% { transform: translate3d(-1px, -8px, 56px) rotateZ(-0.65deg) scale(1.045, 1.025); }
  64% { transform: translate3d(1px, -12px, 60px) rotateZ(0.55deg) scale(1.035, 1.047); }
}

@keyframes premiumCharacterBlink {
  0%, 100% { transform: translate3d(0, -10px, 58px) scale(1.04); filter: brightness(1); }
  50% { transform: translate3d(0, -9px, 58px) scale(1.042, 1.032); filter: brightness(1.035); }
}

@keyframes premiumGroundResponse {
  0% { opacity: 0.58; transform: translateX(-50%) perspective(520px) rotateX(70deg) scale(0.94); }
  48% { opacity: 1; transform: translateX(-50%) perspective(520px) rotateX(70deg) scale(1.14, 1.08); }
  100% { opacity: 1; transform: translateX(-50%) perspective(520px) rotateX(70deg) scale(1.1); }
}

@media (prefers-reduced-motion: reduce) {
  #start-screen .menu-character,
  #start-screen .menu-character .character-card,
  #start-screen .menu-character img,
  #start-screen .menu-character .character-card::before {
    animation: none !important;
    transition-duration: 1ms !important;
  }
}

html.kf-reduced-motion #start-screen .menu-character,
html.kf-reduced-motion #start-screen .menu-character .character-card,
html.kf-reduced-motion #start-screen .menu-character img,
html.kf-reduced-motion #start-screen .menu-character .character-card::before {
  animation: none !important;
  transition-duration: 1ms !important;
}

/* Daily maze lives with the other compact home actions. */
#start-screen .menu-actions .daily-challenge-open {
  --action-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.15' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 4h11l1 3v13H6Z'/%3E%3Cpath d='M9 9h6M9 13h6M9 17h4'/%3E%3C/svg%3E");
  position: relative;
  inset: auto;
  z-index: 2;
  flex-shrink: 0;
  min-width: 0;
  min-height: 0;
  padding: 0;
  color: #effdff;
  transform: none;
}

#start-screen .menu-actions .daily-challenge-open:hover,
#start-screen .menu-actions .daily-challenge-open:focus-visible {
  outline: none;
  filter: brightness(1.12);
  transform: translateY(-2px);
}

#start-screen .menu-actions .daily-challenge-open:active {
  transform: translateY(2px) scale(0.98);
}

#start-screen .daily-challenge-icon {
  background:
    radial-gradient(circle at 32% 24%, rgba(255, 255, 255, 0.42), transparent 30%),
    linear-gradient(180deg, rgba(82, 237, 255, 0.42), rgba(76, 76, 218, 0.5)),
    rgba(18, 24, 77, 0.9) !important;
  color: #f5feff !important;
  border-color: rgba(132, 240, 255, 0.7) !important;
  box-shadow:
    0 4px 0 rgba(5, 9, 48, 0.7),
    0 0 18px rgba(68, 227, 255, 0.42),
    inset 0 0 14px rgba(127, 231, 255, 0.16) !important;
}

#start-screen .daily-challenge-copy.kf-visually-hidden {
  position: absolute !important;
}

#start-screen .daily-challenge-open em {
  position: absolute;
  z-index: 5;
  top: -7px;
  right: -7px;
  min-width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  padding: 0 5px;
  border: 2px solid #231250;
  border-radius: 999px;
  background: linear-gradient(180deg, #fff36f, #ffc52a 60%, #ee8500);
  color: #351500;
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
  line-height: 1;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.42), 0 0 12px rgba(255, 216, 74, 0.4);
  pointer-events: none;
}

@media (max-width: 760px) and (orientation: portrait) {
  #start-screen .home-player-bar {
    grid-template-columns: minmax(124px, 38vw) minmax(0, 1fr) auto;
    gap: 6px;
  }

  #start-screen .menu-best-card {
    width: min(38vw, 164px);
    min-width: 124px;
  }

  #start-screen .menu-actions {
    gap: clamp(5px, 1.3vw, 7px);
  }

  #start-screen .menu-actions .menu-icon-button,
  #start-screen #leaderboard-open.menu-icon-button {
    flex-basis: clamp(42px, 10.8vw, 50px);
    width: clamp(42px, 10.8vw, 50px);
    height: clamp(42px, 10.8vw, 50px);
    border-radius: clamp(13px, 3.5vw, 16px);
  }

  #start-screen .daily-challenge-open em {
    top: -5px;
    right: -5px;
    min-width: 20px;
    height: 20px;
    font-size: 10px;
  }

  #start-screen #leaderboard-open .home-world-rank-badge {
    right: 1px;
    bottom: 1px;
    padding-inline: 4px;
  }

  #start-screen #leaderboard-open .home-world-rank-badge small {
    display: none;
  }
}

@media (max-width: 380px) and (orientation: portrait) {
  #start-screen .home-player-bar {
    grid-template-columns: minmax(116px, 36vw) minmax(0, 1fr) auto;
  }

  #start-screen .menu-best-card {
    width: min(36vw, 136px);
    min-width: 116px;
  }

  #start-screen .menu-actions .menu-icon-button,
  #start-screen #leaderboard-open.menu-icon-button {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
  }
}

/* Research-informed character nameplates: the heroes stay dominant and names stay crisp. */
#start-screen .menu-character-bifly {
  --character-name-accent: #72e8ff;
  --character-name-accent-rgb: 114, 232, 255;
}

#start-screen .menu-character-nabatick {
  --character-name-accent: #cbff4d;
  --character-name-accent-rgb: 203, 255, 77;
}

#start-screen .character-nameplate,
#start-screen .menu-character input:checked + .character-card .character-nameplate {
  position: relative;
  z-index: 20;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  min-width: clamp(104px, 10vw, 142px);
  max-width: min(90%, 260px);
  min-height: 48px;
  margin-top: clamp(5px, 0.8dvh, 10px);
  padding: 7px 18px 9px;
  border: 1px solid rgba(var(--character-name-accent-rgb), 0.62);
  border-radius: 15px;
  background: rgba(6, 11, 31, 0.94);
  box-shadow:
    inset 0 -3px 0 rgba(var(--character-name-accent-rgb), 0.72),
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 8px 18px rgba(0, 0, 0, 0.46),
    0 0 16px rgba(var(--character-name-accent-rgb), 0.18);
  opacity: 1;
  transform: translateY(0) scale(1);
  transition:
    transform 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    background-color 180ms ease;
  isolation: isolate;
}

#start-screen .character-name-badge,
#start-screen .menu-character input:checked + .character-card .character-name-badge,
html[data-language="en"] #start-screen .character-name-badge,
html[data-language="en"] #start-screen .menu-character input:checked + .character-card .character-name-badge {
  display: block;
  width: auto;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: #f8fbff;
  -webkit-text-fill-color: currentColor;
  -webkit-text-stroke: 0;
  paint-order: normal;
  font-family: "Rubik", "Assistant", "Noto Sans Hebrew", Arial, sans-serif;
  font-size: clamp(25px, 2.25vw, 33px);
  font-weight: 900;
  font-synthesis: none;
  line-height: 1;
  letter-spacing: -0.045em;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.72);
  filter: none;
  opacity: 1;
  transform: none;
}

#start-screen .menu-character input:checked + .character-card .character-nameplate {
  border-color: #ffe674;
  background: rgba(9, 17, 42, 0.98);
  box-shadow:
    inset 0 -3px 0 var(--character-name-accent),
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    0 9px 20px rgba(0, 0, 0, 0.5),
    0 0 18px rgba(255, 223, 84, 0.24),
    0 0 22px rgba(var(--character-name-accent-rgb), 0.22);
  transform: translateY(-1px) scale(1.02);
}

#start-screen .menu-character input:focus-visible + .character-card .character-nameplate {
  outline: 3px solid #ffffff;
  outline-offset: 4px;
}

html[data-character="bifly"] #start-screen .menu-character-nabatick,
html[data-character="nabatick"] #start-screen .menu-character-bifly {
  opacity: 1;
  filter: none;
}

html[data-character="bifly"] #start-screen .menu-character-nabatick img,
html[data-character="nabatick"] #start-screen .menu-character-bifly img {
  opacity: 0.66;
  filter:
    saturate(0.88)
    brightness(0.78)
    drop-shadow(0 24px 26px rgba(0, 0, 0, 0.52));
}

html[data-character="bifly"] #start-screen .menu-character-nabatick .character-nameplate,
html[data-character="nabatick"] #start-screen .menu-character-bifly .character-nameplate {
  opacity: 0.9;
  transform: translateY(-1px) scale(1.12);
}

html[data-language="en"] #start-screen .character-name-badge,
html[data-language="en"] #start-screen .menu-character input:checked + .character-card .character-name-badge {
  font-family: "Fredoka", "Assistant", "Segoe UI", Arial, sans-serif;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 700;
  letter-spacing: -0.025em;
}

@media (max-width: 760px) and (orientation: portrait) {
  #start-screen .character-nameplate,
  #start-screen .menu-character input:checked + .character-card .character-nameplate {
    min-width: clamp(96px, 28vw, 124px);
    min-height: 44px;
    margin-top: 4px;
    padding: 6px 14px 8px;
    border-radius: 14px;
  }

  #start-screen .character-name-badge,
  #start-screen .menu-character input:checked + .character-card .character-name-badge,
  html[data-language="en"] #start-screen .character-name-badge,
  html[data-language="en"] #start-screen .menu-character input:checked + .character-card .character-name-badge {
    font-size: clamp(23px, 6.5vw, 28px);
    letter-spacing: -0.04em;
  }

  html[data-language="en"] #start-screen .character-name-badge,
  html[data-language="en"] #start-screen .menu-character input:checked + .character-card .character-name-badge {
    font-size: clamp(20px, 5.7vw, 25px);
    letter-spacing: -0.02em;
  }

  html[data-character="bifly"] #start-screen .menu-character-nabatick .character-nameplate,
  html[data-character="nabatick"] #start-screen .menu-character-bifly .character-nameplate {
    transform: translateY(-1px) scale(1.16);
  }
}

@media (prefers-reduced-motion: reduce) {
  #start-screen .character-nameplate {
    transition: none;
  }
}

/* Three-hero swipe carousel: one luminous front hero, two dim rear heroes. */
#start-screen .menu-character-mia {
  --character-rgb: 214, 156, 255;
  --character-name-accent: #dfadff;
  --character-name-accent-rgb: 223, 173, 255;
}

#start-screen .menu-character-options {
  --carousel-drag-progress: 0;
  overflow: visible;
  touch-action: pan-y;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  perspective: 980px;
}

#start-screen .menu-character-options img {
  -webkit-user-drag: none;
  user-select: none;
}

#start-screen .menu-character-options.is-carousel-dragging {
  cursor: grabbing;
}

#start-screen .menu-character-options.is-carousel-dragging .menu-character[data-carousel-slot],
#start-screen .menu-character-options.is-carousel-dragging .menu-character[data-carousel-slot] img,
#start-screen .menu-character-options.is-carousel-dragging .menu-character[data-carousel-slot] .character-glow,
#start-screen .menu-character-options.is-carousel-dragging .menu-character[data-carousel-slot] .character-nameplate {
  transition: none !important;
}

#start-screen .menu-character-options.is-carousel-dragging .menu-character[data-carousel-slot] img {
  animation-play-state: paused !important;
}

html #start-screen .menu-character[data-carousel-slot] {
  width: clamp(226px, 27.5vw, 400px);
  transform-origin: center bottom;
  transition:
    left 460ms cubic-bezier(0.2, 0.78, 0.22, 1),
    bottom 460ms cubic-bezier(0.2, 0.78, 0.22, 1),
    transform 460ms cubic-bezier(0.2, 0.78, 0.22, 1),
    opacity 280ms ease;
  will-change: left, bottom, transform, opacity;
}

html #start-screen .menu-character[data-carousel-slot="front"] {
  left: 50%;
  bottom: clamp(6px, 1.8dvh, 20px);
  z-index: 12;
  opacity: 1;
  filter: none;
  transform: translate3d(-50%, -10px, 48px) scale(1.04);
}

html #start-screen .menu-character[data-carousel-slot="back-left"] {
  left: 18%;
  bottom: clamp(106px, 17dvh, 186px);
  z-index: 5;
  opacity: 0.76;
  filter: none;
  transform: translate3d(-50%, 0, -80px) scale(0.58);
}

html #start-screen .menu-character[data-carousel-slot="back-right"] {
  left: 82%;
  bottom: clamp(106px, 17dvh, 186px);
  z-index: 5;
  opacity: 0.76;
  filter: none;
  transform: translate3d(-50%, 0, -80px) scale(0.58);
}

html #start-screen .menu-character[data-carousel-slot^="back"] .character-card {
  transform: translateZ(-26px);
}

html #start-screen .menu-character[data-carousel-slot^="back"] img {
  opacity: 0.58;
  filter: saturate(0.62) brightness(0.54) contrast(0.94) drop-shadow(0 18px 20px rgba(0, 0, 0, 0.54));
  animation: none !important;
}

html #start-screen .menu-character[data-carousel-slot^="back"] .character-glow,
html #start-screen .menu-character[data-carousel-slot^="back"] .character-card::before {
  opacity: 0.12;
  animation: none;
  box-shadow: none;
}

html #start-screen .menu-character[data-carousel-slot^="back"] .character-nameplate {
  opacity: 0.46;
  transform: translateY(-2px) scale(0.86);
  border-color: rgba(var(--character-name-accent-rgb), 0.28);
  box-shadow: 0 7px 14px rgba(0, 0, 0, 0.38);
}

html #start-screen .menu-character[data-carousel-slot="front"] .character-card {
  transform: translateZ(46px);
}

html #start-screen .menu-character[data-carousel-slot="front"] img {
  opacity: 1;
  filter:
    saturate(1.08)
    brightness(1.05)
    drop-shadow(0 30px 30px rgba(0, 0, 0, 0.58))
    drop-shadow(0 0 28px rgba(var(--character-rgb), 0.5));
}

html #start-screen .menu-character[data-carousel-slot="front"] .character-glow {
  opacity: 0.68;
}

html #start-screen .menu-character[data-carousel-slot="front"] .character-nameplate {
  opacity: 1;
  transform: translateY(-1px) scale(1.02);
}

#start-screen .menu-character-mia img {
  width: min(106%, clamp(232px, 27vw, 392px));
  animation-delay: -2.2s;
}

#start-screen .menu-character-mia.is-character-live img {
  animation: premiumMiaIdle 6.8s cubic-bezier(0.42, 0, 0.58, 1) infinite;
}

#start-screen .menu-character-mia .character-card[data-reaction="selected"] img {
  animation: premiumMiaSelect 940ms cubic-bezier(0.16, 0.84, 0.24, 1) both;
}

#start-screen .menu-character-mia .character-card[data-reaction="tap"] img {
  animation: premiumMiaTap 560ms cubic-bezier(0.2, 0.82, 0.24, 1) both;
}

@keyframes premiumMiaIdle {
  0%, 100% { transform: translate3d(0, -10px, 58px) rotateZ(0deg) scale(1.04); }
  42% { transform: translate3d(-0.6px, -13px, 61px) rotateZ(-0.22deg) scale(1.046, 1.034); }
  68% { transform: translate3d(0.7px, -11.5px, 60px) rotateZ(0.18deg) scale(1.042, 1.038); }
}

@keyframes premiumMiaSelect {
  0% { transform: translate3d(0, 0, 18px) scale(0.92); }
  18% { transform: translate3d(0, 3px, 24px) scale(0.96, 0.9); }
  50% { transform: translate3d(0, -15px, 62px) rotateZ(-0.55deg) scale(1.052, 1.026); }
  75% { transform: translate3d(0, -8px, 56px) rotateZ(0.24deg) scale(1.034, 1.046); }
  100% { transform: translate3d(0, -10px, 58px) rotateZ(0deg) scale(1.04); }
}

@keyframes premiumMiaTap {
  0%, 100% { transform: translate3d(0, -10px, 58px) rotateZ(0deg) scale(1.04); }
  28% { transform: translate3d(-1px, -7px, 56px) rotateZ(-0.5deg) scale(1.05, 1.02); }
  62% { transform: translate3d(1px, -13px, 61px) rotateZ(0.42deg) scale(1.032, 1.052); }
}

@media (max-width: 760px) and (orientation: portrait) {
  html #start-screen .menu-character[data-carousel-slot] {
    width: clamp(188px, 46vw, 292px);
  }

  html #start-screen .menu-character[data-carousel-slot="front"] {
    bottom: clamp(2px, 0.8svh, 10px);
    transform: translate3d(-50%, -6px, 42px) scale(1);
  }

  html #start-screen .menu-character[data-carousel-slot="back-left"] {
    left: 16%;
    bottom: clamp(92px, 14.5svh, 148px);
    transform: translate3d(-50%, 0, -72px) scale(0.54);
  }

  html #start-screen .menu-character[data-carousel-slot="back-right"] {
    left: 84%;
    bottom: clamp(92px, 14.5svh, 148px);
    transform: translate3d(-50%, 0, -72px) scale(0.54);
  }

  #start-screen .menu-character-mia img {
    width: min(108%, clamp(194px, 45.5vw, 296px));
  }
}

html.android-low-memory-runtime #start-screen .menu-character[data-carousel-slot] {
  transition-duration: 240ms;
}

html.android-low-memory-runtime #start-screen .menu-character[data-carousel-slot^="back"] img {
  filter: brightness(0.58) saturate(0.66);
}
