@property --paper{syntax:"<color>";initial-value:#bbb;inherits:true}@property --stronger-paper{syntax:"<color>";initial-value:#fff;inherits:true}@property --contrast-color{syntax:"<color>";initial-value:#000;inherits:true}@media (prefers-color-scheme: light){:root{--background-view-offset: 0;--color-scheme: light;--paper: #f1dfe5;--stronger-paper: #f5eaee;--contrast-color: black}}:root:has(#theme-selector [value=light]:checked){--background-view-offset: 0;--color-scheme: light;--paper: #f1dfe5;--stronger-paper: #f5eaee;--contrast-color: black}@media (prefers-color-scheme: dark),(prefers-color-scheme: no-preference){:root{--background-view-offset: 1;--color-scheme: dark;--paper: #230f1b;--stronger-paper: #13060f;--contrast-color: white}}:root:has(#theme-selector [value=dark]:checked){--background-view-offset: 1;--color-scheme: dark;--paper: #230f1b;--stronger-paper: #13060f;--contrast-color: white}:root{--teal: #52b676;--teal-contrasted: color-mix(in oklab, var(--teal) 60%, var(--contrast-color));--light-blue: #84d8f4;--light-blue-contrasted: color-mix(in oklab, var(--light-blue) 70%, var(--contrast-color));--blue: #4872cb;--blue-contrasted: color-mix(in oklab, var(--blue) 70%, var(--contrast-color));--deep-sea-light: #14419c;--deep-sea-dark: #001122;--pink: #e05196;--pink-contrasted: color-mix(in oklab, var(--pink) 60%, var(--contrast-color));--pink-washed: color-mix(in oklab, var(--pink) 30%, var(--stronger-paper));--purple: #d45dec;--purple-contrasted: color-mix(in oklab, var(--purple) 70%, var(--contrast-color));--purple-washed: color-mix(in oklab, var(--purple) 40%, var(--stronger-paper));--orange: #faa831;--orange-contrasted: color-mix(in oklab, var(--orange) 65%, var(--contrast-color));--gray: #857477;--gray-contrasted: color-mix(in oklab, var(--gray) 75%, var(--contrast-color));--primary: var(--pink);--primary-contrasted: var(--pink-contrasted);--primary-washed: var(--pink-washed);--secondary: var(--purple);--secondary-contrasted: var(--purple-contrasted);--secondary-washed: var(--purple-washed);--header-width: 90ch;--header-bottom-margin: 2rem;--max-main-content-width: 70ch;--min-aside-width: 30ch;--max-aside-width: 40ch;--neo-grotesque-font: Inter, Roboto, "Helvetica Neue", "Arial Nova", "Nimbus Sans", Arial, sans-serif;--antique-font: Superclarendon, "Bookman Old Style", "URW Bookman", "URW Bookman L", "Georgia Pro", Georgia, serif;--slab-serif-font: Rockwell, "Rockwell Nova", "Roboto Slab", "DejaVu Serif", "Sitka Small", serif;--humanist-font: Seravek, "Gill Sans Nova", Ubuntu, Calibri, "DejaVu Sans", source-sans-pro, sans-serif;--monospace-code-font: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--default-font: var(--neo-grotesque-font);--code-font: var(--monospace-code-font);--line-height: 1.5;--box-padding: 1rem;--rch: 0.5rem;--lh: calc(1em * var(--line-height))}@supports (width: 1rch){:root{--rch: 1rch}}@supports (width: 1lh){:root{--lh: 1lh}}*,*::before,*::after{box-sizing:border-box;padding:0;margin:0}input,button,textarea,select{font:inherit}a{color:inherit}article,p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}table{border-spacing:0}:root{color-scheme:var(--color-scheme, light dark);font-family:var(--default-font);line-height:var(--line-height);view-transition-name:none}body{text-underline-offset:.2em}:where(a,.action,header #theme-selector .option):hover{color:color-mix(in srgb, var(--contrast-color) 70%, rgba(0,0,0,0))}a:hover{text-decoration:underline}p,h1,h2,h3,h4,h5,h6{transition-duration:1s;transition-timing-function:ease-in-out;transition-property:color}@media (prefers-reduced-motion: reduce){p,h1,h2,h3,h4,h5,h6{transition-property:none !important}}p.suppress-transitions,.suppress-transitions p,h1.suppress-transitions,.suppress-transitions h1,h2.suppress-transitions,.suppress-transitions h2,h3.suppress-transitions,.suppress-transitions h3,h4.suppress-transitions,.suppress-transitions h4,h5.suppress-transitions,.suppress-transitions h5,h6.suppress-transitions,.suppress-transitions h6{transition-property:none !important}h1{font-size:2em}h1,h2,h3,h4,h5,h6{text-wrap:balance}h1 .zola-anchor,h2 .zola-anchor,h3 .zola-anchor,h4 .zola-anchor,h5 .zola-anchor,h6 .zola-anchor{line-height:var(--lh);position:relative}h1 .zola-anchor a,h2 .zola-anchor a,h3 .zola-anchor a,h4 .zola-anchor a,h5 .zola-anchor a,h6 .zola-anchor a{position:absolute;left:.2em;font-weight:normal;font-size:.7em}h1:where(:not(:first-child)),h2:where(:not(:first-child)),h3:where(:not(:first-child)),h4:where(:not(:first-child)),h5:where(:not(:first-child)),h6:where(:not(:first-child)){padding-top:1em}:is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6){padding-top:0}:is(h1,h2,h3):where(:not(:has(+:is(h1,h2,h3)))){padding-bottom:1ex}:is(h4,h5,h6):where(:not(:has(+:is(h4,h5,h6)))){padding-bottom:1ex}h1,h2,h3{font-weight:700}h4,h5,h6{font-weight:500}b{font-weight:500}li{margin-left:1em}code{font-family:var(--code-font);overflow:auto;white-space:pre-wrap;line-height:1.4}.icon,.bi{height:1em;vertical-align:middle}.template{display:none}.sr-only:not(:focus-visible):not(:active),h1:not(:is(:hover,:focus-within)) .zola-anchor:not(:focus-visible):not(:active),h2:not(:is(:hover,:focus-within)) .zola-anchor:not(:focus-visible):not(:active),h3:not(:is(:hover,:focus-within)) .zola-anchor:not(:focus-visible):not(:active),h4:not(:is(:hover,:focus-within)) .zola-anchor:not(:focus-visible):not(:active),h5:not(:is(:hover,:focus-within)) .zola-anchor:not(:focus-visible):not(:active),h6:not(:is(:hover,:focus-within)) .zola-anchor:not(:focus-visible):not(:active){clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}body{--header-height: 4em;--background-view-height: 100%;--background-in-between-height: 20%;--background-total-height: calc(var(--background-view-height) * 2 + var(--background-in-between-height));background:var(--paper) linear-gradient(var(--light-blue), var(--blue) 45%, var(--deep-sea-light) 55%, var(--deep-sea-dark));background-size:100% var(--background-total-height);background-position-y:calc(var(--background-view-offset)*100%);min-height:100dvh;overflow-x:hidden;color:var(--contrast-color);transition-duration:1s;transition-timing-function:ease-in-out;transition:background-position 1.5s ease-in-out;container:body/size;position:relative;scroll-padding-top:var(--header-height)}@media (prefers-reduced-motion: reduce){body{transition-property:none !important}}body.suppress-transitions,.suppress-transitions body{transition-property:none !important}@property --logo-top-position{syntax:"<length>";inherits:true;initial-value:0}@property --logo-height{syntax:"<length>";inherits:true;initial-value:0}@property --bloom{syntax:"<length>";inherits:false;initial-value:0}header{--logo-scale: 1;--logo-height: 3em;--header-padding: 0.5em;position:sticky;top:0;z-index:100;padding:var(--header-padding);height:var(--header-height);width:var(--header-width);max-width:100%;margin-inline:auto;margin-block-end:var(--header-bottom-margin);container-type:inline-size;backdrop-filter:blur(5px);transition-duration:1s;transition-timing-function:ease-in-out;transition-property:margin,color,border;border-bottom:1px solid var(--contrast-color);line-height:1;display:grid;grid-template-columns:1fr 10ch 1fr;align-items:center}@media (prefers-reduced-motion: reduce){header{transition-property:none !important}}header.suppress-transitions,.suppress-transitions header{transition-property:none !important}header nav{display:flex;flex-flow:row;height:100%;align-items:center}header nav .nav-control{display:none}header nav .nav-control input[type=checkbox]:not(:focus-visible):not(:active){clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}header nav ul{position:absolute;top:0;height:var(--header-height);align-items:center;transition-duration:1s;transition-timing-function:ease-in-out;transition-property:top;list-style:none;display:flex;column-gap:.5em;row-gap:.5em}@media (prefers-reduced-motion: reduce){header nav ul{transition-property:none !important}}header nav ul.suppress-transitions,.suppress-transitions header nav ul{transition-property:none !important}header nav ul>li{margin-left:0}header nav ul li a{text-decoration:none;text-transform:lowercase}header nav ul li.active a{text-decoration:underline}@container (width < 400px){header nav .nav-control{display:block;position:absolute}header nav ul{top:calc(-1*var(--header-height));width:100cqw;z-index:101;background:color-mix(in srgb, var(--paper) 70%, rgba(0,0,0,0));justify-content:center}header nav .nav-control:has(:checked){text-decoration:underline}header nav .nav-control:has(:checked)+ul{top:var(--header-height)}}header .logo-container{align-self:stretch;position:relative}header .logo{--bloom: 0em;position:absolute;top:var(--logo-top-position);left:50%;transform:translateX(-50%);height:var(--logo-height);filter:drop-shadow(0 0 var(--bloom) color-mix(in srgb, var(--primary) 80%, var(--contrast-color)));transition-duration:1s;transition-timing-function:ease-in-out;transition-property:height,top,filter;view-transition-name:logo}@media (prefers-reduced-motion: reduce){header .logo{transition-property:none !important}}header .logo.suppress-transitions,.suppress-transitions header .logo{transition-property:none !important}header #theme-selector{display:flex;justify-content:flex-end;align-items:center;column-gap:.5rem}header #theme-selector .option{display:block;cursor:pointer}header #theme-selector .option:has(+input:checked){display:none}@media (width > 90ch){header.upscaled-logo{--logo-height: 12em;--logo-top-position: 1.5em;margin-block-end:calc(var(--header-bottom-margin) + var(--logo-height) - var(--header-height) + var(--header-padding) + var(--logo-top-position))}@supports not (animation-timeline: scroll()){header.upscaled-logo{position:static}}header.upscaled-logo .logo{--bloom: 1.5em}@supports (animation-timeline: scroll()){header.upscaled-logo .logo{animation:header-upscaled-logo;animation-timeline:scroll();animation-range-end:13em;animation-fill-mode:forwards}}@keyframes header-upscaled-logo{from{--logo-height: 12em;--logo-top-position: 1.5em}to{--logo-height: 3em;--logo-top-position: 0;--bloom: 0}}}footer{width:max-content;max-width:90%;margin-block-start:2em;margin-inline:auto;padding:1em;border-top:1px solid var(--contrast-color);font-size:.8em;transition-duration:1s;transition-timing-function:ease-in-out;transition-property:color,border}@media (prefers-reduced-motion: reduce){footer{transition-property:none !important}}footer.suppress-transitions,.suppress-transitions footer{transition-property:none !important}footer ul{list-style:none;display:flex;column-gap:.5em;row-gap:.5em}footer ul>li{margin-left:0}footer ul li a{text-decoration:none;text-transform:lowercase}footer ul li.active a{text-decoration:underline}main{--min-main-content-margin: 1rem;--main-content-padding: var(--box-padding);--aside-display: none;display:grid;align-items:start;grid-template-columns:[page-start] minmax(var(--min-main-content-margin), 1fr) [main-content-box-start] var(--main-content-padding) [main-content-start] minmax(min-content, var(--max-main-content-width)) [main-content-end] var(--main-content-padding) [main-content-box-end] minmax(var(--min-main-content-margin), 1fr) [page-end]}@supports (container-type: size){@container body (width >= calc(70ch + 2 * 30ch + 6rem)){main{grid-template-columns:[page-start] minmax(1rem, 1fr) [left-aside-start] minmax(var(--min-aside-width), var(--max-aside-width)) [left-aside-end] minmax(var(--min-main-content-margin), .5fr) [main-content-box-start] var(--main-content-padding) [main-content-start] var(--max-main-content-width) [main-content-end] var(--main-content-padding) [main-content-box-end] minmax(var(--min-main-content-margin), .5fr) [right-aside-start] minmax(var(--min-aside-width), var(--max-aside-width)) [right-aside-end] minmax(1rem, 1fr) [page-end];--aside-display: block;--breakoutable-column: right-aside}}}main .left-aside{display:var(--aside-display);grid-column:left-aside}main .right-aside{display:var(--aside-display);grid-column:right-aside}main .toc{position:sticky;top:0;padding-top:10dvh;padding-bottom:1em;transition-duration:1s;transition-timing-function:ease-in-out;transition-property:color;pointer-events:none}@media (prefers-reduced-motion: reduce){main .toc{transition-property:none !important}}main .toc.suppress-transitions,.suppress-transitions main .toc{transition-property:none !important}main .toc h2{text-align:center}main .toc a{pointer-events:auto}main>*{z-index:50}main>article{display:grid;grid-template-columns:subgrid;grid-template-rows:auto}@supports not (grid-template-columns: subgrid){main>article{grid-template-columns:[main-content-box-start] var(--main-content-padding) [main-content-start] 1fr [main-content-end] var(--main-content-padding) [main-content-box-end]}}@property --section-bottom-fade{syntax:"<length>";inherits:false;initial-value:0}@property --section-top-fade{syntax:"<length>";inherits:false;initial-value:0}:is(main,article){--row-gap: 1rem}:is(main,article)>:where(:not(:last-child,h1,h2,h3)){margin-bottom:var(--row-gap)}:is(main,article)>:is(h1,h2,h3){color:var(--contrast-color);text-align:center;padding-block-start:0}:is(main,article)>:is(h1,h2,h3):has(+.heading-links){padding-block-end:0}:is(main,article)>.heading-links{font-size:.9em}:is(main,article)>.heading-links ul{list-style:none;display:flex;column-gap:.5em;row-gap:.5em;justify-content:center}:is(main,article)>.heading-links ul>li{margin-left:0}:is(main,article)>.heading-links ul li a{text-transform:lowercase}:is(main,article)>article{grid-column:main-content-box}:is(main,article)>:not(article,section,p,ul,ol,h4,h5,h6){grid-column:main-content}:is(main,article)>:is(section,p,ul,ol,h4,h5,h6){--fade-height: calc(0.5 * var(--lh));--box-block-padding: calc(0.5 * var(--lh));grid-column:main-content-box;padding-inline:var(--main-content-padding);margin-block:0;transition-duration:1s;transition-timing-function:ease-in-out;transition-property:color,background-color;background-color:var(--paper);text-wrap:pretty;border-image:linear-gradient(to bottom, rgba(0,0,0,0), var(--paper) 30%, var(--paper) 70%, rgba(0,0,0,0)) 34% 0 fill/var(--section-top-fade) 0 var(--section-bottom-fade)/var(--section-top-fade) 0 var(--section-bottom-fade)}@media (prefers-reduced-motion: reduce){:is(main,article)>:is(section,p,ul,ol,h4,h5,h6){transition-property:none !important}}:is(main,article)>:is(section,p,ul,ol,h4,h5,h6).suppress-transitions,.suppress-transitions :is(main,article)>:is(section,p,ul,ol,h4,h5,h6){transition-property:none !important}:is(:not(section,p,ul,ol,h4,h5,h6)+:is(:is(main,article)>:is(section,p,ul,ol,h4,h5,h6)),:is(main,article)>:is(section,p,ul,ol,h4,h5,h6):first-child){margin-block-start:var(--fade-height);padding-block-start:var(--box-block-padding);--section-top-fade: var(--fade-height)}:is(main,article)>:is(section,p,ul,ol,h4,h5,h6):not(:has(+:is(section,p,ul,ol,h4,h5,h6)),:last-child){margin-block-end:calc(var(--fade-height) + var(--row-gap));padding-block-end:var(--box-block-padding);--section-bottom-fade: var(--fade-height)}:is(main,article)>:is(section,p,ul,ol,h4,h5,h6):last-child{padding-block-end:var(--box-block-padding)}:is(main,article)>:is(section,p,ul,ol,h4,h5,h6)+:is(section,p,ul,ol,h4,h5,h6){padding-block-start:.5em}:is(main,article)>:is(section,p,ul,ol,h4,h5,h6) a:hover{color:var(--primary-contrasted)}:is(main,article)>:is(code,pre){background-color:var(--stronger-paper);color:var(--contrast-color);border:1px solid var(--secondary);font-size:.9em;transition-duration:1s;transition-timing-function:ease-in-out;transition-property:border,background-color,color;padding:var(--rch) var(--main-content-padding)}@media (prefers-reduced-motion: reduce){:is(main,article)>:is(code,pre){transition-property:none !important}}:is(main,article)>:is(code,pre).suppress-transitions,.suppress-transitions :is(main,article)>:is(code,pre){transition-property:none !important}:is(main,article)>figure{background-color:var(--stronger-paper);color:var(--contrast-color);border:1px solid var(--secondary);font-size:.9em;transition-duration:1s;transition-timing-function:ease-in-out;transition-property:border,background-color,color;display:grid}@media (prefers-reduced-motion: reduce){:is(main,article)>figure{transition-property:none !important}}:is(main,article)>figure.suppress-transitions,.suppress-transitions :is(main,article)>figure{transition-property:none !important}:is(main,article)>figure>img{justify-self:center;max-width:100%;margin:var(--main-content-padding)}:is(main,article)>figure>:is(code,pre,figcaption){padding:var(--rch) var(--main-content-padding)}:is(main,article)>figure>:last-child:not(:first-child){border-top:1px solid var(--secondary)}.bg-bubble{--bubble-size: 50px;--bubble-opacity: 60%;height:var(--bubble-size);width:var(--bubble-size);position:absolute;top:var(--top);color:#fff;opacity:var(--bubble-opacity);animation:4s ease-in-out infinite alternate bubble-float}@keyframes bubble-float{from{transform:translate(-80%, -50%) rotate(-20deg)}to{transform:translate(-20%, -50%) rotate(20deg)}}.jelly-list{list-style:none}.jelly-list>li{--bullet-size: 0.7em;--bullet-space-x: 0.5ch;position:relative}.jelly-list>li::before{content:"";position:absolute;left:0;top:0;transform:translate(calc(-100% - var(--bullet-space-x)), calc(.5lh - var(--bullet-size)/2));transition-duration:1s;transition-timing-function:ease-in-out;transition-property:filter;display:inline-block;width:var(--bullet-size);height:var(--bullet-size);background:url("/assets/jellyfish-bullet.svg") center center/cover}@media (prefers-reduced-motion: reduce){.jelly-list>li::before{transition-property:none !important}}.jelly-list>li::before.suppress-transitions,.suppress-transitions .jelly-list>li::before{transition-property:none !important}@media (prefers-color-scheme: dark),(prefers-color-scheme: no-preference){.jelly-list>li::before{filter:invert(1)}}:root:has(#theme-selector [value=dark]:checked) .jelly-list>li::before{filter:invert(1)}@media (prefers-color-scheme: light){.jelly-list>li::before{filter:invert(0)}}:root:has(#theme-selector [value=light]:checked) .jelly-list>li::before{filter:invert(0)}