@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600&display=swap');
:root{--paper:#f4f3ef;--ink:#17191c;--muted:#70747b;--rule:#cac9c3;--blue:#3159d8;--mono:'IBM Plex Mono',ui-monospace,monospace;--sans:Inter,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px}a{color:inherit;text-decoration:none}a:hover{color:var(--blue)}.wrap{width:min(calc(100% - 48px),96rem);margin:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.75rem;z-index:3}.nav{height:80px;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.brand{width:190px}.brand img{display:block;width:100%;height:auto}.nav nav,.nav>div,.links,.footer nav{display:flex;gap:28px;font:500 13px/1 var(--mono)}.nav>div{justify-content:flex-end}.hero{max-width:860px;padding:96px 0 80px}.kicker{margin:0 0 24px;color:var(--blue);font:600 12px/1.4 var(--mono);letter-spacing:.08em}.hero h1{margin:0;font-size:clamp(52px,6.5vw,88px);line-height:.95;letter-spacing:-.065em;font-weight:600}.role{margin:24px 0 0;font:500 20px/1.5 var(--mono)}.lead{max-width:820px;margin:32px 0 0;color:#3b3e43;font-size:24px;line-height:1.45;letter-spacing:-.025em}.links{margin-top:32px;flex-wrap:wrap}.accent{color:var(--blue);font-weight:600}.systems{border-top:1px solid var(--ink)}.section-head{display:flex;align-items:end;justify-content:space-between;padding:48px 0 20px;border-bottom:1px solid var(--rule)}.section-head .kicker{margin:0 0 12px}.section-head h2{margin:0;font-size:28px;letter-spacing:-.04em}.section-head small,.quiet small{color:var(--muted);font:400 12px/1.4 var(--mono)}.system{display:grid;grid-template-columns:.8fr 1.25fr 1fr;gap:48px;padding:42px 0;border-bottom:1px solid var(--rule)}.system small{color:var(--blue);font:600 12px/1.4 var(--mono)}.system h3{margin:14px 0 6px;font-size:28px;letter-spacing:-.04em}.system p{margin:0;color:#44474c;line-height:1.5}.system code{font:500 13px/1.6 var(--mono)}dl{display:grid;grid-template-columns:1fr 1.2fr;margin:16px 0 0;font:400 12px/1.6 var(--mono)}dt,dd{margin:0;padding:5px 0}dt{color:var(--muted)}pre{margin:0;padding:12px;background:#e7e6e1;overflow:auto;white-space:pre-wrap;font:500 12px/1.6 var(--mono)}.system .links{gap:18px;margin-top:16px;font-size:12px}.lower{display:grid;grid-template-columns:1.3fr .7fr;gap:64px;padding:80px 0;border-bottom:1px solid var(--rule)}.quiet{display:flex;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--ink);font:600 12px/1.4 var(--mono)}.quiet>span{color:var(--blue)}.note{display:grid;grid-template-columns:155px 1fr auto;gap:24px;padding:22px 0;border-bottom:1px solid var(--rule);align-items:start}.note small,.note span{color:var(--muted);font:400 11px/1.5 var(--mono)}.note strong{font-size:18px;line-height:1.35}.lower aside>pre{padding:24px 0;background:none;border-bottom:1px solid var(--rule);line-height:2}.lower aside>p{color:var(--muted);line-height:1.6}blockquote{margin:0;padding:80px 0;font-size:clamp(34px,4.5vw,64px);line-height:1;letter-spacing:-.055em}blockquote span{color:#777a80}.footer{display:flex;justify-content:space-between;padding:28px 0;border-top:1px solid var(--ink);color:var(--muted);font:400 12px/1.4 var(--mono)}.page{max-width:960px;padding:88px 0}.page h1{margin:0 0 28px;font-size:clamp(42px,6vw,72px);line-height:1;letter-spacing:-.055em}.page>.intro{max-width:700px;color:var(--muted);font-size:20px;line-height:1.55}.entry{padding:40px 0;border-top:1px solid var(--rule)}.entry h2{margin:8px 0 18px;font-size:30px;letter-spacing:-.04em}.entry p{max-width:760px;color:#3e4146;font-size:18px;line-height:1.7}.entry code{font-family:var(--mono)}
@media(max-width:900px){.nav{grid-template-columns:1fr auto}.nav nav{display:none}.system{grid-template-columns:1fr 1fr}.system>div:last-child{grid-column:2}.lower{grid-template-columns:1fr}.hero{padding:70px 0}.lead{font-size:21px}}@media(max-width:600px){.wrap{width:min(calc(100% - 28px),96rem)}.nav{height:64px}.brand{width:150px}.nav>div a:first-child{display:none}.nav>div{gap:14px}.hero{padding:56px 0}.hero h1{font-size:49px}.role{font-size:16px}.lead{font-size:19px}.system{grid-template-columns:1fr;gap:22px}.system>div:last-child{grid-column:auto}.section-head{align-items:start;flex-direction:column;gap:12px}.note{grid-template-columns:1fr;gap:8px}blockquote{padding:56px 0}.footer{flex-direction:column;gap:20px}.footer nav{flex-wrap:wrap;gap:16px}}

/* Notes on the landing page.
   The systems section above reads source / method / result. A note has the same
   three parts — what it asked, how, and the number that came back — so it gets the
   same three-column rhythm instead of a separate visual language. The finding sits
   in the result column because that is the only thing worth stopping for. */
.notes{border-top:1px solid var(--ink)}
.nt{display:grid;grid-template-columns:.8fr 1.25fr 1fr;gap:48px;padding:34px 0;border-bottom:1px solid var(--rule);align-items:start}
.nt:hover .nt-title{color:var(--blue)}
.nt-when{color:var(--blue);font:600 12px/1.4 var(--mono)}
.nt-kind{display:block;margin-top:6px;color:var(--muted);font:400 11px/1.5 var(--mono);letter-spacing:.06em}
.nt-title{display:block;margin:0 0 8px;font-size:24px;line-height:1.2;letter-spacing:-.035em;font-weight:600}
.nt-sub{margin:0;color:#44474c;font-size:15px;line-height:1.55}
.nt-find{display:flex;flex-direction:column;gap:4px;align-items:flex-end;text-align:right}
.nt-num{font-size:30px;line-height:1.05;letter-spacing:-.045em;font-weight:600;font-variant-numeric:tabular-nums}
.nt-what{color:var(--muted);font:400 12px/1.5 var(--mono)}
.nt-read{margin-top:10px;color:var(--muted);font:400 11px/1 var(--mono)}
.notes-more{display:flex;justify-content:space-between;align-items:center;padding:24px 0;font:500 13px/1 var(--mono)}
.notes-more a{color:var(--blue)}
.notes-more span{color:var(--muted)}
.status-strip{display:grid;grid-template-columns:.8fr 1.25fr 1fr;gap:48px;padding:34px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule)}
.status-strip p{margin:0;color:var(--muted);line-height:1.6;font-size:14px}
@media(max-width:900px){.nt,.status-strip{grid-template-columns:1fr 1fr}.nt-find{grid-column:2}}
@media(max-width:600px){.nt,.status-strip{grid-template-columns:1fr;gap:14px}.nt-find{grid-column:auto;align-items:flex-start;text-align:left}.nt-title{font-size:21px}.nt-num{font-size:26px}}
