  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  :root {
    --green-dark: #1a3a2a; --green-mid: #2d6a4f; --green-light: #52b788;
    --green-pale: #e8dfc8; --fairway: #d4c9a8;
    --ink: #1e1a14; --muted: #6b5f47;
    --border: rgba(100,80,40,0.18); --surface: #f5f0e8; --card: #faf7f2;
    --radius: 10px;
  }
  body { font-family:'DM Sans','DM Sans Fallback',sans-serif; background:var(--surface); color:var(--ink); min-height:100vh; display:flex; flex-direction:column; }

  /* ── Header ── */
  header { background:var(--green-dark); padding:1.75rem 2rem; position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; text-align:center; }
  header::before { content:''; position:absolute; top:-40px; right:-40px; width:200px; height:200px; border-radius:50%; background:rgba(82,183,136,0.1); }
  .header-brand h1 { font-family:'DM Serif Display','DM Serif Display Fallback',serif; font-size:clamp(1.5rem,4vw,2.2rem); color:#fff; line-height:1.1; }
  .header-brand h1 em { color:var(--green-light); font-style:italic; }
  .header-brand p { color:rgba(255,255,255,0.65); font-size:13px; margin-top:3px; }

  /* ── Layout ── */
  main { flex:1; max-width:900px; margin:0 auto; padding:1.75rem 1.25rem 4rem; width:100%; }

  /* ── Search view ── */
  .search-card { background:var(--card); border:1px solid var(--border); border-radius:14px; padding:1.5rem; margin-bottom:1.25rem; }
  .field { display:flex; flex-direction:column; gap:5px; }
  .field label { font-size:11px; font-weight:500; color:var(--muted); letter-spacing:.05em; text-transform:uppercase; }
  .field input { padding:.6rem .9rem; border:1px solid var(--border); border-radius:var(--radius); font-family:'DM Sans','DM Sans Fallback',sans-serif; font-size:15px; color:var(--ink); background:var(--surface); outline:none; transition:border-color .15s,box-shadow .15s; }
  .field input:focus { border-color:var(--green-mid); box-shadow:0 0 0 3px rgba(45,106,79,.1); }
  .field input::placeholder { color:#b0a48c; }
  .search-row { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-start; }
  .search-row .field:first-child { flex:2; min-width:180px; }
  .search-row .field:last-child { flex:1; min-width:140px; }
  .radius-row { display:flex; gap:10px; margin-top:.85rem; align-items:flex-end; flex-wrap:wrap; }
  .slider-wrap { flex:1; min-width:160px; display:flex; flex-direction:column; gap:5px; }
  .slider-label { display:flex; justify-content:space-between; font-size:11px; font-weight:500; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
  .slider-label span:last-child { font-family:'DM Mono','DM Mono Fallback',monospace; font-size:12px; color:var(--green-mid); text-transform:none; }
  input[type=range] { -webkit-appearance:none; appearance:none; width:100%; height:4px; border-radius:2px; background:var(--fairway); outline:none; cursor:pointer; }
  input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:var(--green-mid); border:2px solid #fff; box-shadow:0 0 0 1px var(--green-mid); cursor:pointer; }
  .btn-primary { padding:.65rem 1.5rem; background:var(--green-dark); color:#fff; border:none; border-radius:var(--radius); font-family:'DM Sans','DM Sans Fallback',sans-serif; font-size:14px; font-weight:500; cursor:pointer; display:flex; align-items:center; gap:7px; transition:background .15s,transform .1s; white-space:nowrap; align-self:flex-end; }
  .btn-primary:hover { background:var(--green-mid); }
  .btn-primary:active { transform:scale(.97); }
  .btn-primary svg { width:15px; height:15px; }
  .location-input-wrap { position:relative; display:flex; align-items:center; }
  .location-input-wrap input { padding-right:2.5rem; width:100%; }
  .gps-btn { position:absolute; right:8px; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; padding:3px; display:flex; align-items:center; justify-content:center; color:var(--muted); border-radius:5px; transition:color .15s,background .15s; }
  .gps-btn:hover { color:var(--green-mid); background:var(--green-pale); }
  .gps-btn:active { transform:translateY(-50%) scale(.9); }
  .gps-btn svg { width:15px; height:15px; display:block; }
  .gps-btn.locating { color:var(--green-mid); animation:gps-pulse .8s ease-in-out infinite alternate; }
  @keyframes gps-pulse { from { opacity:.5; } to { opacity:1; } }

  /* status */
  .status-bar { display:flex; align-items:center; gap:8px; margin-bottom:1rem; min-height:22px; }
  .status-text { font-size:12px; color:var(--muted); font-family:'DM Mono','DM Mono Fallback',monospace; }
  .spinner { display:none; width:14px; height:14px; border:2px solid var(--fairway); border-top-color:var(--green-mid); border-radius:50%; animation:spin .7s linear infinite; flex-shrink:0; }
  @keyframes spin { to { transform:rotate(360deg); } }

  .error-msg { background:#fff5f5; border:1px solid #fca5a5; border-radius:10px; padding:.9rem 1.1rem; color:#991b1b; font-size:13px; display:none; margin-bottom:1rem; }
  .geocode-hint { font-size:11px; color:var(--muted); margin-top:3px; font-style:italic; }

  /* results list */
  .results-list { display:flex; flex-direction:column; gap:8px; }
  .result-row { background:var(--card); border:1px solid var(--border); border-radius:12px; padding:.9rem 1.1rem; display:flex; align-items:center; gap:12px; cursor:pointer; transition:border-color .15s,box-shadow .15s; animation:fadeUp .2s ease both; }
  .result-row:hover { border-color:rgba(100,80,40,.35); box-shadow:0 3px 12px rgba(100,80,40,.08); }
  @keyframes fadeUp { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
  .result-icon { width:34px; height:34px; border-radius:50%; background:var(--green-pale); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .result-icon svg { width:16px; height:16px; }
  .result-name { font-weight:500; font-size:14px; color:var(--ink); }
  .result-meta { font-size:11px; color:var(--muted); font-family:'DM Mono','DM Mono Fallback',monospace; margin-top:2px; }
  .result-arrow { margin-left:auto; color:var(--green-light); flex-shrink:0; }
  .result-arrow svg { width:16px; height:16px; }

  /* cache banner */
  .cache-banner { display:flex; align-items:center; gap:10px; padding:8px 12px; background:var(--green-pale); border:1px solid var(--border); border-radius:10px; margin-bottom:12px; font-family:'DM Mono','DM Mono Fallback',monospace; font-size:12px; color:var(--green-dark); }
  .cache-banner span { flex:1; }
  .btn-ghost { padding:3px 10px; border-radius:20px; border:1px solid var(--green-mid); background:transparent; color:var(--green-mid); font-family:'DM Mono','DM Mono Fallback',monospace; font-size:11px; cursor:pointer; }
  .btn-ghost.muted { border-color:var(--border); color:var(--muted); }

  /* ── Club view ── */
  #clubView { display:none; }
  #searchView { display:none; }

  /* Club header card */
  .club-header-card { background:var(--card); border:1px solid var(--border); border-radius:14px; padding:1.1rem 1.25rem; margin-bottom:1.25rem; display:flex; align-items:center; gap:14px; }
  .club-title { font-family:'DM Serif Display','DM Serif Display Fallback',serif; font-size:1.25rem; color:var(--ink); }
  .club-location { font-size:12px; color:var(--muted); margin-top:1px; }
  .club-subtitle { font-size:12px; color:var(--muted); font-family:'DM Mono','DM Mono Fallback',monospace; margin-top:4px; display:flex; gap:10px; flex-wrap:wrap; }
  .club-subtitle a { color:var(--green-mid); text-decoration:none; }
  .club-subtitle a:hover { text-decoration:underline; }
  .change-btn { flex-shrink:0; display:flex; align-items:center; gap:6px; padding:5px 11px; background:var(--surface); border:1px solid var(--border); border-radius:7px; font-family:'DM Mono','DM Mono Fallback',monospace; font-size:11px; color:var(--muted); cursor:pointer; transition:background .12s,border-color .12s,color .12s; }
  .change-btn:hover { background:var(--green-pale); border-color:var(--green-mid); color:var(--green-mid); }
  .change-btn:active { transform:scale(.97); }
  .change-btn svg { width:12px; height:12px; flex-shrink:0; }
  .permalink-btn { flex-shrink:0; display:flex; align-items:center; gap:6px; padding:5px 10px; background:transparent; border:1px solid transparent; border-radius:7px; font-family:'DM Mono','DM Mono Fallback',monospace; font-size:11px; color:var(--muted); cursor:pointer; transition:background .12s,border-color .12s,color .12s; }
  .permalink-btn:hover { background:var(--green-pale); color:var(--green-mid); }
  .permalink-btn svg { width:12px; height:12px; flex-shrink:0; }

  /* Climate card — sidebar + main layout */
  .climate-card { background:var(--card); border:1px solid var(--border); border-radius:14px; overflow:hidden; }
  .climate-layout { display:grid; grid-template-columns:148px 1fr; min-height:300px; }
  .climate-sidebar { background:var(--surface); border-right:1px solid var(--border); padding:14px 12px; display:flex; flex-direction:column; gap:16px; }
  .climate-main { padding:1.25rem; min-width:0; }

  /* Sidebar control groups */
  .ctrl-group { }
  .ctrl-group-label { font-family:'DM Mono','DM Mono Fallback',monospace; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; margin-bottom:6px; }
  .ctrl-scroll-wrap { position:relative; }
  .ctrl-scroll { display:contents; }
  .ctrl-pill { display:block; width:100%; text-align:left; padding:5px 10px; border-radius:7px; border:1px solid transparent; font-family:'DM Mono','DM Mono Fallback',monospace; font-size:11px; cursor:pointer; transition:background .12s,border-color .12s,color .12s; color:var(--muted); background:transparent; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.3; }
  .ctrl-pill:hover:not(.active) { background:var(--green-pale); color:var(--green-mid); }
  .ctrl-pill.active { background:var(--green-dark); color:#fff; border-color:var(--green-dark); }

  /* View tabs — horizontal across top of main */
  .view-tabs { display:flex; gap:0; border-bottom:1px solid var(--border); margin-bottom:16px; }
  .view-tab { padding:8px 16px; border:none; background:transparent; font-family:'DM Sans','DM Sans Fallback',sans-serif; font-size:13px; color:var(--muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .12s,border-color .12s; }
  .view-tab:hover { color:var(--ink); }
  .view-tab.active { color:var(--green-dark); border-bottom-color:var(--green-dark); font-weight:500; }

  /* Summary stats */
  .stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:8px; margin-bottom:16px; }
  .stat-box { background:var(--surface); border-radius:var(--radius); padding:10px 12px; }
  .stat-label { font-family:'DM Mono','DM Mono Fallback',monospace; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:3px; }
  .stat-val { font-family:'DM Mono','DM Mono Fallback',monospace; font-size:17px; font-weight:500; color:var(--green-dark); }
  .stat-delta { font-size:11px; margin-left:5px; }

  /* Chart + tooltip */
  .chart-wrap { position:relative; margin-bottom:8px; }
  .chart-area { height:128px; }
  .chart-svg { width:100%; height:100%; overflow:visible; cursor:crosshair; }
  .chart-tooltip { position:absolute; pointer-events:none; background:var(--green-dark); color:#fff; font-family:'DM Mono','DM Mono Fallback',monospace; font-size:11px; padding:5px 9px; border-radius:7px; white-space:nowrap; opacity:0; transition:opacity .1s; z-index:10; }
  .chart-tooltip.visible { opacity:1; }

  /* Data table toggle */
  .toggle-table-btn { font-family:'DM Mono','DM Mono Fallback',monospace; font-size:10px; color:var(--muted); background:none; border:none; cursor:pointer; padding:0; text-decoration:underline; display:block; margin:6px 0 8px; }
  .toggle-table-btn:hover { color:var(--green-mid); }
  .data-table-wrap { display:none; overflow-x:auto; }
  .data-table-wrap.open { display:block; }
  .data-tbl { width:100%; border-collapse:collapse; font-family:'DM Mono','DM Mono Fallback',monospace; font-size:11px; }
  .data-tbl th { text-align:center; padding:4px 3px; color:var(--muted); font-weight:400; border-bottom:1px solid var(--border); }
  .data-tbl td { text-align:center; padding:3px; }
  .data-tbl tr.divider td { border-top:1px solid var(--border); }

  /* Legend */
  .legend { display:flex; gap:12px; flex-wrap:wrap; padding-top:10px; border-top:1px solid var(--border); margin-top:8px; }
  .legend-item { display:flex; align-items:center; gap:5px; font-size:11px; color:var(--muted); font-family:'DM Mono','DM Mono Fallback',monospace; }
  .legend-line { width:14px; height:2px; border-radius:1px; flex-shrink:0; }
  .legend-swatch { width:10px; height:10px; border-radius:2px; flex-shrink:0; }

  /* Bioclimate grid */
  .bio-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(175px,1fr)); gap:8px; }

  .bio-unit { font-size:10px; font-weight:400; color:var(--muted); margin-left:3px; }
  .bio-delta { font-size:10px; margin-left:6px; }

  /* Traffic light badges */
  .tl-grid { display:flex; flex-direction:column; gap:0; }
  .tl-row { display:flex; align-items:flex-start; gap:10px; padding:10px 0; border-bottom:1px solid var(--border); }
  .tl-row:last-child { border-bottom:none; }
  .tl-dot { width:12px; height:12px; border-radius:50%; flex-shrink:0; margin-top:2px; }
  .tl-dot.green  { background:#27ae60; }
  .tl-dot.amber  { background:#f39c12; }
  .tl-dot.red    { background:#c0392b; }
  .tl-dot.grey   { background:#bbb; }
  .tl-body { flex:1; min-width:0; }
  .tl-title { font-size:13px; font-weight:500; color:var(--ink); }
  .tl-badge { display:inline-block; font-family:'DM Mono','DM Mono Fallback',monospace; font-size:10px; padding:2px 8px; border-radius:10px; margin-left:6px; vertical-align:middle; }
  .tl-badge.red   { background:#fde8e8; color:#9b1c1c; }
  .tl-badge.amber { background:#fef3c7; color:#92400e; }
  .tl-badge.green { background:#d1fae5; color:#065f46; }
  .tl-desc { font-size:12px; color:var(--muted); margin-top:2px; line-height:1.5; }

  /* Source note */
  .source-note { font-family:'DM Mono','DM Mono Fallback',monospace; font-size:10px; color:var(--muted); margin-top:12px; line-height:1.7; padding-top:10px; border-top:1px solid var(--border); }

  /* Info icon + tooltip */
  .info-wrap { position:relative; display:inline-flex; align-items:center; }
  .info-icon { display:inline-flex; align-items:center; justify-content:center; width:13px; height:13px; border-radius:50%; border:1px solid var(--muted); color:var(--muted); font-size:8px; font-family:'DM Sans','DM Sans Fallback',sans-serif; font-weight:600; cursor:default; margin-left:5px; flex-shrink:0; opacity:.65; line-height:1; font-style:normal; vertical-align:middle; }
  .info-icon:hover { opacity:1; border-color:var(--green-mid); color:var(--green-mid); }
  .info-tip { display:none; position:absolute; bottom:calc(100% + 6px); left:50%; transform:translateX(-50%); background:var(--green-dark); color:#fff; font-family:'DM Sans','DM Sans Fallback',sans-serif; font-size:11px; line-height:1.5; padding:7px 10px; border-radius:8px; white-space:normal; width:200px; z-index:100; pointer-events:none; box-shadow:0 4px 12px rgba(0,0,0,.2); text-transform:none; letter-spacing:normal; font-weight:400; }
  .info-tip::after { content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:5px solid transparent; border-top-color:var(--green-dark); }
  .info-wrap:hover .info-tip, .info-wrap:focus-within .info-tip { display:block; }

  /* Loading/error */
  .pane-loading { padding:1.5rem 0; display:flex; align-items:center; gap:8px; font-family:'DM Mono','DM Mono Fallback',monospace; font-size:12px; color:var(--muted); }
  .pane-error { padding:1rem 0; font-family:'DM Mono','DM Mono Fallback',monospace; font-size:12px; color:#991b1b; }

  /* Toast */
  .copied-toast { position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%) translateY(20px); background:var(--green-dark); color:#fff; font-family:'DM Mono','DM Mono Fallback',monospace; font-size:13px; padding:7px 18px; border-radius:20px; opacity:0; pointer-events:none; transition:opacity .2s,transform .2s; }
  .copied-toast.show { opacity:1; transform:translateX(-50%) translateY(0); }

  .empty-state { text-align:center; padding:3rem 1rem; color:var(--muted); }
  .empty-state .icon { font-size:2.5rem; margin-bottom:.75rem; display:block; }
  .empty-state h3 { font-family:'DM Serif Display','DM Serif Display Fallback',serif; font-size:1.2rem; color:var(--ink); margin-bottom:.35rem; }
  .empty-state p { font-size:14px; }

  /* ── Focus-visible for keyboard accessibility (WCAG 2.4.7) ── */
  :focus-visible { outline: 2px solid var(--green-mid); outline-offset: 2px; border-radius: 4px; }
  input:focus-visible { outline-offset: 0; }
  .ctrl-pill:focus-visible { outline-offset: -2px; }

  /* ── Skip-to-content link ── */
  .skip-link { position:absolute; top:-100%; left:1rem; background:var(--green-dark); color:#fff; padding:8px 16px; border-radius:0 0 8px 8px; font-size:14px; z-index:1000; transition:top .15s; }
  .skip-link:focus { top:0; }

  /* ── Featured courses ── */
  .featured-label { font-size:11px; font-weight:500; color:var(--muted); letter-spacing:.06em; text-transform:uppercase; margin-bottom:.6rem; font-family:'DM Mono','DM Mono Fallback',monospace; }
  .featured-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px; margin-bottom:1.5rem; min-height:160px; }
  .featured-card { display:flex; align-items:center; gap:10px; background:var(--card); border:1px solid var(--border); border-radius:11px; padding:.7rem 1rem; cursor:pointer; transition:border-color .15s,box-shadow .15s,background .15s; text-align:left; font-family:inherit; width:100%; }
  .featured-card:hover { border-color:rgba(45,106,79,.45); box-shadow:0 3px 14px rgba(100,80,40,.09); background:#fff; }
  .featured-card:active { transform:scale(.98); }
  .featured-card-icon { width:30px; height:30px; border-radius:50%; background:var(--green-pale); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .featured-card-icon svg { width:14px; height:14px; }
  .featured-card-name { font-size:13px; font-weight:500; color:var(--ink); line-height:1.25; }
  .featured-card-loc { font-size:10px; color:var(--muted); font-family:'DM Mono','DM Mono Fallback',monospace; margin-top:2px; }
  .featured-card-arrow { margin-left:auto; flex-shrink:0; color:var(--green-light); }

  /* ── Traffic-light icon shapes for CVD accessibility ── */
  .tl-dot { position:relative; display:flex; align-items:center; justify-content:center; }
  .tl-dot::after { font-size:8px; font-weight:700; color:#fff; line-height:1; }
  .tl-dot.green::after  { content:'✓'; }
  .tl-dot.amber::after  { content:'–'; font-size:10px; }
  .tl-dot.red::after    { content:'✕'; }
  .tl-dot.grey::after   { content:'·'; font-size:10px; }

  @media(max-width:620px) {
    .climate-layout { grid-template-columns:1fr; }
    .climate-sidebar { border-right:none; border-bottom:1px solid var(--border); flex-direction:column; gap:10px; padding:12px; min-width:0; }
    .ctrl-group { min-width:0; }
    .ctrl-group-label { margin-bottom:6px; }
    .ctrl-scroll-wrap { position:relative; min-width:0; overflow:hidden; }
    .ctrl-scroll-wrap::after { content:''; position:absolute; top:0; right:0; bottom:0; width:28px; background:linear-gradient(to right, transparent, var(--surface)); pointer-events:none; z-index:1; transition:opacity .2s; }
    .ctrl-scroll-wrap.scrolled-end::after { opacity:0; }
    .ctrl-scroll { display:flex; flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; gap:6px; padding-right:28px; }
    .ctrl-scroll::-webkit-scrollbar { display:none; }
    .ctrl-pill { display:inline-flex; align-items:center; justify-content:center; width:auto; flex-shrink:0; min-height:34px; padding:5px 12px; font-size:12px; border:1px solid var(--border); border-radius:20px; text-align:center; white-space:nowrap; }
    .ctrl-pill.active { border-color:var(--green-dark); }
    .ctrl-pill.active span { display:none !important; }
    header { padding:1.25rem; }
  }

  /* ── Climate Analogue Tab ── */
  .analogue-icon { width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg, var(--green-pale), #d8ecdb); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .analogue-icon svg { width:18px; height:18px; color:var(--green-mid); }
  .analogue-title { font-family:'DM Serif Display','DM Serif Display Fallback',serif; font-size:1rem; color:var(--ink); }
  .analogue-loc { font-size:11px; color:var(--muted); font-family:'DM Mono','DM Mono Fallback',monospace; margin-top:2px; }
  .analogue-body { font-size:13px; color:var(--muted); line-height:1.6; margin-bottom:10px; }
  .analogue-stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(100px,1fr)); gap:6px; }
  .analogue-stat { background:var(--surface); border-radius:8px; padding:8px 10px; text-align:center; }
  .analogue-stat-label { font-family:'DM Mono','DM Mono Fallback',monospace; font-size:9px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; margin-bottom:2px; }
  .analogue-stat-val { font-family:'DM Mono','DM Mono Fallback',monospace; font-size:14px; font-weight:500; color:var(--green-dark); }
  .analogue-stat-sub { font-family:'DM Mono','DM Mono Fallback',monospace; font-size:10px; color:var(--muted); margin-top:1px; }
  .analogue-loading { display:flex; align-items:center; gap:8px; font-family:'DM Mono','DM Mono Fallback',monospace; font-size:11px; color:var(--muted); padding:10px 0; }

  @media(max-width:620px) {
    .analogue-stats { grid-template-columns:repeat(2,1fr); }
  }

  /* ── Print stylesheet ── */
  @media print {
    header, footer { break-inside:avoid; }
    .climate-layout { grid-template-columns:1fr !important; }
    .climate-sidebar { flex-direction:row !important; flex-wrap:wrap !important; border-right:none !important; border-bottom:1px solid #ccc !important; gap:6px !important; padding:8px !important; }
    .ctrl-pill { display:inline-block !important; width:auto !important; }
    .ctrl-pill:not(.active) { display:none !important; }
    .data-table-wrap { display:block !important; }
    .toggle-table-btn { display:none !important; }
    .btn-primary, .change-btn, .permalink-btn, .gps-btn, .search-card, #searchView { break-inside:avoid; }
    .chart-tooltip { display:none !important; }
    body { font-size:11pt; }
    .source-note { font-size:8pt; }
  }

  /* ── Header nav ── */
  .header-nav { display:flex; gap:1.25rem; margin-top:.75rem; z-index:2; }
  .header-nav a { color:rgba(255,255,255,0.75); text-decoration:none; font-size:13px; font-family:'DM Sans','DM Sans Fallback',sans-serif; transition:color .15s; }
  .header-nav a:hover { color:#fff; }
  .header-nav a.active { color:var(--green-light); }
  @media(max-width:620px) {
    header { padding:1.25rem; }
  }

  /* ── Site footer ── */
  .site-footer { background:var(--green-dark); color:rgba(255,255,255,0.65); font-family:'DM Mono','DM Mono Fallback',monospace; font-size:10px; line-height:1.8; padding:1.5rem 2rem; margin-top:2rem; }
  .site-footer-inner { max-width:900px; margin:0 auto; display:flex; flex-direction:column; gap:10px; }
  .site-footer h2 { color:rgba(255,255,255,0.75); font-size:9px; text-transform:uppercase; letter-spacing:.08em; font-weight:400; font-family:'DM Mono','DM Mono Fallback',monospace; }
  .site-footer p { font-size:10px; line-height:1.8; }
  .site-footer a { color:var(--green-light); text-decoration:none; }
  .site-footer a:hover { text-decoration:underline; }
  .site-footer strong, .site-footer .footer-highlight { color:rgba(255,255,255,0.75); font-weight:400; }
  .site-footer-disclaimer { border-top:1px solid rgba(255,255,255,0.1); padding-top:10px; color:rgba(255,255,255,0.55); }

  /* ── About page ── */
  .about-main { flex:1; max-width:780px; margin:0 auto; padding:1.75rem 1.25rem 4rem; width:100%; }
  .about-main h2 { font-family:'DM Serif Display','DM Serif Display Fallback',serif; font-size:1.5rem; color:var(--ink); margin:2rem 0 .75rem; }
  .about-main h2:first-child { margin-top:0; }
  .about-main p { font-size:14px; line-height:1.7; color:var(--muted); margin-bottom:.9rem; }
  .about-main p strong { color:var(--ink); font-weight:500; }
  .about-main a { color:var(--green-mid); text-decoration:none; }
  .about-main a:hover { text-decoration:underline; }
  .about-main ul { margin:0 0 1rem 1.25rem; font-size:14px; line-height:1.7; color:var(--muted); }
  .about-main ul li { margin-bottom:.35rem; }
