/* CODLOCKER — polish + square layers (was inline blocks 2 & 3)
   Extracted from the per-page inline <style> blocks; byte-identical content. */

/* ============================================================
   V31.3 — small polish pass. Everything here is additive:
   delete this block and the site returns to exactly v31.
   ============================================================ */

/* dark scrollbars — the default light ones cut through the theme */
html{scrollbar-color:#2b343c #090c0f;scrollbar-width:thin}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:#090c0f}
::-webkit-scrollbar-thumb{background:#252d35;border:3px solid #090c0f;border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:#3b454e}

/* accent-tinted text selection */
::selection{background:rgba(255,79,18,.3);color:#fff}

/* one consistent keyboard focus ring across every control */
a:focus-visible,button:focus-visible,summary:focus-visible,
input:focus-visible,select:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}

/* header: the logomark reacts on hover */
.logomark{transition:transform .2s ease,filter .2s ease}
.logo:hover .logomark{transform:rotate(-5deg) scale(1.05);
  filter:drop-shadow(0 0 11px rgba(255,79,18,.34))}
.footer-brand img{transition:transform .2s ease}
.footer-brand:hover img{transform:rotate(-5deg)}

/* mark the page you're currently on in the nav */
.nav a[aria-current="page"]{color:#fff}
.nav a[aria-current="page"]::after{content:"";display:block;height:2px;
  margin-top:4px;border-radius:2px;background:var(--accent);
  box-shadow:0 0 8px rgba(255,79,18,.45)}
.nav-team[data-current] summary{color:#fff}

/* long key/value sheets: quiet banding + row hover, so the eye
   tracks from the label on the left to the value on the right */
.profile-card .row,.panel .row{border-radius:3px;transition:background .12s ease}
.profile-card .row:nth-of-type(even),
.panel .row:nth-of-type(even){background:rgba(255,255,255,.026)}
.profile-card .row:hover,.panel .row:hover{background:rgba(255,255,255,.05)}

/* the graphics sheet runs 30+ rows deep — two columns on desktop
   halves the scroll and pulls each value back next to its label */
@media(min-width:1000px){
  #graphics .profile-card{column-count:2;column-gap:36px;column-rule:1px solid #1e262d}
  #graphics .profile-card h3{column-span:all}
  #graphics .profile-card .row{break-inside:avoid}
  #graphics .profile-card .profile-provenance{column-span:all;break-inside:avoid}
}


/* data tables: same banding, existing hover still wins */
.data-table tbody tr:nth-child(even),
.analysis-table tbody tr:nth-child(even),
.compare-table tbody tr:nth-child(even),
.panel table tbody tr:nth-child(even){background:rgba(255,255,255,.015)}
.panel table tbody tr:hover{background:#171d24}

/* team pages: logo alongside the name instead of a bare headline */
.team-hero-row{display:flex;align-items:center;gap:18px}
.team-hero-logo{width:66px;height:66px;flex:0 0 66px;display:flex;
  align-items:center;justify-content:center;padding:8px;background:#090d10;
  border:1px solid color-mix(in srgb,var(--team,var(--accent)) 34%,#2a333b);
  border-radius:9px;box-shadow:0 0 22px color-mix(in srgb,var(--team,var(--accent)) 13%,transparent)}
.team-hero-logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}
@media(max-width:600px){
  .team-hero-row{gap:13px}
  .team-hero-logo{width:50px;height:50px;flex:0 0 50px;padding:6px;border-radius:7px}
}

/* prose links read as links on hover */
.article-prose a:hover,.page-lede a:hover,.player-written a:hover,
.info-box a:hover,.source a:hover{text-decoration:underline;text-underline-offset:3px}

/* respect the OS reduced-motion setting */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;
    animation-iteration-count:1!important;transition-duration:.001ms!important;
    scroll-behavior:auto!important}
}


/* ============================================================
   V32 — square + rigid. Pulls every inner page onto the same
   design language as the front page: hairline edges, flat
   panels, no rounded corners, no glow, no floating cards.
   Additive — delete this block to return to v31.3.
   ============================================================ */

/* ---- 1. one palette, taken from the front page --------------- */
:root{
  --ink:#08090b;--paper:#f3f0ea;
  --accent:#ff5a1f;--accent2:#ff7038;--accent-deep:#c8410f;
  --edge:#20262c;--edge-2:#2b333b;
  --panel:#0b0e11;--panel2:#0e1216;--panel3:#11161a;
  --line:#20262c;--line2:#2b333b;
  --text:#f3f0ea;--muted:#8d959b;
  --shadow:none;
}

/* ---- 2. the big faded logo comes out ------------------------- */
.lead-main::after,.lead-main .lead-ring{display:none!important}

/* every other soft circular flourish goes with it */
.page-hero::after,.news-card::after,.compare-profile::after,
.panel::after,.analysis-card::after,.lower-third::after,
.meta-lock::after,.stats-summary .summary-card::after{display:none!important}

/* ---- 3. square corners, everywhere --------------------------- */
*,*::before,*::after{border-radius:0!important}
input,select,textarea{border-radius:2px!important}

/* ---- 4. one header across every page ------------------------- */
header.site{background:rgba(8,9,11,.95);border-bottom:1px solid #1b2025;box-shadow:none}
header.site .wrap{height:66px;gap:26px}
.logo{font-family:'Barlow Condensed',sans-serif;font-size:32px;font-weight:700;
  letter-spacing:.005em;color:var(--paper)}
.logomark{width:38px;height:38px;filter:none}
.nav{gap:21px}
.nav a,.nav-team summary{font-family:'Barlow Condensed',sans-serif;font-size:15px;
  font-weight:600;letter-spacing:.07em;color:#a7aeb4}
.nav a:hover,.nav-team:hover summary,.nav-team[open] summary{color:#fff;transform:none}
.header-searchbox{width:236px;flex:0 0 236px}
.header-searchbox input{height:34px;border-color:#2b3238;background:#0c0f12;
  font-family:'Barlow',sans-serif;font-size:12px}
.team-dropdown,.header-results{border-color:var(--edge-2);background:#0a0d10;box-shadow:none}

/* ---- 5. flat panels: no gradient, no glow, one hairline ------ */
.page-frame,.panel,.profile-card,.analysis-card,.summary-card,.insight-card,
.research-card,.guide-card,.news-card,.compare-picker,.compare-profile,
.compare-vs,.pair-player,.pair-vs,.pair-summary,.popular-compare-card,.card,
.recent-card,.teamsec,.player-toc,.hardware-item,.verification-card,.info-box,
.loadout,.guides-intro-main,.guides-intro-side,.guide-tool,.compare-help div,
.stats-hero-badge,.about-home,.analysis-table-wrap,.sens-chart-shell,
.profile-provenance,.profile-source-link,.empty-note,.meta-mini,.team-hero-logo,
.team-logo-shell,.team-drop-logo,.notice,.chip,.claw-list a,.pair-links a,
.faq-item,.article-stat,.player-written{
  background-image:none;box-shadow:none}

.page-frame,.panel,.profile-card,.analysis-card,.summary-card,.insight-card,
.research-card,.guide-card,.news-card,.compare-picker,.compare-profile,
.compare-vs,.pair-player,.pair-summary,.popular-compare-card,.card,.recent-card,
.teamsec,.player-toc,.hardware-item,.guides-intro-main,.guides-intro-side,
.guide-tool,.compare-help div,.stats-hero-badge,.about-home,.analysis-table-wrap,
.sens-chart-shell,.profile-provenance,.empty-note,.article-stat{
  background-color:var(--panel);border-color:var(--edge)}

.page-hero{background:var(--ink);border-bottom:1px solid var(--edge)}
.lower-third{background:var(--ink);border-bottom:1px solid var(--edge)}
.page-frame,.home-frame{background:var(--ink)}
.directory,.teams-list,.recent-section{background:var(--ink)}

/* ---- 6. accent rules stay flat and hard ---------------------- */
.bar-fill,.panel-bar i,.meta-track i{background:var(--accent);box-shadow:none;border:0}
.sens-bar{background:var(--accent-deep);box-shadow:none;border:0}
.sens-col.mode .sens-bar{background:var(--accent)}
.bar-fill::after{display:none}
.bar-track,.panel-bar,.meta-track{background:#171c21;border:0}
.teamhead::before,.lower-third .rail,.card::before,.recent-card::before,
.profile-card::before,.analysis-card::before,.panel::before{
  background:var(--team,var(--accent));box-shadow:none}
.lower-third .rail{height:3px;width:96px;margin-top:17px}

/* panels get a short accent mark, not a full-width bar — the same
   idiom the front page uses on .summary-card and .guide-card */
.panel::before,.profile-card::before,.analysis-card::before,
.compare-picker::before,.compare-profile::before,.pair-player::before{
  left:0;right:auto;width:48px;height:2px}
.panel h2::before,.profile-card h3::before{box-shadow:none}
.card::after{display:none}

/* ---- 7. rigid hover: edges move, cards don't ----------------- */
.card,.recent-card,.news-card,.guide-card,.research-card,.popular-compare-card,
.analysis-card,.data-table tbody tr,.meta-mini,.chip,.nav a,.player-toc a,
.lead-actions a,.section-rail a,.league-rail a{transition:background-color .12s ease,border-color .12s ease,color .12s ease}
.card:hover,.card:focus-visible,.recent-card:hover,.recent-card:focus-visible,
.news-card:hover,.guide-card:hover,.research-card:hover,.research-card:focus-visible,
.popular-compare-card:hover,.analysis-card:hover,.chip:hover,.player-toc a:hover,
.lead-go:hover,.lead-alt:hover,.data-table tbody tr:hover{transform:none!important}
.card:hover,.card:focus-visible,.recent-card:hover,.recent-card:focus-visible{
  background:var(--panel3);border-color:var(--team,var(--accent));box-shadow:none}
.news-card:hover,.guide-card:hover,.popular-compare-card:hover,
.research-card:hover,.research-card:focus-visible,.analysis-card:hover{
  background:var(--panel3);border-color:var(--edge-2);box-shadow:none}
.research-card:hover,.research-card:focus-visible{border-color:var(--accent)}
.card:hover .tag,.card:focus-visible .tag{text-shadow:none}

/* ---- 8. headings share the front page's warm white ----------- */
.page-hero h1,.lower-third h1,.panel h2,.profile-card h3,.news-card h2,
.guide-card h2,.faq-item h3,.player-analysis-head h2,.article-prose h2,
.about-copy h2,.pair-summary h2,.guides-intro-main h2,.teamhead h2,
.section-title-row h2,.popular-compare-head h2,.summary-value,.analysis-value,
.insight-value,.card .tag,.stats-hero-badge b{color:var(--paper)}

/* ---- 9. same frame width as the front page ------------------- */
.page-shell,.player-profile-shell{max-width:1420px;padding-left:28px;padding-right:28px}
@media(max-width:820px){
  .page-shell,.player-profile-shell{padding-left:16px;padding-right:16px}
}

/* ---- 10. tables: rules, not rounded blocks ------------------- */
.data-table th,.analysis-table th,.compare-table th,.panel table th{
  background:#0d1114;border-bottom:1px solid var(--edge-2)}
.data-table td,.analysis-table td,.compare-table td{border-bottom:1px solid #171c21}
.compare-table td.diff{background:rgba(255,90,31,.06)}

/* guide cards: link sits below the copy instead of on top of it */
.guide-card{display:flex;flex-direction:column}
.guide-card p{flex:1}
.guide-open{position:static;margin-top:14px;left:auto;bottom:auto}

/* team pages sit closer to the width of everything else */
.lower-third + section.wrap{max-width:1080px!important}
.lower-third + section.wrap > p{max-width:780px}

/* ---- 11. odds and ends --------------------------------------- */
.about-feature .feature-icon{border-color:rgba(255,90,31,.4)}
.badge{border-color:var(--edge-2)}
.sens-num{background:#10151a;border-color:var(--edge-2)}
.lead-meta i{width:4px;height:4px}
.lead-tape a::before{width:8px;height:8px}
footer{border-top:1px solid var(--edge);background:var(--ink)}

/* ---- 12. key/value rows -------------------------------------
   Values were right-aligned flush to the card's inner edge, with
   no trailing space, so they read as truncated. Inset the value
   column, widen the card a little, and let a long value wrap
   instead of running into the edge. ---------------------------- */
.row,.profile-card .row,.panel .row{padding-left:16px!important;padding-right:16px!important;gap:22px}
.row .v{overflow-wrap:anywhere}
/* the card heading's accent bar lines up with the label column,
   while every rule still spans the full width of the card */
.profile-card h3::before{margin-left:16px}
.profile-card,.panel{padding-left:26px;padding-right:26px}
.panel-rows div{padding-right:6px}

@media(max-width:760px){
  .row,.profile-card .row,.panel .row{padding-left:12px!important;padding-right:12px!important;gap:14px}
  .profile-card h3::before{margin-left:12px}
  .profile-card,.panel{padding-left:18px;padding-right:18px}
}

/* ---- 13. evidence galleries in the source blocks -------------- */
.profile-evidence{margin-top:14px;padding-top:14px;border-top:1px solid var(--edge)}
.profile-evidence-label{display:block;margin-bottom:11px;font-family:'IBM Plex Mono',monospace;
  font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#7d868d}
.profile-evidence-grid{display:grid;gap:12px;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.profile-evidence-item{display:flex;flex-direction:column;background:#090d10;
  border:1px solid var(--edge);transition:border-color .12s ease,background-color .12s ease}
.profile-evidence-item:hover,.profile-evidence-item:focus-visible{
  border-color:var(--team,var(--accent));background:var(--panel3)}
.profile-evidence-item img{display:block;width:100%;height:auto}
.profile-evidence-cap{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  margin-top:auto;
  padding:9px 13px;border-top:1px solid var(--edge);
  font-family:'Barlow',sans-serif;font-size:11.5px;color:#9aa4ac}
.profile-evidence-cap em{flex:0 0 auto;font-style:normal;font-family:'IBM Plex Mono',monospace;
  font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--team,var(--accent))}
@media(max-width:700px){
  .profile-evidence-grid{grid-template-columns:1fr}
}

/* ---- 14. team page intro copy --------------------------------- */
.team-intro{max-width:780px}
.team-intro p{margin:0 0 15px}
.team-intro p:last-child{margin-bottom:0}

/* ---- 15. homepage hero eyebrow, a step up in weight ----------- */
.lead-meta{font-size:13px;font-weight:600;letter-spacing:.14em;color:#a3abb2;gap:13px}
.lead-meta::before{width:38px;height:2px}
.lead-meta i{width:4px;height:4px}
.lead-meta em{font-weight:700;color:var(--accent)}
@media(max-width:700px){
  .lead-meta{font-size:11.5px;gap:9px}
  .lead-meta::before{width:28px}
}

/* ---- 16. team page intro: stat strip + labelled blocks -------- */
.team-intro{max-width:none}
.team-stats{display:grid;gap:12px;margin:0 0 26px;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.team-stat{position:relative;padding:16px 18px 15px;background:var(--panel);
  border:1px solid var(--edge)}
.team-stat::before{content:"";position:absolute;top:0;left:0;width:40px;height:2px;
  background:var(--team,var(--accent))}
.team-stat-label{display:block;font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:#76818a}
.team-stat-value{display:block;margin:9px 0 6px;font-family:'Barlow Condensed',sans-serif;
  font-size:31px;font-weight:700;line-height:1;color:var(--paper)}
.team-stat-note{display:block;font-family:'Barlow',sans-serif;font-size:11.5px;
  line-height:1.45;color:#7f888f}

.team-blocks{display:grid;gap:0;border-top:1px solid var(--edge)}
.team-block{display:grid;gap:4px 26px;padding:17px 0 16px;
  border-bottom:1px solid var(--edge);grid-template-columns:150px 1fr}
.team-block-kicker{font-family:'IBM Plex Mono',monospace;font-size:9.5px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--team,var(--accent));
  padding-top:4px}
.team-block p{margin:0;max-width:660px;font-size:14.5px;line-height:1.72;color:#c3cad0}
.team-outro{margin:22px 0 0;font-size:13px;color:#7f888f;max-width:660px}

@media(max-width:760px){
  .team-block{grid-template-columns:1fr;gap:6px}
  .team-stat-value{font-size:27px}
}

/* ---- 17. stats grid: no stretched empty panels ---------------- */
.stats-grid{align-items:start}
.stats-grid > .panel,.stats-stack > .panel{height:auto}

/* ---- 18. support page ---------------------------------------- */
.support-wrap{max-width:620px}
.support-note p{margin:0 0 14px;font-size:15.5px;line-height:1.78;color:#c9d0d6}
.support-note p:last-child{margin-bottom:0}

.paypal-panel{display:block;margin:30px 0;padding:34px 30px 26px;background:#fff;
  border:1px solid #d9dde2;text-align:center;
  transition:background-color .12s ease,border-color .12s ease}
.paypal-panel:hover,.paypal-panel:focus-visible{background:#f4f7fa;border-color:#009cde}
.paypal-mark{display:block;line-height:0;margin-bottom:14px}
.paypal-word{display:block;font-family:'Barlow Condensed',sans-serif;font-size:52px;
  font-weight:700;line-height:1;letter-spacing:-.01em;margin-bottom:20px}
.paypal-word b{color:#003087;font-weight:700}
.paypal-word i{color:#009cde;font-style:normal;font-weight:700}
.paypal-cta{display:block;font-family:'Barlow Condensed',sans-serif;font-size:20px;
  font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#003087}
.paypal-cta em{font-style:normal;color:#009cde}
.paypal-handle{display:block;margin-top:7px;font-family:'IBM Plex Mono',monospace;
  font-size:11.5px;color:#6b7683}

.support-warn{padding:20px 22px;background:var(--panel);border:1px solid var(--edge);
  position:relative}
.support-warn::before{content:"";position:absolute;top:0;left:0;width:48px;height:2px;
  background:var(--accent)}
.support-warn-kicker{display:block;margin-bottom:10px;font-family:'IBM Plex Mono',monospace;
  font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.support-warn p{margin:0;font-size:13.5px;line-height:1.7;color:#aab3ba}
.support-warn p b{color:var(--paper)}
.support-warn-sub{margin-top:12px!important;padding-top:12px;border-top:1px solid #171c21;
  font-size:12px!important;color:#7f888f!important}

@media(max-width:600px){
  .paypal-panel{padding:26px 20px 22px}
  .paypal-word{font-size:42px}
  .paypal-cta{font-size:17px}
}
