/* ===========================================================
   minnesotavikings.io — Jim Marshall player profile
   Scoped: body.page-marshall  ·  prefix: .jms-
   Palette + type inherited from /assets/css/style.css?v=teal (:root)
   Compositional idea: an unbroken rail. Every structural motif
   on this page is a continuous line that never breaks, because
   the career never broke.
   =========================================================== */

body.page-marshall{background:var(--page)}

body.page-marshall .jms-shell{
  width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px;
}

/* ---------- tokens local to this page ---------- */
body.page-marshall{
  --jms-ink:#1d1230;
  --jms-rail:rgba(68,206,227,.85);
  --jms-rail-dim:rgba(255,255,255,.16);
  --jms-on-dark:#f2eefa;
  --jms-on-dark-soft:#cfc4e4;
  --jms-hair:1px solid var(--line);
}

/* ===========================================================
   MEMORIAL STRIP
   =========================================================== */
body.page-marshall .jms-memorial{
  background:var(--jms-ink);color:var(--jms-on-dark);
  border-bottom:3px solid var(--gold);
}
body.page-marshall .jms-memorial-in{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;
  padding:13px 0;
}
body.page-marshall .jms-memorial b{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  letter-spacing:.13em;font-size:12px;color:var(--gold);
}
body.page-marshall .jms-memorial span{
  font-size:13.5px;color:var(--jms-on-dark-soft);line-height:1.5;
}

/* ===========================================================
   BREADCRUMB
   =========================================================== */
body.page-marshall .jms-crumb{background:#fff;border-bottom:var(--jms-hair)}
body.page-marshall .jms-crumb ol{
  list-style:none;margin:0;padding:12px 0;
  display:flex;flex-wrap:wrap;align-items:center;gap:7px;
  font-family:var(--display);font-weight:600;font-size:11.5px;
  letter-spacing:.11em;text-transform:uppercase;color:var(--text-muted);
}
body.page-marshall .jms-crumb li{display:flex;align-items:center;gap:7px}
body.page-marshall .jms-crumb li+li::before{
  content:"";width:5px;height:5px;flex:none;border-radius:50%;
  background:var(--gold);
}
body.page-marshall .jms-crumb a{color:var(--purple);text-decoration:none}
body.page-marshall .jms-crumb a:hover{text-decoration:underline}
body.page-marshall .jms-crumb [aria-current="page"]{color:var(--text)}

/* ===========================================================
   HERO — the unbroken rail
   =========================================================== */
body.page-marshall .jms-hero{
  position:relative;overflow:hidden;color:var(--jms-on-dark);
  background:
    radial-gradient(120% 130% at 8% 0%, rgba(68,206,227,.20) 0%, rgba(68,206,227,0) 46%),
    radial-gradient(95% 120% at 100% 100%, rgba(126,73,198,.55) 0%, rgba(126,73,198,0) 55%),
    linear-gradient(165deg,#4f2683 0%,#3b1c63 44%,#2a1450 100%);
}
body.page-marshall .jms-hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(90deg,
    rgba(255,255,255,.055) 0 1px, rgba(255,255,255,0) 1px 46px);
}
body.page-marshall .jms-hero-in{position:relative;z-index:1;padding:44px 20px 0}

body.page-marshall .jms-eyebrow{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  font-family:var(--display);font-weight:600;font-size:11.5px;
  letter-spacing:.17em;text-transform:uppercase;color:var(--gold);
  margin:0 0 16px;
}
body.page-marshall .jms-eyebrow i{
  font-style:normal;color:rgba(255,255,255,.78);
}

body.page-marshall .jms-h1{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(42px,8.4vw,104px);line-height:.92;letter-spacing:-.005em;
  color:#fff;margin:0;
}
body.page-marshall .jms-h1 em{
  display:block;font-style:normal;font-family:var(--display);font-weight:600;
  font-size:clamp(13px,1.5vw,17px);letter-spacing:.15em;line-height:1.4;
  color:var(--gold);margin-top:16px;text-transform:uppercase;
}

body.page-marshall .jms-hero-grid{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);
  gap:38px;align-items:start;margin-top:26px;
}
body.page-marshall .jms-lede{
  font-size:17px;line-height:1.62;color:var(--jms-on-dark);margin:0 0 16px;
}
body.page-marshall .jms-lede b{color:var(--gold);font-weight:700}
body.page-marshall .jms-sub{
  font-size:15px;line-height:1.62;color:var(--jms-on-dark-soft);margin:0;
}

