.emdash-image-media[data-astro-cid-6depetnu]{max-width:100%;height:auto}:where(:root.dark) .emdash-image--light,:where(:root.light) .emdash-image--dark{display:none}@media (prefers-color-scheme:dark){:where(:root:not(.light)) .emdash-image--light{display:none}}@media (prefers-color-scheme:light){:where(:root:not(.dark)) .emdash-image--dark{display:none}}.has-text-align-center[data-astro-cid-44ocxh3s]{text-align:center}.has-text-align-right[data-astro-cid-44ocxh3s]{text-align:right}.has-text-align-justify[data-astro-cid-44ocxh3s]{text-align:justify}.emdash-image[data-astro-cid-nzlefzml]{margin:1.5rem 0}.emdash-image[data-astro-cid-nzlefzml] img[data-astro-cid-nzlefzml]{max-width:100%;height:auto}.emdash-image[data-astro-cid-nzlefzml] figcaption[data-astro-cid-nzlefzml]{color:var(--emdash-caption-color,var(--color-muted,#666));text-align:center;margin-top:.5rem;font-size:.875rem}.emdash-image--align-left[data-astro-cid-nzlefzml],.emdash-image--align-right[data-astro-cid-nzlefzml]{width:fit-content;max-width:50%}.emdash-image--align-left[data-astro-cid-nzlefzml]{float:left;margin:0 1.5rem 1rem 0}.emdash-image--align-right[data-astro-cid-nzlefzml]{float:right;margin:0 0 1rem 1.5rem}.emdash-image--align-center[data-astro-cid-nzlefzml]{width:fit-content;margin-inline:auto}.emdash-image--align-wide[data-astro-cid-nzlefzml],.emdash-image--align-full[data-astro-cid-nzlefzml]{width:100%}@media (width<=640px){.emdash-image--align-left[data-astro-cid-nzlefzml],.emdash-image--align-right[data-astro-cid-nzlefzml]{float:none;width:100%;max-width:100%;margin-inline:0}}.emdash-code[data-astro-cid-dgremz56]{margin:1.5rem 0}.emdash-code-filename[data-astro-cid-dgremz56]{color:#ccc;background:#2d2d2d;border-radius:.5rem .5rem 0 0;padding:.5rem 1rem;font-family:monospace;font-size:.75rem}.emdash-code[data-astro-cid-dgremz56] pre[data-astro-cid-dgremz56]{background:#1e1e1e;border-radius:.5rem;margin:0;padding:1rem;overflow-x:auto}.emdash-code-filename[data-astro-cid-dgremz56]+pre[data-astro-cid-dgremz56]{border-radius:0 0 .5rem .5rem}.emdash-code[data-astro-cid-dgremz56] code[data-astro-cid-dgremz56]{color:#e0e0e0;font-family:Fira Code,Consolas,monospace;font-size:.875rem}.emdash-embed[data-astro-cid-n4v2ghzc]{margin:1.5rem 0}.emdash-embed-video[data-astro-cid-n4v2ghzc]{height:0;padding-bottom:56.25%;position:relative;overflow:hidden}.emdash-embed-video[data-astro-cid-n4v2ghzc] iframe[data-astro-cid-n4v2ghzc],.emdash-embed-video[data-astro-cid-n4v2ghzc] video[data-astro-cid-n4v2ghzc]{border:0;width:100%;height:100%;position:absolute;top:0;left:0}.emdash-embed-audio[data-astro-cid-n4v2ghzc],.emdash-embed-audio[data-astro-cid-n4v2ghzc] audio[data-astro-cid-n4v2ghzc]{width:100%}.emdash-embed[data-astro-cid-n4v2ghzc] figcaption[data-astro-cid-n4v2ghzc]{color:var(--emdash-caption-color,var(--color-muted,#666));text-align:center;margin-top:.5rem;font-size:.875rem}.emdash-gallery[data-astro-cid-d6nmylgu]{grid-template-columns:repeat(var(--columns,3), 1fr);gap:1rem;margin:1.5rem 0;display:grid}.emdash-gallery-item[data-astro-cid-d6nmylgu]{margin:0}.emdash-gallery-item[data-astro-cid-d6nmylgu] img[data-astro-cid-d6nmylgu]{object-fit:cover;aspect-ratio:1;width:100%;height:auto}.emdash-gallery-item[data-astro-cid-d6nmylgu] figcaption[data-astro-cid-d6nmylgu]{color:var(--emdash-caption-color,var(--color-muted,#666));text-align:center;margin-top:.25rem;font-size:.75rem}@media (width<=640px){.emdash-gallery[data-astro-cid-d6nmylgu]{grid-template-columns:repeat(2,1fr)}}.emdash-columns[data-astro-cid-sjaxkm7w]{gap:2rem;margin:1.5rem 0;display:flex}.emdash-column[data-astro-cid-sjaxkm7w]{flex:1;min-width:0}@media (width<=768px){.emdash-columns[data-astro-cid-sjaxkm7w]{flex-direction:column;gap:1rem}}.emdash-break[data-astro-cid-gvovdxls]{margin:2rem 0}.emdash-break-line[data-astro-cid-gvovdxls]{border:none;border-top:1px solid var(--emdash-break-color,var(--color-border,#e0e0e0))}.emdash-break-dots[data-astro-cid-gvovdxls]{text-align:center;color:var(--emdash-break-dots-color,var(--color-muted,#999));letter-spacing:.5em}.emdash-break-space[data-astro-cid-gvovdxls]{height:2rem}iframe[data-emdash-html-block]{border:0;width:100%;margin:1.5rem 0;display:block}.emdash-html-block[data-astro-cid-7hlqo6bn]{margin:1.5rem 0}.emdash-iframe[data-astro-cid-fhxykd76]{aspect-ratio:16/9;width:100%;margin:1.5rem 0}.emdash-iframe[data-astro-cid-fhxykd76] iframe{border:0;width:100%;height:100%;display:block}.emdash-video[data-astro-cid-ymu5gvpn]{margin:1.5rem 0}.emdash-video[data-astro-cid-ymu5gvpn] video[data-astro-cid-ymu5gvpn]{width:100%;height:auto;max-height:70vh;display:block}.emdash-video[data-astro-cid-ymu5gvpn] figcaption[data-astro-cid-ymu5gvpn]{color:var(--emdash-caption-color,var(--color-muted,#666));text-align:center;margin-top:.5rem;font-size:.875rem}.emdash-table-wrapper[data-astro-cid-7uypp5bz]{overscroll-behavior-inline:contain;max-inline-size:100%;margin-block:1.5rem;overflow-x:auto}.emdash-table[data-astro-cid-7uypp5bz]{border-collapse:collapse;inline-size:100%;font-size:.9rem}.emdash-table[data-astro-cid-7uypp5bz] th[data-astro-cid-7uypp5bz],.emdash-table[data-astro-cid-7uypp5bz] td[data-astro-cid-7uypp5bz]{border:1px solid var(--color-border,#ddd);text-align:start;vertical-align:top;padding:.75rem;position:relative}.emdash-table[data-astro-cid-7uypp5bz] th[data-astro-cid-7uypp5bz] p,.emdash-table[data-astro-cid-7uypp5bz] td[data-astro-cid-7uypp5bz] p{margin:0}.emdash-table[data-astro-cid-7uypp5bz] th[data-astro-cid-7uypp5bz]{background:var(--color-surface,#f5f5f5);font-weight:600}.emdash-table[data-astro-cid-7uypp5bz] tbody[data-astro-cid-7uypp5bz] tr[data-astro-cid-7uypp5bz]:nth-child(2n){background:var(--color-bg-subtle,#fafafa)}.emdash-table[data-astro-cid-7uypp5bz] tbody[data-astro-cid-7uypp5bz] tr[data-astro-cid-7uypp5bz]:hover{background:var(--color-surface,#f0f0f0)}.emdash-button[data-astro-cid-i644adhy]{cursor:pointer;border-radius:4px;padding:.75em 1.5em;font-weight:500;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s;display:inline-block}.emdash-button--default[data-astro-cid-i644adhy],.emdash-button--fill[data-astro-cid-i644adhy]{background-color:var(--emdash-button-bg,#0073aa);color:var(--emdash-button-color,#fff);border:2px solid var(--emdash-button-bg,#0073aa)}.emdash-button--default[data-astro-cid-i644adhy]:hover,.emdash-button--fill[data-astro-cid-i644adhy]:hover{background-color:var(--emdash-button-bg-hover,#005177);border-color:var(--emdash-button-bg-hover,#005177)}.emdash-button--outline[data-astro-cid-i644adhy]{color:var(--emdash-button-bg,#0073aa);border:2px solid var(--emdash-button-bg,#0073aa);background-color:#0000}.emdash-button--outline[data-astro-cid-i644adhy]:hover{background-color:var(--emdash-button-bg,#0073aa);color:var(--emdash-button-color,#fff)}.emdash-buttons[data-astro-cid-pxkpowas]{flex-wrap:wrap;gap:.75rem;margin:1.5rem 0;display:flex}.emdash-buttons--vertical[data-astro-cid-pxkpowas]{flex-direction:column;align-items:flex-start}.emdash-buttons--horizontal[data-astro-cid-pxkpowas]{flex-direction:row;align-items:center}.emdash-cover[data-astro-cid-g6rigryn]{background-color:var(--emdash-cover-fallback-bg,#333);border-radius:4px;align-items:center;margin:1.5rem 0;padding:2rem;display:flex;position:relative;overflow:hidden}.emdash-cover__background[data-astro-cid-g6rigryn]{object-fit:cover;z-index:0;width:100%;height:100%;position:absolute;inset:0}.emdash-cover__video[data-astro-cid-g6rigryn]{object-fit:cover}.emdash-cover__overlay[data-astro-cid-g6rigryn]{z-index:1;position:absolute;inset:0}.emdash-cover__content[data-astro-cid-g6rigryn]{z-index:2;width:100%;color:var(--emdash-cover-text-color,#fff);position:relative}.emdash-cover--align-left[data-astro-cid-g6rigryn]{text-align:left;justify-content:flex-start}.emdash-cover--align-center[data-astro-cid-g6rigryn]{text-align:center;justify-content:center}.emdash-cover--align-right[data-astro-cid-g6rigryn]{text-align:right;justify-content:flex-end}.emdash-cover__content[data-astro-cid-g6rigryn] h1,.emdash-cover__content[data-astro-cid-g6rigryn] h2,.emdash-cover__content[data-astro-cid-g6rigryn] h3,.emdash-cover__content[data-astro-cid-g6rigryn] h4,.emdash-cover__content[data-astro-cid-g6rigryn] p{color:inherit}.emdash-file[data-astro-cid-dsnn5jk3]{background-color:var(--emdash-file-bg,#f5f5f5);border:1px solid var(--emdash-file-border,#e0e0e0);border-radius:4px;align-items:center;gap:.75rem;margin:1rem 0;padding:1rem;display:flex}.emdash-file__link[data-astro-cid-dsnn5jk3]{color:var(--emdash-file-color,#333);flex:1;align-items:center;gap:.5rem;text-decoration:none;display:flex}.emdash-file__link[data-astro-cid-dsnn5jk3]:hover{text-decoration:underline}.emdash-file__icon[data-astro-cid-dsnn5jk3]{width:1.5rem;height:1.5rem;color:var(--emdash-file-icon-color,#666);flex-shrink:0}.emdash-file__name[data-astro-cid-dsnn5jk3]{word-break:break-all;font-weight:500}.emdash-file__download[data-astro-cid-dsnn5jk3]{background-color:var(--emdash-button-bg,#0073aa);width:2.5rem;height:2.5rem;color:var(--emdash-button-color,#fff);border-radius:4px;justify-content:center;align-items:center;transition:background-color .2s;display:flex}.emdash-file__download[data-astro-cid-dsnn5jk3]:hover{background-color:var(--emdash-button-bg-hover,#005177)}.emdash-file__download[data-astro-cid-dsnn5jk3] svg[data-astro-cid-dsnn5jk3]{width:1.25rem;height:1.25rem}.emdash-pullquote[data-astro-cid-mtrxdgkr]{border-top:4px solid var(--emdash-pullquote-border,#0073aa);border-bottom:4px solid var(--emdash-pullquote-border,#0073aa);text-align:center;margin:2rem 0;padding:1.5rem 2rem}.emdash-pullquote__text[data-astro-cid-mtrxdgkr]{color:var(--emdash-pullquote-color,#333);margin:0;font-size:1.5rem;font-style:italic;line-height:1.4}.emdash-pullquote__citation[data-astro-cid-mtrxdgkr]{color:var(--emdash-pullquote-citation-color,#666);margin-top:1rem;font-size:.9rem;font-style:normal}.emdash-live-search[data-astro-cid-klwkb3g6]{display:inline-block;position:relative}.emdash-live-search-input[data-astro-cid-klwkb3g6]{border:1px solid var(--emdash-search-border,#ccc);background:var(--emdash-search-bg,white);width:100%;color:var(--emdash-search-text,inherit);border-radius:.25rem;padding:.5rem 1rem;font-size:1rem}.emdash-live-search-input[data-astro-cid-klwkb3g6]:focus{border-color:var(--emdash-search-border-focus,#666);outline:none}.emdash-live-search-results[data-astro-cid-klwkb3g6]{background:var(--emdash-search-bg,white);border:1px solid var(--emdash-search-border,#ccc);z-index:1000;border-radius:.25rem;max-height:400px;margin-top:.25rem;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.emdash-live-search-loading[data-astro-cid-klwkb3g6],.emdash-live-search-no-results[data-astro-cid-klwkb3g6]{text-align:center;color:var(--emdash-search-muted,#666);padding:1rem}.emdash-live-search-result[data-astro-cid-klwkb3g6]{color:var(--emdash-search-text,inherit);border-bottom:1px solid var(--emdash-search-border,#eee);padding:.75rem 1rem;text-decoration:none;display:block}.emdash-live-search-result[data-astro-cid-klwkb3g6]:last-child{border-bottom:none}.emdash-live-search-result[data-astro-cid-klwkb3g6]:hover,.emdash-live-search-result[data-astro-cid-klwkb3g6]:focus,.emdash-live-search-result[data-astro-cid-klwkb3g6].focused{background:var(--emdash-search-hover,#f5f5f5);outline:none}.emdash-live-search-result-title[data-astro-cid-klwkb3g6]{font-weight:500;display:block}.emdash-live-search-result-collection[data-astro-cid-klwkb3g6]{color:var(--emdash-search-muted,#888);text-transform:uppercase;letter-spacing:.05em;margin-top:.125rem;font-size:.75rem;display:block}.emdash-live-search-result-snippet[data-astro-cid-klwkb3g6]{color:var(--emdash-search-muted,#666);margin-top:.25rem;font-size:.875rem;display:block}.emdash-live-search-result-snippet[data-astro-cid-klwkb3g6] mark{color:var(--emdash-search-highlight,var(--emdash-search-text,#000));background:0 0;font-weight:600}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface-page:#f8f9fb;--surface-base:#fff;--surface-sunken:#f1f3f6;--surface-inverse:#14161a;--ink:#14161a;--ink-muted:#4a5160;--ink-subtle:#5f6674;--ink-inverse:#fff;--line:#e3e6eb;--line-strong:#848b98;--brand:#c73a15;--brand-hover:#a8300f;--brand-ink:#a8300f;--brand-tint:#fdeee8;--on-brand:#fff;--focus:#1f5bd6;--success-bg:#e3f5ea;--success-ink:#0b6b3a;--danger-bg:#fce9e7;--danger-ink:#a3221b;--info-bg:#e6eef9;--info-ink:#1d4f91;--pr-bg:#fff3c4;--pr-ink:#6b4e00;--cat-programming:#0f5f8c;--cat-ai:#7a2e8e;--cat-language:#0e6b5a;--cat-career:#8a4b0f;--cat-tools:#3c4a5c;--font-sans:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", Meiryo, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Noto Sans Mono", monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:72px;--radius-none:0;--radius-sm:2px;--radius-pill:999px;--shadow-header:0 1px 0 #e3e6eb;--shadow-sticky-col:6px 0 8px -6px #14161a2e;--shadow-raised:0 6px 20px #14161a14;--container:1200px;--content:720px;--sidebar:264px}[data-site=ai-dougubako]{--brand:#0e6f78;--brand-hover:#0a5960;--brand-ink:#0a5960;--brand-tint:#e4f3f4}.ms-root,.ms-root *{box-sizing:border-box}.ms-root{font-family:var(--font-sans);letter-spacing:.03em;color:var(--ink);background:var(--surface-page);-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 0;font-size:16px;line-height:1.9}.ms-root h1,.ms-root h2,.ms-root h3,.ms-root p,.ms-root ul,.ms-root ol,.ms-root figure{margin:0}.ms-root ul,.ms-root ol{padding:0}.ms-root a{color:var(--brand-ink);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px}.ms-root a:hover{text-decoration-thickness:2px}.ms-root :focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ms-mono{font-family:var(--font-mono)}.ms-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ms-container{max-width:var(--container);padding:0 var(--space-6);margin:0 auto}@media (width<=639px){.ms-container{padding:0 var(--space-4)}}.ms-prose{max-width:var(--content)}.ms-prose>*+*{margin-top:var(--space-5)}.ms-prose>h2{letter-spacing:.01em;margin-top:var(--space-7);padding-top:var(--space-5);border-top:2px solid var(--ink);font-size:24px;font-weight:700;line-height:1.45}.ms-prose>h3{margin-top:var(--space-6);font-size:19px;font-weight:700;line-height:1.5}.ms-prose strong{background:linear-gradient(transparent 62%, var(--brand-tint) 62%);font-weight:700}.ms-prose ul{padding-left:1.4em}.ms-logo,.ms-root .ms-logo{color:var(--ink);align-items:center;gap:10px;display:inline-flex;text-decoration:none!important}.ms-logo svg{flex:none;display:block}.ms-logo .ms-logo__side{fill:var(--ink)}.ms-logo .ms-logo__mid{fill:var(--brand)}.ms-logo__word{font-family:var(--font-sans);letter-spacing:-.01em;font-size:22px;font-weight:800;line-height:1}.ms-root .ms-logo--inverse{color:var(--ink-inverse)}.ms-logo--inverse .ms-logo__side,.ms-logo--inverse .ms-logo__mid{fill:var(--ink-inverse)}.ms-badges{gap:var(--space-2);flex-wrap:wrap;display:flex}.ms-badge{border-radius:var(--radius-sm);letter-spacing:.04em;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:3px 8px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.ms-badge svg{flex:none;width:14px;height:14px}.ms-badge__date{font-family:var(--font-mono);letter-spacing:.02em;font-weight:600}.ms-badge--verified{background:var(--success-bg);color:var(--success-ink)}.ms-badge--date{background:var(--info-bg);color:var(--info-ink)}.ms-badge--env{background:var(--surface-sunken);color:var(--ink-muted);border-color:var(--line)}.ms-badge--pr{background:var(--pr-bg);color:var(--pr-ink);font-family:var(--font-mono);letter-spacing:.08em}.ms-badge--rank{background:var(--ink);color:var(--ink-inverse);font-family:var(--font-mono)}.ms-cat{border-radius:var(--radius-sm);letter-spacing:.06em;color:var(--ink-inverse);background:var(--cat-tools);padding:2px 8px;font-size:12px;font-weight:700;line-height:1.6;display:inline-block;text-decoration:none!important}.ms-cat--programming{background:var(--cat-programming)}.ms-cat--ai{background:var(--cat-ai)}.ms-cat--language{background:var(--cat-language)}.ms-cat--career{background:var(--cat-career)}.ms-cat--tools{background:var(--cat-tools)}a.ms-cat{color:var(--ink-inverse)}.ms-btn{border-radius:var(--radius-none);min-height:48px;font-family:var(--font-sans);letter-spacing:.04em;cursor:pointer;text-align:center;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:15px;font-weight:700;line-height:1.4;transition:background-color .15s,border-color .15s;display:inline-flex;text-decoration:none!important}.ms-btn svg{flex:none;width:16px;height:16px}.ms-btn--aff{background:var(--brand);color:var(--on-brand)!important}.ms-btn--aff:hover{background:var(--brand-hover)}.ms-btn--official{background:var(--surface-base);border-color:var(--ink);color:var(--ink)!important}.ms-btn--official:hover{background:var(--surface-sunken)}.ms-btn--ghost{background:var(--surface-base);border-color:var(--line-strong);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:13px;color:var(--ink)!important}.ms-btn--ghost:hover{border-color:var(--ink)}.ms-btn--block{width:100%;display:flex}.ms-btn__note{letter-spacing:.02em;opacity:.92;font-size:11px;font-weight:400;display:block}.ms-header{background:var(--surface-base);border-bottom:1px solid var(--line)}.ms-header__top{justify-content:space-between;align-items:center;height:72px;display:flex}.ms-header__tools{align-items:center;gap:var(--space-4);display:flex}.ms-iconbtn{width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.ms-iconbtn svg{width:22px;height:22px}.ms-header__nav{border-top:1px solid var(--line)}.ms-header__nav ul{gap:var(--space-6);scrollbar-width:none;list-style:none;display:flex;overflow-x:auto}.ms-header__nav a{color:var(--ink);white-space:nowrap;border-bottom:2px solid #0000;padding:14px 0 12px;font-size:15px;font-weight:600;text-decoration:none;display:block}.ms-header__nav a:hover{border-bottom-color:var(--line-strong)}.ms-header__nav a[aria-current=page]{border-bottom-color:var(--brand)}.ms-crumb ol{color:var(--ink-subtle);flex-wrap:wrap;align-items:center;gap:4px 0;font-size:13px;line-height:1.6;list-style:none;display:flex}.ms-crumb li{align-items:center;display:inline-flex}.ms-crumb li+li:before{content:"/";font-family:var(--font-mono);color:var(--line-strong);margin:0 10px}.ms-crumb a{color:var(--ink-muted);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.ms-crumb [aria-current=page]{color:var(--ink-subtle);text-overflow:ellipsis;white-space:nowrap;max-width:24em;overflow:hidden}.ms-ahead{padding:var(--space-6) 0 var(--space-5);border-bottom:1px solid var(--line)}.ms-ahead>*+*{margin-top:var(--space-4)}.ms-ahead__kicker{align-items:center;gap:var(--space-3);display:flex}.ms-ahead__updated{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-subtle);font-size:12px}.ms-ahead__title{letter-spacing:.01em;color:var(--ink);text-wrap:pretty;font-size:36px;font-weight:800;line-height:1.35}.ms-ahead__lead{letter-spacing:.02em;color:var(--ink-muted);font-size:17px;line-height:1.85}.ms-ahead__meta{align-items:center;gap:var(--space-3) var(--space-5);color:var(--ink-subtle);flex-wrap:wrap;font-size:13px;display:flex}.ms-ahead__author{color:var(--ink);align-items:center;gap:8px;font-weight:600;display:inline-flex}.ms-ahead__avatar{background:var(--surface-sunken);border:1px solid var(--line);width:28px;height:28px;color:var(--ink-muted);place-items:center;font-size:12px;font-weight:700;display:inline-grid}.ms-pr{align-items:flex-start;gap:var(--space-3);padding:10px var(--space-4);background:var(--pr-bg);color:var(--pr-ink);font-size:13px;line-height:1.7;display:flex}.ms-pr .ms-badge--pr{background:var(--surface-base);border-color:var(--pr-ink)}.ms-pr a{color:var(--pr-ink)}@media (width<=639px){.ms-ahead__title{font-size:26px;line-height:1.4}.ms-ahead__lead{font-size:16px}}.ms-summary{background:var(--brand-tint);border:1px solid var(--brand);padding:var(--space-5)}.ms-summary__head{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.ms-summary__tag{font-family:var(--font-mono);letter-spacing:.1em;color:var(--on-brand);background:var(--brand);padding:2px 8px;font-size:12px;font-weight:700}.ms-summary__title{font-size:17px;font-weight:800;line-height:1.5}.ms-summary ol{counter-reset:s;list-style:none}.ms-summary li{counter-increment:s;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px dashed var(--brand);grid-template-columns:28px 1fr;font-size:16px;font-weight:600;line-height:1.75;display:grid}.ms-summary li:first-child{border-top:0}.ms-summary li:before{content:counter(s);font-family:var(--font-mono);color:var(--brand-ink);border:1px solid var(--brand);background:var(--surface-base);place-items:center;width:28px;height:28px;font-size:14px;font-weight:700;line-height:1;display:grid}.ms-summary__foot{margin-top:var(--space-4);gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}@media (width<=639px){.ms-summary{padding:var(--space-4)}}.ms-cmp{position:relative}.ms-cmp__hint{color:var(--ink-subtle);margin-bottom:var(--space-2);justify-content:flex-end;align-items:center;gap:6px;font-size:12px;display:none}.ms-cmp__scroll{-webkit-overflow-scrolling:touch;border:1px solid var(--line);background:var(--surface-base);overflow-x:auto}.ms-cmp table{border-collapse:separate;border-spacing:0;letter-spacing:.02em;width:100%;min-width:760px;font-size:14px;line-height:1.65}.ms-cmp caption{caption-side:bottom;text-align:left;padding:var(--space-2) var(--space-3);color:var(--ink-subtle);background:var(--surface-base);border-top:1px solid var(--line);font-size:12px}.ms-cmp th,.ms-cmp td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;vertical-align:top;background:var(--surface-base)}.ms-cmp thead th{background:var(--surface-sunken);white-space:nowrap;border-bottom:2px solid var(--ink);font-size:13px;font-weight:700}.ms-cmp tbody tr:last-child>*{border-bottom:0}.ms-cmp tr>:last-child{border-right:0}.ms-cmp th[scope=row],.ms-cmp thead th:first-child{z-index:2;min-width:148px;box-shadow:var(--shadow-sticky-col);position:sticky;left:0}.ms-cmp th[scope=row]{font-size:15px;font-weight:700}.ms-cmp th[scope=row] small{color:var(--ink-subtle);font-size:12px;font-weight:400;display:block}.ms-cmp .is-price{background:var(--brand-tint)}.ms-cmp thead .is-price{background:var(--brand);color:var(--on-brand);border-bottom-color:var(--brand-hover)}.ms-cmp .ms-price{font-family:var(--font-mono);color:var(--brand-ink);font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:0;font-size:18px;font-weight:700}.ms-cmp .ms-price small{font-family:var(--font-sans);color:var(--ink-muted);margin-left:2px;font-size:11px;font-weight:400}.ms-yes,.ms-no,.ms-mid{align-items:center;gap:4px;font-weight:700;display:inline-flex}.ms-yes{color:var(--success-ink)}.ms-no{color:var(--danger-ink)}.ms-mid{color:var(--ink-muted)}@media (width<=1023px){.ms-cmp__hint{display:flex}}.ms-svc{background:var(--surface-base);border:1px solid var(--line);gap:var(--space-4) var(--space-5);padding:var(--space-5);grid-template-columns:120px 1fr;display:grid}.ms-svc__logo{border:1px solid var(--line);background:var(--surface-sunken);text-align:center;width:120px;height:120px;font-family:var(--font-mono);color:var(--ink-subtle);letter-spacing:.06em;place-items:center;font-size:11px;display:grid}.ms-svc__logo img{max-width:88px;max-height:88px}.ms-svc__body>*+*{margin-top:var(--space-3)}.ms-svc__top{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.ms-svc__name{font-size:20px;font-weight:800;line-height:1.4}.ms-svc__catch{color:var(--ink-muted);font-size:14px;line-height:1.7}.ms-svc__specs{border-top:1px solid var(--line);grid-template-columns:auto 1fr;gap:0;font-size:14px;line-height:1.65;display:grid}.ms-svc__specs dt,.ms-svc__specs dd{border-bottom:1px solid var(--line);margin:0;padding:10px 0}.ms-svc__specs dt{color:var(--ink-subtle);letter-spacing:.06em;padding-right:var(--space-5);white-space:nowrap;padding-top:12px;font-size:12px;font-weight:700}.ms-svc__price{font-family:var(--font-mono);color:var(--brand-ink);font-variant-numeric:tabular-nums;letter-spacing:0;font-size:22px;font-weight:700;line-height:1.2}.ms-svc__price small{font-family:var(--font-sans);color:var(--ink-muted);margin-left:4px;font-size:12px;font-weight:400}.ms-svc__specs,.ms-svc__actions,.ms-svc__fine{grid-column:1/-1}.ms-svc__actions{gap:var(--space-3);padding-top:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.ms-svc__fine{color:var(--ink-subtle);font-size:12px;line-height:1.6}.ms-svc--featured{border:2px solid var(--ink)}@media (width<=639px){.ms-svc{gap:var(--space-4);padding:var(--space-4);grid-template-columns:72px 1fr}.ms-svc__logo{width:72px;height:72px}.ms-svc__actions{grid-template-columns:1fr}}.ms-pc{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.ms-pc__box{padding:var(--space-5);border-top:3px solid}.ms-pc__box--pro{background:var(--success-bg);border-color:var(--success-ink)}.ms-pc__box--con{background:var(--danger-bg);border-color:var(--danger-ink)}.ms-pc__title{align-items:center;gap:8px;font-size:16px;font-weight:800;display:flex;margin-bottom:var(--space-3)!important}.ms-pc__box--pro .ms-pc__title{color:var(--success-ink)}.ms-pc__box--con .ms-pc__title{color:var(--danger-ink)}.ms-pc__title svg{width:20px;height:20px}.ms-pc ul{list-style:none}.ms-pc li{color:var(--ink);grid-template-columns:18px 1fr;gap:8px;padding:6px 0;font-size:15px;line-height:1.7;display:grid}.ms-pc li:before{font-family:var(--font-mono);font-weight:700;line-height:1.7}.ms-pc__box--pro li:before{content:"+";color:var(--success-ink)}.ms-pc__box--con li:before{content:"−";color:var(--danger-ink)}@media (width<=639px){.ms-pc{grid-template-columns:1fr}.ms-pc__box{padding:var(--space-4)}}.ms-toc{background:var(--surface-base);border:1px solid var(--line-strong)}.ms-toc>summary{justify-content:space-between;align-items:center;gap:var(--space-3);padding:14px var(--space-4);cursor:pointer;font-size:15px;font-weight:700;list-style:none;display:flex}.ms-toc>summary::-webkit-details-marker{display:none}.ms-toc__label{align-items:center;gap:10px;display:inline-flex}.ms-toc__label small{font-family:var(--font-mono);letter-spacing:.08em;color:var(--ink-subtle);font-size:11px;font-weight:600}.ms-toc__chev{width:18px;height:18px;transition:transform .2s}.ms-toc[open] .ms-toc__chev{transform:rotate(180deg)}.ms-toc nav{padding:0 var(--space-4) var(--space-4)}.ms-toc ol{counter-reset:t;border-top:1px solid var(--line);padding-top:var(--space-2);list-style:none}.ms-toc li{counter-increment:t}.ms-toc a{color:var(--ink);grid-template-columns:24px 1fr;gap:6px;padding:7px 0;font-size:14px;line-height:1.6;text-decoration:none;display:grid}.ms-toc a:before{content:counter(t, decimal-leading-zero);font-family:var(--font-mono);color:var(--ink-subtle);padding-top:3px;font-size:11px;font-weight:600}.ms-toc a:hover{text-decoration:underline}.ms-toc ol ol li{counter-increment:none}.ms-toc ol ol{counter-reset:none;border-top:0;padding:0 0 0 30px}.ms-toc ol ol a{color:var(--ink-muted);grid-template-columns:1fr;padding:4px 0;font-size:13px}.ms-toc ol ol a:before{content:none}.ms-toc a[aria-current=true]{color:var(--brand-ink);font-weight:700}.ms-toc a[aria-current=true]:before{color:var(--brand-ink)}.ms-toc--side{top:var(--space-5);border:0;border-left:1px solid var(--line);background:0 0;position:sticky}.ms-toc--side>summary{pointer-events:none;padding:0 0 var(--space-3) var(--space-4);font-size:13px}.ms-toc--side>summary .ms-toc__chev{display:none}.ms-toc--side nav{padding:0 0 0 var(--space-4)}.ms-toc--side a[aria-current=true]{box-shadow:-17px 0 0 -15px var(--brand)}.ms-cards{gap:var(--space-6) var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=1023px){.ms-cards{grid-template-columns:repeat(2,1fr)}}@media (width<=639px){.ms-cards{grid-template-columns:1fr}}.ms-card{gap:var(--space-3);flex-direction:column;display:flex;position:relative}.ms-card__thumb{aspect-ratio:1200/630;display:block;overflow:hidden}.ms-card__title{letter-spacing:.01em;font-size:17px;font-weight:700;line-height:1.55}.ms-card__title a{color:var(--ink);text-decoration:none}.ms-card__title a:after{content:"";position:absolute;inset:0}.ms-card:hover .ms-card__title a{text-decoration:underline}.ms-card__meta{align-items:center;gap:var(--space-3);display:flex}.ms-card__date{font-family:var(--font-mono);color:var(--ink-subtle);letter-spacing:.04em;font-size:12px}.ms-card__excerpt{color:var(--ink-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:14px;line-height:1.75;display:-webkit-box;overflow:hidden}.ms-card .ms-cat{z-index:1;position:relative}.ms-card--row{gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--line);flex-direction:row}.ms-card--row .ms-card__thumb{flex:none;width:168px}.ms-card--row .ms-card__body{gap:var(--space-2);flex-direction:column;display:flex}.ms-eye{aspect-ratio:1200/630;background:var(--cat-tools);width:100%;color:var(--ink-inverse);display:block;position:relative;overflow:hidden;container-type:inline-size}.ms-eye--programming{background:var(--cat-programming)}.ms-eye--ai{background:var(--cat-ai)}.ms-eye--language{background:var(--cat-language)}.ms-eye--career{background:var(--cat-career)}.ms-eye--tools{background:var(--cat-tools)}.ms-eye__inner{flex-direction:column;justify-content:space-between;padding:6.5cqw 6.5cqw 6cqw;display:flex;position:absolute;inset:0}.ms-eye__cat{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:2.6cqw;font-weight:700}.ms-eye__cat span{font-family:var(--font-sans);letter-spacing:.08em;margin-left:1.6cqw;font-weight:700}.ms-eye__title{letter-spacing:.01em;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:86%;font-size:6.4cqw;font-weight:800;line-height:1.32;display:-webkit-box;overflow:hidden}.ms-eye__foot{justify-content:space-between;align-items:center;display:flex}.ms-eye__brand{letter-spacing:-.01em;align-items:center;gap:1.4cqw;font-size:2.6cqw;font-weight:800;display:inline-flex}.ms-eye__brand svg{width:3.6cqw;height:3.6cqw}.ms-eye__brand rect{fill:var(--ink-inverse)}.ms-eye__stack{align-items:flex-end;gap:.8cqw;height:9cqw;display:flex;position:absolute;top:6.5cqw;right:6.5cqw}.ms-eye__stack i{background:var(--ink-inverse);opacity:.22;width:2.4cqw;display:block}.ms-eye__stack i:first-child{height:100%}.ms-eye__stack i:nth-child(2){opacity:.5;height:62%}.ms-eye__stack i:nth-child(3){height:100%}.ms-card .ms-eye__inner{padding:6cqw}.ms-card .ms-eye__title{max-width:90%;font-size:5.8cqw}.ms-card .ms-eye__cat,.ms-card .ms-eye__brand{font-size:3.6cqw}.ms-card .ms-eye__brand svg{width:4.6cqw;height:4.6cqw}.ms-pager ul{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;list-style:none;display:flex}.ms-pager a,.ms-pager span{min-width:44px;height:44px;font-family:var(--font-mono);color:var(--ink);border:1px solid var(--line);background:var(--surface-base);place-items:center;padding:0 12px;font-size:14px;font-weight:600;text-decoration:none;display:inline-grid}.ms-pager a:hover{border-color:var(--ink)}.ms-pager [aria-current=page]{background:var(--ink);color:var(--ink-inverse);border-color:var(--ink);border-radius:var(--radius-pill)}.ms-pager .ms-pager__gap{color:var(--ink-subtle);background:0 0;border:0;min-width:24px;padding:0}.ms-pager .ms-pager__step{font-family:var(--font-sans);letter-spacing:.04em;gap:6px;padding:0 16px;display:inline-flex}.ms-pager .ms-pager__step svg{width:16px;height:16px}.ms-pager [aria-disabled=true]{color:var(--ink-subtle);border-color:var(--line);background:var(--surface-sunken);cursor:not-allowed}@media (width<=639px){.ms-pager .ms-pager__num{display:none}.ms-pager .ms-pager__num[aria-current=page]{display:inline-grid}}.ms-footer{background:var(--surface-sunken);border-top:1px solid var(--line);margin-top:var(--space-8)}.ms-footer__main{gap:var(--space-6);padding:var(--space-7) 0;grid-template-columns:1.4fr 1fr 1fr 1fr;display:grid}.ms-footer__about>*+*{margin-top:var(--space-4)}.ms-footer__tagline{font-size:16px;font-weight:700}.ms-footer__about p{color:var(--ink-muted);font-size:14px;line-height:1.85}.ms-footer h2{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-subtle);margin-bottom:var(--space-4);text-transform:uppercase;font-size:12px;font-weight:700}.ms-footer h2 span{font-family:var(--font-sans);letter-spacing:.04em;margin-left:6px}.ms-footer__col ul{list-style:none}.ms-footer__col li+li{margin-top:10px}.ms-footer__col a{color:var(--ink);font-size:14px;text-decoration:none}.ms-footer__col a:hover{text-decoration:underline}.ms-footer__legal{border-top:1px solid var(--line);padding:var(--space-4) 0;justify-content:space-between;gap:var(--space-3);font-family:var(--font-mono);color:var(--ink-subtle);letter-spacing:.02em;flex-wrap:wrap;font-size:12px;display:flex}.ms-footer__legal a{color:var(--ink-subtle)}.ms-footer__disclosure{font-family:var(--font-sans)}@media (width<=1023px){.ms-footer__main{grid-template-columns:1fr 1fr}.ms-footer__about{grid-column:1/-1}}@media (width<=639px){.ms-footer__main{grid-template-columns:1fr}}.ms-article{grid-template-columns:minmax(0, var(--content)) var(--sidebar);gap:var(--space-7);justify-content:center;align-items:start;display:grid}.ms-article__side{top:var(--space-5);position:sticky}.ms-article__toc-sp{display:none}@media (width<=1023px){.ms-article{grid-template-columns:minmax(0,1fr)}.ms-article__side{display:none}.ms-article__toc-sp{display:block}}.ms-author{gap:var(--space-4);padding:var(--space-5);background:var(--surface-base);border:1px solid var(--line);grid-template-columns:56px 1fr;display:grid}.ms-author__img{background:var(--surface-sunken);border:1px solid var(--line);width:56px;height:56px;color:var(--ink-muted);place-items:center;font-weight:800;display:grid}.ms-author p{color:var(--ink-muted);font-size:14px;line-height:1.8}.ms-section-label{align-items:baseline;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:2px solid var(--ink);display:flex;margin-bottom:var(--space-5)!important}.ms-section-label b{font-size:20px;font-weight:800}.ms-section-label span{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-subtle);font-size:12px}:root{--cat-ai:#594e7a}:root.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-page:#0f1114;--surface-base:#171a1f;--surface-sunken:#1e2228;--surface-inverse:#eceef2;--ink:#eceef2;--ink-muted:#b4bac5;--ink-subtle:#9aa1ad;--ink-inverse:#14161a;--line:#2a2f37;--line-strong:#6b7280;--brand:#f07a55;--brand-hover:#f59b7d;--brand-ink:#ff9573;--brand-tint:#3a2119;--on-brand:#14161a;--focus:#7aa7ff;--success-bg:#12301f;--success-ink:#6fd39a;--danger-bg:#3a1a18;--danger-ink:#ff8a80;--info-bg:#172a45;--info-ink:#9ec2f5;--pr-bg:#3a3110;--pr-ink:#f3d67a;--cat-programming:#6cb8e6;--cat-ai:#b3abcf;--cat-language:#5fc4ae;--cat-career:#e0a262;--cat-tools:#a9b6c8;--shadow-header:0 1px 0 #2a2f37;--shadow-sticky-col:6px 0 8px -6px #0009;--shadow-raised:0 6px 20px #0006}:root.dark[data-site=ai-dougubako]{--brand:#4cc3cc;--brand-hover:#7bd6dc;--brand-ink:#6fd4db;--brand-tint:#10302f}@media (prefers-color-scheme:dark){:root:not(.light){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-page:#0f1114;--surface-base:#171a1f;--surface-sunken:#1e2228;--surface-inverse:#eceef2;--ink:#eceef2;--ink-muted:#b4bac5;--ink-subtle:#9aa1ad;--ink-inverse:#14161a;--line:#2a2f37;--line-strong:#6b7280;--brand:#f07a55;--brand-hover:#f59b7d;--brand-ink:#ff9573;--brand-tint:#3a2119;--on-brand:#14161a;--focus:#7aa7ff;--success-bg:#12301f;--success-ink:#6fd39a;--danger-bg:#3a1a18;--danger-ink:#ff8a80;--info-bg:#172a45;--info-ink:#9ec2f5;--pr-bg:#3a3110;--pr-ink:#f3d67a;--cat-programming:#6cb8e6;--cat-ai:#b3abcf;--cat-language:#5fc4ae;--cat-career:#e0a262;--cat-tools:#a9b6c8;--shadow-header:0 1px 0 #2a2f37;--shadow-sticky-col:6px 0 8px -6px #0009;--shadow-raised:0 6px 20px #0006}:root:not(.light)[data-site=ai-dougubako]{--brand:#4cc3cc;--brand-hover:#7bd6dc;--brand-ink:#6fd4db;--brand-tint:#10302f}}html{background:var(--surface-page);scroll-padding-top:calc(var(--header-h,121px) + var(--space-4))}.site-header{z-index:20;position:sticky;top:0}.site-header.is-scrolled{box-shadow:var(--shadow-header)}.ms-root .ms-article__side,.ms-toc--side{top:calc(var(--header-h,121px) + var(--space-5))}body{overflow-wrap:anywhere;line-break:strict;min-height:100vh;margin:0}main{outline:none;display:block}img{max-width:100%;height:auto}.site-skip{left:var(--space-4);z-index:10;padding:var(--space-2) var(--space-4);background:var(--surface-base);color:var(--ink);border:1px solid var(--ink);position:absolute;top:-100px}.site-skip:focus{top:var(--space-2)}.ms-root .ms-iconbtn{color:var(--ink)}.ms-root h4{margin:0}.ms-root .site-admin{min-height:36px;color:var(--ink);background:var(--surface-base);border:1px solid var(--line-strong);align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.ms-root .site-admin:hover{border-color:var(--ink)}.site-admin svg{width:16px;height:16px}.site-search{align-items:center;display:flex;position:relative}.site-search__icon{z-index:1;width:18px;height:18px;color:var(--ink-subtle);pointer-events:none;position:absolute;left:12px}.site-search__kbd{font-family:var(--font-mono);color:var(--ink-subtle);border:1px solid var(--line);pointer-events:none;padding:1px 6px;font-size:11px;position:absolute;right:10px}.site-search:focus-within .site-search__kbd{display:none}.ms-root .site-search-input{width:240px;min-height:40px;font:inherit;letter-spacing:.02em;color:var(--ink);background:var(--surface-page);border:1px solid var(--line-strong);border-radius:var(--radius-none);padding:0 48px 0 38px;font-size:14px}.ms-root .site-search-input:focus{border-color:var(--ink);background:var(--surface-base)}.ms-root .site-search-results{border-radius:var(--radius-none);width:360px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-raised);left:auto;right:0}.ms-root .site-search-result{border-radius:var(--radius-none)}:root{--emdash-search-bg:var(--surface-base);--emdash-search-text:var(--ink);--emdash-search-muted:var(--ink-subtle);--emdash-search-border:var(--line);--emdash-search-hover:var(--surface-sunken);--emdash-search-highlight:var(--brand-ink)}.site-search-link{display:none!important}@media (width<=639px){.site-search{display:none}.site-search-link{display:inline-flex!important}.ms-root .site-admin{padding:0 8px}}.theme-switcher{border:1px solid var(--line-strong);display:inline-flex}.theme-btn{width:36px;height:32px;color:var(--ink-subtle);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:inline-grid}.theme-btn+.theme-btn{border-left:1px solid var(--line)}.theme-btn svg{width:16px;height:16px}.theme-btn[aria-pressed=true]{color:var(--ink-inverse);background:var(--ink)}.ms-footer__legal{align-items:center}.page-crumb{padding-top:20px}.archive{padding-top:var(--space-5)}.archive-head{justify-content:space-between;align-items:end;gap:var(--space-4) var(--space-7);padding-bottom:var(--space-6);border-bottom:2px solid var(--ink);flex-wrap:wrap;margin-bottom:40px;display:flex}.ms-root .archive-head__label{margin-bottom:var(--space-2);font-family:var(--font-mono);letter-spacing:.12em;color:var(--ink-subtle);font-size:12px}.archive-head__title{font-size:32px;font-weight:800;line-height:1.35}.archive-head__desc{max-width:520px;color:var(--ink-muted);font-size:15px;line-height:1.85}.archive-pager{margin-top:56px}.ms-root .empty-note{padding:var(--space-5);background:var(--surface-base);border:1px solid var(--line);color:var(--ink-muted);font-size:15px}@media (width<=639px){.archive-head__title{font-size:26px}}.home-intro{background:var(--surface-base);border-bottom:1px solid var(--line);padding:var(--space-7) 0}.home-intro__inner{justify-content:space-between;align-items:flex-end;gap:var(--space-5) var(--space-7);flex-wrap:wrap;display:flex}.ms-root .home-intro__title{letter-spacing:-.01em;font-size:44px;font-weight:800;line-height:1.2}.home-intro__subtitle{margin-top:var(--space-1);color:var(--ink-subtle);letter-spacing:.01em;font-size:.72em;display:block}.ms-root .home-intro__about{max-width:46rem;margin-top:var(--space-5);color:var(--ink-muted);font-size:15px;line-height:1.85}.ms-root .home-intro__links{align-items:center;gap:var(--space-2) var(--space-5);margin-top:var(--space-3);flex-wrap:wrap;font-size:14px;display:flex}.ms-root .home-intro__rss{font-family:var(--font-mono);letter-spacing:.08em;color:var(--ink-muted);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.home-intro__rss svg{width:16px;height:16px}.home-section{margin-top:var(--space-7)}.ms-root .home-more{margin-top:var(--space-6);text-align:center}@media (width<=639px){.home-intro{padding:var(--space-6) 0}.ms-root .home-intro__title{font-size:30px}}.ms-cards .ms-card{padding:var(--space-4) var(--space-4) var(--space-5);background:var(--surface-base);border:1px solid var(--line)}.ms-cards .ms-card:hover{border-color:var(--ink)}.ms-root .cat-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));list-style:none;display:grid}.ms-root .cat-tile{align-items:flex-start;gap:var(--space-2);height:100%;padding:var(--space-5);background:var(--surface-base);border:1px solid var(--line);color:var(--ink);flex-direction:column;text-decoration:none;display:flex}.ms-root .cat-tile:hover{border-left-color:var(--ink);border-right-color:var(--ink);border-bottom-color:var(--ink)}.ms-root .cat-tile{border-top:4px solid var(--cat-tools)}.ms-root .cat-tile--programming{border-top-color:var(--cat-programming)}.ms-root .cat-tile--ai{border-top-color:var(--cat-ai)}.ms-root .cat-tile--language{border-top-color:var(--cat-language)}.ms-root .cat-tile--career{border-top-color:var(--cat-career)}.ms-root .cat-tile--tools{border-top-color:var(--cat-tools)}.ms-eye__cat.eye-cat{font-family:var(--font-sans);text-transform:none;letter-spacing:.06em}.cat-tile__name{font-size:17px;font-weight:700;line-height:1.55}.cat-tile:hover .cat-tile__name{text-decoration:underline}.cat-tile__desc{color:var(--ink-muted);font-size:14px;line-height:1.75}.cat-tile__count{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-subtle);margin-top:auto;font-size:12px}.article-main{min-width:0}.article-figure{margin-top:var(--space-5);border:1px solid var(--line)}.article-figure img{width:100%;display:block}.article-toc-sp{margin-top:var(--space-5)}.article-body{margin-top:var(--space-6)}.article-side{padding-top:var(--space-6)}.article-after{max-width:var(--content);margin-top:var(--space-7);gap:var(--space-5);display:grid}.ms-root .article-author__name{color:var(--ink);margin-bottom:var(--space-1);font-size:15px;font-weight:700}.article-related{margin-top:var(--space-8)}.ms-prose ol{padding-left:1.6em}.ms-prose li+li{margin-top:var(--space-1)}.ms-prose>h4{margin-top:var(--space-6);font-size:17px;font-weight:700}.ms-prose blockquote{padding:var(--space-4) var(--space-5);background:var(--surface-sunken);color:var(--ink-muted);margin:0}.ms-prose blockquote>*+*{margin-top:var(--space-3)}.ms-prose code{font-family:var(--font-mono);background:var(--surface-sunken);padding:.1em .35em;font-size:.9em}.ms-prose pre{padding:var(--space-4);background:var(--surface-sunken);border:1px solid var(--line);font-size:14px;line-height:1.7;overflow-x:auto}.ms-prose pre code{background:0 0;padding:0}.ms-prose hr{border:0;border-top:1px solid var(--line)}.ms-prose figure img,.ms-prose>img{border:1px solid var(--line);display:block}.ms-prose figcaption{margin-top:var(--space-2);color:var(--ink-subtle);font-size:12px}.ms-prose table:not(.ms-cmp table){border-collapse:collapse;background:var(--surface-base);width:100%;font-size:14px;line-height:1.65}.ms-prose table:not(.ms-cmp table) th,.ms-prose table:not(.ms-cmp table) td{padding:var(--space-3) var(--space-4);border:1px solid var(--line);text-align:left;vertical-align:top}.ms-prose table:not(.ms-cmp table) th{background:var(--surface-sunken)}.aff-cta{text-align:center}.ms-root .aff-cta__note,.aff-inline-pr{color:var(--ink-subtle);font-size:12px}.ms-root .aff-cta__note{margin-top:var(--space-2)}.aff-placeholder__note{color:var(--ink-subtle);font-size:12px;font-weight:400}.ms-root .aff-placeholder--button{background:var(--surface-sunken);color:var(--ink-muted);border-color:var(--line-strong);cursor:not-allowed}.cmp-pr{margin-left:var(--space-1);background:var(--pr-bg);color:var(--pr-ink);font-family:var(--font-mono);letter-spacing:.08em;border-radius:var(--radius-sm);padding:0 4px;font-size:11px}.ms-root .pc-wrap__title{margin-bottom:var(--space-3);font-size:17px;font-weight:700}.faq{background:var(--surface-base);border:1px solid var(--line)}.faq__item+.faq__item{border-top:1px solid var(--line)}.faq__item>summary{align-items:start;gap:var(--space-3);padding:var(--space-4);cursor:pointer;grid-template-columns:28px 1fr 18px;font-size:16px;font-weight:700;line-height:1.7;list-style:none;display:grid}.faq__item>summary::-webkit-details-marker{display:none}.faq__mark{width:28px;height:28px;font-family:var(--font-mono);color:var(--ink-inverse);background:var(--ink);place-items:center;font-size:14px;font-weight:700;line-height:1;display:grid}.faq__mark--a{color:var(--ink);background:var(--surface-sunken);border:1px solid var(--line)}.faq__chev{width:18px;height:18px;margin-top:5px;transition:transform .2s}.faq__item[open] .faq__chev{transform:rotate(180deg)}.faq__a{gap:var(--space-3);padding:0 var(--space-4) var(--space-4);grid-template-columns:28px 1fr;font-size:15px;line-height:1.85;display:grid}.research{padding:var(--space-4) var(--space-5);background:var(--surface-sunken);border:1px solid var(--line);font-size:14px;line-height:1.75}.ms-root .research>*+*{margin-top:var(--space-2)}.research__dates{font-weight:700}.research__dates time{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.research__label{margin-right:var(--space-2);color:var(--ink-subtle);font-size:12px;font-weight:700;display:inline-block}.research__note{color:var(--ink-subtle);font-size:12px}.preview-checks{padding:var(--space-3) 0;background:var(--pr-bg);color:var(--pr-ink);border-bottom:1px solid var(--line);font-size:14px;line-height:1.7}.preview-checks__title{font-weight:700}.preview-checks__tag{margin-right:var(--space-2);background:var(--surface-base);border:1px solid var(--pr-ink);font-family:var(--font-mono);letter-spacing:.08em;padding:1px 6px;font-size:12px}.ms-root .preview-checks ul{margin-top:var(--space-2);list-style:none}.preview-checks li+li{margin-top:var(--space-1)}.preview-checks strong{margin-right:var(--space-2)}.preview-checks__error strong{color:var(--danger-ink)}.search-form{gap:var(--space-3);max-width:var(--content);display:flex}.search-form__input{min-width:0;min-height:48px;padding:0 var(--space-4);font:inherit;color:var(--ink);background:var(--surface-base);border:1px solid var(--line-strong);border-radius:var(--radius-none);flex:1;font-size:16px}.search-form__input:focus{border-color:var(--ink)}.search-form__submit{flex:none}.ms-root .search-count{margin-top:var(--space-6);color:var(--ink-muted);font-size:14px}.ms-root .search-results{max-width:var(--content);margin-top:var(--space-3);border-top:1px solid var(--line);list-style:none}.search-results li{padding:var(--space-4) 0;border-bottom:1px solid var(--line)}.ms-root .search-results__title{color:var(--ink);font-size:17px;font-weight:700}.ms-root .search-results__snippet{margin-top:var(--space-1);color:var(--ink-muted);font-size:14px}.search-results mark{background:var(--brand-tint);color:var(--ink)}.fixed-page{max-width:var(--content);padding-top:var(--space-5)}.fixed-page__head{padding-bottom:var(--space-5);margin-bottom:var(--space-6);border-bottom:2px solid var(--ink)}.ms-root .not-found__lead{margin-top:var(--space-4);color:var(--ink-muted)}.ms-root .not-found__actions{gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.emdash-live-search-loading,.emdash-live-search-no-results{font-size:0!important}.emdash-live-search-loading:after,.emdash-live-search-no-results:after{color:var(--ink-subtle);font-size:13px}.emdash-live-search-loading:after{content:"検索中…"}.emdash-live-search-no-results:after{content:"該当する記事が見つかりません"}.contact-form{margin-top:var(--space-6);gap:var(--space-5);display:grid}.contact-form__hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact-field{gap:var(--space-2);display:grid}.contact-field>label{font-size:15px;font-weight:700}.contact-req{margin-left:var(--space-2);color:var(--danger-ink);background:var(--danger-bg);border-radius:var(--radius-sm);padding:1px 6px;font-size:11px;font-weight:700}.contact-field input[type=text],.contact-field input[type=email],.contact-field select,.contact-field textarea{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);font:inherit;color:var(--ink);background:var(--surface-base);border:1px solid var(--line-strong);border-radius:var(--radius-none);font-size:16px;line-height:1.7}.contact-field textarea{resize:vertical}.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{border-color:var(--ink)}.contact-field [aria-invalid=true]{border-color:var(--danger-ink)}.contact-field--check label{align-items:flex-start;gap:var(--space-2);cursor:pointer;font-size:15px;display:flex}.contact-field--check input{width:20px;height:20px;accent-color:var(--ink);margin:4px 0 0}.ms-root .contact-err,.ms-root .contact-form__alert{color:var(--danger-ink);font-size:14px}.ms-root .contact-form__alert{padding:var(--space-3) var(--space-4);background:var(--danger-bg)}.contact-form__submit{justify-self:start;min-width:200px}.contact-done{padding:var(--space-5);background:var(--success-bg);color:var(--ink)}.ms-root .contact-done>*+*{margin-top:var(--space-3)}.ms-root .contact-done__title{color:var(--success-ink);font-size:17px;font-weight:800}
