@font-face { font-family: 'Fieldnotes Local'; src: local('Microsoft YaHei'); font-display: swap; }
:root { --paper:#fafbf9; --surface:#fff; --ink:#202824; --muted:#69726d; --rule:#dce2dd; --accent:#226d55; --accent-soft:#e7f0e9; --signal:#c2da64; --code:#f0f3ef; --shadow:0 12px 42px #1a332216; color-scheme:light; }
:root[data-theme="dark"] { --paper:#141916; --surface:#1c231e; --ink:#e5ede6; --muted:#a1afa5; --rule:#344139; --accent:#8cceae; --accent-soft:#273b2e; --signal:#c2da64; --code:#222c25; --shadow:0 12px 42px #0005; color-scheme:dark; }
@media(prefers-color-scheme:dark) { :root:not([data-theme="light"]) { --paper:#141916; --surface:#1c231e; --ink:#e5ede6; --muted:#a1afa5; --rule:#344139; --accent:#8cceae; --accent-soft:#273b2e; --signal:#c2da64; --code:#222c25; --shadow:0 12px 42px #0005; color-scheme:dark; } }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:'Fieldnotes Local','PingFang SC',sans-serif; font-size:15px; line-height:1.7; }
body:has(dialog[open]) {overflow:hidden}
button,input,select { font:inherit; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--accent); }
img { max-width:100%; height:auto; display:block; }
svg { width:20px; height:20px; flex:none; vertical-align:middle; }
button { color:inherit; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
[hidden] { display:none !important; }
::selection { background:var(--signal); color:#202824; }
.site-container { width:min(1160px,calc(100% - 80px)); margin:0 auto; }
.site-header { height:88px; background:var(--paper); border-bottom:1px solid var(--rule); position:sticky; top:0; z-index:20; }
.header-inner { width:min(1280px,calc(100% - 64px)); height:100%; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:36px; }
.brand { display:flex; align-items:center; gap:14px; min-width:0; }
.brand-mark { font:italic 44px/.9 Georgia,serif; }
.brand-mark>span { color:var(--accent); }
.brand-name { font-size:13px; font-weight:600; line-height:1.4; }
.brand-name>span { display:block; font-size:8px; font-weight:400; color:var(--muted); margin-top:4px; }
.main-nav { display:flex; gap:32px; font-size:14px; height:100%; align-items:center; }
.main-nav a { height:100%; display:flex; align-items:center; position:relative; color:var(--muted); }
.main-nav a[aria-current] { color:var(--ink); }
.main-nav a[aria-current]::after { content:''; position:absolute; height:3px; background:var(--accent); bottom:0; width:100%; }
.header-tools { display:flex; align-items:center; gap:8px; }
.icon-button,.icon-link { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border:0; border-radius:6px; background:transparent; color:var(--ink); }
.icon-button:hover,.icon-link:hover { background:var(--accent-soft); color:var(--accent); }
.icon-button svg,.icon-link svg { width:19px; height:19px; }
.menu-toggle { display:none; }
.theme-sun { display:none; }
[data-theme="dark"] .theme-sun { display:inline-flex; }
[data-theme="dark"] .theme-moon { display:none; }
@media(prefers-color-scheme:dark) { :root:not([data-theme="light"]) .theme-sun {display:inline-flex} :root:not([data-theme="light"]) .theme-moon {display:none} }
.skip-link { position:fixed; z-index:100; top:-70px; left:24px; padding:10px 16px; background:var(--surface); border:1px solid var(--rule); }
.skip-link:focus { top:12px; }
.eyebrow { font-size:10px; font-weight:500; color:var(--muted); display:flex; align-items:center; gap:10px; }
.status-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--accent); flex:none; }
.masthead { padding:45px 0 32px; border-bottom:1px solid var(--rule); }
.masthead h1 { margin:18px 0 22px; font:64px/1.05 Georgia,'Times New Roman',serif; font-weight:400; }
.masthead-period,.heading-period { color:var(--accent); }
.masthead-bottom { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; }
.masthead-bottom p { margin:0; font-size:15px; }
.masthead-bottom p span { display:block; color:var(--muted); font:11px/1.6 Verdana,sans-serif; margin-top:7px; }
.text-link { display:inline-flex; gap:9px; align-items:center; font-size:12px; color:var(--accent); border:0; padding:0; background:none; }
.text-link svg { width:17px; height:17px; }
.featured-stories { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:48px; padding:36px 0 44px; }
.story-media { display:block; aspect-ratio:1.85; background:#fff; overflow:hidden; border:1px solid var(--rule); }
.story-media img { height:100%; width:100%; object-fit:contain; }
.story-meta { display:flex; align-items:center; gap:16px; color:var(--muted); font-size:10px; margin:18px 0 10px; }
.story-meta>span:first-child { color:var(--accent); }
.lead-story h2 { font-size:27px; line-height:1.4; font-weight:600; margin:0 0 12px; }
.lead-story>p { font-size:13px; color:var(--muted); margin:0 0 18px; }
.side-stories { display:grid; grid-template-columns:1fr; gap:27px; }
.side-stories article { min-width:0; }
.side-story-media { display:block; aspect-ratio:2.8; overflow:hidden; background:var(--code); }
.side-story-media img { width:100%;height:100%;object-fit:cover;object-position:top; }
.side-stories h3 { font-size:17px; line-height:1.5; margin:0; font-weight:500; }
.side-stories .story-meta { margin-top:12px; }
.home-projects,.home-writing { border-top:1px solid var(--rule); padding:34px 0 42px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:22px; }
.section-heading h2 { font-size:22px; font-weight:500; margin:0; }
.section-heading h2 span { font:italic 12px Georgia,serif; color:var(--muted); margin-left:16px; }
.compact-projects { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.compact-project { padding:8px 26px 2px 0; }
.compact-project+.compact-project { border-left:1px solid var(--rule); padding-left:26px; }
.project-number { font:italic 14px Georgia,serif; color:var(--muted); }
.compact-project h3 { display:flex; justify-content:space-between; gap:14px; font-size:19px; font-weight:500; margin:15px 0 10px; }
.compact-project p { font-size:12px; color:var(--muted); margin:0 0 20px; }
.project-language { display:flex; align-items:center; gap:7px; font-size:10px; color:var(--muted); }
.writing-row { display:grid; grid-template-columns:110px minmax(0,1fr) 100px 20px; align-items:center; gap:20px; padding:19px 0; border-bottom:1px solid var(--rule); font-size:14px; }
.writing-row time { color:var(--muted); font:10px Verdana,sans-serif; }
.writing-category { font-size:10px; color:var(--muted); text-align:right; }
.writing-row svg { width:17px; color:var(--muted); }
.life-band { display:flex; justify-content:space-between; align-items:center; padding:35px 0 50px; border-top:1px solid var(--rule); gap:24px; }
.life-band h2 { font-family:Georgia,'Fieldnotes Local',serif; font-size:24px; font-weight:400; margin:10px 0; }
.life-band p { font-size:12px; color:var(--muted); margin:0; }
.life-band>div:last-child { display:flex; gap:30px; }
.page-heading { padding:54px 0 38px; }
.page-heading h1 { font-family:Georgia,'Fieldnotes Local',serif; font-size:46px; font-weight:400; line-height:1.25; margin:18px 0; }
.page-heading>p { color:var(--muted); font-size:14px; margin:0; }
.page-heading-meta { margin-top:28px; display:flex; align-items:center; gap:14px; font-size:10px; color:var(--muted); }
.page-heading-meta a { margin-left:auto; display:flex; align-items:center; gap:6px; }
.page-heading-meta svg { width:14px; }
.project-toolbar { display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between; padding:20px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.filter-tabs { display:flex; gap:6px; flex-wrap:wrap; }
.filter-tabs button { border:0; padding:8px 12px; background:transparent; color:var(--muted); font-size:12px; border-radius:4px; }
.filter-tabs button[aria-pressed="true"] { background:var(--ink);color:var(--paper); }
.filter-tabs button>span { margin-left:8px; font-size:10px; opacity:.65; }
.project-options { display:flex; gap:10px; align-items:center; }
.project-search { display:flex; align-items:center; gap:8px; border:1px solid var(--rule); padding:8px 10px; border-radius:4px; }
.project-search svg { width:15px; color:var(--muted); }
.project-search input { width:130px; border:0;outline:0;background:transparent;color:var(--ink);font-size:11px; }
#project-sort { color:var(--muted);background:transparent;border:0;font-size:11px; padding:8px 0; }
.results-count { margin:18px 0; font-size:10px; color:var(--muted); }
.project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.project-card { padding:24px; border:1px solid var(--rule); border-radius:6px; background:var(--surface); display:flex; flex-direction:column; min-width:0; min-height:240px; transition:border-color .2s,background .2s; }
.project-card:hover { border-color:var(--accent); }
.project-card-top { display:flex; align-items:center; justify-content:space-between; }
.project-category { display:flex; align-items:center; gap:8px; font-size:10px; color:var(--accent); }
.project-category svg { width:17px; }
.project-card .icon-link { width:28px;height:28px; }
.project-card h2 { font-size:20px; font-weight:500; line-height:1.4; margin:24px 0 12px; overflow-wrap:anywhere; }
.project-card p { font-size:12px; color:var(--muted);margin:0 0 28px; flex:1; }
.project-card-bottom { display:flex; gap:12px; align-items:center; padding-top:15px; border-top:1px solid var(--rule); }
.project-stars { display:flex; align-items:center; gap:4px; font-size:10px; color:var(--muted); }
.project-stars svg { width:12px;height:12px; }
.project-card time { font:9px Verdana,sans-serif; color:var(--muted); margin-left:auto; }
.language-dot { width:6px;height:6px;border-radius:50%;background:#a8aa90; }
.language-python { background:#3a86bb; }.language-typescript { background:#3974c5; }
.empty-state { text-align:center; padding:80px 20px; border:1px dashed var(--rule); }
.empty-state>svg { width:32px;height:32px;color:var(--muted); }.empty-state h2 { font-size:20px;font-weight:400;margin:20px 0; }
.project-source { display:flex; gap:16px; padding:32px 0 58px; color:var(--muted); }
.project-source>svg { margin-top:4px; }.project-source p { margin:0;font-size:11px;max-width:740px; }.project-source a { text-decoration:underline; }
.article-page { padding-top:34px; }
.article-heading { width:min(820px,100%);margin:32px auto 30px; }
.article-heading h1 { font-size:38px;line-height:1.35;font-weight:500;margin:14px 0 18px;overflow-wrap:anywhere; }
.article-heading>p { color:var(--muted);font-size:14px; }
.article-byline { display:flex;align-items:center;gap:12px;font-size:11px;margin-top:24px; }
.article-byline img { border-radius:50%;width:32px;height:32px;object-fit:cover; }
.byline-update { color:var(--muted);margin-left:auto; }.article-byline .icon-button { width:32px;height:32px; }
#copy-status { color:var(--accent); }
.article-cover { width:min(820px,100%);margin:30px auto 46px;aspect-ratio:1.9;background:#fff;overflow:hidden;border:1px solid var(--rule); }
.article-cover img { width:100%;height:100%;object-fit:contain; }
.article-layout { display:grid;grid-template-columns:minmax(0,800px) 220px;gap:48px;align-items:start; }
.prose { min-width:0;line-height:1.95;font-size:15px;overflow-wrap:anywhere; }
.prose h1,.prose h2,.prose h3,.prose h4 { line-height:1.5;color:var(--ink) !important;scroll-margin-top:110px; }
.prose h1 { font-size:26px; }.prose h2 { font-size:23px;margin:40px 0 20px; }.prose h3 { font-size:19px;margin:32px 0 16px; }.prose h4 { font-size:16px; }
.prose p { margin:0 0 20px; }.prose a { color:var(--accent);text-decoration:underline;text-underline-offset:3px; }
.prose ul,.prose ol { padding-left:24px; }.prose li { margin:7px 0; }
.prose blockquote { margin:26px 0;padding:16px 22px;border-left:3px solid var(--accent);background:var(--accent-soft);font-size:14px;color:var(--ink); }.prose blockquote p:last-child { margin:0; }
.prose hr { border:0;border-top:1px solid var(--rule);margin:36px 0; }
.prose pre { padding:18px;background:var(--code);border-radius:4px;overflow:auto;max-width:100%;font:12px/1.8 Consolas,monospace;position:relative; }
.prose code { font-family:Consolas,monospace;font-size:.88em;background:var(--code);padding:2px 5px;border-radius:3px; }
.prose pre code { padding:0;background:none; }
.code-copy { position:absolute;top:6px;right:6px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--muted);padding:0; }
.code-copy svg { width:14px;height:14px; }.code-copy[data-state="copied"] {color:var(--accent)}
.prose .highlight { margin:24px 0;overflow:auto;background:var(--code);border-radius:4px;max-width:100%; }.prose .highlight table { margin:0;border:none;width:100%; }.prose .highlight td { border:0;padding:0; }.prose .highlight pre { margin:0; }.prose .highlight .gutter { color:var(--muted);width:40px;border-right:1px solid var(--rule); }
.prose table { border-collapse:collapse;display:block;overflow:auto;max-width:100%;margin:24px 0;font-size:12px; }.prose td,.prose th { padding:10px 14px;border:1px solid var(--rule); }.prose th { background:var(--code); }
.prose img { max-height:600px;object-fit:contain;margin:26px auto; }.prose summary { cursor:pointer; }
.article-toc { position:sticky;top:120px;border-left:1px solid var(--rule);padding-left:20px;font-size:11px; }
.article-toc h2 { font-size:12px;font-weight:500;margin:0 0 16px; }.article-toc h2 span { display:block;color:var(--muted);font:italic 11px Georgia,serif; }.article-toc ol { list-style:none;padding:0;margin:0; }.article-toc ol ol { padding-left:12px; }.article-toc li { margin:8px 0; }.article-toc a { color:var(--muted); }.article-toc a.active { color:var(--accent);font-weight:600; }
.article-end { padding:30px 0;margin-top:40px;border-top:1px solid var(--rule);font-size:11px;color:var(--muted); }
.article-tags { display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px; }.article-tags a { background:var(--accent-soft);color:var(--accent);padding:4px 10px;border-radius:3px; }
.article-neighbors { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--rule);margin-bottom:60px; }
.article-neighbors a { padding:25px 20px 0 0; }.article-neighbors span { display:block;color:var(--muted);font-size:10px;margin-bottom:8px; }.article-neighbors strong { font-size:14px;font-weight:500; }
.document-page { padding-bottom:70px; }.document-page>.prose { max-width:800px; }
.archive-page { padding-bottom:70px; }.archive-categories { display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px; }.archive-categories a { font-size:12px;padding:8px 12px;border:1px solid var(--rule);border-radius:4px; }.archive-categories span { margin-left:8px;color:var(--muted); }
.archive-categories a[aria-current="page"] {border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.archive-page-number {display:block;margin-top:12px;font-size:11px}
.pagination { display:flex;gap:14px;margin-top:26px;font-size:12px; }.pagination .current { color:var(--accent);font-weight:600; }
.site-footer { border-top:1px solid var(--rule);background:var(--code);padding:38px 0 20px; }
.footer-inner,.footer-bottom { width:min(1160px,calc(100% - 80px));margin:auto;display:flex;justify-content:space-between;align-items:center;gap:24px; }
.footer-name { font:23px Georgia,serif; }.footer-inner p { color:var(--muted);font-size:10px;margin:7px 0 0; }.footer-inner nav { display:flex;gap:22px;font-size:11px; }.footer-inner nav a { display:flex;align-items:center;gap:3px; }.footer-inner svg { width:12px;height:12px; }
.footer-bottom { margin-top:30px;padding-top:16px;border-top:1px solid var(--rule);font-size:9px;color:var(--muted); }.rss-link { display:flex;align-items:center;gap:6px; }.rss-link svg { width:12px;height:12px; }
.search-dialog { width:min(680px,calc(100% - 32px));max-height:80vh;margin:12vh auto 0;padding:24px;border:1px solid var(--rule);border-radius:8px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow); }
.search-dialog::backdrop { background:#141c18aa;backdrop-filter:blur(3px); }.search-dialog-head { display:flex;align-items:center;justify-content:space-between; }.search-dialog-head h2 { font-size:22px;font-weight:500;margin:0; }
.image-dialog {width:min(1280px,calc(100% - 32px));max-height:92vh;padding:16px;border:1px solid var(--rule);border-radius:8px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.image-dialog::backdrop {background:#111d18cc}
.image-viewer-head {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.image-viewer-head h2 {margin:0;font-size:13px;font-weight:500;overflow-wrap:anywhere;min-width:0}
.image-viewer-tools {display:flex;gap:4px;flex:none}
.image-stage {height:min(72vh,800px);overflow:auto;display:flex;align-items:center;justify-content:center;background:var(--code);border-radius:4px}
.image-stage img {width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.image-stage.is-zoomed {display:block}
.image-stage.is-zoomed img {max-width:none;max-height:none;margin:0}
.image-status {font-size:11px;color:var(--muted);min-height:18px;margin:8px 0 0}
.image-trigger {display:block;border:0;background:none;padding:0;width:100%;cursor:zoom-in;color:inherit}
.image-trigger img {margin:0 auto}
.not-found-page {padding-top:80px;padding-bottom:100px;min-height:60vh}
.not-found-page h1 {font:40px/1.3 Georgia,'Fieldnotes Local',serif;margin:24px 0}
.not-found-page p {color:var(--muted)}
.not-found-page nav {display:flex;gap:28px;flex-wrap:wrap;margin-top:32px}
.search-field { display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--rule);margin-top:10px; }.search-field input { width:100%;border:0;background:none;color:var(--ink);font-size:16px;outline:0; }
#search-status { font-size:11px;color:var(--muted); }#search-results { list-style:none;padding:0;margin:0; }#search-results li { border-top:1px solid var(--rule); }#search-results a { display:block;padding:14px 0; }#search-results h3 { font-size:16px;margin:0 0 5px;font-weight:500; }#search-results p { font-size:11px;color:var(--muted);margin:0; }
#reading-progress { position:fixed;top:0;left:0;height:2px;background:var(--accent);z-index:50;width:0;pointer-events:none; }
.back-top { position:fixed;right:24px;bottom:24px;background:var(--surface);border:1px solid var(--rule);box-shadow:var(--shadow);visibility:hidden; }.back-top.visible { visibility:visible; }
.music-widget { padding:22px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:24px 0; }.music-widget-heading { display:flex;align-items:center;gap:10px;font-weight:500; }.music-widget button { border:0;border-radius:4px;color:var(--paper);background:var(--accent);padding:9px 16px;font-size:12px;margin-right:18px; }.music-widget button:disabled { opacity:.6; }.music-widget-status { font-size:12px;color:var(--muted);margin:12px 0 !important; }.music-widget>a { font-size:12px; }.music-widget .aplayer { margin:20px 0 0;color:#333; }
.prose .about-portrait { width:100px;height:100px;object-fit:cover;border-radius:50%;margin:0 0 28px; }
.about-facts { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:30px 0; }.about-facts section { padding:20px 0;border-top:1px solid var(--rule); }.about-facts h2 { font-size:18px;margin:0 0 12px; }.about-facts p { font-size:13px;color:var(--muted); }
.prose .embedded-music-player { border:1px solid var(--rule);border-radius:6px;padding:24px;background:var(--surface); }.prose .embedded-music-player button { border:1px solid var(--rule);padding:8px 14px;background:var(--code); }.prose .song-entry { padding:10px;border-bottom:1px solid var(--rule);cursor:pointer; }.prose .song-entry.active { background:var(--accent-soft); }
@keyframes reveal { from {opacity:0;transform:translateY(12px)} to {opacity:1;transform:translateY(0)} }
.masthead,.page-heading { animation:reveal .45s ease both; }.featured-stories { animation:reveal .55s .07s ease both; }
@media(min-width:1600px) { .masthead h1 { font-size:64px; } }
@media(max-width:1050px) { .brand-name { display:none; }.header-inner { gap:22px; }.main-nav { gap:24px; }.project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.featured-stories { gap:30px; }.article-layout { grid-template-columns:minmax(0,1fr) 170px;gap:30px; } }
@media(max-width:760px) {
  .site-container { width:calc(100% - 40px); }.header-inner { width:calc(100% - 32px);gap:12px; }.site-header { height:70px; }.brand-name { display:block;font-size:11px; }.brand-name>span { font-size:7px; }.brand-mark { font-size:36px; }.header-tools { gap:2px; }.icon-button { width:36px;height:36px; }
  .menu-toggle { display:inline-flex; }.main-nav { display:none;position:absolute;left:0;right:0;top:69px;height:auto;background:var(--surface);border-bottom:1px solid var(--rule);padding:12px 20px;gap:0;box-shadow:var(--shadow); }.main-nav.open { display:flex;flex-direction:column;align-items:stretch; }.main-nav a { padding:10px 14px;height:auto; }.main-nav a[aria-current]::after { display:none; }.main-nav a[aria-current] { background:var(--accent-soft); }
  .masthead { padding:30px 0 26px; }.masthead h1 { font-size:40px;margin:18px 0; }.masthead-bottom { align-items:flex-start; }.masthead-bottom p { font-size:12px; }.masthead-bottom p span { font-size:8px; }.masthead-bottom>.text-link { font-size:10px;white-space:nowrap; }.eyebrow { font-size:8px; }
  .featured-stories { grid-template-columns:1fr;gap:30px;padding-top:26px; }.lead-story h2 { font-size:22px; }.side-stories { grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }.side-story-media { aspect-ratio:1.7; }.side-stories h3 { font-size:13px; }.side-stories .story-meta { font-size:8px;gap:8px; }.story-meta { gap:12px; }
  .section-heading h2 { font-size:20px; }.section-heading h2 span { display:block;margin-left:0;margin-top:4px; }.compact-projects { grid-template-columns:1fr; }.compact-project { padding:20px 0; }.compact-project+.compact-project { border-left:0;padding-left:0;border-top:1px solid var(--rule); }.compact-project h3 { margin:8px 0; }.compact-project p { margin-bottom:12px; }
  .writing-row { grid-template-columns:72px minmax(0,1fr) 17px;gap:12px;font-size:12px;padding:16px 0; }.writing-row time { font-size:8px; }.writing-category { display:none; }.life-band { align-items:flex-start;flex-direction:column;padding-top:26px; }.life-band>div:last-child { gap:24px; }
  .page-heading { padding:34px 0 28px; }.page-heading h1 { font-size:34px; }.page-heading>p { font-size:12px; }.page-heading-meta { flex-wrap:wrap;gap:10px;font-size:9px; }.page-heading-meta a { margin-left:0; }
  .project-toolbar { gap:18px; }.filter-tabs { gap:2px; }.filter-tabs button { font-size:11px;padding:7px 9px; }.project-options { width:100%;justify-content:space-between; }.project-search { flex:1; }.project-search input { width:100%; }.project-grid { grid-template-columns:minmax(0,1fr); }.project-card { min-height:230px;padding:22px; }.project-card h2 { font-size:21px; }.project-source { padding-bottom:36px; }
  .article-page { padding-top:22px; }.article-heading { margin-top:26px; }.article-heading h1 { font-size:27px; }.article-heading>p { font-size:12px; }.article-byline { gap:8px;font-size:10px;flex-wrap:wrap; }.byline-update { font-size:9px; }.article-cover { margin:24px auto; }.article-layout { display:flex;flex-direction:column-reverse;gap:24px; }.article-toc { position:static;width:100%;padding:14px 0;border-left:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule); }.article-toc h2 { margin:0 0 10px; }.article-toc h2 span { display:inline;margin-left:8px; }.article-toc>ol { columns:2;column-gap:20px; }.article-toc li { margin:5px 0;break-inside:avoid; }
  .prose { font-size:14px; }.prose h2 { font-size:21px; }.prose h3 { font-size:18px; }.prose pre { font-size:11px;padding:14px; }.article-neighbors { gap:20px; }.article-neighbors strong { font-size:12px; }.article-neighbors a { padding-right:0; }.about-facts { grid-template-columns:1fr; }
  .footer-inner,.footer-bottom { width:calc(100% - 40px);align-items:flex-start;flex-wrap:wrap; }.footer-inner nav { gap:18px;flex-wrap:wrap; }.footer-bottom { gap:12px; }.footer-bottom>span:nth-child(2) { display:none; }.back-top { right:14px;bottom:14px; }.search-dialog { padding:20px;margin-top:8vh; }
}
@media(prefers-reduced-motion:reduce) { html {scroll-behavior:auto}*,*::before,*::after {animation:none !important;transition:none !important} }
