@font-face {
  font-family: "Safiro";
  src: url("./assets/safiro-regular.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Safiro";
  src: url("./assets/safiro-medium.woff2") format("woff2");
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "Safiro";
  src: url("./assets/safiro-semibold.woff2") format("woff2");
  font-weight: 600;
  font-display: swap;
}

/* ─────────────────────────────────────────────────────────────
   Presswerk — the catalogue's ink, stock and spot colours.
   Every spot carries whole regions at full strength; the board
   stock is the quiet between them.
   ───────────────────────────────────────────────────────────── */
:root {
  --ink: #141210;
  --ink-soft: #3b3733;
  --board: #dce6e1;
  --board-deep: #c8d7d0;
  --paper: #f4f3ef;

  --spot-001: #0a5741;
  --spot-001-deep: #08422f;
  --spot-001-tint: #cfe3d9;
  --spot-002: #f4ce14;
  --spot-002-deep: #c9a70a;
  --spot-003: #141210;
  --rust: #c1381c;

  --rule: 1px;
  --shell: 1400px;
  --gutter: clamp(20px, 4.4vw, 72px);
  --step: clamp(56px, 7vw, 128px);

  --t-micro: 12px;
  --t-small: 15px;
  --t-body: 19px;
  --t-lead: 24px;

  --ease: cubic-bezier(0.16, 1, 0.3, 1);

  --fg: var(--ink);
  --fg-2: #3b3733;
  --bg: var(--board);
  --hair: color-mix(in srgb, var(--fg) 24%, transparent);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scrollbar-color: var(--ink) var(--board-deep);
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  margin: 0;
  background: var(--board);
  color: var(--ink);
  font-family: "Safiro", ui-sans-serif, system-ui, sans-serif;
  font-weight: 400;
  font-size: var(--t-body);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  caret-color: var(--rust);
}

::selection {
  background: var(--spot-002);
  color: var(--ink);
}

img,
picture,
svg { max-width: 100%; }

h1, h2, h3, p, dl, dd, ol, ul, figure, blockquote, table {
  margin: 0;
  padding: 0;
}
ol, ul { list-style: none; }

a { color: inherit; }

/* Focus is a first-class state, not a browser leftover. */
:focus-visible {
  outline: 3px solid var(--rust);
  outline-offset: 3px;
}
.release--003 :focus-visible,
.close :focus-visible { outline-color: var(--spot-002); }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.skip-link {
  position: absolute;
  left: var(--gutter);
  top: -100%;
  z-index: 60;
  padding: 14px 22px;
  background: var(--ink);
  color: var(--paper);
  font-size: var(--t-small);
  font-weight: 600;
  text-decoration: none;
}
.skip-link:focus { top: 14px; }

/* ── Micro-labels: the catalogue's register type. 12px floor. ── */
.side-head,
.specs dt,
.commission-tags,
.ledger-table th,
.flag {
  font-size: var(--t-micro);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.5;
}

.runout-matrix,
.spine-imprint,
.release-art figcaption,
.colophon-matrix {
  font-size: var(--t-micro);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.5;
}

/* ═══════════════ Spine — the identity strip that travels ═══════ */
.spine {
  position: sticky;
  top: 0;
  z-index: 50;
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: clamp(16px, 2.4vw, 40px);
  padding: 14px var(--gutter);
  background: var(--ink);
  color: var(--paper);
  --fg: var(--paper);
  --fg-2: #cfc6ba;
  --bg: var(--ink);
  border-bottom: var(--rule) solid var(--ink);
}
.spine-mark { display: flex; }
.spine-mark img {
  display: block;
  width: clamp(104px, 9vw, 132px);
  height: auto;
}
.spine-imprint {
  color: var(--fg-2);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 1340px) {
  .spine-imprint { display: none; }
}
.spine-nav {
  display: flex;
  gap: clamp(14px, 1.8vw, 30px);
  font-size: var(--t-small);
  font-weight: 500;
}
.spine-nav a {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  padding: 6px 0;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color 220ms var(--ease), color 220ms var(--ease);
}
.spine-nav a b {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: var(--t-micro);
  letter-spacing: 0.1em;
  color: var(--spot-002);
}
.spine-nav a:hover { border-bottom-color: var(--spot-002); }

.spine-lang {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: var(--t-micro);
  font-weight: 600;
  letter-spacing: 0.08em;
}
.spine-lang span,
.spine-lang a {
  padding: 4px 8px;
  text-decoration: none;
  border: var(--rule) solid color-mix(in srgb, var(--paper) 40%, transparent);
}
.spine-lang span {
  background: var(--paper);
  color: var(--ink);
  border-color: var(--paper);
}
.spine-lang a:hover { border-color: var(--spot-002); color: var(--spot-002); }

.spine-toggle {
  display: none;
  padding: 9px 16px;
  border: var(--rule) solid var(--paper);
  background: transparent;
  color: var(--paper);
  font: inherit;
  font-size: var(--t-micro);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
}
.spine-toggle[aria-expanded="true"] { background: var(--paper); color: var(--ink); }

.spine-sheet {
  position: sticky;
  top: 62px;
  z-index: 49;
  background: var(--ink);
  color: var(--paper);
  --fg: var(--paper);
  --fg-2: #cfc6ba;
  --bg: var(--ink);
  padding: 12px var(--gutter) 22px;
}
.spine-sheet[hidden] { display: none; }
.spine-sheet nav { display: flex; flex-direction: column; }
.spine-sheet a {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 15px 0;
  font-size: var(--t-lead);
  font-weight: 500;
  text-decoration: none;
  border-top: var(--rule) solid color-mix(in srgb, var(--paper) 26%, transparent);
}
.spine-sheet a b {
  font-variant-numeric: tabular-nums;
  font-size: var(--t-micro);
  letter-spacing: 0.1em;
  color: var(--spot-002);
}

/* ═══════════════ Release — one flooded field per catalogue no. ═ */
.release {
  position: relative;
  display: grid;
  grid-template-columns:
    [full-start] minmax(var(--gutter), 1fr)
    [main-start] minmax(0, calc(var(--shell) * 0.52))
    [mid] minmax(0, calc(var(--shell) * 0.48))
    [main-end] minmax(var(--gutter), 1fr)
    [full-end];
  align-items: center;
  column-gap: clamp(24px, 3vw, 56px);
  padding-block: var(--step);
  background: var(--bg);
  color: var(--fg);
}
.release-anchor {
  position: absolute;
  inset-block-start: -80px;
}
.release-plate {
  grid-column: main-start / mid;
  display: flex;
  flex-direction: column;
  gap: clamp(26px, 2.8vw, 42px);
  min-width: 0;
  container-type: inline-size;
}

.release--001 {
  --bg: var(--spot-001);
  --fg: var(--paper);
  --fg-2: #c3ddd0;
  --hair: color-mix(in srgb, var(--paper) 34%, transparent);
}
.release--002 {
  --bg: var(--spot-002);
  --fg: var(--ink);
  --fg-2: #5a4a06;
  --hair: color-mix(in srgb, var(--ink) 32%, transparent);
}
.release--003 {
  --bg: var(--spot-003);
  --fg: var(--paper);
  --fg-2: #cfc6ba;
  --hair: color-mix(in srgb, var(--paper) 30%, transparent);
}

/* Spec block: catalogue data as a register, never a label above a heading */
.specs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-top: var(--rule) solid var(--hair);
  border-bottom: var(--rule) solid var(--hair);
}
.specs > div {
  flex: 1 1 auto;
  min-width: 150px;
  padding: 13px 20px 13px 0;
  border-right: var(--rule) solid var(--hair);
}
.specs > div:last-child { border-right: 0; }
.specs > div + div { padding-left: 20px; }
.specs--tight {
  border: 0;
  border-top: var(--rule) solid var(--hair);
}
.specs--tight > div { border-right: 0; padding-right: 28px; }
.specs dt {
  color: var(--fg-2);
  margin-bottom: 5px;
}
.specs dd {
  font-size: var(--t-small);
  font-weight: 500;
  line-height: 1.45;
}
.specs-cat {
  font-variant-numeric: tabular-nums;
  font-size: var(--t-lead) !important;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.stamp {
  display: inline-block;
  margin-right: 7px;
  padding: 2px 8px;
  border: var(--rule) solid currentColor;
  font-size: var(--t-micro);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transform: rotate(-1.6deg);
}

.release-head {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.6vw, 24px);
}
.release-title {
  /* Safiro semibold uppercase runs ~0.67em per cap; 96cqi leaves a safety
     margin against the plate. --title-chars is the name's own length. */
  --title-chars: 5;
  font-size: clamp(40px, calc(96cqi / var(--title-chars) / 0.67), 148px);
  font-weight: 600;
  line-height: 0.9;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  transform: skewY(-1.4deg);
  transform-origin: left center;
  margin-block-end: 4px;
}
.release--002 .release-title { --title-chars: 10; }  /* SALAMANDRA */
.release--003 .release-title { --title-chars: 9; }   /* CROAKBORN */
.release-line {
  max-width: 34ch;
  font-size: clamp(18px, 1.35vw, 23px);
  font-weight: 500;
  line-height: 1.42;
}

