:root { --fg:#222; --bg:#fff; --accent:#0a7cff; }
* { box-sizing: border-box; }
html, body { margin:0; padding:0; color:var(--fg); background:var(--bg); font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; line-height:1.7 }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
.container { max-width: 880px; margin: 0 auto; padding: 1.5rem; }
header, footer { border-bottom: 1px solid #eee; }
footer { border-top: 1px solid #eee; border-bottom:none; margin-top: 2rem; padding-top: 1rem; }
h1,h2,h3 { line-height:1.3; }
.hero { padding: 1rem 0; }
.badge { display:inline-block; padding:.2rem .5rem; border-radius:.4rem; background:#f2f6ff; color:#0a4cff; font-size:.8rem; margin-left:.5rem; }
.meta { color:#666; font-size:.9rem; }
button { appearance:none; border:1px solid #ddd; background:#fafafa; padding:.5rem .8rem; border-radius:.5rem; cursor:pointer; }
button:hover { background:#f2f2f2; }
img { max-width:100%; height:auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.alert { background:#fff6e5; border:1px solid #ffe1a6; padding:.8rem; border-radius:.5rem; }
.list { list-style: none; padding: 0; }
.list li { margin:.6rem 0; }
code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Noto Sans Mono CJK JP", monospace; }
