/* The catalog's own layout. Everything it shows is styled by the system's files. */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--face-body);
  font-size: var(--text-base);
  line-height: 1.6;
}

h2 { font-size: var(--text-xl); margin: 0 0 var(--space-xs); }
h3 { font-size: var(--text-lg); margin: var(--space-xl) 0 var(--space-sm); }
code { font-family: var(--face-mono); font-size: 0.85em; direction: ltr; unicode-bidi: isolate; }
a { color: var(--ink); text-underline-offset: 0.2em; }

.top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-sm) var(--space-lg);
  padding: var(--space-md) clamp(1rem, 4vw, 2.5rem);
  border-block-end: var(--rule-hair) solid var(--hairline);
}
.top-mark { height: 2rem; }
.top-title { font-family: var(--face-display); font-size: var(--text-lg); font-weight: 700; }
.version { font-family: var(--face-mono); font-size: var(--text-xs); font-weight: 400; color: var(--ink-muted); }

.switches { display: flex; flex-wrap: wrap; gap: var(--space-md); margin-inline-start: auto; }
.switches fieldset { display: flex; gap: var(--space-sm); margin: 0; padding: var(--space-2xs) var(--space-sm); border: var(--rule-hair) solid var(--hairline); border-radius: var(--corner); font-size: var(--text-sm); }
.switches legend { padding-inline: var(--space-2xs); color: var(--ink-muted); }
.switches label { display: inline-flex; gap: var(--space-2xs); align-items: center; cursor: pointer; }

main { max-width: 72rem; margin-inline: auto; padding: var(--space-xl) clamp(1rem, 4vw, 2.5rem) var(--space-3xl); }
section { padding-block: var(--space-xl); border-block-start: var(--rule-hair) solid var(--hairline); }
.intro { max-width: 40rem; color: var(--ink-muted); margin: 0 0 var(--space-xl); }
.note, .aside { color: var(--ink-muted); font-size: var(--text-sm); margin: 0 0 var(--space-lg); }
.aside { font-family: var(--face-body); font-weight: 400; margin-inline-start: var(--space-xs); }
.label { margin: 0 0 var(--space-2xs); color: var(--ink-muted); font-size: var(--text-sm); }
/* The catalog's prose is English: in the RTL view it keeps its own direction. */
.intro, .note, .label, .swatch-description { unicode-bidi: plaintext; }

.swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: var(--space-md); }
.swatches.is-small { grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }
.swatch { margin: 0; border: var(--rule-hair) solid var(--hairline); border-radius: var(--corner); overflow: hidden; }
.swatch-fill { block-size: 4rem; border-block-end: var(--rule-hair) solid var(--hairline); }
.swatch figcaption { display: grid; gap: var(--space-3xs); padding: var(--space-xs) var(--space-sm); font-size: var(--text-sm); }
.swatch-values { font-family: var(--face-mono); font-size: var(--text-xs); color: var(--ink-muted); direction: ltr; text-align: start; }
.swatch-description { color: var(--ink-muted); font-size: var(--text-xs); }

.faces { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: var(--space-lg); }
.face-sample { margin: 0 0 var(--space-2xs); font-size: var(--text-lg); line-height: 1.3; }

.type-row, .space-row, .motion-row { display: grid; grid-template-columns: 9rem 11rem 1fr; gap: var(--space-md); align-items: center; padding-block: var(--space-2xs); border-block-end: var(--rule-hair) solid var(--hairline); }
.type-value { font-family: var(--face-mono); font-size: var(--text-xs); color: var(--ink-muted); direction: ltr; text-align: start; }
.type-sample { line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.space-bar { display: block; block-size: 0.75rem; background: var(--brass); border-radius: 1px; }

.shapes { display: flex; flex-wrap: wrap; gap: var(--space-xl); }
.shapes figure { margin: 0; display: grid; gap: var(--space-xs); font-size: var(--text-sm); }
.shape-demo { inline-size: 6rem; block-size: 4rem; background: var(--paper-200); border: var(--rule-hair) solid var(--ink); }
.shape-demo.is-hairline { border-color: var(--hairline); border-radius: var(--corner); }
.shape-demo.is-focus { border-color: var(--hairline); border-radius: var(--corner); outline: var(--focus-ring-width) solid var(--focus-ring-color); outline-offset: var(--focus-ring-offset); }

.actions-demo { display: flex; flex-wrap: wrap; gap: var(--space-md) var(--space-lg); align-items: center; margin-block-end: var(--space-lg); }

.brand { display: flex; flex-wrap: wrap; gap: var(--space-lg); align-items: end; }
.brand figure { margin: 0; display: grid; gap: var(--space-xs); justify-items: start; font-family: var(--face-mono); font-size: var(--text-xs); color: var(--ink-muted); }
.brand .on-paper img, .brand .on-night img { padding: var(--space-sm) var(--space-md); border-radius: var(--corner); box-sizing: content-box; }
.brand .on-paper img { background: #f1e6ce; }
.brand .on-night img { background: #0e1830; }
.is-masked { border-radius: 50%; }

@media (max-width: 40rem) {
  .type-row, .space-row, .motion-row { grid-template-columns: 1fr 1fr; }
  .type-sample, .space-bar { grid-column: 1 / -1; }
}
