
:root{
  --pink:#ff168f;
  --pink2:#ff5dbb;
  --cyan:#44d9ff;
  --green:#6dff6d;
  --glass:rgba(8,8,10,.72);
  --line:rgba(255,255,255,.14);
}

*{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth}

body{
  min-height:100vh;
  color:#fff;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:#050506;
}

.bg{
  position:fixed;
  inset:0;
  background:url("background.webp") center center/cover no-repeat;
  z-index:-3;
}

.shade{
  position:fixed;
  inset:0;
  background:
    radial-gradient(circle at 67% 38%, rgba(255,22,143,.18), transparent 25%),
    linear-gradient(90deg, rgba(0,0,0,.25), rgba(0,0,0,.58) 50%, rgba(0,0,0,.88)),
    linear-gradient(180deg, rgba(0,0,0,.20), rgba(0,0,0,.85));
  z-index:-2;
}

.topbar{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:20px 6vw;
  background:rgba(0,0,0,.42);
  border-bottom:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(8px);
  position:sticky;
  top:0;
  z-index:10;
}

.brand{
  display:flex;
  gap:12px;
  align-items:baseline;
  font-weight:950;
  letter-spacing:-1px;
}

.brand-main{font-size:34px}
.brand-sub{
  font-size:28px;
  color:var(--pink);
  transform:rotate(-5deg);
}

nav{
  display:flex;
  gap:26px;
  align-items:center;
}

nav a{
  color:#fff;
  text-decoration:none;
  text-transform:uppercase;
  font-weight:800;
  font-size:13px;
  letter-spacing:.7px;
}

nav a:hover{color:var(--pink)}

.nav-button{
  border:1px solid var(--pink);
  color:var(--pink)!important;
  border-radius:10px;
  padding:11px 18px;
}

main{padding:0 6vw 40px}

.hero{
  min-height:630px;
  display:grid;
  grid-template-columns:minmax(380px,1fr) 360px;
  gap:48px;
  align-items:center;
}

.kicker{
  display:inline-block;
  color:var(--pink2);
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:2px;
  margin-bottom:18px;
}

.hero h1{
  font-size:clamp(74px,9vw,138px);
  line-height:.78;
  letter-spacing:-6px;
  text-shadow:0 8px 35px rgba(0,0,0,.8);
}

.hero h1 span{
  color:var(--pink);
  display:inline-block;
}

.hero h2{
  margin-top:30px;
  font-size:25px;
  text-transform:uppercase;
}

.lead{
  max-width:630px;
  margin-top:18px;
  color:#ddd;
  font-size:18px;
  line-height:1.65;
}

.hero-actions{
  display:flex;
  gap:16px;
  margin-top:30px;
  flex-wrap:wrap;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:14px 24px;
  border-radius:9px;
  text-decoration:none;
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:.4px;
}

.primary{
  background:linear-gradient(135deg,var(--pink),#ff4db5);
  color:#fff;
  box-shadow:0 0 28px rgba(255,22,143,.38);
}

.manifesto{
  background:linear-gradient(180deg,rgba(0,0,0,.82),rgba(0,0,0,.62));
  border:1px solid rgba(255,22,143,.55);
  box-shadow:0 0 45px rgba(255,22,143,.18);
  border-radius:22px;
  padding:26px;
  position:relative;
  overflow:hidden;
}

.manifesto:before{
  content:"";
  position:absolute;
  inset:-2px;
  background:radial-gradient(circle at top right, rgba(255,22,143,.20), transparent 45%);
  pointer-events:none;
}

.manifesto h3{
  font-size:28px;
  line-height:1.08;
  text-transform:uppercase;
  color:#fff;
  margin-bottom:18px;
}

.manifesto ul{
  list-style:none;
  display:grid;
  gap:9px;
  color:#e7e7e7;
  font-size:15px;
}

.manifesto li:before{
  content:"✦";
  color:var(--pink);
  margin-right:8px;
}

.manifesto p{
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.22);
  font-size:20px;
  line-height:1.38;
  font-weight:800;
}

