/* ==========================================================================
   Caliber Desk - enchant.top

   Visual hand: technical white, graphite ink, one safety-orange accent that is
   spent only on the dimension that carries the decision. Everything is square,
   every rule is a hairline, every number is monospaced. The page frame is a
   drawing sheet, not a card.

   Load order: fonts -> reset -> sheet frame -> masthead -> hero -> spec index
   -> sub-nav -> detail sheet -> tables -> legal -> footer -> print.
   ========================================================================== */

:root {
  /* the two palette variables the brief fixes by name, plus the working set */
  --spec-graphite: #26292b;
  --caliper-orange: #f26f21;
  --draft-white: #fbfbf9;
  --grid-blue: #7d93a8;

  --ink-soft: #4d5459;
  --ink-faint: #8b9195;
  --rule: #d6d9d4;
  --rule-strong: #a9aeaa;
  --wash: #f2f3ef;
  --wash-blue: rgba(125, 147, 168, 0.13);

  --step: 1.5rem;
  --gutter: clamp(1rem, 4vw, 3.5rem);
  --measure: 74rem;

  --face-display: 'Space Grotesk', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --face-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --face-body: 'Space Grotesk', 'Segoe UI', system-ui, -apple-system, sans-serif;
}

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

html { -webkit-text-size-adjust: 100%; }

body.cd-doc {
  margin: 0;
  background-color: var(--draft-white);
  /* engineering grid, drawn as a background so it costs nothing to repaint */
  background-image:
    linear-gradient(to right, var(--wash-blue) 1px, transparent 1px),
    linear-gradient(to bottom, var(--wash-blue) 1px, transparent 1px);
  background-size: 24px 24px;
  color: var(--spec-graphite);
  font-family: var(--face-body);
  font-size: 16px;
  line-height: 1.62;
  text-rendering: optimizeLegibility;
}

img, svg { max-width: 100%; height: auto; display: block; }

a { color: var(--spec-graphite); text-decoration: none; border-bottom: 1px solid var(--rule-strong); }
a:hover { border-bottom-color: var(--caliper-orange); color: var(--caliper-orange); }
a:focus-visible { outline: 2px solid var(--caliper-orange); outline-offset: 2px; }

.cd-skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--spec-graphite); color: var(--draft-white);
  padding: .6rem 1rem; z-index: 40; border: 0;
}
.cd-skip:focus { left: 0; }

/* --------------------------------------------------------------- the sheet */

.cd-sheet {
  max-width: var(--measure);
  margin: 0 auto;
  padding: 0 var(--gutter) calc(var(--step) * 3);
}

.cd-masthead {
  border-bottom: 1.5px solid var(--spec-graphite);
  padding: 1.1rem 0 .8rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .6rem 1.4rem;
}

.cd-masthead__mark {
  font-family: var(--face-mono);
  font-size: .82rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  border: 0;
  color: var(--spec-graphite);
}
.cd-masthead__mark b { font-weight: 700; }
.cd-masthead__mark span { color: var(--caliper-orange); }

.cd-masthead__rule {
  flex: 1 1 6rem;
  height: 1px;
  background: var(--rule-strong);
  transform: translateY(-.3em);
}

.cd-masthead__nav {
  display: flex;
  flex-wrap: wrap;
  gap: .1rem 1.1rem;
  font-family: var(--face-mono);
  font-size: .74rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.cd-masthead__nav a { border: 0; color: var(--ink-soft); }
.cd-masthead__nav a:hover { color: var(--caliper-orange); }

.cd-lang {
  display: flex;
  font-family: var(--face-mono);
  font-size: .74rem;
  letter-spacing: .1em;
  border: 1px solid var(--rule-strong);
  transform: translateY(-2px);
}
.cd-lang a, .cd-lang span {
  padding: .18rem .6rem;
  border: 0;
  border-right: 1px solid var(--rule-strong);
  color: var(--ink-soft);
}
.cd-lang a:last-child, .cd-lang span:last-child { border-right: 0; }
.cd-lang [aria-current='true'] { background: var(--spec-graphite); color: var(--draft-white); }

/* ------------------------------------------------------------------- hero */

.cd-hero {
  padding: calc(var(--step) * 1.4) 0 var(--step);
  border-bottom: 1px solid var(--rule);
}

.cd-hero__eyebrow {
  font-family: var(--face-mono);
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin: 0 0 .7rem;
}

.cd-hero h1 {
  font-size: clamp(1.9rem, 5vw, 3.1rem);
  line-height: 1.06;
  letter-spacing: -.02em;
  margin: 0 0 .8rem;
  max-width: 34ch;
}

.cd-hero__standfirst {
  font-size: clamp(1rem, 1.4vw, 1.12rem);
  color: var(--ink-soft);
  max-width: 62ch;
  margin: 0 0 calc(var(--step) * 1.2);
}

.cd-hero__plate { margin: 0 0 var(--step); }
/* the hero sheet is inlined rather than linked, so the client script can move
   the two live dimension lines inside it */
.cd-hero__plate img,
.cd-hero__plate svg {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--rule-strong);
  background: var(--draft-white);
}
.cd-hero__plate figcaption {
  font-family: var(--face-mono);
  font-size: .72rem;
  letter-spacing: .08em;
  color: var(--ink-faint);
  margin-top: .5rem;
  padding-left: .1rem;
}

