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

:root {
  --green: #00ff41;
  --green-dim: #00cc33;
  --bg: #000000;
}

html, body {
  height: 100%;
  width: 100%;
  background: var(--bg);
  color: var(--green);
  font-family: 'Courier New', Courier, monospace;
  overflow: hidden;
}

/* Matrix rain canvas — za všetkým */
#matrix-canvas {
  position: fixed;
  inset: 0;
  z-index: 0;
  opacity: 0.45;
}

/* Stredový obsah */
.hero {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
  gap: 1.5rem;
  padding: 1rem;
}

/* Názov */
.site-title {
  font-size: clamp(2.8rem, 10vw, 7rem);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: lowercase;
  color: var(--green);
  text-shadow:
    0 0 8px  var(--green),
    0 0 20px var(--green),
    0 0 40px var(--green-dim),
    0 0 80px var(--green-dim);
  animation: flicker 6s infinite;
  user-select: none;
}

.tagline {
  font-size: clamp(0.8rem, 2.5vw, 1.05rem);
  letter-spacing: 0.35em;
  text-transform: lowercase;
  color: var(--green-dim);
  opacity: 0.65;
  user-select: none;
}

@keyframes flicker {
  0%, 95%, 100% { opacity: 1; }
  96%            { opacity: 0.7; }
  97%            { opacity: 1; }
  98%            { opacity: 0.5; }
  99%            { opacity: 1; }
}

/* Glitch vrstvy na názve */
.site-title::before,
.site-title::after {
  content: attr(data-text);
  position: absolute;
  left: 0;
  right: 0;
  text-align: center;
  overflow: hidden;
  opacity: 0;
}

.site-title::before {
  color: #00ffff;
  animation: glitch-top 7s infinite linear;
  clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%);
  transform: translateX(-2px);
}

.site-title::after {
  color: #ff003c;
  animation: glitch-bot 7s infinite linear;
  clip-path: polygon(0 55%, 100% 55%, 100% 100%, 0 100%);
  transform: translateX(2px);
}

@keyframes glitch-top {
  0%, 89%, 100%  { opacity: 0; transform: translateX(0); }
  90%            { opacity: 0.8; transform: translateX(-4px); }
  92%            { opacity: 0; transform: translateX(4px); }
  94%            { opacity: 0.6; transform: translateX(-2px); }
  96%            { opacity: 0; }
}

@keyframes glitch-bot {
  0%, 91%, 100%  { opacity: 0; transform: translateX(0); }
  92%            { opacity: 0.7; transform: translateX(4px); }
  94%            { opacity: 0; transform: translateX(-4px); }
  96%            { opacity: 0.5; transform: translateX(2px); }
  98%            { opacity: 0; }
}

/* Šetrný režim pre používateľov s redukovaným pohybom */
@media (prefers-reduced-motion: reduce) {
  .site-title,
  .site-title::before,
  .site-title::after { animation: none; }
  .site-title::before,
  .site-title::after { opacity: 0; }
}
