/* Startup/select-mode final fixes: restore preview visibility, top nav row, and startup spacing. */

/* Keep the animated preview canvas visible behind startup and select mode. */
body.index-launcher:not(.playing) #game {
  position: fixed !important;
  inset: 0 !important;
  z-index: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  width: 100vw !important;
  height: var(--app-height, 100dvh) !important;
  min-height: var(--app-height, 100dvh) !important;
  background: #02030a !important;
  overflow: hidden !important;
}

body.index-launcher:not(.playing) #game canvas {
  opacity: 1 !important;
  visibility: visible !important;
  mix-blend-mode: normal !important;
  width: 100vw !important;
  height: var(--app-height, 100dvh) !important;
}

body.index-launcher:not(.playing) #vignette,
body.index-launcher:not(.playing) #scanlines {
  z-index: 2 !important;
  pointer-events: none !important;
}

body.index-launcher:not(.playing) #startOverlay,
body.index-launcher:not(.playing) #modeOverlay {
  background: transparent !important;
  background-color: transparent !important;
}

body.index-launcher:not(.playing) #startOverlay .start-background-layer {
  opacity: 0.64 !important;
  mix-blend-mode: screen !important;
  background-blend-mode: screen, normal !important;
  filter: saturate(1.08) contrast(1.04) brightness(0.9) !important;
}

body.index-launcher:not(.playing) #startOverlay .start-ambient-layer {
  opacity: 0.78 !important;
  mix-blend-mode: screen !important;
}

body.index-launcher:not(.playing) #startOverlay .start-vignette-layer {
  opacity: 0.82 !important;
  background:
    radial-gradient(circle at 50% 38%, rgba(20, 7, 54, 0.02), rgba(5, 0, 18, 0.10) 52%, rgba(0, 0, 0, 0.42) 100%),
    linear-gradient(to bottom, rgba(0,0,0,.12), rgba(0,0,0,0.02) 20%, rgba(0,0,0,0.04) 48%, rgba(0,0,0,0.16) 74%, rgba(0,0,0,0.32)) !important;
}

body.mode-menu-page #modeOverlay::before {
  content: "" !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: -1 !important;
  pointer-events: none !important;
  background:
    radial-gradient(circle at 22% 14%, rgba(42, 246, 255, 0.16), transparent 24%),
    radial-gradient(circle at 80% 18%, rgba(255, 71, 222, 0.13), transparent 26%),
    linear-gradient(to bottom, rgba(2, 3, 10, 0.10), rgba(2, 3, 10, 0.24)) !important;
}

body.mode-menu-page #modeOverlay .mode-select-panel {
  background:
    linear-gradient(150deg, rgba(255, 71, 222, 0.13), transparent 34%),
    linear-gradient(330deg, rgba(42, 246, 255, 0.12), transparent 38%),
    rgba(10, 3, 30, 0.76) !important;
  backdrop-filter: blur(5px) saturate(1.08) !important;
  -webkit-backdrop-filter: blur(5px) saturate(1.08) !important;
}

/* Force startup buttons into one true row. The old #lbIconBtn fixed-position rules
   are very aggressive, so target direct nav children with IDs and reset everything. */
body.startup-page nav.startup-quick-actions {
  position: fixed !important;
  top: max(14px, env(safe-area-inset-top, 0px)) !important;
  right: max(12px, env(safe-area-inset-right, 0px)) !important;
  left: auto !important;
  bottom: auto !important;
  width: auto !important;
  max-width: calc(100vw - 24px) !important;
  height: auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, var(--cr-corner-size)) !important;
  grid-auto-flow: column !important;
  align-items: center !important;
  justify-content: end !important;
  justify-items: center !important;
  gap: clamp(8px, 2.2vw, 12px) !important;
  z-index: 9999 !important;
  pointer-events: none !important;
  transform: none !important;
}

body.startup-page nav.startup-quick-actions {
  --cr-corner-size: clamp(50px, 12vw, 62px);
}

body.startup-page nav.startup-quick-actions > input#musicVolume {
  display: none !important;
}

body.startup-page nav.startup-quick-actions > button#musicToggleButton,
body.startup-page nav.startup-quick-actions > a#profileIconBtn,
body.startup-page nav.startup-quick-actions > a#lbIconBtn {
  position: static !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  width: var(--cr-corner-size) !important;
  height: var(--cr-corner-size) !important;
  min-width: var(--cr-corner-size) !important;
  min-height: var(--cr-corner-size) !important;
  max-width: var(--cr-corner-size) !important;
  max-height: var(--cr-corner-size) !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  grid-row: 1 !important;
  z-index: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}

