
  :root{
    --ink:#17150F; --ink2:#1e1b14; --panel:#211d15; --panel2:#272219;
    --cream:#F0E8D8; --white:#FBFAF6; --wood:#392620; --tan:#C9A87E; --tan-d:#a8875c;
    --body:#c8bfae; --sec:#A79E8D; --muted:#8A8172; --faint:#6E6455; --line:#3a3428;
    --morelo:#C9A87E; --concorde:#c07a55; --phoenix:#9aa06a; --stx:#8f9bb0; --dembell:#bf9a63;
    --good:#9db07a; --warn:#d0a24e; --bad:#c17b6b;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--ink);color:var(--cream);
       font-family:'IBM Plex Sans',sans-serif;font-weight:300;line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased}
  .wrap{max-width:1140px;margin:0 auto;padding:0 24px}
  a{color:var(--tan)}
  h1,h2,h3,h4{font-family:'Jost',sans-serif;font-weight:400;letter-spacing:.01em;color:var(--white)}
  .mono{font-family:'IBM Plex Mono',monospace}
  .kick{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--tan);font-weight:400}

  header.hero{padding:76px 0 46px;border-bottom:1px solid var(--line);
    background:radial-gradient(120% 90% at 80% -10%, rgba(201,168,126,.12), transparent 60%)}
  .brandmark{font-family:'Jost';letter-spacing:.34em;font-size:14px;color:var(--cream);text-transform:uppercase;margin-bottom:30px}
  h1{font-size:clamp(34px,5vw,62px);line-height:1.08;margin:12px 0 16px;font-weight:300}
  .hero p{font-size:19px;color:var(--sec);max-width:720px;margin:0}
  .hero .brands{margin-top:26px;font-family:'IBM Plex Mono';font-size:12px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}
  .meta{margin-top:30px;font-family:'IBM Plex Mono';font-size:11.5px;color:var(--faint);letter-spacing:.04em}

  nav.toc{position:sticky;top:0;z-index:50;background:rgba(23,21,15,.86);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);padding:12px 0}
  nav.toc .wrap{display:flex;gap:22px;flex-wrap:wrap;font-family:'IBM Plex Mono';font-size:11.5px;letter-spacing:.12em;text-transform:uppercase}
  nav.toc a{color:var(--sec);text-decoration:none;transition:.15s}
  nav.toc a:hover{color:var(--tan)}

  section{padding:56px 0;border-bottom:1px solid var(--line)}
  h2{font-size:clamp(24px,3.2vw,34px);margin:0 0 8px;font-weight:300}
  h2 .n{font-family:'IBM Plex Mono';font-size:13px;color:var(--tan);letter-spacing:.1em;margin-right:14px;vertical-align:middle}
  .lead{color:var(--sec);max-width:840px;margin:0 0 28px;font-size:17px}
  h3{font-size:20px;margin:30px 0 10px;color:var(--cream);font-weight:400}
  p{margin:0 0 14px}
  strong,b{color:var(--cream);font-weight:500}

  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  .grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
  .card{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:22px}
  .card h4{margin:0 0 8px;font-size:17px;color:var(--white);font-weight:400}
  .card p{font-size:14px;color:var(--sec);margin:0}
  .tagline{font-family:'IBM Plex Mono';font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
    display:inline-block;padding:4px 10px;border:1px solid var(--line);border-radius:20px;margin-bottom:12px;color:var(--tan)}

  /* controls */
  .controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:6px 0 20px}
  .chip{font-family:'IBM Plex Mono';font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
    background:transparent;border:1px solid var(--line);color:var(--sec);border-radius:22px;padding:8px 15px;cursor:pointer;transition:.15s}
  .chip:hover{border-color:var(--tan);color:var(--cream)}
  .chip.active{background:var(--tan);color:var(--ink);border-color:var(--tan);font-weight:500}
  .chip .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:middle}
  .sel{font-family:'IBM Plex Mono';font-size:12px;background:var(--panel);color:var(--cream);border:1px solid var(--line);border-radius:22px;padding:8px 14px}

  #map{height:460px;border:1px solid var(--line);border-radius:4px;margin-bottom:4px;background:#12110c}
  .leaflet-popup-content-wrapper{background:var(--panel2);color:var(--cream);border-radius:4px;border:1px solid var(--line)}
  .leaflet-popup-tip{background:var(--panel2)}
  .leaflet-popup-content{font-family:'IBM Plex Sans';font-size:13px;margin:12px 14px}
  .leaflet-popup-content b{color:var(--white)}
  .leaflet-container a.leaflet-popup-close-button{color:var(--muted)}
  .maplegend{font-family:'IBM Plex Mono';font-size:11px;color:var(--muted);display:flex;gap:16px;flex-wrap:wrap;margin:10px 0 24px}
  .maplegend span{display:inline-flex;align-items:center;gap:6px}
  .maplegend i{width:10px;height:10px;border-radius:50%;display:inline-block}

  table{width:100%;border-collapse:collapse;font-size:13.5px}
  thead th{position:sticky;top:49px;background:var(--ink2);color:var(--tan);text-align:left;
    font-family:'IBM Plex Mono';font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:400;
    padding:11px 12px;border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap}
  tbody td{padding:11px 12px;border-bottom:1px solid var(--line);color:var(--sec);vertical-align:top}
  tbody tr:hover{background:var(--panel)}
  tbody td b{color:var(--cream);font-weight:500}
  .btag{display:inline-block;font-family:'IBM Plex Mono';font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;
    padding:2px 7px;border-radius:3px;margin:1px 3px 1px 0;color:var(--ink);font-weight:500}
  .sc{font-family:'IBM Plex Mono';font-weight:500;display:inline-block;min-width:22px;text-align:center;border-radius:3px;padding:1px 6px}
  .sc-hi{background:rgba(157,176,122,.18);color:var(--good)}
  .sc-mid{background:rgba(208,162,78,.16);color:var(--warn)}
  .sc-lo{background:rgba(193,123,107,.16);color:var(--bad)}
  .sc-na{color:var(--faint)}
  thead th.cfill{background:#2a2418;color:var(--tan)}
  td.cfill{min-width:58px;text-align:center;border-left:1px dashed var(--line);border-bottom:1px dashed var(--line);color:var(--cream);cursor:text;font-family:'IBM Plex Mono';font-size:12.5px}
  td.cfill:empty:before{content:"—";color:var(--faint)}
  td.cfill:focus{outline:1px solid var(--tan);background:var(--panel2)}
  #tbl{min-width:660px}
  .tblwrap{-webkit-overflow-scrolling:touch}
  .scrollhint{display:none;font-family:'IBM Plex Mono';font-size:11px;color:var(--faint);margin:0 0 8px}
  .calcrow{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;color:var(--sec)}
  .calcrow input,.calcrow select{width:150px}
  input.sel{font-family:'IBM Plex Mono';font-size:12px;background:var(--panel2);color:var(--cream);border:1px solid var(--line);border-radius:8px;padding:8px 12px}
  .tblwrap{max-height:620px;overflow:auto;border:1px solid var(--line);border-radius:4px}
  .wsite a{font-family:'IBM Plex Mono';font-size:11.5px}
  .count{font-family:'IBM Plex Mono';font-size:11.5px;color:var(--muted);margin-left:auto}

  .chartbox{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:20px 20px 12px}
  .chartbox h4{margin:0 0 4px;font-size:15px;font-weight:400}
  .chartbox .src{font-family:'IBM Plex Mono';font-size:10px;color:var(--faint);margin-top:8px}
  .chartbox canvas{max-height:260px}

  .verdict{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;background:var(--panel);border-left:2px solid var(--tan);border-radius:3px;margin-bottom:12px}
  .verdict .lbl{font-family:'IBM Plex Mono';font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:3px;white-space:nowrap;font-weight:500}
  .v-buy{background:rgba(157,176,122,.2);color:var(--good)} .v-wait{background:rgba(208,162,78,.2);color:var(--warn)} .v-avoid{background:rgba(193,123,107,.2);color:var(--bad)}
  .verdict p{margin:0;font-size:14px;color:var(--sec)} .verdict b{color:var(--cream)}

  .callout{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--tan);border-radius:3px;padding:16px 20px;margin:16px 0}
  .callout.warn{border-left-color:var(--bad)}
  .callout h4{margin:0 0 6px;font-size:16px;font-weight:400}
  .callout p{margin:0;font-size:14px;color:var(--sec)}

  .gated{position:relative;border:1px solid var(--line);border-radius:4px;padding:4px;background:
    repeating-linear-gradient(45deg,transparent,transparent 12px,rgba(201,168,126,.03) 12px,rgba(201,168,126,.03) 24px)}
  .gated-hd{font-family:'IBM Plex Mono';font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tan);
    padding:10px 14px;border-bottom:1px dashed var(--line);display:flex;align-items:center;gap:10px}
  .gated-hd .lock{font-size:13px}
  .gated-in{padding:20px}

  ol.steps{counter-reset:s;list-style:none;padding:0;margin:8px 0}
  ol.steps li{position:relative;padding:14px 18px 14px 54px;background:var(--panel);border:1px solid var(--line);border-radius:3px;margin-bottom:10px;font-size:14.5px;color:var(--sec)}
  ol.steps li:before{counter-increment:s;content:"0" counter(s);position:absolute;left:16px;top:14px;
    font-family:'IBM Plex Mono';font-size:12px;color:var(--tan)}
  ol.steps b{color:var(--cream)}

  footer{padding:40px 0 60px;color:var(--faint);font-family:'IBM Plex Mono';font-size:11px;letter-spacing:.03em}
  .disclaim{font-size:12px;color:var(--faint);font-style:italic;margin-top:10px}
  @media(max-width:820px){
    .grid3,.grid2{grid-template-columns:1fr}
    .hide-sm{display:none}
    nav.toc{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}nav.toc .wrap{display:inline-flex;gap:16px}
    thead th{top:46px}
    section{padding:38px 0}
    header.hero{padding:46px 0 32px}
    .verdict{flex-direction:column;gap:8px}
    #map{height:340px}
    .scrollhint{display:block}
    .calcrow{flex-direction:column;align-items:flex-start;gap:5px}
    .calcrow input,.calcrow select{width:100%}
    .wrap{padding:0 18px}
  }