/* the marquee number */
body.page-marshall .jms-bignum{
  border-left:4px solid var(--gold);padding-left:20px;
}
body.page-marshall .jms-bignum b{
  display:block;font-family:var(--display);font-weight:700;
  font-size:clamp(64px,10vw,118px);line-height:.86;color:var(--gold);
  letter-spacing:-.01em;
}
body.page-marshall .jms-bignum span{
  display:block;font-family:var(--display);font-weight:600;font-size:12.5px;
  letter-spacing:.15em;text-transform:uppercase;color:#fff;margin-top:12px;
}
body.page-marshall .jms-bignum small{
  display:block;font-size:13.5px;line-height:1.55;
  color:var(--jms-on-dark-soft);margin-top:10px;
}

/* ---------- the streak rail (CSS only, 20 seasons) ---------- */
body.page-marshall .jms-rail-block{margin-top:36px;padding-bottom:40px}
body.page-marshall .jms-rail-cap{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;
  font-family:var(--display);font-weight:600;font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.72);margin-bottom:12px;
}
body.page-marshall .jms-rail-scroll{
  overflow-x:auto;-webkit-overflow-scrolling:touch;
}
body.page-marshall .jms-rail-scroll:focus-visible{outline-offset:4px}
body.page-marshall .jms-tw:focus-visible{outline-offset:1px}
body.page-marshall .jms-rail{
  display:flex;align-items:flex-end;gap:3px;
  padding:0;margin:0;list-style:none;
  border-bottom:2px solid var(--jms-rail);
}
body.page-marshall .jms-rail li{
  flex:1 1 0;min-width:0;display:flex;flex-direction:column;
  justify-content:flex-end;align-items:center;gap:6px;
}
body.page-marshall .jms-rail i{
  display:block;width:100%;background:var(--jms-rail-dim);
  border-radius:2px 2px 0 0;
  border-top:2px solid var(--gold);
}
body.page-marshall .jms-rail li[data-g="12"] i{height:38px;background:rgba(255,255,255,.10);border-top-color:rgba(68,206,227,.5)}
body.page-marshall .jms-rail li[data-g="14"] i{height:46px}
body.page-marshall .jms-rail li[data-g="16"] i{height:54px}
body.page-marshall .jms-rail b{
  font-family:var(--display);font-weight:600;font-size:10px;
  letter-spacing:.02em;color:#e8e2f2;
  writing-mode:vertical-rl;transform:rotate(180deg);
}
body.page-marshall .jms-rail-note{
  font-size:13px;line-height:1.6;color:var(--jms-on-dark-soft);
  margin:16px 0 0;max-width:78ch;
}
body.page-marshall .jms-rail-note b{color:var(--gold)}

/* ===========================================================
   SECTION SCAFFOLD
   =========================================================== */
