/* ===== GLOBAL STYLES ===== */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&display=swap');


* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Poppins', sans-serif;
}

body {
  background: #0a0a0a;
  color: #ffffff;
  overflow-x: hidden;
}

/* ===== HEADER ===== */
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 25px 50px;
  position: sticky;
  top: 0;
  background: rgba(10, 10, 10, 0.85);
  backdrop-filter: blur(12px);
  z-index: 1000;
}

.logo {
  font-size: 1.7rem;
  font-weight: 700;
}

.nav a {
  margin-left: 20px;
  color: #b7b7b7;
  text-decoration: none;
  font-weight: 400;
  transition: 0.3s;
}

.nav a:hover {
  color: #00c3ff;
}

/* ===== HERO SECTION ===== */
.hero {
  height: 95vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  position: relative;
}

.hero-title {
  font-size: 3.5rem;
  font-weight: 700;
  margin-bottom: 10px;
}

.hero-subtitle {
  color: #b7b7b7;
  font-size: 1.2rem;
  max-width: 700px;
}

#particles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

/* ===== ABOUT SECTION ===== */
.about {
  padding: 100px 50px;
  max-width: 900px;
  margin: auto;
}

.about h3 {
  font-size: 2.5rem;
  margin-bottom: 20px;
  color: #00c3ff;
}

.about p {
  font-size: 1.1rem;
  color: #cfcfcf;
  line-height: 1.7;
}

/* ===== PROJECTS ===== */
.projects {
  padding: 120px 60px;
  background: #0f0f0f;
  perspective: 1000px; /* Necesario para efectos 3D */
}

.projects h3 {
  font-size: 2.5rem;
  color: #00c3ff;
  text-align: center;
  margin-bottom: 50px;
}

.project-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 35px;
}

/* ==== PREMIUM CARD DESIGN ==== */
.project-card {
  background: #111;
  padding: 28px;
  border-radius: 18px;
  border: 1px solid #1c1c1c;
  transition: 0.45s ease;
  position: relative;
  overflow: hidden;
  transform-style: preserve-3d;
  opacity: 0;
  transform: translateY(25px);
}

/* Reveal con scroll */
.project-card.reveal-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Glow dinámico */
.project-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at top right,
    rgba(0, 195, 255, 0.15),
    transparent 60%
  );
  opacity: 0;
  transition: 0.5s ease;
}

/* Gloss highlight */
.project-card::after {
  content: "";
  position: absolute;
  top: -120%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(
    45deg,
    transparent,
    rgba(255, 255, 255, 0.12),
    transparent
  );
  opacity: 0;
  transition: 0.6s ease;
}

/* Efecto Hover Premium */
.project-card:hover {
  transform: translateY(-10px) rotateX(6deg);
  border-color: #00c3ff;
  box-shadow: 0 0 20px rgba(0, 195, 255, 0.2);
}

.project-card:hover::before {
  opacity: 1;
}

.project-card:hover::after {
  opacity: 1;
  transform: translateY(35%);
}

/* Contenido */
.project-card h4 {
  font-size: 1.5rem;
  margin-bottom: 10px;
  font-weight: 600;
}

.project-card p {
  color: #b7b7b7;
  line-height: 1.5;
  margin-bottom: 15px;
}

