:root{--ref-color-neutral-0: #ffffff;--ref-color-neutral-100: #f4f7fa;--ref-color-neutral-200: #e6ebf0;--ref-color-neutral-300: #cbd3dc;--ref-color-neutral-400: #8794a3;--ref-color-neutral-500: #667384;--ref-color-neutral-600: #5a6675;--ref-color-neutral-900: #16202b;--ref-color-neutral-950: #0c131b;--ref-color-blue-50: #f5f8ff;--ref-color-blue-100: #e7eefa;--ref-color-blue-200: #cfdbf5;--ref-color-blue-300: #5ca9ff;--ref-color-blue-600: #2957d0;--ref-color-blue-700: #1d42a0;--ref-color-blue-800: #173681;--ref-color-yellow-100: #fff2a8;--color-background-canvas: var(--ref-color-neutral-0);--color-background-subtle: var(--ref-color-neutral-100);--color-background-subtle-hovered: var(--ref-color-neutral-200);--color-background-inverse: var(--ref-color-neutral-950);--color-background-accent: var(--ref-color-blue-600);--color-background-accent-subtle: var(--ref-color-blue-100);--color-background-accent-subtle-hovered: var(--ref-color-blue-200);--color-background-info-subtle: var(--ref-color-blue-50);--color-text-default: var(--ref-color-neutral-900);--color-text-subtle: var(--ref-color-neutral-600);--color-text-inverse: var(--ref-color-neutral-0);--color-text-accent: var(--ref-color-blue-700);--color-text-link: var(--ref-color-blue-600);--color-text-link-hovered: var(--ref-color-blue-700);--color-text-link-visited: var(--ref-color-blue-800);--color-border-subtle: var(--ref-color-neutral-200);--color-border-default: var(--ref-color-neutral-300);--color-border-interactive: var(--ref-color-neutral-400);--color-border-accent: var(--ref-color-blue-600);--color-border-accent-hovered: color-mix( in srgb, var(--ref-color-blue-600) 25%, var(--ref-color-neutral-200) );--color-border-focus: var(--ref-color-blue-600);--color-selection-background: var(--ref-color-blue-200);--color-selection-text: var(--ref-color-neutral-900);--color-logo-mark: var(--color-border-accent);--color-section-rule: var(--color-text-default);--color-category-background: var(--color-background-accent-subtle);--color-category-background-hovered: var( --color-background-accent-subtle-hovered );--color-category-text: var(--color-text-accent);--color-disclosure-background: var(--color-background-subtle);--color-disclosure-text: var(--color-text-subtle);--color-quote-background: var(--color-background-info-subtle);--color-quote-border: var(--color-border-accent);--color-code-background: var(--ref-color-neutral-950);--color-code-text: var(--ref-color-neutral-100);--color-mark-background: var(--ref-color-yellow-100);--color-home-hero-background: var(--color-background-inverse);--color-home-hero-text: var(--color-text-inverse);--color-home-hero-topology: var(--ref-color-blue-300);--color-home-hero-topology-glow: var(--ref-color-blue-600);--color-home-hero-border: color-mix( in srgb, var(--ref-color-neutral-400) 25%, var(--ref-color-neutral-950) );--color-footer-background: var(--color-background-inverse);--color-footer-text: var(--ref-color-neutral-100);--color-footer-text-muted: var(--ref-color-neutral-400);--color-footer-logo-mark: var(--ref-color-blue-300);--color-footer-border: color-mix( in srgb, var(--ref-color-neutral-400) 25%, var(--ref-color-neutral-950) );--color-footer-separator: color-mix( in srgb, var(--ref-color-neutral-400) 40%, var(--ref-color-neutral-950) );--shadow-1: 0 1px 2px rgb(13 27 46 / .05), 0 4px 16px rgb(13 27 46 / .05);--shadow-2: 0 2px 4px rgb(13 27 46 / .06), 0 12px 32px rgb(13 27 46 / .1);--font-body: "Inter", "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;--font-display: var(--font-body);--font-hero-display: "EB Garamond", "Hiragino Mincho ProN", Georgia, "Times New Roman", serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--container: 72rem;--size-header: 4rem;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-inline-tight: var(--space-1);--space-inline-related: var(--space-2);--space-inline-region: var(--space-6);--space-stack-tight: var(--space-2);--space-stack-related: var(--space-4);--space-stack-group: var(--space-5);--space-stack-block: var(--space-6);--space-stack-section: var(--space-7);--space-layout-region: var(--space-8);--space-inset-tight: var(--space-2);--space-inset-default: var(--space-4);--space-inset-roomy: var(--space-5);--space-page-inline: clamp(var(--space-4), 4vw, var(--space-6));--space-page-block-start: clamp(var(--space-7), 6vw, var(--space-8));--space-card-padding: clamp(var(--space-4), 2vw, var(--space-5));--space-card-content-gap: var(--space-stack-related);--space-card-list-gap: var(--space-stack-group);--space-header-nav-gap: var(--space-inline-region);--space-entry-block: var(--space-stack-block);--space-entry-inline-gap: var(--space-inline-region);--space-category-padding-block: var(--space-1);--space-category-padding-inline: var(--space-2);--space-disclosure-padding-block: var(--space-inset-default);--space-disclosure-padding-inline: var(--space-inset-roomy);--space-quote-padding: var(--space-inset-roomy);--space-table-cell-block: var(--space-3);--space-table-cell-inline: var(--space-inset-default);--space-list-item: var(--space-stack-tight);--space-article-kicker-title: var(--space-stack-group);--space-article-title-dek: var(--space-stack-group);--space-article-dek-meta: var(--space-stack-related);--space-article-meta-hero: var(--space-stack-block);--space-article-hero-disclosure: var(--space-stack-block);--space-article-disclosure-body: var(--space-stack-section);--space-prose-section: var(--space-layout-region);--space-prose-subsection: var(--space-stack-section);--space-prose-heading-content: var(--space-stack-related);--space-prose-block: var(--space-stack-block);--space-prose-caption: var(--space-stack-tight);--space-article-end-region: var(--space-layout-region);--space-footer-block: var(--space-layout-region);--space-footer-content-gap: var(--space-stack-group);--pad-inline: var(--space-page-inline);--radius-s: 8px;--radius-m: 16px;--radius-l: 20px;--space-home-hero-block-start: var(--space-0);--space-home-hero-inset: clamp(var(--space-6), 7vw, 5rem);--ease: cubic-bezier(.2, 0, 0, 1);--dur-fast: .14s;--dur-mid: .24s;color-scheme:light}*{box-sizing:border-box}html{font-size:100%;text-size-adjust:100%;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--size-header) + 1rem)}body{margin:0;min-height:100dvh;display:flex;flex-direction:column;background:var(--color-background-canvas);color:var(--color-text-default);font-family:var(--font-body);font-size:1rem;line-height:1.7;text-align:start;line-break:strict;word-break:normal;overflow-wrap:anywhere;font-synthesis:none}main{flex:1 0 auto}a{color:inherit}::selection{background:var(--color-selection-background);color:var(--color-selection-text)}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:3px solid var(--color-border-focus);outline-offset:3px}@media(forced-colors:active){:focus-visible{outline-color:Highlight;box-shadow:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;transform:none!important}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;left:1rem;top:-100%;z-index:100;padding:.5rem 1rem;background:var(--color-background-inverse);color:var(--color-text-inverse);font-size:.875rem;text-decoration:none;border-radius:0 0 var(--radius-s) var(--radius-s)}.skip-link:focus-visible{top:0}.container{max-inline-size:var(--container);margin-inline:auto;padding-inline:var(--pad-inline)}.container-narrow{inline-size:100%;max-inline-size:calc(40em + 2 * var(--pad-inline));min-inline-size:0;margin-inline:auto;padding-inline:var(--pad-inline)}@supports (max-inline-size: 40ic){.container-narrow{max-inline-size:calc(40ic + 2 * var(--pad-inline))}}.container-hero{max-inline-size:62rem;margin-inline:auto;padding-inline:var(--pad-inline)}.site-header{position:sticky;top:0;z-index:50;background:var(--color-background-canvas);border-bottom:1px solid var(--color-border-subtle)}@supports (backdrop-filter: blur(12px)){.site-header{background:color-mix(in srgb,var(--color-background-canvas) 86%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}.site-header-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem 1.5rem;min-height:var(--size-header);padding-block:.6rem}.wordmark{font-family:var(--font-display);font-size:1.25rem;font-weight:900;letter-spacing:-.01em;line-height:1.2;text-decoration:none}.wordmark .cursor{color:var(--color-logo-mark)}.site-nav{display:flex;flex-wrap:wrap;gap:var(--space-header-nav-gap)}.site-nav a{font-size:.875rem;font-weight:500;color:var(--color-text-subtle);text-decoration:none;transition:color var(--dur-fast) var(--ease)}.site-nav a:hover{color:var(--color-text-default)}.site-nav a[aria-current=page]{color:var(--color-text-default);text-decoration-line:underline;text-decoration-color:var(--color-logo-mark);text-decoration-thickness:2px;text-underline-offset:.35em}@media(max-width:40em){:root{--size-header: 6rem}.site-header-inner{display:grid;grid-template-rows:3.25rem 2.75rem;align-items:center;gap:0;padding-block:0}.site-nav{flex-wrap:nowrap;gap:1.5rem;align-self:start;overflow-x:auto;scrollbar-width:none;padding-inline-end:1.5rem;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 1.25rem),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 1.25rem),transparent)}.site-nav::-webkit-scrollbar{display:none}.site-nav a{white-space:nowrap;padding-block:.625rem}}.pill{display:inline-block;padding:.35em .85em;border-radius:999px;background:var(--color-category-background);color:var(--color-category-text);font-size:.75rem;font-weight:600;line-height:1;letter-spacing:.02em;white-space:nowrap}.date{font-size:.875rem;color:var(--color-text-subtle)}.entry-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:0}.section-title{margin:3.5rem 0 1.25rem;font-family:var(--font-display);font-size:1.125rem;font-weight:700;letter-spacing:0;line-height:1.5}.stretched{color:inherit;text-decoration:none}.stretched:after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}.stretched:focus-visible{outline:none}.stretched:focus-visible:after{outline:2px solid var(--color-text-inverse);outline-offset:2px;box-shadow:0 0 0 5px var(--color-border-focus)}.topology-hero-section{margin-block-start:var(--space-home-hero-block-start)}.topology-hero{position:relative;display:grid;align-items:center;min-block-size:max(30rem,calc(100svh - var(--size-header)));overflow:hidden;isolation:isolate;inline-size:100%;padding-block:var(--space-home-hero-inset);border-block:1px solid var(--color-home-hero-border);background:radial-gradient(circle at 85% 38%,color-mix(in srgb,var(--color-home-hero-topology-glow) 13%,transparent),transparent 35%),var(--color-home-hero-background);color:var(--color-home-hero-text)}.topology-hero:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 78% 82%,color-mix(in srgb,var(--color-home-hero-topology-glow) 16%,transparent),transparent 52%),linear-gradient(180deg,color-mix(in srgb,var(--color-home-hero-background) 26%,transparent),transparent 20%,transparent 80%,color-mix(in srgb,var(--color-home-hero-background) 34%,transparent))}.topology-hero .topology-canvas{position:absolute;inset:0;z-index:0;display:block;inline-size:100%;block-size:100%;opacity:0;pointer-events:none;transition:opacity .9s var(--ease)}.topology-hero.is-topology-ready .topology-canvas{opacity:1}@media(prefers-reduced-motion:reduce){.topology-hero .topology-canvas{transition:none}}.topology-hero-content-shell{position:relative;z-index:2;inline-size:100%}.topology-hero-content{max-inline-size:60rem;margin-inline:auto;text-align:center}.topology-hero h1{margin:0;font-family:var(--font-hero-display);font-size:clamp(3.25rem,7.5vw,6.75rem);font-weight:500;line-height:1.05;letter-spacing:.005em;text-wrap:balance}.topology-hero h1 em{font-style:italic;font-weight:500}.topology-hero-period{color:var(--color-home-hero-topology);font-style:normal}.topology-hero-scroll{position:absolute;z-index:2;inset-block-end:1.75rem;inset-inline-start:clamp(1.25rem,4vw,2.25rem);display:flex;flex-direction:column;align-items:center;gap:.7rem;color:color-mix(in srgb,var(--color-home-hero-text) 55%,transparent)}.topology-hero-scroll-label{writing-mode:vertical-rl;font-size:.625rem;font-weight:500;letter-spacing:.32em}.topology-hero-scroll:after{content:"";inline-size:1px;block-size:2.5rem;background:linear-gradient(180deg,currentColor,transparent)}@media(max-width:40em){.topology-hero:after{background:radial-gradient(ellipse at 70% 84%,color-mix(in srgb,var(--color-home-hero-topology-glow) 14%,transparent),transparent 62%)}}@media(max-height:30em){.topology-hero-scroll{display:none}}.card-list{display:grid;gap:1rem}.card{position:relative;display:grid;grid-template-columns:168px 1fr;gap:1.25rem;align-items:center;padding:1rem;background:var(--color-background-canvas);border:1px solid var(--color-border-subtle);border-radius:var(--radius-m);box-shadow:var(--shadow-1);transition:box-shadow var(--dur-mid) var(--ease),transform var(--dur-mid) var(--ease),border-color var(--dur-fast) var(--ease)}.card:hover,.card:focus-within{box-shadow:var(--shadow-2);transform:translateY(-2px);border-color:var(--color-border-accent-hovered)}.card-thumb{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-s);background:var(--color-background-subtle)}.card-body{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;min-inline-size:0}.card-title{margin:0;font-family:var(--font-display);font-size:1.125rem;font-weight:700;line-height:1.55;letter-spacing:0;font-feature-settings:"palt"}.card:hover .card-title .stretched{text-decoration:underline;text-decoration-color:var(--color-text-link);text-decoration-thickness:2px;text-underline-offset:.2em}.card-excerpt{margin:0;font-size:.9375rem;line-height:1.7;color:var(--color-text-subtle);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}@media(max-width:40em){.card{grid-template-columns:96px 1fr;gap:1rem;align-items:start}.card-excerpt{-webkit-line-clamp:3;line-clamp:3}}.entry-section-title{margin:0;padding-block-end:var(--space-3);border-block-end:2px solid var(--color-section-rule);color:var(--color-text-default);font-size:.875rem;font-weight:800;letter-spacing:.12em}.entry-section-mark{color:var(--color-logo-mark)}.home-articles{margin-block-start:var(--space-layout-region)}.entry{position:relative;display:grid;grid-template-columns:1fr 200px;column-gap:var(--space-entry-inline-gap);align-items:start;padding-block:var(--space-entry-block);border-block-end:1px solid var(--color-border-subtle)}.entry-body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-card-content-gap);min-inline-size:0}.entry-meta{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-inline-related);font-size:.75rem}.entry-label{font-weight:600;letter-spacing:.08em;color:var(--color-category-text)}.entry-tag-link{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;min-block-size:2.75rem;min-inline-size:2.75rem;color:var(--color-category-text);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-decoration:none;transition:color var(--dur-fast) var(--ease)}.entry-tag-link:hover{color:var(--color-text-link-hovered);text-decoration:underline;text-underline-offset:.2em}.entry-date{color:var(--color-text-subtle);letter-spacing:.02em;font-variant-numeric:tabular-nums}.entry-title{margin:0;font-family:var(--font-display);font-size:1.375rem;font-weight:700;line-height:1.45;letter-spacing:0;font-feature-settings:"palt";transition:color var(--dur-fast) var(--ease)}.entry:hover .entry-title{color:var(--color-text-link)}.entry-excerpt{margin:0;font-size:.9375rem;line-height:1.7;color:var(--color-text-subtle);max-inline-size:40em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.entry-media{overflow:hidden;border-radius:var(--radius-s);background:var(--color-background-subtle)}.entry-thumb{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;transition:transform var(--dur-mid) var(--ease)}.entry:hover .entry-thumb{transform:scale(1.03)}.home-archive-link-row{margin:var(--space-stack-block) 0 0}.home-archive-link{color:var(--color-text-link);font-weight:600;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.25em}.home-archive-link:hover{color:var(--color-text-link-hovered)}@media(max-width:40em){.entry{grid-template-columns:1fr 96px;column-gap:var(--space-card-content-gap);padding-block:var(--space-stack-group)}.entry-title{font-size:1.125rem}}.feed-empty{padding-block:3.5rem;color:var(--color-text-subtle)}.pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:var(--space-inline-related);margin-block-start:var(--space-stack-section);padding-block-start:var(--space-inset-default);border-block-start:1px solid var(--color-border-subtle);font-size:.875rem}.pagination>:last-child{justify-self:end}.pagination a,.pagination-current,.pagination-disabled,.pagination-ellipsis{display:inline-flex;min-block-size:2.75rem;align-items:center}.pagination a{color:var(--color-text-link);font-weight:600;text-decoration:none}.pagination a:hover{color:var(--color-text-link-hovered);text-decoration:underline;text-underline-offset:.25em}.pagination-pages{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-inline-related);margin:0;padding:0;list-style:none}.pagination-pages a,.pagination-current{min-inline-size:2.75rem;justify-content:center}.pagination-current{color:var(--color-text-default);font-weight:700;text-decoration-line:underline;text-decoration-color:var(--color-border-accent);text-decoration-thickness:2px;text-underline-offset:.3em}.pagination-disabled,.pagination-ellipsis{color:var(--color-text-subtle)}@media(max-width:40em){.pagination{grid-template-columns:auto minmax(0,1fr) auto}.pagination-pages{min-inline-size:0}}.archive-page{padding-block-start:clamp(3rem,7vw,6rem)}.archive-head{margin-block-end:2.25rem}.archive-kicker{margin:0 0 .75rem;color:var(--color-text-accent);font-size:.75rem;font-weight:700;letter-spacing:.14em}.archive-title-row{display:flex;align-items:end;justify-content:space-between;gap:1rem 2rem;padding-block-end:1.5rem;border-block-end:1px solid var(--color-border-subtle)}.archive-title-row h1{margin:0;font-family:var(--font-display);font-size:clamp(2.25rem,1.7rem + 2.4vw,4rem);font-weight:900;line-height:1.2;letter-spacing:0}.archive-title-row p{margin:0 0 .35rem;color:var(--color-text-subtle);font-size:.875rem;white-space:nowrap}@media(max-width:40em){.archive-page{padding-block-start:2.5rem}.archive-title-row{align-items:start;flex-direction:column}.archive-title-row p{margin:0}}.article-head{padding-block-start:2.75rem}.article-head .entry-meta{margin-block-end:1.1rem}.article-head h1{margin:0;font-family:var(--font-display);font-size:clamp(2rem,1.5rem + 2vw,3.25rem);font-weight:900;line-height:1.25;letter-spacing:0;font-feature-settings:"palt";text-wrap:balance}.article-head .dek{margin:1.2rem 0 0;max-inline-size:40em;font-size:1.0625rem;line-height:1.75;color:var(--color-text-subtle)}.article-meta{margin:1.2rem 0 0;max-inline-size:40em;font-size:.875rem;line-height:1.6;color:var(--color-text-subtle)}.article-meta .sep{margin-inline:.6em;color:var(--color-border-subtle)}.article-tags{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-inline-related)}.article-tags-label{color:var(--color-text-subtle)}.article-tag-link{letter-spacing:.08em}.article-hero{margin-block:2rem 2.25rem}.article-hero img{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-l);border:1px solid var(--color-border-subtle)}.affiliate-disclosure{margin-block-end:2.25rem;padding:.8em 1.1em;border-radius:var(--radius-s);background:var(--color-disclosure-background);font-size:.875rem;line-height:1.7;color:var(--color-disclosure-text)}.prose{font-size:clamp(1.0625rem,1rem + .25vw,1.125rem);line-height:1.8;letter-spacing:.01em}.prose p{margin-block:0}.prose p+p{margin-block-start:1.25em}.prose h2{margin-block:3em .9em;font-family:var(--font-display);font-size:clamp(1.375rem,1.25rem + .6vw,1.75rem);font-weight:700;line-height:1.4;letter-spacing:0;font-feature-settings:"palt";text-wrap:balance}.prose h3{margin-block:2.2em .7em;font-family:var(--font-display);font-size:clamp(1.1875rem,1.1rem + .4vw,1.4375rem);font-weight:700;line-height:1.5;letter-spacing:0;font-feature-settings:"palt";text-wrap:balance}.prose h4,.prose h5,.prose h6{margin-block:1.9em .65em;font-family:var(--font-display);font-weight:700;line-height:1.55}.prose h4{font-size:1.125rem}.prose h5,.prose h6{font-size:1rem}@supports (word-break: auto-phrase){.topology-hero h1,.card-title,.article-head h1,.prose h2,.prose h3{word-break:auto-phrase}}.prose a{color:var(--color-text-link);text-decoration-line:underline;text-decoration-color:currentColor;text-decoration-thickness:.08em;text-underline-offset:.18em;text-decoration-skip-ink:auto;transition:color var(--dur-fast) var(--ease),text-decoration-thickness var(--dur-fast) var(--ease)}.prose a:visited{color:var(--color-text-link-visited)}.prose a:hover{color:var(--color-text-link-hovered);text-decoration-thickness:.12em}.prose em{font-style:normal;font-weight:700}.prose strong{color:var(--color-text-default);font-weight:700}.prose del{color:var(--color-text-subtle);text-decoration-thickness:.08em}.prose blockquote{margin-block:2em;margin-inline:0;padding:1em 1.25em;border-inline-start:.25rem solid var(--color-quote-border);border-radius:0 var(--radius-s) var(--radius-s) 0;background:var(--color-quote-background);color:var(--color-text-default)}.prose blockquote p+p{margin-block-start:1em}.prose blockquote>:first-child{margin-block-start:0}.prose blockquote>:last-child{margin-block-end:0}.prose blockquote cite{display:block;margin-block-start:.8em;font-size:.875em}.prose ul,.prose ol{margin-block:1.25em;padding-inline-start:1.5em}.prose li+li{margin-block-start:.45em}.prose li::marker{color:var(--color-text-accent);font-weight:600}.prose :where(ul,ol) :where(ul,ol){margin-block:.5em}.prose .contains-task-list{padding-inline-start:0;list-style:none}.prose .task-list-item{list-style:none}.prose input[type=checkbox]{inline-size:1em;block-size:1em;margin:0 .55em 0 0;accent-color:var(--color-background-accent);vertical-align:-.08em}.prose figure{margin-block:2.5em;margin-inline:0}.prose img{display:block;max-inline-size:100%;block-size:auto;border-radius:var(--radius-m);border:1px solid var(--color-border-subtle)}.prose figcaption{margin-block-start:.75em;color:var(--color-text-subtle);font-size:.875em;line-height:1.6}.prose hr{border:0;border-top:1px solid var(--color-border-subtle);margin-block:3em}.prose :not(pre)>code{font-family:var(--font-mono);font-size:.9em;padding:.12em .32em;border-radius:.25rem;background:var(--color-background-subtle)}.prose pre{max-inline-size:100%;overflow-x:auto;margin-block:1.75em;padding:1rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-s);background:var(--color-code-background);color:var(--color-code-text);font-family:var(--font-mono);font-size:.875rem;line-height:1.6;tab-size:2}.prose pre code{white-space:pre;overflow-wrap:normal;background:none;padding:0;border-radius:0}.prose kbd{padding:.12em .42em;border:1px solid var(--color-border-subtle);border-block-end-width:2px;border-radius:.3rem;background:var(--color-background-subtle);font-family:var(--font-mono);font-size:.82em}.prose mark{padding-inline:.12em;background:var(--color-mark-background);color:var(--color-text-default)}.prose :where(sub,sup){font-size:.75em;line-height:0}.prose dl{margin-block:1.5em}.prose dt{font-weight:700}.prose dd{margin:.35em 0 1em 1.25em}.prose .markdown-disclosure{margin-block:1.75em;padding:0 1.1rem 1.1rem;overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:var(--radius-s);background:var(--color-background-subtle)}.prose .markdown-disclosure:not([open]){padding-block-end:0}.prose .markdown-disclosure summary{margin-inline:-1.1rem;padding:.85rem 1.1rem;color:var(--color-text-default);font-weight:700;cursor:pointer}.prose .markdown-disclosure[open] summary{margin-block-end:1rem;border-block-end:1px solid var(--color-border-subtle)}.prose .markdown-disclosure summary:hover{background:var(--color-background-subtle-hovered)}.prose .markdown-link-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;margin-block:1.75em;padding:1.1rem 1.2rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-m);background:var(--color-background-canvas);box-shadow:var(--shadow-1);color:var(--color-text-default);text-decoration:none;transition:transform var(--dur-mid) var(--ease),box-shadow var(--dur-mid) var(--ease),border-color var(--dur-fast) var(--ease)}.prose .markdown-link-card:hover{transform:translateY(-2px);border-color:var(--color-border-accent-hovered);box-shadow:var(--shadow-2);color:var(--color-text-default);text-decoration:none}.markdown-link-card-icon{display:grid;place-items:center;inline-size:2.75rem;block-size:2.75rem;border-radius:50%;background:var(--color-background-accent-subtle);color:var(--color-text-accent);font-size:1.2rem;font-weight:700}.markdown-link-card-copy{display:grid;min-inline-size:0;gap:.2rem}.markdown-link-card-site{color:var(--color-text-subtle);font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.markdown-link-card-copy strong{overflow:hidden;color:var(--color-text-default);font-size:1rem;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.markdown-link-card-description{display:-webkit-box;overflow:hidden;color:var(--color-text-subtle);font-size:.8125rem;line-height:1.6;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.markdown-link-card-arrow{color:var(--color-text-link);font-weight:700}@media(max-width:32em){.prose .markdown-link-card{grid-template-columns:minmax(0,1fr) auto}.markdown-link-card-icon{display:none}}.table-scroll{inline-size:100%;max-inline-size:100%;overflow-x:auto;margin-block:2em;border:1px solid var(--color-border-subtle);border-radius:var(--radius-s)}.prose table{border-collapse:collapse;inline-size:100%;min-inline-size:36rem;font-size:.9375rem;line-height:1.7}.prose caption{padding:.75rem .9rem;color:var(--color-text-subtle);font-size:.875rem;text-align:start}.prose th{background:var(--color-background-subtle);font-size:.875rem;font-weight:600;color:var(--color-text-subtle)}.prose :where(th,td){padding:.65rem .9rem;text-align:start;vertical-align:top;border-block-end:1px solid var(--color-border-subtle)}.prose tr:last-child td{border-block-end:0}.prose .footnotes{margin-block-start:3em;padding-block-start:1.5em;border-block-start:1px solid var(--color-border-subtle);color:var(--color-text-subtle);font-size:.875em}.prose :where(iframe,video){display:block;max-inline-size:100%;margin-block:2em;border:0}.author-profile{display:grid;grid-template-columns:3.75rem minmax(0,1fr);gap:1.25rem;align-items:start;margin-block-start:4rem;padding-block-start:1.75rem;border-block-start:1px solid var(--color-border-subtle)}.author-profile-mark{display:grid;place-items:center;inline-size:3.75rem;block-size:3.75rem;border-radius:50%;background:var(--color-category-background);color:var(--color-category-text);font-family:var(--font-display);font-size:1.25rem;font-weight:900;line-height:1}.author-profile-kicker{margin:0 0 .2rem;color:var(--color-text-accent);font-size:.6875rem;font-weight:700;line-height:1.4;letter-spacing:.12em}.author-profile-name{margin:0;font-family:var(--font-display);font-size:1.125rem;font-weight:700;line-height:1.5}.author-profile-name a{text-decoration-color:var(--color-border-default);text-decoration-thickness:1px;text-underline-offset:.2em;transition:color var(--dur-fast) var(--ease),text-decoration-color var(--dur-fast) var(--ease)}.author-profile-name a:hover{color:var(--color-text-link-hovered);text-decoration-color:currentColor}.author-profile-description{margin:.35rem 0 0;color:var(--color-text-subtle);font-size:.9375rem;line-height:1.7}.related{margin-block-start:1rem}.related .card-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.related .card{grid-template-columns:96px 1fr;gap:1rem;align-items:start}.site-footer{margin-block-start:5rem;background:var(--color-footer-background);color:var(--color-footer-text);padding-block:3.5rem 2.5rem;border-block-start:1px solid var(--color-footer-border)}.footer-wordmark{margin:0;font-family:var(--font-display);font-size:clamp(3.5rem,10vw,7rem);font-weight:900;letter-spacing:-.01em;line-height:1;color:var(--color-footer-text)}.footer-wordmark .cursor{color:var(--color-footer-logo-mark)}.footer-nav{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-block-start:2rem;font-size:.875rem}.footer-nav a{color:var(--color-footer-text-muted);text-decoration:none;transition:color var(--dur-fast) var(--ease)}.footer-nav a:hover{color:var(--color-footer-text)}.footer-nav .sep{color:var(--color-footer-separator)}.copyright{margin:2rem 0 0;font-size:.8125rem;color:var(--color-footer-text-muted)}.contact-page{padding-block-end:1rem}.contact-head{padding-block-end:2.5rem;border-block-end:1px solid var(--color-border-subtle)}.contact-form{display:grid;gap:1.35rem;margin-block-start:2.5rem}.contact-form-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.contact-form-head h2{margin:0;font-family:var(--font-display);font-size:1.25rem;font-weight:700;line-height:1.5}.contact-form-head p{margin:0;color:var(--color-text-subtle);font-size:.8125rem}.contact-field{display:grid;gap:.55rem;min-inline-size:0;color:var(--color-text-default);font-size:.875rem;font-weight:600}.contact-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.contact-field small{margin-inline-start:.35rem;color:var(--color-text-subtle);font-size:.75rem;font-weight:400}.contact-field :where(input,select,textarea){inline-size:100%;min-inline-size:0;border:1px solid var(--color-border-interactive);border-radius:var(--radius-s);background:var(--color-background-canvas);color:var(--color-text-default);font:inherit;font-weight:400;transition:border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.contact-field :where(input,select){min-block-size:3rem;padding-inline:.9rem}.contact-field textarea{min-block-size:9rem;padding:.8rem .9rem;line-height:1.7;resize:vertical}.contact-field :where(input,select,textarea):hover{border-color:var(--color-border-accent)}.contact-field :where(input,select,textarea):focus{border-color:var(--color-border-focus);background:var(--color-background-info-subtle)}.contact-field :where(input,textarea)::placeholder{color:var(--color-text-subtle);opacity:.75}.contact-honeypot{position:absolute;inline-size:1px;block-size:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.contact-turnstile{display:grid;gap:.5rem}.contact-turnstile-widget{min-block-size:65px}.contact-turnstile p{margin:0;color:var(--color-text-subtle);font-size:.75rem;line-height:1.6}.contact-turnstile .contact-turnstile-error{color:var(--color-text-default)}.contact-consent{padding:1rem;border-block:1px solid var(--color-border-subtle);background:var(--color-background-subtle)}.contact-consent p{margin:0 0 .75rem;color:var(--color-text-subtle);font-size:.8125rem;line-height:1.7}.contact-consent a{color:var(--color-text-link);text-underline-offset:.18em}.contact-checkbox{display:flex;align-items:center;gap:.7rem;font-size:.875rem;font-weight:600;cursor:pointer}.contact-checkbox input{flex:0 0 auto;inline-size:1.125rem;block-size:1.125rem;margin:0;accent-color:var(--color-background-accent);cursor:pointer}.contact-submit{display:flex;align-items:center;justify-content:space-between;inline-size:100%;min-block-size:3.25rem;padding-inline:1.25rem;border:1px solid var(--color-border-accent);border-radius:var(--radius-s);background:var(--color-background-accent);color:var(--color-text-inverse);font:inherit;font-weight:700;cursor:pointer;transition:background-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.contact-submit:hover:not(:disabled){background:var(--color-text-link-hovered);transform:translateY(-1px)}.contact-submit:disabled{cursor:wait;opacity:.7}.contact-form-status{display:flex;align-items:flex-start;gap:.65rem;margin:0;padding:.85rem 1rem;border-inline-start:3px solid var(--color-border-interactive);background:var(--color-background-subtle);color:var(--color-text-default);font-size:.875rem;font-weight:600;line-height:1.65}.contact-form-status--success{border-inline-start-color:var(--color-border-accent);background:var(--color-background-info-subtle);color:var(--color-text-accent)}@media(max-width:40em){.contact-form-head{align-items:flex-start;flex-direction:column;gap:.35rem}.contact-field-row{grid-template-columns:1fr}}
