/* ============================================================ home: La Lotería */

/* ------------------------------------------------------------ 1 · hero */
.hero__stage { background: #c9cfcc; }
.hero__stage > * { position: absolute; }
.hero__plate { inset: 0; }
.hero__plate img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%;
  transform: scale(calc(1.1 + var(--sc-p, 0) * 0.05)); transform-origin: 50% 0; }
.hero__far { width: clamp(16rem, 30vw, 34rem); max-width: none; left: 30vw; top: 47%;
  transform: translate3d(0, calc(var(--sc-p, 0) * -1.5vh), 0) scale(calc(1 + var(--sc-p, 0) * 0.06)); transform-origin: 50% 100%;
  filter: saturate(.9) contrast(.92); opacity: .96; }
.hero__copy { z-index: 2; left: var(--sc-gutter); top: calc(var(--bar-h) + 5vh); max-width: min(64vw, 60rem); }
.hero__kick { font-size: var(--sc-t-xs); letter-spacing: .16em; text-transform: uppercase; font-weight: 650; color: var(--red-deep); margin: 0 0 1.1em;
  opacity: clamp(0, calc(1.6 - var(--sc-p, 0) * 4), 1); }
.hero__t { margin: 0; font-family: var(--sc-font-display); font-weight: 820; font-variation-settings: "opsz" 144, "SOFT" 20, "WONK" 1;
  font-size: clamp(3rem, 6.6vw, 7.6rem); line-height: .9; letter-spacing: -0.04em; color: var(--ink); max-width: none; text-wrap: nowrap;
  transform: translate3d(0, calc(var(--sc-p, 0) * 30vh), 0); opacity: clamp(0, calc(2.2 - var(--sc-p, 0) * 4), 1); }
.hero__t em { color: var(--red); padding-right: .1em; }
.hero__sub { margin-top: 1.4rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; max-width: 50rem;
  opacity: clamp(0, calc(1.7 - var(--sc-p, 0) * 4.2), 1); transform: translate3d(0, calc(var(--sc-p, 0) * -4vh), 0); }
