@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Inter.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-017F,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Besley;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/Besley-Italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Tiempos Text;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/tiempos-text-regular.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-017F,U+0180-024F,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Tiempos Text;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/tiempos-text-regular-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-017F,U+0180-024F,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Tiempos Text;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/tiempos-text-medium.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-017F,U+0180-024F,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Tiempos Text;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/tiempos-text-medium-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-017F,U+0180-024F,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Tiempos Text;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/tiempos-text-semibold.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-017F,U+0180-024F,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Tiempos Text;font-style:italic;font-weight:600;font-display:swap;src:url(/fonts/tiempos-text-semibold-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-017F,U+0180-024F,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Tiempos Text;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/tiempos-text-bold.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-017F,U+0180-024F,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Tiempos Text;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/tiempos-text-bold-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-017F,U+0180-024F,U+2000-206F,U+20AC,U+2122}.prose *{margin:0;padding:0;font-size:var(--font-size-m)}.prose{margin-bottom:6rem;line-height:1.6;letter-spacing:0;hyphens:none;-webkit-hyphens:none;-ms-hyphens:none;font-kerning:normal;font-variant-ligatures:common-ligatures}.prose .title{margin-bottom:1.5em}.prose .title h1{margin:.5em 0 .5rem}.prose h1{font-size:1.6em;line-height:1.22;font-weight:var(--font-weight-bold);font-variant:normal;margin:1.4em 0 .7em}.prose h2{font-size:1.4em;line-height:1.25;font-weight:var(--font-weight-bold);font-variant:normal;margin:1.3em 0 .65em}.prose h3{font-size:1.2em;line-height:1.28;font-weight:var(--font-weight-bold);font-variant:small-caps;margin:1.2em 0 .6em}.prose h4{font-size:1.05em;line-height:1.3;font-weight:var(--font-weight-bold);font-variant:small-caps;letter-spacing:.01em;margin:1.1em 0 .55em}.prose h5{font-size:1em;line-height:1.3;font-weight:var(--font-weight-bold);font-variant:small-caps;letter-spacing:.01em;margin:1em 0 .5em}.prose>:first-child{margin-top:0}.prose h1+h2,.prose h2+h3,.prose h3+h4,.prose h4+h5{margin-top:.5em}.prose strong,.prose b{font-weight:var(--font-weight-bold)}.prose em{font-family:var(--serif);font-style:italic;letter-spacing:0}.prose p{line-height:1.6;margin:1.1em 0;text-align:justify;text-justify:inter-word;hyphens:none;-webkit-hyphens:none;-ms-hyphens:none;overflow-wrap:normal;word-break:normal}.prose h1+p,.prose h2+p,.prose h3+p,.prose h4+p,.prose h5+p,.prose .title+p,.prose figure+p,.prose blockquote+p,.prose ul+p,.prose ol+p,.prose hr+p{margin-top:.6em}.prose a{color:var(--text-primary);text-decoration:underline;text-decoration-color:var(--text-tertiary);transition:text-decoration-color .2s ease-out}.prose a:hover{color:var(--text-primary);text-decoration-color:var(--text-primary)}.prose .lead{font-size:1.125em;line-height:1.55;margin:1.2em 0 1em;letter-spacing:0;font-weight:var(--font-weight-regular);text-align:justify;text-justify:inter-word;hyphens:none}.prose .title+.lead,.prose h1+.lead,.prose h2+.lead{margin-top:.5em}.prose table{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0;margin:1.4em 0;font-size:var(--font-size-m);border:1px solid var(--border);border-radius:8px;overflow:hidden}.prose th,.prose td{border:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:.45em .85em;text-align:left}.prose th:last-child,.prose td:last-child{border-right:none}.prose tr:last-child td{border-bottom:none}.prose th{background:var(--astro-code-background);font-weight:var(--font-weight-bold)}.prose img{max-width:100%;height:auto;display:block;margin:1.25em 0}.img-placeholder{background:var(--code-bg);display:block}.prose img[loading=lazy]{opacity:0;animation:fadeIn .3s ease-out forwards}.prose figure{margin:1.5em 0;text-align:center}.prose figure img{margin-bottom:.75em}.prose figure figcaption{color:var(--text-secondary);font-size:var(--font-size-s);text-align:center}.prose p>img{position:relative;margin-bottom:1.25em}.prose p>img:after{content:attr(alt);display:block;position:absolute;left:0;width:100%;text-align:center;color:var(--text-secondary);font-size:var(--font-size-s);margin-top:.6em}.prose .img-caption{display:block;text-align:center;color:var(--text-secondary);font-size:var(--font-size-s);margin-bottom:1.5em}.prose code{padding:2.5px 3.5px;border-radius:5px;background-color:var(--code-bg);border:.5px solid var(--border);font-family:var(--mono);font-size:.9em;font-feature-settings:"liga" 0,"calt" 0;-webkit-font-feature-settings:"liga" 0,"calt" 0}.prose pre{background-color:var(--astro-code-background);border-radius:8px;padding:1.15em 1.35em;margin:1.5em 0;overflow-x:auto}.prose pre>code{font-family:var(--mono);font-feature-settings:"liga" 0,"calt" 0;display:block;white-space:pre;word-break:normal;overflow-wrap:normal;padding:0;margin:0;background:none;border:none;line-height:1.5;border-radius:0}.prose pre>code *{font-size:var(--font-size-s)}.prose blockquote{border-left:1px solid var(--border);margin:1.2em 0;padding-left:1em;text-align:left}.prose blockquote p{margin:.6em 0;text-align:left}.prose blockquote cite{display:inline-block;margin-top:.5em}.prose ul{list-style-type:none;padding-left:0;margin:.9em 0 1em 1.25rem;line-height:1.5;text-align:left}.prose ul ul{margin-left:.625rem;margin-top:.4em;margin-bottom:.4em}.prose ul li{position:relative;padding-left:.5rem;margin:.25em 0}.prose ul li:last-child{margin-bottom:0}.prose ul li>ul{margin-top:.4em;margin-bottom:.4em}.prose ul li:before{content:"•";position:absolute;left:-1.25rem;top:-.05em;width:1.5rem;text-align:center;color:var(--text-tertiary)}.prose ol{list-style-position:outside;padding-left:0;margin:.9em 0 1em 1.25rem;counter-reset:item;text-align:left}.prose ol li{display:block;position:relative;padding-left:.25rem;margin:.25em 0}.prose ol li:last-child{margin-bottom:0}.prose ol li:before{content:counter(item) ".";counter-increment:item;position:absolute;left:-1.15rem;width:1.5rem;text-align:left;color:var(--text-secondary);opacity:.75;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"zero" 0,"cv01" 1,"cv02" 1,"calt" 1,"ss03" 1,"liga" 1,"ordn" 1}.prose ul.contains-task-list{list-style:none;margin-left:0;white-space:nowrap;text-align:left}.prose ul.contains-task-list li:before{content:none}.prose ul.contains-task-list li.task-list-item{padding-left:.125em;margin-bottom:.5em}.prose ul.contains-task-list li.task-list-item:last-child{margin-bottom:0}.prose ul.contains-task-list li.task-list-item input[type=checkbox]{margin-right:.5em;position:relative;top:.175em;width:1em;height:1em;border:1.35px solid var(--text-tertiary);border-radius:4px;background:transparent;appearance:none;-webkit-appearance:none}.prose ul.contains-task-list li.task-list-item input[type=checkbox]:checked{position:relative;background:var(--code-bg);font-family:var(--sans);border:1.35px solid var(--text-tertiary);opacity:.75}.prose ul.contains-task-list li.task-list-item input[type=checkbox]:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-45%,-55%);font-family:var(--sans);font-size:10px;font-weight:650;color:var(--text-primary);opacity:.55}.prose ul.contains-task-list li.task-list-item input[type=checkbox]+*{display:inline;margin-left:0;line-height:1.5;white-space:nowrap}.prose sup,.prose sub,.prose sup a{margin:0 .125em;font-size:.875em;line-height:1}.prose hr{margin:1.25em 0;height:auto;border:none;background:none;text-align:center;position:relative}.prose hr:before{content:"***";font-family:var(--mono);color:var(--text-tertiary);font-size:.875em;letter-spacing:.25em}.prose kbd{font-family:var(--mono);font-size:var(--font-size-s);border:1px solid var(--text-tertiary);padding:1px 4px;border-radius:5px;min-width:1.75em;display:inline-block;text-align:center}.prose mark{background-color:var(--mark);color:var(--text-primary);padding:3px 1px}.prose .footnotes{margin-top:2.5rem;padding-top:1rem;position:relative}.prose .footnotes:before{content:"";position:absolute;top:0;left:0;width:4rem;height:1px;background-color:var(--border)}.prose cite{font-style:normal}.prose [data-footnote-backref]{position:relative;font-family:var(--mono);font-size:.875em;top:-.05em}.prose [data-footnote-ref]{font-size:1em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"zero" 0,"cv01" 1,"cv02" 1,"calt" 1,"ss03" 1,"liga" 1,"ordn" 1}.prose [data-footnote-ref],.prose [data-footnote-backref]{color:var(--text-secondary);opacity:.875;text-decoration:none;transition:color .2s ease-out;padding-right:.5em}.prose [data-footnote-ref]:hover,.prose [data-footnote-backref]:hover{color:var(--text-primary)}.katex-mathml{display:none!important}.katex-display{text-align:center;margin:1.4em 0}.katex *{box-sizing:content-box}.katex,.katex *{color:inherit}.katex .base,.katex .strut,.katex .mathit,.katex .mathrm,.katex .mathbf,.katex .mathsf,.katex .mathtt{line-height:initial;vertical-align:baseline}@media (prefers-color-scheme: dark){.katex,.katex *{color:inherit}}.reading-time{color:var(--text-secondary);letter-spacing:-.025em}.reading-time .separator{margin:0 .25em}.prose iframe{width:100%;aspect-ratio:16/9;border:none;border-radius:6px;margin:.25em 0 0}.prose iframe[src*="spotify.com"]{aspect-ratio:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 640px){.prose{line-height:1.55}.prose p,.prose .lead{text-align:left;text-justify:auto;hyphens:none;-webkit-hyphens:none;-ms-hyphens:none}.prose h1{font-size:1.45em;margin:1.2em 0 .6em}.prose h2{font-size:1.3em;margin:1.15em 0 .55em}.prose h3{font-size:1.12em;margin:1.05em 0 .5em}.prose h4{font-size:1.02em;margin:1em 0 .5em}.prose h5{font-size:1em;margin:.9em 0 .45em}.prose p{margin:.9em 0}.prose .lead{font-size:1.1em;line-height:1.5;margin:1em 0 .9em}.prose img{margin:1em 0}.prose figure{margin:1.1em 0}.prose figure img{margin-bottom:.6em}.prose figure figcaption{font-size:calc(var(--font-size-s) * .95)}.prose table{margin:1.1em 0;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.prose th,.prose td{padding:.4em .7em}.prose pre{margin:1.2em 0;padding:.9em 1em}.prose pre>code{line-height:1.45}.prose code{font-size:.88em}.prose blockquote{margin:1em 0;padding-left:.85em}.prose ul,.prose ol{margin:.75em 0 .9em 1rem}.prose ul ul{margin-left:.5rem}.prose ol li:before{left:-1rem;width:1.25rem}.prose hr{margin:1em 0}}:root{--content-width: 25rem;--sans: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;--serif: "Tiempos Text", Besley, Baskerville, Georgia, Cambria, "Times New Roman", Times, serif;--mono: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-size-s: 1rem;--font-size-m: 1.125rem;--font-size-l: 1.25rem;--font-weight-light: 350;--font-weight-regular: 400;--font-weight-bold: 500;--spacing-s: 0;--spacing-m: 0;--bg: #fbfbf9;--text-primary: rgba(0, 0, 0, .85);--text-secondary: rgba(0, 0, 0, .4);--text-tertiary: rgba(0, 0, 0, .24);--border: rgba(0, 0, 0, .1);--selection: rgba(0, 0, 0, .08);--code-bg: rgba(0, 0, 0, .04);--mark: #f3ffc4;--astro-code-foreground: rgba(0, 0, 0, .85);--astro-code-background: rgba(0, 0, 0, .03);--astro-code-token-constant: rgba(0, 0, 0, .85);--astro-code-token-string: rgba(0, 0, 0, .85);--astro-code-token-comment: rgba(0, 0, 0, .35);--astro-code-token-keyword: rgba(0, 0, 0, .55);--astro-code-token-parameter: rgba(0, 0, 0, .85);--astro-code-token-function: rgba(0, 0, 0, .85);--astro-code-token-string-expression: rgba(0, 0, 0, .55);--astro-code-token-punctuation: rgba(0, 0, 0, .55);--astro-code-token-link: rgba(0, 0, 0, .55)}html.dark{--bg: #1c1c1c;--text-primary: rgba(255, 255, 255, .9);--text-secondary: rgba(255, 255, 255, .4);--text-tertiary: rgba(255, 255, 255, .24);--border: rgba(255, 255, 255, .1);--selection: rgba(255, 255, 255, .08);--code-bg: rgba(255, 255, 255, .04);--mark: #545b37;--astro-code-foreground: rgba(255, 255, 255, .9);--astro-code-background: rgba(255, 255, 255, .03);--astro-code-token-constant: rgba(255, 255, 255, .9);--astro-code-token-string: rgba(255, 255, 255, .9);--astro-code-token-comment: rgba(255, 255, 255, .35);--astro-code-token-keyword: rgba(255, 255, 255, .55);--astro-code-token-parameter: rgba(255, 255, 255, .9);--astro-code-token-function: rgba(255, 255, 255, .9);--astro-code-token-string-expression: rgba(255, 255, 255, .55);--astro-code-token-punctuation: rgba(255, 255, 255, .55);--astro-code-token-link: rgba(255, 255, 255, .55)}html{background-color:var(--bg);scroll-behavior:smooth;scrollbar-gutter:stable;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}body{font-family:var(--serif);font-feature-settings:"ss03" 1;font-size:var(--font-size-m);text-autospace:normal;text-rendering:optimizeLegibility;line-height:1.75;color:var(--text-primary);font-display:swap;word-wrap:break-word;overflow-wrap:break-word;margin:0;min-height:100vh;display:flex;flex-direction:column;box-sizing:border-box;letter-spacing:var(--spacing-m);font-kerning:normal;font-variant-ligatures:common-ligatures;padding:1rem 1.5rem 1.5rem;overscroll-behavior-y:contain;transition:background-color .2s ease-out}@media (max-width: 768px){body{padding:1.35rem}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}::selection{background-color:var(--selection)}:focus{outline:2px solid var(--text-tertiary);outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--text-tertiary);outline-offset:2px}body[data-width]{max-width:var(--content-width)}body[data-centered=true]{margin:0 auto}main{flex:1;display:flex;flex-direction:column;box-sizing:border-box}.date{margin:0;font-weight:var(--font-weight-light);color:var(--text-secondary);opacity:.75;flex-shrink:0;letter-spacing:var(--spacing-s);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"zero" 0,"cv01" 1,"cv02" 1,"calt" 1,"ss03" 1,"ordn" 1}.date .month{letter-spacing:var(--spacing-m)}.sr-only{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}header.site{--ink:#2a2a2a;--ink-soft:#4b4b4b;--accent:#b68b3c;--accent-ink:#6a521f;--rule:#e8e0d6;--shadow:0 10px 30px rgba(0,0,0,.06)}.wrap{max-width:78ch;margin-inline:auto;padding:clamp(16px,5vw,28px)}header.site{top:0;z-index:5;backdrop-filter:saturate(140%) blur(6px);background:var(--bg);border-bottom:1px solid var(--rule);position:sticky;width:100vw;margin-left:calc(-50vw + 50%);box-sizing:border-box}.brand{display:flex;gap:.8rem;align-items:center}.brand__name{font-size:1.25rem;font-weight:600}header.site .wrap{position:relative}.nav-toggle{display:none;background:none;border:none;padding:8px;cursor:pointer;line-height:0}.nav-toggle svg{width:28px;height:28px;stroke:var(--ink);stroke-width:2;fill:none}.nav-toggle svg path{stroke-linecap:round}nav.main-nav{display:flex;align-items:center;gap:1.2rem}nav.main-nav a{color:var(--ink-soft);text-decoration:none;letter-spacing:.06em;font-variant-caps:all-small-caps;font-size:1.05rem;position:relative;padding-bottom:2px}nav.main-nav a:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--ink);transform:scaleX(0);transition:transform .2s ease}nav.main-nav a:hover{color:var(--ink)}nav.main-nav a:hover:after{transform:scaleX(1)}@media (max-width:899px){.nav-toggle{display:inline-flex}nav.main-nav{position:absolute;right:0;top:calc(100% + 8px);background:var(--bg);border:1px solid var(--rule);border-radius:12px;padding:.5rem;box-shadow:var(--shadow);flex-direction:column;align-items:flex-start;gap:.2rem;min-width:220px;overflow:visible;white-space:normal;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.2s ease}nav.main-nav.open{opacity:1;visibility:visible;transform:translateY(0)}nav.main-nav a{padding:.6rem .4rem;font-size:1rem}}.site-footer{--ink: #2a2a2a;--ink-soft: #4b4b4b;--accent: #b68b3c;--rule: #e8e0d6;width:100vw;margin-left:calc(-50vw + 50%);box-sizing:border-box;border-top:1px solid var(--rule);margin-top:4rem;font-family:var(--sans)}html.dark .site-footer{--ink: rgba(255,255,255,.85);--ink-soft: rgba(255,255,255,.5);--rule: rgba(255,255,255,.1)}.footer-wrap{max-width:78ch;margin-inline:auto;padding:clamp(28px,5vw,48px) clamp(16px,5vw,28px) clamp(20px,4vw,32px)}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2.5rem 3rem;align-items:start}.footer-col{display:flex;flex-direction:column;gap:0}.site-footer .footer-logo{display:inline-block;font-size:1.2rem;font-weight:600;color:var(--ink);text-decoration:none;font-family:var(--serif, Georgia, serif);line-height:1;margin-bottom:.5rem}.footer-logo em{font-style:italic;color:var(--ink)}.footer-tagline{font-size:.875rem;color:var(--ink-soft);line-height:1.55;margin:0}.footer-heading{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin:0 0 .6rem;padding:0}.footer-links{display:flex;flex-direction:column;gap:.3rem}.site-footer .footer-links a{font-size:.875rem;color:var(--ink-soft);text-decoration:none;transition:color .2s ease;line-height:1.4}.site-footer .footer-links a:hover{color:var(--ink)}.footer-social{display:flex;flex-direction:column;gap:.45rem}.site-footer .social-link{display:inline-flex;align-items:center;gap:.45rem;font-size:.875rem;color:var(--ink-soft);text-decoration:none;transition:color .2s ease;line-height:1.4}.site-footer .social-link svg{width:15px;height:15px;flex-shrink:0}.site-footer .social-link:hover{color:var(--ink)}.footer-bottom{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--rule);font-size:.8rem;color:var(--ink-soft);opacity:.7}@media (max-width: 640px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1 / -1}.footer-wrap{padding-bottom:2.5rem}}@media (max-width: 400px){.footer-grid{grid-template-columns:1fr}}
