/* =========================================================================
   coffeylabs.org -- the drawing set.

   The company site reads as a set of engineering drawings: a framed sheet
   with zone letters, a title block that follows the reader, sheet numbers
   on every section, general notes, a bill of materials, a revision history
   and a transmittal. Two prints of the same set: whiteprint (blue ink on
   drafting paper) and blueprint (white lines on cyanotype). Red pencil is
   the reviewer's color and only marks what changed.

   The product sites never use any of this: frame, title block, sheet tags
   and the cyanotype belong to the company.

   Inner pages still wear the previous template under this file, with its
   tokens mapped onto the print, so they follow whiteprint and blueprint too.
   ========================================================================= */

@font-face { font-family: 'Barlow Condensed'; src: url(/fonts/barlow-condensed-latin-600-normal.woff2) format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Barlow Condensed'; src: url(/fonts/barlow-condensed-latin-700-normal.woff2) format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Barlow'; src: url(/fonts/barlow-latin-400-normal.woff2) format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Barlow'; src: url(/fonts/barlow-latin-400-italic.woff2) format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Barlow'; src: url(/fonts/barlow-latin-500-normal.woff2) format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Barlow'; src: url(/fonts/barlow-latin-600-normal.woff2) format('woff2'); font-weight: 600 700; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2'); font-weight: 500 700; font-display: swap; }

/* ---------- the two prints ---------- */
:root {
  /* whiteprint */
  --paper: #F2F0E9;
  --paper-2: #E8E5DA;
  --ink: #11305E;
  --soft: #3F5576;
  --faint: #5A6A84;
  --rule: rgba(17, 48, 94, .7);
  --hair: rgba(17, 48, 94, .2);
  --grid-a: rgba(26, 95, 180, .055);
  --grid-b: rgba(26, 95, 180, .11);
  --link: #1A5FB4;
  --red: #C0322A;
  --live: #137A47;
  --dev: #9A5B00;
  --band: #0E3D78;
  --band-ink: #EEF4FF;
  --band-soft: #BCD0EE;
  --band-hair: rgba(238, 244, 255, .28);
  --band-grid: rgba(238, 244, 255, .07);
  --band-red: #FF8F84;
  --face-l: #DCD9CD;
  --face-r: #CBC8BB;
  --mustard: #F4B41A;
  --cond: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --text: 'Barlow', system-ui, sans-serif;
  --plex: 'IBM Plex Mono', ui-monospace, monospace;
  /* the previous template's tokens, mapped so the inner pages follow the print */
  --line: var(--hair);
  --tint: var(--paper-2);
  --blue-deep: var(--link);
  --field: #fff;
  --font: var(--text);
  --mono: var(--plex);
  color-scheme: light;
}
/* Blueprint, on every page. */
:root[data-print="blue"] {
  --paper: #0B2A52; --paper-2: #0F3361; --ink: #EAF2FF; --soft: #B6CBE8; --faint: #93AED3;
  --rule: rgba(234, 242, 255, .72); --hair: rgba(234, 242, 255, .2);
  --grid-a: rgba(150, 200, 255, .07); --grid-b: rgba(150, 200, 255, .14);
  --link: #9AD0FF; --red: #FF8274; --live: #4ADE9B; --dev: #F5B84A;
  --band: #F2F0E9; --band-ink: #11305E; --band-soft: #3F5576; --band-hair: rgba(17, 48, 94, .22); --band-grid: rgba(26, 95, 180, .07); --band-red: #C0322A;
  --face-l: #123A6C; --face-r: #18467F; --field: var(--paper-2);
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-print="white"]) {
    --paper: #0B2A52; --paper-2: #0F3361; --ink: #EAF2FF; --soft: #B6CBE8; --faint: #93AED3;
    --rule: rgba(234, 242, 255, .72); --hair: rgba(234, 242, 255, .2);
    --grid-a: rgba(150, 200, 255, .07); --grid-b: rgba(150, 200, 255, .14);
    --link: #9AD0FF; --red: #FF8274; --live: #4ADE9B; --dev: #F5B84A;
    --band: #F2F0E9; --band-ink: #11305E; --band-soft: #3F5576; --band-hair: rgba(17, 48, 94, .22); --band-grid: rgba(26, 95, 180, .07); --band-red: #C0322A;
    --face-l: #123A6C; --face-r: #18467F; --field: var(--paper-2);
    color-scheme: dark;
  }
}

