:root{
  --bg:#f5f7fa; --fg:#333; --card:#fff; --muted:#6b7280; --brand1:#3498db; --brand2:#9b59b6;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial; color:var(--fg); background:var(--bg)}
.wrap{max-width:960px;margin:auto;padding:24px}
.brand{display:inline-block;padding:6px 14px;border-radius:999px;color:#fff;background:linear-gradient(135deg,var(--brand1),var(--brand2));font-weight:700}
.h1{font-size:28px;margin:16px 0 8px}
.lead{color:var(--muted);margin:0 0 24px}
.nav{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}
.nav a{padding:10px 14px;border-radius:10px;background:var(--card);text-decoration:none;color:var(--fg);box-shadow:0 4px 16px rgba(0,0,0,.06)}
.card{background:var(--card);padding:20px;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.08);margin:16px 0}
footer{margin:32px 0 8px;color:var(--muted);font-size:14px;text-align:center}
.kbd{font:12px/1.2 ui-monospace,SFMono-Regular,Consolas,Monaco,monospace;background:#eef;padding:2px 6px;border-radius:6px}
ul.tick{padding-left:1.1em}
ul.tick li{margin:6px 0}

/* 2カラム＆CTA */
.layout-2col{display:grid;grid-template-columns:1fr 300px;gap:24px}
@media (max-width:980px){ .layout-2col{grid-template-columns:1fr} }
.aside-sticky{position:sticky;top:84px}
.cta-box{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;margin:16px 0}
.cta-box h3{margin:.2em 0 .6em}
.cta-btn{display:block;text-align:center;text-decoration:none;border-radius:8px;padding:10px 12px;color:#fff;background:linear-gradient(135deg,var(--brand1),var(--brand2))}
.badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;background:#eef;color:#345;margin-left:8px}
.badge-star{color:#f59e0b;margin-left:6px}
.tag{display:inline-block;background:#f1f5f9;border-radius:8px;padding:2px 8px;margin:2px 6px 0 0;font-size:12px}