:root { --bg:#fbfaf7; --text:#222; --sub:#6b6b6b; --line:#e3e0d8; --accent:#1f6f5c; }
@media (prefers-color-scheme: dark) { :root { --bg:#1b1c1e; --text:#e8e6e1; --sub:#a09d96; --line:#3a3a3d; --accent:#6cc2a8; } }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family:"Hiragino Sans","Noto Sans JP","Yu Gothic UI",sans-serif; line-height:1.9; font-size:17px; }
main, .site-header, .site-footer { max-width:720px; margin:0 auto; padding:0 16px; }
.site-header { padding-top:24px; padding-bottom:16px; border-bottom:1px solid var(--line); }
.site-header a { color:var(--text); text-decoration:none; font-weight:700; font-size:1.2rem; }
a { color:var(--accent); }
h1 { font-size:1.5rem; line-height:1.5; margin:32px 0 8px; }
h2 { font-size:1.2rem; margin:40px 0 12px; padding-bottom:4px; border-bottom:2px solid var(--line); }
.date { color:var(--sub); font-size:.9rem; }
table { border-collapse:collapse; width:100%; display:block; overflow-x:auto; }
th, td { border:1px solid var(--line); padding:6px 10px; }
blockquote { margin:16px 0; padding:4px 16px; border-left:4px solid var(--line); color:var(--sub); }
.list { list-style:none; padding:0; }
.list li { padding:20px 0; border-bottom:1px solid var(--line); }
.list a { font-weight:700; text-decoration:none; }
.list p { margin:4px 0 0; color:var(--sub); font-size:.95rem; }
.site-footer { margin-top:64px; padding-top:16px; padding-bottom:32px; border-top:1px solid var(--line); color:var(--sub); font-size:.85rem; }
