/* Paperline 1.1 · syntax highlighting for fenced code blocks; scoped to article Markdown. */
:root {
 --code-bg:#f6f8fa; --code-border:#dfe5eb; --code-text:#24292f; --code-meta:#64748b;
 --code-comment:#6e7781; --code-keyword:#cf222e; --code-string:#0a3069;
 --code-number:#0550ae; --code-function:#8250df; --code-class:#953800;
 --code-operator:#24292f; --code-property:#116329; --code-tag:#116329;
}
:root[data-theme="dark"] {
 --code-bg:#171f29; --code-border:#364454; --code-text:#dce4ee; --code-meta:#93a4b8;
 --code-comment:#8997aa; --code-keyword:#ff7b72; --code-string:#a5d6ff;
 --code-number:#79c0ff; --code-function:#d2a8ff; --code-class:#ffa657;
 --code-operator:#c9d1d9; --code-property:#7ee787; --code-tag:#7ee787;
}
@media (prefers-color-scheme: dark) {
 :root:not([data-theme]) {
  --code-bg:#171f29; --code-border:#364454; --code-text:#dce4ee; --code-meta:#93a4b8;
  --code-comment:#8997aa; --code-keyword:#ff7b72; --code-string:#a5d6ff;
  --code-number:#79c0ff; --code-function:#d2a8ff; --code-class:#ffa657;
  --code-operator:#c9d1d9; --code-property:#7ee787; --code-tag:#7ee787;
 }
}
.markdown-body pre.paper-code-block {
 position:relative; background:var(--code-bg); border:1px solid var(--code-border);
 color:var(--code-text); padding:39px 20px 18px; border-radius:10px;
 font-size:.85em; line-height:1.7; overflow:auto; scrollbar-width:thin;
}
.markdown-body pre.paper-code-block > code { display:block; padding:0 !important; color:inherit; font-size:1em; background:none !important; white-space:pre; }
.markdown-body pre.paper-code-block::before { content:""; display:block; height:29px; position:absolute; z-index:0; pointer-events:none; left:0; right:0; top:0; border-bottom:1px solid var(--code-border); }
.markdown-body pre.paper-code-block .paper-code-lang { position:absolute; top:7px; left:17px; line-height:1; padding:3px 0; z-index:1; color:var(--code-meta); font:600 10px/1.4 var(--mono); text-transform:none; letter-spacing:.03em; user-select:none; }
.markdown-body pre.paper-code-block .code-copy { top:4px; right:9px; z-index:3; border-radius:5px; border:1px solid transparent; font-size:11px; color:var(--code-meta); background:transparent; padding:3px 8px; opacity:1; line-height:1.4; }
.markdown-body pre.paper-code-block .code-copy:hover { color:var(--code-text); background:var(--paper); border-color:var(--code-border); }
.markdown-body pre.paper-code-block .code-copy:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }
.markdown-body pre.paper-code-block .token { background:none; }
.markdown-body pre.paper-code-block .token.comment,
.markdown-body pre.paper-code-block .token.prolog,
.markdown-body pre.paper-code-block .token.doctype,
.markdown-body pre.paper-code-block .token.cdata { color:var(--code-comment); font-style:italic; }
.markdown-body pre.paper-code-block .token.keyword,
.markdown-body pre.paper-code-block .token.atrule,
.markdown-body pre.paper-code-block .token.important { color:var(--code-keyword); }
.markdown-body pre.paper-code-block .token.string,
.markdown-body pre.paper-code-block .token.char,
.markdown-body pre.paper-code-block .token.attr-value,
.markdown-body pre.paper-code-block .token.regex { color:var(--code-string); }
.markdown-body pre.paper-code-block .token.boolean,
.markdown-body pre.paper-code-block .token.number,
.markdown-body pre.paper-code-block .token.constant,
.markdown-body pre.paper-code-block .token.symbol { color:var(--code-number); }
.markdown-body pre.paper-code-block .token.function,
.markdown-body pre.paper-code-block .token.builtin { color:var(--code-function); }
.markdown-body pre.paper-code-block .token.class-name,
.markdown-body pre.paper-code-block .token.namespace { color:var(--code-class); }
.markdown-body pre.paper-code-block .token.property,
.markdown-body pre.paper-code-block .token.selector,
.markdown-body pre.paper-code-block .token.tag,
.markdown-body pre.paper-code-block .token.attr-name { color:var(--code-property); }
.markdown-body pre.paper-code-block .token.punctuation,
.markdown-body pre.paper-code-block .token.operator,
.markdown-body pre.paper-code-block .token.entity { color:var(--code-operator); }
.markdown-body pre.paper-code-block .token.deleted { color:var(--code-keyword); }
.markdown-body pre.paper-code-block .token.inserted { color:var(--code-property); }
.markdown-body pre.paper-code-block .token.bold { font-weight:700; }
.markdown-body pre.paper-code-block .token.italic { font-style:italic; }
@media (max-width:640px) {
 .markdown-body pre.paper-code-block { padding:38px 14px 14px; font-size:.8em; }
 .markdown-body pre.paper-code-block .paper-code-lang { left:13px; }
}
@media print { .markdown-body pre.paper-code-block { white-space:pre-wrap; background:#f6f8fa; color:#24292f; padding-top:25px; } .markdown-body pre.paper-code-block .code-copy { display:none!important; } }
