/* Great Basin Defensible — a dark field briefing.
   Written for this publication alone: no selector, token, filename or rule is shared with the two
   sibling sites in this network. Prefix: gbd-

   Ground polarity was decided by measurement, not taste (memory: logo-decides-ground-polarity and
   accent-that-carries-no-ink): the ember #e8641f measures 3.1:1 on the #14161a ground, which is
   enough for a large numeral or a fill but NOT for body text, so it is never used for prose. Where
   an ember-coloured fill carries text, the ink on it is the dark ground itself. */

:root {
  --gbd-ground: #14161a;
  --gbd-panel:  #1c1f25;
  --gbd-panel2: #23272f;
  --gbd-line:   #333944;
  --gbd-text:   #dfe3e9;   /* 14.2:1 on ground */
  --gbd-dim:    #9aa2ae;   /* 7.1:1  on ground */
  --gbd-ember:  #e8641f;   /* fills, numerals, rules — never prose */
  --gbd-ember-d:#2a1710;
  --gbd-sand:   #d6a35c;   /* 9.0:1  on ground — the readable accent for text */
  --gbd-ash:    #7f8894;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--gbd-ground);
  color: var(--gbd-text);
  font: 400 17px/1.68 Archivo, system-ui, -apple-system, "Segoe UI", sans-serif;
}

h1, h2, h3 {
  font-family: Newsreader, Georgia, "Times New Roman", serif;
  font-weight: 600; line-height: 1.18; color: #f2f5f8;
  margin: 0 0 .5em; text-wrap: balance;
}
h1 { font-size: clamp(1.8rem, 1.15rem + 2.8vw, 2.85rem); letter-spacing: -.012em; }
h2 { font-size: clamp(1.28rem, 1.06rem + 1vw, 1.65rem); }
h3 { font-size: 1.08rem; }
p { margin: 0 0 1.05em; }

