/*
Theme Name: SLIM GHOST
Theme URI: http://localhost:8088
Author: SLIM GHOST
Description: Tactical-military x esports theme for the SLIM GHOST Madden Playbook Vault and The Gulag tournament arena. Dark, HUD, high-stakes.
Version: 0.8.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: slim-ghost
*/

/* ============================================================
   SLIM GHOST — design tokens
   ============================================================ */
:root {
  /* Native form controls + scrollbars + the date/time picker POPUP render in
     dark mode (the popup itself is browser UI — this is the styling hook it
     honors). Checkboxes/radios/pickers take the brand blue via accent-color. */
  color-scheme: dark;
  accent-color: #1FA6FF;

  --sg-black:     #090B0E;
  --sg-surface:   #12161A;
  --sg-surface-2: #1B2127;
  --sg-line:      #2A333B;
  --sg-wire:      #45535f;   /* bracket connector lines — brighter than borders so long runs stay readable */
  --sg-ghost:     #F3F5F4;
  --sg-steel:     #8A97A0;
  --sg-ecto:      #1FA6FF;   /* SLIM GHOST electric blue — the logo color */
  --sg-ecto-dim:  #14639c;
  --sg-blood:     #FF3B47;
  --sg-gold:      #E7B84B;
  --sg-def:       #1FA6FF;   /* defensive playbook accent — brand blue like everything else; the badge text tells the side */

  --sg-font-display: "Oswald", system-ui, sans-serif;
  --sg-font-body:    "Inter", system-ui, sans-serif;
  --sg-font-mono:    "JetBrains Mono", ui-monospace, monospace;

  --sg-maxw: 1200px;
  --sg-header-maxw: 1440px;  /* the nav bar breathes wider than page content */
  --sg-radius: 4px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(31,166,255,.10), transparent 60%),
    radial-gradient(900px 500px at -10% 10%, rgba(31,166,255,.06), transparent 55%),
    var(--sg-black);
  color: var(--sg-ghost);
  font-family: var(--sg-font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  /* sticky footer: fill the viewport so .sg-footer's margin-top:auto can glue
     it to the bottom on short pages */
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}

/* faint tactical grid overlay */
body::before {
  content: "";
  position: fixed; inset: 0;
  background-image:
    linear-gradient(var(--sg-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--sg-line) 1px, transparent 1px);
  background-size: 64px 64px;
  opacity: .04;
  pointer-events: none;
  z-index: 0;
}

a { color: var(--sg-ecto); text-decoration: none; }
a:hover { color: var(--sg-ghost); }
img { max-width: 100%; height: auto; display: block; }

h1,h2,h3,h4 {
  font-family: var(--sg-font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.02;
  margin: 0 0 .4em;
}

/* Date/time inputs: tint the calendar icon electric blue and make it obviously
   clickable. (The popup calendar itself is native UI — color-scheme above puts
   it in dark mode, which is as far as browsers allow CSS to reach.) */
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  filter: invert(58%) sepia(72%) saturate(2600%) hue-rotate(184deg) brightness(1.05);
}
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="time"]:focus { outline: 0; border-color: var(--sg-ecto) !important; }

/* the hidden attribute must ALWAYS win — author display rules (e.g. .sg-btn's
   inline-flex) would otherwise override the browser's [hidden] default */
[hidden] { display: none !important; }

/* hollow SVG icons (sg_icon) — inherit text color, scale with font size */
.sg-ico { width:1em; height:1em; display:inline-block; vertical-align:-0.12em; }
.sg-btn .sg-ico { vertical-align:-0.15em; }
/* same size as the nav logo — extra specificity so WooCommerce's
   `.woocommerce-page img { height:auto }` can't inflate it on account pages */
.sg-footer img.sg-footer__logo { height:40px; width:auto; display:block; }
/* developer credit — sits directly under the copyright line */
.sg-footer__credit { margin-top:10px; }
.sg-footer .sg-footer__credit a {
  display:inline-flex; align-items:center; gap:9px; text-decoration:none;
  font-family:var(--sg-font-mono); font-size:.72rem; letter-spacing:.03em;
  text-transform:none; /* no caps — reads exactly as written */
  color:var(--sg-ghost); opacity:.7; transition:opacity .15s ease;
}
.sg-footer .sg-footer__credit a:hover { opacity:1; color:var(--sg-ecto); }
.sg-footer__credit svg { height:20px; width:auto; display:block; color:#fff; transition:color .15s ease; }
.sg-footer__credit a:hover svg { color:var(--sg-ecto); } /* white mark goes brand blue with the text */
.sg-brand__logo-img { height:40px; width:auto; display:block; }
.sg-watch__focus, .sg-chat__callmod { display:inline-flex; align-items:center; gap:6px; }

.sg-wrap { max-width: var(--sg-maxw); margin: 0 auto; padding: 0 24px; position: relative; z-index: 1; }
.sg-mono { font-family: var(--sg-font-mono); }
.sg-ecto { color: var(--sg-ecto); }
.sg-blood { color: var(--sg-blood); }

/* stencil / HUD label */
.sg-label {
  font-family: var(--sg-font-mono);
  font-size: .72rem;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--sg-steel);
}
.sg-label--ecto { color: var(--sg-ecto); }

/* ============================================================
   Buttons
   ============================================================ */
