:root{color-scheme:light;--bg:#f4f2ec;--surface:#ebe8df;--surface-2:#e2dfd4;--fg:#17150f;--muted:#625d52;--border:#d6d2c6;--accent:#9e420c;--accent-ink:#fff7ec;--ok:#2f7d4a;--warn:#9a6a00;--bad:#b3382c;--info:#2f5f9e;--mat:#e6e2d7;--frame-line:#c9c4b5;--grid-ink:#17150f0d;--glow:#9e420c24;--shadow-ink:#17150f21;--shadow-ink-soft:#17150f12}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0e0d0b;--surface:#16140f;--surface-2:#1e1b15;--fg:#ece7d8;--muted:#9a927f;--border:#2c2820;--accent:#ffb000;--accent-ink:#0e0d0b;--ok:#7ddc8a;--warn:#ffcd5c;--bad:#ff7a6b;--info:#7fb0ff;--mat:#0a0907;--frame-line:#3a342a;--grid-ink:#ffb0000d;--glow:#ffb00029;--shadow-ink:#00000080;--shadow-ink-soft:#00000040}}:root[data-theme=light]{color-scheme:light;--bg:#f4f2ec;--surface:#ebe8df;--surface-2:#e2dfd4;--fg:#17150f;--muted:#625d52;--border:#d6d2c6;--accent:#9e420c;--accent-ink:#fff7ec;--ok:#2f7d4a;--warn:#9a6a00;--bad:#b3382c;--info:#2f5f9e;--mat:#e6e2d7;--frame-line:#c9c4b5;--grid-ink:#17150f0d;--glow:#9e420c24;--shadow-ink:#17150f21;--shadow-ink-soft:#17150f12}:root[data-theme=dark]{color-scheme:dark;--bg:#0e0d0b;--surface:#16140f;--surface-2:#1e1b15;--fg:#ece7d8;--muted:#9a927f;--border:#2c2820;--accent:#ffb000;--accent-ink:#0e0d0b;--ok:#7ddc8a;--warn:#ffcd5c;--bad:#ff7a6b;--info:#7fb0ff;--mat:#0a0907;--frame-line:#3a342a;--grid-ink:#ffb0000d;--glow:#ffb00029;--shadow-ink:#00000080;--shadow-ink-soft:#00000040}:root{--font-display:"Instrument Serif", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", "SFMono-Regular", Menlo, Consolas, "DejaVu Sans Mono", monospace;--font-text:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--step--2:.75rem;--step--1:.875rem;--step-0:1rem;--step-1:1.125rem;--step-2:clamp(1.25rem, .4vw + 1.15rem, 1.4rem);--step-3:clamp(1.5rem, 1vw + 1.25rem, 1.9rem);--step-4:clamp(2rem, 2.6vw + 1.35rem, 3.1rem);--step-5:clamp(2.8rem, 6vw + 1.2rem, 5.6rem);--leading-tight:1.05;--leading-snug:1.35;--leading:1.65;--tracking-eyebrow:.14em;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4.5rem;--s-9:7rem;--radius-sm:3px;--radius:6px;--radius-lg:10px;--radius-pill:999px;--shadow:0 1px 2px var(--shadow-ink-soft), 0 14px 34px -14px var(--shadow-ink);--shadow-sm:0 1px 2px var(--shadow-ink-soft);--ease:cubic-bezier(.4, 0, .2, 1);--fast:.12s;--slow:.26s;--gutter:1.5rem;--measure:68ch;--wide:8rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/InstrumentSerif-Regular-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/InstrumentSerif-Italic-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/JetBrainsMono-Regular-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Iowan Old Style;src:local(Iowan Old Style),local(Georgia);size-adjust:92%}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{background:var(--bg);color:var(--fg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}body{font-family:var(--font-text);font-size:var(--step-0);line-height:var(--leading);text-rendering:optimizelegibility;flex-direction:column;min-height:100dvh;margin:0;display:flex}img,svg,video{max-width:100%;height:auto}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{inset-inline-start:var(--s-4);top:var(--s-2);z-index:10;padding:var(--s-2) var(--s-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font:500 var(--step--1) / 1 var(--font-mono);transition:transform var(--fast) var(--ease);position:absolute;transform:translateY(-200%)}.skip:focus-visible{transform:translateY(0)}.shell{width:min(100% - 2 * var(--gutter), 64rem);margin-inline:auto}.shell-text{max-width:var(--measure)}main{flex:1}.prose{grid-template-columns:[full-start wide-start] minmax(0, 1fr) [text-start] min(var(--measure), 100%) [text-end] minmax(0, 1fr) [wide-end full-end];row-gap:var(--s-4);align-content:start;display:grid}.prose>*{grid-column:text;min-width:0;margin-block:0}.prose>table,.prose>.astro-code,.prose>.pre-wrap,.prose>.wide{grid-column:wide}.prose>.full{grid-column:full}.prose-flush{grid-template-columns:[full-start wide-start text-start] min(var(--measure), 100%) [text-end] minmax(0, 1fr) [wide-end full-end]}.prose>h1{margin-block-start:var(--s-2)}.prose>h2{margin-block-start:var(--s-7)}.prose>h3{margin-block-start:var(--s-5)}.prose>h4,.prose>h5,.prose>h6{margin-block-start:var(--s-4)}.prose>:is(h1,h2,h3,h4,h5,h6)+:not(h1,h2,h3,h4,h5,h6){margin-block-start:calc(-1 * var(--s-2))}.prose>hr{margin-block:var(--s-5)}h1,h2,h3,h4,h5,h6{line-height:var(--leading-tight);letter-spacing:-.015em;text-wrap:balance;font-weight:600}h1{font-size:var(--step-4)}h2{font-size:var(--step-3)}h3{font-size:var(--step-2)}h4{font-size:var(--step-1)}p,li{text-wrap:pretty}ul,ol{padding-inline-start:1.35em}li+li{margin-block-start:var(--s-2)}strong{color:var(--fg);font-weight:650}blockquote{padding:var(--s-1) var(--s-4);border-inline-start:2px solid var(--accent);color:var(--muted);margin:0}hr{border:0;border-top:1px solid var(--border)}pre,code,kbd,samp{font-family:var(--font-mono);font-size:.9em}pre{padding:var(--s-4) var(--s-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);line-height:var(--leading-snug);tab-size:2;margin:0;overflow-x:auto}:not(pre)>code{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow-wrap:break-word;padding:.08em .34em}.astro-code,.astro-code span{color:var(--shiki-light);background-color:#0000}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)}}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)}.astro-code{background:var(--surface)!important}table{border-collapse:collapse;width:100%;font-size:var(--step--1);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}th,td{padding:var(--s-2) var(--s-3);text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}tr:last-child td{border-bottom:0}th{background:var(--surface);font:500 var(--step--2) / 1.4 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--muted);white-space:nowrap}td{overflow-wrap:anywhere}@media (width<=52rem){.prose>table{display:block;overflow-x:auto}.prose>table td{overflow-wrap:normal}}figure{margin:0}figcaption{color:var(--muted);font-size:var(--step--1);text-wrap:pretty;margin-block-start:var(--s-3)}.site-header{z-index:5;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header .bar{align-items:center;gap:var(--s-4);min-height:3.75rem;display:flex}.brand{align-items:center;gap:var(--s-2);font:600 var(--step-0) / 1 var(--font-mono);color:var(--fg);letter-spacing:-.01em;margin-inline-end:auto;text-decoration:none;display:inline-flex}.brand .mark{border-radius:var(--radius-sm);background:var(--fg);width:1.4rem;height:1.4rem;color:var(--bg);font-size:var(--step--2);place-items:center;font-weight:700;display:grid}.site-nav{align-items:center;gap:var(--s-1) var(--s-4);font:500 var(--step--1) / 1 var(--font-mono);flex-wrap:wrap;display:flex}.site-nav a{color:var(--muted);padding-block:var(--s-2);transition:color var(--fast) var(--ease);text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--fg)}.site-nav .out:after{content:" ↗";color:var(--muted)}@media (width<=46rem){.site-header{position:static}.site-header .bar{padding-block:var(--s-3);gap:var(--s-2) var(--s-4);flex-wrap:wrap}.brand{margin-inline-end:auto}.site-nav{flex-basis:100%;order:1}}.theme-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);width:2rem;height:2rem;color:var(--muted);cursor:pointer;transition:color var(--fast) var(--ease), border-color var(--fast) var(--ease);background:0 0;place-items:center;padding:0;display:grid}.theme-toggle:hover{color:var(--fg);border-color:var(--muted)}.theme-toggle .sun{display:none}:root[data-theme=dark] .theme-toggle .sun{display:block}:root[data-theme=dark] .theme-toggle .moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .sun{display:block}:root:not([data-theme=light]) .theme-toggle .moon{display:none}}.eyebrow{align-items:center;gap:var(--s-3);font:500 var(--step--2) / 1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--muted);flex-wrap:wrap;margin:0;display:flex}.chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--fg);font-family:var(--font-mono);text-transform:none;letter-spacing:0;padding:.3em .65em;display:inline-block}.chip-accent{border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent)}.actions{gap:var(--s-3);flex-wrap:wrap;display:flex}.btn{align-items:center;gap:var(--s-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);font:500 var(--step--1) / 1 var(--font-mono);cursor:pointer;transition:transform var(--fast) var(--ease), border-color var(--fast) var(--ease), background-color var(--fast) var(--ease);padding:.7rem 1.15rem;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--muted);transform:translateY(-1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fffaf7}.btn-primary:hover{border-color:var(--accent);filter:brightness(1.06)}.section{padding-block:var(--s-8);border-top:1px solid var(--border)}.section-head{max-width:var(--measure);margin-block-end:var(--s-6)}.section-head h2{font-size:var(--step-3);margin:0}.section-head h2:before{content:"";width:2rem;height:2px;background:var(--accent);margin-block-end:var(--s-4);display:block}.note{margin-block:var(--s-4) 0;color:var(--muted);font-size:var(--step--1);max-width:var(--measure)}.hero{padding-block:var(--s-7) var(--s-7);gap:var(--s-6);display:grid}.hero-copy{gap:var(--s-5);display:grid}.hero-title{gap:var(--s-4);display:grid}.hero h1{font-size:var(--step-5);font-family:var(--font-mono);letter-spacing:-.04em;margin:0;font-weight:600;line-height:1.02}.hero-aside{gap:var(--s-5);justify-items:start;display:grid}.lede{font-size:var(--step-2);line-height:var(--leading-snug);color:var(--muted);text-wrap:pretty;max-width:44ch;margin:0}@media (width>=62rem){.hero-copy{align-items:end;column-gap:var(--s-7);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}.hintline{align-items:center;gap:var(--s-3) var(--s-4);padding:var(--s-3) var(--s-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font:400 var(--step--1) / 1.4 var(--font-mono);color:var(--muted);flex-wrap:wrap;margin:0;list-style:none;display:flex}.hintline li{margin:0}@media (width>=56rem){.hintline li{align-items:center;gap:var(--s-4);display:flex}.hintline li+li:before{content:"·";color:var(--border)}}@media (width<=55.99rem){.hintline{align-items:flex-start;gap:var(--s-2);flex-direction:column}}.hintline b{color:var(--fg);font-weight:600}.frame{background:var(--mat);border:1px solid var(--frame-line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.frame-bar{align-items:center;gap:var(--s-3);min-height:2.15rem;padding-inline:var(--s-3);border-bottom:1px solid var(--frame-line);font:400 var(--step--2) / 1 var(--font-mono);color:var(--muted);display:flex}.frame-bar:before{content:"";opacity:.4;background:currentColor;border-radius:50%;flex:none;width:8px;height:8px;margin-inline-end:20px;box-shadow:14px 0,28px 0}.frame-bar .label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.frame-body{padding:var(--s-2);display:block}.frame-body pre{padding:var(--s-4);background:var(--bg);border:0;border-radius:6px;margin:0}.frame-body img{border-radius:6px;width:100%;height:auto;display:block}.links{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1px;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.links li{background:var(--bg);margin:0}.links a{justify-content:space-between;align-items:baseline;gap:var(--s-3);padding:var(--s-4) var(--s-5);color:var(--fg);font:500 var(--step--1) / 1.4 var(--font-mono);transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease);text-decoration:none;display:flex}.links a:after{content:"→";color:var(--muted)}.links a:hover{background:var(--surface);color:var(--accent)}.pre-wrap{position:relative}.pre-wrap .copy{top:var(--s-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--muted);font:500 var(--step--2) / 1 var(--font-mono);cursor:pointer;opacity:0;transition:opacity var(--fast) var(--ease), color var(--fast) var(--ease);padding:.3rem .6rem;position:absolute;inset-inline-end:var(--s-2)}.pre-wrap:hover .copy,.pre-wrap .copy:focus-visible{opacity:1}.pre-wrap .copy:hover{color:var(--fg)}.contents-label{margin:0 0 var(--s-3);font:500 var(--step--2) / 1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--muted)}.contents ol{margin:0;padding:0;list-style:none}.contents li{margin:0}.contents a{padding:.28rem var(--s-3);border-inline-start:2px solid var(--border);color:var(--muted);font:400 var(--step--1) / 1.4 var(--font-mono);transition:color var(--fast) var(--ease), border-color var(--fast) var(--ease);text-decoration:none;display:block}.contents a:hover{color:var(--fg);border-inline-start-color:var(--accent)}.contents .d3 a{font-size:var(--step--2);padding-inline-start:var(--s-5)}.with-rail{gap:var(--s-5);display:grid}.with-rail>.contents{margin-block-start:var(--s-5)}.with-rail .prose{grid-template-columns:[full-start wide-start text-start] min(var(--measure), 100%) [text-end] minmax(0, 1fr) [wide-end full-end]}@media (width>=68rem){.with-rail{gap:var(--s-7);grid-template-columns:15rem minmax(0,1fr);align-items:start}.with-rail>.contents{overscroll-behavior:contain;max-height:calc(100dvh - 7rem);margin-block-start:var(--s-6);position:sticky;top:5rem;overflow-y:auto}}.hero h1,.display{font-family:var(--font-display);letter-spacing:-.01em;font-weight:400;line-height:var(--leading-tight)}.hero h1{font-size:var(--step-5)}.cursor{background:var(--accent);vertical-align:-.12em;width:.55em;height:1em;margin-inline-start:.12em;animation:1.1s step-end infinite cursor-blink;display:inline-block}@keyframes cursor-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}}.prompt{color:var(--accent);font-family:var(--font-mono)}body{overflow-x:clip}.btn-primary{color:var(--accent-ink)}.hero h1 .cursor,.study-head h1 .cursor{vertical-align:-.06em;width:.42em;height:.82em}.chip-private{color:var(--muted);font-size:var(--step--2);background:0 0;border-style:dashed;align-self:center}.site-header .lens{margin-inline-start:var(--s-2)}@media (width<=46rem){.site-header .lens{order:2;margin-inline-start:0}.lens-opt kbd{display:none}}.hero{padding-block:var(--s-7) var(--s-8);gap:var(--s-7);position:relative}.hero:before{content:"";z-index:-1;background-image:repeating-linear-gradient(90deg, var(--grid-ink) 0 1px, transparent 1px 1ch), repeating-linear-gradient(0deg, var(--grid-ink) 0 1px, transparent 1px 1.5rem);font-family:var(--font-mono);pointer-events:none;position:absolute;inset-block:0;inset-inline:calc(50% - 50vw);mask-image:linear-gradient(#000 55%,#0000)}.hero-copy{align-items:start}.hero-role{font-family:var(--font-display);font-style:italic;font-size:var(--step-3);line-height:var(--leading-snug);color:var(--fg);text-wrap:balance;max-width:24ch;margin:0}.hero-now{font:500 var(--step--1) / 1.5 var(--font-mono);color:var(--muted);margin:0}.hero-now b{color:var(--fg);font-weight:500}.hero .lede{max-width:46ch;font-size:var(--step-1);color:var(--muted)}@media (width>=62rem){.hero-copy{grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr);align-items:center}}.block{--rule:var(--border);padding:var(--s-6) var(--s-5) var(--s-5);border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--bg);transition:border-color var(--slow) var(--ease);min-width:0;position:relative}.block:is(:hover,:focus-within){--rule:var(--muted)}.block-title{top:-.8em;left:var(--s-4);padding-inline:var(--s-2);background:var(--bg);font:600 var(--step--1) / 1.5 var(--font-mono);letter-spacing:.02em;color:var(--fg);max-width:calc(100% - 2 * var(--s-4));text-overflow:ellipsis;white-space:nowrap;margin:0;position:absolute;overflow:hidden}.block-n{color:var(--accent);margin-inline-end:var(--s-2)}.block-n:after{content:" /";color:var(--muted)}.block-body{gap:var(--s-4);display:grid}.block-body>:first-child{margin-block-start:0}.section-block{margin-block:var(--s-8)}.section-block>.block-body{gap:var(--s-6)}.section-lead{font-family:var(--font-display);font-size:var(--step-3);line-height:var(--leading-snug);text-wrap:balance;max-width:30ch;margin:0}.section-lead .prompt{vertical-align:.15em;margin-inline-end:.3em;font-size:.7em}.ledger{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1px;display:grid;overflow:hidden}.ledger-cell{align-content:start;gap:var(--s-4);padding:var(--s-5);background:var(--surface);min-width:0;display:grid}.ledger-name{gap:var(--s-2);font:600 var(--step--1) / 1.4 var(--font-mono);flex-wrap:wrap;align-items:baseline;margin:0;display:flex}.ledger-name a{color:var(--fg);text-decoration:none}.ledger-name a:hover{color:var(--accent)}.ledger-metrics,.card-metrics{gap:var(--s-4) var(--s-5);flex-wrap:wrap;margin:0;display:flex}.ledger-metrics div,.card-metrics div{display:grid}.ledger-metrics dd,.card-metrics dd{font:500 var(--step-2) / 1.1 var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin:0}.ledger-metrics dd a,.ledger-metrics dd abbr,.card-metrics dd abbr{color:var(--fg);border-bottom:1px dotted var(--muted);cursor:help;text-decoration:none}.ledger-metrics dd a:hover{color:var(--accent);border-bottom-color:var(--accent)}.ledger-metrics dt,.card-metrics dt{font:400 var(--step--2) / 1.4 var(--font-mono);color:var(--muted)}.ledger-single .ledger-cell{gap:var(--s-5)}.ledger-channels{gap:var(--s-2) var(--s-4);font:400 var(--step--2) / 1.5 var(--font-mono);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.ledger-channels li{align-items:baseline;gap:.4em;display:inline-flex}.ch{color:var(--fg)}.ch-pending{color:var(--muted)}.ledger-how{font-size:var(--step--1);color:var(--muted);margin-block-start:var(--s-4)}.ledger-how summary{cursor:pointer;font-family:var(--font-mono);color:var(--fg)}.ledger-how summary::marker{color:var(--accent)}.ledger-how p{max-width:var(--measure)}.ledger-how-project{margin-block:var(--s-4)}.ledger-how-name{margin:0 0 var(--s-2);font-family:var(--font-mono);color:var(--fg)}.ledger-how ul{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.ledger-how li{gap:var(--s-2) var(--s-4);flex-wrap:wrap;align-items:baseline;display:flex}.ledger-how li b{color:var(--fg);font-weight:500;font-family:var(--font-mono);min-width:12rem}.ledger-how li code{font-size:var(--step--2);overflow-wrap:anywhere;background:var(--surface);border-radius:var(--radius-sm);padding:.1em .4em}.cards{gap:var(--s-6);display:grid}@media (width>=62rem){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.card-tagline{font-family:var(--font-display);font-size:var(--step-3);line-height:var(--leading-snug);text-wrap:balance;margin:0}.card-angle{padding:var(--s-3) var(--s-4);border-left:2px solid var(--accent);background:var(--surface);font-size:var(--step--1);margin:0;line-height:1.55}.card-summary{color:var(--muted);font-size:var(--step--1);margin:0;line-height:1.6}.chips{gap:var(--s-2);font-size:var(--step--2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.card-links{gap:var(--s-3);margin:var(--s-2) 0 0;flex-wrap:wrap;display:flex}.more{border-top:1px solid var(--border);margin:0;padding:0;list-style:none;display:grid}.more li{gap:var(--s-4);padding:var(--s-4) 0;border-bottom:1px solid var(--border);grid-template-columns:minmax(9rem,.6fr) minmax(0,2fr) auto;align-items:baseline;display:grid}.more .name{font:600 var(--step--1) / 1.4 var(--font-mono)}.more .name a{color:var(--fg);text-decoration:none}.more .name a:hover{color:var(--accent)}.more .name small{color:var(--muted);font-weight:400;display:block}.more .what{color:var(--muted);font-size:var(--step--1);margin:0}.more .what b{color:var(--fg);font-weight:500}.more .go{font:400 var(--step--2) / 1.4 var(--font-mono);white-space:nowrap}@media (width<=46rem){.more li{gap:var(--s-2);grid-template-columns:1fr}}.skills{gap:var(--s-6);display:grid}@media (width>=62rem){.skills{grid-template-columns:repeat(3,minmax(0,1fr))}}.skills-col dl{gap:var(--s-3);margin:0;display:grid}.skills-col dt{font:500 var(--step--1) / 1.4 var(--font-mono)}.skills-col dd{font-size:var(--step--1);color:var(--muted);margin:0;line-height:1.5}.writing{gap:var(--s-4);margin:0;padding:0;list-style:none;display:grid}.writing li{gap:var(--s-1);display:grid}.writing a{font-family:var(--font-display);font-size:var(--step-2);color:var(--fg);text-decoration-color:var(--accent)}.writing span{color:var(--muted);font-size:var(--step--1)}.contact-line{font-family:var(--font-display);font-size:var(--step-3);line-height:var(--leading-snug);text-wrap:balance;max-width:30ch;margin:0}.contact-line em{color:var(--accent)}.ptable{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--border);gap:1px;display:grid;overflow:hidden}.ptable-row{gap:var(--s-4);padding:var(--s-4) var(--s-5);background:var(--bg);border-left:2px solid var(--rule,transparent);grid-template-columns:minmax(10rem,.8fr) minmax(0,2fr) minmax(7rem,.6fr) auto;align-items:start;display:grid}.ptable-row .name{font:600 var(--step--1) / 1.4 var(--font-mono)}.ptable-row .name a{color:var(--fg);text-decoration:none}.ptable-row .name a:hover{color:var(--accent)}.ptable-row .name small{color:var(--muted);font-weight:400;display:block}.ptable-row .what{font-size:var(--step--1);color:var(--muted);margin:0}.ptable-row .what .card-angle{margin-block-start:var(--s-2)}.ptable-row .proof{font:500 var(--step--1) / 1.4 var(--font-mono);font-variant-numeric:tabular-nums}.ptable-row .proof small{color:var(--muted);font-weight:400;display:block}.ptable-row .go{gap:var(--s-1);font:400 var(--step--2) / 1.5 var(--font-mono);white-space:nowrap;display:grid}@media (width<=46rem){.ptable-row{grid-template-columns:1fr}}.study-head{gap:var(--s-4);padding-block:var(--s-7) var(--s-6);display:grid}.study-head h1{font-family:var(--font-display);font-weight:400;font-size:var(--step-4);line-height:var(--leading-tight);letter-spacing:-.01em;margin:0}.study-head .lede{font-size:var(--step-1)}.study-body{margin-block:var(--s-6) var(--s-8)}.study-gallery{gap:var(--s-5);margin-block:var(--s-6);display:grid}.study-body .prose h2{font-family:var(--font-display);font-weight:400;font-size:var(--step-3)}.study-body .prose h2:before{content:"❯ ";color:var(--accent);font-family:var(--font-mono);vertical-align:.15em;font-size:.7em}.site-footer{border-top:1px solid var(--border);padding-block:var(--s-6);font:400 var(--step--2) / 1.6 var(--font-mono);color:var(--muted);margin-block-start:var(--s-8)}.site-footer .bar{gap:var(--s-3) var(--s-6);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.site-footer .colophon{max-width:60ch;margin:0}.site-footer nav{gap:var(--s-4);display:flex}.site-footer a{color:var(--fg)}.lens{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-family:var(--font-mono);font-size:var(--step--2);margin:0;padding:2px;display:inline-flex}.lens-opt label{border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;transition:color var(--fast) var(--ease), background var(--fast) var(--ease);align-items:center;gap:.45em;padding:.3em .7em;display:inline-flex}.lens-opt label:hover{color:var(--fg)}.lens-opt kbd{font:inherit;color:var(--accent)}.lens-opt input:checked+label{background:var(--fg);color:var(--bg)}.lens-opt input:checked+label kbd{color:var(--bg);opacity:.7}.lens-opt input:focus-visible+label{outline:2px solid var(--accent);outline-offset:1px}.lensed{order:var(--o,0);transition:opacity var(--slow) var(--ease)}:root:has(#lens-swe:checked) .lensed{--o:var(--o-swe,50)}:root:has(#lens-data:checked) .lensed{--o:var(--o-data,50)}:root:has(#lens-ml:checked) .lensed{--o:var(--o-ml,50)}:root:has(#lens-swe:checked) .lensed:not([data-lens~=swe]),:root:has(#lens-data:checked) .lensed:not([data-lens~=data]),:root:has(#lens-ml:checked) .lensed:not([data-lens~=ml]){opacity:.55}:root:has(#lens-swe:checked) .lensed:not([data-lens~=swe]):is(:hover,:focus-within),:root:has(#lens-data:checked) .lensed:not([data-lens~=data]):is(:hover,:focus-within),:root:has(#lens-ml:checked) .lensed:not([data-lens~=ml]):is(:hover,:focus-within){opacity:1}:root:has(#lens-swe:checked) .lensed[data-lens~=swe],:root:has(#lens-data:checked) .lensed[data-lens~=data],:root:has(#lens-ml:checked) .lensed[data-lens~=ml]{--rule:var(--accent)}[data-for]{display:none}:root:has(#lens-all:checked) [data-for=all],:root:has(#lens-swe:checked) [data-for=swe],:root:has(#lens-data:checked) [data-for=data],:root:has(#lens-ml:checked) [data-for=ml]{display:revert}@supports not selector(:has(a)){[data-for=all]{display:revert}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal{animation:linear both reveal view();animation-range:entry entry 28%}}}@keyframes reveal{0%{opacity:.2;transform:translateY(.6rem)}to{opacity:1;transform:none}}
