:root{--paper:#f4f1ea;--paper-alt:#fbf9f3;--ink:#2a2622;--ink-2:#6b6661;--rule:#d9d3c4;--bleu:#1e3a6b;--cire:#c9352b;--or:#e8a33d;--content-w:720px;--wide-w:1080px}*{box-sizing:border-box}html,body{margin:0;padding:0}img,svg{max-width:100%;height:auto;display:block}a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule)}a:hover{text-decoration-color:var(--ink)}body{background:var(--paper);color:var(--ink);font-family:inter tight,system-ui,-apple-system,Segoe UI,sans-serif;font-size:17px;line-height:1.6;min-height:100vh;display:flex;flex-direction:column}main.site-main{flex-grow:1}.site-header{border-bottom:1px solid var(--rule);background:var(--paper)}.site-header__inner{max-width:var(--wide-w);margin:0 auto;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.site-header__brand{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit}.site-header__brand:hover{text-decoration:none}.site-header__brand .chantecler-head{width:28px;height:28px}.site-header__brand span{font-size:1.1rem;font-weight:600;letter-spacing:-.01em}.site-header__nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem;font-size:.9rem}.site-header__nav a{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px}.site-header__nav a:hover{border-bottom-color:var(--ink)}.hero{max-width:var(--content-w);margin:0 auto;padding:4rem 1.5rem 2rem;text-align:center}.hero__title{font-family:eb garamond,Georgia,serif;font-size:clamp(2.25rem,5vw,3.25rem);font-weight:500;line-height:1.1;margin:1rem 0 1.5rem}.hero__lede{color:var(--ink-2);font-size:1.1rem;max-width:36rem;margin:0 auto}.overline{font-family:jetbrains mono,ui-monospace,monospace;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin:0}.post-list{max-width:var(--content-w);margin:2rem auto;padding:0 1.5rem;display:flex;flex-direction:column;gap:2.5rem}.post-card{border-bottom:1px solid var(--rule);padding-bottom:2.5rem}.post-card:last-child{border-bottom:none}.post-card__tag{display:inline-block;font-family:jetbrains mono,monospace;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;border-bottom:1px dotted var(--rule);padding-bottom:1px;margin-bottom:.5rem}.post-card__title{font-family:eb garamond,Georgia,serif;font-size:1.85rem;font-weight:500;line-height:1.15;margin:.25rem 0 .5rem}.post-card__title a{text-decoration:none;color:var(--ink)}.post-card__title a:hover{color:var(--bleu)}.post-card__date{font-family:jetbrains mono,monospace;font-size:.8rem;color:var(--ink-2)}.post-card__excerpt{color:var(--ink-2);margin:.75rem 0 1rem;line-height:1.55}.post-card__more{text-decoration:none;font-weight:500;color:var(--ink);border-bottom:1px solid var(--rule)}.post-card__more:hover{border-bottom-color:var(--ink)}.post,.page{max-width:var(--content-w);margin:0 auto;padding:3rem 1.5rem 4rem}.post__head,.page__head{text-align:center;margin-bottom:2.5rem}.post__tag{display:inline-block;font-family:jetbrains mono,monospace;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;margin-bottom:.75rem}.post__title,.page__title{font-family:eb garamond,Georgia,serif;font-size:clamp(2rem,4.5vw,2.75rem);font-weight:500;line-height:1.15;margin:.25rem 0 1rem;letter-spacing:-.01em}.post__meta{font-family:jetbrains mono,monospace;font-size:.8rem;color:var(--ink-2);margin:0}.post__cover,.page__cover{margin:2rem 0}.post__cover img,.page__cover img{width:100%;border-radius:4px;border:1px solid var(--rule)}.post__cover figcaption{font-size:.85rem;color:var(--ink-2);text-align:center;margin-top:.5rem}.post__body,.page__body{font-size:1.1rem;line-height:1.75}.post__body p,.page__body p{margin:1.25rem 0}.post__body h2,.page__body h2{font-family:eb garamond,Georgia,serif;font-size:1.75rem;font-weight:500;line-height:1.2;margin:2.5rem 0 1rem}.post__body h3,.page__body h3{font-size:1.25rem;font-weight:600;margin:2rem 0 .75rem}.post__body blockquote,.page__body blockquote{border-left:3px solid var(--cire);padding:.25rem 1.25rem;margin:1.5rem 0;color:var(--ink-2);font-style:italic}.post__body code,.page__body code{font-family:jetbrains mono,monospace;font-size:.9em;background:var(--paper-alt);padding:.1rem .3rem;border-radius:3px;border:1px solid var(--rule)}.post__body pre,.page__body pre{background:var(--paper-alt);border:1px solid var(--rule);border-radius:6px;padding:1rem 1.25rem;overflow-x:auto;font-size:.9rem;line-height:1.6}.post__body pre code,.page__body pre code{background:0 0;border:none;padding:0}.post__body img,.page__body img{border-radius:4px;border:1px solid var(--rule);margin:1.5rem 0}.post__body a,.page__body a{color:var(--bleu);text-decoration-color:var(--bleu)}.post__tags{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:.5rem}.post__tags .post__tag{background:var(--paper-alt);border:1px solid var(--rule);border-radius:9999px;padding:.25rem .65rem;margin:0}.pagination{max-width:var(--content-w);margin:2rem auto 4rem;padding:1.5rem;display:flex;justify-content:space-between;font-family:jetbrains mono,monospace;font-size:.85rem;border-top:1px solid var(--rule)}.pagination a{color:var(--ink);text-decoration:none}.pagination a:hover{color:var(--bleu)}.site-footer{border-top:1px solid var(--rule);background:var(--paper);margin-top:4rem}.site-footer__inner{max-width:var(--wide-w);margin:0 auto;padding:2rem 1.5rem;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;font-family:jetbrains mono,monospace;font-size:.75rem;color:var(--ink-2)}.site-footer a{color:var(--ink-2)}.site-footer a:hover{color:var(--ink)}@media(max-width:600px){body{font-size:16px}.site-header__nav ul{gap:1rem;font-size:.85rem}.hero{padding:2.5rem 1.5rem 1.5rem}.post-card__title{font-size:1.5rem}.post__title,.page__title{font-size:1.85rem}}.lang-switcher{display:inline-flex;align-items:center;gap:.15rem;margin-left:1rem}.lang-btn{padding:.2rem .4rem;background:0 0;border:none;color:var(--ink-2);text-decoration:none;font-family:jetbrains mono,monospace;font-size:11px;letter-spacing:.05em;transition:color .15s ease}.lang-btn:hover{color:var(--ink)}.lang-btn.lang-active{color:var(--ink);font-weight:700}.lang-sep{color:var(--ink-2);opacity:.5;font-family:jetbrains mono,monospace;font-size:11px}.post__translated{font-family:jetbrains mono,monospace;font-size:.8rem;color:var(--ink-2);margin-top:1rem}.post__translated a{color:var(--bleu);text-decoration-color:var(--bleu);margin-left:.25rem}.highlight{margin:1.5rem 0}.highlight pre,.highlight .chroma{background:var(--paper-alt)!important;border:1px solid var(--rule);border-radius:6px;padding:1rem 1.25rem;overflow-x:auto;font-size:.9rem;line-height:1.6;color:var(--ink)}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:var(--bleu);font-weight:600}.chroma .s,.chroma .sb,.chroma .sc,.chroma .s1,.chroma .s2,.chroma .sa,.chroma .sd,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .ss{color:var(--cire)}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:var(--ink-2);font-style:italic}.chroma .nf{color:#8a5d12;font-weight:500}.chroma .nc{color:#8a5d12;font-weight:600}.chroma .nb{color:var(--bleu)}.chroma .nn{color:var(--ink)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#8a5d12}.chroma .o,.chroma .ow{color:var(--ink)}.chroma .p{color:var(--ink-2)}.chroma .err{color:var(--ink);background:0 0}.chroma .nx,.chroma .ni,.chroma .nl,.chroma .nt,.chroma .nv{color:var(--ink)}