@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2")}@font-face{font-family:"IBM Plex Sans";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/ibm-plex-sans-latin-400-italic.woff2") format("woff2")}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2")}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2")}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/ibm-plex-mono-latin-400-italic.woff2") format("woff2")}:root{--bg: #fafafa;--surface: #ebebec;--code-bg: #efeff0;--fg: #242529;--muted: #58585a;--faint: #7e8086;--accent: #5c78e2;--border: #dfdfe0;--border-strong: #c9c9ca;--focus: #7d82e8;--selection: #5c78e23d;--sans: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--measure: 52rem}*,*::before,*::after{box-sizing:border-box}html{font-size:17px;-webkit-text-size-adjust:100%}body{margin:0 auto;max-width:calc(var(--measure) + 2.5rem);padding:3.5rem 1.25rem 3rem;background:var(--bg);color:var(--fg);font-family:var(--sans);line-height:1.7;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}::selection{background:var(--selection)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}a{color:var(--fg);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 45%, rgba(0,0,0,0));text-decoration-thickness:1px;text-underline-offset:.2em;transition:color .12s,text-decoration-color .12s}a:hover{color:var(--accent);text-decoration-color:var(--accent)}h1,h2,h3,h4{font-weight:600;line-height:1.3;letter-spacing:-.01em;margin:2.5rem 0 .75rem}h1{font-size:1.9rem;margin-top:0;letter-spacing:-.02em}h2{font-size:1.35rem}h3{font-size:1.1rem}h4{font-size:1rem}p,ul,ol{margin:0 0 1.25rem}.post-meta,.tag-cloud small,.pagination,.post-nav,.more a,.post-item time,.list-heading,.site-footer,.site-header nav a{font-family:var(--mono);font-size:.8rem;color:var(--muted)}.site-header{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:baseline;justify-content:space-between;margin-bottom:4rem}.site-header nav{display:flex;gap:1.25rem}.site-header nav a{font-size:.85rem;text-decoration:none}.site-header nav a:hover{color:var(--accent)}.site-title{font-family:var(--mono);font-size:.95rem;text-decoration:none}.site-title::before{content:"~/";color:var(--accent)}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.site-footer .socials{display:flex;gap:1.25rem}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--accent)}.intro{font-size:1.1rem;color:var(--muted);margin-bottom:3.5rem}.intro p:last-child{margin-bottom:0}.list-heading{font-weight:400;letter-spacing:.04em;text-transform:uppercase;margin:0 0 1rem}.post-list{list-style:none;padding:0;margin:0 0 1.5rem}.post-item{display:flex;align-items:baseline;gap:1.5rem;padding:.45rem 0;border-bottom:1px solid var(--border)}.post-item:first-child{border-top:1px solid var(--border)}.post-item time{flex-shrink:0;color:var(--faint);font-variant-numeric:tabular-nums}.post-item a{text-decoration:none}.more a{text-decoration:none}.more a:hover{color:var(--accent)}.pagination,.post-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem}.pagination a,.post-nav a{color:var(--muted);text-decoration:none}.pagination a:hover,.post-nav a:hover{color:var(--accent)}.post-nav{padding-top:1.25rem;border-top:1px solid var(--border)}.tag{font-family:var(--mono);font-size:.8rem;color:var(--muted);text-decoration:none}.tag:hover{color:var(--accent)}.tag-cloud{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}.tag-cloud .tag{font-size:.9rem}.tag-cloud small{color:var(--faint)}.post-header{margin-bottom:2.5rem}.post-meta{display:flex;flex-wrap:wrap;gap:.25rem .75rem;margin:.5rem 0 0}.post-meta .tags{display:flex;gap:.6rem}.post-content img,.post-content video{display:block;max-width:100%;height:auto;margin:2rem auto;border:1px solid var(--border);border-radius:6px}.post-content li{margin-bottom:.3rem}.post-content li>ul,.post-content li>ol{margin:.3rem 0 0}.post-content hr{border:0;border-top:1px solid var(--border);margin:3rem 0}.post-content blockquote{margin:1.75rem 0;padding:.1rem 0 .1rem 1.25rem;border-left:2px solid var(--border-strong);color:var(--muted)}.post-content blockquote p:last-child{margin-bottom:0}.post-content table{width:100%;margin:1.75rem 0;border-collapse:collapse;font-size:.92rem;font-variant-numeric:tabular-nums}.post-content th,.post-content td{padding:.45rem .75rem;border-bottom:1px solid var(--border);text-align:left}.post-content th:first-child,.post-content td:first-child{padding-left:0}.post-content th:last-child,.post-content td:last-child{padding-right:0}.post-content th{font-weight:600;border-bottom-color:var(--border-strong)}.zola-anchor{margin-left:.4rem;font-family:var(--mono);font-weight:400;color:var(--faint);text-decoration:none;opacity:0;transition:opacity .12s}:is(h1,h2,h3,h4):hover .zola-anchor,.zola-anchor:focus-visible{opacity:1}.footnotes{margin-top:3rem;padding-top:1rem;border-top:1px solid var(--border);font-size:.88rem;color:var(--muted)}.footnotes ol{padding-left:1.25rem}.footnote-reference a,.footnote-backref{font-family:var(--mono);font-size:.75em;text-decoration:none}.post-content .markdown-alert-note{padding:.85rem 1.1rem;border:1px solid #cbcdf6;border-radius:6px;background:#e2e2fa;color:var(--fg)}.post-content .markdown-alert-note::before{content:"note";display:block;margin-bottom:.25rem;font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:#5c78e2}.post-content .markdown-alert-tip{padding:.85rem 1.1rem;border:1px solid #c8dcc1;border-radius:6px;background:#dfeadb;color:var(--fg)}.post-content .markdown-alert-tip::before{content:"tip";display:block;margin-bottom:.25rem;font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:#669f59}.post-content .markdown-alert-important{padding:.85rem 1.1rem;border:1px solid #cbcdf6;border-radius:6px;background:#e2e2fa;color:var(--fg)}.post-content .markdown-alert-important::before{content:"important";display:block;margin-bottom:.25rem;font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:#7274a7}.post-content .markdown-alert-warning{padding:.85rem 1.1rem;border:1px solid #f4e7d1;border-radius:6px;background:#faf2e6;color:var(--fg)}.post-content .markdown-alert-warning::before{content:"warning";display:block;margin-bottom:.25rem;font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:#a48819}.post-content .markdown-alert-caution{padding:.85rem 1.1rem;border:1px solid #f6c6bd;border-radius:6px;background:#fbdfd9;color:var(--fg)}.post-content .markdown-alert-caution::before{content:"caution";display:block;margin-bottom:.25rem;font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:#d36151}code,kbd,samp{font-family:var(--mono);font-size:.86em}:not(pre)>code{padding:.12em .35em;border-radius:4px;background:var(--surface)}pre{margin:1.75rem 0;padding:1rem 1.15rem;overflow-x:auto;border:1px solid var(--border);border-radius:6px;background:var(--code-bg);font-size:.95rem;line-height:1.55;tab-size:4;scrollbar-width:thin;scrollbar-color:rgba(56,58,65,.2980392157) rgba(0,0,0,0)}pre>code[data-name]::before{content:attr(data-name);float:right;font-size:.75rem;color:var(--faint)}.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;color:#b4b4bb}.giallo-hl{background:rgba(92,120,226,.1019607843)}@media (max-width: 34rem){html{font-size:16px}body{padding-top:2rem}.site-header{margin-bottom:2.5rem}.post-item{flex-direction:column;gap:0}}