:root{--bg: #f7f8fa;--surface: #ffffff;--surface-2: #eef1f5;--ink: #1b2230;--ink-soft: #3a4356;--muted: #5d6779;--line: #dde2ea;--line-strong: #c3cbd8;--accent: #1e4f8f;--accent-deep: #163a6b;--accent-soft: #e7eef7;--accent-tint: #f2f6fb;--shadow-sm: 0 1px 2px rgba(27, 34, 48, .04), 0 2px 8px rgba(27, 34, 48, .04);--shadow-md: 0 2px 4px rgba(27, 34, 48, .05), 0 10px 24px rgba(27, 34, 48, .07);--radius: 12px;--radius-sm: 8px;--font-display: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", sans-serif;--font-body: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif;--font-mono: "Roboto Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--wrap: 46rem}@media(prefers-color-scheme:dark){:root{--bg: #13161c;--surface: #1b2027;--surface-2: #222834;--ink: #e7eaf0;--ink-soft: #c9cfdb;--muted: #96a0b2;--line: #2e3542;--line-strong: #3e4757;--accent: #7fa9dd;--accent-deep: #a9c6e8;--accent-soft: #1e2a3b;--accent-tint: #19222e;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 2px 4px rgba(0, 0, 0, .3), 0 10px 24px rgba(0, 0, 0, .28)}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.95;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{max-width:100%;height:auto}a{color:var(--accent);text-underline-offset:.18em}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.container{max-width:var(--wrap);margin:0 auto;padding:0 20px}.container-wide{max-width:62rem;margin:0 auto;padding:0 20px}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}.site-header .inner{max-width:62rem;margin:0 auto;padding:12px 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 24px}.brand{display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:.01em}.brand .mark{width:26px;height:26px;flex:0 0 auto;border-radius:7px;background:var(--accent);display:grid;place-items:center}.brand .mark svg{width:15px;height:15px;display:block}.site-nav{display:flex;flex-wrap:wrap;gap:2px 4px;font-family:var(--font-display);font-size:13.5px;font-weight:500}.site-nav a{color:var(--muted);text-decoration:none;padding:5px 10px;border-radius:999px;transition:background-color .16s ease,color .16s ease}.site-nav a:hover{color:var(--accent-deep);background:var(--accent-soft)}.hero{padding:60px 0 8px}.hero .eyebrow{font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 14px}.hero h1{font-family:var(--font-display);font-weight:700;font-size:clamp(27px,5.4vw,40px);line-height:1.42;letter-spacing:.005em;margin:0 0 16px;text-wrap:balance}.hero h1 em{font-style:normal;color:var(--accent);background:linear-gradient(transparent 62%,var(--accent-soft) 62%)}.hero .lede{color:var(--ink-soft);font-size:15.5px;line-height:1.9;margin:0;max-width:34em}.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:30px 0 0;padding:0;list-style:none}.proof li{margin:0}.proof a{display:block;height:100%;padding:14px 16px 15px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.proof a:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.proof .label{display:block;font-size:11.5px;color:var(--muted);line-height:1.5;margin-bottom:3px}.proof .value{display:block;font-family:var(--font-display);font-weight:700;font-size:clamp(19px,3.6vw,25px);line-height:1.25;color:var(--accent);font-variant-numeric:tabular-nums}.proof .note{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:var(--muted);margin-top:4px}@media(max-width:560px){.proof{grid-template-columns:1fr;gap:8px}.proof a{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.proof .note{display:none}}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:64px 0 20px;padding-bottom:10px;border-bottom:2px solid var(--ink)}.section-head h2{font-family:var(--font-display);font-weight:700;font-size:20px;margin:0;letter-spacing:.01em}.section-head .count{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;color:var(--muted)}.post-list{list-style:none;padding:0;margin:0;display:grid;gap:14px}.post-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px 21px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.post-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.post-card .title{display:block;font-family:var(--font-display);font-weight:700;font-size:17.5px;line-height:1.6;color:var(--ink);text-decoration:none;margin:9px 0 0;text-wrap:pretty}.post-card:hover .title{color:var(--accent-deep)}.post-card .desc{margin:8px 0 0;font-size:13.5px;line-height:1.85;color:var(--muted)}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.05em;color:var(--muted);font-variant-numeric:tabular-nums}.chip{display:inline-block;font-family:var(--font-display);background:var(--accent-soft);color:var(--accent-deep);font-size:11.5px;font-weight:700;letter-spacing:.02em;padding:2px 11px;border-radius:999px;text-decoration:none;white-space:nowrap}a.chip:hover{background:var(--accent);color:var(--bg)}.cat-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media(max-width:560px){.cat-grid{grid-template-columns:1fr}}.cat-card{display:block;padding:18px 20px 19px;background:var(--surface-2);border:1px solid transparent;border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color .18s ease,background-color .18s ease}.cat-card:hover{border-color:var(--accent);background:var(--accent-tint)}.cat-card .num{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;color:var(--accent)}.cat-card .name{display:block;font-family:var(--font-display);font-weight:700;font-size:16px;margin:2px 0 5px}.cat-card .desc{margin:0;font-size:13px;line-height:1.8;color:var(--muted)}.breadcrumb{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;color:var(--muted);padding:26px 0 0;display:flex;flex-wrap:wrap;gap:6px}.breadcrumb a{color:var(--muted);text-decoration:none}.breadcrumb a:hover{color:var(--accent);text-decoration:underline}.article-header{padding:14px 0 0;margin-bottom:34px}.article-header h1{font-family:var(--font-display);font-weight:700;font-size:clamp(24px,5vw,33px);line-height:1.5;letter-spacing:.005em;margin:12px 0 14px;text-wrap:balance}.pr-badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px 12px 4px;margin:0 0 18px}.pr-badge strong{font-weight:700;color:var(--ink-soft);letter-spacing:.1em}.aff{margin:28px 0}.aff a,.prose .aff a{display:flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;background:var(--accent);color:#fff;font-family:var(--font-display);font-weight:700;font-size:15.5px;line-height:1.5;text-align:center;text-decoration:none;border-radius:999px;box-shadow:var(--shadow-sm);transition:background-color .16s ease,transform .16s ease,box-shadow .16s ease}.aff a:hover,.prose .aff a:hover{background:var(--accent-deep);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-md);text-decoration:none}@media(prefers-color-scheme:dark){.aff a,.prose .aff a{background:var(--accent);color:#101c2b}.aff a:hover,.prose .aff a:hover{background:var(--accent-deep);color:#101c2b}}.aff .aff-arrow{font-size:15px;opacity:.9}.aff .aff-note{margin:8px 0 0;font-size:12px;color:var(--muted);text-align:center}.aff img{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.points{background:var(--surface);border:2px solid var(--accent);border-radius:var(--radius);padding:20px 24px 22px;margin:0 0 28px}.points .points-title{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:13.5px;font-weight:700;color:var(--accent-deep);margin:0 0 12px}.points .points-title:before{content:"";width:16px;height:16px;flex:0 0 auto;border-radius:4px;background:var(--accent)}.points ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}.points li{position:relative;padding-left:26px;font-size:14.5px;line-height:1.8;font-weight:500;margin:0}.points li:before{content:"";position:absolute;left:7px;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--accent)}.toc{background:var(--surface-2);border-radius:var(--radius);padding:18px 22px 20px;margin:0 0 40px}.toc .toc-title{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}.toc ol{margin:0;padding:0;list-style:none;counter-reset:toc}.toc li{counter-increment:toc;position:relative;padding-left:26px;margin:0 0 6px;font-size:13.5px;line-height:1.7}.toc li:last-child{margin-bottom:0}.toc li:before{content:counter(toc,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--font-mono);font-size:10.5px;color:var(--accent);letter-spacing:.04em}.toc a{color:var(--ink-soft);text-decoration:none}.toc a:hover{color:var(--accent);text-decoration:underline}.prose{font-size:16px;line-height:2}.prose>p:first-of-type{font-size:17px;color:var(--ink-soft)}.prose h2{font-family:var(--font-display);font-weight:700;font-size:22px;line-height:1.55;letter-spacing:.01em;margin:64px 0 18px;padding-left:15px;border-left:4px solid var(--accent);text-wrap:balance}.prose h3{font-family:var(--font-display);font-weight:700;font-size:17.5px;line-height:1.6;margin:40px 0 12px;color:var(--ink)}.prose p{margin:0 0 22px}.prose ul,.prose ol{margin:0 0 22px;padding-left:1.4em}.prose li{margin-bottom:9px}.prose li::marker{color:var(--accent)}.prose strong{font-weight:700;background:linear-gradient(transparent 64%,var(--accent-soft) 64%);padding-bottom:1px}.prose a{color:var(--accent-deep);text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-decoration-thickness:1.5px}.prose a:hover{text-decoration-color:var(--accent)}.prose blockquote{position:relative;margin:0 0 26px;padding:20px 24px 21px;background:var(--accent-tint);border:1px solid var(--accent-soft);border-left:4px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:15px;line-height:1.92}.prose blockquote:before{content:"実 測";position:absolute;top:-9px;left:18px;font-family:var(--font-display);font-size:10.5px;font-weight:700;letter-spacing:.18em;color:var(--bg);background:var(--accent);padding:1px 9px 2px;border-radius:999px}.prose blockquote>*:first-child{margin-top:6px}.prose blockquote p:last-child{margin-bottom:0}.prose blockquote strong{background:linear-gradient(transparent 64%,color-mix(in srgb,var(--accent) 22%,transparent) 64%)}.prose .table-scroll,.prose table{margin:0 0 26px}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.prose table{border-collapse:collapse;width:100%;min-width:30rem;font-size:13.5px;line-height:1.7;font-variant-numeric:tabular-nums;margin:0}.prose thead th{font-family:var(--font-display);font-weight:700;text-align:left;background:var(--surface-2);color:var(--ink);padding:11px 16px;border-bottom:1px solid var(--line-strong);white-space:nowrap}.prose tbody td{padding:11px 16px;border-bottom:1px solid var(--line);vertical-align:top}.prose tbody tr:last-child td{border-bottom:none}.prose tbody tr:hover td{background:var(--accent-tint)}.prose hr{border:none;border-top:1px solid var(--line);margin:44px 0}.author-box{margin-top:56px;padding:22px 24px 23px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:flex;gap:16px;align-items:flex-start}.author-box .avatar{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:var(--accent);display:grid;place-items:center}.author-box .avatar svg{width:24px;height:24px}.author-box .name{font-family:var(--font-display);font-weight:700;font-size:14.5px;margin:0 0 3px}.author-box p{margin:0;font-size:13.5px;line-height:1.85;color:var(--muted)}.author-box .creds{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 0}.author-box .creds span{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;color:var(--accent-deep);background:var(--accent-soft);padding:2px 9px;border-radius:999px}.related{margin-top:56px}.related h2{font-family:var(--font-display);font-size:15px;font-weight:700;margin:0 0 14px;padding-bottom:9px;border-bottom:1px solid var(--line-strong)}.related ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.related a{display:block;padding:13px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);text-decoration:none;color:var(--ink);font-family:var(--font-display);font-weight:500;font-size:14px;line-height:1.65;transition:border-color .16s ease,background-color .16s ease}.related a:hover{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-deep)}.page-head{padding:46px 0 8px}.page-head h1{font-family:var(--font-display);font-weight:700;font-size:clamp(24px,5vw,32px);line-height:1.45;margin:0 0 10px}.page-head p{color:var(--muted);margin:0;font-size:14.5px}.empty-note{color:var(--muted);font-size:14px;padding:24px;background:var(--surface-2);border-radius:var(--radius-sm);text-align:center}.site-footer{margin-top:96px;padding:40px 0 52px;background:var(--surface-2);border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.site-footer .cols{display:flex;flex-wrap:wrap;gap:28px 56px;margin-bottom:28px}.site-footer .about{flex:1 1 16rem}.site-footer .about .brand{font-size:16px;margin-bottom:8px}.site-footer .about p{margin:0;line-height:1.85;font-size:12.5px}.site-footer nav{flex:0 1 auto}.site-footer .col-title{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 9px}.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:5px}.site-footer a{color:var(--muted);text-decoration:none;font-size:13px}.site-footer a:hover{color:var(--accent);text-decoration:underline}.site-footer .copy{font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;padding-top:20px;border-top:1px solid var(--line);margin:0}@media(max-width:600px){body{font-size:15.5px}.prose{font-size:15.5px;line-height:1.95}.prose h2{font-size:20px;margin-top:52px}.hero{padding-top:40px}.post-card{padding:17px 18px 18px}}
