:root,[data-theme=light]{color-scheme:light;--color-bg: #FFFFFF;--color-surface: #F6F8FA;--color-placeholder: #E6EBF1;--color-border: #D8DEE4;--color-border-strong: #C3CBD3;--color-text: #1F2328;--color-text-muted: #59636E;--color-accent: #0969DA;--color-on-accent: #FFFFFF;--color-active-bg: #DDF4FF;--color-avatar-bg: #DDF4FF;--color-avatar-fg: #0A3069;--color-inverse-bg: #1F2328;--color-inverse-text: #FFFFFF;--color-inverse-muted: #C9D1D9;--color-inverse-accent: #9FD0FF;--color-inverse-btn-bg: #FFFFFF;--color-inverse-btn-text: #1F2328;--color-code-bg: #F6F8FA;--color-code-text: #1F2328;--color-code-comment: #59636E;--color-code-keyword: #953800;--color-note-bg: #EEF6FF;--color-note-border: #B6D7FF}[data-theme=dark]{color-scheme:dark;--color-bg: #0E1116;--color-surface: #161B22;--color-placeholder: #1F2630;--color-border: #2A313A;--color-border-strong: #3A4450;--color-text: #E6EDF3;--color-text-muted: #9BA7B4;--color-accent: #58B4FF;--color-on-accent: #0E1116;--color-active-bg: #0C2D4A;--color-avatar-bg: #0C2D4A;--color-avatar-fg: #9FD0FF;--color-inverse-bg: #0B2238;--color-inverse-text: #E6EDF3;--color-inverse-muted: #B6C6D6;--color-inverse-accent: #58B4FF;--color-inverse-btn-bg: #58B4FF;--color-inverse-btn-text: #0E1116;--color-code-bg: #0A0D12;--color-code-text: #E6EDF3;--color-code-comment: #9BA7B4;--color-code-keyword: #FFA657;--color-note-bg: #0C1D30;--color-note-border: #1F4A78}:root{--font-sans: "M PLUS 1", system-ui, -apple-system, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;--font-mono: "M PLUS 1 Code", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-2xs: .75rem;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-md: .9375rem;--fs-base: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.25rem;--fs-2xl: 1.625rem;--fs-3xl: clamp(1.625rem, 1.2rem + 1.6vw, 1.875rem);--fs-4xl: clamp(1.75rem, 1.2rem + 2vw, 2.375rem);--fs-5xl: clamp(1.875rem, 1.2rem + 2.4vw, 2.5rem);--lh-tight: 1.45;--lh-heading: 1.6;--lh-body: 1.9;--lh-article: 2;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-14: 3.5rem;--space-16: 4rem;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--container-max: 1200px;--container-pad: 2rem;--article-max: 820px;--sidebar-min: 260px;--sidebar-top-min: 300px;--gap-columns: 3rem;--tap-target: 44px}@media (max-width: 768px){:root{--container-pad: 1rem}}:root{--space-s: clamp(1rem, .92rem + .39vw, 1.25rem);--space-m: clamp(1.5rem, 1.38rem + .58vw, 1.875rem);--space-l: clamp(2rem, 1.84rem + .78vw, 2.5rem)}.breadcrumb{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-5);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted)}.breadcrumb__current{min-width:0;color:var(--color-text);overflow-wrap:anywhere}.post-header{padding-block:var(--space-10) var(--space-8)}.post-header__text{display:flex;flex-direction:column;gap:var(--space-5);max-width:880px}.post-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.post-title{font-size:var(--fs-5xl);font-weight:700}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-5);font-size:var(--fs-xs);color:var(--color-text-muted)}.post-meta__author{display:flex;align-items:center;gap:10px}.post-meta__author-name{font-size:var(--fs-sm);font-weight:500;color:var(--color-text)}.post-eyecatch{display:block;width:100%;max-width:880px;height:auto;margin-top:var(--space-8);aspect-ratio:1200 / 630;object-fit:cover;background-color:var(--color-placeholder);border:1px solid var(--color-border);border-radius:var(--radius-xl)}.post-layout{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-14);padding-block:var(--space-4) var(--space-16)}.post-main{flex:999 1 640px;min-width:0;max-width:var(--article-max)}.post-aside{position:sticky;top:var(--space-4);order:1;display:flex;flex:1 1 var(--sidebar-min);flex-direction:column;gap:var(--space-6);min-width:0;max-height:calc(100vh - var(--space-8));overflow-y:auto}.post-aside__share{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-inline:var(--space-1)}.table-of-contents{padding:var(--space-6);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.toc-title{margin-bottom:14px}.toc-list{display:flex;flex-direction:column;gap:2px;list-style:none}.toc-item>.toc-list{margin-top:2px}.toc-link{display:block;padding:6px 10px;font-size:var(--fs-sm);line-height:var(--lh-heading);border-radius:var(--radius-sm)}.toc-link[data-level="3"]{padding-left:26px;color:var(--color-text-muted)}.toc-link[data-level="4"],.toc-link[data-level="5"],.toc-link[data-level="6"]{padding-left:42px;color:var(--color-text-muted)}.toc-link.active{font-weight:700;color:var(--color-accent);background-color:var(--color-active-bg)}.content{font-size:var(--fs-base);line-height:var(--lh-article);overflow-wrap:anywhere}.content :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:var(--space-6)}.content h2{margin:var(--space-12) 0 var(--space-4);padding-bottom:10px;font-size:var(--fs-2xl);line-height:1.5;border-bottom:1px solid var(--color-border)}.content h3{margin:var(--space-8) 0 var(--space-3);font-size:var(--fs-xl);line-height:1.5}.content h4,.content h5,.content h6{margin:var(--space-6) 0 var(--space-2);font-size:var(--fs-base);line-height:1.5}.content>:first-child{margin-top:0}.content p,.content ul,.content ol{margin-bottom:var(--space-6)}.content ul,.content ol{padding-left:1.4em}.content li>ul,.content li>ol{margin-bottom:0}.content img{max-width:100%;height:auto;margin-block:var(--space-2);border-radius:var(--radius-md)}.content figure{margin-bottom:var(--space-6)}.content figcaption{font-size:var(--fs-xs);color:var(--color-text-muted);text-align:center}.content a{color:var(--color-accent)}.content :not(pre)>code{padding:2px 6px;font-size:var(--fs-sm);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xs)}.table-scroll{margin-bottom:var(--space-6);overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.content table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);line-height:1.7}.content caption{padding:var(--space-3) var(--space-4);font-weight:700;text-align:left}.content th,.content td{padding:var(--space-3) var(--space-4);min-width:7em;text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border);overflow-wrap:normal}.content thead th,.content thead td{font-weight:700;background-color:var(--color-surface)}.content tbody tr:last-child>*{border-bottom:0}.code-block{margin-bottom:var(--space-6);overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md)}.code-block__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-4);font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--color-text-muted);background-color:var(--color-surface);border-bottom:1px solid var(--color-border)}.code-block__label{min-width:0;overflow-wrap:anywhere}.code-block__copy{flex:none;height:36px;padding-inline:var(--space-3);font-family:inherit;font-size:var(--fs-2xs);color:inherit;background:transparent;border:0;cursor:pointer}.content pre{padding:var(--space-4) var(--space-5);overflow-x:auto;font-size:var(--fs-sm);line-height:1.8;white-space:pre;overflow-wrap:normal;color:var(--color-code-text);background-color:var(--color-code-bg)}.content>pre{margin-bottom:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md)}.content pre.shiki{background-color:var(--color-code-bg)!important}[data-theme=dark] .content .shiki,[data-theme=dark] .content .shiki span{color:var(--shiki-dark)!important}.content .note{position:relative;margin-bottom:var(--space-6);padding:18px var(--space-5) 18px 54px;font-size:var(--fs-md);line-height:var(--lh-body);background-color:var(--color-note-bg);border:1px solid var(--color-note-border);border-radius:var(--radius-md)}.content .note:before{content:"";position:absolute;top:24px;left:var(--space-5);width:20px;height:20px;background-color:var(--color-accent);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8h.01M11 12h1v5h1'/%3E%3C/svg%3E") center / contain no-repeat}.content .note>:last-child{margin-bottom:0}.content blockquote{position:relative;margin:var(--space-l) 0;padding:calc(var(--space-m) + .2rem) var(--space-m) var(--space-m) calc(var(--space-l) + .5rem);border-left:.3rem solid var(--color-border-strong);border-radius:.75rem;background:var(--color-surface);color:var(--color-text-muted);overflow:hidden}.content blockquote:before{content:"“";position:absolute;top:-.9rem;left:.8rem;font-size:4.5rem;font-family:Times New Roman,serif;line-height:1;color:var(--color-border-strong);pointer-events:none}.content blockquote p,.content blockquote li{color:var(--color-text-muted)}.content blockquote p:last-child{margin-bottom:0}.content blockquote cite{display:block;margin-top:var(--space-s);font-size:.9rem;font-style:normal;font-weight:700;letter-spacing:.04em;color:var(--color-text-muted)}.content blockquote cite:before{content:"— "}.post-share{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:var(--space-8);padding-block:var(--space-6);border-block:1px solid var(--color-border)}.post-share__label{margin-right:var(--space-2);font-size:var(--fs-sm);color:var(--color-text-muted)}.share-button{min-height:var(--tap-target);padding:10px 14px;font-size:var(--fs-sm);line-height:1.4;color:var(--color-text);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.share-button--pill{padding-inline:var(--space-4);border-radius:var(--radius-pill)}.author-card{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-5);margin-top:var(--space-8);padding:var(--space-7);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl)}.author-card__body{display:flex;flex:1 1 300px;flex-direction:column;gap:6px;min-width:0;line-height:1.8}.author-card__label{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--color-text-muted)}.author-card__name{font-size:var(--fs-lg);font-weight:700}.author-card__bio{font-size:var(--fs-sm);color:var(--color-text-muted)}.author-card__link{font-size:var(--fs-sm);color:var(--color-accent)}.tag-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-5);margin-top:var(--space-6);padding:var(--space-7);border:1px solid var(--color-accent);border-radius:var(--radius-xl)}.tag-cta__text{display:flex;flex:1 1 380px;flex-direction:column;gap:var(--space-2);min-width:0;line-height:1.8}.tag-cta__label{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--color-accent)}.tag-cta__heading{font-size:var(--fs-lg);font-weight:700}.tag-cta__description{font-size:var(--fs-sm);color:var(--color-text-muted)}.tag-cta__actions{display:flex;flex-wrap:wrap;gap:10px}.post-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:var(--space-4);margin-top:var(--space-8);line-height:1.7}.post-nav__link{display:flex;flex-direction:column;gap:6px;padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.post-nav__link:hover{text-decoration:none}.post-nav__link:hover .post-nav__title{text-decoration:underline}.post-nav__link--next{text-align:right}.post-nav__label{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--color-text-muted)}.post-nav__title{font-size:var(--fs-md);font-weight:500}.related__heading{margin-bottom:var(--space-6);font-size:1.5rem;font-weight:700}.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:var(--space-5)}.related-card{display:flex;flex-direction:column;overflow:hidden;background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.related-card:hover{text-decoration:none}.related-card:hover .related-card__title{text-decoration:underline}.related-card__media{aspect-ratio:1200 / 630;background-color:var(--color-placeholder)}.related-card__media img{display:block;width:100%;height:100%;object-fit:cover}.related-card__body{display:flex;flex-direction:column;gap:var(--space-2);padding:18px}.related-card__tags{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--color-accent)}.related-card__title{font-size:var(--fs-base);font-weight:700;line-height:var(--lh-heading)}.related-card__meta{font-size:var(--fs-xs);color:var(--color-text-muted)}@media (max-width: 1024px){.post-layout{display:block}.post-main{max-width:none}.post-aside{position:static;max-height:none;margin-bottom:var(--space-8);overflow-y:visible}.post-aside__share{display:none}}@media (max-width: 768px){.content blockquote{padding:var(--space-m) var(--space-s) var(--space-s) calc(var(--space-m) + .6rem)}.content blockquote:before{top:-.65rem;left:.6rem;font-size:3.6rem}}