/* the two measurement dials */
.cd-dials {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule-strong);
}
.cd-dial { background: var(--draft-white); padding: 1rem 1.1rem 1.15rem; }
.cd-dial__label {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-family: var(--face-mono);
  font-size: .74rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: .7rem;
}
.cd-dial__value { font-size: 1rem; color: var(--caliper-orange); letter-spacing: 0; }

.cd-dial input[type='range'] {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 22px;
  background: transparent;
  margin: 0;
  cursor: ew-resize;
}
.cd-dial input[type='range']::-webkit-slider-runnable-track {
  height: 2px; background: var(--spec-graphite);
}
.cd-dial input[type='range']::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 12px; height: 22px;
  margin-top: -10px;
  background: var(--caliper-orange);
  border: 0;
  border-radius: 0;
}
.cd-dial input[type='range']::-moz-range-track { height: 2px; background: var(--spec-graphite); }
.cd-dial input[type='range']::-moz-range-thumb {
  width: 12px; height: 22px; background: var(--caliper-orange);
  border: 0; border-radius: 0;
}
.cd-dial__scale {
  display: flex;
  justify-content: space-between;
  font-family: var(--face-mono);
  font-size: .68rem;
  color: var(--ink-faint);
  margin-top: .35rem;
}

.cd-readout {
  margin-top: 1px;
  border: 1px solid var(--rule-strong);
  border-top: 0;
  display: grid;
  /* exactly four columns, because there are exactly four readouts: an
     auto-fit track would leave an empty cell showing the gap colour */
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--rule);
}
@media (max-width: 56rem) { .cd-readout { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cd-readout__cell { background: var(--draft-white); padding: .8rem 1.1rem .9rem; }
.cd-readout__cell dt {
  font-family: var(--face-mono);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-bottom: .2rem;
}
.cd-readout__cell dd {
  margin: 0;
  font-family: var(--face-mono);
  font-size: 1.28rem;
  font-weight: 500;
  letter-spacing: -.01em;
}
.cd-readout__cell dd small { font-size: .72rem; color: var(--ink-faint); margin-left: .25rem; }

.cd-flag {
  grid-column: 1 / -1;
  background: var(--wash);
  border-left: 3px solid var(--caliper-orange);
  padding: .7rem 1.1rem;
  font-size: .9rem;
  color: var(--ink-soft);
}
.cd-flag[hidden] { display: none; }
.cd-flag[data-cd-band="ok"] { border-left-color: var(--grid-blue); }
.cd-flag[data-cd-band="high"],
.cd-flag[data-cd-band="low"] { border-left-color: var(--caliper-orange); }

/* ------------------------------------------------------------ spec index */

.cd-band { padding: calc(var(--step) * 1.6) 0 0; }

.cd-band__head {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  border-bottom: 1.5px solid var(--spec-graphite);
  padding-bottom: .45rem;
  margin-bottom: 0;
}
.cd-band__head h2 {
  font-size: 1.05rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  margin: 0;
  font-family: var(--face-mono);
  font-weight: 500;
}
.cd-band__head span {
  margin-left: auto;
  font-family: var(--face-mono);
  font-size: .74rem;
  color: var(--ink-faint);
}
.cd-band__note {
  color: var(--ink-soft);
  font-size: .95rem;
  max-width: 66ch;
  margin: .85rem 0 0;
}

.cd-index { margin: 0; padding: 0; list-style: none; }

.cd-index__row {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr) auto;
  gap: 0 1.1rem;
  align-items: baseline;
  padding: .85rem 0 .9rem;
  border-bottom: 1px solid var(--rule);
}
.cd-index__row:hover { background: var(--wash); }

.cd-index__no {
  font-family: var(--face-mono);
  font-size: .95rem;
  color: var(--caliper-orange);
}
.cd-index__name { font-size: 1.06rem; letter-spacing: -.008em; }
.cd-index__name a { border-bottom-color: transparent; }
.cd-index__name a:hover { border-bottom-color: var(--caliper-orange); }
.cd-index__name em {
  display: block;
  font-style: normal;
  font-size: .88rem;
  color: var(--ink-soft);
  margin-top: .25rem;
  max-width: 74ch;
}
.cd-index__count {
  font-family: var(--face-mono);
  font-size: .74rem;
  color: var(--ink-faint);
  white-space: nowrap;
}

.cd-index__kids {
  grid-column: 2 / -1;
  list-style: none;
  margin: .7rem 0 0;
  padding: 0;
  display: grid;
  gap: .3rem 1.4rem;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
}
.cd-index__kids a {
  font-size: .93rem;
  border-bottom: 0;
  color: var(--ink-soft);
  display: flex;
  gap: .6rem;
}
.cd-index__kids a::before {
  content: counter(cd-item, decimal-leading-zero);
  counter-increment: cd-item;
  font-family: var(--face-mono);
  font-size: .72rem;
  color: var(--grid-blue);
  padding-top: .18em;
}
.cd-index__kids { counter-reset: cd-item; }
.cd-index__kids a:hover { color: var(--caliper-orange); }

/* ------------------------------------------------------------ sub-nav rail */

.cd-subnav {
  position: sticky;
  top: 0;
  z-index: 6;
  background: var(--draft-white);
  border-bottom: 1px solid var(--rule-strong);
  border-top: 1px solid var(--rule);
  margin-top: calc(var(--step) * 1.6);
}
.cd-subnav__track {
  display: flex;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: thin;
}
.cd-subnav__track a {
  flex: 0 0 auto;
  border: 0;
  border-right: 1px solid var(--rule);
  padding: .62rem .95rem;
  font-family: var(--face-mono);
  font-size: .74rem;
  letter-spacing: .04em;
  color: var(--ink-soft);
  white-space: nowrap;
}
.cd-subnav__track a b { color: var(--grid-blue); margin-right: .4rem; font-weight: 500; }
.cd-subnav__track a[aria-current='true'] {
  background: var(--spec-graphite);
  color: var(--draft-white);
}
.cd-subnav__track a[aria-current='true'] b { color: var(--caliper-orange); }

/* ---------------------------------------------------------------- detail */

.cd-crumb {
  font-family: var(--face-mono);
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-faint);
  padding: 1.1rem 0 0;
}
.cd-crumb a { border: 0; color: var(--ink-soft); }
.cd-crumb a:hover { color: var(--caliper-orange); }
.cd-crumb span { margin: 0 .45rem; color: var(--rule-strong); }