body {
  font-family: var(--text); color: var(--ink); background-color: var(--paper);
  background-image:
    linear-gradient(var(--grid-b) 1px, transparent 1px), linear-gradient(90deg, var(--grid-b) 1px, transparent 1px),
    linear-gradient(var(--grid-a) 1px, transparent 1px), linear-gradient(90deg, var(--grid-a) 1px, transparent 1px);
  background-size: 120px 120px, 120px 120px, 24px 24px, 24px 24px;
  background-position: -1px -1px;
  transition: background-color .35s, color .35s;
}
::selection { background: var(--red); color: #fff; }
.eyebrow { font: 500 12px/1.4 var(--plex); letter-spacing: .14em; text-transform: uppercase; color: var(--link); margin: 0; }
.tb-l { display: block; font: 500 9.5px/1.2 var(--plex); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
kbd { font: 500 10.5px var(--plex); border: 1px solid var(--hair); border-bottom-width: 2px; border-radius: 4px; padding: 1px 5px; color: var(--soft); }

/* ---------- the frame: border and zone letters (wide screens) ---------- */
.frame { display: none; }
@media (min-width: 1100px) {
  body { padding: 0 24px 24px; }
  .frame { display: block; position: fixed; inset: 0; z-index: 45; pointer-events: none; }
  .frame::after { content: ''; position: absolute; inset: 24px; border: 1.5px solid var(--rule); }
  .fz { position: absolute; display: flex; justify-content: space-around; align-items: center; background: var(--paper); font: 500 9.5px var(--plex); color: var(--faint); transition: background-color .35s; }
  .fz b { font-weight: 500; position: relative; flex: 1; text-align: center; }
  .fz b + b::before { content: ''; position: absolute; left: 0; background: var(--hair); }
  .fz-t, .fz-b { left: 0; right: 0; height: 24px; padding: 0 24px; }
  .fz-t { top: 0; } .fz-b { bottom: 0; }
  .fz-t b + b::before, .fz-b b + b::before { top: 7px; bottom: 7px; width: 1px; }
  .fz-l, .fz-r { top: 24px; bottom: 24px; width: 24px; flex-direction: column; }
  .fz-l { left: 0; } .fz-r { right: 0; }
  .fz-l b, .fz-r b { display: grid; place-items: center; width: 100%; }
  .fz-l b + b::before, .fz-r b + b::before { top: 0; left: 7px; right: 7px; height: 1px; width: auto; }
}

/* ---------- header: the drawing's top strip ---------- */
.dh { position: sticky; top: 0; z-index: 40; background: var(--paper); border-bottom: 1.5px solid var(--rule); transition: background-color .35s; }
@media (min-width: 1100px) { .dh { top: 24px; margin: 24px 0 0; } }
.dh-in { display: flex; align-items: stretch; height: 64px; }
.dh-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); padding: 0 22px 0 18px; border-right: 1.5px solid var(--rule); flex: none; }
.dh-brand img { border-radius: 8px; }
.dh-brand span { display: flex; flex-direction: column; line-height: 1; }
.dh-brand b { font: 700 23px var(--cond); text-transform: uppercase; letter-spacing: .02em; }
.dh-brand small { font: 500 9.5px var(--plex); letter-spacing: .16em; color: var(--faint); margin-top: 5px; }
.dh-nav { display: flex; align-items: stretch; flex: 1; min-width: 0; }
.dh-nav a { display: flex; flex-direction: column; justify-content: center; padding: 0 18px; text-decoration: none; color: var(--ink); font: 600 15px var(--text); border-right: 1px solid var(--hair); position: relative; white-space: nowrap; }
.dh-nav a small { font: 500 9.5px var(--plex); letter-spacing: .14em; color: var(--faint); margin-bottom: 2px; }
.dh-nav a::after { content: ''; position: absolute; left: 18px; right: 18px; bottom: -1.5px; height: 3px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.dh-nav a:hover::after, .dh-nav a[aria-current]::after { transform: scaleX(1); }
.dh-nav a[aria-current] small { color: var(--red); }
.dh-sponsor { flex-direction: row !important; align-items: center; gap: 7px; }
.dh-sponsor svg { width: 16px; height: 16px; fill: none; stroke: #db61a2; stroke-width: 2; stroke-linejoin: round; }
.dh-sponsor:hover svg { fill: #db61a2; }
.dh-tools { display: flex; align-items: stretch; margin-left: auto; flex: none; }
.dh-tools > * { border: 0; border-left: 1px solid var(--hair); background: none; color: var(--ink); cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 0 18px; font: 600 14px var(--text); text-decoration: none; }
.print i { width: 20px; height: 20px; border: 1.5px solid var(--ink); border-radius: 50%; background: linear-gradient(90deg, #F2F0E9 50%, #0B2A52 50%); transition: transform .5s cubic-bezier(.5, -0.4, .3, 1.4); }
:root[data-print="blue"] .print i { transform: rotate(180deg); }
.print span { font: 500 10px var(--plex); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
.idx-btn span { font: 500 11.5px var(--plex); letter-spacing: .1em; text-transform: uppercase; }
.idx-btn:hover, .print:hover { background: var(--paper-2); }
.dh-cta { background: var(--ink) !important; color: var(--paper) !important; padding: 0 24px !important; transition: background-color .2s; }
.dh-cta:hover { background: var(--red) !important; color: #fff !important; }
@media (max-width: 1360px) { .dh-forum, .idx-btn kbd { display: none !important; } }
@media (max-width: 1200px) { .dh-sponsor { display: none !important; } .print span { display: none; } }
@media (max-width: 960px) { .dh-nav { display: none; } .dh-brand { border-right: 0; } .idx-btn span::after { content: ''; } }
@media (max-width: 560px) { .dh-cta { display: none !important; } .dh-brand { padding-left: 14px; } .dh-tools > * { padding: 0 14px; } .idx-btn span { font-size: 0; } .idx-btn span::before { content: 'Index'; font-size: 11.5px; } }

/* ---------- sheet index: the drawing list (Ctrl K, /) ---------- */
.idx { width: min(780px, calc(100vw - 32px)); max-height: min(720px, calc(100vh - 64px)); padding: 0; border: 1.5px solid var(--ink); background: var(--paper); color: var(--ink);
  box-shadow: 7px 7px 0 -1.5px var(--paper), 7px 7px 0 0 var(--rule), 14px 14px 0 -1.5px var(--paper), 14px 14px 0 0 var(--hair); }
.idx[open] { display: flex; flex-direction: column; animation: idx-in .22s ease-out; }
@keyframes idx-in { from { opacity: 0; transform: translateY(10px); } }
.idx::backdrop { background: rgba(8, 22, 41, .5); backdrop-filter: blur(3px); }
.idx-head { display: flex; justify-content: space-between; align-items: flex-end; padding: 22px 24px 14px; border-bottom: 1.5px solid var(--rule); }
.idx-head h2 { font: 700 34px/1 var(--cond); text-transform: uppercase; margin: 4px 0 0; }
.idx-x { font: 500 11px var(--plex); letter-spacing: .1em; text-transform: uppercase; background: none; border: 1px solid var(--hair); color: var(--soft); padding: 6px 10px; cursor: pointer; }
.idx-find input { width: 100%; border: 0; border-bottom: 1px solid var(--hair); background: var(--paper-2); color: var(--ink); font: 400 17px var(--text); padding: 14px 24px; outline: none; }
.idx-find input:focus { box-shadow: inset 3px 0 0 var(--red); }
.idx-body { overflow: auto; flex: 1; }
.idx table { width: 100%; border-collapse: collapse; font-size: 15px; }
.idx thead th { position: sticky; top: 0; background: var(--paper); text-align: left; font: 500 9.5px var(--plex); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); padding: 10px 12px; border-bottom: 1px solid var(--hair); }
.idx thead th:first-child, .idx td:first-child { padding-left: 24px; width: 76px; }
.idx tr.grp th { text-align: left; font: 700 15px var(--cond); letter-spacing: .08em; text-transform: uppercase; color: var(--link); padding: 16px 24px 6px; }
.idx td { padding: 9px 12px; border-bottom: 1px solid var(--hair); vertical-align: middle; }
.idx td:first-child { font: 500 12px var(--plex); color: var(--faint); }
.idx td:last-child { color: var(--soft); font-size: 14px; }
.idx td a { color: var(--ink); text-decoration: none; font-weight: 600; display: inline-flex; align-items: center; gap: 8px; }
.idx td a::after { content: ''; position: absolute; inset: 0; }
.idx tbody tr { position: relative; }
.idx tbody tr:not(.grp):hover, .idx tbody tr.on { background: var(--paper-2); }
.idx tbody tr.on td:first-child { color: var(--red); box-shadow: inset 3px 0 0 var(--red); }
.idx .sw { width: 10px; height: 10px; background: var(--accent); border: 1px solid var(--rule); }
/* swatches as classes, so the index adds no style attributes to every page */
.sw-inbuxa { --accent: #14B8A6; } .sw-ihasmail { --accent: #2A8F89; } .sw-ihasvpn { --accent: #1F9FB4; } .sw-cairn-obs { --accent: #FF8A00; } .sw-hotdog-cms { --accent: #C8352A; }
.idx-none { padding: 24px; color: var(--soft); margin: 0; }
.idx-foot { display: flex; gap: 18px; padding: 10px 24px; border-top: 1.5px solid var(--rule); font: 500 11px var(--plex); color: var(--faint); }
.idx-foot kbd { margin-right: 3px; }
@media (max-width: 640px) {
  .idx { width: 100vw; max-width: 100vw; max-height: 88vh; margin: auto 0 0; box-shadow: none; border-width: 1.5px 0 0; }
  .idx td:last-child { display: none; }
  .idx-foot { display: none; }
}

/* ---------- sheets ---------- */
.sheets { position: relative; }
.sheet { position: relative; padding: 104px 0; border-top: 1.5px solid var(--rule); }
.sheet::before { content: attr(data-sheet) "  ·  " attr(data-title); position: absolute; top: 0; right: 0; padding: 6px 14px; font: 500 10px var(--plex); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); border-left: 1px solid var(--hair); border-bottom: 1px solid var(--hair); white-space: pre; }
.sheet.cover { border-top: 0; padding: 72px 0 96px; overflow: hidden; }
.sheets a { color: inherit; }
.sheets .textlink { display: inline-flex; gap: 6px; font: 600 15px var(--text); color: var(--link); text-decoration: none; border-bottom: 1.5px solid currentColor; padding-bottom: 2px; }
.sheets .textlink:hover { color: var(--red); }

/* section head: the section tag (number over sheet), then the title */
.sh { display: grid; grid-template-columns: auto 1fr auto; gap: 28px; align-items: end; margin-bottom: 48px; }
.stag-big { width: 84px; height: 84px; border: 1.5px solid var(--ink); border-radius: 50%; display: grid; grid-template-rows: 1fr 1fr; text-align: center; overflow: hidden; align-self: start; position: relative; }
.stag-big::after { content: ''; position: absolute; left: 0; right: 0; top: 50%; border-top: 1.5px solid var(--ink); }
.stag-big b { font: 700 30px/1 var(--cond); align-self: end; padding-bottom: 4px; }
.stag-big i { font: 500 11px var(--plex); font-style: normal; letter-spacing: .08em; align-self: start; padding-top: 7px; color: var(--soft); }
.sh h2, .transmittal h2 { font: 700 clamp(42px, 5vw, 70px)/.92 var(--cond); text-transform: uppercase; letter-spacing: -.005em; margin: 8px 0 0; text-wrap: balance; }
.sh .sub { color: var(--soft); font-size: 18px; max-width: 620px; margin: 14px 0 0; }
@media (max-width: 760px) { .sh { grid-template-columns: 1fr; gap: 18px; } .stag-big { width: 64px; height: 64px; } .stag-big b { font-size: 22px; } .sh .textlink { justify-self: start; } }

/* ---------- A-00 cover ---------- */
.cover-in { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr); gap: 40px; align-items: center; }
.cover-copy .eyebrow { color: var(--soft); display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.stag { border: 1.5px solid var(--ink); color: var(--ink); padding: 3px 8px; }
.rev { position: relative; display: inline-flex; align-items: center; gap: 12px; margin: 30px 0 6px 8px; padding: 11px 18px; text-decoration: none; color: var(--ink); font-size: 15px; max-width: calc(100% - 16px); }
.rev b { font: 500 11.5px var(--plex); color: var(--red); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.rev b::before { content: ''; width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 10px solid var(--red); }
.rev span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.rev em { font-style: normal; color: var(--red); transition: transform .2s; }
.rev:hover em { transform: translateX(4px); }
.rev .cloud { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; color: var(--red); }
.rev .cloud path { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; }
html:not(.js) .rev { outline: 1.6px dashed var(--red); }
.hg { width: fit-content; max-width: 100%; margin: 26px 0 0; }
.cover-h { font: 700 clamp(54px, 7.4vw, 90px)/.86 var(--cond); text-transform: uppercase; letter-spacing: -.012em; margin: 0; }
.cover-h span { display: block; white-space: nowrap; }
.cover-h .nr { color: transparent; -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; position: relative; }
.cover-h .nr::after { content: 'not rented.'; position: absolute; left: 0; top: 0; color: var(--ink); -webkit-text-stroke: 0; clip-path: inset(0 100% 0 0); animation: ink-in 1.6s 1.1s cubic-bezier(.6, 0, .2, 1) forwards; }
@keyframes ink-in { to { clip-path: inset(0 0 0 0); } }
.dimline { display: flex; align-items: center; gap: 12px; margin-top: 18px; color: var(--red); }
.dimline i { flex: 1; height: 1.5px; background: currentColor; position: relative; }
.dimline i::before { content: ''; position: absolute; top: -7px; width: 1.5px; height: 15px; background: currentColor; }
.dimline i:first-child::before { left: 0; } .dimline i:last-child::before { right: 0; }
.dimline i::after { content: ''; position: absolute; top: -5px; width: 1.5px; height: 11px; background: currentColor; transform: rotate(45deg); }
.dimline i:first-child::after { left: 0; } .dimline i:last-child::after { right: 0; }
.dimline b { font: 500 11.5px var(--plex); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.cover .lead { color: var(--soft); font-size: clamp(18px, 1.6vw, 21px); line-height: 1.5; max-width: 600px; margin: 28px 0 0; opacity: 1; }
.sheets .btns { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
.sheets .btn { display: inline-flex; align-items: center; gap: 10px; padding: 15px 22px; border-radius: 0; border: 1.5px solid var(--ink); color: var(--ink); background: var(--paper); font: 600 16px var(--text); text-decoration: none; transition: transform .15s, box-shadow .15s, background-color .15s, color .15s; box-shadow: none; }
.sheets .btn:hover { transform: translate(-3px, -3px); box-shadow: 3px 3px 0 var(--ink); background: var(--paper); }
.sheets .btn-ink { background: var(--ink); color: var(--paper); }
.sheets .btn-ink:hover { background: var(--ink); box-shadow: 3px 3px 0 var(--red); }
.notes-mini { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; padding: 0; margin: 30px 0 0; font: 500 12.5px var(--plex); color: var(--soft); counter-reset: n; }
.notes-mini::before { content: 'Notes:'; color: var(--faint); text-transform: uppercase; letter-spacing: .14em; font-size: 11px; align-self: center; }
.notes-mini li { counter-increment: n; }
.notes-mini li::before { content: counter(n) '. '; color: var(--link); }

/* the assembly drawing */
.asm-stage { position: relative; margin: 0; padding: 34px 6px 128px; }
.asm-stage::before { content: ''; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(var(--ink), var(--ink)) 0 0 / 22px 1.5px, linear-gradient(var(--ink), var(--ink)) 0 0 / 1.5px 22px,
    linear-gradient(var(--ink), var(--ink)) 100% 0 / 22px 1.5px, linear-gradient(var(--ink), var(--ink)) 100% 0 / 1.5px 22px,
    linear-gradient(var(--ink), var(--ink)) 0 100% / 22px 1.5px, linear-gradient(var(--ink), var(--ink)) 0 100% / 1.5px 22px,
    linear-gradient(var(--ink), var(--ink)) 100% 100% / 22px 1.5px, linear-gradient(var(--ink), var(--ink)) 100% 100% / 1.5px 22px;
  background-repeat: no-repeat; }
.vp-l { position: absolute; top: 10px; left: 14px; right: 14px; display: flex; justify-content: space-between; font: 500 10px var(--plex); letter-spacing: .16em; text-transform: uppercase; color: var(--faint); }
.asm { display: block; width: 100%; height: auto; overflow: visible; color: var(--ink); }
.asm .cl { stroke: var(--rule); stroke-width: 1; stroke-dasharray: 16 4 2 4; opacity: .55; }
.asm polygon { stroke: var(--ink); stroke-width: 1.3; stroke-linejoin: round; transition: fill .3s; }
.asm .f-t { fill: var(--paper); }
.asm .f-l { fill: var(--face-l); }
.asm .f-r { fill: var(--face-r); }
.asm .hatch { fill: url(#hatch); stroke: none; opacity: .35; }
.asm .bay { fill: none; stroke-width: .8; opacity: .7; }
.asm .led { fill: var(--live); animation: led 2.4s steps(1) infinite; }
@keyframes led { 50% { opacity: .25; } }
.asm .ico { opacity: .92; transition: opacity .3s; }
.asm .slab.hot .f-t { fill: color-mix(in srgb, var(--accent) 34%, var(--paper)); }
.asm .slab.hot .f-l { fill: color-mix(in srgb, var(--accent) 55%, var(--face-l)); }
.asm .slab.hot .f-r { fill: color-mix(in srgb, var(--accent) 70%, var(--face-r)); }
.asm .slab { transition: transform .35s cubic-bezier(.3, 1.4, .5, 1); }
.asm .slab.hot { transform: translateY(-8px); }
.asm .ldr { fill: none; stroke: var(--ink); stroke-width: 1; }
.asm .dot { fill: var(--ink); }
.asm .bal { fill: var(--paper); stroke: var(--ink); stroke-width: 1.4; transition: fill .2s; }
.asm .bal-n { font: 700 16px var(--cond); text-anchor: middle; fill: var(--ink); }
.asm .lbl { font: 700 21px var(--cond); fill: var(--ink); letter-spacing: .01em; }
.asm .sub { font: 400 11.5px var(--plex); fill: var(--soft); }
.asm .call { cursor: pointer; outline: none; }
.asm .call:hover .bal, .asm .call:focus-visible .bal, .asm .call.hot .bal { fill: var(--red); stroke: var(--red); }
.asm .call:hover .bal-n, .asm .call:focus-visible .bal-n, .asm .call.hot .bal-n { fill: #fff; }
.asm .call:hover .ldr, .asm .call.hot .ldr { stroke: var(--red); stroke-width: 1.5; }
.asm .call:focus-visible .lbl { text-decoration: underline; }
.asm .base-call { cursor: default; }
.asm .det-c { fill: none; stroke: var(--red); stroke-width: 1.4; stroke-dasharray: 5 4; }
.asm .det-l { fill: none; stroke: var(--red); stroke-width: 1.2; }
.asm .det-b { fill: var(--paper); stroke: var(--red); stroke-width: 1.4; }
.asm .det-t { font: 700 13px var(--cond); fill: var(--red); text-anchor: middle; }
.asm .dimg line { stroke: var(--red); stroke-width: 1.2; }
.asm .dimg .dl { stroke-width: 1.4; }
.asm .dim-t { font: 500 11px var(--plex); letter-spacing: .16em; fill: var(--red); text-anchor: middle; }
/* lines draw themselves in on first load */
.js .asm polygon, .js .asm .ldr { stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw 1.1s cubic-bezier(.6, 0, .25, 1) forwards; animation-delay: calc(var(--d, 0s) + .15s); }
.js .asm .ldr { animation-delay: 1.15s; animation-duration: .7s; }
.js .asm .f-t, .js .asm .f-l, .js .asm .f-r { fill-opacity: 0; animation: draw 1.1s cubic-bezier(.6, 0, .25, 1) forwards, fill-in .6s forwards; animation-delay: calc(var(--d, 0s) + .15s), calc(var(--d, 0s) + .9s); }
.js .asm .ico, .js .asm text, .js .asm .dot, .js .asm .bal { opacity: 0; animation: fade .5s forwards; animation-delay: 1.4s; }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes fill-in { to { fill-opacity: 1; } }
@keyframes fade { to { opacity: 1; } }
.js .asm .base { --d: 0s; }

.detail { position: absolute; left: 4px; bottom: 0; display: flex; flex-direction: row; align-items: center; gap: 14px; }
.detail-c { width: 118px; height: 118px; border-radius: 50%; border: 1.5px solid var(--ink); overflow: hidden; background: #0E2340; box-shadow: 0 0 0 6px var(--paper), 0 0 0 7.5px var(--hair); display: grid; place-items: center; }
.detail-c img { width: 152px; height: 152px; max-width: none; }
.detail-t { font: 500 10.5px var(--plex); letter-spacing: .14em; text-transform: uppercase; color: var(--soft); display: inline-flex; align-items: center; gap: 7px; background: var(--paper); padding: 0 4px; }
.detail-t b { width: 20px; height: 20px; border: 1.5px solid var(--ink); border-radius: 50%; display: grid; place-items: center; font: 700 12px var(--cond); color: var(--ink); }

/* crosshair cursor over the cover */
.xhair { position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .25s; z-index: 0; }
.xhair.on { opacity: 1; }
.xh-x, .xh-y { position: absolute; display: block; }
.xh-x { left: 0; right: 0; height: 1px; top: var(--y, 50%); background: repeating-linear-gradient(90deg, var(--link) 0 6px, transparent 6px 10px); opacity: .45; }
.xh-y { top: 0; bottom: 0; width: 1px; left: var(--x, 50%); background: repeating-linear-gradient(0deg, var(--link) 0 6px, transparent 6px 10px); opacity: .45; }
.xh-t { position: absolute; left: calc(var(--x, 50%) + 10px); top: calc(var(--y, 50%) + 8px); font: 500 10.5px var(--plex); color: var(--link); letter-spacing: .06em; white-space: nowrap; }
.cover-in { position: relative; z-index: 1; }

@media (max-width: 980px) {
  .cover-in { grid-template-columns: 1fr; }
  .asm-stage { max-width: 620px; width: 100%; justify-self: center; }
}
@media (max-width: 560px) {
  .sheet.cover { padding-top: 40px; }
  .cover-h { font-size: clamp(44px, 14.2vw, 70px); }
  .cover-h .nr { -webkit-text-stroke-width: 1.5px; }
  .rev span { max-width: 52vw; }
  .detail-c { width: 96px; height: 96px; } .detail-c img { width: 124px; height: 124px; }
  .asm .sub { display: none; }
}

/* ---------- A-01 assembly: parts ---------- */
.parts { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 1.5px; background: var(--rule); border: 1.5px solid var(--rule); }
.part { position: relative; display: flex; flex-direction: column; padding: 28px 28px 0; background: var(--paper); text-decoration: none; color: var(--ink); min-height: 330px; transition: background-color .25s; overflow: hidden; }
.part::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--accent); transform: scaleY(0); transform-origin: top; transition: transform .35s cubic-bezier(.5, 0, .2, 1); }
.part:hover, .part:focus-visible { background: color-mix(in srgb, var(--accent) 7%, var(--paper)); }
.part:hover::before, .part:focus-visible::before { transform: scaleY(1); }
.part-lead { grid-row: span 2; }
.pn { position: absolute; top: 0; right: 0; font: 500 11px var(--plex); letter-spacing: .1em; padding: 6px 12px; border-left: 1px solid var(--hair); border-bottom: 1px solid var(--hair); color: var(--faint); }
.part:hover .pn { color: var(--red); }
.part img { width: 60px; height: 60px; border-radius: 14px; transition: transform .35s cubic-bezier(.3, 1.4, .5, 1); }
.part:hover img { transform: rotate(-6deg) scale(1.06); }
.part-lead img { width: 96px; height: 96px; border-radius: 22px; }
.part h3 { font: 700 38px/1 var(--cond); margin: 22px 0 0; letter-spacing: -.005em; } /* product names keep their own case */
.part-lead h3 { font-size: clamp(56px, 6vw, 88px); }
.part .tagline { font: 500 11.5px var(--plex); letter-spacing: .1em; text-transform: uppercase; color: var(--link); margin: 8px 0 0; }
.part .blurb { color: var(--soft); margin: 14px 0 0; font-size: 16px; }
.part-lead .blurb { font-size: 19px; max-width: 30ch; }
.part .motto { font: 700 26px/1.1 var(--cond); text-transform: uppercase; margin: 26px 0 0; color: var(--ink); max-width: 16ch; }
.ptb { display: grid; grid-template-columns: auto 1fr auto; margin: auto -28px 0; padding-top: 24px; }
.ptb > div { border-top: 1px solid var(--hair); padding: 10px 14px 12px 28px; }
.ptb > div + div { border-left: 1px solid var(--hair); padding-left: 14px; }
.ptb dt { font: 500 9.5px var(--plex); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
.ptb dd { margin: 3px 0 0; font: 600 14px var(--text); white-space: nowrap; }
.ptb .go { display: flex; align-items: center; padding-right: 18px; }
.ptb .go dd { margin: 0; font: 600 20px var(--text); transition: transform .2s; color: var(--link); white-space: nowrap; }
.part:hover .go dd { color: var(--red); transform: translateX(4px); }
.sheets .status { display: inline-flex; align-items: center; gap: 7px; font: inherit; color: inherit; background: none; border: 0; padding: 0; }
.sheets .status i { width: 8px; height: 8px; border-radius: 50%; background: var(--live); box-shadow: 0 0 0 3px color-mix(in srgb, var(--live) 22%, transparent); }
.sheets .status i.dev { background: var(--dev); box-shadow: 0 0 0 3px color-mix(in srgb, var(--dev) 22%, transparent); }
@media (max-width: 1060px) { .parts { grid-template-columns: 1fr 1fr; } .part-lead { grid-row: auto; grid-column: span 2; } }
@media (max-width: 680px) { .parts { grid-template-columns: 1fr; } .part-lead { grid-column: auto; } .part { min-height: 0; padding: 24px 20px 0; } .ptb { margin: 24px -20px 0; } .ptb > div:first-child { padding-left: 20px; } }

/* bill of materials */
.bom { margin-top: 56px; overflow-x: auto; }
.bom .eyebrow { margin-bottom: 12px; }
.bom table, .rev-t, .spec-t { width: 100%; border-collapse: collapse; }
.bom table { border: 1.5px solid var(--rule); min-width: 600px; }
.bom th, .rev-t th { text-align: left; font: 500 9.5px var(--plex); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); padding: 10px 14px; border-bottom: 1.5px solid var(--rule); }
.bom td { padding: 13px 14px; border-bottom: 1px solid var(--hair); font-size: 15px; color: var(--soft); }
.bom td + td, .bom th + th { border-left: 1px solid var(--hair); }
.bom td:first-child { width: 64px; text-align: center; font: 500 12px var(--plex); color: var(--ink); }
.bom td:nth-child(2) a { font: 600 15px var(--plex); color: var(--ink); text-decoration: none; }
.bom td:nth-child(2) a:hover { color: var(--red); }
.bom td:last-child { font: 500 12px var(--plex); color: var(--ink); white-space: nowrap; }
.bom tbody tr:hover td { background: var(--paper-2); }

/* ---------- A-02 general notes: the other print ---------- */
.sheet.inkband { background-color: var(--band); color: var(--band-ink); border-top-color: var(--band); overflow: hidden; isolation: isolate;
  background-image: linear-gradient(var(--band-grid) 1px, transparent 1px), linear-gradient(90deg, var(--band-grid) 1px, transparent 1px);
  background-size: 24px 24px; transition: background-color .35s; }
.sheet.inkband::before { color: var(--band-soft); border-color: var(--band-hair); }
.sheet.inkband::after { content: ''; position: absolute; inset: 20px; border: 1px solid var(--band-hair); pointer-events: none; z-index: -1; }
.inkband .eyebrow { color: var(--band-red); }
.inkband .sh .sub { color: var(--band-soft); }
.inkband .stag-big, .inkband .stag-big::after { border-color: var(--band-ink); }
.inkband .stag-big i { color: var(--band-soft); }
.inkband .textlink { color: var(--band-ink); }
.inkband .textlink:hover { color: var(--band-red); }
.gnotes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--band-hair); }
.gnotes li { display: grid; grid-template-columns: 64px 1fr; column-gap: 22px; padding: 30px 26px 32px 0; border-bottom: 1px solid var(--band-hair); }
.gnotes li:nth-child(even) { padding-left: 32px; border-left: 1px solid var(--band-hair); }
.nt { grid-row: span 2; width: 52px; height: 52px; display: grid; place-items: center; font: 700 30px var(--cond); border: 1.5px solid var(--band-ink); clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); background: var(--band-ink); color: var(--band); }
.gnotes h3 { font: 700 30px/1 var(--cond); text-transform: uppercase; margin: 2px 0 10px; }
.gnotes p { margin: 0; color: var(--band-soft); font-size: 17px; max-width: 42ch; }
@media (max-width: 760px) { .gnotes { grid-template-columns: 1fr; } .gnotes li:nth-child(even) { padding-left: 0; border-left: 0; } .gnotes li { grid-template-columns: 52px 1fr; column-gap: 16px; } .nt { width: 42px; height: 42px; font-size: 24px; } }

/* ---------- A-03 specification & revisions ---------- */
.spec-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 32px; align-items: start; }
.spec, .revs { border: 1.5px solid var(--rule); background: var(--paper); padding: 30px; transition: background-color .35s; }
.spec h3, .revs h3 { font: 700 34px/1 var(--cond); text-transform: uppercase; margin: 0 0 16px; }
.spec h3 .eyebrow, .revs h3 .eyebrow { display: block; margin-bottom: 8px; }
.spec > p { color: var(--soft); margin: 0 0 22px; }
.spec-t { margin-bottom: 24px; border-top: 1.5px solid var(--rule); }
.spec-t th, .spec-t td { padding: 12px 0; border-bottom: 1px solid var(--hair); }
.spec-t th { text-align: left; font: 500 10.5px var(--plex); letter-spacing: .12em; text-transform: uppercase; color: var(--faint); }
.spec-t td { text-align: right; font: 700 21px var(--cond); text-transform: uppercase; }
.spec-t td.none { color: var(--red); }
.rev-t { margin-bottom: 26px; }
.rev-t th { padding-left: 0; }
.rev-t td { padding: 11px 12px 11px 0; border-bottom: 1px solid var(--hair); vertical-align: top; font-size: 15.5px; }
.rev-t td:nth-child(2) { font: 500 12px/1.9 var(--plex); color: var(--faint); white-space: nowrap; }
.delta { position: relative; isolation: isolate; display: inline-grid; place-items: end center; width: 32px; height: 27px; padding-bottom: 3px; font: 700 12px var(--cond); color: var(--ink); }
.delta::before, .delta::after { content: ''; position: absolute; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.delta::before { inset: 0; background: currentColor; z-index: -2; }
.delta::after { inset: 3.5px 4px 1.5px; background: var(--paper); z-index: -1; }
.rev-t tr.cur td:last-child { color: var(--red); font-weight: 600; }
.rev-t tr.cur .delta { color: var(--red); }
.approved { display: grid; grid-template-columns: 52px 1fr; gap: 6px 18px; align-items: start; padding: 22px 0; border-top: 1.5px solid var(--rule); margin-bottom: 18px; }
.approved img { border-radius: 50%; border: 1.5px solid var(--ink); filter: grayscale(1) contrast(1.05); }
.approved blockquote { margin: 0; font: italic 400 18px/1.5 var(--text); color: var(--ink); }
.approved blockquote p { margin: 0; }
.sig { grid-column: 2; display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: baseline; margin-top: 10px; }
.sig .tb-l { grid-row: span 2; }
.sig b { font: 700 20px var(--cond); text-transform: uppercase; border-bottom: 1px solid var(--rule); padding-bottom: 2px; }
.sig small { grid-column: 2; font: 500 11px var(--plex); color: var(--faint); margin-top: 4px; }
@media (max-width: 900px) { .spec-grid { grid-template-columns: 1fr; } .spec, .revs { padding: 22px; } .rev-t td:nth-child(2) { white-space: normal; } }

/* ---------- A-04 transmittal ---------- */
.transmittal { border: 1.5px solid var(--rule); background: var(--paper); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); transition: background-color .35s; }
.transmittal > * { padding: 30px; }
.tr-head { grid-column: 1 / -1; display: flex; gap: 26px; align-items: center; border-bottom: 3px double var(--rule); }
.tr-head .stag-big { align-self: center; }
.transmittal h2 { margin-top: 6px; }
.tr-form { margin: 0; border-right: 1px solid var(--hair); }
.tr-form > div { display: grid; grid-template-columns: 70px 1fr; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--hair); }
.tr-form dt { font: 500 10.5px var(--plex); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
.tr-form dd { margin: 0; color: var(--soft); }
.tr-form .big { font: 700 clamp(26px, 3.2vw, 40px)/1.1 var(--cond); color: var(--ink); text-decoration: none; overflow-wrap: anywhere; background: linear-gradient(var(--red), var(--red)) 0 100% / 0 3px no-repeat; transition: background-size .3s; }
.tr-form .big:hover { background-size: 100% 3px; }
.tr-routes { list-style: none; margin: 0; padding-top: 18px !important; padding-bottom: 6px !important; }
.tr-routes li { display: grid; grid-template-columns: 22px 1fr; column-gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--hair); }
.tr-routes li::before { content: ''; grid-row: span 2; width: 14px; height: 14px; border: 1.5px solid var(--ink); margin-top: 3px; }
.tr-routes li:hover::before { background: linear-gradient(45deg, transparent 44%, var(--red) 44% 56%, transparent 56%), linear-gradient(-45deg, transparent 44%, var(--red) 44% 56%, transparent 56%); }
.tr-routes span { font: 500 10.5px var(--plex); letter-spacing: .12em; text-transform: uppercase; color: var(--faint); }
.tr-routes a { color: var(--ink); text-decoration: none; font-weight: 600; overflow-wrap: anywhere; }
.tr-routes a:hover { color: var(--red); }
.sheets .follow { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; border-top: 1px solid var(--hair); padding: 18px 30px 24px; margin: 0; }
.sheets .follow > span { font: 500 10.5px var(--plex); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); margin-right: 8px; }
.sheets .follow a { display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border: 1px solid var(--hair); color: var(--ink); text-decoration: none; font-size: 14px; font-weight: 600; background: none; border-radius: 0; }
.sheets .follow a:hover { border-color: var(--ink); }
.sheets .follow svg { width: 16px; height: 16px; }
@media (max-width: 760px) { .transmittal { grid-template-columns: 1fr; } .transmittal > * { padding: 22px; } .tr-form { border-right: 0; } .tr-head { gap: 16px; } .sheets .follow { padding: 18px 22px 22px; } }

/* ---------- the floating title block ---------- */
.tblock { position: fixed; right: 24px; bottom: 24px; z-index: 44; width: 252px; background: var(--paper); border: 1.5px solid var(--rule); font-size: 13px; transition: opacity .3s, transform .3s, background-color .35s; display: none; }
@media (min-width: 1440px) { .tblock { display: block; } }
.tblock.gone { opacity: 0; transform: translateY(12px); pointer-events: none; }
.tblock > div { border-bottom: 1px solid var(--hair); }
.tblock > div:last-child { border-bottom: 0; }
.tb-r { padding: 7px 12px; }
.tb-r b { font: 700 16px var(--cond); text-transform: uppercase; }
.tb-title b { font-size: 20px; display: block; transition: color .3s; }
.tb-title.flash b { color: var(--red); }
.tb-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.tb-row > div { padding: 6px 12px; }
.tb-row > div + div { border-left: 1px solid var(--hair); }
.tb-row b { font: 500 12.5px var(--plex); }

/* ---------- footer: the title block strip ---------- */
.tb-foot { border-top: 1.5px solid var(--rule); background: var(--paper-2); color: var(--ink); transition: background-color .35s; }
.tb-foot .wrap { padding-top: 0; padding-bottom: 0; }
.tb-grid { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1.1fr 0.9fr; border-left: 1px solid var(--hair); border-right: 1px solid var(--hair); }
.tb-cell { padding: 26px 22px; border-left: 1px solid var(--hair); }
.tb-cell:first-child { border-left: 0; }
.tb-cell .tb-l { margin-bottom: 14px; }
.tb-own .dh-brand { padding: 0; border: 0; }
.tb-own .dh-brand small { text-transform: none; letter-spacing: .02em; font-size: 11.5px; }
.tb-own p { color: var(--soft); font-size: 15px; margin: 16px 0; max-width: 34ch; }
.tb-soc { display: flex; gap: 6px; }
.tb-soc a { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--hair); color: var(--ink); }
.tb-soc a:hover { border-color: var(--ink); background: var(--paper); }
.tb-soc svg { width: 17px; height: 17px; }
.tb-cell ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tb-cell li a { color: var(--ink); text-decoration: none; font-size: 15px; display: inline-flex; gap: 8px; align-items: baseline; }
.tb-cell li a small { font: 500 10px var(--plex); color: var(--faint); min-width: 30px; }
.tb-cell li a:hover { color: var(--red); }
.tb-stamp { display: grid; grid-template-columns: 1fr 1fr; padding: 0; }
.tb-stamp > div { padding: 14px 16px; border-bottom: 1px solid var(--hair); }
.tb-stamp > div:nth-child(odd) { border-right: 1px solid var(--hair); }
.tb-stamp .tb-l { margin-bottom: 4px; }
.tb-stamp b { font: 700 20px var(--cond); }
.tb-legal { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; padding: 16px 22px; border: 1px solid var(--hair); border-bottom: 0; font-size: 14px; color: var(--soft); }
.tb-legal a, .tb-legal .linklike { color: var(--soft); text-decoration: none; }
.tb-legal a:hover, .tb-legal .linklike:hover { color: var(--ink); text-decoration: underline; }
.tb-links { justify-self: end; display: flex; gap: 16px; flex-wrap: wrap; }
.tb-legal .linklike { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }
.tb-legal #consent-reopen::before { content: none; }
.tb-legal a.tb-credit { justify-self: center; display: inline-flex; gap: 6px; align-items: center; padding: 8px 16px; background: var(--mustard); color: #1B1405; border: 1.5px solid #1B1405; font: 500 12px var(--plex); letter-spacing: .06em; text-transform: uppercase; box-shadow: 0 0 0 4px color-mix(in srgb, var(--mustard) 25%, transparent); transition: transform .15s; }
.tb-legal a.tb-credit:hover { color: #1B1405; text-decoration: none; transform: translateY(-2px); }
.tb-credit b { font-weight: 700; }
@media (max-width: 1000px) { .tb-grid { grid-template-columns: 1fr 1fr 1fr; } .tb-own { grid-column: 1 / -1; border-bottom: 1px solid var(--hair); } .tb-own + .tb-cell { border-left: 0; } .tb-stamp { grid-column: 1 / -1; grid-template-columns: repeat(4, 1fr); border-left: 0; border-top: 1px solid var(--hair); } .tb-stamp > div { border-bottom: 0; border-right: 1px solid var(--hair); } }
@media (max-width: 680px) { .tb-grid { grid-template-columns: 1fr 1fr; } .tb-cell:nth-child(4) { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--hair); } .tb-stamp { grid-template-columns: 1fr 1fr; } .tb-legal { grid-template-columns: 1fr; justify-items: center; text-align: center; } .tb-links { justify-self: center; justify-content: center; } }

/* the consent banner, redrawn for the sheet */
.sheets ~ .consent, body:has(.sheets) .consent { background: var(--paper); color: var(--ink); border-top: 1.5px solid var(--rule); box-shadow: 0 -10px 30px rgba(0, 0, 0, .12); }
body:has(.sheets) .consent p { color: var(--soft); }
body:has(.sheets) .consent-more a { color: var(--ink); border-bottom-color: var(--red); }
body:has(.sheets) .consent .btn { border-radius: 0; border: 1.5px solid var(--ink); color: var(--ink); background: var(--paper); font: 600 15px var(--text); }
body:has(.sheets) .consent .btn:hover { background: var(--ink); color: var(--paper); }

/* ---------- reveal on scroll ---------- */
.js .rv { opacity: 0; translate: 0 18px; transition: opacity .7s ease, translate .7s cubic-bezier(.2, .7, .2, 1); }
.js .rv.in { opacity: 1; translate: 0 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .asm polygon, .js .asm .ldr { stroke-dasharray: none; stroke-dashoffset: 0; }
  .js .asm .f-t, .js .asm .f-l, .js .asm .f-r { fill-opacity: 1; }
  .js .asm .ico, .js .asm text, .js .asm .dot, .js .asm .bal { opacity: 1; }
  .cover-h .nr::after { clip-path: none; }
  .js .rv { opacity: 1; translate: none; }
  .xhair { display: none; }
}

/* ---------- inner pages, until each is redrawn: the set's lettering ---------- */
main:not(.sheets) h1, main:not(.sheets) h2 { font-family: var(--cond); font-weight: 700; letter-spacing: -.005em; }
main:not(.sheets) .band { border-bottom: 1.5px solid var(--rule); }
/* The previous template's light-only controls take the print's field color. */
.tools a, .chiprow span, .copybtn { background: var(--field); }
