:root{--color-bg:#fff;--color-bg-soft:#fafafa;--color-bg-section:#f5f5f5;--color-bg-deep:#1a1a1a;--color-text:#3a3a3a;--color-text-strong:#1a1a1a;--color-text-mute:#6b6b6b;--color-text-on-dark:#fff;--color-border:#1a1a1a;--color-border-light:#e5e5e5;--color-border-dark:#ffffff2e;--color-accent-green:#58c172;--color-accent-yellow:#e5bd22;--color-accent-red:#e03a3a;--color-link:#1a1a1a;--color-link-underline:#1a1a1a59;--color-focus:#1a1a1a;--tint-note:#f5f5f5;--tint-info:#eef5f0;--tint-tip:#fbf6e6;--tint-warning:#fdeeee;--font-sans:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "Meiryo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif:"Hiragino Mincho ProN", "ヒラギノ明朝 ProN", "Yu Mincho", "游明朝", "Noto Serif JP", "IPAex Mincho", serif;--font-en:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.125rem;--leading-tight:1.35;--leading-snug:1.55;--leading-normal:1.75;--leading-relaxed:1.9;--tracking-wide:.06em;--tracking-wider:.12em;--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-9:6rem;--radius-sm:2px;--radius-md:4px;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 4px 16px #00000014;--container:1200px;--container-narrow:760px;--prose-width:44rem;--sidebar-width:18rem;--header-h:64px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--space-6))}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overflow-wrap:anywhere;margin:0}img,picture,video,svg{max-width:100%;height:auto;display:block}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline);text-underline-offset:.18em;text-decoration-thickness:1px;transition:text-decoration-color .2s,opacity .2s}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}button{font:inherit;color:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-wide);color:var(--color-text-strong);margin:0}p{margin:0}ul,ol{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}code,kbd,pre{font-family:var(--font-mono);font-size:.9em}hr{border:0;border-top:1px solid var(--color-border-light);margin:var(--space-6) 0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--space-4);z-index:100;padding:var(--space-2) var(--space-4);background:var(--color-bg);color:var(--color-text-strong);border:1px solid var(--color-border);position:absolute;top:-100px}.skip-link:focus{top:var(--space-4)}.container{width:100%;max-width:var(--container);padding:0 var(--space-4);margin:0 auto}@media (width>=768px){.container{padding:0 var(--space-6)}}.container-narrow{max-width:var(--container-narrow)}.section{padding:var(--space-7) 0}.page-header{padding:var(--space-6) 0 var(--space-5);border-bottom:1px solid var(--color-border-light);margin-bottom:var(--space-6)}.page-header .eyebrow{font-family:var(--font-en);font-style:italic;font-size:var(--text-sm);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-mute);margin-bottom:var(--space-2)}.page-header h1{font-size:clamp(1.6rem, 3.2vw, var(--text-3xl))}.page-header .page-lead{margin-top:var(--space-3);max-width:var(--prose-width);color:var(--color-text)}.btn{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-strong);font-size:var(--text-sm);letter-spacing:var(--tracking-wide);cursor:pointer;border-radius:0;padding:.8rem 1.5rem;font-weight:500;line-height:1.2;text-decoration:none;transition:background-color .2s,color .2s;display:inline-flex}.btn:hover,.btn-primary{background:var(--color-text-strong);color:#fff}.btn-primary:hover{background:#000}.btn-sm{font-size:var(--text-xs);padding:.55rem 1rem}.chip{border:1px solid var(--color-border-light);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--color-text-mute);padding:.15rem .6rem;line-height:1.6;text-decoration:none;display:inline-block}a.chip:hover,.chip-strong{border-color:var(--color-border);color:var(--color-text-strong)}.meta{font-size:var(--text-sm);color:var(--color-text-mute)}.meta time{white-space:nowrap}.card-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));list-style:none;display:grid}.table-scroll{-webkit-overflow-scrolling:touch;margin:var(--space-5) 0;border:1px solid var(--color-border-light);overflow-x:auto}.table-scroll table{min-width:100%;margin:0}.notice{padding:var(--space-3) var(--space-4);background:var(--tint-warning);border-left:3px solid var(--color-accent-red);font-size:var(--text-sm);margin:var(--space-4) 0}.notice-info{background:var(--tint-note);border-left-color:var(--color-border)}.empty-state{padding:var(--space-7) var(--space-4);text-align:center;color:var(--color-text-mute);border:1px dashed var(--color-border-light)}.site-header{color:#fff;background:#0c0c0c;border-bottom:1px solid #ffffff14}.header-inner{height:var(--header-h);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.logo{color:#fff;align-items:center;text-decoration:none;display:inline-flex}.logo img{width:auto;height:40px;image-rendering:pixelated;image-rendering:crisp-edges}.global-nav ul{align-items:center;gap:var(--space-5);list-style:none;display:flex}.global-nav a{color:#fff;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);padding:var(--space-1) 0;text-decoration:none;position:relative}.global-nav a:after{content:"";background:#fff;height:1px;transition:transform .2s;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.global-nav a:hover:after,.global-nav a[aria-current=page]:after{transform:scaleX(1)}.nav-official{opacity:.75}.nav-toggle{cursor:pointer;background:0 0;border:0;width:44px;height:44px;padding:0;display:none;position:relative}.nav-toggle span{background:#fff;height:1.5px;transition:transform .2s,opacity .2s,top .2s;position:absolute;left:11px;right:11px}.nav-toggle span:first-child{top:15px}.nav-toggle span:nth-child(2){top:21px}.nav-toggle span:nth-child(3){top:27px}.nav-toggle[aria-expanded=true] span:first-child{top:21px;transform:rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){top:21px;transform:rotate(-45deg)}@media (width<=767px){.nav-toggle{display:block}.global-nav{left:0;right:0;top:var(--header-h);padding:var(--space-2) var(--space-4) var(--space-4);z-index:40;background:#0c0c0c;border-bottom:1px solid #ffffff1f;display:none;position:absolute}.global-nav.is-open{display:block}.global-nav ul{flex-direction:column;align-items:stretch;gap:0}.global-nav li{border-bottom:1px solid #ffffff1a}.global-nav a{padding:var(--space-3) 0;display:block}.global-nav a:after{display:none}.site-header{position:relative}}.site-footer{background:var(--color-bg-deep);color:var(--color-text-on-dark);padding:var(--space-8) 0 0;margin-top:var(--space-9)}.footer-inner{gap:var(--space-7);padding-bottom:var(--space-7);grid-template-columns:1.4fr 1fr 1fr;display:grid}@media (width<=767px){.footer-inner{gap:var(--space-6);grid-template-columns:1fr}}.footer-logo{width:auto;height:44px;margin-bottom:var(--space-4);image-rendering:pixelated;image-rendering:crisp-edges}.footer-desc{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:#ffffffc7;max-width:26rem;margin-bottom:var(--space-3)}.footer-address{font-size:var(--text-xs);color:#fff9}.footer-nav-title{font-family:var(--font-en);font-style:italic;font-weight:500;font-size:var(--text-xs);letter-spacing:.24em;text-transform:uppercase;color:#ffffffd9;margin:0 0 var(--space-4)}.footer-nav ul{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.footer-nav.footer-nav-inline ul{gap:var(--space-2) var(--space-4);flex-flow:wrap}.footer-nav a{color:#ffffffd9;font-size:var(--text-sm);text-decoration:none}.footer-nav a:hover{color:#fff;text-decoration:underline}.footer-bottom{border-top:1px solid var(--color-border-dark);padding:var(--space-5) 0}.footer-bottom small{text-align:center;font-family:var(--font-en);letter-spacing:.2em;color:#fff9;font-size:11px;font-style:italic;display:block}.breadcrumb{padding:var(--space-4) 0 0;font-size:var(--text-xs);color:var(--color-text-mute)}.breadcrumb ol{gap:var(--space-1) 0;flex-wrap:wrap;list-style:none;display:flex}.breadcrumb li{align-items:center;min-width:0;display:inline-flex}.breadcrumb li+li:before{content:"/";margin:0 var(--space-2);color:var(--color-border-light)}.breadcrumb a{color:var(--color-text-mute);text-decoration:none}.breadcrumb a:hover{color:var(--color-text-strong);text-decoration:underline}.breadcrumb [aria-current=page]{color:var(--color-text-strong);text-overflow:ellipsis;white-space:nowrap;max-width:60vw;overflow:hidden}.article-grid{gap:var(--space-7);margin-top:var(--space-5);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1024px){.article-grid{grid-template-columns:minmax(0, 1fr) var(--sidebar-width);gap:var(--space-8)}}.article-main{min-width:0;max-width:var(--prose-width)}.article-sidebar{min-width:0}.sidebar-sticky{top:var(--space-5);gap:var(--space-6);flex-direction:column;display:flex;position:sticky}@media (width<=1023px){.article-sidebar{display:none}}.pagination{justify-content:center;align-items:center;gap:var(--space-2);margin:var(--space-7) 0 0;flex-wrap:wrap;list-style:none;display:flex}.pagination a,.pagination span{min-width:2.5rem;height:2.5rem;padding:0 var(--space-3);border:1px solid var(--color-border-light);font-size:var(--text-sm);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.pagination a:hover{border-color:var(--color-border)}.pagination [aria-current=page]{background:var(--color-text-strong);color:#fff;border-color:var(--color-text-strong)}.prose{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text)}.prose>*+*{margin-top:1.4em}.prose h2{font-size:var(--text-xl);border-bottom:1px solid var(--color-border);scroll-margin-top:var(--space-5);margin-top:2.6em;padding-bottom:.45em}.prose h3{font-size:var(--text-lg);border-left:3px solid var(--color-border);scroll-margin-top:var(--space-5);margin-top:2.2em;padding-left:.7em}.prose h4{font-size:var(--text-base);scroll-margin-top:var(--space-5);margin-top:1.8em}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:1em}.prose p{margin-top:1.4em}.prose ul,.prose ol{padding-left:1.6em}.prose li+li,.prose li>ul,.prose li>ol{margin-top:.45em}.prose a{text-decoration:underline;text-decoration-color:var(--color-link-underline)}.prose strong{color:var(--color-text-strong);font-weight:700}.prose blockquote{border-left:3px solid var(--color-border-light);color:var(--color-text-mute);margin:1.6em 0;padding:.6em 1.2em}.prose blockquote p{margin-top:.6em}.prose blockquote p:first-child{margin-top:0}.prose blockquote cite{font-size:var(--text-sm);margin-top:.4em;font-style:normal;display:block}.prose img{margin:1.8em auto}.prose figure{margin:2em 0}.prose figure img{margin:0 auto}.prose figcaption,.figure figcaption{font-size:var(--text-sm);color:var(--color-text-mute);text-align:center;margin-top:.6em}.prose table{width:100%;font-size:var(--text-sm);line-height:var(--leading-normal)}.prose th,.prose td{border:1px solid var(--color-border-light);text-align:left;vertical-align:top;padding:.6em .8em}.prose th{background:var(--color-bg-section);color:var(--color-text-strong);white-space:nowrap;font-weight:600}.prose pre{border:1px solid var(--color-border-light);font-size:var(--text-sm);background:#f6f8fa;padding:1em 1.2em;line-height:1.6;overflow-x:auto}.prose :not(pre)>code{border-radius:var(--radius-sm);background:#f2f2f2;padding:.1em .4em;font-size:.9em}.prose hr{margin:2.5em 0}.prose .cite{vertical-align:super;font-size:.72em;line-height:0}.prose .cite a{color:var(--color-text-mute);text-decoration:none}.prose .cite a:hover{color:var(--color-text-strong)}.prose .callout,.prose .pros-cons,.prose .comparison,.prose .product-card,.prose .cta,.prose .definition,.prose .figure,.prose .table-scroll{margin-top:2em;margin-bottom:2em}.article-header{padding-top:var(--space-4)}.article-category{margin-bottom:var(--space-3);font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-mute);border-bottom:1px solid var(--color-border-light);padding-bottom:2px;text-decoration:none;display:inline-block}.article-category:hover{color:var(--color-text-strong);border-color:var(--color-border)}.article-title{font-size:clamp(1.55rem, 3.4vw, var(--text-3xl));margin:0 0 var(--space-4);line-height:1.45}.article-lead{font-size:var(--text-lg);line-height:var(--leading-normal);color:var(--color-text);margin-bottom:var(--space-4)}.article-meta{gap:var(--space-2) var(--space-4);padding:var(--space-3) 0;border-top:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light);font-size:var(--text-sm);color:var(--color-text-mute);flex-wrap:wrap;align-items:center;display:flex}.article-meta dt{font-weight:500;display:inline}.article-meta dd{margin:0;display:inline}.article-meta a{color:var(--color-text-strong)}.article-meta-item{align-items:center;gap:.35em;display:inline-flex}.evidence-badge{border:1px solid var(--color-border-light);font-size:var(--text-xs);color:var(--color-text);background:var(--color-bg-soft);align-items:center;gap:.35em;padding:.15rem .6rem;display:inline-flex}.evidence-badge:before{content:"";background:var(--color-accent-green);border-radius:50%;width:6px;height:6px}.article-hero{margin:var(--space-5) 0 0}.article-hero img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto}.article-hero figcaption{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-mute)}.affiliate-disclosure{margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-4);background:var(--color-bg-section);font-size:var(--text-sm);color:var(--color-text);border-left:3px solid var(--color-border)}.key-points{margin:var(--space-5) 0 0;padding:var(--space-4) var(--space-5);border:1px solid var(--color-border)}.key-points h2,.box-title{font-family:var(--font-sans);font-size:var(--text-sm);letter-spacing:var(--tracking-wider);margin:0 0 var(--space-3);border:0;padding:0;font-weight:600}.key-points ul{font-size:var(--text-sm);line-height:var(--leading-normal);padding-left:1.4em}.key-points li+li{margin-top:var(--space-2)}.toc ol{counter-reset:toc;list-style:none}.toc li{counter-increment:toc;font-size:var(--text-sm);line-height:var(--leading-snug)}.toc li+li{margin-top:var(--space-2)}.toc a{color:var(--color-text);text-indent:-1.8em;padding-left:1.8em;text-decoration:none;display:inline-block}.toc a:before{content:counter(toc) ".";text-indent:0;width:1.8em;font-family:var(--font-en);color:var(--color-text-mute);display:inline-block}.toc a:hover{color:var(--color-text-strong);text-decoration:underline}.toc ol ol{counter-reset:toc-sub;margin:var(--space-2) 0 0 1.2em}.toc ol ol li{counter-increment:toc-sub;font-size:var(--text-xs)}.toc ol ol a:before{content:counter(toc) "." counter(toc-sub)}.toc-extra a:before{content:"—"}.toc-inline{margin:var(--space-5) 0 0;border:1px solid var(--color-border-light);padding:0}.toc-inline summary{cursor:pointer;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);letter-spacing:var(--tracking-wider);justify-content:space-between;align-items:center;font-weight:600;list-style:none;display:flex}.toc-inline summary::-webkit-details-marker{display:none}.toc-inline summary:after{content:"+";font-family:var(--font-en);font-size:1.1rem}.toc-inline[open] summary:after{content:"−"}.toc-inline nav{padding:0 var(--space-4) var(--space-4)}@media (width>=1024px){.toc-inline{display:none}}.toc-sidebar{max-height:calc(100vh - var(--space-8));padding-right:var(--space-2);overflow-y:auto}.toc-title{font-size:var(--text-xs);letter-spacing:var(--tracking-wider);margin:0 0 var(--space-3);color:var(--color-text-mute);text-transform:uppercase;font-weight:600;font-family:var(--font-en);font-style:italic}.callout{padding:var(--space-4) var(--space-5);border-left:3px solid var(--color-border);background:var(--tint-note);font-size:var(--text-sm);line-height:var(--leading-normal)}.callout-info{background:var(--tint-info);border-left-color:var(--color-accent-green)}.callout-tip{background:var(--tint-tip);border-left-color:var(--color-accent-yellow)}.callout-warning,.callout-important{background:var(--tint-warning);border-left-color:var(--color-accent-red)}.callout-title{color:var(--color-text-strong);margin:0 0 var(--space-2);letter-spacing:var(--tracking-wide);font-weight:600}.callout-body>*+*{margin-top:.8em}.callout-body p{margin:0}.callout-body>*+p{margin-top:.8em}.definition{padding:var(--space-4) var(--space-5);border:1px solid var(--color-border-light);background:var(--color-bg-soft);margin:0}.definition dt{color:var(--color-text-strong);margin-bottom:var(--space-2);font-weight:700}.definition dd{font-size:var(--text-sm);margin:0}.definition dd p{margin:0}.pros-cons{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=640px){.pros-cons{grid-template-columns:1fr 1fr}}.pros-cons>div{border:1px solid var(--color-border-light);padding:var(--space-4)}.pros-cons-title{margin:0 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-light);color:var(--color-text-strong);font-weight:600}.pros .pros-cons-title:before,.cons .pros-cons-title:before{width:1.4em;font-weight:700;display:inline-block}.pros .pros-cons-title:before{content:"+";color:var(--color-accent-green)}.cons .pros-cons-title:before{content:"−";color:var(--color-accent-red)}.pros-cons ul{font-size:var(--text-sm);padding-left:1.3em}.pros-cons li+li{margin-top:var(--space-2)}.comparison{-webkit-overflow-scrolling:touch;border:1px solid var(--color-border-light);overflow-x:auto}.comparison:focus-visible{outline-offset:-2px}.comparison-table,.prose .comparison-table{width:max-content;min-width:100%;font-size:var(--text-sm);line-height:var(--leading-normal);table-layout:fixed}.comparison-table caption{text-align:left;padding:var(--space-3) var(--space-4);color:var(--color-text-strong);background:var(--color-bg-section);border-bottom:1px solid var(--color-border-light);font-weight:600}.comparison-table th,.comparison-table td,.prose .comparison-table th,.prose .comparison-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);border-right:1px solid var(--color-border-light);vertical-align:top;text-align:left;white-space:normal;overflow-wrap:anywhere;width:12rem;min-width:12rem}.comparison-table th:last-child,.comparison-table td:last-child{border-right:0}.comparison-table thead th,.prose .comparison-table thead th{background:var(--color-bg-section);color:var(--color-text-strong);vertical-align:bottom;white-space:normal;overflow-wrap:anywhere;font-weight:600}.comparison-table tbody th,.prose .comparison-table tbody th{background:var(--color-bg-soft);white-space:nowrap;z-index:1;width:6.5rem;min-width:6.5rem;box-shadow:1px 0 0 var(--color-border-light);font-weight:600;position:sticky;left:0}.comparison-table thead th.comparison-label,.prose .comparison-table thead th.comparison-label{z-index:2;white-space:nowrap;width:6.5rem;min-width:6.5rem;position:sticky;left:0}.comparison-table ul{padding-left:1.2em}.comparison-table img{object-fit:contain;background:#fff;width:120px;height:120px}.comparison-cta{gap:var(--space-2);flex-direction:column;align-items:flex-start;display:flex}.comparison-cta .aff-btn,.comparison-cta .btn{width:100%}.comparison-cta .aff-btn{flex-wrap:wrap;row-gap:.15rem}.comparison-noimage{color:var(--color-text-mute)}.price{color:var(--color-text-strong);font-weight:700;font-size:var(--text-base);display:block}.price-note,.price-checked{font-size:var(--text-xs);color:var(--color-text-mute);display:block}.rating{flex-direction:column;gap:2px;display:inline-flex}.rating-stars{line-height:0;display:inline-block}.rating-stars svg{width:100px;height:20px;display:inline-block}.rating-value{color:var(--color-text-strong);font-weight:700}.rating-basis{font-size:var(--text-xs);color:var(--color-text-mute)}.product-card{gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);grid-template-columns:1fr;display:grid}@media (width>=640px){.product-card{grid-template-columns:160px minmax(0,1fr)}}.product-card-media img,.product-card-media .product-noimage{object-fit:contain;border:1px solid var(--color-border-light);background:#fff;width:160px;height:160px}.product-card-media .product-noimage{color:var(--color-text-mute);font-size:var(--text-xs);justify-content:center;align-items:center;display:flex}.product-card-brand{font-size:var(--text-xs);color:var(--color-text-mute);letter-spacing:var(--tracking-wide)}.product-card-name{font-family:var(--font-sans);font-size:var(--text-lg);margin:var(--space-1) 0 var(--space-2);font-weight:700}.product-card-desc{font-size:var(--text-sm);margin:0 0 var(--space-3)}.product-card-features{font-size:var(--text-sm);margin-bottom:var(--space-3);padding-left:1.3em}.product-card-row{gap:var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:flex-start;display:flex}.product-card-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.product-best-for{font-size:var(--text-sm)}.product-best-for strong{color:var(--color-text-strong)}.aff-btn{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--color-border);background:var(--color-text-strong);color:#fff;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);padding:.85rem 1.4rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .2s;display:inline-flex}.aff-btn:hover{background:#000}.aff-btn-default{background:var(--color-bg);color:var(--color-text-strong)}.aff-btn-default:hover{background:var(--color-text-strong);color:#fff}.aff-btn-sm{font-size:var(--text-xs);padding:.55rem .9rem}.aff-btn-label{text-align:center;flex:auto}.aff-btn-pr{white-space:nowrap;opacity:.75;letter-spacing:.1em;flex:none;font-size:.65rem;font-weight:400}a[data-affiliate=true]:not(.aff-btn):after{content:"（PR）";color:var(--color-text-mute);margin-left:.2em;font-size:.75em}.cta{padding:var(--space-5);border:1px solid var(--color-border);background:var(--color-bg-soft);gap:var(--space-3);flex-direction:column;align-items:flex-start;display:flex}.cta-title{font-family:var(--font-sans);font-size:var(--text-lg);margin:0;font-weight:700}.cta-desc{font-size:var(--text-sm);margin:0}.figure{margin:0}.figure-source{margin-left:.4em}.faq{margin-top:var(--space-8)}.faq h2,.source-list h2,.changelog h2{font-size:var(--text-xl);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4);scroll-margin-top:var(--space-5);padding-bottom:.45em}.faq-item+.faq-item{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-light)}.faq-item h3{font-family:var(--font-sans);font-size:var(--text-base);margin:0 0 var(--space-2);text-indent:-1.6em;padding-left:1.6em;font-weight:700}.faq-item h3:before{content:"Q.";text-indent:0;width:1.6em;font-family:var(--font-en);color:var(--color-text-mute);display:inline-block}.faq-item p{font-size:var(--text-sm);padding-left:1.6em}.source-list{margin-top:var(--space-8)}.source-list ol{font-size:var(--text-sm);padding-left:1.6em}.source-list li+li{margin-top:var(--space-2)}.source-list li:target{background:var(--tint-tip)}.source-meta{color:var(--color-text-mute);font-size:var(--text-xs)}.source-note{color:var(--color-text-mute);font-size:var(--text-xs);display:block}.changelog{margin-top:var(--space-8)}.changelog ul{font-size:var(--text-sm);list-style:none}.changelog li{gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border-light);grid-template-columns:7rem 1fr;display:grid}.changelog time{color:var(--color-text-mute);font-family:var(--font-en)}.person-box{margin-top:var(--space-8);padding:var(--space-5);border:1px solid var(--color-border)}.box-label{font-size:var(--text-xs);letter-spacing:var(--tracking-wider);color:var(--color-text-mute);margin:0 0 var(--space-4);font-weight:600}.person-box-inner{gap:var(--space-4);grid-template-columns:72px minmax(0,1fr);display:grid}.person-avatar{object-fit:cover;border:1px solid var(--color-border-light);border-radius:50%;width:72px;height:72px}.person-avatar-fallback{background:var(--color-bg-deep);color:#fff;font-family:var(--font-serif);font-size:var(--text-xl);justify-content:center;align-items:center;display:flex}.person-name{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-strong);margin:0;font-weight:700}.person-name a{text-decoration:none}.person-name a:hover{text-decoration:underline}.person-role{font-size:var(--text-xs);color:var(--color-text-mute);margin-left:var(--space-2);font-weight:400}.person-summary{font-size:var(--text-sm);margin:var(--space-2) 0 0}.chip-list{gap:var(--space-1) var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;list-style:none;display:flex}.person-disclosure{font-size:var(--text-xs);color:var(--color-text-mute);margin-top:var(--space-3)}.person-links{gap:var(--space-3);font-size:var(--text-sm);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.related{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.related h2{font-size:var(--text-xl);margin-bottom:var(--space-5)}.related-compact h2{font-family:var(--font-en);font-style:italic;font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-mute);margin-bottom:var(--space-3)}.related-compact{border-top:0;margin-top:0;padding-top:0}.related-compact ul{gap:var(--space-3);flex-direction:column;list-style:none;display:flex}.related-compact a{font-size:var(--text-sm);line-height:var(--leading-snug);text-decoration:none;display:block}.related-compact a:hover{text-decoration:underline}.article-card{border:1px solid var(--color-border-light);background:var(--color-bg);flex-direction:column;height:100%;transition:border-color .2s;display:flex}.article-card:hover{border-color:var(--color-border)}.article-card-media{aspect-ratio:16/9;background:var(--color-bg-section);display:block;overflow:hidden}.article-card-media img{object-fit:cover;width:100%;height:100%}.article-card-placeholder{height:100%;color:var(--color-text-mute);font-family:var(--font-serif);letter-spacing:var(--tracking-wider);justify-content:center;align-items:center;display:flex}.article-card-body{gap:var(--space-2);padding:var(--space-4);flex-direction:column;flex:1;display:flex}.article-card-category{font-size:var(--text-xs);letter-spacing:var(--tracking-wider);color:var(--color-text-mute);text-transform:uppercase;text-decoration:none}.article-card-title{font-family:var(--font-sans);font-size:var(--text-base);font-weight:700;line-height:var(--leading-snug)}.article-card-title a{text-decoration:none}.article-card-title a:hover{text-decoration:underline}.article-card-desc{font-size:var(--text-sm);color:var(--color-text);-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.article-card .meta{font-size:var(--text-xs);margin-top:auto}.category-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));list-style:none;display:grid}.category-card{padding:var(--space-4) var(--space-5);border:1px solid var(--color-border-light);height:100%;text-decoration:none;transition:border-color .2s;display:block}.category-card:hover{border-color:var(--color-border)}.category-card-name{font-size:var(--text-lg);margin-bottom:var(--space-1)}.category-card-count{font-size:var(--text-xs);color:var(--color-text-mute);font-family:var(--font-en)}.category-card-desc{font-size:var(--text-sm);color:var(--color-text);margin-top:var(--space-2)}.profile-header{gap:var(--space-5);padding:var(--space-6) 0;border-bottom:1px solid var(--color-border-light);grid-template-columns:1fr;align-items:start;display:grid}@media (width>=640px){.profile-header{grid-template-columns:120px minmax(0,1fr)}}.profile-avatar{object-fit:cover;border:1px solid var(--color-border-light);border-radius:50%;width:120px;height:120px}.profile-name{font-size:var(--text-2xl)}.profile-role{color:var(--color-text-mute);font-size:var(--text-sm);margin-top:var(--space-1)}.profile-summary{margin-top:var(--space-3)}.profile-section{margin-top:var(--space-6)}.profile-section h2{font-size:var(--text-lg);margin-bottom:var(--space-3)}.profile-section ul{font-size:var(--text-sm);padding-left:1.4em}.profile-section li+li{margin-top:var(--space-1)}.status-banner{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--tint-tip);border:1px dashed var(--color-accent-yellow);font-size:var(--text-sm)}.error-page{padding:var(--space-9) 0;text-align:center}.error-page h1{font-size:var(--text-3xl)}.error-page .error-code{font-family:var(--font-en);font-style:italic;font-size:var(--text-sm);letter-spacing:var(--tracking-wider);color:var(--color-text-mute);margin-bottom:var(--space-3)}.error-page .error-links{justify-content:center;gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}
