/* ===========================================================================
   The community map. A night view from high up: warm lights where real people
   are, thin lines where a church sings a songwriter's songs, and the page's own
   type laid over it. The scroll drives the camera, so the map holds still in
   the viewport while the page runs underneath it.
   =========================================================================== */
.atlas{--atlas-top:72px;background:#0a1115;color:var(--lwp-cream,#f3ead8);position:relative}
.atlas-track{height:calc(100svh * 4.4);position:relative}
.atlas-stick{position:sticky;top:var(--atlas-top);height:calc(100svh - var(--atlas-top));overflow:hidden}
.atlas-map{position:absolute;inset:0;background:#0a1115}
.atlas-map .maplibregl-canvas{outline:none}

/* The copy sits in a pool of shade at the left, so it reads over any
   part of the world the camera happens to be over. */
.atlas-veil{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(10,17,21,.9) 0%,rgba(10,17,21,.62) 30%,rgba(10,17,21,0) 58%),
             linear-gradient(0deg,rgba(10,17,21,.7) 0%,rgba(10,17,21,0) 26%)}
.atlas-copy{position:absolute;left:max(28px,calc((100vw - 1500px)/2 + 28px));top:clamp(36px,9vh,96px);max-width:min(520px,calc(100% - 56px));pointer-events:none}
.atlas-title{font-family:var(--anton);font-weight:400;text-transform:uppercase;font-size:var(--lwp-section,clamp(40px,4.4vw,64px));line-height:.92;letter-spacing:-.018em;color:var(--lwp-cream,#f3ead8);text-wrap:balance;margin:0 0 16px;text-shadow:0 6px 30px rgba(0,0,0,.45)}
.atlas-line{font-size:var(--lwp-lead,18px);line-height:1.55;color:rgba(243,234,216,.8);margin:0 0 18px;max-width:44ch}
.atlas-count{display:inline-block;font-size:12.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ochre);margin:0;padding-top:12px;border-top:1px solid rgba(224,169,78,.4)}

.atlas-stages{position:absolute;left:max(28px,calc((100vw - 1500px)/2 + 28px));bottom:28px;display:flex;gap:2px;background:rgba(10,17,21,.62);border:1px solid rgba(243,234,216,.16);backdrop-filter:blur(8px)}
.atlas-stages button{font-family:var(--anton);font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:rgba(243,234,216,.6);background:none;border:0;padding:12px 16px 11px;cursor:pointer;position:relative;transition:color .2s}
.atlas-stages button:hover{color:var(--lwp-cream,#f3ead8)}
.atlas-stages button.on{color:var(--lwp-cream,#f3ead8)}
.atlas-stages button.on::after{content:"";position:absolute;left:16px;right:16px;bottom:5px;height:2px;background:var(--terracotta)}
.atlas-stages button:focus-visible{outline:2px solid var(--terracotta);outline-offset:-2px}

.atlas-legend{position:absolute;right:max(28px,calc((100vw - 1500px)/2 + 28px));bottom:34px;display:flex;gap:18px;font-size:12px;color:rgba(243,234,216,.7);pointer-events:none}
.atlas-legend span{display:inline-flex;align-items:center;gap:7px}
.atlas-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.atlas-dot.is-writer{background:var(--ochre);box-shadow:0 0 0 4px rgba(224,169,78,.22)}
.atlas-dot.is-church{background:var(--lwp-cream,#f3ead8);width:7px;height:7px}
.atlas-rule{width:18px;height:0;border-top:1.5px solid var(--ochre);display:inline-block}

.atlas-return{position:absolute;right:max(28px,calc((100vw - 1500px)/2 + 28px));top:24px;font-family:var(--anton);font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:var(--lwp-cream,#f3ead8);background:rgba(10,17,21,.72);border:1px solid rgba(243,234,216,.3);padding:11px 16px;cursor:pointer}
.atlas-return:hover{border-color:var(--lwp-cream,#f3ead8)}

/* One light, opened: a panel at the right on a wide screen, a sheet from the
   bottom on a phone. */
.atlas-sheet{position:absolute;right:max(28px,calc((100vw - 1500px)/2 + 28px));top:76px;width:min(360px,calc(100% - 56px));max-height:calc(100% - 170px);overflow:auto;background:#fffaf1;color:var(--lwp-ink,#19222e);padding:22px 22px 24px;box-shadow:0 24px 60px rgba(0,0,0,.45);display:grid;gap:14px;align-content:start}
.atlas-sheet[hidden]{display:none}
.atlas-x{justify-self:end;font:inherit;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:none;border:0;color:var(--lwp-muted,#52606a);cursor:pointer;padding:2px 0;margin-bottom:-6px}
.atlas-x:hover{color:var(--terracotta)}
.atlas-who{display:flex;gap:14px;align-items:center}
.atlas-who b{display:block;font-family:var(--anton);font-weight:400;text-transform:uppercase;font-size:26px;line-height:1}
.atlas-who small{display:block;color:var(--lwp-muted,#52606a);font-size:13px;margin-top:5px}
.atlas-face{width:56px;height:56px;border-radius:50%;flex:none;background:#2c3a2c center/cover no-repeat;display:grid;place-items:center;font-family:var(--anton);font-size:18px;color:var(--lwp-cream,#f3ead8)}
.atlas-said{margin:0;font-size:14.5px;line-height:1.55;color:var(--lwp-ink,#19222e)}
.atlas-list{display:grid;gap:2px}
.atlas-list span{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--lwp-muted,#52606a);margin-bottom:4px}
.atlas-list a,.atlas-list button{font:inherit;font-size:14.5px;font-weight:600;text-align:left;color:var(--lwp-ink,#19222e);background:none;border:0;border-top:1px solid rgba(25,34,46,.1);padding:9px 0;cursor:pointer;text-decoration:none}
.atlas-list a:hover,.atlas-list button:hover{color:var(--terracotta)}
.atlas-muted{margin:0;color:var(--lwp-muted,#52606a);font-size:14px;line-height:1.5}
.atlas-sheet .sgbtn{justify-self:start}

/* The people, as a list */
.atlas-people{scroll-margin-top:90px}
.atlas-people .band-head{margin-bottom:26px}
.atlas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
.atlas-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;background:#fffaf1;border:1px solid rgba(25,34,46,.14);padding:12px 14px}
.atlas-card b{display:block;font-family:var(--anton);font-weight:400;text-transform:uppercase;font-size:20px;line-height:1.05}
.atlas-card small{display:block;color:var(--lwp-muted,#52606a);font-size:13px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.atlas-card .atlas-face{width:48px;height:48px;font-size:16px}
.atlas-join{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:22px;flex-wrap:wrap;margin-top:18px;padding:26px 28px;background:var(--lwp-night,#090e12);color:var(--lwp-cream,#f3ead8)}
.atlas-join b{display:block;font-family:var(--anton);font-weight:400;text-transform:uppercase;font-size:30px;line-height:1}
.atlas-join span{display:block;color:rgba(243,234,216,.72);font-size:14.5px;margin-top:8px;max-width:52ch;line-height:1.5}
.atlas-joinacts{display:flex;gap:10px;flex-wrap:wrap}
.atlas-join .sgbtn.ink{border-color:rgba(243,234,216,.42);color:var(--lwp-cream,#f3ead8)}

.maplibregl-ctrl-attrib{background:rgba(10,17,21,.6)!important;color:rgba(243,234,216,.55)!important;font-size:10px}
.maplibregl-ctrl-attrib a{color:rgba(243,234,216,.7)!important}
.maplibregl-cooperative-gesture-screen{font-family:var(--sans);color:var(--lwp-cream,#f3ead8);background:rgba(10,17,21,.55)!important}

@media (max-width:820px){
  .atlas-track{height:calc(100svh * 4)}
  .atlas-veil{background:linear-gradient(180deg,rgba(10,17,21,.92) 0%,rgba(10,17,21,.55) 36%,rgba(10,17,21,0) 60%),linear-gradient(0deg,rgba(10,17,21,.75) 0%,rgba(10,17,21,0) 24%)}
  .atlas-copy{left:16px;right:16px;top:22px;max-width:none}
  .atlas-line{font-size:15px;margin-bottom:12px}
  .atlas-stages{left:16px;right:16px;bottom:30px;justify-content:space-between}
  .atlas-stages button{padding:11px 8px 10px;font-size:12px;flex:1}
  .atlas-stages button.on::after{left:8px;right:8px}
  .atlas-legend{display:none}
  .atlas-return{top:auto;bottom:88px;right:16px}
  .atlas-sheet{left:0;right:0;bottom:0;top:auto;width:auto;max-height:62%;box-shadow:0 -18px 40px rgba(0,0,0,.4)}
  .atlas-card{grid-template-columns:auto minmax(0,1fr) auto}
  .atlas-card>a.sgbtn{display:none}
  .atlas-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .atlas-track{height:auto}
  .atlas-stick{position:relative;top:0;height:min(720px,calc(100svh - var(--atlas-top)))}
}

/* A clear invitation to act, followed by real people and persistent choices. */
.atlas-connect-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px max(28px,calc((100vw - 1500px)/2 + 28px));background:#FAF7F0;color:#19222E;border-bottom:1px solid #CEC4AF}
.atlas-connect-intro p{margin:0;max-width:62ch;line-height:1.5;font-size:16px}
.atlas-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.atlas-card{grid-template-columns:auto minmax(0,1fr)}
.atlas-card .atlas-actions{grid-column:2/-1}
.atlas-you{font-size:13px;font-weight:700;color:#52606A}
.atlas-actions button:disabled{opacity:.65;cursor:wait}
.atlas-actions [aria-pressed="true"]{border-color:#2C3A2C;color:#2C3A2C;background:#EBEFE7}
@media(max-width:820px){.atlas-connect-intro{align-items:flex-start;flex-direction:column;padding:22px 16px}.atlas-connect-intro .sgbtn{width:100%}.atlas-actions .sgbtn{min-height:44px}.atlas-card .atlas-actions a.sgbtn{display:inline-flex}}
.atlas-mode{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:16px max(28px,calc((100vw - 1500px)/2 + 28px));background:#F1E8D4;color:#19222E;border-bottom:1px solid #CEC4AF;font-size:14px}
.atlas-mode label{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:700;cursor:pointer}.atlas-mode input{width:20px;height:20px;accent-color:#A8432C}.atlas-mode span{max-width:65ch;color:#5E574B}.atlas-example{font-size:13px;font-weight:700;color:#795017;margin:0;padding-block:10px;border-block:1px solid #CEB685}

/* Quiet relationship motion; the key explains direction without a live claim. */
.atlas-life{position:absolute;right:28px;top:24px;max-width:330px;color:#F3EAD8;font-size:12px;line-height:1.5;background:rgba(10,17,21,.84);padding:12px 16px;pointer-events:auto}
.atlas-life>div{display:flex;flex-wrap:wrap;gap:4px 16px}
.atlas-flow-key{display:inline-flex;gap:7px;align-items:center}
.atlas-flow-key::before{content:"";width:14px;height:2px;background:#F3EAD8}
.atlas-flow-key.support::before{background:#E0A94E}
.atlas-life p{margin:6px 0 8px;color:#DED4B8;font-size:11px;max-width:42ch}
.atlas-life button{font:inherit;font-weight:700;color:#F3EAD8;background:none;border:0;border-bottom:1px solid #DED4B8;padding:3px 0;cursor:pointer;text-underline-offset:4px}
.atlas-life button:focus-visible{outline:2px solid #E0A94E;outline-offset:5px}
.atlas-life button:disabled{cursor:default;border-color:transparent}
.atlas-return{top:140px}
@media(max-width:820px){.atlas-life{right:16px;left:16px;top:auto;bottom:88px;max-width:none;padding:10px 12px}.atlas-life>div{gap:4px 12px}.atlas-life p{margin:4px 0;font-size:10.5px}.atlas-life button{min-height:44px}.atlas-return{top:auto;bottom:208px}.atlas-stick:has(.atlas-sheet:not([hidden])) .atlas-life{display:none}}

.atlas-stick:has(.atlas-sheet:not([hidden])) .atlas-life{display:none}

/* Networks are explored deliberately; the idle map is just people and places. */
.atlas-intro-actions{display:flex;gap:10px;flex-wrap:wrap;flex:none}
.atlas-select-hint{color:#F3EAD8!important;font-size:13px!important;margin:0 0 10px!important}
.atlas-stick:has(.atlas-sheet:not([hidden])) .atlas-copy,.atlas-stick:has(.atlas-sheet:not([hidden])) .atlas-veil{visibility:hidden}
.atlas-stick:has(.atlas-sheet:not([hidden])) .atlas-return{top:24px}
.atlas-sheet{top:76px;max-height:calc(100% - 155px)}
.atlas-network-note{padding-top:12px;border-top:1px solid #CEC4AF;font-size:12px;line-height:1.5;color:#52606A}
.atlas-network-note p{margin:0 0 8px}
.atlas-network-note button{font:inherit;font-weight:700;color:#19222E;background:none;border:0;padding:8px 0;cursor:pointer;text-decoration:underline;text-underline-offset:4px;min-height:44px}
.atlas-network-note button:focus-visible{outline:2px solid #A8432C;outline-offset:4px}
.atlas-card .atlas-actions{grid-column:1/-1}
@media(max-width:820px){.atlas-intro-actions{width:100%}.atlas-intro-actions .sgbtn{flex:1}.atlas-stick:has(.atlas-sheet:not([hidden])) .atlas-return{top:12px;bottom:auto}.atlas-sheet{top:auto;max-height:54%}}

/* Keep a network selected while its map is explored at any scale. */
.atlas-stick.is-exploring .atlas-copy,.atlas-stick.is-exploring .atlas-veil{visibility:hidden}
.atlas-stick.is-exploring .atlas-life{display:none}
.atlas-stick.is-exploring .atlas-return{top:24px;bottom:auto}
.atlas-explore{position:absolute;left:28px;top:24px;max-width:calc(100% - 440px);padding:12px 14px;background:rgba(10,17,21,.94);color:#F3EAD8;display:grid;gap:8px}
.atlas-explore[hidden]{display:none}
.atlas-explore strong{font-family:var(--anton);font-size:20px;font-weight:400;line-height:1.2;text-transform:uppercase}
.atlas-explore>div{display:flex;flex-wrap:wrap;gap:6px}
.atlas-explore button{font:inherit;font-size:13px;font-weight:700;min-height:44px;padding:8px 12px;background:#131B1F;color:#F3EAD8;border:1px solid #6F756F;cursor:pointer}
.atlas-explore button:hover{background:#28332F;border-color:#DED4B8}
.atlas-explore button:focus-visible{outline:2px solid #E0A94E;outline-offset:3px}
.atlas-explore svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.atlas-explore small{font-size:12px;color:#DED4B8;line-height:1.4}
.atlas-map .maplibregl-canvas:focus-visible{outline:2px solid #E0A94E;outline-offset:-3px}
.atlas-sheet{overscroll-behavior:contain}
@media(max-width:820px){.atlas-explore{left:16px;right:16px;top:64px;max-width:none;padding:10px 12px}.atlas-explore strong{font-size:18px}.atlas-explore button{padding:8px 10px}.atlas-stick.is-exploring .atlas-return{top:12px}}