.cd-spec { padding-top: .9rem; }
.cd-spec__head { max-width: 62ch; }
.cd-spec__head h1 {
  font-size: clamp(1.65rem, 3.6vw, 2.5rem);
  line-height: 1.1;
  letter-spacing: -.02em;
  margin: .3rem 0 .7rem;
}
.cd-spec__head .cd-meta {
  font-family: var(--face-mono);
  font-size: .74rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.cd-spec__head .cd-meta b { color: var(--caliper-orange); font-weight: 500; }
/* The byline sits in the same stamped meta row as the publish date. It is one
   step darker than the surrounding stamps so it reads as a deliberate credit
   line rather than a stray fragment of the date. */
.cd-spec__head .cd-meta .cd-byline { color: var(--ink-soft); }
.cd-spec__lede { font-size: 1.06rem; color: var(--ink-soft); margin: .8rem 0 0; }

.cd-plate {
  margin: calc(var(--step) * 1.2) 0 var(--step);
  border: 1px solid var(--rule-strong);
  background: var(--draft-white);
  padding: 0;
}
.cd-plate img { width: 100%; }
.cd-plate figcaption {
  border-top: 1px solid var(--rule);
  font-family: var(--face-mono);
  font-size: .72rem;
  color: var(--ink-faint);
  padding: .55rem .9rem;
  letter-spacing: .06em;
}

/* Even split, and the same gutter as .cd-prose--notes above it, so the two
   column sets share one vertical rhythm down the sheet. */
.cd-grid2 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: calc(var(--step) * 1.2) calc(var(--step) * 2.2);
  align-items: start;
}
@media (max-width: 56rem) { .cd-grid2 { grid-template-columns: minmax(0, 1fr); } }

