@import"https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&family=IBM+Plex+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";
:root{--paper: #f8f5ec;--paper-2: #f1ecdf;--ink: #1a1815;--ink-2: #3a352d;--faint: #6b6558;--rule: #cfc8b5;--accent: #8b2f2f;--accent-2: #6e2424;--accent-soft: rgba(139, 47, 47, 0.10);--color-base: var(--ink);--color-text: var(--ink-2);--color-dim: var(--faint);--color-line: var(--rule);--color-background: var(--paper);--color-highlight: var(--paper-2);--color-primary: var(--accent);--color-primary-highlight: var(--accent-2);--serif: 'EB Garamond', 'Iowan Old Style', 'Palatino', Georgia, serif;--sans: 'IBM Plex Sans', 'Helvetica Neue', system-ui, sans-serif;--mono: 'JetBrains Mono', 'IBM Plex Mono', ui-monospace, monospace;--font-family-display: var(--serif);--font-family-ui: var(--serif);--font-family-code: var(--mono);--font-bold: 600;--font-display: 500 clamp(2rem, 6vw, 3rem)/1.1 var(--serif);--font-display-spacing: -0.012em;--font-title: 600 clamp(1.45rem, 4.5vw, 1.85rem)/1.25 var(--serif);--font-title-spacing: -0.005em;--font-body: clamp(1rem, 4vw, 1.075rem)/1.65 var(--serif);--font-body-bold: 600 var(--font-body);--font-body-spacing: 0;--font-ui: 0.92rem/1.4 var(--sans);--font-ui-bold: 500 0.92rem/1.4 var(--sans);--font-small: 0.84rem/1.4 var(--sans);--font-callout: 500 0.78rem/1.3 var(--sans);--font-code: 0.88em/1.55 var(--mono);--row-gap-xsmall: 1.25rem;--row-gap-small: 2.5rem;--row-gap-medium: 4rem}
[data-theme=dark]{--paper: #15140f;--paper-2: #1c1a14;--ink: #ede7d7;--ink-2: #c9c2b0;--faint: #8e8773;--rule: #2f2c25;--accent: #d98a8a;--accent-2: #f0a5a5;--accent-soft: rgba(217, 138, 138, 0.14)}
body{font-feature-settings:"kern","liga","onum";font-variant-numeric:oldstyle-nums}
main{max-width:min(100% - 7vw,44rem);margin:0 auto;padding:clamp(2rem,4vw,3rem) 0 3rem}
hr{border:0;height:1px;background:var(--rule);margin:2.5rem 0}
::selection{background:var(--accent-soft);color:var(--ink)}
.navbar{border-bottom:1px solid var(--rule);padding:1.4rem min(5vw,5rem);font-family:var(--sans);max-width:none}
.navbar-home{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.15rem;letter-spacing:-0.005em;color:var(--ink)}
.navbar-home strong{font-weight:500}
.navbar-home:hover{color:var(--accent)}
.navbar-links{font:500 .78rem/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;column-gap:1.6rem}
.navbar-links a{color:var(--ink-2);text-decoration:none;transition:color .15s ease}
.navbar-links a:hover{color:var(--accent)}
.navbar-links a[aria-current=page]{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.button{background:none;border:1px solid var(--rule);border-radius:999px;width:1.9rem;height:1.9rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--faint);transition:color .15s ease,border-color .15s ease,transform .15s ease;font-size:.9rem}
.button .icon{line-height:1}
.button:hover{color:var(--accent);border-color:var(--accent);transform:rotate(-12deg)}
.page-header{margin-bottom:2.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--rule)}
.page-title{font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,6vw,3.2rem);line-height:1.1;letter-spacing:-0.012em;color:var(--ink);text-wrap:balance;margin:0 0 .4rem}
.body{font:var(--font-body);color:var(--ink-2)}
.body>p,.body>ul,.body>ol,.body>blockquote,.body>pre,.body>details,.body>.alert{margin:0 0 1em}
.body p{text-wrap:pretty}
.body a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px;transition:background .15s ease}
.body a:hover{background:var(--accent-soft)}
.body strong{font-weight:600;color:var(--ink)}
.body em{color:var(--ink)}
.body h2,.body h3,.body h4{font-family:var(--serif);color:var(--ink);margin:1.7em 0 .45em;text-wrap:balance;line-height:1.25}
.body h2{font-size:1.55rem;font-weight:600;position:relative;padding-top:.3em}
.body h2::before{content:"";display:block;width:2.2rem;height:1px;background:var(--accent);margin:0 0 .55em}
.body h3{font-size:1.25rem;font-weight:600}
.body h4{font-size:1.08rem;font-weight:600;font-style:italic;color:var(--ink-2)}
.body blockquote{border-left:2px solid var(--accent);margin:1.2em 0;padding:.4em 0 .4em 1.2em;color:var(--faint);font-style:italic}
.body blockquote p:last-child{margin-bottom:0}
.body ul,.body ol{padding-left:1.4rem;color:var(--ink-2)}
.body ul li,.body ol li{margin:.35em 0}
.body ul li::marker,.body ol li::marker{color:var(--accent)}
.body ol li::marker{font-family:var(--mono);font-size:.85em}
.body img{max-width:100%;height:auto;display:block;margin:1.6em auto;border:1px solid var(--rule);border-radius:2px}
.body figure{margin:1.8em 0}
.body figure figcaption{font:.82rem/1.5 var(--sans);color:var(--faint);text-align:center;margin-top:.5em}
.body details{border:1px solid var(--rule);border-radius:3px;padding:.4em 1em;background:var(--paper-2)}
.body details summary{cursor:pointer;font-family:var(--sans);font-weight:500;font-size:.92rem;color:var(--ink)}
.body details summary:hover{color:var(--accent)}
.body details[open] summary{margin-bottom:.6em}
.body hr{margin:2.5em auto;width:4rem;height:1px;background:var(--rule);border:0}
code,pre,kbd,samp{font-family:var(--mono)}
p code,li code,.body code:not(pre code){background:var(--paper-2);border:1px solid var(--rule);padding:.05em .35em;border-radius:3px;font-size:.86em;color:var(--ink)}
pre{background:var(--paper-2);border:1px solid var(--rule);border-radius:3px;padding:1em 1.2em;overflow-x:auto;font-size:.84rem;line-height:1.55;margin:1.6em 0}
pre code{background:none;border:none;padding:0;font-size:inherit;color:var(--ink-2)}
.postList{list-style:none;padding:0;margin:0}
.postList .post+.post,.postList article.post+article.post{margin-top:2.5rem;padding-top:2.5rem;border-top:1px solid var(--rule)}
.postList .post-title{font:600 clamp(1.4rem, 3.5vw, 1.65rem)/1.25 var(--serif);margin:0 0 .35em}
.postList .post-title a{color:var(--ink);text-decoration:none}
.postList .post-title a:hover{color:var(--accent)}
.postList .post-header{margin-bottom:.8rem;padding-bottom:0;border-bottom:0}
.post-excerpt{margin:.9em 0 .9em;color:var(--ink-2)}
.post-excerpt p:last-child{margin-bottom:.5em}
.post-link{font:500 .72rem/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);text-decoration:none}
.post-link::after{content:" →";transition:padding-left .2s ease;display:inline-block}
.post-link:hover::after{padding-left:.3em}
.post-details{font:.72rem/1.4 var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);column-gap:.4em}
.post-details a{color:inherit}
.post-details a:hover{color:var(--accent)}
.post-details p::after{color:var(--rule)}
.post-tags{gap:.4em}
.badge{background:rgba(0,0,0,0);border:1px solid var(--rule);border-radius:2px;padding:.15em .5em;font:500 .66rem/1.3 var(--sans);letter-spacing:.06em;color:var(--faint);text-transform:lowercase;text-decoration:none;transition:color .15s ease,border-color .15s ease}
.badge:hover{color:var(--accent);border-color:var(--accent)}
.page-header .badge{border:1px dashed var(--rule);background:var(--paper-2);padding:.6em .9em;text-transform:none;letter-spacing:.01em;font:italic .92rem/1.5 var(--serif);color:var(--faint)}
.page-header .badge p{margin:0 !important}
.post-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule)}
article.post>.post-header>.post-title{font:600 clamp(2rem, 5vw, 2.8rem)/1.1 var(--serif);margin:0 0 .6rem;color:var(--ink);letter-spacing:-0.012em}
.toc{background:var(--paper-2);border:1px solid var(--rule);border-radius:3px;padding:1.2em 1.5em;margin:2em 0;font:.92rem/1.55 var(--sans)}
.toc h2{font:500 .72rem/1.3 var(--sans) !important;letter-spacing:.14em !important;text-transform:uppercase;color:var(--faint);margin:0 0 .7em !important;font-style:normal !important}
.toc h2::before{display:none}
.toc ol,.toc ul{list-style:none;padding-left:0;margin:0}
.toc ul{padding-left:1.2em;margin-top:.3em}
.toc li{margin:.3em 0}
.toc a{color:var(--ink-2);text-decoration:none}
.toc a:hover{color:var(--accent)}
.footnotes{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--rule);font:.92rem/1.55 var(--serif);color:var(--faint)}
.footnotes dl{margin:0}
.footnotes .footnote{display:grid;grid-template-columns:1.8rem 1fr;gap:.4em;margin:.6em 0}
.footnotes .footnote dt{font-family:var(--mono);font-size:.78rem;padding-top:.25em}
.footnotes .footnote dt a{color:var(--accent);text-decoration:none}
.footnotes .footnote dt a::before{content:"["}
.footnotes .footnote dt a::after{content:"]"}
.footnotes .footnote dd{margin:0}
.footnote-ref{text-decoration:none;color:var(--accent);font-family:var(--mono);font-size:.7em;vertical-align:super;line-height:1}
.footnote-ref::before{content:"[";color:var(--faint)}
.footnote-ref::after{content:"]";color:var(--faint)}
.page-pagination{border-top:1px solid var(--rule);padding-top:1.5rem;margin-top:2.5rem}
.page-pagination ul{list-style:none;padding:0;margin:0;display:flex;justify-content:space-between;gap:1.5rem}
.page-pagination li{flex:1;max-width:48%}
.page-pagination .pagination-next{text-align:right}
.page-pagination a{color:var(--ink-2);text-decoration:none;display:block}
.page-pagination a span{display:block;font:500 .7rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:.35em}
.page-pagination a strong{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--ink)}
.page-pagination a:hover strong{color:var(--accent)}
.comments-section{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--rule)}
.comments-header h2{font:600 1.55rem/1.2 var(--serif);margin:0 0 .5rem;color:var(--ink)}
.comments-header h2::before{display:none}
.comments-header p{font-size:.95rem;color:var(--faint);margin:0 0 1rem}
.search,.pagefind-ui{font-family:var(--sans)}
.search input,.pagefind-ui input{border-color:var(--rule) !important;background:var(--paper-2) !important;color:var(--ink) !important;border-radius:3px !important}
.footer{font:500 .7rem/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);border-top-color:var(--rule);padding:1.4rem min(5vw,5rem)}
.footer a{text-decoration:none}
.footer a:hover{text-decoration:underline}
.body .alert{border-left:3px solid var(--accent);background:var(--paper-2);padding:.8em 1.2em;margin:1.2em 0;border-radius:0 3px 3px 0;font-size:.96rem}
.body .alert .alert-title{font-family:var(--sans);font-weight:600;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 .4em}
.body .alert p:last-child{margin-bottom:0}
.katex-display{margin:1.4em 0;font-size:1em}
@media(max-width: 600px){main{padding:1.5rem 0 2rem}.navbar{padding:1rem 5vw}.navbar-links{column-gap:1rem}.page-pagination ul{flex-direction:column}.page-pagination .pagination-next,.page-pagination li{text-align:left;max-width:100%}.footnotes .footnote{grid-template-columns:1.4rem 1fr}}