/* MINI STACK ICONS */
.mini-stack{
  margin-top: 12px;
  display: flex;
  gap: 24px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-start;
}

.mini-stack__icon{
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  overflow: hidden;
  filter: none;
  background: transparent;
}

.mini-stack__icon:nth-of-type(-n+3) img{
  width: 70%;
  height: 70%;
}

.mini-stack__icon img{
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* MARQUEE (sin huecos, 3 filas sincronizadas) */
.marquee-layer{
  position: absolute;
  left: 0;
  right: 0;
  top: 4cm;
  height: 280px;
  pointer-events: none;
  display: grid;
  gap: 20px;
  align-content: center;
}

.marquee-row{
  overflow: hidden;

  font-family: "Anton", sans-serif;
  font-size: clamp(48px, 5vw, 72px);
  letter-spacing: .12em;
  text-transform: uppercase;

  color: transparent;
  -webkit-text-stroke: 2px rgba(255,255,255,.85);
  filter: drop-shadow(0 3px 0 rgba(0,0,0,.12));
}

.marquee-track{
  display: flex;
  width: max-content;
  will-change: transform;
  animation: marqueeX 700s linear infinite;
}

.marquee-content{
  display: inline-flex;
  gap: 40px;
  padding-right: 40px;
  white-space: nowrap;
}

@keyframes marqueeX{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* AVATAR */
.avatar-card{
  width: min(300px, 78vw);
  background: transparent;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.avatar-card img{
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

/* SKILLS GRID */
.skills-grid{
  display: grid;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  gap: 14px;
  align-items: stretch;
  transform: translateY(-1cm);
}

.skill-card{
  border-radius: 10px;
  background: radial-gradient(120% 120% at 30% 20%, #1b2e3a 0%, #0f1c24 45%, #0b141a 100%);
  border: 2px solid transparent;
  box-shadow: 0 10px 18px rgba(0,0,0,.25);
  padding: 14px 12px 10px;
  display: grid;
  gap: 10px;
  justify-items: center;
  text-align: center;
  min-height: 92px;
  transition: transform .32s ease, box-shadow .32s ease,
    background .32s ease, border-color .32s ease;
}

.skill-card__ico{
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
}

.skill-card__ico img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 2px 2px rgba(0,0,0,.25));
}

.skill-card:hover{
  transform: translateY(-6px) scale(1.05);
  box-shadow: 0 15px 45px rgba(0,0,0,.4);
  border-color: rgba(255,255,255,.6);
}

.skill-card:nth-of-type(1):hover{
  background: linear-gradient(180deg, #24140b, #1b151c 60%, #311606);
  box-shadow: 0 30px 35px rgba(227,83,10,.45);
}

.skill-card:nth-of-type(2):hover{
  background: linear-gradient(180deg, #1b254c, #0e172d 60%, #102c60);
  box-shadow: 0 30px 35px rgba(25,112,239,.45);
}

.skill-card:nth-of-type(3):hover{
  background: linear-gradient(180deg, #3e2b00, #2d1d01 60%, #554b00);
  box-shadow: 0 30px 35px rgba(247,210,0,.45);
}

.skill-card:nth-of-type(4):hover{
  background: linear-gradient(180deg, #034747, #02282c 60%, #065352);
  box-shadow: 0 30px 35px rgba(2,175,170,.45);
}

.skill-card:nth-of-type(5):hover{
  background: linear-gradient(180deg, #402553, #261438 60%, #5b2d78);
  box-shadow: 0 30px 35px rgba(151,85,255,.45);
}

.skill-card:nth-of-type(6):hover{
  background: linear-gradient(180deg, #2f2b48, #1d1a31 60%, #4c4784);
  box-shadow: 0 30px 35px rgba(118,110,205,.45);
}

.skill-card:nth-of-type(7):hover{
  background: linear-gradient(180deg, #0b2b38, #061924 60%, #0f4f59);
  box-shadow: 0 30px 35px rgba(8,155,179,.45);
}
.skill-card__lbl{
  font-weight: 700;
  letter-spacing: .03em;
  font-size: 14px;
  text-transform: uppercase;
  line-height: 1.1;
  color: #fff;
}

/* PROJECTS GRID */
.projects-grid{
  display: grid;
  grid-template-columns: minmax(320px, 1fr);
  gap: 34px 44px;
  width: min(660px, 100%);
  margin: -1.5cm auto 0;
  transform: translateY(-1.5cm);
  justify-content: center;
}

/* PROJECT CARD (clicable) */
.project-card{
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  width: 100%;
  filter: drop-shadow(0 12px 0 rgba(0,0,0,.06));
}

.project-card:focus-visible{
  outline: 3px solid rgba(255,255,255,.7);
  outline-offset: 6px;
}

.project-card__mock{
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  background: #e9e9e9;
  border: 6px solid #4b4b4b;
  border-radius: 14px;
  position: relative;
  overflow: hidden;
}

.project-card__cta{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(1);
  z-index: 2;
  padding: 14px 26px;
  border-radius: 999px;
  background: #ffd24a;
  border: 2px solid rgba(0,0,0,.35);
  color: #111;
  font-family: 'Anton', sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  box-shadow: 0 12px 26px rgba(0,0,0,.4);
  pointer-events: none;
  animation: demoPulse 1.8s ease-in-out infinite;
}

@keyframes demoPulse{
  0%{ transform: translate(-50%, -50%) scale(1); }
  50%{ transform: translate(-50%, -50%) scale(1.06); }
  100%{ transform: translate(-50%, -50%) scale(1); }
}

@media (prefers-reduced-motion: reduce){
  .project-card__cta{ animation: none; }
}

.project-card__mock--cover{
  background-color: #0b0b0b;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border: 6px solid #4b4b4b;
  border-radius: 14px;
  box-shadow: 0 12px 25px rgba(0,0,0,.35);
}

.project-card__mock--cover::before,
.project-card__mock--cover::after{
  display: none;
}

.project-card__mock::before{
  content: "";
  position: absolute;
  inset: 12px 12px 24px 12px;
  background: #bfe6ff;
  border-radius: 10px;
}

.project-card__mock::after{
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  height: 18%;
  background: #7fa300;
}

.project-card__mock--phone::after{
  content: "";
  position: absolute;
  width: 20%;
  height: 55%;
  right: 10%;
  bottom: 10%;
  background: #0b0b0b;
  border-radius: 18px;
  box-shadow: inset 0 0 0 6px rgba(255,255,255,.06);
}

.project-card[data-project="4"],
.project-card[data-project="5"],
.project-card[data-project="6"]{
  visibility: hidden;
  pointer-events: none;
}

/* MODAL */
.modal{
  position: fixed;
  inset: 0;
  z-index: 999;
  display: none;
}

.modal.is-open{ display: block; }

.modal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}

.modal__panel{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(980px, calc(100% - 32px));
  height: min(78vh, 720px);
  background: #0b0b0b;
  border: 2px solid rgba(255,255,255,.18);
  box-shadow: 0 30px 70px rgba(0,0,0,.5);
  display: grid;
  grid-template-rows: auto 1fr;
}

.modal__header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.modal__title{
  margin: 0;
  font-family: "Anton", sans-serif;
  letter-spacing: .05em;
  text-transform: uppercase;
  font-size: 22px;
}

.modal__close{
  width: 42px;
  height: 42px;
  border: 0;
  background: rgba(255,255,255,.08);
  color: #fff;
  border-radius: 10px;
  cursor: pointer;
}

.modal__close:hover{ background: rgba(255,255,255,.14); }

.modal__content{
  background: #0b0b0b;
}

/* Responsive */
@media (min-width: 620px){
  .project-card__mock{
    height: 435px;
  }

}


@media (max-width: 1100px){
  .skills-grid{ grid-template-columns: repeat(4, minmax(140px, 1fr)); }
}

@media (max-width: 900px){
  .mini-stack{
    justify-content: center;
    gap: 16px;
  }
  .skills-grid{
    grid-template-columns: repeat(3, minmax(120px, 1fr));
    transform: none;
  }
  .projects-grid{
    transform: none;
    margin: 12px auto 0;
  }
}

@media (max-width: 680px){
  .projects-grid{
    grid-template-columns: 1fr;
    margin: 10px auto 0;
    gap: 24px 26px;
  }
  .skills-grid{ grid-template-columns: repeat(2, minmax(140px, 1fr)); }
  .marquee-row{ font-size: 40px; }
  .marquee-layer{ top: 26px; height: 190px; }
}
/* DEMO dentro del modal */
.modal__content{
  position: relative;
  overflow: hidden;
}

.modal__content iframe{
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #0b0b0b;
}
/* Wrapper para escalar la demo */
.demo-viewport{
  width: 100%;
  height: 100%;
  overflow: auto; /* si quieres scroll en vez de cortar */
  background: #0b0b0b;
}

.demo-scale{
  transform-origin: top left;
  /* transform: scale(X) lo pone el JS */
  width: 1100px;     /* igual al min-width de tu demo */
  height: 800px;     /* ajustable */
}
.demo-scale iframe{
  width: 1100px;
  height: 800px;
  border: 0;
  display: block;
}