.cd-prose h2 {
  font-size: 1.02rem;
  font-family: var(--face-mono);
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--rule-strong);
  padding-bottom: .35rem;
  margin: calc(var(--step) * 1.3) 0 .7rem;
}
.cd-prose section:first-of-type h2 { margin-top: 0; }
.cd-prose p { margin: 0 0 .85rem; }
.cd-prose ul { margin: 0 0 .9rem; padding-left: 1.15rem; }
.cd-prose li { margin-bottom: .35rem; }
.cd-prose li::marker { color: var(--grid-blue); }
/* The long-form notes set as two columns of running text, so the measure stays
   near 60 characters while the schedule above keeps the full sheet width. */
.cd-prose--notes {
  column-count: 2;
  column-gap: calc(var(--step) * 2.2);
  column-rule: 1px solid var(--rule);
  margin-top: calc(var(--step) * 1.4);
}
.cd-prose--notes section { break-inside: avoid; }
@media (max-width: 56rem) { .cd-prose--notes { column-count: 1; column-rule: 0; } }

/* the measurement table: item / ideal / range / why */
.cd-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .92rem;
  margin: 0 0 var(--step);
}
.cd-table caption {
  text-align: left;
  font-family: var(--face-mono);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-faint);
  padding-bottom: .5rem;
}
.cd-table th {
  text-align: left;
  font-family: var(--face-mono);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink-soft);
  border-bottom: 1.5px solid var(--spec-graphite);
  padding: .3rem .7rem .38rem 0;
}
.cd-table td {
  border-bottom: 1px solid var(--rule);
  padding: .6rem .7rem .65rem 0;
  vertical-align: top;
}
.cd-table tr:hover td { background: var(--wash); }
.cd-table .cd-callno {
  font-family: var(--face-mono);
  color: var(--draft-white);
  background: var(--spec-graphite);
  display: inline-block;
  width: 1.35rem; height: 1.35rem;
  line-height: 1.35rem;
  text-align: center;
  font-size: .72rem;
}
.cd-table .cd-ideal {
  font-family: var(--face-mono);
  font-size: 1.02rem;
  white-space: nowrap;
  border-bottom: 2px solid var(--caliper-orange);
  padding-bottom: .05rem;
}
.cd-table .cd-range { font-family: var(--face-mono); font-size: .86rem; color: var(--ink-soft); white-space: nowrap; }
.cd-table .cd-why { color: var(--ink-soft); }

/* The schedule is the one table that carries a full sentence in its last
   column, so its widths are fixed rather than left to the auto layout, which
   would otherwise squeeze the item names down to one word a line. */
.cd-table--schedule { table-layout: fixed; }
.cd-table--schedule td, .cd-table--schedule th { padding-right: 1.1rem; }
.cd-col-no { width: 2.9rem; }
.cd-col-item { width: 24%; }
.cd-col-ideal { width: 6.2rem; }
.cd-col-range { width: 7.4rem; }
.cd-table--schedule .cd-callno { vertical-align: top; }

/* checklist */
.cd-rules { list-style: none; margin: 0 0 var(--step); padding: 0; }
.cd-rules li {
  display: grid;
  grid-template-columns: 1.5rem minmax(0, 1fr);
  gap: .55rem;
  border-bottom: 1px dashed var(--rule);
  padding: .5rem 0;
  font-size: .93rem;
}
.cd-rules li::before {
  content: '';
  width: .78rem; height: .78rem;
  border: 1.5px solid var(--spec-graphite);
  margin-top: .3rem;
}
.cd-rules li b { font-family: var(--face-mono); font-weight: 500; color: var(--caliper-orange); }

/* budget tiers */
.cd-tiers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule-strong);
  margin: 0 0 var(--step);
}
.cd-tier { background: var(--draft-white); padding: 1rem 1.05rem 1.1rem; }
.cd-tier__band {
  font-family: var(--face-mono);
  font-size: .7rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-faint);
  display: block;
  margin-bottom: .45rem;
}
.cd-tier--mid .cd-tier__band { color: var(--caliper-orange); }
.cd-tier p { margin: 0; font-size: .93rem; color: var(--ink-soft); }

.cd-printbox {
  border: 1px solid var(--rule-strong);
  background: var(--wash);
  padding: 1rem 1.1rem 1.1rem;
  font-family: var(--face-mono);
  font-size: .84rem;
  line-height: 1.7;
  white-space: pre-wrap;
  margin: 0 0 var(--step);
}

