:root{--paper:#fafbfd;--ink:#080b10;--blue:#1544c7;--blue-dark:#0e2e86;--blue-tint:#e4ebfb;--blue-tint-2:#d2def7;--accent:#c7501b;--line:#b7c0ce;--muted:#454c58;--sans:"IBM Plex Sans", sans-serif;--mono:"IBM Plex Mono", monospace;--content-w:720px}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.001ms!important;animation-duration:.001ms!important}}body{color:var(--ink);font-family:var(--sans);background:var(--paper);margin:0;font-size:17px;line-height:1.65}.grid-bg{z-index:-1;background:linear-gradient(#1544c717 1px,#0000 1px) 0 0/100% 32px,linear-gradient(90deg,#1544c717 1px,#0000 1px) 0 0/32px 100%;position:fixed;inset:0}a{color:var(--blue);font-weight:600;text-decoration:none;transition:color .15s}a:hover{color:var(--blue-dark);text-decoration-offset:3px;text-decoration:underline 1.5px}a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}h1,h2,h3{font-family:var(--sans);color:var(--ink);letter-spacing:-.01em;margin:0;font-weight:700}p{color:var(--ink);margin:0 0 14px;font-size:16.5px}.wrap{max-width:var(--content-w);margin:0 auto;padding:0 24px}.site-header{border-bottom:2px solid var(--ink);background:var(--paper);z-index:10;position:sticky;top:0}.site-header .wrap{justify-content:space-between;align-items:center;padding-top:20px;padding-bottom:20px;display:flex}.brand{font-family:var(--mono);color:var(--ink);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.brand span{color:var(--blue)}.brand small{font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-left:1px solid var(--line);margin-left:2px;padding-left:8px;font-size:11px;font-weight:600}.site-nav{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;gap:22px;font-size:12.5px;font-weight:600;display:flex}.site-nav a{color:var(--muted)}.site-nav a:hover,.site-nav a.active{color:var(--ink);text-decoration:none}.fig-tag{font-family:var(--mono);color:#fff;background:var(--blue);letter-spacing:.04em;flex-shrink:0;padding:3px 8px;font-size:12px;font-weight:700}.section-head{align-items:center;gap:14px;margin:48px 0 28px;display:flex}.section-head h2{font-size:22px}.section-head .ruler{background:var(--line);flex:1;height:1px}.home-intro{border-bottom:2px solid var(--ink);padding:44px 0 8px}.home-kicker{font-family:var(--mono);color:var(--blue);text-transform:uppercase;letter-spacing:.05em;margin:0 0 10px;font-size:12.5px;font-weight:700}.home-heading{letter-spacing:-.015em;margin-bottom:16px;font-size:30px;line-height:1.2}.home-desc{color:var(--muted);max-width:56ch;margin-bottom:32px;font-size:16px;line-height:1.65}.post-list{border-top:2px solid var(--ink);flex-direction:column;display:flex}.post-row{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;padding:22px 6px;transition:background-color .15s,padding-left .15s;display:flex}.post-row:hover{background:var(--blue-tint);padding-left:12px;text-decoration:none}.post-meta{font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex}.post-meta .tag{color:#fff;background:var(--ink);padding:2px 6px;transition:background-color .15s}.post-row:hover .post-meta .tag{background:var(--blue)}.post-title{color:var(--ink);font-size:19px;font-weight:700}.post-excerpt{color:var(--muted);font-size:15px;line-height:1.55}.post-header{margin:44px 0 8px}.post-header .post-meta{margin-bottom:14px}.post-header h1{margin-bottom:6px;font-size:32px;line-height:1.18}.post-body{margin:32px 0 56px;font-size:17px;line-height:1.75}.post-body h2{margin:36px 0 14px;font-size:22px}.post-body h3{margin:28px 0 12px;font-size:18px}.post-body p{margin:0 0 18px}.post-body ul,.post-body ol{margin:0 0 18px;padding-left:22px}.post-body li{margin-bottom:6px}.post-body a{text-underline-offset:2px}.post-body code{font-family:var(--mono);background:var(--blue-tint);color:var(--blue-dark);border-radius:2px;padding:2px 5px;font-size:.88em}.post-body pre{background:var(--ink);color:#eaf0ff;border-left:3px solid var(--blue);margin:0 0 22px;padding:18px 20px;font-size:14px;line-height:1.6;overflow-x:auto}.post-body pre code{color:inherit;background:0 0;padding:0}.post-body blockquote{border-left:3px solid var(--blue);color:var(--muted);margin:0 0 18px;padding:2px 0 2px 18px;font-style:italic}.post-body hr{border:none;border-top:1px solid var(--line);margin:32px 0}.post-body img{border:1px solid var(--line);max-width:100%}.back-link{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--muted);align-items:center;gap:6px;margin-top:8px;font-size:12.5px;font-weight:700;display:inline-flex}.back-link:hover{color:var(--blue);text-decoration:none}.site-footer{border-top:2px solid var(--ink);margin-top:56px;padding:36px 0 32px}.footer-contact{margin-bottom:26px}.footer-contact .fig-tag{margin-right:10px}.footer-contact-label{font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:700}.footer-channels{flex-wrap:wrap;gap:10px 14px;margin-top:14px;display:flex}.footer-channel{border:1px solid var(--line);color:var(--ink);align-items:center;gap:9px;padding:9px 12px;text-decoration:none;transition:border-color .15s,background-color .15s;display:flex}.footer-channel:hover{border-color:var(--blue);background:var(--blue-tint);text-decoration:none}.footer-channel-tag{font-family:var(--mono);color:#fff;background:var(--ink);text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;font-size:10.5px;font-weight:700;transition:background-color .15s}.footer-channel:hover .footer-channel-tag{background:var(--blue)}.footer-channel-value{font-family:var(--mono);color:var(--ink);font-size:13px;font-weight:600}.footer-bottom{border-top:1px solid var(--line);font-family:var(--mono);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:10px;padding-top:20px;font-size:12px;display:flex}.footer-bottom a{color:var(--muted);font-weight:600}.footer-bottom a:hover{color:var(--blue)}@media (width<=480px){.footer-channels{flex-direction:column;align-items:flex-start}.footer-channel{width:100%}}@media (width<=640px){.wrap{padding:0 18px}.post-header h1{font-size:26px}.site-nav{gap:14px}}
