/* =========================
   VARIABLES
   ========================= */
:root {
  --color-bg: hsl(0, 0%, 0%);
  --color-bg-card: rgba(0, 0, 0, 0.77);
  --color-border: hsl(0, 0%, 20%);
  --color-text: hsl(0, 0%, 95%);
  --color-accent: hsl(211, 100%, 63%);
  --color-accent-transparent: var(--color-accent);
  --color-accent-hover: var(--color-accent);
  --color-scrollbar: var(--color-accent);
  --color-scrollbar-track: #222;
  --radius: 8px;
  --gap: 2em;
  --font-main: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;

  --transition: 0.7s cubic-bezier(.22, 1, .36, 1);
  --transition-slow: 1.2s cubic-bezier(.22, 1, .36, 1);
}

/* =========================
   RESET & BASE
   ========================= */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  min-height: 100vh;
  scroll-behavior: smooth;
  color: var(--color-text);
  background: var(--color-bg);
  font-family: var(--font-main);
  line-height: 1.7;
  margin: 0;
  overflow-x: hidden;
}

body {
  position: relative;
  z-index: 0;
  /* padding-bottom: 100vh; */
}




ul,
ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

img,
picture {
  max-width: 100%;
  display: block;
}



a:is(:active, :link, :visited) {
  color: var(--color-accent);
  text-decoration: none;
  position: relative;

  &::after {
    content: "";
    position: absolute;
    left: 0;
    z-index: -2;
    bottom: .0em;
    height: 1em;
    width: 0;
    background: var(--color-accent-hover);
    transition: width 1.2s cubic-bezier(.22, 1, .36, 1);
  }
}

a:is(:focus, :hover):not(.btn, #redes a) {
  color: var(--color-text);

  &::after {
    width: 100%;
    /* transition-delay: .8s; */
  }
}

h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

p {
  margin-block-end: 2em;
  max-width: 55ch;
  text-align: left;

}

input,
button,
textarea,
select {
  font: inherit;
}

/* =========================
   UTILITIES
   ========================= */
.u-center {
  text-align: center;
}

.u-flex {
  display: flex;
  gap: 1em;
  flex-wrap: wrap;
  justify-content: center;
}

.u-grid {
  display: grid;
  gap: var(--gap);
}

.u-radius {
  border-radius: var(--radius);
}

.u-shadow {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.u-mb {
  margin-bottom: 1em;
}

.u-mt {
  margin-top: 1em;
}

.u-p {
  padding: 1em;
}

.u-px {
  padding-inline: 1em;
}

.u-py {
  padding-block: 1em;
}

/* =========================
   HEADER & NAV
   ========================= */


header {
  grid-column: span 2;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: clamp(2em, 5vw, 8em);

  opacity: 0;
  transform: translateY(-100px) scale(0.97);
  transition: opacity var(--transition-slow), transform var(--transition-slow);
  will-change: opacity, transform;


  h1 {
    /* text-align: center; */
    font-weight: 200;
    font-size: clamp(1.4em, 3vw + 1em, 3em);
    letter-spacing: 0.1em;
    letter-spacing: 0;
    font-weight: 600;
    line-height: 1.3;

    opacity: 0;
    transform: translateY(40px) scale(0.95);
    transition: opacity var(--transition-slow) 0.2s, transform var(--transition-slow) 0.2s;
    will-change: opacity, transform;
    position: relative;

    &::after {
      content: "";
      position: absolute;
      left: 0;
      z-index: -2;
      bottom: 0;
      height: 1.2em;
      width: 0;
      background-color: var(--color-accent);
      transition: width 1.2s cubic-bezier(.22, 1, .36, 1);
    }

    span {
      display: block;
      font-size: 1rem;


    }

    a:is(:link, :active, :visited) {
      color: var(--color-text);
    }
  }

  nav.main-menu {
    margin-top: 2em;



    ul {
      display: flex;
      gap: 1em;
      justify-content: center;
      flex-wrap: wrap;

      li a {
        color: var(--color-text);
        font-weight: 500;
        font-size: 1.1em;
        padding: 0.5em 1em;
        /* border-radius: var(--radius); */
        transition: background var(--transition), color var(--transition);

        &:hover,
        &:focus {
          background: var(--color-accent);
          color: #fff;
        }
      }
    }
  }

  &.visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    transition:
      opacity 0.8s var(--transition),
      transform 0.8s var(--transition);
    will-change: opacity, transform;

    h1 {
      opacity: 1;
      transform: translateY(0) scale(1);
      transition:
        opacity 0.8s 0.2s var(--transition),
        transform 0.8s 0.2s var(--transition);
      will-change: opacity, transform;

      &::after {
        width: 100%;
        transition-delay: 1s;
      }
    }
  }


}

/* =========================
   MAIN & SECTIONS
   ========================= */
main {
  margin-inline: auto;
  gap: var(--gap);
  grid-column: 2;

  @media (min-width: 48em) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 0.5em var(--gap);
  }
}