/* Botones dentro de Projects */
.project-actions {
  margin-top: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.project-card .btn {
  display: inline-block;
  padding: 10px 14px;
  border-radius: 10px;
  text-decoration: none;
  background: #00c3ff;
  color: #0a0a0a;
  font-weight: 600;
  transition: 0.2s;
}

.project-card .btn:hover {
  transform: translateY(-2px);
}

.project-card .btn-ghost {
  background: transparent;
  color: #b7b7b7;
  border: 1px solid #1c1c1c;
}

.project-card .btn-ghost:hover {
  border-color: #00c3ff;
  color: #00c3ff;
}

/* ===== CONTACT ===== */
.contact {
  padding: 120px 50px;
  text-align: center;
}

.contact h3 {
  font-size: 2.5rem;
  color: #00c3ff;
  margin-bottom: 20px;
}

.contact a {
  color: #00c3ff;
  text-decoration: none;
  font-size: 1.1rem;
}

/* ===== FOOTER ===== */
.footer {
  text-align: center;
  padding: 30px;
  color: #777;
  margin-top: 20px;
  border-top: 1px solid #1c1c1c;
}

.hero-inner{
  display:flex; align-items:center; justify-content:center;
  gap:28px; padding:0 20px; position:relative; z-index:1;
}
.avatar{
  width:150px; height:150px; border-radius:50%;
  position:relative; padding:4px; background:
    conic-gradient(from 180deg at 50% 50%, #00c3ff, #7b61ff, #00c3ff);
  box-shadow:0 10px 30px rgba(0,0,0,.5);
  animation:floatY 6s ease-in-out infinite;
}
.avatar::after{
  content:""; position:absolute; inset:4px; border-radius:50%;
  background:#0a0a0a; z-index:-1;
}
.hero-text{ max-width:720px }

.about, .projects, .contact{ opacity:0; transform:translateY(24px); transition:.7s ease }
.reveal-visible{ opacity:1; transform:none }

.badge-star{
  display:inline-block; margin-bottom:10px; font-size:.85rem;
  padding:6px 10px; border-radius:999px; border:1px solid #1c1c1c;
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0));
}
.project-actions{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap }
.btn{
  display:inline-block; padding:10px 14px; border-radius:10px; text-decoration:none;
  background:#00c3ff; color:#0a0a0a; font-weight:600; transition:.2s;
}
.btn:hover{ transform:translateY(-2px) }
.btn-ghost{
  background:transparent; color:#b7b7b7; border:1px solid #1c1c1c;
}

/* mini anim */
@keyframes floatY{
  0%,100%{ transform:translateY(0) }
  50%{ transform:translateY(-10px) }
}

/* ===== SKILLS SECTION ===== */
.skills {
  padding: 120px 60px;
  background: #0f0f0f;
}

.skills h3 {
  font-size: 2.5rem;
  color: #00c3ff;
  text-align: center;
  margin-bottom: 50px;
}

.skills-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 30px;
}

.skill-card {
  background: #111;
  padding: 25px;
  border-radius: 15px;
  text-align: center;
  border: 1px solid #1c1c1c;
  transition: 0.3s;
}

.skill-card:hover {
  transform: translateY(-8px);
  border-color: #00c3ff;
}

.skill-icon {
  width: 50px;
  height: 50px;
  margin-bottom: 10px;
}

.bar {
  width: 100%;
  height: 10px;
  background: #1a1a1a;
  border-radius: 10px;
  margin-top: 10px;
  overflow: hidden;
}

.bar .fill {
  height: 100%;
  width: var(--level);
  background: linear-gradient(90deg, #00c3ff, #7b61ff);
  border-radius: 10px;
  animation: growBar 1.4s ease-out forwards;
}

@keyframes growBar {
  from { width: 0%; }
  to { width: var(--level); }
}

/* Hacer que primero se anime el llenado, y luego el glow */
.bar .fill[style*="100%"] {
  animation: growBar 1.4s ease-out forwards, glowPulse 1.8s infinite alternate ease-in-out 1.4s;
}

@keyframes glowPulse {
  0% {
    box-shadow: 0 0 10px #00c3ff, 0 0 20px #7b61ff;
  }
  100% {
    box-shadow: 0 0 25px #00c3ff, 0 0 45px #7b61ff;
  }
}

/* ===== TECH STACK SECTION ===== */
.stack {
  padding: 100px 60px;
  background: #0a0a0a;
  text-align: center;
}

.stack h3 {
  font-size: 2.5rem;
  color: #00c3ff;
  margin-bottom: 20px;
}

.stack-desc {
  color: #b7b7b7;
  font-size: 1.1rem;
  margin-bottom: 50px;
}

.stack-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  gap: 40px;
  justify-items: center;
  align-items: center;
}

.stack-item {
  background: #111;
  border-radius: 15px;
  padding: 25px;
  transition: 0.3s ease;
  border: 1px solid #1c1c1c;
}

.stack-item:hover {
  transform: translateY(-5px);
  border-color: #00c3ff;
  box-shadow: 0 0 15px rgba(0, 195, 255, 0.3);
}

.stack-item img {
  width: 60px;
  height: 60px;
  object-fit: contain;
  filter: drop-shadow(0 0 5px rgba(0,195,255,0.5));
  transition: 0.3s ease;
}

.stack-item:hover img {
  transform: scale(1.1);
}

/* Optional: Fade-in animation for the stack section */
.stack {
  opacity: 0;
  transform: translateY(20px);
  transition: 0.8s ease-in-out;
}

.stack.reveal-visible {
  opacity: 1;
  transform: none;
}

