/* WATT FEST · estilos */
@font-face{font-family:"Anton";src:url("../fonts/anton-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Permanent Marker";src:url("../fonts/permanent-marker-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("../fonts/barlow-condensed-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("../fonts/barlow-condensed-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("../fonts/barlow-condensed-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow";src:url("../fonts/barlow-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow";src:url("../fonts/barlow-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow";src:url("../fonts/barlow-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
:root{
  --turquesa:#00dff9;
  --turquesa-osc:#0aa3b8;
  --noche:#06141a;
  --noche-2:#0a1f27;
  --noche-3:#102c36;
  --hueso:#f1f5f4;
  --gris:#9bb0b5;
  --lima:#d7f24b;
  --display:"Anton","Impact","Haettenschweiler","Arial Narrow Bold",sans-serif;
  --cond:"Barlow Condensed","Arial Narrow",sans-serif;
  --texto:"Barlow","Helvetica Neue",Arial,sans-serif;
  --mano:"Permanent Marker","Comic Sans MS",cursive;
  --ancho:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px;overflow-x:clip}
body{margin:0;background:var(--noche);color:var(--hueso);font-family:var(--texto);font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;display:block}
a{color:var(--turquesa)}
h1,h2,h3,p{margin:0}
button,input{font:inherit}
.salto{position:absolute;left:-999px;top:0;background:var(--turquesa);color:#000;padding:.6rem 1rem;z-index:100}
.salto:focus{left:0}
:focus-visible{outline:3px solid var(--lima);outline-offset:3px}

/* ---------- barra ---------- */
.barra{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:.6rem clamp(1rem,4vw,2.5rem);transition:background .3s,box-shadow .3s}
.barra.solida{background:rgba(6,20,26,.94);backdrop-filter:blur(8px);box-shadow:0 1px 0 rgba(0,223,249,.18)}
.barra-logo img{height:52px;width:auto}
.barra-nav{display:flex;align-items:center;gap:1.6rem}
.barra-nav a{font-family:var(--cond);font-weight:600;text-transform:uppercase;letter-spacing:.09em;font-size:1rem;color:var(--hueso);text-decoration:none}
.barra-nav a:hover{color:var(--turquesa)}
.barra-menu{display:none;background:none;border:0;padding:.6rem;cursor:pointer}
.barra-menu span{display:block;width:26px;height:3px;background:var(--hueso);margin:5px 0;transition:transform .25s,opacity .25s}

/* ---------- botones ---------- */
.boton{display:inline-block;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:1.15rem;padding:.85rem 1.7rem;background:var(--turquesa);color:#031014 !important;border:2px solid var(--turquesa);text-decoration:none;cursor:pointer;transform:skewX(-7deg);transition:transform .15s,background .15s,color .15s}
.boton>span{display:inline-block;transform:skewX(7deg)}
.boton:hover{background:var(--lima);border-color:var(--lima);transform:skewX(-7deg) translateY(-2px)}
.boton-linea{background:transparent;color:var(--hueso) !important;border-color:rgba(241,245,244,.6)}
.boton-linea:hover{background:var(--hueso);color:#031014 !important;border-color:var(--hueso)}
.boton-chico{font-size:.95rem;padding:.5rem 1.1rem}
.boton[disabled]{opacity:.5;cursor:wait}

/* ---------- tipografía ---------- */
.etiqueta{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.22em;font-size:.95rem;color:var(--turquesa);display:flex;align-items:center;gap:.8rem;margin-bottom:1.1rem}
.etiqueta::before{content:"";width:34px;height:3px;background:var(--turquesa);transform:skewX(-20deg)}
.titulo{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:.92;font-size:clamp(3rem,9vw,7rem);letter-spacing:.005em}
.titulo .azul{color:var(--turquesa);display:block}
.brocha{position:relative;display:inline-block}
.brocha::after{content:"";position:absolute;left:-2%;right:-2%;bottom:-.14em;height:.16em;background:var(--turquesa);clip-path:polygon(0 35%,6% 10%,22% 30%,41% 5%,63% 28%,82% 8%,100% 30%,97% 78%,80% 60%,58% 92%,37% 66%,16% 95%,3% 70%);opacity:.95}
.texto-grande{font-size:clamp(1.1rem,1.6vw,1.3rem);color:#d5e1e2;max-width:38em}
.seccion{padding:clamp(4.5rem,10vw,8rem) clamp(1.1rem,4vw,2.5rem);position:relative}
.dentro{max-width:var(--ancho);margin:0 auto}

/* ---------- portada ---------- */
.portada{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:7rem clamp(1.1rem,4vw,2.5rem) clamp(2.5rem,6vw,5rem);overflow:hidden;isolation:isolate}
.portada-foto{position:absolute;inset:0;z-index:-2}
.portada-foto img{width:100%;height:100%;object-fit:cover;filter:saturate(.75) contrast(1.08)}
.portada::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,20,26,.55) 0%,rgba(6,20,26,.15) 35%,rgba(6,20,26,.82) 78%,var(--noche) 100%),linear-gradient(90deg,rgba(0,60,75,.55),transparent 70%)}
.portada-caja{max-width:var(--ancho);margin:0 auto;width:100%}
.portada h1{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:.86;font-size:clamp(4.2rem,13.5vw,11rem);text-shadow:0 4px 40px rgba(0,0,0,.45)}
.portada h1 .azul{color:var(--turquesa);display:block}
.portada-datos{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;margin:1.6rem 0 1.2rem;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:clamp(1rem,2vw,1.35rem)}
.portada-datos span+span::before{content:"/";color:var(--turquesa);margin-right:1.6rem}
.portada p.texto-grande{margin-bottom:2rem}
.portada-botones{display:flex;flex-wrap:wrap;gap:1.1rem}
.invitado{font-family:var(--mano);color:var(--turquesa);font-size:clamp(1.3rem,3.2vw,2.2rem);transform:rotate(-3deg);display:inline-block;margin-top:2.2rem}
.contador{display:flex;gap:1.4rem;margin:0 0 1.6rem;font-family:var(--display);font-size:clamp(2rem,5vw,3.4rem);line-height:1}
.contador small{display:block;font-family:var(--cond);font-size:.8rem;letter-spacing:.2em;color:var(--gris);margin-top:.3rem}

/* ---------- cinta ---------- */
.cinta{background:var(--turquesa);color:#031014;overflow:hidden;transform:rotate(-1.2deg) scale(1.03);margin:-1rem 0 0;position:relative;z-index:2}
.cinta-pista{display:flex;gap:2.5rem;white-space:nowrap;padding:.7rem 0;font-family:var(--display);text-transform:uppercase;font-size:1.5rem;letter-spacing:.04em;animation:cinta 38s linear infinite;width:max-content}
.cinta-pista span::after{content:"⚡";margin-left:2.5rem}
@keyframes cinta{to{transform:translateX(-50%)}}

/* ---------- números ---------- */
.numeros-cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:3rem}
.numeros-rejilla{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid rgba(0,223,249,.35)}
.numero{padding:2rem 1.4rem 2rem 0;border-right:1px solid rgba(255,255,255,.1)}
.numero:last-child{border-right:0}
.numero+.numero{padding-left:1.4rem}
.numero b{font-family:var(--display);font-weight:400;font-size:clamp(3.4rem,8vw,6.5rem);line-height:.9;color:var(--turquesa);display:block}
.numero i{font-family:var(--cond);font-style:normal;font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:1.1rem;display:block;margin:.4rem 0 .7rem}
.numero p{color:var(--gris);font-size:1rem}
.numeros .nota{margin-top:2rem;color:var(--gris);font-size:.95rem;max-width:44em}

/* ---------- concepto ---------- */
.concepto{background:var(--noche-2)}
.concepto-rejilla{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.concepto .texto-grande+.texto-grande{margin-top:1.1rem}
.concepto .titulo{margin-bottom:1.8rem}
.poster{position:relative;transform:rotate(2.5deg);border:10px solid #fff;box-shadow:0 30px 60px rgba(0,0,0,.5);background:#fff}
.poster img{width:100%;aspect-ratio:4/3;object-fit:cover}
.poster figcaption{font-family:var(--mano);color:#0b2a33;font-size:1.25rem;padding:.6rem .4rem .2rem;text-align:center}
.concepto-fotos{position:relative;margin:0}
.concepto-fotos figure{margin:0}
.poster-2{position:absolute;width:38%;right:-4%;bottom:-16%;transform:rotate(-6deg);border-width:7px}
.poster-2 img{aspect-ratio:3/4}
.pilares{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:clamp(4rem,8vw,6.5rem)}
.pilar{border-left:3px solid var(--turquesa);padding-left:1.2rem}
.pilar h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:2.2rem;line-height:1}
.pilar p{color:var(--gris);margin-top:.5rem;font-size:1rem}

/* ---------- formato ---------- */
.formato .titulo{font-size:clamp(2.4rem,6vw,4.6rem);margin-bottom:3rem;max-width:12em}
.reglas{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(0,223,249,.22);border:1px solid rgba(0,223,249,.22)}
.regla{background:var(--noche);padding:2rem 1.6rem;transition:background .2s}
.regla:hover{background:var(--noche-3)}
.regla small{font-family:var(--display);color:var(--turquesa);font-size:1.1rem;letter-spacing:.05em}
.regla h3{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:1.55rem;line-height:1.1;margin:.5rem 0 .6rem}
.regla p{color:#c3d2d4;font-size:1rem}

/* ---------- ruta ---------- */
.ruta{background:linear-gradient(180deg,var(--noche) 0%,#082028 100%)}
.ruta-cab{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:end;margin-bottom:3.5rem}
.ruta-cab .texto-grande+.texto-grande{margin-top:1rem}
.carrete{display:flex;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1rem clamp(1.1rem,4vw,2.5rem) 2rem;margin:0 calc(-1*clamp(1.1rem,4vw,2.5rem));scrollbar-color:var(--turquesa) transparent}
.carrete figure{flex:0 0 min(72vw,330px);margin:0;scroll-snap-align:center;position:relative;cursor:zoom-in;overflow:hidden;background:#000}
.carrete figure:nth-child(odd){transform:rotate(-1.4deg)}
.carrete figure:nth-child(even){transform:rotate(1.2deg);margin-top:1.4rem}
.carrete img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:saturate(.8);transition:transform .5s,filter .3s}
.carrete figure:hover img{transform:scale(1.05);filter:saturate(1.05)}
.carrete figcaption{position:absolute;inset:auto 0 0 0;padding:2.4rem .9rem .8rem;background:linear-gradient(transparent,rgba(3,12,15,.92));font-family:var(--cond);font-weight:600;font-size:1.05rem;line-height:1.2}
.ruta-pie{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,4rem);margin-top:3rem}
.momentos h3,.strava h3{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:1.05rem;color:var(--turquesa);margin-bottom:1rem}
.momentos ol{margin:0;padding:0;list-style:none;counter-reset:m}
.momentos li{counter-increment:m;font-family:var(--display);text-transform:uppercase;font-size:clamp(1.5rem,3.4vw,2.4rem);line-height:1.15;padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.12);display:flex;gap:1rem;align-items:baseline}
.momentos li::before{content:"0" counter(m);font-family:var(--cond);font-weight:700;font-size:1rem;color:var(--turquesa)}
.strava{background:var(--noche-3);padding:2rem;border-top:4px solid var(--turquesa);align-self:start}
.strava b{font-family:var(--display);font-weight:400;font-size:3.2rem;line-height:1;display:block;margin-bottom:.6rem}
.strava p{color:#c3d2d4}

/* ---------- after ---------- */
.after{background:#0b2a22;background:linear-gradient(160deg,#0a2a2a,#06141a 70%)}
.after-rejilla{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.after .titulo{font-size:clamp(2.6rem,6.5vw,5.2rem);margin-bottom:1.6rem}
.after-fotos{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.after-fotos img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.after-fotos img:first-child{grid-row:span 2;aspect-ratio:9/16}
.after-fotos img:not(:first-child){aspect-ratio:1}

/* ---------- ediciones ---------- */
.ediciones-cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2.5rem}
.mosaico{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:.7rem}
.mosaico figure{margin:0;position:relative;overflow:hidden;cursor:zoom-in;background:#000}
.mosaico figure:nth-child(1){grid-column:span 2;grid-row:span 2}
.mosaico figure:nth-child(4){grid-row:span 2}
.mosaico figure:nth-child(6){grid-column:span 2}
.mosaico img{width:100%;height:100%;object-fit:cover;filter:saturate(.85);transition:transform .5s,filter .3s}
.mosaico figure:hover img{transform:scale(1.05);filter:none}
.mosaico figcaption{position:absolute;left:.7rem;bottom:.6rem;font-family:var(--mano);font-size:1.15rem;text-shadow:0 2px 10px #000,0 0 3px #000}

/* ---------- aliados ---------- */
.aliados{background:var(--noche-2)}
.aliados-rejilla{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:1rem}
.aliado{border:1px solid rgba(0,223,249,.25);padding:2.2rem;display:flex;flex-direction:column;gap:.9rem;background:var(--noche)}
.aliado-cab{display:flex;align-items:center;gap:1.2rem;min-height:84px}
.aliado-cab img{height:84px;width:auto}
.aliado-nombre{font-family:var(--display);text-transform:uppercase;font-size:2.6rem;line-height:1}
.aliado small{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--gris);font-size:.9rem}
.aliado .lema{font-family:var(--mano);color:var(--lima);font-size:1.9rem;transform:rotate(-2deg);display:inline-block}
.aliado p{color:#c3d2d4}

.patros{margin-top:2.6rem}
.patros h3{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--gris);font-size:.9rem;margin-bottom:1rem}
.patros ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:rgba(0,223,249,.22);border:1px solid rgba(0,223,249,.22)}
.patros li{background:var(--noche)}
.patros a,.patros span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:120px;padding:1.2rem .8rem;font-family:var(--display);text-transform:uppercase;font-size:clamp(1.3rem,2.2vw,1.9rem);line-height:1.05;color:var(--hueso);text-decoration:none;transition:background .2s,color .2s}
.patros a:hover{background:var(--turquesa);color:#031014}
.patros li.con-logo{background:#fff}
.patros li.con-logo a,.patros li.con-logo span{min-height:150px;padding:1.4rem 1.2rem}
.patros li.con-logo a:hover{background:#e9fbfe}
.patros img{max-height:96px;max-width:100%;width:auto;object-fit:contain;transition:transform .2s}
.patros a:hover img{transform:scale(1.06)}
@media (max-width:900px){.patros ul{grid-template-columns:1fr 1fr}.patros li:last-child:nth-child(odd){grid-column:span 2}.patros a,.patros span{min-height:92px}.patros li.con-logo a,.patros li.con-logo span{min-height:120px}.patros img{max-height:76px}}

/* ---------- registro ---------- */
.registro{background:radial-gradient(1000px 500px at 80% 0%,rgba(0,223,249,.16),transparent 60%),var(--noche)}
.registro-rejilla{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.registro .titulo{font-size:clamp(2.6rem,5.2vw,4.3rem);margin-bottom:1.5rem}
.cupo{margin-top:2.4rem}
.velocimetro-caja{display:flex;justify-content:flex-start}
.velocimetro-svg{width:220px;height:auto;overflow:visible}
.vel-pista{stroke:rgba(255,255,255,.12)}
.vel-arco{stroke:var(--turquesa);transition:stroke-dashoffset 1.2s cubic-bezier(.4,0,.2,1)}
.vel-pct{font-family:var(--display);font-size:28px;fill:var(--turquesa);font-weight:400}
.vel-label{font-family:var(--cond);font-size:9px;fill:var(--gris);font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.caja{background:var(--noche-3);border:1px solid rgba(0,223,249,.3);padding:clamp(1.4rem,3.5vw,2.4rem);position:relative}
.caja::before{content:"";position:absolute;inset:-1px auto auto -1px;width:70px;height:5px;background:var(--turquesa)}
.caja h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:2rem;line-height:1.05;margin-bottom:.6rem}
.caja p{color:#c3d2d4}
.campo{display:block;margin-top:1.1rem}
.campo>span,.campo-titulo{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.95rem;color:var(--gris);display:block;margin-bottom:.4rem}
.campo input{width:100%;background:var(--noche);border:2px solid rgba(255,255,255,.18);color:var(--hueso);padding:.85rem 1rem;font-size:1.1rem;border-radius:0}
.campo input:focus{border-color:var(--turquesa);outline:0}
.fila-clave{display:flex;gap:.8rem;margin-top:1.3rem;align-items:stretch}
.fila-clave input{flex:1;min-width:0;background:var(--noche);border:2px solid rgba(255,255,255,.18);color:var(--hueso);padding:.85rem 1rem;font-size:1.15rem;letter-spacing:.12em;text-transform:uppercase;border-radius:0}
.fila-clave input:focus{border-color:var(--turquesa);outline:0}
.tiempos{display:grid;gap:.6rem}
.tiempo{position:relative;display:block;cursor:pointer}
.tiempo input{position:absolute;opacity:0}
.tiempo div{border:2px solid rgba(255,255,255,.18);padding:.8rem 1rem;display:flex;align-items:baseline;gap:1rem;background:var(--noche);transition:border-color .15s,background .15s}
.tiempo b{font-family:var(--display);font-weight:400;font-size:1.7rem;color:var(--turquesa);min-width:4.3em}
.tiempo em{font-style:normal;font-size:1rem}
.tiempo input:checked+div{border-color:var(--turquesa);background:rgba(0,223,249,.12)}
.tiempo input:focus-visible+div{outline:3px solid var(--lima)}
.acepta{display:flex;gap:.8rem;align-items:flex-start;margin:1.4rem 0;font-size:.92rem;color:#c3d2d4;cursor:pointer}
.acepta input{width:22px;height:22px;accent-color:var(--turquesa);flex:none;margin-top:.15rem}
.aviso{margin-top:1rem;font-family:var(--cond);font-weight:600;font-size:1.05rem;color:#ff8f7a;min-height:1.4em}
.aviso.ok{color:var(--lima)}
.exito b{font-family:var(--mano);color:var(--lima);font-size:1.5rem;font-weight:400;display:block;margin-top:1rem;transform:rotate(-2deg)}
.demo{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--lima);color:#0b1a00;font-family:var(--cond);font-weight:700;letter-spacing:.06em;text-align:center;padding:.45rem 1rem;font-size:.95rem}

/* ---------- corredores ---------- */
.corredores{background:#030c0f;border-top:1px solid rgba(0,223,249,.2)}
.corredores-rejilla{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.corredores .titulo{font-size:clamp(2.4rem,6vw,4.6rem);margin-bottom:1.3rem}
.zona{margin-top:3rem}
.zona-bloques{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-bottom:2.5rem}
.zona-bloque{background:var(--noche-3);padding:1.5rem;border-top:4px solid var(--turquesa)}
.zona-bloque h3{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:1.35rem;margin-bottom:.5rem}
.zona-bloque p{color:#c3d2d4;white-space:pre-line}
.zona-bloque a{display:inline-block;margin-top:.9rem;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.tabla-caja{overflow-x:auto}
table.equipos{width:100%;border-collapse:collapse;min-width:560px}
.equipos th{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.9rem;color:var(--turquesa);text-align:left;padding:.7rem .8rem;border-bottom:2px solid var(--turquesa)}
.equipos td{padding:.75rem .8rem;border-bottom:1px solid rgba(255,255,255,.1)}
.equipos td:first-child{font-family:var(--display);color:var(--turquesa);width:3rem}
.equipos td:nth-child(2){font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:1.15rem}

/* ---------- pie ---------- */
.pie{padding:4rem clamp(1.1rem,4vw,2.5rem) 5rem;background:#030c0f;text-align:center;border-top:1px solid rgba(255,255,255,.08)}
.pie img{height:110px;width:auto;margin:0 auto 1.5rem}
.pie .frase{font-family:var(--display);text-transform:uppercase;font-size:clamp(1.8rem,5vw,3rem);line-height:1}
.pie .tag{font-family:var(--mano);color:var(--turquesa);font-size:1.6rem;margin:.8rem 0 1.8rem;transform:rotate(-2deg);display:inline-block}
.pie nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.8rem;margin-bottom:2rem}
.pie nav a{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.12em;text-decoration:none;color:var(--hueso)}
.pie nav a:hover{color:var(--turquesa)}
.pie small{display:block;color:#6f878c;font-size:.85rem;max-width:46em;margin:0 auto;line-height:1.5}

/* ---------- visor ---------- */
.visor{position:fixed;inset:0;z-index:90;background:rgba(2,8,10,.95);display:flex;align-items:center;justify-content:center;padding:1rem}
.visor[hidden]{display:none}
.visor figure{margin:0;max-width:min(92vw,900px);text-align:center}
.visor img{max-height:82vh;width:auto;margin:0 auto}
.visor figcaption{font-family:var(--mano);font-size:1.3rem;margin-top:.8rem}
.visor-cerrar{position:absolute;top:.6rem;right:1rem;background:none;border:0;color:#fff;font-size:3rem;line-height:1;cursor:pointer}

/* ---------- aparición ---------- */
.aparece{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.aparece.visible{opacity:1;transform:none}

/* ---------- celular y tablet ---------- */
@media (max-width:900px){
  body{font-size:17px}
  .barra-menu{display:block;z-index:52}
  .barra-nav{position:fixed;inset:0;background:rgba(6,20,26,.98);flex-direction:column;justify-content:center;gap:1.7rem;transform:translateX(100%);transition:transform .3s;z-index:51}
  .barra-nav a{font-size:1.7rem}
  .barra-nav .boton{font-size:1.3rem;padding:.8rem 1.6rem}
  body.menu-abierto .barra-nav{transform:none}
  body.menu-abierto{overflow:hidden}
  body.menu-abierto .barra-menu span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  body.menu-abierto .barra-menu span:nth-child(2){opacity:0}
  body.menu-abierto .barra-menu span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  .barra-logo img{height:44px}
  .numeros-rejilla{grid-template-columns:1fr 1fr}
  .numero{border-right:0;border-bottom:1px solid rgba(255,255,255,.1);padding:1.5rem .8rem 1.5rem 0 !important}
  .numero:nth-child(even){padding-left:1rem !important;border-left:1px solid rgba(255,255,255,.1)}
  .concepto-rejilla,.ruta-cab,.ruta-pie,.after-rejilla,.registro-rejilla,.corredores-rejilla,.aliados-rejilla{grid-template-columns:1fr}
  .concepto-fotos{margin:1rem 6% 4rem 0}
  .pilares{grid-template-columns:1fr;margin-top:3rem}
  .reglas{grid-template-columns:1fr}
  .mosaico{grid-template-columns:1fr 1fr;grid-auto-rows:170px}
  .mosaico figure:nth-child(6){grid-column:span 1}
  .portada-datos span+span::before{margin-right:.8rem}
  .portada-datos{gap:.3rem .8rem}
  .fila-clave{flex-direction:column}
  .cinta-pista{font-size:1.2rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .cinta-pista{animation:none}
  .aparece{opacity:1;transform:none;transition:none}
}
@media (max-width:900px){.poster-2{bottom:-24%}.concepto-fotos{margin-bottom:6rem}}
