:root{--primary:#2b4d6f;--accent:#e8883a;--bg:#faf8f3;--ink:#22272e;}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;color:var(--ink);background:var(--bg);line-height:1.85}
.wrap{max-width:760px;margin:0 auto;padding:0 18px}
.site-head{background:var(--primary);color:#fff;position:sticky;top:0;z-index:10;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;height:58px;max-width:980px}
.brand{color:#fff;text-decoration:none;font-weight:800;font-size:19px;letter-spacing:.02em}
.brand .emoji{margin-right:6px}
.nav a{color:#fff;text-decoration:none;margin-left:14px;font-size:14px;opacity:.92}
.nav a:hover{opacity:1;text-decoration:underline}
.hero{text-align:center;padding:54px 18px 30px}
.hero h1{font-size:30px;margin:0 0 8px}.hero p{color:#5a6470;margin:0}
.page-title{margin:28px 0 18px;border-left:6px solid var(--accent);padding-left:12px}
.home-sec{margin:34px auto;max-width:980px;padding:0 18px}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--primary);padding-bottom:6px;margin-bottom:16px}
.sec-head h2{margin:0;font-size:21px}.sec-head a{color:var(--accent);text-decoration:none;font-size:14px;font-weight:700}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;max-width:980px;margin:0 auto;padding:0 0}
.card{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid #ece7df;border-radius:12px;padding:14px;text-decoration:none;color:var(--ink);transition:transform .12s,box-shadow .12s}
.card:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(43,77,111,.13)}
.tag{align-self:flex-start;background:var(--accent);color:#fff;font-size:11px;font-weight:700;padding:2px 9px;border-radius:99px}
.card-title{font-weight:700;font-size:15px;line-height:1.5}.card-desc{color:#6b7480;font-size:12.5px}
.crumb{font-size:12.5px;color:#7a828c;margin:18px 0 8px}.crumb a{color:var(--primary);text-decoration:none}
.post h1{font-size:26px;line-height:1.4;margin:6px 0 10px}
.post .lead{color:#5a6470;font-size:15px;background:#fff;border-left:4px solid var(--accent);padding:12px 14px;border-radius:0 8px 8px 0}
.post-body{font-size:16.5px}
.post-body h2{font-size:21px;margin:38px 0 12px;padding:8px 0 8px 12px;border-left:6px solid var(--primary);background:linear-gradient(90deg,rgba(43,77,111,.06),transparent)}
.post-body h3{font-size:18px;margin:26px 0 8px;color:var(--primary)}
.post-body table{border-collapse:collapse;width:100%;margin:18px 0;font-size:14.5px;background:#fff;border-radius:8px;overflow:hidden}
.post-body th{background:var(--primary);color:#fff;padding:9px 11px;text-align:left}
.post-body td{border-top:1px solid #eee;padding:9px 11px}
.post-body blockquote{background:#fff7ef;border:1px solid #f3dcc2;border-left:5px solid var(--accent);border-radius:10px;padding:14px 16px;margin:24px 0}
.related{background:#fff;border:1px solid #ece7df;border-radius:12px;padding:16px 18px;margin:30px 0}
.related h2{margin:0 0 8px;font-size:16px}.related a{color:var(--primary)}
.site-foot{background:#222b36;color:#cfd6df;margin-top:54px;padding:26px 0;font-size:13px}
.site-foot .muted{color:#8c95a1}
@media(max-width:600px){.nav{display:none}.hero h1{font-size:25px}}
