*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--color-gray-200)}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:var(--color-gray-400)}input::placeholder,textarea::placeholder{opacity:1;color:var(--color-gray-400)}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--color-ink: #0a0a0a;--color-ink-rgb: 10 10 10;--color-paper: #ffffff;--color-paper-rgb: 255 255 255;--color-gray-50: #f9f9f9;--color-gray-100: #f1f1f1;--color-gray-200: #e4e4e4;--color-gray-300: #d0d0d0;--color-gray-400: #afafaf;--color-gray-500: #8c8c8c;--color-gray-600: #717171;--color-gray-700: #575757;--color-gray-800: #3c3c3c;--color-gray-900: #272727;--color-muted: #656565;--color-subtle: var(--color-gray-200);--theme-dark-ink-channel: 241;--theme-dark-paper-channel: 10;--theme-dark-ink: rgb(var(--theme-dark-ink-channel) var(--theme-dark-ink-channel) var(--theme-dark-ink-channel));--theme-dark-paper: rgb(var(--theme-dark-paper-channel) var(--theme-dark-paper-channel) var(--theme-dark-paper-channel));--theme-dark-ink-rgb: var(--theme-dark-ink-channel) var(--theme-dark-ink-channel) var(--theme-dark-ink-channel);--theme-dark-paper-rgb: var(--theme-dark-paper-channel) var(--theme-dark-paper-channel) var(--theme-dark-paper-channel);--theme-artwork-contrast: calc((var(--theme-dark-ink-channel) - var(--theme-dark-paper-channel)) / (var(--theme-dark-ink-channel) + var(--theme-dark-paper-channel)));--theme-artwork-brightness: calc((var(--theme-dark-ink-channel) + var(--theme-dark-paper-channel)) / 255);--theme-dark-artwork-filter: invert(1) contrast(var(--theme-artwork-contrast)) brightness(var(--theme-artwork-brightness));--theme-artwork-filter: none;--theme-transition-duration: .2s;color-scheme:light;--font-sans: "Inter Tight Variable", "Noto Sans SC", system-ui, sans-serif;--font-sc: var(--font-sans);--font-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--text-base: 1rem;--text-caption: .75rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.55;--leading-relaxed: 1.75;--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--space-3xl: 6rem;--space-4xl: 8rem;--max-readable: 42rem;--layout-columns: 4;--layout-frame-edge: var(--space-sm);--layout-row-unit: var(--space-lg);--layout-bounded-max: 80rem;--short-about-copy-size: clamp(var(--text-base), 2vw, var(--text-3xl));--short-about-first-indent: 0px;--footer-pelican-width: var(--space-3xl);--footer-pelican-start: .25;--footer-pelican-speed: 40;--footer-rule-width: 1px;--ascii-fg: var(--color-gray-900);--ascii-fg-dim: var(--color-gray-700);--ascii-fg-faint: var(--color-gray-400);--ascii-bg: transparent;--ascii-target-cols: 200;--ascii-shore-line: .32;--ascii-shore-slant: .1;--ascii-saturn-size: .98;--ascii-saturn-framing: contain;--ascii-saturn-mobile-height-fill: .6;--ascii-saturn-mobile-center-x: .75;--ascii-saturn-center-x: .5;--ascii-saturn-center-y: .56;--ascii-saturn-tilt: -23;--ascii-saturn-ring-opening: 22;--ascii-saturn-ring-outer: 2.2;--ascii-saturn-light-azimuth: -135;--ascii-saturn-light-front: .35;--ascii-saturn-ambient: .08;--ascii-saturn-shadow-strength: .85;--ascii-saturn-ink-floor: .2;--ascii-saturn-sphere-ink-floor: .38;--ascii-saturn-sphere-diffuse: .75;--ascii-saturn-moon-count: 2;--ascii-saturn-moon-orbit-offset: 45;--ascii-saturn-moon-ink-floor: .6;--ascii-saturn-period: 60s;--ascii-scan-alpha: .035;--ascii-scan-period: 5px;--ascii-scan-opacity: .35;--wordmark-wash: .6;--wordmark-scale: .8;--wordmark-span: calc(100vw - 2 * var(--hero-pad));--wordmark-aspect: .299;--wordmark-bottom: calc(var(--wordmark-span) * var(--wordmark-scale) * var(--wordmark-aspect));--hero-pad: var(--space-sm);--hero-viewport-height: 100vh;--hero-wordmark-height-ratio: calc(2 / 3);--hero-wordmark-top: max(var(--site-nav-top), env(safe-area-inset-top));--hero-wordmark-narrow-wash: .12;--hero-latest-title-size: var(--text-base);--hero-latest-cover-width: 12rem;--hero-latest-max-width: 22rem;--site-nav-top: var(--space-sm);--site-nav-font-size: var(--text-caption);--site-nav-line-thickness: calc(var(--site-nav-font-size) / 8);--site-nav-link-gap: var(--space-md);--site-nav-underline-offset: calc(var(--site-nav-font-size) * .15);--site-nav-hit-block: var(--space-sm);--site-nav-hit-inline: min(var(--space-xs), calc(var(--site-nav-link-gap) / 2));--site-nav-anchor-clearance: calc(var(--site-nav-top) + var(--space-xl));--motion-ease-standard: cubic-bezier(.2, 0, 0, 1);--motion-page-duration: .24s;--motion-page-distance: var(--space-2xs);--motion-primary-duration: .42s;--motion-reveal-duration: .36s;--motion-reveal-distance: var(--space-sm);--motion-ink-duration: .2s;--motion-ink-thickness: 2px;--motion-ink-offset: .15em;--lab-gallery-columns: 2;--lab-panel-inset: var(--space-sm);--lab-inactive-cover-opacity: .18;--lab-title-size: var(--text-5xl);--lab-return-size: var(--text-base);--lab-hairline: 1px;--about-heat-gray-0: var(--color-paper);--about-heat-gray-1: var(--color-gray-200);--about-heat-gray-2: var(--color-gray-400);--about-heat-gray-3: var(--color-muted);--about-heat-gray-4: var(--color-ink);--about-heat-green-0: #eff2f5;--about-heat-green-source-1: #aceebb;--about-heat-green-source-2: #4ac26b;--about-heat-green-source-3: #2da44e;--about-heat-green-source-4: #116329;--about-heat-green-1: var(--about-heat-green-source-1);--about-heat-green-2: var(--about-heat-green-source-2);--about-heat-green-3: var(--about-heat-green-source-3);--about-heat-green-4: var(--about-heat-green-source-4);--about-heat-cell: 10px;--about-heat-gap: 2.67px;--about-heat-cell-radius: 2px;--about-heat-cell-line: .5px;--about-photo-scale: 1.4;--about-photo-focus: 50% 50%;--about-clapper-angle: 13deg;--about-camera-lever-angle: -96deg;--about-interest-cycle: 16s;--about-scene-enter-fill: .35;--about-scene-exit-fill: .95;--about-book-lift: var(--space-xl);--about-text-display: clamp(var(--text-4xl), 7.5vw, 6rem);--about-copy-size: var(--text-xl);--about-intro-column-units: 11.25;--about-intro-min-size: var(--text-base);--about-intro-max-size: var(--text-xl);--about-intro-fallback-size: var(--text-base);--about-intro-size: clamp(var(--about-intro-min-size), calc(100cqw / var(--about-intro-column-units)), var(--about-intro-max-size));--about-creative-mobile-size: var(--text-base);--about-book-gap: var(--space-sm);--about-book-gap-compact: 0;--about-dropcap-lines: 2;--about-manifesto-fill: .6;--about-stat-number-size: var(--text-5xl);--about-stat-number-weight: 900}@media(min-width:768px){:root{--site-nav-link-gap: var(--space-lg);--hero-pad: var(--space-md);--about-heat-cell: 18px;--about-intro-max-size: var(--text-4xl);--about-intro-fallback-size: var(--text-4xl)}}@media(min-width:1024px){:root{--hero-pad: var(--space-lg)}}@media(max-width:1024px){:root{--lab-gallery-columns: 1;--lab-title-size: var(--text-3xl)}}@media(min-width:640px){:root{--wordmark-span: 90vw}}:root[data-theme=dark]{color-scheme:dark;--color-ink: var(--theme-dark-ink);--color-ink-rgb: var(--theme-dark-ink-rgb);--color-paper: var(--theme-dark-paper);--color-paper-rgb: var(--theme-dark-paper-rgb);--color-muted: var(--color-gray-400);--color-subtle: var(--color-gray-900);--ascii-fg: var(--color-gray-100);--ascii-fg-dim: var(--color-gray-400);--ascii-fg-faint: var(--color-gray-700);--theme-artwork-filter: var(--theme-dark-artwork-filter);--about-heat-gray-1: var(--color-subtle);--about-heat-gray-2: var(--color-gray-700);--about-heat-green-0: var(--color-paper);--about-heat-green-1: var(--about-heat-green-source-4);--about-heat-green-2: var(--about-heat-green-source-3);--about-heat-green-3: var(--about-heat-green-source-2);--about-heat-green-4: var(--about-heat-green-source-1)}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-ink: var(--theme-dark-ink);--color-ink-rgb: var(--theme-dark-ink-rgb);--color-paper: var(--theme-dark-paper);--color-paper-rgb: var(--theme-dark-paper-rgb);--color-muted: var(--color-gray-400);--color-subtle: var(--color-gray-900);--ascii-fg: var(--color-gray-100);--ascii-fg-dim: var(--color-gray-400);--ascii-fg-faint: var(--color-gray-700);--theme-artwork-filter: var(--theme-dark-artwork-filter);--about-heat-gray-1: var(--color-subtle);--about-heat-gray-2: var(--color-gray-700);--about-heat-green-0: var(--color-paper);--about-heat-green-1: var(--about-heat-green-source-4);--about-heat-green-2: var(--about-heat-green-source-3);--about-heat-green-3: var(--about-heat-green-source-2);--about-heat-green-4: var(--about-heat-green-source-1)}}@supports (height: 100svh){:root{--hero-viewport-height: 100svh}}@media(min-width:768px){:root{--layout-columns: 12;--layout-frame-edge: var(--space-md);--layout-row-unit: var(--space-2xl);--wordmark-span: 66.666vw;--footer-pelican-width: var(--space-4xl)}}@media(min-width:1024px){:root{--layout-frame-edge: var(--space-lg)}}@media(max-width:640px){:root{--ascii-target-cols: 84;--ascii-saturn-framing: height-crop;--ascii-saturn-center-y: 1}}*{border-radius:0}html{color:var(--color-ink);background-color:var(--color-paper);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-padding-top:var(--site-nav-anchor-clearance)}body{min-height:100vh;line-height:var(--leading-normal)}:where(:lang(zh)){font-family:inherit}code,pre,kbd,samp{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}a{color:inherit;text-decoration:underline;text-underline-offset:.15em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:root{--entry-complete-hold: .5s;--entry-collapse-duration: .24s;--entry-expand-duration: .6s;--entry-reveal-duration: .16s;--entry-cursor-period: 1s;--entry-type-step: .12s;--entry-window-width: min(52vw, 64rem);--entry-window-ratio: 1.93;--entry-frame-line: 1px;--entry-type-size: var(--text-3xl);--entry-dot-size: var(--space-sm);--entry-dot-gap: var(--space-xs);--entry-inset: var(--space-sm);--entry-line-gap: var(--space-sm)}@media(max-width:639.98px){:root{--entry-window-width: calc(100vw - 2 * var(--space-lg));--entry-type-size: var(--text-2xl)}}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}[data-theme-artwork]{filter:var(--theme-artwork-filter)}.ink-anchor{text-decoration:none}.ink-line,.prose a{text-decoration:none;padding-bottom:var(--motion-ink-offset);background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0% var(--motion-ink-thickness);background-position:0% 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size var(--motion-ink-duration) var(--motion-ease-standard)}.ink-line--end{background-position:100% 100%}a:hover .ink-line,a[aria-current] .ink-line,a.is-active .ink-line,.prose a:hover{background-size:100% var(--motion-ink-thickness)}a:focus-visible .ink-line,.prose a:focus-visible{transition:none;background-size:100% var(--motion-ink-thickness)}.card{background-color:var(--color-paper);padding:var(--space-sm)}[data-site-nav]{position:fixed;top:max(var(--site-nav-top),env(safe-area-inset-top));left:0;right:auto;width:100%;z-index:50;font-size:var(--site-nav-font-size);pointer-events:none}[data-site-nav][data-site-nav-stable]{width:calc(100vw - var(--site-nav-scrollbar-inset, 0px))}[data-site-nav] .site-nav__inner{display:flex;justify-content:flex-end;padding-inline:var(--hero-pad)}.site-nav__cluster{display:block;width:-moz-fit-content;width:fit-content;max-width:100%;min-width:0}.site-nav__links{display:flex;flex-wrap:wrap;justify-content:flex-end;-moz-column-gap:var(--site-nav-link-gap);column-gap:var(--site-nav-link-gap);row-gap:max(var(--site-nav-link-gap),calc(2 * var(--site-nav-hit-block)));margin:0;padding:0;list-style:none}.site-nav__link{display:flex;align-items:center;min-height:calc(max(var(--site-nav-font-size),var(--text-base)) + 2 * var(--site-nav-hit-block));padding:var(--site-nav-hit-block) var(--site-nav-hit-inline);margin:calc(-1 * var(--site-nav-hit-block)) calc(-1 * var(--site-nav-hit-inline));pointer-events:auto;font-family:var(--font-sans);font-size:var(--site-nav-font-size);line-height:1;letter-spacing:.05em;white-space:nowrap;text-decoration:none;color:var(--color-muted)}.site-nav__link:hover,.site-nav__link[aria-current=page]{color:var(--color-ink)}.site-nav__label{display:flex;align-items:center;min-height:max(var(--site-nav-font-size),var(--text-base));position:relative}.site-nav__label:after{content:"";position:absolute;left:0;right:0;bottom:calc(-1 * var(--site-nav-underline-offset));height:var(--site-nav-line-thickness);background-image:linear-gradient(var(--color-ink),var(--color-ink));background-repeat:no-repeat;background-position:left center;background-size:0% 100%;transition:background-size var(--motion-ink-duration) var(--motion-ease-standard);pointer-events:none}.site-nav__link:not([aria-current=page]):hover .site-nav__label:after{background-size:100% 100%}.site-nav__link:not([aria-current=page]):focus-visible .site-nav__label:after{background-size:100% 100%;transition:none}.site-nav__link:focus-visible{outline-offset:calc(-1 * var(--space-3xs))}.site-nav__links li{position:relative;flex:none}@media(prefers-reduced-motion:reduce){.ink-line,.prose a,.site-nav__label:after{transition:none}}.site-nav__progress{display:block;position:absolute;left:0;bottom:calc(-1 * var(--site-nav-underline-offset));width:100%;height:var(--site-nav-line-thickness);background-color:var(--color-subtle);pointer-events:none}.site-nav__fill{display:block;width:100%;height:100%;background-color:var(--color-ink);transform:scaleX(0);transform-origin:left}.tag{display:inline-flex;align-items:center;font-family:var(--font-sans);font-size:var(--text-caption);line-height:1;letter-spacing:.05em;padding:var(--space-3xs) var(--space-2xs);color:var(--color-muted)}.branch{font-family:Courier New,Lucida Console,monospace}.ascii-canvas{font-family:var(--font-mono)}.home-hero,.hero-foreground{min-height:var(--hero-viewport-height)}.hero-foreground{padding:var(--hero-pad)}.hero-wordmark-layer{display:flex;flex:none;align-self:flex-start;pointer-events:none}.hero-wordmark-wash{display:block;position:relative;isolation:isolate;width:calc(var(--wordmark-span) * var(--wordmark-scale))}.hero-wordmark-wash:before{content:"";position:absolute;top:-15%;bottom:-15%;left:calc(-.15 * var(--wordmark-span) * var(--wordmark-scale));width:calc(1.3 * var(--wordmark-span) * var(--wordmark-scale));z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,rgb(var(--color-paper-rgb) / var(--wordmark-wash)) 0%,transparent 70%)}.hero-wordmark{width:calc(var(--wordmark-span) * var(--wordmark-scale));max-width:none;margin-top:calc(-1 * var(--hero-pad));filter:none}.hero-upper-zone{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--space-md)}.hero-upper-zone>.latest-article-card{margin-inline-start:auto;margin-top:max(0px,calc(max(var(--site-nav-top),env(safe-area-inset-top)) + max(var(--site-nav-font-size),var(--text-base)) + max(var(--site-nav-hit-block),var(--site-nav-underline-offset)) + var(--space-sm) - var(--hero-pad)),calc(var(--hero-nav-hit-bottom, 0px) + var(--space-sm) - var(--hero-pad)))}.hero-ascii{top:var(--wordmark-bottom);bottom:0;left:0;right:0}@media(width<1024px){.home-hero{--hero-latest-start: var(--hero-latest-mobile-start);--hero-latest-span: var(--hero-latest-mobile-span);--hero-latest-title-size: var(--text-caption)}.hero-foreground{padding-top:max(calc(var(--hero-latest-start-row) * var(--layout-row-unit)),calc(var(--hero-nav-hit-bottom, 0px) + var(--space-sm)))}.hero-upper-zone{display:grid;grid-template-columns:repeat(var(--layout-columns),minmax(0,1fr));gap:0;align-items:start}.hero-upper-zone>.latest-article-card{grid-column:calc(var(--hero-latest-start) + 1) / span var(--hero-latest-span);margin-top:0;align-self:start}.hero-wordmark-layer{position:absolute;inset:0;display:block;align-self:stretch;overflow:hidden;overflow:clip;--hero-latest-left: calc(var(--layout-frame-edge) + (100% - 2 * var(--layout-frame-edge)) / var(--layout-columns) * var(--hero-latest-start));--hero-wordmark-long-side: min(calc(var(--hero-viewport-height) * clamp(.5, var(--hero-wordmark-height-ratio), .75)), calc((var(--hero-latest-left) - var(--space-sm)) / var(--hero-wordmark-aspect)))}.hero-wordmark-wash{position:absolute;left:0;top:var(--hero-wordmark-top);width:var(--hero-wordmark-long-side);transform-origin:top left;transform:rotate(-90deg) translate(-100%);--wordmark-wash: clamp(0, var(--hero-wordmark-narrow-wash), .2)}.hero-wordmark-wash:before{inset:0;width:auto}.hero-wordmark{width:100%;margin-top:0}.hero-ascii{top:0}}@media(768px<=width<1024px){.home-hero{--hero-latest-start: var(--hero-latest-middle-start);--hero-latest-span: var(--hero-latest-middle-span)}}.hero-ascii:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgb(var(--color-ink-rgb) / var(--ascii-scan-alpha)) 0,rgb(var(--color-ink-rgb) / var(--ascii-scan-alpha)) 1px,transparent 1px,transparent var(--ascii-scan-period));opacity:var(--ascii-scan-opacity)}::view-transition-old(root),::view-transition-new(root){animation:none}::view-transition-old(page-content),::view-transition-new(page-content){mix-blend-mode:normal}::view-transition-old(page-content){animation:page-content-out var(--motion-page-duration) var(--motion-ease-standard) both}::view-transition-new(page-content){animation:page-content-in var(--motion-page-duration) var(--motion-ease-standard) both}@keyframes page-content-out{to{opacity:0;transform:translateY(calc(-1 * var(--motion-page-distance)))}}@keyframes page-content-in{0%{opacity:0;transform:translateY(var(--motion-page-distance))}}html[data-primary-swap]::view-transition-old(page-content),html[data-primary-swap]::view-transition-new(page-content){animation-duration:var(--motion-primary-duration)}html[data-primary-swap]::view-transition-group(page-content){animation-duration:var(--motion-primary-duration);animation-timing-function:var(--motion-ease-standard)}html[data-primary-swap] body>[data-astro-transition-scope] [data-astro-transition-scope]{view-transition-name:none}html[data-primary-swap][data-astro-transition-fallback] body>[data-astro-transition-scope] [data-astro-transition-scope]{animation:none}html[data-primary-swap][data-astro-transition-fallback] body>[data-astro-transition-scope]{animation-duration:var(--motion-primary-duration);animation-timing-function:var(--motion-ease-standard)}html[data-lab-swap]::view-transition-old(page-content){animation-name:lab-page-content-out}html[data-lab-swap]::view-transition-new(page-content){animation-name:lab-page-content-in}@keyframes lab-page-content-out{to{opacity:0}}@keyframes lab-page-content-in{0%{opacity:0}}html[data-lab-swap]::view-transition-old(lab-header),html[data-lab-swap]::view-transition-new(lab-header){animation:none}html[data-lab-swap]::view-transition-group(lab-header),html[data-lab-swap]::view-transition-group(lab-gallery){animation:none}::view-transition-new(lab-title-suffix){animation:lab-title-suffix-in var(--motion-page-duration) var(--motion-ease-standard) both}::view-transition-old(lab-title-suffix){animation:lab-title-suffix-out var(--motion-page-duration) var(--motion-ease-standard) both}@keyframes lab-title-suffix-in{0%{opacity:0;transform:translate(calc(-2 * var(--motion-page-distance)))}}@keyframes lab-title-suffix-out{to{opacity:0;transform:translate(calc(-2 * var(--motion-page-distance)))}}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.m-0{margin:0}.my-auto{margin-top:auto;margin-bottom:auto}.mb-2xs{margin-bottom:var(--space-2xs)}.mb-md{margin-bottom:var(--space-md)}.mb-sm{margin-bottom:var(--space-sm)}.mt-lg{margin-top:var(--space-lg)}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-auto{height:auto}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-readable{max-width:var(--max-readable)}.flex-1{flex:1 1 0%}.flex-shrink,.shrink{flex-shrink:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-3xs{gap:var(--space-3xs)}.gap-sm{gap:var(--space-sm)}.gap-xs{gap:var(--space-xs)}.space-y-2xs>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(var(--space-2xs) * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(var(--space-2xs) * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-clip{overflow-x:clip}.text-wrap{text-wrap:wrap}.border{border-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-ink{border-color:var(--color-ink)}.border-subtle{border-color:var(--color-subtle)}.bg-paper{background-color:var(--color-paper)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2xs{padding:var(--space-2xs)}.pb-lg{padding-bottom:var(--space-lg)}.pl-md{padding-left:var(--space-md)}.pl-sm{padding-left:var(--space-sm)}.text-right{text-align:right}.font-sans{font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.font-sc{font-family:var(--font-sc),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.text-\[clamp\(2\.25rem\,5vw\+1rem\,4rem\)\]{font-size:clamp(2.25rem,5vw + 1rem,4rem)}.text-\[length\:var\(--text-caption\)\]{font-size:var(--text-caption)}.text-base{font-size:var(--text-base)}.font-normal{font-weight:400}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.lining-nums{--tw-numeric-figure: lining-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[var\(--leading-tight\)\]{line-height:var(--leading-tight)}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.15em\]{letter-spacing:.15em}.tracking-widest{letter-spacing:.1em}.text-ink{color:var(--color-ink)}.text-muted{color:var(--color-muted)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-duration:.15s!important}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.layout-frame{padding-inline:var(--layout-frame-edge);width:100%}.layout-grid{display:grid;grid-template-columns:repeat(var(--layout-columns),minmax(0,1fr));gap:0;position:relative;min-width:0}.layout-grid>*{min-width:0}.layout-bounded{width:100%;max-width:var(--layout-bounded-max);margin-inline:auto}.layout-full-bleed{width:calc(100% + 2 * var(--layout-frame-edge));margin-inline:calc(-1 * var(--layout-frame-edge))}:where([data-layout-inner]){display:flow-root;min-width:0}[data-layout-slot]{min-width:0}.entry-loader{display:none;position:fixed;inset:0;z-index:200;background:transparent;font-family:var(--font-sans);color:var(--color-ink)}html[data-entry-boot=pending] .entry-loader,.entry-loader[data-entry-state=loading],.entry-loader[data-entry-state=complete-hold],.entry-loader[data-entry-state=opening],.entry-loader[data-entry-state=expanding]{display:block}.entry-loader[data-entry-state=dismissed],.entry-loader[data-entry-state=idle]{display:none}.entry-loader__panel{position:absolute;background-color:var(--color-paper)}.entry-loader__panel--top{inset:0}.entry-loader__frame{position:absolute;left:50%;top:50%;width:var(--entry-window-width);height:calc(var(--entry-window-width) / var(--entry-window-ratio));transform:translate(-50%,-50%);border:var(--entry-frame-line) solid var(--color-ink);background:transparent}.entry-loader__inner-veil{position:absolute;inset:0;background-color:var(--color-paper)}.entry-loader__dots-clip{position:absolute;bottom:calc(100% + var(--entry-frame-line));right:calc(-1 * var(--entry-frame-line));height:calc(var(--entry-dot-size) + var(--entry-inset) + var(--entry-frame-line));overflow:hidden}.entry-loader__dots{display:flex;gap:var(--entry-dot-gap);height:var(--entry-dot-size);align-items:flex-end}.entry-loader__dot{display:block;width:var(--entry-dot-size);height:var(--entry-dot-size)}.entry-loader__dot svg{display:block;width:100%;height:100%}.entry-loader__content-clip{position:absolute;inset:0;overflow:hidden}.entry-loader__row{position:absolute;top:var(--entry-inset);left:var(--entry-inset);display:flex;align-items:baseline;gap:0;font-family:var(--font-mono);font-size:var(--entry-type-size);line-height:var(--leading-tight)}.entry-loader__nib{height:1em;width:auto;align-self:center;margin-right:var(--entry-line-gap)}.entry-loader__cursor{display:inline-block;width:.6ch;height:2px;background-color:var(--color-ink);animation:entry-cursor-blink var(--entry-cursor-period) step-end infinite}@keyframes entry-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.entry-loader__cursor{animation:none}}[data-image-frame][data-image-state=pending]{opacity:0}[data-image-frame][data-image-state=ready]{opacity:1;transition:opacity var(--motion-reveal-duration) var(--motion-ease-standard)}[data-image-frame][data-image-reveal=off]{opacity:1;transition:none}@media(prefers-reduced-motion:reduce){[data-image-frame][data-image-state]{opacity:1;transition:none}}html[data-theme=dark] .prose pre.astro-code{background-color:var(--color-subtle)!important;color:var(--color-ink)!important}html[data-theme=dark] .prose pre.astro-code span{color:var(--color-ink)!important}@media(prefers-color-scheme:dark){html:not([data-theme]) .prose pre.astro-code{background-color:var(--color-subtle)!important;color:var(--color-ink)!important}html:not([data-theme]) .prose pre.astro-code span{color:var(--color-ink)!important}}html[data-theme-transition] *{view-transition-name:none!important}html[data-theme-transition] [data-about-heatmap] *{transition:none!important}html[data-theme-transition]::view-transition-group(root){animation:none}html[data-theme-transition]::view-transition-image-pair(root){isolation:isolate}html[data-theme-transition]::view-transition-old(root){z-index:2;mix-blend-mode:normal;animation:theme-view-out var(--theme-transition-duration) linear both}html[data-theme-transition]::view-transition-new(root){z-index:1;mix-blend-mode:normal;animation:none}@keyframes theme-view-out{to{opacity:0}}@media(prefers-reduced-motion:reduce){html[data-theme-transition]::view-transition-old(root),html[data-theme-transition]::view-transition-new(root){animation:none!important}}.hover\:bg-subtle:hover{background-color:var(--color-subtle)}.hover\:text-ink:hover{color:var(--color-ink)}@media(min-width:640px){.sm\:flex-row{flex-direction:row}.sm\:text-right{text-align:right}}@media(min-width:768px){.md\:pb-xl{padding-bottom:var(--space-xl)}}@media(min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:my-0{margin-top:0;margin-bottom:0}.lg\:my-auto{margin-top:auto;margin-bottom:auto}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-\[min\(100vh\,100\%\)\]{height:min(100vh,100%)}.lg\:flex-col{flex-direction:column}.lg\:overflow-y-auto{overflow-y:auto}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.theme-control[data-astro-cid-urgr2jkj]{padding:0 var(--space-sm) var(--space-md);font-family:var(--font-sans);font-size:var(--text-caption);line-height:var(--leading-normal);color:var(--color-muted);text-align:center}.theme-control__choices[data-astro-cid-urgr2jkj]{display:none;min-inline-size:0;border:0;padding:0;margin:0}[data-astro-cid-urgr2jkj][data-theme-enhanced] .theme-control__fallback[data-astro-cid-urgr2jkj]{display:none}[data-astro-cid-urgr2jkj][data-theme-enhanced] .theme-control__choices[data-astro-cid-urgr2jkj]{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-3xs);white-space:nowrap}.theme-control__option[data-astro-cid-urgr2jkj]{position:relative;display:flex;align-items:center;padding:var(--space-3xs) var(--space-2xs);min-height:var(--space-md);cursor:pointer}.theme-control__option[data-astro-cid-urgr2jkj]:has(input:checked){color:var(--color-ink)}.theme-control__option[data-astro-cid-urgr2jkj]:hover .ink-line[data-astro-cid-urgr2jkj],.theme-control__option[data-astro-cid-urgr2jkj]:has(input:checked) .ink-line[data-astro-cid-urgr2jkj],.theme-control__option[data-astro-cid-urgr2jkj]:has(input:focus-visible) .ink-line[data-astro-cid-urgr2jkj]{background-size:100% var(--motion-ink-thickness)}.theme-control__option[data-astro-cid-urgr2jkj]:has(input:focus-visible){outline:2px solid var(--color-ink);outline-offset:2px}.theme-control__option[data-astro-cid-urgr2jkj]:has(input:focus-visible) .ink-line[data-astro-cid-urgr2jkj]{transition:none}.site-footer[data-astro-cid-gcn2mc3v]{padding-top:var(--space-2xl);background:var(--color-paper)}.site-footer__track[data-astro-cid-gcn2mc3v]{position:relative;overflow:hidden;height:calc(var(--footer-pelican-width) / var(--pelican-aspect))}.site-footer__rider[data-astro-cid-gcn2mc3v]{position:absolute;bottom:0;left:calc(clamp(0,var(--footer-pelican-start),1)*100%);width:var(--footer-pelican-width);pointer-events:none}.site-footer__rider[data-astro-cid-gcn2mc3v] img[data-astro-cid-gcn2mc3v],.site-footer__rider[data-astro-cid-gcn2mc3v] svg{display:block;width:100%;height:auto}.site-footer__rider[data-astro-cid-gcn2mc3v] [data-astro-cid-gcn2mc3v][hidden]{display:none}[data-astro-cid-gcn2mc3v][data-footer-motion=playing] .site-footer__rider[data-astro-cid-gcn2mc3v]{will-change:transform}.site-footer__rule[data-astro-cid-gcn2mc3v]{height:var(--footer-rule-width);background:var(--color-ink)}.site-footer__contact[data-astro-cid-gcn2mc3v]{padding:var(--space-md) var(--space-sm) 0}.site-footer__copyright[data-astro-cid-gcn2mc3v]{margin:0;padding:var(--space-md) var(--space-sm);color:var(--color-muted);font-family:var(--font-sans);font-size:var(--text-caption);line-height:var(--leading-normal);text-align:center}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
