@import url('https://fonts.googleapis.com/css2?family=UnifrakturCook:wght@700&family=Montserrat:wght@300;500&display=swap');

:root {
  --bg: #0e0e0e;
  --fg: #e0e0e0;
  --crimson: #8b0000;
  --gray: #777;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: 'Montserrat', sans-serif;
  overflow-x: hidden;
}

/* Grainy background */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: -1;
}

/* Header */
header {
  text-align: center;
  padding: 4rem 1rem;
  background: linear-gradient(180deg, #000, #111);
  position: relative;
  overflow: hidden;
}

header h1 {
  font-family: 'UnifrakturCook', cursive;
  font-size: 3.5rem;
  color: var(--crimson);
  letter-spacing: 2px;
  animation: flicker 3s infinite;
}

/* Blood pulse */
header::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(139,0,0,0.2), transparent 70%);
  animation: pulse 6s infinite;
}

nav a {
  margin: 0 1rem;
  color: var(--gray);
  text-decoration: none;
}

nav a:hover {
  color: var(--crimson);
}

main {
  max-width: 900px;
  margin: auto;
  padding: 2rem;
}

footer {
  text-align: center;
  color: var(--gray);
  font-size: 0.8rem;
  padding: 2rem;
}

@keyframes flicker {
  0%, 100% { opacity: 1; }
  45% { opacity: 0.8; }
  47% { opacity: 0.4; }
  49% { opacity: 1; }
}

@keyframes pulse {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}
