/* MAGI's three-computer geometry, expressed in the existing academic palette. */
:root { --magi-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace; }
.magi-intro { padding: 2.8rem 0 0; border-bottom: 0; background: var(--paper); }
.magi-console { position: relative; padding: 1.15rem 2.15rem 1.25rem; border: 1px solid var(--line-strong); background: var(--paper); }
.magi-console::before { position: absolute; top: -1px; left: -1px; width: 32px; height: 4px; background: var(--pku); content: ""; }
.magi-console::after { position: absolute; top: -1px; right: -1px; width: 29px; height: 29px; background: linear-gradient(45deg, transparent 48%, var(--line-strong) 49%, var(--line-strong) 51%, var(--paper) 52%); content: ""; pointer-events: none; }
.magi-console-topline { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-bottom: 0.85rem; border-bottom: 1px solid var(--line); color: var(--muted); font: 0.64rem/1.5 var(--magi-mono); letter-spacing: 0.08em; }
.magi-console-topline b { margin-right: 0.6rem; color: var(--pku); font-size: 0.88rem; }
.magi-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 4vw, 3.4rem); padding: 2.1rem 0 1.8rem; }
.magi-copy, .magi-figure { min-width: 0; }
.magi-copy .magi-kicker { margin-bottom: 1rem; color: var(--green); font-size: 0.62rem; }
.page-intro .magi-wordmark { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.85rem; margin: 0 0 1.25rem; color: var(--pku); font-family: var(--serif); font-size: clamp(4.2rem, 7.5vw, 6.2rem); font-weight: 700; line-height: 0.95; letter-spacing: -0.05em; }
.magi-wordmark .magi-blog-label { color: var(--ink); font-size: 0.3em; font-weight: 400; letter-spacing: -0.02em; }
html[lang="zh-CN"] .page-intro .magi-wordmark { letter-spacing: -0.05em; }
.magi-expansion { margin: 0 0 1.1rem; padding: 0.1rem 0 0.1rem 0.9rem; border-left: 3px solid var(--pku); color: var(--ink); font-size: clamp(0.88rem, 1.4vw, 0.98rem); line-height: 1.7; }
.magi-expansion strong { color: var(--pku); font-weight: 700; }
.magi-description { margin: 0; color: var(--ink-soft); font-size: 0.86rem; line-height: 1.8; }
.magi-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.4rem; margin-top: 1.6rem; }
.magi-actions .text-link { min-height: 44px; font-size: 0.78rem; }
.magi-actions .magi-button { padding: 0.55rem 0.85rem; border: 1px solid var(--pku); }
.magi-actions .magi-button::after { content: "↓"; padding-left: 0.3rem; }
.magi-actions .magi-button:hover { color: var(--paper); background: var(--pku); text-decoration: none; }
.magi-console-rule { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 5px; height: 4px; }
.magi-console-rule span { background: var(--line); }
.magi-console-rule span:first-child { background: var(--pku); }
.magi-console-rule span:nth-child(2) { background: var(--green); }

