body {
  background: var(--color-paper);
}

::selection {
  background: var(--color-accent-soft);
  color: var(--color-accent-strong);
}

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--color-paper-dim); }
::-webkit-scrollbar-thumb {
  background: var(--color-line-strong);
  border-radius: var(--radius-pill);
}

.skip-link {
  position: absolute;
  top: -100%;
  left: var(--space-sm);
  z-index: var(--z-toast);
  background: var(--color-accent);
  color: var(--color-paper);
  padding: var(--space-2xs) var(--space-sm);
  border-radius: var(--radius-sm);
  transition: top var(--duration-fast) var(--ease-out);
}
.skip-link:focus { top: var(--space-sm); }

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

/* "Photo" blocks — real photography with a gradient fallback while it loads */
.photo {
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--color-accent-soft), var(--color-bronze-soft));
  color: var(--color-accent-strong);
  min-height: 220px;
}
.photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(29, 78, 122, .18), transparent 55%),
    radial-gradient(circle at 80% 80%, rgba(176, 138, 78, .22), transparent 55%);
}
.photo__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}
.photo__caption {
  position: relative;
  z-index: 2;
  padding: var(--space-sm);
  font-size: var(--fs-xs);
  color: var(--color-accent-strong);
  background: rgba(255, 255, 255, .55);
  backdrop-filter: blur(4px);
  border-radius: var(--radius-sm);
  margin: var(--space-sm);
}
.photo--wide { aspect-ratio: 16 / 9; }
.photo--portrait { aspect-ratio: 3 / 4; }
.photo--square { aspect-ratio: 1 / 1; }
.photo--hero { min-height: 380px; }

.empty-state {
  text-align: center;
  padding: var(--space-2xl) var(--space-sm);
  color: var(--color-ink-soft);
}
