:root{
  --bg:#ece6d8;--bg2:#e1dac8;--fg:#1a2a2e;--muted:#53636a;--line:#cdc5b0;
  --red:#e01a2b;--teal:#0a7c97;--gold:#fdb827;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --disp:"URW Gothic","Century Gothic",sans-serif;
}

@font-face{
  font-family:"URW Gothic";
  src:url("assets/fonts/URWGothic-Demi.woff2") format("woff2"),
      url("assets/fonts/URWGothic-Demi.otf") format("opentype");
  font-weight:600;
  font-display:swap;
}

*{box-sizing:border-box;margin:0}
html{scroll-padding-top:76px;scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font:400 1.05rem/1.65 "Hanken Grotesk",system-ui,sans-serif;overflow-x:hidden;padding-bottom:env(safe-area-inset-bottom,0px)}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
h1,h2,h3{font-family:var(--disp);font-weight:600;line-height:1;letter-spacing:0}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Esquinas tipo visor (solo en las tarjetas de Comunidad) */
.frame{--c:var(--red);
  background:
    linear-gradient(var(--c),var(--c)) 0 0/18px 2px,
    linear-gradient(var(--c),var(--c)) 0 0/2px 18px,
    linear-gradient(var(--c),var(--c)) 100% 0/18px 2px,
    linear-gradient(var(--c),var(--c)) 100% 0/2px 18px,
    linear-gradient(var(--c),var(--c)) 0 100%/18px 2px,
    linear-gradient(var(--c),var(--c)) 0 100%/2px 18px,
    linear-gradient(var(--c),var(--c)) 100% 100%/18px 2px,
    linear-gradient(var(--c),var(--c)) 100% 100%/2px 18px;
  background-repeat:no-repeat}

.eyebrow{font:500 .78rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:18px}

