/* ───────────────────────────── rendered markdown ───────────────────────────── */
.prose{font-family:'Newsreader',Georgia,serif;color:var(--text);overflow-wrap:break-word}
.prose>h1:first-child,.prose>h2:first-child{margin-top:0}
.prose h1{font:600 34px/1.12 'Space Grotesk';letter-spacing:-.025em;margin:0 0 14px;scroll-margin-top:80px}
.prose h2{font:600 22px 'Space Grotesk';letter-spacing:-.01em;margin:34px 0 12px;scroll-margin-top:80px}
.prose h3{font:600 18px 'Space Grotesk';margin:26px 0 10px;scroll-margin-top:80px}
.prose h4,.prose h5,.prose h6{font:600 15px 'Space Grotesk';margin:22px 0 8px}
.prose p{font:17px/1.78 'Newsreader';margin:0 0 16px}
.prose a{color:var(--accent);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}
.prose a:hover{border-bottom-color:var(--accent)}
.prose strong{font-weight:600;color:var(--text)}
.prose em{font-style:italic}
.prose ul,.prose ol{margin:0 0 18px;padding-left:24px}
.prose li{font:17px/1.7 'Newsreader';margin-bottom:6px}
.prose ul.contains-task-list{list-style:none;padding-left:4px}
.prose .task-list-item{display:flex;gap:11px;align-items:flex-start}
.prose .task-list-item input{margin-top:7px;width:18px;height:18px;accent-color:var(--green);flex-shrink:0}
.prose .task-list-item label{flex:1}
.prose blockquote{margin:0 0 24px;padding:14px 18px;background:color-mix(in srgb,var(--accent) 9%,transparent);border-left:3px solid var(--accent);border-radius:0 10px 10px 0;font:italic 16px/1.6 'Newsreader';color:var(--sub1)}
.prose blockquote p{margin:0;font-size:16px}
.prose hr{border:none;border-top:1px solid var(--s0);margin:30px 0}
.prose img{max-width:100%;height:auto;border-radius:12px;border:1px solid var(--s0);margin:6px 0 8px;display:block}
.prose code{font-family:'JetBrains Mono',monospace;font-size:.86em;background:var(--mantle);border:1px solid var(--s0);padding:1px 6px;border-radius:5px;color:var(--text)}
.prose pre{border-radius:12px;overflow:hidden;border:1px solid var(--s0);margin:0 0 22px;background:var(--crust)}
.prose pre code{display:block;background:transparent;border:none;padding:16px 18px;font:13.5px/1.85 'JetBrains Mono';overflow-x:auto;border-radius:0}

/* tables */
.prose table{width:100%;border-collapse:collapse;border:1px solid var(--s0);border-radius:12px;overflow:hidden;font:14px 'Space Grotesk';margin:0 0 20px;display:table}
.prose thead{background:var(--mantle)}
.prose th{text-align:left;font-weight:600;color:var(--sub1);padding:11px 14px;border-bottom:1px solid var(--s0);border-left:1px solid var(--s0)}
.prose td{padding:11px 14px;color:var(--sub0);border-bottom:1px solid var(--s0);border-left:1px solid var(--s0)}
.prose th:first-child,.prose td:first-child{border-left:none}
.prose tr:last-child td{border-bottom:none}

/* download chip for linked non-image attachments */
.prose a.dl-chip{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--s0);border-radius:12px;padding:9px 14px 9px 11px;background:var(--mantle);color:var(--text);text-decoration:none;border-bottom:1px solid var(--s0);font-family:'Space Grotesk';font-weight:600;font-size:14px;margin:2px 0}
.prose a.dl-chip:hover{border-color:var(--accent)}
.prose a.dl-chip::before{content:attr(data-ext);text-transform:uppercase;font:700 9px 'JetBrains Mono';color:var(--green);background:color-mix(in srgb,var(--green) 18%,transparent);width:34px;height:34px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.prose a.dl-chip::after{content:'↓';color:var(--sub0);font-weight:400;margin-left:4px}

/* footnotes */
.prose .footnotes{margin-top:30px;border-top:1px solid var(--s0);padding-top:12px;font:13px/1.6 'Newsreader';color:var(--o1)}
.prose .footnotes ol{padding-left:20px}
.prose .footnotes li{font-size:13px}
.prose .footnote-ref a{border:none;font-weight:600}
.prose .footnote-backref{border:none}

/* mermaid */
.prose .mermaid{background:var(--mantle);border:1px solid var(--s0);border-radius:12px;padding:18px;margin:0 0 22px;text-align:center;overflow-x:auto}
.prose .mermaid:not([data-processed]){font:13px 'JetBrains Mono';color:var(--o1);white-space:pre}

/* katex */
.prose .katex-display{margin:18px 0;overflow-x:auto;overflow-y:hidden;background:var(--mantle);border:1px solid var(--s0);border-radius:12px;padding:18px}
.prose .katex{font-size:1.05em}

/* ───────────────────────────── highlight.js — catppuccin-mapped ───────────────────────────── */
.hljs{color:var(--text);background:transparent}
.hljs-comment,.hljs-quote{color:var(--o1);font-style:italic}
.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-section,.hljs-link{color:var(--mauve)}
.hljs-function .hljs-title,.hljs-title.function_,.hljs-title{color:var(--blue)}
.hljs-name,.hljs-built_in,.hljs-builtin-name,.hljs-class .hljs-title,.hljs-title.class_{color:var(--yellow)}
.hljs-string,.hljs-attribute,.hljs-addition,.hljs-regexp{color:var(--green)}
.hljs-number,.hljs-meta .hljs-number,.hljs-literal{color:var(--peach)}
.hljs-variable,.hljs-template-variable,.hljs-params,.hljs-property{color:var(--text)}
.hljs-type,.hljs-symbol,.hljs-bullet,.hljs-selector-id,.hljs-selector-class{color:var(--teal)}
.hljs-operator,.hljs-punctuation{color:var(--sky)}
.hljs-attr,.hljs-tag{color:var(--blue)}
.hljs-meta{color:var(--o2)}
.hljs-deletion{color:var(--red)}
.hljs-emphasis{font-style:italic}
.hljs-strong{font-weight:700}
