/*
 * DESCUBRE EL HOYO · V71 — EL PUEBLO VIVO
 * Capa experimental no destructiva sobre la arquitectura V70.
 * Sin dependencias externas, cookies ni seguimiento.
 */

:root {
  --alive-ink: #10110d;
  --alive-paper: #f4f0e5;
  --alive-paper-2: #e8e1d0;
  --alive-acid: #d7ff63;
  --alive-coral: #ff5d3a;
  --alive-violet: #6757ff;
  --alive-sky: #78d5ff;
  --alive-forest: #123c2f;
  --alive-moss: #5b7a42;
  --alive-line: rgba(16, 17, 13, .18);
  --alive-shadow: 8px 8px 0 var(--alive-ink);
  --alive-shadow-soft: 0 30px 90px rgba(16, 17, 13, .17);
  --alive-radius: 2rem;
  --alive-display: "Arial Black", "Franklin Gothic Heavy", Impact, system-ui, sans-serif;
  --alive-human: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
}

html {
  scroll-padding-top: 7rem;
}

body.village-alive {
  background: var(--alive-paper);
  color: var(--alive-ink);
}

body.village-alive::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: .026;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}

/* CABECERA: una señal de carretera contemporánea */
body.village-alive .site-header {
  top: .7rem;
  left: .7rem;
  right: .7rem;
  width: auto;
  border: 2px solid rgba(255, 255, 255, .28);
  border-radius: 999px;
  background: rgba(16, 17, 13, .76);
  box-shadow: 0 18px 60px rgba(0, 0, 0, .24);
  backdrop-filter: blur(18px) saturate(1.3);
  -webkit-backdrop-filter: blur(18px) saturate(1.3);
  transition: transform .3s ease, background .3s ease, border-color .3s ease;
}

body.village-alive .site-header.is-scrolled {
  background: rgba(244, 240, 229, .95);
  border-color: var(--alive-ink);
}

body.village-alive .header-inner {
  min-height: 4.3rem;
  padding: .45rem .55rem .45rem .8rem;
}

body.village-alive .brand {
  color: #fff;
}

body.village-alive .site-header.is-scrolled .brand {
  color: var(--alive-ink);
}

body.village-alive .brand-symbol {
  width: 2.55rem;
  height: 2.55rem;
  border: 1px solid currentColor;
  background: var(--alive-acid);
  color: var(--alive-ink);
  transform: rotate(-7deg);
}

body.village-alive .brand-text strong {
  font-family: var(--alive-display);
  font-size: clamp(.95rem, 1.25vw, 1.25rem);
  letter-spacing: -.045em;
  text-transform: uppercase;
}

body.village-alive .brand-text small {
  letter-spacing: .16em;
  font-size: .52rem;
}

body.village-alive .menu-toggle,
body.village-alive .reading-settings-toggle,
body.village-alive .site-search-toggle {
  border: 1px solid rgba(255, 255, 255, .35);
  background: rgba(255, 255, 255, .1);
  color: #fff;
}

body.village-alive .site-header.is-scrolled .menu-toggle,
body.village-alive .site-header.is-scrolled .reading-settings-toggle,
body.village-alive .site-header.is-scrolled .site-search-toggle {
  color: var(--alive-ink);
  border-color: var(--alive-ink);
  background: transparent;
}

body.village-alive .menu-toggle {
  background: var(--alive-acid);
  color: var(--alive-ink);
  border-color: var(--alive-ink);
  font-weight: 900;
}

body.village-alive .menu-overlay {
  background:
    radial-gradient(circle at 82% 18%, rgba(215, 255, 99, .22), transparent 20rem),
    radial-gradient(circle at 12% 88%, rgba(255, 93, 58, .2), transparent 24rem),
    var(--alive-ink);
}

body.village-alive .menu-overlay::before {
  content: "38°24′30″N · 3°55′13″O";
  position: fixed;
  right: 2vw;
  bottom: 2vh;
  color: rgba(255, 255, 255, .06);
  font: 900 clamp(2rem, 8vw, 9rem)/.8 var(--alive-display);
  white-space: nowrap;
  pointer-events: none;
}

body.village-alive .menu-intro h2,
body.village-alive .menu-section-title {
  font-family: var(--alive-display);
  text-transform: uppercase;
}

body.village-alive .menu-section-title span,
body.village-alive .menu-kicker,
body.village-alive .menu-home span {
  color: var(--alive-acid);
}

/* HERO VIVO */
.village-hero {
  min-height: 100svh;
  position: relative;
  display: grid;
  place-items: end stretch;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  background: var(--alive-ink);
}

.village-hero__image,
.village-hero__veil,
.village-hero__contours,
.village-hero__sun {
  position: absolute;
  inset: 0;
}

.village-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -5;
  filter: saturate(.84) contrast(1.07);
  transform: scale(1.025);
}