/* ── Side A / Side B: the record's own motion ── */
.sides-switch { display: none; }
[data-enhanced] .sides-switch {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-bottom: 26px;
}
.sides-switch button {
  padding: 11px 20px;
  border: var(--rule) solid var(--hair);
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: var(--t-micro);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 240ms var(--ease), color 240ms var(--ease);
}
.sides-switch button + button { border-left: 0; }
.sides-switch button[aria-pressed="true"] {
  background: var(--fg);
  color: var(--bg);
  border-color: var(--fg);
}
.side { display: flex; flex-direction: column; gap: 18px; }
[data-enhanced] .side[hidden] { display: none; }
[data-enhanced] .side {
  animation: side-in 520ms var(--ease) both;
}
@keyframes side-in {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
.side-head { color: var(--fg-2); }
.side-lede {
  max-width: 52ch;
  font-size: var(--t-body);
  line-height: 1.6;
  color: var(--fg-2);
}

.tracks { display: flex; flex-direction: column; }
.tracks li {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1.15fr);
  align-items: baseline;
  gap: 14px;
  padding: 13px 0;
  border-top: var(--rule) solid var(--hair);
}
.tracks li:last-child { border-bottom: var(--rule) solid var(--hair); }
.tracks-no {
  font-variant-numeric: tabular-nums;
  font-size: var(--t-micro);
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--fg-2);
}
.tracks b { font-size: var(--t-body); font-weight: 600; }
.tracks-spec {
  font-size: var(--t-small);
  line-height: 1.45;
  color: var(--fg-2);
}

