/* Dolphin IA — estilos comunes de todas las páginas */
:root{--abyss:#041419;--deep:#0b3a42;--aqua:#37e6c8;--foam:#eaf7f4;--mute:rgba(234,247,244,.66);--line:rgba(234,247,244,.10);--glass:rgba(4,20,25,.55)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;background:var(--abyss);color:var(--foam);font-family:'Geist',system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:'Bricolage Grotesque',sans-serif;letter-spacing:-.02em;margin:0}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}

/* agua + delfín (solo ordenador) */
#agua{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;pointer-events:none;display:block}
#nado{position:fixed;inset:0;width:100vw;height:100vh;z-index:50;pointer-events:none;filter:drop-shadow(0 10px 16px rgba(0,0,0,.45)) drop-shadow(0 0 10px rgba(55,230,200,.35))}
/* rayos de luz que entran desde la superficie */
.rayos{position:fixed;inset:-10% 0 0 0;z-index:0;pointer-events:none;background:repeating-linear-gradient(100deg,transparent 0 70px,rgba(143,249,230,.035) 70px 120px,transparent 120px 210px);mask-image:linear-gradient(180deg,#000 0%,transparent 70%);-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 70%);animation:rayos 14s ease-in-out infinite alternate}
@keyframes rayos{to{transform:translateX(-120px) skewX(-4deg)}}
.burbuja{position:fixed;z-index:49;pointer-events:none;border-radius:50%;border:1.5px solid rgba(234,247,244,.55);background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.5),rgba(55,230,200,.08) 60%);animation:sube 1.6s ease-out forwards}
@keyframes sube{to{transform:translate(var(--dx),-70px) scale(.4);opacity:0}}
/* aro de luz que acompaña al cursor (el cursor normal se sigue viendo) */
#aro{position:fixed;left:0;top:0;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:1.5px solid rgba(55,230,200,.7);box-shadow:0 0 18px rgba(55,230,200,.35);z-index:60;pointer-events:none;opacity:0;transition:width .2s,height .2s,margin .2s,background .2s,opacity .3s}
#aro.sobre{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(55,230,200,.10)}
/* foco de luz en tarjetas + inclinación 3D */
.luz{position:relative;overflow:hidden;transform-style:preserve-3d;transition:transform .25s ease,border-color .2s}
.luz::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(55,230,200,.16),transparent 45%)}
.luz:hover::before{opacity:1}
.luz:hover{border-color:rgba(55,230,200,.45)}
/* aparecer al hacer scroll */
.rev{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.rev.vis{opacity:1;transform:none}
/* palabras del titular que se separan con el ratón */
.hero h1 .w{display:inline-block;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
/* partículas de luz en el hero */
.punto{position:fixed;z-index:0;pointer-events:none;width:4px;height:4px;border-radius:50%;background:#8ff9e6;box-shadow:0 0 10px #37e6c8;opacity:.0;animation:brilla 4s ease-in-out infinite}
@keyframes brilla{50%{opacity:.8}}
@media (prefers-reduced-motion: reduce){.rev{opacity:1;transform:none}}

main,header,footer{position:relative;z-index:1}
header{position:sticky;top:0;z-index:20;background:rgba(4,20,25,.72);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
header nav{height:70px;display:flex;align-items:center;gap:26px}
.logo{display:flex;align-items:center;gap:10px;font-family:'Bricolage Grotesque';font-weight:800;font-size:21px;letter-spacing:-.04em}
.logo img{width:34px;height:34px}
.logo small{font:600 11px 'Geist Mono';letter-spacing:.12em;color:var(--aqua);text-transform:uppercase;margin-left:2px}
.menu{display:flex;gap:22px;margin-left:auto;font-size:14.5px;color:var(--mute)}
.menu a:hover{color:var(--foam)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:50px;padding:0 24px;border-radius:999px;font-weight:700;font-size:15.5px;border:0;font-family:inherit;transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-2px)}
.btn-p{background:var(--aqua);color:var(--abyss);box-shadow:0 10px 36px rgba(55,230,200,.25)}
.btn-g{border:1px solid rgba(234,247,244,.22);color:var(--foam);background:rgba(4,20,25,.4)}
.btn-s{height:40px;padding:0 18px;font-size:14px}

section{padding:96px 0}
.eyebrow{font:600 12px 'Geist Mono';letter-spacing:.16em;text-transform:uppercase;color:var(--aqua)}
.sec-t{font-size:clamp(32px,4.2vw,50px);line-height:1.05;margin:14px 0 14px}
.sec-s{color:var(--mute);font-size:18px;line-height:1.55;max-width:640px;margin:0}

.hero{min-height:calc(100vh - 70px);display:flex;align-items:center;padding:60px 0}
.hero h1{font-size:clamp(44px,5.6vw,80px);line-height:.98;font-weight:800;max-width:980px;margin:22px 0 24px}
.hero h1 em{font-style:normal;background:linear-gradient(90deg,#6ff5dc,#37e6c8 40%,#12aaa6);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{font-size:20px;line-height:1.55;color:var(--mute);max-width:620px;margin:0 0 34px}
.chip{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:999px;border:1px solid rgba(55,230,200,.3);background:rgba(55,230,200,.08);color:var(--aqua);font-size:14px;font-weight:600}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.trust{display:flex;flex-wrap:wrap;gap:22px;margin-top:34px;color:var(--mute);font-size:14.5px}
.trust span{display:flex;align-items:center;gap:7px}.trust i{color:var(--aqua);font-size:18px}
.pista{margin-top:46px;font:500 12px 'Geist Mono';color:rgba(234,247,244,.4);letter-spacing:.08em}

.grid5{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:46px}
.srv{grid-column:span 2;background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:24px;padding:28px;transition:border-color .2s,transform .2s}
.srv.ancho{grid-column:span 3}
.srv .ic{width:46px;height:46px;border-radius:14px;background:rgba(55,230,200,.12);display:grid;place-items:center;color:var(--aqua);font-size:24px}
.srv h3{font-size:23px;margin:18px 0 8px}
.srv p{color:var(--mute);margin:0 0 16px;line-height:1.5;font-size:15.5px}
.srv ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;font-size:14.5px}
.srv li{display:flex;gap:8px;align-items:flex-start}.srv li i{color:var(--aqua);margin-top:2px}

.pasos{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:46px;counter-reset:p}
.paso{border-top:2px solid rgba(55,230,200,.35);padding-top:20px}
.paso b{font:600 13px 'Geist Mono';color:var(--aqua)}
.paso h3{font-size:21px;margin:10px 0 8px}
.paso p{color:var(--mute);line-height:1.5;margin:0;font-size:15.5px}

.proys{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:46px}
.proy{background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.proy .vis{height:170px;background:radial-gradient(80% 90% at 70% 10%,rgba(55,230,200,.28),transparent 60%),linear-gradient(160deg,#0b3a42,#041419);display:flex;align-items:flex-end;padding:18px;font:600 12px 'Geist Mono';color:var(--aqua);letter-spacing:.1em}
.proy .tx{padding:22px}
.proy h3{font-size:21px;margin-bottom:8px}
.proy p{color:var(--mute);margin:0;font-size:15px;line-height:1.5}
.nota{color:rgba(234,247,244,.45);font-size:13px;margin-top:16px}

.contacto{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
form{background:var(--glass);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:28px;padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:grid;gap:7px;font-size:13.5px;color:var(--mute);font-weight:600}
label.full{grid-column:1/-1}
input,select,textarea{font:inherit;font-size:15px;color:var(--foam);background:rgba(234,247,244,.05);border:1px solid rgba(234,247,244,.14);border-radius:14px;padding:13px 14px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--aqua)}
select option{background:#041419}
textarea{min-height:110px;resize:vertical}
.check{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:13.5px}
.check input{width:18px;height:18px;margin-top:1px;accent-color:#37e6c8}
form .btn{grid-column:1/-1}
.datos{display:grid;gap:18px;margin-top:30px}
.datos div{display:flex;gap:12px;align-items:center;color:var(--mute)}.datos i{font-size:22px;color:var(--aqua)}

.duo{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card{border-radius:28px;padding:36px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(10px)}
.card.acad{background:radial-gradient(80% 120% at 100% 0%,rgba(55,230,200,.18),transparent 60%),var(--glass);border-color:rgba(55,230,200,.28)}
.card h3{font-size:30px;margin:12px 0 10px}
.card p{color:var(--mute);line-height:1.55;margin:0 0 22px}
.card .precio{font-family:'Bricolage Grotesque';font-weight:800;font-size:40px;margin:0 0 18px}
.card .precio small{font:500 14px Geist;color:var(--mute)}
.token{display:flex;gap:22px;align-items:center}
.token img{width:120px;height:120px;border-radius:50%;flex:none;box-shadow:0 0 0 4px rgba(55,230,200,.25),0 18px 40px rgba(0,0,0,.4)}
.pronto{display:inline-block;font:600 11px 'Geist Mono';letter-spacing:.14em;padding:5px 10px;border-radius:999px;background:#ffc56b;color:#041419}
.aviso{font-size:12.5px;color:rgba(234,247,244,.5);line-height:1.5;margin-top:14px}

footer{border-top:1px solid var(--line);padding:30px 0 40px;color:var(--mute);font-size:13px;background:rgba(4,20,25,.8)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:center;width:100%}
.rota{display:inline-block;color:var(--aqua);border-right:3px solid var(--aqua);padding-right:4px;animation:caret 1s steps(1) infinite}
@keyframes caret{50%{border-color:transparent}}
/* demo de agente en el hero */
.chat{background:rgba(4,20,25,.6);backdrop-filter:blur(14px);border:1px solid rgba(55,230,200,.25);border-radius:26px;padding:18px;box-shadow:0 30px 80px rgba(0,0,0,.45);animation:flota 6s ease-in-out infinite}
@keyframes flota{50%{transform:translateY(-10px)}}
.chat-h{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line);font-weight:700}
.chat-h .on{width:9px;height:9px;border-radius:50%;background:#37e6c8;box-shadow:0 0 10px #37e6c8;animation:late 1.6s infinite}
@keyframes late{50%{opacity:.3}}
.chat-h small{margin-left:auto;font:500 11px 'Geist Mono';color:var(--mute)}
.msgs{display:flex;flex-direction:column;gap:9px;min-height:250px;padding-top:12px}
.m{max-width:85%;padding:10px 13px;border-radius:16px;font-size:14px;line-height:1.4;animation:entra .4s cubic-bezier(.2,.8,.2,1)}
.m.c{align-self:flex-end;background:rgba(234,247,244,.09);border-bottom-right-radius:5px}
.m.a{align-self:flex-start;background:rgba(55,230,200,.16);border:1px solid rgba(55,230,200,.25);border-bottom-left-radius:5px}
.m.t{display:flex;gap:4px}.m.t i{width:7px;height:7px;border-radius:50%;background:var(--aqua);animation:bota 1s infinite}.m.t i:nth-child(2){animation-delay:.15s}.m.t i:nth-child(3){animation-delay:.3s}
@keyframes bota{50%{transform:translateY(-4px);opacity:.5}}
@keyframes entra{from{opacity:0;transform:translateY(10px) scale(.96)}}
/* cinta de tecnologías */
.cinta{overflow:hidden;border-block:1px solid var(--line);background:rgba(4,20,25,.5);padding:18px 0;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.cinta div{display:flex;gap:56px;width:max-content;animation:cinta 32s linear infinite;font:600 15px 'Geist Mono';color:rgba(234,247,244,.55);letter-spacing:.06em}
.cinta span{display:flex;align-items:center;gap:10px}.cinta i{color:var(--aqua);font-size:18px}
@keyframes cinta{to{transform:translateX(-50%)}}
/* línea del proceso que se rellena al bajar */
.pasos{position:relative}
.linea{position:absolute;left:0;top:-2px;height:2px;width:0;background:linear-gradient(90deg,#37e6c8,#8ff9e6);box-shadow:0 0 12px #37e6c8;transition:width .2s linear}
.paso b{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(55,230,200,.4);transition:background .3s,color .3s}
.paso.ok b{background:var(--aqua);color:var(--abyss)}
/* mini animaciones de proyectos */
.vis{position:relative;overflow:hidden}
.vis svg{position:absolute;inset:0;width:100%;height:100%}
.trazo{stroke-dasharray:600;stroke-dashoffset:600;animation:traza 3.5s ease-in-out infinite}
@keyframes traza{60%,100%{stroke-dashoffset:0}}
.vela{animation:vela 2.4s ease-in-out infinite;transform-origin:bottom;transform-box:fill-box}
@keyframes vela{50%{transform:scaleY(.55)}}
.barra{position:absolute;left:18px;right:18px;top:60px;height:10px;border-radius:9px;background:rgba(234,247,244,.1);overflow:hidden}
.barra i{display:block;height:100%;width:0;background:linear-gradient(90deg,#12aaa6,#37e6c8);border-radius:9px;animation:llena 4s ease-in-out infinite}
@keyframes llena{70%,100%{width:100%}}
/* ---------- $DOLPHIN ---------- */
.tk{position:relative;overflow:hidden;border-radius:36px;padding:70px 48px;border:1px solid rgba(255,197,107,.25);background:radial-gradient(70% 90% at 80% 20%,rgba(255,197,107,.16),transparent 60%),radial-gradient(60% 80% at 10% 90%,rgba(55,230,200,.18),transparent 60%),rgba(4,20,25,.7);backdrop-filter:blur(10px)}
.tk-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center;position:relative;z-index:2}
.escena{position:relative;height:380px;display:grid;place-items:center;perspective:900px}
.moneda{position:relative;width:250px;height:250px;transform-style:preserve-3d;animation:gira 7s linear infinite;cursor:pointer}
.moneda.rapida{animation-duration:.9s}
@keyframes gira{to{transform:rotateY(360deg)}}
.cara{position:absolute;inset:0;border-radius:50%;backface-visibility:hidden;overflow:hidden;border:10px solid #ffc56b;box-shadow:inset 0 0 0 4px #e9a23b,0 0 50px rgba(255,197,107,.45)}
.cara img{width:100%;height:100%;object-fit:cover}
.cara.tras{transform:rotateY(180deg);background:radial-gradient(circle,#ffd98f,#e9a23b);display:grid;place-items:center;font:800 54px 'Bricolage Grotesque';color:#041419}
.orbita{position:absolute;inset:0;animation:orbita 12s linear infinite}
.orbita span{position:absolute;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe2a8,#e9a23b);border:3px solid #ffc56b;display:grid;place-items:center;font:800 15px 'Bricolage Grotesque';color:#041419;box-shadow:0 0 16px rgba(255,197,107,.5)}
@keyframes orbita{to{transform:rotate(360deg)}}
.orbita span:nth-child(1){left:8%;top:18%}.orbita span:nth-child(2){right:6%;top:30%}.orbita span:nth-child(3){left:20%;bottom:6%}.orbita span:nth-child(4){right:18%;bottom:10%}
.tk h2{font-size:clamp(44px,6vw,78px);line-height:.95;margin:16px 0 14px}
.tk h2 span{background:linear-gradient(90deg,#ffc56b,#ffe2a8,#37e6c8,#ffc56b);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:brillo 5s linear infinite}
@keyframes brillo{to{background-position:300% 0}}
.usos{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:26px 0}
.uso{background:rgba(234,247,244,.05);border:1px solid var(--line);border-radius:18px;padding:16px;transition:transform .25s,border-color .25s}
.uso:hover{transform:translateY(-4px) rotate(-1deg);border-color:rgba(255,197,107,.5)}
.uso .e{font-size:28px;display:inline-block;animation:salta 2.6s ease-in-out infinite}
.uso:nth-child(2) .e{animation-delay:.3s}.uso:nth-child(3) .e{animation-delay:.6s}.uso:nth-child(4) .e{animation-delay:.9s}
@keyframes salta{20%{transform:translateY(-6px) rotate(-8deg)}40%{transform:none}}
.uso b{display:block;margin:6px 0 4px;font-size:16px}.uso p{margin:0;color:var(--mute);font-size:13.5px;line-height:1.45}
.ruta{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 24px}
.ruta span{font:600 12px 'Geist Mono';padding:7px 12px;border-radius:999px;border:1px solid var(--line);color:var(--mute)}
.ruta span.ya{border-color:#37e6c8;color:#37e6c8;box-shadow:0 0 12px rgba(55,230,200,.25)}
.btn-o{background:linear-gradient(90deg,#ffc56b,#ffe2a8);color:#041419}
.propuesta{display:inline-block;font:700 11px 'Geist Mono';letter-spacing:.12em;padding:5px 10px;border-radius:999px;border:1px dashed #ffc56b;color:#ffc56b;margin-left:8px}
.confeti{position:fixed;z-index:70;pointer-events:none;font:800 13px 'Bricolage Grotesque';width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#041419;background:radial-gradient(circle at 35% 35%,#ffe2a8,#e9a23b);border:2px solid #ffc56b;animation:cae 1.4s cubic-bezier(.2,.6,.4,1) forwards}
@keyframes cae{to{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:0}}
@media (max-width:900px){.hero-grid,.tk-grid{grid-template-columns:1fr}.usos{grid-template-columns:1fr}.tk{padding:44px 22px}.escena{height:300px}.moneda{width:200px;height:200px}}
.estado{grid-column:1/-1;margin:0;font-size:14px;min-height:20px;color:var(--mute)}
.estado.ok{color:#37e6c8}.estado.mal{color:#ff8a8a}
.logos{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:40px}
.logo-t{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:132px;border-radius:22px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(10px);transition:transform .25s,border-color .25s}
.logo-t img{width:40px;height:40px;filter:invert(1) brightness(.92);opacity:.75;transition:opacity .25s,transform .35s cubic-bezier(.2,.8,.2,1),filter .25s}
.logo-t span{font:600 13px 'Geist Mono';color:var(--mute);letter-spacing:.04em}
.logo-t:hover img{opacity:1;transform:scale(1.18) rotate(-6deg);filter:invert(76%) sepia(46%) saturate(560%) hue-rotate(118deg) brightness(102%)}
.logos.vis .logo-t{animation:pop .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}
@keyframes pop{from{opacity:0;transform:translateY(20px) scale(.9)}}
@media (max-width:900px){.logos{grid-template-columns:repeat(3,1fr)}.logo-t{height:110px}}
.cubo{position:relative;display:flex;align-items:center;gap:8px;height:52px;padding:0 12px 0 6px;border-radius:16px;border:1px dashed rgba(255,197,107,.45);background:rgba(255,197,107,.07);color:#ffc56b;font:600 12.5px Geist;cursor:grab;touch-action:none;transition:transform .2s}
.cubo img{width:40px;height:44px;object-fit:contain;transition:transform .25s;pointer-events:none}
.cubo:hover img{transform:rotate(-12deg) translateY(-3px);animation:menea .5s ease-in-out infinite alternate}
.cubo.saca{cursor:grabbing;transform:scale(.95)}
@keyframes menea{to{transform:rotate(10deg) translateY(-3px)}}
.pez{position:fixed;left:0;top:0;width:52px;margin:-20px 0 0 -26px;z-index:55;pointer-events:none;filter:drop-shadow(0 6px 10px rgba(0,0,0,.4))}
.pez.arrastra{width:62px;z-index:80}
.pez.tragado{transition:transform .2s ease-in,opacity .2s;opacity:.2}
.globo{position:fixed;z-index:60;pointer-events:none;font:800 22px 'Bricolage Grotesque';color:#ffc56b;transform:translate(-50%,0);animation:globo 1.3s ease-out forwards;text-shadow:0 4px 12px rgba(0,0,0,.5)}
@keyframes globo{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}20%{opacity:1;transform:translate(-50%,0) scale(1.15)}100%{opacity:0;transform:translate(-50%,-40px) scale(1)}}
@media (max-width:900px){.cubo{display:none}}

@media (max-width:900px){
  .menu{display:none}
  .grid5{grid-template-columns:1fr}.srv,.srv.ancho{grid-column:auto}
  .pasos,.proys,.duo,.contacto{grid-template-columns:1fr}
  form{grid-template-columns:1fr}
  section{padding:64px 0}
  .token{flex-direction:column;align-items:flex-start}
}

/* ---------- Easter eggs ---------- */
.logro{position:fixed;left:50%;bottom:26px;z-index:90;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:12px 18px;border-radius:16px;background:rgba(4,20,25,.92);border:1px solid rgba(255,197,107,.5);box-shadow:0 18px 50px rgba(0,0,0,.5),0 0 24px rgba(255,197,107,.2);font-size:15px;animation:logro .45s cubic-bezier(.2,.8,.2,1);transition:opacity .5s,transform .5s}
.logro span{font-size:24px}.logro.fuera{opacity:0;transform:translate(-50%,20px)}
@keyframes logro{from{opacity:0;transform:translate(-50%,30px) scale(.9)}}
.fiesta body{animation:disco 1.2s linear infinite}
@keyframes disco{0%{filter:hue-rotate(0)}100%{filter:hue-rotate(360deg)}}
.salta-delfin{position:fixed;z-index:85;font-size:44px;pointer-events:none;animation:saltito 1.8s cubic-bezier(.3,.7,.4,1) forwards}
@keyframes saltito{0%{transform:translate(0,0) rotate(0)}50%{transform:translate(60px,-260px) rotate(calc(var(--r)/2))}100%{transform:translate(120px,0) rotate(var(--r));opacity:0}}
.logo-salta img{animation:logosalta .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes logosalta{40%{transform:translateY(-8px) rotate(-18deg) scale(1.12)}}
.cohete{position:fixed;z-index:85;font-size:54px;pointer-events:none;animation:cohete 2.2s ease-in forwards}
@keyframes cohete{0%{transform:translate(-50%,-50%) rotate(-45deg)}100%{transform:translate(40vw,-120vh) rotate(-45deg) scale(1.6)}}

/* ---------- Páginas de cuenta (entrar, registro, recuperar) ---------- */
.cuenta{min-height:calc(100vh - 70px);display:grid;place-items:center;padding:50px 20px}
.cuenta-caja{width:100%;max-width:980px;display:grid;grid-template-columns:1fr 1fr;border-radius:32px;overflow:hidden;border:1px solid rgba(55,230,200,.22);background:rgba(4,20,25,.66);backdrop-filter:blur(16px);box-shadow:0 40px 100px rgba(0,0,0,.5)}
.cuenta-form{padding:44px 42px;display:flex;flex-direction:column;gap:16px}
.cuenta-form h1{font-size:38px;line-height:1.05}
.cuenta-form .sub{color:var(--mute);margin:-6px 0 6px;line-height:1.5}
.cuenta-form label{display:grid;gap:7px;font-size:13.5px;color:var(--mute);font-weight:600}
.cuenta-form .btn{width:100%}
.campo-pass{position:relative}.campo-pass input{width:100%;padding-right:48px}
.ver{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:10px;border:0;background:transparent;color:var(--mute);font-size:19px;cursor:pointer}
.ver:hover{color:var(--aqua);background:rgba(55,230,200,.1)}
.fila{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;color:var(--mute)}
.fila a,.enlace{color:var(--aqua)}
.separa{display:flex;align-items:center;gap:12px;color:rgba(234,247,244,.4);font-size:12.5px}.separa::before,.separa::after{content:"";flex:1;height:1px;background:var(--line)}
.tabs{display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:rgba(234,247,244,.06);gap:4px}
.tabs button{height:40px;border-radius:999px;border:0;background:transparent;color:var(--mute);font:600 14px Geist;cursor:pointer;transition:background .2s,color .2s}
.tabs button.on{background:var(--aqua);color:var(--abyss)}
.msg-form{margin:0;font-size:14px;min-height:20px;line-height:1.45}.msg-form.ok{color:#37e6c8}.msg-form.mal{color:#ff8a8a}
.cuenta-mascota{position:relative;display:grid;place-items:center;padding:30px;background:radial-gradient(70% 60% at 50% 45%,rgba(55,230,200,.22),transparent 70%),linear-gradient(160deg,#0b3a42,#041419)}
.cuenta-mascota img{width:min(280px,80%);filter:drop-shadow(0 24px 40px rgba(0,0,0,.45));transition:transform .35s cubic-bezier(.3,1.5,.5,1)}
.cuenta-mascota img.cambia{transform:scale(.9) rotate(-4deg)}
.bocadillo{position:absolute;top:34px;left:50%;transform:translateX(-50%);max-width:82%;padding:12px 16px;border-radius:18px;background:#eaf7f4;color:#041419;font-weight:600;font-size:14.5px;line-height:1.35;text-align:center;box-shadow:0 12px 30px rgba(0,0,0,.3);animation:entra .35s cubic-bezier(.2,.8,.2,1)}
.bocadillo::after{content:"";position:absolute;left:50%;bottom:-8px;width:16px;height:16px;background:#eaf7f4;transform:translateX(-50%) rotate(45deg)}
.fuerza{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.fuerza i{height:6px;border-radius:6px;background:rgba(234,247,244,.12);transition:background .3s}
.fuerza.n1 i:nth-child(-n+1){background:#ff8a8a}.fuerza.n2 i:nth-child(-n+2){background:#ffc56b}.fuerza.n3 i:nth-child(-n+3){background:#ffe27a}.fuerza.n4 i:nth-child(-n+4){background:#8ff9e6}.fuerza.n5 i{background:#37e6c8}
.tipo{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tipo label{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:16px;border:1px solid rgba(234,247,244,.14);cursor:pointer;color:var(--foam);font-size:14.5px;transition:border-color .2s,background .2s}
.tipo label small{color:var(--mute);font-weight:500;font-size:12.5px}.tipo input{display:none}
.tipo label:has(input:checked){border-color:var(--aqua);background:rgba(55,230,200,.08)}
.tipo i{font-size:24px;color:var(--aqua)}
@media (max-width:860px){.cuenta-caja{grid-template-columns:1fr}.cuenta-mascota{order:-1;padding:24px 20px 10px}.cuenta-mascota img{width:150px}.bocadillo{position:static;transform:none;margin-bottom:12px}.bocadillo::after{display:none}.cuenta-form{padding:28px 22px}}

/* ---------- Panel de empresa ---------- */
.panel{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 70px)}
.lateral{border-right:1px solid var(--line);padding:26px 16px;display:flex;flex-direction:column;gap:6px;background:rgba(4,20,25,.6);backdrop-filter:blur(12px)}
.lateral a{display:flex;align-items:center;gap:11px;height:44px;padding:0 14px;border-radius:12px;color:var(--mute);font-weight:600;font-size:14.5px;transition:background .2s,color .2s}
.lateral a i{font-size:20px}.lateral a:hover{background:rgba(234,247,244,.05);color:var(--foam)}.lateral a.on{background:rgba(55,230,200,.12);color:var(--aqua)}
.lateral .num{margin-left:auto;font:700 11px 'Geist Mono';background:#ffc56b;color:#041419;border-radius:999px;padding:2px 7px}
.lateral .abajo{margin-top:auto}
.panel-main{padding:32px 34px 60px;display:flex;flex-direction:column;gap:20px}
.saludo{display:flex;align-items:center;gap:20px}
.saludo img{width:92px;filter:drop-shadow(0 12px 20px rgba(0,0,0,.4));animation:flota 5s ease-in-out infinite}
.saludo h1{font-size:34px}.saludo p{margin:4px 0 0;color:var(--mute)}
.demo{display:inline-flex;align-items:center;gap:6px;font:700 11px 'Geist Mono';letter-spacing:.1em;padding:5px 10px;border-radius:999px;border:1px dashed #ffc56b;color:#ffc56b}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi{border-radius:20px;padding:18px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(10px)}
.kpi small{color:var(--mute);font-size:13px}.kpi b{display:block;font-family:'Bricolage Grotesque';font-size:30px;margin-top:6px}
.cols{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.caja{border-radius:24px;padding:22px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(10px)}
.caja h2{font-size:20px;margin-bottom:14px;display:flex;align-items:center;gap:10px}.caja h2 a{margin-left:auto;font:600 13px Geist;color:var(--aqua)}
.proyecto{padding:14px 0;border-top:1px solid var(--line)}.proyecto:first-of-type{border-top:0}
.proyecto .top{display:flex;justify-content:space-between;gap:10px;font-weight:600}.proyecto .top span{font:600 12px 'Geist Mono';color:var(--aqua)}
.barra-p{height:9px;border-radius:9px;background:rgba(234,247,244,.1);margin:10px 0 6px;overflow:hidden}.barra-p i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#12aaa6,#37e6c8);width:0;transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.proyecto small{color:var(--mute);font-size:13px}
.lista{display:flex;flex-direction:column}
.item{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:14.5px}.item:first-child{border-top:0}
.item i.ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(55,230,200,.1);color:var(--aqua);font-size:19px;flex:none}
.item .t{flex:1}.item .t small{display:block;color:var(--mute);font-size:12.5px}
.chip-e{font:700 11px 'Geist Mono';padding:4px 9px;border-radius:999px;background:rgba(234,247,244,.08);color:var(--mute)}
.chip-e.pend{background:rgba(255,197,107,.15);color:#ffc56b}.chip-e.ok{background:rgba(55,230,200,.15);color:#37e6c8}
.mini-btn{height:34px;padding:0 14px;border-radius:999px;border:0;background:var(--aqua);color:var(--abyss);font:700 13px Geist;cursor:pointer}
@media (max-width:980px){.panel{grid-template-columns:1fr}.lateral{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px}.lateral a{flex:none}.lateral .abajo{margin:0}.kpis{grid-template-columns:repeat(2,1fr)}.cols{grid-template-columns:1fr}.panel-main{padding:22px 18px}}

/* ---------- 404 + minijuego ---------- */
.e404{min-height:calc(100vh - 70px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:30px;max-width:1200px;margin:0 auto;padding:40px 24px}
.e404 .num{font:800 clamp(110px,16vw,200px)/.9 'Bricolage Grotesque';background:linear-gradient(180deg,#8ff9e6,#12aaa6);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.05em}
.e404 h1{font-size:clamp(30px,3.6vw,44px);margin:6px 0 12px}.e404 p{color:var(--mute);font-size:17px;line-height:1.55;max-width:460px}
.juego{position:relative;height:440px;border-radius:28px;border:1px solid rgba(55,230,200,.25);overflow:hidden;background:linear-gradient(180deg,rgba(11,58,66,.7),rgba(4,20,25,.85));cursor:none;touch-action:none}
.juego canvas{position:absolute;inset:0;width:100%;height:100%}
.marcador{position:absolute;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;font:700 14px 'Geist Mono';color:var(--foam);pointer-events:none}
.marcador span{background:rgba(4,20,25,.7);padding:6px 10px;border-radius:10px}
.portada-juego{position:absolute;inset:0;display:grid;place-items:center;text-align:center;background:rgba(4,20,25,.55);backdrop-filter:blur(3px);cursor:pointer}
.portada-juego img{width:120px}.portada-juego b{display:block;font:800 24px 'Bricolage Grotesque';margin:8px 0 4px}.portada-juego small{color:var(--mute)}
@media (max-width:900px){.e404{grid-template-columns:1fr;text-align:center}.e404 p{margin:0 auto}.juego{height:360px}}

/* ---------- Legal ---------- */
.legal{max-width:860px;margin:0 auto;padding:50px 24px 80px}
.legal h1{font-size:44px;margin-bottom:8px}
.legal .tabs{max-width:520px;grid-template-columns:repeat(3,1fr);margin:24px 0 30px}
.legal article{background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:24px;padding:32px;line-height:1.65;color:rgba(234,247,244,.86)}
.legal article h2{font-size:22px;margin:26px 0 10px;color:var(--foam)}.legal article h2:first-child{margin-top:0}
.legal article a{color:var(--aqua)}

/* en las páginas secundarias el delfín nada por detrás del contenido */
.sub #nado{z-index:0}
.panel{padding:0}
.entrar-m{display:none;width:42px;height:42px;border-radius:50%;place-items:center;border:1px solid var(--line);color:var(--foam);font-size:22px}
@media (max-width:900px){.entrar-m{display:grid;margin-left:auto}}