body.startup-page nav.startup-quick-actions > button#musicToggleButton { grid-column: 1 !important; }
body.startup-page nav.startup-quick-actions > a#profileIconBtn { grid-column: 2 !important; }
body.startup-page nav.startup-quick-actions > a#lbIconBtn { grid-column: 3 !important; }

body.startup-page nav.startup-quick-actions > button#musicToggleButton:hover,
body.startup-page nav.startup-quick-actions > a#profileIconBtn:hover,
body.startup-page nav.startup-quick-actions > a#lbIconBtn:hover {
  transform: scale(1.04) !important;
}

body.startup-page nav.startup-quick-actions > button#musicToggleButton.corner-action--sound::after {
  background: url('../assets/sound-on.svg') center / contain no-repeat !important;
}

body.startup-page nav.startup-quick-actions > button#musicToggleButton.corner-action--sound.is-muted::after {
  background: url('../assets/sound-off.svg') center / contain no-repeat !important;
}

body.startup-page nav.startup-quick-actions > a#profileIconBtn::before,
body.startup-page nav.startup-quick-actions > a#lbIconBtn::before,
body.startup-page nav.startup-quick-actions > button#musicToggleButton::before,
body.startup-page nav.startup-quick-actions > a#profileIconBtn::after,
body.startup-page nav.startup-quick-actions > a#lbIconBtn::after,
body.startup-page nav.startup-quick-actions > button#musicToggleButton::after {
  position: absolute !important;
}

/* Slightly lower the hero after the previous push-up. */
body.startup-page .start-hero-content {
  transform: translateY(clamp(-44px, -5.4vh, -24px)) !important;
}

@media (max-width: 430px) and (orientation: portrait) {
  body.startup-page nav.startup-quick-actions {
    --cr-corner-size: clamp(46px, 11.8vw, 54px);
    top: max(13px, env(safe-area-inset-top, 0px)) !important;
    right: max(10px, env(safe-area-inset-right, 0px)) !important;
    gap: 8px !important;
  }

  body.startup-page #startOverlay .start-overlay-stack {
    padding-top: calc(88px + env(safe-area-inset-top, 0px)) !important;
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.startup-page .start-hero-content {
    transform: translateY(clamp(-48px, -5.6vh, -28px)) !important;
  }
}

@media (max-height: 760px) and (orientation: portrait) {
  body.startup-page .start-hero-content {
    transform: translateY(clamp(-48px, -5.9vh, -28px)) !important;
  }
}

/* --------------------------------------------------------------------------
   Follow-up fix: force startup quick action icons to use the shared corner
   shell consistently and add iOS portrait bleed for Select Mode.
   -------------------------------------------------------------------------- */

body.startup-page nav.startup-quick-actions {
  --cr-corner-size: clamp(50px, 12vw, 60px) !important;
  display: grid !important;
  grid-template-columns: repeat(3, var(--cr-corner-size)) !important;
  column-gap: clamp(8px, 2.2vw, 12px) !important;
  align-items: center !important;
  justify-content: end !important;
  justify-items: center !important;
}

body.startup-page nav.startup-quick-actions > button#musicToggleButton,
body.startup-page nav.startup-quick-actions > a#profileIconBtn,
body.startup-page nav.startup-quick-actions > a#lbIconBtn {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  width: var(--cr-corner-size) !important;
  height: var(--cr-corner-size) !important;
  min-width: var(--cr-corner-size) !important;
  min-height: var(--cr-corner-size) !important;
  max-width: var(--cr-corner-size) !important;
  max-height: var(--cr-corner-size) !important;
  clip-path: var(--cr-corner-shape) !important;
  background: linear-gradient(135deg, #41efff 0%, #815cff 52%, #f044d9 100%) !important;
  box-shadow:
    0 0 0 1px rgba(42, 246, 255, 0.22),
    0 0 18px rgba(42, 246, 255, 0.25),
    0 0 22px rgba(255, 71, 222, 0.18) !important;
  overflow: hidden !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: 0 !important;
  isolation: isolate !important;
}

body.startup-page nav.startup-quick-actions > button#musicToggleButton::before,
body.startup-page nav.startup-quick-actions > a#profileIconBtn::before,
body.startup-page nav.startup-quick-actions > a#lbIconBtn::before {
  content: '' !important;
  position: absolute !important;
  inset: 3px !important;
  width: auto !important;
  height: auto !important;
  clip-path: var(--cr-corner-shape) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background:
    radial-gradient(circle at 28% 18%, rgba(97, 246, 255, 0.35), transparent 42%),
    radial-gradient(circle at 80% 86%, rgba(255, 71, 222, 0.32), transparent 46%),
    linear-gradient(145deg, rgba(22, 9, 68, 0.98), rgba(8, 2, 30, 0.99)) !important;
  box-shadow: inset 0 0 18px rgba(42, 246, 255, 0.10) !important;
  filter: none !important;
  opacity: 1 !important;
  transform: none !important;
  z-index: 0 !important;
}