/* ===== REVEAL ANIMATION PREMIUM ===== */
.reveal {
  opacity: 0;
  transform: translateY(40px) scale(0.98);
  filter: blur(6px);
  transition: 
      opacity 0.9s ease-out,
      transform 0.9s cubic-bezier(0.22, 1, 0.36, 1),
      filter 0.9s ease-out;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0px);
}

/* Reveal delay (para que aparezcan en cascada) */
.reveal.delay-1 { transition-delay: 0.15s; }
.reveal.delay-2 { transition-delay: 0.3s; }
.reveal.delay-3 { transition-delay: 0.45s; }

/* ===== FOOTER PREMIUM ===== */
.footer {
  background: #0a0a0a;
  padding: 60px 20px;
  border-top: 1px solid #1c1c1c;
  margin-top: 60px;
  text-align: center;
}

.footer-content {
  max-width: 900px;
  margin: auto;
}

.footer-name {
  font-size: 1.8rem;
  font-weight: 700;
  color: #00c3ff;
  margin-bottom: 10px;
}

.footer-text {
  color: #b7b7b7;
  margin-bottom: 30px;
}

.footer-socials {
  display: flex;
  justify-content: center;
  gap: 25px;
  margin-bottom: 25px;
}

.social-icon img {
  width: 35px;
  height: 35px;
  filter: drop-shadow(0 0 5px rgba(0,195,255,0.4));
  transition: 0.3s ease;
}

.social-icon:hover img {
  transform: translateY(-6px) scale(1.1);
  filter: drop-shadow(0 0 12px rgba(0,195,255,0.7));
}

.footer-copy {
  color: #777;
  font-size: 0.95rem;
  border-top: 1px solid #1c1c1c;
  padding-top: 15px;
  margin-top: 20px;
}

/* ===== CONTACT SECTION ===== */
.contact {
  padding: 120px 60px;
  background: #0f0f0f;
  text-align: center;
}

.contact h3 {
  font-size: 2.5rem;
  color: #00c3ff;
  margin-bottom: 10px;
}

.contact-sub {
  color: #b7b7b7;
  font-size: 1.1rem;
  margin-bottom: 40px;
}

.contact-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 40px;
  max-width: 900px;
  margin: auto;
}

/* Contact Info */
.contact-info {
  background: #111;
  padding: 25px;
  border-radius: 15px;
  border: 1px solid #1c1c1c;
  text-align: left;
}

.contact-info h4 {
  color: #00c3ff;
  margin-top: 15px;
  margin-bottom: 5px;
}

.contact-info a {
  color: #b7b7b7;
  text-decoration: none;
  display: block;
  margin-bottom: 10px;
  transition: 0.2s;
}

.contact-info a:hover {
  color: #00c3ff;
}

/* Contact Form */
.contact-form {
  background: #111;
  padding: 25px;
  border-radius: 15px;
  border: 1px solid #1c1c1c;
}

.input-group {
  margin-bottom: 20px;
}

.input-group input,
.input-group textarea {
  width: 100%;
  padding: 14px;
  border-radius: 10px;
  background: #1a1a1a;
  border: 1px solid #333;
  color: #fff;
  outline: none;
  transition: 0.2s;
}

.input-group input:focus,
.input-group textarea:focus {
  border-color: #00c3ff;
}

.contact-btn {
  margin-top: 10px;
  width: 100%;
}

/* Form Status Message */
.form-status {
  margin-top: 15px;
  font-size: 0.9rem;
  color: #00c3ff;
}

/* ===== CONTACT FORM PREMIUM ===== */
.contact-form {
  max-width: 600px;
  margin: auto;
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.input-group input,
.input-group textarea {
  width: 100%;
  padding: 15px;
  border-radius: 10px;
  border: 1px solid #1c1c1c;
  background: #111;
  color: #fff;
  font-size: 1rem;
  transition: 0.3s;
}

.input-group input:focus,
.input-group textarea:focus {
  border-color: #00c3ff;
  box-shadow: 0 0 10px rgba(0, 195, 255, 0.3);
}

textarea {
  height: 150px;
  resize: none;
}

.submit-btn {
  width: 100%;
  background: #00c3ff;
  color: #0a0a0a;
  font-weight: 600;
  padding: 14px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  transition: 0.3s;
}

.submit-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 0 15px rgba(0, 195, 255, 0.4);
}

#form-status {
  text-align: center;
  margin-top: 10px;
  color: #00c3ff;
  font-size: 1rem;
}

.project-actions,
.project-card .btn,
.project-card .btn-ghost {
    position: relative;
    z-index: 10;
}



