
  :root {
    --forest: #1F3B2C;
    --forest-deep: #142A1E;
    --bark: #5B4433;
    --parchment: #EFE8D6;
    --parchment-card: #F7F3E7;
    --ember: #C1652F;
    --ember-bright: #D97A3F;
    --lake: #3E6E7E;
    --ink: #21231F;
    --ink-soft: #55564C;
    --line: rgba(33,35,31,0.14);
    --bg: var(--parchment);
    --card: var(--parchment-card);
    --text: var(--ink);
    --text-soft: var(--ink-soft);
    --accent: var(--ember);
    --font-display: 'Fraunces', serif;
    --font-body: 'Work Sans', sans-serif;
  }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --bg: #131A15; --card: #1B2420; --text: #EDE6D6; --text-soft: #A9AE9F;
      --line: rgba(237,230,214,0.14); --forest: #4F7A62; --accent: var(--ember-bright);
    }
  }
  :root[data-theme="dark"] {
    --bg: #131A15; --card: #1B2420; --text: #EDE6D6; --text-soft: #A9AE9F;
    --line: rgba(237,230,214,0.14); --forest: #4F7A62; --accent: var(--ember-bright);
  }
  * { box-sizing: border-box; }
  :root { box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px); }
  html { scroll-padding-top:env(safe-area-inset-top,0px); }
  body { margin:0; background:var(--bg); color:var(--text); font-family:var(--font-body); -webkit-font-smoothing:antialiased; min-height:100vh; }
  .app { max-width:640px; margin:0 auto; padding-bottom:48px; }

  header.top { padding:28px 20px 20px; position:relative; overflow:hidden; background:var(--forest); color:var(--parchment); }
  header.top svg.contours { position:absolute; inset:0; width:100%; height:100%; opacity:0.14; }
  .brand { position:relative; z-index:1; }
  .brand .mark { font-family:var(--font-display); font-weight:600; font-size:1.7rem; }
  .brand .mark em { font-style:normal; color:var(--ember-bright); }
  .brand .tag { font-size:0.85rem; color:rgba(239,232,214,0.75); margin-top:4px; max-width:34ch; }

  .search-wrap { position:relative; z-index:1; margin-top:18px; }
  .search-wrap input { width:100%; padding:13px 16px; border-radius:3px; border:1px solid rgba(239,232,214,0.35); background:rgba(20,42,30,0.55); color:var(--parchment); font-family:var(--font-body); font-size:0.95rem; }
  .search-wrap input::placeholder { color:rgba(239,232,214,0.55); }
  .search-wrap input:focus { outline:2px solid var(--ember-bright); outline-offset:1px; }

  .search-wrap { position:relative; }
  .search-wrap input { padding-right:40px; }
  #clearSearch {
    display:none; position:absolute; right:8px; top:50%; transform:translateY(-50%);
    width:26px; height:26px; align-items:center; justify-content:center;
    background:rgba(239,232,214,0.2); border:none; border-radius:50%;
    color:var(--parchment); font-size:1.1rem; line-height:1; cursor:pointer; padding:0;
  }
  .quick-row { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-top:10px; position:relative; z-index:1; }
  .quick-label { font-size:0.72rem; color:rgba(239,232,214,0.6); margin-right:2px; }
  .quick {
    background:rgba(239,232,214,0.1); border:1px solid rgba(239,232,214,0.22);
    color:rgba(239,232,214,0.82); font-family:var(--font-body); font-size:0.73rem;
    padding:4px 9px; border-radius:20px; cursor:pointer;
  }
  .quick:active { background:var(--ember); border-color:var(--ember); color:#fff; }
  .fh { border-left:3px solid var(--ember); padding:2px 0 2px 12px; margin:12px 0; }
  .fh .fh-who { font-family:var(--font-display); font-weight:600; font-size:0.95rem; }
  .fh .fh-when { font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--accent); font-weight:700; margin:2px 0 6px; }
  .fh .fh-text { font-size:0.9rem; line-height:1.65; margin:0 0 6px; }
  .fh .fh-cite { font-size:0.75rem; color:var(--text-soft); font-style:italic; }
  .fh-head { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--accent); font-weight:700; margin:18px 0 4px; }
  .lore-box {
    background:linear-gradient(to bottom, rgba(91,68,51,0.06), transparent);
    border-left:3px solid var(--bark);
    padding:14px 14px 4px;
    margin-top:4px;
  }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .lore-box { border-left-color:#C9A87F; background:linear-gradient(to bottom, rgba(201,168,127,0.07), transparent);} }
  .lore-title { font-family:var(--font-display); font-size:1.05rem; font-weight:600; margin:0 0 10px; }
  .lore-label {
    font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em;
    color:var(--accent); font-weight:700; margin:14px 0 6px;
  }
  .match-reason {
    font-size:0.72rem; color:var(--accent); margin-top:8px;
    font-weight:600; letter-spacing:0.01em;
  }
  .suggest-row { display:flex; gap:6px; flex-wrap:wrap; justify-content:center; margin-top:4px; }
  .suggest {
    background:var(--card); border:1px solid var(--line); color:var(--accent);
    font-family:var(--font-body); font-size:0.75rem; padding:5px 11px;
    border-radius:20px; cursor:pointer;
  }
  .chips { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; position:relative; z-index:1; }
  .chip { padding:6px 13px; border-radius:3px; border:1px solid rgba(239,232,214,0.35); color:rgba(239,232,214,0.85); font-size:0.8rem; cursor:pointer; background:transparent; font-family:var(--font-body); }
  .chip.active { background:var(--ember); border-color:var(--ember); color:#fff; }
  .chips, .quick-row { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; margin-left:-16px; margin-right:-16px; padding-left:16px; padding-right:16px; }
  .chips::-webkit-scrollbar, .quick-row::-webkit-scrollbar { display:none; }
  .chip, .quick, .quick-label { flex:0 0 auto; white-space:nowrap; }

  main { padding:18px 16px 0; }
  .count-line { font-size:0.82rem; color:var(--text-soft); margin:4px 4px 14px; }

  .park-card { background:var(--card); border:1px solid var(--line); border-left:4px solid var(--forest); border-radius:2px; padding:16px 16px 14px; margin-bottom:12px; cursor:pointer; }
  .park-card:active { transform:scale(0.99); }
  .park-card h3 { font-family:var(--font-display); font-size:1.15rem; font-weight:600; margin:0; }
  .park-card .region { font-size:0.72rem; color:var(--text-soft); }
  .park-card .desc { font-size:0.86rem; color:var(--text-soft); margin-top:4px; line-height:1.4; }
  .tags { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
  .tag { font-size:0.7rem; padding:3px 8px; border-radius:2px; background:rgba(62,110,126,0.14); color:var(--lake); border:1px solid rgba(62,110,126,0.25); }
  .tag.cabin { background:rgba(193,101,47,0.12); color:var(--accent); border-color:rgba(193,101,47,0.28); }

  .mound-banner { display:flex; align-items:center; gap:12px; background:var(--card); border:1px solid var(--line); border-left:4px solid var(--ember); border-radius:2px; padding:13px 16px; margin-bottom:14px; cursor:pointer; }
  .mound-banner:active { transform:scale(0.99); }
  .mound-banner svg { width:40px; height:40px; flex:none; color:var(--ember); }
  .mound-banner b { display:block; font-family:var(--font-display); font-size:1.05rem; font-weight:600; }
  .mound-banner span { font-size:0.8rem; color:var(--text-soft); line-height:1.35; display:block; }
  .mound-banner .chev { margin-left:auto; font-size:1.5rem; color:var(--text-soft); }
  .mound-list { padding:4px 16px 40px; }
  .mgroup-title { font-family:var(--font-display); font-size:1.05rem; font-weight:600; margin:22px 0 2px; }
  .mgroup-blurb { font-size:0.8rem; color:var(--text-soft); margin:0 0 10px; line-height:1.4; }
  .mound-card.serpent { border-left-color:var(--ember); background:linear-gradient(to right, rgba(193,101,47,0.07), transparent 60%), var(--card); }
  .mound-card .mmiles { margin-top:8px; font-size:0.8rem; color:var(--text-soft); }
  .mbadges { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; position:relative; z-index:1; }
  .mbadges .tag { background:rgba(239,232,214,0.14); color:#EFE8D6; border-color:rgba(239,232,214,0.3); }
  .fact-table { display:grid; grid-template-columns:92px 1fr; gap:9px 12px; margin:14px 0 0; font-size:0.86rem; line-height:1.45; }
  .fact-table dt { color:var(--text-soft); font-size:0.7rem; text-transform:uppercase; letter-spacing:0.06em; padding-top:2px; }
  .fact-table dd { margin:0; }
  .section p.lead { font-size:1rem; font-family:var(--font-display); line-height:1.5; }
  .chiprow { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
  .linkbtn { background:none; border:1px solid var(--forest); color:var(--forest); padding:8px 14px; border-radius:2px; font-family:var(--font-body); font-size:0.82rem; cursor:pointer; margin-top:6px; }
  .visit-row { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid var(--line); font-size:0.88rem; line-height:1.45; }
  .visit-row:first-of-type { border-top:none; }
  .visit-row .vk { color:var(--text-soft); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em; flex:0 0 86px; padding-top:2px; }
  .visit-row .vv { flex:1; }
  .ctabtn { display:block; text-align:center; background:var(--ember); color:#fff; padding:13px 16px; border-radius:2px; text-decoration:none; font-weight:600; font-size:0.92rem; margin-top:10px; }
  .ctabtn.alt { background:none; color:var(--forest); border:1px solid var(--forest); }

  .detail-header .contours { pointer-events:none; }
  .detail-header > * { position:relative; z-index:1; }
  .detail-header > svg.contours { position:absolute; z-index:0; }
  .back-btn { min-height:44px; }
  .quick { min-height:44px; padding-top:6px; padding-bottom:6px; display:inline-flex; align-items:center; box-sizing:border-box; }
  .chip { min-height:44px; display:inline-flex; align-items:center; box-sizing:border-box; }
  .tabbtn { min-height:44px; }
  :focus-visible { outline:2px solid var(--ember); outline-offset:2px; }
  .park-card:focus-visible, .mound-banner:focus-visible { outline-offset:-2px; }
  .detail a:not(.go):not(.ctabtn):not(.back-btn) { color:var(--accent); }
  .ctabtn.alt { color:var(--accent); border-color:var(--accent); }
  .linkbtn { color:var(--accent); border-color:var(--accent); padding:10px 14px; }

  .btm-wrap { position:relative; margin:0; background:var(--water,#D5E4E8); border-bottom:1px solid var(--line); }
  .btm-svg { display:block; width:100%; height:auto; max-height:70vh; touch-action:none; cursor:grab; user-select:none; -webkit-user-select:none; --water:#D3E3E8; --land:#F3ECDA; --landline:#8E836C; --cityc:#6d665a; }
  :root[data-theme="dark"] .btm-svg { --water:#16262B; --land:#232A24; --landline:#5E6B60; --cityc:#9a9a8e; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .btm-svg { --water:#16262B; --land:#232A24; --landline:#5E6B60; --cityc:#9a9a8e; } }
  .btm-water { fill:var(--water); }
  .btm-land { fill:var(--land); stroke:var(--landline); stroke-width:1.2; vector-effect:non-scaling-stroke; }
  .btm-geo { fill:var(--landline); opacity:0.7; font-style:italic; font-family:var(--font-body); }
  .btm-city circle { fill:var(--cityc); }
  .btm-city text { fill:var(--cityc); font-family:var(--font-body); }
  .btm-case { fill:none; stroke:#fff; stroke-width:6.5; stroke-linecap:round; stroke-linejoin:round; opacity:0.9; }
  :root[data-theme="dark"] .btm-case { stroke:#0E1A14; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .btm-case { stroke:#0E1A14; } }
  .btm-line { fill:none; stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round; }
  .btm-hit { fill:none; stroke:transparent; stroke-width:20; stroke-linecap:round; stroke-linejoin:round; pointer-events:stroke; cursor:pointer; }
  .btm-svg.has-sel .btm-sec:not(.sel) .btm-line { opacity:0.35; }
  .btm-svg.has-sel .btm-sec:not(.sel) .btm-case { opacity:0.35; }
  .btm-sec.sel .btm-line { stroke-width:6; }
  .btm-sec.sel .btm-case { stroke-width:9.5; }
  .btm-mark { cursor:pointer; }
  .btm-mhit { fill:transparent; }
  .btm-dot { stroke:#fff; stroke-width:1.4; vector-effect:non-scaling-stroke; }
  .k-park .btm-dot { fill:#2D6A4F; }
  .k-mound .btm-dot { fill:#C1652F; }
  .k-town .btm-dot { fill:#fff; stroke:#2F6DB5; stroke-width:2; }
  .k-end .btm-dot { fill:#1B4E9B; }
  .btm-lab { display:none; fill:var(--text); font-family:var(--font-body); font-weight:600; paint-order:stroke; stroke:var(--bg); stroke-width:2.2px; stroke-linejoin:round; pointer-events:none; }
  .btm-svg.show-all-labels .btm-lab { display:block; }
  .btm-svg.hide-towns .k-town, .btm-svg.hide-parks .k-park, .btm-svg.hide-mounds .k-mound { display:none; }
  .btm-me { fill:#E23B3B; stroke:#fff; stroke-width:2; vector-effect:non-scaling-stroke; }
  .btm-zoom { position:absolute; bottom:10px; right:10px; display:flex; flex-direction:column; gap:6px; }
  .btm-zoom button { width:44px; height:44px; border:1px solid var(--line); background:var(--card); color:var(--text); border-radius:3px; font-size:1.2rem; line-height:1; cursor:pointer; box-shadow:0 1px 3px rgba(0,0,0,0.18); }
  .btm-legend { display:flex; flex-wrap:wrap; gap:6px 14px; padding:10px 16px 2px; font-size:0.74rem; color:var(--text-soft); }
  .btm-key i { display:inline-block; width:14px; height:5px; border-radius:3px; margin-right:5px; vertical-align:middle; }
  .btm-key i.dot-park, .btm-key i.dot-mound, .btm-key i.dot-town { width:9px; height:9px; border-radius:50%; }
  .btm-key i.dot-park { background:#2D6A4F; } .btm-key i.dot-mound { background:#C1652F; } .btm-key i.dot-town { background:#fff; border:2px solid #2F6DB5; box-sizing:border-box; }

  .btm-pt { cursor:pointer; }
  .k-camp .btm-dot { fill:#A3391F; stroke:#fff; stroke-width:1.2; vector-effect:non-scaling-stroke; }
  .k-supply .btm-dot { fill:#0B5D8C; stroke:#fff; stroke-width:1.2; vector-effect:non-scaling-stroke; }
  .k-food .btm-dot { fill:#D4A017; stroke:#fff; stroke-width:1; vector-effect:non-scaling-stroke; }
  .btm-svg.hide-camp .k-camp, .btm-svg.hide-supply .k-supply, .btm-svg.hide-food .k-food { display:none; }
  .btm-svg .k-supply .btm-lab, .btm-svg .k-food .btm-lab { display:none !important; }
  .btm-svg.deep .k-supply .btm-lab, .btm-svg.deep .k-food .btm-lab { display:block !important; }
  .btm-key i.key-camp { width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:9px solid #A3391F; background:none; border-radius:0; }
  .btm-key i.key-supply { width:9px; height:9px; background:#0B5D8C; border-radius:1px; }
  .btm-key i.key-food { width:8px; height:8px; background:#D4A017; border-radius:1px; transform:rotate(45deg); }
  .btp-l { display:block; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--text-soft); margin:10px 0 4px; }
  .btp-sel { width:100%; box-sizing:border-box; padding:11px 12px; border:1px solid var(--line); border-radius:2px; background:var(--card); color:var(--text); font-size:0.92rem; font-family:var(--font-body); }
  .btp-sum { padding:10px 12px; background:rgba(47,109,181,0.1); border-left:3px solid #2F6DB5; font-size:0.92rem; line-height:1.5; }
  .btp-days { margin-top:8px; }
  .btp-day { display:flex; gap:12px; padding:10px 0; border-top:1px solid var(--line); font-size:0.9rem; line-height:1.45; }
  .btp-dn { flex:0 0 52px; font-family:var(--font-display); font-weight:600; color:#2F6DB5; }
  .btp-tab { width:100%; border-collapse:collapse; font-size:0.82rem; }
  .btp-tab th { text-align:left; color:var(--text-soft); font-weight:600; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.05em; padding:6px 8px 6px 0; border-bottom:1px solid var(--line); }
  .btp-tab td { padding:7px 8px 7px 0; border-bottom:1px solid var(--line); vertical-align:top; }
  .btp-sec { font-family:var(--font-display); font-size:0.95rem; font-weight:600; margin:18px 0 4px; padding-top:10px; border-top:2px solid #2F6DB5; }
  .btp-sec span { font-family:var(--font-body); font-size:0.75rem; font-weight:400; color:var(--text-soft); margin-left:6px; }
  .btp-row { display:flex; gap:12px; padding:9px 0; border-bottom:1px solid var(--line); }
  .btp-mile { flex:0 0 54px; text-align:right; line-height:1.1; }
  .btp-mile b { font-size:1rem; display:block; }
  .btp-mile span { font-size:0.65rem; color:var(--text-soft); text-transform:uppercase; }
  .btp-main .pname { font-size:0.92rem; font-weight:600; }
  .btp-main .paddr { font-size:0.78rem; color:var(--text-soft); }
  .btp-gaps { display:flex; flex-wrap:wrap; gap:2px 12px; font-size:0.74rem; color:var(--text-soft); margin-top:2px; }
  .btp-row.t-camp .pname::before { content:"\25B2 "; color:#A3391F; font-size:0.7em; }
  .btp-row.t-supply .pname::before { content:"\25A0 "; color:#0B5D8C; font-size:0.7em; }
  .btp-row.t-town .pname::before { content:"\25CB "; color:#2F6DB5; font-size:0.8em; }

  .btm-zone { fill:rgba(46,125,50,0.16); stroke:#2E7D32; stroke-width:1.3; stroke-dasharray:5 4; vector-effect:non-scaling-stroke; cursor:pointer; }
  .btm-svg.hide-free .btm-zone, .btm-svg.hide-free .k-free, .btm-svg.hide-lodge .k-lodge { display:none; }
  .k-free .btm-dot { fill:#2E7D32; stroke:#fff; stroke-width:1.2; vector-effect:non-scaling-stroke; }
  .k-lodge .btm-dot { fill:#B03A7B; stroke:#fff; stroke-width:1.2; vector-effect:non-scaling-stroke; }
  .btm-key i.key-free { width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:9px solid #2E7D32; background:none; border-radius:0; }
  .btm-key i.key-lodge { width:9px; height:9px; background:#B03A7B; border-radius:2px 2px 1px 1px; }
  .btp-row.t-free .pname::before { content:"\25B2 "; color:#2E7D32; font-size:0.7em; }
  .btp-row.t-lodge .pname::before { content:"\2302 "; color:#B03A7B; font-size:0.9em; }
  .btm-card-h { font-family:var(--font-display); font-size:1.05rem; margin-bottom:2px; }



  .app.ex-wide { max-width:1240px; }
  .explore-embed { margin:14px 0 18px; padding:14px; background:var(--card,#fff); border:1px solid var(--border,#d9d0bc); border-radius:6px; }
  .ex-embed-head { display:flex; gap:12px; align-items:flex-start; justify-content:space-between; margin-bottom:10px; }
  .ex-embed-head h3 { margin:0 0 2px; font-family:var(--font-display); font-size:1.25rem; }
  .ex-embed-head p { margin:0; }
  .ex-embed-head .ex-open { flex:0 0 auto; white-space:nowrap; }
  .ex-wrap { position:relative; }
  .ex-tools { display:flex; gap:8px; align-items:stretch; margin-bottom:8px; }
  .ex-searchbox { position:relative; flex:1; min-width:0; }
  .ex-search { width:100%; box-sizing:border-box; padding:10px 12px; font-size:1rem; border:1px solid var(--border,#d9d0bc); border-radius:4px; background:var(--bg,#fff); color:var(--text); }
  .ex-results { position:absolute; z-index:12; left:0; right:0; top:100%; margin-top:2px; background:var(--card,#fff); border:1px solid var(--border,#d9d0bc); border-radius:4px; box-shadow:0 4px 14px rgba(0,0,0,0.18); max-height:280px; overflow:auto; }
  .ex-res { display:flex; width:100%; gap:8px; align-items:center; text-align:left; padding:9px 10px; background:none; border:0; border-bottom:1px solid var(--border,#e6dfcc); color:var(--text); font:inherit; cursor:pointer; }
  .ex-res:hover, .ex-res:focus-visible { background:rgba(120,120,120,0.12); }
  .ex-res-n { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ex-res-c { font-size:0.75rem; opacity:0.7; }
  .ex-none { padding:10px; font-size:0.9rem; opacity:0.8; }
  .ex-btn { padding:8px 12px; border:1px solid var(--border,#d9d0bc); border-radius:4px; background:var(--bg,#fff); color:var(--text); font:inherit; font-size:0.9rem; cursor:pointer; }
  .ex-btn:focus-visible, .ex-key:focus-visible, .ex-pick:focus-visible { outline:3px solid #2F6DB5; outline-offset:2px; }
  .ex-legend { margin-bottom:8px; padding:10px; border:1px solid var(--border,#d9d0bc); border-radius:4px; background:var(--bg,#fff); }
  .ex-legend-head { display:flex; gap:8px; align-items:center; margin-bottom:8px; }
  .ex-hint { font-size:0.8rem; opacity:0.7; }
  .ex-keys { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:6px; }
  .ex-key { display:flex; align-items:center; gap:8px; padding:7px 9px; text-align:left; border:1px solid var(--border,#d9d0bc); border-radius:4px; background:var(--card,#fff); color:var(--text); font:inherit; font-size:0.86rem; cursor:pointer; }
  .ex-key[aria-pressed="false"] { opacity:0.45; text-decoration:line-through; }
  .ex-key-l { flex:1; min-width:0; }
  .ex-key-n { font-size:0.78rem; opacity:0.75; }
  .ex-glyph { flex:0 0 auto; vertical-align:middle; }
  .ex-prec { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:8px; font-size:0.8rem; }
  .ex-prec span { display:inline-flex; align-items:center; gap:5px; }
  .ex-mapbox { position:relative; border:1px solid var(--border,#d9d0bc); border-radius:4px; overflow:hidden; }
  .ex-svg { display:block; width:100%; height:270px; touch-action:none; cursor:grab; user-select:none; -webkit-user-select:none; --ewater:#D3E3E8; --eland:#F3ECDA; --eline:#8E836C; }
  .ex-full .ex-svg { height:calc(100vh - 330px); min-height:360px; max-height:820px; }
  :root[data-theme="dark"] .ex-svg { --ewater:#16262B; --eland:#232A24; --eline:#5E6B60; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ex-svg { --ewater:#16262B; --eland:#232A24; --eline:#5E6B60; } }
  .ex-water { fill:var(--ewater); }
  .ex-land { fill:var(--eland); stroke:var(--eline); stroke-width:1.2; vector-effect:non-scaling-stroke; }
  .ex-geo { fill:var(--eline); opacity:0.75; font-style:italic; font-family:var(--font-body); }
  .ex-geo2 { opacity:0.5; }
  .btm-mark, .cm-mark, .om-mark, .bm-mark { outline:none; }
  .btm-mark:focus-visible .btm-dot, .cm-mark:focus-visible .cm-dot, .om-mark:focus-visible .om-dot, .bm-mark:focus-visible .bm-dot { stroke:#111; stroke-width:3; }
  .btm-mark:focus-visible .btm-mhit, .cm-mark:focus-visible .cm-mhit, .om-mark:focus-visible .om-mhit, .bm-mark:focus-visible .bm-mhit { fill:rgba(255,255,255,0.55); }
  .ex-town text.ex-town-lab { font-family:var(--font-body); font-weight:500; fill:#4a4030; paint-order:stroke; stroke:#F3ECDA; stroke-width:2px; stroke-linejoin:round; pointer-events:none; opacity:0.9; }
  :root[data-theme="dark"] .ex-town text.ex-town-lab { fill:#cfc6ae; stroke:#1a2420; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ex-town text.ex-town-lab { fill:#cfc6ae; stroke:#1a2420; } }
  .ex-outcity text.ex-city-lab { opacity:0.8; font-style:italic; }
  .ex-city text.ex-city-lab { font-family:var(--font-body); font-weight:700; fill:#2a2015; paint-order:stroke; stroke:#F3ECDA; stroke-width:3px; stroke-linejoin:round; pointer-events:none; }
  :root[data-theme="dark"] .ex-city text.ex-city-lab { fill:#EFE8D6; stroke:#1a2420; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ex-city text.ex-city-lab { fill:#EFE8D6; stroke:#1a2420; } }
  .ex-geo-toggles { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:8px; padding-top:8px; border-top:1px dashed var(--border,#d9d0bc); }
  .ex-geo-label { font-size:0.78rem; font-weight:700; opacity:0.75; }
  .ex-geo-note { font-size:0.78rem; opacity:0.7; flex-basis:100%; }
  .ex-source { font-size:0.72rem; opacity:0.65; margin:6px 0 0; }
  .ex-region { fill:var(--rgl); stroke:var(--rgl); fill-opacity:0.13; stroke-opacity:0.6; pointer-events:none; }
  :root[data-theme="dark"] .ex-region { fill:var(--rgd); stroke:var(--rgd); fill-opacity:0.2; stroke-opacity:0.75; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ex-region { fill:var(--rgd); stroke:var(--rgd); fill-opacity:0.2; stroke-opacity:0.75; } }
  .ex-rgl { cursor:pointer; outline:none; }
  .ex-rgl text { font-family:var(--font-body); font-weight:700; fill:var(--rgl); paint-order:stroke; stroke:#F3ECDA; stroke-width:3.4px; stroke-linejoin:round; }
  :root[data-theme="dark"] .ex-rgl text { fill:var(--rgd); stroke:#1B241E; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ex-rgl text { fill:var(--rgd); stroke:#1B241E; } }
  .ex-rgl:focus-visible rect { fill:rgba(255,255,255,0.5); stroke:#111; stroke-width:1.5; }
  .ex-mk, .ex-cl { cursor:pointer; outline:none; }
  .ex-mk:focus-visible > circle:first-of-type, .ex-cl:focus-visible > circle:first-of-type { stroke:#111; stroke-width:2.5; fill:rgba(255,255,255,0.55); }
  .ex-card { margin-top:8px; }
  .ex-meta { display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:0.85rem; margin:4px 0; }
  .ex-out { padding:1px 7px; border:1px solid #E23B3B; color:#B32020; border-radius:10px; font-size:0.75rem; }
  .ex-prec-note { font-size:0.82rem; opacity:0.85; }
  .ex-prec-note.approx { color:#9A5A00; opacity:1; }
  .ex-picker { display:flex; flex-direction:column; gap:6px; }
  .ex-pick { display:flex; align-items:center; gap:8px; padding:9px 10px; text-align:left; border:1px solid var(--border,#d9d0bc); border-radius:4px; background:var(--card,#fff); color:var(--text); font:inherit; cursor:pointer; }
  @media (max-width:520px) { .ex-embed-head { flex-direction:column; } .ex-embed-head .ex-open { width:100%; } .ex-keys { grid-template-columns:1fr; } }
  .ex-nmbtn { }
  .ex-nm { margin-bottom:8px; padding:10px; border:1px solid var(--border,#d9d0bc); border-radius:4px; background:var(--bg,#fff); }
  .nm-row { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
  .nm-or { font-size:0.8rem; opacity:0.7; margin:8px 0 6px; text-align:center; }
  .nm-active { font-size:0.9rem; }
  #nmCityResults { position:relative; margin-top:2px; }
  .trip-day { border:1px solid var(--border,#d9d0bc); border-radius:6px; padding:12px; margin-bottom:16px; background:var(--card,#fff); }
  .trip-day-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:4px; }
  .trip-day-name { font-family:var(--font-display); font-size:1.1rem; font-weight:700; border:1px solid transparent; background:transparent; color:inherit; padding:4px 6px; border-radius:4px; min-height:44px; flex:1; }
  .trip-day-name:hover, .trip-day-name:focus { border-color:var(--border,#d9d0bc); }
  .trip-day-stats { font-size:0.85rem; opacity:0.85; margin-bottom:6px; }
  .trip-warn { background:rgba(179,38,30,0.1); border:1px solid rgba(179,38,30,0.35); color:#8a1f18; padding:8px 10px; border-radius:4px; font-size:0.85rem; margin-bottom:8px; }
  :root[data-theme="dark"] .trip-warn { color:#f2b8b4; }
  .trip-day-svg { display:block; width:100%; max-height:220px; margin:8px 0; background:var(--bg,#F3ECDA); border:1px solid var(--border,#d9d0bc); border-radius:4px; }
  .trip-stops { display:flex; flex-direction:column; gap:10px; }
  .trip-stop { border:1px solid var(--border,#d9d0bc); border-radius:4px; padding:8px 10px; }
  .trip-stop.st-missing { opacity:0.7; display:flex; align-items:center; justify-content:space-between; }
  .trip-stop-main { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
  .trip-stop-name { font-weight:700; text-align:left; min-height:44px; }
  .trip-stop-fields { display:flex; gap:12px; flex-wrap:wrap; font-size:0.85rem; }
  .trip-stop-fields input { min-height:36px; }
  .trip-stop-actions { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
  .trip-stop-actions button, .trip-stop-actions select { min-height:40px; }
  .trip-resupply { margin-top:10px; font-size:0.85rem; border-top:1px dashed var(--border,#d9d0bc); padding-top:8px; }
  @media print {
    .no-print, .back-btn, .chips, .quick-row, .search-wrap, header.top .tag, .tabbar, .ex-embed-head, .explore-embed, footer.disclaimer, .mound-banner { display:none !important; }
    .trip-stop-actions, .trip-day-head button { display:none !important; }
    body, .app { background:#fff !important; color:#000 !important; }
    .trip-day { break-inside:avoid; border-color:#999; }
  }
  .trust-panel { border:1px solid var(--border,#d9d0bc); border-radius:6px; padding:12px 14px; background:var(--bg,#F3ECDA); }
  .trust-panel h4 { margin:0 0 8px; }
  .trust-warn { background:rgba(179,38,30,0.1); border:1px solid rgba(179,38,30,0.35); color:#8a1f18; padding:8px 10px; border-radius:4px; font-size:0.85rem; margin-bottom:10px; }
  :root[data-theme="dark"] .trust-warn { color:#f2b8b4; }
  .trust-list { margin:0; display:grid; grid-template-columns:auto 1fr; gap:6px 14px; font-size:0.88rem; }
  .trust-list dt { font-weight:700; opacity:0.85; }
  .trust-list dd { margin:0; }
  .trust-sub { font-size:0.8rem; opacity:0.75; margin-top:2px; }
  .trust-foot { font-size:0.78rem; opacity:0.7; margin:10px 0 0; }
  @media (max-width:480px){ .trust-list { grid-template-columns:1fr; } .trust-list dt { margin-top:6px; } }
  .st-actions { display:flex; gap:8px; margin:8px 0; position:relative; z-index:1; }
  .st-btn { display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:8px 14px; border:1px solid rgba(239,232,214,0.4); border-radius:4px; background:rgba(239,232,214,0.08); color:inherit; font-family:var(--font-body); font-size:0.85rem; cursor:pointer; }
  .st-btn.active { background:var(--ember); border-color:var(--ember); color:#fff; }
  .st-ic { width:16px; height:16px; flex:0 0 auto; }
  .park-card .st-actions, .odd-card .st-actions, .mound-card .st-actions, .beach-card .st-actions, .hist-card .st-actions { margin-top:10px; }
  .park-card .st-btn, .st-card .st-btn { border-color:var(--line); background:var(--bg); color:var(--text); }
  .park-card .st-btn.active, .st-card .st-btn.active { background:var(--ember); border-color:var(--ember); color:#fff; }
  .st-missing { opacity:0.7; }
  .st-danger { color:#B3261E; }
  .st-remove { margin-top:8px; }
  #savedNavCount, #tripNavCount { opacity:0.75; font-size:0.85em; }
  .cave-banner { border-left-color:#3F6C8E; }
  .cave-banner svg { color:#3F6C8E; }
  .cave-card { border-left-color:#3F6C8E; }
  .falls-banner { border-left-color:#2E86C1; }
  .falls-banner svg { color:#2E86C1; }
  .falls-card { border-left-color:#2E86C1; }
  .wm-mark { cursor:pointer; outline:none; }
  .wm-mhit { fill:transparent; }
  .wm-dot { stroke:#fff; stroke-width:1.6; vector-effect:non-scaling-stroke; }
  .wk-easy .wm-dot { fill:#2D6A4F; } .wk-moderate .wm-dot { fill:#2E86C1; } .wk-strenuous .wm-dot { fill:#B03A2E; }
  .wm-mark.sel .wm-dot { stroke:#111; stroke-width:3; }
  .wm-mark:focus-visible .wm-dot { stroke:#111; stroke-width:3; }
  .wm-mark:focus-visible .wm-mhit { fill:rgba(255,255,255,0.55); }
  .wm-lab { display:none; fill:var(--text); font-family:var(--font-body); font-weight:600; paint-order:stroke; stroke:var(--bg); stroke-linejoin:round; pointer-events:none; }
  .cm-svg.show-all-labels .wm-lab { display:block; }
  .btm-key i.wd-easy, .btm-key i.wd-moderate, .btm-key i.wd-strenuous { width:9px; height:9px; border-radius:50%; }
  .btm-key i.wd-easy { background:#2D6A4F; } .btm-key i.wd-moderate { background:#2E86C1; } .btm-key i.wd-strenuous { background:#B03A2E; }
  .cm-svg { display:block; width:100%; height:auto; max-height:70vh; touch-action:none; cursor:grab; user-select:none; -webkit-user-select:none; --cwater:#D3E3E8; --cland:#F3ECDA; --cline:#8E836C; }
  :root[data-theme="dark"] .cm-svg { --cwater:#16262B; --cland:#232A24; --cline:#5E6B60; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .cm-svg { --cwater:#16262B; --cland:#232A24; --cline:#5E6B60; } }
  .cm-water { fill:var(--cwater); }
  .cm-land { fill:var(--cland); stroke:var(--cline); stroke-width:1.2; vector-effect:non-scaling-stroke; }
  .cm-geo { fill:var(--cline); opacity:0.7; font-style:italic; font-family:var(--font-body); }
  .cm-geo2 { opacity:0.5; }
  .cm-mark { cursor:pointer; }
  .cm-mhit { fill:transparent; }
  .cm-dot { stroke:#fff; stroke-width:1.6; vector-effect:non-scaling-stroke; }
  .ck-show .cm-dot { fill:#3F6C8E; } .ck-recess .cm-dot { fill:#2D6A4F; } .ck-passage .cm-dot { fill:#C1652F; }
  .cm-mark.sel .cm-dot { stroke:#111; stroke-width:3; }
  .cm-lab { display:none; fill:var(--text); font-family:var(--font-body); font-weight:600; paint-order:stroke; stroke:var(--bg); stroke-linejoin:round; pointer-events:none; }
  .cm-svg.show-all-labels .cm-lab { display:block; }
  .btm-key i.cd-show, .btm-key i.cd-recess, .btm-key i.cd-passage { width:9px; height:9px; border-radius:50%; }
  .btm-key i.cd-show { background:#3F6C8E; } .btm-key i.cd-recess { background:#2D6A4F; } .btm-key i.cd-passage { background:#C1652F; }
  .odd-banner { border-left-color:#7A4CB5; }
  .odd-banner svg { color:#7A4CB5; }
  .odd-card { border-left-color:#7A4CB5; }
  .om-svg { display:block; width:100%; height:auto; max-height:70vh; touch-action:none; cursor:grab; user-select:none; -webkit-user-select:none; --owater:#D3E3E8; --oland:#F3ECDA; --oline:#8E836C; }
  :root[data-theme="dark"] .om-svg { --owater:#16262B; --oland:#232A24; --oline:#5E6B60; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .om-svg { --owater:#16262B; --oland:#232A24; --oline:#5E6B60; } }
  .om-water { fill:var(--owater); }
  .om-land { fill:var(--oland); stroke:var(--oline); stroke-width:1.2; vector-effect:non-scaling-stroke; }
  .om-geo { fill:var(--oline); opacity:0.7; font-style:italic; font-family:var(--font-body); }
  .om-geo2 { opacity:0.5; }
  .om-mark { cursor:pointer; }
  .om-mhit { fill:transparent; }
  .om-dot { stroke:#fff; stroke-width:1.6; vector-effect:non-scaling-stroke; }
  .ok-big .om-dot { fill:#C1652F; } .ok-art .om-dot { fill:#2D6A4F; } .ok-legend .om-dot { fill:#7A4CB5; } .ok-record .om-dot { fill:#1B7BA8; }
  .om-wv .om-dot { stroke:#E23B3B; stroke-width:2.6; }
  .om-mark.sel .om-dot { stroke:#111; stroke-width:3; }
  .om-lab { display:none; fill:var(--text); font-family:var(--font-body); font-weight:600; paint-order:stroke; stroke:var(--bg); stroke-linejoin:round; pointer-events:none; }
  .om-svg.show-all-labels .om-lab { display:block; }
  .btm-key i.od-big, .btm-key i.od-art, .btm-key i.od-legend, .btm-key i.od-record, .btm-key i.od-wv { width:9px; height:9px; border-radius:50%; }
  .btm-key i.od-big { background:#C1652F; } .btm-key i.od-art { background:#2D6A4F; } .btm-key i.od-legend { background:#7A4CB5; } .btm-key i.od-record { background:#1B7BA8; } .btm-key i.od-wv { background:#fff; border:2px solid #E23B3B; box-sizing:border-box; }
  .beach-banner { border-left-color:#1B7BA8; }
  .beach-banner svg { color:#1B7BA8; }
  .beach-card { border-left-color:#1B7BA8; }
  .bm-svg { display:block; width:100%; height:auto; max-height:70vh; touch-action:none; cursor:grab; user-select:none; -webkit-user-select:none; --bwater:#BFDDE9; --bland:#F3ECDA; --bline:#8E836C; }
  :root[data-theme="dark"] .bm-svg { --bwater:#12303A; --bland:#232A24; --bline:#5E6B60; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .bm-svg { --bwater:#12303A; --bland:#232A24; --bline:#5E6B60; } }
  .bm-water { fill:var(--bwater); }
  .bm-land { fill:var(--bland); }
  .bm-shore { fill:none; stroke:var(--bline); stroke-width:1.4; vector-effect:non-scaling-stroke; }
  .bm-isl { fill:var(--bland); stroke:var(--bline); stroke-width:1.2; vector-effect:non-scaling-stroke; }
  .bm-geo { fill:var(--bline); opacity:0.8; font-style:italic; font-family:var(--font-body); }
  .bm-geo2 { opacity:0.5; }
  .bm-mark { cursor:pointer; }
  .bm-mhit { fill:transparent; }
  .bm-dot { stroke:#fff; stroke-width:1.6; vector-effect:non-scaling-stroke; }
  .bk-state .bm-dot { fill:#2D6A4F; } .bk-metro .bm-dot { fill:#0F766E; } .bk-city .bm-dot { fill:#2F6DB5; } .bk-paid .bm-dot { fill:#C1652F; }
  .bm-mark.sel .bm-dot { stroke:#E23B3B; stroke-width:3; }
  .bm-lab { display:none; fill:var(--text); font-family:var(--font-body); font-weight:600; paint-order:stroke; stroke:var(--bg); stroke-linejoin:round; pointer-events:none; }
  .bm-svg.show-all-labels .bm-lab { display:block; }
  .btm-key i.dot-state, .btm-key i.dot-metro, .btm-key i.dot-city, .btm-key i.dot-paid { width:9px; height:9px; border-radius:50%; }
  .btm-key i.dot-state { background:#2D6A4F; } .btm-key i.dot-metro { background:#0F766E; } .btm-key i.dot-city { background:#2F6DB5; } .btm-key i.dot-paid { background:#C1652F; }
  .road-banner { border-left-color:#7A5C2E; }
  .road-banner svg { color:#7A5C2E; }
  .road-card { border-left-color:#7A5C2E; }
  .hist-banner { border-left-color:#8C4A2F; }
  .hist-banner svg { color:#8C4A2F; }
  .hist-card { border-left-color:#8C4A2F; }
  .bt-banner { border-left-color:#2F6DB5; }
  .bt-banner svg { color:#2F6DB5; }
  .bt-card { border-left-color:#2F6DB5; }
  .bt-n { display:inline-block; min-width:1.6em; text-align:center; background:#2F6DB5; color:#fff; border-radius:3px; font-size:0.72em; padding:1px 5px; margin-right:6px; vertical-align:2px; font-family:var(--font-body); font-weight:700; }
  .bt-town { padding:12px 0; border-top:1px solid var(--line); }
  .bt-town:first-of-type { border-top:none; }
  .bt-town .pname { font-size:0.95rem; font-weight:600; margin-bottom:2px; }
  .bt-town .paddr { font-size:0.8rem; color:var(--text-soft); }
  .bt-town .place-row { padding:8px 0 8px 10px; border-top:none; border-left:2px solid var(--line); margin-top:6px; }
  .mfilter { position:sticky; top:env(safe-area-inset-top,0px); z-index:6; background:var(--bg); padding:10px 16px 8px; border-bottom:1px solid var(--line); }
  .mfilter input { width:100%; box-sizing:border-box; padding:11px 14px; border:1px solid var(--line); border-radius:2px; background:var(--card); color:var(--text); font-size:0.95rem; font-family:var(--font-body); }
  .mfilter input:focus { outline:2px solid var(--ember); outline-offset:1px; }
  .mrow { display:flex; gap:8px; overflow-x:auto; margin-top:8px; scrollbar-width:none; padding-bottom:2px; }
  .mrow::-webkit-scrollbar { display:none; }
  .mchip { flex:0 0 auto; white-space:nowrap; border:1px solid var(--line); background:none; color:var(--text); padding:8px 13px; border-radius:2px; font-size:0.82rem; cursor:pointer; font-family:var(--font-body); min-height:44px; display:inline-flex; align-items:center; box-sizing:border-box; }
  .mchip.active { background:var(--ember); border-color:var(--ember); color:#fff; }
  .mcount { font-size:0.78rem; color:var(--text-soft); margin-top:8px; }
  .tag.visit { background:rgba(63,111,82,0.14); color:var(--forest); border-color:rgba(63,111,82,0.4); }
  .mound-card .desc { margin-top:4px; }
  .mempty { text-align:center; color:var(--text-soft); padding:36px 12px; font-size:0.9rem; }
  .tag.legend { background:rgba(91,68,51,0.12); color:var(--bark); border-color:rgba(91,68,51,0.3); }
  .tag.fed { background:rgba(91,68,51,0.14); color:var(--bark); border-color:rgba(91,68,51,0.3); font-weight:600; }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .tag.legend { color:#C9A87F; border-color:rgba(201,168,127,0.35); background:rgba(201,168,127,0.1);} }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .tag.fed { color:#C9A87F; border-color:rgba(201,168,127,0.35); background:rgba(201,168,127,0.1);} }
  .agency-line { font-size:0.72rem; color:rgba(239,232,214,0.85); margin-top:6px; position:relative; z-index:1; }
  .pl-tools { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin:4px 4px 12px; }
  .pl-tools .count-line { margin:0; }
  .pl-seg { display:inline-flex; border:1px solid var(--line); border-radius:2px; overflow:hidden; }
  .pl-seg button, .pl-link { font:inherit; font-size:0.8rem; min-height:36px; padding:0 12px; border:0; background:var(--card); color:var(--text-soft); cursor:pointer; }
  .pl-seg button + button { border-left:1px solid var(--line); }
  .pl-seg button[aria-pressed="true"] { background:var(--forest); color:#fff; }
  .pl-link { background:none; text-decoration:underline; text-underline-offset:2px; padding:0 6px; }
  .pl-region { margin-bottom:10px; }
  .pl-head { width:100%; display:flex; align-items:center; gap:12px; text-align:left; font:inherit; color:var(--text); background:var(--card); border:1px solid var(--line); border-left:4px solid var(--ember); border-radius:2px; padding:12px 14px; min-height:56px; cursor:pointer; }
  .pl-head .pl-txt { flex:1; min-width:0; }
  .pl-head b { font-family:var(--font-display); font-size:1.08rem; font-weight:600; }
  .pl-head .pl-n { font-size:0.78rem; color:var(--text-soft); margin-left:6px; }
  .pl-head .pl-blurb { display:block; font-size:0.8rem; color:var(--text-soft); margin-top:2px; line-height:1.35; }
  .pl-head .pl-chev { font-size:1.3rem; color:var(--text-soft); transition:transform .15s; }
  .pl-head[aria-expanded="true"] .pl-chev { transform:rotate(90deg); }
  .pl-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:10px; margin-top:10px; }
  .pl-grid .park-card { margin-bottom:0; display:flex; flex-direction:column; }
  .pl-grid .park-card .desc { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
  .pl-grid .park-card .price-line { margin-top:auto; padding-top:10px; }
  .pl-grid .park-card .tags { margin-bottom:0; }
  .park-card .price-line { margin-top:10px; font-size:0.82rem; color:var(--text-soft); }
  .park-card .price-line b { color:var(--text); font-weight:600; }

  .detail { display:none; }
  .detail.show { display:block; }
  .list-view.hide { display:none; }

  .detail-header { background:var(--forest); color:var(--parchment); padding:18px 16px 20px; position:relative; overflow:hidden; }
  .back-btn { background:none; border:none; color:rgba(239,232,214,0.85); font-family:var(--font-body); font-size:0.85rem; cursor:pointer; padding:4px 0 14px; display:flex; align-items:center; gap:6px; }
  .detail-header h1 { font-family:var(--font-display); font-size:1.5rem; margin:0 0 4px; position:relative; z-index:1; }
  .detail-header .region { font-size:0.8rem; color:rgba(239,232,214,0.7); position:relative; z-index:1; }
  .detail-header .stat-row { display:flex; gap:14px; flex-wrap:wrap; margin-top:12px; position:relative; z-index:1; }
  .detail-header .stat { font-size:0.72rem; color:rgba(239,232,214,0.9); }
  .detail-header .stat b { display:block; font-family:var(--font-display); font-size:1.05rem; font-weight:600; color:#fff; }

  .tabbar { display:flex; overflow-x:auto; background:var(--card); border-bottom:1px solid var(--line); position:sticky; top:env(safe-area-inset-top,0px); z-index:5; -webkit-overflow-scrolling:touch; }
  .tabbar::-webkit-scrollbar { display:none; }
  .tabbtn { flex:0 0 auto; padding:12px 16px; font-size:0.8rem; font-family:var(--font-body); font-weight:600; color:var(--text-soft); background:none; border:none; cursor:pointer; border-bottom:2px solid transparent; white-space:nowrap; }
  .tabbtn.active { color:var(--accent); border-bottom-color:var(--accent); }

  .tabpanel { display:none; }
  .tabpanel.active { display:block; }

  .section { padding:18px 16px; border-bottom:1px solid var(--line); }
  .section:last-child { border-bottom:none; }
  .section h4 { font-family:var(--font-display); font-size:0.95rem; font-weight:600; margin:0 0 10px; }
  .section p { font-size:0.88rem; line-height:1.55; color:var(--text-soft); margin:0 0 10px; }
  .section p.story { font-size:0.92rem; line-height:1.72; color:var(--text); }
  .section p.story br + br { content:""; display:block; margin-top:14px; }
  .section p:last-child { margin-bottom:0; }

  .fact-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:4px; }
  .fact { background:var(--bg); border:1px solid var(--line); border-radius:3px; padding:10px 12px; }
  .fact .k { font-size:0.72rem; color:var(--text-soft); text-transform:none; }
  .fact .v { font-size:0.86rem; font-weight:600; margin-top:2px; line-height:1.3; }

  ul.plain { margin:0; padding:0 0 0 18px; }
  ul.plain li { font-size:0.86rem; color:var(--text-soft); line-height:1.6; }

  .site-row { display:flex; justify-content:space-between; align-items:flex-start; padding:10px 0; border-top:1px solid var(--line); gap:12px; }
  .site-row:first-of-type { border-top:none; }
  .site-row .name { font-size:0.92rem; font-weight:500; }
  .site-row .meta { font-size:0.78rem; color:var(--text-soft); margin-top:2px; }
  .site-row .rate { font-size:0.9rem; font-weight:600; white-space:nowrap; color:var(--forest); }

  .place-row { display:flex; justify-content:space-between; align-items:center; padding:11px 0; border-top:1px solid var(--line); gap:10px; }
  .place-row:first-of-type { border-top:none; }
  .place-row .pname { font-size:0.9rem; font-weight:500; }
  .place-row .paddr { font-size:0.76rem; color:var(--text-soft); margin-top:2px; }
  .place-row .go { flex:0 0 auto; font-size:0.76rem; text-decoration:none; color:var(--accent); font-weight:600; border:1px solid var(--accent); padding:6px 10px; border-radius:3px; }

  .booking-box { padding:18px 16px 26px; }
  .date-row { display:flex; gap:10px; margin-bottom:14px; }
  .date-field { flex:1; }
  .date-field label { display:block; font-size:0.72rem; color:var(--text-soft); margin-bottom:5px; }
  .date-field input { width:100%; padding:10px; border-radius:3px; border:1px solid var(--line); background:var(--card); color:var(--text); font-family:var(--font-body); font-size:0.88rem; }
  .book-btn { display:block; width:100%; text-align:center; text-decoration:none; background:var(--accent); color:#fff; padding:14px; border-radius:3px; font-family:var(--font-body); font-weight:600; font-size:0.95rem; border:none; cursor:pointer; }
  .fine-print { font-size:0.76rem; color:var(--text-soft); margin-top:10px; line-height:1.5; }
  .fine-print a { color:var(--lake); }
  .phone-note { display:flex; justify-content:space-between; align-items:center; font-size:0.82rem; color:var(--text-soft); margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
  .no-camp-note { font-size:0.86rem; color:var(--text-soft); line-height:1.6; }

  .empty-state { text-align:center; padding:60px 20px; color:var(--text-soft); }
  .empty-state .glyph { font-family:var(--font-display); font-size:2rem; color:var(--forest); margin-bottom:8px; }

  footer.disclaimer { max-width:640px; margin:0 auto; padding:20px 20px 30px; font-size:0.75rem; color:var(--text-soft); line-height:1.6; border-top:1px solid var(--line); margin-top:8px; }


/* ==== Field Notes Ohio — portfolio polish (2026-09-25) ==== */
@font-face { font-family:'Fraunces'; font-style:normal; font-weight:100 900; font-display:swap;
  src:url(/assets/fonts/fraunces-latin-opsz.woff2) format('woff2-variations'), url(/assets/fonts/fraunces-latin-opsz.woff2) format('woff2'); }
@font-face { font-family:'Work Sans'; font-style:normal; font-weight:100 900; font-display:swap;
  src:url(/assets/fonts/work-sans-latin-wght.woff2) format('woff2-variations'), url(/assets/fonts/work-sans-latin-wght.woff2) format('woff2'); }
@font-face { font-family:'Work Sans'; font-style:italic; font-weight:100 900; font-display:swap;
  src:url(/assets/fonts/work-sans-latin-wght-italic.woff2) format('woff2-variations'), url(/assets/fonts/work-sans-latin-wght-italic.woff2) format('woff2'); }


/* Dark mode: keep the colour bands deep so the ember accents stay readable */
:root { --hero-bg:#1F3B2C; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) { --hero-bg:#1A2F23; } }
:root[data-theme="dark"] { --hero-bg:#1A2F23; }
header.top, .detail-header, .page-hero { background:var(--hero-bg); }

/* Site bar: brand + a few real links on every page */
.sitebar { background:var(--forest-deep); color:var(--parchment); border-bottom:1px solid rgba(239,232,214,0.12); padding-top:env(safe-area-inset-top,0px); }
.sitebar-in { max-width:640px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 8px 0 16px; min-height:52px; }
.sb-brand { display:inline-flex; align-items:center; gap:9px; color:var(--parchment); text-decoration:none; font-family:var(--font-display); font-weight:600; font-size:1.02rem; letter-spacing:0.005em; min-height:44px; white-space:nowrap; }
.sb-brand img { width:24px; height:24px; border-radius:5px; display:block; }
.sb-brand span em { margin-left:0.28em; }
.sb-brand em { font-style:normal; color:var(--ember-bright); }
.sb-nav { display:flex; align-items:center; }
.sb-nav a { color:rgba(239,232,214,0.82); text-decoration:none; font-size:0.84rem; font-weight:500; padding:0 9px; min-height:44px; display:inline-flex; align-items:center; border-radius:3px; white-space:nowrap; }
.sb-nav a:hover { color:#fff; background:rgba(239,232,214,0.08); }
.sb-nav a[aria-current="page"] { color:#fff; }
@media (max-width:360px){ .sb-nav a.sb-opt { display:none; } }
@media (min-width:900px){ body:has(.app.ex-wide) .sitebar-in { max-width:1240px; } }

/* Hero: the tagline was picking up the park-card .tag pill styles */
header.top { padding-top:26px; }
.brand .tag { background:none; border:0; border-radius:0; padding:0; color:rgba(239,232,214,0.82); font-size:0.92rem; line-height:1.55; max-width:46ch; margin-top:10px; }
.brand .hero-kicker { font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; font-weight:600; color:var(--ember-bright); margin:0 0 8px; }
.brand .mark { margin:0; font-size:1.9rem; line-height:1.12; letter-spacing:-0.01em; max-width:18ch; }
.brand .mark em { font-style:normal; color:var(--ember-bright); }
.hero-stats { list-style:none; margin:16px 0 0; padding:0; display:grid; grid-template-columns:repeat(2,max-content); gap:10px 32px; }
@media (min-width:560px){ .hero-stats { grid-template-columns:repeat(4,max-content); gap:8px 28px; } }
.hero-stats li { font-size:0.78rem; color:rgba(239,232,214,0.72); }
.hero-stats b { display:block; font-family:var(--font-display); font-size:1.2rem; font-weight:600; color:#fff; line-height:1.15; }

#savedNavCount, #tripNavCount { margin-left:5px; }

/* Footer area: last-checked line, contact strip, credit */
.last-checked { margin:22px 16px 0; font-size:0.8rem; line-height:1.5; color:var(--text-soft); }
.last-checked:empty { display:none; }
.contact-strip { margin:22px 16px 0; padding:14px 16px; background:var(--card); border:1px solid var(--line); border-left:4px solid var(--ember); border-radius:2px; font-size:0.88rem; line-height:1.55; color:var(--text); }
.contact-strip a { color:var(--accent); font-weight:600; word-break:break-word; }
footer.disclaimer p { margin:0 0 10px; }
.foot-nav { display:flex; flex-wrap:wrap; gap:0 4px; margin:0 0 12px -8px; }
.foot-nav a { color:var(--text); font-size:0.84rem; font-weight:600; text-decoration:none; padding:0 8px; min-height:40px; display:inline-flex; align-items:center; }
.foot-nav a:hover { color:var(--accent); }
footer.disclaimer .credit { margin-top:12px; color:var(--text-soft); }
footer.disclaimer .credit a { color:inherit; text-decoration:underline; text-underline-offset:2px; }

/* Desktop: wider column, full-bleed colour bands, so it reads as a site rather than a phone screen */
@media (min-width:900px){
  .app:not(.ex-wide) { max-width:760px; }
  .sitebar-in { max-width:760px; padding-left:24px; }
  header.top { padding:40px 24px 26px; box-shadow:0 0 0 100vmax var(--hero-bg); clip-path:inset(0 -100vmax); }
  .detail-header { box-shadow:0 0 0 100vmax var(--hero-bg); clip-path:inset(0 -100vmax); padding-left:24px; padding-right:24px; }
  .brand .mark { font-size:2.6rem; }
  .brand .tag { font-size:1rem; }
  .chips, .quick-row { flex-wrap:wrap; overflow-x:visible; }
  .hero-stats b { font-size:1.45rem; }
  main { padding-left:24px; padding-right:24px; }
  .section { padding-left:24px; padding-right:24px; }
  .chips, .quick-row { margin-left:0; margin-right:0; padding-left:0; padding-right:0; }
  footer.disclaimer { max-width:760px; padding-left:24px; padding-right:24px; }
  .last-checked, .contact-strip { margin-left:24px; margin-right:24px; }
}

/* Simple content pages: /about/, /all/, 404 */
.page { max-width:760px; margin:0 auto; padding:0 16px 40px; }
.page-hero { background:var(--forest); color:var(--parchment); margin:0 -16px; padding:30px 16px 26px; position:relative; }
@media (min-width:900px){ .page { padding:0 24px 48px; } .page-hero { margin:0 -24px; padding:44px 24px 34px; box-shadow:0 0 0 100vmax var(--hero-bg); clip-path:inset(0 -100vmax); } }
.page-hero h1 { font-family:var(--font-display); font-weight:600; font-size:2rem; line-height:1.15; margin:0; }
.page-hero p { color:rgba(239,232,214,0.82); margin:10px 0 0; max-width:52ch; line-height:1.55; }
.page h2 { font-family:var(--font-display); font-weight:600; font-size:1.3rem; margin:34px 0 10px; }
.page h3 { font-family:var(--font-display); font-weight:600; font-size:1.05rem; margin:22px 0 6px; }
.page p, .page li { font-size:0.96rem; line-height:1.7; }
.page p { margin:0 0 14px; }
.page a { color:var(--accent); }
.page ul.cols { columns:2 240px; column-gap:28px; padding-left:18px; margin:0; }
.page ul.cols li { break-inside:avoid; font-size:0.9rem; line-height:1.55; margin:0 0 5px; }
.page .stat-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; margin:16px 0 6px; }
.page .stat-grid div { background:var(--card); border:1px solid var(--line); border-left:4px solid var(--forest); padding:12px 14px; border-radius:2px; }
.page .stat-grid b { display:block; font-family:var(--font-display); font-size:1.5rem; font-weight:600; line-height:1.1; }
.page .stat-grid span { font-size:0.8rem; color:var(--text-soft); }
.page .jump { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 0; }
.page .jump a { font-size:0.82rem; text-decoration:none; border:1px solid var(--line); background:var(--card); color:var(--text); padding:0 12px; min-height:40px; display:inline-flex; align-items:center; border-radius:2px; }
.page .jump a:hover { border-color:var(--accent); color:var(--accent); }
.page .callout { background:var(--card); border:1px solid var(--line); border-left:4px solid var(--ember); padding:14px 16px; border-radius:2px; margin:18px 0; }
.page .btn { display:inline-flex; align-items:center; min-height:46px; padding:0 18px; background:var(--ember); color:#fff; text-decoration:none; font-weight:600; border-radius:2px; }
