/* Community launch pages: local content and an offline, privacy-preserving city map. */
.community-page .page-intro .lead { max-width:62ch; margin:24px 0 0; }
.community-page .pad + .pad { padding-top:26px; }
.community-page .section-title { max-width:24ch; }
.community-page .launch-note { border-left:3px solid var(--purple); padding:4px 0 4px 20px; max-width:72ch; }
.community-page .launch-note p { margin:0; }
.community-page .participant-path { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); list-style:none; counter-reset:step; margin:30px 0 0; padding:0; gap:24px; }
.community-page .participant-path li { border-top:1px solid var(--hair); padding-top:18px; counter-increment:step; }
.community-page .participant-path li::before { content:"0" counter(step); display:block; font-family:var(--mono); font-size:.8rem; color:var(--purple); margin-bottom:18px; }
.community-page .participant-path h3 { font-size:1.15rem; line-height:1.2; }
.community-page .participant-path p { font-size:.95rem; line-height:1.55; margin:12px 0 0; }
.community-page .community-formats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 44px; }
.community-page .community-format { border-top:1px solid var(--hair); padding:26px 0 30px; scroll-margin-top:110px; }
.community-page .community-format h3 { font-size:clamp(1.5rem,2.5vw,2.25rem); line-height:1.08; margin:12px 0 18px; max-width:24ch; }
.community-page .community-format p { max-width:62ch; margin:14px 0; }
.community-page .format-status { font-family:var(--mono); font-size:.72rem; line-height:1.6; letter-spacing:.02em; color:var(--ink); }
.community-page .format-facts { display:grid; grid-template-columns:100px minmax(0,1fr); gap:8px 16px; margin:20px 0; font-size:.9rem; line-height:1.5; }
.community-page .format-facts dt { color:var(--muted); }
.community-page .format-facts dd { margin:0; }
.community-page .community-event { border:1px solid var(--hair); padding:clamp(24px,4vw,50px); }
.community-page .community-event h2 { font-size:clamp(1.9rem,4vw,3.5rem); line-height:1.05; max-width:25ch; margin:18px 0 24px; }
.community-page .event-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(28px,5vw,70px); align-items:start; }
.community-page .event-facts { margin:0; }
.community-page .event-facts > div { border-top:1px solid var(--hair); padding:12px 0; }
.community-page .event-facts dt { font-family:var(--mono); font-size:.73rem; line-height:1.6; color:var(--muted); margin-bottom:5px; }
.community-page .event-facts dd { margin:0; line-height:1.5; }
.community-page .community-actions { display:flex; flex-wrap:wrap; gap:18px 26px; align-items:center; margin-top:28px; }
.community-page .community-actions a:not(.btn) { text-underline-offset:5px; }
.community-page .coin-examples { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; padding:0; list-style:none; margin:28px 0; }
.community-page .coin-examples li { border-top:1px solid var(--hair); padding-top:18px; }
.community-page .coin-examples strong { display:block; margin-bottom:10px; }
.community-page .community-reading { max-width:72ch; }
.community-page .community-reading p { line-height:1.7; }
.community-page .community-faq { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 44px; }
.community-page .community-faq h3 { font-size:1.2rem; line-height:1.25; margin-bottom:12px; }
.community-page .community-faq p { margin:0; }
.community-map { margin-top:28px; }
.community-map-canvas { position:relative; border:1px solid var(--hair); border-radius:8px; overflow:hidden; background:var(--paper); }
.community-map svg { display:block; width:100%; height:auto; aspect-ratio:2/1; touch-action:pan-y; cursor:grab; }
.community-map svg:active { cursor:grabbing; }
.community-map .map-grid { stroke:var(--hair); stroke-width:.5; fill:none; vector-effect:non-scaling-stroke; pointer-events:none; }
.community-map .map-land { fill:var(--hair-strong); stroke:var(--paper); stroke-width:.45; vector-effect:non-scaling-stroke; pointer-events:none; }
.community-map .map-city { cursor:pointer; }
.community-map .map-city-dot { fill:var(--purple); stroke:var(--paper); stroke-width:2; vector-effect:non-scaling-stroke; }
.community-map .map-city-halo { fill:var(--paper); stroke:var(--purple); stroke-width:1.5; vector-effect:non-scaling-stroke; }
.community-map .map-city-label { fill:var(--ink); font-family:var(--mono); font-size:12px; paint-order:stroke; stroke:var(--paper); stroke-width:3px; stroke-linejoin:round; }
.community-map .map-city:focus .map-city-halo { stroke:var(--ink); stroke-width:3; }
.community-map .map-tools { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:12px; border-top:1px solid var(--hair); }
.community-map .map-tools button { min-width:44px; min-height:44px; border:1px solid var(--hair-strong); background:var(--paper); color:var(--ink); font:inherit; padding:8px 14px; cursor:pointer; }
.community-map .map-tools button:disabled { opacity:.5; }
.community-map .map-tools [data-map-reset] { margin-left:auto; font-size:.85rem; }
.community-map .map-help,.community-map .map-source { font-size:.82rem; line-height:1.6; color:var(--muted); margin:10px 0 0; }
.community-map .map-source a { text-underline-offset:3px; }
.community-map .map-city-list { list-style:none; margin:24px 0 0; padding:0; }
.community-map .map-city-card { border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); padding:24px 0; scroll-margin-top:100px; }
.community-map .map-city-card h3 { font-size:clamp(1.45rem,3vw,2rem); line-height:1.1; margin:12px 0; }
.community-map .map-city-card p { max-width:72ch; }
.community-map .map-city-card a { display:inline-flex; align-items:center; min-height:44px; }
.community-map .map-city-card:target { border-top-color:var(--purple); }
.community-page a:focus-visible,.community-page button:focus-visible,.community-map svg:focus-visible { outline:3px solid var(--purple); outline-offset:4px; }
@media (max-width:900px) {
  .community-page .participant-path { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .community-page .event-layout { grid-template-columns:1fr; }
  .community-page .coin-examples { grid-template-columns:1fr; gap:16px; }
}
@media (max-width:600px) {
  .community-page .community-formats,.community-page .community-faq { grid-template-columns:1fr; }
  .community-page .participant-path { gap:24px 18px; }
  .community-page .format-facts { grid-template-columns:88px minmax(0,1fr); }
  .community-page .community-event { padding:22px 18px; }
  .community-map svg { aspect-ratio:1.5/1; }
  .community-map .map-tools { gap:6px; padding:10px; }
  .community-map .map-tools [data-map-reset] { padding:8px 10px; }
}
@media (prefers-reduced-motion:reduce) { .community-map * { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
