﻿@import url("https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible+Mono:wght@200..800&family=JetBrains+Mono:wght@400;500;600;700&display=swap");*{margin:0;padding:0;box-sizing:border-box}html{scrollbar-gutter:stable}body,p,a,li,span,div{font-family:"Atkinson Hyperlegible Mono",monospace;font-weight:400;letter-spacing:-.01em}h1,h2,h3,h4{font-family:"Atkinson Hyperlegible Mono",monospace;font-weight:700;letter-spacing:-.02em}body{background:#fff;color:#374151;line-height:1.7;font-size:1rem}a{color:#71717a;text-decoration:none;transition:color .2s}a:hover{color:#3f3f46}em{font-style:italic}em::before,em::after{content:"*";opacity:.3;font-style:normal}strong::before,strong::after{content:"**";opacity:.3;font-weight:normal}:not(pre)>code::before,:not(pre)>code::after{content:"`";opacity:.3}.font-mono{font-family:"JetBrains Mono",monospace !important}.container{max-width:56rem;margin:0 auto;padding:0 1.5rem;margin-bottom:4rem}@media (min-width: 1024px){.container{margin-top:3rem}}header{margin-bottom:1.5rem}header .header-top{display:flex;justify-content:space-between;align-items:baseline}header .site-title{font-size:2rem;font-weight:700;line-height:2.5rem;letter-spacing:-.025em;color:#18181b;text-decoration:none;margin-top:1rem}header .site-title:hover{color:#18181b;text-decoration:none}header .terminal-cursor{font-family:"JetBrains Mono",monospace;animation:blink 1.2s infinite;font-weight:400;position:relative;top:-.1em;margin-left:1px;color:#a1a1aa}header .current-path{font-family:"JetBrains Mono",monospace;font-size:.875rem;color:#a1a1aa}header nav{display:flex;gap:1rem;margin-top:.25rem}header nav a{font-family:"JetBrains Mono",monospace;font-size:.875rem;color:#a1a1aa;transition:color .2s}header nav a:hover{color:#52525b;text-decoration:none}@keyframes blink{0%, 50%{opacity:1}51%, 100%{opacity:0}}main{min-height:60vh;margin-top:1.5rem}.homepage{display:flex;flex-direction:column;gap:2.5rem}@media (min-width: 1024px){.homepage{flex-direction:row;gap:2.5rem}}.homepage .main-col{flex:2}.homepage .side-col{flex:1;display:none}@media (min-width: 1024px){.homepage .side-col{display:block}}.homepage .side-col img{width:100%;border-radius:.25rem}.homepage .bio{font-size:1rem;line-height:1.5rem;color:#6b7280;margin-bottom:.75rem}.homepage .currently{font-size:1rem;color:#a1a1aa;margin-bottom:2rem}.homepage .currently .arrow{color:#d4d4d8}.homepage .currently a{color:#6b7280;text-decoration:underline;text-underline-offset:2px}.homepage .currently a:hover{color:#3f3f46}.now-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.3rem;font-size:.9rem}.now-list li{border-left:2px solid #e4e4e7;padding-left:.75rem;padding-top:.25rem;padding-bottom:.25rem;color:#3f3f46}.now-list .now-label{font-family:"JetBrains Mono",monospace;color:#a1a1aa;font-size:.8rem}.now-list .now-label::after{content:" →"}.now-list a{color:#3f3f46;text-decoration:underline;text-underline-offset:2px}.now-list a:hover{color:#18181b}.section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.75rem}.section-header h2{font-size:1.125rem;color:#27272a}.section-header .section-path{font-family:"JetBrains Mono",monospace;font-size:.75rem;color:#d4d4d8}.post-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem;font-size:.9rem}.post-list li{display:flex;flex-direction:row;justify-content:space-between;align-items:baseline;border-left:2px solid #e4e4e7;padding-left:.75rem;padding-top:.25rem;padding-bottom:.25rem;transition:border-color .2s}.post-list li:hover{border-left-color:#a1a1aa}.post-list li a.post-title{color:#3f3f46;transition:color .2s}.post-list li:hover a.post-title{color:#18181b}.post-list .post-date{font-family:"JetBrains Mono",monospace;font-size:.8rem;color:#a1a1aa;white-space:nowrap;font-variant-numeric:tabular-nums}.see-all{display:inline-block;margin-top:.5rem;font-family:"JetBrains Mono",monospace;font-size:.8rem;color:#a1a1aa;padding-left:.75rem}.see-all:hover{color:#52525b;text-decoration:none}.section-page h1{font-size:1.5rem;font-weight:700;color:#18181b;margin-bottom:.5rem}.section-page .section-description{color:#6b7280;margin-bottom:1.5rem;font-size:.875rem}article{font-family:"Atkinson Hyperlegible Mono",monospace;font-size:1rem;line-height:1.7;letter-spacing:-.01em;color:#374151}article h1.article-title{font-size:1.5rem;font-weight:700;color:#27272a;margin-bottom:.5rem}article h1.article-title::before{content:none}article .post-meta{display:flex;gap:.75rem;align-items:baseline;font-family:"JetBrains Mono",monospace;font-size:1rem;color:#a1a1aa;margin-bottom:2rem}article .content h1{font-size:1.75rem;margin-top:2.5rem;margin-bottom:1rem;color:#18181b}article .content h1::before{content:"# ";opacity:.3;font-weight:normal}article .content h2{font-size:1.4rem;margin-top:2.5rem;margin-bottom:1rem;color:#18181b}article .content h2::before{content:"## ";opacity:.3;font-weight:normal}article .content h3{font-size:1.15rem;margin-top:2rem;margin-bottom:.75rem;color:#18181b}article .content h3::before{content:"### ";opacity:.3;font-weight:normal}article .content h4{font-size:1rem;margin-top:1.5rem;margin-bottom:.5rem;color:#18181b}article .content h4::before{content:"#### ";opacity:.3;font-weight:normal}article .content p{margin-bottom:1.5rem}article .content a{color:#2563eb;text-decoration:underline;text-underline-offset:2px}article .content a:hover{color:#1d4ed8}article .content ul,article .content ol{margin-bottom:1.5rem;padding-left:1.5rem}article .content ul li{list-style-type:disc;margin-bottom:.5rem}article .content ol li{list-style-type:decimal;margin-bottom:.5rem}article .content blockquote{border-left:3px solid #d1d5db;padding-left:1rem;margin:1.5rem 0;font-style:italic;color:#6b7280}article .content code{font-family:"JetBrains Mono",monospace;font-size:.85em}article .content :not(pre)>code{background-color:#f3f4f6;padding:.2em .4em;border-radius:.25rem;color:#be185d}article .content pre{font-family:"Atkinson Hyperlegible Mono",monospace;font-size:.9rem;line-height:1.5;border-radius:.5rem;margin:1.5rem 0;overflow-x:auto;padding:.75rem 0;counter-reset:line}article .content pre code{background:none;padding:0;font-family:inherit;font-size:inherit;font-weight:400}article .content pre code::before,article .content pre code::after{content:none}article .content pre .giallo-l{display:inline;padding:0 1rem 0 0}article .content pre .giallo-l::before{counter-increment:line;content:counter(line);display:inline-block;width:2.5rem;padding-right:.75rem;margin-right:.75rem;text-align:right;color:#585b70;border-right:1px solid rgba(255,255,255,.08);user-select:none}article .content .code-wrapper{position:relative;margin:1.5rem 0}article .content .code-wrapper pre{margin:0}article .content .copy-button{position:absolute;top:.5rem;right:.5rem;padding:.25rem .5rem;font-family:"JetBrains Mono",monospace;font-size:.75rem;color:#6b7280;background:rgba(0,0,0,0);border:none;border-radius:.25rem;cursor:pointer;opacity:0;transition:opacity .2s ease,color .2s ease,background-color .2s ease;user-select:none;z-index:10}article .content .code-wrapper:hover .copy-button{opacity:1}article .content .copy-button:hover{color:#e5e7eb;background-color:rgba(255,255,255,.1)}article .content img{max-width:100%;border-radius:.25rem;margin:1rem 0}article .content hr{border:none;border-top:1px solid #e4e4e7;margin:2rem 0}article .content table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:1rem}article .content table th,article .content table td{padding:.5rem .75rem;border:1px solid #e4e4e7;text-align:left}article .content table th{background:#fafafa;font-weight:600;color:#18181b}.wiki-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.wiki-list li{border-left:2px solid #e4e4e7;padding:.4rem 0 .4rem .75rem;transition:border-color .2s}.wiki-list li:hover{border-left-color:#a1a1aa}.wiki-list .wiki-link{color:#3f3f46;text-decoration:none;transition:color .2s;display:flex;align-items:baseline;gap:.5rem}.wiki-list .wiki-link:hover{color:#18181b}.wiki-list .wiki-desc{display:block;font-size:.8rem;color:#a1a1aa;margin-top:.15rem}.wiki-updated{font-style:italic}.wiki-updated::before{content:none}.wiki-updated::after{content:none}.tag-list{font-family:"JetBrains Mono",monospace;font-size:.8rem;white-space:nowrap}.tag-muted{color:#d4d4d8}.tag-link{color:#a1a1aa;text-decoration:none;transition:color .2s}.tag-link:hover{color:#52525b;text-decoration:underline;text-underline-offset:2px}blockquote[class^=markdown-alert]{border-left:3px solid #d1d5db;padding:.75rem 1rem;margin:1.5rem 0;background:#fafafa;border-radius:0 .25rem .25rem 0;font-size:.875rem;color:#374151}blockquote[class^=markdown-alert] p{margin-bottom:0}blockquote[class^=markdown-alert]::before{display:block;font-family:"JetBrains Mono",monospace;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem;opacity:.7}.markdown-alert-note{border-left-color:#3b82f6}.markdown-alert-note::before{content:"note";color:#3b82f6}.markdown-alert-tip{border-left-color:#10b981}.markdown-alert-tip::before{content:"tip";color:#10b981}.markdown-alert-important{border-left-color:#8b5cf6}.markdown-alert-important::before{content:"important";color:#8b5cf6}.markdown-alert-warning{border-left-color:#f59e0b}.markdown-alert-warning::before{content:"warning";color:#f59e0b}.markdown-alert-caution{border-left-color:#ef4444}.markdown-alert-caution::before{content:"caution";color:#ef4444}footer{margin-top:4rem;padding-top:1.5rem;border-top:1px solid #f4f4f5}footer .footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;font-family:"JetBrains Mono",monospace;font-size:.8rem;color:#a1a1aa}footer .footer-inner a{color:#a1a1aa}footer .footer-inner a:hover{color:#52525b}footer .footer-links{display:flex;gap:1rem}@media (max-width: 640px){footer .footer-inner{flex-direction:column;align-items:flex-start}}@media (prefers-color-scheme: dark){body{background:#18181b;color:#d4d4d8}a{color:#a1a1aa}a:hover{color:#d4d4d8}header .site-title{color:#fafafa}header .site-title:hover{color:#fafafa}header .terminal-cursor{color:#71717a}header .current-path{color:#71717a}header nav a{color:#71717a}header nav a:hover{color:#a1a1aa}.homepage .bio{color:#9ca3af}.homepage .currently{color:#71717a}.homepage .currently .arrow{color:#52525b}.homepage .currently a{color:#9ca3af}.homepage .currently a:hover{color:#d4d4d8}.now-list li{border-left-color:#3f3f46;color:#d4d4d8}.now-list .now-label{color:#71717a}.now-list a{color:#d4d4d8}.now-list a:hover{color:#fafafa}.section-header h2{color:#e4e4e7}.section-header .section-path{color:#52525b}.post-list li{border-left-color:#3f3f46}.post-list li:hover{border-left-color:#71717a}.post-list li a.post-title{color:#d4d4d8}.post-list li:hover a.post-title{color:#fafafa}.post-list .post-date{color:#71717a}.see-all{color:#71717a}.see-all:hover{color:#a1a1aa}.section-page h1{color:#fafafa}.section-page .section-description{color:#9ca3af}article{color:#d4d4d8}article h1.article-title{color:#e4e4e7}article .post-meta{color:#71717a}article .content h1,article .content h2,article .content h3,article .content h4{color:#fafafa}article .content a{color:#60a5fa}article .content a:hover{color:#93c5fd}article .content blockquote{border-left-color:#52525b;color:#9ca3af}article .content :not(pre)>code{background-color:#27272a;color:#f472b6}article .content hr{border-top-color:#3f3f46}article .content table th,article .content table td{border-color:#3f3f46}article .content table th{background:#27272a;color:#fafafa}article .content .copy-button{color:#71717a}article .content .copy-button:hover{color:#d4d4d8;background-color:rgba(255,255,255,.1)}.wiki-list li{border-left-color:#3f3f46}.wiki-list li:hover{border-left-color:#71717a}.wiki-list .wiki-link{color:#d4d4d8}.wiki-list .wiki-link:hover{color:#fafafa}.wiki-list .wiki-desc{color:#71717a}.tag-muted{color:#52525b}.tag-link{color:#71717a}.tag-link:hover{color:#a1a1aa}blockquote[class^=markdown-alert]{border-left-color:#52525b;background:#27272a;color:#d4d4d8}.markdown-alert-note{border-left-color:#3b82f6}.markdown-alert-tip{border-left-color:#10b981}.markdown-alert-important{border-left-color:#8b5cf6}.markdown-alert-warning{border-left-color:#f59e0b}.markdown-alert-caution{border-left-color:#ef4444}footer{border-top-color:#27272a}footer .footer-inner{color:#71717a}footer .footer-inner a{color:#71717a}footer .footer-inner a:hover{color:#a1a1aa}}