* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--atlas-bg);
  color: var(--atlas-ink);
  font-family: var(--atlas-font);
  line-height: var(--leading);
}
a {
  color: var(--atlas-link);
  text-underline-offset: 0.2em;
}
button {
  font: inherit;
  cursor: pointer;
}
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: var(--atlas-focus);
  outline-offset: var(--space-1);
}
header {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  padding: var(--space-5) var(--space-6);
}
header > a {
  text-decoration: none;
  font-size: var(--text-s);
  font-weight: 600;
}
h1 {
  font-size: var(--atlas-title);
  margin: 0;
  letter-spacing: 0.035em;
}
header > p {
  margin-left: auto;
  color: var(--atlas-subtle);
  font-size: var(--text-s);
}
main {
  display: grid;
  grid-template-columns: var(--atlas-rail) minmax(0, 1fr) var(--atlas-info);
  padding: 0 var(--space-5);
  gap: var(--space-5);
  align-items: start;
}
nav {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
nav button {
  display: flex;
  align-items: center;
  text-align: left;
  gap: var(--space-2);
  border: 0;
  border-radius: var(--radius-m);
  background: var(--atlas-card);
  color: var(--atlas-ink);
  padding: var(--space-2);
  font-size: var(--text-sm);
  min-height: var(--atlas-choice-height);
}
nav button[aria-pressed="true"] {
  background: var(--atlas-selected);
  box-shadow: inset 0 0 0 0.13em var(--atlas-link);
}
nav img {
  width: var(--atlas-thumb);
  height: var(--atlas-thumb);
  object-fit: contain;
  border-radius: var(--radius-s);
  mix-blend-mode: multiply;
}
.exhibit {
  position: sticky;
  top: var(--space-5);
  background: var(--atlas-view-bg);
  border-radius: var(--radius-l);
  overflow: hidden;
}
iframe {
  display: block;
  width: 100%;
  height: var(--atlas-view-height);
  border: 0;
}
.hint {
  font-size: var(--text-sm);
  color: var(--text-primary);
  padding: var(--space-4);
  margin: 0;
  text-align: center;
}
article {
  padding: var(--space-4) var(--space-1);
}
h2 {
  font-size: var(--atlas-heading);
  margin: 0 0 var(--space-2);
}
#latin {
  font-family: Georgia, serif;
  font-style: italic;
  color: var(--atlas-subtle);
  margin: 0 0 var(--space-5);
}
#observation {
  background: var(--atlas-selected);
  padding: var(--space-4);
  border-radius: var(--radius-m);
  font-size: var(--text-m);
  line-height: 1.9;
}
#found,
#restart {
  background: var(--atlas-selected);
  color: var(--atlas-ink);
  border: var(--atlas-choice-border);
  border-radius: var(--radius-m);
  padding: var(--space-3) var(--space-5);
  min-height: var(--atlas-choice-height);
}
#found[aria-pressed="true"] {
  background: var(--atlas-link);
  color: var(--text-on-accent);
}
#progress {
  color: var(--atlas-subtle);
  font-size: var(--text-sm);
}
nav .discovered span::after {
  content: " ✓";
}
dl {
  margin: var(--space-5) 0;
}
dt {
  font-size: var(--text-sm);
  color: var(--atlas-subtle);
  margin-top: var(--space-4);
}
dd {
  margin: var(--space-1) 0 0;
  font-size: var(--text-m);
}
#description {
  font-size: var(--text-s);
  line-height: 2;
}
#open {
  display: inline-block;
  background: var(--atlas-link);
  color: var(--text-on-accent);
  text-decoration: none;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-s);
  font-size: var(--text-s);
  margin: var(--space-3) 0;
}
details {
  font-size: var(--text-xs);
  color: var(--atlas-subtle);
  margin-top: var(--space-5);
  line-height: 1.9;
}
summary {
  cursor: pointer;
  font-size: var(--text-sm);
}
footer {
  color: var(--atlas-subtle);
  padding: var(--space-5) var(--space-6);
  font-size: var(--text-xs);
}
@media (max-width: 70em) {
  main {
    grid-template-columns: var(--atlas-rail-small) minmax(0, 1fr);
  }
  article {
    grid-column: 2;
    padding: var(--space-4);
  }
  .exhibit {
    position: static;
  }
  header > p {
    display: none;
  }
}
@media (max-width: 46em) {
  header {
    padding: var(--space-5);
    gap: var(--space-4);
  }
  h1 {
    font-size: var(--text-ml);
  }
  header > a {
    font-size: var(--text-xs);
  }
  main {
    display: flex;
    flex-direction: column;
    padding: 0 var(--space-4);
    gap: var(--space-5);
  }
  .exhibit {
    order: 1;
    width: 100%;
  }
  iframe {
    height: var(--atlas-view-mobile);
  }
  nav {
    order: 0;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: var(--atlas-mobile-choice);
    grid-template-columns: none;
    overflow-x: auto;
    padding-bottom: var(--space-2);
    scroll-snap-type: x proximity;
    width: 100%;
  }
  article {
    order: 2;
    width: 100%;
    padding: 0 var(--space-2);
  }
  nav button {
    font-size: var(--text-xs);
    flex-direction: column;
    text-align: center;
    justify-content: start;
    scroll-snap-align: start;
  }
  nav img {
    width: var(--atlas-thumb-mobile);
    height: var(--atlas-thumb-mobile);
  }
  .hint {
    font-size: var(--text-xs);
  }
  dl {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: var(--space-3);
  }
  dt,
  dd {
    margin: 0;
  }
  #description {
    max-width: 45em;
  }
  footer {
    padding: var(--space-6);
  }
}