body.page-marshall .jms-sec{padding:54px 0}
body.page-marshall .jms-sec-alt{background:#fff;border-top:var(--jms-hair);border-bottom:var(--jms-hair)}
body.page-marshall .jms-sec-dark{
  background:linear-gradient(180deg,#211537 0%,#17102a 100%);
  color:var(--jms-on-dark);
}

body.page-marshall .jms-kicker{
  display:flex;align-items:center;gap:10px;
  font-family:var(--display);font-weight:600;font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--purple);
  margin:0 0 10px;
}
body.page-marshall .jms-kicker::before{
  content:"";width:26px;height:2px;flex:none;background:var(--gold);
}
body.page-marshall .jms-sec-dark .jms-kicker{color:var(--gold)}

body.page-marshall .jms-h2{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(24px,3.1vw,40px);line-height:1.06;letter-spacing:.005em;
  color:var(--jms-ink);margin:0;max-width:24ch;
}
body.page-marshall .jms-sec-dark .jms-h2{color:#fff}

body.page-marshall .jms-h3{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:15px;letter-spacing:.09em;color:var(--jms-ink);margin:0 0 10px;
}
body.page-marshall .jms-sec-dark .jms-h3{color:var(--gold)}

body.page-marshall .jms-h4{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:16px;letter-spacing:.05em;color:var(--jms-ink);margin:0 0 6px;
}

body.page-marshall .jms-deck{
  font-size:16.5px;line-height:1.6;color:var(--text-muted);
  margin:14px 0 0;max-width:70ch;
}
body.page-marshall .jms-sec-dark .jms-deck{color:var(--jms-on-dark-soft)}

body.page-marshall .jms-p{
  font-size:15.5px;line-height:1.68;color:var(--text);margin:0 0 15px;
}
body.page-marshall .jms-sec-dark .jms-p{color:var(--jms-on-dark)}
body.page-marshall .jms-p:last-child{margin-bottom:0}
body.page-marshall .jms-a{color:var(--purple);text-decoration:underline;text-underline-offset:2px}
body.page-marshall .jms-a:hover{color:var(--purple-deep)}
body.page-marshall .jms-sec-dark .jms-a{color:var(--gold)}

/* ===========================================================
   SNAPSHOT — two-column split with a hairline spine
   =========================================================== */
body.page-marshall .jms-split{
  display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
  gap:0;margin-top:30px;background:#fff;
  border:var(--jms-hair);border-radius:var(--radius);overflow:hidden;
}
body.page-marshall .jms-split>*{padding:26px 28px}
body.page-marshall .jms-split>*+*{border-left:var(--jms-hair)}

body.page-marshall .jms-dl{margin:0;display:grid;gap:0}
body.page-marshall .jms-dl>div{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:14px;padding:9px 0;border-bottom:var(--jms-hair);
}
body.page-marshall .jms-dl>div:last-child{border-bottom:0}
body.page-marshall .jms-dl dt{
  font-family:var(--display);font-weight:600;font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);
  align-self:center;
}
body.page-marshall .jms-dl dd{margin:0;font-size:14.5px;line-height:1.5;color:var(--text)}

/* ===========================================================
   STAT TILES
   =========================================================== */
body.page-marshall .jms-tiles{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));
  gap:14px;margin-top:24px;
}
body.page-marshall .jms-tile{
  background:#fff;border:var(--jms-hair);border-radius:var(--radius);
  padding:18px 16px;border-top:3px solid var(--purple);
}
body.page-marshall .jms-tile b{
  display:block;font-family:var(--display);font-weight:700;
  font-size:34px;line-height:1;color:var(--jms-ink);
}
body.page-marshall .jms-tile span{
  display:block;font-size:12.5px;line-height:1.45;color:var(--text-muted);margin-top:9px;
}
body.page-marshall .jms-tile-gold{border-top-color:var(--gold-deep)}
body.page-marshall .jms-sec-dark .jms-tile{
  background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);
}
body.page-marshall .jms-sec-dark .jms-tile b{color:var(--gold)}
body.page-marshall .jms-sec-dark .jms-tile span{color:var(--jms-on-dark-soft)}

/* ===========================================================
   RECORD LIST — the ledger
   =========================================================== */
body.page-marshall .jms-ledger{
  list-style:none;margin:26px 0 0;padding:0;
  border-top:2px solid var(--gold);
}
body.page-marshall .jms-ledger li{
  display:grid;grid-template-columns:118px minmax(0,1fr);gap:20px;
  padding:16px 0;border-bottom:1px solid rgba(255,255,255,.14);
}
body.page-marshall .jms-ledger strong{
  font-family:var(--display);font-weight:700;font-size:30px;line-height:1;
  color:var(--gold);
}
body.page-marshall .jms-ledger p{margin:0;font-size:14.5px;line-height:1.6;color:var(--jms-on-dark)}
body.page-marshall .jms-ledger em{
  display:block;font-style:normal;font-size:13px;color:var(--jms-on-dark-soft);margin-top:5px;
}

/* ===========================================================
   PLAY SEQUENCE — the wrong-way run, four beats
   =========================================================== */
