/* OldGames mobile polish
   Shared, late-loaded responsive corrections for the home, catalog, emulator
   and native-network room. Desktop layout is intentionally untouched. */

@media (max-width: 760px) {
  html {
    overflow-x: clip;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    min-width: 0;
    overflow-x: clip;
  }

  button,
  a,
  input,
  select,
  textarea {
    touch-action: manipulation;
  }

  input,
  select,
  textarea {
    font-size: 16px;
  }

  /* Home: one readable command bar instead of several compressed pills. */
  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .wrap {
    width: 100%;
    padding-inline: 12px;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .nav {
    width: calc(100vw - 16px) !important;
    max-width: none !important;
    min-height: 62px;
    margin-top: max(8px, env(safe-area-inset-top, 0px));
    padding: 8px !important;
    gap: 6px !important;
    border-radius: 17px;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .brand {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 44px;
    padding: 5px 8px 5px 6px;
    gap: 7px;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .brand .emblem {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .brand b {
    min-width: 0;
    overflow: hidden;
    font-size: .74rem;
    letter-spacing: .08em;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .brand b span,
  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .searchbtn,
  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .probtn,
  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .lang,
  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) #navActiveUsersPill,
  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) #navFavoritesBtn {
    display: none !important;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .nav .right {
    flex: 0 0 auto;
    gap: 6px;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .signin {
    width: auto !important;
    min-width: 70px !important;
    min-height: 44px;
    padding: 0 10px !important;
    justify-content: center;
    font-size: .66rem;
    letter-spacing: .07em;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .signin::before {
    content: none !important;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .signin span {
    display: inline !important;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .hamb {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .mobilemenu {
    z-index: 100;
    padding-top: calc(88px + env(safe-area-inset-top, 0px));
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page):has(.mobilemenu.open) .nav {
    position: fixed;
    z-index: 110;
    top: max(8px, env(safe-area-inset-top, 0px));
    left: 50%;
    margin: 0 !important;
    translate: -50% 0;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .hero {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 22px !important;
    padding: 30px 2px 26px !important;
    text-align: center;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .hero > div:first-child {
    min-width: 0;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .hero-right {
    display: none !important;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .hero .sys {
    justify-content: center;
    margin-bottom: 14px;
    font-size: .5rem;
    letter-spacing: .15em;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .lobby-kicker {
    min-height: 40px;
    margin-bottom: 14px;
    padding-inline: 10px;
    font-size: .47rem;
    letter-spacing: .1em;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .hero h1.lobby-title {
    font-size: clamp(2.2rem, 12vw, 3rem);
    line-height: .98;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .hero p.lobby-lead {
    max-width: 34ch;
    margin: 15px auto 0;
    font-size: .94rem;
    line-height: 1.55;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .pn-capabilities {
    justify-content: center;
    gap: 6px;
    margin-top: 15px;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .pn-capabilities span {
    min-height: 34px;
    padding-inline: 10px;
    font-size: .58rem;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .pn-panel {
    width: 100%;
    margin-top: 16px;
    padding: 16px 14px;
    gap: 14px;
    border-radius: 18px;
    text-align: left;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .pn-actions {
    grid-template-columns: 1fr !important;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .pn-dock,
  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .pn-secondary {
    width: 100%;
    min-height: 48px;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .og-online-beta-announcement {
    width: 100%;
    margin: 12px auto 10px;
    padding: 16px 42px 16px 16px;
    border-radius: 17px;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .og-online-beta-announcement h2 {
    font-size: .98rem;
    line-height: 1.18;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .og-online-beta-announcement p {
    font-size: .82rem;
    line-height: 1.42;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .og-online-beta-action {
    min-height: 46px;
  }

  /* /games: compact first screen, persistent console switcher and clear cards. */
  body.og-games-portal-v2 {
    --ogp-nav-offset: calc(68px + env(safe-area-inset-top, 0px));
    padding-top: var(--ogp-nav-offset) !important;
  }

  body.og-games-portal-v2 .top-navbar {
    top: 0 !important;
    margin: 0 !important;
    min-height: var(--ogp-nav-offset) !important;
    padding: max(8px, env(safe-area-inset-top, 0px)) 10px 8px !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    border-radius: 0 0 16px 16px;
  }

  body.og-games-portal-v2 .logo-link {
    min-width: 0;
    gap: 7px;
  }

  body.og-games-portal-v2 .logo-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    font-size: 1.15rem;
  }

  body.og-games-portal-v2 .logo-text {
    font-size: .82rem;
    letter-spacing: .08em;
  }

  body.og-games-portal-v2 .ogp-front-nav {
    order: initial !important;
    width: auto !important;
    margin-left: auto;
    justify-content: flex-end;
    gap: 5px;
    overflow: visible;
  }

  body.og-games-portal-v2 .ogp-community-btn,
  body.og-games-portal-v2 .nav-subscribe-btn,
  body.og-games-portal-v2 .subscribe-badge,
  body.og-games-portal-v2 .nav-fav-text,
  body.og-games-portal-v2 .nav-active-text,
  body.og-games-portal-v2 #userName {
    display: none !important;
  }

  body.og-games-portal-v2 .nav-active-users-pill,
  body.og-games-portal-v2 .nav-favorites-btn,
  body.og-games-portal-v2 .auth-btn,
  body.og-games-portal-v2 .user-btn {
    width: auto;
    min-width: 42px;
    min-height: 44px;
    padding: 0 9px;
    border-radius: 12px;
  }

  body.ogp-console-focused .og-hero {
    padding: 12px 14px 8px !important;
  }

  body.ogp-console-focused .og-hero h1,
  body.ogp-console-focused .og-hero p.lead {
    display: none;
  }

  body.ogp-console-focused .og-hero-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    max-width: none;
    margin: 0 auto;
  }

  body.ogp-console-focused .og-stat {
    min-width: 0;
    min-height: 54px;
    justify-content: center;
    padding: 6px 3px;
    border-radius: 11px;
    background: rgba(255, 255, 255, .035);
    border: 1px solid rgba(255, 255, 255, .08);
  }

  body.ogp-console-focused .og-stat-num {
    font-size: 1rem;
  }

  body.ogp-console-focused .og-stat-lbl {
    font-size: .52rem;
    letter-spacing: .08em;
  }

  body.ogp-console-focused .og-search-wrap {
    margin-top: 10px;
  }

  body.og-games-portal-v2 .og-search-input {
    min-height: 50px;
    padding: 12px 42px;
    border-radius: 13px;
  }

  body.og-games-portal-v2 .og-console-nav {
    position: sticky;
    top: var(--ogp-nav-offset);
    z-index: 120;
    margin: 8px auto 12px;
    padding: 8px 12px;
    gap: 7px;
    background: rgba(6, 8, 16, .92);
    border-block: 1px solid rgba(36, 227, 255, .1);
    backdrop-filter: blur(14px);
  }

  body.og-games-portal-v2 .og-nav-chip {
    min-height: 42px;
    padding: 7px 11px;
  }

  body.og-games-portal-v2 .ogp-library-status {
    width: calc(100% - 28px);
    margin-bottom: 14px;
    padding: 13px;
    gap: 10px;
  }

  body.og-games-portal-v2 .ogp-library-actions {
    grid-template-columns: 1fr;
  }

  body.og-games-portal-v2 .ogp-show-more,
  body.og-games-portal-v2 .ogp-show-all {
    min-height: 46px;
  }

  body.og-games-portal-v2 .og-console-section {
    padding-inline: 14px;
    margin-bottom: 38px;
    scroll-margin-top: calc(var(--ogp-nav-offset) + 76px) !important;
  }

  body.og-games-portal-v2 .og-console-header {
    flex-direction: row;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    padding: 10px;
  }

  body.og-games-portal-v2 .og-console-icon {
    width: 52px;
    height: 42px;
  }

  body.og-games-portal-v2 .og-console-header h2 {
    font-size: .94rem;
    line-height: 1.2;
  }

  body.og-games-portal-v2 .og-console-tagline {
    display: -webkit-box;
    overflow: hidden;
    font-size: .72rem;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  body.og-games-portal-v2 .og-hub-link {
    display: none;
  }

  body.og-games-portal-v2 .og-games-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  body.og-games-portal-v2 .og-card-cover {
    aspect-ratio: 4 / 5;
  }

  body.og-games-portal-v2 .og-card-cover img {
    object-fit: contain;
  }

  body.og-games-portal-v2 .og-card-meta {
    min-height: 54px;
    padding: 9px 10px;
  }

  /* Standalone emulator: preserve the whole viewport for game + touch pad. */
  body.emulator-page.nexus-skin #chatToggleBtn.chat-toggle-btn,
  body.emulator-page.nexus-skin #liveChat.live-chat {
    display: none !important;
  }

  body.emulator-page #arcade-player-header {
    padding-top: env(safe-area-inset-top, 0px) !important;
  }

  body.emulator-page .arcade-settings-modal,
  body.emulator-page .system12-performance-modal {
    padding: max(10px, env(safe-area-inset-top, 0px)) 10px max(10px, env(safe-area-inset-bottom, 0px));
  }

  body.emulator-page .arcade-settings-card,
  body.emulator-page .system12-performance-card {
    width: 100% !important;
    max-height: calc(100dvh - 20px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) !important;
    border-radius: 16px !important;
  }

  /* Nintendo DS / PSP rooms: show the game first, then compact room tools. */
  .mp-native-network.mp-game-container {
    min-height: 100dvh;
    padding: 8px;
    gap: 8px;
    overflow: visible;
  }

  .mp-native-network .mp-main-content {
    min-height: 0 !important;
    gap: 8px;
  }

  .mp-native-network .mp-native-stage {
    flex: 0 0 auto !important;
    min-height: 440px !important;
    height: 440px;
  }

  .mp-native-network .mp-native-preview {
    min-height: 426px !important;
    padding: 16px 8px;
  }

  .mp-native-network .mp-native-preview-copy {
    width: min(100%, 350px);
  }

  .mp-native-network .mp-native-preview-copy h1 {
    margin-block: 10px 7px;
    font-size: clamp(1.28rem, 6vw, 1.7rem);
  }

  .mp-native-network .mp-native-preview-copy p {
    margin-bottom: 18px;
    font-size: .86rem;
    line-height: 1.35;
  }

  .mp-native-network .mp-native-console {
    width: min(320px, 94%);
    padding: 13px;
    border-radius: 22px;
  }

  .mp-native-network .mp-native-screen {
    min-height: 92px;
  }

  .mp-native-network .mp-action-dock {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    padding: 8px;
  }

  .mp-native-network .mp-action-dock .mp-btn {
    width: 100%;
    min-width: 0;
    min-height: 48px;
  }

  .mp-native-network .mp-action-dock .mp-btn-danger {
    grid-column: 1 / -1;
    width: 50%;
  }

  .mp-native-network .mp-left-rail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 8px;
  }

  .mp-native-network .mp-voice-channel,
  .mp-native-network .mp-room-info {
    min-height: 0;
  }

  .mp-native-network .mp-right-rail {
    min-height: 0 !important;
    grid-template-rows: auto minmax(310px, 46dvh) !important;
    gap: 8px;
    overflow: visible;
  }

  .mp-native-network .mp-players-section,
  .mp-native-network .mp-room-chat {
    min-height: 0;
    padding: 12px;
  }

  .mp-native-network .mp-chat-input,
  .mp-native-network .mp-chat-send {
    min-height: 46px;
  }
}

@media (max-width: 380px) {
  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .brand b {
    font-size: .68rem;
  }

  body.nexus-skin:not(.og-games-portal-v2):not(.emulator-page) .signin {
    min-width: 62px !important;
    padding-inline: 7px !important;
  }

  body.og-games-portal-v2 .logo-text {
    font-size: .74rem;
  }

  body.og-games-portal-v2 .nav-active-users-pill {
    display: none !important;
  }

  .mp-native-network .mp-native-stage {
    min-height: 420px !important;
    height: 420px;
  }

  .mp-native-network .mp-native-preview {
    min-height: 406px !important;
  }
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  body.nexus-skin .aurora,
  body.nexus-skin .gridfloor,
  body.nexus-skin #dust,
  body.nexus-skin #nexus-dust {
    animation: none !important;
  }
}
