:root{--color-bg:#ffffff;--color-surface:#f6f8fa;--color-surface-strong:#eef1f5;--color-border:#e3e7ec;--color-border-strong:#ccd3db;--color-text:#16181d;--color-text-muted:#5b636e;--color-text-faint:#828b96;--color-accent:#0f5bd7;--color-accent-strong:#0a3f99;--color-accent-soft:#eaf2fe;--color-sub-accent:#0fa3a8;--color-sub-accent-soft:#e6f6f7;--color-code-bg:#f6f8fa;--font-sans:"Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP",
    "Yu Gothic", YuGothic, Meiryo, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Roboto Mono", "Noto Sans Mono", monospace;--font-size-base:16px;--line-height-base:1.85;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius:6px;--shadow-sm:0 1px 2px rgba(22, 24, 29, 0.06);--shadow-md:0 6px 20px rgba(22, 24, 29, 0.08);--content-max:1200px;--article-max:820px;--header-height:60px}*,*::before,*::after{box-sizing:border-box}html{font-size:var(--font-size-base);scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + var(--space-4));background:var(--color-bg)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important}}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:2px}img{max-width:100%;height:auto}.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;padding:var(--space-3)var(--space-4);background:var(--color-accent);color:#fff;border-radius:0 0 var(--radius)0}.skip-link:focus{left:0}.site-header{position:sticky;top:0;z-index:100;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.site-header__inner{max-width:var(--content-max);margin:0 auto;min-height:var(--header-height);padding:0 var(--space-4);display:flex;align-items:center;gap:var(--space-5)}.site-logo{display:flex;align-items:center;gap:var(--space-2);font-weight:700;font-size:1.02rem;letter-spacing:.01em;color:var(--color-text);white-space:nowrap}.site-logo:hover{text-decoration:none;color:var(--color-accent)}.site-logo img{width:26px;height:26px}.global-nav{margin-right:auto}.global-nav ul{display:flex;gap:var(--space-5);list-style:none;margin:0;padding:0}.global-nav a{display:inline-block;padding:var(--space-3)0;color:var(--color-text);font-size:.92rem;border-bottom:2px solid transparent}.global-nav a:hover,.global-nav a[aria-current=page]{color:var(--color-accent);border-bottom-color:var(--color-accent);text-decoration:none}.header-actions{display:flex;align-items:center;gap:var(--space-2)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:7px var(--space-4);font-size:.84rem;font-weight:700;border-radius:var(--radius);white-space:nowrap;border:1px solid transparent}.btn:hover{text-decoration:none}.btn--outline{border-color:var(--color-border-strong);color:var(--color-text);background:var(--color-bg)}.btn--outline:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn--accent{background:var(--color-sub-accent);color:#fff}.btn--accent:hover{background:#0c8d91;color:#fff}.nav-toggle{display:none;background:0 0;border:1px solid var(--color-border-strong);border-radius:var(--radius);color:var(--color-text);padding:var(--space-2)var(--space-3);font-size:.86rem;cursor:pointer}.breadcrumbs{background:var(--color-surface);border-bottom:1px solid var(--color-border);font-size:.8rem;color:var(--color-text-muted)}.breadcrumbs ol{max-width:var(--content-max);margin:0 auto;padding:var(--space-3)var(--space-4);list-style:none;display:flex;gap:var(--space-2);flex-wrap:wrap}.breadcrumbs li+li::before{content:"›";margin-right:var(--space-2);color:var(--color-text-faint)}.breadcrumbs a{color:var(--color-text-muted)}.breadcrumbs a:hover{color:var(--color-accent)}.layout{max-width:var(--content-max);margin:0 auto;padding:var(--space-6)var(--space-4)var(--space-8);display:grid;grid-template-columns:minmax(0,68%)minmax(0,32%);gap:var(--space-7);align-items:start}.layout--full{grid-template-columns:minmax(0,1fr)}.main-column{min-width:0}.sidebar{min-width:0;display:flex;flex-direction:column;gap:var(--space-5)}.card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);overflow:hidden}.card__title{margin:0;padding:var(--space-3)var(--space-4);font-size:.92rem;font-weight:700;color:var(--color-text);background:var(--color-surface);border-bottom:1px solid var(--color-border);border-left:3px solid var(--color-accent)}.card__body{padding:var(--space-4)}.mini-list{list-style:none;margin:0;padding:0}.mini-list li{display:grid;grid-template-columns:76px minmax(0,1fr);gap:var(--space-3);padding:var(--space-3)0;border-bottom:1px dotted var(--color-border)}.mini-list li:first-child{padding-top:0}.mini-list li:last-child{border-bottom:0;padding-bottom:0}.mini-list img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:4px;border:1px solid var(--color-border);background:var(--color-surface)}.mini-list__title{font-size:.87rem;line-height:1.55;color:var(--color-text)}.mini-list__title:hover{color:var(--color-accent)}.mini-list__date{display:block;font-size:.74rem;color:var(--color-text-faint);margin-top:var(--space-1)}.article{max-width:var(--article-max)}.article__eyebrow{display:flex;align-items:center;gap:var(--space-3);font-size:.8rem;color:var(--color-text-faint);margin-bottom:var(--space-3)}.article__title{font-size:2rem;line-height:1.45;margin:0 0 var(--space-4)}.article__meta{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;font-size:.84rem;color:var(--color-text-muted);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4)}.article__meta time{white-space:nowrap}.taxonomy-list{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0;padding:0}.tag-chip{display:inline-block;padding:3px var(--space-3);font-size:.78rem;line-height:1.6;border-radius:3px;background:var(--color-accent-soft);color:var(--color-accent-strong);border:1px solid transparent}.tag-chip:hover{border-color:var(--color-accent);text-decoration:none}.tag-chip--sub{background:var(--color-sub-accent-soft);color:#0a7276}.ai-notice{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-sub-accent);border-radius:var(--radius);padding:var(--space-3)var(--space-4);font-size:.88rem;color:var(--color-text-muted);margin:var(--space-5)0}.article__body h2{margin-top:var(--space-7);margin-bottom:var(--space-4);padding:0 0 var(--space-2)var(--space-3);border-left:4px solid var(--color-accent);border-bottom:1px solid var(--color-border);font-size:1.36rem;line-height:1.5}.article__body h3{margin-top:var(--space-6);margin-bottom:var(--space-3);font-size:1.1rem;color:var(--color-text)}.article__body p{margin:var(--space-4)0}.article__body ul,.article__body ol{padding-left:1.4em}.article__body li{margin:var(--space-2)0}.article__body blockquote{margin:var(--space-5)0;padding:var(--space-3)var(--space-4);border-left:3px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-muted)}.article__body :not(pre)>code{font-family:var(--font-mono);font-size:.87em;background:var(--color-surface-strong);padding:2px 5px;border-radius:3px}.article__body pre{overflow-x:auto;padding:var(--space-4);border-radius:var(--radius);background:var(--color-code-bg);border:1px solid var(--color-border);font-size:.87rem;line-height:1.65}.article__body pre code{font-family:var(--font-mono)}.table-scroll{overflow-x:auto;margin:var(--space-5)0;border:1px solid var(--color-border);border-radius:var(--radius)}.article__body table{border-collapse:collapse;width:100%;font-size:.91rem}.article__body th,.article__body td{border-bottom:1px solid var(--color-border);padding:var(--space-3)var(--space-4);text-align:left;vertical-align:top}.article__body thead th{background:var(--color-surface);white-space:nowrap;font-weight:700}.article__body tbody tr:last-child td{border-bottom:0}.article__body figure{margin:var(--space-5)0}.article__body figcaption{font-size:.82rem;color:var(--color-text-faint);margin-top:var(--space-2)}.featured-image{border-radius:var(--radius);border:1px solid var(--color-border);width:100%}.mermaid-figure{margin:var(--space-5)0}.mermaid{width:100%;overflow-x:auto;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-5)var(--space-4);text-align:center}.mermaid svg{max-width:100%;height:auto}.toc{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);padding:0;margin:var(--space-5)0;font-size:.91rem}.toc summary{cursor:pointer;font-weight:700;padding:var(--space-3)var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);border-left:3px solid var(--color-accent)}.toc nav{padding:var(--space-3)var(--space-5)}.toc ul{list-style:none;padding-left:var(--space-4);margin:0}.toc>nav>ul{padding-left:var(--space-3)}.toc li{margin:var(--space-2)0;position:relative}.toc>nav>ul>li::before{content:"";position:absolute;left:-12px;top:.72em;width:5px;height:5px;border-radius:50%;background:var(--color-accent)}.post-list{list-style:none;margin:0;padding:0;display:grid;gap:0}.post-card{display:grid;grid-template-columns:200px minmax(0,1fr);gap:var(--space-4);padding:var(--space-5)0;border-bottom:1px solid var(--color-border);background:var(--color-bg)}.post-card:first-child{padding-top:0}.post-card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius);border:1px solid var(--color-border)}.post-card__title{margin:0 0 var(--space-2);font-size:1.08rem;line-height:1.55}.post-card__title a{color:var(--color-text)}.post-card__title a:hover{color:var(--color-accent)}.post-card__summary{margin:0 0 var(--space-3);color:var(--color-text-muted);font-size:.9rem;line-height:1.75}.post-card__meta{font-size:.78rem;color:var(--color-text-faint);display:flex;gap:var(--space-4);flex-wrap:wrap}.popular-articles{border-top:1px solid var(--color-border);background:var(--color-bg);padding:var(--space-7)var(--space-4)var(--space-8)}.popular-articles__inner{max-width:var(--content-max);margin:0 auto}.section-heading{font-size:1.15rem;margin:0 0 var(--space-5);padding-left:var(--space-3);border-left:4px solid var(--color-accent)}.popular-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--space-5)}.popular-list li{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;position:relative}.popular-list img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-bottom:1px solid var(--color-border)}.popular-list__body{padding:var(--space-3)var(--space-4)var(--space-4)}.popular-list__rank{position:absolute;top:0;left:0;min-width:30px;padding:2px 9px;font-size:.8rem;font-weight:700;color:#fff;background:var(--color-accent);border-bottom-right-radius:var(--radius)}.popular-list__link{font-size:.93rem;line-height:1.6;color:var(--color-text);font-weight:700}.popular-list__link:hover{color:var(--color-accent)}.popular-list__meta{display:block;font-size:.76rem;color:var(--color-text-faint);margin-top:var(--space-2)}.note-text{font-size:.78rem;color:var(--color-text-faint);margin-top:var(--space-4)}.site-footer{border-top:1px solid var(--color-border);background:var(--color-surface);padding:var(--space-7)var(--space-4)var(--space-5);color:var(--color-text-muted);font-size:.87rem}.site-footer__inner{max-width:var(--content-max);margin:0 auto;display:flex;flex-wrap:wrap;gap:var(--space-7);justify-content:space-between}.site-footer__brand{max-width:560px}.site-footer__brand p{margin:0 0 var(--space-3)}.site-footer__name{color:var(--color-text);font-weight:700;font-size:1rem}.site-footer nav ul{list-style:none;display:grid;gap:var(--space-2);padding:0;margin:0}.site-footer nav a{color:var(--color-text-muted)}.site-footer nav a:hover{color:var(--color-accent)}.site-footer__copyright{max-width:var(--content-max);margin:var(--space-6)auto 0;padding-top:var(--space-4);border-top:1px solid var(--color-border);font-size:.78rem;color:var(--color-text-faint)}.pagination{display:flex;gap:var(--space-2);list-style:none;padding:0;margin:var(--space-6)0 0;flex-wrap:wrap}.pagination .page-item a{display:inline-block;padding:var(--space-2)var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.88rem}.pagination .page-item a:hover{border-color:var(--color-accent);color:var(--color-accent);text-decoration:none}.pagination .page-item.active a{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.page-header{margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.page-header h1{margin:0 0 var(--space-2);font-size:1.65rem;line-height:1.5}.page-header p{margin:0;color:var(--color-text-muted);font-size:.92rem}.subsection-heading{font-size:1.1rem;margin:var(--space-6)0 var(--space-4);padding-left:var(--space-3);border-left:4px solid var(--color-accent)}@media(max-width:1024px){.layout{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}.article{max-width:none}.global-nav ul{gap:var(--space-4)}.header-actions .btn--outline{display:none}}@media(max-width:820px){:root{--font-size-base:15.5px}.nav-toggle{display:inline-block;order:2}.header-actions{order:3}.global-nav{display:none;width:100%;order:4;margin-right:0}.global-nav.is-open{display:block}.site-header__inner{flex-wrap:wrap;gap:var(--space-3);padding-top:var(--space-2);padding-bottom:var(--space-2)}.site-logo{margin-right:auto}.global-nav ul{flex-direction:column;gap:0;border-top:1px solid var(--color-border)}.global-nav a{display:block;padding:var(--space-3)0;border-bottom:1px solid var(--color-border)}.post-card{grid-template-columns:minmax(0,1fr)}.article__title{font-size:1.5rem}.site-footer__inner{gap:var(--space-5)}}@media(max-width:520px){.mini-list li{grid-template-columns:64px minmax(0,1fr)}.article__meta{gap:var(--space-3)}}