:root {
  --bg: #fff;
  --fg: #000;
  --muted: #666;
  --line: #ddd;
  --accent: #8b0000;
  --btn: var(--accent);
  color-scheme: light dark;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #000;
    --fg: #fff;
    --muted: #999;
    --line: #333;
    --accent: #ff6b6b;
    --btn: #cd5699;
  }

  #login {
    --btn: #56cc56;
  }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0 auto;
  padding: 2rem 1rem;
  max-width: 1100px;
  background: var(--bg);
  color: var(--fg);
  font-family: "Noticia Text", Georgia, serif;
  line-height: 1.4;
}

h1 {
  margin: 0 0 1rem;
  color: var(--accent);
}

#status {
  color: var(--muted);
}

#controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

#logout {
  margin-left: auto;
  --btn: var(--muted);
}

button {
  font: inherit;
  padding: 0.5rem 1.25rem;
  border: 2px solid var(--btn);
  border-radius: 999px;
  background: var(--btn);
  color: var(--bg);
  cursor: pointer;
}

button:hover {
  background: transparent;
  color: var(--btn);
}

#login {
  --btn: #1ed760;
  color: #000;
}

#login:hover {
  background: var(--btn);
  color: #000;
  filter: brightness(1.1);
}

button:focus-visible {
  outline: 2px solid var(--btn);
  outline-offset: 3px;
}

a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

#albums {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1.5rem;
}

#albums a {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  color: inherit;
  text-decoration: none;
}

#albums img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border: 1px solid var(--line);
}

#albums a:hover img {
  border-color: var(--accent);
}

#albums a:hover strong {
  color: var(--accent);
}

#albums span {
  color: var(--muted);
  font-size: 0.9rem;
}
