website

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 2c95a2e9d7ab83d0dbf51d1317997b57f35d43e8
parent 14a4f4853d2b9900c4db654322c48f4a1fb9e480
Author: Silas Brack <silasbrack@Silass-MacBook-Pro.local>
Date:   Tue, 10 Mar 2026 22:40:29 +0100

Testing

Diffstat:
Mindex.html | 4++--
Aposts/birthday.html | 354+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mstyle.css | 52++++++++++++++++++++++++++++++++++++++++++++++------
Mstyle.min.css | 2+-
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%}}