:root{--desk: #dfe5ee;--paper: #fbfcfe;--well: #ffffff;--ink: #12325e;--frame: #a8c2e0;--hair: #dce6f2;--fill-1: #f2f7fd;--fill-2: #eef4fc;--fill-3: #dbe8f8;--body: #35496b;--body-2: #4a638c;--label: #46618a;--red: #b03b2e;--font-body: "Archivo", system-ui, sans-serif;--font-mono: "IBM Plex Mono", Consolas, monospace;--border-outer: 2.5px;--border-inner: 1px;--inset: 22px;--tick: 19px;--sheet-w: 1180px;--sheet-h: 812px;--tab-w: 34px;--hero-col: 388px;--notes-h: 214px;--tblock-w: 424px;--prose-w: 384px;--hero-h: 420px;--spring: cubic-bezier(.22, 1.2, .36, 1);--spring-tab: cubic-bezier(.3, 1.2, .4, 1);--ease-open: cubic-bezier(.3, 1, .4, 1);--t-fade-out: .3s;--t-fade-in: .35s}@font-face{font-family:Archivo;src:url(/fonts/archivo-var.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--desk);color:var(--ink);font-family:var(--font-body);font-size:15.5px;line-height:1.6}img,video{max-width:100%;display:block}h1,h2,h3,h4{line-height:1.15;margin:0;font-weight:600}a{color:var(--ink);text-decoration:none}a:hover{color:var(--red)}:focus-visible{outline:2px solid var(--red);outline-offset:2px}.mono{font-family:var(--font-mono);font-weight:500;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--label)}.code{font-family:var(--font-mono);font-weight:500;font-size:11.5px;letter-spacing:.16em;color:var(--red)}.chip{padding:5px 9px;border:1px solid var(--frame);background:var(--fill-2);font-family:var(--font-mono);font-weight:500;font-size:10.5px;color:var(--ink);white-space:nowrap}.fig{margin:0;border:1px solid var(--frame);background:var(--well);display:flex;flex-direction:column;min-width:0}.fig .well{position:relative;flex:1;min-height:0}.media{display:block;background:var(--well)}.media.natural{width:100%;height:auto}.media.fit{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.fig figcaption{border-top:1px solid var(--hair);background:var(--fill-1);padding:8px 12px 9px;font-family:var(--font-mono);font-weight:500;font-size:9.5px;line-height:1.45;letter-spacing:.06em;color:var(--ink)}.balloon{position:absolute;left:9px;top:9px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1.5px solid var(--ink);background:var(--paper)}.balloon:before{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--fill-3);transform:scale(var(--on, 0));transition:transform var(--t-fade-out) var(--spring)}.balloon span{position:relative;font-family:var(--font-mono);font-weight:500;font-size:10.5px;color:var(--ink)}.hatch{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,var(--fill-1) 0 10px,var(--paper) 10px 20px)}.hatch span{max-width:240px;text-align:center;padding:8px 10px;font-family:var(--font-mono);font-weight:500;font-size:10.5px;line-height:1.7;letter-spacing:.1em;color:var(--ink);background:#fbfcfeeb;border:1px solid var(--frame)}.prose{counter-reset:fig zone 1}.prose .balloon .num:before{counter-increment:fig;content:counter(fig,decimal-leading-zero)}.prose h2{display:flex;align-items:center;gap:14px;margin:26px 0 14px;font-family:var(--font-mono);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--label);clear:both}.prose h2:before{counter-increment:zone;content:counter(zone,upper-alpha);display:flex;align-items:center;justify-content:center;min-width:26px;height:26px;border:1.5px solid var(--ink);font-weight:600;letter-spacing:0;color:var(--ink);flex:none}.prose h2:after{content:"";flex:1;height:1px;background:repeating-linear-gradient(90deg,var(--frame) 0 5px,transparent 5px 10px)}.prose p{color:var(--body);font-size:15px;line-height:1.62;text-wrap:pretty;margin:0 0 14px}.prose strong{color:var(--ink);font-weight:600}.prose ul{color:var(--body);padding-left:18px;margin:0 0 14px}.prose li{margin:4px 0}.prose li::marker{color:var(--red)}.prose a{text-decoration:underline;text-decoration-color:var(--frame)}.prose h3{font-family:var(--font-mono);font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin:22px 0 10px}.prose code{font-family:var(--font-mono);font-size:.86em;background:var(--fill-1);border:1px solid var(--hair);padding:.1em .35em}.well-block{position:relative;border:1px solid var(--frame);background:var(--well);margin:18px 0;padding:22px 16px 14px;overflow-x:auto}.well-block>.tag{position:absolute;left:12px;top:7px;font-family:var(--font-mono);font-weight:500;font-size:8.5px;letter-spacing:.18em;color:var(--label)}.prose pre{margin:0;background:none;border:0;padding:0;overflow-x:auto}.prose pre code{background:none;border:0;padding:0;font-size:12.5px;line-height:1.75;color:var(--ink)}.prose mjx-container{color:var(--ink)}.prose mjx-container[jax=SVG][display=true]{display:block;text-align:left;margin:0;overflow-x:auto;overflow-y:hidden}.prose table{display:block;width:max-content;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:18px 0;font-size:13px}.prose thead{background:var(--fill-1)}.prose th{border-bottom:1px solid var(--ink);padding:8px 14px 8px 10px;text-align:left;font-family:var(--font-mono);font-weight:500;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--label);white-space:nowrap}.prose td{border-bottom:1px solid var(--frame);padding:8px 14px 8px 10px;text-align:left;vertical-align:top;color:var(--body)}.prose td:first-child{color:var(--ink)}.prose tbody td:not(:first-child){font-family:var(--font-mono);font-size:12.5px}.attrib{border:1px dashed var(--frame);background:var(--fill-1);padding:11px 14px;margin:18px 0;font-size:13.5px;line-height:1.6;color:var(--body)}@media(prefers-reduced-motion:reduce){.balloon:before{transition:none}}
