:root{--fg:#111;--bg:#fff;--muted:#666;--border:#e5e7eb;--link:#0a66c2;--codebg:#f6f8fa;--maxw:980px }@media (prefers-color-scheme:dark){:root{--fg:#e5e7eb;--bg:#0b0f14;--muted:#9aa3b2;--border:#1f2937;--link:#60a5fa;--codebg:#0f172a }}*{box-sizing:border-box}body{margin:0;color:var(--fg);background:var(--bg);font:16px/1.8 system-ui,-apple-system,Segoe UI,Roboto,Noto Sans JP,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:var(--maxw);margin:0 auto;padding:18px}.hdr{position:sticky;top:0;border-bottom:1px solid var(--border);background:#fffc;-webkit-backdrop-filter:saturate(120%) blur(8px);backdrop-filter:saturate(120%) blur(8px)}@media (prefers-color-scheme:dark){.hdr{background:#0b0f14b3}}.hdr-row{display:flex;align-items:center;gap:14px}.brand{display:flex;align-items:center;gap:8px;font-weight:800}.nav{margin-left:auto;display:flex;gap:14px}.ftr{border-top:1px solid var(--border);margin-top:40px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:10px}.search{flex:1;display:flex;gap:8px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:8px 10px}.search input{flex:1;border:none;outline:none;background:transparent;color:inherit}.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 12px}@media (max-width:768px){.filters{grid-template-columns:1fr}}.filters details{border:1px solid var(--border);border-radius:10px;padding:8px 10px}.filters summary{cursor:pointer;font-weight:700}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;padding:6px 10px;-webkit-user-select:none;user-select:none;cursor:pointer}.chip input{appearance:none;width:14px;height:14px;border-radius:50%;border:1px solid var(--border)}.chip input:checked{background:currentColor;border-color:currentColor;box-shadow:0 0 0 3px #0a66c22e}.btn{appearance:none;border:1px solid var(--border);background:transparent;border-radius:10px;padding:8px 10px;cursor:pointer}.grid{display:grid;gap:14px;grid-template-columns:repeat(5,1fr)}@media (max-width:1200px){.grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:992px){.grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.grid{grid-template-columns:1fr}}.card{display:block;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--bg);transition:transform .12s ease}.card:hover{transform:translateY(-2px)}.card img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}.card .cap{padding:10px;font-weight:700;line-height:1.35}.meta{color:var(--muted);font-size:.92rem}article h1{font-size:2.1rem;line-height:1.35;margin:.2em 0 .4em}article h2{font-size:1.5rem;margin:2em 0 .7em}article h3{font-size:1.2rem;margin:1.6em 0 .6em}article p{margin:1em 0}article img{max-width:100%;height:auto;border-radius:6px}article pre{background:var(--codebg);padding:14px;overflow:auto;border-radius:8px;border:1px solid var(--border)}article code{background:var(--codebg);padding:.2em .35em;border-radius:4px}blockquote{border-left:3px solid var(--border);margin:1em 0;padding:.1em 1em;color:var(--muted)}ul,ol{padding-left:1.3em}.toc{border:1px solid var(--border);border-radius:12px;padding:14px;background:#00000005;margin:18px 0}@media (prefers-color-scheme:dark){.toc{background:#ffffff0a}}.toc h2{font-size:1rem;margin:0 0 .6em;color:var(--muted)}.toc ul{list-style:none;padding-left:.6em;margin:0}.toc li{margin:.35em 0}.toc .lv2{margin-left:.75em}.toc .lv3{margin-left:1.5em}.post-rail{display:flex;flex-wrap:wrap;gap:10px;border-top:1px solid var(--border);margin-top:28px;padding-top:16px}.post-rail a{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:10px;padding:8px 10px}.related{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}@media (max-width:768px){.related{grid-template-columns:1fr}}.rel-card{border:1px solid var(--border);border-radius:10px;overflow:hidden}.rel-card img{width:100%;display:block;aspect-ratio:16/10;object-fit:cover}.rel-card .cap{padding:8px 10px;font-weight:700}:target{scroll-margin-top:72px}
