/* Vorka México · páginas personales del equipo (p. ej. /ximepastor/)
   Base: vorka.css (barra, pie, tipografía y botones de Vorka). Encima: foto a pantalla completa, bocetos a mano
   y una paleta de materiales (terracota, ocre, salvia, cielo) sobre arena. Las notas a mano usan Caveat. */

/* Al deslizar más allá del borde (rebote del celular) se ve el fondo de la página: oscuro como la foto, no blanco */
html:has(.xp) { background: #1B1916; }
.xp-link { color: inherit; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.xp-link:hover { text-decoration-color: var(--ocre); }

.xp { --arena: #F1ECE4; --arena-2: #E7E0D5; --tinta: #1B1916; --gris: #6E675E;
  --terracota: #C8553D; --ocre: #DFA43A; --salvia: #7E9C82; --cielo: #6F93B8;
  --mano: "Caveat", "Segoe Print", cursive; background: var(--arena); color: var(--tinta); }
.mano { font-family: var(--mano); font-weight: 600; letter-spacing: 0; }
.xp-etq { display: inline-flex; align-items: center; gap: 10px; font-size: 12.5px; font-weight: 650; letter-spacing: .16em; text-transform: uppercase; color: var(--gris); }
.xp-etq::before { content: ""; width: 22px; height: 3px; border-radius: 3px; background: var(--terracota); }
.subr { position: relative; display: inline-block; white-space: nowrap; }
.trazo { position: absolute; left: -2%; bottom: -.12em; width: 104%; height: .32em; color: var(--ocre); pointer-events: none; }

/* ---------- portada ---------- */
.xp-hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; color: #fff; overflow: hidden; background: #2a2622; }
.xp-hero-foto { position: absolute; inset: 0; }
.xp-hero-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 38%; }
.xp-hero::after { content: ""; position: absolute; inset: 0; background:
  linear-gradient(180deg, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, 0) 24%, rgba(0, 0, 0, 0) 46%, rgba(0, 0, 0, .72) 100%); }