section {
  padding: clamp(2em, 5vw, 8em);
  grid-column: 1/2;
  display: block;
  /* background: linear-gradient(transparent, black); */
  margin-block: 4em;

  @media (min-width: 48em) {

    gap: 0.5em var(--gap);
  }

  h2 {
    /* font-weight: normal; */
    /* margin-block: 1em; */
    grid-column: span 2;
    font-size: clamp(3em, 10vw, 5em);
    line-height: 1;
    letter-spacing: -.071em;
    font-weight: 600;
    /* line-height: 1.3; */
    text-transform: uppercase;
    text-align: left;
    position: relative;

    /* &::after {
      content: "";
      position: absolute;
      left: -2em;
      z-index: -2;
      bottom: .0em;
      height: .0131em;
      width: 0;
      background: var(--color-text);
      transition: width 1.2s cubic-bezier(.22, 1, .36, 1);
    } */


  }

  nav,
  ul {
    grid-column: span 2;
  }

  ul {
    display: block;

    @media (min-width: 48em) {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 0.5em var(--gap);
    }

    a {
      display: block;
      padding-block-end: 0.5em;
      font-size: 1.4em;
      line-height: 1;
      margin-bottom: 1em;
    }
  }

  opacity: 0;
  transform: translateX(-60px);
  transition: opacity var(--transition-slow),
  transform var(--transition-slow);
  will-change: opacity,
  transform;

  &.visible {
    opacity: 1;
    transform: translateX(0);
  }
}

/* =========================
   CARDS & CAROUSEL
   ========================= */

section {
  min-height: 100dvh;

  .card,
  .li {
    min-width: 380px;
  }

  /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); */
  .btn {
    background-color: var(--color-accent);
  }
}

.card,
section li {
  background: var(--color-bg-card);
  /* border: 1px solid var(--color-border); */
  border-radius: var(--radius);
  padding: 1.5em;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 1em;
  margin-block: 1em;




  .icon {
    font-size: 3em;
    margin-bottom: 0.5em;
  }

  h3 {
    margin-bottom: 0.5em;
    font-size: clamp(1.2em, 3vw, 1.5em);
  }

  p {
    flex-grow: 1;
    margin-bottom: 1em;
    text-align: center;
  }
}

.carousel {
  display: flex;
  flex-direction: row;
  gap: var(--gap);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  padding-bottom: 2em;
  padding-top: 1em;
  scrollbar-width: thin;
  scrollbar-color: var(--color-scrollbar) var(--color-scrollbar-track);



  /* transform: rotate3d(1, 1, 0, -45deg); */


  li.card {
    min-width: 320px;
    max-width: 350px;
    flex: 0 0 auto;
    scroll-snap-align: start;
    transition: transform var(--transition);



    &:active {
      transform: scale(0.97);
    }
  }

  &::-webkit-scrollbar {
    height: 8px;
  }

  &::-webkit-scrollbar-thumb {
    background: var(--color-scrollbar);
    border-radius: 4px;
  }

  &::-webkit-scrollbar-track {
    background: var(--color-scrollbar-track);
  }
}

/* Animación de entrada para las cards */
.card {
  opacity: 0;
  transform: translateY(60px) rotateZ(-6deg) scale(0.97);
  transition:
    opacity var(--transition-slow),
    transform var(--transition-slow);

  border-image: linear-gradient(to right, var(--color-accent), var(--color-accent-hover));
  border-image-slice: 1;
  border-width: 2px;
  border-style: solid;
  will-change: opacity, transform;

  &.intro {
    width: auto;
    font-size: 1.2em;

    p {
      max-width: 55ch;

      text-align: left;
    }
  }

  p {
    font-size: 0.8em;
  }
}

.card.visible {
  opacity: 1;
  transform: translateY(0) rotateZ(0) scale(1);
  transition:
    opacity 0.7s var(--transition),
    transform 0.7s var(--transition);

  /* h2::after {
    width: 100vw;
    transition-delay: .8s;
  } */
}

/* Animación de textos internos de las cards */
.card * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s cubic-bezier(.22, 1, .36, 1), transform 0.7s cubic-bezier(.22, 1, .36, 1);
}

.card.visible * {
  opacity: 1;
  transform: translateY(0);
}

/* =========================
   BUTTONS
   ========================= */
.btn:is(:link, :visited, :active) {
  /* background-color: var(--color-accent); */
  color: var(--color-text);
  border: none;
  padding: 0.75em 1em;
  /* border-radius: var(--radius); */
  cursor: pointer;
  transition: background-color var(--transition);
  text-transform: uppercase;
  font-size: 0.8em;



  &:hover {
    background-color: var(--color-accent-hover);
  }

  &:focus {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
  }
}

/* =========================
   ASIDE & FOOTER
   ========================= */
aside,
footer {

  padding: clamp(2vw, 2vw + 1em, 3em);
  line-height: 1.15;
  /* font-size: 1em; */
  /* background: linear-gradient(transparent, black); */

}

