.site-footer[data-astro-cid-yfu5idmn]{padding-block:var(--space-2xs) var(--space-s);padding-inline:var(--gutter);border-block-start:var(--border-width) solid var(--sky-light);color:var(--ink-light);font-size:var(--text-s);line-height:var(--leading-snug)}@media (width>=1024px){body.app-body>.site-footer[data-astro-cid-yfu5idmn]{grid-column:2}}body.app-body .site-footer[data-astro-cid-yfu5idmn],body.math-kit-page .site-footer[data-astro-cid-yfu5idmn],body.allocation-diagram-page .site-footer[data-astro-cid-yfu5idmn],body.relation-diagrams-page .site-footer[data-astro-cid-yfu5idmn]{border-color:var(--ink-dark);color:var(--sky-dark)}.site-footer__line[data-astro-cid-yfu5idmn]{align-items:center;gap:0 var(--space-m);max-inline-size:var(--app-content-max);flex-wrap:wrap;margin:0;display:flex}@media (width<=639.98px){.site-footer__line[data-astro-cid-yfu5idmn]{gap:0 var(--space-s);grid-template-columns:minmax(0,max-content) minmax(0,1fr);display:grid}.site-footer__item[data-astro-cid-yfu5idmn]{overflow-wrap:anywhere}.site-footer__item--email[data-astro-cid-yfu5idmn]{overflow-wrap:normal;white-space:nowrap;grid-column:1/-1}}.site-footer__item[data-astro-cid-yfu5idmn]{min-block-size:var(--tap-target);text-underline-offset:.15em;align-items:center;text-decoration-thickness:1px;display:inline-flex}a[data-astro-cid-yfu5idmn].site-footer__item{color:inherit;text-decoration:underline}@media (hover:hover){a[data-astro-cid-yfu5idmn].site-footer__item:hover{color:var(--ink-darkest)}body.app-body a[data-astro-cid-yfu5idmn].site-footer__item:hover,body.math-kit-page a[data-astro-cid-yfu5idmn].site-footer__item:hover,body.allocation-diagram-page a[data-astro-cid-yfu5idmn].site-footer__item:hover,body.relation-diagrams-page a[data-astro-cid-yfu5idmn].site-footer__item:hover{color:var(--sky-lightest)}}@layer reset{*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;tab-size:4}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100svh}img,picture,video,canvas,svg{max-width:100%;display:block}img,video{height:auto}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}p,h1,h2,h3,h4,h5,h6,li,dt,dd{overflow-wrap:break-word}ul[role=list],ol[role=list]{padding:0;list-style:none}table{border-collapse:collapse;border-spacing:0}:target{scroll-margin-block-start:var(--space-3xl,6rem)}}@layer tokens{:root{--ink-lightest:#55595b;--ink-lighter:#404446;--ink-light:#303437;--ink-base:#202325;--ink-dark:#16181a;--ink-darker:#090a0a;--ink-darkest:#050505;--sky-lightest:#fff;--sky-lighter:#e3e5e5;--sky-light:#b1b5b7;--sky-base:#a4a8aa;--sky-dark:#979c9e;--sky-darker:#6c7072;--sky-darkest:#5f6365;--black-base:#000;--white-base:#fff;--white-off:#f7f7f7;--orange-lightest:#fff4e5;--orange-lighter:#ffe0b8;--orange-light:#ffae4c;--orange-base:#ff9a36;--orange-dark:#cc6d00;--orange-darker:#8a4a00;--orange-darkest:#4d2900;--indigo-lightest:#e0dffe;--indigo-lighter:#b7b9f6;--indigo-light:#8a8eef;--indigo-base:#575ce5;--indigo-dark:#3d41b8;--indigo-darkest:#1a1b3d;--cyan-base:#46ddff;--pink-base:#ff9cf9;--yellow-base:#f0fe9c;--green-lightest:#ecfce5;--green-light:#4cd471;--green-base:#23c16b;--green-dark:#00994e;--green-darkest:#16301f;--red-lightest:#f7d6d4;--red-base:#ff3676;--red-dark:#96231c;--blue-lightest:#e7edf8;--blue-base:#37f;--blue-dark:#0047cc;--focus-state:var(--indigo-light);--focus-ring-width:2px;--focus-ring-offset:2px;--font-primary:"Figtree", sans-serif;--font-secondary:"Figtree", sans-serif;--font-mono:"Figtree", sans-serif;--font-code:"Roobert SemiMono", monospace;--font-pixel:"Press Start 2P", "Roobert SemiMono", monospace;--font-pixel-alt:"Silkscreen", "Roobert SemiMono", monospace;--display-3xl:clamp(3.5rem, 1.5rem + 6.7vw, 7.5rem);--display-2xl:clamp(3.5rem, 1.75rem + 5.83vw, 7rem);--display-xl:clamp(2.75rem, 1.375rem + 4.58vw, 5.5rem);--display-l:clamp(2.25rem, 1.25rem + 3.33vw, 4.25rem);--display-m:clamp(1.875rem, 1.19rem + 2.29vw, 3.25rem);--display-s:clamp(1.625rem, 1.19rem + 1.46vw, 2.5rem);--display-xs:clamp(1.375rem, 1.06rem + 1.04vw, 2rem);--display-2xs:clamp(1.25rem, 1.13rem + .42vw, 1.5rem);--text-2xl:2rem;--text-xl:1.375rem;--text-l:1.125rem;--text-m:1rem;--text-s:.875rem;--text-xs:.75rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.05;--leading-snug:1.2;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-.03em;--tracking-normal:0;--tracking-wide:.02em;--tracking-caps:.12em;--measure:65ch;--measure-narrow:45ch}@media (width<=639.98px){:root{--text-2xl:1.75rem;--text-xl:1.25rem;--text-l:1.0625rem;--leading-normal:1.45;--leading-relaxed:1.55}}:root{--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-s:1rem;--space-m:1.5rem;--space-l:2rem;--space-xl:3rem;--space-2xl:4rem;--space-3xl:6rem;--space-4xl:8rem;--section-padding-2xl:clamp(5rem, 1.25rem + 12.5vw, 12.5rem);--section-padding-xl:clamp(4rem, 1.375rem + 8.75vw, 9.25rem);--section-padding-l:clamp(3.25rem, 1.375rem + 6.25vw, 7rem);--section-padding-m:clamp(2.5rem, 1.25rem + 4.17vw, 5rem);--section-padding-s:clamp(2rem, 1.25rem + 2.5vw, 3.5rem);--section-padding-xs:clamp(1.75rem, 1.13rem + 2.08vw, 3rem);--section-padding-2xs:clamp(1.25rem, .88rem + 1.25vw, 2rem);--section-padding-3xs:.75rem;--section-padding-4xs:.5rem;--gutter:clamp(1.25rem, .63rem + 2.08vw, 2.5rem);--container-small:64rem;--container-medium:90rem;--container-large:100rem;--app-content-max:120rem;--tap-target:2.75rem;--bp-s:640px;--bp-m:1024px;--bp-l:1440px;--z-base:0;--z-raised:10;--z-sticky:100;--z-header:200;--z-overlay:300;--z-modal:400;--z-toast:500;--radius-none:0;--radius-s:.25rem;--radius-m:.5rem;--radius-l:1rem;--radius-full:9999px;--shadow-s:0 1px 2px #0a0a0b0f, 0 1px 3px #0a0a0b14;--shadow-m:0 2px 6px #0a0a0b0f, 0 8px 20px #0a0a0b14;--shadow-l:0 4px 12px #0a0a0b12, 0 20px 44px #0a0a0b1a;--duration-fast:.12s;--duration-base:.22s;--duration-slow:.4s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--border-width:1px}}@layer base{html{color-scheme:light;scroll-behavior:smooth;scrollbar-gutter:stable}body{background-color:var(--white-off);color:var(--ink-darkest);font-family:var(--font-secondary);font-size:var(--text-m);font-weight:var(--weight-regular);line-height:var(--leading-normal)}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);text-wrap:balance}h1{font-size:var(--display-xl)}h2{font-size:var(--display-l)}h3{font-size:var(--display-m)}h4{font-size:var(--display-s);line-height:var(--leading-snug)}h5{font-size:var(--display-xs);line-height:var(--leading-snug)}h6{font-size:var(--display-2xs);line-height:var(--leading-snug)}p{text-wrap:pretty}a{color:inherit;text-underline-offset:.2em;transition:color var(--duration-fast) var(--ease-out);text-decoration-thickness:1px}a:hover{color:var(--indigo-light)}strong,b{font-weight:var(--weight-semibold)}small{font-size:var(--text-s)}code,kbd,pre,samp{font-family:var(--font-code);font-size:.9em}hr{border:none;border-block-start:var(--border-width) solid var(--sky-light)}:focus-visible{outline:var(--focus-ring-width) solid var(--focus-state);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-s)}::selection{background-color:var(--indigo-base);color:var(--white-base)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}}@layer components{[data-motion] [data-reveal]{opacity:0;transform:translateY(var(--reveal-distance,1rem));transition:opacity var(--duration-slow) var(--ease-out) var(--reveal-delay,0s), transform var(--duration-slow) var(--ease-out) var(--reveal-delay,0s)}[data-motion] [data-reveal].is-revealed{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){[data-motion] [data-reveal]{transform:none}}}@layer utilities{.display-3xl,.display-2xl,.display-xl,.display-l,.display-m,.display-s,.display-xs,.display-2xs{font-family:var(--font-primary);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);text-wrap:balance}.display-3xl{font-size:var(--display-3xl)}.display-2xl{font-size:var(--display-2xl)}.display-xl{font-size:var(--display-xl)}.display-l{font-size:var(--display-l)}.display-m{font-size:var(--display-m)}.display-s{font-size:var(--display-s);line-height:var(--leading-snug)}.display-xs{font-size:var(--display-xs);line-height:var(--leading-snug)}.display-2xs{font-size:var(--display-2xs);line-height:var(--leading-snug)}.text-2xl,.text-xl,.text-l,.text-m,.text-s,.text-xs{font-family:var(--font-secondary);font-weight:var(--weight-regular);letter-spacing:var(--tracking-normal);line-height:var(--leading-normal)}.text-2xl{font-size:var(--text-2xl);line-height:var(--leading-snug)}.text-xl{font-size:var(--text-xl)}.text-l{font-size:var(--text-l)}.text-m{font-size:var(--text-m)}.text-s{font-size:var(--text-s)}.text-xs{font-size:var(--text-xs)}.visually-hidden:not(:focus):not(:active){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:var(--z-toast);min-block-size:2.75rem;padding:var(--space-2xs) var(--space-s);background-color:var(--white-base);border:var(--border-width) solid var(--sky-light);border-radius:var(--radius-s);font-size:var(--text-s);align-items:center;display:inline-flex;position:absolute;inset-block-start:var(--space-2xs);inset-inline-start:var(--space-2xs);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.measure{max-width:var(--measure)}.measure-narrow{max-width:var(--measure-narrow)}}@font-face{font-family:Roobert;src:url(/fonts/roobert-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roobert;src:url(/fonts/roobert-medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Roobert;src:url(/fonts/roobert-semibold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Roobert;src:url(/fonts/roobert-bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Roobert SemiMono;src:url(/fonts/roobert-semimono-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roobert SemiMono;src:url(/fonts/roobert-semimono-medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Roobert SemiMono;src:url(/fonts/roobert-semimono-semibold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Roobert SemiMono;src:url(/fonts/roobert-semimono-bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Press Start 2P";src:url(/fonts/press-start-2p-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Silkscreen;src:url(/fonts/silkscreen-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Silkscreen;src:url(/fonts/silkscreen-bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-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:Figtree;font-style:italic;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-italic-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:italic;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-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}
