/* ==========================================================================
   print.css — Monochrome print / PDF output
   ========================================================================== */

@media print {
  :root {
    --c-accent: #000000;
    --c-black: #000000;
    --c-white: #ffffff;
    --c-gray-100: #f0f0f0;
    --c-gray-200: #cccccc;
    --c-gray-400: #888888;
    --c-gray-600: #555555;

    --grid: 4px;
    --sp-1: var(--grid);
    --sp-2: calc(var(--grid) * 2);
    --sp-3: calc(var(--grid) * 3);
    --sp-4: calc(var(--grid) * 4);
    --sp-6: calc(var(--grid) * 6);
    --sp-8: calc(var(--grid) * 8);
    --sp-12: calc(var(--grid) * 12);

    --container: 100%;
    --label-w: 140px;
    --nav-h: 0px;
  }

  /* Base */
  * {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  html {
    font-size: 10pt;
    scroll-behavior: auto;
  }

  body {
    font-size: 10pt;
    line-height: 1.5;
  }

  /* Hide chrome */
  #site-nav,
  .site-footer,
  .build-info {
    display: none !important;
  }

  /* Hero */
  .hero {
    padding-block: var(--sp-6);

    & .container {
      align-items: end;
      display: grid;
      gap: var(--sp-6);
      grid-template-columns: 1fr 220px;
    }

    .hero-identity {
      & h1 {
        font-size: 28pt;
        letter-spacing: -0.02em;
        line-height: 1;
        margin-bottom: 12px;
      }

      & .hero-subtitle {
        font-size: 8pt;
        letter-spacing: 0.15em;
        margin-bottom: 12px;
      }

      & .hero-bar {
        background: var(--c-black);
        height: 2pt;
        width: 36px;
      }
    }
  }

  .contact-list {
    .url {
      display: unset;
    }

    time {
      display: none;
    }

    abbr {
      text-decoration: none;
    }
  }

  /* Sections */
  .section {
    gap: var(--sp-4);
    grid-template-columns: var(--label-w) 1fr;
    padding-block: var(--sp-6);

    .section-label {
      font-size: 7pt;
      letter-spacing: 0.2em;

      &::before {
        background: var(--c-black);
        height: 1.5pt;
        margin-bottom: 8px;
        width: 16px;
      }
    }

    &:last-of-type {
      margin-bottom: unset;
    }
  }

  /* Entries */
  .entry {
    break-inside: avoid-page;

    .entry-role {
      font-size: 11pt;
    }

    .entry-date {
      font-size: 8pt;
    }

    .entry-company {
      font-size: 8pt;
    }

    & p,
    & li {
      font-size: 9.5pt;
    }

    .entry-stack {
      font-size: 8.5pt;
    }

    ul li::before {
      background: var(--c-black);
      top: 0.75em;
      width: 10px;
    }
  }

  /* Skills */
  .skill-grid {
    break-inside: avoid-page;
  }

  /* Links: show href */
  a[href^='tg']::after,
  a[href^='http']::after,
  a[href^='mailto']::after {
    color: var(--c-gray-600);
    content: ' (' attr(href) ')';
    display: block;
    font-size: 7pt;
  }

  /* No orphans */
  h2,
  h3 {
    break-after: avoid-page;
  }

  p,
  li {
    orphans: 3;
    widows: 3;
  }
}