.xp-hero-in { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: 48px; align-items: end; padding-bottom: clamp(44px, 7vw, 88px); }
.xp-kicker { font-size: clamp(26px, 2.6vw, 34px); color: #fff; text-shadow: 0 2px 14px rgba(0, 0, 0, .6); margin-bottom: 6px; transform: rotate(-3deg); transform-origin: left; }
.xp-nombre { font-size: clamp(66px, 10vw, 158px); line-height: .88; letter-spacing: -.05em; font-weight: 300; text-shadow: 0 4px 30px rgba(0, 0, 0, .45); }
.xp-nombre .subr { font-weight: 600; }
.xp-disc { display: flex; align-items: center; gap: 12px; margin-top: 26px; font-size: 13px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; text-shadow: 0 1px 10px rgba(0, 0, 0, .6); }
.xp-disc i { width: 34px; height: 3px; border-radius: 3px; background: var(--ocre); }
.xp-hero-lado p { font-size: 17.5px; line-height: 1.55; color: rgba(255, 255, 255, .94); text-shadow: 0 1px 12px rgba(0, 0, 0, .55); max-width: 36ch; margin-bottom: 24px; }

/* ---------- intro ---------- */
.xp-intro { padding: clamp(96px, 12vw, 160px) 0; }
.xp-intro-g { display: grid; grid-template-columns: 240px 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.xp-intro-l { display: grid; gap: 22px; justify-items: start; }
.casita { width: 150px; color: var(--terracota); }
.nota { font-size: 24px; color: var(--gris); transform: rotate(-4deg); }
.xp-grande { font-size: clamp(32px, 3.9vw, 56px); line-height: 1.16; letter-spacing: -.03em; font-weight: 300; }
.xp-grande mark { color: inherit; font-weight: 500; padding: 0 .08em; border-radius: .12em; background-repeat: no-repeat; background-size: 100% .42em; background-position: 0 88%; }
.m-ocre { background-image: linear-gradient(rgba(223, 164, 58, .55), rgba(223, 164, 58, .55)); background-color: transparent; }
.m-salvia { background-image: linear-gradient(rgba(126, 156, 130, .5), rgba(126, 156, 130, .5)); background-color: transparent; }
.m-terracota { background-image: linear-gradient(rgba(200, 85, 61, .38), rgba(200, 85, 61, .38)); background-color: transparent; }

/* ---------- secciones ---------- */
.xp-sec { padding: clamp(88px, 11vw, 150px) 0; }
.xp-cab { position: relative; max-width: 720px; margin-bottom: clamp(40px, 5vw, 64px); }
.xp-cab h2 { margin-top: 18px; font-size: clamp(36px, 4.6vw, 62px); line-height: 1.02; letter-spacing: -.045em; font-weight: 600; }
.xp-cab p { margin-top: 16px; font-size: 19px; color: var(--gris); max-width: 46ch; }
.flechita { position: absolute; right: -110px; bottom: -40px; width: 96px; color: var(--terracota); transform: rotate(18deg); }

/* manifiesto: tablero de tarjetas de color */
.tablero { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.tarjeta { grid-column: span 2; position: relative; padding: 30px 30px 34px; border-radius: 24px; min-height: 340px; display: flex; flex-direction: column; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.tarjeta:nth-child(4), .tarjeta:nth-child(5) { grid-column: span 3; min-height: 260px; }
.tarjeta:hover { transform: translateY(-4px); box-shadow: 0 24px 50px -24px rgba(27, 25, 22, .45); }
.t-n { font-size: 15px; font-weight: 700; letter-spacing: .12em; padding: 7px 12px; border-radius: 999px; align-self: flex-start; background: rgba(255, 255, 255, .2); }
.tarjeta h3 { margin-top: auto; padding-top: 30px; font-size: 25px; line-height: 1.15; letter-spacing: -.025em; font-weight: 650; max-width: 20ch; }
.tarjeta p { margin-top: 12px; font-size: 15.5px; line-height: 1.6; opacity: .9; max-width: 52ch; }
.t-terracota { background: var(--terracota); color: #fff; }
.t-ocre { background: var(--ocre); color: var(--tinta); } .t-ocre .t-n { background: rgba(27, 25, 22, .1); }
.t-salvia { background: var(--salvia); color: #fff; }
.t-tinta { background: var(--tinta); color: #fff; } .t-tinta .t-n { background: var(--ocre); color: var(--tinta); }
.t-cielo { background: var(--cielo); color: #fff; }

/* collage de fotos */
.xp-collage { padding: 0 0 clamp(40px, 6vw, 80px); }
.collage { display: grid; grid-template-columns: repeat(12, 1fr); grid-template-rows: auto auto; gap: 18px; align-items: start; }
.collage figure { position: relative; }
.collage img { width: 100%; height: 100%; object-fit: cover; border-radius: 16px; }
.collage figcaption { margin-top: 8px; font-size: 22px; color: var(--gris); }
.cl-a { grid-column: 1 / 8; } .cl-a img { aspect-ratio: 16 / 10; }
.cl-b { grid-column: 9 / 12; margin-top: 40px; transform: rotate(3deg); } .cl-b img { aspect-ratio: 4 / 5; object-position: 50% 25%; }
.cl-c { grid-column: 2 / 7; margin-top: -10px; } .cl-c img { aspect-ratio: 4 / 3; }
.cl-d { grid-column: 8 / 11; margin-top: -60px; transform: rotate(-4deg); } .cl-d img { aspect-ratio: 3 / 4; }
.polaroid { background: #fff; padding: 12px 12px 6px; border-radius: 6px; box-shadow: 0 2px 4px rgba(27, 25, 22, .06), 0 22px 44px -18px rgba(27, 25, 22, .35); }
.polaroid img { border-radius: 2px; }
.polaroid figcaption { text-align: center; color: var(--tinta); margin: 4px 0 2px; }
.polaroid::before { content: ""; position: absolute; top: -12px; left: 50%; width: 92px; height: 26px; margin-left: -46px; background: rgba(223, 164, 58, .55); transform: rotate(-3deg); border-radius: 2px; }

/* trayectoria */
.xp-tray { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 90px); align-items: start; }
.xp-tray .xp-cab { position: sticky; top: 120px; }
.hitos { display: grid; gap: 16px; }
.hito { display: grid; grid-template-columns: 96px 1fr; gap: 20px; padding: 26px 26px 28px; background: #fff; border-radius: 22px; border-left: 6px solid var(--c); }
.h-terracota { --c: var(--terracota); } .h-ocre { --c: var(--ocre); } .h-salvia { --c: var(--salvia); } .h-cielo { --c: var(--cielo); }
.h-anio { font-size: 38px; font-weight: 300; letter-spacing: -.04em; color: var(--c); line-height: 1; }
.hito h3 { font-size: 22px; letter-spacing: -.025em; line-height: 1.2; font-weight: 650; }
.hito b { display: block; margin-top: 4px; font-size: 15.5px; font-weight: 600; }
.hito small { display: block; margin-top: 2px; font-size: 13.5px; color: var(--gris); }
.hito p { margin-top: 12px; color: #4b453e; font-size: 15.5px; line-height: 1.6; }

/* visión */
.xp-vision { background: var(--salvia); color: #fff; }
.xp-vision .xp-etq { color: rgba(255, 255, 255, .85); } .xp-vision .xp-etq::before { background: var(--ocre); }
.xp-vision .xp-cab p { color: rgba(255, 255, 255, .85); }
.xp-vision-g { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 90px); align-items: start; }
.xp-vision-g .xp-cab { position: sticky; top: 120px; }
.vision li { display: grid; grid-template-columns: 56px 1fr; gap: 14px; padding: 26px 0; border-top: 1px solid rgba(255, 255, 255, .35); }
.vision li:last-child { border-bottom: 1px solid rgba(255, 255, 255, .35); }
.v-n { font-family: var(--mano); font-size: 30px; color: var(--ocre); line-height: 1; }
.vision h3 { font-size: clamp(20px, 2vw, 24px); line-height: 1.2; letter-spacing: -.02em; font-weight: 650; }
.vision p { margin-top: 10px; color: rgba(255, 255, 255, .88); line-height: 1.6; }

/* reconocimientos */
.xp-reco { display: grid; grid-template-columns: 1fr 1fr 280px; gap: clamp(28px, 5vw, 72px); align-items: start; }
.premios { margin-top: 20px; display: grid; gap: 10px; }
.premios li { display: grid; grid-template-columns: 70px 1fr; column-gap: 14px; padding: 18px 20px; background: #fff; border-radius: 18px; }
.premios b { font-size: 18px; letter-spacing: -.015em; font-weight: 650; } .premios small { grid-column: 2; color: var(--gris); font-size: 14.5px; }
.p-anio { grid-row: span 2; font-size: 26px; font-weight: 300; letter-spacing: -.03em; color: var(--terracota); align-self: center; }
.chips { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 8px; }
.chip { padding: 9px 16px; border-radius: 999px; font-size: 15px; font-weight: 600; }
.c-terracota { background: rgba(200, 85, 61, .14); color: #9c3e2a; } .c-ocre { background: rgba(223, 164, 58, .22); color: #7d5a14; }
.c-salvia { background: rgba(126, 156, 130, .22); color: #3f5c44; } .c-tinta { background: rgba(27, 25, 22, .08); color: var(--tinta); }
.reco-foto { transform: rotate(2.5deg); } .reco-foto img { aspect-ratio: 2 / 3; object-fit: cover; width: 100%; }

/* contacto */
.xp-contacto { background: var(--terracota); color: #fff; padding: clamp(88px, 11vw, 140px) 0; overflow: hidden; }
.xp-contacto-g { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); gap: 48px; align-items: end; }
.xp-mano-claro { font-size: 34px; color: #fff; display: inline-block; transform: rotate(-3deg); }
.xp-contacto h2 { margin-top: 8px; font-size: clamp(40px, 5.4vw, 76px); line-height: 1.02; letter-spacing: -.045em; font-weight: 300; }
.xp-contacto h2 .subr { font-weight: 600; } .xp-contacto .trazo { color: var(--ocre); }
.xp-contacto p { margin: 22px 0 30px; font-size: 18.5px; color: rgba(255, 255, 255, .9); max-width: 48ch; }
.xp-redes { display: grid; gap: 10px; }
.xp-redes a { display: flex; align-items: center; gap: 14px; padding: 18px 22px; border-radius: 18px; background: rgba(255, 255, 255, .12); text-decoration: none; font-weight: 600; transition: background .2s; }
.xp-redes a:hover { background: rgba(255, 255, 255, .22); } .xp-redes svg { width: 22px; height: 22px; }

/* ---------- tableta y celular ---------- */
@media (max-width: 980px) {
  .xp-hero-in, .xp-intro-g, .xp-tray, .xp-vision-g, .xp-contacto-g { grid-template-columns: 1fr; }
  .xp-tray .xp-cab, .xp-vision-g .xp-cab { position: static; }
  .xp-intro-l { grid-template-columns: auto 1fr; align-items: center; } .casita { width: 110px; }
  .tablero { grid-template-columns: 1fr 1fr; } .tarjeta, .tarjeta:nth-child(4), .tarjeta:nth-child(5) { grid-column: span 1; min-height: 0; }
  .tarjeta:nth-child(5) { grid-column: 1 / -1; }
  .flechita { display: none; }
  .xp-reco { grid-template-columns: 1fr 1fr; } .reco-foto { grid-column: 1 / -1; max-width: 300px; }
  .collage { grid-template-columns: repeat(6, 1fr); }
  .cl-a { grid-column: 1 / 7; } .cl-b { grid-column: 4 / 7; margin-top: -60px; } .cl-c { grid-column: 1 / 5; margin-top: -40px; } .cl-d { grid-column: 4 / 7; margin-top: -30px; }
}
@media (max-width: 640px) {
  .xp-hero { min-height: 100svh; }
  .xp-hero-foto img { object-position: 36% 20%; }
  .xp-hero::after { background: linear-gradient(180deg, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, 0) 22%, rgba(0, 0, 0, .15) 40%, rgba(0, 0, 0, .82) 66%, rgba(0, 0, 0, .9) 100%); }
  .xp-hero-in { gap: 26px; }
  .xp-nombre { font-size: 64px; }
  .tablero { grid-template-columns: 1fr; } .tarjeta:nth-child(n) { grid-column: auto; min-height: 0; }
  .xp-reco { grid-template-columns: 1fr; }
  .hito { grid-template-columns: 1fr; gap: 8px; }
  .collage { gap: 12px; }
  .cl-b { grid-column: 3 / 7; } .cl-d { grid-column: 1 / 4; margin-top: -20px; } .cl-c { grid-column: 3 / 7; margin-top: -60px; }
}
