@font-face{font-family:'Pirulen';src:url('fonts/pirulen.woff2') format('woff2'),url('fonts/pirulen.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
:root{
  --bg:#000; --fg:#fff; --dim:rgba(255,255,255,.62); --faint:rgba(255,255,255,.34); --line:rgba(255,255,255,.28);
  --head:'Pirulen','Oxanium','Eurostile','Segoe UI',sans-serif; --body:'Manrope','Segoe UI',system-ui,sans-serif;
  --gutter:clamp(20px,5vw,72px);
  --k:1; /* multiplicador de tiempo de la intro: 1 = primera visita, .3 = visitas repetidas */
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--bg)}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-weight:300;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
::selection{background:#fff;color:#000}
#stars{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:0;transition:opacity 2.4s ease}
body.ready #stars{opacity:1}
main,header,footer{position:relative;z-index:1}

/* transición entre páginas (Chrome/Edge/Safari recientes; el resto navega normal) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vtout .3s ease both}
::view-transition-new(root){animation:vtin .5s ease both}
@keyframes vtout{to{opacity:0}}
@keyframes vtin{from{opacity:0}}

/* ---------- NAV ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:16px var(--gutter);background:linear-gradient(#000 40%,rgba(0,0,0,0))}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--head);font-weight:300;letter-spacing:.28em;font-size:.85rem;text-transform:uppercase}
.brand svg{width:26px;height:auto}
.nav ul{display:flex;gap:clamp(14px,3vw,38px);list-style:none;align-items:center}
.nav a.l{font-family:var(--head);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--dim);transition:color .25s;padding:8px 0;position:relative}
.nav a.l:hover,.nav a.l.on{color:var(--fg)}
.nav a.l.on::after{content:"";position:absolute;left:0;right:.3em;bottom:2px;height:1px;background:#fff}
.lang{font-family:var(--head);font-size:.72rem;letter-spacing:.25em;background:none;border:1px solid var(--line);color:var(--dim);padding:6px 10px;cursor:pointer;transition:.25s}
.lang:hover{color:#000;background:#fff;border-color:#fff}
.has-menu{position:relative}
.menu{position:absolute;top:100%;right:-20px;min-width:290px;padding:10px;background:rgba(0,0,0,.94);border:1px solid var(--line);opacity:0;visibility:hidden;transform:translateY(8px);transition:.3s;clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%)}
.menu a{display:block;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1);transition:background .25s,padding .25s}
.menu a:last-child{border-bottom:0}
.menu a b{display:block;font-family:var(--head);font-weight:300;letter-spacing:.22em;font-size:.8rem;text-transform:uppercase}
.menu a span{display:block;font-family:var(--head);font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);margin-top:2px}
.menu a:hover{background:rgba(255,255,255,.07);padding-left:22px}
@media(hover:hover){.has-menu:hover .menu,.has-menu:focus-within .menu{opacity:1;visibility:visible;transform:none}}
@media(max-width:640px){.nav .hide-s{display:none}.menu{display:none}}

/* ---------- HERO / INTRO ---------- */
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:110px var(--gutter) 70px}
.hex{width:min(70vw,380px);height:auto;overflow:visible;cursor:pointer;transform:translate(calc(var(--mx,0)*14px),calc(var(--my,0)*14px));transition:transform .7s ease-out}
.hex .frame{fill:none;stroke:#fff;stroke-width:2.2;stroke-linejoin:miter;stroke-dasharray:1;stroke-dashoffset:1}
.hex .main{fill:none;stroke:#fff;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.hex .pulse{fill:none;stroke:#fff;stroke-linecap:round;stroke-dasharray:.05 .95;stroke-dashoffset:1;opacity:0}
.hex .node{fill:#fff;opacity:0}
.hex .pop{opacity:0;transform-box:fill-box;transform-origin:center}
.hero.play .frame{animation:draw calc(1.8s*var(--k)) cubic-bezier(.55,0,.2,1) calc(.2s*var(--k)) forwards}
.hero.play .hex{animation:glow calc(1.8s*var(--k)) ease calc(1.7s*var(--k)) 1}
.hero.play .main{animation:draw calc(2.4s*var(--k)) cubic-bezier(.4,0,.2,1) calc((1.0 + var(--d))*1s*var(--k)) forwards}
.hero.play .node{animation:fade calc(.8s*var(--k)) ease calc((2.8 + var(--d))*1s*var(--k)) forwards}
.hero.play .pop{animation:pop calc(.7s*var(--k)) cubic-bezier(.2,1.4,.4,1) calc((1.5 + var(--d))*1s*var(--k)) forwards}
.hero.play .pulse{animation:run calc(var(--dur)*1s) linear calc((3.4 + var(--d))*1s*var(--k)) infinite}
.hero.play .nebwrap{transform-box:view-box;transform-origin:200px 232px;animation:breathe 18s ease-in-out calc(5s*var(--k)) infinite alternate}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}
@keyframes pop{from{opacity:0;transform:scale(0) rotate(45deg)}to{opacity:var(--o,1);transform:none}}
@keyframes run{0%{stroke-dashoffset:1;opacity:0}8%{opacity:1}92%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes breathe{from{transform:rotate(-2.5deg) scale(1)}to{transform:rotate(3deg) scale(1.035)}}
@keyframes glow{0%,100%{filter:drop-shadow(0 0 0 rgba(255,255,255,0))}45%{filter:drop-shadow(0 0 22px rgba(255,255,255,.5))}}

h1{font-family:var(--head);font-weight:300;text-transform:uppercase;letter-spacing:.2em;font-size:clamp(1.9rem,6.4vw,4.4rem);line-height:1.1;margin-top:clamp(28px,5vh,52px);padding-left:.2em}
.wm{min-height:1.1em}
.wm>span{display:inline-block;opacity:0;transform:translateY(14px);filter:blur(9px)}
.hero.play .wm{animation:track calc(2.4s*var(--k)) cubic-bezier(.2,.7,.2,1) calc(2.1s*var(--k)) both}
.hero.play .wm>span{animation:letter calc(1s*var(--k)) ease calc((2.2 + var(--i)*.055)*1s*var(--k)) forwards}
@keyframes track{from{letter-spacing:.75em}to{letter-spacing:.2em}}
@keyframes letter{to{opacity:1;transform:none;filter:blur(0)}}
.tag{margin-top:18px;font-family:var(--head);font-weight:300;text-transform:uppercase;letter-spacing:.34em;font-size:clamp(.62rem,1.5vw,.86rem);color:var(--dim)}
.tag .w{display:inline-block;opacity:0}
.tag i.w{font-style:normal;margin:0 .9em}
.hero.play .tag .w{animation:fade calc(.9s*var(--k)) ease calc(var(--d)*1s*var(--k)) forwards}
.sub{margin-top:26px;max-width:460px;color:var(--dim);font-size:.98rem;opacity:0}
.cue{margin-top:44px;width:1px;height:54px;background:linear-gradient(#fff,transparent);opacity:0}
.hero.play .sub{animation:fade calc(1s*var(--k)) ease calc(4.3s*var(--k)) forwards}
.hero.play .cue{animation:fade calc(1s*var(--k)) ease calc(4.7s*var(--k)) forwards,cue 2.2s ease-in-out calc(5.7s*var(--k)) infinite}
@keyframes cue{0%,100%{opacity:.25;transform:scaleY(.5);transform-origin:top}50%{opacity:1;transform:scaleY(1)}}
body[data-page=home] .nav{opacity:0}
body[data-page=home].navin .nav{opacity:1;transition:opacity 1.2s ease}


/* A sin barra (Λ) como en el logo. Ajusta --lam-w / --lam-h / --lam-x / --lam-sw para calzar con tu Pirulen */
.lam{display:inline}
.lam i{position:relative;display:inline-block;width:0;height:var(--lam-h,.72em);vertical-align:baseline} /* ancla la Λ a la línea base del texto */
.lam svg{position:absolute;left:var(--lam-x,0);bottom:0;width:var(--lam-w,.92em);height:100%;overflow:visible}
.lam b{font-weight:inherit;visibility:hidden} /* conserva ancho y espaciado de la A original */
.lam path{fill:none;stroke:currentColor;stroke-width:var(--lam-sw,13);stroke-linejoin:miter;stroke-miterlimit:10}
/* depuración: descomenta para ver la A original bajo la Λ
.lam b{visibility:visible;opacity:.3} */

/* ---------- SECCIONES ---------- */
section{padding:clamp(80px,14vh,160px) var(--gutter)}
.wrap{max-width:1180px;margin:0 auto}
.eyebrow{font-family:var(--head);font-size:.72rem;letter-spacing:.4em;text-transform:uppercase;color:var(--faint);display:flex;align-items:center;gap:16px;margin-bottom:34px}
.eyebrow::after{content:"";height:1px;width:64px;background:var(--line)}
h2{font-family:var(--head);font-weight:200;text-transform:uppercase;letter-spacing:.14em;font-size:clamp(1.8rem,5vw,3.6rem);line-height:1.1}
.reveal{opacity:0;transform:translateY(22px);transition:opacity 1s ease,transform 1s ease}
.reveal.in{opacity:1;transform:none}
.pagehead{padding:clamp(130px,20vh,190px) var(--gutter) 0}
.pagehead h1{margin-top:0;padding-left:0;font-weight:200;letter-spacing:.16em;font-size:clamp(2.2rem,7vw,5rem)}
.lead{margin-top:26px;color:var(--dim);max-width:560px}
.back{display:inline-block;margin-bottom:30px;font-family:var(--head);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--faint);transition:color .25s}
.back:hover{color:#fff}

/* ---------- JUEGO DESTACADO / FICHA ---------- */
.feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(32px,6vw,90px);align-items:center}
@media(max-width:820px){.feature{grid-template-columns:1fr}}
.hexbox{position:relative;width:min(100%,460px);aspect-ratio:.866/1;margin:0 auto}
.hexbox canvas{position:absolute;inset:0;width:100%;height:100%;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:#030303}
.hexbox svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.hexbox polygon{fill:none;stroke:#fff;stroke-width:1.6;vector-effect:non-scaling-stroke;transition:stroke-width .3s,filter .3s}
.cap{margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--head);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);max-width:460px;margin-inline:auto}
.cap button{font:inherit;letter-spacing:inherit;text-transform:inherit;background:none;border:1px solid var(--line);color:var(--dim);padding:7px 12px;cursor:pointer;transition:.25s}
.cap button:hover{background:#fff;color:#000;border-color:#fff}
.feature h2{margin-bottom:26px}
.feature p.d{color:var(--dim);max-width:520px;margin-bottom:28px;margin-top:26px}
.facts{list-style:none;border-top:1px solid var(--line);max-width:520px;margin-bottom:34px}
.facts li{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line);font-family:var(--head);font-size:.76rem;letter-spacing:.24em;text-transform:uppercase}
.facts span:first-child{color:var(--faint)}
.facts span:last-child{text-align:right}
.status{display:inline-flex;align-items:center;gap:10px}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 10px #fff;animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.25}}
.btn{display:inline-flex;align-items:center;gap:12px;padding:15px 26px;border:1px solid #fff;font-family:var(--head);font-size:.76rem;letter-spacing:.3em;text-transform:uppercase;background:none;color:#fff;cursor:pointer;transition:.3s;clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%,0 50%)}
.btn:hover{background:#fff;color:#000}
.btns{display:flex;gap:14px;flex-wrap:wrap}
.btn.ghost{border-color:var(--line);color:var(--dim)}
.ticks{list-style:none;max-width:520px;margin:0 0 34px;color:var(--dim)}
.ticks li{padding-left:26px;position:relative;margin-bottom:6px}
.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;background:#fff;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}

/* progreso y etapas */
.prog{max-width:520px;margin-bottom:30px}
.prog .row{display:flex;justify-content:space-between;font-family:var(--head);font-size:.72rem;letter-spacing:.26em;text-transform:uppercase}
.prog .row span:first-child{color:var(--faint)}
.prog .bar{height:1px;background:var(--line);position:relative;margin-top:12px}
.prog .bar i{position:absolute;left:0;top:-1px;height:3px;width:0;background:#fff;box-shadow:0 0 12px #fff;transition:width 2.2s cubic-bezier(.2,.7,.2,1)}
.stages{display:flex;max-width:520px;margin:0 0 34px;list-style:none}
.stg{flex:1;position:relative;padding-top:26px;font-family:var(--head);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.stg::before{content:"";position:absolute;left:0;top:0;width:14px;height:16px;background:var(--line);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.stg::after{content:"";position:absolute;left:20px;right:6px;top:8px;height:1px;background:var(--line)}
.stg:last-child::after{display:none}
.stg.done::before{background:#fff}
.stg.done::after{background:#fff}
.stg.cur{color:#fff}
.stg.cur::before{background:#fff;box-shadow:0 0 14px #fff;animation:pulse 2s infinite}

/* ---------- GAMES ---------- */
.gcards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,100px);margin-top:70px}
@media(max-width:820px){.gcards{grid-template-columns:1fr}}
.gcard{display:block}
.gcard:hover .hexbox polygon,.gcard:focus-visible .hexbox polygon{stroke-width:2.6;filter:drop-shadow(0 0 9px #fff)}
.gcard .meta{margin-top:26px;text-align:center}
.gcard .eyebrow::after{display:none}
.gcard h3{font-family:var(--head);font-weight:300;font-size:clamp(1.2rem,3vw,1.8rem);letter-spacing:.2em;text-transform:uppercase;margin:12px 0 10px}
.gcard p{color:var(--dim);max-width:380px;margin:0 auto 18px;font-size:.95rem}
.gcard .go{font-family:var(--head);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--dim);transition:color .25s,letter-spacing .3s}
.gcard:hover .go{color:#fff;letter-spacing:.4em}

/* ---------- MENU DE FILAS (home) ---------- */
.rows{margin-top:50px;border-bottom:1px solid var(--line)}
.rows a{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:28px 0;border-top:1px solid var(--line);font-family:var(--head);font-weight:200;text-transform:uppercase;letter-spacing:.14em;font-size:clamp(1.5rem,4.2vw,2.9rem);transition:padding .35s,background .35s}
.rows a small{font-size:.68rem;letter-spacing:.3em;font-weight:300;color:var(--faint);text-align:right}
.rows a:hover{padding-left:22px;background:linear-gradient(90deg,rgba(255,255,255,.07),transparent)}

/* ---------- DISCIPLINAS ---------- */
.disc{display:grid;grid-template-columns:repeat(3,1fr);margin-top:60px;border-top:1px solid var(--line)}
@media(max-width:820px){.disc{grid-template-columns:1fr}}
.d{padding:40px 30px 44px 0;border-bottom:1px solid var(--line)}
@media(min-width:821px){.d{border-bottom:0;padding-right:44px}.d+.d{padding-left:44px;border-left:1px solid var(--line)}}
.d svg{width:54px;height:54px;fill:none;stroke:#fff;stroke-width:1.3;margin-bottom:26px}
.d h3{font-family:var(--head);font-weight:300;font-size:1.05rem;letter-spacing:.26em;text-transform:uppercase;margin-bottom:12px}
.d p{color:var(--dim);font-size:.94rem;max-width:340px}

/* ---------- CONTACTO ---------- */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(32px,6vw,90px)}
@media(max-width:820px){.contact{grid-template-columns:1fr}}
form{display:grid;gap:26px}
label{display:block;font-family:var(--head);font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}
input,textarea{width:100%;background:none;border:0;border-bottom:1px solid var(--line);color:#fff;font:inherit;font-size:1rem;padding:8px 0 10px;outline:none;border-radius:0;transition:border-color .25s}
input:focus,textarea:focus{border-color:#fff}
textarea{resize:vertical;min-height:110px}
.hp{position:absolute;left:-9999px}
.msg{font-family:var(--head);font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;min-height:1.2em;color:var(--dim)}
.social{display:flex;flex-direction:column;gap:12px;margin-top:34px}
.social a{font-family:var(--head);font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;color:var(--dim);display:inline-flex;gap:14px;align-items:center;transition:color .25s}
.social a::before{content:"";width:22px;height:1px;background:currentColor;transition:width .3s}
.social a:hover{color:#fff}
.social a:hover::before{width:38px}

footer{padding:50px var(--gutter) 60px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;font-family:var(--head);font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--faint)}

noscript .x{display:none}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .hex .frame,.hex .main{stroke-dashoffset:0}
  .hex .node,.hex .pop,.wm>span,.tag .w,.sub,.cue{opacity:1!important;transform:none!important;filter:none!important}
  .hex .pop{opacity:var(--o,1)!important}
  .hex .pulse{display:none}
  .reveal{opacity:1;transform:none}
  body[data-page=home] .nav{opacity:1}
  #stars{opacity:1}
  html{scroll-behavior:auto}
}