/* Nav */
.nav{position:sticky;top:0;z-index:10;background:#fff;box-shadow:0 2px 10px rgba(20,38,43,.16)}
.nav .in{display:flex;align-items:center;justify-content:space-between;height:76px;padding:0 24px}
.nav ul{list-style:none;display:flex;gap:28px;padding:0}
.nav a{text-decoration:none;font-weight:500}
.nav ul a:hover{color:var(--red)}
.nav img{height:56px;width:auto;display:block}
@media (max-width:760px){.nav ul{gap:14px;font-size:.88rem}.nav ul li:first-child{display:none}.nav img{height:44px}}

/* Botones del header */
.btn{display:inline-block;position:relative;padding:14px 26px;font:700 1.05rem/1.65 "Hanken Grotesk",system-ui,sans-serif;text-decoration:none;border-radius:5px}

/* CTFtime: rojo con relieve; al pasar el cursor se hunde */
.btn-ctf{background:#e62434;border:1px solid #ce1827;color:#fff;font-weight:900;letter-spacing:1px;text-transform:uppercase;
  box-shadow:0 2px 0 #c91727,2px 4px 6px #d71929;transition:all 150ms linear}
.btn-ctf:hover{background:#d9192a;border:1px solid rgba(0,0,0,.05);box-shadow:1px 1px 2px rgba(255,255,255,.2);
  color:#ee6874;text-shadow:-1px -1px 0 #b51523;transition:all 250ms linear}

/* Discord: neumórfico; al pasar el cursor aparece un panel de sombras de derecha a izquierda */
.btn-discord{isolation:isolate;background:transparent;border:1px solid transparent;color:var(--fg);cursor:pointer;outline:none;
  box-shadow:inset 2px 2px 2px 0 rgba(255,255,255,.5),7px 7px 20px 0 rgba(0,0,0,.1),4px 4px 5px 0 rgba(0,0,0,.1);
  transition:all .3s ease}
.btn-discord::after{content:"";position:absolute;top:0;left:0;width:0;height:100%;direction:rtl;z-index:-1;border-radius:5px;
  box-shadow:-7px -7px 20px 0 #fff9,-4px -4px 5px 0 #fff9,7px 7px 20px 0 #0002,4px 4px 5px 0 #0001;transition:all .3s ease}
.btn-discord:hover::after{left:auto;right:0;width:100%}
.btn-discord:active{top:2px}

/* Hero */
.hero{position:relative;min-height:calc(100vh - 76px);min-height:calc(100svh - 76px);display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line)}
.hero .wrap{position:relative;z-index:1}
.hero .wrap{max-width:none}
.hero-grid{width:100%;padding-top:72px;padding-bottom:72px;padding-left:clamp(24px,5vw,80px)}
.hero-copy{max-width:560px}
.hero-logo{display:block;width:min(100%,520px);height:auto;margin:0 0 24px}
.trad{font:500 1.2rem/1.4 "Hanken Grotesk",system-ui,sans-serif;color:var(--muted)}
.hero-p{color:var(--muted);max-width:44ch;margin-top:14px}
.hero .btns{display:flex;flex-wrap:wrap;gap:20px;margin-top:32px}

/* Mapa de México al fondo del hero */
.globo{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:0;transition:opacity 1.4s ease}
.globo.listo{opacity:.4}

/* Franja azteca */
.stripe{height:14px;background:
 linear-gradient(135deg,var(--bg) 25%,transparent 25%) -7px 0/14px 14px,
 linear-gradient(225deg,var(--bg) 25%,transparent 25%) -7px 0/14px 14px,
 linear-gradient(315deg,var(--bg) 25%,transparent 25%) 0 0/14px 14px,
 linear-gradient(45deg,var(--bg) 25%,transparent 25%) 0 0/14px 14px;
 background-color:var(--gold);border-top:4px solid var(--red);border-bottom:4px solid var(--teal);height:22px}

/* Secciones */
section.s{padding:96px 0;border-bottom:1px solid var(--line)}
section.s h2{font-size:clamp(2.1rem,5.2vw,3.6rem);text-transform:uppercase;margin-bottom:28px;max-width:20ch}
.two{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.two h2{margin-bottom:0}
.two p{max-width:62ch;color:var(--muted)}
.two p+p{margin-top:1em}
.two p strong{color:var(--fg)}
.lead{max-width:62ch;color:var(--muted)}

/* Texto que se descifra: la capa animada va encima del texto real */
.sc{position:relative}
.sc-fx{position:absolute;inset:0;pointer-events:none;user-select:none}
.sc:not(.on) .sc-real,.sc:not(.on) .sc-real *{color:transparent!important}

/* Retos */
dl.cats{counter-reset:c;display:grid;margin-top:40px}
dl.cats div{counter-increment:c;display:grid;grid-template-columns:48px minmax(150px,240px) 1fr;gap:24px;align-items:baseline;padding:24px 0 24px 20px;border-top:1px solid var(--line);border-left:6px solid var(--red);transition:background .2s,padding-left .2s}
dl.cats div::before{content:counter(c,decimal-leading-zero);font:500 .8rem/1 var(--mono);letter-spacing:.1em;color:var(--muted)}
dl.cats div:nth-child(3n+2){border-left-color:var(--teal)}
dl.cats div:nth-child(3n){border-left-color:var(--gold)}
dl.cats div:last-child{border-bottom:1px solid var(--line)}
dl.cats div:hover{background:rgba(255,255,255,.4);padding-left:30px}
dl.cats dt{font:600 1.5rem/1.1 var(--disp)}
dl.cats dd{color:var(--muted);max-width:60ch}

/* Comunidad */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.cards article{background-color:var(--bg2);padding:34px 28px}
.cards article:nth-child(2){--c:var(--teal)}
.cards article:nth-child(3){--c:var(--gold)}
.cards h3{font-size:1.6rem;text-transform:uppercase}
.cards p{color:var(--muted);margin-top:12px}

/* Miembros: tarjeta de perfil con bloque de color arriba y foto reducida encima */
.members{list-style:none;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:20px 16px;margin-top:32px}
.member{--c:var(--red);--ct:var(--red);flex:0 0 calc((100% - 64px) / 5);position:relative;border-radius:10px;overflow:hidden;
  background:rgba(255,255,255,.7);
  border-top:1px solid rgba(255,255,255,.6);box-shadow:0 15px 25px rgba(20,38,43,.14);text-align:center}
.img-bx{position:relative;width:110px;height:130px;margin:26px auto 0;border-radius:10px;overflow:hidden;background:#fff;
  box-shadow:0 8px 18px rgba(20,38,43,.22);display:grid;place-items:center;color:var(--line);font-size:3rem}
.img-bx img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.member .detail{padding:16px 16px 22px;display:flex;flex-direction:column;align-items:center}
.member h3{font-size:1.25rem;text-transform:none;overflow-wrap:anywhere}
.member .role{display:block;margin-top:6px;font:700 .95rem/1.3 "Hanken Grotesk",system-ui,sans-serif;color:var(--ct)}
.member p{color:var(--muted);margin-top:10px;font-size:.9rem;line-height:1.5}
.sci{list-style:none;padding:0;display:flex;justify-content:center;gap:8px;margin-top:14px}
.sci a{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:1rem;
  color:var(--fg);text-decoration:none;box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);transition:background .4s,color .4s}
.sci a:hover,.sci a:focus-visible{background:var(--c);color:#fff}

/* Banda de color superior de cada tarjeta: usa --banner (cualquier fondo CSS); si no existe, usa --c */
.member::before{content:"";position:absolute;left:0;right:0;top:0;height:92px;background:var(--banner,var(--c))}
.member>*{position:relative;z-index:1}

/* Cada miembro es independiente: edita aquí sus variables.
   --c: color de acento (banda, hover de iconos) · --ct: color del cargo · --banner: fondo de la banda (opcional) · --grow: ancho relativo */
.m-dankbian{--c:var(--red);--ct:var(--red)}
.m-madness14{--c:var(--teal);--ct:var(--teal)}
.m-littlecracker{--c:var(--gold);--ct:#9a6b00}
.m-jul{--c:var(--red);--ct:var(--red)}
.m-krane{--c:#b422b8;--ct:#8a0f90;
  /* acuarela morada: ruido con vetas verticales + manchas */
  --banner:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.03 .008' numOctaves='4' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .12 0 0 0 0 0 0 0 0 0 .18 1.7 0 0 0 -.62'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/360px 360px,
    radial-gradient(ellipse at 18% 20%,rgba(35,0,45,.8),transparent 50%),
    radial-gradient(ellipse at 85% 80%,rgba(30,0,40,.75),transparent 55%),
    radial-gradient(ellipse at 62% 30%,rgba(205,45,205,.55),transparent 58%),
    linear-gradient(165deg,#9a1099,#62086f 55%,#8f0d90)}
@media (min-width:1101px){.member{flex:var(--grow,1) 1 0;min-width:0}}


/* Quiénes somos y Miembros: cada sección ocupa la pantalla completa (debajo del nav) */
#equipo,#miembros,#categorias,#comunidad{min-height:calc(100vh - 76px);min-height:calc(100svh - 76px);display:flex;align-items:center}
#equipo>.wrap,#miembros>.wrap,#categorias>.wrap,#comunidad>.wrap{width:100%}
#categorias,#comunidad{padding:56px 0}
#miembros{padding:40px 0}
#miembros>.wrap{max-width:1280px}
#miembros h2{margin-bottom:16px}
#equipo .two{gap:72px;align-items:center}
#equipo .two h2{font-size:clamp(2.6rem,6.5vw,5rem)}
#equipo .two p{font-size:clamp(1.15rem,1.7vw,1.45rem);line-height:1.7}
@media (max-width:1100px){.member{flex-basis:calc((100% - 32px) / 3)}}

/* Redes: iconos con efecto 3D (sombras roja y turquesa que vibran al pasar el cursor) */
.social{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:24px 44px;margin-top:44px}
.social a,.social .off{display:grid;justify-items:center;gap:6px;text-decoration:none;color:var(--fg)}
.icon-3d{font-size:4rem;line-height:1;padding:10px;color:var(--fg)}
.social a:hover .icon-3d,.social a:focus-visible .icon-3d{animation:icon3d 200ms infinite}
.cap{font:500 .74rem/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center}
.social a:hover .cap{color:var(--red)}
.social .off{opacity:.4}
@keyframes icon3d{
  0%{text-shadow:5px 4px var(--red),-5px -6px var(--teal)}
  25%{text-shadow:-5px -6px var(--red),5px 4px var(--teal)}
  50%{text-shadow:5px -4px var(--red),-8px 4px var(--teal)}
  75%{text-shadow:-8px -4px var(--red),-5px -4px var(--teal)}
  100%{text-shadow:-5px 0 var(--red),5px -4px var(--teal)}
}

/* Footer */
footer{background:var(--bg2);padding:64px 0 28px}
.foot{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
.f-brand img{height:48px;width:auto;display:block;margin-bottom:14px}
.f-name{font:600 1.3rem/1.1 var(--disp);text-transform:uppercase}
.f-sub{color:var(--muted);font-size:.92rem;margin-top:6px}
footer ul{list-style:none;padding:0;display:grid;gap:8px;font-size:.95rem}
footer ul a{text-decoration:none;color:var(--muted)}
footer ul a:hover{color:var(--red)}
.legal{margin-top:48px;padding-top:20px;border-top:1px solid var(--line);font:400 .74rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

@media (max-width:900px){
  .member{flex-basis:calc((100% - 20px) / 2)}
  .hero{min-height:0}
  .hero-grid{padding-top:48px;padding-bottom:56px}
}
@media (max-width:760px){
  section.s{padding:64px 0}
  #equipo,#miembros,#categorias,#comunidad{min-height:0}
  .globo.listo{opacity:.3}
  .two{grid-template-columns:1fr;gap:20px}
  .cards{grid-template-columns:1fr}
  .member{flex-basis:100%}
  dl.cats div{grid-template-columns:1fr;gap:8px}
  .foot{grid-template-columns:1fr;gap:32px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .globo{transition:none}
  .social a:hover .icon-3d,.social a:focus-visible .icon-3d{animation:none}
}
