:root {
  --bg: #ffffff;
  --ink: #000000;
  --pad-x: 26px;
}
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: "martian-mono-variable", monospace;
  letter-spacing: 0.02em;
}

.topline {
  height: 10px;
  background: #fff;
  width: 100%;
}

header {
  display: grid;
  grid-template-columns: 250px 1fr 240px 42px;
  align-items: flex-start;
  padding: 16px var(--pad-x) 0;
  gap: 16px;
}

.logo {
  width: 210px;
  height: 90px;
  display: flex;
  align-items: center;
  cursor: pointer;
}
.logo img {
  height: 80px;
  width: auto;
  border-radius: 9999px;
  animation: spin 12s linear infinite;
  display: block;
  transform-origin: center;
  transition: filter 0.2s ease;
}
.logo:hover img {
  filter: contrast(1.05);
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.intro {
  white-space: normal;
  font-size: 13px;
  line-height: 1.25;
  max-width: 420px;
  margin-left: 100px;
  text-align: left;
}

.col-menu {
  font-size: 13px;
  line-height: 1.3;
  text-align: left;
  max-width: 400px;
  margin-left: -100px;
}
.col-menu strong {
  display: block;
  font-size: 15px;
  margin-bottom: 4px;
  margin-left: -110px;
}

/* ===== LISTADO PRINCIPAL ===== */
main {
  padding: 76px var(--pad-x) 40px;
}

.listado {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.modulo {
  display: block;
  position: relative;
}

.item {
  font-size: 20px;
  text-transform: uppercase;
  text-decoration: none;
  color: inherit;
  line-height: 1.1;
  display: block;
  margin-top: 10px;
  cursor: pointer;
  transition: transform 0.12s ease-out;
}

.item:hover,
.item:focus-visible {
  text-decoration: underline;
  transform: translateX(4px);
  outline: none;
}

/* descripción abajo e indentada un poco */
.desc {
  max-width: 600px;
  font-size: 13px;
  line-height: 1.25;
  margin-top: 10px;      /* debajo del título */
  margin-left: 30px;     /* un poco hacia la derecha, pero no tanto */
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.13s ease-out;
}

.modulo .item:hover + .desc,
.modulo .item:focus-visible + .desc {
  opacity: 1;
}

/* responsive */
@media (max-width: 1024px) {
  header {
    grid-template-columns: 1fr;
  }
  .intro,
  .col-menu,
  .col-menu strong {
    margin-left: 0;
  }
  .desc {
    margin-left: 0;
  }
}
