/* ============================================================
   PLAYER — Living Edition D-B · the ONE player template (Phase P-2 production)
   The single stylesheet the player family adds. The shared shell stack
   (design-tokens / micro / nav / site-header / footer) is B-2's layer and is
   consumed unchanged; the D-B token values below are the B-1 token layer
   (James verdict 2026-10-18 19:12 PT) scoped to player pages so the family
   renders identically regardless of shell migration order.
   ============================================================ */
:root{
  --ink-950:#0C121B; --slate-850:#131E2C; --slate-800:#192634; --slate-750:#1B2A3B;
  --gold:#F2BC68; --coral:#F46B62; --sky:#93B6CE;
  --text-hi:#F9F8F3; --text:#C7D0DA; --text-dim:#A4B3C2;
  --hairline:rgba(255,255,255,.14);
  --font-display:'Marathon','Previously Display',serif;
  --font-body:'Inter',system-ui,sans-serif;
  --fs-kicker:11px;
  --panel-bg:linear-gradient(150deg,var(--slate-750),var(--slate-850));
  --lift:0 18px 40px rgba(0,0,0,.35);
}
/* Page canvas: micro.css paints every page paper via `html body` (0,0,2) on
   purpose fleet-wide; the approved player design is an ink-ground page, so
   the family claims its own canvas with a class-scoped rule (0,1,1). No
   other family's canvas is touched. */
body.p-page{background:var(--ink-950)}
.pwrap{max-width:1410px;margin:0 auto;padding:0 35px;font-family:var(--font-body);color:var(--text);
  -webkit-font-smoothing:antialiased}
@media(max-width:710px){.pwrap{padding:0 14px}}
.pwrap a{color:inherit}
.p-crumbs{font-size:13px;color:var(--text-dim);margin:18px 0 4px}
.p-crumbs a{color:var(--sky);text-decoration:none;font-weight:600}
.p-crumbs span{color:var(--text-hi);font-weight:700}

/* — Sections (scoped to the player wrap) — */
.pwrap .sec{padding:36px 0 6px}
.pwrap .sec-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;gap:16px}
.pwrap .sec-h h2{font-family:var(--font-display);font-weight:400;letter-spacing:.01em;font-size:32px;color:var(--text-hi);margin:0}
.pwrap .more{font-size:12px;font-weight:800;color:var(--gold);letter-spacing:.08em;white-space:nowrap}
.pwrap .state-note{background:var(--panel-bg);border-radius:20px;padding:22px 26px;color:var(--text);box-shadow:var(--lift)}
.pwrap .state-note b{color:var(--text-hi)}
.pwrap .adslot{margin:28px 0 4px}

.p-kicker{display:flex;justify-content:space-between;align-items:baseline;margin:26px 0 14px}
.p-kicker .k{font-size:var(--fs-kicker);font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--sky)}
.p-kicker .r{font-size:var(--fs-kicker);letter-spacing:.18em;color:var(--text-dim);text-transform:uppercase}

/* — Hero: photography-led, team identity, text floats on the art (no boxes) — */
.p-hero{position:relative;overflow:hidden;border-radius:22px;background:var(--panel-bg);box-shadow:var(--lift)}
.p-hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(720px 420px at 18% 30%, color-mix(in srgb, var(--team) 55%, transparent), transparent 65%),
  radial-gradient(900px 500px at 85% 110%, color-mix(in srgb, var(--team2) 26%, transparent), transparent 60%)}
.p-hero .wm-logo{position:absolute;right:-30px;top:-30px;width:300px;opacity:.10;transform:rotate(8deg)}
.p-hero-in{position:relative;display:grid;grid-template-columns:340px 1fr;gap:8px;padding:34px 38px 0}
.p-photo{align-self:end;line-height:0}
.p-photo img{width:100%;max-height:380px;object-fit:contain;object-position:bottom;filter:drop-shadow(0 18px 28px rgba(0,0,0,.45))}
.p-photo .plate{display:none}
.p-photo.noimg img{display:none}
.p-photo.noimg .plate{display:flex;width:250px;height:300px;margin:0 auto;border-radius:14px 14px 0 0;
  background:linear-gradient(160deg, color-mix(in srgb, var(--team) 65%, var(--slate-800)), var(--slate-850));
  align-items:center;justify-content:center;font-family:var(--font-display);font-size:92px;color:var(--text-hi)}
