/* ============================================
   GitHub activity — contribution heatmap
   ============================================ */

.github-activity {
  /* Empty = light (never brown). Filled = bright cream. */
  --gh-level-0: rgba(255, 255, 255, 0.22);
  --gh-level-1: rgba(255, 255, 255, 0.4);
  --gh-level-2: rgba(255, 255, 255, 0.58);
  --gh-level-3: rgba(255, 255, 255, 0.78);
  --gh-level-4: #fffcfa;
  --gh-gap: 4px;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
  width: 100%;
}

.github-activity__board {
  position: relative;
  width: 100%;
  overflow: visible;
  padding-block: var(--space-1);
}

.github-activity__grid {
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(7, minmax(0, 1fr));
  grid-auto-columns: minmax(0, 1fr);
  gap: var(--gh-gap);
  width: 100%;
  min-width: 0;
  /* Keep the block square-ish in row height: 7 cells + gaps track portrait width */
  aspect-ratio: auto;
}

.github-activity__day {
  box-sizing: border-box;
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  min-width: 0;
  border-radius: 3px;
  background-color: var(--gh-level-0);
  transition: background-color 0.35s var(--ease-standard);
}

.github-activity__day[data-level="1"] { background-color: var(--gh-level-1); }
.github-activity__day[data-level="2"] { background-color: var(--gh-level-2); }
.github-activity__day[data-level="3"] { background-color: var(--gh-level-3); }
.github-activity__day[data-level="4"] { background-color: var(--gh-level-4); }

.github-activity.is-loading .github-activity__day {
  animation: github-activity-pulse 1.2s var(--ease-standard) infinite;
}

.github-activity.is-error .github-activity__board {
  opacity: 0.55;
}

@keyframes github-activity-pulse {
  0%, 100% { opacity: 0.45; }
  50% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .github-activity.is-loading .github-activity__day {
    animation: none;
  }

  .github-activity__day {
    transition: none;
  }
}
