@charset "UTF-8";
:root { color-scheme:light; --ink:#222; --muted:#666; --line:#ddd; --link:#174ca0; }
* { box-sizing:border-box; }
body { margin:0; background:#fff; color:var(--ink); font:15px/1.6 Arial,Helvetica,sans-serif; }
.wrap { max-width:860px; margin:0 auto; padding:24px 22px; }
a { color:var(--link); text-underline-offset:2px; }
a:hover { color:#111; }
a:focus-visible,button:focus-visible,summary:focus-visible,pre:focus-visible { outline:2px solid var(--link); outline-offset:3px; }
.skip { position:absolute; top:-80px; background:white; padding:8px; }
.skip:focus { top:0; }
.site-header { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding-bottom:12px; border-bottom:1px solid var(--line); font:13px/1.6 ui-monospace,Consolas,monospace; }
.site-header nav { display:flex; gap:16px; }
.brand { color:var(--ink); }
h1 { font:600 25px/1.3 ui-monospace,Consolas,monospace; letter-spacing:-.6px; margin:0 0 12px; }
h2 { font:600 16px/1.4 ui-monospace,Consolas,monospace; margin:0 0 12px; }
h3 { font:600 15px/1.5 Arial,Helvetica,sans-serif; margin:0 0 3px; }
p { margin:0 0 12px; }
.intro { margin:25px 0 27px; max-width:710px; }
.count,.meta,.artifact-year { font:12px/1.6 ui-monospace,Consolas,monospace; color:var(--muted); font-weight:normal; }
.artifact-card { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:12px; padding:13px 0; border-top:1px solid var(--line); }
.artifact-card p { font-size:14px; margin:0 0 4px; }
.artifact-card .meta { font-size:11px; margin:0; }
.artifact-year { padding-top:3px; }
.artifact-download { font:12px/1.8 ui-monospace,Consolas,monospace; white-space:nowrap; }
.badge { color:#326346; font-size:inherit; white-space:nowrap; }
.footer { border-top:1px solid var(--line); padding-top:13px; margin-top:30px; color:var(--muted); font:11px/1.6 ui-monospace,Consolas,monospace; }
.artifact-header { margin:25px 0; }
.artifact-actions { font-size:13px; margin-top:12px; }
.article-body section { margin:26px 0; }
.article-body p { max-width:760px; }
.formula { font:16px/1.7 ui-monospace,Consolas,monospace; padding-left:15px; border-left:2px solid #ccc; overflow-wrap:anywhere; white-space:pre-line; }
.proof-steps { padding-left:24px; }
.proof-steps li { margin:10px 0; }
details { margin:12px 0; }
summary { cursor:pointer; color:var(--link); font-size:13px; }
details[open] summary { margin-bottom:10px; }
.mapping { width:100%; border-collapse:collapse; font-size:13px; }
.mapping th,.mapping td { text-align:left; vertical-align:top; border-bottom:1px solid var(--line); padding:8px 12px 8px 0; }
code { font:12px/1.6 ui-monospace,Consolas,monospace; overflow-wrap:anywhere; }
pre { padding:15px; margin:12px 0; background:#f6f6f6; border:1px solid #e6e6e6; overflow-x:auto; tab-size:2; }
pre code { overflow-wrap:normal; }
.hash { word-break:break-all; color:var(--muted); }
.paper-map { margin-top:28px; }
.map-shell:not([hidden]) { display:block; border:1px solid var(--line); }
.map-stage { position:relative; min-width:0; }
.map-legend { position:absolute; top:10px; left:12px; right:12px; display:flex; flex-wrap:wrap; gap:5px 15px; font:10px/1.5 ui-monospace,Consolas,monospace; pointer-events:none; }
#map-canvas { display:block; width:100%; height:270px; touch-action:pan-y; cursor:grab; }
#map-canvas:focus-visible { outline:2px solid var(--link); outline-offset:-2px; }
.map-controls { position:absolute; right:10px; bottom:10px; display:flex; gap:4px; }
button { color:var(--ink); background:#f5f5f5; border:1px solid #bbb; border-radius:2px; cursor:pointer; font:12px/1.5 ui-monospace,Consolas,monospace; }
button:hover { background:#eaeaea; }
.map-controls button { min-width:28px; height:27px; }
.map-hint { position:absolute; bottom:15px; left:12px; font:10px/1.4 ui-monospace,Consolas,monospace; color:var(--muted); pointer-events:none; }
.map-detail { border-top:1px solid var(--line); padding:8px 12px; display:flex; flex-wrap:wrap; align-items:baseline; gap:3px 15px; font-size:12px; }
.map-detail h3 { font-size:12px; font-weight:normal; margin:0; }
.map-detail p { margin:0; color:var(--muted); font-size:11px; }
.map-detail .artifact-link { margin-left:auto; font-size:12px; }
.map-paper-list { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
.map-paper-button { padding:3px 7px; font-size:10px; background:white; }
.map-paper-button[aria-pressed=true] { border-color:var(--link); color:var(--link); }
.map-note { color:var(--muted); font-size:11px; margin:8px 0 0; }
.not-found { margin:40px 0; }
@media (max-width:560px) {
  .wrap { padding:16px; }
  .site-header { font-size:11px; gap:10px; }
  .site-header nav { gap:10px; }
  h1 { font-size:22px; }
  .artifact-card { grid-template-columns:35px minmax(0,1fr); gap:6px 9px; }
  .artifact-download { grid-column:2; font-size:11px; }
  .map-detail .artifact-link { margin-left:0; }
  .map-hint { font-size:9px; bottom:47px; }
  .map-detail { gap:3px 10px; }
  .mapping { font-size:12px; }
}
@media print {
  .site-header nav,.footer,.paper-map { display:none; }
  .wrap { max-width:none; padding:0; }
  pre { white-space:pre-wrap; overflow-wrap:anywhere; }
}
@media (max-width:560px) {
  .site-header { flex-wrap:wrap; gap:2px 16px; }
  .site-header a { display:inline-flex; align-items:center; min-height:44px; }
  .site-header nav { flex-wrap:wrap; gap:8px 20px; }
  .artifact-download a, .artifact-actions a, .source-download { display:inline-flex; align-items:center; min-height:44px; }
  summary { min-height:44px; padding:10px 0; }
  .mapping { display:block; overflow-x:auto; }
  .map-controls button { min-width:44px; height:44px; }
  .map-paper-button { min-height:40px; padding:7px 10px; font-size:11px; }
  .map-hint { bottom:64px; }
  .map-detail .artifact-link { display:inline-flex; align-items:center; min-height:44px; }
}
