
:root {
  --bg-color: #faf2e4;
  --text-color: #222;
  --accent-blue: #57b1dc;
  --accent-blue-dark: #287da7;
  --accent-orange: #d1633c;
  --accent-orange-dark: #9e4528;
  --card-bg: #fff;
  --muted: #6f6a64;
  --line: #ddd2c4;
  --soft-blue: #eef8fc;
  --soft-orange: #fff4ed;
  --link-color: #2a7ae2;
  --code-bg: #f4efe8;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; color-scheme: only light; background: #faf2e4; }
body {
  margin: 0 auto;
  max-width: 980px;
  padding: 40px 5% 64px;
  background: #faf2e4;
  color: #222;
  font-family: "Times New Roman", Times, serif;
  font-size: 17px;
  line-height: 1.68;
}
a { color: var(--link-color); text-decoration-thickness: 1px; text-underline-offset: 3px; overflow-wrap: anywhere; }
a:hover { color: var(--accent-orange-dark); }
a:focus-visible { outline: 3px solid rgba(87,177,220,.45); outline-offset: 3px; border-radius: 2px; }
.site-header { display:flex; justify-content:space-between; align-items:center; border-bottom:2px solid var(--accent-blue); padding-bottom:20px; margin-bottom:34px; flex-wrap:wrap; gap:15px; }
.logo-container { display:flex; align-items:center; text-decoration:none; color:var(--text-color); }
.logo-img { height:45px; width:45px; border-radius:50%; border:2px solid white; object-fit:cover; margin-right:15px; }
.logo-text { font-family:system-ui,sans-serif; font-weight:700; text-transform:uppercase; font-size:.9rem; letter-spacing:1px; }
nav ul { list-style:none; padding:0; margin:0; display:flex; gap:20px; flex-wrap:wrap; }
nav a { text-decoration:none; color:var(--text-color); font-family:system-ui,sans-serif; font-weight:600; text-transform:uppercase; font-size:.85rem; letter-spacing:1px; }
nav a:hover, nav a[aria-current="page"] { color:var(--accent-orange); }
.breadcrumb { margin:0 0 18px; font:600 .78rem/1.4 system-ui,sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.article-header { text-align:center; margin:0 auto 26px; max-width:820px; }
.article-header h1 { margin:0; font-size:clamp(2rem,4.4vw,2.75rem); line-height:1.12; font-weight:500; letter-spacing:-.015em; }
.article-kicker { margin:0 0 10px; color:var(--accent-orange); font:700 .8rem/1.4 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.11em; }
.article-subtitle { margin:14px auto 9px; max-width:740px; font-size:1.12rem; line-height:1.5; }
.article-meta { color:var(--muted); font:.84rem/1.5 system-ui,sans-serif; }
.action-row { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin:20px 0 8px; }
.button { display:inline-flex; align-items:center; padding:9px 14px; border-radius:4px; font:700 .77rem/1 system-ui,sans-serif; letter-spacing:.04em; text-transform:uppercase; text-decoration:none; border:1px solid var(--accent-blue-dark); color:var(--accent-blue-dark); background:white; }
.button.primary { background:var(--accent-blue-dark); color:white; }
.button.orange { border-color:var(--accent-orange); color:var(--accent-orange-dark); }
.button:hover { transform:translateY(-1px); box-shadow:0 3px 9px rgba(0,0,0,.08); }
.story-card { background:var(--card-bg); border-left:4px solid var(--accent-blue); padding:20px 23px; margin:28px 0 22px; box-shadow:0 3px 12px rgba(0,0,0,.06); }
.story-card p:first-of-type { margin-top:0; }
.story-card p:last-child { margin-bottom:0; }
.section-label, .workflow h2, .contents h2, .comparison-table-section h2 { margin:0 0 8px; color:var(--accent-orange); font:700 .94rem/1.3 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.07em; }
.repo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:20px 0; }
.repo-card { background:var(--card-bg); border:1px solid var(--line); border-top:4px solid var(--accent-blue); padding:18px 19px; border-radius:4px; }
.repo-card.axiom { border-top-color:var(--accent-orange); }
.repo-card h2 { margin:0 0 7px; font:700 1rem/1.25 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.05em; color:var(--accent-blue-dark); }
.repo-card.axiom h2 { color:var(--accent-orange-dark); }
.repo-card p { margin:.45rem 0; }
.repo-card .metric { font:700 1.48rem/1.18 system-ui,sans-serif; }
.repo-card .small { color:var(--muted); font-size:.86rem; }
.repo-card .repo-name { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.82rem; }
.comparison-table-section { background:#fff; border:1px solid var(--line); padding:17px 18px 11px; margin:20px 0; overflow-x:auto; }
.table-note { color:var(--muted); font-size:.9rem; margin:.2rem 0 .7rem; }
.run-table { min-width:690px; }
.caveat { background:var(--soft-orange); border:1px solid #eac9b8; padding:12px 14px; font-size:.91rem; margin:15px 0 22px; }
.workflow { background:var(--soft-blue); border:1px solid #c6e2ee; padding:16px 18px; margin:18px 0 24px; }
.workflow ul { margin:8px 0 0 1.15rem; padding:0; }
.workflow li { margin:3px 0; }
.contents { background:var(--card-bg); border:1px solid var(--line); padding:17px 18px; margin:22px 0 34px; }
.contents ol { columns:2; column-gap:35px; margin:8px 0 0; padding-left:1.35rem; }
.contents li { break-inside:avoid; margin:5px 0; }
.contents a { font-weight:600; }
.proof-notes { background:var(--card-bg); padding:2px 30px 32px; box-shadow:0 3px 14px rgba(0,0,0,.055); }
.problem-title, .assessment-title { color:var(--accent-orange); font:500 1.58rem/1.27 "Times New Roman",serif; border-bottom:1px dotted var(--accent-orange); padding:34px 0 8px; margin:0 0 14px; scroll-margin-top:18px; }
.problem-title::before { content:attr(data-problem); display:inline-grid; place-items:center; width:29px; height:29px; margin-right:9px; border-radius:50%; background:var(--accent-orange); color:white; font:700 .88rem/1 system-ui,sans-serif; vertical-align:.12em; }
.proof-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; margin:23px 0 7px; color:var(--accent-blue-dark); font-size:1.11rem; }
.gpt-title { color:var(--accent-blue-dark); }
.axiom-title { color:var(--accent-orange-dark); }
.source-link { margin-left:auto; padding:4px 7px; border-radius:3px; font:700 .68rem/1.2 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.04em; text-decoration:none; white-space:nowrap; }
.gpt-source { color:var(--accent-blue-dark); background:var(--soft-blue); border:1px solid #bfddea; }
.axiom-source { color:var(--accent-orange-dark); background:var(--soft-orange); border:1px solid #e6c4b2; }
p { margin:.58rem 0; }
.statement { border:1px solid var(--accent-blue-dark); border-radius:4px; padding:15px 17px 13px; margin:12px 0 20px; position:relative; background:#fff; }
.statement::before { content:"Problem"; display:block; margin:-15px -17px 12px; padding:5px 11px; background:var(--accent-blue-dark); color:white; font:700 .79rem/1.4 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.06em; border-radius:3px 3px 0 0; }
.comparison { border-left:3px solid var(--accent-orange); background:var(--soft-orange); padding:10px 14px; margin:.65rem 0 1.5rem; }
.lemma, .proposition { margin:1rem 0; padding:.3rem 0 .2rem; }
.proof { margin:.45rem 0 .95rem; }
figure { margin:18px auto 22px; text-align:center; }
figure svg { width:min(100%,630px); height:auto; display:block; margin:0 auto; background:#fffdf9; border-radius:4px; }
figure figcaption { color:var(--muted); font-size:.88rem; margin-top:8px; }
table { width:100%; border-collapse:collapse; margin:12px 0; font-size:.9rem; }
th, td { padding:7px 9px; border-bottom:1px solid var(--line); vertical-align:top; }
th { text-align:left; color:var(--accent-blue-dark); border-top:1px solid var(--line); font-family:system-ui,sans-serif; }
code { background:var(--code-bg); padding:.08em .3em; border-radius:3px; font-size:.88em; }
.site-footer { margin-top:48px; padding-top:20px; border-top:1px solid var(--line); color:#777; font:.8rem/1.5 system-ui,sans-serif; }
.footer-row { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }
.footer-links { display:flex; gap:16px; }
@media (max-width:720px) {
  body { padding:24px 4% 42px; font-size:16px; }
  .site-header { justify-content:center; text-align:center; }
  .logo-container { width:100%; justify-content:center; }
  nav ul { justify-content:center; gap:12px; }
  nav a { font-size:.75rem; }
  .article-header h1 { font-size:2rem; }
  .repo-grid { grid-template-columns:1fr; }
  .contents ol { columns:1; }
  .proof-notes { padding:1px 16px 24px; }
  .problem-title, .assessment-title { font-size:1.36rem; }
  .source-link { width:100%; margin-left:0; text-align:center; }
}
@media print {
  body { max-width:none; padding:0; background:white; color:black; }
  .site-header,.action-row,.contents,.site-footer,.source-link { display:none; }
  .story-card,.repo-card,.workflow,.proof-notes { box-shadow:none; }
  .proof-notes { padding:0; }
}


/* Mathematics is converted from LaTeX by Pandoc and pre-rendered to SVG by MathJax. */
mjx-container.MathJax {
  color: currentColor;
  font-size: 1.06em;
  line-height: 0;
}
mjx-container.math-inline {
  display: inline-block;
  vertical-align: -0.12em;
  margin: 0 0.04em;
  max-width: 100%;
}
mjx-container.math-display {
  display: block;
  width: 100%;
  text-align: center;
  overflow-x: auto;
  overflow-y: hidden;
  margin: 0.8rem 0;
  padding: 0.2rem 0;
}
mjx-container.math-inline > svg {
  display: inline-block;
  max-width: none;
  overflow: visible;
}
mjx-container.math-display > svg {
  display: inline-block;
  max-width: 100%;
  height: auto;
  overflow: visible;
}
.statement mjx-container.math-display { margin: 1rem 0; }
.problem-section { scroll-margin-top: 18px; }
.shared-title { color: var(--accent-blue-dark); }
.comparison-title { color: var(--accent-blue-dark); }
@media (max-width: 720px) {
  mjx-container.MathJax { font-size: 1em; }
  mjx-container.math-display { text-align: left; }
}
