/* ══════════════════════════════════════
   hero.css — Section héro
══════════════════════════════════════ */

#hero {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8rem 2.5rem 4rem;
  max-width: 1100px;
  margin: 0 auto;
}

/* Tag au-dessus du titre */
.ey {
  font-family: 'Space Mono', monospace;
  font-size: 0.7rem;
  color: var(--a);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
  opacity: 0;
  animation: fadeUp 0.7s 0.1s forwards;
}

.ey::before {
  content: '> ';
  color: var(--muted);
}

[data-theme="hacker"] .ey::before {
  content: 'root@portfolio:~$ ';
}

/* Nom principal */
h1.hn {
  font-size: clamp(3rem, 9vw, 7.5rem);
  font-weight: 800;
  line-height: 0.95;
  letter-spacing: -0.03em;
  margin-bottom: 0.3rem;
  opacity: 0;
  animation: fadeUp 0.7s 0.25s forwards;
}

.hn .ghost {
  -webkit-text-stroke: 1px var(--border);
  color: transparent;
}

[data-theme="light"] .hn .ghost {
  -webkit-text-stroke: 1px var(--border);
}

.hn .dot {
  color: var(--a);
}

/* Sous-titre */
.sub {
  font-family: 'JetBrains Mono', monospace;
  font-size: clamp(0.8rem, 1.8vw, 1rem);
  color: var(--muted);
  margin: 1.7rem 0 0.9rem;
  opacity: 0;
  animation: fadeUp 0.7s 0.4s forwards;
}

.sub em {
  color: var(--b);
  font-style: normal;
}

/* Description */
.hdesc {
  font-family: 'Space Mono', monospace;
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.9;
  max-width: 520px;
  margin-bottom: 2.3rem;
  opacity: 0;
  animation: fadeUp 0.7s 0.55s forwards;
}

.hdesc strong {
  color: var(--text);
}

/* Boutons CTA */
.ctas {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  opacity: 0;
  animation: fadeUp 0.7s 0.7s forwards;
}

.bf {
  font-family: 'Space Mono', monospace;
  font-size: 0.73rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--a);
  color: var(--bg);
  padding: 0.72rem 1.75rem;
  font-weight: 700;
  transition: opacity 0.2s, transform 0.2s;
  display: inline-block;
}

.bf:hover {
  opacity: 0.85;
  transform: translateY(-2px);
}

.bo {
  font-family: 'Space Mono', monospace;
  font-size: 0.73rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text);
  border: 1px solid var(--border);
  padding: 0.72rem 1.75rem;
  transition: border-color 0.2s, color 0.2s;
  display: inline-block;
}

.bo:hover {
  border-color: var(--b);
  color: var(--b);
}

/* Stats */
.hstats {
  display: flex;
  gap: 3rem;
  margin-top: 3.5rem;
  opacity: 0;
  animation: fadeUp 0.7s 0.9s forwards;
  flex-wrap: wrap;
}

.stat .sn {
  font-size: 2rem;
  font-weight: 800;
  color: var(--a);
  line-height: 1;
}

.stat .sl {
  font-family: 'Space Mono', monospace;
  font-size: 0.62rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-top: 0.3rem;
}

/* Badge statut */
.stbadge {
  position: absolute;
  top: calc(80px + 2rem);
  right: 2.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: 'Space Mono', monospace;
  font-size: 0.66rem;
  color: var(--muted);
  border: 1px solid var(--border);
  padding: 0.38rem 0.85rem;
  background: var(--bg2);
  opacity: 0;
  animation: fadeUp 0.7s 1.1s forwards;
}

.pulse {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--a);
  box-shadow: 0 0 8px var(--a);
  animation: blink 2s ease-in-out infinite;
}

/* Hint scroll */
.scr {
  position: absolute;
  bottom: 2.5rem;
  left: 2.5rem;
  font-family: 'Space Mono', monospace;
  font-size: 0.62rem;
  color: var(--muted);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  opacity: 0;
  animation: fadeUp 0.7s 1.3s forwards;
}

.scr::before {
  content: '';
  width: 35px;
  height: 1px;
  background: var(--muted);
}

/* Marquee */
.mband {
  position: relative;
  z-index: 1;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--bg2);
  padding: 0.85rem 0;
  overflow: hidden;
  transition: var(--transition);
}

.min {
  display: flex;
  animation: marqueeScroll 28s linear infinite;
  width: max-content;
}

.mi {
  font-family: 'Space Mono', monospace;
  font-size: 0.68rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 0 2.2rem;
  white-space: nowrap;
  border-right: 1px solid var(--border);
}

.mi .hi {
  color: var(--a);
}
