/* =========================================================
   TOROPRO · Torneo Rosarino de Programación
   Paleta extraída del wallpaper cyberpunk
   ========================================================= */
:root{
  --bg:        #060a1c;
  --bg-2:      #0a0f28;
  --panel:     #0e1430;
  --panel-2:   #121a3d;
  --line:      #1d2752;

  --cyan:      #29d3ff;
  --blue:      #3a7bff;
  --violet:    #8b5cff;
  --magenta:   #b14bff;
  --pink:      #ff4ecd;
  --amber:     #ffb347;
  --amber-2:   #ff9d3c;

  --text:      #eaf1ff;
  --muted:     #9aa6d6;
  --dim:       #6b769e;

  --glow-cyan:   0 0 18px rgba(41,211,255,.55);
  --glow-magenta:0 0 18px rgba(177,75,255,.55);
  --radius: 14px;
  --maxw: 1180px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:78px}
body{
  font-family:'Rajdhani',system-ui,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.hl{color:var(--cyan);text-shadow:var(--glow-cyan)}
.hl--pink{color:var(--pink);text-shadow:0 0 18px rgba(255,78,205,.55)}
strong{color:#fff;font-weight:700}

/* ---------- FX overlays ---------- */
.fx-scanlines{
  position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.35;
  background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.18) 3px,transparent 4px);
  mix-blend-mode:overlay;
}
.fx-grid{
  position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.10;
  background-image:linear-gradient(rgba(41,211,255,.35) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(41,211,255,.35) 1px,transparent 1px);
  background-size:46px 46px;
  mask-image:radial-gradient(circle at 50% 30%,#000 0%,transparent 75%);
  -webkit-mask-image:radial-gradient(circle at 50% 30%,#000 0%,transparent 75%);
}

/* ---------- NAV ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px clamp(16px,4vw,42px);
  background:rgba(6,10,28,.55);
  backdrop-filter:blur(12px);
  border-bottom:1px solid transparent;
  transition:.3s;
}
.nav.scrolled{background:rgba(6,10,28,.9);border-bottom:1px solid var(--line)}
.nav__brand{display:flex;align-items:center;gap:10px;font-family:'Orbitron',sans-serif;font-weight:900;letter-spacing:1px}
.nav__mark{width:30px;height:30px;filter:drop-shadow(0 0 6px rgba(41,211,255,.5));transition:transform .3s}
.nav__brand:hover .nav__mark{transform:translateY(-2px) scale(1.06)}
.nav__logo{font-family:'Share Tech Mono',monospace;color:var(--cyan);text-shadow:var(--glow-cyan)}
.nav__name{font-size:20px;background:linear-gradient(90deg,var(--cyan),var(--magenta));-webkit-background-clip:text;background-clip:text;color:transparent}
.nav__links{display:flex;align-items:center;gap:26px}
.nav__links a{
  font-weight:600;font-size:15px;color:var(--muted);letter-spacing:.3px;
  position:relative;transition:color .2s;
}
.nav__links a:not(.nav__tg)::after{
  content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;
  background:var(--cyan);box-shadow:var(--glow-cyan);transition:width .25s;
}
.nav__links a:hover{color:var(--text)}
.nav__links a:hover::after{width:100%}
.nav__tg{
  padding:7px 16px;border:1px solid var(--cyan);border-radius:999px;color:var(--cyan)!important;
  box-shadow:inset 0 0 0 rgba(41,211,255,0);transition:.25s;
}
.nav__tg:hover{background:var(--cyan);color:var(--bg)!important;box-shadow:var(--glow-cyan)}
.nav__burger{display:none;background:none;border:none;color:var(--cyan);font-size:24px;cursor:pointer}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;padding:90px 20px 60px}
.hero__matrix{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:.55}
.hero__bg{
  position:absolute;inset:0;z-index:0;
  background:url('../img/wallpaper.jpg') center/cover no-repeat;
  opacity:.30;filter:saturate(1.2);
  animation:slowzoom 30s ease-in-out infinite alternate;
}
@keyframes slowzoom{from{transform:scale(1)}to{transform:scale(1.12)}}
.hero__vignette{
  position:absolute;inset:0;z-index:2;
  background:radial-gradient(ellipse at 50% 40%,transparent 0%,rgba(6,10,28,.55) 60%,var(--bg) 100%),
             linear-gradient(180deg,rgba(6,10,28,.5),transparent 30%,var(--bg));
}
.hero__content{position:relative;z-index:3;max-width:880px}
.hero__badge{
  display:inline-block;font-family:'Share Tech Mono',monospace;color:var(--cyan);
  border:1px solid rgba(41,211,255,.4);border-radius:999px;padding:6px 18px;font-size:14px;
  letter-spacing:2px;margin-bottom:26px;background:rgba(41,211,255,.06);box-shadow:var(--glow-cyan)
}
.hero__title{
  font-family:'Orbitron',sans-serif;font-weight:900;
  font-size:clamp(56px,13vw,150px);line-height:.95;letter-spacing:2px;
  background:linear-gradient(180deg,#fff 0%,var(--cyan) 55%,var(--blue) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 24px rgba(41,211,255,.45));
}
.hero__subtitle{font-family:'Orbitron',sans-serif;font-weight:500;font-size:clamp(18px,3.2vw,30px);margin-top:14px;letter-spacing:3px;color:var(--text)}
.hero__tag{color:var(--muted);font-size:clamp(15px,2vw,19px);margin-top:10px;letter-spacing:.5px}
.hero__status{
  display:inline-flex;align-items:center;gap:10px;margin-top:26px;
  background:rgba(255,179,71,.08);border:1px solid rgba(255,179,71,.35);
  color:var(--amber);padding:9px 18px;border-radius:999px;font-size:14px;font-weight:600;
}
.status-dot{width:9px;height:9px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px var(--amber);animation:pulse 1.8s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
.hero__cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:34px}
.hero__scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;width:26px;height:42px;border:2px solid var(--muted);border-radius:14px;display:flex;justify-content:center;padding-top:7px}
.hero__scroll span{width:4px;height:8px;background:var(--cyan);border-radius:2px;animation:scrolldot 1.5s infinite}
@keyframes scrolldot{0%{opacity:0;transform:translateY(-4px)}40%{opacity:1}80%,100%{opacity:0;transform:translateY(12px)}}

/* glitch */
.glitch{position:relative}
.glitch::before,.glitch::after{
  content:attr(data-text);position:absolute;inset:0;
  background:inherit;-webkit-background-clip:text;background-clip:text;color:transparent;
  clip-path:inset(0);
}
.glitch::before{left:2px;text-shadow:-2px 0 var(--magenta);animation:glitch1 3.5s infinite linear alternate-reverse}
.glitch::after{left:-2px;text-shadow:-2px 0 var(--cyan);animation:glitch2 2.7s infinite linear alternate-reverse}
@keyframes glitch1{0%,92%,100%{clip-path:inset(0 0 100% 0);opacity:0}93%{clip-path:inset(10% 0 60% 0);opacity:.8}96%{clip-path:inset(40% 0 30% 0)}}
@keyframes glitch2{0%,90%,100%{clip-path:inset(100% 0 0 0);opacity:0}91%{clip-path:inset(60% 0 20% 0);opacity:.8}97%{clip-path:inset(20% 0 55% 0)}}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;font-family:'Rajdhani',sans-serif;font-weight:700;
  font-size:16px;letter-spacing:.6px;padding:13px 28px;border-radius:10px;cursor:pointer;
  transition:.25s;border:1px solid transparent;text-transform:uppercase;
}
.btn--primary{background:linear-gradient(90deg,var(--cyan),var(--blue));color:#04122a;box-shadow:var(--glow-cyan)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 0 28px rgba(41,211,255,.8)}
.btn--ghost{border-color:var(--magenta);color:var(--magenta)}
.btn--ghost:hover{background:rgba(177,75,255,.12);box-shadow:var(--glow-magenta);transform:translateY(-2px)}
.btn--tg{background:linear-gradient(90deg,#2aabee,#229ed9);color:#fff;box-shadow:0 0 20px rgba(42,171,238,.45)}
.btn--tg:hover{transform:translateY(-2px);box-shadow:0 0 28px rgba(42,171,238,.8)}

/* ---------- SECTIONS ---------- */
.section{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:clamp(70px,9vw,120px) clamp(18px,5vw,42px)}
.section--alt{max-width:100%;background:
  linear-gradient(180deg,transparent,rgba(14,20,48,.5) 12%,rgba(14,20,48,.5) 88%,transparent);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section--alt > *{max-width:var(--maxw);margin-left:auto;margin-right:auto}
.section__head{margin-bottom:18px}
.section__kicker{font-family:'Share Tech Mono',monospace;color:var(--magenta);letter-spacing:2px;font-size:14px}
.section__title{font-family:'Orbitron',sans-serif;font-weight:700;font-size:clamp(30px,5vw,52px);line-height:1.05;margin-top:8px}
.section__lead{color:var(--muted);font-size:clamp(16px,2vw,20px);max-width:760px;margin-bottom:44px}

/* ---------- CARDS ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}
.card{
  background:linear-gradient(160deg,var(--panel),var(--bg-2));
  border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;
  position:relative;overflow:hidden;transition:.3s;
}
.card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--cyan),var(--magenta));transform:scaleX(0);transform-origin:left;transition:transform .35s}
.card:hover{transform:translateY(-6px);border-color:rgba(41,211,255,.45);box-shadow:0 12px 40px rgba(0,0,0,.5)}
.card:hover::before{transform:scaleX(1)}
.card__icon{font-size:34px;margin-bottom:12px;filter:drop-shadow(0 0 8px rgba(41,211,255,.4))}
.card h3{font-family:'Orbitron',sans-serif;font-weight:500;font-size:18px;margin-bottom:8px;color:#fff}
.card p{color:var(--muted);font-size:15.5px}

/* ---------- STATS ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:44px}
.stat{text-align:center;background:rgba(14,20,48,.5);border:1px solid var(--line);border-radius:var(--radius);padding:24px 10px}
.stat__num{display:block;font-family:'Orbitron',sans-serif;font-weight:900;font-size:clamp(30px,5vw,48px);
  background:linear-gradient(180deg,var(--cyan),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.stat__label{color:var(--dim);font-size:14px;letter-spacing:1px;text-transform:uppercase}

/* ---------- COUNTDOWN ---------- */
.countdown{display:flex;align-items:center;justify-content:center;gap:clamp(8px,2vw,20px);margin:20px 0 8px;flex-wrap:wrap}
.cd{display:flex;flex-direction:column;align-items:center;min-width:84px;
  background:linear-gradient(160deg,var(--panel-2),var(--bg-2));border:1px solid var(--line);
  border-radius:14px;padding:18px 8px;box-shadow:inset 0 0 24px rgba(41,211,255,.05)}
.cd__num{font-family:'Orbitron',sans-serif;font-weight:900;font-size:clamp(30px,5vw,46px);color:var(--cyan);text-shadow:var(--glow-cyan);line-height:1}
.cd__label{color:var(--dim);font-size:13px;letter-spacing:2px;text-transform:uppercase;margin-top:8px}
.cd__sep{font-family:'Orbitron',sans-serif;font-size:34px;color:var(--magenta);opacity:.6;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:.15}}
.countdown__note{text-align:center;color:var(--dim);font-size:14px;margin-bottom:34px}

/* ---------- CTA banner ---------- */
.cta-banner{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  background:linear-gradient(120deg,rgba(177,75,255,.14),rgba(41,211,255,.10));
  border:1px solid rgba(177,75,255,.4);border-radius:var(--radius);padding:28px 32px;
}
.cta-banner h3{font-family:'Orbitron',sans-serif;font-weight:500;font-size:22px;margin-bottom:4px}
.cta-banner p{color:var(--muted)}

/* ---------- PROBLEM SETS ---------- */
.ps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px}
.ps-card{
  position:relative;display:flex;flex-direction:column;
  background:linear-gradient(160deg,var(--panel),var(--bg-2));
  border:1px solid var(--line);border-radius:var(--radius);padding:28px;overflow:hidden;transition:.3s;
}
.ps-card::after{content:"";position:absolute;inset:0;border-radius:var(--radius);padding:1px;pointer-events:none;
  background:linear-gradient(130deg,transparent,rgba(41,211,255,.5),transparent);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:.3s}
.ps-card:hover{transform:translateY(-6px);box-shadow:0 16px 44px rgba(0,0,0,.55)}
.ps-card:hover::after{opacity:1}
.ps-card__tag{align-self:flex-start;font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:2px;padding:5px 12px;border-radius:6px;margin-bottom:18px}
.ps-card__tag--init{color:var(--cyan);background:rgba(41,211,255,.1);border:1px solid rgba(41,211,255,.4)}
.ps-card__tag--adv{color:var(--magenta);background:rgba(177,75,255,.1);border:1px solid rgba(177,75,255,.4)}
.ps-card__title{font-family:'Orbitron',sans-serif;font-weight:500;font-size:22px;color:#fff;margin-bottom:10px}
.ps-card__desc{color:var(--muted);flex:1;margin-bottom:22px}
.ps-card__actions{display:flex;flex-wrap:wrap;gap:12px;border-top:1px solid var(--line);padding-top:18px}
.ps-btn{flex:1 1 auto;text-align:center;font-weight:700;font-size:14.5px;letter-spacing:.4px;
  padding:11px 16px;border-radius:9px;border:1px solid var(--line);transition:.22s;white-space:nowrap}
.ps-btn--pdf{color:var(--cyan);border-color:rgba(41,211,255,.4);background:rgba(41,211,255,.06)}
.ps-btn--pdf:hover{background:var(--cyan);color:var(--bg);box-shadow:var(--glow-cyan)}
.ps-btn--judge{color:var(--magenta);border-color:rgba(177,75,255,.4);background:rgba(177,75,255,.06)}
.ps-btn--judge:hover{background:var(--magenta);color:#fff;box-shadow:var(--glow-magenta)}

/* ---------- RANK CARDS ---------- */
.rank-card{position:relative;display:flex;flex-direction:column;
  background:linear-gradient(160deg,var(--panel),var(--bg-2));
  border:1px solid var(--line);border-radius:var(--radius);padding:28px;overflow:hidden;transition:.3s}
.rank-card:hover{transform:translateY(-6px);border-color:rgba(255,179,71,.45);box-shadow:0 16px 44px rgba(0,0,0,.55)}
.rank-card__trophy{position:absolute;top:18px;right:22px;font-size:34px;filter:drop-shadow(0 0 10px rgba(255,179,71,.5))}
.rank-card .ps-btn{flex:0 0 auto;margin-top:6px}

/* ---------- GALLERY ---------- */
.gallery{columns:3;column-gap:16px}
.gallery__item{break-inside:avoid;margin-bottom:16px;position:relative;border-radius:12px;overflow:hidden;cursor:pointer;border:1px solid var(--line)}
.gallery__item img{width:100%;transition:transform .5s;filter:saturate(.95)}
.gallery__item figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;
  background:linear-gradient(transparent,rgba(6,10,28,.92));
  color:var(--text);font-weight:600;font-size:15px;letter-spacing:.5px;
  transform:translateY(8px);opacity:0;transition:.3s;
}
.gallery__item::after{content:"⤢";position:absolute;top:10px;right:12px;color:var(--cyan);font-size:18px;opacity:0;transition:.3s;text-shadow:var(--glow-cyan)}
.gallery__item:hover img{transform:scale(1.06)}
.gallery__item:hover figcaption,.gallery__item:hover::after{opacity:1;transform:translateY(0)}

/* ---------- FAQ ---------- */
.faq{display:flex;flex-direction:column;gap:12px;max-width:880px}
.faq__item{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:border-color .3s}
.faq__item.open{border-color:rgba(41,211,255,.5)}
.faq__q{
  width:100%;text-align:left;background:none;border:none;cursor:pointer;color:var(--text);
  font-family:'Rajdhani',sans-serif;font-weight:600;font-size:18px;padding:20px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.faq__q:hover{color:var(--cyan)}
.faq__ic{font-family:'Share Tech Mono',monospace;color:var(--cyan);font-size:24px;transition:transform .3s;flex-shrink:0}
.faq__item.open .faq__ic{transform:rotate(45deg)}
.faq__a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq__a p{padding:0 22px 20px;color:var(--muted);font-size:16px}
.faq__a a{color:var(--cyan);text-decoration:underline}

/* ---------- DOWNLOADS ---------- */
.dl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.dl-card{display:flex;align-items:center;gap:16px;background:linear-gradient(160deg,var(--panel),var(--bg-2));
  border:1px solid var(--line);border-radius:12px;padding:20px 22px;transition:.25s}
.dl-card:hover{transform:translateY(-4px);border-color:rgba(41,211,255,.45);box-shadow:0 10px 30px rgba(0,0,0,.5)}
.dl-card__ic{font-size:30px;filter:drop-shadow(0 0 8px rgba(41,211,255,.35))}
.dl-card h3{font-family:'Orbitron',sans-serif;font-weight:500;font-size:17px;color:#fff}
.dl-card p{color:var(--muted);font-size:14.5px}
.dl-card__arrow{margin-left:auto;color:var(--cyan);font-size:22px;font-weight:700}

/* ---------- FOOTER ---------- */
.footer{position:relative;z-index:2;border-top:1px solid var(--line);background:var(--bg-2);margin-top:40px}
.footer__main{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px;padding:56px clamp(18px,5vw,42px) 36px}
.footer__brand{display:flex;align-items:center;gap:10px;font-family:'Orbitron',sans-serif;font-weight:900;font-size:22px;margin-bottom:12px}
.footer__col p{color:var(--muted);font-size:15px}
.footer__col h4{font-family:'Orbitron',sans-serif;font-weight:500;font-size:15px;letter-spacing:1px;margin-bottom:14px;color:var(--cyan)}
.footer__col a{display:block;color:var(--muted);margin-bottom:9px;transition:color .2s;font-size:15px}
.footer__col a:hover{color:var(--cyan)}
.footer__bar{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
  padding:20px clamp(18px,5vw,42px);border-top:1px solid var(--line);color:var(--dim);font-size:14px}

/* ---------- LIGHTBOX ---------- */
.lightbox{position:fixed;inset:0;z-index:2000;background:rgba(3,6,18,.94);backdrop-filter:blur(6px);
  display:none;align-items:center;justify-content:center;padding:30px}
.lightbox.open{display:flex}
.lightbox__img{max-width:90vw;max-height:86vh;border-radius:10px;border:1px solid var(--line);box-shadow:0 0 60px rgba(41,211,255,.25)}
.lightbox__close{position:absolute;top:20px;right:26px;background:none;border:none;color:var(--text);font-size:30px;cursor:pointer}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(14,20,48,.7);border:1px solid var(--line);
  color:var(--cyan);font-size:34px;width:54px;height:54px;border-radius:50%;cursor:pointer;transition:.2s}
.lightbox__nav:hover{background:var(--cyan);color:var(--bg);box-shadow:var(--glow-cyan)}
.lightbox__prev{left:24px}.lightbox__next{right:24px}

/* ---------- REVEAL ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- RESPONSIVE ---------- */
@media(max-width:860px){
  .nav__links{position:fixed;top:0;right:0;height:100vh;width:min(78vw,300px);flex-direction:column;
    justify-content:center;gap:28px;background:rgba(8,12,32,.97);backdrop-filter:blur(14px);
    transform:translateX(100%);transition:transform .35s;border-left:1px solid var(--line)}
  .nav__links.open{transform:translateX(0)}
  .nav__burger{display:block;z-index:1001}
  .stats{grid-template-columns:repeat(2,1fr)}
  .gallery{columns:2}
  .footer__main{grid-template-columns:1fr;gap:24px}
}
@media(max-width:520px){
  .gallery{columns:1}
  .cd{min-width:66px}
  .cta-banner{flex-direction:column;align-items:flex-start}
  .lightbox__nav{width:44px;height:44px;font-size:26px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
