/* solo lo propio de la portada. Lo compartido vive en theme.css */

body {
  min-height:100svh;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  padding:48px 28px;
  text-align:center;
}

.phrase {
  font-family:var(--serif);
  font-weight:330;
  font-size:clamp(34px, 6.4vw, 84px);
  line-height:1.04;
  letter-spacing:-0.025em;
  max-width:16ch;
}
.phrase em { font-style:italic; color:var(--ink-soft); }

.caret {
  font-style:normal; color:var(--sand);
  margin-left:.06em; font-weight:400;
  animation:blink 1.15s steps(1) infinite;
}
@keyframes blink { 0%,50%{opacity:1} 50.01%,100%{opacity:0} }

.tags {
  margin-top:40px;
  font-size:clamp(11px, 1.5vw, 14px);
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--ink-soft);
  display:flex; flex-wrap:wrap; gap:10px 0;
  justify-content:center;
}
.tags span { white-space:nowrap; }
.tags .dot { color:var(--sand); padding:0 14px; }

.contact {
  margin-top:64px;
  display:flex; flex-wrap:wrap; gap:28px;
  justify-content:center;
  font-size:14px;
}
.contact a {
  color:var(--ink-soft); text-decoration:none;
  border-bottom:1px solid var(--line);
  padding-bottom:3px;
  transition:color .25s ease, border-color .25s ease;
}
.contact a:hover { color:var(--ink); border-color:var(--ink); }

/* el contenido va por encima de las capas ambientales */
.phrase, .tags, .contact { position:relative; z-index:1; }

@media (prefers-reduced-motion:reduce) { .caret { animation:none; } }
@media (max-width:540px) { .tags .dot { padding:0 9px; } }