/* ── Runout: where the action sits ── */
.runout {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 26px;
  padding-top: 6px;
}
.runout-matrix {
  font-variant-numeric: tabular-nums;
  color: var(--fg-2);
}
.notch {
  --notch-fg: var(--bg);
  --notch-bg: var(--fg);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 15px 30px;
  background: var(--notch-bg);
  color: var(--notch-fg);
  font-size: var(--t-body);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  transform: skewX(-11deg);
  transition: background 220ms var(--ease), transform 220ms var(--ease);
}
.notch > * { transform: skewX(11deg); }
.notch::after {
  content: "";
  position: absolute;
  inset-block: 0;
  right: 0;
  width: 15px;
  background: repeating-linear-gradient(
    -45deg,
    var(--notch-bg) 0 3px,
    transparent 3px 7px
  );
}
.notch:hover { transform: skewX(-11deg) translateX(5px); }
.notch--ink { --notch-bg: var(--ink); --notch-fg: var(--paper); }

/* ── Release art: hard-cropped, bleeding off the right edge ── */
.release-art {
  grid-column: mid / full-end;
  position: relative;
  min-width: 0;
}
.release-art img { display: block; width: 100%; height: auto; }
.release-art figcaption {
  margin-top: 14px;
  padding-left: 2px;
  color: var(--fg-2);
}
.release-art--001 picture { display: block; }
.release-art--001 img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: 16% center;
  border: 2px solid var(--paper);
}
.release-art--002 img {
  width: min(100%, 720px);
  filter: drop-shadow(0 26px 40px rgba(20, 18, 16, 0.28));
}
.release-art--003 img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: left center;
  border: 2px solid var(--rust);
}

.pull {
  max-width: 26ch;
  font-size: clamp(21px, 2vw, 31px);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.02em;
  padding-top: 20px;
  border-top: 2px solid var(--ink);
}

/* ── Distribution row ── */
.dist { display: flex; flex-wrap: wrap; gap: 10px; }
.dist a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 11px 18px;
  border: var(--rule) solid var(--hair);
  font-size: var(--t-small);
  font-weight: 500;
  text-decoration: none;
  transition: background 200ms var(--ease), color 200ms var(--ease), border-color 200ms var(--ease);
}
.dist a:hover {
  background: var(--rust);
  border-color: var(--rust);
  color: var(--paper);
  text-decoration: none;
}

/* ═══════════════ Register — the quiet between two floods ══════ */
.register {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) auto;
  align-items: center;
  gap: clamp(24px, 3.5vw, 64px);
  max-width: var(--shell);
  margin-inline: auto;
  padding: clamp(48px, 5.5vw, 92px) var(--gutter);
}
.register-claim {
  font-size: clamp(34px, 4.2vw, 62px);
  font-weight: 600;
  line-height: 0.98;
  letter-spacing: -0.035em;
}
.register-body {
  max-width: 58ch;
  font-size: var(--t-body);
  line-height: 1.62;
  color: var(--ink-soft);
}
.register-gizmo {
  width: clamp(88px, 9vw, 128px);
  height: auto;
  image-rendering: pixelated;
}

