/* Pride Source nav redesign — gated behind ?newnav=1. Isolated stylesheet. */
.ppx{--surf:#fff;--surf2:#f5f3f7;--ink:#1b1726;--muted:#57506e;--faint:#8b85a0;--line:#e4e1ec;--line2:#d7d2e2;--acc:#ce3f48;--accink:#a82b34;--accsoft:#fbe9ea;--rad:2px;
  --nsans:'Averta-Regular','Avenir Next',system-ui,sans-serif;--nsansb:'Averta-Semibold','Avenir Next',system-ui,sans-serif;--nsansx:'Averta-Bold','Avenir Next',system-ui,sans-serif;--nserif:'EB Garamond',Georgia,serif;
  position:relative;background:#fafafa;margin-bottom:18px;font-family:var(--nsans)}/* bg matches layout body (html #fafafa); no bottom border; gap below for the leaderboard ad */
.ppx *{box-sizing:border-box}
.ppx .pr{height:4px;display:flex}.ppx .pr span{flex:1}
.ppx .pr span:nth-child(1){background:#ce3f48}.ppx .pr span:nth-child(2){background:#d66e3d}.ppx .pr span:nth-child(3){background:#e8b045}.ppx .pr span:nth-child(4){background:#a7bc5f}.ppx .pr span:nth-child(5){background:#85c5d3}.ppx .pr span:nth-child(6){background:#998fc2}
/* widths mirror the site's Bulma .container: 960 / 1152 / 1344 + .625rem gutter */
.ppx .bar{display:flex;align-items:center;max-width:960px;margin:0 auto;padding:0 .625rem;height:66px}
.ppx .lg{height:25px;margin-right:24px;display:block}
.ppx .nv{display:flex;align-items:stretch;align-self:stretch}
.ppx .it{display:flex}
.ppx .it>a{font-family:var(--nsansb);font-size:15px;color:var(--ink);text-decoration:none;padding:0 13px;height:100%;cursor:pointer;border-bottom:2px solid transparent;display:inline-flex;gap:7px;align-items:center;margin-bottom:-1px}
.ppx .it>a .c{color:var(--muted);transition:transform .18s;flex:none;display:block}
.ppx .it.on>a,.ppx .it:hover>a{color:var(--accink);border-bottom-color:var(--acc)}
.ppx .it.on>a .c{transform:rotate(180deg)}
.ppx .en{margin-left:auto;display:flex;align-items:center;gap:9px}
.ppx .ic{width:38px;height:38px;border-radius:var(--rad);border:1px solid var(--line2);background:var(--surf);color:var(--muted);display:grid;place-items:center;cursor:pointer}
.ppx .ic:hover{color:var(--accink);border-color:var(--acc)}
.ppx .sb{background:var(--acc);color:#fff;border:0;font-family:var(--nsansb);font-size:14px;padding:10px 18px;border-radius:var(--rad);cursor:pointer;text-decoration:none}
.ppx .sb:hover{background:var(--accink)}
.ppx a.sb,.ppx .tr a.sb{color:#fff}/* keep white even inside .tr (which darkens links) */
.ppx .burger{display:none;width:40px;height:40px;border:1px solid var(--line2);border-radius:var(--rad);background:var(--surf);color:var(--ink);cursor:pointer;align-items:center;justify-content:center}
/* namespaced 'psearch' — the site already owns the '.search' class */
.ppx .psearch{display:none;border-top:1px solid var(--line);background:var(--surf2)}
.ppx .psearch.open{display:block}
.ppx .psearch .row{display:flex;align-items:stretch;gap:10px;max-width:960px;margin:0 auto;padding:16px .625rem;position:static}
.ppx .psearch input{flex:1 1 auto;min-width:0;position:static;border:1px solid var(--line2);border-radius:var(--rad);padding:12px 14px;font-family:var(--nsans);font-size:15px;background:var(--surf);color:var(--ink)}
.ppx .psearch input:focus{outline:2px solid var(--acc);outline-offset:1px;border-color:var(--acc)}
.ppx .psearch button{flex:0 0 auto;position:static;width:auto;height:auto;background:var(--acc);color:#fff;border:0;border-radius:var(--rad);font-family:var(--nsansb);font-size:14px;padding:0 22px;cursor:pointer}
.ppx .psearch button:hover{background:var(--accink)}
.ppx .mg{position:absolute;left:0;right:0;top:100%;background:var(--surf);border-top:1px solid var(--line);box-shadow:0 24px 50px -20px rgba(27,23,38,.28);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .16s,transform .16s;z-index:60}
.ppx .mg.show{opacity:1;visibility:visible;transform:none}
.ppx .in{display:grid;grid-template-columns:1.5fr 1fr;gap:36px;max-width:960px;margin:0 auto;padding:28px .625rem 32px}
.ppx .lab{font-family:var(--nsansb);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);margin:0 0 14px}
.ppx .lk{display:grid;grid-template-columns:1fr 1fr;gap:2px 26px;list-style:none;margin:0;padding:0}
.ppx .lk a{display:block;color:var(--ink);text-decoration:none;font-size:15px;padding:9px 10px;border-radius:var(--rad)}
.ppx .lk a:hover{background:var(--accsoft);color:var(--accink)}
.ppx .np{font-family:var(--nsansx);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--acc);border:1px solid var(--acc);border-radius:var(--rad);padding:1px 5px;margin-left:7px}
.ppx .tr{border-left:1px solid var(--line);padding-left:32px}
.ppx .tr .trh{font-family:var(--nserif);font-style:italic;font-weight:500;font-size:21px;margin:0 0 3px;color:var(--ink)}
.ppx .tr .cap{font-size:12px;color:var(--faint);margin:0 0 14px}
.ppx .tr ul{list-style:none;margin:0;padding:0}
.ppx .tr a{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);padding:8px;border-radius:var(--rad)}
.ppx .tr a:hover{background:var(--surf2)}
.ppx .rk{font-family:var(--nsansx);font-size:12px;color:var(--acc);width:14px;text-align:center;flex:none}
.ppx .nm{font-family:var(--nsansb);font-size:14.5px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ppx .kd{font-family:var(--nsansb);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);border:1px solid var(--line2);border-radius:var(--rad);padding:2px 7px;flex:none}
.ppx .mob{display:none;position:absolute;left:0;right:0;top:100%;background:var(--surf);border-top:1px solid var(--line);box-shadow:0 24px 50px -20px rgba(27,23,38,.28);max-height:80vh;overflow:auto;z-index:60}
.ppx .mob.open{display:block}
.ppx .mob .mrow{display:flex;align-items:center;justify-content:space-between;padding:15px 22px;font-family:var(--nsansb);font-size:16px;border-top:1px solid var(--line);cursor:pointer}
.ppx .mob .mrow:first-child{border-top:0}
.ppx .mob .mrow.on{color:var(--accink)}
.ppx .mob .mbody{display:none;padding:2px 22px 16px}
.ppx .mob .mbody.on{display:block}
.ppx .mob .mbody a{display:block;color:var(--muted);text-decoration:none;font-size:15px;padding:8px 0}
.ppx .mob .msearch{display:flex;gap:8px;padding:14px 22px}
.ppx .mob .msearch input{flex:1 1 auto;min-width:0;border:1px solid var(--line2);border-radius:var(--rad);padding:11px 13px;font-family:var(--nsans);font-size:15px;background:var(--surf);color:var(--ink)}
.ppx .mob .msearch input:focus{outline:2px solid var(--acc);outline-offset:1px;border-color:var(--acc)}
.ppx .mob .msearch button{flex:0 0 auto;background:var(--acc);color:#fff;border:0;border-radius:var(--rad);padding:0 15px;cursor:pointer;display:grid;place-items:center}
.ppx .mob .msearch button:hover{background:var(--accink)}
/* ---- teal (dark) header variant: pages section + /blog area ---- */
.ppx.teal{background:#003e46}
.ppx.teal .it>a{color:#fff}
.ppx.teal .it>a .c{color:rgba(255,255,255,.72)}
.ppx.teal .it.on>a,.ppx.teal .it:hover>a{color:#fff;border-bottom-color:var(--acc)}
.ppx.teal .ic{color:#fff;border-color:rgba(255,255,255,.30);background:transparent}
.ppx.teal .ic:hover{color:#fff;border-color:#fff}
.ppx.teal .burger{color:#fff;border-color:rgba(255,255,255,.30);background:transparent}
/* mega/search panels stay light (open below the teal bar) */
/* The legacy dark-header treatment injects a 30rem teal ::after overlay on
   .header__site (built for the old transparent nav) that paints OVER this nav.
   The .ppx.teal bar now owns the teal treatment, so kill the legacy overlay. */
body.theme--dark-header .header__site::after{display:none!important}

/* match Bulma container growth */
@media (min-width:1216px){.ppx .bar,.ppx .in,.ppx .psearch .row{max-width:1152px}}
@media (min-width:1408px){.ppx .bar,.ppx .in,.ppx .psearch .row{max-width:1344px}}
@media (max-width:900px){.ppx .nv{display:none}.ppx .burger{display:flex}.ppx .ic{display:none}}

/* --- donation launch fixes, 2026-08-21 --- */
/* .ppx .tr a:hover paints a light surface behind any link in the newsletter
   panel, which outranked .sb:hover and left white text on a pale background --
   the button read as broken on hover. */
.ppx .tr a.sb:hover,.ppx .tr a.sb:focus-visible{background:var(--accink);color:#fff}
/* Top-level labels must never break mid-word. Between 901px and 1215px the bar
   is capped at 960px while the contents need ~983px, so the flex items were
   being squeezed and "Community" wrapped to "Communit / y". Tighter padding in
   that band buys ~60px, which clears the ~43px shortfall. */
.ppx .it>a{white-space:nowrap}
.ppx .sb{white-space:nowrap}
@media (min-width:901px) and (max-width:1215px){
	.ppx .it>a{padding:0 8px}
	.ppx .en{gap:6px}
	.ppx .sb{padding:10px 13px}
}