.sg-btn {
  display: inline-flex; align-items: center; gap: .5em;
  font-family: var(--sg-font-display);
  text-transform: uppercase; letter-spacing: .05em; font-weight: 600;
  font-size: 1rem;
  padding: 14px 26px;
  border-radius: var(--sg-radius);
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
  clip-path: polygon(0 0, 100% 0, 100% 72%, 94% 100%, 0 100%);
}
.sg-btn:hover { transform: translateY(-2px); }
.sg-btn--ecto {
  background: var(--sg-ecto); color: #04182b;
  box-shadow: 0 0 0 rgba(31,166,255,.0);
}
.sg-btn--ecto:hover { color: #04182b; box-shadow: 0 8px 30px rgba(31,166,255,.35); }
/* "blood" CTAs re-skinned to the brand blue — red is reserved for danger/dispute signals */
.sg-btn--blood { background: var(--sg-ecto); color: #04182b; }
.sg-btn--blood:hover { color:#04182b; box-shadow: 0 8px 30px rgba(31,166,255,.35); }
.sg-btn--ghost {
  background: transparent; color: var(--sg-ghost);
  border-color: var(--sg-line);
}
.sg-btn--ghost:hover { border-color: var(--sg-ecto); color: var(--sg-ghost); }

/* ============================================================
   Header
   ============================================================ */
.sg-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(10,12,11,.82);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--sg-line);
}
.sg-header__inner { display: flex; align-items: center; justify-content: space-between; height: 68px; max-width: var(--sg-header-maxw); }
.sg-brand { display: flex; align-items: center; gap: 12px; }
.sg-brand__mark {
  width: 34px; height: 34px; display: grid; place-items: center;
  border: 1.5px solid var(--sg-ecto); border-radius: 50%;
  color: var(--sg-ecto); font-size: 20px;
  box-shadow: 0 0 18px rgba(31,166,255,.35) inset;
}
.sg-brand__name {
  font-family: var(--sg-font-display); font-weight: 700; font-size: 1.35rem;
  text-transform: uppercase; letter-spacing: .12em; color: var(--sg-ghost);
}
.sg-brand__name b { color: var(--sg-ecto); font-weight: 700; }
/* on desktop the menu wrapper is transparent to layout — nav + cta stay inline
   flex children of the bar exactly as before; on mobile it becomes the dropdown */
.sg-header__menu { display: contents; }
.sg-nav { display: flex; align-items: center; gap: 26px; list-style: none; margin: 0; padding: 0; }
.sg-nav li { list-style: none; margin: 0; }
.sg-nav a {
  position: relative; color: var(--sg-steel); font-family: var(--sg-font-display);
  text-transform: uppercase; font-size: .95rem; letter-spacing: .04em; padding: 4px 0;
  transition: color .2s ease;
}
.sg-nav a::after {
  content: ""; position: absolute; left: 0; bottom: -2px; height: 2px; width: 100%;
  background: var(--sg-ecto); transform: scaleX(0); transform-origin: left;
  transition: transform .28s cubic-bezier(.65,.05,.36,1);
}
.sg-nav a:hover { color: var(--sg-ghost); }
.sg-nav a:hover::after { transform: scaleX(1); }
.sg-nav .current-menu-item a { color: var(--sg-ghost); }
.sg-nav .current-menu-item a::after { transform: scaleX(1); }
.sg-header .sg-btn { padding: 10px 18px; font-size: .9rem; }
.sg-header__cta { display:flex; align-items:center; gap:14px; }
.sg-signin, .sg-nav-acct {
  font-family:var(--sg-font-display); text-transform:uppercase; letter-spacing:.04em;
  font-size:.95rem; color:var(--sg-steel); white-space:nowrap;
}
.sg-signin:hover { color: var(--sg-ghost); }
.sg-nav-acct { color: var(--sg-ecto); }
.sg-nav-acct:hover { color: var(--sg-ghost); }
/* animated hamburger: 3 bars morph into an X (transform-only = smooth + centered) */
.sg-burger {
  display:none; width:26px; height:20px; position:relative;
  background:none; border:0; padding:0; cursor:pointer;
}
.sg-burger span {
  position:absolute; left:0; width:100%; height:2px; border-radius:2px; background:var(--sg-ghost);
  transform-origin: center;
  transition: transform .3s cubic-bezier(.4,0,.2,1), opacity .2s ease, background .2s ease;
}
.sg-burger span:nth-child(1){ top:0; }
.sg-burger span:nth-child(2){ top:9px; }   /* (20 - 2) / 2 = 9  → true center */
.sg-burger span:nth-child(3){ top:18px; }
.sg-burger.is-open span { background: var(--sg-ecto); }
.sg-burger.is-open span:nth-child(1){ transform: translateY(9px) rotate(45deg); }
.sg-burger.is-open span:nth-child(2){ opacity:0; }
.sg-burger.is-open span:nth-child(3){ transform: translateY(-9px) rotate(-45deg); }

/* ============================================================
   Hero
   ============================================================ */
.sg-hero { padding: 96px 0 72px; position: relative; overflow: hidden; }
.sg-hero__grid { display: grid; grid-template-columns: 1.3fr .9fr; gap: 40px; align-items: center; }
.sg-hero h1 {
  font-size: clamp(3rem, 8vw, 6.2rem);
  margin: .1em 0 .2em;
}
.sg-hero h1 .stroke {
  color: transparent; -webkit-text-stroke: 2px var(--sg-steel);
}
.sg-hero__sub { color: var(--sg-steel); font-size: 1.15rem; max-width: 46ch; margin-bottom: 28px; }
.sg-hero__cta { display: flex; gap: 14px; flex-wrap: wrap; }

/* HUD stats — separate cards, matching the site's card language everywhere else */
.sg-hud {
  margin-top: 40px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
}
.sg-hud--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 620px) { .sg-hud--4 { grid-template-columns: 1fr 1fr; } }
.sg-hud__cell {
  padding: 18px 20px; border: 1px solid var(--sg-line); border-radius: var(--sg-radius);
  background: var(--sg-surface);
}
.sg-hud__num { font-family: var(--sg-font-mono); font-size: 1.9rem; color: var(--sg-ghost); text-transform: uppercase; }
.sg-hud__num--ecto { color: var(--sg-ecto); }
.sg-hud__lbl { font-family: var(--sg-font-mono); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color: var(--sg-steel); }

/* hero side card: this week's Gulag */
.sg-gulag-card {
  border: 1px solid var(--sg-line);
  background:
    linear-gradient(180deg, rgba(31,166,255,.08), transparent 40%),
    var(--sg-surface);
  border-radius: var(--sg-radius);
  padding: 24px;
  position: relative;
}
.sg-live {
  display:inline-flex; align-items:center; gap:8px;
  font-family: var(--sg-font-mono); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color: var(--sg-ecto);
}
.sg-live .dot { width:8px;height:8px;border-radius:50%;background:var(--sg-ecto); animation: sg-pulse 1.3s infinite; }
@keyframes sg-pulse { 0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(31,166,255,.5)} 50%{opacity:.5;box-shadow:0 0 0 8px rgba(31,166,255,0)} }
.sg-gulag-card h3 { font-size: 1.9rem; margin-top: 10px; }
.sg-gulag-card .countdown { font-family: var(--sg-font-mono); font-size: 1.4rem; color: var(--sg-ghost); }
.sg-gulag-meta { display:flex; gap:20px; margin:16px 0; }
.sg-gulag-meta div span { display:block; font-family:var(--sg-font-mono); }
.sg-gulag-meta .k { font-size:.65rem; letter-spacing:.15em; color:var(--sg-steel); text-transform:uppercase; }
.sg-gulag-meta .v { font-size:1.25rem; color:var(--sg-ghost); }

/* ============================================================
   Sections
   ============================================================ */
.sg-section { padding: 84px 0; border-top: 1px solid var(--sg-line); }
.sg-section__head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom: 40px; flex-wrap: wrap; }
.sg-section__head h2 { font-size: clamp(2rem, 4vw, 3rem); }
.sg-section__head p { color: var(--sg-steel); margin:0; max-width: 52ch; }

/* tier cards */
.sg-tiers { display:grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.sg-tier {
  border: 1px solid var(--sg-line); border-radius: var(--sg-radius);
  background: var(--sg-surface); padding: 30px 26px; position: relative;
  display:flex; flex-direction:column;
}
.sg-tier--featured {
  border-color: var(--sg-ecto);
  background: linear-gradient(180deg, rgba(31,166,255,.06), var(--sg-surface));
}
.sg-tier__badge {
  position:absolute; top:-11px; left:26px;
  background: var(--sg-ecto); color:#04182b; font-family:var(--sg-font-mono);
  font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; padding:4px 10px; border-radius:2px;
}
.sg-tier h3 { font-size:1.6rem; margin-bottom:.1em; }
.sg-tier__price { font-family: var(--sg-font-mono); font-size: 2.4rem; color: var(--sg-ghost); margin:.2em 0; }
.sg-tier__price small { font-size: .9rem; color: var(--sg-steel); }
.sg-tier__yr { font-family:var(--sg-font-mono); font-size:.8rem; color: var(--sg-ecto); }
.sg-tier ul { list-style:none; padding:0; margin: 20px 0 26px; flex:1; }
.sg-tier li { padding: 8px 0; border-bottom: 1px solid var(--sg-line); color: var(--sg-steel); font-size:.95rem; }
.sg-tier li::before { content:"▹ "; color: var(--sg-ecto); }
.sg-tier .sg-btn { justify-content:center; }

/* rankings teaser */
.sg-rank { border:1px solid var(--sg-line); border-radius:var(--sg-radius); overflow:hidden; }
.sg-rank__row { display:grid; grid-template-columns: 60px 1fr 90px 90px 90px; align-items:center; padding: 14px 20px; border-bottom:1px solid var(--sg-line); }
.sg-rank__row:last-child { border-bottom:0; }
.sg-rank__row--head { background: var(--sg-surface); color: var(--sg-steel); font-family:var(--sg-font-mono); font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; }
.sg-rank__seed { font-family:var(--sg-font-mono); color: var(--sg-gold); font-size:1.1rem; }
.sg-rank__name { font-family:var(--sg-font-display); text-transform:uppercase; letter-spacing:.03em; }
.sg-rank__stat { font-family:var(--sg-font-mono); text-align:right; }
.sg-rank__stat.elo { color: var(--sg-ecto); }

/* feature row */
.sg-feats { display:grid; grid-template-columns: repeat(3,1fr); gap:22px; }
.sg-feat { border:1px solid var(--sg-line); border-radius:var(--sg-radius); background:var(--sg-surface); padding:26px; }
.sg-feat__icon { font-size:26px; color:var(--sg-ecto); margin-bottom:12px; }
.sg-feat h4 { font-size:1.15rem; }
.sg-feat p { color:var(--sg-steel); margin:0; font-size:.95rem; }

/* ============================================================
   Footer
   ============================================================ */
/* Sticky footer: body is a flex column at least one viewport tall, and the
   footer's auto top margin absorbs the leftover space — so on short pages it
   stays glued to the bottom of the screen. */
.sg-footer { border-top:1px solid var(--sg-line); padding: 48px 0 32px; margin-top: auto; background: var(--sg-black); }
.sg-footer__grid { display:flex; justify-content:space-between; gap:30px 60px; flex-wrap:wrap; align-items:flex-start; max-width:var(--sg-header-maxw); /* same width as the nav bar so both logos start at the same x */ }
.sg-footer a { color: var(--sg-steel); text-transform:uppercase; font-family:var(--sg-font-display); font-size:.9rem; }
.sg-footer a:hover { color: var(--sg-ecto); }
.sg-footer__col { display:flex; flex-direction:column; gap:9px; }
.sg-footer__h {
  font-family:var(--sg-font-display); font-size:1.05rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--sg-ecto); margin-bottom:6px;
}
.sg-footer__legal { color: var(--sg-steel); font-size:.8rem; font-family:var(--sg-font-mono); }
/* mobile footer: logo row, the two link columns side by side, legal row last —
   applies site-wide (my-account included) since every page shares this footer */
