/* ==========================================================================
   Tech Checklist / themes / nicholas.css
   Nicholas Tong: "the ops room at 3am".

   Near-black with a blue cast, one amber (#E8A33D, the sodium light over the
   ship channel), a cool slate for everything secondary. JetBrains Mono for
   the instruments: UI, numbers, metadata, code. IBM Plex Sans for reading.
   Dot-grid paper, a thin status line, [09] numbers, one hand-drawn arrow per
   page, and a radar that sweeps slowly and holds still when asked.

   Scope: every rule sits under [data-persona="nicholas"] (SPEC 5.6). On the
   hub the attribute is on the card or panel itself, so card-level rules use
   .card[data-persona="nicholas"]. Only @font-face and @keyframes are global.
   Families carry private names so the hub, which loads all four themes,
   never mixes our files with another theme's.

   Order: fonts, tokens, canvas, switchboard, status line, desk hero, radar,
   arrow, list head and chips, cards, article layout, article head, hero
   image, contents rail, prose, final checklist, code, tables, author card,
   pager, footer, states (motion, contrast, forced colours, print).
   ========================================================================== */

/* -- 1. Fonts: IBM Plex Sans (variable 400-600 + italic), JetBrains Mono (variable 400-700) -- */
@font-face {
  font-family: "Nicholas Plex Sans";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/static/fonts/nicholas/ibm-plex-sans-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Nicholas Plex Sans";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/static/fonts/nicholas/ibm-plex-sans-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Nicholas Plex Sans";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/nicholas/ibm-plex-sans-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Nicholas Plex Sans";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/nicholas/ibm-plex-sans-italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Nicholas JetBrains Mono";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/static/fonts/nicholas/jetbrains-mono-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Nicholas JetBrains Mono";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/static/fonts/nicholas/jetbrains-mono-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* -- 2. Tokens (SPEC 5.6 contract, then base.css hooks, then private n- tokens) -- */
[data-persona="nicholas"] {
  color-scheme: dark;
  --bg: #0B0F14;
  --bg-2: #111820;
  --fg: #D3DAE2;
  --fg-muted: #8D9AAB;
  --accent: #E8A33D;
  --accent-2: #86AECB;
  --rule: #222D3A;
  --font-display: "Nicholas Plex Sans", "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-body: "Nicholas Plex Sans", "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "Nicholas JetBrains Mono", "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
  --radius: 2px;
  --measure: 70ch;

  /* private */
  --n-bg-0: #080B0F;          /* code wells, footer */
  --n-bg-3: #0D1218;          /* status line, hero frame */
  --n-bg-4: #16202B;          /* hover surface */
  --n-fg-hi: #EDF1F5;         /* titles, strong */
  --n-rule-hi: #33414F;       /* stronger hairlines, chip borders */
  --n-amber-ink: #F2BE6E;     /* amber for small text that needs extra lift */
  --n-amber-wash: rgb(232 163 61 / .12);
  --n-amber-line: rgb(232 163 61 / .6);
  --n-dot: rgb(141 154 171 / .14);
  --n-dot-major: rgb(141 154 171 / .26);
  --n-grid: 22px;
  --n-paper:
    radial-gradient(circle at 1px 1px, var(--n-dot-major) 1.1px, transparent 1.6px) 0 0 / calc(var(--n-grid) * 5) calc(var(--n-grid) * 5),
    radial-gradient(circle at 1px 1px, var(--n-dot) 1px, transparent 1.4px) 0 0 / var(--n-grid) var(--n-grid);
  --n-sweep: 10s;
  --n-ease: cubic-bezier(.2, .7, .2, 1);

  /* hooks read by base.css / hub.css (all optional there) */
  --texture: var(--n-paper);
  --font-ui: var(--font-mono);
  --sb-bg: #0D1218;
  --switch-bg: #0D1218;
  --sb-fg: var(--fg);
  --sb-muted: var(--fg-muted);
  --sb-rule: var(--rule);
  --sb-font: var(--font-mono);
  --sb-brand-font: var(--font-mono);
  --sb-radius: 2px;
  --mark-radius: 1px;
  --mark-stroke: 2.2px;
  --mark-check: var(--accent);
  --mark-dash: none;
  --mark-cap: square;
  --mark-join: miter;
  --chip-radius: 2px;
  --link: var(--n-fg-hi);
  --strong: var(--n-fg-hi);
  --focus: var(--accent);
  --code-bg: var(--n-bg-0);
  --code-key: var(--accent);
  --code-str: var(--accent-2);
  --code-name: var(--n-fg-hi);
  --footer-bg: var(--n-bg-0);
  --prose-size: clamp(1.0625rem, 1rem + .25vw, 1.125rem);
  --prose-leading: 1.72;

  scrollbar-color: #2C3948 var(--bg);
}

/* -- 3. Canvas ------------------------------------------------------------------ */
[data-persona="nicholas"] .page {
  background: var(--n-paper), var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
}
[data-persona="nicholas"] ::selection { background: rgb(232 163 61 / .34); color: #fff; }
[data-persona="nicholas"] :focus-visible { outline-color: var(--accent); }
[data-persona="nicholas"] .skip { background: var(--accent); color: #0B0F14; border-radius: var(--radius); font-family: var(--font-mono); }

/* -- 4. Switchboard: same structure, ops-room skin -------------------------------- */
[data-persona="nicholas"] .switchboard {
  background: var(--sb-bg);
  border-bottom-color: var(--rule);
  font-family: var(--font-mono);
}
[data-persona="nicholas"] .switchboard__brand { font-family: var(--font-mono); font-size: .9375rem; font-weight: 600; letter-spacing: -.01em; }
[data-persona="nicholas"] .switchboard__tld { color: var(--fg-muted); font-weight: 400; }
[data-persona="nicholas"] .switchboard .mark,
[data-persona="nicholas"] .footer .mark { color: var(--fg); }
[data-persona="nicholas"] .mark__box { fill: none; stroke: currentColor; stroke-width: 2.2px; rx: 1px; stroke-dasharray: none; }
[data-persona="nicholas"] .mark__check { fill: none; stroke: var(--accent); stroke-width: 2.6px; stroke-linecap: square; stroke-linejoin: miter; }
[data-persona="nicholas"] .switchboard__search svg * { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
[data-persona="nicholas"] .desk-link { font-family: var(--font-mono); font-size: .8125rem; font-weight: 400; letter-spacing: .01em; }
[data-persona="nicholas"] .desk-link.is-current { color: var(--n-fg-hi); font-weight: 600; }
[data-persona="nicholas"] .desk-link__dot { border-radius: 1px; }
[data-persona="nicholas"] .desk-link--nicholas .desk-link__dot { border-radius: 1px; }
[data-persona="nicholas"] .switchboard__search {
  border-radius: var(--radius);
  border-color: var(--n-rule-hi);
  font-family: var(--font-mono);
  font-size: .8125rem;
  font-weight: 400;
}
[data-persona="nicholas"] .switchboard__search:hover { border-color: var(--n-amber-line); background: var(--n-amber-wash); }

/* -- 5. Status line (template override, under the switchboard) -------------------- */
[data-persona="nicholas"] .n-status {
  background: var(--n-bg-3);
  border-bottom: 1px solid var(--rule);
  color: var(--fg-muted);
  font: 400 .71875rem/1.5 var(--font-mono);
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
}
[data-persona="nicholas"] .n-status__line {
  width: min(100% - 2 * var(--gutter, 1.25rem), var(--page-max, 75rem));
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .15rem 2.5ch;
  padding-block: .45rem;
}
[data-persona="nicholas"] .n-status__line::before {
  content: "";
  width: .5rem;
  height: .5rem;
  margin-right: -1ch;
  background: var(--accent);
  box-shadow: 0 0 0 3px var(--n-amber-wash);
}
[data-persona="nicholas"] .n-status__item { white-space: nowrap; }
[data-persona="nicholas"] .n-status__v { color: var(--fg); }

/* -- 6. Desk hero ------------------------------------------------------------------ */
[data-persona="nicholas"] .desk-hero {
  gap: clamp(2rem, 1rem + 4vw, 4.5rem);
  padding-block: clamp(2.25rem, 1rem + 3.4vw, 4.25rem) clamp(2rem, 1rem + 2.4vw, 3.5rem);
}
[data-persona="nicholas"] .desk-hero__kicker {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: 1.35rem;
  color: var(--fg-muted);
  font: 500 .75rem/1.3 var(--font-mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}
[data-persona="nicholas"] .desk-hero__kicker::before {
  content: "";
  flex: none;
  width: .6rem;
  height: .6rem;
  border: 1.5px solid var(--accent);
  border-radius: 0;
  background: none;
}
[data-persona="nicholas"] .desk-hero__name {
  color: var(--n-fg-hi);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2.75rem, 1.35rem + 5.2vw, 5.25rem);
  line-height: .96;
  letter-spacing: -.035em;
}
[data-persona="nicholas"] .desk-hero__bio {
  max-width: 40ch;
  margin-top: 1.5rem;
  color: var(--fg);
  font-size: clamp(1.0625rem, .98rem + .4vw, 1.25rem);
  line-height: 1.55;
}
[data-persona="nicholas"] .desk-hero__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, auto));
  justify-content: start;
  gap: .9rem clamp(1.5rem, 1rem + 2vw, 3rem);
  margin-top: 2.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--rule);
  font-family: var(--font-mono);
}
[data-persona="nicholas"] .desk-hero__facts dt {
  color: var(--fg-muted);
  font-size: .6875rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}
