/* LeaderForce American Atlas · shared site styles */
:root{
  --bg:#000; --ink:#FFF; --ink2:#C9C9C9; --muted:#8A8A8A; --faint:#5E5E5E;
  --hair:#222; --hair2:#151515; --panel:#0B0B0B;
  --cyan:#00CFFF; --blue:#3567FF; --violet:#8A35FF; --magenta:#F000C8;
  --grad:linear-gradient(90deg,#00CFFF,#3567FF,#8A35FF,#F000C8);
  --disp:'Archivo',Helvetica,Arial,sans-serif; --cond:'Oswald',Arial Narrow,sans-serif;
  --body:'Instrument Sans',Helvetica,Arial,sans-serif; --mono:'IBM Plex Mono',Consolas,monospace;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
@media(min-width:720px){.wrap{padding:0 32px}}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.go{color:var(--cyan);font-weight:500;cursor:pointer}
.go:hover{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:60;background:#000;border-bottom:1px solid var(--hair2)}
.nav-in{display:flex;align-items:center;gap:16px;padding:12px 20px;max-width:1140px;margin:0 auto}
@media(min-width:720px){.nav-in{padding:14px 32px;gap:28px}}
.brand{display:flex;align-items:center;gap:11px;flex:none}
.brand img{width:28px;height:auto;display:block}
.brand-t{line-height:1.1}
.brand-t .l1{font-family:var(--mono);font-size:8.5px;letter-spacing:.3em;color:var(--ink2);display:block}
.brand-t .l2{font-family:var(--cond);font-weight:600;font-size:15px;letter-spacing:.13em;text-transform:uppercase}
.nav-links{display:none;gap:22px;font-size:14.5px;color:var(--ink2);margin-left:8px}
.nav-links a{padding:4px 0;border-bottom:2px solid transparent;white-space:nowrap}
.nav-links a:hover{color:var(--ink)}
.nav-links a.on{color:var(--ink);border-image:var(--grad) 1}
.nav-spacer{flex:1}
.nav-burger{display:grid;place-items:center;width:40px;height:40px;background:none;border:1px solid var(--hair);border-radius:9px;color:var(--ink2);cursor:pointer;font-size:18px}
@media(min-width:960px){.nav-links{display:flex}.nav-burger{display:none}}
.nav-drawer{display:none;border-top:1px solid var(--hair2);background:#000}
.nav-drawer.open{display:block}
.nav-drawer a{display:block;padding:15px 24px;font-size:16px;color:var(--ink2);border-bottom:1px solid var(--hair2)}
.nav-drawer a.on{color:var(--cyan)}
.nav-drawer a:active{color:var(--ink)}

/* ---------- type ---------- */
h1.hero{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:clamp(34px,8.4vw,54px);line-height:1.04;text-wrap:balance}
h1 .g,h2 .g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
h2.big{font-family:var(--disp);font-weight:800;font-size:clamp(24px,5.4vw,36px);line-height:1.12;text-wrap:balance}
.lede{color:var(--ink2);margin-top:18px;max-width:52ch}
.sub{color:var(--muted);margin-top:12px;max-width:60ch}
section{padding:64px 0 0}
@media(min-width:720px){section{padding:80px 0 0}}
.pagehead{padding:44px 0 8px}
@media(min-width:720px){.pagehead{padding:64px 0 10px}}

/* ---------- ask box ---------- */
.askbox{margin-top:28px;border-radius:999px;padding:2px;background:linear-gradient(90deg,rgba(0,207,255,.8),rgba(53,103,255,.6),rgba(138,53,255,.6),rgba(240,0,200,.8))}
.askbox .in{display:flex;align-items:center;gap:10px;background:#000;border-radius:999px;padding:4px 5px 4px 18px}
.askbox svg{flex:none}
.askbox input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--ink);font-family:var(--body);font-size:15.5px;padding:12px 0}
.askbox input::placeholder{color:var(--faint)}
.askbox button{flex:none;width:42px;height:42px;border-radius:50%;border:1px solid var(--hair);background:none;color:var(--ink2);cursor:pointer;font-size:17px}
.askbox button:hover{background:var(--grad);color:#000;border-color:transparent}
.chip{display:inline-block;font-size:13.5px;color:var(--ink2);border:1px solid var(--hair);border-radius:999px;padding:8px 15px;margin:0 8px 8px 0;cursor:pointer;background:none;font-family:var(--body);text-align:left}
.chip:hover{border-color:var(--cyan);color:var(--cyan)}
.chip:focus-visible,button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:1fr;gap:14px;margin-top:34px}
@media(min-width:640px){.cards{grid-template-columns:repeat(2,1fr);gap:18px}}
@media(min-width:960px){.cards{grid-template-columns:repeat(3,1fr);gap:22px}}
a.xcard{background:var(--panel);border:1px solid var(--hair2);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:9px;position:relative;overflow:hidden;transition:border-color .15s}
a.xcard:hover{border-color:var(--faint)}
a.xcard::after{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--grad);opacity:0;transition:opacity .15s}
a.xcard:hover::after{opacity:1}
.xcard .num{font-family:var(--mono);font-size:10px;letter-spacing:.12em;background:var(--grad);color:#000;font-weight:500;border-radius:4px;padding:3px 8px;align-self:flex-start}
.xcard h3{font-family:var(--disp);font-weight:700;font-size:17px;text-transform:uppercase;letter-spacing:.03em;line-height:1.25}
.xcard p{font-size:13.5px;color:var(--muted)}
.xcard .go{font-size:13.5px;margin-top:auto}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:1fr;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);margin-top:44px}
@media(min-width:640px){.stats{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{padding:20px 4px;display:flex;gap:14px;align-items:flex-start;border-bottom:1px solid var(--hair2)}
@media(min-width:960px){.stat{border-bottom:0;padding:24px 22px}.stat+.stat{border-left:1px solid var(--hair2)}}
.stat svg{flex:none;margin-top:4px}
.stat .n{font-family:var(--disp);font-weight:800;font-size:27px;line-height:1.05;font-variant-numeric:tabular-nums}
.stat .t{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);margin-top:4px}
.stat .d{font-size:12.5px;color:var(--faint);margin-top:2px}

/* ---------- map ---------- */
.mapviews{display:flex;border:1px solid var(--hair);border-radius:999px;overflow:hidden;width:max-content;max-width:100%}
.mapviews button{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:none;border:0;color:var(--muted);padding:9px 13px;cursor:pointer;white-space:nowrap}
.mapviews button+button{border-left:1px solid var(--hair)}
.mapviews button.on{color:var(--ink);background:linear-gradient(90deg,rgba(0,207,255,.16),rgba(138,53,255,.16))}
svg.usmap{width:100%;height:auto;display:block;margin-top:18px}
.nation{fill:#121216;stroke:#3A3B44;stroke-width:1.1}
.stateline{fill:none;stroke:#33343B;stroke-width:.8}
.school{cursor:pointer}
.maplegend{display:flex;gap:14px;font-family:var(--mono);font-size:10px;color:var(--faint);letter-spacing:.05em;margin-top:6px;flex-wrap:wrap;align-items:center}
.maplegend i{border-radius:50%;background:var(--cyan);display:inline-block;margin-right:5px;vertical-align:middle}

/* ---------- lists/bars ---------- */
.rrow{display:grid;grid-template-columns:26px 1fr 56px;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--hair2);font-size:14.5px}
.rrow .ri{font-family:var(--mono);font-size:11px;color:var(--faint)}
.rrow .rn{color:var(--ink2)}
a.rrow:hover .rn{color:var(--cyan)}
.rrow .rv{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.rrow .bar{grid-column:2/4;height:5px;border-radius:0 2px 2px 0;background:var(--cyan);opacity:.85;margin-top:-2px}
.pbar{margin-bottom:10px}
.pbar .bl{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;color:var(--ink2)}
.pbar .bl span:last-child{font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap}
.pbar .bt{height:6px;border-radius:0 3px 3px 0;background:var(--cyan);margin-top:4px}
.psec{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:20px 0 12px}

/* ---------- controls ---------- */
select,.search{width:100%;background:#0C0C0C;border:1px solid var(--hair);border-radius:11px;color:var(--ink);font-family:var(--body);font-size:15px;padding:13px 15px}
@media(min-width:640px){select,.search{width:auto;min-width:280px}}
select:focus,.search:focus{outline:0;border-color:var(--cyan)}
.controls{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap;align-items:center}
.vs{font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.14em}

/* ---------- two-col ---------- */
.split{display:grid;grid-template-columns:1fr;gap:34px;align-items:start;margin-top:10px}
@media(min-width:960px){.split{grid-template-columns:minmax(300px,400px) 1fr;gap:54px}}
.ocols{display:grid;grid-template-columns:1fr;gap:34px;margin-top:28px}
@media(min-width:860px){.ocols{grid-template-columns:1fr 1fr;gap:46px}}
.nums{display:flex;border-top:1px solid var(--hair2);border-bottom:1px solid var(--hair2);margin:18px 0;flex-wrap:wrap}
.num{flex:1;min-width:110px;padding:13px 6px}
.num+.num{border-left:1px solid var(--hair2);padding-left:14px}
.num .n{font-family:var(--disp);font-weight:800;font-size:22px;font-variant-numeric:tabular-nums}
.num .l{font-size:11px;color:var(--faint);line-height:1.3}
.bignum{font-family:var(--disp);font-weight:800;font-size:clamp(34px,7vw,44px);line-height:1;font-variant-numeric:tabular-nums}
.bignum small{font-size:15px;color:var(--muted);font-weight:600}
.meter{height:10px;border-radius:5px;background:#101010;overflow:hidden;margin-top:8px}
.meter i{display:block;height:100%;background:var(--grad)}
.pathway{display:flex;height:14px;border-radius:7px;overflow:hidden;margin-top:8px}
.pathway i{display:block;height:100%}
.pk{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted)}
.pk i{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:5px;vertical-align:middle}

/* ---------- answer page ---------- */
.a-finding{font-family:var(--disp);font-weight:700;font-size:clamp(19px,4.6vw,24px);line-height:1.3;border-left:2px solid;border-image:linear-gradient(180deg,#00CFFF,#F000C8) 1;padding-left:16px;max-width:34ch}
.a-fact{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--hair2);font-size:14.5px;color:var(--ink2)}
.a-fact .v{font-family:var(--mono);font-size:12.5px;color:var(--cyan);font-variant-numeric:tabular-nums;text-align:right;max-width:60%}
details.a-src{margin-top:22px}
details.a-src summary{cursor:pointer;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);list-style:none}
details.a-src .s{font-size:13px;color:var(--muted);margin-top:10px;max-width:66ch}
.honest{background:var(--panel);border:1px dashed var(--hair);border-radius:12px;padding:17px 19px;font-size:14.5px;color:var(--ink2);max-width:70ch}
.honest .gt{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--magenta);margin-bottom:7px}

/* ---------- plot ---------- */
.prow{display:grid;grid-template-columns:1fr;gap:6px;padding:14px 0;border-bottom:1px solid var(--hair2)}
@media(min-width:720px){.prow{grid-template-columns:190px 1fr;gap:18px;align-items:center}}
.plabel .pl1{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}
.plabel .pl2{font-size:12px;color:var(--faint)}
.ptrack{position:relative;height:30px}
.ptrack .pline{position:absolute;left:0;right:0;top:50%;height:1px;background:var(--hair)}
.pdot{position:absolute;top:50%;width:13px;height:13px;border-radius:50%;background:var(--blue);transform:translate(-50%,-50%);cursor:pointer;border:2px solid #000}
.pdot:hover{background:var(--cyan)}

/* ---------- misc ---------- */
#tip{position:fixed;z-index:99;pointer-events:none;background:#0E0E0E;border:1px solid var(--hair);border-radius:10px;padding:12px 15px;font-size:13px;max-width:270px;display:none;box-shadow:0 10px 40px rgba(0,0,0,.7)}
#tip .tl{font-family:var(--disp);font-weight:700;font-size:13px;text-transform:uppercase}
#tip .tm{font-size:12.5px;color:var(--ink2);margin-top:5px}
#tip .tm b{color:var(--cyan)}
#tip .tloc{color:var(--muted);font-size:12px}
.hairline{border:0;border-top:1px solid var(--hair2);margin:64px 0 0}
footer.site{margin-top:90px;border-top:1px solid var(--hair2);padding:28px 0 56px}
footer.site .f{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--faint);text-transform:uppercase}
footer.site p{color:var(--muted);font-size:13px;max-width:70ch;margin-top:12px}
footer.site .links{display:flex;gap:20px;flex-wrap:wrap;margin-top:14px;font-size:13.5px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}

/* ── Narrative reset (D-028): sentence case, invitation register ── */
h1.hero{text-transform:none;letter-spacing:0;font-size:clamp(32px,7vw,50px)}
.xcard h3{text-transform:none;letter-spacing:0;font-size:16.5px}
.navcta{border:1px solid transparent;background:linear-gradient(var(--bg),var(--bg)) padding-box,var(--grad) border-box;border-radius:999px;padding:7px 14px!important;color:var(--ink)!important;white-space:nowrap}
.navcta:hover{color:var(--cyan)!important}
.nav-drawer .navcta{display:inline-block;margin:10px 18px}
.quote{border-left:2px solid var(--violet);padding:4px 0 4px 20px;margin:26px 0 0;font-family:var(--disp);font-weight:700;font-size:clamp(17px,2.6vw,21px);line-height:1.35;color:var(--ink2);max-width:56ch}
.provlabel{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);border:1px solid var(--hair2);border-radius:4px;padding:3px 8px;margin-top:14px}
.interp{background:var(--panel);border:1px solid var(--hair2);border-left:2px solid var(--cyan);border-radius:12px;padding:18px 20px;font-size:14.5px;color:var(--ink2);max-width:70ch;margin-top:24px}
.interp .gt{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin-bottom:8px}
.interp p+p{margin-top:10px}
.gtable{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}
.gtable th{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);text-align:left;padding:9px 12px 9px 0;border-bottom:1px solid var(--hair)}
.gtable td{padding:10px 12px 10px 0;border-bottom:1px solid var(--hair2);color:var(--ink2);vertical-align:top}
.gtable td.n{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.gtable td.cov{color:var(--muted);font-size:12.5px}
.gtable tr:hover td{color:var(--ink)}
.gtable a{color:inherit;text-decoration:none}
.tablewrap{overflow-x:auto;margin-top:20px}
.roadmap{counter-reset:rm;list-style:none;padding:0;margin:24px 0 0;max-width:64ch}
.roadmap li{counter-increment:rm;padding:14px 0 14px 46px;border-bottom:1px solid var(--hair2);position:relative;color:var(--muted);font-size:14.5px}
.roadmap li::before{content:counter(rm,decimal-leading-zero);position:absolute;left:0;top:16px;font-family:var(--mono);font-size:11px;color:var(--cyan)}
.roadmap b{color:var(--ink2);display:block;margin-bottom:2px}
.joinform{max-width:560px;display:flex;flex-direction:column;gap:12px;margin-top:26px}
.joinform input,.joinform select,.joinform textarea{width:100%;background:var(--panel);border:1px solid var(--hair);border-radius:12px;color:var(--ink);font-family:var(--body);font-size:15px;padding:13px 16px}
.joinform input:focus,.joinform select:focus,.joinform textarea:focus{outline:0;border-color:var(--cyan)}
.joinform button{background:var(--grad);border:0;border-radius:12px;color:#000;font-family:var(--disp);font-weight:800;font-size:15px;letter-spacing:.02em;padding:14px 18px;cursor:pointer}
.joinform button:disabled{opacity:.55;cursor:default}
.eyebrow a{color:inherit}
details.reveal{margin-top:26px;max-width:66ch}
details.reveal summary{cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);list-style:none}
details.reveal summary::before{content:'▸ ';color:var(--cyan)}
details.reveal[open] summary::before{content:'▾ '}
details.reveal .s{color:var(--muted);font-size:14.5px;margin-top:12px}
details.reveal .s p+p{margin-top:10px}
