/* ChurchTrend dark stealth brand: near-black coder bg / warm-white ink / sunrise orange.
   Palette lineage: nocoprayer dark set (09090b / 111113 / 27272a / a1a1aa) + AID orange and gold. */
:root{
  --charcoal:#141A16;            /* elevated dark band: header, dropdown, gate bg (Meridian green-black) */
  --paper:#0B100D;               /* page background, near-black w/ faint green cast */
  --panel:#151B17;               /* card background */
  --panel2:#1C231E;              /* hover background */
  --lite:#F6F3EE;                /* warm white: text on dark bands, wordmark */
  --ink:#F2EFEA;                 /* primary text, warm white */
  --ink2:#B6B1AC;                /* secondary text */
  --muted:#7C7873;               /* labels, captions */
  --line:#26262A;                /* borders */
  --line2:#3F3F46;               /* hover borders, strong rules */
  --accent:#6FD08A; --accent-ink:#8FE0A8;   /* Meridian: survey green; lighter green for text/links on dark */
  --gold:#E0B84A;                /* AID gold, brightened for dark; GSC emphasis in charts */
  --katie:#E06C7E; --austin:#64A9DE; --caden:#DCA83E; --taylor:#9DC155; --none:#8A8A92;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;
  --sans:"Saira",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --wm:"Futura","Jost","Century Gothic",var(--sans);   /* wordmark: real Futura on Mac/iOS, Jost web fallback */
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
/* kill iOS double-tap-to-zoom on controls (e.g. rapid "Surprise me" / scroll-cue taps) */
button,a,summary,label,[role="button"],[onclick]{touch-action:manipulation}
/* iOS zooms the viewport when a focused input is under 16px; keep search inputs at 16px on phones */
@media(max-width:760px){.gsearch input,.hv8-search input,.dirsearch input,.cp-search input,#q,#qs{font-size:16px}}
.wrap{max-width:1160px;margin:0 auto;padding:0 22px}

/* --- designed-product polish: selection, scrollbar, focus rings, motion --- */
::selection{background:rgba(111,208,138,.32);color:var(--lite)}
:root{--grid:#3A3A42;color-scheme:dark;scrollbar-color:var(--line2) var(--paper)}
html{scrollbar-color:var(--line2) var(--paper)}
*::-webkit-scrollbar{width:11px;height:11px}
*::-webkit-scrollbar-track{background:var(--paper)}
*::-webkit-scrollbar-thumb{background:var(--line2);border-radius:6px;border:2px solid var(--paper)}
*::-webkit-scrollbar-thumb:hover{background:#55555e}
/* one visible, consistent keyboard focus ring everywhere; no ring on mouse click */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
:focus:not(:focus-visible){outline:none}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* header */
body>header{background:var(--charcoal);color:var(--lite);border-bottom:0;position:sticky;top:0;z-index:40}
/* scroll progress bar: replaces the static orange header rule, fills L-to-R with scroll depth */
#scrollprog{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--line);z-index:41}
#scrollprog i{display:block;height:100%;width:0;background:var(--accent);transition:width .08s linear}
body>header .wrap{display:flex;align-items:center;gap:18px;padding:14px 22px;position:relative}
.brand{min-width:0;display:flex;align-items:center;gap:9px}
.wm-mark{width:23px;height:23px;flex:none;color:var(--accent)}
body.gsc-mode .wm-mark{display:none}   /* private GSC lab stays wordmark-only ("Good Shepherd") */
.wordmark{font-family:var(--wm);font-weight:600;font-size:15px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.wordmark em{font-style:normal;color:var(--accent)}
.subline{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:rgba(246,243,238,.55);margin-top:2px;white-space:nowrap}
.subline b{color:var(--accent);font-weight:500}
/* Desktop: a clean inline nav in the header. Mobile collapses this into a hamburger
   that opens a full-screen overlay (see the mobile block below). */
nav{display:flex;gap:2px;margin-left:auto;flex-wrap:wrap;align-items:center}
nav button{border:0;background:none;font-family:var(--sans);font-size:11.5px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;
  padding:9px 4px;margin:0 8px;color:var(--ink2);cursor:pointer;border-bottom:2px solid transparent;border-radius:0;transition:color .15s ease}
nav button:hover{color:var(--ink)}
nav button.on{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}
body.menu-open{overflow:hidden}
/* Two modes, one nav: the regional tool shows navset-region, the dedicated Good
   Shepherd page (/c/gsc/lab) shows navset-gsc. display:contents so the buttons stay
   inline flex items of nav, exactly as before. The church search is regional-only. */
.navset{display:contents}
body.gsc-mode .navset-region{display:none}
body:not(.gsc-mode) .navset-gsc{display:none}
body.gsc-mode .gsearch{display:none}
/* hamburger: mobile-only nav trigger; borderless, animates to an X */
#menu{display:none;margin-left:auto;width:40px;height:40px;border:0;border-radius:9px;background:none;cursor:pointer;position:relative;z-index:41;
  flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0;flex-shrink:0;-webkit-tap-highlight-color:transparent}
#menu span{display:block;width:21px;height:2px;background:var(--lite);border-radius:2px;transition:transform .28s cubic-bezier(.5,.15,.15,1),opacity .18s ease,background .18s ease}
#menu:hover span{background:var(--accent-ink)}
#menu.x span{background:var(--ink)}
#menu.x span:nth-child(1){transform:translateY(7px) rotate(45deg)}
#menu.x span:nth-child(2){opacity:0;transform:scaleX(.4)}
#menu.x span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

main{padding:26px 0 70px}
.note{font-size:12px;color:var(--muted);margin:6px 0 0}
h2{font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin:0 0 4px;color:var(--ink)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px 20px;margin-top:18px}
a{color:var(--accent-ink)}

/* tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:18px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px 14px}
.tile .v{font-family:var(--serif);font-weight:600;font-size:42px;line-height:1.05;letter-spacing:-.01em;font-feature-settings:"lnum" 1}
.tile .l{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:7px}

/* chips + avatars */
.chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink2)}
.chip i{width:8px;height:8px;border-radius:50%;display:inline-block}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0 6px}
.av{border-radius:50%;object-fit:cover;object-position:50% 16%;display:inline-block;vertical-align:middle;background:var(--line);flex-shrink:0}
.av-init{display:inline-flex;align-items:center;justify-content:center;background:var(--none);color:#fff;font-weight:600;letter-spacing:.03em;border-radius:50%;vertical-align:middle}
.av-lg{border-radius:16px;object-position:50% 12%}
.avwrap{display:inline-flex;border:2px solid var(--line);border-radius:20px;padding:3px;flex-shrink:0}
td .av,.hit .av{margin-right:7px}

/* bar rows */
.brow{display:grid;grid-template-columns:150px 1fr 52px;gap:10px;align-items:center;padding:3px 0;font-size:13px}
.brow .lbl{color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brow .val{color:var(--ink);font-variant-numeric:tabular-nums;text-align:right}
.bar{height:10px;border-radius:0 4px 4px 0;background:var(--accent);min-width:2px;position:relative;cursor:default}
/* column chart */
.cols{display:flex;align-items:flex-end;gap:2px;height:120px;margin-top:12px}
.col{flex:1;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px;position:relative;cursor:default}
.colx{display:flex;gap:2px;font-size:10px;color:var(--muted);margin-top:4px}
.colx span{flex:1;text-align:center;white-space:nowrap;overflow:hidden}
/* word map */
.wmap{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;margin-top:12px}
.wmap span{color:var(--ink2)}

/* speaker cards */
.spgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:16px}
.spcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px}
.sphead{display:flex;align-items:center;gap:14px}
.spcard h3{margin:0;font-size:15px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.statrow{display:flex;gap:18px;margin:12px 0 6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap}
.statrow b{color:var(--ink);font-family:var(--serif);font-size:22px;font-weight:600;display:block;letter-spacing:0;line-height:1.1;font-feature-settings:"lnum" 1}
.words{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.words span{font-family:var(--mono);font-size:11.5px;background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:2px 7px;color:var(--ink2)}

/* table */
table{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}
th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);border-bottom:2px solid var(--line2);padding:8px;cursor:pointer;white-space:nowrap}
td{border-bottom:1px solid var(--line);padding:8px;vertical-align:top}
td.num{font-variant-numeric:tabular-nums;text-align:right}
tr:hover td{background:var(--panel2)}

/* search */
/* 16px minimum on form controls: anything smaller makes iOS Safari auto-zoom on focus */
input[type=search]{width:100%;max-width:520px;font:inherit;font-size:16px;padding:10px 14px;border:1px solid var(--line2);border-radius:8px;background:var(--panel);color:var(--ink)}
input[type=search]::placeholder{color:var(--muted)}
input[type=search]:focus,select:focus{outline:2px solid var(--accent);outline-offset:0}
select{font:inherit;font-size:16px;padding:9px 10px;border:1px solid var(--line2);border-radius:8px;background:var(--panel);color:var(--ink)}
.hit{border-bottom:1px solid var(--line);padding:12px 0}
.hit .t{font-weight:600}
.hit .snip{font-size:13px;color:var(--ink2);margin-top:4px}
.hit mark{background:rgba(111,208,138,.32);color:var(--ink);border-radius:2px;padding:0 1px}
/* excerpt cards */
.ex{font-family:var(--serif);font-style:italic;font-size:15.5px;line-height:1.55;color:var(--ink2);margin:9px 0 9px 2px}

/* The Read */
.read{margin-top:26px}
.read-head .kicker{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 12px}
.read-head .kicker b{color:var(--muted);font-weight:500}
.read-head h1{font-family:var(--serif);font-weight:600;font-size:clamp(32px,5.5vw,52px);line-height:1.08;margin:0;max-width:16em;letter-spacing:-.01em}
.read-byline{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--ink2);margin:14px 0 0}
.read-grid{display:grid;grid-template-columns:minmax(0,68ch) 190px;gap:48px;margin-top:30px;align-items:start}
.read-body p{font-family:var(--serif);font-size:19px;line-height:1.65;margin:0 0 1.15em;color:var(--ink)}
.read-body p:first-of-type::first-letter{float:left;font-family:var(--serif);font-weight:600;font-size:4.6em;line-height:.78;padding:6px 10px 0 0;color:var(--accent-ink)}
.read-bottom{border-top:1px solid var(--line);padding-top:18px}
.read-bottom .bl{display:block;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:8px}
.read-stats{display:grid;gap:22px;position:sticky;top:86px}
.rstat{border-top:2px solid var(--accent);padding-top:10px}
.rstat .n{font-family:var(--serif);font-weight:600;font-size:52px;line-height:1;color:var(--accent-ink);font-feature-settings:"lnum" 1}
.rstat .l{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:6px;line-height:1.6}

/* reader modal */
#reader{position:fixed;inset:0;background:rgba(0,0,0,.68);display:none;align-items:flex-start;justify-content:center;padding:4vh 16px;z-index:50}
#reader.open{display:flex}
#reader .box{background:var(--panel);border:1px solid var(--line2);border-radius:12px;max-width:780px;width:100%;max-height:90vh;overflow:auto;padding:26px 30px}
.rhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.rhead .who{display:flex;align-items:center;gap:12px;min-width:0}
#r-title{font-weight:600;font-size:16px;letter-spacing:.02em}
#r-close{border:0;background:none;font-size:22px;cursor:pointer;color:var(--muted);line-height:1;padding:0 2px}
#reader .txt{font-size:14.5px;line-height:1.8;color:var(--ink);margin-top:16px;white-space:pre-wrap}

/* tooltip */
#tip{position:fixed;background:var(--panel2);color:var(--lite);border:1px solid var(--line2);font-size:12px;line-height:1.45;padding:8px 11px;border-radius:6px;pointer-events:none;display:none;z-index:60;max-width:260px}
.sth{text-decoration:none;border-bottom:1px dotted var(--line2);cursor:help}
.bar:hover,.col:hover{filter:brightness(1.25)}

footer{border-top:1px solid var(--line);padding:18px 0 40px;font-size:12px;color:var(--muted)}
.credit{display:block;margin-top:8px;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}

