:root{--color-bg: #ffffff;--color-surface: #f6f7f9;--color-text: #1f2933;--color-text-muted: #52606d;--color-border: #e2e6ea;--color-accent: #1f4e79;--color-accent-hover: #16395a;--color-accent-soft: #eaf1f8;--font-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;--maxw: 760px;--maxw-wide: 1080px;--radius: 10px;--shadow-sm: 0 1px 2px rgba(31, 41, 51, .06);--shadow-md: 0 4px 16px rgba(31, 41, 51, .08)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);line-height:1.85;font-size:17px;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover);text-decoration:underline}h1,h2,h3,h4{line-height:1.4;font-weight:700;color:var(--color-text)}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:20px}.container-wide{width:100%;max-width:var(--maxw-wide);margin-inline:auto;padding-inline:20px}.site-header{border-bottom:1px solid var(--color-border);background:var(--color-bg)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px;flex-wrap:wrap}.site-header__brand{font-size:1.25rem;font-weight:800;color:var(--color-accent)}.site-header__brand:hover{text-decoration:none}.site-nav{display:flex;gap:18px;flex-wrap:wrap;font-size:.95rem}.site-nav a{color:var(--color-text-muted)}.site-footer{margin-top:64px;border-top:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font-size:.9rem}.site-footer__inner{padding-block:32px}.site-footer__links{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:14px}.affiliate-disclosure{background:var(--color-accent-soft);border:1px solid var(--color-border);border-radius:var(--radius);padding:14px 16px;font-size:.85rem;line-height:1.7;color:var(--color-text-muted);margin-bottom:20px}.hero{background:linear-gradient(180deg,var(--color-accent-soft),var(--color-bg));border-bottom:1px solid var(--color-border);padding-block:56px;text-align:center}.hero h1{font-size:clamp(1.7rem,5vw,2.6rem);margin:0 0 12px;color:var(--color-accent)}.hero p{font-size:clamp(1rem,2.5vw,1.15rem);color:var(--color-text-muted);margin:0 auto;max-width:620px}.section{margin-top:48px}.section__title{font-size:1.4rem;border-left:4px solid var(--color-accent);padding-left:12px;margin-bottom:20px}.cluster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.cluster-card{display:block;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,transform .15s ease}.cluster-card:hover{text-decoration:none;box-shadow:var(--shadow-md);transform:translateY(-2px)}.cluster-card__badge{display:inline-block;font-size:.75rem;font-weight:700;color:var(--color-accent);background:var(--color-accent-soft);border-radius:999px;padding:2px 10px;margin-bottom:10px}.cluster-card__name{font-size:1.1rem;margin:0 0 6px;color:var(--color-text)}.cluster-card__desc{font-size:.9rem;color:var(--color-text-muted);margin:0}.post-list{list-style:none;padding:0;margin:0;display:grid;gap:4px}.post-item{border-bottom:1px solid var(--color-border);padding-block:18px}.post-item__meta{display:flex;gap:12px;align-items:center;font-size:.82rem;color:var(--color-text-muted);margin-bottom:6px;flex-wrap:wrap}.post-item__cluster{font-weight:700;color:var(--color-accent);background:var(--color-accent-soft);border-radius:999px;padding:1px 10px}.post-item__title{font-size:1.15rem;margin:0 0 4px}.post-item__title a{color:var(--color-text)}.post-item__title a:hover{color:var(--color-accent)}.post-item__desc{font-size:.92rem;color:var(--color-text-muted);margin:0}.article-header{margin-top:32px;margin-bottom:8px}.article-header__meta{display:flex;gap:12px;align-items:center;font-size:.85rem;color:var(--color-text-muted);margin-bottom:12px;flex-wrap:wrap}.article-header h1{font-size:clamp(1.5rem,4.5vw,2.1rem);margin:0 0 10px}.article-header__desc{color:var(--color-text-muted);font-size:1.02rem;margin:0}.prose{margin-top:8px}.prose h2{font-size:1.5rem;margin-top:2.2em;margin-bottom:.6em;padding-bottom:.2em;border-bottom:1px solid var(--color-border);scroll-margin-top:16px}.prose h3{font-size:1.2rem;margin-top:1.8em;margin-bottom:.5em;scroll-margin-top:16px}.prose p{margin-block:1em}.prose ul,.prose ol{padding-left:1.4em;margin-block:1em}.prose li{margin-block:.4em}.prose blockquote{margin:1.4em 0;padding:4px 18px;border-left:4px solid var(--color-accent);background:var(--color-surface);color:var(--color-text-muted);border-radius:0 var(--radius) var(--radius) 0}.prose code{background:var(--color-surface);padding:2px 6px;border-radius:6px;font-size:.9em}.prose pre{background:#1f2933;color:#f0f4f8;padding:16px;border-radius:var(--radius);overflow-x:auto}.prose pre code{background:transparent;padding:0}.prose img{border-radius:var(--radius);margin-block:1.2em}.prose table{width:100%;border-collapse:collapse;margin-block:1.4em;font-size:.95rem}.prose th,.prose td{border:1px solid var(--color-border);padding:8px 12px;text-align:left}.prose th{background:var(--color-surface)}.prose a{text-decoration:underline}.toc{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px 20px;margin-block:28px}.toc__title{font-size:.95rem;font-weight:700;margin:0 0 8px;color:var(--color-text)}.toc ol{margin:0;padding-left:1.2em;font-size:.92rem}.toc li{margin-block:4px}.toc .toc--h3{margin-left:1em;list-style-type:circle}.toc a{color:var(--color-text-muted)}.tag-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px;padding-top:16px;border-top:1px solid var(--color-border)}.tag{font-size:.8rem;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:3px 12px}.btn{display:inline-block;background:var(--color-accent);color:#fff;border-radius:var(--radius);padding:10px 20px;font-weight:700;font-size:.95rem}.btn:hover{background:var(--color-accent-hover);color:#fff;text-decoration:none}.text-center{text-align:center}.page-head{margin-top:36px;margin-bottom:8px}.page-head h1{font-size:clamp(1.5rem,4.5vw,2rem);margin:0 0 8px}.page-head p{color:var(--color-text-muted);margin:0}@media(max-width:480px){body{font-size:16px}.hero{padding-block:40px}}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}