body.startup-page nav.startup-quick-actions > button#musicToggleButton::after,
body.startup-page nav.startup-quick-actions > a#profileIconBtn::after,
body.startup-page nav.startup-quick-actions > a#lbIconBtn::after {
  content: '' !important;
  position: absolute !important;
  inset: clamp(11px, 2.8vw, 14px) !important;
  width: auto !important;
  height: auto !important;
  clip-path: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  box-shadow: none !important;
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.26)) !important;
  opacity: 1 !important;
  transform: none !important;
  z-index: 1 !important;
}

body.startup-page nav.startup-quick-actions > button#musicToggleButton::after {
  background-image: url('../assets/sound-on.svg') !important;
}

body.startup-page nav.startup-quick-actions > button#musicToggleButton.is-muted::after,
body.startup-page nav.startup-quick-actions > button#musicToggleButton[aria-pressed="false"]::after {
  background-image: url('../assets/sound-off.svg') !important;
}

body.startup-page nav.startup-quick-actions > a#profileIconBtn::after {
  background-image: url('../assets/profile.svg') !important;
}

body.startup-page nav.startup-quick-actions > a#lbIconBtn::after {
  background-image: url('../assets/trophy.svg') !important;
}

@media (max-width: 430px) and (orientation: portrait) {
  body.startup-page nav.startup-quick-actions {
    --cr-corner-size: clamp(46px, 11.8vw, 54px) !important;
  }
}


/* --------------------------------------------------------------------------
   Select Mode background alignment cleanup.
   Single source of truth for select-mode background/effect positioning.
   -------------------------------------------------------------------------- */
html[data-cave-page="select-mode"],
html[data-cave-page="select-mode"] body,
body.mode-menu-page {
  width: 100%;
  min-width: 100%;
  height: var(--app-height, 100dvh) !important;
  min-height: var(--app-height, 100dvh) !important;
  max-height: none !important;
  overflow: hidden !important;
  background-color: #02030a !important;
  background-image: none !important;
}

body.mode-menu-page::before {
  content: "" !important;
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  left: 0 !important;
  width: 100vw !important;
  height: calc(var(--app-height, 100dvh) + 180px) !important;
  min-height: calc(var(--app-height, 100dvh) + 180px) !important;
  z-index: 0 !important;
  pointer-events: none !important;
  opacity: 1 !important;
  transform: none !important;
  background:
    linear-gradient(to bottom, rgba(2,3,10,0.02), rgba(2,3,10,0.00) 54%, rgba(2,3,10,0.34) 100%),
    url('../assets/bg-portrait.png') center top / cover no-repeat !important;
}

html[data-cave-page="select-mode"] #game,
html[data-cave-page="select-mode"] #game canvas,
html[data-cave-page="select-mode"] #vignette,
html[data-cave-page="select-mode"] #scanlines {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  left: 0 !important;
  width: 100vw !important;
  height: var(--app-height, 100dvh) !important;
  min-height: var(--app-height, 100dvh) !important;
  max-height: var(--app-height, 100dvh) !important;
}

html[data-cave-page="select-mode"] #game {
  z-index: 1 !important;
  opacity: 0.72 !important;
  mix-blend-mode: screen !important;
  background: transparent !important;
  overflow: hidden !important;
}

html[data-cave-page="select-mode"] #vignette,
html[data-cave-page="select-mode"] #scanlines {
  z-index: 2 !important;
}

body.mode-menu-page #modeOverlay,
html[data-cave-page="select-mode"] #modeOverlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10 !important;
  width: 100vw !important;
  height: var(--app-height, 100dvh) !important;
  min-height: var(--app-height, 100dvh) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: contain !important;
  background: transparent !important;
  background-color: transparent !important;
  align-items: flex-start !important;
  place-items: start center !important;
}

body.mode-menu-page #modeOverlay::before,
body.mode-menu-page #modeOverlay::after {
  display: none !important;
}

body.mode-menu-page #modeOverlay .mode-select-panel {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.mode-menu-page #modeOverlay .mode-select-panel::before,
body.mode-menu-page #modeOverlay .mode-select-panel::after {
  display: none !important;
}

