/* ============================================================
   Freedom Fuel Network — Open-Records Investigation
   Look: a gas station at night. Petrol-dark ground, sodium-vapor
   amber canopy glow, highway-signage type, a glowing price sign.
   ============================================================ */
:root{
  --bg:#0a1216; --bg2:#0e1a20; --panel:#12222a; --panel2:#162831;
  --ink:#eaf2f1; --ink-soft:#a3b6b7; --ink-faint:#697e80;
  --amber:#ffb020; --amber-soft:#ffb02022; --amber-dim:#b8791a;
  --line:#213640; --line-soft:#1a2b33;
  --ok:#4bd6a0; --ok-bg:#4bd6a01e;
  --inf:#ffc24d; --inf-bg:#ffc24d1e;
  --unk:#ef6a4f; --unk-bg:#ef6a4f1e;
  --disp:"Overpass",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  --wrap:1080px;
  --glow:0 0 18px #ffb02055, 0 0 44px #ffb02022;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--disp);font-weight:400;font-size:clamp(16px,1.05vw,18px);line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%}
a{color:var(--amber);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-weight:800;line-height:1.04;letter-spacing:-.015em;text-wrap:balance;margin:0}
strong{color:#fff;font-weight:600}
em{color:var(--ink);font-style:italic}
.skip{position:absolute;left:-999px}
.skip:focus{left:12px;top:12px;z-index:99;background:var(--amber);color:#111;padding:8px 14px;border-radius:6px}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(20px,5vw,40px)}
.wrap.narrow{max-width:720px}
.kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--amber);margin:0 0 14px}
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin:0}
.sub{color:var(--ink-soft);max-width:60ch;margin:.4em 0 0}
.fineprint{color:var(--ink-soft);font-size:.94rem}

/* confidence chips ------------------------------------------------ */
.c{display:inline-block;font-family:var(--mono);font-size:.7em;font-weight:500;text-transform:uppercase;
  letter-spacing:.05em;padding:.15em .5em;border-radius:4px;border:1px solid;transform:translateY(-1px)}
.c-ok{color:var(--ok);background:var(--ok-bg);border-color:var(--ok)}
.c-inf{color:var(--inf);background:var(--inf-bg);border-color:var(--inf)}
.c-unk{color:var(--unk);background:var(--unk-bg);border-color:var(--unk)}

/* ── HERO ───────────────────────────────────────────────────── */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding:64px 0 40px;overflow:hidden;
  background:radial-gradient(120% 90% at 50% -10%, #16323b 0%, #0c1a20 45%, var(--bg) 100%);}
#ambient{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.8}
.hero-inner{position:relative;z-index:2;max-width:var(--wrap);margin:0 auto;padding:0 clamp(20px,5vw,40px);width:100%}
.hero h1{font-size:clamp(2.6rem,7.2vw,6rem);margin:.28em 0 .38em}
.hero h1 .glow{color:var(--amber);text-shadow:var(--glow)}
.lede{font-size:clamp(1.05rem,1.6vw,1.32rem);color:var(--ink-soft);max-width:44ch;line-height:1.5}
.lede strong{color:#fff}

/* the price sign — the signature ---------------------------------- */
.pricesign{display:inline-block;margin:34px 0 30px;padding:16px 20px 12px;border-radius:12px;
  background:linear-gradient(#0a1013,#060b0d);border:1px solid #22343b;
  box-shadow:inset 0 2px 0 #ffffff08, 0 14px 40px #0009;}
.pricesign-label{font-family:var(--mono);font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint)}
.digits{font-family:var(--mono);font-weight:600;font-size:clamp(2.4rem,6vw,3.6rem);color:var(--amber);
  letter-spacing:.04em;line-height:1;margin:.12em 0 .1em;text-shadow:var(--glow);font-variant-numeric:tabular-nums}
.digits [data-d]{display:inline-block;min-width:.62em;text-align:center;
  background:#0c1418;border-radius:4px;padding:.02em .06em;box-shadow:inset 0 0 0 1px #ffffff08}
.pricesign-foot{font-family:var(--mono);font-size:.72rem;color:var(--unk);letter-spacing:.02em}
.pricesign-foot .tick{color:var(--unk)}

.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
.btn{display:inline-block;font-family:var(--mono);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;
  font-weight:500;padding:13px 22px;border-radius:8px;background:var(--amber);color:#10161a;border:1px solid var(--amber);
  cursor:pointer;transition:transform .12s ease, box-shadow .2s ease}
.btn:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 8px 26px #ffb02033}
.btn.ghost{background:transparent;color:var(--amber);box-shadow:none}
.btn.ghost:hover{background:var(--amber-soft)}
.scroll-cue{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:2;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint);animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translate(-50%,0);opacity:.5}50%{transform:translate(-50%,6px);opacity:1}}

/* ── BANDS ──────────────────────────────────────────────────── */
.band{padding:clamp(64px,9vw,120px) 0;border-top:1px solid var(--line-soft)}
.band.alt{background:var(--bg2)}
.band h2{font-size:clamp(1.7rem,3.6vw,2.9rem);margin:.1em 0 .7em;max-width:20ch}
.cols2{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,64px);align-items:start}
.cols2 p{margin:0 0 1em;color:var(--ink-soft);max-width:62ch}
@media(max-width:760px){.cols2{grid-template-columns:1fr;gap:32px}}

.stat-list{list-style:none;margin:0;padding:0;display:grid;gap:2px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel)}
.stat-list li{display:flex;align-items:baseline;gap:16px;padding:16px 20px;background:var(--panel)}
.stat-list li+li{border-top:1px solid var(--line-soft)}
.stat-list b{font-family:var(--mono);font-size:1.7rem;color:var(--amber);min-width:2ch;font-weight:600}
.stat-list span{color:var(--ink-soft);font-size:.92rem}

