:root { --bg:#fff; --fg:#22262b; --muted:#6a737d; --line:#e4e7eb; --accent:#2f5d8a; --chip:#f3f5f7; }
    @media (prefers-color-scheme: dark) {
      :root { --bg:#111418; --fg:#e4e7eb; --muted:#9aa3ad; --line:#2a3038; --accent:#7fb0e0; --chip:#1a1f25; }
    }
    * { box-sizing: border-box; }
    body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.65 'Source Sans 3',system-ui,sans-serif; }
    a { color:var(--accent); text-decoration:none; }
    a:hover { text-decoration:underline; }
    .page { max-width:980px; margin:0 auto; padding:40px 24px 64px; display:grid; grid-template-columns:240px 1fr; gap:56px; }
    aside { position:sticky; top:40px; align-self:start; }
    .photo { width:180px; height:180px; border-radius:10px; object-fit:cover; background:var(--chip); display:grid; place-items:center;
             font:600 56px 'Source Serif 4',serif; color:var(--muted); }
    h1 { font:600 1.7rem/1.2 'Source Serif 4',Georgia,serif; margin:18px 0 4px; }
    .title { color:var(--accent); font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
    .sub { color:var(--muted); font-size:.9rem; margin-top:4px; }
    .side-block { border-top:1px solid var(--line); margin-top:20px; padding-top:16px; font-size:.9rem; color:var(--muted); }
    .side-block div { margin:4px 0; }
    main p { margin:0 0 14px; }
    h2 { font-size:.75rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
         margin:40px 0 14px; padding-top:20px; border-top:1px solid var(--line); }
    h2:first-of-type { margin-top:8px; }
    ul.focus { margin:0; padding-left:18px; }
    ul.focus li { margin:6px 0; }
    .entry { display:grid; grid-template-columns:130px 1fr; gap:16px; margin-bottom:18px; }
    .when { color:var(--muted); font-size:.9rem; }
    .what strong { display:block; }
    .what span { color:var(--muted); font-size:.95rem; }
    .grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px; }
    .tile { border:1px solid var(--line); border-radius:10px; overflow:hidden; }
    .tile .img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--chip); }
    .tile .cap { padding:10px 12px; font-size:.92rem; }
    .tile .cap span { display:block; color:var(--muted); font-size:.82rem; }
    .chips { display:flex; flex-wrap:wrap; gap:8px; }
    .chips span { background:var(--chip); border:1px solid var(--line); border-radius:999px; padding:2px 12px; font-size:.85rem; }
    @media (max-width:760px) {
      .page { grid-template-columns:1fr; gap:24px; padding-top:24px; }
      aside { position:static; }
      .entry { grid-template-columns:1fr; gap:2px; }
    }

    .tile { display:block; color:inherit; }
    .tile:hover { border-color:var(--accent); text-decoration:none; }
    .back { font-size:.9rem; }
    .gallery { display:grid; gap:12px; margin:16px 0 24px; }
    .gallery img { width:100%; border-radius:8px; border:1px solid var(--line); }
    .meta { color:var(--muted); font-size:.9rem; margin:-6px 0 18px; }
    article h1 { margin-top:8px; }
    article ul { padding-left:18px; }