@media (max-width: 700px) {
  .sg-footer__grid { display:grid; grid-template-columns:1fr 1fr; gap:30px 20px; }
  .sg-footer__grid .sg-brand, .sg-footer__legal { grid-column:1 / -1; }
}

/* ============================================================
   Responsive
   ============================================================ */
/* Tablet + mobile: collapse the nav into the hamburger dropdown. Kicks in at
   1024px (iPad landscape and down) so the 8-item bar never crowds on tablets.
   The always-laid-out dropdown is hidden via opacity/visibility/transform so it
   can animate IN and OUT; visibility is delayed on close so it stays visible
   during the fade. */
/* Mobile nav: narrow screens OR any portrait screen (vertical monitors get the
   hamburger too — the full link row doesn't fit a tall skinny viewport). */
@media (max-width: 1024px), (orientation: portrait) {
  /* the whole panel (nav links + auth links) becomes the burger dropdown */
  .sg-header__menu {
    display: block;
    position: absolute; top: 100%; left: 0; right: 0;
    background: var(--sg-black);
    border-top: 1px solid var(--sg-line); border-bottom: 1px solid var(--sg-line);
    padding: 8px 24px 16px;
    box-shadow: 0 20px 40px rgba(0,0,0,.5);
    opacity: 0; visibility: hidden; transform: translateY(-12px); pointer-events: none;
    transition: opacity .22s ease, transform .3s cubic-bezier(.16,1,.3,1), visibility 0s linear .3s;
  }
  .sg-nav { flex-direction: column; align-items: stretch; gap: 0; position: static; }
  .sg-nav li { width: 100%; }
  .sg-nav a { display: block; padding: 14px 0; font-size: 1.1rem; border-bottom: 1px solid var(--sg-line); }
  .sg-nav a::after { display: none; } /* no underline slide in the mobile list */

  /* auth links drop into the menu; Sign In reads as a menu row, Join the Vault
     is removed from the bar on mobile/tablet per design */
  .sg-header__menu .sg-header__cta { flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
  .sg-header__menu .sg-header__cta .sg-btn--ecto { display: none; }
  .sg-header__menu .sg-signin,
  .sg-header__menu .sg-nav-acct {
    display: block; padding: 14px 0; font-size: 1.1rem;
    border-bottom: 1px solid var(--sg-line);
  }
  .sg-header__menu .sg-header__cta .sg-btn--ghost { margin-top: 14px; align-self: flex-start; }
  .sg-burger { display:block; }
}

@media (max-width: 900px) {
  .sg-hero__grid { grid-template-columns: 1fr; }
  .sg-tiers, .sg-feats { grid-template-columns: 1fr; }
  .sg-hud { grid-template-columns: 1fr 1fr; }
  .sg-rank__row { grid-template-columns: 44px 1fr 70px 70px; }
  .sg-rank__row .hide-sm { display:none; }
}

/* ============================================================
   Custom logo
   ============================================================ */
.sg-brand__logo img { height: 40px; width: auto; display: block; }

/* ============================================================
   Interior page hero (slim banner)
   ============================================================ */
.sg-page-hero {
  padding: 64px 0 40px;
  border-bottom: 1px solid var(--sg-line);
  background:
    radial-gradient(700px 260px at 90% -30%, rgba(31,166,255,.10), transparent 60%),
    var(--sg-black);
}
.sg-page-hero h1 { font-size: clamp(2.4rem, 6vw, 4.2rem); margin:.1em 0 .2em; }
.sg-page-hero p { color: var(--sg-steel); max-width: 56ch; margin:0; font-size:1.1rem; }

/* ============================================================
   Home teaser cards (landing links out to the real pages)
   ============================================================ */
.sg-teasers { display:grid; grid-template-columns: repeat(3,1fr); gap:22px; }
.sg-teaser {
  position:relative; display:flex; flex-direction:column;
  border:1px solid var(--sg-line); border-radius:var(--sg-radius);
  background:var(--sg-surface); padding:30px 26px; min-height: 230px;
  transition: border-color .15s ease, transform .15s ease;
}
.sg-teaser:hover { border-color: var(--sg-ecto); transform: translateY(-3px); }
.sg-teaser__k { font-family:var(--sg-font-mono); font-size:.68rem; letter-spacing:.2em; color:var(--sg-steel); text-transform:uppercase; }
.sg-teaser h3 { font-size:1.8rem; margin:.3em 0; }
.sg-teaser p { color:var(--sg-steel); flex:1; margin:0 0 16px; }
.sg-teaser__go { font-family:var(--sg-font-display); text-transform:uppercase; letter-spacing:.05em; color:var(--sg-ecto); }
/* the Gulag teaser follows the same blue treatment as every other card */

/* ============================================================
   Auth page transition (login <-> signup): a quick, quiet crossfade.
   The pages opt in via @view-transition in their templates; the default
   view transition IS a crossfade — we just keep it snappy.
   ============================================================ */
::view-transition-old(root),
::view-transition-new(root) { animation-duration: .18s; }

@supports not (view-transition-name: none) {
  .sg-auth__card { animation: sgAuthIn .22s ease both; }
  @keyframes sgAuthIn { from { opacity: 0; } to { opacity: 1; } }
}
@media (prefers-reduced-motion: reduce) {
  .sg-auth__card { animation: none; }
}

/* ============================================================
   LIVE BRACKET
   ============================================================ */
.sg-bracket-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:26px; flex-wrap:wrap; }
.sg-bracket-head h2 { margin:0; font-size: clamp(1.8rem,4vw,2.6rem); }
/* the tree auto-scales to fit (see sg_render_bracket JS) — hidden overflow is
   just the no-JS safety net; there is never a scrollbar */
.sg-bracket-wrap { overflow:hidden; padding: 6px 2px 16px; }
.sg-bracket { display:flex; min-width: 840px; align-items:stretch; position:relative; }
/* connector wires: ONE measured SVG drawn from the cards' real positions —
   the technique bracket libraries use. No CSS line can misalign because
   there are no CSS lines. */
.sg-bracket__wires { position:absolute; inset:0; pointer-events:none; z-index:0; }
/* no crispEdges: pixel-snapping the wires while the cards snap independently
   is exactly what creates 1px misses — antialiased lines always meet. */
