@font-face{font-family:Noto Sans JP UPTIME;src:url(/assets/noto-sans-jp-uptime-Dd1GC4Uo.woff2)format("woff2");font-style:normal;font-weight:400 900;font-display:swap}:root{--ref-color-neutral-0:#fff;--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:#e8edfb;--ref-color-blue-200:#d0dbf5;--ref-color-blue-300:#87a2ea;--ref-color-blue-600:#2d49c9;--ref-color-blue-700:#223899;--ref-color-blue-800:#1c2f7a;--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 #0d1b2e0d, 0 4px 16px #0d1b2e0d;--shadow-2:0 2px 4px #0d1b2e0f, 0 12px 32px #0d1b2e1a;--font-body:"Inter", "Noto Sans JP UPTIME", -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;--size-tap-target:2.75rem;--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;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--size-header) + 1rem);font-size:100%}body{background:var(--color-background-canvas);min-height:100dvh;color:var(--color-text-default);font-family:var(--font-body);text-align:start;line-break:strict;word-break:normal;overflow-wrap:anywhere;font-synthesis:none;flex-direction:column;margin:0;font-size:1rem;line-height:1.7;display:flex}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{box-shadow:none;outline-color:highlight}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important;transform:none!important}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--color-background-inverse);color:var(--color-text-inverse);border-radius:0 0 var(--radius-s) var(--radius-s);padding:.5rem 1rem;font-size:.875rem;text-decoration:none;position:absolute;top:-100%;left:1rem}.skip-link:focus-visible{top:0}.container{max-inline-size:var(--container);padding-inline:var(--pad-inline);margin-inline:auto}.container-narrow{inline-size:100%;max-inline-size:calc(40em + 2 * var(--pad-inline));min-inline-size:0;padding-inline:var(--pad-inline);margin-inline:auto}@supports (max-inline-size:40ic){.container-narrow{max-inline-size:calc(40ic + 2 * var(--pad-inline))}}.container-hero{max-inline-size:62rem;padding-inline:var(--pad-inline);margin-inline:auto}.site-header{z-index:50;background:var(--color-background-canvas);border-bottom:1px solid var(--color-border-subtle);position:sticky;top:0}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.site-header{background:color-mix(in srgb, var(--color-background-canvas) 86%, transparent);-webkit-backdrop-filter:blur(12px)}}.site-header-inner{min-height:var(--size-header);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1.5rem;padding-block:.6rem;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.25rem;font-weight:900;line-height:1.2;text-decoration:none}.wordmark .cursor{color:var(--color-logo-mark)}.site-nav{gap:var(--space-header-nav-gap);flex-wrap:wrap;display:flex}.site-nav a{color:var(--color-text-subtle);transition:color var(--dur-fast) var(--ease);font-size:.875rem;font-weight:500;text-decoration:none}.site-nav a:hover{color:var(--color-text-default)}.site-nav a[aria-current=page]{color:var(--color-text-default);text-decoration-line:underline;-webkit-text-decoration-color:var(--color-logo-mark);text-decoration-color:var(--color-logo-mark);text-underline-offset:.35em;text-decoration-thickness:2px}.nav-toggle{display:none}@media (width<=40em){.site-header-inner{flex-wrap:nowrap;padding-block:0}.nav-toggle{min-block-size:var(--size-tap-target);min-inline-size:var(--size-tap-target);border-radius:var(--radius-s);color:var(--color-text-default);cursor:pointer;transition:color var(--dur-fast) var(--ease);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.nav-toggle:hover{color:var(--color-text-link)}.nav-toggle-icon{background:currentColor;block-size:2px;inline-size:1.125rem;display:inline-block;position:relative}.nav-toggle-icon:before,.nav-toggle-icon:after{content:"";background:currentColor;block-size:2px;position:absolute;inset-inline:0}.nav-toggle-icon:before{inset-block-start:-.375rem}.nav-toggle-icon:after{inset-block-start:.375rem}.site-nav{background:var(--color-background-canvas);border-block-end:1px solid var(--color-border-subtle);max-block-size:calc(100dvh - var(--size-header));flex-flow:column;gap:0;display:none;position:absolute;inset-block-start:100%;inset-inline:0;overflow-y:auto}.site-nav[data-open=true]{display:flex}.site-nav a{min-block-size:3rem;padding-inline:var(--space-page-inline);align-items:center;font-size:1rem;display:flex}.site-nav a+a{border-block-start:1px solid var(--color-border-subtle)}}.pill{background:var(--color-category-background);color:var(--color-category-text);letter-spacing:.02em;white-space:nowrap;border-radius:999px;padding:.35em .85em;font-size:.75rem;font-weight:600;line-height:1;display:inline-block}.date{color:var(--color-text-subtle);font-size:.875rem}.entry-meta{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:0;display:flex}.section-title{font-family:var(--font-display);letter-spacing:0;margin:3.5rem 0 1.25rem;font-size:1.125rem;font-weight:700;line-height:1.5}.stretched{color:inherit;text-decoration:none}.stretched:after{content:"";z-index:1;border-radius:inherit;position:absolute;inset:0}.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{min-block-size:max(30rem, calc(100svh - var(--size-header)));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);align-items:center;display:grid;position:relative;overflow:hidden}.topology-hero:after{content:"";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));position:absolute;inset:0}.topology-hero .topology-canvas{z-index:0;opacity:0;pointer-events:none;block-size:100%;inline-size:100%;transition:opacity .9s var(--ease);display:block;position:absolute;inset:0}.topology-hero.is-topology-ready .topology-canvas{opacity:1}@media (prefers-reduced-motion:reduce){.topology-hero .topology-canvas{transition:none}}.topology-hero-content-shell{z-index:2;inline-size:100%;position:relative}.topology-hero-content{text-align:center;max-inline-size:60rem;margin-inline:auto}.topology-hero h1{font-family:var(--font-hero-display);letter-spacing:.005em;text-wrap:balance;margin:0;font-size:clamp(3.25rem,7.5vw,6.75rem);font-weight:500;line-height:1.05}.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{z-index:2;color:color-mix(in srgb, var(--color-home-hero-text) 55%, transparent);flex-direction:column;align-items:center;gap:.7rem;display:flex;position:absolute;inset-block-end:1.75rem;inset-inline-start:clamp(1.25rem,4vw,2.25rem)}.topology-hero-scroll-label{writing-mode:vertical-rl;letter-spacing:.32em;font-size:.625rem;font-weight:500}.topology-hero-scroll:after{content:"";background:linear-gradient(currentColor,#0000);block-size:2.5rem;inline-size:1px}@media (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 (height<=30em){.topology-hero-scroll{display:none}}.card-list{gap:1rem;display:grid}.card{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);grid-template-columns:168px 1fr;align-items:center;gap:1.25rem;padding:1rem;display:grid;position:relative}.card:hover,.card:focus-within{box-shadow:var(--shadow-2);border-color:var(--color-border-accent-hovered);transform:translateY(-2px)}.card-thumb{aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-s);background:var(--color-background-subtle);width:100%;height:auto;display:block}.card-body{flex-direction:column;align-items:flex-start;gap:.45rem;min-inline-size:0;display:flex}.card-title{font-family:var(--font-display);letter-spacing:0;font-feature-settings:"palt";margin:0;font-size:1.125rem;font-weight:700;line-height:1.55}.card:hover .card-title .stretched{text-decoration:underline;-webkit-text-decoration-color:var(--color-text-link);text-decoration-color:var(--color-text-link);text-underline-offset:.2em;text-decoration-thickness:2px}.card-excerpt{color:var(--color-text-subtle);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.9375rem;line-height:1.7;display:-webkit-box;overflow:hidden}@media (width<=40em){.card{grid-template-columns:96px 1fr;align-items:start;gap:1rem}.card-excerpt{-webkit-line-clamp:3;line-clamp:3}}.entry-section-title{border-block-end:2px solid var(--color-section-rule);color:var(--color-text-default);letter-spacing:.12em;margin:0;padding-block-end:var(--space-3);font-size:.875rem;font-weight:800}.entry-section-mark{color:var(--color-logo-mark)}.home-articles{margin-block-start:var(--space-layout-region)}.entry{column-gap:var(--space-entry-inline-gap);padding-block:var(--space-entry-block);border-block-end:1px solid var(--color-border-subtle);grid-template-columns:1fr 200px;align-items:start;display:grid;position:relative}.entry-body{align-items:flex-start;gap:var(--space-card-content-gap);flex-direction:column;min-inline-size:0;display:flex}.entry-meta{align-items:baseline;gap:var(--space-inline-related);flex-wrap:wrap;margin:0;font-size:.75rem;display:flex}.entry-label{letter-spacing:.08em;color:var(--color-category-text);font-weight:600}.entry-tag-link{z-index:2;min-block-size:2.75rem;min-inline-size:2.75rem;color:var(--color-category-text);letter-spacing:.08em;transition:color var(--dur-fast) var(--ease);justify-content:center;align-items:center;font-size:.75rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.entry-tag-link:hover{color:var(--color-text-link-hovered);text-underline-offset:.2em;text-decoration:underline}.entry-date{color:var(--color-text-subtle);letter-spacing:.02em;font-variant-numeric:tabular-nums}.entry-title{font-family:var(--font-display);letter-spacing:0;font-feature-settings:"palt";transition:color var(--dur-fast) var(--ease);margin:0;font-size:1.375rem;font-weight:700;line-height:1.45}.entry:hover .entry-title{color:var(--color-text-link)}.entry-excerpt{color:var(--color-text-subtle);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;max-inline-size:40em;margin:0;font-size:.9375rem;line-height:1.7;display:-webkit-box;overflow:hidden}.entry-media{border-radius:var(--radius-s);background:var(--color-background-subtle);overflow:hidden}.entry-thumb{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;transition:transform var(--dur-mid) var(--ease);display:block}.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);text-underline-offset:.25em;font-weight:600;text-decoration-line:underline;text-decoration-thickness:1px}.home-archive-link:hover{color:var(--color-text-link-hovered)}@media (width<=40em){.entry{column-gap:var(--space-card-content-gap);padding-block:var(--space-stack-group);grid-template-columns:1fr 96px}.entry-title{font-size:1.125rem}}.feed-empty{color:var(--color-text-subtle);padding-block:3.5rem}.pagination{align-items:center;column-gap:var(--space-inline-related);border-block-start:1px solid var(--color-border-subtle);grid-template-columns:1fr auto 1fr;margin-block-start:var(--space-stack-section);padding-block-start:var(--space-inset-default);font-size:.875rem;display:grid}.pagination>:last-child{justify-self:end}.pagination a,.pagination-current,.pagination-disabled,.pagination-ellipsis{align-items:center;min-block-size:2.75rem;display:inline-flex}.pagination a{color:var(--color-text-link);font-weight:600;text-decoration:none}.pagination a:hover{color:var(--color-text-link-hovered);text-underline-offset:.25em;text-decoration:underline}.pagination-pages{justify-content:center;align-items:center;gap:var(--space-inline-related);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.pagination-pages a,.pagination-current{justify-content:center;min-inline-size:2.75rem}.pagination-current{color:var(--color-text-default);text-decoration-line:underline;-webkit-text-decoration-color:var(--color-border-accent);text-decoration-color:var(--color-border-accent);text-underline-offset:.3em;font-weight:700;text-decoration-thickness:2px}.pagination-disabled,.pagination-ellipsis{color:var(--color-text-subtle)}@media (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{color:var(--color-text-accent);letter-spacing:.14em;margin:0 0 .75rem;font-size:.75rem;font-weight:700}.archive-title-row{border-block-end:1px solid var(--color-border-subtle);justify-content:space-between;align-items:end;gap:1rem 2rem;padding-block-end:1.5rem;display:flex}.archive-title-row h1{font-family:var(--font-display);letter-spacing:0;margin:0;font-size:clamp(2.25rem,1.7rem + 2.4vw,4rem);font-weight:900;line-height:1.2}.archive-title-row p{color:var(--color-text-subtle);white-space:nowrap;margin:0 0 .35rem;font-size:.875rem}@media (width<=40em){.archive-page{padding-block-start:2.5rem}.archive-title-row{flex-direction:column;align-items:start}.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{font-family:var(--font-display);letter-spacing:0;font-feature-settings:"palt";text-wrap:balance;margin:0;font-size:clamp(2rem,1.5rem + 2vw,3.25rem);font-weight:900;line-height:1.25}.article-head .dek{max-inline-size:40em;color:var(--color-text-subtle);margin:1.2rem 0 0;font-size:1.0625rem;line-height:1.75}.article-meta{row-gap:var(--space-stack-tight);max-inline-size:40em;color:var(--color-text-subtle);flex-direction:column;margin:1.2rem 0 0;font-size:.875rem;line-height:1.6;display:flex}.article-meta-facts,.article-tags{margin:0}.article-meta .sep{color:var(--color-border-subtle);margin-inline:.6em}.article-tags{align-items:center;gap:var(--space-inline-related);flex-wrap:wrap;display:flex}.article-tags-label{color:var(--color-text-subtle)}.article-tag-link{letter-spacing:.08em}.article-hero{margin-block:2rem 2.25rem}.article-hero img{aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-l);border:1px solid var(--color-border-subtle);width:100%;height:auto;display:block}.affiliate-disclosure{border-radius:var(--radius-s);background:var(--color-disclosure-background);color:var(--color-disclosure-text);margin-block-end:2.25rem;padding:.8em 1.1em;font-size:.875rem;line-height:1.7}.prose{letter-spacing:.01em;font-size:clamp(1.0625rem,1rem + .25vw,1.125rem);line-height:1.8}.prose p{margin-block:0}.prose p+p{margin-block-start:1.25em}.prose h2{font-family:var(--font-display);letter-spacing:0;font-feature-settings:"palt";text-wrap:balance;margin-block:3em .9em;font-size:clamp(1.375rem,1.25rem + .6vw,1.75rem);font-weight:700;line-height:1.4}.prose h3{font-family:var(--font-display);letter-spacing:0;font-feature-settings:"palt";text-wrap:balance;margin-block:2.2em .7em;font-size:clamp(1.1875rem,1.1rem + .4vw,1.4375rem);font-weight:700;line-height:1.5}.prose h4,.prose h5,.prose h6{font-family:var(--font-display);margin-block:1.9em .65em;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-underline-offset:.18em;-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto;transition:color var(--dur-fast) var(--ease), text-decoration-thickness var(--dur-fast) var(--ease);text-decoration-line:underline;text-decoration-color:currentColor;text-decoration-thickness:.08em}.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{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);margin-block:2em;margin-inline:0;padding:1em 1.25em}.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{margin-block-start:.8em;font-size:.875em;display:block}.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]{block-size:1em;inline-size:1em;accent-color:var(--color-background-accent);vertical-align:-.08em;margin:0 .55em 0 0}.prose figure{margin-block:2.5em;margin-inline:0}.prose img{border-radius:var(--radius-m);border:1px solid var(--color-border-subtle);block-size:auto;max-inline-size:100%;display:block}.prose figcaption{color:var(--color-text-subtle);margin-block-start:.75em;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);background:var(--color-background-subtle);border-radius:.25rem;padding:.12em .32em;font-size:.9em}.prose pre{border:1px solid var(--color-border-subtle);border-radius:var(--radius-s);background:var(--color-code-background);max-inline-size:100%;color:var(--color-code-text);font-family:var(--font-mono);tab-size:2;margin-block:1.75em;padding:1rem;font-size:.875rem;line-height:1.6;overflow-x:auto}.prose pre code{white-space:pre;overflow-wrap:normal;background:0 0;border-radius:0;padding:0}.prose kbd{border:1px solid var(--color-border-subtle);background:var(--color-background-subtle);font-family:var(--font-mono);border-block-end-width:2px;border-radius:.3rem;padding:.12em .42em;font-size:.82em}.prose mark{background:var(--color-mark-background);color:var(--color-text-default);padding-inline:.12em}.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{border:1px solid var(--color-border-subtle);border-radius:var(--radius-s);background:var(--color-background-subtle);margin-block:1.75em;padding:0 1.1rem 1.1rem;overflow:hidden}.prose .markdown-disclosure:not([open]){padding-block-end:0}.prose .markdown-disclosure summary{color:var(--color-text-default);cursor:pointer;margin-inline:-1.1rem;padding:.85rem 1.1rem;font-weight:700}.prose .markdown-disclosure[open] summary{border-block-end:1px solid var(--color-border-subtle);margin-block-end:1rem}.prose .markdown-disclosure summary:hover{background:var(--color-background-subtle-hovered)}.prose .markdown-link-card{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);transition:transform var(--dur-mid) var(--ease), box-shadow var(--dur-mid) var(--ease), border-color var(--dur-fast) var(--ease);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;margin-block:1.75em;padding:1.1rem 1.2rem;text-decoration:none;display:grid}.prose .markdown-link-card:hover{border-color:var(--color-border-accent-hovered);box-shadow:var(--shadow-2);color:var(--color-text-default);text-decoration:none;transform:translateY(-2px)}.markdown-link-card-icon{background:var(--color-background-accent-subtle);block-size:2.75rem;inline-size:2.75rem;color:var(--color-text-accent);border-radius:50%;place-items:center;font-size:1.2rem;font-weight:700;display:grid}.markdown-link-card-copy{gap:.2rem;min-inline-size:0;display:grid}.markdown-link-card-site{color:var(--color-text-subtle);letter-spacing:.06em;text-transform:uppercase;font-size:.6875rem;font-weight:600}.markdown-link-card-copy strong{color:var(--color-text-default);text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.5;overflow:hidden}.markdown-link-card-description{color:var(--color-text-subtle);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.8125rem;line-height:1.6;display:-webkit-box;overflow:hidden}.markdown-link-card-arrow{color:var(--color-text-link);font-weight:700}@media (width<=32em){.prose .markdown-link-card{grid-template-columns:minmax(0,1fr) auto}.markdown-link-card-icon{display:none}}.table-scroll{border:1px solid var(--color-border-subtle);border-radius:var(--radius-s);inline-size:100%;max-inline-size:100%;margin-block:2em;overflow-x:auto}.prose table{border-collapse:collapse;inline-size:100%;min-inline-size:36rem;font-size:.9375rem;line-height:1.7}.prose caption{color:var(--color-text-subtle);text-align:start;padding:.75rem .9rem;font-size:.875rem}.prose th{background:var(--color-background-subtle);color:var(--color-text-subtle);font-size:.875rem;font-weight:600}.prose :where(th,td){text-align:start;vertical-align:top;border-block-end:1px solid var(--color-border-subtle);padding:.65rem .9rem}.prose tr:last-child td{border-block-end:0}.prose .footnotes{border-block-start:1px solid var(--color-border-subtle);color:var(--color-text-subtle);margin-block-start:3em;padding-block-start:1.5em;font-size:.875em}.prose :where(iframe,video){border:0;max-inline-size:100%;margin-block:2em;display:block}.author-profile{border-block-start:1px solid var(--color-border-subtle);grid-template-columns:3.75rem minmax(0,1fr);align-items:start;gap:1.25rem;margin-block-start:4rem;padding-block-start:1.75rem;display:grid}.author-profile-mark{background:var(--color-category-background);block-size:3.75rem;inline-size:3.75rem;color:var(--color-category-text);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:1.25rem;font-weight:900;line-height:1;display:grid}.author-profile-kicker{color:var(--color-text-accent);letter-spacing:.12em;margin:0 0 .2rem;font-size:.6875rem;font-weight:700;line-height:1.4}.author-profile-name{font-family:var(--font-display);margin:0;font-size:1.125rem;font-weight:700;line-height:1.5}.author-profile-name a{-webkit-text-decoration-color:var(--color-border-default);text-decoration-color:var(--color-border-default);text-underline-offset:.2em;transition:color var(--dur-fast) var(--ease), text-decoration-color var(--dur-fast) var(--ease);text-decoration-thickness:1px}.author-profile-name a:hover{color:var(--color-text-link-hovered);text-decoration-color:currentColor}.author-profile-description{color:var(--color-text-subtle);margin:.35rem 0 0;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;align-items:start;gap:1rem}.affiliate-preview-page{padding-block:var(--space-page-block-start) var(--space-layout-region)}.affiliate-preview-layout,.affiliate-preview-head,.affiliate-preview-list,.affiliate-preview-option,.affiliate-preview-option-copy,.affiliate-card-content,.affiliate-preview-note{min-inline-size:0;display:grid}.affiliate-preview-layout,.affiliate-preview-list{gap:var(--space-layout-region)}.affiliate-preview-head{gap:var(--space-stack-related)}.affiliate-preview-option{gap:var(--space-stack-group);min-inline-size:0;display:grid}.affiliate-preview-kicker,.affiliate-preview-head h1,.affiliate-preview-intro,.affiliate-preview-number,.affiliate-preview-option-copy h2,.affiliate-preview-option-copy p,.affiliate-card-title,.affiliate-preview-note h2,.affiliate-preview-note p{margin:0}.affiliate-preview-kicker{color:var(--color-text-accent);letter-spacing:.12em;font-size:.75rem;font-weight:700;line-height:1.6}.affiliate-preview-head h1{font-family:var(--font-display);font-feature-settings:"palt";text-wrap:balance;font-size:clamp(2rem,1.5rem + 2vw,3.25rem);font-weight:900;line-height:1.25}.affiliate-preview-intro{color:var(--color-text-subtle);font-size:1.0625rem;line-height:1.75}.affiliate-preview-intro a{color:var(--color-text-link);text-underline-offset:.18em;text-decoration-line:underline;text-decoration-thickness:1px}.affiliate-preview-intro a:hover{color:var(--color-text-link-hovered)}.affiliate-preview-option-head{align-items:start;gap:var(--space-inline-related);grid-template-columns:auto minmax(0,1fr);display:grid}.affiliate-preview-number{color:var(--color-text-accent);font-family:var(--font-mono);font-size:.875rem;font-weight:600;line-height:1.6}.affiliate-preview-option-copy{gap:var(--space-stack-tight)}.affiliate-preview-option-copy h2{font-family:var(--font-display);font-feature-settings:"palt";text-wrap:balance;font-size:clamp(1.375rem,1.25rem + .6vw,1.75rem);font-weight:700;line-height:1.4}.affiliate-preview-option-copy p{color:var(--color-text-subtle);font-size:.875rem;line-height:1.7}.affiliate-card{gap:var(--space-inline-region);min-inline-size:0;padding:var(--space-card-padding);border:1px solid var(--color-border-subtle);border-radius:var(--radius-m);background:var(--color-background-canvas);color:var(--color-text-default);display:grid}.affiliate-card--wired-split{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}.affiliate-card--dual-market{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:center}.affiliate-card--product-first{gap:var(--space-stack-group);grid-template-columns:minmax(0,1fr)}.affiliate-card-media{place-items:center;min-inline-size:0;margin:0;display:grid}.affiliate-card-media img{aspect-ratio:1516/744;object-fit:contain;block-size:auto;inline-size:100%;display:block}.affiliate-card-content{align-content:center;gap:var(--space-stack-group)}.affiliate-card-title{font-family:var(--font-display);text-align:center;text-wrap:balance;font-size:1.125rem;font-weight:600;line-height:1.55}.affiliate-card-offers{gap:var(--space-inline-related);min-inline-size:0;display:grid}.affiliate-card--wired-split .affiliate-card-offers{grid-template-columns:minmax(0,1fr)}.affiliate-card--dual-market .affiliate-card-offers,.affiliate-card--product-first .affiliate-card-offers{grid-template-columns:repeat(2,minmax(0,1fr))}.affiliate-card--product-first .affiliate-card-content{gap:var(--space-stack-group)}.affiliate-card-offer{place-items:center;gap:var(--space-inline-tight);min-inline-size:0;min-block-size:var(--size-tap-target);padding-block:var(--space-inset-tight);padding-inline:var(--space-inset-default);border:1px solid var(--color-border-interactive);border-radius:var(--radius-s);background:var(--color-background-canvas);color:var(--color-text-default);text-align:center;transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);text-decoration:none;display:grid}.affiliate-card-offer:hover{border-color:var(--color-border-accent);background:var(--color-background-info-subtle);color:var(--color-text-link-hovered)}.affiliate-card-price{font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:700;line-height:1.4}.affiliate-card-retailer{letter-spacing:.12em;font-size:.75rem;font-weight:700;line-height:1}.affiliate-preview-note{gap:var(--space-stack-tight);padding-block:var(--space-disclosure-padding-block);padding-inline:var(--space-disclosure-padding-inline);border-radius:var(--radius-s);background:var(--color-disclosure-background);color:var(--color-disclosure-text)}.affiliate-preview-note h2{color:var(--color-text-default);font-family:var(--font-display);font-size:.875rem;font-weight:700;line-height:1.6}.affiliate-preview-note p{font-size:.875rem;line-height:1.7}@media (width<=40em){.affiliate-card--wired-split,.affiliate-card--dual-market{gap:var(--space-stack-group);grid-template-columns:minmax(0,1fr)}.affiliate-card--dual-market .affiliate-card-offers,.affiliate-card--product-first .affiliate-card-offers{grid-template-columns:minmax(0,1fr)}}@media (forced-colors:active){.affiliate-card,.affiliate-card-offer{border-color:canvastext}.affiliate-card-offer{color:linktext}}.site-footer{background:var(--color-footer-background);color:var(--color-footer-text);border-block-start:1px solid var(--color-footer-border);margin-block-start:5rem;padding-block:3.5rem 2.5rem}.footer-wordmark{font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-footer-text);margin:0;font-size:clamp(3.5rem,10vw,7rem);font-weight:900;line-height:1}.footer-wordmark .cursor{color:var(--color-footer-logo-mark)}.footer-nav{flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-block-start:2rem;font-size:.875rem;display:flex}.footer-nav a{color:var(--color-footer-text-muted);transition:color var(--dur-fast) var(--ease);text-decoration:none}.footer-nav a:hover{color:var(--color-footer-text)}.footer-nav .sep{color:var(--color-footer-separator)}.copyright{color:var(--color-footer-text-muted);margin:2rem 0 0;font-size:.8125rem}.contact-page{padding-block-end:1rem}.contact-head{border-block-end:1px solid var(--color-border-subtle);padding-block-end:2.5rem}.contact-form{gap:1.35rem;margin-block-start:2.5rem;display:grid}.contact-form-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.contact-form-head h2{font-family:var(--font-display);margin:0;font-size:1.25rem;font-weight:700;line-height:1.5}.contact-form-head p{color:var(--color-text-subtle);margin:0;font-size:.8125rem}.contact-field{min-inline-size:0;color:var(--color-text-default);gap:.55rem;font-size:.875rem;font-weight:600;display:grid}.contact-field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.contact-field small{color:var(--color-text-subtle);margin-inline-start:.35rem;font-size:.75rem;font-weight:400}.contact-field :where(input,select,textarea){border:1px solid var(--color-border-interactive);border-radius:var(--radius-s);background:var(--color-background-canvas);inline-size:100%;min-inline-size:0;color:var(--color-text-default);font:inherit;transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);font-weight:400}.contact-field :where(input,select){min-block-size:3rem;padding-inline:.9rem}.contact-field textarea{resize:vertical;min-block-size:9rem;padding:.8rem .9rem;line-height:1.7}.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{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.contact-turnstile{gap:.5rem;display:grid}.contact-turnstile-widget{min-block-size:65px}.contact-turnstile p{color:var(--color-text-subtle);margin:0;font-size:.75rem;line-height:1.6}.contact-turnstile .contact-turnstile-error{color:var(--color-text-default)}.contact-consent{border-block:1px solid var(--color-border-subtle);background:var(--color-background-subtle);padding:1rem}.contact-consent p{color:var(--color-text-subtle);margin:0 0 .75rem;font-size:.8125rem;line-height:1.7}.contact-consent a{color:var(--color-text-link);text-underline-offset:.18em}.contact-checkbox{cursor:pointer;align-items:center;gap:.7rem;font-size:.875rem;font-weight:600;display:flex}.contact-checkbox input{block-size:1.125rem;inline-size:1.125rem;accent-color:var(--color-background-accent);cursor:pointer;flex:none;margin:0}.contact-submit{border:1px solid var(--color-border-accent);border-radius:var(--radius-s);background:var(--color-background-accent);min-block-size:3.25rem;inline-size:100%;color:var(--color-text-inverse);font:inherit;cursor:pointer;transition:background-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);justify-content:space-between;align-items:center;padding-inline:1.25rem;font-weight:700;display:flex}.contact-submit:hover:not(:disabled){background:var(--color-text-link-hovered);transform:translateY(-1px)}.contact-submit:disabled{cursor:wait;opacity:.7}.contact-form-status{border-inline-start:3px solid var(--color-border-interactive);background:var(--color-background-subtle);color:var(--color-text-default);align-items:flex-start;gap:.65rem;margin:0;padding:.85rem 1rem;font-size:.875rem;font-weight:600;line-height:1.65;display:flex}.contact-form-status--success{border-inline-start-color:var(--color-border-accent);background:var(--color-background-info-subtle);color:var(--color-text-accent)}@media (width<=40em){.contact-form-head{flex-direction:column;align-items:flex-start;gap:.35rem}.contact-field-row{grid-template-columns:1fr}}
