@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-normal.D9elroTD.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-italic.D2yaqPoE.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg: #f3f2f2;--color-text: #201e1d;--color-accent: #0088b0;--color-accent-2: #d6006c;--color-neutral-100: #f8f4f4;--color-neutral-200: #eae7e7;--color-neutral-300: #d7d3d3;--color-neutral-400: #bab6b6;--color-neutral-500: #9b9797;--color-neutral-600: #7d7979;--color-neutral-700: #605d5d;--color-neutral-800: #444141;--color-neutral-900: #2d2b2b;--color-accent-100: #e9f8ff;--color-accent-200: #cbeeff;--color-accent-300: #99e0ff;--color-accent-400: #62c5ee;--color-accent-500: #38a6cf;--color-accent-600: #1186ac;--color-accent-700: #006786;--color-accent-800: #004961;--color-accent-900: #0a303e;--color-accent-2-100: #fff1f4;--color-accent-2-200: #ffdee6;--color-accent-2-300: #ffc0d0;--color-accent-2-400: #ff90b1;--color-accent-2-500: #ff458e;--color-accent-2-600: #d82071;--color-accent-2-700: #aa0b56;--color-accent-2-800: #790e3d;--color-accent-2-900: #4b1528;--font-heading: "Source Serif 4 Variable", "Source Serif 4", Georgia, serif;--font-heading-weight: 600;--font-body: "Source Serif 4 Variable", "Source Serif 4", Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:15px;line-height:1.55;font-weight:400}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);line-height:1.12;letter-spacing:-.015em;margin:0 0 10px}h1{font-size:42px}h2{font-size:32px}h3{font-size:25px}h4{font-size:20px}h5{font-size:16px}h6{font-size:13px;letter-spacing:.08em;text-transform:uppercase}p{margin:0 0 15px}a{text-underline-offset:3px}img{display:block;max-width:100%}:focus{outline:none}:root{--paper: var(--color-bg);--surface: var(--color-neutral-100);--stripe: var(--color-neutral-200);--ink: var(--color-text);--ink-2: var(--color-neutral-800);--ink-3: var(--color-neutral-700);--cyan: var(--color-accent);--cyan-tint: var(--color-accent-200);--cyan-deep: var(--color-accent-700);--magenta: var(--color-accent-2);--magenta-tint: var(--color-accent-2-200);--magenta-deep: var(--color-accent-2-700);--gutter: clamp(20px, 5vw, 72px);--measure: 1240px}[data-theme=dark]{--paper: var(--color-text);--surface: var(--color-neutral-900);--stripe: var(--color-neutral-800);--ink: var(--color-bg);--ink-2: var(--color-neutral-300);--ink-3: var(--color-neutral-500);--cyan: var(--color-accent-400);--cyan-tint: var(--color-accent-800);--cyan-deep: var(--color-accent-300);--magenta: var(--color-accent-2-400);--magenta-tint: var(--color-accent-2-800);--magenta-deep: var(--color-accent-2-300)}html{scroll-behavior:smooth;scroll-padding-top:24px}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);min-height:100vh}a{color:var(--cyan-deep);text-decoration:none}a:hover{color:var(--magenta-deep)}::selection{background:var(--cyan-tint)}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.skip-link{position:fixed;top:10px;left:10px;z-index:40;padding:12px 20px;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--cyan-tint);border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);transform:translateY(calc(-100% - 20px));transition:transform .18s cubic-bezier(.2,.7,.3,1)}.skip-link:focus{transform:translateY(0)}main:focus{outline:none}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.switch{display:inline-flex;margin:0;padding:0;min-inline-size:0;border:3px solid var(--ink);background:var(--surface);box-shadow:5px 5px 0 var(--ink)}.switch-option{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;cursor:pointer;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);transition:background .15s ease,color .15s ease}.switch-option+.switch-option{border-left:3px solid var(--ink)}.switch-option svg{width:15px;height:15px;flex:none}.switch-option:hover{background:var(--cyan-tint);color:var(--ink)}.switch-option:has(input:checked){background:var(--ink);color:var(--paper)}.switch-option:has(input:focus-visible){outline:2px solid var(--cyan);outline-offset:-6px}.mono{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.section{padding-inline:var(--gutter);max-width:var(--measure)}.section-head{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;border-bottom:6px solid var(--ink);padding-bottom:14px}.section-head h2{font-size:clamp(30px,4.6vw,56px);font-weight:700;letter-spacing:-.03em;margin:0 auto 0 0}.btn-nb{display:inline-flex;align-items:center;justify-content:center;gap:10px;--nb-size: 6px;--nb-shadow: var(--ink);font-family:var(--font-body);font-size:16px;font-weight:700;text-decoration:none;cursor:pointer;padding:14px 24px;border:3px solid var(--ink);border-radius:0;background:var(--surface);color:var(--ink);box-shadow:var(--nb-size) var(--nb-size) 0 var(--nb-shadow);transition:box-shadow .15s ease,transform .15s ease,background .15s ease,color .15s ease}.btn-nb:active{box-shadow:0 0 0 var(--nb-shadow);transform:translate(var(--nb-size),var(--nb-size))}.btn-nb svg{width:1.15em;height:1.15em;flex:none}.btn-nb--icon{padding:0;aspect-ratio:1;min-width:calc(1.55em + 34px)}.btn-nb--icon svg{width:22px;height:22px}.btn-nb--lift:hover{box-shadow:calc(var(--nb-size) / 2) calc(var(--nb-size) / 2) 0 var(--nb-shadow);transform:translate(calc(var(--nb-size) / 2),calc(var(--nb-size) / 2))}.btn-nb--tint:hover{background:var(--cyan-tint);color:var(--ink)}.btn-nb--ink{background:var(--ink);color:var(--paper);--nb-shadow: var(--cyan)}.btn-nb--ink:hover{color:var(--paper)}.btn-nb--cyan{background:var(--cyan);color:var(--paper)}.btn-nb--cyan:hover{background:var(--cyan-deep);color:var(--paper)}.btn-nb--paper{border-color:var(--paper);background:var(--paper);color:var(--ink);--nb-shadow: var(--magenta)}.btn-nb--paper:hover{color:var(--ink)}.btn-nb--outline-paper{border-color:var(--paper);background:transparent;color:var(--paper);box-shadow:none}.btn-nb--outline-paper:hover{background:var(--ink-2);color:var(--paper)}.btn-nb--outline-paper:active{background:var(--stripe);transform:none;box-shadow:none}.plate{background-image:repeating-linear-gradient(135deg,var(--stripe) 0 9px,var(--surface) 9px 18px);display:flex;align-items:flex-end;padding:16px}.plate-caption{color:var(--ink-3);background:var(--paper);border:2px solid var(--ink);padding:4px 8px}[data-reveal]{transition:opacity .5s cubic-bezier(.2,.7,.3,1),transform .5s cubic-bezier(.2,.7,.3,1)}html.js [data-reveal]:not(.is-shown){opacity:0;transform:translateY(22px)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html.js [data-reveal]:not(.is-shown){opacity:1;transform:none}}.toggle[data-astro-cid-x3pjskd3]{position:fixed;bottom:clamp(16px,2.6vw,34px);right:clamp(16px,2.4vw,34px);z-index:26;display:flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0;cursor:pointer;border:3px solid var(--ink);border-radius:0;background:var(--surface);color:var(--ink);box-shadow:5px 5px 0 var(--ink);transition:box-shadow .15s ease,transform .15s ease,background .15s ease}.toggle[data-astro-cid-x3pjskd3]:hover{background:var(--cyan-tint);box-shadow:3px 3px 0 var(--ink);transform:translate(2px,2px)}.toggle[data-astro-cid-x3pjskd3]:active{box-shadow:0 0 0 var(--ink);transform:translate(5px,5px)}.icon[data-astro-cid-x3pjskd3]{display:block}.icon-moon[data-astro-cid-x3pjskd3],html[data-theme=dark] .icon-sun[data-astro-cid-x3pjskd3]{display:none}html[data-theme=dark] .icon-moon[data-astro-cid-x3pjskd3]{display:block}
