:root{--step--2: clamp(0.6944rem, 0.6709rem + 0.1175vw, 0.8rem);--step--1: clamp(0.8333rem, 0.7917rem + 0.2083vw, 1rem);--step-0: clamp(1.125rem, 1.0815rem + 0.2174vw, 1.25rem);--step-1: clamp(1.25rem, 1.1685rem + 0.4076vw, 1.5625rem);--step-2: clamp(1.5625rem, 1.4321rem + 0.6522vw, 1.9531rem);--step-3: clamp(1.9531rem, 1.7566rem + 0.9826vw, 2.4414rem);--step-4: clamp(2.4414rem, 2.1528rem + 1.4429vw, 3.0518rem);--step-5: clamp(3.0518rem, 2.6355rem + 2.0815vw, 3.8147rem);--space-3xs: clamp(0.25rem, 0.2283rem + 0.1087vw, 0.3125rem);--space-2xs: clamp(0.5rem, 0.4565rem + 0.2174vw, 0.625rem);--space-xs: clamp(0.75rem, 0.6848rem + 0.3261vw, 0.9375rem);--space-s: clamp(1rem, 0.913rem + 0.4348vw, 1.25rem);--space-m: clamp(1.5rem, 1.3696rem + 0.6522vw, 1.875rem);--space-l: clamp(2rem, 1.8261rem + 0.8696vw, 2.5rem);--space-xl: clamp(3rem, 2.7391rem + 1.3043vw, 3.75rem);--space-2xl: clamp(4rem, 3.6522rem + 1.7391vw, 5rem);--space-3xl: clamp(6rem, 5.4783rem + 2.6087vw, 7.5rem);--font-serif: "IBM Plex Serif", Georgia, "Times New Roman", serif;--font-mono: "IBM Plex Mono", "Courier New", Courier, monospace;--max-width: 700px}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;scroll-behavior:smooth;background-color:#f7f4ee}body{min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f7f4ee}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}@font-face{font-family:"IBM Plex Serif";src:url("/fonts/IBMPlexSerif-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"IBM Plex Serif";src:url("/fonts/IBMPlexSerif-Italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"IBM Plex Serif";src:url("/fonts/IBMPlexSerif-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:"IBM Plex Serif";src:url("/fonts/IBMPlexSerif-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"IBM Plex Serif";src:url("/fonts/IBMPlexSerif-BoldItalic.woff2") format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:"IBM Plex Mono";src:url("/fonts/IBMPlexMono-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"IBM Plex Mono";src:url("/fonts/IBMPlexMono-Italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"IBM Plex Mono";src:url("/fonts/IBMPlexMono-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}body{font-family:var(--font-serif);font-size:var(--step-0);line-height:1.65;color:#2d2d2d}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:600;line-height:1.25;margin-bottom:var(--space-s);color:#2d2d2d}h1{font-size:var(--step-4)}h2{font-size:var(--step-3);margin-top:var(--space-xl)}h3{font-size:var(--step-2);margin-top:var(--space-l)}h4{font-size:var(--step-1);margin-top:var(--space-l)}h5{font-size:var(--step-0);margin-top:var(--space-m)}h6{font-size:var(--step--1);margin-top:var(--space-m)}.prose p{margin-bottom:var(--space-m)}.prose a{color:#2c5282;text-decoration:none;border-bottom:1px solid rgba(0,0,0,0)}.prose a:hover{color:#e07a5f;border-bottom-color:#e07a5f}.prose blockquote{border-left:3px solid #2c5282;padding-left:var(--space-m);margin:var(--space-l) 0;font-style:italic;color:#2d2d2d}.prose ul,.prose ol{margin-bottom:var(--space-m);padding-left:var(--space-l)}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose li{margin-bottom:var(--space-2xs)}.prose hr{border:none;border-top:1px solid #2d2d2d;margin:var(--space-xl) 0}.prose img{margin:var(--space-l) 0}.prose figure{margin:var(--space-l) 0}.prose figure img{margin:0}.prose figure figcaption{font-family:var(--font-mono);font-size:var(--step--1);color:#2d2d2d;margin-top:var(--space-xs);text-align:center}.prose strong{font-weight:700}.prose em{font-style:italic}.prose table{width:100%;margin:var(--space-l) 0;font-size:var(--step--1)}.prose table th,.prose table td{padding:var(--space-xs) var(--space-s);border-bottom:1px solid #2d2d2d;text-align:left}.prose table th{font-weight:700;font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.05em}.site{display:flex;flex-direction:column;min-height:100vh;background-color:#f7f4ee}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-m)}main{flex:1;padding:var(--space-xl) 0}.article-container{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-m)}.nav{padding:var(--space-m) 0;border-bottom:1px solid #2d2d2d}.nav .container{display:flex;align-items:center;justify-content:space-between;max-width:var(--max-width)}.nav__title{font-family:var(--font-serif);font-weight:600;font-size:var(--step-1);color:#2d2d2d;text-decoration:none}.nav__links{display:flex;align-items:center;gap:var(--space-m)}.nav__link{font-family:var(--font-mono);font-size:var(--step--1);color:#2d2d2d;text-decoration:none}.nav__link:hover{color:#e07a5f}.nav__link--rss{color:#2d2d2d}@media (max-width: 600px){.nav .container{flex-direction:column;gap:var(--space-xs)}}.footer{border-top:1px solid #2d2d2d;padding:var(--space-l) 0;margin-top:var(--space-xl)}.footer__content{font-family:var(--font-mono);font-size:var(--step--1);color:#2d2d2d;text-align:center}.footer__content a{color:#2c5282;text-decoration:none;border-bottom:1px solid rgba(0,0,0,0)}.footer__content a:hover{color:#e07a5f;border-bottom-color:#e07a5f}.post-list{padding:var(--space-l) 0}.post-item{padding:var(--space-s) 0;border-bottom:1px solid #2d2d2d}.post-item:last-child{border-bottom:none}.post-item__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-s);flex-wrap:wrap}.post-item__title{font-family:var(--font-serif);font-size:var(--step-1);font-weight:600;margin-bottom:0;line-height:1.3}.post-item__title a{color:#2d2d2d;text-decoration:none}.post-item__title a:hover{color:#2c5282}.post-item__date{font-family:var(--font-mono);font-size:var(--step--1);color:#2d2d2d;white-space:nowrap;flex-shrink:0}.post-item__excerpt{color:#2d2d2d;font-size:var(--step--1);line-height:1.5;margin-top:var(--space-3xs)}.page-title{font-size:var(--step-3);font-weight:600;margin-top:var(--space-l);margin-bottom:var(--space-s);padding-bottom:var(--space-xs);border-bottom:1px solid #2d2d2d;color:#2d2d2d}.tag{font-family:var(--font-mono);font-size:var(--step--2);color:#2c5282;text-decoration:none}.tag:hover{color:#e07a5f}.post-header{margin-bottom:var(--space-xl)}.post-header__title{font-size:var(--step-4);font-weight:600;line-height:1.15;margin-bottom:var(--space-s);color:#2d2d2d}.post-header__meta{font-family:var(--font-mono);font-size:var(--step--1);color:#2d2d2d;margin-bottom:var(--space-xs)}.post-header__tags{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.giallo-l{display:inline-block;min-height:1lh;width:100%}.giallo-ln{display:inline-block;user-select:none;margin-right:.4em;padding:.4em;min-width:3ch;text-align:right;opacity:.8}pre{background-color:#2d2d2d;color:#f7f4ee;font-family:var(--font-mono);font-size:var(--step--1);padding:var(--space-s);overflow-x:auto;margin-bottom:var(--space-m);line-height:1.5;-webkit-overflow-scrolling:touch}pre code{background:none;padding:0;font-size:inherit;color:inherit}code{font-family:var(--font-mono);font-size:.9em;background-color:#f7f4ee;padding:.1em .35em;color:#2d2d2d}pre code{background:none;padding:0}pre{scrollbar-width:thin;scrollbar-color:#e07a5f rgba(0,0,0,0)}pre::-webkit-scrollbar{height:6px}pre::-webkit-scrollbar-track{background:rgba(0,0,0,0)}pre::-webkit-scrollbar-thumb{background-color:#e07a5f;border-radius:3px}pre::-webkit-scrollbar-thumb:hover{background-color:#e07a5f}.callout{border-left:4px solid #2c5282;padding:var(--space-s) var(--space-m);margin:var(--space-l) 0;font-size:var(--step--1)}.callout__label{font-family:var(--font-mono);font-weight:700;font-size:var(--step--2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2xs);color:#2c5282}.callout--warning{border-left-color:#e07a5f}.callout--warning .callout__label{color:#e07a5f}.callout--note{border-left-color:#2c5282}.callout--note .callout__label{color:#2c5282}.callout p:last-child{margin-bottom:0}.katex-block{display:block;text-align:center;margin:var(--space-l) 0;overflow-x:auto;padding:var(--space-s) 0}.katex-inline{display:inline}.figure{margin:var(--space-l) 0}.figure img{width:100%}.figure__caption{font-family:var(--font-mono);font-size:var(--step--1);color:#2d2d2d;margin-top:var(--space-xs);text-align:center}.theme-toggle{background:none;border:1px solid #2d2d2d;border-radius:4px;padding:.3em .4em;cursor:pointer;color:#2d2d2d;display:flex;align-items:center;justify-content:center;line-height:1}.theme-toggle:hover{color:#e07a5f;border-color:#e07a5f}.theme-toggle__icon--moon{display:none}[data-theme=dark] .theme-toggle{color:#f7f4ee;border-color:#f7f4ee}[data-theme=dark] .theme-toggle:hover{color:#e07a5f;border-color:#e07a5f}[data-theme=dark] .theme-toggle__icon--sun{display:none}[data-theme=dark] .theme-toggle__icon--moon{display:block}[data-theme=dark],[data-theme=dark] body,[data-theme=dark] html{background-color:#2d2d2d}[data-theme=dark] .site{background-color:#2d2d2d}[data-theme=dark] body,[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] h3,[data-theme=dark] h4,[data-theme=dark] h5,[data-theme=dark] h6,[data-theme=dark] .post-item__title a,[data-theme=dark] .post-item__date,[data-theme=dark] .post-item__excerpt,[data-theme=dark] .post-header__title,[data-theme=dark] .post-header__meta,[data-theme=dark] .page-title,[data-theme=dark] .footer__content,[data-theme=dark] .prose blockquote{color:#f7f4ee}[data-theme=dark] .nav{border-bottom-color:#f7f4ee}[data-theme=dark] .nav__title{color:#f7f4ee}[data-theme=dark] .nav__link{color:#f7f4ee}[data-theme=dark] .nav__link:hover{color:#e07a5f}[data-theme=dark] .nav__link--rss{color:#f7f4ee}[data-theme=dark] .prose a,[data-theme=dark] .footer__content a{color:#e07a5f}[data-theme=dark] .prose a:hover,[data-theme=dark] .footer__content a:hover{color:#f7f4ee;border-bottom-color:#f7f4ee}[data-theme=dark] .tag{color:#e07a5f}[data-theme=dark] .tag:hover{color:#f7f4ee}[data-theme=dark] .post-item{border-bottom-color:rgba(247,244,238,.2)}[data-theme=dark] .post-item__title a:hover{color:#e07a5f}[data-theme=dark] .page-title{border-bottom-color:rgba(247,244,238,.2)}[data-theme=dark] .footer{border-top-color:rgba(247,244,238,.2)}[data-theme=dark] .prose blockquote{border-left-color:#2c5282}[data-theme=dark] .prose hr{border-top-color:rgba(247,244,238,.3)}[data-theme=dark] code{background-color:rgba(247,244,238,.1);color:#f7f4ee}[data-theme=dark] pre{background-color:#2d2d2d;border:1px solid rgba(247,244,238,.1)}[data-theme=dark] pre code{background:none;color:#f7f4ee}[data-theme=dark] .callout{border-left-color:#2c5282}[data-theme=dark] .callout__label{color:#e07a5f}[data-theme=dark] .callout--warning{border-left-color:#e07a5f}[data-theme=dark] .callout--warning .callout__label{color:#e07a5f}[data-theme=dark] .figure__caption,[data-theme=dark] .prose figure figcaption{color:#f7f4ee}[data-theme=dark] .prose table th,[data-theme=dark] .prose table td{border-bottom-color:rgba(247,244,238,.2)}[data-theme=dark] .prose table th{color:#f7f4ee}[data-theme=dark] .prose table td{color:#f7f4ee}