.village-hero__veil {
  z-index: -4;
  background:
    linear-gradient(90deg, rgba(8, 12, 8, .96) 0%, rgba(8, 12, 8, .78) 46%, rgba(8, 12, 8, .14) 80%),
    linear-gradient(0deg, rgba(8, 12, 8, .98), transparent 60%);
}

.village-hero__contours {
  z-index: -2;
  opacity: .33;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='520' viewBox='0 0 520 520'%3E%3Cg fill='none' stroke='%23d7ff63' stroke-opacity='.65'%3E%3Cpath d='M31 292c29-151 89-252 227-252 129 0 232 89 232 215 0 130-89 224-219 224-119 0-213-73-213-181 0-102 80-184 181-184 91 0 168 62 168 152 0 82-65 148-146 148-72 0-128-51-128-119 0-62 48-111 109-111 53 0 94 39 94 88 0 45-34 80-78 80-36 0-65-25-65-59 0-28 23-51 50-51'/%3E%3Cpath d='M-40 422C66 164 190 44 443-14M80 544c45-170 155-272 344-326'/%3E%3C/g%3E%3C/svg%3E");
  background-size: min(48vw, 620px);
  background-position: 94% 34%;
  background-repeat: no-repeat;
  mix-blend-mode: screen;
}

.village-hero__sun {
  z-index: -3;
  width: clamp(11rem, 22vw, 25rem);
  height: clamp(11rem, 22vw, 25rem);
  inset: auto 8vw 20vh auto;
  border-radius: 50%;
  background: var(--alive-coral);
  opacity: .82;
  filter: blur(.2px);
}

.village-hero__grid {
  width: min(1740px, 100%);
  margin: 0 auto;
  padding: clamp(8.5rem, 16vh, 12rem) clamp(1rem, 5vw, 6rem) clamp(2rem, 5vh, 4rem);
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(17rem, .55fr);
  gap: clamp(2rem, 6vw, 8rem);
  align-items: end;
}

.village-hero__eyebrow,
.alive-kicker {
  margin: 0 0 1rem;
  text-transform: uppercase;
  letter-spacing: .19em;
  font-weight: 900;
  font-size: .68rem;
}

.village-hero__eyebrow {
  color: var(--alive-acid);
}

.village-hero h1 {
  max-width: 11ch;
  margin: 0;
  font: 900 clamp(4.2rem, 10.6vw, 12.5rem)/.74 var(--alive-display);
  letter-spacing: -.078em;
  text-transform: uppercase;
  text-wrap: balance;
}

.village-hero h1 span {
  display: inline-block;
  color: var(--alive-acid);
  -webkit-text-stroke: 1px var(--alive-ink);
  text-shadow: 5px 5px 0 var(--alive-ink);
  transform: rotate(-2deg);
}

.village-hero__lead {
  max-width: 52rem;
  margin: 1.8rem 0 0;
  color: rgba(255, 255, 255, .82);
  font-size: clamp(1rem, 1.45vw, 1.3rem);
}

.village-hero__doors {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 2rem;
}

.alive-chip,
.village-hero__doors a,
.village-hero__doors button {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, .58);
  border-radius: 999px;
  padding: .75rem 1rem;
  background: rgba(16, 17, 13, .35);
  color: #fff;
  text-decoration: none;
  font: 800 .72rem/1 var(--sans);
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: transform .2s ease, background .2s ease, color .2s ease;
}

.village-hero__doors a:hover,
.village-hero__doors button:hover,
.village-hero__doors a:focus-visible,
.village-hero__doors button:focus-visible {
  background: var(--alive-acid);
  color: var(--alive-ink);
  transform: translateY(-3px) rotate(-1deg);
}

.village-now {
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 1.6rem;
  padding: 1.25rem;
  background: rgba(16, 17, 13, .5);
  backdrop-filter: blur(14px);
  box-shadow: 0 22px 65px rgba(0, 0, 0, .2);
}

.village-now__top {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, .24);
}

.village-now__status {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--alive-acid);
  font-weight: 900;
  text-transform: uppercase;
  font-size: .65rem;
  letter-spacing: .12em;
}

.village-now__status::before {
  content: "";
  width: .65rem;
  height: .65rem;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 .35rem rgba(215, 255, 99, .13);
}

.village-now__time {
  font: 900 clamp(2.4rem, 5vw, 4.8rem)/.8 var(--alive-display);
  letter-spacing: -.06em;
}

.village-now__copy {
  margin: 1rem 0;
  color: rgba(255, 255, 255, .76);
}

.village-now__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem;
}

.village-now__actions a,
.village-now__actions button {
  min-height: 3.4rem;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 1rem;
  background: #fff;
  color: var(--alive-ink);
  text-align: center;
  text-decoration: none;
  font-weight: 900;
  cursor: pointer;
}