.hero__sub p { margin: 0; font-size: var(--sc-t-lg); line-height: 1.4; font-weight: 500; color: #2a201a; max-width: 27rem; }
.hero__beat { z-index: 2; left: var(--sc-gutter); top: calc(var(--bar-h) + 9vh); margin: 0; text-align: left;
  font: italic 560 clamp(2rem, 4.4vw, 4.6rem)/1 var(--sc-font-display); font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1; letter-spacing: -0.02em; color: var(--ink);
  opacity: clamp(0, calc((var(--sc-p, 0) - 0.52) * 6), 1); transform: translate3d(0, calc((1 - var(--sc-p, 0)) * 6vh), 0); }
.hero__dust { pointer-events: none; max-width: none; mix-blend-mode: screen; }
.hero__dust--back { z-index: 3; width: 90vw; left: 10vw; bottom: 8vh; opacity: .55;
  transform: translate3d(calc(var(--sc-p, 0) * -6vw), 0, 0); }
.hero__near { z-index: 4; max-width: none; width: min(70vw, 134svh); right: -3vw; bottom: -4svh;
  transform: scale(calc(1 + var(--sc-p, 0) * 0.2)) translate3d(0, calc(var(--sc-p, 0) * 2vh), 0); transform-origin: 58% 100%; }
.hero__dust--front { z-index: 5; width: 120vw; left: -10vw; bottom: -14vh; opacity: .7;
  transform: translate3d(calc(var(--sc-p, 0) * 9vw), 0, 0) scale(1.1); }
.hero__deck { z-index: 6; left: var(--sc-gutter); bottom: 4svh; width: 15rem; height: 12rem; transform-origin: 0 100%; }
.hero__deck .carta { position: absolute; bottom: 0; left: 0; width: 7.6rem; transform-origin: 50% 110%; transition: none; }
.hero__deck .carta:nth-child(1) { rotate: calc(-14deg * var(--fan, 1)); translate: 0 0; }
.hero__deck .carta:nth-child(2) { rotate: calc(-2deg * var(--fan, 1)); translate: calc(3.6rem * var(--fan, 1)) 0; }
.hero__deck .carta:nth-child(3) { rotate: calc(11deg * var(--fan, 1)); translate: calc(7rem * var(--fan, 1)) 0; }

/* ------------------------------------------------------------ 2 · la hacienda */
.hac { background: var(--paper); padding: clamp(5rem, 10vw, 9rem) 0 0; position: relative; z-index: 1; }
.hac__in { max-width: var(--sc-maxw); margin: 0 auto; padding: 0 var(--sc-gutter); display: grid; grid-template-columns: minmax(12rem, 19rem) minmax(0, 1fr);
  gap: clamp(2.5rem, 7vw, 7rem); align-items: start; }
.hac__card .carta { rotate: -3deg; max-width: 19rem; }
.hac__card .call { margin-top: 1.6rem; max-width: 22ch; }
.hac__copy { padding-top: .4rem; }
.hac__copy p { font-size: var(--sc-t-lg); line-height: 1.55; max-width: 54ch; margin: 0; color: #3b3029; }
.hac__copy .h2 { font-size: var(--sc-t-3xl); max-width: 16ch; }
.hac__wide { margin: clamp(3rem, 7vw, 6rem) 0 0; position: relative; }
.hac__wide img { width: 100%; height: clamp(22rem, 62vh, 44rem); object-fit: cover; display: block; }
.hac__wide figcaption { position: absolute; left: var(--sc-gutter); bottom: 1.2rem; background: var(--stock); border: 2px solid var(--ink); padding: 8px 12px;
  font-size: var(--sc-t-xs); font-weight: 600; max-width: calc(100% - 2 * var(--sc-gutter)); }

/* ------------------------------------------------------------ 3 · el día (pan) */
.dia__stage { background: var(--maguey); color: #ece4d6; display: flex; align-items: center; }
.dia__rail { display: flex; align-items: center; gap: clamp(2rem, 4vw, 4.5rem); padding: 0 var(--sc-gutter); will-change: transform; }
.dia__lead { flex: none; width: min(26rem, 78vw); }
.dia__lead .h2 { font-size: var(--sc-t-3xl); color: #f3ecdf; }
.dia__lead p { color: #bfcabf; font-size: var(--sc-t-lg); line-height: 1.5; margin-top: 1.2rem; }
.dia__item { flex: none; display: grid; grid-template-columns: auto 15rem; gap: 1.6rem; align-items: end; }
.dia__item .carta { width: min(18vw, 40svh, 17rem); min-width: 11rem; }
.dia__item:nth-of-type(even) .carta { rotate: 2.5deg; }
.dia__item:nth-of-type(odd) .carta { rotate: -2deg; }
.dia__label { padding-bottom: .6rem; }
.dia__when { margin: 0 0 .5rem; font-size: var(--sc-t-xs); letter-spacing: .16em; text-transform: uppercase; font-weight: 650; color: var(--red-hi); }
.dia__label h3 { font: 720 var(--sc-t-xl)/1.1 var(--sc-font-display); margin: 0 0 .6rem; color: #f3ecdf; }
.dia__label p { margin: 0; font-size: var(--sc-t-sm); line-height: 1.6; color: #c7cec5; }
.dia__label .call { margin-top: .8rem; color: #e9dfcf; }
.dia__end { flex: none; width: min(24rem, 74vw); display: grid; gap: 1.2rem; }
.dia__end img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 2px solid #ece4d6; border-radius: var(--sc-r-md); }
.dia__end h3 { font: 720 var(--sc-t-xl)/1.1 var(--sc-font-display); margin: 0 0 .5rem; color: #f3ecdf; }
.dia__end p { margin: 0 0 1rem; color: #c7cec5; font-size: var(--sc-t-sm); line-height: 1.6; }
@media (prefers-reduced-motion: no-preference) {
  .dia__item { opacity: clamp(.55, calc(var(--sc-p, 0) * 4 - var(--i, 0) * .7 + .9), 1);
    transform: translate3d(0, calc(clamp(0, calc(1 - (var(--sc-p, 0) * 4 - var(--i, 0) * .7 + .9)), 1) * 3rem), 0); }
}

/* ------------------------------------------------------------ 4 · el caballo (peak) */
.peak__stage { background: var(--night); color: #f3ecdf; perspective: 1600px; }
.peak__stage > * { position: absolute; }
.peak__bg { inset: -6%; width: 112%; height: 112%; max-width: none; object-fit: cover; opacity: 0; filter: brightness(.55) saturate(.8); }
.peak__film { inset: 0; z-index: 2; backface-visibility: hidden; will-change: transform, clip-path; }
.peak__film video, .peak__film .sc-stage__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 70%; }
.peak__frame, .peak__back { left: 50%; top: 50%; width: var(--cw); height: calc(var(--cw) * 1.54); translate: -50% -50%; border-radius: var(--sc-r-md); }
.peak__frame { z-index: 3; container-type: inline-size; border: 2px solid var(--ink); box-shadow: 0 0 0 calc(var(--cw) * .07) var(--stock) inset; pointer-events: none;
  background: linear-gradient(var(--stock), var(--stock)) bottom / 100% 17% no-repeat; }
.peak__frame::before { content: ""; position: absolute; inset: calc(var(--cw) * .07) calc(var(--cw) * .07) 17%; border: 2px solid var(--ink); }
.peak__frame .carta__n { top: calc(var(--cw) * .07 + 2px); left: calc(var(--cw) * .07 + 2px); color: var(--ink); }
.peak__frame .carta__name { position: absolute; left: 0; right: 0; bottom: 0; height: 17%; display: grid; place-items: center; padding: 0; color: var(--ink); }
.peak__back { z-index: 4; backface-visibility: hidden; border: 2px solid #f3ecdf; padding: calc(var(--cw) * .06);
  background: var(--red-deep); box-shadow: 0 30px 60px -20px rgba(0,0,0,.6); }
.peak__back span { display: block; height: 100%; border: 2px solid #f3ecdf; border-radius: 3px;
  background: repeating-linear-gradient(45deg, transparent 0 14px, rgba(243,236,223,.13) 14px 16px), repeating-linear-gradient(-45deg, transparent 0 14px, rgba(243,236,223,.13) 14px 16px),
    url(/assets/logo.png) center / 74% auto no-repeat, var(--red); }
.peak__grit { z-index: 5; left: 0; right: 0; top: calc(50% + var(--cw) * .77 + 2rem); margin: 0; text-align: center;
  font: italic 500 var(--sc-t-xl)/1.2 var(--sc-font-display); color: #e9dfcf; }
.peak__grit span { font-weight: 700; color: #f3ecdf; margin-right: .3em; }
.peak__scrim { z-index: 3; inset: auto 0 0 0; height: 72%; opacity: var(--copy, 0);
  background: linear-gradient(to top, rgba(14,9,6,.92) 0%, rgba(14,9,6,.78) 50%, rgba(14,9,6,0) 100%); }
.peak__copy { z-index: 5; left: var(--sc-gutter); bottom: clamp(2.5rem, 9vh, 6rem); max-width: 40rem; }
.peak__copy .h2 { color: #fbf6ec; }
.peak__copy p { font-size: var(--sc-t-lg); color: #e6dccd; margin: 1rem 0 0; max-width: 34ch; }
.peak__copy .peak__names { font: 600 var(--sc-t-base)/1.6 var(--sc-font-display); font-style: italic; color: #f3c9b9; max-width: 44ch; }

/* ------------------------------------------------------------ 5 · el camino */
.camino { background: var(--paper); padding: var(--sc-section) 0; position: relative; z-index: 1; }
.camino__in { max-width: var(--sc-maxw); margin: 0 auto; padding: 0 var(--sc-gutter); }
.camino__head { display: flex !important; align-items: end; gap: clamp(1.5rem, 4vw, 3rem); margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.camino__head .carta { width: clamp(7rem, 11vw, 10rem); rotate: -4deg; flex: none; margin: 0; }
.camino__head .h2 { font-size: var(--sc-t-3xl); }
.camino__head .call { margin-top: .6rem; }
.rides { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--ink); }
.ride { display: grid; grid-template-columns: 9rem minmax(0, 1.1fr) minmax(0, 1.6fr) 6rem 9rem; gap: clamp(1rem, 2.6vw, 2.4rem); align-items: center;
  padding: 1.4rem 0; border-bottom: 1px solid color-mix(in oklab, var(--ink) 18%, transparent); }
.ride__img { aspect-ratio: 4 / 3; border: 2px solid var(--ink); border-radius: var(--sc-r-sm); overflow: hidden; }
.ride__img img { width: 100%; height: 100%; object-fit: cover; }
.ride__name { font: 740 var(--sc-t-xl)/1.08 var(--sc-font-display); margin: 0; letter-spacing: -0.015em; }
.ride__blurb { margin: 0; color: var(--ink-soft); font-size: var(--sc-t-sm); line-height: 1.6; }
.ride__fig { margin: 0; font: 800 var(--sc-t-2xl)/1 var(--sc-font-display); display: grid; }
.ride__fig small { font: 600 var(--sc-t-xs)/1.3 var(--sc-font-text); color: var(--ink-soft); margin-top: 6px; }
.ride__fig--price { color: var(--red); text-align: right; }
.ride__fig--price span::before { content: "$"; font-size: .55em; vertical-align: .62em; margin-right: 2px; }
.camino__more { margin-top: 2rem; }
@media (max-width: 980px) {
  .ride { grid-template-columns: 7rem 1fr auto; grid-template-areas: "img name price" "img blurb price" "img hours price"; row-gap: .5rem; align-items: start; }
  .ride__img { grid-area: img; } .ride__name { grid-area: name; } .ride__blurb { grid-area: blurb; } .ride__fig { grid-area: hours; font-size: var(--sc-t-lg); display: block; }
  .ride__fig small { display: inline; margin-left: .4em; }
  .ride__fig--price { grid-area: price; font-size: var(--sc-t-2xl); display: grid; }
  .ride__fig--price small { display: block; margin: 6px 0 0; max-width: 8rem; }
}
@media (max-width: 560px) {
  .ride { grid-template-columns: 1fr auto; grid-template-areas: "img img" "name price" "blurb blurb" "hours hours"; }
  .ride__img { aspect-ratio: 16 / 9; }
  .camino__head .carta { width: 6rem; }
}

/* ------------------------------------------------------------ 6 · la familia (pin) */
.fam__stage { background: var(--red-deep); color: #fbf3e8; display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.fam__photos { position: relative; height: 100%; grid-column: 1; }
.fam__ph { position: absolute; border: 2px solid #fbf3e8; border-radius: var(--sc-r-md); overflow: hidden; box-shadow: 0 30px 60px -25px rgba(20,4,2,.7); }
.fam__ph img { width: 100%; height: 100%; object-fit: cover; }
.fam__ph--a { width: 46%; aspect-ratio: 3 / 4; left: 12%; top: 16%; rotate: -4deg; transform: translate3d(0, calc((0.5 - var(--sc-p, 0)) * 10vh), 0); }
.fam__ph--b { width: 40%; aspect-ratio: 1; left: 50%; top: 9%; rotate: 3deg; transform: translate3d(0, calc((0.5 - var(--sc-p, 0)) * 22vh), 0); }
.fam__ph--c { width: 50%; aspect-ratio: 4 / 3; left: 34%; top: 56%; rotate: -1.5deg; transform: translate3d(0, calc((0.5 - var(--sc-p, 0)) * 34vh), 0); }
.fam__copy { grid-column: 2; position: relative; height: 62vh; padding-right: var(--sc-gutter); }
.fam__head { position: absolute; top: 0; left: 0; margin: 0; font-size: var(--sc-t-xs); letter-spacing: .16em; text-transform: uppercase; font-weight: 650; color: #f6c7b7; }
.fam__q { position: absolute; top: 2.6rem; left: 0; right: var(--sc-gutter); margin: 0; }
.fam__q p { font: 500 var(--sc-t-2xl)/1.18 var(--sc-font-display); font-variation-settings: "opsz" 60, "SOFT" 80; letter-spacing: -0.015em; margin: 0; max-width: 24ch; text-wrap: balance; }
.fam__q footer { margin-top: 1.4rem; font-weight: 600; color: #f6c7b7; }
.fam__team { position: absolute; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 0;
  padding: 1rem var(--sc-gutter) 1.4rem; border-top: 1px solid rgba(251,243,232,.28); background: rgba(70,12,8,.35); font-size: var(--sc-t-sm); color: #f0dccf; }
.fam__team b { display: block; color: #fbf3e8; font-weight: 650; }

/* ------------------------------------------------------------ 7 · ¡lotería! */
.close { background: var(--paper); padding: calc(var(--sc-section) * .8) 0 var(--sc-section); position: relative; z-index: 1; }
.close__in { max-width: var(--sc-maxw); margin: 0 auto; padding: 0 var(--sc-gutter); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.board { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(6px, 1vw, 12px); padding: clamp(10px, 1.4vw, 18px);
  background: var(--stock); border: 2px solid var(--ink); border-radius: var(--sc-r-md); box-shadow: var(--sc-e3); rotate: -1.2deg; }
.board__cell { position: relative; }
.board__cell .carta { box-shadow: none; border-width: 1.5px; }
.board__cell:not(.is-called) .carta { filter: grayscale(.85) contrast(.9); opacity: .55; }
.board__cell .frijol { width: 30%; }
.board__stamp { position: absolute; left: 50%; top: 50%; margin: 0; translate: -50% -50%; rotate: -12deg; scale: 1.6; opacity: 0;
  font: 900 clamp(2.4rem, 6vw, 4.6rem)/1 var(--sc-font-display); font-variation-settings: "opsz" 144, "WONK" 1; color: var(--red); white-space: nowrap;
  padding: .12em .35em .2em; border: 5px solid var(--red); border-radius: 8px; background: color-mix(in oklab, var(--stock) 82%, transparent);
  transition: opacity 200ms, scale 380ms cubic-bezier(.34,1.56,.64,1); pointer-events: none; }
.board.is-loteria .board__stamp { opacity: 1; scale: 1; }
.close__count { margin: 1.4rem 0 0; color: var(--ink-soft); font-size: var(--sc-t-sm); }
.book { display: grid; gap: 1.4rem; }
.book__lede { margin: 0; font-size: var(--sc-t-lg); line-height: 1.5; color: var(--ink-soft); max-width: 44ch; }
.book__rides { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.book__rides legend { margin-bottom: 10px; }
.book__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.book__err { margin: 0; color: var(--red-deep); font-weight: 650; }
.book__go { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; margin-top: .4rem; }
.book__fine { margin: 0; font-size: var(--sc-t-xs); color: var(--ink-soft); }
@media (max-width: 900px) { .close__in { grid-template-columns: 1fr; } .close__board { max-width: 30rem; } }
@media (max-width: 520px) { .book__rides, .book__row { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ the tabla (signature nav) */
.tabla { position: fixed; z-index: 40; left: 16px; bottom: 16px; display: flex; align-items: flex-end; gap: 12px; pointer-events: none;
  opacity: 0; transform: translate3d(0, 12px, 0); transition: opacity 260ms var(--sc-ease-out), transform 260ms var(--sc-ease-out); }
.tabla.is-on { opacity: 1; transform: none; }
.tabla.is-on .tabla__grid { pointer-events: auto; }
.tabla__grid { list-style: none; margin: 0; padding: 6px; display: grid; grid-template-columns: repeat(3, 34px); gap: 4px;
  background: var(--stock); border: 2px solid var(--ink); border-radius: var(--sc-r-sm); box-shadow: var(--sc-e2); rotate: -2deg; }
.tabla__grid a { position: relative; display: block; width: 34px; height: 46px; border: 1.5px solid var(--ink); border-radius: 2px; overflow: hidden; background: var(--dust); }
.tabla__grid img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(.85); opacity: .5; transition: filter 300ms, opacity 300ms; }
.tabla__grid a.is-called img { filter: none; opacity: 1; }
.tabla__grid a.is-here { outline: 2px solid var(--red); outline-offset: 1px; }
.tabla__grid .frijol { width: 62%; top: 54%; }
.tabla__grito { margin: 0 0 2px; max-width: 18rem; padding: 10px 14px 11px; background: var(--ink); color: #f3ecdf; border-radius: var(--sc-r-sm);
  font: italic 500 var(--sc-t-sm)/1.35 var(--sc-font-display); box-shadow: var(--sc-e2);
  opacity: 0; transform: translate3d(-6px, 0, 0); transition: opacity 220ms var(--sc-ease-out), transform 220ms var(--sc-ease-out); }
.tabla__grito.is-on { opacity: 1; transform: none; }
.tabla__grito b { display: block; font-style: normal; font-weight: 800; color: #f6b8a8; letter-spacing: .01em; text-transform: uppercase; font-size: .86em; margin-bottom: 2px; }
.fab { position: fixed; z-index: 41; right: 14px; bottom: 16px; display: none; box-shadow: var(--sc-e3); }
@media (max-width: 980px) {
  .fab.is-on { display: inline-flex; }
}
.tabla__chip { display: none; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 760px) {
  .tabla { left: 12px; bottom: 12px; gap: 8px; flex-direction: column; align-items: flex-start; }
  .tabla.is-on .tabla__chip { pointer-events: auto; }
  .tabla__chip { display: inline-flex; align-items: center; gap: 8px; order: 3; min-height: 46px; padding: 0 14px 0 10px; border: 2px solid var(--ink); border-radius: var(--sc-r-sm);
    background: var(--stock); color: var(--ink); font: 600 var(--sc-t-sm) var(--sc-font-text); box-shadow: var(--sc-e2); cursor: pointer; }
  .tabla__chip b { font: 800 1.05rem var(--sc-font-display); }
  .tabla__chip .frijol { position: relative; left: auto; top: auto; translate: none; width: 18px; scale: 1; opacity: 1; }
  .tabla__grid { order: 2; display: none; grid-template-columns: repeat(3, 44px); gap: 5px; padding: 6px; rotate: 0deg; }
  .tabla.is-open .tabla__grid { display: grid; }
  .tabla__grid a { width: 44px; height: 60px; }
  .tabla__grito { order: 1; max-width: min(17rem, calc(100vw - 24px)); font-size: .82rem; padding: 8px 12px 9px; }
  .fab { right: 12px; bottom: 12px; min-height: 46px; }
}

/* ------------------------------------------------------------ phones */
@media (max-width: 760px) {
  .hero__stage { background: #c6ccc9; }
  .hero__plate img { object-position: 50% 70%; }
  .hero__copy { top: calc(var(--bar-h) + 2svh); right: var(--sc-gutter); max-width: none; }
  .hero__kick { display: none; }
  .hero__t { font-size: clamp(2.5rem, 12.4vw, 3.6rem); text-wrap: balance; }
  .hero__sub { margin-top: 1rem; }
  .hero__sub p { font-size: var(--sc-t-base); max-width: 22rem; }
  .hero__sub .btn { display: none; }
  .hero__far { width: 64vw; left: -4vw; top: auto; bottom: 34svh; }
  .hero__near { width: min(165vw, 96svh * 1.64); right: auto; left: -62vw; bottom: -2svh; transform-origin: 70% 100%; }
  html.short .hero__near { left: -50vw; }
  .hero__beat { top: calc(var(--bar-h) + 3svh); left: var(--sc-gutter); right: auto; text-align: left; font-size: clamp(2rem, 9vw, 2.6rem); }
  .hero__deck { display: none; }
  .hero__dust--back { width: 200vw; left: -50vw; bottom: 14svh; }
  .hero__dust--front { width: 220vw; left: -60vw; bottom: -8svh; }

  .hac__in { grid-template-columns: 1fr; }
  .hac__card { display: grid; grid-template-columns: 9.5rem 1fr; gap: 1.2rem; align-items: end; }
  .hac__card .call { margin: 0; }
  .hac__copy .h2 { font-size: var(--sc-t-2xl); }
  .hac__copy p { font-size: var(--sc-t-base); }

  .dia__item { grid-template-columns: 1fr; width: min(76vw, 21rem); gap: 1rem; }
  .dia__item .carta { width: min(46vw, 30svh); min-width: 0; }
  .dia__label .call { display: none; }
  .dia__lead .h2 { font-size: var(--sc-t-2xl); }

  .peak__copy { right: var(--sc-gutter); bottom: 9.5rem; }
  .peak__copy .peak__names { font-size: var(--sc-t-sm); }

  .fam__stage { grid-template-columns: 1fr; grid-template-rows: 30% 1fr; }
  .fam__photos { grid-column: 1; grid-row: 1; }
  .fam__ph--a { width: 30%; left: 8%; top: 22%; }
  .fam__ph--b { width: 34%; left: 50%; top: 18%; }
  .fam__ph--c { display: none; }
  .fam__copy { grid-column: 1; grid-row: 2; height: 100%; padding: 1rem var(--sc-gutter) 0; }
  .fam__q { right: var(--sc-gutter); left: var(--sc-gutter); }
  .fam__head { left: var(--sc-gutter); }
  .fam__q p { font-size: 1.22rem; line-height: 1.3; }
  .fam__copy { padding-bottom: 80px; }
  .fam__team { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .hero__plate img, .hero__far, .hero__t, .hero__sub, .hero__near, .hero__dust, .fam__ph { transform: none !important; }
  .hero__t, .hero__sub, .hero__kick { opacity: 1 !important; }
  .hero__beat { display: none; }
}

/* late fixes: phone scrim covers the whole copy block; photos stay in their band; reduced motion holds the resolved peak */
@media (max-width: 760px) {
  .peak__scrim { height: 100%; background: linear-gradient(to top, rgba(14,9,6,.94) 0%, rgba(14,9,6,.84) 55%, rgba(14,9,6,.35) 85%, rgba(14,9,6,0) 100%); }
  .fam__photos { overflow: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  .peak__grit, .peak__back, .peak__frame { display: none; }
  .peak__copy { opacity: 1 !important; }
}
