/* PENGER technical paper: editorial typography and evidence-led reading. */
.page-whitepaper { --wp-paper: #f7f7f4; --wp-ink: #0a0a0a; --wp-muted: #585852; --wp-line: #d9d9d2; background: var(--wp-paper); }
.wp-main { color: var(--wp-ink); background: var(--wp-paper); }
.wp-shell { width: min(100%, 1440px); margin-inline: auto; padding-inline: clamp(22px, 5vw, 80px); }
.wp-main a { color: inherit; text-underline-offset: 4px; }
.wp-main a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.wp-skip { position: fixed; top: -100px; left: 20px; z-index: 150; background: #fff; color: #0a0a0a; padding: 12px 18px; }
.wp-skip:focus { top: 12px; }
.wp-hero { display: grid; grid-template-columns: 1.13fr 0.87fr; gap: clamp(36px, 6vw, 88px); align-items: center; padding-block: clamp(36px, 5vw, 70px); border-bottom: 1px solid var(--wp-line); }
.wp-hero-copy { min-width: 0; }
.wp-eyebrow { display: block; margin: 0 0 18px; font-size: 10px; font-weight: 700; letter-spacing: .13em; line-height: 1.5; text-transform: uppercase; }
.wp-hero h1 { max-width: 770px; margin: 0; font-size: clamp(42px, 5.3vw, 80px); line-height: .98; letter-spacing: -.065em; font-weight: 700; text-wrap: balance; }
.wp-deck { max-width: 590px; margin-top: 28px; color: var(--wp-muted); font-size: clamp(15px, 1.25vw, 18px); line-height: 1.75; }
.wp-meta { display: flex; flex-wrap: wrap; gap: 5px 16px; padding-top: 18px; color: var(--wp-muted); font-size: 9px; line-height: 1.5; }
.wp-cover { min-width: 0; padding: clamp(24px, 3vw, 44px); background: #10110f; color: #f4f4ee; border-radius: 5px; }
.wp-cover-top, .wp-cover-bottom { display: flex; justify-content: space-between; gap: 15px; font-size: 9px; letter-spacing: .11em; line-height: 1.6; text-transform: uppercase; }
.wp-cover-top { padding-bottom: 22px; border-bottom: 1px solid #3a3b36; }
.wp-cover-bottom { padding-top: 22px; border-top: 1px solid #3a3b36; color: #c0c2b8; }
.wp-cover-grid { display: grid; gap: 12px; padding-block: 34px; }
.wp-cover-grid > div { display: grid; grid-template-columns: 18px repeat(12, minmax(0, 1fr)); gap: clamp(4px, .6vw, 9px); align-items: center; }
.wp-cover-grid > div > span { color: #b9bcb0; font-size: 8px; font-variant-numeric: tabular-nums; }
.wp-cover-grid i { display: block; width: 100%; aspect-ratio: 1; border: 1px solid #4e5147; border-radius: 2px; }
.wp-cover-grid i.is-punched { background: #e6e8dc; border-color: #e6e8dc; }
.wp-cover figcaption { display: grid; gap: 10px; padding-bottom: 24px; }
.wp-cover figcaption strong { max-width: 17ch; font-size: clamp(24px, 2.5vw, 36px); font-weight: 500; line-height: 1.1; letter-spacing: -.04em; }
.wp-cover figcaption > span { color: #bdc0b5; font-size: 10px; }
.wp-layout { display: grid; grid-template-columns: 205px minmax(0, 1fr); gap: clamp(42px, 6vw, 96px); align-items: start; padding-block: clamp(44px, 6vw, 86px); }
.wp-sidebar { position: sticky; top: calc(var(--header-h, 60px) + 30px); max-height: calc(100svh - var(--header-h, 60px) - 60px); overflow-y: auto; }
.wp-sidebar nav ol { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.wp-sidebar nav a { display: block; padding: 7px 0; color: var(--wp-muted); font-size: 12px; line-height: 1.5; text-decoration: none; }
.wp-sidebar nav a:hover { color: var(--wp-ink); text-decoration: underline; }
.wp-sidebar-note { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--wp-line); color: var(--wp-muted); font-size: 11px; line-height: 1.75; }
.wp-sidebar-link { display: inline-block; margin-top: 14px; font-size: 11px; }
.wp-article { min-width: 0; }
.wp-section { padding-bottom: clamp(36px, 5vw, 68px); margin-bottom: clamp(36px, 5vw, 68px); border-bottom: 1px solid var(--wp-line); scroll-margin-top: calc(var(--header-h, 60px) + 26px); }
.wp-section h2 { max-width: 800px; margin: 0 0 25px; font-size: clamp(28px, 3.1vw, 44px); line-height: 1.08; letter-spacing: -.045em; font-weight: 650; text-wrap: balance; }
.wp-section h3 { margin: 24px 0 10px; font-size: 19px; font-weight: 650; letter-spacing: -.025em; line-height: 1.35; }
.wp-section p { max-width: 76ch; margin: 0 0 18px; color: var(--wp-muted); font-size: 15px; line-height: 1.85; }
.wp-section p strong { color: var(--wp-ink); font-weight: 600; }
.wp-section p.wp-eyebrow { margin: 0 0 18px; color: var(--wp-muted); font-size: 10px; font-weight: 700; line-height: 1.5; }
.wp-section .wp-lead { font-size: clamp(18px, 1.7vw, 23px); line-height: 1.65; color: var(--wp-ink); letter-spacing: -.02em; }
.wp-evidence { display: grid; border-top: 1px solid var(--wp-ink); margin-block: 28px; }
.wp-case { display: grid; grid-template-columns: minmax(150px,.68fr) minmax(0,1.32fr); column-gap: clamp(24px,3vw,42px); min-width: 0; padding-block: 28px; border-bottom: 1px solid var(--wp-line); }
.wp-case-top { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px; margin-bottom: 22px; font-size: 9px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.wp-stat { margin-bottom: 12px; }
.wp-stat strong, strong.wp-stat { display: block; font-size: clamp(32px, 3.2vw, 48px); font-weight: 600; letter-spacing: -.055em; line-height: 1.05; font-variant-numeric: tabular-nums; }
.wp-case > .wp-stat { grid-column: 1; grid-row: 2 / 5; }
.wp-stat span, .wp-stat small { display: block; margin-top: 8px; font-size: 11px; color: var(--wp-muted); }
.wp-case h3 { grid-column: 2; margin-top: 0; font-size: 18px; }
.wp-case p { grid-column: 2; font-size: 13px; line-height: 1.8; }
.wp-case a { grid-column: 2; font-size: 11px; }
.wp-note { margin-block: 26px; padding-block: 18px; border-block: 1px solid var(--wp-line); }
.wp-note .wp-eyebrow { margin-bottom: 8px; font-size: 9px; color: var(--wp-muted); }
.wp-section .wp-note p, .wp-section p.wp-note { font-size: 14px; line-height: 1.8; color: var(--wp-muted); }
.wp-note p:last-child { margin-bottom: 0; }
.wp-cite { font-size: 11px; white-space: nowrap; font-weight: 600; }
.wp-table-wrap { max-width: 100%; overflow-x: auto; margin-block: 26px; overscroll-behavior-inline: contain; }
.wp-table { width: 100%; min-width: 560px; border-collapse: collapse; text-align: left; font-size: 13px; line-height: 1.65; }
.wp-table caption { margin-bottom: 14px; text-align: left; font-size: 11px; font-weight: 600; }
.wp-table th, .wp-table td { padding: 16px 18px 16px 0; border-bottom: 1px solid var(--wp-line); vertical-align: top; }
.wp-table thead th { border-top: 1px solid var(--wp-ink); border-bottom-color: var(--wp-ink); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.wp-table tbody th { min-width: 115px; font-weight: 600; }
.wp-table td { color: var(--wp-muted); }
.wp-pattern { display: inline-flex; align-items: center; gap: 3px; min-height: 21px; }
.wp-section .wp-pattern-key { font-size: 12px; }
.wp-text-link { display: inline-block; font-size: 12px; font-weight: 600; }
.wp-specs, .wp-specs dl { margin: 26px 0 0; }
.wp-specs > div, .wp-specs dl > div { display: grid; grid-template-columns: minmax(140px,.45fr) minmax(0,1fr); gap: 24px; padding-block: 15px; border-bottom: 1px solid var(--wp-line); font-size: 13px; }
.wp-specs dt { font-weight: 600; }
.wp-specs dd { margin: 0; color: var(--wp-muted); }
.wp-redundancy { margin-block: 30px; border-block: 1px solid var(--wp-line); padding-block: 18px; }
.wp-redundancy figcaption { margin-bottom: 20px; font-size: 12px; font-weight: 600; }
.wp-redundancy dl { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.wp-redundancy dl > div { min-width: 0; }
.wp-redundancy dl > div + div { padding-left: 28px; border-left: 1px solid var(--wp-line); }
.wp-redundancy dt { font-size: 17px; font-weight: 600; }
.wp-redundancy dt span { display: block; margin-bottom: 8px; font-size: 9px; font-weight: 500; letter-spacing: .08em; color: var(--wp-muted); }
.wp-redundancy dd { margin-top: 7px; font-size: 13px; color: var(--wp-muted); }
.wp-section .wp-redundancy p { margin: 20px 0 0; font-size: 12px; }
.wp-protocol, .wp-protocol ol { margin: 26px 0 0; padding: 0; list-style: none; counter-reset: wp-step; }
.wp-protocol li { position: relative; padding: 24px 0 24px 54px; border-top: 1px solid var(--wp-line); counter-increment: wp-step; }
.wp-protocol li::before { content: counter(wp-step, decimal-leading-zero); position: absolute; left: 0; top: 28px; font-size: 11px; font-weight: 600; }
.wp-protocol li h3 { margin-top: 0; font-size: 18px; }
.wp-protocol li p:last-child { margin-bottom: 0; }
.wp-references ol { padding-left: 22px; }
.wp-references li { padding: 14px 0 14px 8px; border-bottom: 1px solid var(--wp-line); color: var(--wp-muted); font-size: 12px; line-height: 1.75; overflow-wrap: anywhere; scroll-margin-top: calc(var(--header-h, 60px) + 25px); }
.wp-references li a { color: var(--wp-ink); font-weight: 600; }
.wp-references li span { display: block; margin-top: 5px; }
.wp-revision { margin-top: 30px; color: var(--wp-muted); font-size: 11px; line-height: 1.8; }
.wp-end { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px; padding-block: 35px; border-top: 1px solid var(--wp-line); }
.wp-end h2 { margin: 0; font-size: 25px; letter-spacing: -.035em; line-height: 1.2; }
.wp-end > div:first-child { display: block; }
.wp-end > div:last-child { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; font-size: 12px; }
@media (max-width: 1000px) {
  .wp-hero { grid-template-columns: 1fr 0.85fr; gap: 30px; }
  .wp-layout { grid-template-columns: 170px minmax(0,1fr); gap: 35px; }
}
@media (max-width: 800px) {
  .wp-hero { grid-template-columns: 1fr; padding-block: 44px; }
  .wp-hero h1 { max-width: 640px; }
  .wp-cover { display: none; }
  .wp-cover-grid { gap: 13px; }
  .wp-layout { grid-template-columns: 1fr; gap: 36px; }
  .wp-sidebar { position: static; max-height: none; overflow: visible; padding-bottom: 28px; border-bottom: 1px solid var(--wp-line); }
  .wp-sidebar nav ol { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 22px; }
  .wp-sidebar-note { margin-top: 18px; padding-top: 14px; }
  .wp-sidebar-link { margin-top: 8px; }
  .wp-section p { font-size: 15px; }
  .wp-case p { font-size: 13px; }
}
@media (max-width: 520px) {
  .wp-shell { padding-inline: 22px; }
  .wp-hero h1 { font-size: clamp(36px,10.8vw,54px); }
  .wp-case { grid-template-columns: 1fr; padding-block: 24px; }
  .wp-case-top { flex-wrap: wrap; gap: 5px 14px; }
  .wp-case > .wp-stat { grid-column: 1; grid-row: auto; margin-bottom: 18px; }
  .wp-case h3, .wp-case p, .wp-case a { grid-column: 1; }
  .wp-stat strong, strong.wp-stat { font-size: 43px; }
  .wp-note { padding-block: 16px; }
  .wp-specs > div, .wp-specs dl > div { grid-template-columns: 1fr; gap: 5px; }
  .wp-redundancy dl { grid-template-columns: 1fr; gap: 18px; }
  .wp-redundancy dl > div + div { padding: 18px 0 0; border-left: 0; border-top: 1px solid var(--wp-line); }
  .wp-protocol li { padding-left: 36px; }
  .wp-end { align-items: flex-start; }
}
@media print {
  .page-whitepaper { padding: 0; background: #fff; color: #000; }
  .page-whitepaper .site-header, .page-whitepaper .site-footer, .wp-sidebar, .wp-skip, .wp-read, .wp-end { display: none !important; }
  .wp-main, .wp-cover, .wp-encoding, .wp-case, .wp-note { background: #fff; color: #000; }
  .wp-shell { width: 100%; max-width: none; padding: 0; }
  .wp-layout, .wp-hero { display: block; padding-block: 20px; }
  .wp-cover { display: none; }
  .wp-hero h1 { font-size: 36pt; }
  .wp-section { margin-bottom: 24px; padding-bottom: 24px; }
  .wp-section h2 { font-size: 22pt; break-after: avoid; }
  .wp-section h3 { break-after: avoid; }
  .wp-section p { font-size: 10pt; orphans: 3; widows: 3; }
  .wp-evidence { display: block; }
  .wp-case, .wp-encoding, .wp-redundancy, .wp-protocol li { break-inside: avoid; }
  .wp-table-wrap { overflow: visible; }
  .wp-table { min-width: 0; font-size: 9pt; }
  .wp-table tr { break-inside: avoid; }
  .wp-table thead { display: table-header-group; }
  .wp-main a[href^="http"]::after { content: ' (' attr(href) ')'; font-size: 8pt; font-weight: 400; overflow-wrap: anywhere; }
  .wp-main a { text-decoration: none; }
}
