:root { --ink:#1f2a33; --soft:#5b6873; --line:#d9e0e5; --bg:#f6f8f9; --card:#fff; --accent:#3d6f8e; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --ink:#e4e9ed; --soft:#a3afb8; --line:#33404a; --bg:#151b20; --card:#1e262d; --accent:#8cbcd8; }
}
:root[data-theme="dark"] { --ink:#e4e9ed; --soft:#a3afb8; --line:#33404a; --bg:#151b20; --card:#1e262d; --accent:#8cbcd8; }
* { box-sizing:border-box; }
body { margin:0; font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; color:var(--ink);
       background:var(--bg); line-height:1.55; font-size:17px; }
header, main, footer { max-width:880px; margin:0 auto; padding:0 20px; }
header { display:flex; gap:16px; align-items:center; padding-top:40px; padding-bottom:8px; }
header img { border-radius:12px; }
h1 { margin:0; font-size:2.2rem; letter-spacing:.01em; }
.tag { margin:0; color:var(--soft); }
h2 { font-size:1.3rem; margin:0 0 12px; }
section { margin:28px 0; }
.lead { font-size:1.25rem; }
.contact { background:var(--card); border:1px solid var(--line); border-left:5px solid var(--accent);
           border-radius:10px; padding:22px 24px; }
.mail { font-size:1.35rem; margin:0 0 12px; word-break:break-all; }
.mail a { color:var(--accent); font-weight:600; }
.contact ul { margin:6px 0 12px; padding-left:22px; }
.small { color:var(--soft); font-size:.92rem; margin:0; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:16px; }
figure { margin:0; background:var(--card); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
figure img { display:block; width:100%; height:auto; }
figcaption { padding:10px 14px; font-size:.95rem; color:var(--soft); }
a { color:var(--accent); }
.button { display:inline-block; margin-top:16px; padding:10px 18px; border:2px solid var(--accent);
          border-radius:8px; text-decoration:none; font-weight:600; }
footer { border-top:1px solid var(--line); padding-top:16px; padding-bottom:40px; color:var(--soft); font-size:.92rem; }
footer p { margin:4px 0; }
