
:root{--paper:#F7F8F6;--ink:#14213D;--ink-2:#3B4A6B;--rule:#C9CFD6;--teal:#0F766E;--ochre:#B7791F;--slate:#64748B;--tint:#EEF1F4}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0F1720;--ink:#E6EAF0;--ink-2:#B7C0CE;--rule:#2A3644;--teal:#2DD4BF;--ochre:#F0B860;--slate:#94A3B8;--tint:#16202B}}
:root[data-theme=dark]{--paper:#0F1720;--ink:#E6EAF0;--ink-2:#B7C0CE;--rule:#2A3644;--teal:#2DD4BF;--ochre:#F0B860;--slate:#94A3B8;--tint:#16202B}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Source Serif 4",Georgia,"Times New Roman",serif;font-size:1.0625rem;line-height:1.6}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{color:var(--teal)}
a:focus-visible,button:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.wrap{max-width:46rem;margin:0 auto;padding:0 1.25rem}
header.site{border-bottom:1px solid var(--rule)}
header.site .wrap{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:baseline;padding-top:1.1rem;padding-bottom:1.1rem}
header.site .name{font-weight:600;text-decoration:none;margin-right:auto}
nav.main{display:flex;flex-wrap:wrap;gap:.25rem 1.1rem;font-size:.95rem}nav.main a{text-decoration:none}nav.main a[aria-current]{text-decoration:underline}
main{padding:2.5rem 0 3rem}
h1{font-size:1.9rem;line-height:1.25;font-weight:600;letter-spacing:-.01em;margin:0 0 1rem}
h2{font-size:1.3rem;line-height:1.3;font-weight:600;margin:2.4rem 0 .7rem}h3{font-size:1.05rem;margin:1.6rem 0 .4rem}
p{margin:0 0 1rem;max-width:66ch}ul,ol{padding-left:1.25rem;max-width:66ch}li{margin:.3rem 0}
.sub{color:var(--ink-2);font-size:1rem}
.ledger{margin:2rem 0 0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.ledger li{display:grid;grid-template-columns:7.5rem 1fr auto;gap:.75rem;align-items:baseline;padding:.9rem 0;border-bottom:1px solid var(--rule)}
.ledger .k{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}
.ledger .k.built{color:var(--teal)}.ledger .k.found{color:var(--ochre)}.ledger .k.spec{color:var(--slate)}
.ledger .open{font-size:.95rem;white-space:nowrap}
@media (max-width:540px){.ledger li{grid-template-columns:1fr;gap:.25rem}.ledger .open{justify-self:start}}
.tablewrap{overflow-x:auto;margin:1rem 0 1.5rem;border:1px solid var(--rule)}
table{border-collapse:collapse;width:100%;font-size:.92rem;min-width:36rem}
th,td{text-align:left;vertical-align:top;padding:.55rem .65rem;border-bottom:1px solid var(--rule)}th{background:var(--tint);font-weight:600}
td.mono,th.mono{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;white-space:nowrap}
.st{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;font-size:.8rem;white-space:nowrap}
.st.ok{color:var(--teal)}.st.pend{color:var(--ochre)}.st.no{color:var(--slate)}
.note{background:var(--tint);border-left:3px solid var(--rule);padding:.8rem 1rem;margin:1.2rem 0;max-width:66ch}
.tag{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;font-size:.78rem;color:var(--ink-2);border:1px solid var(--rule);padding:.1rem .4rem;border-radius:3px;white-space:nowrap}
.timeline{list-style:none;padding:0;margin:0 0 1.5rem;border-top:1px solid var(--rule)}
.timeline li{display:grid;grid-template-columns:9.5rem 1fr;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--rule)}
.timeline .d{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;font-size:.8rem;color:var(--ink-2)}
@media (max-width:540px){.timeline li{grid-template-columns:1fr;gap:.2rem}}
footer.site{border-top:1px solid var(--rule);padding:1.4rem 0 2.2rem;font-size:.9rem;color:var(--ink-2)}
footer.site p{margin:.3rem 0}
.btn{display:inline-block;border:1px solid var(--ink);padding:.5rem .9rem;text-decoration:none;font-size:.95rem}
.btn:hover{border-color:var(--teal)}
