:root {
  color-scheme: light;
  --oa-ground: #151518; --oa-ground-2: #1e1f23; --oa-paper: #e8e9e7; --oa-muted: #b2b4bd;
  --oa-blue: #b2c8f0; --oa-line: #3c3d45; --oa-sheet: #eff0ec; --oa-blue-deep: #2d4f93;
  --panel: #f7f7f5; --ink: #151518; --muted: #55575f; --hair: #cfd1d6; --rust: #9a3b16;
  --rust-field: #f0a27c;
  --cited: #d9e3f5;
  --display: "CN Display", Arial, sans-serif; --body: "CN Text", Arial, sans-serif;
  --mono: "DM Mono", ui-monospace, Menlo, monospace;
  --glyph: "DejaVu Sans", "Segoe UI Symbol", "Apple Symbols", "Noto Sans Symbols 2", sans-serif;
  --gutter: clamp(1.25rem, 3.4vw, 3rem); --tap: 48px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--oa-sheet); color: var(--ink); font: 400 1.0625rem/1.6 var(--body); }
a { color: var(--ink); text-decoration-color: var(--oa-blue-deep); text-decoration-thickness: 1px; text-underline-offset: 3px; overflow-wrap: anywhere; }
:focus-visible { outline: 3px solid var(--oa-blue-deep); outline-offset: 2px; }
.plate :focus-visible { outline-color: var(--oa-blue); }
code { font-family: var(--mono); font-size: 0.875em; overflow-wrap: anywhere; }
.wrap { max-width: 80rem; margin: 0 auto; padding: 0 var(--gutter); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.g { font-family: var(--glyph); font-weight: 700; display: inline-block; width: 1.3em; text-align: center; flex: none; }
.site { background: var(--oa-ground); color: var(--oa-paper); border-bottom: 1px solid var(--oa-line); }
.site .wrap { display: flex; align-items: center; gap: 0.75rem; min-height: 52px; }
.brand b { font: 600 1.0625rem/1 var(--display); }
.site .section { color: var(--oa-muted); font-size: 0.9375rem; line-height: 1.3; border-left: 1px solid var(--oa-line); padding-left: 0.75rem; }
.plate { background: var(--oa-ground); color: var(--oa-paper); }
.plate .wrap { padding-top: 1rem; padding-bottom: 1.5rem; display: grid; gap: 1rem; }
.kicker { font: 400 0.8125rem/1.4 var(--mono); letter-spacing: 0.04em; text-transform: uppercase; color: var(--oa-muted); margin: 0; }
.paper-title { margin: 0.4rem 0 0; font: 500 0.9375rem/1.4 var(--body); color: var(--oa-paper); max-width: 46rem; }
.paper-title a { color: inherit; text-decoration-color: var(--oa-muted); }
.paper-title .venue { color: var(--oa-muted); }
.answer { margin: 0.8rem 0 0; font: 600 clamp(1.875rem, 4.6vw, 3.5rem)/1.04 var(--display); letter-spacing: -0.01em; max-width: 20ch; text-wrap: balance; }
.answer .tag { display: block; font: 500 0.8125rem/1.3 var(--mono); letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 0.5rem; }
.neg .answer .tag { color: var(--rust-field); }
.pos .answer .tag { color: var(--oa-blue); }
.why { margin: 0.7rem 0 0; font-size: 1.0625rem; line-height: 1.5; max-width: 40rem; }
.why code { color: var(--oa-paper); }
.readout { border: 1px solid var(--oa-line); background: var(--oa-ground-2); padding: 0.875rem 1rem; align-self: end; }
.readout h2 { margin: 0 0 0.6rem; font: 500 0.875rem/1.4 var(--body); color: var(--oa-muted); }
.pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0.5rem 2.25rem; margin: 0; }
.pair div { min-width: 0; position: relative; }
.pair .ours::before { content: "→"; position: absolute; left: -1.75rem; bottom: 0.15rem; font: 400 1.5rem/1 var(--body); color: var(--oa-muted); }
.pair dt { font: 400 0.8125rem/1.3 var(--mono); text-transform: uppercase; letter-spacing: 0.04em; color: var(--oa-muted); }
.pair dd { margin: 0.2rem 0 0; font: 600 clamp(2rem, 5vw, 3.25rem)/1 var(--body); letter-spacing: -0.02em; font-variant-numeric: tabular-nums lining-nums; overflow-wrap: anywhere; }
.pair .nr dd { font-size: clamp(1.5rem, 3.4vw, 2rem); color: var(--oa-muted); }
.page .pair .txt dd { font-size: clamp(1.5rem, 3.4vw, 2.25rem); }
.neg .pair .ours dd { color: var(--rust-field); }
.same-tag { display: inline-block; margin: 0.6rem 0 0; font: 500 0.8125rem/1 var(--mono); text-transform: uppercase; letter-spacing: 0.04em; color: var(--oa-ground); background: var(--oa-blue); padding: 0.35rem 0.5rem; }
.method { margin: 0.7rem 0 0; font-size: 0.9375rem; line-height: 1.45; color: var(--oa-paper); }
.method b { font-weight: 600; }
.method .how { margin-left: 0.25rem; color: var(--oa-muted); border-color: var(--oa-line); white-space: nowrap; }
@media (min-width: 60rem) {
  .plate .wrap { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); column-gap: 3rem; padding-top: 2.25rem; padding-bottom: 2.75rem; align-items: end; }
}
.body .wrap { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; padding-top: 1.5rem; padding-bottom: 3rem; }
@media (min-width: 60rem) {
  .body .wrap { grid-template-columns: 17rem minmax(0, 46rem); column-gap: 4rem; }
  .page .spine { position: sticky; top: 1rem; align-self: start; }
}
.spine h2, .sec > h2 { font: 600 1.5rem/1.15 var(--display); margin: 0 0 0.25rem; }
.spine h2 { font-size: 1.125rem; }
.sec { margin: 0 0 2.5rem; }
.sec > .lede { margin: 0 0 1rem; color: var(--muted); font-size: 1rem; }
.index { list-style: none; margin: 0.5rem 0 0; padding: 0; border-top: 1px solid var(--hair); }
.index li { border-bottom: 1px solid var(--hair); }
.index a, .pdf .index li { display: grid; grid-template-columns: 1.4rem 1fr; gap: 0 0.5rem; align-items: center; min-height: var(--tap); padding: 0.4rem 0; text-decoration: none; }
.index a:hover .t { text-decoration: underline; text-decoration-color: var(--oa-blue-deep); }
.index .v { font: 500 0.8125rem/1.3 var(--mono); text-transform: uppercase; letter-spacing: 0.03em; display: block; }
.index .t { font-size: 0.9375rem; line-height: 1.35; display: block; }
.spine .meta { margin: 1rem 0 0; font-size: 0.875rem; color: var(--muted); line-height: 1.5; }
.bad .g, .bad .v, .bad .vword { color: var(--rust); }
.none .g, .none .v, .none .vword { color: var(--muted); }
.claims { list-style: none; margin: 0; padding: 0; }
.claim { background: #fff; border: 1px solid var(--hair); border-left: 4px solid var(--ink); padding: 1rem 1rem 0.5rem; margin: 0 0 1rem; scroll-margin-top: 1rem; }
.claim.bad { border-left-color: var(--rust); }
.claim.none { border-left-style: dashed; border-left-color: var(--muted); }
.claim .top { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.5rem; margin: 0; font: inherit; }
.claim .n { font: 500 0.875rem/1 var(--body); font-variant-numeric: tabular-nums; color: var(--muted); }
.vword { font: 500 0.875rem/1.3 var(--mono); text-transform: uppercase; letter-spacing: 0.04em; }
.cname { flex-basis: 100%; font: 600 1.0625rem/1.35 var(--body); }
.how { display: inline-block; margin: 0.4rem 0 0; font: 400 0.8125rem/1.2 var(--mono); color: var(--muted); border: 1px solid var(--hair); padding: 0.2rem 0.5rem; border-radius: 999px; }
.claim blockquote { margin: 0.75rem 0 0; font: 500 1.0625rem/1.45 var(--body); }
.claim blockquote p { margin: 0; }
.claim blockquote .ql { font: 400 0.8125rem/1 var(--mono); text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); }
.claim .src { margin: 0.2rem 0 0; font-size: 0.875rem; color: var(--muted); }
.claim .finding { margin: 0.6rem 0 0; overflow-wrap: anywhere; }
.claim .fix { margin: 0.6rem 0 0.5rem; padding: 0.5rem 0.75rem; background: var(--panel); border-left: 2px solid var(--hair); font-size: 0.9375rem; line-height: 1.5; }
.claim .fix b { font-weight: 600; }
.claim .note { margin: 0.6rem 0 0.5rem; padding: 0.5rem 0.75rem; border: 1px dashed var(--oa-blue-deep); font-size: 0.9375rem; line-height: 1.5; }
.claim .note p { margin: 0; }
.claim .note .note-k { font: 400 0.8125rem/1.4 var(--mono); letter-spacing: 0.03em; text-transform: uppercase; color: var(--oa-blue-deep); margin-bottom: 0.25rem; }
.claim .note .note-k b { font-weight: 500; display: block; }
.claim .note .note-k span:last-child { display: block; font: 400 0.875rem/1.4 var(--body); letter-spacing: 0; text-transform: none; color: var(--muted); }
details.ev, div.ev { margin: 0.5rem -1rem 0; border-top: 1px solid var(--hair); }
details.ev summary { list-style: none; cursor: pointer; min-height: var(--tap); display: flex; align-items: center; gap: 0.5rem; padding: 0 1rem; font-weight: 600; font-size: 0.9375rem; }
details.ev summary::-webkit-details-marker { display: none; }
details.ev summary::after { content: ""; margin-left: auto; flex: none; width: 0.55rem; height: 0.55rem; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); transform: rotate(45deg) translateY(-2px); }
details.ev[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
details.ev summary:hover { background: var(--panel); }
div.ev h4 { margin: 0; padding: 0.6rem 1rem 0; font-weight: 600; font-size: 0.9375rem; }
.evb { padding: 0 1rem 1rem; font-size: 0.9375rem; line-height: 1.5; overflow-wrap: anywhere; }
.evb p { margin: 0.4rem 0; }
.evb ul, .evb ol { margin: 0.4rem 0; padding-left: 1.25rem; }
table.ledger { width: 100%; border-collapse: collapse; font-size: 0.9375rem; font-variant-numeric: tabular-nums; margin: 0.5rem 0; }
.ledger th, .ledger td { text-align: left; padding: 0.4rem 0.5rem; border-bottom: 1px solid var(--hair); vertical-align: top; }
.ledger thead th { font: 400 0.75rem/1.3 var(--mono); text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); border-bottom: 2px solid var(--ink); }
.ledger td.num, .ledger th.num { text-align: right; font-variant-numeric: tabular-nums lining-nums; }
.tablewrap { overflow-x: auto; margin: 0.5rem 0;
  background: linear-gradient(to right, #fff 30%, rgba(255,255,255,0)) left / 2.5rem 100% no-repeat local,
    linear-gradient(to left, #fff 30%, rgba(255,255,255,0)) right / 2.5rem 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%, rgba(21,21,24,0.22), transparent) left / 0.9rem 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%, rgba(21,21,24,0.22), transparent) right / 0.9rem 100% no-repeat scroll; }
.tablewrap table.ledger { margin: 0; }
table.ledger { overflow-wrap: normal; }
.ledger td.num, .ledger th.num { white-space: nowrap; }
#changes .ledger td:first-child { white-space: nowrap; }
.tablewrap:focus-visible { outline-offset: 0; }
@media (max-width: 30rem) {
  .ledger th, .ledger td { padding: 0.35rem 0.3rem; }
  table.ledger { font-size: 0.875rem; }
  .ledger thead th { letter-spacing: 0.02em; }
}
pre.log { margin: 0.4rem 0; padding: 0.6rem 0.75rem; color: var(--oa-paper); font: 400 0.8125rem/1.5 var(--mono); white-space: pre; overflow-x: auto;
  background: linear-gradient(to right, var(--oa-ground) 30%, rgba(21,21,24,0)) left / 2.5rem 100% no-repeat local,
    linear-gradient(to left, var(--oa-ground) 30%, rgba(21,21,24,0)) right / 2.5rem 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%, rgba(178,200,240,0.45), transparent) left / 0.75rem 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%, rgba(178,200,240,0.45), transparent) right / 0.75rem 100% no-repeat scroll,
    var(--oa-ground); }
pre.log code { overflow-wrap: normal; }
pre.log code { font-size: inherit; }
.limits { list-style: none; margin: 0; padding: 0; }
.limits li { overflow-wrap: anywhere; background: #fff; border: 1px solid var(--hair); border-left: 4px dashed var(--muted); padding: 0.8rem 1rem; margin: 0 0 0.75rem; }
.limits li strong { font-weight: 600; }
.limits li strong.lh { display: block; }
.facts { margin: 0; border-top: 1px solid var(--hair); }
.facts div { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 0.75rem; padding: 0.55rem 0; border-bottom: 1px solid var(--hair); font-size: 0.9375rem; }
.facts dt { color: var(--muted); }
.facts dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.facts dd p { margin: 0 0 0.3rem; }
.facts dd ul { margin: 0; padding-left: 1.1rem; }
@media (max-width: 30rem) { .facts div { grid-template-columns: minmax(0, 1fr); gap: 0.1rem; } }
.panel { overflow-wrap: anywhere; background: var(--panel); border: 1px solid var(--hair); padding: 0.75rem 1rem; font-size: 0.9375rem; }
.panel p { margin: 0.25rem 0; }
footer.site-foot { background: var(--oa-ground); color: var(--oa-muted); font-size: 0.875rem; }
footer.site-foot .wrap { padding-top: 1.5rem; padding-bottom: 2rem; }
.disclosure { margin: 0 0 1rem; color: var(--oa-paper); max-width: 46rem; }
.key-h { margin: 0 0 0.3rem; font: 400 0.75rem/1.3 var(--mono); text-transform: uppercase; letter-spacing: 0.04em; }
.labelkey { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.2rem 1.1rem; }
@page { size: A4; margin: 15mm 16mm 16mm; }
.pdf { background: #fff; font-size: 10pt; line-height: 1.5; }
.pdf .wrap { max-width: none; padding: 0; }
.pdf .plate { background: #fff; color: var(--ink); border-top: 6pt solid var(--ink); border-bottom: 1px solid var(--hair); }
.pdf .plate .wrap { display: block; padding: 10pt 0 14pt; }
.pdf .kicker { color: var(--muted); font-size: 8pt; }
.pdf .paper-title { color: var(--ink); font-size: 10.5pt; max-width: none; }
.pdf .paper-title a { text-decoration-color: var(--oa-blue-deep); }
.pdf .paper-title .venue { color: var(--muted); }
.pdf .answer { font-size: 26pt; max-width: 26ch; margin-top: 10pt; }
.pdf .answer .tag { font-size: 8pt; }
.pdf.neg .answer .tag, .pdf .neg .answer .tag { color: var(--rust); }
.pdf .pos .answer .tag { color: var(--oa-blue-deep); }
.pdf .why { font-size: 11.5pt; max-width: none; color: var(--ink); }
.pdf .readout { background: var(--panel); border-color: var(--hair); margin-top: 12pt; padding: 10pt 12pt; }
.pdf .readout h2 { color: var(--muted); font-size: 9pt; }
.pdf .pair { grid-template-columns: max-content max-content; column-gap: 40pt; }
.pdf .pair .ours::before { left: -28pt; color: var(--muted); }
.pdf .pair dt { color: var(--muted); font-size: 8pt; }
.pdf .pair dd { font-size: 28pt; }
.pdf .pair .nr dd { font-size: 18pt; color: var(--muted); }
.pdf .neg .pair .ours dd { color: var(--rust); }
.pdf .same-tag { background: var(--cited); color: var(--ink); }
.pdf .method { color: var(--ink); font-size: 9.5pt; }
.pdf .method .how { color: var(--muted); border-color: var(--hair); }
.pdf .body .wrap { display: block; padding: 12pt 0 0; }
.pdf .spine { margin: 0 0 16pt; }
.pdf .spine h2 { font-size: 12pt; }
.pdf .index li { min-height: 0; padding: 3pt 0; break-inside: avoid; }
.pdf .index .v { display: inline; font-size: 8pt; }
.pdf .index .t { display: inline; font-size: 9.5pt; }
.pdf .sr { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; font-size: 0.1pt; }
.pdf .sec { margin: 0 0 16pt; }
.pdf .sec > h2 { font-size: 14pt; break-after: avoid; }
.pdf .sec > .lede { font-size: 9.5pt; }
.pdf .claim { padding: 8pt 10pt 4pt; break-inside: auto; }
.pdf .claim .top, .pdf .claim .how, .pdf .claim blockquote { break-after: avoid; }
.pdf .claim blockquote { font-size: 10.5pt; }
.pdf div.ev { margin: 6pt -10pt 0; }
.pdf div.ev h4 { padding: 6pt 10pt 0; font-size: 9.5pt; break-after: avoid; }
.pdf .evb { padding: 0 10pt 8pt; font-size: 9pt; }
.pdf table.ledger { font-size: 9pt; break-inside: avoid; }
.pdf .tablewrap { overflow: visible; background: none; }
.pdf pre.log { font-size: 8pt; break-inside: avoid; white-space: pre-wrap; overflow: visible; background: var(--oa-ground); }
.pdf pre.log code { overflow-wrap: anywhere; }
.pdf .limits li { padding: 6pt 10pt; break-inside: avoid; }
.pdf .facts div { font-size: 9.5pt; grid-template-columns: 8rem minmax(0, 1fr); break-inside: avoid; }
.pdf .panel { font-size: 9.5pt; }
.pdf footer.site-foot { background: #fff; color: var(--muted); border-top: 2pt solid var(--ink); break-inside: avoid; }
.pdf footer.site-foot .wrap { padding: 8pt 0 0; }
.pdf .disclosure { color: var(--ink); font-size: 9.5pt; }
.pdf .labelkey { font-size: 8.5pt; }
.cn-bar .cn-bar-section { color: #a9aab0; display: inline-flex; align-items: center; min-height: 48px; text-decoration: none; font-size: 0.9375rem; line-height: 1.3; border-left: 1px solid #3c3d45; padding-left: 0.75rem; margin-right: auto; }
@media (max-width: 30rem) { .cn-bar .cn-bar-section { display: none; } }
.checks-index .idx-plate .wrap { display: block; padding-top: 2.25rem; padding-bottom: 2.25rem; }
.checks-index .idx-plate .answer { max-width: 18ch; }
.idx-wrap { display: block !important; }
.rows { list-style: none; margin: 0; padding: 0; max-width: 64rem; }
.row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.35rem 3rem; padding: 1.5rem 0 1.5rem 1.25rem; border-bottom: 1px solid var(--hair); }
.row::before { content: ""; position: absolute; left: 0; top: 1.5rem; bottom: 1.5rem; width: 4px; background: var(--oa-blue-deep); }
.row.neg::before { background: var(--rust); }
.row-title { margin: 0; font: 500 1.0625rem/1.4 var(--body); }
.row-title a { display: inline-block; min-height: var(--tap); padding: 0.6rem 0; margin: -0.6rem 0; }
.row-meta { margin: 0; font: 400 0.8125rem/1.4 var(--mono); letter-spacing: 0.03em; text-transform: uppercase; color: var(--muted); }
.row-bottom { margin: 0.35rem 0 0; font: 600 clamp(1.375rem, 2.6vw, 1.875rem)/1.12 var(--display); letter-spacing: -0.01em; max-width: 26ch; text-wrap: balance; }
.row-num { margin-top: 0.5rem; }
.row-what { margin: 0 0 0.35rem; font-size: 0.875rem; line-height: 1.4; color: var(--muted); }
.row .pair { display: flex; gap: 2.25rem; margin: 0; }
.row .pair dt { color: var(--muted); }
.row .pair dd { margin: 0.15rem 0 0; font: 600 1.375rem/1.1 var(--display); color: var(--ink); }
.row.neg .pair .ours dd { color: var(--rust); }
.row .pair .ours::before { color: var(--muted); }
@media (min-width: 60rem) {
  .row { grid-template-columns: minmax(0, 1fr) 20rem; }
  .row-title, .row-meta, .row-bottom { grid-column: 1; }
  .row-num { grid-column: 2; grid-row: 1 / span 3; align-self: end; margin: 0; }
}
.areply { margin: 0.6rem 0 0.5rem; padding: 0.55rem 0.75rem; border-left: 3px solid var(--ink); background: var(--panel); font-size: 0.9375rem; line-height: 1.5; }
.areply p { margin: 0; }
.areply p + p { margin-top: 0.35rem; }
.areply a { display: inline-block; min-height: var(--tap); line-height: var(--tap); margin: calc((var(--tap) - 1.5em) / -2) 0; }
.outputs-page .out-plate .wrap { display: block; padding-top: 1.5rem; padding-bottom: 2rem; }
.outputs-page .back { color: var(--oa-paper); display: inline-block; min-height: var(--tap); line-height: var(--tap); text-transform: none; letter-spacing: 0; font: 500 0.9375rem/var(--tap) var(--body); }
.outputs-page .why a { color: var(--oa-paper); display: inline-block; min-height: var(--tap); line-height: 1.6; padding: calc((var(--tap) - 1.6em) / 2) 0; margin: calc((var(--tap) - 1.6em) / -2) 0; }
.outputs-page .why code { font-size: 0.9em; white-space: nowrap; }
.out-wrap { display: block !important; max-width: 64rem; }
.og + .og { margin-top: 1.75rem; }
.og-h { margin: 0 0 0.4rem; font: 500 0.875rem/1.4 var(--mono); color: var(--muted); }
.ol { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--hair); }
.ol li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 1rem; align-items: center; padding: 0.15rem 0; border-bottom: 1px solid var(--hair); }
.ol .of { font: 500 0.9375rem/1.4 var(--mono); min-height: var(--tap); display: flex; align-items: center; overflow-wrap: anywhere; }
.ol .os { font: 400 0.8125rem/1.4 var(--mono); color: var(--muted); white-space: nowrap; }
.ol .oh { grid-column: 1 / -1; font: 400 0.75rem/1.4 var(--mono); color: var(--muted); overflow-wrap: anywhere; word-break: break-all; padding-bottom: 0.35rem; }
@media (min-width: 60rem) { .ol li { grid-template-columns: minmax(0, 22rem) 6rem minmax(0, 1fr); } .ol .oh { grid-column: 3; padding: 0; } }
.cn-bar .cn-bar-section:hover { color: #e8e9e7; text-decoration: underline; }
.foot-nav { margin: 0 0 0.75rem; }
.foot-nav a { color: var(--oa-paper); display: inline-flex; align-items: center; min-height: 48px; font-weight: 500; }
.kicker .nw { white-space: nowrap; }
