/* ============================================================
   KSI — Los KSI Gano · Sistema de diseño
   Paleta oficial del brandbook: navy/índigo + rojo-naranja + dorado
   Tipografías: Raleway (títulos, Extra Bold) · Inter (texto)
   ============================================================ */

:root {
  /* Base */
  --bg:        #0b0b1f;
  --bg-2:      #0f0f2b;
  --surface:   #16163a;
  --surface-2: #1c1c46;
  --border:    #2a2a5c;
  --border-soft:#22224e;

  /* Marca */
  --navy:   #23234e;
  --indigo: #3a3a86;
  --red:    #e8442a;   /* rojo-naranja del logo */
  --red-hi: #ff5a38;
  --gold:   #f2c21c;   /* amarillo/dorado del sombrero */
  --gold-hi:#ffd84a;

  /* Texto */
  --text:  #ececfb;
  --muted: #9a9ac4;
  --muted-2:#6f6f9e;

  --radius: 16px;
  --radius-sm: 11px;
  --shadow: 0 18px 50px rgba(0,0,0,.5);
  --maxw: 1120px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

* { margin:0; padding:0; box-sizing:border-box; }

html { scroll-behavior:smooth; }

body {
  background:
    radial-gradient(ellipse 90% 60% at 50% -10%, rgba(58,58,134,.35) 0%, transparent 60%),
    radial-gradient(ellipse 70% 50% at 100% 0%, rgba(232,68,42,.10) 0%, transparent 55%),
    var(--bg);
  color:var(--text);
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  line-height:1.6;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,.font-brand {
  font-family:'Raleway','Inter',sans-serif;
  font-weight:800;
  letter-spacing:-.01em;
  line-height:1.08;
}

a { color:inherit; text-decoration:none; }

img { max-width:100%; display:block; }

::selection { background:var(--red); color:#fff; }

:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:3px;
  border-radius:4px;
}

.wrap { max-width:var(--maxw); margin:0 auto; padding:0 24px; }

/* ---------- Navbar ---------- */
.nav {
  position:sticky; top:0; z-index:50;
  backdrop-filter:blur(14px);
  background:rgba(11,11,31,.72);
  border-bottom:1px solid var(--border-soft);
}
.nav__inner {
  max-width:var(--maxw); margin:0 auto; padding:12px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.nav__brand { display:flex; align-items:center; gap:11px; font-family:'Raleway',sans-serif; font-weight:800; font-size:17px; }
.nav__brand img { width:38px; height:38px; object-fit:contain; filter:drop-shadow(0 2px 6px rgba(0,0,0,.5)); }
.nav__brand b { color:var(--gold); }
.nav__links { display:flex; align-items:center; gap:6px; }
.nav__links a {
  font-size:13.5px; font-weight:600; color:var(--muted);
  padding:8px 14px; border-radius:20px; transition:color .18s, background .18s;
}
.nav__links a:hover { color:var(--text); background:rgba(255,255,255,.05); }
.nav__greet { font-size:13px; color:var(--muted); }
.nav__greet b { color:var(--gold); font-weight:700; }

/* ---------- Botones ---------- */
.btn {
  display:inline-flex; align-items:center; gap:9px;
  font-weight:700; font-size:14.5px; letter-spacing:.2px;
  padding:13px 24px; border-radius:30px; border:none; cursor:pointer;
  transition:transform .16s var(--ease), box-shadow .16s, filter .16s;
}
.btn--primary { background:linear-gradient(135deg,var(--red-hi),var(--red)); color:#fff; box-shadow:0 10px 26px rgba(232,68,42,.35); }
.btn--primary:hover { transform:translateY(-2px); box-shadow:0 14px 34px rgba(232,68,42,.5); }
.btn--gold { background:linear-gradient(135deg,var(--gold-hi),var(--gold)); color:#1a1204; box-shadow:0 10px 26px rgba(242,194,28,.3); }
.btn--gold:hover { transform:translateY(-2px); box-shadow:0 14px 34px rgba(242,194,28,.45); }
.btn--ghost { background:rgba(255,255,255,.04); color:var(--text); border:1px solid var(--border); }
.btn--ghost:hover { background:rgba(255,255,255,.08); transform:translateY(-2px); }

/* ---------- Hero ---------- */
.hero { position:relative; padding:76px 0 64px; overflow:hidden; }
.hero__bg {
  position:absolute; inset:0; z-index:0;
  background-image:linear-gradient(180deg, rgba(11,11,31,.72), rgba(11,11,31,.94)), var(--hero-photo,none);
  background-size:cover; background-position:center;
  opacity:.5; filter:saturate(.85);
}
.hero__inner { position:relative; z-index:1; display:grid; grid-template-columns:1.15fr .85fr; gap:44px; align-items:center; }
.hero__logo-wrap { position:relative; justify-self:center; display:grid; place-items:center; width:min(100%,400px); }
.hero__logo-wrap::before {
  content:''; position:absolute; z-index:0;
  width:76%; height:66%; border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(255,255,255,.30) 0%, rgba(255,255,255,.10) 52%, transparent 72%);
  filter:blur(26px);
}
.hero__logo { position:relative; z-index:1; width:100%; filter:drop-shadow(0 14px 30px rgba(0,0,0,.5)); animation:floaty 6s ease-in-out infinite; }
@keyframes floaty { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }

.badge {
  display:inline-flex; align-items:center; gap:9px;
  background:rgba(242,194,28,.1); border:1px solid rgba(242,194,28,.4);
  color:var(--gold); font-size:11.5px; font-weight:700; letter-spacing:2px; text-transform:uppercase;
  padding:6px 15px; border-radius:22px; margin-bottom:22px;
}
.badge .pip { width:8px; height:8px; border-radius:50%; background:var(--red); box-shadow:0 0 0 3px rgba(232,68,42,.25); }

.hero h1 { font-size:clamp(40px,6.4vw,78px); font-weight:900; color:#fff; margin-bottom:16px; }
.hero h1 span { color:var(--gold); }
.hero .lead { font-size:clamp(15px,1.6vw,18.5px); color:var(--muted); max-width:46ch; margin-bottom:30px; }
.hero .lead b { color:var(--text); }
.hero__cta { display:flex; flex-wrap:wrap; gap:13px; }

/* ---------- Secciones ---------- */
.section { padding:64px 0; position:relative; overflow:hidden; }
.section--alt { background:linear-gradient(180deg, transparent, rgba(28,28,70,.35), transparent); }
/* Foto del team de fondo, sutil */
.section__bg {
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background-size:cover; background-position:center;
  opacity:.09; filter:grayscale(.4) contrast(1.05);
}
.section__bg::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,var(--bg) 0%, transparent 22%, transparent 78%, var(--bg) 100%);
}
.section > .wrap { position:relative; z-index:1; }
.sec-head { text-align:center; max-width:640px; margin:0 auto 44px; }
.sec-kicker {
  display:inline-block; font-size:12px; font-weight:700; letter-spacing:3px; text-transform:uppercase;
  color:var(--red-hi); margin-bottom:12px;
}
.sec-head h2 { font-size:clamp(27px,3.6vw,42px); color:#fff; margin-bottom:12px; }
.sec-head p { color:var(--muted); font-size:16px; }

/* ---------- Misión / Visión ---------- */
.mv-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.mv-card {
  position:relative; background:linear-gradient(160deg,var(--surface),var(--bg-2));
  border:1px solid var(--border); border-radius:var(--radius); padding:34px 32px; overflow:hidden;
}
.mv-card::before { content:''; position:absolute; top:0; left:0; width:100%; height:4px; background:var(--bar,var(--red)); }
.mv-card--vis { --bar:var(--gold); }
.mv-card__ico { font-size:26px; margin-bottom:14px; }
.mv-card h3 { font-size:22px; color:#fff; margin-bottom:12px; }
.mv-card h3 em { font-style:normal; color:var(--bar,var(--red)); }
.mv-card p { color:var(--muted); font-size:15.5px; }
.mv-card p b { color:var(--text); }

/* ---------- Valores ---------- */
.val-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:18px; }
.val {
  background:var(--surface); border:1px solid var(--border-soft); border-radius:var(--radius-sm);
  padding:24px 22px; transition:transform .18s var(--ease), border-color .18s, background .18s;
}
.val:hover { transform:translateY(-4px); border-color:var(--accent,var(--red)); background:var(--surface-2); }
.val__top { display:flex; align-items:center; gap:13px; margin-bottom:10px; }
.val__ico {
  width:44px; height:44px; flex-shrink:0; border-radius:12px; display:grid; place-items:center; font-size:21px;
  background:color-mix(in srgb, var(--accent,var(--red)) 16%, transparent);
  border:1px solid color-mix(in srgb, var(--accent,var(--red)) 40%, transparent);
}
.val h4 { font-family:'Raleway',sans-serif; font-size:16.5px; font-weight:800; color:#fff; }
.val p { font-size:14px; color:var(--muted); }
.val--a{--accent:var(--red)} .val--b{--accent:var(--gold)} .val--c{--accent:var(--indigo)}
.val--d{--accent:var(--red-hi)} .val--e{--accent:var(--gold-hi)} .val--f{--accent:#8b8bff}

/* ---------- Guías (cards) ---------- */
.guias-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; }
.gcard {
  position:relative; display:flex; flex-direction:column; gap:12px; min-height:236px;
  border:1px solid var(--border); border-radius:var(--radius);
  padding:24px; overflow:hidden; isolation:isolate;
  transition:transform .24s var(--ease), border-color .24s, box-shadow .24s;
}
/* Arte de la carta de fondo */
.gcard__art {
  position:absolute; inset:0; z-index:-2; background-size:cover; background-position:center top;
  opacity:.36; transition:opacity .35s var(--ease), transform .6s var(--ease); transform:scale(1.02);
}
.gcard::after {
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(175deg, rgba(11,11,31,.66) 0%, rgba(11,11,31,.9) 62%, var(--bg) 100%);
}
.gcard:hover {
  transform:translateY(-6px); border-color:var(--accent,var(--red));
  box-shadow:0 24px 54px rgba(0,0,0,.5), 0 0 0 1px color-mix(in srgb, var(--accent,var(--red)) 45%, transparent);
}
.gcard:hover .gcard__art { opacity:.58; transform:scale(1.08); }
.gcard__head { display:flex; align-items:center; gap:15px; position:relative; }
/* Carta de líder como ícono */
.gcard__card {
  height:88px; width:auto; border-radius:8px; flex-shrink:0;
  box-shadow:0 8px 22px rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.14);
  transform:rotate(-4deg); transition:transform .28s var(--ease), box-shadow .28s;
}
.gcard:hover .gcard__card { transform:rotate(0) scale(1.07); box-shadow:0 12px 30px rgba(0,0,0,.6); }
.gcard__ico { width:48px; height:48px; flex-shrink:0; border-radius:12px; display:grid; place-items:center; font-size:23px;
  background:color-mix(in srgb, var(--accent,var(--red)) 15%, transparent);
  border:1px solid color-mix(in srgb, var(--accent,var(--red)) 38%, transparent); }
.gcard__title { font-family:'Raleway',sans-serif; font-size:19px; font-weight:800; color:#fff; }
.gcard__sub { font-size:12.5px; color:var(--muted-2); margin-top:2px; }
.gcard__desc { font-size:14px; color:var(--muted); position:relative; }
.gcard__foot { margin-top:auto; display:flex; align-items:center; justify-content:space-between; position:relative; }
.gcard__cta { font-size:12.5px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; color:var(--accent,var(--red)); display:inline-flex; align-items:center; gap:5px; transition:gap .2s; }
.gcard:hover .gcard__cta { gap:9px; }
.gcard.is-soon { opacity:.82; }
.gcard.is-soon:hover { transform:none; }
.gc-luffy{--accent:#e23744} .gc-mihawk{--accent:#3fbf72} .gc-ace{--accent:#f2a01c}

.chip {
  font-size:11px; font-weight:700; letter-spacing:.4px; padding:4px 11px; border-radius:20px;
  border:1px solid var(--border); color:var(--muted);
}
.chip--on { border-color:rgba(46,196,120,.4); color:#39d98a; background:rgba(46,196,120,.08); }
.chip--soon { border-color:rgba(242,194,28,.4); color:var(--gold); background:rgba(242,194,28,.08); }

/* ---------- Franja team ---------- */
.strip { position:relative; padding:0; height:480px; overflow:hidden; border-top:1px solid var(--border-soft); border-bottom:1px solid var(--border-soft); }
.strip__bg { position:absolute; inset:0; background-size:cover; background-position:center 40%; opacity:.68; }
@media (max-width:640px){ .strip { height:320px; } }
.strip__ov { position:absolute; inset:0; background:linear-gradient(90deg, var(--bg) 0%, rgba(11,11,31,.28) 48%, var(--bg) 100%); display:grid; place-items:center; text-align:center; padding:0 24px; }
.strip__ov p { font-family:'Raleway',sans-serif; font-weight:800; font-size:clamp(18px,3vw,30px); color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.6); }
.strip__ov p span { color:var(--gold); }

/* ---------- Footer ---------- */
.foot { border-top:1px solid var(--border-soft); padding:44px 0 40px; margin-top:20px; }
.foot__inner { display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:space-between; }
.foot__brand { display:flex; align-items:center; gap:13px; }
.foot__brand img { width:52px; height:52px; object-fit:contain; }
.foot__brand b { font-family:'Raleway',sans-serif; font-weight:800; color:#fff; font-size:16px; display:block; }
.foot__brand span { font-size:13px; color:var(--muted-2); }
.foot__note { font-size:12.5px; color:var(--muted-2); max-width:44ch; text-align:right; }

/* ============================================================
   GUÍAS
   ============================================================ */
.guide-hero { position:relative; padding:60px 0 40px; overflow:hidden; border-bottom:1px solid var(--border-soft); }
.guide-hero__bg { position:absolute; inset:0; background-size:cover; background-position:center; opacity:.32; }
.guide-hero__bg::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(11,11,31,.5), rgba(11,11,31,.82) 70%, var(--bg) 96%); }
.guide-hero .wrap { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:36px; align-items:center; }
.guide-hero__text { min-width:0; }
.guide-hero__card {
  width:min(210px, 30vw); border-radius:13px; align-self:center;
  box-shadow:0 24px 54px rgba(0,0,0,.62); border:1px solid rgba(255,255,255,.18);
  transform:rotate(3deg); transition:transform .35s var(--ease), box-shadow .35s;
  animation:cardIn .6s var(--ease) both;
}
.guide-hero__card:hover { transform:rotate(0) scale(1.04); box-shadow:0 30px 66px rgba(0,0,0,.7); }
@keyframes cardIn { from{ opacity:0; transform:rotate(3deg) translateY(18px) scale(.96); } to{ opacity:1; } }
@media (max-width:760px){
  .guide-hero .wrap { grid-template-columns:1fr; gap:22px; }
  .guide-hero__card { width:150px; justify-self:center; order:-1; margin-bottom:4px; }
}
.back-link { display:inline-flex; align-items:center; gap:7px; color:var(--muted); font-size:13px; font-weight:600; margin-bottom:16px; }
.back-link:hover { color:var(--gold); }
.guide-hero h1 { font-size:clamp(34px,5.2vw,58px); color:#fff; }
.guide-hero h1 span { color:var(--accent,var(--gold)); }
.guide-hero .gsub { color:var(--muted); font-size:16px; margin:8px 0 18px; max-width:60ch; }
.meta-row { display:flex; flex-wrap:wrap; gap:9px; }
.mtag { display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:600; padding:6px 13px; border-radius:20px; background:var(--surface); border:1px solid var(--border); color:var(--text); }
.mtag b { color:var(--muted); font-weight:600; }
.mtag--1st { border-color:rgba(46,196,120,.4); color:#39d98a; }
.mtag--2nd { border-color:rgba(169,194,255,.4); color:#a9c2ff; }
.d-easy { border-color:rgba(46,196,120,.4); color:#39d98a; background:rgba(46,196,120,.08); }
.d-mid  { border-color:rgba(242,194,28,.4); color:var(--gold); background:rgba(242,194,28,.08); }
.d-hard { border-color:rgba(232,68,42,.45); color:var(--red-hi); background:rgba(232,68,42,.08); }
.credit { font-size:12.5px; color:var(--muted-2); margin-top:16px; }
.credit b { color:var(--muted); }

/* Submenú de sección (TOC pegajoso, bajo la navbar) */
.toc { --toc-bg:#0a0a1c; position:sticky; top:61px; z-index:35; background:rgba(10,10,28,.96); backdrop-filter:blur(14px); border-top:1px solid var(--border-soft); border-bottom:1px solid var(--border-soft); }
.toc__wrap { position:relative; max-width:var(--maxw); margin:0 auto; }
.toc__inner { display:flex; align-items:center; gap:5px; overflow-x:auto; padding:10px 22px; scroll-behavior:smooth;
  scrollbar-width:none; -ms-overflow-style:none; scroll-snap-type:x proximity; }
.toc__inner::-webkit-scrollbar { display:none; }
.toc__label { font-size:10.5px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted-2); margin:0 4px; white-space:nowrap; flex-shrink:0; }
.toc__sep { width:1px; height:18px; background:var(--border); margin:0 8px; flex-shrink:0; }
.toc a { white-space:nowrap; font-size:13px; font-weight:600; color:var(--muted); padding:8px 14px; border-radius:20px; transition:color .16s, background .16s, box-shadow .16s; flex-shrink:0; scroll-snap-align:center; border:1px solid transparent; }
.toc a:hover { color:#fff; background:rgba(255,255,255,.07); border-color:var(--border); }
.toc a.active { color:#0b0b1f; background:var(--accent,var(--gold)); border-color:transparent; box-shadow:0 4px 16px color-mix(in srgb, var(--accent,var(--gold)) 45%, transparent); }
/* Fades laterales (indican que hay más) */
.toc__fade { position:absolute; top:0; bottom:0; width:64px; pointer-events:none; z-index:2; opacity:0; transition:opacity .22s; }
.toc__fade--l { left:0; background:linear-gradient(90deg, var(--toc-bg) 12%, transparent); }
.toc__fade--r { right:0; background:linear-gradient(270deg, var(--toc-bg) 12%, transparent); }
.toc.can-left .toc__fade--l { opacity:1; }
.toc.can-right .toc__fade--r { opacity:1; }
/* Botones flecha */
.toc__nav { position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:34px; height:34px; border-radius:50%;
  display:grid; place-items:center; cursor:pointer; border:1px solid var(--border); background:var(--surface-2);
  color:var(--text); font-size:17px; line-height:1; opacity:0; pointer-events:none;
  transition:opacity .2s, background .2s, color .2s, transform .15s; box-shadow:0 4px 14px rgba(0,0,0,.4); }
.toc__nav:hover { background:var(--accent,var(--gold)); color:#0b0b1f; border-color:transparent; }
.toc__nav:active { transform:translateY(-50%) scale(.9); }
.toc__nav--l { left:8px; } .toc__nav--r { right:8px; }
.toc.can-left .toc__nav--l { opacity:1; pointer-events:auto; }
.toc.can-right .toc__nav--r { opacity:1; pointer-events:auto; }
/* que el ancla no quede tapada por navbar + submenú */
.gsec { scroll-margin-top:116px; }

/* ---------- Reveal on scroll (animaciones) ---------- */
.reveal { opacity:0; transform:translateY(26px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.in { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal { opacity:1 !important; transform:none !important; } }

/* Secciones de guía */
.gsec { position:relative; padding:50px 0; overflow:hidden; border-bottom:1px solid var(--border-soft); }
.gsec__bg { position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; opacity:.07; filter:grayscale(.4); }
.gsec__bg::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,var(--bg),transparent 25%,transparent 75%,var(--bg)); }
.gsec > .wrap { position:relative; z-index:1; max-width:900px; }
.gsec__kicker { display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--accent,var(--red-hi)); margin-bottom:9px; }
.gsec h2 { font-size:clamp(23px,3.3vw,33px); color:#fff; margin-bottom:4px; }
.gsec__lead { color:var(--muted); font-size:15px; margin-top:6px; }

/* Resumen */
.resumen { background:linear-gradient(160deg,var(--surface),var(--bg-2)); border:1px solid var(--border); border-left:4px solid var(--accent,var(--red)); border-radius:14px; padding:20px 24px; margin-top:18px; }
.resumen__h { display:flex; align-items:center; gap:9px; font-family:'Raleway',sans-serif; font-weight:800; font-size:14px; letter-spacing:.5px; text-transform:uppercase; color:var(--accent,var(--red)); margin-bottom:12px; }
.resumen ul { list-style:none; display:flex; flex-direction:column; gap:9px; }
.resumen li { position:relative; padding-left:22px; font-size:15px; color:var(--text); }
.resumen li::before { content:'▸'; position:absolute; left:0; color:var(--accent,var(--red)); font-size:14px; }
.resumen li b { color:#fff; }

/* Puntos clave */
.keys { margin-top:14px; background:rgba(242,194,28,.05); border:1px solid rgba(242,194,28,.25); border-radius:12px; padding:16px 20px; }
.keys__h { font-weight:700; font-size:13.5px; color:var(--gold); margin-bottom:8px; }
.keys ul { list-style:none; display:flex; flex-direction:column; gap:6px; }
.keys li { position:relative; padding-left:20px; font-size:14px; color:var(--muted); }
.keys li::before { content:'🔑'; position:absolute; left:0; font-size:11px; top:2px; }

/* Curvas */
.curvas { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:16px; }
.curva { background:var(--surface); border:1px solid var(--border-soft); border-radius:12px; padding:16px 18px; }
.curva__h { font-weight:700; font-size:13px; color:#fff; margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.curva__h .pin { font-size:11px; font-weight:700; padding:2px 9px; border-radius:12px; }
.curva table { width:100%; border-collapse:collapse; font-size:13px; }
.curva td { padding:4px 0; vertical-align:top; color:var(--muted); }
.curva td.don { color:var(--gold); font-weight:700; white-space:nowrap; padding-right:10px; width:66px; }

/* Extendida (details) */
.extend { margin-top:16px; border:1px solid var(--border-soft); border-radius:12px; background:var(--surface); overflow:hidden; }
.extend > summary { cursor:pointer; list-style:none; padding:14px 20px; font-weight:700; font-size:13.5px; color:var(--gold);
  display:flex; align-items:center; gap:11px; transition:background .15s; user-select:none; }
.extend > summary::-webkit-details-marker { display:none; }
.extend > summary::before { content:'+'; display:grid; place-items:center; width:22px; height:22px; border-radius:7px;
  background:rgba(242,194,28,.14); border:1px solid rgba(242,194,28,.35); color:var(--gold); font-size:16px; flex-shrink:0; }
.extend[open] > summary::before { content:'\2212'; }
.extend > summary:hover { background:rgba(255,255,255,.03); }
.extend__body { padding:6px 22px 22px; color:var(--muted); font-size:14.5px; line-height:1.68; border-top:1px solid var(--border-soft); }
.extend__body p { margin:12px 0; }
.extend__body h5 { color:#fff; font-family:'Raleway',sans-serif; font-size:15px; margin:16px 0 4px; }
.extend__body ul { margin:8px 0 8px 4px; padding-left:18px; display:flex; flex-direction:column; gap:5px; }
.extend__body li { color:var(--muted); }
.extend__body b { color:var(--text); }

/* Imagen de decklist */
.decklist-img { margin-top:18px; border:1px solid var(--border); border-radius:14px; overflow:hidden; background:#0c1a12; }
.decklist-img img { width:100%; display:block; }
.decklist-cap { font-size:12.5px; color:var(--muted-2); text-align:center; padding:10px; }

@media (max-width:640px){
  .curvas { grid-template-columns:1fr; }
  .gsec { padding:40px 0; }
}

/* ============================================================
   MIEMBROS · GALERÍA · COMUNIDAD · LIGHTBOX · BACK-TO-TOP
   ============================================================ */
.section { scroll-margin-top:74px; }

/* Miembros */
.members-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; }
.member {
  position:relative; display:flex; align-items:center; gap:11px; padding:11px 13px;
  background:var(--surface); border:1px solid var(--border-soft); border-radius:12px;
  transition:transform .18s var(--ease), border-color .18s, background .18s;
}
.member:hover { transform:translateY(-3px); border-color:var(--accent,var(--red)); background:var(--surface-2); }
.member__av {
  width:38px; height:38px; flex-shrink:0; border-radius:50%; display:grid; place-items:center;
  font-family:'Raleway',sans-serif; font-weight:800; font-size:15px; color:#0b0b1f;
  background:linear-gradient(135deg, var(--av1,#ff6b4a), var(--av2,#e8442a));
}
.member__name { font-weight:600; font-size:14.5px; color:var(--text); line-height:1.15; }
.member__role { font-size:11px; color:var(--gold); font-weight:700; letter-spacing:.3px; }
.member--cap { border-color:rgba(242,194,28,.45); background:linear-gradient(160deg, rgba(242,194,28,.09), var(--surface)); }
.member--cap .member__av { background:linear-gradient(135deg, var(--gold-hi), var(--gold)); box-shadow:0 0 0 3px rgba(242,194,28,.18); }
.member:nth-child(6n+2) .member__av { background:linear-gradient(135deg,#4fd1a0,#2fae7a); }
.member:nth-child(6n+3) .member__av { background:linear-gradient(135deg,#7c8bff,#4954e6); }
.member:nth-child(6n+4) .member__av { background:linear-gradient(135deg,#ffd24a,#f2a01c); }
.member:nth-child(6n+5) .member__av { background:linear-gradient(135deg,#ff8ac2,#e8449a); }
.member:nth-child(6n+0) .member__av { background:linear-gradient(135deg,#6fd0ff,#2b9fd6); }
.member--cap .member__av { background:linear-gradient(135deg, var(--gold-hi), var(--gold)) !important; }

.foot__right { display:flex; flex-direction:column; gap:13px; align-items:flex-end; }

/* Destacado Finals 2026 */
.finals { position:relative; border:1px solid rgba(242,194,28,.35); border-radius:var(--radius); overflow:hidden;
  background:linear-gradient(150deg, rgba(242,194,28,.07), var(--surface)); padding:26px; margin-bottom:38px; }
.finals::before { content:'🏆'; position:absolute; top:-14px; right:-6px; font-size:120px; opacity:.06; transform:rotate(-12deg); }
.finals__head { display:flex; align-items:center; gap:13px; margin-bottom:18px; flex-wrap:wrap; position:relative; }
.finals__badge { font-family:'Raleway',sans-serif; font-weight:900; font-size:12.5px; letter-spacing:1px; color:#0b0b1f;
  background:linear-gradient(135deg,var(--gold-hi),var(--gold)); padding:6px 14px; border-radius:20px; box-shadow:0 6px 18px rgba(242,194,28,.3); }
.finals__title { font-family:'Raleway',sans-serif; font-weight:800; font-size:clamp(20px,3vw,28px); color:#fff; }
.finals__title span { color:var(--gold); }
.finals__sub { width:100%; color:var(--muted); font-size:14px; margin-top:-6px; }
.finals__grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; position:relative; }
.finals__ph { position:relative; border-radius:12px; overflow:hidden; aspect-ratio:16/11; cursor:pointer; border:1px solid rgba(242,194,28,.22); }
.finals__ph img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); display:block; }
.finals__ph::after { content:'🔍'; position:absolute; inset:0; display:grid; place-items:center; font-size:22px;
  background:linear-gradient(180deg, transparent 45%, rgba(11,11,31,.5)); opacity:0; transition:opacity .25s; }
.finals__ph:hover img { transform:scale(1.06); }
.finals__ph:hover::after { opacity:1; }
@media (max-width:640px){ .finals__grid { grid-template-columns:1fr; } }

/* Galería (carrusel con flechas) */
.gallery-wrap { position:relative; }
.gallery { display:flex; gap:12px; overflow-x:auto; padding:4px 2px; scroll-behavior:smooth; scroll-snap-type:x proximity;
  scrollbar-width:none; -ms-overflow-style:none; }
.gallery::-webkit-scrollbar { display:none; }
.gal-item {
  position:relative; flex:0 0 auto; width:clamp(230px,42vw,300px); aspect-ratio:4/3;
  border-radius:13px; overflow:hidden; cursor:pointer; border:1px solid var(--border-soft); background:var(--surface); scroll-snap-align:start;
}
.gal-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease), filter .3s; display:block; }
.gal-item::after { content:'🔍'; position:absolute; inset:0; display:grid; place-items:center; font-size:22px;
  background:linear-gradient(180deg, transparent 40%, rgba(11,11,31,.55)); opacity:0; transition:opacity .25s; }
.gal-item:hover img { transform:scale(1.08); filter:brightness(1.05); }
.gal-item:hover::after { opacity:1; }
/* fades + flechas del carrusel */
.gal-fade { position:absolute; top:0; bottom:0; width:72px; pointer-events:none; z-index:2; opacity:0; transition:opacity .22s; }
.gal-fade--l { left:0; background:linear-gradient(90deg, var(--bg) 8%, transparent); }
.gal-fade--r { right:0; background:linear-gradient(270deg, var(--bg) 8%, transparent); }
.gallery-wrap.can-left .gal-fade--l, .gallery-wrap.can-right .gal-fade--r { opacity:1; }
.gal-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:46px; height:46px; border-radius:50%;
  border:1px solid var(--border); background:var(--surface-2); color:#fff; font-size:24px; line-height:1; cursor:pointer;
  display:grid; place-items:center; opacity:0; pointer-events:none; transition:opacity .2s, background .2s; box-shadow:0 6px 20px rgba(0,0,0,.5); }
.gal-arrow--l { left:-4px; } .gal-arrow--r { right:-4px; }
.gallery-wrap.can-left .gal-arrow--l, .gallery-wrap.can-right .gal-arrow--r { opacity:1; pointer-events:auto; }
.gal-arrow:hover { background:var(--red); border-color:transparent; }
.gal-arrow:active { transform:translateY(-50%) scale(.9); }

/* Footer — tripulación (sutil) */
.foot__crew { border-top:1px solid var(--border-soft); margin-top:26px; padding-top:20px; }
.foot__crew-h { font-size:10.5px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--muted-2); margin-bottom:9px; }
.foot__crew-list { font-size:13px; color:var(--muted-2); line-height:1.9; }
.foot__crew-list b { color:var(--gold); }

/* Comunidad / social */
.social-cta { position:relative; text-align:center; padding:46px 30px; border-radius:var(--radius); overflow:hidden;
  background:linear-gradient(150deg, var(--surface), var(--bg-2)); border:1px solid var(--border); }
.social-cta::before { content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse at 20% 0%, rgba(88,101,242,.16), transparent 55%), radial-gradient(ellipse at 85% 100%, rgba(225,48,108,.14), transparent 55%); }
.social-cta > * { position:relative; }
.social-cta h3 { font-family:'Raleway',sans-serif; font-size:clamp(22px,3vw,30px); color:#fff; margin-bottom:8px; }
.social-cta p { color:var(--muted); font-size:15px; max-width:52ch; margin:0 auto 22px; }
.social-btns { display:flex; flex-wrap:wrap; gap:13px; justify-content:center; }
.btn--discord { background:linear-gradient(135deg,#5b6eff,#4954e6); color:#fff; box-shadow:0 10px 26px rgba(88,101,242,.35); }
.btn--discord:hover { transform:translateY(-2px); box-shadow:0 14px 34px rgba(88,101,242,.5); }
.btn--ig { background:linear-gradient(135deg,#f9ce34,#ee2a7b 45%,#6228d7); color:#fff; box-shadow:0 10px 26px rgba(225,48,108,.32); }
.btn--ig:hover { transform:translateY(-2px); box-shadow:0 14px 34px rgba(225,48,108,.48); }
.btn__ico { width:19px; height:19px; fill:currentColor; }

/* Footer social */
.foot__social { display:flex; gap:10px; }
.foot__social a { width:40px; height:40px; border-radius:11px; display:grid; place-items:center;
  background:var(--surface); border:1px solid var(--border); color:var(--muted); transition:.18s; }
.foot__social a:hover { color:#fff; border-color:var(--accent,var(--red)); transform:translateY(-2px); background:var(--surface-2); }
.foot__social svg { width:19px; height:19px; fill:currentColor; }

/* Lightbox */
.lb { position:fixed; inset:0; z-index:3000; display:none; align-items:center; justify-content:center; padding:24px;
  background:rgba(6,6,16,.9); backdrop-filter:blur(8px); }
.lb.on { display:flex; animation:lbIn .25s ease; }
@keyframes lbIn { from{opacity:0} to{opacity:1} }
.lb img { max-width:min(94vw,1100px); max-height:88vh; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.7); border:1px solid rgba(255,255,255,.14); }
.lb__x { position:absolute; top:18px; right:22px; width:44px; height:44px; border-radius:50%; border:1px solid var(--border);
  background:var(--surface); color:#fff; font-size:22px; cursor:pointer; display:grid; place-items:center; }
.lb__x:hover { background:var(--red); border-color:transparent; }
.lb__nav { position:absolute; top:50%; transform:translateY(-50%); width:50px; height:50px; border-radius:50%;
  border:1px solid var(--border); background:var(--surface); color:#fff; font-size:24px; cursor:pointer; display:grid; place-items:center; opacity:.85; }
.lb__nav:hover { background:var(--surface-2); opacity:1; }
.lb__nav--p { left:20px; } .lb__nav--n { right:20px; }

/* Back to top */
.totop { position:fixed; right:20px; bottom:20px; z-index:60; width:46px; height:46px; border-radius:50%;
  border:1px solid var(--border); background:var(--surface-2); color:#fff; font-size:20px; cursor:pointer;
  display:grid; place-items:center; opacity:0; pointer-events:none; transform:translateY(12px);
  transition:opacity .25s, transform .25s, background .2s; box-shadow:0 8px 24px rgba(0,0,0,.45); }
.totop.on { opacity:1; pointer-events:auto; transform:none; }
.totop:hover { background:var(--red); border-color:transparent; }

@media (max-width:600px){
  .lb__nav { width:42px; height:42px; }
  .gallery { grid-template-columns:repeat(2,1fr); }
}

/* ============================================================
   TORNEOS
   ============================================================ */
.tstats { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; margin-bottom:14px; }
.tstat { text-align:center; background:var(--surface); border:1px solid var(--border-soft); border-radius:14px; padding:18px 14px; }
.tstat b { display:block; font-family:'Raleway',sans-serif; font-weight:900; font-size:30px; color:var(--gold); line-height:1; margin-bottom:6px; }
.tstat span { font-size:12.5px; color:var(--muted); }

.champs-wrap { background:linear-gradient(150deg, rgba(242,194,28,.07), var(--surface)); border:1px solid rgba(242,194,28,.3); border-radius:var(--radius); padding:22px 24px; margin:22px 0 34px; }
.champs-h { font-family:'Raleway',sans-serif; font-weight:800; font-size:15px; color:#fff; margin-bottom:14px; display:flex; align-items:center; gap:9px; }
.champs { display:flex; flex-wrap:wrap; gap:9px; }
.champ { display:inline-flex; align-items:center; gap:7px; font-weight:700; font-size:13px; padding:7px 14px; border-radius:20px; color:#1a1204; background:linear-gradient(135deg,#ffd84a,#f2a01c); box-shadow:0 5px 14px rgba(242,194,28,.22); }

.tourneys { display:flex; flex-direction:column; gap:18px; }
.tcard { position:relative; background:linear-gradient(162deg,var(--surface),var(--bg-2)); border:1px solid var(--border); border-radius:var(--radius); padding:22px 24px; transition:transform .18s var(--ease), border-color .18s; }
.tcard:hover { transform:translateY(-3px); border-color:var(--border); }
.tcard::before { content:''; position:absolute; left:0; top:18px; bottom:18px; width:4px; border-radius:4px; background:linear-gradient(180deg,var(--gold-hi),var(--gold)); }
.tcard__top { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:15px; padding-left:8px; }
.tcard__date { font-family:'Raleway',sans-serif; font-weight:800; font-size:18px; color:#fff; display:flex; align-items:center; gap:10px; }
.tcard__date .tico { font-size:19px; }
.tcard__name { display:block; font-size:12px; color:var(--gold); font-weight:700; letter-spacing:.4px; margin-top:3px; }
.tcard__podium { display:flex; gap:8px; flex-wrap:wrap; }
.podium { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; padding:6px 12px; border-radius:20px; border:1px solid var(--border); white-space:nowrap; }
.podium--1 { color:#1a1204; background:linear-gradient(135deg,#ffd84a,#f2a01c); border-color:transparent; }
.podium--2 { color:#e6ecf7; background:rgba(190,200,220,.14); border-color:rgba(190,200,220,.4); }
.podium--3 { color:#f0c197; background:rgba(205,127,50,.15); border-color:rgba(205,127,50,.45); }
.tcard__players-h { font-size:11px; text-transform:uppercase; letter-spacing:1.5px; color:var(--muted-2); margin:0 0 10px 8px; }
.chips-row { display:flex; flex-wrap:wrap; gap:7px; padding-left:8px; }
.pchip { font-size:12.5px; color:var(--muted); background:var(--surface-2); border:1px solid var(--border-soft); padding:5px 11px; border-radius:16px; }
.pchip--win { color:var(--gold); border-color:rgba(242,194,28,.45); background:rgba(242,194,28,.06); font-weight:700; }
.pchip--judge { color:#a9c2ff; border-color:rgba(169,194,255,.4); }
.pchip .pay { font-size:10px; font-weight:700; margin-left:7px; padding:1px 7px; border-radius:10px; vertical-align:middle; }
.pay--paid { color:#39d98a; background:rgba(46,196,120,.15); }
.pay--free { color:var(--muted-2); background:rgba(255,255,255,.05); }
.pay--pend { color:#a9c2ff; background:rgba(169,194,255,.14); }
.tlegend { display:flex; flex-wrap:wrap; gap:14px; margin:0 0 20px 8px; font-size:12px; color:var(--muted-2); }
.tlegend span { display:inline-flex; align-items:center; gap:6px; }
.tlegend i { width:11px; height:11px; border-radius:3px; display:inline-block; }
.tcard__pays { font-size:12px; color:var(--muted-2); margin:0 0 10px 8px; }
.tcard__pays b { color:#39d98a; }

/* ---- Torneos: tablas estilo Excel + edición admin ---- */
.tt { margin-bottom:24px; border:1px solid var(--border); border-radius:14px; overflow:hidden; background:var(--surface); }
.tt__date { background:var(--surface-2); padding:12px 16px; font-family:'Raleway',sans-serif; font-weight:800; color:#fff; font-size:15px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.tt__name { color:var(--gold); font-size:13px; font-weight:700; }
.tt__table { width:100%; border-collapse:collapse; font-size:14px; }
.tt__table th { text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--muted-2); padding:10px 16px; border-bottom:1px solid var(--border); font-weight:700; }
.tt__table td { padding:9px 16px; border-bottom:1px solid var(--border-soft); color:var(--text); vertical-align:middle; }
.tt__table td.c { text-align:center; color:var(--muted); width:1%; white-space:nowrap; }
.tt__table tbody tr:last-child td { border-bottom:none; }
.tt__table tbody tr:hover td { background:rgba(255,255,255,.02); }
.tt__table tr.is-winner td { background:rgba(46,196,120,.16); color:#eafff3; font-weight:700; }
.tt__table tr.is-winner td.c { color:#bff0d5; }
.tt__table tr.is-winner:hover td { background:rgba(46,196,120,.2); }
/* edición */
.tt__in { width:100%; min-width:70px; background:var(--bg); border:1px solid var(--border); border-radius:7px; color:var(--text); padding:6px 9px; font-size:13.5px; font-family:inherit; }
.tt__in:focus { outline:none; border-color:var(--gold); }
.tt__in--sm { text-align:center; min-width:60px; }
.tt__in--date { max-width:120px; } .tt__in--name { max-width:220px; }
.tt__rowdel { width:28px; height:28px; border-radius:7px; border:1px solid var(--border); background:var(--surface); color:var(--red-hi); cursor:pointer; font-size:16px; line-height:1; }
.tt__rowdel:hover { background:var(--red); color:#fff; border-color:transparent; }
.tt__addrow { margin:12px 16px; background:rgba(255,255,255,.05); border:1px dashed var(--border); color:var(--muted); padding:9px 15px; border-radius:9px; cursor:pointer; font-weight:600; font-size:13px; }
.tt__addrow:hover { color:#fff; border-color:var(--gold); }
.tt__del { margin-left:auto; background:rgba(232,68,42,.1); border:1px solid rgba(232,68,42,.35); color:var(--red-hi); padding:5px 11px; border-radius:8px; cursor:pointer; font-size:12px; font-weight:600; }
.tt__del:hover { background:var(--red); color:#fff; border-color:transparent; }
/* login admin + barra */
.tt-adminlogin { display:flex; justify-content:flex-end; margin-bottom:14px; }
.tt-adminlogin button { font-size:12px; color:var(--muted-2); background:none; border:1px solid var(--border-soft); padding:6px 12px; border-radius:18px; cursor:pointer; }
.tt-adminlogin button:hover { color:var(--gold); border-color:rgba(242,194,28,.4); }
.tt-adminbar { display:none; position:sticky; top:60px; z-index:30; background:rgba(10,10,28,.97); backdrop-filter:blur(12px); border:1px solid rgba(242,194,28,.4); border-radius:12px; padding:13px 16px; margin-bottom:22px; align-items:center; gap:10px; flex-wrap:wrap; box-shadow:0 10px 30px rgba(0,0,0,.4); }
.tt-adminbar.on { display:flex; }
.tt-adminbar .tag { font-family:'Raleway',sans-serif; font-weight:800; color:var(--gold); font-size:13.5px; display:flex; align-items:center; gap:7px; }
.tt-adminbar .note { flex-basis:100%; font-size:11.5px; color:var(--muted-2); line-height:1.5; }
.tt-btn { padding:8px 14px; border-radius:9px; border:1px solid var(--border); background:var(--surface-2); color:var(--text); font-weight:700; font-size:13px; cursor:pointer; }
.tt-btn:hover { background:var(--surface); border-color:var(--muted-2); }
.tt-btn--primary { background:linear-gradient(135deg,var(--gold-hi),var(--gold)); color:#1a1204; border:none; }
.tt-btn--danger { color:var(--red-hi); }
.tt-toast { position:fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(14px); z-index:4000; background:var(--surface-2); border:1px solid var(--border); color:#fff; padding:11px 20px; border-radius:12px; font-weight:600; font-size:14px; box-shadow:0 12px 34px rgba(0,0,0,.5); opacity:0; pointer-events:none; transition:opacity .25s, transform .25s; }
.tt-toast.on { opacity:1; transform:translateX(-50%) translateY(0); }
@media (max-width:640px){
  .tt__table { font-size:13px; }
  .tt__table th, .tt__table td { padding:8px 10px; }
  .tt-adminbar { top:56px; }
}

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .hero { padding:48px 0 40px; }
  .hero__inner { grid-template-columns:1fr; gap:26px; text-align:center; }
  .hero__logo { order:-1; width:min(74%,300px); }
  .hero .lead { margin-left:auto; margin-right:auto; }
  .hero__cta { justify-content:center; }
  .mv-grid { grid-template-columns:1fr; }
  .nav__links a:not(.nav__cta){ display:none; }
  .foot__inner { flex-direction:column; text-align:center; }
  .foot__note { text-align:center; }
}
@media (max-width:520px){
  .wrap { padding:0 16px; }
  .nav__greet { display:none; }
  .section { padding:48px 0; }
  .btn { width:100%; justify-content:center; }
  .hero__cta { flex-direction:column; }
}

@media (prefers-reduced-motion:reduce){
  * { animation:none !important; scroll-behavior:auto; }
  .btn:hover, .val:hover, .gcard:hover, .mv-card:hover { transform:none; }
}