.village-now__actions button {
  background: var(--alive-coral);
}

.village-hero__ticker {
  grid-column: 1 / -1;
  display: flex;
  gap: 2rem;
  overflow: hidden;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, .25);
  color: rgba(255, 255, 255, .68);
  white-space: nowrap;
  font: 800 .66rem var(--sans);
  letter-spacing: .15em;
  text-transform: uppercase;
}

/* HOME: mezcla de plaza, archivo y máquina recreativa */
.village-home {
  overflow: clip;
  background: var(--alive-paper);
}

.alive-section {
  width: min(1660px, 100%);
  margin: 0 auto;
  padding: clamp(5rem, 10vw, 10rem) clamp(1rem, 5vw, 5rem);
}

.alive-section + .alive-section {
  border-top: 1px solid var(--alive-line);
}

.alive-heading {
  display: grid;
  grid-template-columns: .65fr 1.6fr;
  gap: clamp(1.5rem, 6vw, 8rem);
  align-items: start;
  margin-bottom: clamp(2.5rem, 6vw, 6rem);
}

.alive-heading h2 {
  max-width: 15ch;
  margin: 0;
  font: 900 clamp(2.8rem, 6.4vw, 7.6rem)/.82 var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.065em;
  text-wrap: balance;
}

.alive-heading p:last-child {
  max-width: 46rem;
  margin: .35rem 0 0;
  color: #4e5148;
  font-size: clamp(1rem, 1.4vw, 1.25rem);
}

.alive-kicker {
  color: var(--alive-coral);
}

/* Selector de relación con el pueblo */
.village-entrances {
  background: var(--alive-paper);
}

.entrance-machine {
  display: grid;
  grid-template-columns: minmax(15rem, .56fr) minmax(0, 1.44fr);
  border: 3px solid var(--alive-ink);
  border-radius: var(--alive-radius);
  overflow: hidden;
  box-shadow: var(--alive-shadow);
}

.entrance-tabs {
  padding: 1rem;
  background: var(--alive-ink);
  display: flex;
  flex-direction: column;
  gap: .55rem;
}

.entrance-tab {
  appearance: none;
  min-height: 4.6rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 1rem;
  background: transparent;
  color: #fff;
  text-align: left;
  cursor: pointer;
  font: 900 clamp(.83rem, 1.2vw, 1rem)/1.1 var(--sans);
  text-transform: uppercase;
  letter-spacing: .04em;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.entrance-tab small {
  display: block;
  margin-top: .35rem;
  color: rgba(255, 255, 255, .56);
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
}

.entrance-tab[aria-selected="true"] {
  background: var(--alive-acid);
  color: var(--alive-ink);
  transform: translateX(.55rem);
}

.entrance-tab[aria-selected="true"] small {
  color: rgba(16, 17, 13, .68);
}

.entrance-screen {
  min-height: 35rem;
  position: relative;
  display: grid;
  grid-template-columns: 1fr .8fr;
  overflow: hidden;
  background: #fff;
}

.entrance-screen__copy {
  z-index: 2;
  padding: clamp(2rem, 5vw, 5rem);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.entrance-screen__number {
  font: 900 clamp(4rem, 9vw, 9rem)/.75 var(--alive-display);
  color: var(--alive-coral);
}

.entrance-screen h3 {
  max-width: 12ch;
  margin: 1.5rem 0 1rem;
  font: 900 clamp(2.4rem, 4.8vw, 5.5rem)/.84 var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.055em;
}

.entrance-screen__text {
  max-width: 38rem;
  color: #505249;
  font-size: 1.06rem;
}

.entrance-screen__links {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 2rem;
}

.entrance-screen__links a {
  display: inline-flex;
  align-items: center;
  min-height: 3.3rem;
  padding: .7rem 1rem;
  border: 2px solid var(--alive-ink);
  border-radius: 999px;
  color: var(--alive-ink);
  text-decoration: none;
  font-weight: 900;
}

.entrance-screen__links a:first-child {
  background: var(--alive-coral);
}

.entrance-screen__media {
  position: relative;
  min-height: 100%;
  clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%);
}

.entrance-screen__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.entrance-screen__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(215, 255, 99, .18), transparent 48%);
  mix-blend-mode: screen;
}

/* Cuadro de mandos práctico */
.village-switchboard {
  color: #fff;
  background: var(--alive-forest);
  max-width: none;
  width: 100%;
}

.village-switchboard .alive-heading {
  width: min(1560px, calc(100% - 2rem));
  margin-inline: auto;
}

.village-switchboard .alive-heading p:last-child {
  color: rgba(255, 255, 255, .7);
}

.switchboard-grid {
  width: min(1560px, calc(100% - 2rem));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: .8rem;
}

