/*
 * Modulverket — RFC-style document, dark mode.
 *
 * Palette is intentionally low-contrast-feeling but mathematically
 * WCAG AAA-compliant against #13130f bg:
 *   #e7e1cf (ink)   on #13130f → 14.1:1   (AAA: 7:1 normal · 4.5:1 large)
 *   #c7c2b2 (ink/85) on #13130f → 10.2:1
 *   #aca495 (chalk) on #13130f →  7.6:1   (AAA-compliant for normal text)
 */

html,
body {
  font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace;
  font-feature-settings: "ss01" on;
}

.display {
  font-family: "Quicksand", system-ui, sans-serif;
  font-feature-settings: "ss01" on;
}

.num {
  font-feature-settings: "tnum" on, "zero" on;
}

/* RFC-style two-column header (left meta / right author) */
.rfc-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 2rem;
  font-size: 0.78rem;
  line-height: 1.5;
  color: #e7e1cf;
}
.rfc-header > div:nth-child(2) {
  text-align: right;
}
@media (max-width: 640px) {
  .rfc-header {
    grid-template-columns: 1fr;
    row-gap: 0.75rem;
    font-size: 0.8rem;
  }
  .rfc-header > div:nth-child(2) {
    text-align: left;
  }
}

hr.dotted {
  border: 0;
  height: 0;
  border-top: 1px dashed #e7e1cf;
  opacity: 0.18;
}

/* RFC-style key/value list (Företaget block) */
.kv {
  display: grid;
  grid-template-columns: 12rem 1fr;
  column-gap: 1.25rem;
  row-gap: 0.5rem;
}
.kv dt {
  color: #aca495;
}
.kv dd {
  margin: 0;
}
@media (max-width: 640px) {
  .kv {
    grid-template-columns: 1fr;
    row-gap: 0.15rem;
  }
  .kv dt {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding-top: 0.5rem;
  }
  .kv dd {
    padding-bottom: 0.5rem;
  }
}

/* Visible focus ring for keyboard users — AAA contrast against the bg. */
:focus-visible {
  outline: 2px solid #e7e1cf;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Slightly tinted text selection so it's visible on the dark paper. */
::selection {
  background: #e7e1cf;
  color: #13130f;
}