.sg-bracket__wires path { stroke: var(--sg-wire); stroke-width: 1.25; fill: none; }
.sg-round { position:relative; z-index:1; }
/* each round = label on top + a body that fills equal height; equal-height
   rounds + flex:1 match wrappers make round N center on round N-1's pairs. */
.sg-round { flex:1; min-width: 195px; display:flex; flex-direction:column; }
.sg-round__label {
  text-align:center; margin-bottom: 16px; height: 14px;
  font-family:var(--sg-font-mono); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--sg-steel);
}
.sg-round__body { flex:1; display:flex; flex-direction:column; }
/* vertical padding gives real spacing between games; it's symmetric so it never
   shifts the card centers, keeping the tree alignment intact. */
.sg-mw { flex:1; display:flex; align-items:center; position:relative; padding: 16px 22px; }
.sg-match { position:relative; width:100%; }
.sg-match__card { border:1px solid var(--sg-line); border-radius:var(--sg-radius); background:var(--sg-surface); overflow:hidden; }
.sg-slot { display:grid; grid-template-columns: 30px 1fr 48px 34px; align-items:center; gap:8px; padding:10px 12px; border-bottom:1px solid var(--sg-line); }
.sg-slot:last-child { border-bottom:0; }
.sg-slot__seed { font-family:var(--sg-font-mono); color:var(--sg-steel); font-size:.78rem; }
.sg-slot__name { font-family:var(--sg-font-display); text-transform:uppercase; letter-spacing:.02em; font-size:.92rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sg-slot__elo  { font-family:var(--sg-font-mono); color:var(--sg-steel); font-size:.72rem; text-align:right; }
.sg-slot__score{ font-family:var(--sg-font-mono); text-align:center; font-size:1.05rem; color:var(--sg-steel); }
.sg-slot--win { background: rgba(31,166,255,.08); }
.sg-slot--win .sg-slot__name { color: var(--sg-ghost); }
.sg-slot--win .sg-slot__score { color: var(--sg-ecto); }
.sg-slot--lose { opacity:.45; }
.sg-match--live .sg-match__card { border-color: var(--sg-ecto); box-shadow: 0 0 26px rgba(31,166,255,.18); }
.sg-match--live .sg-slot__score { color: var(--sg-ghost); }
.sg-match__tag { position:absolute; top:-11px; left:12px; z-index:2; background:var(--sg-black); padding:0 4px; }
/* (connector lines live in the .sg-bracket__wires SVG — see sg_render_bracket) */
/* champion column (single centered card via the flex body) */
.sg-champ { position:relative; text-align:center; border:1px solid var(--sg-gold); border-radius:var(--sg-radius);
  background: linear-gradient(180deg, rgba(231,184,75,.10), var(--sg-surface)); padding:26px 18px; }
.sg-champ__cup { font-size:34px; }
.sg-champ__lbl { font-family:var(--sg-font-mono); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--sg-gold); }
.sg-champ__name { font-family:var(--sg-font-display); text-transform:uppercase; font-size:1.25rem; margin-top:6px; }

/* MOBILE-FIRST bracket: below the breakpoint, stack the rounds vertically as
   sections instead of a horizontally-scrolling tree — no side-scroll on phones. */
@media (max-width: 900px) {
  .sg-bracket-wrap { overflow-x: visible; padding: 0; }
  .sg-bracket { flex-direction: column; min-width: 0; align-items: stretch; }
  .sg-round { min-width: 0; flex: none; }
  .sg-round__label {
    text-align: left; height: auto; margin: 22px 0 12px; padding-bottom: 8px;
    border-bottom: 1px solid var(--sg-line); color: var(--sg-ecto); font-size: .74rem;
  }
  .sg-round--champ .sg-round__label { color: var(--sg-gold); }
  .sg-round__body { display: block; }
  .sg-mw { display: block; flex: none; padding: 7px 0; }
  /* the horizontal-tree wires make no sense when stacked — hide the SVG */
  .sg-bracket__wires { display: none; }
  .sg-bracket-head h2 { font-size: 1.7rem; }
}

/* how-it-works steps */
.sg-steps { display:grid; grid-template-columns: repeat(4,1fr); gap:18px; }
.sg-step { border:1px solid var(--sg-line); border-radius:var(--sg-radius); background:var(--sg-surface); padding:22px; }
.sg-step__n { font-family:var(--sg-font-mono); font-size:1.6rem; color:var(--sg-ecto); }
.sg-step h4 { font-size:1.05rem; margin:.4em 0 .2em; }
.sg-step p { color:var(--sg-steel); margin:0; font-size:.9rem; }

@media (max-width: 900px) {
  .sg-teasers, .sg-steps { grid-template-columns: 1fr; }
}

/* ============================================================
   Mobile menu (hamburger opens a dropdown) — tablet + mobile
   ============================================================ */
@media (max-width: 1024px), (orientation: portrait) {
  .sg-header.sg-open .sg-header__menu {
    opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto;
    transition: opacity .22s ease, transform .3s cubic-bezier(.16,1,.3,1), visibility 0s;
  }
}

/* ============================================================
   E-BOOK reader (multi-page, offense/defense variants)
   ============================================================ */
.sg-ebook { --sg-accent: var(--sg-ecto); }
.sg-ebook--offense { --sg-accent: var(--sg-ecto); }
.sg-ebook--defense { --sg-accent: var(--sg-def); }

.sg-ebook__cover {
  padding: 72px 0 44px;
  border-bottom: 1px solid var(--sg-line);
  background:
    radial-gradient(760px 300px at 85% -20%, color-mix(in srgb, var(--sg-accent) 18%, transparent), transparent 60%),
    var(--sg-black);
}
.sg-ebook__side {
  display:inline-flex; align-items:center; gap:8px;
  font-family: var(--sg-font-mono); font-size:.72rem; letter-spacing:.25em; text-transform:uppercase;
  color: var(--sg-accent); border:1px solid var(--sg-accent); border-radius:2px; padding:5px 12px;
}
.sg-ebook__cover h1 { font-size: clamp(2.4rem, 6vw, 4.4rem); margin:.3em 0 .15em; }
.sg-ebook__cover .sub { color: var(--sg-steel); max-width: 60ch; font-size:1.1rem; margin:0 0 18px; }
.sg-ebook__by { font-family:var(--sg-font-mono); font-size:.8rem; color:var(--sg-steel); letter-spacing:.1em; text-transform:uppercase; }
.sg-ebook__by b { color: var(--sg-ghost); }

/* progress */
.sg-ebook__progressbar { height:3px; background: var(--sg-line); margin-top: 26px; border-radius:2px; overflow:hidden; }
.sg-ebook__progressbar span { display:block; height:100%; background: var(--sg-accent); }
.sg-ebook__chip { font-family:var(--sg-font-mono); font-size:.72rem; color:var(--sg-steel); letter-spacing:.15em; text-transform:uppercase; margin-top:10px; }