.disclaimer{margin-top:34px;padding:20px 22px;border:1px solid var(--line);border-left:3px solid var(--amber);
  border-radius:10px;background:var(--panel);color:var(--ink-soft);font-size:.95rem;max-width:none}
.disclaimer strong{color:#fff}

/* ── MAP ────────────────────────────────────────────────────── */
.mapsection{padding:clamp(56px,8vw,100px) 0 0;border-top:1px solid var(--line-soft);background:var(--bg2)}
.mapsection .wrap{margin-bottom:26px}
.map-shell{position:relative;display:grid;grid-template-columns:1fr 380px;gap:0;border-top:1px solid var(--line);
  height:min(78vh,720px)}
#leaflet{height:100%;background:#0a1216}
.drill{background:var(--panel);border-left:1px solid var(--line);overflow-y:auto;padding:24px}
.drill-empty{color:var(--ink-faint)}
.drill-hint{font-family:var(--mono);font-size:.8rem;letter-spacing:.04em;color:var(--ink-faint);margin:0 0 18px}
.legend{display:flex;flex-direction:column;gap:9px}
.legend .lg{display:flex;align-items:center;gap:10px;font-size:.86rem;color:var(--ink-soft);cursor:pointer}
.legend .dot{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:0 0 8px currentColor}
.legend .lg b{color:var(--ink);font-weight:600}
.legend .lg .n{margin-left:auto;font-family:var(--mono);font-size:.78rem;color:var(--ink-faint)}
/* drill card */
.dcard .daddr{font-size:1.28rem;font-weight:800;letter-spacing:-.01em;margin:0 0 2px}
.dcard .dloc{font-family:var(--mono);font-size:.78rem;color:var(--ink-faint);margin:0 0 16px}
.dcard .drow{padding:12px 0;border-top:1px solid var(--line-soft)}
.dcard .drow .k{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 4px}
.dcard .drow .v{color:var(--ink);margin:0;font-size:.98rem}
.dcard .grouptag{display:inline-block;margin-top:2px;font-family:var(--mono);font-size:.72rem;padding:3px 9px;border-radius:100px;border:1px solid}
.dcard .dsrc{margin-top:16px;font-size:.78rem;color:var(--ink-faint);word-break:break-word}
@media(max-width:820px){
  .map-shell{grid-template-columns:1fr;height:auto}
  #leaflet{height:58vh}
  .drill{border-left:none;border-top:1px solid var(--line);max-height:none}
}
/* leaflet dark tweaks */
.leaflet-container{font-family:var(--mono);background:#0a1216}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--panel2);color:var(--ink);box-shadow:0 10px 30px #000a}
.leaflet-popup-content{font-family:var(--disp);margin:12px 14px}
.leaflet-bar a{background:var(--panel2);color:var(--ink);border-color:var(--line)}
.leaflet-control-attribution{background:#0a1216cc!important;color:var(--ink-faint)!important}
.leaflet-control-attribution a{color:var(--ink-soft)!important}
.ffn-marker{border-radius:50%;border:2px solid #0a1216;box-shadow:0 0 0 1px #0006, 0 0 10px currentColor}

/* ── GROUP CARDS ────────────────────────────────────────────── */
.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:8px}
.gcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 22px 20px;position:relative;overflow:hidden}
.gcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gc,var(--amber))}
.gcard .gtop{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.gcard h3{font-size:1.18rem}
.gcard .gcount{font-family:var(--mono);font-size:1.6rem;color:var(--gc,var(--amber));font-weight:600;line-height:1}
.gcard .gbrand{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:.5em 0 .5em}
.gcard .gdesc{color:var(--ink-soft);font-size:.92rem;margin:.4em 0 0}
.gcard .gconf{margin-top:12px}

/* ── ECONOMICS ──────────────────────────────────────────────── */
.quote-stack{display:flex;flex-direction:column;gap:14px}
blockquote{margin:0;padding:20px 22px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
blockquote p{margin:0 0 10px;font-size:1.16rem;line-height:1.4;color:var(--ink)}
blockquote cite{font-family:var(--mono);font-size:.76rem;color:var(--amber);font-style:normal;letter-spacing:.02em}
blockquote.wh{border-left:3px solid var(--unk)}
blockquote.wh cite{color:var(--unk)}

/* ── TIMELINE ───────────────────────────────────────────────── */
.timeline{list-style:none;margin:8px 0 0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:1px;background:var(--line)}
.timeline li{position:relative;padding:0 0 26px 40px}
.timeline li::before{content:"";position:absolute;left:0;top:5px;width:15px;height:15px;border-radius:50%;
  background:var(--bg);border:2px solid var(--amber);box-shadow:0 0 10px #ffb02066}
.timeline time{display:block;font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin-bottom:5px}
.timeline p{margin:0;color:var(--ink-soft);max-width:64ch}
.timeline code{font-family:var(--mono);font-size:.9em;color:var(--ink);background:#0d1a20;padding:.05em .35em;border-radius:4px}

/* ── SOURCES ────────────────────────────────────────────────── */
.sources{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:1px;background:var(--line-soft);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.sources li{background:var(--panel);padding:14px 20px;color:var(--ink-soft);font-size:.92rem}

/* ── FORM ───────────────────────────────────────────────────── */
.tipform{margin-top:26px;display:flex;flex-direction:column;gap:16px}
.field{display:flex;flex-direction:column;gap:7px}
.field2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.field2{grid-template-columns:1fr}}
.field label{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.field .req{color:var(--unk);text-transform:none;letter-spacing:0}
.field .opt{color:var(--ink-faint);text-transform:none;letter-spacing:0}
.field input,.field textarea{font-family:var(--disp);font-size:1rem;color:var(--ink);background:var(--bg);
  border:1px solid var(--line);border-radius:9px;padding:12px 14px;width:100%;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--amber);outline:none;box-shadow:0 0 0 3px #ffb0201f}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-faint)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.btn.submit{align-self:flex-start;border:none}
.formnote{font-family:var(--mono);font-size:.86rem;margin:2px 0 0;min-height:1.2em}
.formnote.ok{color:var(--ok)}
.formnote.err{color:var(--unk)}

/* ── FOOTER ─────────────────────────────────────────────────── */
.foot{border-top:1px solid var(--line);padding:44px 0 60px;background:var(--bg)}
.foot p{color:var(--ink-faint);font-size:.88rem;max-width:80ch;margin:0 0 10px}
.foot strong{color:var(--ink-soft)}
.foot-meta{font-family:var(--mono);font-size:.76rem}

/* ── OPERATOR DEEP-DIVES ─────────────────────────────────────── */
.deep{padding:26px 0;border-top:1px solid var(--line-soft)}
.deep:first-of-type{border-top:none;padding-top:8px}
.deep header{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.deep header h3{font-size:1.4rem}
.deep header h3::before{content:"";display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--gc,var(--amber));margin-right:11px;box-shadow:0 0 10px var(--gc,var(--amber));vertical-align:middle}
.deep .deep-count{font-family:var(--mono);font-size:.82rem;color:var(--gc,var(--amber))}
.deep p{color:var(--ink-soft);max-width:80ch;margin:0}
.deep p strong{color:#fff}
.ent{display:inline-block;font-family:var(--mono);font-size:.82em;color:var(--ink);background:#0d1a20;border:1px solid var(--line);border-radius:5px;padding:.08em .5em;margin:.12em .1em;white-space:nowrap}

/* ── WHAT STAYS HIDDEN ───────────────────────────────────────── */
.shielded{list-style:none;margin:8px 0 22px;padding:0;display:grid;gap:12px}
.shielded li{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--unk);border-radius:10px;padding:16px 20px;color:var(--ink-soft)}
.shielded li b{color:#fff}
.shielded code{font-family:var(--mono);font-size:.9em;color:var(--ink);background:#0d1a20;padding:.05em .35em;border-radius:4px}

/* ── DATA TABLE ──────────────────────────────────────────────── */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;margin-top:8px;background:var(--panel)}
.datatable{border-collapse:collapse;width:100%;min-width:660px;font-size:.9rem}
.datatable th,.datatable td{text-align:left;padding:11px 16px;border-bottom:1px solid var(--line-soft);vertical-align:top}
.datatable th{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}
.datatable tbody tr:last-child td{border-bottom:none}
.datatable tbody tr:hover td{background:var(--panel2)}
.datatable td b{color:var(--ink);font-weight:600}
.datatable .dloc2{color:var(--ink-faint);font-size:.78rem;font-family:var(--mono)}
.datatable .mono{font-family:var(--mono);color:var(--ink-faint)}
.gdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;vertical-align:middle}

/* ── INLINE CITATIONS ────────────────────────────────────────── */
.cite{font-size:.6em;font-weight:600;line-height:0;white-space:nowrap;margin-left:1px;position:relative;top:-.5em}
.cite a{color:var(--amber);text-decoration:none;padding:0 1px}
.cite a:hover{text-decoration:underline}
.cite a+a::before{content:",";color:var(--ink-faint);margin-right:1px}

/* ── SOURCES PAGE ────────────────────────────────────────────── */
.srcpage{padding:44px 0 80px}
.srcpage .wrap{max-width:820px}
.srcpage .srch1{font-size:clamp(2rem,5vw,3rem);margin:.15em 0 .35em}
.srcpage .eyebrow a{color:var(--amber);text-decoration:none}
.srcpage .cite-demo{color:var(--amber)}
.refgroup{font-family:var(--mono);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.74rem;color:var(--amber);margin:38px 0 12px;border-bottom:1px solid var(--line);padding-bottom:9px}
.reflist{margin:0;padding:0;list-style:none}
.reflist li{position:relative;padding:14px 18px 14px 52px;border:1px solid var(--line);border-radius:10px;background:var(--panel);margin-bottom:10px;color:var(--ink-soft);font-size:.94rem;scroll-margin-top:20px}
.reflist li::before{content:"[" counter(list-item) "]";position:absolute;left:16px;top:14px;font-family:var(--mono);font-size:.78rem;color:var(--amber);font-weight:600}
.reflist li b{color:var(--ink)} .reflist li i{color:var(--ink-soft);font-style:italic}
.reflist li a{word-break:break-word}
.reflist li:target{border-color:var(--amber);box-shadow:0 0 0 2px #ffb02033;background:var(--panel2)}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto!important;transition:none!important}
}
