:root{color-scheme:light;--paper: #fbfbfa;--surface: #fff;--ink: #171a1c;--muted: #687176;--line: #e4e7e5;--accent: #e24c36;--accent-soft: #fff0ec;--green: #177b65;--blue: #315d9c;--code: #171d20;--serif: "DM Serif Display", Georgia, serif;--sans: "DM Sans", "Segoe UI", sans-serif;font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}:root[data-theme=dark]{color-scheme:dark;--paper: #15191b;--surface: #1c2224;--ink: #f2f3ef;--muted: #a5aeac;--line: #30383a;--accent: #ff795f;--accent-soft: #3a2825;--green: #6bc6a5;--blue: #8caff0;--code: #0e1214}*{box-sizing:border-box}html{min-width:320px;zoom:1.1;scroll-behavior:smooth}body{min-width:320px;margin:0;background:var(--paper);color:var(--ink);transition:background-color .18s ease,color .18s ease}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}::selection{background:var(--accent);color:#fff}.content-width{width:min(1000px,calc(100% - 64px));margin:0 auto}.eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 22px;color:var(--accent);font-size:13px;font-weight:700;text-transform:uppercase}.eyebrow:before{width:22px;height:1px;background:currentColor;content:""}.page-title{max-width:780px;margin:0;font-family:var(--serif);font-size:clamp(42px,6vw,72px);font-weight:400;line-height:1.03}.page-intro{max-width:640px;margin:20px 0 0;color:var(--muted);font-size:17px;line-height:1.75}.page-heading{padding:76px 0 48px;border-bottom:1px solid var(--line)}.section-label{color:var(--muted);font-size:13px;font-weight:700;text-transform:uppercase}.text-link{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:15px;font-weight:700;text-decoration-color:var(--accent);text-underline-offset:5px}.text-link span{color:var(--accent);transition:transform .16s ease}.text-link:hover span{transform:translate(4px)}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-flex;min-height:26px;align-items:center;padding:4px 9px;border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:600}.action-link{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:12px;padding:0 17px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:14px;font-weight:700;text-decoration:none;transition:background .16s ease,color .16s ease}.action-link:hover,.action-link.secondary{background:transparent;color:var(--ink)}.post-list{border-top:1px solid var(--line)}.post-row{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:24px;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none}.post-date{color:var(--muted);font-size:13px}.post-row h3,.post-row h2{margin:0 0 6px;color:var(--ink);font-family:var(--serif);font-size:21px;font-weight:400}.post-row p{max-width:600px;margin:0;color:var(--muted);font-size:14px;line-height:1.6}.post-arrow{color:var(--accent);font-size:20px;transition:transform .16s ease}.post-row:hover .post-arrow{transform:translate(4px)}.prose{max-width:740px;color:var(--muted);font-size:17px;line-height:1.85}.prose h2,.prose h3{margin:1.8em 0 .55em;color:var(--ink);font-family:var(--serif);font-weight:400;line-height:1.2}.prose h2{font-size:30px}.prose h3{font-size:23px}.prose a{color:var(--accent);text-underline-offset:3px}.prose blockquote{margin:24px 0;padding:4px 0 4px 20px;border-left:2px solid var(--accent);color:var(--ink)}.prose pre{overflow-x:auto;margin:24px 0;padding:20px;background:var(--code);color:#e8eee9;font-size:14px;line-height:1.7}.prose code:not(pre code){padding:2px 5px;background:var(--accent-soft);color:var(--accent);font-size:.88em}.prose img{max-width:100%}.token.comment,.token.prolog{color:#89958d}.token.keyword,.token.boolean{color:#f2a38c}.token.string,.token.attr-value{color:#b9d996}.token.function,.token.class-name{color:#8bc9db}.token.number,.token.constant{color:#dfbb78}@media(max-width:680px){.content-width{width:calc(100% - 40px)}.page-heading{padding:58px 0 34px}.page-title{font-size:clamp(40px,12vw,58px)}.page-intro{font-size:16px}.post-row{grid-template-columns:1fr auto;gap:8px 14px}.post-row>div:nth-child(2){grid-column:1}.post-arrow{grid-column:2;grid-row:1 / span 2}}