.p-id{padding:18px 0 26px}
.p-id h1{font-family:var(--font-display);font-weight:400;font-size:64px;line-height:.98;color:var(--text-hi);margin:0 0 10px}
.p-pos{font-size:19px;color:var(--text);margin:0 0 6px}
.p-pos b{color:var(--gold);font-weight:600}
.p-team{display:flex;align-items:center;gap:10px;font-size:16px;color:var(--text)}
.p-team img{width:30px;height:30px;object-fit:contain}
.p-team .lg{color:var(--text-dim)}
.p-facts{position:relative;grid-column:1/-1;display:flex;flex-wrap:wrap;gap:14px 44px;padding:18px 38px 24px;border-top:1px solid var(--hairline)}
.p-facts div{margin:0}
.p-facts dt{font-size:var(--fs-kicker);letter-spacing:.16em;text-transform:uppercase;color:var(--sky);margin:0 0 3px}
.p-facts dd{margin:0;font-size:16px;color:var(--text-hi);font-weight:600}

/* — Stat tiles: composed data furniture — */
.tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.tile{background:var(--panel-bg);border-radius:12px;padding:16px 16px 13px;min-width:0}
.tile .v{font-family:var(--font-display);font-size:34px;color:var(--text-hi);line-height:1}
.tile .l{font-size:var(--fs-kicker);letter-spacing:.16em;text-transform:uppercase;color:var(--sky);margin-top:7px}

/* — Career panel — */
.career{background:var(--panel-bg);border-radius:20px;padding:24px 26px 10px;box-shadow:var(--lift)}
.totals{display:flex;flex-wrap:wrap;gap:12px 48px;padding-bottom:18px;border-bottom:1px solid var(--hairline)}
.totals .t .v{font-family:var(--font-display);font-size:30px;color:var(--text-hi)}
.totals .t .l{font-size:var(--fs-kicker);letter-spacing:.16em;text-transform:uppercase;color:var(--sky);margin-top:3px}
table.pt{width:100%;border-collapse:collapse;font-size:14.5px;margin-top:8px}
table.pt th{font-size:var(--fs-kicker);letter-spacing:.14em;text-transform:uppercase;color:var(--sky);text-align:right;font-weight:600;padding:10px 8px}
table.pt th:first-child, table.pt td:first-child{text-align:left}
table.pt td{padding:9px 8px;text-align:right;color:var(--text);border-top:1px solid rgba(255,255,255,.06);font-variant-numeric:tabular-nums}
table.pt td:first-child{color:var(--text-hi);font-weight:600;white-space:nowrap}
table.pt tr.cr td{color:var(--text-hi);font-weight:700;border-top:1px solid var(--hairline)}
.pt-scroll{overflow-x:auto}
.p-teamsline{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 16px}
.p-teamsline a,.p-teamsline span{background:var(--slate-800);border-radius:8px;padding:7px 13px;font-weight:700;color:var(--text-hi);font-size:13.5px;text-decoration:none}
.p-hub{color:var(--text-dim);font-size:14px;line-height:1.7;margin:6px 2px 34px}
.p-hub a{color:var(--sky);text-decoration:none;font-weight:600}

/* — Roster strip — */
.roster{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 34px;background:var(--panel-bg);border-radius:20px;padding:18px 26px;box-shadow:var(--lift)}
.roster a{display:flex;align-items:baseline;gap:10px;padding:8px 2px;color:var(--text);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.05)}
.roster a:last-child{border-bottom:none}
.roster .n{color:var(--text-hi);font-weight:600}
.roster .p{color:var(--sky);font-size:12.5px;letter-spacing:.08em}
.roster .num{margin-left:auto;font-family:var(--font-display);color:var(--text-dim)}

.src{color:var(--text-dim);font-size:12.5px;margin:18px 2px 30px}

@media(max-width:710px){
  .p-hero-in{grid-template-columns:1fr;padding:22px 20px 0}
  .p-photo img{max-height:250px}
  .p-photo.noimg .plate{width:190px;height:220px;font-size:64px}
  .p-id{padding:6px 0 18px}
  .p-id h1{font-size:42px}
  .p-facts{padding:16px 20px 20px;gap:12px 30px}
  .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tile{padding:13px 12px 11px}
  .tile .v{font-size:26px}
  .roster{grid-template-columns:1fr}
  .career{padding:18px 14px 6px}
  .totals{gap:10px 30px}
}
@media (prefers-reduced-motion: reduce){
  .pwrap *, .pwrap *::before, .pwrap *::after{transition:none!important;animation:none!important}
}
