@page {
  margin: 14mm 16mm 16mm;
}

@media print {
  :root,
  html[data-site-theme='light'] {
    --site-canvas: #fff;
    --site-text: #000;
    --site-muted: #333;
    --site-rule: #777;
    --site-header: #fff;
    --site-scanline: transparent;
  }

  html {
    background: #fff;
    color-scheme: light;
    scroll-behavior: auto;
    scrollbar-width: auto;
  }

  body,
  .station,
  .site-page {
    min-height: 0;
    color: #000;
    background: #fff;
    font-family: 'Libre Franklin', 'Helvetica Neue', Arial, sans-serif;
    font-size: 10pt;
    line-height: 1.45;
  }

  *,
  *::before,
  *::after {
    box-shadow: none !important;
    text-shadow: none !important;
    animation: none !important;
    transition: none !important;
  }

  img,
  svg {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  a,
  .station a,
  .site-page a {
    color: #000;
    text-decoration-color: currentColor;
    text-decoration-thickness: auto;
    text-underline-offset: 0.12em;
  }

  p {
    orphans: 3;
    widows: 3;
  }

  h1,
  h2,
  h3,
  dt {
    break-after: avoid-page;
    page-break-after: avoid;
  }

  img,
  figure,
  .post-entry,
  .career-record-grid__item {
    break-inside: avoid-page;
    page-break-inside: avoid;
  }

  .broadcast,
  .rewind-osd,
  .theme-shift-osd,
  .signal-ruler,
  .station-ident nav,
  .tally-control,
  .return-signal,
  .theme-toggle,
  .article-back,
  .article-follow,
  .article-format,
  .article-toc,
  .program-row__marker,
  .program-row__arrow,
  .post-entry__arrow,
  .page-title__band,
  .page-title__dropout {
    display: none !important;
  }

  .site-page::before,
  .cv-now::before,
  .cv-now::after {
    content: none !important;
  }

  .page-title__source {
    color: inherit !important;
  }

  .station-header {
    position: static;
    color: #000;
    background: #fff;
  }

  .station-ident {
    min-height: 0;
    display: block;
    color: #000;
    border-bottom: 0.75pt solid #000;
    font-size: 11pt;
  }

  .station-ident__brand-zone,
  .station-ident__brand-lockup,
  .station-ident__brand {
    min-height: 0;
    display: block;
  }

  .station-ident__brand-zone {
    border: 0;
  }

  .station-ident__brand-lockup {
    padding: 0 0 3mm;
  }

  html.channel-home .station-header,
  html.channel-cv .station-header {
    display: none;
  }

  .channel-main,
  .article-main {
    width: 100%;
    margin: 0;
    padding: 8mm 0 0;
  }

  .channel-lead {
    width: 100%;
    min-height: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 4mm;
  }

  .page-title,
  .sign-on h2 {
    max-width: none;
    font-size: 30pt;
    line-height: 0.95;
    letter-spacing: -0.02em;
    text-wrap: balance;
  }

  .channel-lead__copy {
    max-width: 72ch;
    padding: 0;
  }

  .channel-lead__copy p {
    color: #000;
    font-size: 10.5pt;
    line-height: 1.45;
  }

  .site-page--contact {
    color: #000;
    background: #fff;
  }

  .channel-main--contact {
    display: block;
  }

  /* On paper the band is just a rule. */
  .signal-band {
    height: 0;
    display: block;
    margin-top: 10mm;
    border-top: 0.75pt solid #000;
  }

  .direct-line {
    margin-top: 8mm;
    font-size: 26pt;
    line-height: 1;
  }

  /* Home */
  .station {
    display: block;
  }

  .sign-on {
    display: grid;
    grid-template-columns: 45mm minmax(0, 1fr);
    align-items: start;
    gap: 10mm;
    padding: 0 0 8mm;
    border-bottom: 1pt solid #000;
  }

  .sign-on__copy > p:first-child {
    color: #000;
    font-size: 11pt;
    line-height: 1.45;
  }

  .program-guide {
    border: 0;
  }

  .program-row {
    display: grid;
    grid-template-columns: 1fr;
    padding: 7mm 0;
    color: #000;
    background: #fff;
    border-top: 0;
    border-bottom: 0.75pt solid #777;
    text-decoration: none;
    break-inside: avoid-page;
    page-break-inside: avoid;
  }

  .program-row__title {
    font-size: 23pt;
    line-height: 0.9;
  }

  /* Blog index and articles */
  .blog-lead__meta {
    justify-items: start;
  }

  .blog-posts {
    width: 100%;
    margin: 12mm 0 0;
    border-top: 1pt solid #000;
  }

  .post-group {
    padding-top: 5mm;
  }

  .post-group + .post-group {
    margin-top: 5mm;
  }

  .post-group__header {
    padding-bottom: 2mm;
    border-bottom: 0.75pt solid #777;
    break-after: avoid-page;
    page-break-after: avoid;
  }

  .post-group__header h2 {
    font-size: 13pt;
  }

  .post-group__header h2::before,
  .post-group__activity,
  .post-entry__index {
    display: none;
  }

  .post-list {
    gap: 0;
    padding-top: 0;
  }

  .post-entry {
    grid-template-columns: 18mm minmax(0, 1fr);
    gap: 5mm;
    padding: 5mm 0;
    border: 0;
    border-bottom: 0.75pt solid #777;
  }

  .post-entry__meta {
    display: block;
    padding-right: 5mm;
    border-right: 0.75pt solid #777;
  }

  .post-entry time,
  .article-meta {
    color: #333;
    font-size: 9pt;
  }

  .post-entry__title {
    font-size: 19pt;
    line-height: 0.95;
  }

  .post-entry__summary {
    color: #222;
    font-size: 9.5pt;
    line-height: 1.4;
  }

  .post-entry__source {
    color: #333;
    font-size: 8.5pt;
  }

  .post-entry__source-logo {
    width: 4mm;
    height: 4mm;
  }

  .article-main {
    max-width: none;
  }

  .article {
    width: 100%;
  }

  .article-header {
    padding-bottom: 7mm;
    border-bottom: 1pt solid #000;
  }

  .article-title-row {
    --source-logo-size: 11mm;
    --source-logo-gap: 4mm;
  }

  .article-header .article-subtitle {
    margin-top: 4mm;
  }

  .article-subtitle {
    max-width: 60ch;
    color: #222;
    font-size: 13pt;
    line-height: 1.4;
  }

  .article-meta {
    margin-top: 5mm;
  }

  .article-reading {
    display: block;
    margin-top: 9mm;
    font-size: 10.5pt;
  }

  .article-body {
    --article-flow-space: 4.5mm;
    --article-section-space: 10mm;
    --article-subsection-space: 7mm;
    --article-heading-follow-space: 3mm;
    --article-source-space: 8mm;

    width: 100%;
    max-width: 72ch;
    margin-top: 0;
    color: #000;
    font-size: 10.5pt;
    line-height: 1.55;
  }

  .article-reading--with-source .article-body {
    margin-top: 8mm;
  }

  .article-body > h2 {
    font-size: 17pt;
  }

  .article-body > h3 {
    font-size: 14pt;
  }

  .article-body > h4 {
    font-size: 12pt;
  }

  .article-body li::marker {
    color: #000;
  }

  .article-body pre {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
  }

  .article-body .expressive-code {
    --ec-brdCol: #777;
    --ec-codeBg: #fff;
    --ec-codeFg: #000;
  }

  .article-body .expressive-code .ec-line .code {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
  }

  .article-body .expressive-code .ec-line span {
    color: #000;
    background: transparent;
  }

  .article-body table {
    display: table;
    overflow: visible;
  }

  .article-source-note {
    padding: 4mm;
    border: 0.75pt solid #777;
    border-left: 2pt solid #000;
    color: #222;
    font-size: 9pt;
  }

  .article-source-note strong {
    color: #000;
  }

  :is(.article-body, .article-source-note) a:is(:hover, :focus-visible) {
    color: #000;
    background: transparent;
  }

  :is(.article-body, .article-source-note) a[href^='http']::after {
    content: ' (' attr(href) ')' !important;
    width: auto !important;
    height: auto !important;
    display: inline !important;
    margin: 0 !important;
    background: none !important;
    clip-path: none !important;
    font-size: 8.5pt;
    overflow-wrap: anywhere;
  }

  .article-body a[data-footnote-ref] {
    min-width: 0;
    display: inline;
    padding: 0;
    color: #000;
    background: transparent;
    border: 0;
    font-family: inherit;
    font-size: 0.75em;
  }

  .article-body :is([data-footnotes], .footnotes) {
    margin-top: 10mm;
    padding-top: 4mm;
    border-top: 0.75pt solid #000;
    color: #222;
    font-size: 9pt;
  }

  .article-body :is([data-footnotes], .footnotes)::before {
    color: #000;
    font-size: 11pt;
  }

  .article-body [data-footnote-backref] {
    color: #000;
  }

  .footnote-popover {
    display: none !important;
  }

  /* CV */
  .channel-main--cv {
    padding: 0;
  }

  .cv-lead {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) 30mm;
    gap: 6mm;
    align-items: start;
    padding: 0 0 6mm;
  }

  .cv-lead__media {
    --portrait-step: 1.5mm;
    --portrait-half-step: 0.75mm;
    width: 30mm;
    max-width: none;
    grid-column: 2;
    grid-row: 1;
  }

  .cv-lead__media::before,
  .cv-lead__media::after {
    display: none;
  }

  .cv-lead__frame::after {
    box-shadow: inset 0 0 0 0.5pt #555;
  }

  .cv-lead__portrait--pixel {
    display: none;
  }

  .cv-lead__content {
    max-width: none;
    grid-column: 1;
    grid-row: 1;
    gap: 3mm;
  }

  .cv-lead .page-title {
    font-size: 32pt;
  }

  .cv-lead__tagline {
    margin-top: 2mm;
    font-size: 14pt;
  }

  .cv-lead__copy {
    width: 100%;
    max-width: none;
  }

  .cv-lead__copy p {
    font-size: 9.5pt;
    line-height: 1.4;
  }

  .cv-lead__copy p + p {
    margin-top: 2.5mm;
  }

  .cv-now {
    overflow: visible;
    color: #000;
    background: #fff;
    border-top: 1.5pt solid #000;
    border-bottom: 0.75pt solid #777;
    break-inside: avoid-page;
    page-break-inside: avoid;
  }

  .cv-now__inner {
    width: 100%;
    margin: 0;
    padding: 5mm 0;
  }

  .cv-now__heading {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6mm;
    padding-bottom: 3mm;
    border-bottom: 0.75pt solid #000;
  }

  .cv-now__brand {
    gap: 3mm;
  }

  .cv-now__brand .company-pixel {
    width: 11mm;
    height: 11mm;
    margin-left: 0;
  }

  .cv-now__heading h2 {
    font-size: 24pt;
  }

  .cv-now__heading p,
  .cv-now__brand > div > p {
    color: #000;
    font-size: 9pt;
  }

  .cv-now__brand > div > p {
    margin-top: 1.5mm;
  }

  .cv-now__external-link svg {
    display: none;
  }

  .cv-now__copy {
    grid-template-columns: 1fr;
    gap: 2.5mm;
    padding: 4mm 0 0;
  }

  .cv-now__copy p {
    max-width: 88ch;
    color: #000;
    font-size: 8.75pt;
    line-height: 1.4;
  }

  .cv-now__copy .cv-now__lede {
    max-width: 52ch;
    margin-bottom: 1mm;
    font-size: 12pt;
    line-height: 1.25;
  }

  .cv-record {
    width: 100%;
    margin: 0;
    padding: 8mm 0 0;
  }

  .cv-record__heading {
    margin-bottom: 5mm;
  }

  .cv-record__heading h2 {
    font-size: 25pt;
  }

  .career-record-grid {
    display: block;
    border-top: 1pt solid #000;
    border-left: 0.5pt solid #888;
  }

  .career-record-grid__item {
    display: grid;
    grid-template-columns: 18mm minmax(0, 1fr);
    border-right: 0.5pt solid #888;
    border-bottom: 0.5pt solid #888;
  }

  .career-record-grid__item:not(:has(.career-record-grid__detail)) {
    display: block;
  }

  .career-record-grid__summary {
    min-height: 0;
    display: grid;
    place-items: center;
    padding: 2mm;
    color: #000;
    border-right: 0.5pt solid #888;
    box-shadow: none;
  }

  .career-record-grid__state {
    display: grid;
    place-items: center;
  }

  .career-record-grid__logo {
    width: 10mm;
    height: 10mm;
    clip-path: inset(0);
    opacity: 1;
    transform: none;
    animation: none;
  }

  .career-record-grid__identity {
    display: none;
  }

  .career-record-grid__summary--static {
    display: block;
    border-right: 0;
  }

  .career-record-grid__summary--static .career-record-grid__state {
    grid-template-columns: 10mm minmax(0, 1fr);
    justify-content: start;
    gap: 2.5mm;
    text-align: left;
  }

  .career-record-grid__summary--static .career-record-grid__logo,
  .career-record-grid__summary--static .career-record-grid__identity {
    grid-area: auto;
  }

  .career-record-grid__summary--static .career-record-grid__identity {
    display: block;
    clip-path: inset(0);
    opacity: 1;
  }

  .career-record-grid__summary--static strong {
    font-size: 10pt;
  }

  .career-record-grid__summary--static .career-record-grid__role {
    margin-top: 1mm;
    color: #333;
    font-size: 7.5pt;
  }

  .company-pixel--invert {
    filter: none;
  }

  .career-record-grid__detail {
    display: grid !important;
    grid-column: auto;
    grid-template-columns: 45mm minmax(0, 1fr);
    align-items: center;
    gap: 4mm;
    padding: 2mm 3mm;
    animation: none;
  }

  .career-record-grid__detail h3 {
    font-size: 13pt;
    line-height: 0.95;
  }

  .career-record-grid__detail--compact {
    grid-template-columns: minmax(0, 1fr);
  }

  .career-record-grid__detail header p {
    margin-top: 1mm;
    color: #000;
    font-size: 8.25pt;
  }

  .career-record-grid__date {
    margin-top: 1.5mm;
    color: #333;
    font-size: 7.5pt;
  }

  .career-record-grid__badge {
    width: max-content;
    margin-top: 1.5mm;
    padding: 1mm 1.5mm;
    color: #000;
    font-size: 7pt;
    background: transparent;
    border: 0.5pt solid #000;
  }

  .career-record-grid__detail > p {
    color: #111;
    font-size: 7.75pt;
    line-height: 1.3;
  }

  .cv-contact {
    color: #000;
    background: #fff;
    border-top: 1pt solid #000;
    break-inside: avoid-page;
    page-break-inside: avoid;
  }

  .cv-contact__inner {
    width: 100%;
    margin: 0;
    padding: 6mm 0 0;
  }

  .cv-contact__header {
    padding-bottom: 3mm;
    border-bottom: 0.75pt solid #000;
  }

  .cv-contact__header h2 {
    font-size: 20pt;
  }

  .cv-contact__links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cv-contact__links a {
    min-height: 0;
    gap: 2mm;
    padding: 3mm;
    color: #000;
    background: #fff;
    border-bottom: 0.5pt solid #888;
  }

  .cv-contact__label {
    gap: 2mm;
    font-size: 7pt;
  }

  .cv-contact__label .pixel-icon {
    width: 4mm;
    height: 4mm;
  }

  .cv-contact__links strong {
    font-size: 11pt;
  }

  .cv-contact__cue {
    display: none;
  }
}