/* body prose */
.sg-ebook__body { padding: 48px 0 30px; }
.sg-ebook__body h2 { font-size: clamp(1.6rem, 3.4vw, 2.3rem); margin: 1.4em 0 .5em; color: var(--sg-ghost); }
.sg-ebook__body h2:first-child { margin-top:0; }
.sg-ebook__body h3 { font-size:1.25rem; color: var(--sg-accent); margin:1.4em 0 .4em; }
.sg-ebook__body p { color:#d7dee2; margin:0 0 1.2em; font-size:1.06rem; line-height:1.75; }
.sg-ebook__body ul, .sg-ebook__body ol { color:#d7dee2; margin:0 0 1.4em; padding-left: 1.2em; }
.sg-ebook__body li { margin:.4em 0; }
.sg-ebook__body ul li::marker { color: var(--sg-accent); }
.sg-ebook__body blockquote {
  margin: 1.6em 0; padding: 16px 22px; border-left: 3px solid var(--sg-accent);
  background: var(--sg-surface); color: var(--sg-ghost); font-family: var(--sg-font-display);
  text-transform: uppercase; letter-spacing:.02em; font-size:1.2rem;
}
.sg-ebook__body code {
  font-family: var(--sg-font-mono); background: var(--sg-surface-2); color: var(--sg-accent);
  padding: 2px 6px; border-radius: 3px; font-size:.92em;
}

/* chapter nav */
.sg-ebook__nav { display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding: 26px 0 70px; border-top:1px solid var(--sg-line); margin-top: 20px; flex-wrap:wrap; }
.sg-ebook__pages { display:flex; gap:8px; align-items:center; }
.sg-ebook__pages a, .sg-ebook__pages span {
  width:34px; height:34px; display:grid; place-items:center; border-radius:var(--sg-radius);
  border:1px solid var(--sg-line); font-family:var(--sg-font-mono); font-size:.85rem; color:var(--sg-steel);
}
.sg-ebook__pages a:hover { border-color: var(--sg-accent); color: var(--sg-ghost); }
.sg-ebook__pages span.current { background: var(--sg-accent); color:#04182b; border-color:var(--sg-accent); }
.sg-btn--accent { background: var(--sg-accent); color:#04182b; }
.sg-btn--accent:hover { color:#04182b; box-shadow: 0 8px 30px color-mix(in srgb, var(--sg-accent) 40%, transparent); }

/* ---- Play block: formation → play → setups (each with a video) ---- */
.sg-play {
  margin: 2em 0; border:1px solid var(--sg-line); border-radius: var(--sg-radius);
  background: var(--sg-surface); overflow:hidden;
}
.sg-play__head { display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:16px 18px; border-bottom:1px solid var(--sg-line); }
.sg-play__form { font-family:var(--sg-font-mono); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--sg-accent); }
.sg-play__name { margin:2px 0 0; font-size:1.35rem; color:var(--sg-ghost); }
.sg-play__count { font-family:var(--sg-font-mono); font-size:.72rem; color:var(--sg-steel); letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }
/* setup tabs */
.sg-play__tabs { display:flex; flex-wrap:wrap; gap:6px; padding:12px 12px 0; }
.sg-play__tab {
  font-family:var(--sg-font-display); text-transform:uppercase; letter-spacing:.03em; font-size:.85rem;
  color:var(--sg-steel); background:var(--sg-surface-2); border:1px solid var(--sg-line);
  border-radius:var(--sg-radius) var(--sg-radius) 0 0; padding:9px 14px; cursor:pointer;
  transition: color .18s ease, background .18s ease, border-color .18s ease;
}
.sg-play__tab:hover { color:var(--sg-ghost); }
.sg-play__tab.is-active { color:#04182b; background:var(--sg-accent); border-color:var(--sg-accent); }
/* per-setup adjustments dropdown */
.sg-adjust { margin-top:12px; border:1px solid var(--sg-line); border-radius:var(--sg-radius); background:var(--sg-black); overflow:hidden; }
.sg-adjust summary {
  cursor:pointer; padding:10px 14px; list-style:none; position:relative;
  font-family:var(--sg-font-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--sg-accent);
}
.sg-adjust summary::-webkit-details-marker { display:none; }
.sg-adjust summary::after { content:'+'; position:absolute; right:14px; font-size:.9rem; }
.sg-adjust[open] summary::after { content:'\2013'; }
.sg-adjust[open] summary { border-bottom:1px solid var(--sg-line); }
.sg-adjust__list { margin:0; padding:12px 16px 12px 34px; color:var(--sg-ghost); }
.sg-adjust__list li { margin:6px 0; }
/* panels */
.sg-play__panels { padding: 12px; }
.sg-play__panel { display:none; animation: sg-fade .25s ease; }
.sg-play__panel.is-active { display:block; }
.sg-play__video { position:relative; width:100%; aspect-ratio:16/9; background:#05070a; border:1px solid var(--sg-line); border-radius:var(--sg-radius); overflow:hidden; }
.sg-play__video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
/* Twitch Embed API mounts its iframe inside this slot */
.sg-watch__slot { position:absolute; inset:0; }
.sg-watch__slot iframe { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
.sg-play__video--empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.02) 0 10px, transparent 10px 20px),
    radial-gradient(400px 200px at 50% 40%, color-mix(in srgb, var(--sg-accent) 12%, transparent), transparent 70%),
    #05070a; }
.sg-play__play { width:56px; height:56px; display:grid; place-items:center; border-radius:50%;
  border:2px solid var(--sg-accent); color:var(--sg-accent); font-size:20px; padding-left:4px;
  transition: transform .2s ease, box-shadow .2s ease; }
.sg-play__video--empty:hover .sg-play__play { transform: scale(1.08); box-shadow: 0 0 24px color-mix(in srgb, var(--sg-accent) 40%, transparent); }
.sg-play__vlabel { font-family:var(--sg-font-mono); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--sg-steel); }
.sg-play__desc { margin-top:14px; }
.sg-play__desc p { color:#d7dee2; margin:0 0 .8em; font-size:1rem; line-height:1.7; }

@keyframes sg-fade { from { opacity:0; transform: translateY(4px); } to { opacity:1; transform: translateY(0); } }

/* ============================================================
   Auth (login / signup)
   ============================================================ */
.sg-auth { padding: 72px 0 96px; }
.sg-auth__wrap { display:flex; justify-content:center; }
.sg-auth__card {
  width:100%; max-width: 440px;
  border:1px solid var(--sg-line); border-radius: var(--sg-radius);
  background: linear-gradient(180deg, rgba(31,166,255,.05), var(--sg-surface));
  padding: 38px 34px;
}
.sg-auth__card--wide { max-width: 560px; }
.sg-auth__card h1 { font-size: clamp(2rem, 4vw, 2.6rem); margin:.25em 0 .2em; }
.sg-auth__sub { color: var(--sg-steel); margin:0 0 24px; }
.sg-auth__err {
  border:1px solid var(--sg-blood); background: rgba(255,59,71,.1); color: #ffd7da;
  padding: 11px 14px; border-radius: var(--sg-radius); margin-bottom: 20px;
  font-size:.92rem;
}
.sg-auth__alt { margin-top: 22px; color: var(--sg-steel); font-size:.95rem; }
.sg-auth__fine { color: var(--sg-steel); font-size:.78rem; line-height:1.5; margin: 14px 0 0; }

.sg-form { display:flex; flex-direction:column; gap:16px; }
.sg-field { display:flex; flex-direction:column; gap:7px; }
.sg-field > span { font-family:var(--sg-font-display); text-transform:uppercase; letter-spacing:.05em; font-size:.82rem; color:var(--sg-ghost); }
.sg-field > span em { color:var(--sg-steel); font-style:normal; text-transform:none; letter-spacing:0; font-family:var(--sg-font-body); font-size:.8rem; }
.sg-field input, .sg-field select {
  width:100%; background: var(--sg-black); color: var(--sg-ghost);
  border:1px solid var(--sg-line); border-radius: var(--sg-radius);
  padding: 12px 14px; font-family: var(--sg-font-body); font-size: 1rem;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.sg-field input:focus, .sg-field select:focus {
  outline:0; border-color: var(--sg-ecto); box-shadow: 0 0 0 3px rgba(31,166,255,.14);
}
.sg-form__grid { display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
.sg-form__row { display:flex; align-items:center; justify-content:space-between; font-size:.9rem; }
.sg-check { display:flex; align-items:center; gap:8px; color:var(--sg-steel); cursor:pointer; }
.sg-check input { accent-color: var(--sg-ecto); }
.sg-form .sg-btn { margin-top: 6px; }
@media (max-width: 600px) { .sg-form__grid { grid-template-columns: 1fr; } }

/* Gulag eligibility notice (missing gamertag / EA ID) */
.sg-gate-notice {
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  border:1px solid var(--sg-blood);
  background: rgba(255,59,71,.08); color: var(--sg-ghost);
  padding: 14px 18px; border-radius: var(--sg-radius); margin-bottom: 28px;
}
.sg-gate-notice__x { color: var(--sg-blood); font-weight:700; margin-right:4px; }

/* ============ Watch / Live streaming hub ============ */
.sg-watch__now {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  margin-top:12px; font-family:var(--sg-font-mono); font-size:.82rem; color:var(--sg-steel);
}
.sg-watch__now b { color:var(--sg-ghost); font-family:var(--sg-font-display); font-size:1rem; letter-spacing:.02em; text-transform:uppercase; }

/* Multi-view mosaic — seamless wall. 12-column base grid: JS gives each cell a
   span (12/cols), and the last row's cells widen to fill, so any count of
   streams (1, 2, 3, 4, 7…) tiles edge-to-edge with no holes. */
.sg-watch__grid { display:grid; grid-template-columns:repeat(12, 1fr); gap:0; background:#000; }
/* the wall is height-capped (≤100vh, set by JS): cells flex to fill their row,
   the video letterboxes inside — the whole grid always fits on screen */
.sg-watch__grid .sg-play__video { border:0; border-radius:0; aspect-ratio:auto; flex:1 1 auto; min-height:0; }
.sg-watch__grid:fullscreen { background:#000; }
.sg-watch__grid:-webkit-full-screen { background:#000; }
.sg-watch__cell { position:relative; user-select:none; display:flex; flex-direction:column; min-height:0; }
.sg-watch__cell .sg-watch__bar { flex:none; }
/* NOTHING overlaps the player (Twitch embed rule 1.3 — obscured embeds get
   features disabled). Controls live on a name bar BELOW each video. */
.sg-watch__bar {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:#05070a; border-top:1px solid #0d1117; padding:5px 10px; user-select:none;
}
.sg-watch__celllbl {
  font-family:var(--sg-font-mono); font-size:.68rem; letter-spacing:.03em; color:var(--sg-ecto);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.sg-watch__focus {
  flex:none; cursor:pointer; font-family:var(--sg-font-mono); font-size:.68rem;
  color:var(--sg-ghost); background:transparent; border:1px solid var(--sg-line);
  border-radius:5px; padding:4px 10px; transition:all .15s ease; white-space:nowrap;
}
.sg-watch__focus:hover { border-color:var(--sg-ecto); color:var(--sg-ecto); }
.sg-watch__now .sg-watch__focus { margin-left:auto; }
.sg-watch__cell.is-big { grid-column:1 / -1; }   /* no-Fullscreen-API fallback */
/* true fullscreen: fill the whole screen, drop the 16:9 box + chrome */
.sg-play__video:fullscreen { aspect-ratio:auto; width:100%; height:100%; border:0; border-radius:0; background:#000; }
.sg-play__video:-webkit-full-screen { aspect-ratio:auto; width:100%; height:100%; border:0; border-radius:0; background:#000; }

/* source rail */
.sg-watch__sources { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:22px; }
.sg-watch__src {
  cursor:pointer; font-family:var(--sg-font-mono); font-size:.74rem; letter-spacing:.02em;
  color:var(--sg-ghost); background:var(--sg-surface); border:1px solid var(--sg-line);
  padding:8px 13px; border-radius:var(--sg-radius); transition:all .16s ease; white-space:nowrap;
}
.sg-watch__src:hover { border-color:var(--sg-ecto); color:var(--sg-ecto); }
.sg-watch__src.is-active { background:var(--sg-ecto); border-color:var(--sg-ecto); color:#04182b; font-weight:700; }
.sg-watch__match {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  border:1px solid var(--sg-line); border-radius:var(--sg-radius); padding:7px 11px;
}
.sg-watch__matchttl { font-family:var(--sg-font-mono); font-size:.62rem; letter-spacing:.04em; text-transform:uppercase; color:var(--sg-steel); margin-right:2px; }
.sg-watch__vs { font-family:var(--sg-font-mono); font-size:.64rem; color:var(--sg-steel); }
/* the "+" pickers that stack a stream into the multi-view */
.sg-watch__addbtn {
  width:27px; height:27px; flex:none; cursor:pointer; border-radius:6px;
  border:1px solid var(--sg-line); background:transparent; color:var(--sg-steel);
  font-size:15px; line-height:1; transition:all .15s ease;
}
.sg-watch__addbtn:hover { border-color:var(--sg-ecto); color:var(--sg-ecto); }
.sg-watch__addbtn.is-on { background:var(--sg-ecto); border-color:var(--sg-ecto); color:#04182b; font-weight:700; }
.sg-watch__multibar { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }

@media (max-width:700px) {
  .sg-watch__grid .sg-watch__cell { grid-column:1 / -1 !important; } /* stack the wall */
  .sg-watch__match { width:100%; }
  .sg-watch__src { flex:1; text-align:center; }
}

/* ============ Blog posts (Gulag Highlights / Tips / MUT News) ============ */
.sg-label--blood { color: var(--sg-blood); }
.sg-label--gold  { color: var(--sg-gold); }
.sg-label--def   { color: var(--sg-def); }

.sg-post--ecto  { --sg-accent: var(--sg-ecto); }
.sg-post--blood { --sg-accent: var(--sg-blood); }
.sg-post--gold  { --sg-accent: var(--sg-gold); }
.sg-post--def   { --sg-accent: var(--sg-def); }

/* hero */
.sg-post-hero { padding: 66px 0 30px; border-bottom: 1px solid var(--sg-line); }
.sg-post-hero__title {
  font-family: var(--sg-font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(2rem, 5vw, 3.3rem); line-height: 1.03; letter-spacing: .01em;
  margin: 14px 0 0; max-width: 20ch; color: var(--sg-ghost);
}
.sg-post-meta { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-top: 18px;
  font-family: var(--sg-font-mono); font-size: .74rem; letter-spacing: .03em; color: var(--sg-steel); }
.sg-post-meta a { color: var(--sg-accent); }
.sg-post-meta__author { color: var(--sg-ghost); }

/* article body typography */
.sg-post__wrap { padding-top: 34px; padding-bottom: 40px; }
.sg-post__cover { margin: 0 0 30px; }
.sg-post__cover img { width: 100%; height: auto; border-radius: var(--sg-radius); border: 1px solid var(--sg-line); }
.sg-post__body { color: #C7CFD4; font-size: 1.06rem; line-height: 1.75; }
.sg-post__body > p { margin: 0 0 1.25em; }
.sg-post__body h2 { font-family: var(--sg-font-display); text-transform: uppercase; letter-spacing: .01em;
  font-size: 1.7rem; color: var(--sg-ghost); margin: 1.8em 0 .5em; }
.sg-post__body h3 { font-family: var(--sg-font-display); font-size: 1.28rem; color: var(--sg-ghost); margin: 1.5em 0 .4em; }
.sg-post__body a { color: var(--sg-accent); text-decoration: underline; text-underline-offset: 2px; }
.sg-post__body ul, .sg-post__body ol { margin: 0 0 1.25em; padding-left: 1.3em; }
.sg-post__body li { margin: .4em 0; }
.sg-post__body img { max-width: 100%; height: auto; border-radius: var(--sg-radius); border: 1px solid var(--sg-line); }
.sg-post__body blockquote {
  margin: 1.6em 0; padding: 6px 20px; border-left: 3px solid var(--sg-accent);
  color: var(--sg-ghost); font-style: italic;
}
.sg-post__body hr { border: 0; border-top: 1px solid var(--sg-line); margin: 2.2em 0; }

/* share + related */
.sg-post__foot { margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--sg-line); }
.sg-share { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sg-share__lbl { font-family: var(--sg-font-mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sg-steel); }
.sg-share__btn {
  font-family: var(--sg-font-mono); font-size: .74rem; cursor: pointer;
  color: var(--sg-ghost); background: var(--sg-surface); border: 1px solid var(--sg-line);
  padding: 7px 13px; border-radius: var(--sg-radius); text-decoration: none; transition: all .15s ease;
}
.sg-share__btn:hover { border-color: var(--sg-accent); color: var(--sg-accent); }
.sg-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.sg-related__card { display: block; padding: 18px 20px; border: 1px solid var(--sg-line);
  border-radius: var(--sg-radius); background: var(--sg-surface); transition: border-color .15s ease; text-decoration: none; }
.sg-related__card:hover { border-color: var(--sg-accent); }
.sg-related__meta { font-family: var(--sg-font-mono); font-size: .64rem; letter-spacing: .05em; text-transform: uppercase; color: var(--sg-steel); }
.sg-related__card h4 { font-family: var(--sg-font-display); font-size: 1.12rem; color: var(--sg-ghost); margin: 8px 0 0; line-height: 1.2; }

/* [sg_highlight] — one game recap block */
.sg-highlight {
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 22px; align-items: center;
  border: 1px solid var(--sg-accent);
  border-radius: var(--sg-radius); background: var(--sg-surface); padding: 18px; margin: 22px 0;
}
.sg-highlight__vid { margin: 0; }
.sg-highlight__round { font-family: var(--sg-font-mono); font-size: .64rem; letter-spacing: .06em; text-transform: uppercase; color: var(--sg-steel); }
.sg-highlight__match { font-family: var(--sg-font-display); text-transform: uppercase; font-size: 1.35rem; color: var(--sg-ghost); margin: 5px 0 0; line-height: 1.1; }
.sg-highlight__line { display: flex; align-items: baseline; gap: 14px; margin: 10px 0; }
.sg-highlight__score { font-family: var(--sg-font-mono); font-size: 1.5rem; font-weight: 700; color: var(--sg-ghost); }
.sg-highlight__win { font-family: var(--sg-font-mono); font-size: .74rem; color: var(--sg-accent); letter-spacing: .03em; }
.sg-highlight__note { color: var(--sg-steel); font-size: .95rem; }
.sg-highlight__note p { margin: 0; }

/* [sg_tip] — numbered step */
.sg-tip { display: flex; gap: 16px; align-items: flex-start; margin: 20px 0; }
.sg-tip__n {
  flex: none; width: 40px; height: 40px; display: grid; place-items: center;
  font-family: var(--sg-font-display); font-weight: 700; font-size: 1.2rem;
  color: var(--sg-black); background: var(--sg-accent); border-radius: 50%;
}
.sg-tip__body { flex: 1; }
.sg-tip__title { font-family: var(--sg-font-display); text-transform: uppercase; font-size: 1.2rem; color: var(--sg-ghost); margin: 6px 0 .3em; }
.sg-tip__body > *:last-child { margin-bottom: 0; }

/* [sg_callout] / [sg_tldr] / [sg_takeaway] */
.sg-callout { border: 1px solid var(--sg-steel);
  border-radius: var(--sg-radius); background: var(--sg-surface); padding: 16px 20px; margin: 24px 0; }
.sg-callout__label { display: block; font-family: var(--sg-font-mono); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 8px; color: var(--sg-steel); }
.sg-callout__body { color: #C7CFD4; }
.sg-callout__body > *:last-child { margin-bottom: 0; }
.sg-callout--tldr     { border-color: var(--sg-gold); }
.sg-callout--tldr .sg-callout__label { color: var(--sg-gold); }
.sg-callout--takeaway { border-color: var(--sg-ecto); }
.sg-callout--takeaway .sg-callout__label { color: var(--sg-ecto); }
.sg-callout--warning  { border-color: var(--sg-blood); }
.sg-callout--warning .sg-callout__label { color: var(--sg-blood); }

@media (max-width: 680px) {
  .sg-highlight { grid-template-columns: 1fr; }
  .sg-related__grid { grid-template-columns: 1fr; }
}

/* ============ WooCommerce dark skin (account / cart / checkout / shop) ============ */
.sg-page-content a { color: var(--sg-ecto); }
/* legal pages: last-updated line, key-points summary box, lawyer note, FAQ accordions */
.sg-legal-updated { font-family:var(--sg-font-mono); font-size:.78rem; color:var(--sg-steel); margin-bottom:22px; }
.sg-legal-key {
  border:1px solid var(--sg-ecto); border-radius:var(--sg-radius);
  background:rgba(31,166,255,.06); padding:18px 22px; margin:0 0 34px;
}
.sg-legal-key h3 { margin:0 0 10px; font-size:1.05rem; text-transform:uppercase; letter-spacing:.04em; }
.sg-legal-key ul { margin:0; padding-left:20px; }
.sg-legal-key li { margin:6px 0; color:var(--sg-ghost); }
.sg-page-content h2 { font-size:1.35rem; margin:38px 0 12px; }
.sg-page-content li { margin:7px 0; }
.sg-legal-note {
  margin-top:36px; padding:14px 18px; border:1px solid var(--sg-gold);
  border-radius:var(--sg-radius); background:rgba(231,184,75,.07); color:var(--sg-steel); font-size:.9rem;
}
.sg-faq {
  border:1px solid var(--sg-line); border-radius:var(--sg-radius); background:var(--sg-surface);
  margin:10px 0; overflow:hidden;
}
.sg-faq summary {
  cursor:pointer; padding:14px 18px; font-family:var(--sg-font-display); text-transform:uppercase;
  letter-spacing:.03em; font-size:.95rem; color:var(--sg-ghost); list-style:none; position:relative;
}
.sg-faq summary::-webkit-details-marker { display:none; }
.sg-faq summary::after { content:'+'; position:absolute; right:18px; color:var(--sg-ecto); font-family:var(--sg-font-mono); }
.sg-faq[open] summary::after { content:'–'; }
.sg-faq[open] summary { border-bottom:1px solid var(--sg-line); color:var(--sg-ecto); }
.sg-faq p { padding:14px 18px; margin:0; color:var(--sg-steel); }

/* form fields */
.woocommerce form .form-row label,
.woocommerce-account .woocommerce label,
.sg-page-content label { color: var(--sg-steel); font-family: var(--sg-font-mono); font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-account input.input-text,
.woocommerce .woocommerce-input-wrapper input,
.woocommerce select,
.sg-page-content input[type="text"],
.sg-page-content input[type="email"],
.sg-page-content input[type="password"],
.sg-page-content input[type="number"],
.sg-page-content input[type="tel"],
.sg-page-content textarea,
.sg-page-content select {
  background: var(--sg-black); border: 1px solid var(--sg-line); color: var(--sg-ghost);
  border-radius: 8px; padding: 11px 13px; font-family: var(--sg-font-body); font-size: .95rem;
}
.sg-page-content input:focus, .sg-page-content select:focus, .sg-page-content textarea:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { outline: none; border-color: var(--sg-ecto); }

/* buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce button.button.alt, .woocommerce a.button.alt {
  background: var(--sg-ecto); color: #04182b; border: 0; border-radius: var(--sg-radius);
  font-family: var(--sg-font-display); text-transform: uppercase; letter-spacing: .03em; font-weight: 700;
  padding: 12px 20px; transition: none;
  clip-path: polygon(0 0, 100% 0, 100% 72%, 94% 100%, 0 100%); /* same corner cut as .sg-btn */
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover, .woocommerce button.button.alt:hover {
  background: var(--sg-ecto); color: #04182b; filter: none; box-shadow: none; transform: none; /* no hover animation */
}

/* My Account layout: nav card + content side by side */
.woocommerce-account .woocommerce { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; }
.woocommerce-account .woocommerce-MyAccount-navigation {
  float: none; width: 240px; flex: none;
  border: 1px solid var(--sg-line); border-radius: var(--sg-radius); background: var(--sg-surface); padding: 8px;
}
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; flex: 1; min-width: 280px; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-MyAccount-navigation li a {
  display: block; padding: 11px 14px; border-radius: var(--sg-radius);
  color: var(--sg-ghost); font-family: var(--sg-font-mono); font-size: .82rem; text-decoration: none;
}
.woocommerce-MyAccount-navigation li a:hover { background: var(--sg-black); color: var(--sg-ecto); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--sg-ecto); color: #04182b; font-weight: 700; }

/* tables */
.woocommerce table.shop_table, .woocommerce table.shop_table td, .woocommerce table.shop_table th {
  border-color: var(--sg-line); color: var(--sg-ghost); background: transparent;
}
.woocommerce table.shop_table thead th { color: var(--sg-steel); }

/* notices — flat cards: uniform 1px border (no colored banner bars),
   icon sits in-flow and vertically centered with the sentence */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
  background: var(--sg-surface); border: 1px solid var(--sg-line); color: var(--sg-ghost);
  border-radius: var(--sg-radius); padding: 14px 16px;
  display: flex; align-items: center; flex-wrap: wrap; gap: 10px 12px;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before {
  position: static; top: auto; left: auto; margin: 0; line-height: 1;
}
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button {
  /* !important: woo's stylesheet loads after ours and re-floats/margins these */
  order: 2; float: none !important; margin: 0 !important; /* action flows left with the text */
}
.woocommerce-message::before, .woocommerce-error::before { color: var(--sg-ecto); }
.woocommerce-error::before { color: var(--sg-blood); }
/* the info glyph renders as a yellow tofu box — drop it entirely */
.woocommerce-info::before { content: none !important; }
/* address cards: "Add ..." link sits left with the text, not floated right
   (must out-rank woo's `.woocommerce-account .addresses .title .edit { float:right }`) */
.woocommerce-account .woocommerce .addresses .title .edit,
.woocommerce-account .woocommerce .woocommerce-Address-title .edit { float: none; display: inline-block; margin: 2px 0 6px; }
.woocommerce-account .woocommerce-MyAccount-content p,
.woocommerce-account .woocommerce-MyAccount-content { color: #C7CFD4; }
.woocommerce-account .woocommerce-MyAccount-content a { color: var(--sg-ecto); }
/* buttons inside account content: the link rule above would paint the label
   blue-on-blue — force navy like every other blue button on the site */
.woocommerce-account .woocommerce-MyAccount-content a.button,
.woocommerce-account .woocommerce-MyAccount-content a.button:hover,
.woocommerce-account .woocommerce a.button,
.woocommerce-account .woocommerce a.button:hover { color: #04182b; }

@media (max-width: 620px) {
  .woocommerce-account .woocommerce-MyAccount-navigation { width: 100%; }
}

/* ============ Tournaments (front-end [sg_tournaments]) ============ */
.sg-tourneys { display: flex; flex-direction: column; gap: 22px; }
.sg-tourney { border: 1px solid var(--sg-line); border-radius: var(--sg-radius); background: var(--sg-surface); padding: 22px 24px; }
.sg-tourney__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.sg-tourney__name { font-family: var(--sg-font-display); text-transform: uppercase; font-size: 1.6rem; color: var(--sg-ghost); margin: 6px 0 0; }
.sg-tourney .sg-hud { margin-bottom: 18px; }
.sg-tourney__prizes { width: 100%; border-collapse: collapse; }
.sg-tourney__prizes td { padding: 9px 12px; border-top: 1px solid var(--sg-line); font-family: var(--sg-font-mono); font-size: .88rem; color: var(--sg-steel); }
.sg-tourney__prizes td:first-child { color: var(--sg-ghost); text-transform: uppercase; letter-spacing: .03em; }
.sg-tourney__prizes td:last-child { text-align: right; color: var(--sg-gold); }
.sg-tourney__prizes tr:first-child td:last-child { color: var(--sg-ecto); }
.sg-tourney__sched { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:16px; font-family:var(--sg-font-mono); font-size:.76rem; color:var(--sg-steel); }
.sg-tourney__sched span { white-space:nowrap; }

/* ============ News / Blog hub ============ */
.sg-newsgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.sg-newscard {
  display: flex; flex-direction: column; gap: 10px; text-decoration: none;
  border: 1px solid var(--sg-line); border-top: 3px solid var(--sg-accent, var(--sg-ecto));
  border-radius: var(--sg-radius); background: var(--sg-surface); padding: 20px 22px; transition: border-color .15s ease, transform .1s ease;
}
.sg-newscard--ecto { --sg-accent: var(--sg-ecto); }
.sg-newscard--blood { --sg-accent: var(--sg-blood); }
.sg-newscard--gold { --sg-accent: var(--sg-gold); }
.sg-newscard:hover { transform: translateY(-2px); border-color: var(--sg-accent, var(--sg-ecto)); }
.sg-newscard__title { font-family: var(--sg-font-display); text-transform: uppercase; font-size: 1.25rem; line-height: 1.15; color: var(--sg-ghost); margin: 4px 0 0; }
.sg-newscard__ex { color: var(--sg-steel); font-size: .92rem; line-height: 1.5; margin: 0; flex: 1; }
.sg-newscard__meta { font-family: var(--sg-font-mono); font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; color: var(--sg-steel); }
@media (max-width: 900px) { .sg-newsgrid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .sg-newsgrid { grid-template-columns: 1fr; } }

/* ============ Mobile polish (site-wide safety net) ============ */
@media (max-width: 782px) {
  /* wide content never forces the page to scroll sideways */
  .sg-post__body table, .woocommerce table.shop_table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  img { max-width: 100%; height: auto; }
  /* comfortable tap targets */
  .sg-nav a, .sg-mobile-menu a, .sg-btn, .sg-watch__src, .sg-share__btn { min-height: 42px; display: inline-flex; align-items: center; }
  .sg-page-hero h1, .sg-post-hero__title { font-size: clamp(1.8rem, 8vw, 2.4rem); }
  /* stat strips already collapse; keep numbers from crowding */
  .sg-hud__num { font-size: 1.25rem; }
}
@media (max-width: 520px) {
  .sg-hud, .sg-hud--4 { grid-template-columns: 1fr 1fr !important; }
  .sg-section { padding: 56px 0; }
}

/* ============ Vault: paywall + locked library ============ */
.sg-paywall {
  max-width: 620px; margin: 40px auto; text-align: center;
  border: 1px solid var(--sg-line); border-top: 3px solid var(--sg-gold);
  border-radius: var(--sg-radius); background: var(--sg-surface); padding: 40px 30px;
}
.sg-paywall h2 { font-family: var(--sg-font-display); text-transform: uppercase; font-size: 1.8rem; color: var(--sg-ghost); margin: 12px 0 10px; }
.sg-paywall p { color: var(--sg-steel); max-width: 46ch; margin: 0 auto 22px; line-height: 1.6; }
.sg-paywall__cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.sg-feat--locked { opacity: .72; }
.sg-feat--locked .sg-feat__icon { filter: grayscale(1); }

/* ============ Homepage live board + latest ============ */
.sg-home2 { display: grid; grid-template-columns: 1.15fr 1fr; gap: 40px; align-items: start; }
.sg-home-post {
  display: flex; flex-direction: column; gap: 6px; text-decoration: none;
  padding: 15px 0; border-top: 1px solid var(--sg-line);
}
.sg-home-post:first-of-type { border-top: 0; }
.sg-home-post h4 { font-family: var(--sg-font-display); text-transform: uppercase; font-size: 1.15rem; color: var(--sg-ghost); margin: 2px 0 0; line-height: 1.15; transition: color .15s ease; }
.sg-home-post:hover h4 { color: var(--sg-ecto); }
.sg-home-post__date { font-family: var(--sg-font-mono); font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; color: var(--sg-steel); }
@media (max-width: 820px) { .sg-home2 { grid-template-columns: 1fr; gap: 44px; } }