.switch-card {
  min-height: 15rem;
  position: relative;
  grid-column: span 4;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.35rem;
  border: 2px solid var(--alive-ink);
  border-radius: 1.5rem;
  color: var(--alive-ink);
  background: var(--alive-paper);
  text-decoration: none;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}

.switch-card:nth-child(2) { background: var(--alive-acid); }
.switch-card:nth-child(3) { background: var(--alive-coral); }
.switch-card:nth-child(4) { background: var(--alive-sky); }
.switch-card:nth-child(5) { background: #fff; }
.switch-card:nth-child(6) { background: var(--alive-violet); color: #fff; }

.switch-card:hover,
.switch-card:focus-visible {
  transform: translate(-5px, -5px) rotate(-.4deg);
  box-shadow: 9px 9px 0 var(--alive-ink);
}

.switch-card__icon {
  font: 900 3.2rem/1 var(--alive-display);
}

.switch-card strong {
  display: block;
  max-width: 10ch;
  font: 900 clamp(1.7rem, 3vw, 3rem)/.88 var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.045em;
}

.switch-card small {
  display: block;
  max-width: 28rem;
  margin-top: .65rem;
  font-size: .88rem;
  opacity: .72;
}

.switch-card--wide { grid-column: span 8; }

/* Máquina del tiempo */
.time-machine {
  background: var(--alive-paper-2);
}

.time-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 34vw);
  gap: 1rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  padding: 1rem .25rem 2rem;
  scrollbar-color: var(--alive-coral) var(--alive-paper);
}

.time-card {
  min-height: 33rem;
  position: relative;
  scroll-snap-align: start;
  overflow: hidden;
  border: 3px solid var(--alive-ink);
  border-radius: 1.5rem;
  color: #fff;
  text-decoration: none;
  background: var(--alive-ink);
}

.time-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .58;
  filter: saturate(.72);
  transition: transform .6s ease, opacity .3s ease;
}

.time-card:hover img,
.time-card:focus-visible img {
  transform: scale(1.07);
  opacity: .78;
}

.time-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, .92), transparent 72%);
}

.time-card__copy {
  position: absolute;
  inset: auto 1.2rem 1.2rem;
  z-index: 2;
}

.time-card__year {
  display: inline-flex;
  padding: .35rem .55rem;
  border: 1px solid rgba(255, 255, 255, .6);
  border-radius: 999px;
  color: var(--alive-acid);
  font-weight: 900;
  letter-spacing: .1em;
}

.time-card h3 {
  margin: .8rem 0 .4rem;
  font: 900 clamp(2rem, 3.8vw, 4.2rem)/.82 var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.055em;
}

.time-card p {
  margin: 0;
  color: rgba(255, 255, 255, .72);
}

/* Atlas visual */
.village-atlas {
  background: var(--alive-ink);
  color: #fff;
}

.village-atlas .alive-heading p:last-child { color: rgba(255,255,255,.68); }

.atlas-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr 1fr;
  grid-template-rows: 22rem 17rem;
  gap: .85rem;
}

.atlas-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 1.6rem;
  color: #fff;
  text-decoration: none;
  isolation: isolate;
}

.atlas-card:first-child { grid-row: 1 / 3; }
.atlas-card:nth-child(4) { grid-column: 2 / 4; }

.atlas-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
  transition: transform .7s cubic-bezier(.2,.8,.2,1);
}

.atlas-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(0deg, rgba(0,0,0,.86), transparent 67%);
}

.atlas-card:hover img,
.atlas-card:focus-visible img { transform: scale(1.07); }

.atlas-card__copy {
  position: absolute;
  inset: auto 1.3rem 1.3rem;
}

.atlas-card__copy span {
  color: var(--alive-acid);
  text-transform: uppercase;
  font-weight: 900;
  font-size: .65rem;
  letter-spacing: .14em;
}

.atlas-card h3 {
  max-width: 12ch;
  margin: .45rem 0 0;
  font: 900 clamp(1.8rem, 3.2vw, 3.8rem)/.84 var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.05em;
}

/* Voces */
.village-voices {
  background: var(--alive-acid);
}

.voice-stage {
  position: relative;
  border: 3px solid var(--alive-ink);
  border-radius: var(--alive-radius);
  background: #fff;
  box-shadow: var(--alive-shadow);
  overflow: hidden;
}

.voice-slide {
  min-height: 31rem;
  display: none;
  grid-template-columns: .35fr 1.65fr;
  gap: clamp(2rem, 6vw, 7rem);
  padding: clamp(2rem, 6vw, 6rem);
  align-items: start;
}

.voice-slide.is-active { display: grid; }

.voice-slide__mark {
  font: 900 clamp(7rem, 15vw, 16rem)/.6 var(--alive-display);
  color: var(--alive-coral);
}