footer {
  font-size: 1.2em;
  color: var(--color-text);
  /* border-top: 1px solid var(--color-border); */
  /* margin-top: 90dvh; */

  /* background: linear-gradient(transparent, black); */
  .u-flex {
    justify-content: space-between;
    gap: 1em;
  }

  li {
    font-size: .8em;
    margin-bottom: .5em;
  }

  a {
    display: block;

  }

.big {
  
            max-width: 100%;
              font-size: clamp(1.2em, 5vw + 2em, 8.5em);
              margin: 20vh auto;
              font-weight: bold;
  }

  .big {
    
    text-align: center;
    color: var(--color-text);
    text-transform: uppercase;

  }

  #copyright {

    margin-block-start: 3em;

    p {
      font-size: 0.7em;
      color: var(--color-text);
      /* opacity: 0.6; */
      text-align: center;
      margin-block: 0.5em;
      max-width: 100%;
    }
  }

  /* margin-top: 42em; */
}

.anim {
  opacity: 0;
  transform: translateY(60px) scale(0.97);
  transition: opacity var(--transition-slow), transform var(--transition-slow);
  will-change: opacity, transform;
}

footer.visible .anim {
  opacity: 1;
  transform: translateY(0) scale(1);
}

aside .u-flex {
  /* flex-direction: column; */
  justify-content: center;
  align-items: center;
  gap: 3em;

  li {
    width: min-content;

    a {
      display: block;
      padding: 0.5em;
       color: var(--color-text);
    }

   
    font-size: 0.9em;
    text-align: center;

    /* margin-bottom: 1em; */
  }
}

aside ul,
#redes {


  svg {
    width: 1em;
    height: 1em;
    fill: var(--color-text);
    transition: fill var(--transition);

    &:hover,
    &:focus {
      fill: var(--color-accent);
    }
  }
}

#redes li {
  position: relative;
  transition: transform 0.25s cubic-bezier(.22, 1, .36, 1);
}

#redes li a svg {
  display: inline-block;
  vertical-align: middle;
  transition: transform 0.25s cubic-bezier(.22, 1, .36, 1);
}

#redes li .followers {
  opacity: 0;
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translate(-50%, 0);
  background: #000;
  color: #fff;
  font-size: 0.95em;
  padding: 0.2em 0.7em;
  border-radius: 1em;
  margin-top: 0.2em;
  pointer-events: none;
  transition: opacity 0.25s cubic-bezier(.22, 1, .36, 1), transform 0.25s cubic-bezier(.22, 1, .36, 1);
  z-index: 2;
}

#redes li:hover a svg,
#redes li:focus-within a svg {
  transform: translateY(-8px) scale(1.08);
}

#redes li:hover .followers,
#redes li:focus-within .followers {
  opacity: 1;
  transform: translate(-50%, -8px);
}

/* Fondo y pixelado */
#bg {
  perspective: 1000px;
  position: fixed;
  inset: 0;
  z-index: -1;
  /* background: url('../img/ceslava-bw.webp') center/cover repeat-x; */
  background: url('../img/ceslava.jpg') center/cover no-repeat;
  /* background: url('../img/cristian-eslava-removebg-preview.png') center/cover no-repeat, black; */
  /* width: clamp(500px, 50vw, 800px); */
  height: 100vh;
  pointer-events: none;
  overflow: hidden;
  /* background-blend-mode: darken; */

  filter: contrast(1.2) brightness(0.7);
  opacity: 0.8;
}

#pixel-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, #111 0 5px, transparent 5px 10px),
    repeating-linear-gradient(90deg, #111 0 5px, transparent 5px 10px);
  background-size: 10px 10px;
  opacity: 1;
  transition: opacity 0.6s;
  mix-blend-mode: multiply;
  transform: rotate3d(1, 1, 0, 45deg) scale(3);
}

#pixel-canvas {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: 2;
  pointer-events: none;
  display: block;
  transform: rotate3d(1, 1, 0, 45deg) scale(3);
}

/* El contenido principal por encima */
#main-content {
  position: relative;
  z-index: 2;
}

/* =========================
   NUEVO CÓDIGO
   ========================= */
.card h3 .btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  background: transparent;
  color: var(--color-accent);
  /* border: 2px solid var(--color-accent); */
  padding: 0.5em 1.2em;
  /* border-radius: var(--radius); */
  font-weight: 700;
  font-size: 1em;
  text-transform: none;
  transition: background 0.3s cubic-bezier(.22, 1, .36, 1),
    color 0.3s cubic-bezier(.22, 1, .36, 1),
    border-color 0.3s cubic-bezier(.22, 1, .36, 1),
    box-shadow 0.3s cubic-bezier(.22, 1, .36, 1),
    transform 0.2s cubic-bezier(.22, 1, .36, 1);
}

.card h3 .btn::before {
  /* content: "↗"; */
  font-size: 1.1em;
  margin-left: 0.3em;
}

.card h3 .btn:hover,
.card h3 .btn:focus {
  background: var(--color-accent);
  color: #fff;
  border-color: var(--color-accent-hover);
  box-shadow: 0 4px 16px 0 rgba(22, 193, 243, 0.15);
  transform: translateY(-2px) scale(1.04);
}

.card:has(h3 > .btn):hover {
  /* transform: scale(.92); */
  transition: all 0.3s cubic-bezier(.22, 1, .36, 1);
  border-radius: 5px;
  cursor: pointer;
}