@media (orientation: portrait) {
  body.mode-menu-page::before {
    background-position: center top !important;
    background-size: cover !important;
  }

  body.mode-menu-page #modeOverlay {
    padding-top: max(42px, calc(env(safe-area-inset-top, 0px) + 34px)) !important;
    padding-right: max(20px, env(safe-area-inset-right, 0px)) !important;
    padding-bottom: calc(180px + env(safe-area-inset-bottom, 0px)) !important;
    padding-left: max(20px, env(safe-area-inset-left, 0px)) !important;
  }

  body.mode-menu-page #modeOverlay .mode-select-panel {
    display: block !important;
    width: min(760px, 100%) !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 0 0 170px !important;
    overflow: visible !important;
  }

  body.mode-menu-page .mode-quick-nav {
    top: max(58px, calc(env(safe-area-inset-top, 0px) + 48px)) !important;
    left: max(12px, env(safe-area-inset-left, 0px)) !important;
    z-index: 40 !important;
  }

  body.mode-menu-page .mode-quick-nav .corner-action {
    --cr-corner-size: clamp(46px, 11.6vw, 56px) !important;
  }

  body.mode-menu-page .select-mode-header {
    margin-bottom: 8px !important;
  }

  body.mode-menu-page .select-mode-kicker {
    font-size: clamp(2.45rem, 10.8vw, 3.8rem) !important;
    line-height: .88 !important;
  }

  body.mode-menu-page .mode-select-section {
    margin-top: 8px !important;
  }

  body.mode-menu-page .section-label {
    margin-bottom: 7px !important;
    font-size: clamp(.98rem, 3.9vw, 1.32rem) !important;
  }

  body.mode-menu-page .run-variant-picker {
    gap: 10px !important;
  }

  body.mode-menu-page .run-variant-chip {
    min-width: 0 !important;
    width: calc(50% - 5px) !important;
    height: clamp(54px, 7vh, 70px) !important;
    padding: 10px 12px !important;
    font-size: clamp(.86rem, 3.4vw, 1.05rem) !important;
  }

  body.mode-menu-page .theme-picker {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px 10px !important;
    margin-bottom: 0 !important;
  }

  body.mode-menu-page .theme-chip {
    min-width: 0 !important;
    width: 100% !important;
    height: clamp(42px, 5.7vh, 56px) !important;
    padding: 8px 10px !important;
  }

  body.mode-menu-page .theme-chip strong {
    font-size: clamp(.66rem, 2.65vw, .82rem) !important;
  }

  body.mode-menu-page .mode-cards-section {
    margin-top: clamp(22px, 3.6vh, 34px) !important;
  }

  body.mode-menu-page #modeOverlay .mode-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-rows: max-content !important;
    align-items: start !important;
    align-content: start !important;
    justify-items: stretch !important;
    gap: clamp(34px, 5.4vh, 48px) clamp(18px, 4.2vw, 30px) !important;
    margin-top: 12px !important;
    height: auto !important;
    min-height: 0 !important;
  }

  body.mode-menu-page #modeOverlay .mode-card.mode-card--art {
    display: block !important;
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    align-self: start !important;
  }

  body.mode-menu-page #modeOverlay .mode-card-label {
    position: static !important;
    display: block !important;
    width: 100% !important;
    margin: clamp(9px, 1.4vh, 13px) 0 0 !important;
    padding: 0 !important;
    line-height: .9 !important;
    transform: none !important;
    z-index: auto !important;
  }
}

@media (orientation: landscape) {
  body.mode-menu-page::before {
    height: 100vh !important;
    min-height: 100vh !important;
    background:
      linear-gradient(to bottom, rgba(2,3,10,0.02), rgba(2,3,10,0.00) 54%, rgba(2,3,10,0.24) 100%),
      url('../assets/bg-landscape.png') center 56% / cover no-repeat !important;
  }

  body.mode-menu-page #modeOverlay {
    height: 100vh !important;
    min-height: 100vh !important;
    padding: max(12px, env(safe-area-inset-top, 0px)) max(22px, env(safe-area-inset-right, 0px)) max(16px, env(safe-area-inset-bottom, 0px)) max(22px, env(safe-area-inset-left, 0px)) !important;
    overflow: hidden !important;
  }

  html[data-cave-page="select-mode"] #game,
  html[data-cave-page="select-mode"] #game canvas,
  html[data-cave-page="select-mode"] #vignette,
  html[data-cave-page="select-mode"] #scanlines {
    height: 100vh !important;
    min-height: 100vh !important;
    max-height: 100vh !important;
  }

  body.mode-menu-page .mode-quick-nav {
    top: max(14px, env(safe-area-inset-top, 0px)) !important;
    left: max(14px, env(safe-area-inset-left, 0px)) !important;
  }

  body.mode-menu-page #modeOverlay .mode-cards-section {
    display: grid !important;
    grid-template-rows: auto 1fr !important;
    justify-items: center !important;
    width: 100% !important;
  }

  body.mode-menu-page #modeOverlay .mode-cards-section > .section-label {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    justify-self: stretch !important;
    margin-inline: auto !important;
  }

  body.mode-menu-page #modeOverlay .mode-grid {
    width: 100% !important;
    justify-self: stretch !important;
  }
}
