@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/jetbrains-mono-normal-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/jetbrains-mono-normal-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:literata;font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/literata-italic-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:literata;font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/literata-italic-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:literata;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/literata-normal-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:literata;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/literata-normal-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:roboto slab;font-style:normal;font-weight:300 400;font-display:swap;src:url(/fonts/roboto-slab-normal-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:roboto slab;font-style:normal;font-weight:300 400;font-display:swap;src:url(/fonts/roboto-slab-normal-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#1e1b11;--surface:#29251a;--rule:#3d3828;--text:#e6dfcc;--strong:#f6f0df;--muted:#a39a82;--accent:#dba600;--accent2:#8ec7a2;--font-title:"Roboto Slab", Georgia, serif;--font-text:"Literata", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--col:46rem;--wide:60rem}*{box-sizing:border-box}html{font-size:17px;background:var(--bg);color-scheme:dark}body{margin:0;color:var(--text);background:var(--bg);font-family:var(--font-text);font-size:1.08rem;font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:.2em}::selection{background:var(--accent);color:var(--bg)}.site-head{max-width:var(--wide);margin:0 auto;padding:1.6rem 1.25rem 1.2rem;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 2rem;border-bottom:1px solid var(--rule)}.site-name{font-family:var(--font-title);font-size:1.55rem;font-weight:400;color:var(--strong)}.site-name:hover{text-decoration:none;color:var(--accent)}.site-head nav{display:flex;flex-wrap:wrap;gap:.3rem 1.6rem}.site-head nav a,.meta,.card time,.rows time,.pager,.site-foot,.page-title small,.year h2 small,.tagcloud small{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}.site-head nav a{color:var(--muted)}.site-head nav a:hover,.site-head nav a[aria-current]{color:var(--strong);text-decoration:none}.site-head nav a[aria-current]{box-shadow:0 .45rem 0 -.35rem var(--accent)}main{max-width:var(--col);margin:0 auto;padding:3.5rem 1.25rem 4rem}h1,h2,h3,h4{font-family:var(--font-title);font-weight:400;color:var(--strong);line-height:1.2}.post-head h1,.page-title{font-size:clamp(2.1rem,5.2vw,3.3rem);font-weight:300;letter-spacing:-.01em;margin:0 0 1.1rem}.page-title small{color:var(--accent2);display:block;margin-bottom:.5rem}.post-content h1{font-size:2rem;margin:3rem 0 1rem}.post-content h2{font-size:1.75rem;margin:2.8rem 0 .9rem}.post-content h3{font-size:1.3rem;margin:2.2rem 0 .7rem}.post-content h4{font-size:1.1rem;margin:1.8rem 0 .6rem}.meta{color:var(--muted);display:flex;flex-wrap:wrap;gap:.3rem 1.4rem;margin:0 0 2.6rem}.meta time{color:var(--accent2)}.meta .tags{display:flex;flex-wrap:wrap;row-gap:.3rem}.meta .tags a{color:var(--muted);margin-right:.9rem}.meta .tags a::before{content:"#";color:var(--rule)}.meta .tags a:hover{color:var(--accent)}.post-content,.card{overflow-wrap:break-word}.post-content p,.post-content ul,.post-content ol{margin:0 0 1.25rem}.post-content li{margin:.3rem 0}.post-content li>ul,.post-content li>ol{margin-bottom:.4rem}.post-content li::marker{color:var(--accent2)}.post-content strong{color:var(--strong);font-weight:600}.post-content hr{border:0;border-top:1px solid var(--rule);margin:2.5rem 0}.post-content blockquote{margin:1.8rem 0;padding:.1rem 0 .1rem 1.3rem;border-left:3px solid var(--accent2);color:var(--strong);font-size:1.08em}.post-content blockquote p:last-child{margin-bottom:0}.post-content img{display:block;height:auto;border-radius:12px;margin:2.2rem 0;max-width:min(var(--wide),100vw - 2.5rem);position:relative;left:50%;transform:translateX(-50%)}.post-content video,.post-content iframe{max-width:100%}code,pre{font-family:var(--font-mono);font-size:.82em}:not(pre)>code{background:var(--surface);border:1px solid var(--rule);border-radius:5px;padding:.1em .38em;color:var(--accent2);font-size:.8em;overflow-wrap:anywhere}a>code{color:inherit!important}pre{background:var(--surface)!important;border:1px solid var(--rule);border-radius:10px;padding:1rem 1.15rem;margin:1.6rem 0;overflow-x:auto;line-height:1.55;font-size:.8rem;color:var(--text)}.highlight .chroma{background:0 0}pre code{font-size:inherit}table{border-collapse:collapse;margin:1.6rem 0;font-size:.92em;display:block;overflow-x:auto}th,td{border-bottom:1px solid var(--rule);padding:.45rem .9rem .45rem 0;text-align:left}th{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:400}.card{margin:0 0 4.2rem}.card-img{display:block;margin-bottom:1.5rem}.card-img img{display:block;width:100%;aspect-ratio:2/1;object-fit:cover;border-radius:12px;border:1px solid var(--rule)}.card time{color:var(--muted)}.card h2{font-size:clamp(1.7rem,4vw,2.3rem);font-weight:300;margin:.5rem 0 .7rem}.card h2 a{color:var(--strong)}.card h2 a:hover{color:var(--accent);text-decoration:none}.card p{color:var(--muted);margin:0}.pager{display:flex;justify-content:space-between;border-top:1px solid var(--rule);padding-top:1.3rem}.year{display:grid;grid-template-columns:6rem 1fr;margin-top:2.6rem}.year h2{font-size:1.6rem;font-weight:300;margin:0;color:var(--accent2)}.year h2 small{display:block;color:var(--muted);margin-top:.3rem}.rows{list-style:none;margin:0;padding:0}.rows li{display:flex;gap:1.2rem;align-items:baseline;padding:.5rem 0;border-bottom:1px solid var(--rule)}.rows time{color:var(--muted);flex:none;min-width:3.6rem}.rows a{color:var(--text)}.rows a:hover{color:var(--accent);text-decoration:none}.tagcloud a{display:inline-block;margin:0 1.2rem .7rem 0;color:var(--text)}.tagcloud a:hover{color:var(--accent);text-decoration:none}.tagcloud small{color:var(--muted)}.site-foot{max-width:var(--wide);margin:0 auto;padding:1.4rem 1.25rem 2.5rem;border-top:1px solid var(--rule);color:var(--muted);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}.site-foot a{color:var(--muted)}.site-foot a:hover{color:var(--accent)}@media(max-width:40rem){html{font-size:16px}main{padding-top:2.2rem}.year{grid-template-columns:1fr;gap:.6rem}.post-content img,.card-img img{border-radius:8px}}.bg{color:#cdd6f4;background-color:#1e1e2e}.chroma{color:#cdd6f4;background-color:#1e1e2e;-webkit-text-size-adjust:none}.chroma .x{color:#cdd6f4}.chroma .err{color:#f38ba8}.chroma .cl{color:#cdd6f4}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#45475a}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f849c}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f849c}.chroma .line{display:flex}.chroma .k{color:#cba6f7}.chroma .kc{color:#fab387}.chroma .kd{color:#f38ba8}.chroma .kn{color:#94e2d5}.chroma .kp{color:#cba6f7}.chroma .kr{color:#cba6f7}.chroma .kt{color:#f38ba8}.chroma .na{color:#89b4fa}.chroma .nc{color:#f9e2af}.chroma .no{color:#f9e2af}.chroma .nd{color:#89b4fa;font-weight:700}.chroma .ni{color:#94e2d5}.chroma .ne{color:#fab387}.chroma .nl{color:#89dceb}.chroma .nn{color:#fab387}.chroma .nx{color:#cdd6f4}.chroma .py{color:#fab387}.chroma .nt{color:#cba6f7}.chroma .nb{color:#89dceb}.chroma .bp{color:#89dceb}.chroma .nv{color:#f5e0dc}.chroma .vc{color:#f5e0dc}.chroma .vg{color:#f5e0dc}.chroma .vi{color:#f5e0dc}.chroma .vm{color:#f5e0dc}.chroma .nf{color:#89b4fa}.chroma .fm{color:#89b4fa}.chroma .ld{color:#cdd6f4}.chroma .s{color:#a6e3a1}.chroma .sa{color:#f38ba8}.chroma .sb{color:#a6e3a1}.chroma .sc{color:#a6e3a1}.chroma .dl{color:#89b4fa}.chroma .sd{color:#6c7086}.chroma .s2{color:#a6e3a1}.chroma .se{color:#89b4fa}.chroma .sh{color:#6c7086}.chroma .si{color:#a6e3a1}.chroma .sx{color:#a6e3a1}.chroma .sr{color:#94e2d5}.chroma .s1{color:#a6e3a1}.chroma .ss{color:#a6e3a1}.chroma .m{color:#fab387}.chroma .mb{color:#fab387}.chroma .mf{color:#fab387}.chroma .mh{color:#fab387}.chroma .mi{color:#fab387}.chroma .il{color:#fab387}.chroma .mo{color:#fab387}.chroma .o{color:#89dceb;font-weight:700}.chroma .ow{color:#89dceb;font-weight:700}.chroma .or{color:#89dceb;font-weight:700}.chroma .c{color:#6c7086;font-style:italic}.chroma .ch{color:#585b70;font-style:italic}.chroma .cm{color:#6c7086;font-style:italic}.chroma .c1{color:#6c7086;font-style:italic}.chroma .cs{color:#6c7086;font-style:italic}.chroma .cp{color:#6c7086;font-style:italic}.chroma .cpf{color:#6c7086;font-weight:700;font-style:italic}.chroma .gd{color:#f38ba8;background-color:#313244}.chroma .ge{font-style:italic}.chroma .gr{color:#f38ba8}.chroma .gh{color:#fab387;font-weight:700}.chroma .gi{color:#a6e3a1;background-color:#313244}.chroma .go{color:#cdd6f4}.chroma .gp{color:#cdd6f4}.chroma .gs{font-weight:700}.chroma .gu{color:#fab387;font-weight:700}.chroma .gt{color:#f38ba8}.chroma .gl{text-decoration:underline}