.cd-blockhead {
  font-family: var(--face-mono);
  font-size: .82rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  border-bottom: 1.5px solid var(--spec-graphite);
  padding-bottom: .35rem;
  margin: calc(var(--step) * 1.5) 0 .8rem;
}
.cd-pair > div { border-top: 1px solid var(--rule); padding-top: .2rem; }
.cd-pair .cd-blockhead { margin-top: 0; }
.cd-rules--done li::before {
  background: var(--caliper-orange);
  border-color: var(--caliper-orange);
}
.cd-rules--done li span:last-child { color: var(--spec-graphite); }

.cd-rel { list-style: none; margin: 0; padding: 0; }
.cd-rel li { border-bottom: 1px solid var(--rule); padding: .5rem 0; font-size: .93rem; }
.cd-rel .cd-rel__ch { font-family: var(--face-mono); font-size: .72rem; color: var(--grid-blue); margin-right: .55rem; }

.cd-faq { margin: 0 0 var(--step); }
.cd-faq dt {
  font-weight: 600;
  margin-top: 1rem;
  padding-top: .8rem;
  border-top: 1px solid var(--rule);
  font-size: .98rem;
}
.cd-faq dd { margin: .4rem 0 0; color: var(--ink-soft); }

.cd-note {
  border-left: 3px solid var(--grid-blue);
  background: var(--wash);
  padding: .8rem 1.05rem;
  font-size: .86rem;
  color: var(--ink-soft);
  margin: var(--step) 0;
}

/* ---------------------------------------------------------------- listing */

.cd-listing { list-style: none; margin: 0; padding: 0; }
.cd-listing > li {
  border-bottom: 1px solid var(--rule);
  padding: .95rem 0 1rem;
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: 0 1.2rem;
}
.cd-listing__date { font-family: var(--face-mono); font-size: .74rem; color: var(--ink-faint); padding-top: .25rem; }
.cd-listing__title { font-size: 1.04rem; }
.cd-listing__title a { border-bottom-color: transparent; }
.cd-listing__title a:hover { border-bottom-color: var(--caliper-orange); }
.cd-listing__sum { color: var(--ink-soft); font-size: .92rem; margin: .3rem 0 0; max-width: 72ch; }
.cd-listing__tag {
  font-family: var(--face-mono);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--grid-blue);
  display: inline-block;
  margin-top: .45rem;
}

/* ----------------------------------------------------------------- legal */

.cd-legal { max-width: 68ch; padding-top: 1.4rem; }
.cd-legal h1 { font-size: clamp(1.6rem, 3.4vw, 2.3rem); margin: .2rem 0 .3rem; letter-spacing: -.02em; }
.cd-legal h2 {
  font-family: var(--face-mono);
  font-size: .95rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--rule-strong);
  padding-bottom: .3rem;
  margin: 2.1rem 0 .7rem;
}
.cd-legal h3 { font-size: 1rem; margin: 1.4rem 0 .4rem; }
.cd-legal p, .cd-legal li { color: var(--ink-soft); }
.cd-legal .cd-stamp {
  font-family: var(--face-mono);
  font-size: .74rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-faint);
}

.cd-pairs { border: 1px solid var(--rule-strong); margin: 0 0 var(--step); }
.cd-pairs div {
  display: grid;
  grid-template-columns: 12rem minmax(0, 1fr);
  border-bottom: 1px solid var(--rule);
}
.cd-pairs div:last-child { border-bottom: 0; }
.cd-pairs dt {
  font-family: var(--face-mono);
  font-size: .74rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  padding: .6rem .8rem;
  background: var(--wash);
  border-right: 1px solid var(--rule);
}
.cd-pairs dd { margin: 0; padding: .6rem .9rem; }

/* ---------------------------------------------------------------- footer */

.cd-foot {
  margin-top: calc(var(--step) * 2.4);
  border-top: 1.5px solid var(--spec-graphite);
  padding-top: .9rem;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.6rem;
  font-family: var(--face-mono);
  font-size: .72rem;
  letter-spacing: .08em;
  color: var(--ink-faint);
}
.cd-foot a { border: 0; color: var(--ink-soft); }
.cd-foot a:hover { color: var(--caliper-orange); }
.cd-foot__end { margin-left: auto; }
/* The disclaimer takes its own line under the footer links; the footer is a
   wrapping flex row, so it has to claim the full track to avoid being packed
   in beside the links. */
.cd-foot__note { flex-basis: 100%; margin: .1rem 0 0; }

/* ---------------------------------------------------------------- print */

@media print {
  body.cd-doc { background: #fff; background-image: none; }
  .cd-masthead__nav, .cd-lang, .cd-subnav, .cd-foot, .cd-dials, .cd-readout { display: none; }
  .cd-plate, .cd-table { break-inside: avoid; }
  a { border: 0; }
}
