/* The console sets the desktop row height. Adding cartridges cannot stretch it. */
.library {
  contain: size;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding-top: 4px;
}
.library-heading { flex: 0 0 auto; }
.cartridge-drawer {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 150px;
  max-height: min(52svh, 460px);
  border: 1px solid #755438;
  border-top-color: #98724a;
  border-radius: 6px;
  background: #211914;
  box-shadow: inset 0 3px 12px #0b070777, 0 1px 0 #aa805326;
  overflow: hidden;
}
.drawer-heading {
  flex: 0 0 auto;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 11px 10px 10px;
  border-bottom: 1px solid #614831;
  background: #38291f;
  color: #c2a17a;
  font: 8px/1.2 monospace;
  letter-spacing: .8px;
}
.drawer-heading span:last-child { color: #e7b779; }
.cartridge-shelf {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  gap: 17px;
  margin: 0;
  padding: 13px 11px 17px;
  overflow-y: scroll;
  overflow-x: hidden;
  overscroll-behavior-y: contain;
  scrollbar-gutter: stable;
  scrollbar-width: auto;
  scrollbar-color: #ad8353 #251b15;
  scroll-padding-block: 14px;
}
.cartridge-shelf::-webkit-scrollbar { width: 12px; }
.cartridge-shelf::-webkit-scrollbar-track { background: #251b15; border-left: 1px solid #614831; }
.cartridge-shelf::-webkit-scrollbar-thumb {
  background: #ad8353;
  border: 3px solid #251b15;
  border-radius: 8px;
}
.cartridge-shelf::-webkit-scrollbar-thumb:hover { background: #e0ad6b; }
.cartridge-shelf:focus-visible { outline-offset: -3px; }
.cartridge {
  flex: 0 0 auto;
  min-width: 0;
  min-height: 0;
  padding: 11px 8px 12px;
  border-radius: 5px 5px 8px 8px;
  box-shadow: 0 5px 8px #0c080866, inset 0 2px 0 #ae8c6540;
}
.cartridge:hover { translate: 0 -2px; }
.cartridge[aria-pressed=true] { outline-offset: 3px; }
.cartridge:focus-visible { outline: 3px solid #ffe2a4; outline-offset: 3px; }
.cartridge-label {
  padding: 0;
  min-height: 0;
  background: #efe0bd;
  box-shadow: 0 0 0 1px #271f1780;
  color: #34281e;
}
.cartridge-label::after { display: none; }
.cart-series {
  padding: 7px 8px 6px;
  border: 0;
  border-bottom: 3px solid var(--label-color);
  background: #eedeba;
  color: #473226;
  font: bold 8px/1 monospace;
  letter-spacing: 1.8px;
}
.cart-number { letter-spacing: .8px; }
.cart-picture {
  display: grid;
  place-items: center;
  position: relative;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: var(--cart-color);
}
.cart-art {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: auto;
  opacity: 1;
  mix-blend-mode: normal;
}
.cart-copy { display: flex; flex-direction: column; padding: 9px 8px 10px; border-top: 3px solid var(--label-color); }
.cart-title {
  font: 900 25px/.98 Georgia, serif;
  letter-spacing: -.8px;
  color: var(--label-color);
  margin: 0;
  overflow-wrap: anywhere;
}
.cart-subtitle {
  max-width: none;
  margin-top: 5px;
  font: 8px/1.35 monospace;
  letter-spacing: .05px;
  color: #594232;
}
.cartridge[data-id=famari] .cart-title { font-style: italic; font-size: 31px; }
.cartridge[data-id=unnamed-mode] .cart-title { font: 24px/.95 Impact, 'Arial Narrow', sans-serif; text-transform: uppercase; letter-spacing: .2px; }
.cartridge[data-id=damijins-quest] .cart-title { font-size: 23px; }
.cartridge[data-id=yo-void] .cart-title { font: italic 900 26px/1 Arial, sans-serif; letter-spacing: -1.4px; }
.cartridge[data-id=pinball-plus] .cart-title { font: italic 29px/1 Impact, 'Arial Narrow', sans-serif; text-transform: uppercase; letter-spacing: .1px; }
.cart-bottom { font-size: 7px; letter-spacing: .55px; gap: 4px; margin-top: 10px; }
.cartridge[aria-pressed=true] .cart-action { color: #ffe0a2; }
.cartridge-blank .cart-picture { padding: 22px; text-align: center; font: bold 13px/1.6 monospace; letter-spacing: 2px; color: var(--label-color); }
.library .sideload { flex: 0 0 auto; margin: 0; padding: 12px 10px; }
.library .game-notes {
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
  scrollbar-color: #ad8353 #251b15;
  margin: 0;
  padding-top: 15px;
}
.library .privacy-note { flex: 0 0 auto; margin: 0 0 12px; }

@media (max-width: 1100px) and (min-width: 821px) {
  .playroom { grid-template-columns: minmax(0, 1fr) 260px; }
  .library { padding-left: 16px; gap: 12px; }
}
@media (max-width: 820px) {
  .library { contain: none; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; padding: 22px 0 0; }
  .library-heading > span:last-child { display: block; font-size: 10px; }
  .cartridge-drawer { grid-column: 1 / -1; grid-row: 2; height: clamp(285px, 52svh, 440px); min-height: 0; max-height: none; }
  .cartridge-shelf { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: max-content; align-content: start; align-items: start; gap: 18px; margin: 0; padding: 13px 12px 17px; }
  .cartridge { width: 100%; }
  .cart-title { font-size: 27px; }
  .library .sideload { grid-column: 2; grid-row: 1; }
  .library .game-notes { grid-column: 1 / -1; padding: 0 0 8px; }
  .library .privacy-note { display: none; }
}
@media (max-width: 480px) {
  .library { grid-template-columns: minmax(0, 1fr); }
  .library .sideload { grid-column: 1; grid-row: 3; width: 100%; }
  .cartridge-shelf { grid-template-columns: minmax(0, 1fr); padding-inline: 22px; }
  .cartridge { width: 100%; max-width: 280px; justify-self: center; }
  .cart-copy { padding: 11px; }
  .drawer-heading { padding-inline: 15px; }
}
@media (prefers-reduced-motion: reduce) { .cartridge { transition: none; } }
@media (forced-colors: active) {
  .cartridge-drawer, .drawer-heading, .cartridge-label { border: 1px solid CanvasText; }
  .cartridge-shelf { scrollbar-color: auto; }
  .cartridge[aria-pressed=true] { outline-color: Highlight; }
}