[data-persona="nicholas"] .desk-hero__facts dd {
  margin-top: .35rem;
  color: var(--n-fg-hi);
  font-size: .875rem;
  font-weight: 500;
  line-height: 1.45;
}
[data-persona="nicholas"] .desk-hero__facts > div:first-child dd { max-width: 36ch; }
[data-persona="nicholas"] .desk-hero__art { min-height: 0; }
@media (min-width: 56.25rem) {
  [data-persona="nicholas"] .desk-hero { grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr); align-items: center; }
}

/* -- 7. Radar (desk art) -------------------------------------------------------------- */
[data-persona="nicholas"] .n-radar {
  position: relative;
  width: min(100%, 23.5rem);
  margin: 0 0 0 auto;
  padding-bottom: 2.75rem;
}
[data-persona="nicholas"] .n-radar__scope {
  position: relative;
  aspect-ratio: 1;
  border-radius: 50%;
  isolation: isolate;
}
[data-persona="nicholas"] .n-radar__grid,
[data-persona="nicholas"] .n-radar__returns {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
[data-persona="nicholas"] .n-radar__disc { fill: rgb(134 174 203 / .035); }
[data-persona="nicholas"] .n-radar__ring { fill: none; stroke: #2A3644; stroke-width: 1; stroke-dasharray: 2 5; }
[data-persona="nicholas"] .n-radar__edge { fill: none; stroke: #3B4959; stroke-width: 1.25; }
[data-persona="nicholas"] .n-radar__ticks { fill: none; stroke: #3B4959; stroke-width: 7; stroke-dasharray: .3 4.7; stroke-dashoffset: .15; }
[data-persona="nicholas"] .n-radar__ticks--major { stroke: var(--fg-muted); stroke-width: 10; stroke-dasharray: .6 29.4; stroke-dashoffset: .3; }
[data-persona="nicholas"] .n-radar__cross { fill: none; stroke: #222D3A; stroke-width: 1; }
[data-persona="nicholas"] .n-radar__label {
  fill: var(--fg-muted);
  font-family: var(--font-mono);
  font-size: 12.5px;
  letter-spacing: .06em;
}
[data-persona="nicholas"] .n-radar__sweep {
  position: absolute;
  inset: 8%;
  z-index: 1;
  border-radius: 50%;
  background:
    linear-gradient(var(--accent), var(--accent)) 50% 0 / 1.5px 50% no-repeat,
    conic-gradient(from 0deg, rgb(232 163 61 / 0) 0deg 280deg, rgb(232 163 61 / .05) 315deg, rgb(232 163 61 / .17) 352deg, rgb(232 163 61 / .32) 360deg);
  animation: n-sweep var(--n-sweep) linear infinite;
  will-change: transform;
}
[data-persona="nicholas"] .n-radar__returns { z-index: 2; }
[data-persona="nicholas"] .n-radar__returns circle {
  fill: var(--accent);
  opacity: .14;
  animation: n-echo var(--n-sweep) linear infinite;
  animation-delay: calc(var(--a, 0) * var(--n-sweep) / 360 - var(--n-sweep));
}
[data-persona="nicholas"] .n-radar__returns .n-radar__home { opacity: 1; animation: none; }
[data-persona="nicholas"] .n-radar__cap {
  position: absolute;
  left: 0;
  bottom: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .25rem 1.1ch;
  color: var(--fg-muted);
  font: 400 .75rem/1.4 var(--font-mono);
}
[data-persona="nicholas"] .n-radar__fig { color: var(--accent); font-weight: 500; }
[data-persona="nicholas"] .n-radar__note--still { display: none; }

@keyframes n-sweep { to { transform: rotate(1turn); } }
@keyframes n-echo {
  0% { opacity: 1; }
  10% { opacity: .9; }
  70% { opacity: .22; }
  100% { opacity: .14; }
}

/* -- 8. The hand-drawn arrow (drawn once per page) ------------------------------------- */
[data-persona="nicholas"] .n-arrow,
[data-persona="nicholas"] .prose > h2:last-of-type::after {
  --n-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 72' fill='none' stroke='%23000' stroke-width='3.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.2 64.6c6.8.9 15.7.4 24.1-2.3 14.2-4.6 27.9-13.6 39.6-25.8 7.3-7.6 14.3-16.8 19.6-25.4l1.9-3.1'/%3E%3Cpath d='M74.6 13.8c5.9-2.4 11.6-4.4 17.2-6.9l2.2-.9c-.2 6.1.4 12.6 1.4 18.4'/%3E%3C/svg%3E");
}
[data-persona="nicholas"] .n-arrow {
  position: absolute;
  display: block;
  pointer-events: none;
  background: var(--accent);
  -webkit-mask: var(--n-arrow) center / contain no-repeat;
  mask: var(--n-arrow) center / contain no-repeat;
}
[data-persona="nicholas"] .n-arrow--radar {
  width: 5.25rem;
  height: 3.15rem;
  left: 54%;
  bottom: 1.2rem;
  transform: rotate(-6deg);
}

/* -- 9. Checklist head and filter chips ------------------------------------------------ */
[data-persona="nicholas"] .review-list__head {
  align-items: end;
  margin-bottom: 1.75rem;
  padding-block: 1.5rem 1.25rem;
  border-top: 1px solid var(--rule);
}
[data-persona="nicholas"] .review-list__title {
  display: flex;
  align-items: baseline;
  gap: .8ch;
  color: var(--n-fg-hi);
  font: 600 1.25rem/1.2 var(--font-mono);
  letter-spacing: -.01em;
  text-transform: lowercase;
}
[data-persona="nicholas"] .review-list__title::before { content: "//"; color: var(--accent); font-weight: 400; }
[data-persona="nicholas"] .review-list__filters { gap: .35rem; }
[data-persona="nicholas"] .review-list__status { font-family: var(--font-mono); font-size: .75rem; }
[data-persona="nicholas"] .chip {
  gap: .5em;
  min-height: 2.125rem;
  padding: .4em .62em .4em .56em;
  border: 1px solid var(--n-rule-hi);
  border-radius: var(--radius);
  background: rgb(13 18 24 / .7);
  color: var(--fg);
  font-family: var(--font-mono);
  font-size: .6875rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: lowercase;
}
[data-persona="nicholas"] .chip::before {
  content: "";
  flex: none;
  width: .62rem;
  height: .62rem;
  border: 1.5px solid currentColor;
  opacity: .7;
}
[data-persona="nicholas"] .chip:hover { background: var(--n-bg-4); border-color: var(--n-amber-line); color: var(--n-fg-hi); }
[data-persona="nicholas"] .chip.is-active,
[data-persona="nicholas"] .chip[aria-pressed="true"] {
  background: var(--accent);
  border-color: var(--accent);
  color: #0B0F14;
  font-weight: 600;
}
[data-persona="nicholas"] .chip.is-active::before,
[data-persona="nicholas"] .chip[aria-pressed="true"]::before { background: currentColor; opacity: 1; }
[data-persona="nicholas"] .chip__count { opacity: .72; font-size: 1em; }

/* -- 10. Cards (self-sufficient: also used in the hub's mixed stream) ---------------------- */
[data-persona="nicholas"] .review-grid { gap: clamp(1rem, .7rem + 1.1vw, 1.5rem); }
.card[data-persona="nicholas"] {
  background: var(--bg-2);
  color: var(--fg);
  font-family: var(--font-body);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  box-shadow: none;
  transition: border-color .2s ease, background-color .2s ease;
}
.card[data-persona="nicholas"]:hover { border-color: var(--n-amber-line); background: #131B24; box-shadow: 0 18px 40px -28px #000; }
.card[data-persona="nicholas"]:has(.card__link:focus-visible) { outline: 2px solid var(--accent); outline-offset: 3px; box-shadow: none; }
[data-persona="nicholas"] .card__media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: var(--n-bg-3);
  border-bottom: 1px solid var(--rule);
}
[data-persona="nicholas"] .card__media::after {
  /* viewfinder corners, the same bracket language as the mark */
  --c: rgb(237 241 245 / .5);
  content: "";
  position: absolute;
  inset: .6rem;
  pointer-events: none;
  background:
    linear-gradient(var(--c) 0 0) 0 0 / .7rem 1.5px no-repeat,
    linear-gradient(var(--c) 0 0) 0 0 / 1.5px .7rem no-repeat,
    linear-gradient(var(--c) 0 0) 100% 0 / .7rem 1.5px no-repeat,
    linear-gradient(var(--c) 0 0) 100% 0 / 1.5px .7rem no-repeat,
    linear-gradient(var(--c) 0 0) 0 100% / .7rem 1.5px no-repeat,
    linear-gradient(var(--c) 0 0) 0 100% / 1.5px .7rem no-repeat,
    linear-gradient(var(--c) 0 0) 100% 100% / .7rem 1.5px no-repeat,
    linear-gradient(var(--c) 0 0) 100% 100% / 1.5px .7rem no-repeat;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity .25s ease, transform .35s var(--n-ease);
}
.card[data-persona="nicholas"]:hover .card__media::after,
.card[data-persona="nicholas"]:has(.card__link:focus-visible) .card__media::after { --c: var(--accent); opacity: 1; transform: none; }
[data-persona="nicholas"] .card__media img { transition: filter .4s ease, transform .6s var(--n-ease); }
@media (hover: hover) and (pointer: fine) {
  [data-persona="nicholas"] .card__media img { filter: saturate(.62) brightness(.8) contrast(1.05); }
  .card[data-persona="nicholas"]:hover .card__media img,
  .card[data-persona="nicholas"]:has(.card__link:focus-visible) .card__media img { filter: none; }
}
.card[data-persona="nicholas"]:hover .card__media img { transform: scale(1.025); }
[data-persona="nicholas"] .card__body {
  column-gap: .7rem;
  padding: .95rem 1.1rem 1rem;
}
[data-persona="nicholas"] .card__num {
  color: var(--accent);
  font: 500 .8125rem/1.6 var(--font-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}
[data-persona="nicholas"] .card__num::before { content: "["; color: var(--fg-muted); }
[data-persona="nicholas"] .card__num::after { content: "]"; color: var(--fg-muted); }
.card[data-persona="nicholas"]:hover .card__num::before,
.card[data-persona="nicholas"]:hover .card__num::after { color: var(--accent); }
[data-persona="nicholas"] .card__product {
  align-self: center;
  color: var(--fg-muted);
  font: 500 .6875rem/1.6 var(--font-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}
[data-persona="nicholas"] .card__title {
  margin-top: .55rem;
  color: var(--n-fg-hi);
  font-family: var(--font-display);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.28;
  letter-spacing: -.012em;
  text-transform: lowercase;
}
[data-persona="nicholas"] .card__link:hover .card__title { text-decoration-color: var(--accent); text-decoration-thickness: 1.5px; text-underline-offset: .2em; }
[data-persona="nicholas"] .card__excerpt {
  margin-top: .55rem;
  color: var(--fg-muted);
  font-size: .875rem;
  line-height: 1.55;
}
[data-persona="nicholas"] .card__meta {
  gap: .25em 1.1ch;
  margin-top: 1rem;
  padding-top: .7rem;
  border-top: 1px dashed var(--n-rule-hi);
  color: var(--fg-muted);
  font: 400 .6875rem/1.4 var(--font-mono);
  letter-spacing: .01em;
}
[data-persona="nicholas"] .card__cat { margin-left: 0; text-transform: lowercase; }
[data-persona="nicholas"] .card__meta > * + *::before,
[data-persona="nicholas"] .review__meta > * + *::before {
  content: "/";
  display: inline;
  width: auto;
  height: auto;
  margin: 0 1.1ch 0 0;
  border-radius: 0;
  background: none;
  color: var(--n-rule-hi);
  opacity: 1;
  vertical-align: baseline;
}


/* -- 11. Article layout: a left rail for the number and contents on wide screens -------- */
[data-persona="nicholas"] .review { padding-bottom: 1rem; }
@media (min-width: 72rem) {
  [data-persona="nicholas"] .review {
    display: grid;
    grid-template-columns:
      [full-start] minmax(var(--gutter, 1.5rem), 1fr)
      [rail-start] 11rem [rail-end] 3rem
      [main-start] minmax(0, 46.5rem) [main-end]
      minmax(var(--gutter, 1.5rem), 1fr) [full-end];
    align-items: start;
  }
  [data-persona="nicholas"] .review > * { grid-column: main; }
  [data-persona="nicholas"] .review__head {
    grid-column: rail-start / main-end;
    grid-row: 1;
    width: auto;
    margin: 4.5rem 0 2.75rem;
    grid-template-columns: 11rem minmax(0, 1fr);
    column-gap: 3rem;
  }
  [data-persona="nicholas"] .review__hero { grid-column: rail-start / main-end; grid-row: 2; width: auto; margin: 0 0 3.5rem; }
  [data-persona="nicholas"] .n-toc { grid-column: rail; grid-row: 3; }
  [data-persona="nicholas"] .review__body { grid-row: 3; width: auto; margin: 0; }
  [data-persona="nicholas"] .review__foot { grid-row: 4; width: auto; margin: 5rem 0 0; }
}

/* -- 12. Article head ----------------------------------------------------------------------- */
[data-persona="nicholas"] .review__kicker { gap: 0 .7em; font-size: .78125rem; letter-spacing: .01em; }
[data-persona="nicholas"] .review__author { color: var(--accent); font-weight: 500; text-decoration: none; }
[data-persona="nicholas"] .review__author:hover { text-decoration: underline; text-decoration-thickness: 1px; }
[data-persona="nicholas"] .review__sep { width: auto; height: auto; background: none; opacity: 1; }
[data-persona="nicholas"] .review__sep::before { content: "/"; color: var(--fg-muted); opacity: 1; }
[data-persona="nicholas"] .review__product { color: var(--fg); }
[data-persona="nicholas"] .review__num {
  display: flex;
  align-items: baseline;
  gap: 0;
  color: var(--accent);
  font: 500 .875rem/1.2 var(--font-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
  white-space: nowrap;
}
[data-persona="nicholas"] .review__num::before { content: "["; color: var(--fg-muted); }
[data-persona="nicholas"] .review__of { display: inline; margin: 0; color: var(--fg-muted); font: inherit; }
[data-persona="nicholas"] .review__of::before { content: "]"; }
[data-persona="nicholas"] .review__title {
  margin-top: 1.1rem;
  color: var(--n-fg-hi);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2rem, 1.2rem + 3vw, 3.25rem);
  line-height: 1.06;
  letter-spacing: -.028em;
  text-transform: lowercase;
}
[data-persona="nicholas"] .review__meta {
  gap: .4em 1.1ch;
  margin-top: 1.5rem;
  padding-top: .9rem;
  border-top: 1px solid var(--rule);
  font-size: .75rem;
  letter-spacing: .01em;
}
[data-persona="nicholas"] .review__source { text-decoration-color: var(--n-rule-hi); }
/* From 900px the number moves into the left column as a box: item 09, ticked. */
@media (min-width: 56.25rem) {
  [data-persona="nicholas"] .review__head { grid-template-columns: 6.5rem minmax(0, 1fr); column-gap: 1.75rem; }
  [data-persona="nicholas"] .review__kicker { grid-column: 2; grid-row: 1; }
  [data-persona="nicholas"] .review__title { grid-column: 2; grid-row: 2; }
  [data-persona="nicholas"] .review__meta { grid-column: 2; grid-row: 3; }
  [data-persona="nicholas"] .review__num {
    position: relative;
    grid-column: 1;
    grid-row: 2 / span 2;
    align-self: start;
    justify-self: end;
    display: grid;
    place-items: center;
    width: 4.25rem;
    height: 4.25rem;
    margin-top: .3rem;
    border: 1.5px solid var(--accent);
    font-size: 1.625rem;
    line-height: 1;
    letter-spacing: -.03em;
  }
  [data-persona="nicholas"] .review__num::before,
  [data-persona="nicholas"] .review__of::before { content: none; }
  [data-persona="nicholas"] .review__of {
    position: absolute;
    top: calc(100% + .6rem);
    right: 0;
    font-size: .75rem;
    letter-spacing: .02em;
  }
}
@media (min-width: 72rem) {
  [data-persona="nicholas"] .review__head { grid-template-columns: 11rem minmax(0, 1fr); column-gap: 3rem; }
}

/* -- 13. Lead image: a framed plate on the dot grid, never taller than the screen ----------- */
[data-persona="nicholas"] .review__hero {
  position: relative;
  display: grid;
  place-items: center;
  padding: clamp(.75rem, .4rem + 1.6vw, 1.75rem);
  background: radial-gradient(circle at 1px 1px, rgb(141 154 171 / .2) 1px, transparent 1.5px) 0 0 / 14px 14px, var(--n-bg-3);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
}
[data-persona="nicholas"] .review__hero img {
  width: auto;
  max-width: 100%;
  max-height: min(70vh, 34rem);
  border-radius: 1px;
  background: transparent;
  box-shadow: 0 1px 0 rgb(255 255 255 / .04), 0 24px 48px -30px #000;
}

/* Transparent black wordmark (09): a light table under it, contained, never cropped. */
[data-persona="nicholas"] .card__media img[src*="09-tailscale"],
[data-persona="nicholas"] .review__hero img[src*="09-tailscale"] {
  background: #C3CCD6;
  object-fit: contain;
  filter: none;
}
[data-persona="nicholas"] .card__media img[src*="09-tailscale"] { padding: 9% 12%; }
[data-persona="nicholas"] .review__hero img[src*="09-tailscale"] { width: min(100%, 44rem); padding: 4.5% 7%; }

/* -- 14. Contents rail (template override, review_aside) ------------------------------------- */
[data-persona="nicholas"] .n-toc { display: none; }
@media (min-width: 72rem) {
  [data-persona="nicholas"] .n-toc {
    display: block;
    position: sticky;
    top: 1.75rem;
    font: 400 .78125rem/1.45 var(--font-mono);
  }
}
[data-persona="nicholas"] .n-toc__title {
  margin-bottom: .8rem;
  padding-bottom: .55rem;
  border-bottom: 1px solid var(--rule);
  color: var(--fg-muted);
  font-size: .6875rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}
[data-persona="nicholas"] .n-toc__list { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; counter-reset: n-toc; }
[data-persona="nicholas"] .n-toc__list li { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr); counter-increment: n-toc; }
[data-persona="nicholas"] .n-toc__list li::before { content: counter(n-toc) "."; color: var(--accent); }
[data-persona="nicholas"] .n-toc__list a { color: var(--fg-muted); text-decoration: none; }
[data-persona="nicholas"] .n-toc__list a:hover { color: var(--n-fg-hi); text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: .2em; }
[data-persona="nicholas"] .n-toc__list a.is-here { color: var(--n-fg-hi); }

/* -- 15. Prose -------------------------------------------------------------------------------- */
[data-persona="nicholas"] .prose {
  max-width: var(--measure);
  color: var(--fg);
  font-size: var(--prose-size);
  line-height: var(--prose-leading);
  counter-reset: n-sec;
}
[data-persona="nicholas"] .prose > * + * { margin-top: 1.15em; }
[data-persona="nicholas"] .prose h2 {
  counter-increment: n-sec;
  display: flex;
  align-items: baseline;
  gap: 1.1ch;
  margin-top: 2.75em;
  padding-top: 1.15em;
  border-top: 1px solid var(--rule);
  color: var(--n-fg-hi);
  font: 600 1.1875rem/1.35 var(--font-mono);
  letter-spacing: -.015em;
  text-transform: lowercase;
  scroll-margin-top: 1.5rem;
}
[data-persona="nicholas"] .prose h2::before { content: counter(n-sec) "."; color: var(--accent); font-weight: 500; }
[data-persona="nicholas"] .prose h2 + * { margin-top: .85em; }
[data-persona="nicholas"] .prose a {
  color: var(--n-fg-hi);
  text-decoration-color: var(--accent);
  text-decoration-thickness: 1.5px;
  text-underline-offset: .22em;
}
[data-persona="nicholas"] .prose a:hover { color: var(--accent); text-decoration-thickness: 2px; }
[data-persona="nicholas"] .prose strong { color: var(--n-fg-hi); font-weight: 600; }
[data-persona="nicholas"] .prose em { font-style: italic; }
[data-persona="nicholas"] .prose ul,
[data-persona="nicholas"] .prose ol { padding-left: 0; list-style: none; }
[data-persona="nicholas"] .prose li { position: relative; padding-left: 1.9em; }
[data-persona="nicholas"] .prose li + li { margin-top: .6em; }
[data-persona="nicholas"] .prose ul > li::before {
  content: "-";
  position: absolute;
  left: .45em;
  color: var(--accent);
  font-family: var(--font-mono);
  font-weight: 500;
}
[data-persona="nicholas"] .prose ol { counter-reset: n-li; }
[data-persona="nicholas"] .prose ol > li { counter-increment: n-li; }
[data-persona="nicholas"] .prose ol > li::before {
  content: counter(n-li) ".";
  position: absolute;
  left: 0;
  color: var(--accent);
  font: 500 .875em/inherit var(--font-mono);
  line-height: calc(var(--prose-leading) * 1.143);
}
[data-persona="nicholas"] .prose hr {
  width: 100%;
  height: 0;
  margin: 2.5em 0;
  border: 0;
  border-top: 1px dashed var(--n-rule-hi);
  background: none;
}
[data-persona="nicholas"] .prose__figure img,
[data-persona="nicholas"] .prose figure img { border: 1px solid var(--rule); border-radius: var(--radius); }
[data-persona="nicholas"] .prose figcaption { font-family: var(--font-mono); font-size: .75rem; }

/* -- 16. The last section is a real checklist; the closing line gets air and an end mark --- */
[data-persona="nicholas"] .prose > h2:last-of-type::after {
  content: "";
  flex: none;
  align-self: center;
  width: 4rem;
  height: 2.4rem;
  margin-left: .2ch;
  background: var(--accent);
  -webkit-mask: var(--n-arrow) center / contain no-repeat;
  mask: var(--n-arrow) center / contain no-repeat;
  transform: scaleX(-1) rotate(8deg) translateY(.15rem);
}
[data-persona="nicholas"] .prose > h2:last-of-type ~ ul,
[data-persona="nicholas"] .prose > h2:last-of-type ~ ol {
  display: grid;
  gap: .8em;
  padding: 1.15em 1.3em 1.2em;
  background: var(--bg-2);
  border: 1px solid var(--rule);
  border-left: 2px solid var(--accent);
  border-radius: var(--radius);
}
[data-persona="nicholas"] .prose > h2:last-of-type ~ ul > li,
[data-persona="nicholas"] .prose > h2:last-of-type ~ ol > li { margin-top: 0; padding-left: 2.1em; }
[data-persona="nicholas"] .prose > h2:last-of-type ~ ul > li::before,
[data-persona="nicholas"] .prose > h2:last-of-type ~ ol > li::before {
  content: "";
  top: .36em;
  left: 0;
  width: 1em;
  height: 1em;
  border: 1.5px solid var(--accent);
  border-radius: 1px;
  background: transparent;
}
[data-persona="nicholas"] .prose > p:last-child {
  margin-top: 2.6em;
  color: var(--n-fg-hi);
  font-weight: 500;
}
[data-persona="nicholas"] .prose > p:last-child::after {
  content: "";
  display: inline-block;
  width: .55em;
  height: .55em;
  margin-left: .55em;
  background: var(--accent);
  vertical-align: .02em;
}

/* -- 17. Code: inline chips and a dark well, with a quiet Pygments palette under .hl ---------- */
[data-persona="nicholas"] .prose code {
  padding: .1em .38em;
  border: 1px solid #243140;
  border-radius: 2px;
  background: #151E28;
  color: var(--n-amber-ink);
  font-family: var(--font-mono);
  font-size: .84em;
}
[data-persona="nicholas"] .prose pre {
  margin-top: 1.5em;
  padding: 1.1em 1.3em;
  overflow-x: auto;
  border: 1px solid var(--rule);
  border-left: 2px solid var(--accent);
  border-radius: var(--radius);
  background: var(--n-bg-0);
  color: #CBD4DE;
  font-size: .8125rem;
  line-height: 1.7;
  tab-size: 4;
}
[data-persona="nicholas"] .prose pre code { padding: 0; border: 0; background: none; color: inherit; font-size: inherit; }
[data-persona="nicholas"] .prose .hl { margin-top: 1.5em; }
[data-persona="nicholas"] .prose .hl > pre { margin-top: 0; }
[data-persona="nicholas"] .hl .c, [data-persona="nicholas"] .hl .c1, [data-persona="nicholas"] .hl .cm,
[data-persona="nicholas"] .hl .ch, [data-persona="nicholas"] .hl .cs, [data-persona="nicholas"] .hl .cpf { color: #75859A; font-style: normal; }
[data-persona="nicholas"] .hl .cp { color: #A9B6C4; }
[data-persona="nicholas"] .hl .k, [data-persona="nicholas"] .hl .kd, [data-persona="nicholas"] .hl .kn,
[data-persona="nicholas"] .hl .kr, [data-persona="nicholas"] .hl .kt, [data-persona="nicholas"] .hl .kp,
[data-persona="nicholas"] .hl .ow { color: var(--accent); font-weight: 500; }
[data-persona="nicholas"] .hl .kc { color: #F2BE6E; }
[data-persona="nicholas"] .hl .s, [data-persona="nicholas"] .hl .s1, [data-persona="nicholas"] .hl .s2,
[data-persona="nicholas"] .hl .sa, [data-persona="nicholas"] .hl .sb, [data-persona="nicholas"] .hl .sc,
[data-persona="nicholas"] .hl .sd, [data-persona="nicholas"] .hl .sh, [data-persona="nicholas"] .hl .sx,
[data-persona="nicholas"] .hl .sr, [data-persona="nicholas"] .hl .ss { color: #93BAD6; }
[data-persona="nicholas"] .hl .se, [data-persona="nicholas"] .hl .si { color: #C4DAEA; }
[data-persona="nicholas"] .hl .m, [data-persona="nicholas"] .hl .mi, [data-persona="nicholas"] .hl .mf,
[data-persona="nicholas"] .hl .mh, [data-persona="nicholas"] .hl .mo, [data-persona="nicholas"] .hl .mb,
[data-persona="nicholas"] .hl .il { color: #F2BE6E; }
[data-persona="nicholas"] .hl .n, [data-persona="nicholas"] .hl .nx, [data-persona="nicholas"] .hl .py { color: #CBD4DE; }
[data-persona="nicholas"] .hl .nf, [data-persona="nicholas"] .hl .fm, [data-persona="nicholas"] .hl .nc,
[data-persona="nicholas"] .hl .nn { color: var(--n-fg-hi); font-weight: 600; }
[data-persona="nicholas"] .hl .nb, [data-persona="nicholas"] .hl .bp { color: #93BAD6; }
[data-persona="nicholas"] .hl .na, [data-persona="nicholas"] .hl .nv, [data-persona="nicholas"] .hl .vi,
[data-persona="nicholas"] .hl .vg, [data-persona="nicholas"] .hl .vc { color: #DDBF8F; }
[data-persona="nicholas"] .hl .nt { color: var(--accent); }
[data-persona="nicholas"] .hl .nd, [data-persona="nicholas"] .hl .ne, [data-persona="nicholas"] .hl .nl { color: #E6C38A; }
[data-persona="nicholas"] .hl .o, [data-persona="nicholas"] .hl .p { color: #8D9AAB; }
[data-persona="nicholas"] .hl .gh, [data-persona="nicholas"] .hl .gu { color: var(--accent); font-weight: 600; }
[data-persona="nicholas"] .hl .gd { color: #E58A78; }
[data-persona="nicholas"] .hl .gi { color: #93BAD6; }
[data-persona="nicholas"] .hl .ge { font-style: italic; }
[data-persona="nicholas"] .hl .gs { font-weight: 600; }
[data-persona="nicholas"] .hl .gp, [data-persona="nicholas"] .hl .go { color: #8D9AAB; }
[data-persona="nicholas"] .hl .err { color: inherit; background: none; }
[data-persona="nicholas"] .hl .hll { display: block; background: var(--n-amber-wash); }

/* -- 18. Tables: monospaced, hairlined, a raised well ---------------------------------------- */
[data-persona="nicholas"] .table-wrap {
  margin-block: 1.75em;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: var(--bg-2);
}
[data-persona="nicholas"] .prose table { font-family: var(--font-mono); font-size: .78125rem; line-height: 1.5; }
[data-persona="nicholas"] .prose th,
[data-persona="nicholas"] .prose td { padding: .62em 1em; border-bottom: 1px solid var(--rule); }
[data-persona="nicholas"] .prose th:last-child,
[data-persona="nicholas"] .prose td:last-child { padding-right: 1em; }
[data-persona="nicholas"] .prose thead th {
  background: var(--n-bg-3);
  border-bottom: 1px solid var(--n-rule-hi);
  color: var(--fg-muted);
  font-size: .625rem;
  font-weight: 600;
  letter-spacing: .12em;
}
[data-persona="nicholas"] .prose tbody tr:last-child td { border-bottom: 0; }
[data-persona="nicholas"] .prose tbody tr:hover { background: rgb(232 163 61 / .05); }
[data-persona="nicholas"] .prose td:first-child { color: var(--n-fg-hi); }

/* -- 19. Author card -------------------------------------------------------------------------- */
.author-card[data-persona="nicholas"] {
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 1.1rem;
  row-gap: .3rem;
  padding: 1.4rem 1.5rem 1.5rem;
  background: var(--bg-2);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  color: var(--fg);
  font-family: var(--font-body);
}
.author-card[data-persona="nicholas"]::before {
  content: "nt";
  grid-row: 1 / span 2;
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1.5px solid var(--accent);
  color: var(--accent);
  font: 600 .9375rem/1 var(--font-mono);
  letter-spacing: -.02em;
}
[data-persona="nicholas"] .author-card__name { align-self: end; color: var(--n-fg-hi); font-family: var(--font-display); font-size: 1.1875rem; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; }
[data-persona="nicholas"] .author-card__name a:hover { text-decoration-color: var(--accent); }
[data-persona="nicholas"] .author-card__role { align-self: start; color: var(--fg-muted); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; }
[data-persona="nicholas"] .author-card__bio { grid-column: 1 / -1; max-width: none; margin-top: .9rem; padding-top: .9rem; border-top: 1px dashed var(--n-rule-hi); color: var(--fg); font-size: .9375rem; line-height: 1.65; }

/* -- 20. Pager -------------------------------------------------------------------------------- */
[data-persona="nicholas"] .pager { gap: .75rem; }
[data-persona="nicholas"] .pager__link {
  padding: 1rem 1.15rem 1.1rem;
  background: var(--bg-2);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
}
[data-persona="nicholas"] .pager__link:hover { background: var(--n-bg-4); border-color: var(--n-amber-line); }
[data-persona="nicholas"] .pager__label { color: var(--fg-muted); font: 500 .6875rem/1.6 var(--font-mono); letter-spacing: .12em; }
[data-persona="nicholas"] .pager__link--prev .pager__label::before { content: "\2190  "; color: var(--accent); white-space: pre; }
[data-persona="nicholas"] .pager__link--next .pager__label::after { content: "  \2192"; color: var(--accent); white-space: pre; }
[data-persona="nicholas"] .pager__num { color: var(--accent); font: 500 .75rem/1.6 var(--font-mono); }
[data-persona="nicholas"] .pager__num::before { content: "["; color: var(--fg-muted); }
[data-persona="nicholas"] .pager__num::after { content: "]"; color: var(--fg-muted); }
[data-persona="nicholas"] .pager__title { margin-top: .2rem; color: var(--n-fg-hi); font-family: var(--font-display); font-size: 1rem; font-weight: 600; line-height: 1.32; text-transform: lowercase; }

/* -- 21. Footer (covers both footer class sets the shell has used) ---------------------------- */
[data-persona="nicholas"] .footer {
  background: var(--n-bg-0);
  border-top-color: var(--rule);
  color: var(--fg-muted);
  font-family: var(--font-mono);
}
[data-persona="nicholas"] .footer__brand { color: var(--fg); font-family: var(--font-mono); font-size: .9375rem; }
[data-persona="nicholas"] .footer__line { font-family: var(--font-body); font-size: .875rem; line-height: 1.55; }
[data-persona="nicholas"] .footer__heading { color: var(--fg); font-family: var(--font-mono); font-size: .6875rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
[data-persona="nicholas"] .footer__list,
[data-persona="nicholas"] .footer__nav { font-size: .8125rem; }
[data-persona="nicholas"] .footer__list a:hover,
[data-persona="nicholas"] .footer__nav a:hover { color: var(--accent); text-decoration-color: var(--accent); }
[data-persona="nicholas"] .footer .desk-link__dot { border-radius: 1px; }
[data-persona="nicholas"] .footer__fine,
[data-persona="nicholas"] .footer__small { border-top-color: var(--rule); font-family: var(--font-mono); font-size: .71875rem; letter-spacing: .01em; }

/* -- 22. Small screens -------------------------------------------------------------------------- */
@media (max-width: 47.99rem) {
  [data-persona="nicholas"] .desk-hero { grid-template-columns: minmax(0, 1fr); }
  [data-persona="nicholas"] .desk-hero__facts { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  [data-persona="nicholas"] .desk-hero__facts > div:first-child { grid-column: 1 / -1; }
  [data-persona="nicholas"] .n-radar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    margin: 0;
    padding-bottom: 0;
  }
  [data-persona="nicholas"] .n-radar__scope { order: 2; flex: none; width: min(13.5rem, 58%); }
  [data-persona="nicholas"] .n-radar__cap {
    position: static;
    order: 1;
    flex-direction: column;
    gap: .2rem;
    max-width: 11rem;
    padding-bottom: .25rem;
  }
  [data-persona="nicholas"] .n-arrow--radar {
    width: 3.75rem;
    height: 2.25rem;
    left: auto;
    right: calc(min(13.5rem, 58%) - .75rem);
    bottom: 4.25rem;
    transform: rotate(-4deg);
  }
  [data-persona="nicholas"] .review-list__head { align-items: start; flex-direction: column; }
  [data-persona="nicholas"] .chip { min-height: 2.25rem; }
  [data-persona="nicholas"] .prose > h2:last-of-type ~ ul,
  [data-persona="nicholas"] .prose > h2:last-of-type ~ ol { padding: 1em 1em 1.05em .95em; }
}
@media (max-width: 26rem) {
  [data-persona="nicholas"] .n-status__line { column-gap: 2ch; font-size: .6875rem; }
  [data-persona="nicholas"] .review__meta { font-size: .6875rem; }
  [data-persona="nicholas"] .prose h2 { font-size: 1.0625rem; }
}

/* -- 23. States: motion, contrast, forced colours, print -------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  [data-persona="nicholas"] .n-radar__sweep { animation: none; transform: rotate(152deg); }
  [data-persona="nicholas"] .n-radar__returns circle { animation: none; opacity: .75; }
  [data-persona="nicholas"] .n-radar__note--moving { display: none; }
  [data-persona="nicholas"] .n-radar__note--still { display: inline; }
  [data-persona="nicholas"] .card__media img,
  .card[data-persona="nicholas"]:hover .card__media img { transform: none; }
}
@media (prefers-contrast: more) {
  [data-persona="nicholas"] {
    --fg: #E6EBF0;
    --fg-muted: #B3BFCC;
    --rule: #3A4859;
    --n-rule-hi: #52637A;
    --n-dot: rgb(141 154 171 / .08);
    --n-dot-major: rgb(141 154 171 / .14);
  }
}
@media (forced-colors: active) {
  [data-persona="nicholas"] .n-radar__sweep,
  [data-persona="nicholas"] .n-arrow,
  [data-persona="nicholas"] .prose > h2:last-of-type::after { display: none; }
  [data-persona="nicholas"] .prose > h2:last-of-type ~ ul > li::before,
  [data-persona="nicholas"] .prose > h2:last-of-type ~ ol > li::before { border-color: CanvasText; }
}
@media print {
  [data-persona="nicholas"] {
    --bg: #fff; --bg-2: #fff; --fg: #111; --fg-muted: #444; --rule: #bbb;
    --n-fg-hi: #000; --n-bg-0: #f4f4f4; --n-bg-3: #fff; --n-rule-hi: #999; --n-amber-ink: #6b4300;
  }
  [data-persona="nicholas"] .page { background: #fff; }
  [data-persona="nicholas"] .n-status,
  [data-persona="nicholas"] .n-toc,
  [data-persona="nicholas"] .n-radar { display: none; }
  [data-persona="nicholas"] .review__hero { background: none; border: 0; padding: 0; }
  [data-persona="nicholas"] .prose a { color: #000; }
}
