html,body{background:#f6f1e7}
body.home{background:#0f1f19}
@font-face{font-family:"Fraunces";src:url(/assets/fonts/fraunces-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(/assets/fonts/fraunces-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Public Sans";src:url(/assets/fonts/public-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Public Sans";src:url(/assets/fonts/public-sans-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(/assets/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
/* v2 "Main Street at dusk" — see DESIGN.md. One material (dark glass), one accent (marigold), film carries the colour. */
:root{--pine:#0f1f19;--pine-2:#16302a;--paper:#f6f1e7;--card:#fffdf8;--ink:#16231d;--fg:#f3efe4;
--muted-d:rgba(243,239,228,.74);--muted-l:rgba(22,35,29,.72);--line-d:rgba(243,239,228,.16);--line-l:rgba(22,35,29,.13);
--accent:#f2a541;--accent-ink:#8a4510;--mint:#bfe3c9;--ease:cubic-bezier(.16,1,.3,1);
--serif:"Fraunces",Georgia,"Times New Roman",serif;--sans:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
*{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-padding-top:92px}
body{margin:0;color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
::selection{background:rgba(242,165,65,.32)}
a{color:var(--accent-ink);text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px;border-radius:4px}
.top :focus-visible,.hero :focus-visible,.mast :focus-visible,.dark :focus-visible,.film :focus-visible,.foot :focus-visible{outline-color:var(--accent)}
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.narrow{max-width:860px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:#111;padding:8px 14px;z-index:99;border-radius:8px}
.skip:focus{left:8px}
.ic{width:1em;height:1em;vertical-align:-.15em;flex:none}
h1,h2,.gh1{font-family:var(--serif);font-weight:600;letter-spacing:-.024em;line-height:1.04;margin:0 0 .4em}
h1{font-size:clamp(2rem,4.2vw,3.3rem)}
h2{font-size:clamp(1.7rem,3.6vw,2.9rem)}
h1 em,h2 em,.gh1 em,.cl em{font-style:italic;font-weight:400}
.h3{font:600 1.08rem/1.3 var(--sans);margin:1.6em 0 .6em}
.lede{font-size:1.1rem;max-width:44rem;color:var(--muted-l)}
.small{font-size:.86rem;color:var(--muted-l)}
.muted{color:var(--muted-l)}
.mono,code{font-family:var(--mono);font-size:.88em}
.wrapcode{overflow-wrap:anywhere}
.lab,.eyebrow,.hud{font:500 11px/1.2 var(--mono);letter-spacing:.18em;text-transform:uppercase}
.eyebrow{color:var(--accent-ink);margin:0 0 16px;display:flex;align-items:center;gap:10px}
.eyebrow::before,.hud::before{content:"";width:28px;height:1px;background:currentColor;flex:none}
.dark .eyebrow,.film .eyebrow,.mast .eyebrow{color:var(--accent)}
.grain,.mast::after{position:absolute;inset:0;pointer-events:none;background-image:var(--grain);opacity:.07;mix-blend-mode:overlay}
.dark>.grain{z-index:-1}
.glass{background:rgba(12,24,19,.5);-webkit-backdrop-filter:blur(14px) saturate(1.25);backdrop-filter:blur(14px) saturate(1.25);border:1px solid rgba(243,239,228,.14)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 22px;border-radius:999px;border:0;background:var(--accent);color:#1b1206;font:600 .95rem var(--sans);cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform .2s var(--ease),background .2s,box-shadow .2s}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(242,165,65,.28)}.btn:active{transform:scale(.97)}
.btn .ic{transition:transform .25s var(--ease)}.btn:hover .ic{transform:translateX(3px)}
.btn.sm{padding:8px 18px;font-size:.9rem}
.btn.ghost{background:transparent;border:1px solid rgba(22,35,29,.25);color:var(--ink)}
.btn.ghost:hover{box-shadow:none;border-color:var(--ink)}
.glassbtn{background:rgba(243,239,228,.06);color:var(--fg);border:1px solid var(--line-d)}
.glassbtn:hover{background:rgba(243,239,228,.12);box-shadow:none}

/* floating pill nav (dark glass on every page) */
.top{position:fixed;top:12px;left:0;right:0;z-index:50;padding:0 clamp(12px,2.4vw,28px);pointer-events:none}
.pill{pointer-events:auto;max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:14px;min-height:58px;padding:7px 7px 7px 20px;border-radius:999px;color:var(--fg);
 background:rgba(12,24,19,.38);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);border:1px solid rgba(243,239,228,.14);transition:background .35s,box-shadow .35s}
.dir .pill,.top.scrolled .pill{background:rgba(12,24,19,.82);box-shadow:0 10px 30px rgba(0,0,0,.18)}
.brand{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font:600 1.05rem/1 var(--sans);letter-spacing:-.01em}
.logo{width:26px;height:26px;color:currentColor}
.ph{font:500 9px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;opacity:.6;margin-left:-4px}
.dnav{display:flex;gap:2px;margin-left:auto}
.dnav a{color:inherit;text-decoration:none;font-size:.9rem;padding:8px 12px;border-radius:999px;opacity:.86;transition:background .2s,opacity .2s}
.dnav a:hover{opacity:1;background:rgba(243,239,228,.09)}
.menu{display:none}
@media (max-width:1060px){
 .dnav{display:none}
 .navcta{margin-left:auto}
 .menu{position:relative;display:block}
 .menu summary{display:flex;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;cursor:pointer;list-style:none;align-items:center;border-radius:50%;background:rgba(243,239,228,.08)}
 .menu summary::-webkit-details-marker{display:none}
 .menu summary span{display:block;width:18px;height:2px;background:currentColor;transition:transform .25s var(--ease)}
 .menu[open] summary span:first-child{transform:translateY(4px) rotate(45deg)}
 .menu[open] summary span:last-child{transform:translateY(-4px) rotate(-45deg)}
 .menu nav{position:absolute;right:0;top:56px;display:flex;flex-direction:column;min-width:230px;background:#10221b;color:var(--fg);border:1px solid var(--line-d);border-radius:20px;box-shadow:0 18px 40px rgba(0,0,0,.3);padding:8px}
 .menu nav a{color:inherit;text-decoration:none;padding:12px 14px;border-radius:12px}
 .menu nav a:hover{background:rgba(243,239,228,.08)}
}
@media (max-width:560px){.navcta{display:none}.menu{margin-left:auto}.pill{padding-left:16px}.ph{display:none}}

/* hero (film) */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;color:var(--fg);background:var(--pine);overflow:hidden;isolation:isolate}
.hmedia,.fmedia{position:absolute;inset:0;z-index:-1;overflow:hidden}
.hmedia img,.fmedia img,.fv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.fv{opacity:0;transition:opacity .6s var(--ease)}.fv.on{opacity:1}
.scrim{position:absolute;inset:0;background:
 linear-gradient(96deg,rgba(9,19,15,.84) 0%,rgba(9,19,15,.58) 32%,rgba(9,19,15,.1) 60%,rgba(9,19,15,0) 78%),
 linear-gradient(to bottom,rgba(9,19,15,.5) 0%,rgba(9,19,15,0) 20%,rgba(9,19,15,0) 58%,rgba(15,31,25,.9) 93%,var(--pine) 100%)}
.hin{position:relative;width:100%;padding-top:120px;padding-bottom:clamp(40px,7vh,88px)}
.hud{color:var(--muted-d);margin:0 0 22px;display:flex;align-items:center;gap:10px}
.hud::before{background:var(--accent)}
.hero h1{font-size:clamp(2.9rem,7.4vw,6.4rem);line-height:.96;letter-spacing:-.032em;margin:0 0 24px;text-shadow:0 16px 38px rgba(0,0,0,.3)}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.hero h1 .ln>span{display:inline-block}
.hero h1 em{color:var(--accent)}
@media (min-width:900px){.hero h1 .ln{white-space:nowrap}}
.sub{color:rgba(243,239,228,.84);font-size:1.14rem;max-width:32rem;margin:0 0 28px;text-shadow:0 2px 18px rgba(0,0,0,.42)}
.pick{display:flex;gap:8px;flex-wrap:wrap;border-radius:999px;padding:6px;max-width:35rem}
.pick select{flex:1 1 200px;min-width:0;background:transparent;color:var(--fg);border:0;font:400 1rem var(--sans);padding:10px 16px;border-radius:999px;cursor:pointer}
.pick select option{color:#111}
.pick input{flex:1 1 150px;min-width:0;background:rgba(255,255,255,.1);color:var(--fg);border:1px solid rgba(243,239,228,.22);font:400 1rem var(--sans);padding:10px 18px;border-radius:999px;letter-spacing:.04em}
.pick input::placeholder{color:rgba(243,239,228,.72)}
.pick input:focus,.pick select:focus{outline:2px solid var(--accent);outline-offset:1px}
.pick select{flex-basis:170px}
#rcount{scroll-margin-top:96px}
.hfoot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 32px;margin-top:22px}
.tlink{display:inline-flex;gap:6px;align-items:center;color:var(--muted-d);font-size:.95rem}
.tlink:hover{color:var(--fg)}
.hstats{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;font-size:.88rem;color:var(--muted-d)}
.hstats li+li::before{content:"";display:inline-block;width:1px;height:14px;background:var(--line-d);margin:0 16px;vertical-align:-2px}
.hstats b{color:var(--fg);font-weight:600;font-variant-numeric:tabular-nums}
@media (max-width:760px){
 .scrim{background:linear-gradient(to bottom,rgba(9,19,15,.55) 0%,rgba(9,19,15,.08) 24%,rgba(9,19,15,.35) 44%,rgba(15,31,25,.9) 70%,var(--pine) 100%)}
 .hin{padding-top:150px}.sub{font-size:1.04rem}
 .hstats{flex-direction:column;gap:2px}.hstats li+li::before{display:none}
}
@media (max-width:560px){.pick{border-radius:22px}.pick .btn{width:100%;justify-content:center}}

/* marquee */
.marquee{background:var(--pine);color:var(--muted-d);overflow:hidden;padding:20px 0 64px;border-top:1px solid var(--line-d);-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq{display:flex;width:max-content}
.mq>div{display:flex;align-items:center;gap:22px;padding-right:22px;font:500 11.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.mq b{color:var(--accent);font-weight:500}
.mq i{font-style:normal;color:var(--accent);opacity:.55;font-size:8px}
@keyframes mq{to{transform:translateX(-50%)}}

/* acts */
.act{padding:clamp(64px,9vw,128px) 0;position:relative}
.paper{background:var(--paper);color:var(--ink)}
.dark{background:var(--pine);color:var(--fg);overflow:hidden;isolation:isolate}
.dark .small,.dark .lede,.film .small,.film .lede{color:var(--muted-d)}
.dark a,.film a{color:var(--accent)}
.sheet{border-radius:40px 40px 0 0;margin-top:-40px;z-index:2}
@media (max-width:760px){.sheet{border-radius:24px 24px 0 0;margin-top:-24px}}
.acthead{margin-bottom:32px}
.acthead h2{max-width:22ch}
.acthead h2 em{color:var(--muted-l)}.dark .acthead h2 em,.film .acthead h2 em{color:var(--accent)}

/* finder */
.filters{margin:0 0 18px}
.fwrap{background:var(--card);border:1px solid var(--line-l);border-radius:22px;padding:6px 20px 20px;box-shadow:0 4px 16px rgba(22,35,29,.05)}
.fwrap summary{font:600 1rem var(--sans);padding:12px 0;cursor:pointer}
.fgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 18px;align-items:end}
.fgrid label{display:flex;flex-direction:column;gap:6px;font-size:.86rem;font-weight:600}
.fgrid input[type=search],.fgrid input[type=text],.fgrid select{font:400 1rem var(--sans);padding:10px 12px;border:1px solid rgba(22,35,29,.3);border-radius:12px;background:#fff;color:var(--ink);min-height:44px;width:100%;transition:border-color .2s,box-shadow .2s}
.fgrid input[type=search]:focus,.fgrid input[type=text]:focus,.fgrid select:focus{border-color:var(--accent-ink);box-shadow:0 0 0 3px rgba(242,165,65,.25);outline:none}
.fgrid .cb{flex-direction:row;align-items:center;gap:10px;font-weight:400;min-height:44px}
.cb input{width:20px;height:20px;accent-color:var(--accent-ink)}
.ver{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px 18px;border:1px dashed rgba(138,69,16,.4);border-radius:16px;padding:12px 14px 14px;margin:4px 0 0;align-items:end;background:#fdf8ee}
.ver legend{font:600 .86rem var(--sans);padding:0 6px;color:var(--accent-ink)}
#f-reset{justify-self:start}
@media (max-width:1000px){.fgrid{grid-template-columns:1fr 1fr}.ver{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.fgrid,.ver{grid-template-columns:1fr}}
.rcount{font-weight:600;margin:14px 0 4px}
.rnote,.note{background:#fbf3e3;border-left:3px solid var(--accent-ink);padding:10px 14px;border-radius:0 10px 10px 0;font-size:.95rem;max-width:56rem}
.lrows{list-style:none;margin:10px 0 22px;padding:0;background:var(--card);border:1px solid var(--line-l);border-radius:18px;overflow:hidden}
.lrows:empty{display:none}
.lrow{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line-l);transition:background .2s}
.lrow:first-child{border-top:0}
.lrow:hover{background:#fbf5e8}
.lrow a{flex:1;display:flex;flex-direction:column;gap:2px;padding:14px 18px;text-decoration:none;color:var(--ink);min-width:0}
.lrow a:hover .ln1{text-decoration:underline;text-decoration-color:var(--accent-ink)}
.ln1{font-weight:600;overflow-wrap:anywhere}
.ln2{font-size:.88rem;color:var(--muted-l)}
.rp{font-size:.86rem;color:var(--accent-ink)}
.fgrid select:disabled{opacity:.45;cursor:not-allowed}
.lgroup{font:500 11px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted-l);background:#f4eee2;padding:12px 18px;border-top:1px solid var(--line-l)}
.lgroup:first-child{border-top:0}
.lgroup span{color:var(--accent-ink);margin-left:6px}
.rw{font-size:.86rem;color:var(--ink)}
.rw.hit{color:#1d5a32;font-weight:600}
.rw q{font-weight:400;color:var(--muted-l)}
.vb,.nb{font:500 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:6px 9px;border-radius:999px;margin-right:16px;white-space:nowrap}
.vb{background:#e3f0e4;color:#1d5a32}
.vb::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#2f8a4e;margin-right:6px;vertical-align:1px}
.nb{background:#efe9dc;color:#5c584c}
@media (max-width:560px){.lrow{flex-direction:column;align-items:flex-start;gap:0}.vb,.nb{margin:0 18px 14px}}
/* finder cards (moves 1-3, 2026-11-14): name link, reason, phone / amount / activity facts, "ask them" tag */
.lcard .lmain{flex:1;display:flex;flex-direction:column;gap:3px;padding:14px 18px;min-width:0}
.lcard .lmain a{flex:none;display:inline;padding:0;gap:0}
.lcard a.ln1{color:var(--ink);text-decoration:none;font-size:1.02rem}
.lcard a.ln1:hover{text-decoration:underline;text-decoration-color:var(--accent-ink)}
.lfacts{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.86rem;color:var(--ink);margin-top:2px}
.lfacts a{color:var(--accent-ink);font-weight:600}
.lfacts .act5{color:#1d5a32}
.ask{font-size:.84rem;color:#6b4a12;background:#fbf0d9;border-radius:8px;padding:3px 8px;align-self:flex-start;margin-top:2px}
.lsub{font:500 10.5px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-l);background:#faf6ee;padding:9px 18px 9px 30px;border-top:1px solid var(--line-l)}
.lsub span{color:var(--accent-ink);margin-left:6px}
.lgroup.sec{font-size:12px;color:var(--ink);background:#e9f1e6}
.lgroup.sec.ask{background:#fbf0d9;color:#6b4a12}
details.rnote{margin:6px 0 18px}
details.rnote summary{cursor:pointer;font-weight:600}
details.rnote p{margin:10px 0 0}
#more{margin-bottom:28px}

/* map act */
.mapgrid{display:grid;grid-template-columns:minmax(0,36fr) minmax(0,64fr);gap:clamp(24px,4vw,64px);align-items:center}
.hart{position:relative}
.tilemap{width:100%;height:auto;display:block;overflow:visible}
.tile rect{transition:filter .2s,stroke .2s;stroke:transparent;stroke-width:2}
.tile:hover rect,.tile:focus-visible rect{stroke:var(--accent);filter:brightness(1.25)}
.tile:focus-visible{outline:none}
.ta{font:600 16px var(--sans);fill:#f3efe4;text-anchor:middle}
.tn{font:500 13px var(--mono);fill:rgba(243,239,228,.72);text-anchor:middle}
.motes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.sgrid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.sgrid a{display:flex;justify-content:space-between;gap:10px;padding:11px 16px;background:var(--card);border:1px solid var(--line-l);border-radius:12px;text-decoration:none;color:var(--ink);transition:border-color .2s,background .2s}
.sgrid a:hover{border-color:var(--accent-ink)}
.cnt{font:500 .85rem var(--mono);color:var(--accent-ink)}
.sgrid.dk a{background:rgba(243,239,228,.035);border-color:var(--line-d);color:var(--fg)}
.sgrid.dk a:hover{border-color:var(--accent);background:rgba(242,165,65,.08)}
.sgrid.dk .cnt{color:var(--accent)}
.mapact .h3{margin-top:56px}
@media (max-width:1000px){.mapgrid{grid-template-columns:1fr}}
@media (max-width:560px){.ta{font-size:22px;transform:translateY(6px)}.tn{display:none}.sgrid{grid-template-columns:1fr 1fr;gap:6px}.sgrid a{padding:10px 12px;font-size:.92rem}}

/* hubs and guides */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.card{position:relative;display:flex;flex-direction:column;min-height:260px;padding:26px 26px 28px;background:var(--card);border:1px solid var(--line-l);border-radius:26px;text-decoration:none;color:var(--ink);transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.card .big{font:600 clamp(2.9rem,5.2vw,4.4rem)/.9 var(--serif);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.card .lab{margin-top:10px;color:var(--accent-ink)}
.card strong{margin-top:auto;padding-top:30px;font:600 1.32rem/1.15 var(--serif);letter-spacing:-.01em}
.cd{color:var(--muted-l);font-size:.95rem;margin-top:6px;max-width:32ch}
.go{position:absolute;right:20px;top:22px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-l);color:var(--accent-ink);transition:transform .35s var(--ease),background .3s,color .3s,border-color .3s}
.card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(22,35,29,.09);border-color:rgba(22,35,29,.22)}
.card:hover .go,.gl:hover .go{background:var(--pine);border-color:var(--pine);color:var(--accent);transform:rotate(-45deg)}
.guides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:40px;border-top:1px solid var(--ink)}
.gl{position:relative;display:flex;flex-direction:column;gap:6px;padding:24px 70px 26px 0;text-decoration:none;color:var(--ink)}
.gl+.gl{padding-left:26px;border-left:1px solid var(--line-l)}
.gl strong{font:600 1.32rem/1.15 var(--serif)}
.gl .lab{color:var(--accent-ink)}
.gl .go{top:24px;right:18px}
.gl:nth-child(3n+1){padding-left:0;border-left:0}.gl:nth-child(n+4){border-top:1px solid var(--line-l)}
@media (max-width:900px){.cards{grid-template-columns:1fr 1fr}.guides{grid-template-columns:1fr}.gl+.gl{padding-left:0;border-left:0;border-top:1px solid var(--line-l)}}
@media (max-width:560px){.cards{grid-template-columns:1fr}.card{min-height:0}}
@media (hover:none){.card:hover{transform:none}}

/* ledger (film interlude) */
.film{position:relative;color:var(--fg);background:var(--pine);overflow:hidden;isolation:isolate;padding:clamp(96px,12vw,168px) 0 clamp(24px,4vw,48px)}
.fmedia img{object-position:50% 40%}
.scrim2{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(9,19,15,.62) 0%,rgba(9,19,15,.22) 30%,rgba(9,19,15,.3) 62%,rgba(15,31,25,.92) 92%,var(--pine) 100%)}
.film .acthead h2{text-shadow:0 12px 34px rgba(0,0,0,.4)}
.panel{border-radius:30px;padding:clamp(22px,3.2vw,44px);max-width:1100px}
.stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0 0 30px}
.stat{border-top:1px solid var(--line-d);padding-top:14px}
.stat .num{display:block;font:600 clamp(2rem,4.2vw,3.3rem)/1 var(--serif);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.stat .lab{display:block;margin-top:10px;color:var(--muted-d);letter-spacing:.12em}
.two{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.two .h3{margin-top:.4em}
.two p{color:var(--muted-d);margin:0}
.cover{margin-top:30px;max-width:640px}
.bar{height:10px;border-radius:99px;background:rgba(243,239,228,.14);overflow:hidden}
.bar span{display:block;height:100%;background:linear-gradient(90deg,#c9822d,var(--accent));border-radius:99px;min-width:6px}
@media (max-width:900px){.stats{grid-template-columns:repeat(3,1fr)}.two{grid-template-columns:1fr;gap:4px}}
@media (max-width:480px){.stats{grid-template-columns:repeat(2,1fr)}}

/* directory masthead */
.mast{position:relative;overflow:hidden;isolation:isolate;background:var(--pine);color:var(--fg);padding:clamp(112px,12vw,150px) 0 clamp(40px,5vw,64px)}
.mast::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(900px 420px at 88% -12%,rgba(242,165,65,.17),transparent 70%),radial-gradient(700px 380px at -8% 115%,rgba(191,227,201,.08),transparent 70%)}
.mast::after{content:"";z-index:-1}
.mgrid{display:grid;gap:32px}
.has-aside .mgrid{grid-template-columns:minmax(0,1fr) minmax(0,400px);align-items:end}
.mast h1{font-size:clamp(2.2rem,4.8vw,3.8rem);line-height:1.02;letter-spacing:-.03em;margin:4px 0 18px;max-width:20ch;overflow-wrap:break-word}
.mast h1.lh1{font-size:clamp(2rem,4.2vw,3.3rem);max-width:24ch}
.mast h1 em{color:var(--accent)}
.mast .lede{color:var(--muted-d);margin:0;max-width:42rem}
.mast a{color:var(--fg)}
.mast .chips{margin:0 0 16px}
.crumbs{font-size:.86rem;display:flex;flex-wrap:wrap;gap:6px;color:var(--muted-d);margin:0 0 26px}
.crumbs .sep{opacity:.5}
.crumbs [aria-current]{overflow-wrap:anywhere}
.mstats{display:flex;flex-wrap:wrap;margin:28px 0 0;padding:0}
.mstats div{padding:12px 0 0;margin:0 36px 10px 0;border-top:1px solid var(--line-d);min-width:110px}
.mstats dt{font:500 10.5px/1.2 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted-d)}
.mstats dd{margin:7px 0 0;font:600 1.45rem/1.1 var(--serif);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.maside{max-width:400px;justify-self:end;width:100%}
.mini .ta{font-size:19px}
.mini .tile:not(.on) rect{fill-opacity:.85}
.mini .tile.on .ta{fill:#1b1206}
.mini .tile.on rect{filter:drop-shadow(0 0 10px rgba(242,165,65,.7))}
.mini.full .ta{font-size:16px}
@media (max-width:900px){.has-aside .mgrid{grid-template-columns:1fr}.maside{justify-self:start;max-width:340px}}
@media (max-width:560px){.maside{display:none}.mstats div{margin-right:22px;min-width:0}}

/* directory body */
.dsec{padding:clamp(28px,5vw,56px) 0 72px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.chip{display:inline-flex;align-items:center;gap:6px;font:500 11px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:7px 11px;border-radius:999px;background:#ece5d6;color:#3c3a32}
.chip.ok{background:#e3f0e4;color:#1d5a32}.chip.warn{background:#f6e2c8;color:#6b3a0d}.chip.nat{background:#e7e0f0;color:#43345e}
.mast .chip{background:rgba(243,239,228,.1);color:var(--fg)}
.mast .chip.ok{background:rgba(191,227,201,.16);color:#d3f0dc}.mast .chip.warn{background:rgba(242,165,65,.16);color:#ffd9a3}.mast .chip.nat{background:rgba(200,185,235,.16);color:#e2d8fb}
.chip.link{text-decoration:none;text-transform:none;letter-spacing:0;font:400 .9rem var(--sans);background:var(--card);border:1px solid var(--line-l);color:var(--ink);transition:border-color .2s}
.chip.link:hover{border-color:var(--accent-ink)}
.chip.link b{font:500 .8rem var(--mono);color:var(--accent-ink)}
.cidx{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 8px}
.city{scroll-margin-top:96px}
.block{margin:34px 0}
.bhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--ink);padding-bottom:10px;margin-bottom:14px}
.bhead h2{font-size:1.6rem;margin:0}
.dt{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);font-size:15px;line-height:1.45;font-variant-numeric:tabular-nums;border:1px solid var(--line-l);border-radius:16px;overflow:hidden}
.dt th,.dt td{text-align:left;vertical-align:top;padding:12px 16px;border-bottom:1px solid var(--line-l);overflow-wrap:anywhere}
.dt tbody tr:last-child>*{border-bottom:0}
.dt thead th{font:600 .78rem var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--muted-l);background:#f3ede1}
.facts th{width:32%;font-weight:600}
.dt .num{text-align:right}
q{quotes:"“" "”"}
.dt q{color:#2f3a33}
.src{white-space:nowrap;font-size:.86rem}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:0 36px}
.kv .h3{margin-top:1.4em}
ul.q{padding-left:18px;margin:0}ul.q li{margin:0 0 8px}
.pages{margin-top:20px;font-size:.88rem}.pages li{overflow-wrap:anywhere}
.nv p{max-width:46rem}
.disc{margin-top:40px;border-top:1px solid var(--line-l);padding-top:14px}
@media (max-width:760px){.kv{grid-template-columns:1fr}
 .dt:not(.facts) thead{display:none}.dt:not(.facts) tr{display:block;border-bottom:1px solid var(--line-l);padding:8px 0}.dt:not(.facts) tbody tr:last-child{border-bottom:0}.dt:not(.facts) td{display:block;border:0;padding:4px 16px}
 .facts th{width:38%}}
/* guides */
.gh1{font-size:clamp(2.4rem,5.6vw,4.4rem)!important}
.prose{padding-top:40px;padding-bottom:72px}
.prose h2{font-size:1.7rem;margin-top:1.6em}
.prose p,.prose li{max-width:46rem}
.srcs li{margin-bottom:6px;overflow-wrap:anywhere}

/* closing + footer */
.foot{position:relative;background:var(--pine);color:var(--fg);padding:0 0 56px}
.closing{padding:clamp(72px,10vw,128px) 0 clamp(44px,6vw,72px);border-bottom:1px solid var(--line-d);margin-bottom:44px}
.cl{font:600 clamp(2.2rem,5.6vw,4.6rem)/1 var(--serif);letter-spacing:-.032em;max-width:17ch;margin:0 0 30px}
.cl em{color:var(--accent)}
.clbtns{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.foot .small{color:var(--muted-d)}.foot a{color:var(--fg)}
.foot .clbtns a.btn{color:#1b1206}.foot .clbtns a.glassbtn{color:var(--fg)}
.foot .lab{color:var(--accent);margin:4px 0 10px}
.footgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:28px}
@media (max-width:800px){.footgrid{grid-template-columns:1fr}}

/* motion: hero entrance is CSS-only; reveals are gated by html.io (set by motion.js) */
@media (prefers-reduced-motion:no-preference){
 .rise{animation:rise .9s var(--ease) both;animation-delay:var(--d,0s)}
 .hero h1 .ln>span{animation:lineup 1s var(--ease) both;animation-delay:calc(.22s + var(--i,0) * .12s)}
 .hmedia{animation:settle 2.4s var(--ease) both}
 .mq{animation:mq 64s linear infinite}
 .marquee:hover .mq{animation-play-state:paused}
 .io [data-reveal],.io [data-stagger]>*{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0) * 90ms)}
 .io [data-reveal].is-in,.io [data-stagger].is-in>*{opacity:1;transform:none}
}
@keyframes rise{from{opacity:0;transform:translateY(18px)}}
@keyframes lineup{from{transform:translateY(110%)}}
@keyframes settle{from{transform:scale(1.06)}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* sec-tlr */
.dt.tlr{table-layout:fixed}.dt.tlr th:first-child,.dt.tlr td:first-child{width:44%;overflow-wrap:break-word}
.dt.tlr th.num,.dt.tlr td.num{display:table-cell;font:inherit;letter-spacing:normal;text-align:right}.dt.tlr td.num{white-space:nowrap}
@media (max-width:760px){.dt.tlr{font-size:14px}.dt.tlr thead{display:table-header-group}.dt.tlr tr{display:table-row;padding:0}.dt.tlr th,.dt.tlr td{display:table-cell;padding:9px 7px;border-bottom:1px solid var(--line-l)}.dt.tlr thead th{font-size:.66rem;letter-spacing:.02em;white-space:normal;overflow-wrap:normal}.dt.tlr{font-size:13px}.dt.tlr th:first-child,.dt.tlr td:first-child{width:31%;padding-left:6px}.dt.tlr th.num,.dt.tlr td.num{padding:9px 3px}.dt.tlr th:last-child,.dt.tlr td:last-child{padding-right:6px}.dt.tlr tbody tr:last-child>*{border-bottom:0}}
@media (max-width:340px){.dt.tlr{font-size:12px}.dt.tlr td.num{white-space:normal;overflow-wrap:anywhere}}

/* sec-content */
.tw{overflow-x:auto;margin:14px 0 22px;-webkit-overflow-scrolling:touch}
.dt.cg th.n,.dt.cg td.n{text-align:right;white-space:nowrap}
@media (max-width:760px){.dt.cg{font-size:14px}.dt.cg thead{display:table-header-group}.dt.cg tr{display:table-row;padding:0}.dt.cg th,.dt.cg td{display:table-cell;padding:9px 10px;border-bottom:1px solid var(--line-l)}.dt.cg tbody tr:last-child>*{border-bottom:0}}
.hwc{background:var(--card);border:1px solid var(--line-l);border-radius:16px;padding:16px 20px;margin:26px 0;font-size:.93rem;max-width:46rem}
.hwc .lab{font:500 11px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 8px}
.hwc ul{margin:0;padding-left:18px}.prose .hwc li{margin:0 0 6px;max-width:none}
sup.ref{font-size:.72em;color:var(--muted-l);margin-left:2px}
.prose details.pages{margin:18px 0}.prose details.pages summary{cursor:pointer;font-weight:600}
/* sec-irs990 */
.dt.i990{table-layout:fixed}.dt.i990 th,.dt.i990 td{overflow-wrap:break-word}.dt.i990 th:first-child,.dt.i990 td:first-child{width:46%}
.dt.i990 td.num,.dt.i990 th.num{text-align:right}.dt.i990 td.num{white-space:nowrap}
@media (max-width:760px){.dt.i990{font-size:13px}.dt.i990 thead{display:table-header-group}.dt.i990 tr{display:table-row;padding:0}.dt.i990 th,.dt.i990 td{display:table-cell;padding:9px 6px;border-bottom:1px solid var(--line-l)}.dt.i990 thead th{font-size:.62rem;letter-spacing:.02em;white-space:normal}.dt.i990 th:first-child,.dt.i990 td:first-child{width:40%}.dt.i990 tbody tr:last-child>*{border-bottom:0}}
/* /sec-irs990 */

/* sec-branches */
/* finder "Show more" sets the hidden attribute; .btn{display:inline-flex} overrode it, so the button never disappeared */
#more[hidden]{display:none}
.cite{margin:-40px 0 0;padding:0 0 44px;color:var(--muted-l)}
/* maps (sections/maps.py, assets/lmap.js + mapview.js): hidden until JavaScript shows the button; MapLibre loads on tap */
.mapline{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:14px 0 0}
.mapline[hidden],.mapwrap[hidden],#show-map[hidden]{display:none}
.mapwrap{margin:14px 0 0}
.mapbox{position:relative;height:380px;border-radius:14px;overflow:hidden;background:#f3eee2;border:1px solid var(--line-l)}
@media (max-width:760px){.mapbox{height:320px}}
.mlegend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 0 0}
.mlegend span{display:inline-flex;align-items:center;gap:6px}
.mk{display:inline-block;width:12px;height:12px;border-radius:50%;box-sizing:border-box}
.mk.hq{width:14px;height:14px;background:var(--accent);border:2px solid var(--ink)}
.mk.of{background:var(--pine-2);border:1.5px solid #fffdf8;box-shadow:0 0 0 1px var(--pine-2)}
.mk.ap{border:2px solid var(--pine-2);background:transparent}
.mattr{font-size:.74rem;margin:4px 0 0}
.mpop{font:500 .88rem/1.4 var(--sans);color:var(--ink)}
.mpop a,.mpop strong{font-weight:600;color:var(--ink)}
.mpop p{margin:4px 0 0;color:var(--muted-l)}
.maplibregl-popup-content{border-radius:10px;padding:10px 28px 10px 12px}
@media print{.mapline,.mapwrap{display:none}}