/* ═══════════════ Ledger ═══════════════════════════════════════ */
.ledger,
.commission {
  max-width: var(--shell);
  margin-inline: auto;
  padding: var(--step) var(--gutter);
}
.ledger { border-top: var(--rule) solid var(--hair); }
.ledger-head,
.commission-head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: clamp(30px, 3.4vw, 52px);
  max-width: 62ch;
}
.ledger-head h2,
.commission-head h2,
.close h2 {
  font-size: clamp(38px, 5.2vw, 82px);
  font-weight: 600;
  line-height: 0.96;
  letter-spacing: -0.04em;
  text-transform: uppercase;
}
.ledger-head p,
.commission-head p {
  font-size: var(--t-body);
  line-height: 1.6;
  color: var(--ink-soft);
}

.ledger-table {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}
.ledger-table th {
  text-align: left;
  padding: 0 16px 11px 0;
  color: var(--ink-soft);
  border-bottom: 2px solid var(--ink);
}
.ledger-table th:last-child,
.ledger-table td:last-child { text-align: right; padding-right: 0; }
.ledger-table td {
  padding: 18px 16px 18px 0;
  border-bottom: var(--rule) solid var(--hair);
  font-size: clamp(17px, 1.6vw, 22px);
  font-weight: 500;
}
.ledger-table td:first-child {
  width: 74px;
  font-size: var(--t-small);
  font-weight: 600;
  color: var(--ink-soft);
}
.flag {
  display: inline-block;
  padding: 4px 11px;
  border: var(--rule) solid var(--ink);
}
.flag--live { background: var(--spot-001); color: var(--paper); border-color: var(--spot-001); }
.flag--queued { color: var(--ink-soft); border-color: var(--hair); }

/* ═══════════════ Commission ═══════════════════════════════════ */
.commission { background: var(--board-deep); max-width: none; }
.commission > * { max-width: var(--shell); margin-inline: auto; }
.commission-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(258px, 1fr));
  gap: 0;
  border-top: 2px solid var(--ink);
}
.commission-list li {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 30px 30px 34px 0;
  border-right: var(--rule) solid var(--hair);
}
.commission-list li:last-child { border-right: 0; }
.commission-list li + li { padding-left: 30px; }
.commission-no {
  font-variant-numeric: tabular-nums;
  font-size: var(--t-small);
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--rust);
}
.commission-list h3 {
  font-size: clamp(21px, 1.9vw, 27px);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.02em;
}
.commission-list p { font-size: var(--t-body); line-height: 1.55; color: var(--ink-soft); }
.commission-tags { color: var(--ink-soft) !important; margin-top: auto; padding-top: 8px; }

/* ═══════════════ Close ════════════════════════════════════════ */
.close {
  background: var(--spot-001);
  color: var(--paper);
  --fg: var(--paper);
  --fg-2: #c3ddd0;
  --bg: var(--spot-001);
  --hair: color-mix(in srgb, var(--paper) 34%, transparent);
  padding: var(--step) var(--gutter);
  display: flex;
  flex-direction: column;
  gap: 22px;
  align-items: flex-start;
}
.close-inner,
.notfound-inner {
  width: 100%;
  max-width: var(--shell);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 22px;
  align-items: flex-start;
}
.close p { max-width: 54ch; font-size: clamp(17px, 1.4vw, 21px); line-height: 1.55; }
.close .runout { padding-top: 12px; }

/* ═══════════════ Colophon ═════════════════════════════════════ */
.colophon {
  background: var(--ink);
  color: var(--paper);
  --fg: var(--paper);
  --fg-2: #cfc6ba;
  --bg: var(--ink);
  --hair: color-mix(in srgb, var(--paper) 26%, transparent);
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: clamp(28px, 3vw, 56px);
  padding: clamp(46px, 5vw, 84px) var(--gutter) 34px;
}
.colophon > * { min-width: 0; }
.colophon-credits { grid-row: 1; }
.colophon-credits .side-head { margin-bottom: 14px; }
.colophon-credits .specs--tight { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.colophon-credits dd { color: var(--paper); }
.colophon-nav {
  grid-row: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: flex-start;
  font-size: var(--t-body);
}
.colophon-nav a {
  text-decoration: none;
  border-bottom: var(--rule) solid var(--hair);
  padding-bottom: 3px;
  transition: border-color 200ms var(--ease), color 200ms var(--ease);
}
.colophon-nav a:hover { color: var(--spot-002); border-bottom-color: var(--spot-002); }
.colophon-matrix {
  grid-column: 1 / -1;
  padding-top: 26px;
  border-top: var(--rule) solid var(--hair);
  font-size: var(--t-micro);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fg-2);
}