body.page-marshall .jms-beats{
  list-style:none;margin:28px 0 0;padding:0;counter-reset:jmsb;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0;
  border:var(--jms-hair);border-radius:var(--radius);overflow:hidden;background:#fff;
}
body.page-marshall .jms-beats li{
  counter-increment:jmsb;padding:22px 20px;position:relative;
  border-top:3px solid var(--purple);
}
body.page-marshall .jms-beats li+li{border-left:var(--jms-hair)}
body.page-marshall .jms-beats li::before{
  content:counter(jmsb);display:block;
  font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.1em;
  color:#fff;background:var(--purple);width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin-bottom:12px;
}
body.page-marshall .jms-beats li:last-child{border-top-color:var(--gold-deep)}
body.page-marshall .jms-beats li:last-child::before{background:var(--gold-deep);color:#041c1f}
body.page-marshall .jms-beats p{margin:0;font-size:14px;line-height:1.6;color:var(--text-muted)}

body.page-marshall .jms-scorebox{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;
  margin-top:22px;padding:18px 22px;border-radius:var(--radius);
  background:var(--jms-ink);color:#fff;
}
body.page-marshall .jms-scorebox b{
  font-family:var(--display);font-weight:700;font-size:26px;color:var(--gold);line-height:1;
}
body.page-marshall .jms-scorebox span{font-size:14px;line-height:1.55;color:var(--jms-on-dark)}

/* ===========================================================
   LINE CARDS — Purple People Eaters
   =========================================================== */
body.page-marshall .jms-line{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(212px,1fr));
  gap:14px;margin-top:26px;
}
body.page-marshall .jms-card{
  background:#fff;border:var(--jms-hair);border-radius:var(--radius);
  padding:20px 18px;border-left:4px solid var(--line);
}
body.page-marshall .jms-card-me{border-left-color:var(--gold);background:#fffdf4}
body.page-marshall .jms-pos{
  display:block;font-family:var(--display);font-weight:600;font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--purple);margin-bottom:7px;
}
body.page-marshall .jms-card p{margin:0;font-size:13.5px;line-height:1.6;color:var(--text-muted)}
body.page-marshall .jms-card p a{color:var(--purple);text-decoration:underline;text-underline-offset:2px}

/* ===========================================================
   TABLES
   =========================================================== */
body.page-marshall .jms-tw{
  margin-top:26px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  border:var(--jms-hair);border-radius:var(--radius);background:#fff;
}
body.page-marshall .jms-table{border-collapse:collapse;width:100%;min-width:560px}
body.page-marshall .jms-table caption{
  caption-side:top;text-align:left;padding:14px 18px;
  font-size:13px;line-height:1.55;color:var(--text-muted);
  border-bottom:var(--jms-hair);
}
body.page-marshall .jms-table th,
body.page-marshall .jms-table td{
  padding:10px 14px;font-size:14px;border-bottom:1px solid var(--line);text-align:right;
}
body.page-marshall .jms-table thead th{
  font-family:var(--display);font-weight:600;font-size:10.5px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);
  background:#eaebf2;text-align:right;white-space:nowrap;
}
body.page-marshall .jms-table thead th:first-child,
body.page-marshall .jms-table tbody th{text-align:left}
body.page-marshall .jms-table tbody th{font-weight:600;color:var(--text);white-space:nowrap}
body.page-marshall .jms-table td{color:var(--text-muted)}
body.page-marshall .jms-table tbody tr:nth-child(even) td,
body.page-marshall .jms-table tbody tr:nth-child(even) th{background:#fafafd}
body.page-marshall .jms-table tfoot th,
body.page-marshall .jms-table tfoot td{
  background:#f0ecf8;font-weight:700;color:var(--text);border-bottom:0;
}
body.page-marshall .jms-loss{
  font-family:var(--display);font-weight:600;font-size:12.5px;letter-spacing:.06em;
  text-transform:uppercase;color:#8a1f2e;
}

/* ===========================================================
   NOTES / CALLOUTS
   =========================================================== */
body.page-marshall .jms-note{
  margin-top:22px;padding:18px 20px;border-radius:var(--radius);
  background:#fff8e1;border:1px solid #e7cf8a;border-left:4px solid var(--gold-deep);
  font-size:14px;line-height:1.65;color:#463a12;
}
body.page-marshall .jms-note strong{color:#0c262a}
body.page-marshall .jms-note a{color:#0b4750;text-decoration:underline;text-underline-offset:2px}

body.page-marshall .jms-quote{
  margin:26px 0 0;padding:22px 24px;background:#fff;
  border:var(--jms-hair);border-left:4px solid var(--purple);border-radius:var(--radius);
}
body.page-marshall .jms-quote p{margin:0;font-size:17px;line-height:1.6;color:var(--jms-ink)}
body.page-marshall .jms-quote footer{
  margin-top:12px;font-family:var(--display);font-weight:600;font-size:11.5px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);
}
body.page-marshall .jms-sec-dark .jms-quote{
  background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);
  border-left-color:var(--gold);
}
body.page-marshall .jms-sec-dark .jms-quote p{color:#fff}
body.page-marshall .jms-sec-dark .jms-quote footer{color:var(--jms-on-dark-soft)}

body.page-marshall .jms-bullets{list-style:none;margin:16px 0 0;padding:0}
body.page-marshall .jms-bullets li{
  position:relative;padding-left:20px;margin-bottom:10px;
  font-size:14.5px;line-height:1.62;color:var(--text);
}
body.page-marshall .jms-bullets li::before{
  content:"";position:absolute;left:0;top:.62em;width:8px;height:2px;background:var(--gold-deep);
}
body.page-marshall .jms-sec-dark .jms-bullets li{color:var(--jms-on-dark)}
body.page-marshall .jms-sec-dark .jms-bullets li::before{background:var(--gold)}

/* ===========================================================
   TWO-UP PROSE
   =========================================================== */
body.page-marshall .jms-prose2{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.75fr);
  gap:34px;margin-top:26px;align-items:start;
}
body.page-marshall .jms-aside{
  background:#fff;border:var(--jms-hair);border-radius:var(--radius);padding:22px 20px;
  border-top:3px solid var(--gold-deep);
}
body.page-marshall .jms-aside p{margin:0 0 10px;font-size:14px;line-height:1.62;color:var(--text-muted)}
body.page-marshall .jms-aside p:last-child{margin-bottom:0}

/* ===========================================================
   RELATED
   =========================================================== */
body.page-marshall .jms-rel{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:26px;
}
body.page-marshall .jms-rel a{
  display:flex;flex-direction:column;gap:8px;background:#fff;border:var(--jms-hair);
  border-radius:var(--radius);padding:20px 18px;
  transition:border-color var(--t),transform var(--t);
}
body.page-marshall .jms-rel a:hover{border-color:var(--purple);transform:translateY(-2px)}
body.page-marshall .jms-rel h3{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:15px;letter-spacing:.05em;color:var(--jms-ink);margin:0;
}
body.page-marshall .jms-rel p{margin:0;font-size:13.5px;line-height:1.55;color:var(--text-muted)}
body.page-marshall .jms-rel span{
  margin-top:auto;padding-top:4px;
  font-family:var(--display);font-weight:600;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--purple);display:inline-flex;align-items:center;gap:7px;
}
body.page-marshall .jms-rel svg{width:13px;height:13px}

