@font-face{font-family:ibm plex sans;src:url(/fonts/ibm-plex-sans-latin-var.woff2)format("woff2");font-weight:100 700;font-style:normal;font-display:swap}@font-face{font-family:ibm plex sans;src:url(/fonts/ibm-plex-sans-latin-var-italic.woff2)format("woff2");font-weight:100 700;font-style:italic;font-display:swap}@font-face{font-family:ibm plex sans condensed;src:url(/fonts/ibm-plex-sans-condensed-latin-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg:#1c1c1c;--line:#333;--text:#e4e4e2;--muted:#9a9a96;--accent:#75b748;--accent-hover:#a3d87c;--wide:72rem;--gutter:clamp(1rem, 4vw, 2rem);--step--1:0.875rem;--step-0:1.125rem;--step-1:1.3rem;--step-2:1.6rem;--step-3:clamp(1.75rem, 4vw, 2.1rem);--step-4:clamp(2rem, 5vw, 2.6rem);color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{background:var(--bg);color:var(--text);font-family:ibm plex sans,system-ui,sans-serif;font-size:100%;line-height:1.6;-webkit-text-size-adjust:100%}body{margin:0;font-size:var(--step-0);min-height:100vh;display:flex;flex-direction:column}main{flex:1;width:100%;max-width:calc(var(--wide) + 2 * var(--gutter));margin:0 auto;padding:0 var(--gutter)4rem}h1,h2,h3,h4,.brand-name,.chrono-year{font-family:ibm plex sans condensed,ibm plex sans,system-ui,sans-serif;font-weight:700;line-height:1.2;text-wrap:balance}h1{font-size:var(--step-3);margin:0 0 .75rem}h2{font-size:var(--step-2);margin:2.5rem 0 1rem}h3{font-size:var(--step-1);margin:2rem 0 .75rem}h4{font-size:var(--step-0);margin:1.5rem 0 .5rem}p{margin:0 0 1.1em}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{color:var(--accent-hover)}h1 a,h2 a{color:inherit;text-decoration:none}h1 a:hover,h2 a:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--accent-hover);outline-offset:2px;border-radius:2px}img{max-width:100%;height:auto;display:block}.skip{position:absolute;left:-999px;top:.5rem;background:var(--accent);color:var(--bg);padding:.5rem 1rem;z-index:10}.skip:focus{left:.5rem}.site-header{max-width:calc(var(--wide) + 2 * var(--gutter));width:100%;margin:0 auto;padding:1.25rem var(--gutter)2.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem}.brand{display:flex;align-items:center;gap:.75rem;color:var(--text);text-decoration:none}.brand:hover{color:var(--accent)}.brand-fish{width:56px;height:56px;border-radius:50%;background:var(--text)}.brand-text{display:flex;flex-direction:column}.brand-name{font-size:var(--step-2);line-height:1.1}.brand-tagline{color:var(--muted);font-size:var(--step--1)}.header-right{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 2rem}.social{list-style:none;margin:0;padding:0;display:flex;gap:.25rem}.social a{display:grid;place-items:center;width:2.25rem;height:2.25rem;color:var(--muted)}.social a:hover{color:var(--accent)}.site-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}.site-nav a{color:var(--text);text-decoration:none;font-weight:600;padding:.25rem 0;border-bottom:2px solid transparent}.site-nav a:hover{color:var(--accent)}.site-nav a[aria-current=page]{border-bottom-color:var(--accent)}@media(min-width:56rem){.home{display:grid;grid-template-columns:minmax(0,1fr)19rem;gap:4rem;align-items:start}}.home-heading{font-size:var(--step-1);color:var(--muted);margin:0 0 1rem}.home-sets{margin-top:3rem}@media(min-width:56rem){.home-sets{margin-top:0}}.home-more{margin-top:1.25rem}.teaser{padding:1.5rem 0;border-top:1px solid var(--line)}.teaser:first-of-type{border-top:0;padding-top:0}.teaser h3{font-size:var(--step-2);margin:0 0 .25rem}.teaser h3 a{color:var(--text);text-decoration:none}.teaser h3 a:hover{color:var(--accent)}.teaser .meta{margin-bottom:.75rem}.teaser p:last-child{margin-bottom:0}.teaser-image{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:1.5rem;align-items:start}.teaser-pic{display:block;margin:.35rem 0 0}.teaser-pic img{width:100%}@media(max-width:30rem){.teaser-image{grid-template-columns:6rem minmax(0,1fr);gap:1rem}}.chrono{list-style:none;margin:0;padding:0}.chrono-item{display:grid;grid-template-columns:5.5rem 1fr;column-gap:1rem;align-items:baseline;padding:.35rem 0}.chrono-newyear{border-top:1px solid var(--line);padding-top:.9rem;margin-top:.55rem}.chrono-item:first-child{border-top:0;margin-top:0}.chrono-year{font-size:var(--step-1);color:var(--accent);font-variant-numeric:tabular-nums;grid-row:span 2}.chrono-compact .chrono-item{grid-template-columns:3.25rem 1fr;column-gap:.75rem;padding:.2rem 0}.chrono-compact .chrono-newyear{padding-top:.6rem;margin-top:.4rem}.chrono-compact .chrono-year{font-size:var(--step-0)}.chrono-compact .chrono-title{font-weight:500;line-height:1.35}.chrono-item:not(.chrono-newyear) .chrono-year{visibility:hidden}.chrono-title{grid-column:2;font-weight:600;color:var(--text);text-decoration:none}.chrono-title:hover{color:var(--accent);text-decoration:underline}.chrono-note{grid-column:2;color:var(--muted);font-size:var(--step--1)}@media(max-width:30rem){.chrono-item{grid-template-columns:3.75rem 1fr}.chrono-year{font-size:var(--step-0)}}@media(min-width:56rem){.with-aside{display:grid;grid-template-columns:minmax(0,1fr)16rem;gap:4rem;align-items:start}}.blog-aside{margin-top:3rem}@media(min-width:56rem){.blog-aside{margin-top:0}}.blog-aside h2{font-size:var(--step-0);color:var(--muted);margin:0 0 .5rem}.blog-aside ul+h2{margin-top:2rem}.term-list{list-style:none;margin:0;padding:0}.term-list li{display:flex;justify-content:space-between;padding:.2rem 0}.term-list .count{color:var(--muted);font-variant-numeric:tabular-nums}.tag-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem 1rem}.list-header{margin-bottom:2rem}.list-header p{color:var(--muted)}.postlist{list-style:none;margin:0;padding:0}.postlist li{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;padding:.5rem 0;border-top:1px solid var(--line)}.postlist time,.postlist .count{color:var(--muted);font-variant-numeric:tabular-nums}.postlist li:has(.count){grid-template-columns:1fr auto}@media(max-width:30rem){.postlist li{grid-template-columns:1fr;gap:0}}.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1.5rem}.cards a{color:var(--text);text-decoration:none;display:block}.cards a:hover span{color:var(--accent)}.cards span{display:block;margin-top:.5rem;font-weight:600;line-height:1.3}.entry-header{margin-bottom:1.5rem}.meta{color:var(--muted);margin:0}.meta a{color:inherit}.featured{display:block;margin:0 0 2rem}.featured img{width:100%}@media(max-width:55.99rem){.entry-split .featured img{width:auto;max-height:50vh}}@media(min-width:56rem){.entry-split{display:grid;grid-template-columns:minmax(0,24rem)minmax(0,1fr);grid-template-areas:"aside header" "aside body";grid-template-rows:auto 1fr;column-gap:2.5rem}.entry-split .entry-header{grid-area:header}.entry-split .entry-aside{grid-area:aside}.entry-split .entry-body{grid-area:body;min-width:0}.entry-split .featured{margin:.5rem 0 0}}.facts{display:grid;grid-template-columns:6rem 1fr;gap:.4rem 1rem;margin:0 0 2rem;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.facts dt{color:var(--muted)}.facts dd{margin:0}.prose{overflow-wrap:break-word}.prose blockquote{margin:1.5rem 0;padding-left:1.25rem;border-left:3px solid var(--accent);color:var(--muted)}.prose h1{font-size:var(--step-2)}.embed{margin:1.5rem 0}.embed iframe{display:block;width:100%;border:0;background:var(--line)}.embed-video{position:relative;aspect-ratio:4/3;margin-top:0}.embed-video iframe{height:100%}.tags{color:var(--muted);margin-top:2rem}.comments{margin-top:3rem}.comments h2{font-size:var(--step-1)}.comment{padding:1rem 0;border-top:1px solid var(--line)}.comment-meta{color:var(--muted);margin-bottom:.25rem}.comment-meta strong{color:var(--text)}.pager{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line)}.pager a{color:var(--text);text-decoration:none;line-height:1.35}.pager a:hover{color:var(--accent)}.pager span{display:block;color:var(--muted);font-size:var(--step--1)}.pager-older{grid-column:2;text-align:right}.site-footer{color:var(--muted);font-size:var(--step--1);border-top:1px solid var(--line);padding:1.5rem var(--gutter)2rem;text-align:center}.site-footer p{margin:.25rem 0}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}