
.menu-back {
  min-width: 120px;
  padding: 10px 16px;
  border-radius: 12px;
  background: #efedf9;
  color: #5e568f;
  font-size: 14px;
}
@media (min-width: 701px) and (max-height: 930px) {
  .menu-shell {
    --brand-width: 330px;
  }
}
@media (min-width: 701px) and (max-height: 790px) {
  .menu-shell {
    --brand-width: 260px;
  }
}
@media (max-width: 700px) {
  .menu-shell {
    --brand-width: 230px;
  }
  .game-modes button {
    min-height: 90px;
  }
  .game-modes button small {
    font-size: 11px;
  }
  .game-modes button .mode-pair canvas {
    width: 33px;
    height: 33px;
  }
}
@media (max-width: 350px) {
  .menu-shell {
    --brand-width: 235px;
  }
}
@media (max-width: 700px) and (max-height: 700px) {
  .menu-shell {
    --brand-width: 180px;
  }
}
@media (min-width: 701px) and (max-height: 500px) {
  .menu-shell {
    display: grid;
    --brand-width: 210px;
  }
  .menu-body {
    height: 100%;
    box-sizing: border-box;
  }
}
.game-modes {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: min(100%, 500px);
  margin: 0 auto;
}
.game-modes button {
  display: flex;
  align-items: center;
  min-height: 77px;
  padding: 4px 15px 4px 8px;
  text-align: left;
  gap: 12px;
  border-radius: 18px;
  background: linear-gradient(110deg, #f8f5ff, #eeebfa);
  transition:
    transform 0.18s,
    box-shadow 0.18s,
    background 0.18s;
}
.game-modes button img {
  display: block;
  width: 76px;
  height: 68px;
  object-fit: contain;
  flex: none;
  filter: drop-shadow(0 3px 2px #77709935);
  transition: transform 0.2s;
}
.game-modes button .mode-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  flex: 1;
}
.game-modes button b {
  font: 700 17px/1.1 var(--font-body);
  color: #484478;
}
.game-modes button small {
  font: 500 12px/1.25 var(--font-body);
  color: #817a9f;
}
.mode-arrow {
  font: 600 28px/1 var(--font-body);
  color: #a39ac7;
}
.game-modes button:hover img {
  transform: translateY(-3px) rotate(-3deg);
}
.game-modes button:active {
  transform: scale(0.98);
}
.game-modes button[data-game-mode="classic"] {
  background: linear-gradient(105deg, #fff2f3, #f5eaf5);
}
.game-modes button[data-game-mode="quick"] {
  background: linear-gradient(105deg, #fff6dc, #f7eff1);
}
.game-modes button[data-game-mode="teams"] {
  background: linear-gradient(105deg, #e5f7ed, #e9f1fc);
}
.game-modes button[data-game-mode="custom"] {
  background: linear-gradient(105deg, #eaf4ff, #f2eafb);
}
@media (max-width: 700px) {
  .game-modes {
    gap: 6px;
  }
  .game-modes button {
    min-height: 69px;
    padding: 3px 10px 3px 5px;
    gap: 8px;
  }
  .game-modes button img {
    width: 67px;
    height: 62px;
  }
  .game-modes button b {
    font-size: 15px;
  }
  .game-modes button small {
    font-size: 11px;
  }
  .mode-arrow {
    font-size: 24px;
  }
}
@media (max-width: 700px) {
  .game-modes button small {
    font-size: 12px;
  }
  .welcome-cats img {
    width: 64px;
    height: 64px;
  }
  .welcome-cats img:nth-child(2) {
    width: 78px;
    height: 78px;
  }
  .menu-shell[data-view="home"] #menuHome {
    flex-basis: 88px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .game-modes button,
  .game-modes button img {
    transition: none;
  }
  .game-modes button:hover img {
    transform: none;
  }
}
@media (min-width: 701px) and (max-height: 500px) {
  .menu-body {
    padding-top: 38px;
  }
  .game-modes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }
  .game-modes button {
    min-height: 86px;
    padding: 3px 7px;
    gap: 5px;
  }
  .game-modes button img {
    width: 58px;
    height: 60px;
  }
  .game-modes button b {
    font-size: 14px;
  }
  .game-modes button small {
    font-size: 11px;
  }
  .mode-arrow {
    font-size: 22px;
  }
}
@keyframes menu-step-arrive {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.menu-view:not([hidden]) {
  animation: menu-step-arrive 0.24s ease-out both;
}
@media (prefers-reduced-motion: reduce) {
  .menu-view:not([hidden]) {
    animation: none;
  }
}

/* Keep the primary action intact and give text enough room at each breakpoint. */
.menu-play {
  flex-shrink: 0;
}
.menu-shell[data-view="players"] #playerSetup {
  flex: 0 0 auto;
  justify-content: flex-start;
}
.menu-shell[data-view="players"] .menu-heading {
  margin-block: 10px 12px;
}
.menu-shell[data-view="players"] .menu-back {
  margin-top: 7px;
}
.game-modes button b {
  font-size: 20px;
}
.game-modes button small {
  font-size: 15px;
  line-height: 1.3;
  color: #6e678e;
}
.game-mode-description {
  font-size: 15px;
}
@media (min-width: 701px) and (min-height: 791px) {
  .menu-shell[data-view="home"] .menu-brand img {
    width: 420px;
  }
  .menu-shell[data-view="players"] .seat {
    height: 145px;
    grid-template-rows: 58px 22px 16px 18px;
    padding: 7px 6px;
    row-gap: 3px;
  }
  .menu-shell[data-view="players"] .seat-cat {
    width: 76px;
    max-height: 58px;
  }
  .menu-shell[data-view="players"] .menu-play {
    height: 80px;
    margin-top: 10px;
  }
  .menu-shell[data-view="players"] .menu-body {
    padding-bottom: 24px;
  }
}
@media (max-width: 700px) {
  .game-modes button b {
    font-size: 17px;
  }
  .game-modes button small {
    font-size: 13px;
  }
  .game-mode-description {
    font-size: 13px;
  }
  .menu-shell[data-view="home"] .menu-brand img {
    width: 270px;
  }
}
@media (max-width: 700px) and (max-height: 700px) {
  .menu-shell[data-view="home"] .menu-brand img {
    width: 200px;
  }
}
@media (min-width: 701px) and (max-height: 500px) {
  .game-modes button b {
    font-size: 16px;
  }
  .game-modes button small {
    font-size: 12px;
  }
  .menu-shell[data-view="players"] .menu-body {
    padding-top: 30px;
  }
  .menu-shell[data-view="players"] .game-mode-description,
  .menu-shell[data-view="players"] .selection-tip {
    display: none;
  }
  .menu-shell[data-view="players"] .menu-heading {
    margin-block: 4px;
    font-size: 16px;
  }
  .menu-shell[data-view="players"] .seat {
    height: 92px;
    grid-template-rows: 36px 16px 12px 14px;
    padding: 4px 2px;
    row-gap: 2px;
  }
  .menu-shell[data-view="players"] .seat-cat {
    width: 47px;
    max-height: 36px;
  }
  .menu-shell[data-view="players"] .seat b {
    font-size: 14px;
  }
  .menu-shell[data-view="players"] .seat small {
    font-size: 10px;
  }
  .menu-shell[data-view="players"] .seat-state svg {
    width: 14px;
    height: 14px;
  }
  .menu-shell[data-view="players"] .menu-play {
    height: 56px;
    margin-top: 0;
  }
  .menu-shell[data-view="players"] .menu-back {
    margin-top: 3px;
  }
}

/* Seats set to "fora" nap in place: closed eyes on the portrait plus drifting Zzz. */
.menu-screen .seat {
  position: relative;
}
.menu-screen .seat.off .seat-cat {
  opacity: 0.72;
}
.seat-zzz {
  position: absolute;
  top: 2%;
  right: 6%;
  width: 34px;
  height: 40px;
  pointer-events: none;
  font-weight: 700;
  color: #7b6fd6;
  text-shadow:
    0 0 3px #fff,
    0 0 3px #fff;
}
.seat-zzz i {
  position: absolute;
  left: 0;
  bottom: 0;
  font-style: normal;
  line-height: 1;
  opacity: 0;
  animation: seat-zzz 2.7s ease-out infinite;
}
.seat-zzz i:nth-child(1) {
  font-size: 11px;
}
.seat-zzz i:nth-child(2) {
  font-size: 14px;
  animation-delay: 0.9s;
}
.seat-zzz i:nth-child(3) {
  font-size: 18px;
  animation-delay: 1.8s;
}
@keyframes seat-zzz {
  0% {
    opacity: 0;
    transform: translate(0, 4px) rotate(-8deg);
  }
  20% {
    opacity: 1;
  }
  70% {
    opacity: 0.85;
  }
  100% {
    opacity: 0;
    transform: translate(14px, -26px) rotate(10deg);
  }
}

/* Opening and setup: artwork leads, while each step keeps its own readable surface. */
.menu-shell:is([data-view="home"], [data-view="modes"], [data-view="players"], [data-view="ask"]) {
  width: min(570px, 100%);
  height: auto;
  max-height: calc(100dvh - 32px);
  display: flex;
  flex-direction: column;
}
.menu-shell:is([data-view="home"], [data-view="modes"], [data-view="players"], [data-view="ask"])
  .menu-frame {
  display: none;
}
.menu-shell[data-view="home"] .menu-brand img {
  width: min(510px, 90vw);
  max-width: 100%;
}
.menu-shell[data-view="home"] .menu-body {
  flex: none;
  overflow: visible;
  justify-content: flex-start;
  align-items: center;
  padding: 0 20px 12px;
}
.menu-shell[data-view="home"] #menuHome {
  display: none;
}
.menu-shell[data-view="home"] .menu-tagline {
  color: #292962;
  text-shadow: 0 1px 3px #fff, 0 0 10px #fff, 0 0 18px #fff;
  font-size: clamp(18px, 2vw, 23px);
  margin: 3px 0 24px;
}
.menu-shell[data-view="home"] .menu-play {
  max-width: 500px;
  margin: 0;
}
.menu-shell[data-view="home"] .menu-resume {
  margin-top: 14px;
}
/* End of css/menu-06.css */