.voice-slide blockquote { margin: 0; }
.voice-slide blockquote p {
  margin: 0;
  font: 700 clamp(2.2rem, 4.8vw, 5.6rem)/.94 var(--alive-human);
  letter-spacing: -.045em;
}
.voice-slide cite {
  display: block;
  margin-top: 1.6rem;
  font-style: normal;
  color: #55584f;
}

.voice-controls {
  display: flex;
  justify-content: flex-end;
  gap: .6rem;
  padding: 0 clamp(2rem, 6vw, 6rem) 2rem;
}
.voice-controls button {
  width: 3.4rem;
  height: 3.4rem;
  border: 2px solid var(--alive-ink);
  border-radius: 50%;
  background: var(--alive-paper);
  font-size: 1.3rem;
  cursor: pointer;
}

/* Radio / libro */
.archive-duet {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 1rem;
}

.memory-radio,
.book-alive {
  min-height: 36rem;
  border: 3px solid var(--alive-ink);
  border-radius: var(--alive-radius);
  overflow: hidden;
}

.memory-radio {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(1.5rem, 4vw, 3.2rem);
  color: #fff;
  background: var(--alive-violet);
  box-shadow: var(--alive-shadow);
}

.memory-radio h3,
.book-alive h3 {
  margin: 0;
  font: 900 clamp(2.7rem, 5vw, 5.6rem)/.82 var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.06em;
}

.memory-radio__waves {
  height: 10rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
}

.memory-radio__waves span {
  width: .5rem;
  height: var(--wave, 30%);
  border-radius: 999px;
  background: var(--alive-acid);
  animation: village-wave 1.1s ease-in-out infinite alternate;
  animation-delay: var(--delay, 0s);
}

.memory-radio audio { width: 100%; }

.book-alive {
  position: relative;
  display: grid;
  grid-template-columns: .68fr 1fr;
  background: var(--alive-coral);
}

.book-alive img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-right: 3px solid var(--alive-ink);
}