a { color: var(--gbd-sand); text-underline-offset: .18em; }
a:hover { color: #e6bb7f; }

.gbd-rail { width: min(100% - 32px, 1060px); margin-inline: auto; }

.gbd-skip { position: absolute; left: -9999px; background: var(--gbd-ember);
            color: var(--gbd-ground); padding: 10px 16px; z-index: 9; font-weight: 700; }
.gbd-skip:focus { left: 0; top: 0; }

/* ---------------------------------------------------------------- head */
.gbd-head { border-bottom: 1px solid var(--gbd-line); background: var(--gbd-ground);
            position: sticky; top: 0; z-index: 5; }
.gbd-head .gbd-rail { display: flex; flex-wrap: wrap; align-items: center;
                      gap: 10px 24px; padding: 13px 0 11px; }
.gbd-id { display: flex; flex-direction: column; text-decoration: none; line-height: 1.05; }
.gbd-id-1 { font-family: Newsreader, Georgia, serif; font-weight: 600; font-size: 1.16rem;
            color: #f2f5f8; }
.gbd-id-2 { font: 700 .6rem/1 Archivo, sans-serif; letter-spacing: .3em;
            text-transform: uppercase; color: var(--gbd-ember); padding-top: 5px; }
.gbd-nav { display: flex; flex-wrap: wrap; gap: 4px 18px; margin-left: auto; }
.gbd-nav a { color: var(--gbd-dim); text-decoration: none; font-size: .84rem; font-weight: 500;
             padding: 4px 0; border-bottom: 2px solid transparent; }
.gbd-nav a:hover { color: var(--gbd-text); border-bottom-color: var(--gbd-line); }
.gbd-nav a[aria-current="page"] { color: #f2f5f8; border-bottom-color: var(--gbd-ember); }

/* ---------------------------------------------------------------- home */
.gbd-lead { padding: 50px 0 10px; max-width: 72ch; }
.gbd-lead-2 { padding: 10px 0 56px; }
.gbd-lead-p { font-size: 1.12rem; color: var(--gbd-dim); }
.gbd-lead-c { border-left: 3px solid var(--gbd-ember); padding: 4px 0 4px 16px;
              font-size: 1.02rem; }

.gbd-tagline { font: 700 .66rem/1 Archivo, sans-serif; letter-spacing: .22em;
               text-transform: uppercase; color: var(--gbd-ember); margin-bottom: 14px; }

.gbd-tiles { list-style: none; padding: 0; margin: 28px auto 6px; display: grid; gap: 16px; }
@media (min-width: 760px) { .gbd-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.gbd-tile { background: var(--gbd-panel); border: 1px solid var(--gbd-line);
            border-left: 3px solid var(--gbd-ember); padding: 20px 22px; }
.gbd-tile h2 { font-size: 1.14rem; margin-bottom: .4em; }
.gbd-tile h2 a { color: #f2f5f8; text-decoration: none; }
.gbd-tile h2 a:hover { text-decoration: underline; }
.gbd-tile-k { font: 700 .64rem/1 Archivo, sans-serif; letter-spacing: .2em;
              text-transform: uppercase; color: var(--gbd-sand); margin-bottom: 10px; }
.gbd-tile-d { font-size: .93rem; color: var(--gbd-dim); margin-bottom: .6em; }
.gbd-tile-n { font-size: .78rem; color: var(--gbd-ash); margin: 0; }

/* ---------------------------------------------------------------- briefing */
.gbd-brief { padding: 40px 0 58px; max-width: 72ch; }
.gbd-brief-slim { max-width: 66ch; }

.gbd-summary { background: var(--gbd-panel); border: 1px solid var(--gbd-line);
               border-top: 3px solid var(--gbd-ember); padding: 16px 20px; margin: 2px 0 14px; }
.gbd-summary p { margin: 0; font-size: 1.07rem; }
.gbd-summary-k { font: 700 .64rem/1 Archivo, sans-serif !important; letter-spacing: .2em;
                 text-transform: uppercase; color: var(--gbd-ember);
                 margin-bottom: 9px !important; }
.gbd-meta { font-size: .84rem; color: var(--gbd-dim);
            border-bottom: 1px solid var(--gbd-line); padding-bottom: 18px; margin-bottom: 34px; }
.gbd-h { font-size: 1.22rem; }

.gbd-wide { overflow-x: auto; margin-bottom: 40px; }
.gbd-table { border-collapse: collapse; width: 100%; min-width: 580px; font-size: .9rem; }
.gbd-table caption { caption-side: top; text-align: left; font-size: .79rem;
                     color: var(--gbd-dim); padding-bottom: 9px; }
.gbd-table th, .gbd-table td { text-align: left; padding: 9px 13px;
                               border-bottom: 1px solid var(--gbd-line); }
.gbd-table thead th { font: 700 .68rem/1.3 Archivo, sans-serif; letter-spacing: .12em;
                      text-transform: uppercase; color: var(--gbd-dim);
                      border-bottom: 2px solid var(--gbd-ember); }
.gbd-table td:first-child { color: var(--gbd-ash); font-variant-numeric: tabular-nums; }
.gbd-tr1 { background: var(--gbd-panel2); }
.gbd-tr1 td:first-child { color: var(--gbd-ember); }

/* position blocks — deliberately not the siblings' sections or list items */
.gbd-stack { display: grid; gap: 22px; }
.gbd-pos { background: var(--gbd-panel); border: 1px solid var(--gbd-line);
           padding: 22px 24px 16px; }
.gbd-pos-1 { border-color: var(--gbd-ember); background: var(--gbd-panel2); }
@media (max-width: 560px) { .gbd-pos { padding: 18px 16px 12px; } }

.gbd-pos-head { display: flex; align-items: baseline; gap: 14px;
                border-bottom: 1px solid var(--gbd-line); padding-bottom: 12px; margin-bottom: 12px; }
.gbd-num {
  font: 700 .95rem/1 Archivo, sans-serif; font-variant-numeric: tabular-nums; flex: 0 0 auto;
  /* NOT var(--gbd-ember): measured on the panel it gives 4.47:1, and at 15px/700 this is normal
     text by WCAG's definition (large starts at 18.66px bold), so it needs 4.5. The lighter ember
     below measures 5.02:1 on --gbd-panel and 4.71:1 on the lighter --gbd-panel2 of the first
     position block, which is the worse of the two grounds it actually sits on. */
  color: #f4874a;
}
.gbd-pos-head h2 { font-size: 1.3rem; margin: 0; flex: 1 1 auto; min-width: 0; }
.gbd-val { font-family: Newsreader, Georgia, serif; font-weight: 600; font-size: 1.32rem;
           color: var(--gbd-sand); flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.gbd-line { color: var(--gbd-dim); font-size: .97rem; margin-bottom: 1em; }
.gbd-body p:last-child { margin-bottom: .7em; }

/* the grid belongs to the <ul>, never to an <li> (memory: no-grid-on-list-item) */
.gbd-data { list-style: none; padding: 0; margin: 16px 0;
            border-top: 1px solid var(--gbd-line); font-size: .9rem; }
.gbd-data li { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr);
               border-bottom: 1px solid var(--gbd-line); }
.gbd-k { font: 500 .7rem/1.6 Archivo, sans-serif; letter-spacing: .1em; text-transform: uppercase;
         color: var(--gbd-ash); padding: 9px 12px 9px 0; }
.gbd-v { padding: 9px 0; min-width: 0; }
@media (max-width: 600px) {
  .gbd-data li { grid-template-columns: minmax(0, 1fr); }
  .gbd-k { padding-bottom: 0; }
  .gbd-v { padding-top: 2px; }
}

.gbd-find { background: var(--gbd-ember-d); border-left: 3px solid var(--gbd-ember);
            padding: 13px 16px; font-size: .95rem; }
.gbd-find p { margin: 0 0 .5em; }
.gbd-find p:last-child { margin-bottom: 0; }
.gbd-find-k { font: 700 .62rem/1 Archivo, sans-serif !important; letter-spacing: .2em;
              text-transform: uppercase; color: var(--gbd-sand); }
.gbd-find-f span { color: var(--gbd-sand); font-weight: 600; }

.gbd-go { margin: 16px 0 4px; }
.gbd-cta { display: inline-block; background: var(--gbd-ember);
           color: var(--gbd-ground) !important; padding: 12px 22px; text-decoration: none;
           font-weight: 700; font-size: .95rem; border-radius: 2px; }
.gbd-cta:hover { background: #ff7a35; color: var(--gbd-ground) !important; }

.gbd-note, .gbd-faq { margin-top: 38px; border-top: 2px solid var(--gbd-ember); padding-top: 25px; }
.gbd-qa { border-bottom: 1px solid var(--gbd-line); padding-bottom: 14px; margin-bottom: 16px; }
.gbd-qa h3 { margin-bottom: .35em; color: var(--gbd-text); }
.gbd-qa p { margin: 0; font-size: .95rem; color: var(--gbd-dim); }

.gbd-byline { font-size: .86rem; color: var(--gbd-dim); font-style: italic;
              border-top: 1px solid var(--gbd-line); padding-top: 20px; margin-top: 34px; }

/* ---------------------------------------------------------------- foot */
.gbd-foot { border-top: 1px solid var(--gbd-line); background: #0f1114;
            margin-top: 44px; padding: 34px 0 40px; font-size: .87rem; color: var(--gbd-dim); }
.gbd-foot-1 { font-family: Newsreader, Georgia, serif; font-size: 1.08rem; color: #f2f5f8;
              margin-bottom: .7em; }
.gbd-foot-2 { border-left: 2px solid var(--gbd-line); padding-left: 14px; }
.gbd-foot-3 { color: var(--gbd-ash); font-size: .8rem; margin-bottom: 0; }

[id] { scroll-margin-top: 76px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