.manifesto strong{color:var(--pink)}

.note-label{
  margin-top:22px;
  color:#ffb8df;
  font-weight:900;
  letter-spacing:1.5px;
  text-transform:uppercase;
  transform:rotate(-2deg);
  display:inline-block;
  border-left:4px solid var(--pink);
  padding-left:12px;
}

.grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-top:-35px;
}

.card{
  background:var(--glass);
  border:1px solid var(--line);
  border-radius:18px;
  padding:24px;
  min-height:275px;
  backdrop-filter:blur(8px);
  box-shadow:0 12px 40px rgba(0,0,0,.28);
}

.icon{
  color:var(--pink);
  font-size:26px;
  margin-bottom:14px;
}

.card h3{
  text-transform:uppercase;
  font-size:18px;
  margin-bottom:14px;
}

.card p,.card li{
  color:#ddd;
  line-height:1.55;
  font-size:15px;
}

.card ul{margin:18px 0 20px 18px}

.wide-link{
  display:block;
  margin-top:22px;
  border:1px solid var(--pink);
  color:#ff66bd;
  text-decoration:none;
  padding:14px;
  border-radius:10px;
  text-align:center;
  font-weight:900;
}

.credentials{
  display:grid;
  gap:10px;
  margin:18px 0;
}

.credentials div{
  border:1px solid rgba(255,22,143,.5);
  background:rgba(255,22,143,.08);
  border-radius:10px;
  padding:12px 14px;
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.credentials span{color:#bbb}
.credentials strong{color:#fff}
.note{font-size:13px!important;color:#aaa!important}

.apps{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.app-block{
  padding:14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(255,255,255,.04);
}

.app-block h4{
  color:var(--cyan);
  text-transform:uppercase;
  font-size:13px;
  margin-bottom:8px;
}

.app-block a{
  color:#ff66bd;
  font-weight:900;
  text-decoration:none;
}

.subsonic{
  margin-top:18px;
  padding:13px;
  border-radius:12px;
  background:rgba(255,22,143,.10);
}

.subsonic span,.subsonic small{
  display:block;
  color:#bbb;
}

.subsonic strong{
  display:inline-block;
  margin:6px 0;
  color:#fff;
}

form{
  display:grid;
  gap:10px;
  margin-top:16px;
}

label{
  color:#ccc;
  font-size:13px;
  display:grid;
  gap:5px;
}

input,textarea{
  width:100%;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.45);
  color:#fff;
  border-radius:9px;
  padding:11px 12px;
  font:inherit;
}

textarea{resize:vertical}

button{
  margin-top:5px;
  border:0;
  background:linear-gradient(135deg,var(--pink),#ff4db5);
  color:#fff;
  border-radius:9px;
  min-height:46px;
  padding:12px;
  text-transform:uppercase;
  font-weight:900;
  cursor:pointer;
}

.email{
  margin-top:14px;
  color:#aaa!important;
  font-size:13px!important;
}

.email strong{color:#ff66bd}

.tech{
  max-width:980px;
  margin:28px auto 0;
  padding:20px;
  text-align:center;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:rgba(0,0,0,.55);
}

.tech h3{
  color:var(--pink);
  text-transform:uppercase;
  margin-bottom:14px;
}

.tech div{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  justify-content:center;
}

.tech span{
  padding:9px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#eee;
}

footer{
  text-align:center;
  color:#999;
  padding:30px;
}

/* TABLET */
@media(max-width:1180px){
  .hero{
    grid-template-columns:1fr;
    min-height:auto;
    padding:70px 0 30px;
  }

  .manifesto{
    max-width:720px;
  }

  .grid{
    grid-template-columns:repeat(2,1fr);
    margin-top:20px;
  }
}

/* MOBILE */
@media(max-width:760px){
  .bg{
    background-position:22% center;
  }

  .shade{
    background:
      linear-gradient(180deg, rgba(0,0,0,.52), rgba(0,0,0,.92)),
      radial-gradient(circle at 50% 20%, rgba(255,22,143,.24), transparent 38%);
  }

  .topbar{
    flex-direction:column;
    gap:14px;
    padding:18px 18px;
    position:relative;
  }

  .brand-main{font-size:30px}
  .brand-sub{font-size:24px}

  nav{
    flex-wrap:wrap;
    justify-content:center;
    gap:12px;
  }

  nav a{
    font-size:12px;
  }

  .nav-button{
    padding:9px 14px;
  }

  main{
    padding:0 18px 30px;
  }

  .hero{
    display:block;
    padding:42px 0 20px;
  }

  .kicker{
    font-size:12px;
  }

  .hero h1{
    font-size:58px;
    letter-spacing:-3px;
  }

  .hero h2{
    font-size:18px;
    margin-top:22px;
  }

  .lead{
    font-size:16px;
  }

  .btn{
    width:100%;
  }

  .manifesto{
    margin-top:30px;
    padding:22px;
  }

  .manifesto h3{
    font-size:23px;
  }

  .manifesto p{
    font-size:18px;
  }

  .grid{
    grid-template-columns:1fr;
    gap:16px;
  }

  .apps{
    grid-template-columns:1fr;
  }

  .card{
    min-height:auto;
    padding:22px;
  }

  .credentials div{
    flex-direction:column;
    gap:4px;
  }

  .tech{
    margin-top:18px;
  }

  .tech div{
    gap:8px;
  }

  .tech span{
    font-size:13px;
  }
}


.mini-access{
  display:grid;
  gap:8px;
  margin-top:12px;
}

.mini-access div{
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.05);
  border-radius:10px;
  padding:10px 12px;
}

.mini-access em{
  display:block;
  color:#aaa;
  font-style:normal;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.7px;
}

.mini-access b{
  display:block;
  color:#fff;
  margin-top:4px;
  font-size:14px;
}


.card.highlight{
  animation:aivaiaPulse 2.2s ease;
  border-color:#ff168f;
  box-shadow:0 0 0 3px rgba(255,22,143,.25), 0 0 42px rgba(255,22,143,.55);
}

@keyframes aivaiaPulse{
  0%{transform:scale(1); box-shadow:0 0 0 0 rgba(255,22,143,.0);}
  18%{transform:scale(1.025); box-shadow:0 0 0 5px rgba(255,22,143,.32), 0 0 50px rgba(255,22,143,.65);}
  100%{transform:scale(1); box-shadow:0 0 0 0 rgba(255,22,143,.0);}
}


.request-banner{
  margin-bottom:18px;
  border:1px solid rgba(255,22,143,.45);
  background:linear-gradient(180deg, rgba(255,22,143,.12), rgba(255,255,255,.03));
  border-radius:14px;
  padding:16px;
}

.request-banner strong{
  display:block;
  color:#ff66bd;
  text-transform:uppercase;
  letter-spacing:1px;
  margin-bottom:10px;
  font-size:14px;
}

.request-banner p{
  font-size:14px!important;
  line-height:1.6!important;
}

.provisional-access{
  margin-top:14px;
  border-left:3px solid #ff168f;
  padding-left:12px;
  color:#ddd;
  font-size:13px;
}

.provisional-access span{
  display:block;
  margin-top:6px;
  color:#fff;
  font-weight:900;
  letter-spacing:.5px;
}


/* v10: Acceso invitado integrado dentro de Acceso web */
.grid.grid-three{
  grid-template-columns:1.1fr 1fr 1fr;
}

.access-combined{
  min-height:360px;
}

.guest-inline{
  margin-top:26px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.12);
}

.guest-title{
  color:#ff66bd;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:1px;
  margin-bottom:12px;
  font-size:14px;
}

.card.highlight{
  animation:aivaiaPulse 2.2s ease;
  border-color:#ff168f;
  box-shadow:0 0 0 3px rgba(255,22,143,.25), 0 0 42px rgba(255,22,143,.55);
}

@keyframes aivaiaPulse{
  0%{transform:scale(1); box-shadow:0 0 0 0 rgba(255,22,143,.0);}
  18%{transform:scale(1.025); box-shadow:0 0 0 5px rgba(255,22,143,.32), 0 0 50px rgba(255,22,143,.65);}
  100%{transform:scale(1); box-shadow:0 0 0 0 rgba(255,22,143,.0);}
}

@media(max-width:1180px){
  .grid.grid-three{
    grid-template-columns:1fr;
  }
}





/* v16: logo principal en el centro */
.hero-logo{
  margin-bottom:22px;
}

.hero-logo img{
  width:520px;
  max-width:58vw;
  height:auto;
  display:block;
  filter:
    drop-shadow(0 0 18px rgba(255,22,143,.20))
    drop-shadow(0 0 40px rgba(255,180,0,.12));
}

.hero-slogan{
  margin-top:10px;
  font-size:26px;
  text-transform:uppercase;
}

.brand{
  display:flex;
  gap:10px;
  align-items:baseline;
  font-weight:950;
  letter-spacing:-1px;
}

.brand-main{
  font-size:34px;
}

.brand-sub{
  font-size:28px;
  color:#ff168f;
  transform:rotate(-5deg);
}

.topbar{
  min-height:82px;
}

@media(max-width:1100px){
  .hero-logo img{
    width:420px;
    max-width:72vw;
  }
}

@media(max-width:760px){
  .hero-logo{
    display:flex;
    justify-content:center;
  }

  .hero-logo img{
    width:300px;
    max-width:82vw;
  }

  .hero-slogan{
    font-size:20px;
    text-align:left;
  }

  .brand-main{
    font-size:30px;
  }

  .brand-sub{
    font-size:24px;
  }
}


/* v17: hero centrado para no tapar personaje */
.hero{
  min-height:640px;
  display:grid;
  grid-template-columns:1.15fr 420px;
  gap:46px;
  align-items:center;
}

.hero-left{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.hero-logo{
  width:100%;
  display:flex;
  justify-content:center;
  margin-bottom:26px;
}

.hero-logo img{
  width:520px;
  max-width:62vw;
  height:auto;
  display:block;
}

.kicker{
  text-align:center;
}

.hero-slogan{
  text-align:center;
  max-width:900px;
}

.lead{
  text-align:center;
  max-width:760px;
}

.hero-actions{
  justify-content:center;
}

@media(max-width:1180px){
  .hero{
    grid-template-columns:1fr;
  }

  .hero-left{
    align-items:center;
  }

  .hero-logo img{
    width:430px;
    max-width:82vw;
  }
}

@media(max-width:760px){
  .hero{
    min-height:auto;
  }

  .hero-logo img{
    width:300px;
    max-width:84vw;
  }

  .lead{
    font-size:16px;
  }
}


/* v19: ajuste fino del hero */
.hero-left{
  transform:translateX(70px);
}

.hero-logo img{
  width:540px;
  max-width:58vw;
}

.hero-actions{
  margin-top:40px;
  margin-bottom:58px;
}

.grid{
  margin-top:10px;
}

@media(max-width:1180px){
  .hero-left{
    transform:none;
  }

  .hero-actions{
    margin-bottom:35px;
  }

  .grid{
    margin-top:20px;
  }
}

@media(max-width:760px){
  .hero-left{
    transform:none;
  }

  .hero-logo img{
    width:310px;
    max-width:86vw;
  }

  .hero-actions{
    margin-top:30px;
    margin-bottom:42px;
  }

  .grid{
    margin-top:25px;
  }
}


/* v21: logo movido a la derecha */
.hero{
  grid-template-columns:1fr 500px;
  gap:38px;
}

.hero-left{
  align-items:flex-start;
  text-align:left;
  transform:none;
}

.hero-logo{
  position:absolute;
  right:110px;
  top:95px;
  margin:0;
  z-index:5;
}

.hero-logo img{
  width:430px;
  max-width:34vw;
}

.manifesto{
  margin-top:150px;
}

.kicker,
.hero-slogan,
.lead{
  text-align:left;
}

.hero-actions{
  justify-content:flex-start;
  margin-bottom:58px;
}

@media(max-width:1200px){
  .hero{
    grid-template-columns:1fr;
  }

  .hero-logo{
    position:relative;
    right:auto;
    top:auto;
    display:flex;
    justify-content:center;
    margin-bottom:24px;
  }

  .hero-logo img{
    width:360px;
    max-width:78vw;
  }

  .manifesto{
    margin-top:0;
  }

  .hero-left{
    align-items:center;
  }

  .kicker,
  .hero-slogan,
  .lead{
    text-align:center;
  }

  .hero-actions{
    justify-content:center;
  }
}

@media(max-width:760px){
  .hero-logo img{
    width:280px;
    max-width:84vw;
  }
}


/* v22: logo colocado encima del banner "Te da coraje" */
.hero{
  grid-template-columns: minmax(0,1fr) 520px;
  gap:44px;
  align-items:center;
}

.right-hero{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:24px;
  width:100%;
}

.right-hero .hero-logo{
  position:static !important;
  right:auto !important;
  top:auto !important;
  z-index:3;
  margin:0 0 4px 0;
  width:100%;
  display:flex;
  justify-content:flex-start;
}

.right-hero .hero-logo img{
  width:420px;
  max-width:100%;
  height:auto;
}

.right-hero .manifesto{
  margin-top:0 !important;
  width:100%;
}

.hero-left{
  transform:none !important;
  align-items:flex-start;
  text-align:left;
}

.kicker,
.hero-slogan,
.lead{
  text-align:left;
}

.hero-actions{
  justify-content:flex-start;
}

@media(max-width:1200px){
  .hero{
    grid-template-columns:1fr;
  }

  .right-hero{
    align-items:center;
  }

  .right-hero .hero-logo{
    justify-content:center;
  }

  .right-hero .hero-logo img{
    width:360px;
    max-width:78vw;
  }

  .hero-left{
    align-items:center;
    text-align:center;
  }

  .kicker,
  .hero-slogan,
  .lead{
    text-align:center;
  }

  .hero-actions{
    justify-content:center;
  }
}

@media(max-width:760px){
  .right-hero .hero-logo img{
    width:280px;
    max-width:84vw;
  }
}


/* v23: bajar contenido izquierdo para no pisar la cara */
.hero-left{
  padding-top:170px;
}

@media(max-width:1200px){
  .hero-left{
    padding-top:40px;
  }
}

@media(max-width:760px){
  .hero-left{
    padding-top:20px;
  }
}
.back-home{
    text-align:center;
    margin:55px auto 10px;
}

.back-home a{
    display:inline-block;
    padding:16px 34px;
    border-radius:18px;

    text-decoration:none;
    font-size:18px;
    font-weight:900;
    letter-spacing:1px;

    color:#fff;

    background:
        linear-gradient(
            135deg,
            #ff0080,
            #8d5bff,
            #00bfff
        );

    box-shadow:
        0 0 24px rgba(255,0,140,.28),
        0 0 38px rgba(0,191,255,.18);

    transition:
        transform .25s ease,
        filter .25s ease,
        box-shadow .25s ease;
}

.back-home a:hover{
    transform:translateY(-4px) scale(1.04);

    filter:brightness(1.1);

    box-shadow:
        0 0 28px rgba(255,0,140,.45),
        0 0 44px rgba(0,191,255,.28);
}