:root{--background:#fcfaf7;--on-background:#423d38;--surface:#f3f4f6;--surface-soft:#edebe9;--surface-elevated:#fff;--on-surface:#423d38;--on-surface-muted:#797067;--outline:#e3e0dd;--outline-strong:#d1d5dc;--primary:#fe6e00;--primary-strong:#ff6b00;--primary-warm:#ffb74d;--primary-focus:#f97015;--primary-ink:#b04a00;--on-primary:#fff;--danger:#fb2c36;--danger-ink:#b1121b;--danger-soft:#ffe8e8;--primary-soft:#fff0e3;--status-neutral-bg:#f3f4f6;--status-neutral-fg:#364153;--shell-bg:#000000b3;--shell-border:#ffffff1a;--shell-blur:12px;--on-shell:#fff;--on-shell-muted:#ffffffb3;--font-sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:9999px;--shadow-subtle:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-raised:0 4px 12px #0000001f;--shell-header-height:64px;--container-max:1400px;--container-padding:32px;--list-max:960px;--read-max:760px;--motion-fast:.15s;--easing:cubic-bezier(.4, 0, .2, 1);color-scheme:light}@media (width<=640px){:root{--container-padding:16px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--shell-header-height) + 16px)}body{background:var(--background);min-height:100vh;color:var(--on-background);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overflow-wrap:break-word;margin:0;font-size:1rem;line-height:1.6}:lang(ja) body,body:lang(ja){line-break:strict;font-feature-settings:"palt" 0;line-height:1.85}a{color:var(--primary-ink);text-underline-offset:3px;transition:color var(--motion-fast) var(--easing);text-decoration-thickness:1px}a:hover{color:var(--primary)}:focus-visible{outline:2px solid var(--primary-focus);outline-offset:2px;border-radius:var(--radius-xs)}::selection{background:#fe6e0033}code{font-family:var(--font-mono);background:var(--surface-soft);color:var(--on-surface);border-radius:var(--radius-xs);overflow-wrap:anywhere;padding:.1em .4em;font-size:.875em}pre{font-family:var(--font-mono);background:var(--surface-soft);border:1px solid var(--outline);border-radius:var(--radius-md);padding:16px;font-size:.875rem;line-height:1.25rem;overflow-x:auto}pre code{overflow-wrap:normal;background:0 0;padding:0}.skip-link{z-index:100;background:var(--primary);color:var(--on-primary);border-radius:var(--radius-sm);padding:8px 14px;font-size:.875rem;font-weight:600;text-decoration:none;position:absolute;top:-100px;left:16px}.skip-link:focus{color:var(--on-primary);top:12px}header.site-header{z-index:50;height:var(--shell-header-height);background:var(--shell-bg);backdrop-filter:blur(var(--shell-blur)) saturate(140%);border-bottom:1px solid var(--shell-border);color:var(--on-shell);position:sticky;top:0}.shell-inner{max-width:var(--container-max);height:100%;padding:0 var(--container-padding);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;display:flex}.brand{color:var(--on-shell);letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;min-width:0;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.brand:hover{color:var(--on-shell)}.brand-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.brand-mark{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--primary) 0%, var(--primary-strong) 55%, var(--primary-warm) 100%);flex:none;place-items:center;width:24px;height:24px;display:grid;box-shadow:0 0 0 1px #ffffff1f,0 0 16px #fe6e0059}.brand-mark:after{content:"";background:#000;border-radius:2px;width:9px;height:9px}.brand-sub{letter-spacing:.05em;text-transform:uppercase;color:var(--on-shell-muted);border-left:1px solid var(--shell-border);margin-left:2px;padding-left:12px;font-size:.75rem;font-weight:600}.brand-sub:lang(ja){letter-spacing:.04em}.lang-switch{border-radius:var(--radius-md);border:1px solid var(--shell-border);background:#ffffff14;flex:none;align-items:center;gap:2px;padding:3px;display:inline-flex}.nav-item{border-radius:var(--radius-sm);letter-spacing:.02em;height:30px;color:var(--on-shell-muted);transition:background-color var(--motion-fast) var(--easing), color var(--motion-fast) var(--easing);align-items:center;padding:0 12px;font-size:.8125rem;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}a.nav-item:hover{color:var(--on-shell);background:#ffffff1f}.nav-item[aria-current=true]{background:var(--primary);color:var(--on-primary)}@media (width<=640px){.brand-sub{display:none}}@media (width<=360px){.shell-inner,.brand{gap:8px}.nav-item{padding:0 9px}}main{padding:40px var(--container-padding) 64px}@media (width<=640px){main{padding-top:24px;padding-bottom:48px}}.page{margin:0 auto}.page--list{max-width:var(--list-max)}.page--article{max-width:var(--read-max)}.label{letter-spacing:.05em;text-transform:uppercase;color:var(--on-surface-muted);margin:0;font-size:.75rem;font-weight:600;line-height:1rem;display:block}.label--signal{color:var(--primary-ink)}.badges{flex-wrap:wrap;gap:6px;margin:0;padding:0;display:flex}.badge{border-radius:var(--radius-pill);background:var(--status-neutral-bg);color:var(--status-neutral-fg);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:600;line-height:1rem;display:inline-flex}.badge--critical,.badge--major,.badge--minor{box-shadow:inset 0 0 0 1px;box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent)}.badge--critical:before,.badge--major:before,.badge--minor:before{content:"";border-radius:50%;flex:none;width:6px;height:6px}.badge--critical{background:var(--danger-soft);color:var(--danger-ink)}.badge--critical:before{background:var(--danger);box-shadow:0 0 0 3px #fb2c362e}.badge--major{background:var(--primary-soft);color:var(--primary-ink)}.badge--major:before{background:var(--primary)}.badge--minor{background:var(--status-neutral-bg);color:var(--status-neutral-fg)}.badge--minor:before{background:var(--on-surface-muted)}.meter{border-radius:var(--radius-xs);background:var(--surface-soft);height:6px;display:block;position:relative;overflow:hidden}.meter>span{border-radius:var(--radius-xs);background:#fe6e0099;position:absolute;inset:0 auto 0 0}.meter--critical>span{background:#fb2c36b3}.meter--minor>span{background:#79706773}.page-head{margin-bottom:24px}.page-head h1{letter-spacing:-.025em;color:var(--on-background);margin:8px 0;font-size:2rem;font-weight:700;line-height:2.5rem}.page-head h1:lang(ja){letter-spacing:0}.lede{max-width:60ch;color:var(--on-surface-muted);margin:0;font-size:1rem}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 32px;padding:0;list-style:none;display:grid}.stats>li{display:flex}.stat{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color var(--motion-fast) var(--easing), box-shadow var(--motion-fast) var(--easing);background:var(--surface-elevated);border:1px solid var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-subtle);padding:16px 20px;display:block}.stat-value{font-variant-numeric:tabular-nums;color:var(--on-surface);align-items:center;gap:8px;margin-top:6px;font-size:1.5rem;font-weight:700;line-height:2rem;display:flex}.stat-value:before{content:"";background:var(--outline-strong);border-radius:50%;width:8px;height:8px}.stat--total .stat-value:before{background:var(--primary)}.stat--critical .stat-value:before{background:var(--danger)}.stat--major .stat-value:before{background:var(--primary-warm)}.stat--minor .stat-value:before{background:var(--on-surface-muted)}.stat:hover{box-shadow:var(--shadow-raised);border-color:#fe6e0073}.stat[aria-pressed=true]{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary), var(--shadow-subtle)}.stat:focus-visible{outline:2px solid var(--primary-focus);outline-offset:2px}.stat:disabled{cursor:default;opacity:.6}.stat:disabled:hover{border-color:var(--outline);box-shadow:var(--shadow-subtle)}@media (width<=640px){.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px}.stat{padding:12px 16px}.page-head h1{font-size:1.75rem;line-height:2.25rem}}.section-head{border-bottom:1px solid var(--outline);justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 12px;padding-bottom:12px;display:flex}.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:16px;display:grid}.back-link{letter-spacing:.05em;text-transform:uppercase;color:var(--on-surface-muted);align-items:center;gap:6px;margin-bottom:20px;font-size:.75rem;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--primary-ink)}.article-head h1{letter-spacing:-.025em;color:var(--on-background);text-wrap:balance;margin:14px 0 20px;font-size:2rem;font-weight:700;line-height:2.5rem}.article-head h1:lang(ja){letter-spacing:0;line-height:1.45}.article-lede{max-width:65ch;color:var(--on-surface-muted);margin:-8px 0 20px;font-size:1.0625rem;line-height:1.7}@media (width<=640px){.article-head h1{font-size:1.5rem;line-height:2rem}}.meta{background:var(--outline);border:1px solid var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-subtle);grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:1px;margin:0 0 24px;display:grid;overflow:hidden}.meta>div{background:var(--surface-elevated);min-width:0;padding:14px 18px}.meta dt{margin-bottom:4px}.meta dd{color:var(--on-surface);font-variant-numeric:tabular-nums;margin:0;font-size:.875rem;font-weight:500;line-height:1.25rem}.meta .meter{margin-top:8px}.meta-tags{flex-wrap:wrap;gap:4px 10px;display:flex}.meta-tags span{color:var(--on-surface-muted);font-family:var(--font-mono);font-size:.8125rem}.briefs{gap:12px;margin:0 0 40px;display:grid}.brief{background:var(--surface-elevated);border:1px solid var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-subtle);padding:20px 24px}.brief h2{color:var(--primary-ink)}.brief p{color:var(--on-surface);margin:8px 0 0;font-size:.9375rem;line-height:1.6}.brief p:lang(ja){line-height:1.85}.brief--fix{border-left:3px solid var(--primary)}@media (width<=640px){.brief{padding:16px 18px}}.prose{color:var(--on-background);font-size:1rem;line-height:1.75}.prose:lang(ja){line-height:1.95}.prose>:first-child{margin-top:0}.prose h2{color:var(--on-background);align-items:center;gap:10px;margin:40px 0 12px;font-size:1.125rem;font-weight:700;line-height:1.75rem;display:flex}.prose h2:before{content:"";background:var(--primary);border-radius:2px;flex:none;width:4px;height:1.1em}.prose h3{margin:28px 0 8px;font-size:1rem;font-weight:700}.prose p{margin:0 0 1.1em}.prose ul,.prose ol{margin:0 0 1.1em;padding-left:1.4em}.prose li{margin:.3em 0}.prose li::marker{color:var(--primary)}.prose blockquote{border-left:3px solid var(--outline-strong);color:var(--on-surface-muted);margin:1.5em 0;padding:4px 0 4px 16px}.prose hr{border:0;border-top:1px solid var(--outline);margin:32px 0}.prose table{border-collapse:collapse;margin:0 0 1.5em;font-size:.875rem;display:block;overflow-x:auto}.prose th{color:var(--primary-ink);letter-spacing:.05em;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--outline);background:#fe6e000d;padding:12px 16px;font-size:.75rem}.prose td{border-bottom:1px solid var(--outline);color:var(--on-surface-muted);padding:8px}.prose img{border-radius:var(--radius-md);max-width:100%;height:auto}.related{background:var(--surface-elevated);border:1px solid var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-subtle);margin-top:48px;overflow:hidden}.related .label{border-bottom:1px solid var(--outline);color:var(--primary-ink);background:#fe6e000d;padding:14px 20px}.related ul{margin:0;padding:0;list-style:none}.related li+li{border-top:1px solid var(--outline)}.related a{color:var(--on-surface);transition:background-color var(--motion-fast) var(--easing), color var(--motion-fast) var(--easing);justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;font-size:.9375rem;font-weight:600;line-height:1.45;text-decoration:none;display:flex}.related a:after{content:"→";color:var(--on-surface-muted);transition:transform var(--motion-fast) var(--easing), color var(--motion-fast) var(--easing);flex:none}.related a:hover{background:var(--primary-soft);color:var(--primary-ink)}.related a:hover:after{color:var(--primary);transform:translate(3px)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}