.book-alive__copy {
  padding: clamp(1.5rem, 4vw, 3.2rem);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.book-alive__copy p { max-width: 35rem; }

.alive-arrow-link {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  width: fit-content;
  padding: .85rem 1rem;
  border: 2px solid var(--alive-ink);
  border-radius: 999px;
  color: var(--alive-ink);
  background: #fff;
  text-decoration: none;
  font-weight: 900;
}

/* Descubrimiento diario */
.daily-door {
  min-height: 31rem;
  position: relative;
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  overflow: hidden;
  border: 3px solid var(--alive-ink);
  border-radius: var(--alive-radius);
  background: var(--alive-ink);
  color: #fff;
  box-shadow: var(--alive-shadow);
}

.daily-door__copy {
  padding: clamp(2rem, 6vw, 6rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.daily-door h3 {
  max-width: 11ch;
  margin: .5rem 0 1rem;
  font: 900 clamp(3rem, 6vw, 7rem)/.8 var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.065em;
}

.daily-door__copy p { max-width: 38rem; color: rgba(255,255,255,.7); }
.daily-door__media { min-height: 31rem; }
.daily-door__media img { width:100%;height:100%;object-fit:cover; }
.daily-door .alive-arrow-link { margin-top:1.5rem;background:var(--alive-acid); }

/* Aportar: la web se queda abierta */
.village-contribute {
  max-width: none;
  width: 100%;
  padding-inline: max(1rem, calc((100vw - 1560px)/2));
  background: var(--alive-coral);
}

.contribute-board {
  display: grid;
  grid-template-columns: 1.5fr .5fr;
  gap: 2rem;
  align-items: end;
}

.contribute-board h2 {
  max-width: 12ch;
  margin: 0;
  font: 900 clamp(4rem, 9vw, 11rem)/.74 var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.075em;
}

.contribute-board__actions {
  display: grid;
  gap: .75rem;
}

.contribute-board__actions a {
  min-height: 4.8rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.2rem;
  border: 3px solid var(--alive-ink);
  border-radius: 1rem;
  background: #fff;
  color: var(--alive-ink);
  text-decoration: none;
  font-weight: 900;
  box-shadow: 5px 5px 0 var(--alive-ink);
}

/* PÁGINAS INTERIORES: hacer que el archivo respire */
body.village-alive:not(.home) .page-hero,
body.village-alive:not(.home) .section-hero {
  min-height: min(83svh, 880px);
  border-radius: 0 0 3.2rem 3.2rem;
  background: var(--alive-ink);
}

body.village-alive:not(.home) .page-hero::before,
body.village-alive:not(.home) .section-hero::before {
  content: attr(data-village-section);
  position: absolute;
  left: -.04em;
  bottom: -.12em;
  z-index: 1;
  color: rgba(215, 255, 99, .16);
  font: 900 clamp(8rem, 27vw, 30rem)/.72 var(--alive-display);
  text-transform: uppercase;
  pointer-events: none;
}

body.village-alive:not(.home) .hero-inner,
body.village-alive:not(.home) .section-hero-inner {
  z-index: 3;
}

body.village-alive:not(.home) .page-hero h1,
body.village-alive:not(.home) .section-hero h1 {
  max-width: 12ch;
  font-family: var(--alive-display);
  font-weight: 900;
  line-height: .77;
  text-transform: uppercase;
  letter-spacing: -.073em;
}

body.village-alive:not(.home) .hero-index,
body.village-alive:not(.home) .section-number {
  color: var(--alive-acid);
}

body.village-alive .breadcrumbs {
  position: sticky;
  top: 5.6rem;
  z-index: 120;
  background: rgba(244, 240, 229, .9);
  backdrop-filter: blur(12px);
  border-color: var(--alive-ink);
}

body.village-alive .article-card {
  position: relative;
  border: 2px solid var(--alive-ink);
  box-shadow: 10px 10px 0 rgba(16, 17, 13, .96);
  border-radius: 2rem;
}

body.village-alive .article-card h2,
body.village-alive .article-card h3 {
  font-family: var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.045em;
}

body.village-alive .article-card h2 {
  padding-top: .7rem;
  border-top: 4px solid var(--alive-ink);
}

body.village-alive .article-card blockquote {
  border: 0;
  border-radius: 1.5rem;
  padding: clamp(1.5rem, 4vw, 3rem);
  background: var(--alive-acid);
  color: var(--alive-ink);
  transform: rotate(-.35deg);
}

body.village-alive details {
  border-color: var(--alive-ink);
}

/* Barra de vida / lectura */
.village-progress {
  position: fixed;
  inset: 0 0 auto;
  z-index: 10000;
  height: .28rem;
  transform-origin: left;
  transform: scaleX(0);
  background: var(--alive-coral);
  pointer-events: none;
}

/* Sello de página y acciones */
.village-page-tools {
  position: fixed;
  z-index: 500;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  gap: .55rem;
}

.village-page-tools button,
.village-page-tools a {
  width: 3.6rem;
  height: 3.6rem;
  display: grid;
  place-items: center;
  border: 2px solid var(--alive-ink);
  border-radius: 50%;
  background: var(--alive-paper);
  color: var(--alive-ink);
  box-shadow: 4px 4px 0 var(--alive-ink);
  text-decoration: none;
  font-weight: 900;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease;
}

.village-page-tools button:hover,
.village-page-tools a:hover,
.village-page-tools button:focus-visible,
.village-page-tools a:focus-visible {
  transform: translate(-3px,-3px);
  background: var(--alive-acid);
}

.village-page-tools button.is-saved {
  background: var(--alive-coral);
}

/* Senda relacionada */
.village-next {
  margin-top: clamp(4rem, 8vw, 8rem);
  padding: clamp(3rem, 7vw, 7rem) max(1rem, calc((100vw - 1480px)/2));
  color: #fff;
  background: var(--alive-ink);
  overflow: hidden;
}

.village-next__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2rem;
}

.village-next__head h2 {
  max-width: 12ch;
  margin: 0;
  font: 900 clamp(2.8rem, 6vw, 7rem)/.8 var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.065em;
}

.village-next__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .8rem;
}

.village-next__card {
  min-height: 17rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.25rem;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 1.4rem;
  color: #fff;
  text-decoration: none;
  background: rgba(255,255,255,.07);
  transition: transform .2s ease, background .2s ease;
}

.village-next__card:nth-child(2) { background: var(--alive-coral); color:var(--alive-ink); }
.village-next__card:nth-child(3) { background: var(--alive-acid); color:var(--alive-ink); }
.village-next__card:hover,
.village-next__card:focus-visible { transform: translateY(-7px) rotate(-.5deg); }
.village-next__card strong { font:900 clamp(1.5rem,2.5vw,2.7rem)/.86 var(--alive-display);text-transform:uppercase;letter-spacing:-.04em; }
.village-next__card small { opacity:.72; }

/* Pasaporte local */
.village-passport-dialog {
  width: min(900px, calc(100% - 1.25rem));
  max-height: min(86svh, 860px);
  padding: 0;
  border: 3px solid var(--alive-ink);
  border-radius: 2rem;
  background: var(--alive-paper);
  color: var(--alive-ink);
  box-shadow: 15px 15px 0 var(--alive-ink);
}

.village-passport-dialog::backdrop {
  background: rgba(16,17,13,.78);
  backdrop-filter: blur(8px);
}

.village-passport {
  padding: clamp(1.25rem, 4vw, 3rem);
}

.village-passport__header {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:start;
  padding-bottom:1.3rem;
  border-bottom:3px solid var(--alive-ink);
}

.village-passport__header h2 {
  max-width: 11ch;
  margin: 0;
  font: 900 clamp(2.7rem, 7vw, 6.5rem)/.76 var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.065em;
}

.village-passport__close {
  width:3rem;height:3rem;border:2px solid var(--alive-ink);border-radius:50%;background:var(--alive-coral);font-size:1.35rem;cursor:pointer;
}

.passport-stamps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:.7rem;
  margin:1.5rem 0;
}

