commit 2c95a2e9d7ab83d0dbf51d1317997b57f35d43e8
parent 14a4f4853d2b9900c4db654322c48f4a1fb9e480
Author: Silas Brack <silasbrack@Silass-MacBook-Pro.local>
Date: Tue, 10 Mar 2026 22:40:29 +0100
Testing
Diffstat:
4 files changed, 403 insertions(+), 9 deletions(-)
diff --git a/index.html b/index.html
@@ -6,7 +6,7 @@
<title>Silas Brack</title>
<link rel="shortcut icon" href="data:," />
<style type="text/css">
-:root{--bg-color:#fffff8;--text-color:#111;--text-muted:#ccc;--selection-color:#b4d5fe;--font-sans:Seravek,'Gill Sans Nova',Ubuntu,Calibri,'DejaVu Sans',source-sans-pro,sans-serif;--font-serif:Charter,'Bitstream Charter','Sitka Text',Cambria,serif;--font-mono:JetBrains Mono,monospace}code{font-family:var(--font-mono);font-size:.75rem}@media (prefers-color-scheme: dark){:root{--bg-color:#151515;--text-color:#ddd;--text-muted:#555}}html{font-size:2.4vw}@media (min-width: 1000px){html{font-size:22px}}@media (max-width: 760px){html{font-size:18px}}body{width:87.5%;margin-left:auto;margin-right:auto;padding-left:12.5%;font-family:var(--font-serif);background-color:var(--bg-color);color:var(--text-color);max-width:1400px;counter-reset:sidenote-counter}h1{font-family:var(--font-sans);font-weight:700;font-size:1.5rem;margin-top:2.5rem;margin-bottom:1.5rem;line-height:1}p.subtitle{font-family:var(--font-sans);margin-top:1rem;margin-bottom:1rem;line-height:1}article{padding:3rem 0}section{padding-top:1rem;padding-bottom:1rem}p{font-size:1rem;line-height:1.4rem;margin-top:1.4rem;margin-bottom:1.4rem}section > p{width:55%}a:link,a:visited{color:inherit;text-decoration:underline;text-decoration-skip-ink:auto;text-underline-offset:.1em}::selection{background:var(--selection-color)}img{max-width:100%}.sidenote,.marginnote{float:right;clear:right;margin-right:-60%;width:50%;margin-top:.3rem;margin-bottom:0;font-size:.75rem;line-height:1.3;position:relative}.sidenote-number{counter-increment:sidenote-counter}.sidenote-number:after,.sidenote:before{position:relative}.sidenote-number:after{content:counter(sidenote-counter);font-size:.7rem;top:-.5rem;left:.1rem}.sidenote:before{content:counter(sidenote-counter) " ";font-size:.7rem;top:-.5rem}input.margin-toggle{display:none}label.sidenote-number{display:inline-block;max-height:2rem}label.margin-toggle:not(.sidenote-number){display:none}table{border-collapse:collapse;border-top:2px solid #333;border-bottom:2px solid #333}th,td{padding:7px 14px}thead th{font-weight:700;border-bottom:1px solid #333;text-align:left}td{border-bottom:1px solid #e5e5e5}tbody tr:last-child td{border-bottom:0}.numeric{text-align:right}@media (max-width: 760px){body{width:90%;padding-left:5%;padding-right:5%}section > p{width:100%}label.margin-toggle:not(.sidenote-number){display:inline}.sidenote,.marginnote{display:none}.margin-toggle:checked + .sidenote,.margin-toggle:checked + .marginnote{display:block;float:left;left:1rem;clear:both;width:95%;margin:1rem 2.5%;position:relative}label{cursor:pointer}img{width:100%}}
+:root{--bg-color:#fffff8;--text-color:#111;--text-muted:#ccc;--selection-color:#b4d5fe;--font-sans:Seravek,'Gill Sans Nova',Ubuntu,Calibri,'DejaVu Sans',source-sans-pro,sans-serif;--font-serif:Charter,'Bitstream Charter','Sitka Text',Cambria,serif;--font-mono:JetBrains Mono,monospace}code{font-family:var(--font-mono);font-size:.75rem}@media (prefers-color-scheme: dark){:root{--bg-color:#151515;--text-color:#ddd;--text-muted:#555}}html{font-size:2.4vw}@media (min-width: 1000px){html{font-size:22px}}@media (max-width: 760px){html{font-size:18px}}body{width:87.5%;margin-left:auto;margin-right:auto;padding-left:12.5%;font-family:var(--font-serif);background-color:var(--bg-color);color:var(--text-color);max-width:1400px;counter-reset:sidenote-counter}h1{font-family:var(--font-sans);font-weight:700;font-size:1.5rem;margin-top:2.5rem;margin-bottom:1.5rem;line-height:1}h2{font-family:var(--font-sans);font-weight:700;font-size:1.1rem}h3{font-size:1rem}p.subtitle{font-family:var(--font-sans);margin-top:1rem;margin-bottom:1rem;line-height:1}article{padding:3rem 0}section{padding-top:1rem;padding-bottom:1rem}p{font-size:1rem;line-height:1.4rem;margin-top:1.4rem;margin-bottom:1.4rem}section > p{width:55%}a:link,a:visited{color:inherit;text-decoration:underline;text-decoration-skip-ink:auto;text-underline-offset:.1em}::selection{background:var(--selection-color)}img{max-width:100%}.sidenote,.marginnote{float:right;clear:right;margin-right:-60%;width:50%;margin-top:.3rem;margin-bottom:0;font-size:.75rem;line-height:1.3;position:relative}.sidenote-number{counter-increment:sidenote-counter}.sidenote-number:after,.sidenote:before{position:relative}.sidenote-number:after{content:counter(sidenote-counter);font-size:.7rem;top:-.5rem;left:.1rem}.sidenote:before{content:counter(sidenote-counter) " ";font-size:.7rem;top:-.5rem}input.margin-toggle{display:none}label.sidenote-number{display:inline-block;max-height:2rem}label.margin-toggle:not(.sidenote-number){display:none}table{border-collapse:collapse;border-top:2px solid #333;border-bottom:2px solid #333}th,td{padding:7px 14px}thead th{font-weight:700;border-bottom:1px solid #333;text-align:left}td{border-bottom:1px solid #e5e5e5}tbody tr:last-child td{border-bottom:0}.numeric{text-align:right}@media (max-width: 760px){body{width:90%;padding-left:5%;padding-right:5%}section > p{width:100%}label.margin-toggle:not(.sidenote-number){display:inline}.sidenote,.marginnote{display:none}.margin-toggle:checked + .sidenote,.margin-toggle:checked + .marginnote{display:block;float:left;left:1rem;clear:both;width:95%;margin:1rem 2.5%;position:relative}label{cursor:pointer}img{width:100%}}
</style>
</head>
@@ -21,7 +21,7 @@
</p> -->
<h1>Silas Brack</h1>
<p class="subtitle">AI Research Engineer</p>
- <p style="font-family: Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;">
+ <p style="font-family: var(--font-sans);">
<span class="marginnote" style="line-height: 2.0;">
<a href="./assets/cv.pdf" style="background: none; display: block;">
<svg style="vertical-align: -0.20em;" fill="currentColor" width="20px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" > <!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--> <path d="M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z" /></svg>
diff --git a/posts/birthday.html b/posts/birthday.html
@@ -0,0 +1,354 @@
+<!doctype html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang xml:lang>
+ <head>
+ <meta charset="utf-8" />
+ <meta name="generator" content="pandoc" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+ <title>We’re really bad at exponentials</title>
+ <style>
+
+code{white-space: pre-wrap;}
+span.smallcaps{font-variant: small-caps;}
+div.columns{display: flex; gap: min(4vw, 1.5em);}
+div.column{flex: auto; overflow-x: auto;}
+div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
+
+ul.task-list[class]{list-style: none;}
+ul.task-list li input[type="checkbox"] {
+font-size: inherit;
+width: 0.8em;
+margin: 0 0.8em 0.2em -1.6em;
+vertical-align: middle;
+}
+</style>
+ <style type="text/css">
+:root {
+--bg-color: #fffff8;
+--text-color: #111;
+--text-muted: #ccc;
+--selection-color: #b4d5fe;
+--font-sans: Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
+--font-serif: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif;
+--font-mono: JetBrains Mono, monospace;
+}
+code {
+font-family: var(--font-mono);
+font-size: 0.75rem;
+}
+@media (prefers-color-scheme: dark) {
+:root {
+--bg-color: #151515;
+--text-color: #ddd;
+--text-muted: #555;
+}
+}
+
+html {
+font-size: 2.4vw;
+}
+@media (min-width: 1000px) {
+html {
+font-size: 22px;
+}
+}
+@media (max-width: 760px) {
+html {
+font-size: 18px;
+}
+}
+body {
+width: 87.5%;
+margin-left: auto;
+margin-right: auto;
+padding-left: 12.5%;
+font-family: var(--font-serif);
+background-color: var(--bg-color);
+color: var(--text-color);
+max-width: 1400px;
+counter-reset: sidenote-counter;
+}
+h1 {
+font-family: var(--font-sans);
+font-weight: bold;
+font-size: 1.5rem;
+margin-top: 2.5rem;
+margin-bottom: 1.5rem;
+line-height: 1;
+}
+h2 {
+font-family: var(--font-sans);
+font-weight: bold;
+font-size: 1.1rem;
+}
+h3 {
+font-size: 1.0rem;
+}
+p.subtitle {
+font-family: var(--font-sans);
+margin-top: 1rem;
+margin-bottom: 1rem;
+line-height: 1;
+}
+article {
+padding: 3rem 0;
+}
+section {
+padding-top: 1rem;
+padding-bottom: 1rem;
+}
+p {
+font-size: 1rem;
+line-height: 1.4rem;
+margin-top: 1.4rem;
+margin-bottom: 1.4rem;
+}
+section > p,
+section > ol,
+section > ul {
+width: 55%;
+}
+
+a:link,
+a:visited {
+color: inherit;
+text-decoration: underline;
+text-decoration-skip-ink: auto;
+text-underline-offset: 0.1em;
+}
+::selection {
+background: var(--selection-color);
+}
+
+img {
+max-width: 100%;
+}
+.sidenote,
+.marginnote {
+float: right;
+clear: right;
+margin-right: -60%;
+width: 50%;
+margin-top: 0.3rem;
+margin-bottom: 0;
+font-size: 0.75rem;
+line-height: 1.3;
+position: relative;
+}
+.sidenote-number {
+counter-increment: sidenote-counter;
+}
+.sidenote-number:after,
+.sidenote:before {
+position: relative;
+}
+.sidenote-number:after {
+content: counter(sidenote-counter);
+font-size: 0.7rem;
+top: -0.5rem;
+left: 0.1rem;
+}
+.sidenote:before {
+content: counter(sidenote-counter) " ";
+font-size: 0.7rem;
+top: -0.5rem;
+}
+input.margin-toggle {
+display: none;
+}
+label.sidenote-number {
+display: inline-block;
+max-height: 2rem;
+}
+label.margin-toggle:not(.sidenote-number) {
+display: none;
+}
+.socials a {
+display: block;
+line-height: 2.0;
+}
+
+table{
+border-collapse:collapse;
+border-top:2px solid #333;
+border-bottom:2px solid #333;
+}
+th, td {
+padding:7px 14px;
+}
+thead th{
+font-weight:700;
+border-bottom:1px solid #333;
+text-align:left;
+}
+td{
+border-bottom:1px solid #e5e5e5;
+}
+tbody tr:last-child td{
+border-bottom:0;
+}
+.numeric{
+text-align:right;
+}
+
+@media (max-width: 760px) {
+body {
+width: 90%;
+padding-left: 5%;
+padding-right: 5%;
+}
+section > p,
+section > ol,
+section > ul {
+width: 100%;
+}
+label.margin-toggle:not(.sidenote-number) {
+display: inline;
+}
+.sidenote {
+display: none;
+}
+.marginnote {
+display: block;
+float: none;
+clear: both;
+width: 100%;
+margin: 1rem 0;
+position: relative;
+}
+.marginnote.socials {
+display: flex;
+justify-content: space-around;
+}
+.marginnote.socials a {
+display: inline;
+}
+.margin-toggle:checked + .sidenote {
+display: block;
+float: left;
+left: 1rem;
+clear: both;
+width: 95%;
+margin: 1rem 2.5%;
+position: relative;
+}
+label {
+cursor: pointer;
+}
+img {
+width: 100%;
+}
+}
+</style>
+
+ </head>
+ <body>
+ <article>
+ <header id="title-block-header">
+ <h1 class="title">We’re really bad at exponentials</h1>
+ <p class="subtitle">The birthday paradox, Gaussian soap
+bubbles, and general coincidences</p>
+ </header>
+ <section>
+ <p>Some things confuse me. To be fair, I don’t think I’m
+especially good at riddles, I always fall for the famous paradoxes,
+and</p>
+<h2 id="the-birthday-paradox">The Birthday Paradox</h2>
+<p>Most of
+us<label for="sn-thesis" class="margin-toggle sidenote-number"></label>
+<input type="checkbox" id="sn-thesis" class="margin-toggle"></input> <span class="sidenote">Some of us prefer to </span> are surprised to learn
+that it only 23 people in a classroom This is pretty simple to calculate
+with basic combinatorics—we have
+<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>P</mi><mo stretchy="false" form="prefix">(</mo><mtext mathvariant="normal">duplicates</mtext><mo stretchy="false" form="postfix">)</mo><mo>=</mo><mn>1</mn><mo>−</mo><mi>P</mi><mo stretchy="false" form="prefix">(</mo><mtext mathvariant="normal">no duplicates</mtext><mo stretchy="false" form="postfix">)</mo></mrow><annotation encoding="application/x-tex">P(\text{duplicates}) = 1 - P(\text{no duplicates})</annotation></semantics></math>$:</p>
+<p>$ P() = $$</p>
+<p><math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mfrac><mrow><mn>365</mn><mi>!</mi><mi>/</mi><mo stretchy="false" form="prefix">(</mo><mn>365</mn><mo>−</mo><mn>23</mn><mo stretchy="false" form="postfix">)</mo><mi>!</mi></mrow><msup><mn>365</mn><mn>23</mn></msup></mfrac><annotation encoding="application/x-tex">
+\frac{365! / (365 - 23)!}{365^23}
+</annotation></semantics></math></p>
+<h2 id="gaussian-soap-bubbles">Gaussian soap bubbles</h2>
+<p>I remember chatting with my supervisor Søren on the second day of the
+hackathon that inaugurated my master’s thesis. It was about soap
+bubbles. He explained that I found it very counterintuitive,</p>
+<p><math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mtext mathvariant="normal">Geom</mtext><mo stretchy="false" form="prefix">(</mo><mi>x</mi><mo stretchy="false" form="postfix">)</mo><mo>=</mo><mo minsize="240%" maxsize="240%" stretchy="true" form="prefix">(</mo><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msub><mi>x</mi><mi>i</mi></msub><msup><mo minsize="240%" maxsize="240%" stretchy="true" form="postfix">)</mo><mrow><mn>1</mn><mi>/</mi><mi>N</mi></mrow></msup></mrow><annotation encoding="application/x-tex">
+\text{Geom}(x) = \bigg( \prod_{i=1}^N x_i \bigg)^{1 / N}
+</annotation></semantics></math></p>
+<h3 id="people-are-gaussian-too">People are Gaussian, too</h3>
+<p>Another consequence of this comes up when I think about people.</p>
+<ol type="1">
+<li>People are multifaceted in that they have many different properties
+in terms of their life</li>
+<li>When you look at a <em>single</em> Gaussian dimension things are, of
+course, but no single point is actually that close to the mode!</li>
+</ol>
+<p>If you project a multivariate Gaussian onto any one of its
+dimensions, it is univariate Gaussian. This is equivalent to saying that
+the <em>marginal</em> distribution of a multivariate Gaussian is a
+univariate Gaussian.</p>
+<p>This is generally true for most finite-variance distributions,
+though. The part that is unique to Gaussians is that it is
+<em>uniform</em>…angular directions?</p>
+<h3 id="multivariate-gaussians-and-multiple-univariate-gaussians">Multivariate
+Gaussians and multiple univariate Gaussians</h3>
+<p>Wait, is this a question of whether one person is “unique”, because
+they have so many properties that they are unlikely to overlap in all of
+them with someone else? I don’t think so. I think this is about the
+likelihood being extremely small that <em>all</em> of someone’s
+properties are close to the mode, i.e., “average”. I might be a pretty
+regular guy in many ways, but it would be a wild coincidence if I was
+regular in <em>every</em> way. This is <em>less</em> the case when you
+consider that people’s properties are <em>not</em>, in fact,
+independent, since some specific traits correlate with other specific
+traits. However, the general argument still holds.</p>
+<h2 id="graph-theory-or-six-degrees-of-separation">Graph theory, or six
+degrees of separation</h2>
+<p>I’m always surprised to find out that some friend-of-a-friend went to
+school with a seemingly-unrelated friend of
+mine.<label for="sn-thesis" class="margin-toggle sidenote-number"></label>
+<input type="checkbox" id="sn-thesis" class="margin-toggle"></input> <span class="sidenote"><a href="https://improbability-principle.com/tales-of-strange-coincidences/">And
+so is everyone else.</a></span> We comment on how small the world is, or
+remark that Copenhagen is a small town. This is probably also reflective
+of me underestimating how many <em>things</em> there are. There are so
+many ways we can be connected, so many close or distant relationships we
+can have to one another, yet when some kind of connection arises, I’m
+amazed by how unlikely it seems! The world is huge. We’re social
+creatures that seek out community, so each of us is connected, with a
+couple degrees of separation, to a very large number of people.</p>
+<p>Our lives are long, and varied, and our brains are excellent at
+discerning patterns—even ones that aren’t there. And there are a lot of
+us! Our brains are also adept in subtly but impactfully altering reality
+- updating our memories, etc. - to fit the narratives and “coincidences”
+it wants to see. We <em>love</em> spurious correlations.</p>
+<p>something something connect to independence in the distribution
+again, clusters in the graphs etc</p>
+<p>Julia knowing one of Beka’s friends - we have lots of friends, and
+our friends have lots of friends We hang out with people who travel,
+study abroad, and study engineering, and so do our friends. Eventually,
+the exponential always takes over.</p>
+<p>However, the opposite also holds. The clustering that exists
+<em>exacerbates</em> the correlations - so we end up meeting Having
+never met someone with the same name as you, and then, when you do,
+being shocked that their parents <em>also</em> got the name from some
+novel - I mean, it’s a rare name! And any rare name is <em>extra</em>
+likely to have common sources of inspiration. This is because we live in
+a <a href="https://en.wikipedia.org/wiki/Small-world_network">small
+world</a>, which means In reality, this refers to local communities,
+friends of friends But the correlations we see also This also influences
+what we perceive to be “random”—it’s never really random, it correlates
+with who we are So we wouldn’t find it particularly remarkable if we had
+a connection to a truly “random” person, i.e., a random sample from the
+population of people on the planet. We find it remarkable when we have a
+connection with a <em>specific</em> person, and the fact that we thought
+of that person already implies a possible correlation with them</p>
+<h2 id="combinatorics-and-exponentials">Combinatorics and
+exponentials</h2>
+<p>Behind all of these things is combinatorics. We just seem to be
+really bad at making <a href="https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow">system
+1</a> predictions that involve combinatorics.</p>
+<p>In these cases, the combinatorial effect of adding more features
+starts outweighing the effect of the Gaussian pulling features towards
+the mode.</p>
+<p>We’re terrible We think in logarithmic terms, so we consistently
+underestimate the power of exponentials.</p>
+<p>Climate change, and covid</p>
+ </section>
+ </article>
+ </body>
+</html>
diff --git a/style.css b/style.css
@@ -60,6 +60,16 @@ h1 {
line-height: 1;
}
+h2 {
+ font-family: var(--font-sans);
+ font-weight: bold;
+ font-size: 1.1rem;
+}
+
+h3 {
+ font-size: 1.0rem;
+}
+
p.subtitle {
font-family: var(--font-sans);
margin-top: 1rem;
@@ -83,10 +93,17 @@ p {
margin-bottom: 1.4rem;
}
-section > p {
+section > p,
+section > ol,
+section > ul {
width: 55%;
}
+section > hr {
+ width: 55%;
+ margin-left: 0;
+}
+
/* Links */
a:link,
a:visited {
@@ -153,6 +170,11 @@ label.margin-toggle:not(.sidenote-number) {
display: none;
}
+.socials a {
+ display: block;
+ line-height: 2.0;
+}
+
/* Tables */
table{
border-collapse:collapse;
@@ -185,7 +207,9 @@ tbody tr:last-child td{
padding-right: 5%;
}
- section > p {
+ section > p,
+ section > ol,
+ section > ul {
width: 100%;
}
@@ -193,13 +217,29 @@ tbody tr:last-child td{
display: inline;
}
- .sidenote,
- .marginnote {
+ .sidenote {
display: none;
}
- .margin-toggle:checked + .sidenote,
- .margin-toggle:checked + .marginnote {
+ .marginnote {
+ display: block;
+ float: none;
+ clear: both;
+ width: 100%;
+ margin: 1rem 0;
+ position: relative;
+ }
+
+ .marginnote.socials {
+ display: flex;
+ justify-content: space-around;
+ }
+
+ .marginnote.socials a {
+ display: inline;
+ }
+
+ .margin-toggle:checked + .sidenote {
display: block;
float: left;
left: 1rem;
diff --git a/style.min.css b/style.min.css
@@ -1 +1 @@
-:root{--bg-color:#fffff8;--text-color:#111;--text-muted:#ccc;--selection-color:#b4d5fe;--font-sans:Seravek,'Gill Sans Nova',Ubuntu,Calibri,'DejaVu Sans',source-sans-pro,sans-serif;--font-serif:Charter,'Bitstream Charter','Sitka Text',Cambria,serif;--font-mono:JetBrains Mono,monospace}code{font-family:var(--font-mono);font-size:.75rem}@media (prefers-color-scheme: dark){:root{--bg-color:#151515;--text-color:#ddd;--text-muted:#555}}html{font-size:2.4vw}@media (min-width: 1000px){html{font-size:22px}}@media (max-width: 760px){html{font-size:18px}}body{width:87.5%;margin-left:auto;margin-right:auto;padding-left:12.5%;font-family:var(--font-serif);background-color:var(--bg-color);color:var(--text-color);max-width:1400px;counter-reset:sidenote-counter}h1{font-family:var(--font-sans);font-weight:700;font-size:1.5rem;margin-top:2.5rem;margin-bottom:1.5rem;line-height:1}p.subtitle{font-family:var(--font-sans);margin-top:1rem;margin-bottom:1rem;line-height:1}article{padding:3rem 0}section{padding-top:1rem;padding-bottom:1rem}p{font-size:1rem;line-height:1.4rem;margin-top:1.4rem;margin-bottom:1.4rem}section > p{width:55%}a:link,a:visited{color:inherit;text-decoration:underline;text-decoration-skip-ink:auto;text-underline-offset:.1em}::selection{background:var(--selection-color)}img{max-width:100%}.sidenote,.marginnote{float:right;clear:right;margin-right:-60%;width:50%;margin-top:.3rem;margin-bottom:0;font-size:.75rem;line-height:1.3;position:relative}.sidenote-number{counter-increment:sidenote-counter}.sidenote-number:after,.sidenote:before{position:relative}.sidenote-number:after{content:counter(sidenote-counter);font-size:.7rem;top:-.5rem;left:.1rem}.sidenote:before{content:counter(sidenote-counter) " ";font-size:.7rem;top:-.5rem}input.margin-toggle{display:none}label.sidenote-number{display:inline-block;max-height:2rem}label.margin-toggle:not(.sidenote-number){display:none}table{border-collapse:collapse;border-top:2px solid #333;border-bottom:2px solid #333}th,td{padding:7px 14px}thead th{font-weight:700;border-bottom:1px solid #333;text-align:left}td{border-bottom:1px solid #e5e5e5}tbody tr:last-child td{border-bottom:0}.numeric{text-align:right}@media (max-width: 760px){body{width:90%;padding-left:5%;padding-right:5%}section > p{width:100%}label.margin-toggle:not(.sidenote-number){display:inline}.sidenote,.marginnote{display:none}.margin-toggle:checked + .sidenote,.margin-toggle:checked + .marginnote{display:block;float:left;left:1rem;clear:both;width:95%;margin:1rem 2.5%;position:relative}label{cursor:pointer}img{width:100%}}
+:root{--bg-color:#fffff8;--text-color:#111;--text-muted:#ccc;--selection-color:#b4d5fe;--font-sans:Seravek,'Gill Sans Nova',Ubuntu,Calibri,'DejaVu Sans',source-sans-pro,sans-serif;--font-serif:Charter,'Bitstream Charter','Sitka Text',Cambria,serif;--font-mono:JetBrains Mono,monospace}code{font-family:var(--font-mono);font-size:.75rem}@media (prefers-color-scheme: dark){:root{--bg-color:#151515;--text-color:#ddd;--text-muted:#555}}html{font-size:2.4vw}@media (min-width: 1000px){html{font-size:22px}}@media (max-width: 760px){html{font-size:18px}}body{width:87.5%;margin-left:auto;margin-right:auto;padding-left:12.5%;font-family:var(--font-serif);background-color:var(--bg-color);color:var(--text-color);max-width:1400px;counter-reset:sidenote-counter}h1{font-family:var(--font-sans);font-weight:700;font-size:1.5rem;margin-top:2.5rem;margin-bottom:1.5rem;line-height:1}h2{font-family:var(--font-sans);font-weight:700;font-size:1.1rem}h3{font-size:1rem}p.subtitle{font-family:var(--font-sans);margin-top:1rem;margin-bottom:1rem;line-height:1}article{padding:3rem 0}section{padding-top:1rem;padding-bottom:1rem}p{font-size:1rem;line-height:1.4rem;margin-top:1.4rem;margin-bottom:1.4rem}section > p{width:55%}a:link,a:visited{color:inherit;text-decoration:underline;text-decoration-skip-ink:auto;text-underline-offset:.1em}::selection{background:var(--selection-color)}img{max-width:100%}.sidenote,.marginnote{float:right;clear:right;margin-right:-60%;width:50%;margin-top:.3rem;margin-bottom:0;font-size:.75rem;line-height:1.3;position:relative}.sidenote-number{counter-increment:sidenote-counter}.sidenote-number:after,.sidenote:before{position:relative}.sidenote-number:after{content:counter(sidenote-counter);font-size:.7rem;top:-.5rem;left:.1rem}.sidenote:before{content:counter(sidenote-counter) " ";font-size:.7rem;top:-.5rem}input.margin-toggle{display:none}label.sidenote-number{display:inline-block;max-height:2rem}label.margin-toggle:not(.sidenote-number){display:none}table{border-collapse:collapse;border-top:2px solid #333;border-bottom:2px solid #333}th,td{padding:7px 14px}thead th{font-weight:700;border-bottom:1px solid #333;text-align:left}td{border-bottom:1px solid #e5e5e5}tbody tr:last-child td{border-bottom:0}.numeric{text-align:right}@media (max-width: 760px){body{width:90%;padding-left:5%;padding-right:5%}section > p{width:100%}label.margin-toggle:not(.sidenote-number){display:inline}.sidenote,.marginnote{display:none}.margin-toggle:checked + .sidenote,.margin-toggle:checked + .marginnote{display:block;float:left;left:1rem;clear:both;width:95%;margin:1rem 2.5%;position:relative}label{cursor:pointer}img{width:100%}}