/* ===========================================================
   SOURCING + CLOSER
   =========================================================== */
body.page-marshall .jms-sourcing{
  font-size:14px;line-height:1.7;color:var(--text-muted);max-width:86ch;margin:16px 0 0;
}
body.page-marshall .jms-sourcing a{color:var(--purple);text-decoration:underline;text-underline-offset:2px}

body.page-marshall .jms-closer{
  background:
    radial-gradient(110% 150% at 0% 0%, rgba(68,206,227,.16) 0%, rgba(68,206,227,0) 52%),
    linear-gradient(120deg,#3b1c63 0%,#2a1450 100%);
  color:#fff;padding:52px 0;text-align:center;
}
body.page-marshall .jms-closer h2{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(24px,3.4vw,40px);line-height:1.06;margin:0 0 14px;color:#fff;
}
body.page-marshall .jms-closer p{
  margin:0 auto 22px;max-width:62ch;font-size:15.5px;line-height:1.65;color:var(--jms-on-dark-soft);
}

/* ===========================================================
   RESPONSIVE
   =========================================================== */
@media (max-width:1000px){
  body.page-marshall .jms-hero-grid{grid-template-columns:1fr;gap:28px}
  body.page-marshall .jms-split{grid-template-columns:1fr}
  body.page-marshall .jms-split>*+*{border-left:0;border-top:var(--jms-hair)}
  body.page-marshall .jms-prose2{grid-template-columns:1fr;gap:24px}
  body.page-marshall .jms-beats li+li{border-left:0}
}
@media (max-width:760px){
  body.page-marshall .jms-sec{padding:40px 0}
  body.page-marshall .jms-hero-in{padding-top:34px}
  /* the rail is a diagram: let it keep a readable size and scroll
     inside its own container rather than crushing the year labels */
  body.page-marshall .jms-rail-scroll{padding-bottom:2px}
  body.page-marshall .jms-rail{min-width:520px}
  body.page-marshall .jms-ledger li{grid-template-columns:1fr;gap:6px}
  body.page-marshall .jms-split>*{padding:22px 20px}
  body.page-marshall .jms-dl>div{grid-template-columns:1fr;gap:3px}
  body.page-marshall .jms-beats{grid-template-columns:1fr}
  body.page-marshall .jms-beats li+li{border-top:1px solid var(--line)}
}
@media (max-width:420px){
  body.page-marshall .jms-tile b{font-size:30px}
}

@media (prefers-reduced-motion:reduce){
  body.page-marshall *,
  body.page-marshall *::before,
  body.page-marshall *::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
  body.page-marshall .jms-rel a:hover{transform:none}
}