.passport-stamp {
  min-height:8rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:1rem;
  border:2px solid var(--alive-ink);
  border-radius:1rem;
  background:#fff;
  transform:rotate(var(--stamp-rotate,0deg));
}

.passport-stamp:nth-child(2) { background:var(--alive-acid);--stamp-rotate:1.3deg; }
.passport-stamp:nth-child(3) { background:var(--alive-coral);--stamp-rotate:-1.5deg; }
.passport-stamp:nth-child(4) { background:var(--alive-sky);--stamp-rotate:.8deg; }
.passport-stamp strong { font:900 1rem var(--alive-display);text-transform:uppercase; }
.passport-stamp span { font:900 2.6rem/.8 var(--alive-display); }

.passport-columns { display:grid;grid-template-columns:1fr 1fr;gap:1.5rem; }
.passport-columns h3 { font:900 1.25rem var(--alive-display);text-transform:uppercase; }
.passport-list { list-style:none;margin:0;padding:0;display:grid;gap:.55rem; }
.passport-list a { display:block;padding:.75rem;border:1px solid var(--alive-line);border-radius:.8rem;color:var(--alive-ink);background:#fff;text-decoration:none;font-weight:800; }
.passport-empty { color:#5d6057; }
.passport-note { margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--alive-line);font-size:.84rem;color:#5d6057; }

/* Dock móvil */
.village-dock {
  display: none;
  position: fixed;
  z-index: 700;
  left: .55rem;
  right: .55rem;
  bottom: .55rem;
  padding: .4rem;
  border: 2px solid var(--alive-ink);
  border-radius: 1.3rem;
  background: rgba(244, 240, 229, .94);
  box-shadow: 0 14px 45px rgba(0,0,0,.24);
  backdrop-filter: blur(14px);
}

.village-dock a,
.village-dock button {
  min-width:0;
  display:grid;
  place-items:center;
  gap:.16rem;
  border:0;
  border-radius:.9rem;
  padding:.5rem .25rem;
  background:transparent;
  color:var(--alive-ink);
  text-decoration:none;
  font:800 .58rem var(--sans);
  text-transform:uppercase;
  letter-spacing:.04em;
  cursor:pointer;
}
.village-dock span { font-size:1.3rem;line-height:1; }
.village-dock a:nth-child(2) { background:var(--alive-acid); }

/* Footer */
body.village-alive .site-footer {
  background: var(--alive-ink);
}
body.village-alive .footer-marquee span {
  font-family: var(--alive-display);
  color: var(--alive-acid);
  text-transform: uppercase;
}
body.village-alive .footer-brand h2 {
  font-family: var(--alive-display);
  text-transform: uppercase;
  letter-spacing: -.06em;
}

/* Animaciones */
@keyframes village-wave {
  to { height: calc(var(--wave, 30%) * .42); opacity: .55; }
}

@media (prefers-reduced-motion: no-preference) {
  .village-hero__contours { animation: alive-contours 18s ease-in-out infinite alternate; }
  @keyframes alive-contours { to { transform: translate(2rem,-1.5rem) rotate(2deg); } }
}

/* Tablet */
@media (max-width: 1080px) {
  .village-hero__grid { grid-template-columns: 1fr; }
  .village-now { max-width: 35rem; }
  .alive-heading { grid-template-columns: 1fr; }
  .entrance-machine { grid-template-columns: 1fr; }
  .entrance-tabs { flex-direction: row; overflow-x: auto; }
  .entrance-tab { min-width: 14rem; }
  .entrance-tab[aria-selected="true"] { transform: translateY(-.25rem); }
  .switch-card { grid-column: span 6; }
  .switch-card--wide { grid-column: span 12; }
  .archive-duet { grid-template-columns: 1fr; }
  .passport-stamps { grid-template-columns: repeat(2,1fr); }
}

/* Mobile */
@media (max-width: 760px) {
  body.village-alive { padding-bottom: 5.8rem; }
  body.village-alive .site-header { top:.4rem;left:.4rem;right:.4rem; }
  body.village-alive .header-inner { min-height:3.75rem; }
  body.village-alive .brand-text small { display:none; }
  body.village-alive .header-actions { gap:.25rem; }
  body.village-alive .reading-settings-label,
  body.village-alive .site-search-label { display:none; }
  body.village-alive .menu-toggle-label { font-size:.65rem; }
  .village-hero__grid { padding-top:8rem;gap:2rem; }
  .village-hero h1 { font-size:clamp(3.8rem, 20vw, 6.2rem); }
  .village-hero__lead { max-width:31rem; }
  .village-hero__sun { right:-3rem;bottom:37vh; }
  .village-hero__contours { background-size:120vw;background-position:120% 20%; }
  .village-now__actions { grid-template-columns:1fr; }
  .alive-section { padding-block:4.5rem; }
  .alive-heading h2 { font-size:clamp(2.7rem, 14vw, 5rem); }
  .entrance-tabs { padding:.65rem; }
  .entrance-tab { min-width:12rem;min-height:4rem; }
  .entrance-screen { grid-template-columns:1fr; }
  .entrance-screen__copy { min-height:34rem; }
  .entrance-screen__media { min-height:19rem;clip-path:none;order:-1; }
  .entrance-screen__number { font-size:4.2rem; }
  .switchboard-grid { grid-template-columns:1fr; }
  .switch-card,.switch-card--wide { grid-column:auto;min-height:13rem; }
  .time-rail { grid-auto-columns:84vw; }
  .atlas-grid { grid-template-columns:1fr;grid-template-rows:none; }
  .atlas-card,.atlas-card:first-child,.atlas-card:nth-child(4) { min-height:23rem;grid-column:auto;grid-row:auto; }
  .voice-slide { min-height:37rem;grid-template-columns:1fr;gap:1rem; }
  .voice-slide__mark { font-size:7rem; }
  .voice-slide blockquote p { font-size:clamp(2rem,9vw,3.4rem); }
  .book-alive { grid-template-columns:1fr; }
  .book-alive img { height:19rem;border-right:0;border-bottom:3px solid var(--alive-ink);object-position:top; }
  .daily-door { grid-template-columns:1fr; }
  .daily-door__media { min-height:18rem;order:-1; }
  .contribute-board { grid-template-columns:1fr; }
  .contribute-board h2 { font-size:clamp(3.7rem,18vw,7rem); }
  body.village-alive:not(.home) .page-hero,
  body.village-alive:not(.home) .section-hero { min-height:72svh;border-radius:0 0 2rem 2rem; }
  body.village-alive:not(.home) .page-hero h1,
  body.village-alive:not(.home) .section-hero h1 { font-size:clamp(3.5rem,17vw,6.3rem); }
  body.village-alive .breadcrumbs { top:4.7rem; }
  body.village-alive .article-card { box-shadow:5px 5px 0 var(--alive-ink);border-radius:1.35rem; }
  .village-page-tools { display:none; }
  .village-next__head { align-items:start;flex-direction:column; }
  .village-next__grid { grid-template-columns:1fr; }
  .passport-columns { grid-template-columns:1fr; }
  .village-dock { display:grid;grid-template-columns:repeat(4,1fr); }
}

@media (max-width: 420px) {
  .passport-stamps { grid-template-columns:1fr 1fr; }
  .passport-stamp { min-height:7rem; }
  .village-hero__doors { display:grid;grid-template-columns:1fr 1fr; }
  .village-hero__doors a,.village-hero__doors button { text-align:center; }
}

@media (prefers-reduced-motion: reduce) {
  .village-hero__contours,
  .memory-radio__waves span { animation:none !important; }
  .time-card img,
  .atlas-card img { transition:none; }
}

/* Contraste alto y tipografía sencilla del sistema existente */
html.a11y-high-contrast body.village-alive {
  --alive-paper:#fff;
  --alive-paper-2:#fff;
  --alive-ink:#000;
  --alive-acid:#ffff00;
  --alive-coral:#ff5a36;
}
html.a11y-simple-type .village-hero h1,
html.a11y-simple-type .alive-heading h2,
html.a11y-simple-type .entrance-screen h3,
html.a11y-simple-type .switch-card strong,
html.a11y-simple-type .time-card h3,
html.a11y-simple-type .atlas-card h3,
html.a11y-simple-type .memory-radio h3,
html.a11y-simple-type .book-alive h3,
html.a11y-simple-type .daily-door h3,
html.a11y-simple-type .contribute-board h2,
html.a11y-simple-type .village-next__head h2 {
  font-family: Arial, sans-serif;
  letter-spacing: -.035em;
}
.memory-radio__waves span:nth-child(1){--wave:45%;--delay:-.2s}
.memory-radio__waves span:nth-child(2){--wave:82%;--delay:-.7s}
.memory-radio__waves span:nth-child(3){--wave:55%;--delay:-.4s}
.memory-radio__waves span:nth-child(4){--wave:95%;--delay:-.9s}
.memory-radio__waves span:nth-child(5){--wave:68%;--delay:-.1s}
.memory-radio__waves span:nth-child(6){--wave:38%;--delay:-.5s}
.memory-radio__waves span:nth-child(7){--wave:78%;--delay:-.8s}
.memory-radio__waves span:nth-child(8){--wave:52%;--delay:-.3s}
.memory-radio__waves span:nth-child(9){--wave:88%;--delay:-.6s}