/* ═══════════════ Legal pages ══════════════════════════════════ */
.legal {
  max-width: 74ch;
  margin-inline: auto;
  padding: clamp(56px, 6vw, 104px) var(--gutter) var(--step);
}
.legal h1 {
  font-size: clamp(42px, 6.4vw, 92px);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  margin-bottom: 40px;
}
.legal h2 {
  font-size: clamp(20px, 1.8vw, 25px);
  font-weight: 600;
  letter-spacing: -0.015em;
  margin-top: 42px;
  margin-bottom: 10px;
  padding-top: 18px;
  border-top: var(--rule) solid var(--hair);
}
.legal p, .legal li {
  font-size: var(--t-body);
  line-height: 1.68;
  color: var(--ink-soft);
  margin-bottom: 14px;
}
.legal ul { list-style: disc; padding-left: 22px; }
.legal p a:not(.notch),
.legal li a:not(.notch) { color: var(--spot-001-deep); text-underline-offset: 3px; }
.legal .runout { margin-top: 48px; }
.legal-note {
  padding: 15px 20px;
  margin-bottom: 34px;
  border: var(--rule) solid var(--hair);
  background: var(--board-deep);
  font-size: var(--t-small) !important;
  line-height: 1.55;
  color: var(--ink) !important;
}

/* ═══════════════ 404 ══════════════════════════════════════════ */
.notfound {
  min-height: 74vh;
  background: var(--spot-003);
  color: var(--paper);
  --fg: var(--paper);
  --fg-2: #cfc6ba;
  --bg: var(--spot-003);
  --hair: color-mix(in srgb, var(--paper) 30%, transparent);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 24px;
  padding: var(--step) var(--gutter);
}
.notfound h1 {
  font-size: clamp(64px, 12vw, 190px);
  font-weight: 600;
  line-height: 0.86;
  letter-spacing: -0.045em;
  font-variant-numeric: tabular-nums;
}
.notfound p { max-width: 46ch; font-size: clamp(17px, 1.5vw, 22px); line-height: 1.5; }
.notfound .notch { --notch-bg: var(--spot-002); --notch-fg: var(--ink); }

/* ═══════════════ Responsive ═══════════════════════════════════ */
@media (max-width: 1080px) {
  .spine-nav,
  .spine-imprint { display: none; }
  .spine {
    grid-template-columns: auto 1fr auto;
    justify-content: space-between;
  }
  .spine-lang { justify-self: end; }
  .spine-toggle { display: inline-block; }

  .release {
    grid-template-columns: [full-start] var(--gutter) [main-start] minmax(0, 1fr) [main-end] var(--gutter) [full-end];
    row-gap: clamp(34px, 5vw, 56px);
  }
  .release-plate { grid-column: main-start / main-end; }
  .release-art { grid-column: main-start / full-end; }
  .release-art--001 img { aspect-ratio: 16 / 10; }
  .release-art--002 img { width: min(100%, 460px); }
  .release-art--003 img { aspect-ratio: 3 / 2; }

  .register {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
  }
  .register-claim { grid-column: 1; }
  .register-gizmo { grid-column: 2; grid-row: 1 / span 2; }
  .register-body { grid-column: 1; }

  .colophon { grid-template-columns: minmax(0, 1fr); }
  .colophon-nav { grid-row: auto; }
}

@media (max-width: 700px) {
  :root { --shell: 100%; }
  .specs > div {
    flex: 1 1 100%;
    min-width: 0;
    border-right: 0;
    border-bottom: var(--rule) solid var(--hair);
    padding-left: 0 !important;
  }
  .specs > div:last-child { border-bottom: 0; }
  .tracks li {
    grid-template-columns: 32px minmax(0, 1fr);
    row-gap: 4px;
  }
  .tracks-spec { grid-column: 2; }
  /* On a phone the name has to arrive before the register data. */
  .release-head { order: -1; }
  .specs > div { padding-block: 11px; }
  .sides-switch { width: 100%; }
  .sides-switch button { flex: 1 1 auto; }
  .commission-list li {
    border-right: 0;
    border-bottom: var(--rule) solid var(--hair);
    padding-right: 0;
    padding-left: 0 !important;
  }
  .commission-list li:last-child { border-bottom: 0; }
  .ledger-table td { font-size: var(--t-body); }
  .ledger-table td:last-child,
  .ledger-table th:last-child { text-align: left; }
  .pull { padding-top: 16px; }
  .notch { padding: 14px 24px; font-size: var(--t-small); }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
  }
}