/* Three chamfered units around the central MAGI core. No neon palette. */
.magi-figure { width: 100%; max-width: 460px; margin: 0; }
.magi-frame { padding: 0.55rem 0.65rem 0.2rem; border: 1px solid var(--line); background-color: var(--paper); background-image: linear-gradient(#dedcd538 1px, transparent 1px), linear-gradient(90deg, #dedcd538 1px, transparent 1px); background-size: 24px 24px; }
.magi-frame-label { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.3rem; color: var(--muted); font: 0.54rem/1.5 var(--magi-mono); letter-spacing: 0.04em; }
.magi-diagram { display: block; width: 100%; height: auto; overflow: visible; }
.magi-diagram text { text-anchor: middle; }
.magi-diagram-guides { stroke: var(--line); stroke-width: 1; }
.magi-diagram-links { stroke: var(--pku); stroke-width: 3; }
.magi-node-outline { fill: var(--cloud); stroke: var(--pku); stroke-width: 1.5; }
.magi-node-balthasar .magi-node-outline { fill: var(--paper); stroke: var(--green); }
.magi-node-rule { fill: none; stroke: var(--pku); stroke-width: 3; }
.magi-node-balthasar .magi-node-rule { stroke: var(--green); }
.magi-node-name { fill: var(--muted); font-family: var(--magi-mono); font-size: 10px; letter-spacing: 1.1px; }
.magi-node-category { fill: var(--pku); font-family: var(--serif); font-size: 17.5px; font-weight: 700; letter-spacing: -0.25px; }
.magi-node-balthasar .magi-node-category { fill: var(--green); }
.magi-diagram-core path { fill: var(--pku); }
.magi-core-title { fill: var(--paper); font-family: var(--serif); font-size: 23px; font-weight: 700; letter-spacing: -0.5px; }
.magi-core-label { fill: var(--paper); font-family: var(--magi-mono); font-size: 8px; letter-spacing: 2px; }
.magi-reference { display: grid; grid-template-columns: 84px minmax(0, 1fr); align-items: center; gap: 0.85rem; margin-top: 0.85rem; }
.magi-reference-image { display: block; padding: 3px; border: 1px solid var(--line); }
.magi-reference-image img { display: block; width: 100%; height: auto; }
.magi-origin { display: block; color: var(--ink-soft); font-size: 0.65rem; line-height: 1.65; text-decoration: none; }
.magi-origin:hover { color: var(--pku); text-decoration: underline; }
.magi-image-source { display: inline-block; margin-top: 0.2rem; color: var(--muted); font-size: 0.6rem; text-underline-offset: 0.25em; }

/* Research files retain the same paper, type and reading contrast as the site. */
.magi-archive { padding: 2.6rem 0 3rem; scroll-margin-top: 100px; background: var(--paper); }
.magi-archive-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.magi-section-label { display: block; margin-bottom: 0.45rem; color: var(--pku); font: 0.6rem/1.5 var(--magi-mono); letter-spacing: 0.07em; }
.magi-section-label::before { display: inline-block; width: 16px; height: 3px; margin-right: 0.5rem; background: var(--pku); content: ""; vertical-align: middle; }
.magi-archive-heading h2 { margin: 0; color: var(--ink); font-size: clamp(1.65rem, 2.7vw, 2.15rem); font-weight: 400; }
.magi-archive-total { padding: 0.4rem 0 0.4rem 1.25rem; border-left: 1px solid var(--line); color: var(--green); font: 400 1.65rem/1 var(--magi-mono); }
.magi-archive .blog-tools { margin-bottom: 1.5rem; }
.magi-archive .blog-tools input { border-radius: 0; border-left: 3px solid var(--green); background: var(--paper); }
.magi-archive .blog-result-count { font-family: var(--magi-mono); font-size: 0.7rem; }
.magi-archive .blog-card, .home-blog .blog-card { --magi-card-line: var(--line-strong); padding: 1.65rem 1.75rem; border: 1px solid var(--magi-card-line); border-radius: 0; background: var(--paper); }
.magi-archive .blog-card::before, .home-blog .blog-card::before { position: absolute; top: -1px; left: -1px; width: 20px; height: 20px; border-top: 2px solid var(--pku); border-left: 2px solid var(--pku); content: ""; pointer-events: none; }
.magi-archive .blog-card::after, .home-blog .blog-card::after { position: absolute; top: -1px; right: -1px; width: 20px; height: 20px; background: linear-gradient(45deg, transparent 47%, var(--magi-card-line) 49%, var(--magi-card-line) 51%, var(--paper) 53%); content: ""; pointer-events: none; }
.magi-archive .blog-card:only-child { grid-column: 1 / -1; }
.magi-archive .blog-card:only-child h3 { max-width: 42ch; font-size: clamp(1.4rem, 2.7vw, 1.75rem); }
.magi-archive .blog-card:only-child .blog-card-summary { max-width: 90ch; }
.magi-card-index { position: absolute; top: 1.7rem; right: 1.75rem; padding-bottom: 0.25rem; border-bottom: 2px solid var(--pku); color: var(--pku); font: 0.59rem/1.5 var(--magi-mono); }
.magi-archive .blog-card-meta { min-height: 1.5em; padding-right: 6rem; }
.magi-archive .blog-card h3 { font-weight: 400; }
.magi-archive .blog-card-bottom { padding-top: 0.9rem; border-top: 1px solid var(--line); }
.magi-archive .blog-tags span, .home-blog .blog-tags span { border-radius: 0; }
.magi-archive .blog-card-arrow { display: grid; place-items: center; flex-shrink: 0; width: 32px; height: 32px; border: 1px solid var(--line); }
.magi-archive .blog-card:hover, .magi-archive .blog-card:focus-within, .home-blog .blog-card:hover, .home-blog .blog-card:focus-within { --magi-card-line: var(--pku); background: var(--cloud); border-color: var(--pku); }

/* Small echoes of the control-panel geometry on article and homepage headings. */
.blog-post-header { background: var(--paper); }
.magi-post-topline { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.5rem 1.5rem; margin-bottom: 1.6rem; padding: 0.65rem 0.85rem; border: 1px solid var(--line); border-left: 3px solid var(--pku); background: var(--cloud); }
.magi-back { font-family: var(--serif); font-size: 1rem; font-weight: 600; }
.magi-post-topline .blog-back { margin-bottom: 0; color: var(--pku); }
.magi-file-label { color: var(--green); font: 0.6rem/1.6 var(--magi-mono); letter-spacing: 0.04em; }
.blog-post-header .blog-tags span { border-radius: 0; }
.page-blog .blog-sidebar { border-left-color: var(--pku); }
.magi-home-heading { position: relative; align-items: end; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.magi-home-heading::after { position: absolute; bottom: -1px; left: 0; width: 72px; height: 3px; background: var(--pku); content: ""; }
.home-blog .magi-home-wordmark { color: var(--pku); font-family: var(--serif); font-size: 2.65rem; font-weight: 700; line-height: 1.1; letter-spacing: -0.04em; }
.magi-home-wordmark .magi-blog-label { margin-left: 0.25rem; color: var(--ink); font-size: 0.65em; font-weight: 400; letter-spacing: -0.02em; }
.magi-home-description { margin: 0.65rem 0 0; color: var(--ink-soft); font-size: 0.86rem; }

/* The MAGI units are also the three research-category controls. */
.magi-category-node { cursor: pointer; text-decoration: none; }
.magi-category-node:hover .magi-node-outline { fill: var(--cloud); stroke: var(--pku); stroke-width: 2.5; }
.magi-category-node:focus-visible { outline: none; }
.magi-category-node:focus-visible .magi-node-outline { stroke: var(--pku); stroke-width: 3; stroke-dasharray: 5 3; }
.magi-category-node[aria-current="true"] .magi-node-outline { fill: var(--pku); stroke: var(--pku); }
.magi-category-node[aria-current="true"] .magi-node-category, .magi-category-node[aria-current="true"] .magi-node-name { fill: var(--paper); }
.magi-category-node[aria-current="true"] .magi-node-rule { stroke: var(--paper); }
.magi-category-hint { margin: 0 0 0.4rem; color: var(--muted); font-size: 0.64rem; text-align: center; }
.magi-category-filters { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-bottom: 1.15rem; }
.magi-category-filters button { display: inline-flex; align-items: center; justify-content: space-between; gap: 0.65rem; min-height: 42px; padding: 0.5rem 0.75rem; border: 1px solid var(--line-strong); border-radius: 0; color: var(--ink-soft); background: var(--paper); font-size: 0.73rem; line-height: 1.5; text-align: left; }
.magi-category-filters button:hover { border-color: var(--pku); color: var(--pku); }
.magi-category-filters button[aria-pressed="true"] { border-color: var(--pku); color: var(--paper); background: var(--pku); }
.magi-category-count { font-family: var(--magi-mono); font-size: 0.64rem; }
.blog-card-category { color: var(--green); }
.blog-post-category { display: inline-block; margin-top: 0.9rem; padding-left: 0.65rem; border-left: 2px solid var(--green); color: var(--green); font-size: 0.76rem; text-decoration: none; }
.blog-post-category:hover { color: var(--pku); text-decoration: underline; }

@media (max-width: 820px) {
  .magi-hero { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .magi-figure { max-width: 480px; }
  .page-intro .magi-wordmark { font-size: clamp(4.2rem, 12vw, 6rem); }
}
@media (max-width: 600px) {
  .magi-intro { padding-top: 1.6rem; }
  .magi-console { padding: 1rem 1.2rem; }
  .magi-hero { padding: 1.8rem 0 1.5rem; }
  .magi-copy .magi-kicker { font-size: 0.58rem; }
  .page-intro .magi-wordmark { gap: 0.25rem 0.65rem; font-size: clamp(3.45rem, 11vw, 4.8rem); }
  .magi-expansion { font-size: 0.85rem; }
  .magi-reference { grid-template-columns: 72px minmax(0, 1fr); gap: 0.65rem; }
  .magi-frame { padding: 0.5rem 0.35rem 0; }
  .magi-frame-label { font-size: 0.48rem; }
  .magi-archive { padding-top: 2rem; }
  .magi-archive .blog-card, .home-blog .blog-card { padding: 1.25rem; }
  .magi-card-index { top: 1.3rem; right: 1.25rem; font-size: 0.53rem; }
  .magi-archive .blog-card-meta { padding-right: 5rem; }
}
@media print {
  .magi-category-filters, .magi-category-hint, .magi-actions, .magi-console-topline, .magi-frame-label, .magi-file-label, .magi-section-label, .magi-archive-total, .magi-card-index, .magi-console-rule { display: none; }
  .magi-console { padding: 1rem; }
  .magi-hero { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .page-intro .magi-wordmark { font-size: 3.5rem; }
  .magi-archive .blog-card-meta { padding-right: 0; }
  .magi-frame { background: transparent; }
}

/* Shared article layout: quiet paper surfaces with MAGI's framed geometry. */
.magi-article-header { padding: 2.8rem 0 0; border-bottom: 0; }
.magi-article-cover { position: relative; padding: 1.15rem 2.15rem 1.25rem; border: 1px solid var(--line-strong); background: var(--paper); }
.magi-article-cover::before { position: absolute; top: -1px; left: -1px; width: 44px; height: 4px; background: var(--pku); content: ""; }
.magi-article-cover::after { position: absolute; top: -1px; right: -1px; width: 32px; height: 32px; background: linear-gradient(45deg, transparent 48%, var(--line-strong) 49%, var(--line-strong) 51%, var(--paper) 52%); content: ""; pointer-events: none; }
.magi-article-cover .magi-post-topline { align-items: center; margin: 0 0 1.6rem; padding: 0 1rem 0.9rem 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; }
.magi-article-cover .magi-back { display: inline-flex; align-items: center; gap: 0.7rem; min-height: 44px; }
.magi-article-emblem { flex: 0 0 auto; width: 55px; height: 38px; }
.magi-emblem-link { fill: none; stroke: var(--line-strong); stroke-width: 2; }
.magi-emblem-unit { fill: var(--cloud); stroke: var(--pku); stroke-width: 1.5; }
.magi-emblem-upper { stroke: var(--green); }
.magi-emblem-core { fill: var(--pku); }
.magi-article-cover .blog-post-category { margin: 0; padding: 0.1rem 0 0.1rem 0.65rem; font-size: 0.78rem; }
.magi-article-header h1 { max-width: 920px; margin: 0.8rem 0 1.25rem; font-size: clamp(2rem, 3.5vw, 2.85rem); line-height: 1.3; text-wrap: balance; overflow-wrap: break-word; }
.magi-article-header .blog-post-description { max-width: 78ch; margin: 0 0 1.65rem; font-size: 0.95rem; line-height: 1.85; }
.magi-article-byline { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.9rem 1.5rem; margin-bottom: 1.5rem; padding-top: 1.15rem; border-top: 1px solid var(--line); }
.magi-article-byline .blog-post-meta { gap: 0.7rem; font-size: 0.74rem; }
.magi-article-byline time { color: var(--green); font-family: var(--magi-mono); }
.magi-article-byline .blog-tags { flex: 0 1 auto; }
.magi-article-byline .blog-tags span { padding: 0.1rem 0.5rem; background: var(--cloud); }

.magi-article-section { padding-top: 2.6rem; }
.magi-article-section .blog-reading-grid { grid-template-columns: minmax(0, 1fr) 220px; gap: 2.5rem; }
.magi-article-section .blog-prose { color: var(--ink-soft); font-size: 1.02rem; line-height: 1.95; }
.magi-article-section .blog-prose p { margin-bottom: 1.25rem; }
.magi-article-section .blog-prose :is(h2, h3, h4, [id^="ref_"]) { scroll-margin-top: 115px; }
.magi-article-section .blog-prose h2 { position: relative; margin: 3.1rem 0 1.4rem; padding: 0.85rem 1.25rem 0.85rem 1rem; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); border-left: 3px solid var(--pku); color: var(--ink); background: linear-gradient(90deg, var(--cloud), var(--paper)); font-size: clamp(1.35rem, 2.1vw, 1.7rem); line-height: 1.6; }
.magi-article-section .blog-prose h2::after { position: absolute; top: -1px; right: 0; width: 17px; height: 17px; background: linear-gradient(45deg, transparent 47%, var(--line-strong) 49%, var(--line-strong) 51%, var(--paper) 53%); content: ""; pointer-events: none; }
.magi-article-section .blog-prose > h2:first-child,
.magi-article-section .blog-prose [data-blog-language] > h2:first-child { margin-top: 0; }
.magi-article-section .blog-prose h3 { margin: 2.1rem 0 0.9rem; padding-left: 0.8rem; border-left: 2px solid var(--green); color: var(--ink); font-size: 1.25rem; line-height: 1.6; }
.magi-article-section .blog-prose h4 { font-size: 1.05rem; line-height: 1.65; }
.magi-article-section .blog-prose a { text-underline-offset: 0.22em; }
.magi-article-section .blog-prose a:hover { text-decoration-thickness: 2px; }
.magi-article-section .blog-prose blockquote { padding: 1rem 1.25rem; border: 1px solid var(--line); border-left: 3px solid var(--green); background: var(--cloud); }
.magi-article-section .blog-prose blockquote > :last-child { margin-bottom: 0; }

/* Display equations scroll inside their own panel; inline math stays in prose. */
.magi-article-section .blog-prose :is(.MathJax_Display, .MJXc-display, mjx-container[display="true"]) { box-sizing: border-box; width: 100%; max-width: 100%; margin: 1.5rem 0; padding: 1.1rem 1.15rem; overflow-x: auto; overflow-y: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); border-left: 2px solid var(--green); background: var(--cloud); color: var(--ink); }
.magi-article-section .blog-prose .blog-key-insight { position: relative; margin: 2rem 0; padding: 1.35rem 1.5rem; border: 1px solid var(--line-strong); border-left: 4px solid var(--pku); border-radius: 0; background: var(--cloud); }
.magi-article-section .blog-prose .blog-key-insight::after { position: absolute; top: -1px; right: -1px; width: 23px; height: 23px; background: linear-gradient(45deg, transparent 48%, var(--line-strong) 49%, var(--line-strong) 51%, var(--paper) 52%); content: ""; pointer-events: none; }
.magi-article-section .blog-prose .blog-key-insight h4 { padding-right: 0.5rem; font-size: 1.15rem; color: var(--pku); }
.magi-article-section .blog-prose .blog-key-insight > :last-child { margin-bottom: 0; border-top-color: var(--line-strong); }
.magi-article-section .blog-prose .blog-key-insight :is(.MathJax_Display, .MJXc-display, mjx-container[display="true"]) { border: 0; background: transparent; font-size: 0.94em; }
.magi-article-section .blog-prose pre { margin: 1.6rem 0; padding: 1.2rem; border: 1px solid var(--line); border-top: 3px solid var(--green); border-radius: 0; }
.magi-article-section .blog-prose table { border-top: 2px solid var(--green); border-bottom: 1px solid var(--line-strong); }
.magi-article-section .blog-prose th { font-weight: 600; }
.magi-article-section .blog-prose hr { height: 3px; border: 0; background: linear-gradient(90deg, var(--pku) 0 8%, transparent 8% 9%, var(--green) 9% 17%, transparent 17% 18%, var(--line) 18% 100%); }

.magi-article-section .blog-prose .blog-figure { position: relative; margin: 2.25rem 0; padding: 0.65rem; border: 1px solid var(--line-strong); background: var(--paper); }
.magi-article-section .blog-prose .blog-figure::before { position: absolute; top: -1px; left: -1px; width: 24px; height: 24px; border-top: 2px solid var(--green); border-left: 2px solid var(--green); content: ""; pointer-events: none; }
.magi-article-section .blog-prose .blog-figure::after { position: absolute; right: -1px; bottom: -1px; width: 24px; height: 24px; border-right: 2px solid var(--pku); border-bottom: 2px solid var(--pku); content: ""; pointer-events: none; }
.magi-article-section .blog-prose .blog-figure img { border-color: var(--line); border-radius: 0; }
.magi-article-section .blog-prose .blog-figure figcaption { margin: 0.65rem 0 0; padding: 0.8rem 0.85rem; border-top: 1px solid var(--line); background: var(--cloud); font-size: 0.82rem; line-height: 1.8; }
.magi-article-section .blog-prose .blog-details { margin: 1.8rem 0; padding: 1rem 1.2rem; border: 1px solid var(--line-strong); border-left: 3px solid var(--green); border-radius: 0; background: var(--paper); }
.magi-article-section .blog-prose .blog-details summary { color: var(--green); font-size: 0.92rem; }
.magi-article-section .blog-prose .blog-details summary::marker { color: var(--pku); }
.magi-article-section .blog-prose .blog-details summary:hover { color: var(--pku); }
.magi-article-section .blog-prose .blog-details[open] > summary { margin-bottom: 1.15rem; padding-bottom: 0.9rem; border-bottom: 1px solid var(--line); }
.magi-article-section .blog-prose .blog-details > :last-child { margin-bottom: 0; }
.magi-article-section .blog-prose .blog-details :is(.MathJax_Display, .MJXc-display, mjx-container[display="true"]) { font-size: 0.94em; }

.magi-article-section .magi-article-toc { min-width: 0; padding: 0; border: 1px solid var(--line-strong); border-top: 3px solid var(--green); background: var(--paper); scrollbar-width: thin; scrollbar-color: var(--line-strong) var(--paper); }
.magi-toc-heading { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.8rem 0.9rem; border-bottom: 1px solid var(--line); background: var(--cloud); color: var(--ink); font-size: 0.8rem; }
.magi-toc-heading > :last-child { color: var(--green); font: 0.6rem/1.5 var(--magi-mono); letter-spacing: 0.1em; }
.magi-article-toc nav { gap: 0; padding: 0.6rem; }
.magi-article-toc nav a { display: block; padding: 0.5rem 0.6rem; border-left: 2px solid transparent; color: var(--ink-soft); font-size: 0.76rem; line-height: 1.7; overflow-wrap: anywhere; }
.magi-article-toc nav a:hover, .magi-article-toc nav a:focus-visible { border-left-color: var(--pku); color: var(--pku); background: var(--cloud); }
.magi-article-toc nav .blog-toc-subsection { padding-left: 1.15rem; color: var(--muted); font-size: 0.7rem; }
.magi-article-footer { position: relative; align-items: center; margin-top: 3.5rem; padding-top: 1.25rem; border-top-color: var(--line-strong); }
.magi-article-footer::before { position: absolute; top: -2px; left: 0; width: 56px; height: 3px; background: var(--pku); content: ""; }
.magi-article-footer .text-link { margin-right: auto; }
.magi-back-to-top { color: var(--green); font-size: 0.78rem; text-underline-offset: 0.25em; }
#post-title { scroll-margin-top: 115px; }

@media (max-width: 820px) {
  .magi-article-section .blog-reading-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .magi-article-section .magi-article-toc { position: static; max-height: 16rem; overflow-y: auto; }
}
@media (max-width: 600px) {
  .magi-article-header { padding-top: 1.6rem; }
  .magi-article-cover { padding: 0.85rem 1.1rem 1rem; }
  .magi-article-cover .magi-post-topline { gap: 0.3rem 0.8rem; margin-bottom: 1.3rem; padding-right: 0; }
  .magi-article-cover .magi-file-label { font-size: 0.55rem; }
  .magi-article-cover .magi-back { gap: 0.45rem; font-size: 0.92rem; }
  .magi-article-emblem { width: 42px; height: 30px; }
  .magi-article-header h1 { font-size: clamp(1.65rem, 6.5vw, 2.15rem); }
  .magi-article-header .blog-post-description { font-size: 0.88rem; }
  .magi-article-byline { margin-bottom: 1.15rem; }
  .magi-article-section { padding-top: 1.75rem; }
  .magi-article-section .blog-prose { font-size: 0.97rem; line-height: 1.95; }
  .magi-article-section .blog-prose h2 { margin-top: 2.5rem; padding-left: 0.8rem; font-size: 1.3rem; }
  .magi-article-section .blog-prose h3 { font-size: 1.12rem; }
  .magi-article-section .blog-prose :is(.MathJax_Display, .MJXc-display, mjx-container[display="true"]) { padding: 0.85rem 0.7rem; }
  .magi-article-section .blog-prose .blog-key-insight { padding: 1.1rem; }
  .magi-article-section .blog-prose .blog-details { padding: 0.9rem; }
  .magi-article-section .blog-prose .blog-figure { padding: 0.4rem; }
  .magi-article-section .blog-prose .blog-figure figcaption { padding: 0.65rem; font-size: 0.78rem; }
  .magi-article-footer { gap: 0.8rem 1.2rem; }
}
@media print {
  .magi-article-header, .magi-article-section { padding-top: 1rem; }
  .magi-article-cover { padding: 0; border: 0; }
  .magi-article-cover::before, .magi-article-cover::after, .magi-article-cover .magi-post-topline, .magi-article-toc, .magi-back-to-top { display: none; }
  .magi-article-section .blog-reading-grid { display: block; }
  .magi-article-section .blog-prose { font-size: 10pt; }
  .magi-article-section .blog-prose h2 { break-after: avoid; }
  .magi-article-section .blog-prose :is(.MathJax_Display, .MJXc-display, mjx-container[display="true"]) { overflow: visible; background: transparent; }
  .magi-article-section .blog-prose .blog-figure { break-inside: avoid; }
}