/* gate */
body.gate{background:var(--paper);min-height:100vh}
.gatecard{background:var(--panel);border:1px solid var(--line);border-radius:14px;max-width:460px;margin:14vh auto 0;padding:36px 34px 30px;border-top:4px solid var(--accent)}
.gatecard h1{font-size:17px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin:0}
.gatecard h1 em{font-style:normal;color:var(--accent)}
.gatecard .gsub{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:6px 0 0}
.gatecard p{color:var(--ink2);font-size:14px}
.gatecard form{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
/* keep 16px so iOS Safari does not zoom on focus */
.gatecard input{flex:1;min-width:200px;font-family:var(--mono);font-size:16px;letter-spacing:.12em;text-transform:uppercase;padding:13px 14px;border:1px solid var(--line2);border-radius:8px;background:var(--paper);color:var(--ink)}
.gatecard input::placeholder{color:var(--muted)}
.gatecard input:focus{outline:2px solid var(--accent);outline-offset:0}
.gatecard button{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:13px 24px;border:0;border-radius:8px;background:var(--accent);color:#09090B;cursor:pointer}
.gatecard button:hover{filter:brightness(1.06)}

/* mobile */
@media (max-width:760px){
  body{font-size:14px}
  body>header .wrap{padding:12px 16px;gap:12px}
  .wordmark{font-size:13px;letter-spacing:.16em}
  .subline{font-size:8.5px;letter-spacing:.18em}
  /* mobile: hamburger opens a full-screen overlay with big serif links */
  #menu{display:flex}
  #gsDesk{display:none}
  nav{position:fixed;inset:0;z-index:39;background:var(--paper);flex-direction:column;justify-content:flex-start;gap:0;margin:0;flex-wrap:nowrap;
    padding:80px 26px 40px;border:0;box-shadow:none;opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:opacity .24s ease,transform .24s ease,visibility .24s;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  nav.open{opacity:1;visibility:visible;transform:none}
  nav .gsearch-m{display:block;width:100%;margin:2px 0 22px}
  nav .gsearch-m input{padding-left:14px;font-size:16px;text-align:left}
  nav .gsearch-m .gs-ico{display:none}
  nav button{width:100%;text-align:left;margin:0;padding:15px 2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;
    font-family:var(--serif);font-weight:400;font-size:clamp(28px,9vw,40px);letter-spacing:-.015em;text-transform:none;line-height:1.04;color:var(--ink)}
  nav button:hover{color:var(--accent-ink)}
  nav button.on{color:var(--accent);border-bottom-color:var(--line)}
  .brow{grid-template-columns:96px 1fr 42px;font-size:12px}
  .panel{padding:14px;overflow-x:auto}
  table{min-width:560px}
  .statrow{gap:12px}
  .tiles{grid-template-columns:repeat(2,1fr)}
  .tile .v{font-size:34px}
  #reader .box{padding:18px 16px}
  .wmap{gap:6px 10px}
  .read-grid{grid-template-columns:1fr;gap:26px}
  .read-stats{position:static;grid-template-columns:repeat(3,1fr);gap:14px}
  .rstat .n{font-size:38px}
  .read-body p{font-size:17.5px}
  .gatecard{margin:10vh 16px 0;padding:28px 22px 24px}
}
.rstat .u{font-family:var(--sans);font-size:14px;color:var(--muted);margin:0 6px;text-transform:uppercase;letter-spacing:.08em}
/* regional tab */
.loc{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-left:6px}
.gsc-row td{background:rgba(111,208,138,.09)}
.tier-divider td{padding:14px 8px 5px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);background:none;border-bottom:2px solid var(--line)}
.natctl{display:flex;align-items:center;gap:9px;margin:14px 2px 0;font-size:14px;color:var(--ink2);cursor:pointer;user-select:none;min-height:40px}
.natctl input{accent-color:var(--accent);width:19px;height:19px;margin:0;font-size:16px}
.brow .lbl.natlbl{color:var(--muted)}
.bar.natbar{background:var(--paper);border:1.5px solid var(--accent);opacity:.9}
.rcard h4{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);margin:16px 0 4px}
.rcard .rbody p{font-size:14px;line-height:1.65;color:var(--ink);margin:6px 0;max-width:75ch}
.rcard .statrow b{font-family:var(--serif);font-size:20px}

/* regional v2: logos, accordions, claims */
.rhead{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:8px}
/* dark bg: logos ride on a warm-white chip so dark wordmarks stay visible (Mill City et al.) */
.clogo{max-height:44px;max-width:220px;object-fit:contain;background:var(--lite);padding:5px 10px;border-radius:8px;box-sizing:content-box}
.rmeta{font-size:13px;color:var(--ink2)}
.rmeta b{color:var(--ink);font-size:15px}
.staffrow{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0 4px}
.staffchip{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink2);line-height:1.3}
.staffchip img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 15%}
.staffchip b{color:var(--ink)}
.lsbar{display:inline-block;width:74px;height:8px;background:var(--line);border-radius:4px;overflow:hidden;vertical-align:middle;margin-right:6px}
.lsbar i{display:block;height:100%;background:var(--accent)}
td.ls{white-space:nowrap}
.rcard details{border-top:1px solid var(--line);margin-top:12px}
.rcard summary{cursor:pointer;padding:11px 0;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);list-style:none}
.rcard summary::before{content:"+";display:inline-block;width:18px;color:var(--muted);font-weight:700}
.rcard details[open] summary::before{content:"-"}
.rcard .dbody{padding:2px 0 14px;font-size:14px;line-height:1.6}
.rcard .dbody h4{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:12px 0 3px}
.rcard .dbody ul{margin:4px 0;padding-left:20px}
.rcard .dbody li{margin:3px 0}
.cl-top{font-family:var(--serif);font-size:16px;font-style:italic;color:var(--ink)}
.clrow{border-left:3px solid var(--line);padding:6px 0 6px 12px;margin:10px 0}
.clq{font-weight:600;font-size:13.5px}
.cla{font-size:13px;color:var(--ink2);margin-top:3px}
.vchip{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;padding:1px 7px;border-radius:3px;margin-left:6px;vertical-align:middle;white-space:nowrap}
.v-MATCHES{background:rgba(34,197,94,.14);color:#5BD98A}
.v-PARTIAL{background:rgba(234,179,8,.14);color:#E4C04B}
.v-GAP{background:rgba(239,68,68,.14);color:#F58A8A}
.spkrow{display:block;font-size:13px;padding:3px 0;border-bottom:1px dotted var(--line)}
.spkrow b{float:right;font-variant-numeric:tabular-nums}
@media (max-width:520px){.rhead{gap:10px}.clogo{max-height:34px;max-width:160px}}
/* directory */
.fset{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:10px}
.fl{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);min-width:56px}
.fchip{font-family:var(--sans);font-size:12px;padding:4px 11px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--ink2);cursor:pointer}
.fchip.on{background:rgba(111,208,138,.16);color:var(--accent-ink);border-color:var(--accent)}
.fchip.clear{color:var(--accent-ink);border-color:var(--accent-ink);margin-top:10px}
.ytchip{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;padding:1px 7px;border-radius:3px;white-space:nowrap}
.yt-active-sermons{background:rgba(34,197,94,.14);color:#5BD98A}
.yt-stale{background:rgba(234,179,8,.14);color:#E4C04B}
.yt-no-sermons{background:rgba(182,177,172,.12);color:#B6B1AC}
.yt-none{background:rgba(124,120,115,.12);color:#8F8B86}
.anlink{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--accent-ink);margin-left:6px;text-transform:uppercase}
td.dn{font-size:12px;color:var(--ink2)}
/* directory changes timeline */
.chglist{margin-top:12px}
.chgrow{display:grid;grid-template-columns:46px 108px 1fr;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
.chgrow:last-child{border-bottom:0}
.chgy{font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.2;font-feature-settings:"lnum" 1}
.chgrow .vchip{margin-left:0}
.chgtxt .note{display:block;margin-top:2px}
.c-planted{background:rgba(34,197,94,.14);color:#5BD98A}
.c-closed{background:rgba(239,68,68,.14);color:#F58A8A}
.c-merged{background:rgba(234,179,8,.14);color:#E4C04B}
.c-rebranded{background:rgba(96,165,250,.14);color:#7FB5F2}
.c-succession{background:rgba(182,177,172,.12);color:#B6B1AC}
.c-split{background:rgba(167,139,250,.14);color:#B7A3F5}
.c-left-denomination{background:rgba(234,179,8,.14);color:#E4C04B}
@media (max-width:520px){.chgrow{grid-template-columns:40px 1fr;font-size:12.5px}.chgrow .vchip{justify-self:start}.chgtxt{grid-column:2}}
/* compare */
.cmp-pick{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.cmp-pick>div{min-width:0}
.cmp-pick select{max-width:100%;min-width:220px}
@media (max-width:640px){
  .cmp-pick{flex-direction:column;align-items:stretch;gap:10px}
  .cmp-pick>div{width:100%}
  .cmp-pick select{width:100%;min-width:0}
  .cmp-pick .vs{align-self:center}
}
.cmp-pick .vs{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--muted)}
.cmptable td.cl{font-size:12px;letter-spacing:.04em;color:var(--ink2)}
.cmptable td.hi{font-weight:700}
.cmptable td.med{color:var(--muted)}
.arcgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
.arccell{font-size:10.5px;color:var(--ink2);background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:5px 7px}
.arccell b{display:block;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink)}
/* churches tab: pastor grid + map */
.chtoggle{display:flex;gap:8px;margin-top:22px}
.chtoggle button{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  padding:9px 18px;min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink2);cursor:pointer}
.chtoggle button.on{background:rgba(111,208,138,.16);color:var(--accent-ink);border-color:var(--accent)}
.chtoggle button:hover:not(.on){border-color:var(--line2)}
.dirtoggle{margin-top:16px}
/* Insights hub secondary nav (pill row, horizontally scrollable on mobile, no page overflow) */
/* Insights section nav: a sticky pinned row of tabs, so it reads as real navigation
   between sub-pages (like the header nav and the profile-page anchor nav) instead of a
   set of loose buttons that scroll away. */
.subnav-wrap{position:sticky;top:var(--hdr-h,54px);z-index:30;margin:0 0 20px;padding-top:8px;
  background:var(--paper);border-bottom:1px solid var(--line)}
.subnav{display:flex;gap:2px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.subnav::-webkit-scrollbar{display:none}
.subnav-pill{flex:0 0 auto;font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  min-height:44px;padding:11px 14px;border:0;background:none;color:var(--ink2);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;border-radius:0}
.subnav-pill:hover{color:var(--ink)}
.subnav-pill.on{color:#fff;border-bottom-color:var(--accent)}
/* ---------- Insights: living findings feed ---------- */
.fin-wrap,.del-wrap{margin-top:6px}
.fin-headr{margin:2px 0 18px}
.fin-headr .kicker{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 10px}
.fin-h1{font-family:var(--serif);font-weight:600;font-size:clamp(28px,4.6vw,44px);line-height:1.06;margin:0;letter-spacing:-.01em}
.fin-fresh{font-size:12.5px;color:var(--muted);margin:12px 0 0;max-width:60ch;line-height:1.55}
.fin-filters{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 18px}
.fin-fpill{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 13px;border:1px solid var(--line2);
  border-radius:999px;background:var(--panel);color:var(--ink2);font-family:var(--sans);font-size:11px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:border-color .12s,color .12s,background .12s}
.fin-fpill:hover{color:var(--ink);border-color:var(--line2)}
.fin-fpill.on{color:#0b0b0c;background:var(--accent);border-color:var(--accent)}
.fin-fn{font-variant-numeric:tabular-nums;font-size:10.5px;color:var(--muted)}
.fin-fpill.on .fin-fn{color:rgba(0,0,0,.55)}
.fin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.fin-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:16px 17px 15px;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s,transform .15s}
.fin-card:hover{border-color:var(--line2);box-shadow:0 10px 24px rgba(0,0,0,.4);transform:translateY(-2px)}
.fin-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}
.fin-chip{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:4px 8px;border-radius:5px;
  background:var(--panel2);color:var(--ink2);border:1px solid var(--line2)}
.fin-conf{display:inline-flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fin-conf i{width:8px;height:8px;border-radius:50%;background:var(--muted);display:inline-block}
.fin-conf-high i{background:#4ade80}.fin-conf-med i{background:var(--gold)}.fin-conf-low i{background:#f87171}
.fin-head{font-family:var(--sans);font-weight:600;font-size:15px;line-height:1.3;letter-spacing:-.005em;margin:0 0 10px;color:var(--ink)}
.fin-stat{font-family:var(--serif);font-weight:600;font-size:26px;line-height:1.12;color:var(--accent-ink);
  font-feature-settings:"lnum" 1;margin:0 0 11px;letter-spacing:-.01em}
.fin-detail{font-size:12.5px;line-height:1.5;color:var(--ink2);margin:0 0 9px}
.fin-caveat{font-size:11px;line-height:1.45;color:var(--muted);margin:0 0 11px}
.fin-churches{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px}
.finch{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border-radius:999px;font-size:11.5px;
  border:1px solid var(--line2);background:var(--panel2);text-decoration:none}
a.finch{color:var(--accent-ink)}a.finch:hover{border-color:var(--accent);background:rgba(111,208,138,.1)}
.finch-plain{color:var(--ink2)}
.fin-flagged{border-color:rgba(248,113,113,.38);opacity:.92}
.fin-foot{margin:20px 0 0}
/* category is carried by a subtle tint on the badge, not a left stripe */
.fin-k-correlation .fin-chip{color:#9cc4f5;border-color:rgba(96,165,250,.42)}
.fin-k-extreme .fin-chip{color:var(--accent-ink);border-color:rgba(111,208,138,.42)}
.fin-k-gap .fin-chip{color:#f6a9d0;border-color:rgba(244,114,182,.42)}
.fin-k-trend .fin-chip{color:#86e0a3;border-color:rgba(74,222,128,.42)}
.fin-k-outlier .fin-chip{color:#d3b0f5;border-color:rgba(192,132,252,.42)}
.fin-k-seasonal .fin-chip{color:var(--gold);border-color:rgba(224,184,74,.42)}
.fin-k-distribution .fin-chip{color:#7fe6d8;border-color:rgba(45,212,191,.42)}
.fin-k-succession .fin-chip{color:#fbb37a;border-color:rgba(251,146,60,.42)}
/* ---------- Curiosities: delightful findings ---------- */
.del-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.del-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 19px 16px;
  display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s,transform .15s}
.del-card:hover{border-color:var(--line2);box-shadow:0 10px 24px rgba(0,0,0,.4);transform:translateY(-2px)}
.del-cat{align-self:flex-start;font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent-ink);padding:4px 9px;border:1px solid rgba(111,208,138,.35);border-radius:999px;margin-bottom:11px}
.del-title{font-family:var(--serif);font-weight:600;font-size:19px;line-height:1.22;margin:0 0 10px;color:var(--ink);letter-spacing:-.01em}
.del-stat{font-size:13px;line-height:1.55;color:var(--ink);margin:0 0 10px}
.del-why{font-size:13px;line-height:1.55;color:var(--ink2);font-style:italic;margin:0 0 11px}
.del-churches{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 11px}
.del-caveat{font-size:11px;line-height:1.45;color:var(--muted);margin:auto 0 0;padding-top:4px;border-top:1px solid var(--line)}
/* ---------- The Essay ---------- */
.read-essay{max-width:70ch;margin-left:auto;margin-right:auto}
.essay-body{margin-top:26px}
.essay-body p{font-family:var(--serif);font-size:19px;line-height:1.7;margin:0 0 1.15em;color:var(--ink)}
.essay-body p:first-of-type::first-letter{float:left;font-family:var(--serif);font-weight:600;font-size:4.6em;line-height:.72;padding:8px 12px 0 0;color:var(--accent-ink)}
.essay-sub{font-family:var(--serif);font-weight:600;font-size:24px;line-height:1.2;margin:1.4em 0 .5em;color:var(--ink);text-transform:none;letter-spacing:-.01em}
@media(max-width:640px){
  .fin-grid,.del-grid{grid-template-columns:1fr}
  .fin-stat{font-size:23px}
  .essay-body p{font-size:17px}
  .essay-body p:first-of-type::first-letter{font-size:3.9em}
}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;margin-top:16px}
.pcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;
  display:flex;flex-direction:column;transition:box-shadow .15s ease,transform .15s ease}
.pcard:hover{box-shadow:0 10px 24px rgba(0,0,0,.5);border-color:var(--line2);transform:translateY(-2px)}
.pphoto{aspect-ratio:4/4.6;width:100%;position:relative;background:var(--panel2);overflow:hidden}
.pphoto img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}
.pinit{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-weight:600;font-size:64px;color:var(--lite);letter-spacing:.04em}
.pinit::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--accent)}
.pbody{padding:12px 14px 14px}
.pname{font-weight:600;font-size:15px;letter-spacing:.03em;line-height:1.3}
.pchurch{font-size:12px;color:var(--accent-ink);font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-top:3px}
.pmeta{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.pstats{display:flex;gap:14px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);
  font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pstats b{display:block;font-family:var(--serif);font-size:19px;font-weight:600;color:var(--ink);line-height:1.15;letter-spacing:0;font-feature-settings:"lnum" 1}
#churchMap{height:70vh;min-height:340px;border:1px solid var(--line);border-radius:10px;margin-top:16px;background:var(--panel);z-index:1}
.chpin{background:var(--accent);width:16px;height:16px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  border:2px solid #F6F3EE;box-shadow:0 2px 6px rgba(0,0,0,.55)}
.chpin.gsc{background:var(--gold)}
/* Leaflet dark: popups, zoom controls, attribution styled for Carto dark tiles */
.leaflet-popup-content-wrapper{border-radius:8px;font-family:var(--sans);background:var(--panel2);color:var(--ink);border:1px solid var(--line2)}
.leaflet-popup-tip{background:var(--panel2)}
.leaflet-popup-content{font-size:13px;line-height:1.5;margin:12px 16px}
.leaflet-popup-content b{letter-spacing:.03em}
.leaflet-popup-content .note{font-size:11px}
.leaflet-popup-content a{color:var(--accent-ink)}
.leaflet-container a.leaflet-popup-close-button{color:var(--muted)}
.leaflet-bar a{background:var(--panel2)!important;color:var(--ink)!important;border-bottom:1px solid var(--line2)!important}
.leaflet-bar a:hover,.leaflet-bar a:focus{background:var(--line2)!important;color:var(--lite)!important}
.leaflet-bar a.leaflet-disabled{background:var(--panel)!important;color:var(--muted)!important}
.leaflet-control-attribution{background:rgba(9,9,11,.75)!important;color:var(--muted)}
.leaflet-control-attribution a{color:var(--ink2)}
@media (max-width:600px){.pgrid{grid-template-columns:repeat(2,1fr);gap:12px}.pinit{font-size:44px}.pbody{padding:10px 11px 12px}.pstats{gap:10px}.pstats b{font-size:16px}}
@media (max-width:339px){.pgrid{grid-template-columns:1fr}}

/* global church search (desktop header + top of hamburger) */
/* desktop header runs two rows: brand + search on top, nav tabs underneath */
body>header .wrap{flex-wrap:wrap}
.gsearch{position:relative;margin-left:auto;width:248px;min-width:0;flex-shrink:1}
body>header nav{margin-left:auto;margin-top:-4px}
.gsearch input{width:100%;font:inherit;font-size:15px;padding:9px 12px 9px 36px;border:1px solid var(--line2);border-radius:10px;
  background:rgba(246,243,238,.045);color:var(--lite);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.gsearch input::placeholder{color:rgba(246,243,238,.42)}
.gsearch input:hover{border-color:rgba(246,243,238,.32)}
.gsearch input:focus{outline:none;border-color:var(--accent);background:rgba(246,243,238,.07);box-shadow:0 0 0 3px rgba(111,208,138,.15)}
.gsearch .gs-ico{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:rgba(246,243,238,.5);pointer-events:none}
.gs-list{display:none;position:absolute;top:calc(100% + 6px);right:0;width:300px;max-width:86vw;background:var(--charcoal);
  border:1px solid rgba(246,243,238,.15);border-bottom:3px solid var(--accent);border-radius:8px;box-shadow:0 14px 28px rgba(0,0,0,.3);z-index:46;overflow:hidden}
.gs-item{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;border:0;background:none;padding:10px 13px;cursor:pointer;font-family:var(--sans);min-height:44px;justify-content:center}
.gs-item:hover,.gs-item.sel{background:rgba(246,243,238,.1)}
.gs-name{color:var(--lite);font-size:13px;font-weight:500}
.gs-sub{color:rgba(246,243,238,.5);font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.gs-sub i{font-style:normal;color:var(--accent);font-weight:600;margin-left:4px}
.gsearch-m{display:none}
@media (max-width:760px){
  #gsDesk{display:none}
  .gsearch-m{display:block;width:auto;margin:0;padding:12px 16px 6px}
  .gsearch-m input{padding:11px 13px}
  .gsearch-m .gs-list{position:static;width:100%;max-width:none;margin-top:8px;border-radius:8px;box-shadow:none}
}

/* church name links read as text until hovered */
.chlink{color:inherit;text-decoration:none}
.chlink:hover{color:var(--accent-ink);text-decoration:underline}
.cmptable th .chlink{color:inherit}

/* per-church pages */
.cp-back{margin-top:20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cp-back a{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--accent-ink)}
.cp-back a:hover{text-decoration:underline}
.cp-share{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 12px;border:1px solid var(--line2);border-radius:8px;
  background:var(--panel);color:var(--ink2);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.cp-share:hover{border-color:var(--accent);color:var(--accent-ink)}
.cp-share svg{flex-shrink:0}
.cp-copied{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);opacity:0;transition:opacity .2s ease}
.cp-copied.show{opacity:1}
/* church-page actions: website link-out + is-this-your-church */
.cp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.cp-web,.cp-claim{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:9px 15px;border-radius:8px;
  font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.02em;cursor:pointer;text-decoration:none}
.cp-web{background:rgba(111,208,138,.14);border:1px solid var(--accent);color:var(--accent-ink)}
.cp-web:hover{background:rgba(111,208,138,.22)}
.cp-web svg{flex-shrink:0}
.cp-claim{background:var(--panel);border:1px solid var(--line2);color:var(--ink)}
.cp-claim:hover{border-color:var(--accent);color:var(--accent-ink)}
/* church-page sticky secondary nav (horizontally scrollable pill row) */
.cp-subnav{position:sticky;top:var(--hdr-h,54px);z-index:30;display:flex;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;background:var(--paper);border-bottom:1px solid var(--line);margin:14px 0 4px;padding:10px 0 2px}
.cp-subnav::-webkit-scrollbar{display:none}
.cp-subnav button{flex:0 0 auto;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  min-height:42px;padding:8px 12px;border:0;background:none;color:var(--ink2);cursor:pointer;white-space:nowrap;border-radius:0}
.cp-subnav button:hover{color:var(--accent-ink)}
/* collapsible identity block */
.cp-collapse{padding:0}
.cp-collapse>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;min-height:44px}
.cp-collapse>summary::-webkit-details-marker{display:none}
.cp-collapse>summary h2{margin:0}
.cp-collapse .cp-chev{font-size:22px;line-height:1;color:var(--muted);font-weight:400;transition:transform .18s ease;flex-shrink:0}
.cp-collapse[open]>summary .cp-chev{transform:rotate(45deg)}
.cp-collapse>.dbody{padding:0 14px 16px}
.cp-head{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.cp-id{min-width:0}
.cp-id h1{font-family:var(--serif);font-weight:600;font-size:clamp(28px,4.5vw,42px);line-height:1.1;margin:6px 0 0;letter-spacing:-.01em;overflow-wrap:break-word}
.cp-id .clogo{max-height:40px;max-width:200px;display:block}
.cp-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:9px;font-size:13px}
.cp-tier{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;padding:2px 8px;border-radius:3px;white-space:nowrap}
.t-gsc{background:rgba(224,184,74,.16);border:1px solid var(--gold);color:var(--gold)}
.t-regional{background:rgba(111,208,138,.16);color:var(--accent-ink)}
.t-national{background:var(--panel);border:1px solid var(--accent);color:var(--accent-ink)}
.t-census{background:var(--panel2);border:1px solid var(--line);color:var(--ink2)}
.cp-lead{display:flex;align-items:center;gap:14px;flex-shrink:0}
.cp-lead img{width:84px;height:84px;border-radius:50%;object-fit:cover;object-position:50% 15%}
.cp-leadinit{width:84px;height:84px;font-size:28px}
.cp-lead b{display:block;font-size:15px;line-height:1.3}
.cp-lead .note{display:block;margin-top:2px}
/* church-page stat grids: clean value-forward cards with hairline dividers (no left-accent) */
.cp-statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:1px;background:var(--line);border-radius:11px;overflow:hidden;margin:14px 0 10px}
.cp-statrow>span{display:flex;flex-direction:column-reverse;align-items:flex-start;gap:5px;padding:14px 15px;background:var(--panel);font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);line-height:1.25}
.cp-statrow>span b{color:var(--ink);font-family:var(--serif);font-size:27px;font-weight:600;letter-spacing:0;line-height:1;font-feature-settings:"lnum" 1,"tnum" 1;word-break:break-word}
.cp-statrow .sth{border-bottom:1px dotted var(--line2);cursor:help}
@media(max-width:520px){.cp-statrow{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}.cp-statrow>span b{font-size:23px}}
.cp-spkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:12px}
.cp-spk{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.cp-spk img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 15%;flex-shrink:0}
.cp-spk .av-init{width:44px;height:44px;font-size:16px;flex-shrink:0}
.cp-spk>div{min-width:0}
.cp-spk b{display:block;font-size:13.5px;line-height:1.25;overflow-wrap:break-word}
.cp-spk .note{display:block;margin-top:1px}
.cp-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.cp-tabs button{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink2);cursor:pointer;min-height:42px}
.cp-tabs button:hover{border-color:var(--line2);color:var(--ink)}
.cp-godeep{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-size:12px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;padding:12px 18px;border:1px solid var(--accent);border-radius:8px;
  background:var(--panel);color:var(--accent-ink);text-decoration:none;min-height:44px}
.cp-godeep:hover{background:var(--accent);color:#0a0a0a}
.cp-godeep svg{flex-shrink:0}
.cp-roughcue{opacity:.7;font-style:italic}
.cp-facts{display:grid;gap:10px;margin-top:10px}
.cp-fact{display:grid;grid-template-columns:130px 1fr;gap:10px;font-size:13.5px;align-items:baseline}
.cp-fact>span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media (max-width:600px){
  .cp-head{flex-direction:column;align-items:flex-start}
  .cp-fact{grid-template-columns:1fr;gap:2px}
  .cp-lead img,.cp-leadinit{width:64px;height:64px}
}

/* rigor map v2 */
.maplegend{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px;font-size:11.5px;color:var(--ink2);align-items:center}
.maplegend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.maplegend .lg-gsc{background:var(--gold)}
.maplegend .lg-noco{background:var(--accent)}
.maplegend .lg-nat{background:var(--paper);border:2px solid var(--accent);width:7px;height:7px}
.rigorlist{display:none;margin-top:8px}
.rlrow{display:grid;grid-template-columns:1fr 62px 74px;gap:8px;align-items:center;padding:10px 2px;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink);text-decoration:none}
.rlrow span:nth-child(2),.rlrow span:nth-child(3){text-align:right;font-variant-numeric:tabular-nums}
.rlhead{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--line2);padding:6px 2px}
.rlhead span{text-align:right}
.rlhead span:first-child{text-align:left}
.rl-gsc span:first-child{font-weight:700}
.rl-national{color:var(--muted)}
@media (max-width:519px){.rigorsvg,.maplegend{display:none}.rigorlist{display:block}}

/* mobile tap targets */
@media (max-width:760px){
  .fchip{padding:9px 14px;min-height:38px}
  .anlink{display:inline-block;padding:10px 6px}
  .rcard summary{padding:14px 0}
}

/* honesty-as-UI: "how we measure" affordance + methodology note (community-notes style) */
.st-method{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  text-decoration:none;border:0;border-bottom:1px dotted var(--line2);background:none;padding:0 0 1px;cursor:pointer;white-space:nowrap;vertical-align:baseline}
.st-method:hover{color:var(--accent-ink);border-bottom-color:var(--accent-ink)}
.tile .st-method{display:inline-block;margin-top:6px}
.stnote{border:1px solid var(--line2);border-left:3px solid var(--gold);border-radius:8px;background:var(--panel);
  padding:16px 18px;margin-top:18px}
.stnote .stl{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.stnote p{font-size:13px;line-height:1.65;color:var(--ink2);margin:6px 0;max-width:80ch}
.stnote p b{color:var(--ink);font-weight:600}
.stnote .stq{font-family:var(--mono);font-size:12px;color:var(--muted);border-left:2px solid var(--line);padding-left:10px;margin:8px 0}

/* AID footer credit */
.aidcredit{display:inline-flex;align-items:center;gap:9px;margin-left:auto;text-decoration:none;
  font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);transition:color .25s ease}
.aidcredit .dg{opacity:.55;transition:opacity .25s ease}
.aidcredit .gold{fill:var(--gold)}
.aidcredit:hover{color:var(--ink)}
.aidcredit:hover .dg{opacity:1}
footer .wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.foot-method{font-family:var(--sans);font-size:12px;color:var(--muted);background:none;border:0;padding:0;cursor:pointer;border-bottom:1px dotted var(--line2)}
.foot-method:hover{color:var(--ink2)}
footer .aidcredit{margin-left:auto}

/* ---------- Community notes ---------- */
.cxflag{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
  background:none;border:1px solid var(--line);border-radius:4px;padding:1px 6px;margin-left:4px;cursor:pointer;
  vertical-align:middle;white-space:nowrap;transition:color .18s ease,border-color .18s ease}
.cxflag:hover{color:var(--accent-ink);border-color:var(--line2)}
.cxpanel{border-left:3px solid var(--accent)}
.cxbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.cxbar-dir{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.cxbarnote{font-size:12px;line-height:1.6;color:var(--muted);max-width:70ch}
.cxbarnote b{color:var(--ink);font-weight:600}
.cxbtns{display:flex;gap:9px;flex-wrap:wrap;flex-shrink:0}
.cxopen{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--paper);
  background:var(--accent);border:1px solid var(--accent);border-radius:7px;padding:8px 14px;cursor:pointer;
  white-space:nowrap;transition:background .18s ease}
.cxopen:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.cxghost{background:none;color:var(--ink2);border-color:var(--line2)}
.cxghost:hover{background:var(--panel2);color:var(--ink)}

/* Community notes log inside the methodology block */
.cxlog{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line2)}
.cxlog .stl{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.cxlog p{font-size:12.5px;line-height:1.6;color:var(--ink2);margin:4px 0 10px;max-width:80ch}
.cxloglist{display:flex;flex-direction:column;gap:7px}
.cxlogrow{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:baseline;font-size:12.5px}
.cxlogd{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.03em;white-space:nowrap}
.cxlogt{color:var(--ink2)}

/* Modal */
#cx{position:fixed;inset:0;background:rgba(0,0,0,.72);display:none;align-items:flex-start;justify-content:center;padding:5vh 16px;z-index:70}
#cx.open{display:flex}
#cx .cxbox{background:var(--panel);border:1px solid var(--line2);border-top:3px solid var(--accent);border-radius:12px;
  max-width:520px;width:100%;max-height:90vh;overflow:auto;padding:22px 24px;box-shadow:0 18px 40px rgba(0,0,0,.5)}
.cxhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.cxkick{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:3px}
.cxt{font-family:var(--serif);font-size:26px;font-weight:600;color:var(--ink);line-height:1.1}
.cxx{background:none;border:0;color:var(--muted);font-size:26px;line-height:1;cursor:pointer;padding:0 2px}
.cxx:hover{color:var(--ink)}
.cxsub{font-size:13px;line-height:1.6;color:var(--ink2);margin:8px 0 16px;max-width:60ch}
.cxfield{display:block;margin-bottom:13px}
.cxfield>span{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.cxfield input,.cxfield textarea{width:100%;font:inherit;font-size:16px;padding:9px 11px;border:1px solid var(--line2);
  border-radius:7px;background:var(--paper);color:var(--ink);resize:vertical}
.cxfield input:focus,.cxfield textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(111,208,138,.18)}
.cxfield textarea{line-height:1.5;min-height:64px}
.cxguard{font-size:11.5px;line-height:1.55;color:var(--muted);background:var(--panel2);border:1px solid var(--line);
  border-radius:7px;padding:9px 11px;margin:2px 0 14px}
.cxactions{display:flex;gap:10px;justify-content:flex-end;align-items:center}
.cxcancel{font:inherit;font-size:13px;color:var(--ink2);background:none;border:1px solid var(--line2);border-radius:7px;padding:8px 14px;cursor:pointer}
.cxcancel:hover{background:var(--panel2);color:var(--ink)}
.cxsend{font:inherit;font-size:13px;font-weight:600;color:var(--paper);background:var(--accent);border:1px solid var(--accent);border-radius:7px;padding:8px 18px;cursor:pointer}
.cxsend:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.cxstatus{font-size:12px;line-height:1.55;margin:12px 0 0;color:var(--muted)}
.cxstatus.ok{color:var(--taylor)}
@media (max-width:520px){
  .cxbar{flex-direction:column;align-items:flex-start;gap:12px}
  .cxbtns{width:100%}
  .cxopen,.cxghost{flex:1;text-align:center}
  #cx{padding:0}
  #cx .cxbox{border-radius:0;max-height:100vh;min-height:100vh}
  .cxt{font-size:23px}
  .cxlogrow{grid-template-columns:78px 1fr;gap:9px}
}

/* ========================= Trend engine: quarterly time-series charts ========================= */
.trends .read-head{margin-bottom:6px}
.tselwrap{margin-top:14px}
.tsel{display:inline-flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 12px}
.tsel>span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.tsel select{appearance:none;-webkit-appearance:none;background:var(--panel2);color:var(--ink);border:1px solid var(--line2);border-radius:7px;
  font-family:var(--sans);font-size:13px;font-weight:500;padding:7px 30px 7px 11px;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237C7873' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 10px center}
.tsel select:focus{outline:none;border-color:var(--accent)}
.tsel optgroup{background:var(--charcoal);color:var(--muted);font-style:normal}
.tsel option{background:var(--charcoal);color:var(--ink)}
.tpick .tchips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.tchip{border:1px solid var(--line2);background:var(--panel2);color:var(--ink2);font-family:var(--sans);font-size:11.5px;font-weight:500;
  letter-spacing:.02em;padding:6px 11px;border-radius:999px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.tchip:hover{color:var(--ink);border-color:var(--muted)}
.tchip.on{background:rgba(111,208,138,.16);border-color:var(--accent);color:var(--accent-ink)}
.tpanel h2 .tsub,.tpanel-head h2 .tsub{font-weight:400;text-transform:none;letter-spacing:.02em;color:var(--muted);font-size:11px;margin-left:7px}
.tsub{font-weight:400;text-transform:none;letter-spacing:.02em;color:var(--muted);font-size:11px;margin-left:7px}
.tchart{overflow:hidden;margin-top:12px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.tchart svg{display:block;width:100%;height:auto}
.tchart text{font-family:var(--mono)}
.tlegend{display:flex;flex-wrap:wrap;gap:14px;margin-top:9px}
.tlegend span{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink2)}
.tlegend i{width:16px;height:3px;border-radius:2px;display:inline-block}
.tnote{line-height:1.55}
.tpanel-head h2{color:var(--accent-ink)}
@media (max-width:640px){
  .tsel{width:100%}
  .tsel select{flex:1;min-width:0}
}
/* selected-theme line panel: clear emphasis so the drill-down reads as active */
.tpanel-sel{border-top:3px solid var(--accent)}
.tpanel-sel h2{color:var(--accent-ink)}

/* Landscape report: editorial section heads + confidence key */
.landscape .read-body h3{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink);margin:2em 0 .5em}
.landscape .read-body h3:first-child{margin-top:0}
.landscape .rstat .u{display:block;font-size:12px;margin:2px 0}
.att-key{display:grid;gap:8px;margin:10px 0 4px}
.att-keyrow{display:grid;grid-template-columns:74px 1fr;gap:12px;align-items:baseline;font-size:12.5px;color:var(--ink2);line-height:1.5}
/* attendance figures: estimate-first, confidence-tagged, low always caveated */
.att{white-space:nowrap;font-variant-numeric:tabular-nums;cursor:default}
.att-high{color:var(--ink)}
.att-medium{color:var(--ink2)}
.att-low{color:var(--muted);font-style:italic}
.att-flag{font-family:var(--mono);font-style:normal;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line2);border-radius:3px;padding:0 3px;margin-left:5px;vertical-align:1px}
.att-none{color:var(--muted);cursor:help}
.th-q{color:var(--muted);font-weight:400;text-transform:none;letter-spacing:0;cursor:help}
.attpanel .attval{font-family:var(--serif);font-size:30px;font-weight:600;color:var(--ink);line-height:1.1;margin:2px 0 8px;font-feature-settings:"lnum" 1}
.att-conf{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:20px;vertical-align:6px;margin-left:8px}
.att-conf.c-high{color:#8FD98F;background:rgba(143,217,143,.12);border:1px solid rgba(143,217,143,.3)}
.att-conf.c-medium{color:var(--gold);background:rgba(224,184,74,.12);border:1px solid rgba(224,184,74,.3)}
.att-conf.c-low{color:var(--muted);background:var(--panel2);border:1px solid var(--line2)}
.att-caveat{font-size:13px;color:var(--gold);border-left:2px solid rgba(224,184,74,.5);padding-left:12px;margin:8px 0}
.att-noteline{color:var(--ink2)}

/* header lockup: waveform mark + wordmark; "Trend" in orange */
.wordmark{font-size:18px;letter-spacing:.12em}
.wordmark em{margin-left:.02em}
@media (max-width:520px){.wordmark{font-size:15px;letter-spacing:.1em}}

/* ===== flagship 2x2 rigor map: unmissable ===== */
.rigorpanel{border-top:3px solid var(--accent);padding-top:16px}
.rigorpanel h2{font-size:13.5px;color:var(--ink)}
.rigorsvg{margin-top:14px;border-radius:10px}
/* style map keeps its own wrapper so the rigor-chart mobile hide never touches it;
   on small screens it stays legible and scrolls sideways instead of squishing to nothing */
.smapsvg{margin-top:8px;border-radius:10px}
.smapsvg svg{display:block;width:100%}
/* style-map filter chips */
.smap-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}
.smap-flabel{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.smap-chip{font-family:var(--sans);font-size:12.5px;background:var(--panel2);border:1px solid var(--line2);border-radius:999px;padding:6px 12px;color:var(--ink2);cursor:pointer;min-height:34px;display:inline-flex;align-items:center;gap:6px}
.smap-chip span{font-variant-numeric:tabular-nums;color:var(--muted);font-size:11px}
.smap-chip:hover{border-color:var(--accent)}
.smap-chip.on{background:var(--accent);border-color:var(--accent);color:#0a0a0a}
.smap-chip.on span{color:rgba(0,0,0,.55)}
.smap-all{border-style:dashed}
.smap-tapnote{margin-top:10px}
.rmdot{transition:transform .12s ease}
.rmdot:hover{filter:brightness(1.15)}
.rigorsvg svg{display:block}

/* ===== directory: search bar with funnel filter ===== */
.dirfilterpanel{overflow:visible}
.dirsearch{position:relative;display:flex;align-items:center;gap:10px}
.dirsearch .ds-ico{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.dirsearch input[type=search]{flex:1;max-width:none;padding-left:38px}
.funnelbtn{display:inline-flex;align-items:center;gap:7px;position:relative;flex-shrink:0;
  font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.06em;
  padding:10px 14px;border:1px solid var(--line2);border-radius:8px;background:var(--panel2);color:var(--ink2);cursor:pointer;
  min-height:44px;transition:border-color .15s,color .15s,background .15s}
.funnelbtn:hover{color:var(--ink);border-color:var(--muted)}
.funnelbtn.on{background:rgba(111,208,138,.14);border-color:var(--accent);color:var(--accent-ink)}
.funnelbtn.has:not(.on){border-color:var(--accent);color:var(--accent-ink)}
.funnelbtn .fcount{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;
  font-family:var(--mono);font-size:10px;font-weight:600;line-height:1;border-radius:9px;background:var(--accent);color:var(--paper)}
.dirfilters{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);animation:fadein .16s ease}
@keyframes fadein{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.activefilters{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:12px}
.afchip{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:12px;padding:5px 11px;
  border:1px solid var(--accent);border-radius:14px;background:rgba(111,208,138,.14);color:var(--accent-ink);cursor:pointer}
.afchip span{font-size:13px;line-height:1;opacity:.8}
.afchip:hover{background:rgba(111,208,138,.22)}
@media (max-width:520px){.funnelbtn .funnellabel{display:none}.funnelbtn{padding:10px 12px}}

/* ===== community notes: note-card styling ===== */
.notecards{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.notecard{border:1px solid var(--line2);border-radius:9px;background:var(--panel2);padding:12px 14px}
.notecard-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.notecard-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:11px;font-weight:600;
  letter-spacing:.02em;color:var(--accent-ink)}
.notecard-badge::before{content:"";width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--accent);
  box-shadow:0 0 0 3px rgba(111,208,138,.2)}
.notecard .cxlogd{font-family:var(--mono);font-size:10.5px;color:var(--muted)}
.notecard-body{font-size:13.5px;line-height:1.55;color:var(--ink);margin:0}
.notecard-foot{font-size:11px;color:var(--muted);margin:8px 0 0;padding-top:7px;border-top:1px dashed var(--line)}

/* ===== church story + nearest neighbors ===== */
.storypanel{border-left:3px solid var(--gold)}
.storybody p{font-size:14.5px;line-height:1.7;color:var(--ink);margin:0 0 .8em;max-width:74ch}
.storybody p:last-child{margin-bottom:0}
.storybody h4{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px}
.storybody .chglist{margin-top:2px}
.nngrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:14px}
.nncard{display:block;border:1px solid var(--line);border-radius:10px;background:var(--panel2);padding:13px 15px;
  text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s,box-shadow .15s}
.nncard:hover{border-color:var(--line2);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.4)}
.nnname{font-weight:600;font-size:14.5px;letter-spacing:.01em;line-height:1.25}
.nnloc{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:4px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.nntier{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;padding:1px 6px;border-radius:3px}
.nnstats{display:flex;gap:14px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line);
  font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.nnstats b{display:block;font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink);line-height:1.1;letter-spacing:0;font-feature-settings:"lnum" 1}
@media (max-width:520px){.nngrid{grid-template-columns:1fr;gap:10px}.nnstats{gap:22px}}

/* ===== Profiles: lightweight index of links to the one canonical church page ===== */
.pxgroup{margin-top:24px}
.pxglabel{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);
  display:flex;align-items:center;gap:8px;margin:0 0 12px}
.pxglabel span{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.06em;
  border:1px solid var(--line2);border-radius:10px;padding:1px 7px}
.pxgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.pxcard{display:block;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:14px 16px;
  text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s,box-shadow .15s}
.pxcard:hover{border-color:var(--line2);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.4)}
.pxtop{display:flex;align-items:center;gap:12px;min-height:44px}
.pxlogo{display:inline-flex;align-items:center;justify-content:center;background:var(--lite);border-radius:8px;
  padding:5px 8px;flex-shrink:0}
.pxlogo img{max-height:30px;max-width:110px;object-fit:contain;display:block}
.pxmark{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;
  border-radius:10px;background:var(--panel2);border:1px solid var(--line2);font-family:var(--serif);font-weight:600;
  font-size:18px;color:var(--accent-ink)}
.pxname{font-weight:600;font-size:15px;letter-spacing:.01em;line-height:1.25}
.pxloc{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.pxstats{display:flex;gap:16px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line);
  font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pxstats b{display:block;font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink);line-height:1.1;letter-spacing:0;font-feature-settings:"lnum" 1}
@media (max-width:400px){.pxgrid{grid-template-columns:1fr}}

/* ===== Trends: What moved + theme heatmap ===== */
.wmpanel .wmcols{display:grid;grid-template-columns:1fr 1fr;gap:16px 26px;margin-top:14px}
.wmhead{font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}
.wmhead-up{color:#5BD98A}
.wmhead-down{color:#F58A8A}
.wmpanel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.wmline{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;width:100%;text-align:left;background:none;border:0;
  padding:7px 8px;border-radius:7px;cursor:pointer;color:var(--ink);font:inherit;transition:background .14s}
.wmline:hover{background:var(--panel2)}
.wmt{font-size:14px;font-weight:500}
.wmd{font-family:var(--mono);font-size:11.5px;font-weight:600}
.wmd-up{color:#5BD98A}
.wmd-down{color:#F58A8A}
.wmv{font-size:11px;color:var(--muted)}
.wmempty{font-size:12.5px;color:var(--muted);padding:7px 8px}
@media (max-width:520px){.wmpanel .wmcols{grid-template-columns:1fr;gap:10px}}
.hmwrap{margin-top:12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:8px 8px 4px;overflow:hidden}
.hmcell{cursor:pointer}
.hmcell:hover{stroke:var(--lite);stroke-width:1.4}
.hmkey{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:11px;color:var(--muted)}
.hmramp{display:inline-block;width:120px;height:9px;border-radius:5px;
  background:linear-gradient(90deg,#141416,#6FD08A)}
.hmnote{margin-left:auto;font-style:italic}
@media (max-width:520px){.hmnote{width:100%;margin:4px 0 0;order:3}}

/* ============================ Home / landing (dramatic) ============================ */
/* full-bleed helper: escape the .wrap max-width so bands span edge to edge.
   html{overflow-x:clip} (below) absorbs the scrollbar-gutter so 100vw never scrolls. */
.home-v2{margin:0}
.fw{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw}
.band-inner{max-width:1160px;margin:0 auto;padding:0 22px}
/* shared flex-number type */
.flex-num{font-family:var(--serif);font-weight:600;line-height:.9;color:var(--accent-ink);
  letter-spacing:-.02em;font-feature-settings:"lnum" 1,"tnum" 1;font-variant-numeric:tabular-nums}

/* ---- HERO: full viewport ---- */
.hv-hero{min-height:100svh;display:flex;align-items:center;position:relative;
  background:radial-gradient(120% 90% at 50% -10%,rgba(111,208,138,.10),transparent 60%),var(--paper)}
.hv-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;pointer-events:none;
  background:linear-gradient(to bottom,transparent,var(--charcoal))}
.hv-hero-inner{width:100%;padding-top:48px;padding-bottom:88px;position:relative;z-index:1}
.hv-flex{display:flex;flex-direction:column;gap:14px;margin-bottom:26px}
.hv-flex-lead{display:flex;flex-direction:column;gap:6px}
.hv-flex-big{font-size:clamp(72px,17vw,190px);display:block}
.hv-flex-lab{font-size:clamp(12px,1.4vw,15px);letter-spacing:.02em;color:var(--ink2);line-height:1.3}
.hv-flex-sub{display:flex;gap:12px 44px;flex-wrap:wrap;margin-top:4px}
.hv-flex-item{display:flex;align-items:baseline;gap:10px}
.hv-flex-mid{font-size:clamp(26px,4.4vw,40px);color:var(--ink)}
.hv-flex-lab2{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.hv-flex-lab2-stack{display:flex;flex-direction:column;gap:3px}
.hv-flex-lab2-stack em{font-style:normal;text-transform:none;letter-spacing:.01em;color:var(--ink2);
  font-size:10.5px;line-height:1.25;max-width:20ch}
.hv-hook{font-family:var(--serif);font-weight:600;font-size:clamp(30px,5.6vw,56px);line-height:1.02;
  letter-spacing:-.015em;margin:0 0 26px;color:var(--ink);max-width:16em}
/* the alive element */
.hv-live{display:block;width:100%;max-width:640px;text-align:left;cursor:pointer;color:var(--ink);
  background:linear-gradient(180deg,rgba(20,20,22,.85),rgba(20,20,22,.5));
  border:1px solid var(--line);border-radius:16px;padding:16px 20px 14px;position:relative;overflow:hidden;
  transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.hv-live::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,var(--accent),transparent 66%)}
.hv-live:hover{border-color:var(--line2);transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.5)}
.hv-live-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:6px}
.hv-live-kick{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink);
  display:inline-flex;align-items:center;gap:8px}
.hv-live-kick::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 0 rgba(111,208,138,.55);animation:hvpulse 2.4s ease-out infinite}
@keyframes hvpulse{0%{box-shadow:0 0 0 0 rgba(111,208,138,.5)}70%{box-shadow:0 0 0 8px rgba(111,208,138,0)}100%{box-shadow:0 0 0 0 rgba(111,208,138,0)}}
.hv-live-chip{flex-shrink:0;font-family:var(--serif);font-weight:600;font-size:26px;line-height:1;white-space:nowrap;letter-spacing:-.01em}
.hv-live-chip em{font-style:normal;font-size:14px;color:var(--muted);margin-left:1px}
.hv-live-chip-up{color:#5BD98A}
.hv-live-chip-down{color:#F58A8A}
.hv-live-h{font-family:var(--serif);font-size:clamp(17px,2.4vw,22px);font-weight:600;line-height:1.2;color:var(--ink);max-width:22em}
.hv-spark-wrap{margin:12px 0 0;height:104px}
.hv-spark{width:100%;height:104px;display:block}
.hv-spark-line{stroke-dasharray:1;stroke-dashoffset:1;animation:hvdraw 1.7s cubic-bezier(.6,.02,.2,1) .35s forwards}
@keyframes hvdraw{to{stroke-dashoffset:0}}
.hv-spark-dot{opacity:0;animation:hvfade .5s ease 1.9s forwards}
.hv-spark-area{opacity:0;animation:hvfade 1s ease 1s forwards}
@keyframes hvfade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .hv-spark-line{animation:none;stroke-dashoffset:0}
  .hv-spark-dot,.hv-spark-area{animation:none;opacity:1}
  .hv-live-kick::before{animation:none}
}
.hv-live-axis{display:flex;justify-content:space-between;margin-top:2px;font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--muted)}
.hv-note{font-size:12px;color:var(--muted);line-height:1.6;margin:22px 0 0}
/* scroll cue */
.hv-scroll{position:absolute;left:22px;bottom:22px;display:inline-flex;flex-direction:column;align-items:center;gap:4px;
  background:none;border:0;cursor:pointer;color:var(--muted);font-family:var(--sans);font-size:10.5px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;padding:6px}
.hv-scroll svg{animation:hvbob 2.2s ease-in-out infinite}
.hv-scroll:hover{color:var(--accent-ink)}
@keyframes hvbob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media (prefers-reduced-motion:reduce){.hv-scroll svg{animation:none}}

/* ---- SCROLL-STORY BANDS ---- */
.hv-band{padding:76px 0}
.hv-band-charcoal{background:var(--charcoal)}
.hv-band-paper{background:var(--paper)}
.hv-band-glow{background:
  radial-gradient(90% 130% at 88% 10%,rgba(111,208,138,.13),transparent 55%),
  radial-gradient(70% 120% at 6% 90%,rgba(224,184,74,.10),transparent 55%),
  var(--paper)}
.hv-band-inner{display:grid;grid-template-columns:0.95fr 1.05fr;gap:44px;align-items:center}
.hv-band-flip .hv-band-copy{order:2}
.hv-band-flip .hv-band-media{order:1}
.hv-band-kick{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink)}
.hv-band-h{font-family:var(--serif);font-weight:600;font-size:clamp(28px,4.2vw,44px);line-height:1.05;
  letter-spacing:-.015em;color:var(--ink);margin:10px 0 0;text-transform:none}
.hv-band-p{font-size:14px;color:var(--ink2);line-height:1.65;margin:14px 0 0;max-width:34em}
.hv-cta{display:inline-flex;align-items:center;gap:9px;margin-top:22px;background:var(--accent);border:0;
  border-radius:999px;padding:12px 22px;min-height:44px;color:#0B0B0D;font-family:var(--sans);font-size:13px;
  font-weight:700;letter-spacing:.03em;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.hv-cta svg{transition:transform .16s ease}
.hv-cta:hover{filter:brightness(1.08);box-shadow:0 10px 26px rgba(111,208,138,.32);transform:translateY(-2px)}
.hv-cta:hover svg{transform:translateX(3px)}
.hv-cta:active{transform:translateY(0)}
/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* band media cards */
.hv-band-media{min-width:0}
.hv-mapcard,.hv-trendcard,.hv-vscard{background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:20px 22px;position:relative;overflow:hidden}
.hv-mapcard{padding:0}
.hv-mapdots{display:block;width:100%;height:150px;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent)}
.hv-mapnum{padding:24px 22px 0}   /* map graphic removed: the number now leads the card */
.hv-mapnum b{font-family:var(--serif);font-weight:600;font-size:44px;line-height:1;color:var(--accent-ink);font-feature-settings:"lnum" 1}
.hv-mapnum span{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-left:12px}
.hv-chips{display:flex;flex-wrap:wrap;gap:7px;padding:16px 22px 22px}
.hv-chip{font-size:12px;color:var(--ink2);background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:5px 12px;white-space:nowrap;
  text-decoration:none;cursor:pointer;transition:color .12s,border-color .12s,background .12s}
a.hv-chip:hover{color:var(--ink);border-color:var(--accent);background:var(--panel)}
a.hv-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hv-chip-more{color:var(--muted);border-style:dashed}
a.hv-chip-more:hover{color:var(--accent-ink)}
/* trend + vs cards */
.hv-trend-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.hv-trend-h{font-family:var(--serif);font-size:clamp(16px,2vw,20px);font-weight:600;line-height:1.2;color:var(--ink);max-width:20em}
.hv-trend-spark{margin:12px 0 0}
.spark-svg{width:100%;height:auto;display:block;max-height:132px}
.hv-trend-cap{font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:10px}
.hv-live-axis+.hv-trend-cap{margin-top:6px}
/* compare vs card */
.hv-vs-head{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.hv-vs-vs{font-family:var(--serif);font-style:italic;font-size:15px;text-transform:none;letter-spacing:0;color:var(--accent-ink)}
.hv-vs-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;text-decoration:none;color:var(--ink);
  padding:9px 6px;border-radius:10px;transition:background .14s ease}
.hv-vs-row:hover{background:var(--panel2)}
.hv-vs-row+.hv-vs-row{margin-top:2px}
.hv-vs-mark{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;
  background:var(--panel2);border:1px solid var(--line);color:var(--ink2);font-family:var(--serif);font-size:15px;font-weight:600}
.hv-vs-body{min-width:0}
.hv-vs-name{display:block;font-size:13px;color:var(--ink);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hv-vs-track{display:block;height:8px;border-radius:5px;background:var(--panel2);overflow:hidden}
.hv-vs-fill{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--gold),var(--accent))}
.hv-vs-num{font-family:var(--serif);font-weight:600;font-size:24px;line-height:1;color:var(--accent-ink);font-feature-settings:"lnum" 1;white-space:nowrap}
.hv-vs-num em{font-style:normal;font-size:11px;color:var(--muted);margin-left:3px}
/* findings */
.hv-finds{display:flex;flex-direction:column;gap:14px}
.hv-find{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;position:relative;overflow:hidden}
.hv-find::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--gold),transparent 70%)}
.hv-find-stat{font-family:var(--serif);font-weight:600;font-size:clamp(20px,2.6vw,28px);line-height:1.05;color:var(--accent-ink);
  letter-spacing:-.01em;font-feature-settings:"lnum" 1}
.hv-find-head{font-size:13.5px;color:var(--ink);line-height:1.45;margin-top:8px}
.hv-find-cav{font-size:11px;color:var(--muted);line-height:1.5;margin-top:8px}
/* church spotlight (band 5): reuse hf-* + surprise-btn */
.hv-band .surprise-btn{margin-top:22px}
.surprise-btn{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);
  border-radius:999px;padding:11px 18px;min-height:44px;color:var(--ink);font-family:var(--sans);font-size:13px;font-weight:600;
  letter-spacing:.02em;cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.surprise-btn svg{color:var(--accent-ink)}
.surprise-btn:hover{border-color:var(--line2);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.4)}
.surprise-btn:active{transform:translateY(0)}
.hf-kick{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.hf-body{display:block;background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:22px 24px;position:relative;text-decoration:none;color:var(--ink);transition:border-color .16s ease,box-shadow .16s ease}
.hf-body:hover{border-color:var(--line2);box-shadow:0 12px 30px rgba(0,0,0,.45)}
.hf-top{display:flex;align-items:center;gap:14px}
.hf-mark{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;
  border-radius:12px;background:var(--panel2);border:1px solid var(--line);color:var(--ink2);
  font-family:var(--serif);font-size:20px;font-weight:600;flex-shrink:0}
.hf-name{font-family:var(--serif);font-size:24px;font-weight:600;line-height:1.1;color:var(--ink)}
.hf-loc{font-size:12px;color:var(--muted);margin-top:2px}
.hf-stat{margin-top:16px;display:flex;align-items:baseline;gap:10px}
.hf-stat b{font-family:var(--serif);font-weight:600;font-size:32px;line-height:1;color:var(--accent-ink);font-feature-settings:"lnum" 1}
.hf-stat span{font-size:11.5px;letter-spacing:.05em;color:var(--muted)}
.hf-mover{margin-top:12px;display:flex;align-items:baseline;gap:9px}
.hf-mdir{font-family:var(--mono);font-size:12px;font-weight:600}
.hf-mdir-up{color:#5BD98A}
.hf-mdir-down{color:#F58A8A}
.hf-mtext{font-size:13px;color:var(--ink2)}
.hf-go{display:inline-flex;margin-top:16px;color:var(--accent-ink);font-size:12px;font-weight:600;letter-spacing:.06em}
.home-foot{font-size:12px;color:var(--muted);margin:0;padding:34px 22px 20px;line-height:1.7;text-align:center;background:var(--charcoal)}
.home-foot.fw,.home-v2>.home-foot{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw}

/* ---- responsive ---- */
@media (max-width:820px){
  .hv-band-inner{grid-template-columns:1fr;gap:26px}
  .hv-band-flip .hv-band-copy{order:0}
  .hv-band-flip .hv-band-media{order:0}
  .hv-band{padding:56px 0}
  .hv-hook br{display:none}
}
@media (max-width:520px){
  .hv-hero-inner{padding-top:34px;padding-bottom:98px}
  .hv-flex{margin-bottom:20px}
  .hv-flex-sub{gap:10px 28px}
  .hv-hook{margin-bottom:22px}
  .hv-live{padding:14px 16px 12px}
  .hv-live-chip{font-size:22px}
  .hv-band{padding:48px 0}
  .hv-scroll{left:50%;transform:translateX(-50%)}
}

/* ===== coverage badges (analysis depth) ===== */
.cov{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  padding:2px 8px;border-radius:3px;white-space:nowrap;display:inline-block}
.cov-full{background:rgba(34,197,94,.14);color:#5BD98A}
.cov-stats{background:rgba(111,208,138,.14);color:var(--accent-ink)}
.cov-none{background:var(--panel2);border:1px solid var(--line);color:var(--muted)}
.dircovlegend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.covleg{font-size:11.5px;color:var(--muted);margin-right:8px}

/* ===== responsive tables: stacked cards on phones (no pinch-zoom, no side-scroll) ===== */
@media (max-width:640px){
  .panel table.mtable{min-width:0;margin-top:4px}
  table.mtable thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}
  table.mtable tbody tr{display:block;border:1px solid var(--line);border-radius:10px;background:var(--panel);
    margin-bottom:12px;padding:4px 14px}
  table.mtable tbody tr:hover td{background:none}
  table.mtable tbody tr.gsc-row{border-color:var(--accent)}
  table.mtable td{display:flex;justify-content:space-between;align-items:baseline;gap:16px;
    border:0;border-bottom:1px solid var(--line);padding:9px 0;text-align:right}
  table.mtable td:last-child{border-bottom:0}
  table.mtable td::before{content:attr(data-label);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
    color:var(--muted);text-align:left;flex:0 0 auto;white-space:nowrap;font-weight:600}
  /* card title row (church name / sermon title): full width, no label */
  table.mtable td.mt-title{display:block;text-align:left;border-bottom:2px solid var(--line2);
    padding:8px 0 10px;margin-bottom:2px}
  table.mtable td.mt-title::before{display:none}
  table.mtable td.mt-title b{font-size:15px}
  table.mtable td.mt-title .loc{display:inline-block;margin:3px 0 0}
  table.mtable td.mt-title .note{text-align:left}
  /* tier-divider rows become section subheads */
  table.mtable tr.tier-divider{border:0;background:none;margin:16px 0 2px;padding:0}
  table.mtable tr.tier-divider td{display:block;border:0;padding:0;text-align:left;
    font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
  table.mtable tr.tier-divider td::before{display:none}
  table.mtable td.ls{justify-content:space-between}
  table.mtable td.ls .lsbar{margin-right:6px}
  /* compare scorecard: metric name is the card title, each value carries its church label */
  table.cmptable.mtable td.cl{display:block;text-align:left;border-bottom:1px solid var(--line2);
    padding:6px 0 8px;margin-bottom:4px;font-weight:600;color:var(--ink);
    text-transform:uppercase;font-size:12px;letter-spacing:.06em}
  table.cmptable.mtable td.cl::before{display:none}
}

/* ---------- online reach ---------- */
.reachpanel{border-color:var(--line2)}
.reachpanel h2{color:var(--accent-ink)}
.reachstat b{color:var(--accent-ink)}
td.rch{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:600;color:var(--ink)}
/* sortable side-by-side header */
.regtable th{cursor:pointer;user-select:none}
.regtable th:hover{color:var(--ink)}
.regtable th.sorton{color:var(--accent-ink)}
.regtable th .sarr{font-size:8px;margin-left:3px;vertical-align:middle}
tr.reachcmp td{background:rgba(111,208,138,.05)}
tr.reachcmp td.cl{color:var(--accent-ink)}

/* ---------- ground-truth series ---------- */
.gtseries span{background:rgba(111,208,138,.1);border-color:var(--line2);color:var(--ink)}
.gtrefs{list-style:none;margin:6px 0 0;padding:0}
.gtrefs li{padding:5px 0;border-bottom:1px solid var(--line);font-size:13.5px;line-height:1.45}
.gtrefs li:last-child{border-bottom:0}
.gtref{font-family:var(--mono);font-size:12px;color:var(--accent-ink);font-weight:600;margin-right:8px;white-space:nowrap}
.gttitle{color:var(--ink2)}

/* ---------- Records page ---------- */
.recgrid{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.recrow{display:flex;align-items:baseline;gap:12px;padding:9px 4px;border-bottom:1px solid var(--line)}
.recrow:last-child{border-bottom:0}
.recn{font-family:var(--serif);font-size:18px;color:var(--muted);width:22px;flex-shrink:0;text-align:right;font-variant-numeric:tabular-nums}
.recwho{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.recwho .loc{font-size:11px;color:var(--ink2)}
.recval{font-family:var(--serif);font-size:19px;color:var(--accent-ink);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}
.recval em{font-style:normal;font-family:var(--sans);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-left:4px}
.reachlead .recval{color:var(--accent-ink)}
/* superlatives */
.suprow{display:grid;grid-template-columns:1.3fr 1.4fr 1.4fr;gap:10px 16px;align-items:baseline}
.reclbl{font-weight:600;color:var(--ink);font-size:13.5px}
.recmost,.recleast{display:flex;align-items:baseline;gap:10px;justify-content:space-between}
.recmost .recval{color:var(--accent-ink)}
.recleast{opacity:.72}
.recleast .recval{color:var(--ink2);font-size:15px}
.reck{font-size:9.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);flex-shrink:0}
.recunit{grid-column:1/-1;margin:0;font-size:11px;line-height:1.4}
@media (max-width:760px){.suprow{grid-template-columns:1fr}.recunit{grid-column:1}}

/* calendar */
.calcards{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 16px}
.calcard{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:120px;flex:1}
.caltopic{font-size:12px;color:var(--ink2);text-transform:capitalize}
.calspike{font-family:var(--serif);font-size:24px;font-weight:600;color:var(--accent-ink);line-height:1}
.calspike em{font-style:normal;font-size:13px}
.calmonth{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.heatwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:6px}
.heatmap{min-width:440px;display:flex;flex-direction:column;gap:3px}
.hrow{display:flex;align-items:center;gap:8px}
.hlabel{width:130px;flex-shrink:0;font-size:11.5px;color:var(--ink2);text-transform:capitalize;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hcells{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;flex:1}
.hcell{height:18px;border-radius:2px;border:1px solid var(--line);cursor:default}
.hhead .hcell,.hcol{height:auto;border:0}
.hcol{font-size:10px;color:var(--muted);text-align:center}
.hhead .hcells{gap:3px}

/* succession */
.succgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:8px}
.succcard{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.succhead{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}
.succhead .loc{font-size:11px;color:var(--ink2)}
.succnames{font-size:13px;color:var(--ink);margin-bottom:10px}
.succarr{color:var(--accent-ink);margin:0 4px}
.succmetrics{display:flex;gap:20px;margin-bottom:8px}
.succml{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:block;margin-bottom:3px}
.succba{display:flex;align-items:baseline;gap:5px;font-family:var(--serif)}
.succba b{font-size:20px;color:var(--ink2);font-weight:600}
.succba b.succnew{color:var(--accent-ink)}
.succba em{font-style:normal;font-family:var(--sans);font-size:10px;color:var(--muted);text-transform:uppercase;margin-left:2px}
.succcard .note{margin-top:2px}

/* style clusters */
.clgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:8px}
.clcard{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.clhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:9px}
.cllabel{font-weight:600;color:var(--ink);font-size:13px;line-height:1.3}
.clsize{font-family:var(--serif);font-size:20px;color:var(--accent-ink);font-weight:600;flex-shrink:0}
.clmembers{display:flex;flex-wrap:wrap;gap:6px}
.clchip{font-size:12px;background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:3px 8px}
.reccav{margin:6px 0 0;padding-left:18px;font-size:12.5px;color:var(--ink2);line-height:1.5}
.reccav li{margin-bottom:5px}
.succfind{font-size:13px;color:var(--ink2);margin:4px 0 0;line-height:1.45}
.cleantag{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;
  color:#7ee0a8;background:rgba(126,224,168,.1);border:1px solid rgba(126,224,168,.32);border-radius:4px;padding:2px 6px;margin-left:6px;vertical-align:middle}
.greytag{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:2px 6px;margin-left:6px;vertical-align:middle}

/* ---- Transitions view ---- */
.tlede{font-family:var(--serif);font-style:italic;font-size:18px;line-height:1.5;color:var(--ink2);margin:14px 0 0;max-width:60ch}
/* Succession aggregate: what a handoff tends to move */
.agg-panel{margin-top:18px}
.agg-lead{font-family:var(--serif);font-size:clamp(18px,2.2vw,23px);line-height:1.35;color:var(--ink2);margin:10px 0 6px;max-width:46ch;text-wrap:balance}
.agg-lead b{color:var(--ink);font-weight:600}
.agg-rows{display:flex;flex-direction:column;margin-top:14px}
.agg-row{display:grid;grid-template-columns:158px 1fr auto;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.agg-row:last-child{border-bottom:0}
.agg-lbl{font-size:13.5px;color:var(--ink)}
.agg-bar{position:relative;height:8px;background:var(--panel2);border-radius:999px;overflow:hidden;border:1px solid var(--line)}
.agg-fill{position:absolute;top:0;bottom:0;left:0;border-radius:999px}
.agg-up{background:var(--accent)}
.agg-down{background:#4ea1ff}
.agg-flat{background:var(--line2)}
.agg-val{font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap;text-align:right}
.agg-val span{display:block;color:var(--ink2)}
.agg-h2{margin:30px 0 2px;font-family:var(--serif);font-weight:600;font-size:23px;letter-spacing:-.01em;text-transform:none;color:var(--ink)}
@media(max-width:640px){.agg-row{grid-template-columns:104px 1fr auto;gap:9px}.agg-lbl{font-size:12px}.agg-val{font-size:10px}}
.tcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px 22px;margin-top:20px}
.tcard-clean{border-color:rgba(126,224,168,.35);box-shadow:inset 3px 0 0 rgba(126,224,168,.5)}
.thead{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}
.tsides{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}
.tside{display:flex;flex-direction:column;gap:2px;min-width:0}
.tside:last-of-type{text-align:right;align-items:flex-end}
.tslbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.tside b{font-family:var(--serif);font-size:23px;font-weight:600;color:var(--ink);line-height:1.1}
.tside:last-of-type b{color:var(--accent-ink)}
.tn{font-size:11px;color:var(--muted)}
.tarrow{color:var(--accent-ink);font-size:20px;flex-shrink:0}
.tmeta{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-top:12px}
.tmeta .chlink,.tmeta a{font-size:13.5px;font-weight:600}
.tmeta-d{font-size:12px;color:var(--ink2)}
.tevent{font-size:13.5px;color:var(--ink2);line-height:1.55;margin:0 0 8px}
.tcaveat{font-size:12.5px;color:var(--muted);line-height:1.55;margin:0;border-left:2px solid var(--line2);padding-left:12px}
.tmovers{margin-top:16px}
.tm-h{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:10px}
.tmrow{margin-bottom:11px}
.tmfind{display:block;font-size:13px;color:var(--ink);line-height:1.4;margin-bottom:5px}
.tmbarwrap{height:7px;background:var(--panel2);border-radius:4px;overflow:hidden}
.tmbar{height:100%;border-radius:4px}
.tmbar.up{background:var(--accent)}
.tmbar.down{background:var(--line2)}
.tflag{margin-top:16px;border:1px solid rgba(224,184,74,.4);border-radius:9px;background:rgba(224,184,74,.06);padding:12px 14px}
.tflag-h{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;line-height:1.4}
.tflag-h svg{flex-shrink:0}
.tflag-row{padding:6px 0;border-top:1px solid rgba(224,184,74,.16)}
.tflag-row:first-of-type{border-top:0}
.tflag-row b{display:block;font-size:13px;color:var(--ink);font-weight:600;margin-bottom:2px}
.tflag-row .note{margin:0;color:var(--ink2)}
.tquotes{margin-top:16px}
.tq-h{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.tq{margin:0 0 10px;padding:10px 14px;background:var(--panel2);border-left:2px solid var(--accent);border-radius:0 7px 7px 0}
.tq p{font-family:var(--serif);font-size:16px;font-style:italic;line-height:1.5;color:var(--ink);margin:0 0 5px}
.tq cite{font-style:normal;font-size:11.5px;color:var(--muted);letter-spacing:.02em}
.tgreywrap{margin-top:24px}
.tcard-grey{opacity:.62;padding:16px 18px}
.tcard-grey .tside b{font-size:18px;color:var(--ink2)}
.tcard-grey .tsides{grid-template-columns:auto auto auto;justify-content:start;gap:10px;margin-bottom:8px}

/* ---- 2020 & 2024 (public moments) view ---- */
.mhead{font-family:var(--serif);font-size:clamp(21px,3.4vw,29px);font-weight:600;line-height:1.28;color:var(--ink);margin:16px 0 0;max-width:22ch}
.mtiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}
.mtile{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:16px 16px 15px;display:flex;flex-direction:column;gap:4px}
.mshare{font-family:var(--serif);font-size:38px;font-weight:600;color:var(--accent-ink);line-height:1}
.mlabel{font-size:13px;font-weight:600;color:var(--ink)}
.mdenom{font-size:11px;color:var(--muted);line-height:1.4}
.mlimits{border-color:var(--line2);border-left:3px solid var(--gold)}
.mlimits h2{margin-top:0}
.mlimits .reccav{font-size:13px;color:var(--ink2)}
.mquotes-wrap{margin-top:26px}
.mqh{font-family:var(--serif);font-weight:600;font-size:22px;color:var(--ink);margin:0 0 2px}
.mquotes{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:14px}
.mquote{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:16px 18px}
.mquote blockquote{font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--ink2);margin:0 0 10px}
.mquote blockquote::before{content:"\201C";color:var(--accent-ink);font-family:var(--serif);font-size:20px;margin-right:1px}
.mqch{display:block;font-size:13px;font-weight:600;color:var(--ink)}
.mqmeta{display:block;font-size:11px;color:var(--muted);margin-top:1px}
@media (max-width:900px){.mtiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){
  .tcard{padding:16px 15px}
  .tside b{font-size:19px}
  .tarrow{font-size:16px}
  .tq p{font-size:15px}
  .mquotes{grid-template-columns:1fr}
  .mshare{font-size:32px}
  .tmeta .chlink,.tmeta a{min-height:40px;display:inline-flex;align-items:center}
}
@media (max-width:420px){
  .mtiles{grid-template-columns:1fr}
  .tsides{grid-template-columns:1fr auto 1fr;gap:8px}
  .tside b{font-size:17px}
}

/* ===== struggle finder (seeker-facing cross-church topic search) ===== */
.finder-lede{font-family:var(--serif);font-style:italic;font-size:clamp(17px,2.5vw,20px);line-height:1.5;color:var(--ink2);margin:14px 0 20px;max-width:44ch}
.finder-search{margin:0 0 12px}
.finder-search input[type=search]{max-width:560px}
.strchips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}
.strchip{font-family:var(--sans);font-size:14px;padding:9px 15px;min-height:40px;border:1px solid var(--line2);border-radius:22px;background:var(--panel);color:var(--ink);cursor:pointer;transition:border-color .12s,background .12s}
.strchip:hover{border-color:var(--accent-ink)}
.strchip.on{background:rgba(111,208,138,.16);color:var(--accent-ink);border-color:var(--accent)}
.strgroup{margin:0 0 16px}
.strgroup .strchips{margin:0}
.strgroup-label{display:block;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 9px}
/* archive-coverage heatmap */
.covstrip{display:flex;gap:1px;width:100%}
.covcell{flex:1 1 0;height:20px;min-width:2px;border-radius:1.5px;background:var(--line)}
.covcell.on{background:var(--accent);opacity:var(--o,1)}
.covaxis{display:flex;gap:1px;width:100%;margin:4px 0 0}
.covtick{flex:1 1 0;font-size:9px;line-height:1;color:var(--muted);white-space:nowrap;overflow:visible}
.covtick:not(.on){visibility:hidden}
/* positions layer: "Where they stand" */
.cp-beliefs .beliefs{display:flex;flex-direction:column;gap:22px;margin-top:8px}
.belief-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 7px}
.belief-issue{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink)}
.belief-tag{font-family:var(--sans);font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line2);border-radius:20px;padding:1px 8px}
.belief-pos{margin:0 0 11px;line-height:1.58}
.belief-q{margin:0;padding:13px 18px;background:var(--panel2);border-radius:9px;font-family:var(--serif);font-style:italic;font-size:16px;line-height:1.5;color:var(--ink)}
.belief-q .bq-t::before{content:"\201C"}.belief-q .bq-t::after{content:"\201D"}
.belief-q cite{display:block;margin-top:9px;font-family:var(--sans);font-style:normal;font-size:11.5px;letter-spacing:.02em;color:var(--muted)}
/* v2 profile: grouped 24-attribute view */
.belief-stance{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--ink);background:var(--panel2);border-radius:20px;padding:2px 10px;margin-right:auto}
.belief-group{margin-top:26px}
.belief-group:first-of-type{margin-top:10px}
.belief-gh{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 15px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.bchips{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 4px}
.bchip{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.01em;color:var(--accent-ink);background:var(--panel2);border:1px solid var(--line2);border-radius:20px;padding:3px 11px;cursor:default}
/* alignment / uniqueness */
.cp-align .alz-h{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:18px 0 9px}
.alz-list{display:flex;flex-direction:column;gap:10px}
.alz-row{display:grid;grid-template-columns:160px 72px 1fr;align-items:center;gap:12px}
.alz-lab{font-size:13px;color:var(--ink)}
.alz-bar{height:6px;border-radius:3px;background:var(--line)}
.alz-bar i{display:block;height:100%;background:var(--accent);border-radius:3px;min-width:3px}
.alz-phr{font-size:12.5px;color:var(--muted)}
/* capture-method chip */
.caprow{margin:2px 0 12px}
.capchip{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--muted);border:1px solid var(--line2);border-radius:20px;padding:4px 12px;cursor:help}
.capchip i{width:6px;height:6px;border-radius:50%;background:var(--accent)}
/* belief comparison (Compare view) */
.cmp-beliefs .bc-h{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:20px 0 13px;padding-bottom:7px;border-bottom:1px solid var(--line2)}
.cmp-beliefs .bc-common{color:var(--accent-ink)}
.cmp-beliefs .bc-div{color:var(--ink)}
.bc-list{display:flex;flex-direction:column;gap:20px}
.bc-attr{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--ink);margin:0 0 6px}
.bc-pos{margin:0 0 8px;font-size:13px;line-height:1.5;color:var(--muted)}
.bc-cols,.bc-qs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bc-col{background:var(--panel2);border-radius:9px;padding:12px 14px}
.bc-who{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 6px}
.bc-qs .bc-who{color:var(--muted)}
.bc-q{margin:6px 0 0;font-family:var(--serif);font-style:italic;font-size:14px;line-height:1.46;color:var(--ink)}
.bc-q cite{display:block;margin-top:6px;font-family:var(--sans);font-style:normal;font-size:11px;color:var(--muted)}
@media(max-width:620px){.bc-cols,.bc-qs{grid-template-columns:1fr}}
@media(max-width:620px){.alz-row{grid-template-columns:1fr 56px;grid-template-areas:"lab bar" "phr phr";gap:3px 10px}.alz-lab{grid-area:lab}.alz-bar{grid-area:bar}.alz-phr{grid-area:phr}}
.covmore{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--accent-ink);background:none;border:none;cursor:pointer;padding:2px 6px;margin-left:8px;letter-spacing:.02em}
.covmore:hover{text-decoration:underline}
.covgrid{display:flex;flex-direction:column;gap:2px;max-height:520px;overflow-y:auto;margin:16px 0 0;padding-right:4px}
.covrow{display:flex;align-items:center;gap:8px;text-decoration:none}
.covrname{flex:0 0 116px;font-size:10px;line-height:1.1;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.covrow:hover .covrname{color:var(--accent-ink)}
.covstrip.mini{gap:0}
.covstrip.mini .covcell{height:7px;min-width:0;border-radius:0}
@media(max-width:620px){.covrname{flex-basis:78px;font-size:9px}.covcell{height:16px}}
.finder-filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.finder-count{margin:0 0 14px}
.finder-hint,.finder-foot{color:var(--muted);font-size:13px}
.finder-foot{margin-top:24px;padding-top:14px;border-top:1px dashed var(--line2)}
.fresults{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.fres{display:block;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;text-decoration:none;color:var(--ink);transition:border-color .12s,background .12s}
.fres:hover{border-color:var(--accent);background:var(--panel2)}
.fres-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.fres-ch{font-weight:600;font-size:14.5px;letter-spacing:.01em}
.fres-date{font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap}
.fres-title{font-family:var(--serif);font-style:italic;font-size:14.5px;color:var(--ink2);margin:5px 0 0;line-height:1.35}
.fres-mention{font-size:13px;color:var(--ink2);margin:7px 0 12px;line-height:1.45}
.fres-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:0;border:0}
.fres-stat{font-family:var(--mono);font-size:11px;color:var(--muted)}
.fres-go{font-size:12.5px;font-weight:600;color:var(--accent-ink)}

/* ===== multi-church trend overlay ===== */
.ovpanel .ovcontrols{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 20px;margin:14px 0 18px}
.ovmetric{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ovpicks{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ovpill{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:13.5px;min-height:40px;padding:6px 12px;border:1px solid var(--line2);border-radius:20px;background:var(--panel);color:var(--ink);cursor:pointer}
.ovpill i{width:11px;height:11px;border-radius:3px;background:var(--ov,var(--accent));flex-shrink:0}
.ovpill span{color:var(--muted);font-size:16px;line-height:1}
.ovadd{min-height:40px}
.ovmax,.ovhint{color:var(--muted)}
.ovhint{margin:10px 0}

/* ===== transition type chip ===== */
.ttype{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  padding:2px 8px;border-radius:11px;background:var(--panel2);border:1px solid var(--line2);color:var(--ink2);vertical-align:middle}

/* ===== full map: coverage-colored pins, clusters, filter ===== */
.chpin.deep{background:var(--accent)}
.chpin.stats{background:#9a6a3a}
.chpin.none{background:#5f5f68}
.chpin.gsc{background:var(--gold)}
.mclwrap{background:transparent}
.mcl{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;
  background:rgba(111,208,138,.22);border:1.5px solid var(--accent);color:var(--lite);
  font-family:var(--mono);font-size:12px;font-weight:600;box-shadow:0 0 0 4px rgba(111,208,138,.10)}
.mpop-sub{font-size:11.5px;color:var(--muted)}
.leaflet-popup-content .cov{margin-top:5px;display:inline-block}
.mapfilterpanel{margin-top:16px}
.mapfilters{margin-top:12px}
.maplegend{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:12px;font-size:12px;color:var(--muted)}
.maplegend i{display:inline-block;width:11px;height:11px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);margin-right:6px;vertical-align:middle}
.maplegend .lg-deep{background:var(--accent)}.maplegend .lg-stats{background:#9a6a3a}.maplegend .lg-none{background:#5f5f68}.maplegend .lg-gsc{background:var(--gold)}

/* ===== add-your-church CTA ===== */
.addch-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:linear-gradient(180deg,rgba(111,208,138,.08),rgba(111,208,138,.03));border:1px solid var(--line2);border-radius:10px;padding:16px 18px;margin-top:16px}
.addch-cta .ac-txt b{font-size:15px}
.addch-cta .ac-txt p{margin:4px 0 0;font-size:12.5px;color:var(--muted)}
.addch-cta button{font-family:var(--sans);font-size:14px;font-weight:600;min-height:44px;padding:10px 20px;border-radius:8px;
  background:var(--accent);border:1px solid var(--accent);color:#1a0f06;cursor:pointer;white-space:nowrap}
.addch-cta button:hover{background:var(--accent-ink)}
.dir-subnote{font-size:12.5px;color:var(--muted);line-height:1.65;margin:20px 2px 0;max-width:64ch}

@media (max-width:600px){
  .fresults{grid-template-columns:1fr}
  .strchip{font-size:13.5px}
  .addch-cta{flex-direction:column;align-items:stretch}
  .addch-cta button{width:100%}
}

/* ===== home scroll-story heatmap band (blends into hero agent's alternating bands) ===== */
.hv-band-heat .hv-heat-inner{max-width:920px}
.hv-band-heat .hv-band-p{margin-top:12px}
.hv-band-heat .hv-heat-media{margin:24px 0 4px}

/* Facts where a church sits at the regional extremes, stated plainly as text
   under the numbers. No label, no callout: just the sentences, set apart by a
   hairline so they read as the point the numbers make. */
.cp-standout{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);
  font-size:14.5px;line-height:1.62;color:var(--ink)}

/* Compare header with a Share button: the head-to-head URL is copyable/textable. */
.cmp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}
.cmp-sharebtn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:12px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;padding:9px 15px;border:1px solid var(--accent);border-radius:8px;
  background:var(--panel);color:var(--accent-ink);cursor:pointer;min-height:40px;white-space:nowrap}
.cmp-sharebtn:hover{background:var(--accent);color:#0a0a0a}
.cmp-sharebtn svg{flex-shrink:0}

/* First-paint is a plain black screen (#splash); .ldr is an empty spacer for mid-session waits. */
.ldr{min-height:38vh}

/* Full-screen first-paint splash: centered equalizer only, no text, no header showing.
   Held for a short minimum so the animation reads, then fades out to reveal the app. */
#splash{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  background:var(--paper);transition:opacity .32s ease}
#splash.hide{opacity:0;pointer-events:none}

/* Compare: Head-to-head vs By-topic mode toggle */
.cmp-modes{display:flex;gap:2px;margin:8px 0 16px;border-bottom:1px solid var(--line)}
.cmp-mode{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  padding:10px 14px;border:0;border-bottom:2px solid transparent;background:none;color:var(--ink2);cursor:pointer;min-height:42px}
.cmp-mode.on{color:#fff;border-bottom-color:var(--accent)}
.cmp-mode:hover{color:var(--ink)}
/* By-topic pickers */
.tpick{padding:14px 20px 16px}
.tpick-row{display:flex;flex-direction:column;gap:10px;padding:2px 0}
.tpick-row+.tpick-row{border-top:1px solid var(--line);margin-top:12px;padding-top:14px}
.tpick-lbl{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tchips,.ttopics{display:flex;flex-wrap:wrap;gap:7px}
/* topic-over-time chart (Compare) */
.cmp-trend-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:4px}
.ttrend-legend{display:flex;gap:16px;font-family:var(--mono);font-size:11px;color:var(--ink2)}
.tl-key{display:inline-flex;align-items:center;gap:6px}
.tl-key::before{content:"";width:14px;height:2px;border-radius:2px;display:inline-block}
.tl-key-a::before{background:#6FD08A}
.tl-key-b::before{background:#4ea1ff}
.ttrend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin-top:8px}
.ttrend-card{border:1px solid var(--line);border-radius:9px;padding:10px 11px 5px;background:var(--panel2)}
.ttrend-t{font-family:var(--sans);font-size:12px;font-weight:600;color:var(--ink);margin:0 0 3px;letter-spacing:.01em}
.ttrend-svg{width:100%;height:auto;display:block}
.tchip{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;background:var(--panel2);border:1px solid var(--line2);border-radius:999px;padding:5px 6px 5px 13px;color:var(--ink)}
.tchip button{border:0;background:none;color:var(--muted);font-size:17px;line-height:1;cursor:pointer;padding:0 3px}
.tchip button:hover{color:var(--accent-ink)}
.tadd{min-height:36px;background:var(--panel2);color:var(--ink);border:1px dashed var(--line2);border-radius:999px;padding:6px 14px;font-family:var(--sans);font-size:12.5px;cursor:pointer}
.ttopic{font-size:12px;background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:7px 13px;color:var(--ink2);cursor:pointer;white-space:nowrap;min-height:36px}
.ttopic:hover{color:var(--ink);border-color:var(--line2)}
.ttopic.on{background:var(--accent);border-color:var(--accent);color:#0a0a0a;font-weight:600}
/* By-topic matrix */
.tmatrix th,.tmatrix td{text-align:center}
.tmatrix th:first-child,.tmatrix .tcell-ch{text-align:left}
.tcell{font-variant-numeric:tabular-nums;font-family:var(--serif);font-size:15px}
.tcell-na{color:var(--muted);font-family:var(--sans);font-size:12px}

/* Home: Insights band (top findings surfaced on the landing) */
.hv-insband{display:flex;flex-direction:column;gap:22px}
.hv-insband-head{max-width:640px}
.hv-insband-head .hv-cta{margin-top:14px}
.hv-insband-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
@media(max-width:860px){.hv-insband-cards{grid-template-columns:1fr}}
/* Home: subtle hero glow, dresses up the landing without clutter */
.hv-hero{position:relative;overflow:hidden}
.hv-hero::before{content:"";position:absolute;top:-24%;left:50%;transform:translateX(-50%);
  width:min(940px,120vw);height:560px;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse at center,rgba(111,208,138,.14),rgba(111,208,138,.04) 45%,transparent 70%)}
.hv-hero-inner{position:relative;z-index:1}

/* Style map: the four pole descriptions under the scatter */
.smap-axes{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 22px;margin-top:16px}
.smap-axes>div{display:flex;flex-direction:column;gap:2px;font-size:13px}
.smap-axes b{color:var(--accent-ink);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.smap-axes span{color:var(--ink2)}
@media(max-width:640px){.smap-axes{grid-template-columns:1fr}}

/* Per-church transcript search on the profile page */
.cps-box{display:flex;align-items:center;gap:9px;background:var(--panel2);border:1px solid var(--line2);border-radius:9px;padding:0 13px;margin-top:6px}
.cps-box .cps-ico{color:var(--muted);flex-shrink:0}
.cps-box input{flex:1;background:none;border:0;color:var(--ink);font-family:var(--sans);font-size:15px;padding:12px 0;outline:none;min-width:0}
/* full-screen per-church transcript search view */
.cs-view{max-width:820px}
.cs-back{display:inline-block;font-family:var(--sans);font-size:12.5px;color:var(--accent-ink);text-decoration:none;margin:0 0 16px}
.cs-back:hover{text-decoration:underline}
.cs-head h1{font-family:var(--serif);font-weight:600;font-size:clamp(28px,4.5vw,44px);line-height:1.08;letter-spacing:-.01em;margin:0}
.cs-head .cs-ch{color:var(--accent-ink)}
.cs-box.gsearch{position:relative;display:flex;align-items:center;width:100%;margin:20px 0 0}
.cs-box .gs-ico{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--muted)}
.cs-box input{width:100%;font:inherit;font-size:17px;color:var(--ink);background:rgba(246,243,238,.045);border:1px solid var(--line2);border-radius:12px;padding:15px 18px 15px 48px;outline:none;transition:border-color .15s,box-shadow .15s}
.cs-box input::placeholder{color:var(--muted)}
.cs-box input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(111,208,138,.15)}
.cs-hint{margin-top:12px;max-width:64ch}
.cs-hits{margin-top:24px}
.cs-count{font-family:var(--sans);font-size:12.5px;color:var(--muted);margin:0 0 14px}
.cs-count b{color:var(--ink)}
.cs-empty{padding:22px 0}
.cs-hit{border-top:1px solid var(--line);padding:16px 0}
.cs-hit-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.cs-hit-t{font-family:var(--serif);font-weight:600;font-size:19px;color:var(--ink);text-decoration:none;letter-spacing:-.005em}
a.cs-hit-t:hover{color:var(--accent-ink)}
.cs-watch{font-family:var(--sans);font-size:12px;color:var(--accent-ink);text-decoration:none;white-space:nowrap;flex-shrink:0}
.cs-watch:hover{text-decoration:underline}
.cs-hit-meta{font-family:var(--sans);font-size:12px;color:var(--muted);margin-top:3px}
.cs-snips:not(:empty){margin-top:9px}
.cs-ex{font-family:var(--serif);font-style:italic;font-size:15.5px;line-height:1.55;color:var(--ink2);margin:6px 0 0}
.cs-ex mark{background:rgba(111,208,138,.28);color:var(--ink);border-radius:2px;padding:0 2px;font-style:normal}
@media(max-width:640px){.cs-hit-t{font-size:17px}.cs-hit-top{flex-direction:column;gap:2px}}
.cps-results{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.cps-row{display:block;text-decoration:none;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:11px 14px;color:var(--ink);position:relative}
a.cps-row:hover{border-color:var(--accent);background:var(--panel)}
.cps-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.cps-title{font-weight:600;font-size:14px}
.cps-mention{font-size:12px;color:var(--ink2);margin-top:3px}
.cps-go{position:absolute;right:14px;bottom:11px;font-size:12px;color:var(--accent-ink)}

/* ===== Home hero: search-first (option 1), prominent stats below ===== */
.hv-hero-inner.hv1{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}
.hv1-kick{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 18px}
.hv1-hook{font-family:var(--serif);font-weight:400;font-size:clamp(40px,7vw,84px);line-height:1.0;letter-spacing:-.01em;margin:0;text-wrap:balance;color:var(--ink)}
/* big centered search */
.hv1-search.gsearch{position:relative;width:min(560px,92%);margin:34px 0 0;margin-left:0;flex-shrink:0;display:flex;align-items:center}
.hv1-search input{width:100%;font-size:18px;padding:18px 18px 18px 50px;background:var(--panel2);border:1px solid var(--line2);border-radius:14px;color:var(--ink);text-align:left}
.hv1-search input::placeholder{color:var(--muted)}
.hv1-search input:focus{outline:none;border-color:var(--accent)}
.hv1-search .gs-ico{position:absolute;left:19px;top:50%;transform:translateY(-50%);color:var(--muted)}
.hv1-search .gs-list{left:0;right:auto;width:100%;max-width:none;top:calc(100% + 8px);text-align:left}
/* prominent stats below the search */
.hv1-flex{align-items:center;margin:44px 0 0;gap:12px}
.hv1-flex .hv-flex-lead{align-items:center}
.hv1-flex .hv-flex-big{font-size:clamp(58px,12vw,132px)}
.hv1-flex .hv-flex-sub{justify-content:center;gap:14px 40px}
@media(max-width:600px){.hv1-flex .hv-flex-sub{gap:12px 22px}}

/* ===== Home hero #8: mono data readout (live) ===== */
.hv-hero-inner.hv8{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}
.hv8-hook{font-family:var(--serif);font-weight:400;font-size:clamp(34px,5vw,60px);line-height:1.02;letter-spacing:-.01em;margin:0;text-wrap:balance;color:var(--ink)}
.hv8-search.gsearch{position:relative;width:min(520px,92%);margin:30px 0 0;margin-left:0;flex-shrink:0;display:flex;align-items:center}
.hv8-search input{width:100%;font-size:17px;padding:15px 18px 15px 48px;background:rgba(246,243,238,.045);border:1px solid var(--line2);border-radius:12px;color:var(--ink);text-align:left;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.hv8-search input::placeholder{color:var(--muted)}
.hv8-search input:hover{border-color:rgba(246,243,238,.3)}
.hv8-search input:focus{outline:none;border-color:var(--accent);background:rgba(246,243,238,.07);box-shadow:0 0 0 3px rgba(111,208,138,.15)}
.hv8-search .gs-ico{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--muted)}
.hv8-search .gs-list{left:0;right:auto;width:100%;max-width:none;top:calc(100% + 8px);text-align:left}
.hv8-read{width:min(460px,90%);margin:38px 0 0;display:flex;flex-direction:column;border-top:1px solid var(--line)}
.hv8-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:11px 2px;border-bottom:1px solid var(--line)}
.hv8-l{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.hv8-n{font-family:var(--mono);font-weight:500;font-size:clamp(19px,2.6vw,27px);line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.005em}
/* the brand IS the hero headline at every width; the header wordmark is separate nav chrome */
.hv8-lead{display:flex;flex-direction:column;align-items:center;min-width:0}
.hv8-mark{display:block;width:clamp(46px,6vw,66px);height:clamp(46px,6vw,66px);color:var(--accent);margin:0 0 22px}
.hv8-brand{display:block;font-family:var(--wm);font-weight:600;font-size:clamp(46px,6.6vw,88px);line-height:.98;letter-spacing:-.01em;color:var(--ink);margin:0}
.hv8-brand em{font-style:normal;color:var(--accent)}
.hv8-helper{font-family:var(--sans);font-size:12.5px;letter-spacing:.04em;color:var(--muted);margin:14px 0 0}
/* desktop treatment #3: one mono dot-separated stat line (hidden on mobile, which uses the readout) */
.hv8-line{display:none;margin-top:34px;font-family:var(--mono);font-size:15px;letter-spacing:.02em;color:var(--ink2);text-align:center}
.hv8-line .flex-num{color:var(--ink);font-weight:600}
.hv8-line i{color:var(--muted);font-style:normal;margin:0 5px}
/* home hero: no header bar on load at ANY width (full-bleed, immersive); it fades in, fixed,
   on scroll. Fixed keeps it out of flow so there is no layout jump when it returns. */
body.home-hero > header{position:fixed;top:0;left:0;right:0;opacity:0;pointer-events:none;transition:opacity .28s ease}
body.home-hero.scrolled > header{opacity:1;pointer-events:auto}

/* DESKTOP: asymmetric editorial hero. Big wordmark + a tucked, left-aligned search on the
   left; the data readout as an instrument panel on the right; both vertically centered. */
@media(min-width:761px){
  /* treatment #3: centered brand + search, one mono dot-separated stat line below */
  .hv-hero-inner.hv8{min-height:100svh;padding-top:0;padding-bottom:0;justify-content:center}
  .hv8-brand{font-size:clamp(66px,8.5vw,124px)}
  .hv8-search.gsearch{width:min(560px,90%);max-width:560px;margin-top:32px}
  .hv8-helper{display:none}
  .hv8-read{display:none}
  .hv8-line{display:block}
  .hv-scroll{left:50%;transform:translateX(-50%)}
}
/* MOBILE: centered brand, readout stacked below, full-bleed hero */
@media(max-width:760px){
  .hv-hero-inner.hv8{padding-top:60px;padding-bottom:60px;padding-left:26px;padding-right:26px;min-height:100svh;display:flex;flex-direction:column;justify-content:center}
  .hv8-brand{font-size:clamp(38px,12vw,62px);margin:0}   /* Futura is wide; keep clear of the screen edges */
}
@media(max-width:600px){.hv8-read{margin-top:24px}.hv8-n{font-size:clamp(18px,6vw,24px)}}

/* ============ Preacher Pages + Chris' lenses ============ */
/* venue colors: home=orange (accent), guest=cool blue, current=gold. Venue identity, not a grade. */
.ppage .pp-head h1{font-size:clamp(26px,5vw,38px);margin:2px 0 6px;letter-spacing:-.02em}
.pp-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink)}
.pp-sub{font-family:var(--mono);font-size:12.5px;color:var(--muted);margin:0}
.pp-insight{margin:12px 0 0;font-size:15.5px;color:var(--ink2);max-width:64ch}
.pp-insight b{color:var(--ink)}
.pp-fp h2,.pp-pulpits h2{font-size:18px;margin:0 0 4px}
.pp-legend{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:10px 0 16px}
.pp-legend span{font-family:var(--mono);font-size:11px;color:var(--ink2);display:flex;align-items:center;gap:6px}
.pp-legend .pp-note{color:var(--muted)}
.ppsw{width:11px;height:11px;border-radius:2px;display:inline-block}
.ppsw.home{background:var(--accent)} .ppsw.away{background:#64A9DE} .ppsw.cur{background:var(--gold)}
.pprow{display:grid;grid-template-columns:132px 1fr;gap:14px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.pprow .ppk{font-family:var(--mono);font-size:11.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--ink2)}
.ppbars{display:flex;flex-direction:column;gap:7px}
.ppbar{display:grid;grid-template-columns:1fr 118px;gap:12px;align-items:center}
.pptrack{height:15px;background:var(--panel2);border-radius:4px;overflow:hidden}
.ppfill{height:100%;border-radius:4px}
.ppfill.home{background:var(--accent)} .ppfill.away{background:#64A9DE} .ppfill.cur{background:var(--gold)}
.ppval{font-family:var(--mono);font-size:12px;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.ppven{display:block;color:var(--muted);font-size:10px;letter-spacing:.02em}
.pp-distinct{margin-top:20px;border-top:1px solid var(--line);padding-top:14px}
.pp-distinct h4{margin:0 0 10px;font-size:13px;color:var(--ink2)}
.pp-dvgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.pp-dv{background:var(--panel2);border-radius:8px;padding:11px 13px}
.pp-dvh{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}
.pp-dvh.home{color:var(--accent-ink)} .pp-dvh.away{color:#7FBBE8} .pp-dvh.cur{color:var(--gold)}
.pp-dvw{font-family:var(--serif);font-size:16px;line-height:1.5;color:var(--ink)}
.pp-shared{margin:14px 0 0;font-size:14px;color:var(--ink2);font-family:var(--serif)}
.pp-shared .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:2px}
.pp-pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:6px}
.pp-pulpit{display:block;background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:12px 14px;text-decoration:none;transition:border-color .15s,transform .15s}
.pp-pulpit:hover{border-color:var(--line2);transform:translateY(-1px)}
.pp-pname{display:block;color:var(--ink);font-weight:600;font-size:15px}
.pp-pmeta{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:3px}
.pp-cur{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);border-radius:20px;padding:1px 6px;vertical-align:middle}
/* preacher index */
.pixlist{display:flex;flex-direction:column}
.pix-row{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name n" "where where";gap:2px 12px;padding:13px 4px;border-top:1px solid var(--line);text-decoration:none;transition:background .12s}
.pix-row:first-child{border-top:none}
.pix-row:hover{background:var(--panel2)}
.pix-name{grid-area:name;color:var(--ink);font-weight:600;font-size:16px}
.pix-n{grid-area:n;font-family:var(--mono);font-size:11px;color:var(--accent-ink);align-self:center}
.pix-where{grid-area:where;font-size:12.5px;color:var(--muted)}
/* speaker cross-church link on church profile */
.cp-spklink{text-decoration:none}
.cp-spklink b{color:var(--ink);border-bottom:1px solid var(--line2)}
.cp-spklink:hover b{border-color:var(--accent)}
.cp-crosstag{font-family:var(--mono);font-size:9.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--accent-ink);white-space:nowrap}
/* Chris' lenses (vs region) */
.cp-lens .lens{padding:14px 0;border-top:1px solid var(--line)}
.cp-lens .lens:first-of-type{border-top:none}
.lens-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.lens-k{font-size:15px;font-weight:600;color:var(--ink)}
.lens-v{font-family:var(--mono);font-size:11.5px;color:var(--accent-ink);text-align:right}
.lens-track{position:relative;height:6px;background:linear-gradient(90deg,var(--panel2),var(--line2));border-radius:4px;margin:10px 0 8px}
.lens-dot{position:absolute;top:50%;width:13px;height:13px;border-radius:50%;background:var(--accent);border:2px solid var(--paper);transform:translate(-50%,-50%);box-shadow:0 0 0 1px var(--accent)}
/* reference marker: the regional average always sits at the 50th percentile, so the
   church's dot has something to be read against. Muted + smaller than the live dot. */
.lens-avg{position:absolute;top:50%;left:50%;width:9px;height:9px;border-radius:50%;background:var(--muted);border:2px solid var(--paper);transform:translate(-50%,-50%);opacity:.95;cursor:help}
.lens-help{font-size:12.5px;color:var(--muted);margin:0;max-width:70ch}
@media(max-width:560px){
  .pprow{grid-template-columns:1fr;gap:6px}.ppbar{grid-template-columns:1fr 96px}
  .pp-dvgrid{grid-template-columns:1fr 1fr}
}

/* ============ Core-stats strip (church + pastor) — our measured data, led with ============ */
.cp-core{background:linear-gradient(180deg,var(--panel),var(--charcoal));border-color:var(--line2)}
.cp-coregrid{display:flex;flex-wrap:wrap;gap:10px 30px;align-items:flex-end}
.cp-coretile{display:flex;flex-direction:column;gap:2px}
.cp-coretile .v{font-family:var(--mono);font-size:clamp(22px,4vw,30px);font-weight:600;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}
.cp-coretile .l{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cp-coretile:first-child .v{color:var(--accent-ink)}
.reachpanel .reachstat{opacity:.92}
/* ============ Pastor deep profile ============ */
.pp-core{margin-top:12px}
.pp-stats{display:flex;flex-wrap:wrap;gap:14px 26px;margin-bottom:6px}
.pp-stat{display:flex;flex-direction:column;gap:1px}
.pp-statv{font-family:var(--mono);font-size:19px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.pp-statl{font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ppage h4{font-size:12.5px;color:var(--ink2);margin:16px 0 8px;letter-spacing:.02em}
.pp-chips{display:flex;flex-wrap:wrap;gap:7px}
.pp-chip{font-family:var(--mono);font-size:12px;padding:4px 11px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);color:var(--ink2)}
.pp-vocab{font-family:var(--serif);font-size:16px;color:var(--ink);line-height:1.5;margin:0}
.pp-topics{display:flex;flex-direction:column;gap:7px}
.pp-topic{display:grid;grid-template-columns:150px 1fr 42px;gap:10px;align-items:center}
.pp-topicn{font-size:12.5px;color:var(--ink2)}
.pp-topictrack{height:9px;background:var(--panel2);border-radius:5px;overflow:hidden}
.pp-topicfill{display:block;height:100%;background:var(--accent);border-radius:5px}
.pp-topicv{font-family:var(--mono);font-size:11.5px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.pp-drift{display:flex;flex-direction:column;gap:2px}
.pp-driftrow{display:grid;grid-template-columns:52px 1fr 120px;gap:14px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}
.pp-drifty{font-family:var(--mono);font-size:14px;color:var(--ink);font-weight:600}
.pp-driftbars{display:flex;flex-direction:column;gap:5px}
.pp-driftbar{display:flex;flex-direction:column;gap:2px}
.pp-driftlbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.pp-drifttrack{height:7px;background:var(--panel2);border-radius:4px;overflow:hidden}
.pp-drifill{display:block;height:100%;border-radius:4px}
.pp-drifill.j{background:var(--accent)} .pp-drifill.s{background:#64A9DE}
.pp-drifttop{font-size:11.5px;color:var(--muted);text-align:right}
.pp-quotes .pp-quote{font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.45;color:var(--ink);border-left:2px solid var(--accent);padding:2px 0 2px 18px;margin:0 0 16px}
.pp-quotes .pp-quote:last-child{margin-bottom:0}
.pp-quote cite{display:block;font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:8px}
/* ============ "If they wrote a book" ============ */
.pp-book{background:linear-gradient(135deg,var(--charcoal),var(--panel));border-color:var(--line2)}
.pp-book-eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.pp-book-cover{border-left:3px solid var(--accent);padding:4px 0 4px 18px}
.pp-book-title{font-family:var(--serif);font-size:clamp(24px,4.5vw,34px);font-weight:600;color:var(--ink);line-height:1.1}
.pp-book-sub{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--ink2);margin-top:6px;max-width:52ch}
.pp-book-byline{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);margin-top:12px}
@media(max-width:560px){
  .pp-topic{grid-template-columns:110px 1fr 36px}
  .pp-driftrow{grid-template-columns:40px 1fr;gap:8px}.pp-drifttop{grid-column:2;text-align:left}
}

/* ============ Detailed head-to-head comparison ============ */
.cmp-core .cmpc-head{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:baseline;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:4px}
.cmpc-n{font-size:16px;font-weight:600;color:var(--ink)}
.cmpc-n.a{text-align:right;color:var(--accent-ink)} .cmpc-n.b{text-align:left;color:#7FBBE8}
.cmpc-vs{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.cmpc-row{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.cmpc-row:first-of-type{border-top:none}
.cmpc-v{font-family:var(--mono);font-size:clamp(17px,3vw,22px);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.cmpc-v.a{text-align:right} .cmpc-v.b{text-align:left}
.cmpc-l{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center;min-width:118px}
.cmp-diffs .cmpd-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:6px}
.cmpd-h{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px}
.cmpd-h.apart{color:var(--accent-ink)} .cmpd-h.close{color:var(--muted)}
.cmpd-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.cmpd-list li{font-size:14px;color:var(--ink2);line-height:1.45}
.cmpd-list b{color:var(--ink);font-weight:600}
.cmpd-nums{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:1px;font-variant-numeric:tabular-nums}
.cmp-lens .cmpl{padding:14px 0;border-top:1px solid var(--line)}
.cmp-lens .cmpl:first-of-type{border-top:none}
.cmpl-h{font-size:14.5px;font-weight:600;color:var(--ink);margin-bottom:10px}
.cmpl-track{position:relative;height:6px;background:linear-gradient(90deg,var(--panel2),var(--line2));border-radius:4px;margin-bottom:10px}
.cmpl-dot{position:absolute;top:50%;width:13px;height:13px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid var(--paper)}
.cmpl-dot.a{background:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.cmpl-dot.b{background:#64A9DE;box-shadow:0 0 0 1px #64A9DE}
.cmpl-legend{display:flex;flex-wrap:wrap;gap:6px 18px}
.cmpl-legend span{font-size:12px;color:var(--ink2);display:flex;align-items:center;gap:6px}
.cmpl-la::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--accent);display:inline-block}
.cmpl-lb::before{content:"";width:9px;height:9px;border-radius:50%;background:#64A9DE;display:inline-block}
@media(max-width:620px){
  .cmp-diffs .cmpd-grid{grid-template-columns:1fr;gap:16px}
  .cmpc-l{min-width:0;font-size:9px}
}
