/* =========================================
   RECORRIDO (T28c) — Trayectoria · Academia · Sobre mí · Contacto · Footer
   Lenguaje D "Satén": paneles grandes en capas, marcos dorados con filigrana, cartelas de vidrio y franjas planas de texto.
   Usa los componentes de style.css §5–6 (.glass, .frame + .orn, .poster/.vid/.tone/.glint, .counter, .satin-band, .btn--gold/--glass).
   Compacto = (max-width: 1099px), (orientation: portrait): el mismo corte que FB.isCompact().
   Todo lo de cada sección vive aquí; los fondos de sección son transparentes: el satén fijo se ve detrás.
   ========================================= */

:root { --glass-solid: linear-gradient(140deg, rgba(251,246,243,.95), rgba(243,218,219,.90)); --noise: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n' x='0' y='0' width='100%' height='100%'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='1.5 0 0 0 -.25  1.5 0 0 0 -.25  1.5 0 0 0 -.25  0 0 0 0 1'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }
.tray, .acad, .sobre, .contacto, .footer { position: relative; background: none; overflow-x: clip; }

/* Medios en capas: la foto o el poster llenan su caja a sangre y se corren con el scroll (GSAP en recorrido.js) */
.hito__ph, .apanel__in, .so-back__in, .door__ph, .oval__img { position: relative; display: block; overflow: hidden; border-radius: 10px; background: #d9c0c6; transform: translateZ(0); }
.hito__ph picture, .apanel__in picture, .so-back__in picture, .door__ph picture, .oval__img picture { position: absolute; inset: 0; display: block; }
.hito__ph img, .apanel__in img, .so-back__in img, .door__ph img, .oval__img img { position: absolute; left: 0; top: -6%; width: 100%; height: 112%; object-fit: cover; object-position: var(--pos, 50% 50%); }
.apanel__in { position: absolute; inset: 0; }
.apanel__in img.poster { top: 0; height: 100%; }
.hito__play {
  position: absolute; left: 50%; bottom: 14px; z-index: 3; translate: -50% 0; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  color: var(--plum); background: var(--glass-bg-hi); border: 1px solid rgba(210,174,138,.9);
  box-shadow: 0 8px 20px -8px rgba(75,45,64,.55), inset 0 1px 0 rgba(255,255,255,.85); transition: transform .35s var(--ease-out);
}
.hito__play svg { margin-left: 2px; }
.hito__ph .hito__play { left: auto; right: 14px; top: 14px; bottom: auto; translate: none; }   /* arriba a la derecha: las cartelas de vidrio tapan el borde de abajo */

/* ================= TRAYECTORIA · tramo 1: escenario pineado ================= */
.tray-stage { position: relative; height: 100vh; height: calc(var(--u) * 100); min-height: 600px; overflow: clip; isolation: isolate; background: #d8c1c8; }
/* Fundido superior (T28d): el borde de arriba del escenario se disuelve en el satén fijo, sin corte duro bajo la cinta de eventos de Shows.
   Más corto que el aire sobre el video (10 u) para no tocar el panel ni las cifras. */
.tray-stage {
  --seam: calc(var(--u) * 9);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, rgba(0,0,0,.16) calc(var(--seam) * .25), rgba(0,0,0,.5) calc(var(--seam) * .5), rgba(0,0,0,.84) calc(var(--seam) * .75), #000 var(--seam));
          mask-image: linear-gradient(to bottom, transparent 0, rgba(0,0,0,.16) calc(var(--seam) * .25), rgba(0,0,0,.5) calc(var(--seam) * .5), rgba(0,0,0,.84) calc(var(--seam) * .75), #000 var(--seam));
}
.tray-bg { position: absolute; inset: -8%; z-index: -1; overflow: hidden; }
.tray-bg .poster, .tray-bg .tray-live { filter: blur(20px) saturate(.9) brightness(1.2); transform: scale(1.18); }
.satin-band__copy { display: contents; }
.tray-places .satin-band { background: rgba(251,246,243,.9); -webkit-backdrop-filter: none; backdrop-filter: none; }   /* la franja de lugares cruza el panel de video: sin backdrop-filter */
.tray-bg .tray-live { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity .8s; will-change: transform; }
.tray-bg .tray-live.on { opacity: 1; }
.tray-tint { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(247,226,226,.56) 0%, rgba(240,205,208,.44) 48%, rgba(212,165,176,.5) 100%); }
.tray-tint::before { content: ''; position: absolute; inset: 0; mix-blend-mode: color; background: linear-gradient(160deg, rgba(240,194,210,.85), rgba(226,166,182,.78)); }   /* gradación rosa: conserva la luz del video y unifica el matiz */
.tray-tint::after { z-index: 1; }
.tray-tint::after { content: ''; position: absolute; inset: 0; mix-blend-mode: screen; background: radial-gradient(60% 55% at 50% 40%, rgba(233,211,176,.45), transparent 70%); }
.tray-bg::after {   /* seda y grano sobre el video desenfocado */
  content: ''; position: absolute; inset: 0; pointer-events: none; mix-blend-mode: soft-light; opacity: .7;
  background:
    var(--noise),
    repeating-linear-gradient(106deg, rgba(255,255,255,0) 0 60px, rgba(255,255,255,.62) 105px, rgba(255,255,255,0) 160px, rgba(106,69,88,.46) 230px, rgba(255,255,255,0) 290px);
}
.tray-video { --eh: calc(var(--u) * 86); position: absolute; left: calc(50% - var(--eh) * .28125); top: calc(var(--u) * 10); height: var(--eh); width: calc(var(--eh) * .5625); border-radius: 10px; box-shadow: var(--shadow-media); }
.tray-video__in { position: absolute; inset: 0; border-radius: 10px; overflow: hidden; background: #d9c0c6; transform: translateZ(0); }
.tray-head { position: absolute; z-index: 7; right: var(--gutter-d); top: calc(var(--u) * 16); width: min(360px, 24vw); text-shadow: 0 0 22px rgba(251,246,243,.75); }
.tray-head .eyebrow { color: var(--plum); }
.tray-head .h-xl { margin-top: 12px; }
.tray-stats { position: absolute; inset: 0; z-index: 7; pointer-events: none; }
.tray-stats .counter { position: absolute; width: min(300px, 21vw); background: var(--glass-solid); -webkit-backdrop-filter: none; backdrop-filter: none; }   /* ya es 90-95% opaco: el blur sobre el video no aporta y en iOS sale gris */
.tray-stats .counter__n { font-size: clamp(44px, 4.2vw, 60px); }
.tray-stats .counter__l { font-size: 13.5px; letter-spacing: .18em; }
.tray-stats .counter[data-stat="0"] { left: var(--gutter-d); top: calc(var(--u) * 18); }
.tray-stats .counter[data-stat="1"] { left: calc(var(--gutter-d) + 56px); top: calc(var(--u) * 40); }
.tray-stats .counter[data-stat="2"] { right: var(--gutter-d); top: calc(var(--u) * 42); }
.tray-places { position: absolute; z-index: 9; left: 0; right: 0; top: calc(var(--u) * 77); pointer-events: none; }
.tray-places__label {
  position: absolute; left: var(--gutter-d); bottom: calc(100% + 6px); padding: 7px 16px 8px; border-radius: 999px; color: var(--plum); text-shadow: none;
  background: var(--pearl-solid); border: 1px solid var(--glass-line);   /* sin backdrop-filter: pisa el panel de video y está dentro de un contenedor con máscara */
}

/* ================= TRAYECTORIA · tramo 2: hitos en capas ================= */
.tray-hitos { position: relative; padding: calc(var(--u) * 14) 0 calc(var(--u) * 10); }
.tray-wall { position: relative; width: min(1320px, 92vw); margin: 0 auto; aspect-ratio: 1320 / 1700; }
.tray-list { position: absolute; inset: 0; pointer-events: none; }
.hito { position: absolute; pointer-events: auto; }
.hito__btn { position: relative; display: block; width: 100%; text-align: left; color: inherit; border-radius: 12px; -webkit-tap-highlight-color: transparent; }
.hito__btn:focus-visible { outline: 2px solid var(--plum); outline-offset: 14px; }
.hito__frame { display: block; border-radius: 10px; box-shadow: 0 50px 80px -26px rgba(75,45,64,.5), 0 16px 34px -12px rgba(75,45,64,.28); }
.hito__ph { aspect-ratio: 608 / 1080; }
.hito--3 .hito__ph { aspect-ratio: 3 / 2; }
.hito--3 .hito__ph img { top: -8%; height: 116%; }
.hito--1 { left: 0; top: 0; width: 33%; z-index: 2; }
.hito--2 { left: 30%; top: 7%; width: 27%; z-index: 3; }
.hito--3 { left: 6%; top: 55%; width: 48%; z-index: 4; }
.hito--4 { left: 66%; top: 33%; width: 29%; z-index: 3; }
.hito__card { position: absolute; z-index: 6; display: block; padding: 16px 22px 18px; width: max-content; max-width: 86%; background: var(--glass-solid); }
.hito--1 .hito__card { left: 7%; bottom: 5%; max-width: 76%; }
.hito--2 .hito__card { left: -30%; bottom: 7%; }
.hito--3 .hito__card { left: -9%; bottom: -12%; }
.hito--4 .hito__card { left: -12%; bottom: 6%; max-width: 100%; }
.hito__n { display: block; margin-bottom: 8px; font: 500 12.5px/1 var(--font-body); letter-spacing: .22em; color: #A56A58; }
.hito__title { display: block; font: italic 300 clamp(26px, 2.3vw, 34px)/1.1 var(--font-display); color: var(--plum); text-wrap: balance; }
.hito__sub { display: block; margin-top: 8px; font: 500 12.5px/1.3 var(--font-body); letter-spacing: .18em; text-transform: uppercase; color: var(--plum-s); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .hito__ph picture { transition: scale 1.2s var(--ease-out); }
  .hito__btn:hover .hito__ph picture { scale: 1.05; }
  .hito__btn:hover .hito__play { transform: scale(1.12); }
}

.tray-text { position: absolute; z-index: 5; padding: 28px 30px 20px; }
.tray-text p { font: 400 clamp(19px, 1.5vw, 21px)/1.62 var(--font-display); color: var(--plum); }
.tray-text p + p { margin-top: 14px; }
.tray-text--a p:first-child::first-line { font-variant: small-caps; letter-spacing: .06em; color: var(--rose-t); }
.tray-text strong { font-weight: 500; }
.tray-text--a { left: 62%; top: 1%; width: 38%; }
.tray-text--b { left: 6%; top: 86%; width: 40%; }
.tray-flo { display: block; width: 110px; height: 36px; margin: 14px auto 0; }

/* ================= ACADEMIA ================= */
.acad { padding: calc(var(--u) * 8) 0; }
.acad__grid {
  width: min(1320px, 92vw); margin: 0 auto; min-height: calc(var(--u) * 100);
  display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); grid-template-rows: 1fr 1fr;
  grid-template-areas: "head panels" "body panels"; column-gap: clamp(24px, 4vw, 64px);
}
.acad__head { grid-area: head; align-self: end; padding-bottom: 20px; }
.acad__title { margin-top: 12px; }
.acad__lead { margin-top: 16px; max-width: 34rem; font: italic 400 clamp(21px, 1.7vw, 25px)/1.45 var(--font-display); color: var(--plum); }
.acad__body { grid-area: body; align-self: start; }
.acad__panels { grid-area: panels; position: relative; display: grid; place-items: center; height: clamp(600px, calc(var(--u) * 94), 880px); align-self: center; }
.acad__bg { position: absolute; inset: 0 -4%; overflow: hidden; border-radius: 40px; -webkit-mask-image: radial-gradient(66% 60% at 50% 50%, #000 52%, transparent 100%); mask-image: radial-gradient(66% 60% at 50% 50%, #000 52%, transparent 100%); }
.acad__bg .poster { filter: blur(24px) saturate(1.05) brightness(1.1); transform: scale(1.3); }
.acad__tint { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(247,226,226,.5), rgba(212,165,176,.5)); mix-blend-mode: soft-light; }
.acad__bg::after { content: ''; position: absolute; inset: 0; pointer-events: none; mix-blend-mode: soft-light; opacity: .7; background: var(--noise), repeating-linear-gradient(106deg, rgba(255,255,255,0) 0 60px, rgba(255,255,255,.55) 105px, rgba(255,255,255,0) 160px, rgba(106,69,88,.4) 230px, rgba(255,255,255,0) 290px); }
.apanel { position: absolute; display: block; padding: 0; border-radius: 10px; box-shadow: var(--shadow-media); aspect-ratio: 9 / 16; }
.apanel--c { position: relative; z-index: 3; height: 84%; color: inherit; -webkit-tap-highlight-color: transparent; }
.apanel--c:focus-visible { outline: 2px solid var(--plum); outline-offset: 14px; }
.apanel--l { left: 2%; top: 11%; height: 62%; z-index: 1; transform: rotate(-5deg); }
.apanel--r { right: 0; top: 24%; height: 66%; z-index: 2; transform: rotate(4deg); }
.apanel__play { width: 48px; height: 48px; bottom: 7%; }
@media (hover: hover) { .apanel--c:hover .apanel__play { transform: scale(1.12); } }
.acad__facts { display: grid; gap: 12px; margin-top: 6px; }
.fact { display: block; padding: 16px 22px 18px; }
.fact dt { font: 500 12px/1.4 var(--font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--mauve-d); }
.fact dd { margin-top: 6px; font: 400 16.5px/1.55 var(--font-body); color: var(--plum); }
.acad__cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.acad__note { margin-top: 16px; font: italic 400 20px/1.3 var(--font-display); color: var(--plum-s); }

/* ================= SOBRE MÍ ================= */
.sobre { padding: calc(var(--u) * 8) 0; }
.sobre__grid { width: min(1320px, 92vw); margin: 0 auto; min-height: calc(var(--u) * 100); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(24px, 5vw, 80px); }
.sobre__media { position: relative; height: calc(var(--u) * 88); display: flex; justify-content: flex-end; align-items: center; padding-right: 4%; }
.oval { --oh: calc(var(--u) * 72); position: relative; z-index: 2; margin: 0; height: var(--oh); width: calc(var(--oh) * .79); }
.oval__svg { position: absolute; left: -5.4%; top: -4.2%; width: 110.8%; height: 108.4%; overflow: visible; z-index: 3; pointer-events: none; }
.oval__img { position: absolute; inset: 0; border-radius: 50%; box-shadow: 0 50px 90px -26px rgba(75,45,64,.5), 0 14px 34px -10px rgba(75,45,64,.28); }
.oval__img img { --pos: 50% 30%; }
.so-back { position: absolute; z-index: 1; left: -1%; bottom: 4%; margin: 0; height: calc(var(--u) * 46); aspect-ratio: 9 / 16; border-radius: 10px; box-shadow: var(--shadow-media); transform: rotate(-6deg); }
.so-back__in { position: absolute; inset: 0; }
.sobre__text { padding: clamp(28px, 3.4vw, 48px) clamp(26px, 3.4vw, 52px) clamp(28px, 3vw, 42px); }
.sobre__title { margin-top: 12px; }
.sobre__lead { margin-top: 18px; font: italic 400 clamp(22px, 1.9vw, 27px)/1.42 var(--font-display); color: var(--plum); }
.sobre__bio { margin-top: 18px; display: grid; gap: 14px; }
.sobre__bio p { font: 400 17px/1.72 var(--font-body); color: var(--plum); }
.sobre__sign { margin-top: 18px; display: block; width: max-content; max-width: 100%; white-space: normal; }
.sobre__actions { margin-top: 20px; }

/* ================= CONTACTO ================= */
.contacto { padding: calc(var(--u) * 10) 0 calc(var(--u) * 8); }
.contacto__inner { width: min(1240px, 92vw); margin: 0 auto; display: flex; flex-direction: column; align-items: center; text-align: center; }
.contacto__title { margin-top: 14px; max-width: 16ch; text-shadow: 0 0 26px rgba(251,246,243,.7); }
.contacto__loc { margin-top: 18px; font: 500 13px/1.4 var(--font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--plum); }
.doors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 7vw, 110px); width: min(1080px, 100%); margin-top: clamp(40px, 5vw, 64px); }
.door { position: relative; display: block; margin-bottom: 56px; text-align: left; color: inherit; border-radius: 12px; -webkit-tap-highlight-color: transparent; }
.door--clases { margin-top: 56px; margin-bottom: 0; }
.door:focus-visible { outline: 2px solid var(--plum); outline-offset: 14px; }
.door__media { display: block; aspect-ratio: 4 / 5; border-radius: 10px; box-shadow: var(--shadow-media); }
.door__ph { position: absolute; inset: 0; }
.door__body { position: absolute; z-index: 6; left: 6%; right: 6%; bottom: -44px; display: block; padding: 20px 72px 22px 26px; background: var(--glass-solid); }
.door__eyebrow { display: flex; align-items: center; gap: 9px; font: 500 12px/1.3 var(--font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--mauve-d); }
.door__wa { color: var(--mauve-d); flex-shrink: 0; }
.door__title { display: block; margin-top: 8px; font: italic 300 clamp(28px, 2.6vw, 38px)/1.1 var(--font-display); color: var(--plum); }
.door__line { display: block; margin-top: 8px; font: 400 15.5px/1.5 var(--font-body); color: var(--plum-s); }
.door__go { position: absolute; right: 20px; top: 50%; translate: 0 -50%; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--plum); background: var(--gold-grad); box-shadow: 0 8px 20px -8px rgba(122,78,70,.5), inset 0 1px 0 rgba(255,255,255,.7); transition: transform .4s var(--ease-out); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .door__ph picture { transition: scale 1.2s var(--ease-out); }
  .door:hover .door__ph picture { scale: 1.05; }
  .door:hover .door__go { transform: translateX(4px); }
}
.contacto__ig { margin-top: clamp(40px, 5vw, 64px); }

/* ================= FOOTER ================= */
.footer { padding: clamp(36px, 5vw, 64px) 0 20px; border-top: 0; }
.foot__slab { background: var(--noise), var(--glass-bg-hi); background-blend-mode: soft-light, normal; position: relative; width: min(1320px, 92vw); margin: 0 auto; padding: clamp(46px, 5vw, 58px) clamp(22px, 4vw, 56px) 14px; border-radius: 22px; }
.foot__slab::after { content: ''; position: absolute; left: 24px; right: 24px; top: 7px; height: 1px; pointer-events: none; background: linear-gradient(90deg, transparent, #E9D3B0 12%, #C9967F 50%, #E9D3B0 88%, transparent); }
.foot__flo { position: absolute; z-index: 2; left: 50%; top: -22px; width: 120px; height: 40px; margin-left: -60px; }
.foot__grid { position: relative; z-index: 1; display: grid; justify-items: center; gap: 26px; text-align: center; }
.footer__brand { display: grid; justify-items: center; gap: 4px; }
.footer__logo { position: relative; display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 22px; border-radius: 50%; background: var(--white); box-shadow: 0 0 0 1px rgba(210,174,138,.7), 0 6px 18px -8px rgba(120,60,80,.4); transition: transform var(--dur-base) var(--ease-soft); }
.footer__logo img { width: 42px; height: 42px; object-fit: contain; }
.footer__logo::before, .footer__logo::after { content: ""; position: absolute; border: 1px solid; border-radius: 50%; pointer-events: none; }
.footer__logo::before { inset: -9px; border-color: rgba(210,174,138,.8); }
.footer__logo::after { inset: -19px; border-color: rgba(210,174,138,.45); }
.footer__logo:hover { transform: scale(1.06); }
.footer__name { font: italic 300 clamp(1.75rem, 1.5rem + 1vw, 2.25rem)/1.15 var(--font-display); color: var(--plum); }
.footer__sub { font: 500 11.5px/1.5 var(--font-body); letter-spacing: .24em; text-transform: uppercase; color: var(--plum-s); }
.footer__nav ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 clamp(4px, 1.4vw, 18px); }
.footer__nav a { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 10px; font: 500 12px/1 var(--font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--plum); }
.footer__nav a::after { content: ""; position: absolute; left: 10px; right: 100%; bottom: 9px; height: 1px; background: var(--rosegold); transition: right .5s var(--ease-out); }
.footer__nav a:hover::after { right: 10px; }
.footer__contact ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 12px; }
.footer__contact a { display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 20px; border: 1px solid rgba(210,174,138,.95); border-radius: var(--radius-pill); font: 500 14px/1 var(--font-body); letter-spacing: .03em; color: var(--plum); background: var(--glass-bg-hi); transition: box-shadow .4s var(--ease-out), transform .4s var(--ease-out); }
.footer__contact a svg { color: var(--mauve-d); }
.footer__contact a:hover { transform: translateY(-2px); box-shadow: 0 10px 26px -14px rgba(118,82,47,.5); }
.footer a:focus-visible { outline: 2px solid var(--plum); outline-offset: 3px; }
.footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2px 28px; width: 100%; margin-top: 6px; padding-block: 10px 6px; border-top: 1px solid rgba(210,174,138,.6); }
.footer__copy { font-size: 12.5px; line-height: 1.5; color: var(--plum-s); }
.footer__top { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 6px; font: 500 12px/1 var(--font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--plum); }
.footer__top:hover { color: var(--mauve-d); }

@media (min-width: 1100px) and (orientation: landscape) {
  .foot__grid { grid-template-columns: 1fr auto; grid-template-areas: "brand contact" "nav nav" "bottom bottom"; justify-items: stretch; align-items: center; text-align: left; gap: 18px clamp(24px, 4vw, 64px); }
  .footer__brand { grid-area: brand; justify-items: start; grid-template-columns: auto 1fr; column-gap: 34px; row-gap: 0; align-items: center; padding-left: 20px; }
  .footer__logo { grid-row: 1 / span 2; margin-bottom: 0; }
  .footer__nav { grid-area: nav; padding-top: 14px; border-top: 1px solid rgba(210,174,138,.6); }
  .footer__nav ul { justify-content: center; gap: 0 clamp(10px, 2.4vw, 34px); }
  .footer__contact { grid-area: contact; }
  .footer__bottom { grid-area: bottom; justify-content: space-between; margin-top: 0; }
}

/* ================= COMPACTO (celular y tablet vertical) ================= */
@media (max-width: 1099px), (orientation: portrait) {
  /* Trayectoria · escenario */
  .tray-stage { --seam: calc(var(--u) * 7.5); }
  .tray-bg .poster, .tray-bg .tray-live { transform: scale(1.25); }
  .tray-video { --eh: calc(var(--u) * 62); top: calc(var(--u) * 17.5); }
  .tray-head { left: 7vw; right: 7vw; top: calc(var(--u) * 8.6); width: auto; }
  .tray-head .eyebrow { font-size: 11px; }
  .tray-head .h-xl { margin-top: 4px; font-size: clamp(30px, 8.6vw, 38px); }
  .tray-stats { inset: auto 4vw calc(var(--u) * 19.5) 4vw; display: flex; align-items: stretch; gap: 8px; }
  .tray-stats .counter { position: relative; inset: auto !important; width: auto; flex: 1 1 0; padding: 10px 8px 12px; align-items: center; text-align: center; border-radius: 14px; gap: 4px; }
  .tray-stats .counter__n { font-size: 32px; }
  .tray-stats .counter__l { font-size: 10.5px; letter-spacing: .08em; }
  .tray-places { top: calc(var(--u) * 86); }
  .tray-places .satin-band { height: 54px; }
  .tray-places .satin-band__track span { font-size: 24px; }
  .tray-places__label { left: 50%; translate: -50% 0; bottom: calc(100% + 18px); width: max-content; max-width: 92vw; padding: 5px 12px 6px; font-size: 10px; letter-spacing: .16em; }

  /* Trayectoria · hitos en pila con capas */
  .tray-hitos { padding: calc(var(--u) * 7) 0 calc(var(--u) * 6); }
  .tray-wall { aspect-ratio: auto; width: 100%; display: flex; flex-direction: column; padding: 0 5vw; }
  .tray-list { position: relative; inset: auto; display: flex; flex-direction: column; }
  .tray-text, .hito { position: relative; left: auto !important; top: auto !important; }
  .hito { width: 78vw; }
  .hito--1 { align-self: flex-start; }
  .hito--2 { align-self: flex-end; margin-top: -8vw; width: 66vw; }
  .hito--3 { align-self: center; margin-top: 16vw; width: 86vw; }
  .hito--4 { align-self: flex-end; margin-top: 18vw; width: 68vw; }
  .hito__card { max-width: 92%; padding: 12px 16px 14px; }
  .hito--1 .hito__card { right: -8px; left: auto; bottom: 7%; }
  .hito--2 .hito__card { left: -14%; bottom: 3%; }
  .hito--3 .hito__card { left: 4%; bottom: -9%; }
  .hito--4 .hito__card { left: -12%; bottom: 4%; }
  .hito__title { font-size: 25px; }
  .tray-text { width: auto !important; padding: 20px 22px 14px; }
  .tray-text--a { order: -1; margin-bottom: 16vw; }
  .tray-text--b { margin-top: 18vw; }
  .tray-text p { font-size: 19px; }

  /* Academia: títulos, paneles en capas, hechos y botones */
  .acad { padding: calc(var(--u) * 7) 0 calc(var(--u) * 3); }
  .acad__grid { display: flex; flex-direction: column; min-height: 0; width: 88vw; }
  .acad__head { padding-bottom: 6px; }
  .acad__panels { height: calc(var(--u) * 64); margin: 4vw 0 6vw; }
  .acad__bg { inset: 0 -6vw; }
  .apanel--c { height: 90%; }
  .apanel--l { left: -2%; top: 14%; height: 62%; }
  .apanel--r { right: -2%; top: 20%; height: 62%; }
  .acad__cta .btn { flex: 1 1 200px; }

  /* Sobre mí */
  .sobre { padding: calc(var(--u) * 3) 0 calc(var(--u) * 6); }
  .sobre__grid { grid-template-columns: 1fr; min-height: 0; width: 88vw; gap: 30px; }
  .sobre__media { height: calc(var(--u) * 66); }
  .oval { --oh: calc(var(--u) * 56); }
  .so-back { left: -2%; bottom: 2%; height: calc(var(--u) * 30); }
  .sobre__bio p { font-size: 16.5px; }

  /* Contacto */
  .contacto { padding: calc(var(--u) * 7) 0 calc(var(--u) * 6); }
  .contacto__title { max-width: none; font-size: clamp(34px, 9.6vw, 44px); }
  .doors { grid-template-columns: 1fr; gap: 24px; width: min(420px, 100%); }
  .door, .door--clases { margin: 0 0 58px; }
  .door--clases { margin-bottom: 52px; }
  .door__media { aspect-ratio: 5 / 5.2; }
  .door__body { padding: 16px 64px 18px 20px; }
  .door__title { font-size: 28px; }

  /* Footer */
  .foot__slab { width: 92vw; }
}

/* ================= MOVIMIENTO REDUCIDO: quieto pero rico, todo visible ================= */
html.rm .glint { animation: none; }
html.rm .satin-band__track { margin-inline: auto; }
/* con el satén en imagen (más liso que el shader) se suma un grano fino detrás del contenido: nunca papel liso */
html.rm .tray-hitos::before, html.rm .acad::before, html.rm .sobre::before, html.rm .contacto::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; mix-blend-mode: soft-light; opacity: .45; background: var(--noise); }
html.rm .hito__ph picture, html.rm .door__ph picture { transition: none; }
@media (max-width: 1099px), (orientation: portrait) {
  html.rm .tray-places { top: auto; bottom: calc(var(--u) * 2); }
  html.rm .tray-places .satin-band { height: auto; min-height: 58px; padding-block: 12px; }
  html.rm .tray-places .satin-band__track { padding-inline: 4vw; column-gap: 0; row-gap: 4px; }
  html.rm .tray-places .satin-band__track span { font-size: 20px; }
  html.rm .tray-places .satin-band__track i { margin: 0 10px; }
}
@media (max-width: 380px) {
  .tray-stats .counter__l { font-size: 9.5px; letter-spacing: .04em; }
  .tray-head .h-xl { font-size: 28px; }
}
