/*! BaseBlue — sistema. Designed and developed by Luis Koepke — https://www.luiskoepke.com */

/* ==========================================================================
   SISTEMA COMPARTIDO

   Lo que todas las páginas tienen en común: superficies, tipografía,
   rejilla, rótulos, botones, filetes, entradas y las dos piezas que el Home
   y las páginas interiores comparten tal cual (el render a sangre `pbleed` y
   las filas con enlace `prows`). Los valores salen de `base.css`.
   ========================================================================== */

/* ================================================================ Secciones */
/* Una capa de fondo por sección: papel, tinta o imagen a sangre. La
   jerarquía la dan el aire y la tipografía, no los recuadros. */

.sec {
	position: relative;
	padding-block: var(--sec-pad);
	scroll-margin-top: 0;
	isolation: isolate;
}
.sec[data-surface="paper"] { background: var(--bb-paper); color: var(--bb-navy); --muted: var(--muted-paper); --text2: var(--text2-paper); --rule: var(--rule-paper); --accent: var(--bb-flood); --error: var(--error-paper); }
.sec[data-surface="ink"] { background: var(--bb-ink); color: var(--bb-pale); --muted: var(--muted-ink); --text2: var(--text2-ink); --rule: var(--rule-ink); --accent: var(--bb-sky); --error: var(--error-ink); }
/* Sobre el azul, los metadatos suben al 76 %: al 68 % no pasaban AA. */
.sec[data-surface="flood"] { background: var(--bb-flood); color: #fff; --muted: rgba(255, 255, 255, 0.76); --text2: rgba(255, 255, 255, 0.86); --rule: rgba(255, 255, 255, 0.22); --accent: #fff; --error: var(--error-ink); }

/* RITMO (RONDA4 §2.1), para el Home y las páginas por igual.
   1. Distinta superficie: cada lado conserva su `--sec-pad`; el color ya
      separa.
   2. Misma superficie: la entrante arranca a `--sec-join` y dibuja un
      filete de 1 px en la retícula (el `pline` automático), que se traza
      al entrar (`is-joined`, lo pone site.js).
   3. Tras un medio a sangre, relleno completo y sin filete: la imagen ya
      es el corte.
   Una sección que no deba unirse (escena fijada, medio a sangre arriba)
   lleva `data-join="none"`. Especificidad de `.sec` a propósito: el CSS
   propio de una sección siempre puede corregirlo. */
.sec:where(main > [data-surface="paper"] + [data-surface="paper"], main > [data-surface="ink"] + [data-surface="ink"]):not([data-join="none"]) {
	padding-top: var(--sec-join);
}
.sec:where(main > [data-surface="paper"] + [data-surface="paper"], main > [data-surface="ink"] + [data-surface="ink"]):not([data-join="none"], .pline-sec, :has(> .pbleed:first-child))::before {
	content: "";
	position: absolute;
	top: 0;
	/* La retícula: el `--margin` dentro del tope `--max`, centrado. */
	left: max(var(--margin), calc((100% - var(--max)) / 2 + var(--margin)));
	right: max(var(--margin), calc((100% - var(--max)) / 2 + var(--margin)));
	height: 1px;
	background: var(--rule);
	transform: scaleX(0);
	transform-origin: 0 50%;
	transition: transform var(--dur-4) var(--ease-io);
	pointer-events: none;
}
.sec.is-joined::before { transform: none; }
.sec:where(main > .sec:has(> .pbleed:last-child) + .sec) { padding-top: var(--sec-pad); }
.sec:where(main > .sec:has(> .pbleed:last-child) + .sec)::before { content: none; }

.wrap {
	width: 100%;
	max-width: var(--max);
	margin-inline: auto;
	padding-inline: var(--margin);
}

.grid {
	display: grid;
	grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
	column-gap: var(--gutter);
}
@media (orientation: portrait), (max-width: 899px) {
	.grid { --cols: 4; }
}

/* ================================================================== Rótulos */
/* El rótulo es una nota al margen, no una etiqueta de interfaz: en caja de
   frase, sin tracking, sin cuadro, en la tinta apagada. Como mucho uno por
   sección, y solo si dice algo que el titular no dice. */

.eyebrow {
	display: inline-flex;
	align-items: baseline;
	gap: 0.6em;
	font-size: var(--t-eyebrow);
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	color: var(--muted);
}
.eyebrow::before { content: none; }

/* La ÚNICA forma permitida de mayúsculas: el estado de un proyecto (una vez
   por página) y las cabeceras de columna de una ficha técnica. Sin fondo,
   sin borde y sin marcador. */
.caps {
	font-size: var(--t-caps);
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
}

/* ================================================================= Titulares */
/* Un titular es UNA afirmación de una o dos líneas: la continuación va en
   el cuerpo, no en una segunda tinta. */

.display {
	font-size: var(--t-display);
	font-weight: 300;
	line-height: 1.08;
	letter-spacing: -0.02em;
	text-wrap: balance;
	max-width: 18ch;
}
.h2 {
	font-size: var(--t-h2);
	font-weight: 300;
	line-height: 1.12;
	letter-spacing: -0.016em;
	text-wrap: balance;
	max-width: 22ch;
}
.h3 {
	font-size: var(--t-h3);
	font-weight: 400;
	line-height: 1.24;
	letter-spacing: -0.008em;
}
.display em, .h2 em, .lead em { font-style: normal; color: inherit; }

.lead {
	font-size: var(--t-lead);
	font-weight: 300;
	line-height: 1.42;
	letter-spacing: -0.004em;
	text-wrap: pretty;
	max-width: 40ch;
}
/* El cuerpo se lee al 80 %; el 64 % queda para metadatos y pies. */
.body {
	font-size: var(--t-body);
	font-weight: 300;
	line-height: 1.6;
	color: var(--text2);
	max-width: 56ch;
	text-wrap: pretty;
}
.small {
	font-size: var(--t-small);
	font-weight: 300;
	line-height: 1.5;
	color: var(--muted);
}
/* Texto claro a 300 sobre tinta, a 16–17 px, se empasta: sube a 400. */
[data-surface="ink"] .body, [data-surface="ink"] .lead { font-weight: 400; }

/* Cifra: mismo peso que los titulares y sin interlineado negativo; es un
   dato que se lee, no un grafismo. Aparece ya en su valor final: nunca se
   anima con conteo (un contador enseña valores que no existen). */
.num {
	font-size: var(--t-num);
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.03em;
	font-variant-numeric: lining-nums tabular-nums;
}
.num sup, .num .unit {
	font-size: max(0.34em, 1.25rem);
	font-weight: 300;
	letter-spacing: 0;
	vertical-align: top;
	margin-left: 0.16em;
	position: relative;
	top: 0.2em;
}

/* Cabecera de sección: rótulo en las primeras columnas y la afirmación en
   las ocho restantes, como en un informe técnico. El rótulo cuelga de la
   altura de mayúsculas de la primera línea del titular: con Outfit
   (ascendente 1, descendente 0,26, versal 0,676) la versal queda a
   (lh / 2 − 0,306) × cuerpo del borde de la línea. */
.sec__head { row-gap: 2.4rem; align-items: start; --head-cap: calc(var(--t-display) * 0.234); }
.sec__head:has(> .h2) { --head-cap: calc(var(--t-h2) * 0.254); }
.sec__head:has(> .lead) { --head-cap: calc(var(--t-lead) * 0.404); }
.sec__head > .eyebrow {
	grid-column: 1 / span 3;
	padding-top: max(0px, calc(var(--head-cap) - var(--t-eyebrow) * 0.344));
}
.sec__head > .sec__title { grid-column: 5 / -1; }
.sec__head > .sec__body { grid-column: 5 / span 6; margin-top: calc(var(--head-gap) - 2.4rem); }
@media (orientation: portrait), (max-width: 899px) {
	.sec__head { row-gap: 1.6rem; }
	.sec__head > .eyebrow, .sec__head > .sec__title, .sec__head > .sec__body { grid-column: 1 / -1; padding-top: 0; margin-top: 0; }
}

/* ================================================================== Filetes */

.rule { display: block; height: 1px; background: var(--rule); border: 0; margin: 0; }

/* ================================================================== Botones */

.btn {
	--btn-bg: var(--bb-flood);
	--btn-fg: #fff;
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 1.2em;
	padding: 1.15em 1.5em 1.15em 1.7em;
	border-radius: var(--r-s);
	background: var(--btn-bg);
	color: var(--btn-fg);
	font-size: var(--t-small);
	font-weight: 400;
	letter-spacing: 0.01em;
	overflow: hidden;
	isolation: isolate;
	transition: color var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out);
}
/* El relleno entra desde abajo como una carga, no como un cambio de color:
   es un gesto de forma, así que va en `--dur-2`. */
.btn::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--btn-hover, #0a1b2b);
	transform: translateY(101%);
	transition: transform var(--dur-2) var(--ease-out);
}
.btn:focus-visible::before { transform: none; }
.btn svg { width: 1.1em; height: 1.1em; flex: none; transition: transform var(--dur-2) var(--ease-out); }
@media (hover: hover) and (pointer: fine) {
	.btn:hover::before { transform: none; }
	.btn:hover svg { transform: translateX(0.4rem); }
}

/* Pulsado (táctil y ratón): respuesta inmediata, en `--dur-1`. */
.btn:active { transform: scale(0.98); }
/* Ocupado (envío): mismo ancho, cursor de espera y un anillo en lugar de la flecha. */
.btn[aria-busy="true"] { cursor: progress; }
.btn[aria-busy="true"] svg { opacity: 0; }
.btn[aria-busy="true"]::after {
	content: "";
	position: absolute;
	right: 1.5em;
	top: 50%;
	width: 1.1em;
	height: 1.1em;
	margin-top: -0.55em;
	border: 1.5px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: bb-spin 0.8s linear infinite;
}
@keyframes bb-spin { to { transform: rotate(1turn); } }
@media (prefers-reduced-motion: reduce) { .btn[aria-busy="true"]::after { animation: none; border-right-color: currentColor; opacity: 0.6; } }

/* Botón claro para ir sobre tinta o sobre imagen: macizo y callado. */
.btn--paper { --btn-bg: var(--bb-paper); --btn-fg: var(--bb-navy); --btn-hover: #fff; }

/* Enlace con flecha en escuadra: «↳ Learn more». */
.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 0.8em;
	font-size: var(--t-small);
	font-weight: 400;
	color: inherit;
}
.link-arrow svg { width: 1.1em; height: 1.1em; flex: none; transition: transform var(--dur-2) var(--ease-out); }
.link-arrow span { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size var(--dur-2) var(--ease-out); }
.link-arrow:focus-visible span { background-size: 100% 1px; }
@media (hover: hover) and (pointer: fine) {
	.link-arrow:hover svg { transform: translateX(0.4rem); }
	.link-arrow:hover span { background-size: 100% 1px; }
}

/* Pulsado de los enlaces de texto: un apagado breve, igual en todo el sitio. */
.link-arrow, .foot__link, .menu__link, .menu__home, .menu__legal a, .foot__legal a, .phero__crumb a { -webkit-tap-highlight-color: transparent; }
.link-arrow:active, .foot__link:active, .menu__link:active, .menu__home:active, .menu__legal a:active, .foot__legal a:active, .phero__crumb a:active { opacity: 0.6; }

/* Táctil: los enlaces pequeños crecen hacia fuera hasta 44 px de alto sin
   mover la maqueta (WCAG 2.5.8; HIG). */
@media (pointer: coarse) {
	.link-arrow, .foot__link, .phero__crumb a, .foot__legal a, .menu__legal a, .hdr__brand {
		padding-block: 1.2rem;
		margin-block: -1.2rem;
	}
}

/* ==================================================================== pbleed */
/* Un render (o un vídeo) protagonista, con su pie debajo: la misma pieza en
   el Home y en las páginas. A sangre ocupa las 100vw; `--cols` lo lleva a
   diez columnas (3–12) con su proporción nativa. Nunca va en tarjeta, en
   miniatura ni con texto encima, y siempre en su color. El fondo papel-2 es
   solo el marcador mientras carga. El foco de cada imagen va en `--pos`.

   <figure class="pbleed" data-reveal style="--pos: 50% 62%">
     <div class="pbleed__frame"><img …></div>
     <figcaption class="pbleed__cap">… — project render</figcaption>
   </figure> */

.pbleed { margin: 0; }
.pbleed__frame {
	position: relative;
	overflow: hidden;
	height: min(88svh, 62vw);
	background: var(--bb-paper-2);
}
.pbleed__frame > img,
.pbleed__frame > video {
	position: absolute;
	left: 0;
	/* Un 4 % más alta que su caja: ese sobrante es todo el paralaje. */
	top: -2%;
	width: 100%;
	max-width: none;
	height: 104%;
	object-fit: cover;
	object-position: var(--pos, 50% 50%);
}
.pbleed__cap {
	max-width: var(--max);
	margin: 1.4rem auto 0;
	padding-inline: var(--margin);
	font-size: var(--t-small);
	font-weight: 300;
	line-height: 1.5;
	color: var(--muted);
}

.pbleed--cols {
	display: grid;
	grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
	column-gap: var(--gutter);
	max-width: var(--max);
	margin-inline: auto;
	padding-inline: var(--margin);
}
.pbleed--cols .pbleed__frame {
	grid-column: 3 / -1;
	height: auto;
	aspect-ratio: var(--ratio, 2600 / 1108);
	border-radius: var(--r-m);
}
.pbleed--cols .pbleed__cap { grid-column: 3 / -1; margin-inline: 0; padding-inline: 0; }

/* Entrada: la de `.rv-img` (abajo), con el recorte a sangre sin radio. */
.pbleed[data-reveal] .pbleed__frame {
	clip-path: inset(100% 0 0 0);
	transition: clip-path var(--dur-4) var(--ease-io);
}
.pbleed--cols[data-reveal] .pbleed__frame { clip-path: inset(100% 0 0 0 round var(--r-m)); }
.pbleed[data-reveal] .pbleed__frame > img,
.pbleed[data-reveal] .pbleed__frame > video {
	scale: 1.06;
	transform-origin: 50% 100%;
	transition: scale var(--dur-settle) var(--ease-out);
}
.pbleed[data-reveal] .pbleed__cap { opacity: 0; transition: opacity var(--dur-3) var(--ease-out) 0.3s; }
.pbleed[data-reveal].is-in .pbleed__frame { clip-path: inset(0); }
.pbleed--cols[data-reveal].is-in .pbleed__frame { clip-path: inset(0 round var(--r-m)); }
.pbleed[data-reveal].is-in .pbleed__frame > img,
.pbleed[data-reveal].is-in .pbleed__frame > video { scale: 1; }
.pbleed[data-reveal].is-in .pbleed__cap { opacity: 1; }

@media (orientation: portrait) {
	.pbleed__frame { height: 72svh; }
	.pbleed--cols { --cols: 4; }
	.pbleed--cols .pbleed__frame { grid-column: 1 / -1; height: auto; }
	.pbleed--cols .pbleed__cap { grid-column: 1 / -1; }
}

/* ===================================================================== prows */
/* Filas de texto a todo el ancho, con un filete de 1 px entre ellas. Si la
   fila lleva a algún sitio, TODA la fila es el enlace (un único <a>), y al
   pasar el ratón el título avanza y aparece la flecha: el gesto del índice
   del pie. Columnas por defecto: título 1–4, texto 5–10, flecha 11–12.
     --kv    clave (1–4) y valor (5–12): datos de empresa, quién hace qué;
     --3col  título y hasta tres datos cortos en columnas, con el texto
             debajo: cartera, vacantes, noticias.
   El estado vacío va siempre en el marcado, detrás de la lista, y solo se
   ve si la lista no tiene filas. */

.prows { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--rule); }
/* Bajo la cabecera de su sección, a la distancia de bloque. */
.sec__head ~ .prows, .sec__head ~ .prows__empty { margin-top: var(--block-gap); }
.prows__row { border-top: 1px solid var(--rule); }
.prows__item {
	display: grid;
	grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
	column-gap: var(--gutter);
	row-gap: 0.8rem;
	align-items: baseline;
	padding-block: clamp(2rem, 3.4svh, 3.2rem);
	color: inherit;
}
.prows__title {
	grid-column: 1 / span 4;
	font-size: var(--t-h3);
	font-weight: 400;
	line-height: 1.24;
	letter-spacing: -0.008em;
	transition: transform var(--dur-2) var(--ease-out);
}
.prows__text {
	grid-column: 5 / span 6;
	font-size: var(--t-body);
	font-weight: 300;
	line-height: 1.6;
	color: var(--text2);
	max-width: 56ch;
}
.prows__item:not(:has(.prows__go)) .prows__text { grid-column: 5 / -1; }
.prows__go {
	grid-column: 11 / -1;
	justify-self: end;
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	font-size: var(--t-small);
	font-weight: 400;
	color: var(--muted);
	transition: color var(--dur-1) var(--ease-out);
}
.prows__go svg {
	width: 1.1em;
	height: 1.1em;
	flex: none;
	color: var(--accent);
	transition: transform var(--dur-2) var(--ease-out);
}
@media (hover: hover) and (pointer: fine) {
	a.prows__item:hover .prows__title,
	a.prows__item:focus-visible .prows__title { transform: translateX(0.14em); }
	a.prows__item:hover .prows__go,
	a.prows__item:focus-visible .prows__go { color: inherit; }
	a.prows__item:hover .prows__go svg { transform: translateX(0.4rem); }
	/* Con ratón, las demás filas se apagan: la lista se lee como una selección. */
	.prows:has(a.prows__item:hover) a.prows__item:not(:hover) { color: var(--muted); }
}
a.prows__item:focus-visible { outline-offset: -2px; }

.prows--kv .prows__title { font-size: var(--t-body); font-weight: 400; line-height: 1.5; letter-spacing: 0; }
.prows--kv .prows__text { grid-column: 5 / -1; }

.prows--3col .prows__cells {
	grid-column: 5 / span 6;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(0, 1fr);
	column-gap: var(--gutter);
	font-size: var(--t-body);
	font-weight: 300;
	line-height: 1.5;
}
.prows--3col .prows__text { grid-column: 5 / span 6; grid-row: 2; font-size: var(--t-small); color: var(--muted); }

.prows__empty {
	padding-block: clamp(2rem, 3.4svh, 3.2rem);
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
	font-size: var(--t-body);
	font-weight: 300;
	line-height: 1.6;
	color: var(--text2);
}
.prows:has(> .prows__row) ~ .prows__empty { display: none; }
.prows:not(:has(> .prows__row)) { display: none; }

@media (orientation: portrait), (max-width: 899px) {
	.prows__item { --cols: 4; row-gap: 1rem; }
	.prows__title, .prows__text, .prows__item:not(:has(.prows__go)) .prows__text,
	.prows--kv .prows__text, .prows--3col .prows__cells, .prows--3col .prows__text { grid-column: 1 / -1; grid-row: auto; }
	.prows__go { grid-column: 1 / -1; justify-self: start; }
}

/* ================================================================= Entradas */
/* EL LENGUAJE DE MOVIMIENTO (RONDA4 §2.6). `site.js` pone `is-in` en cada
   `[data-reveal]` al entrar (umbral: 14 % por encima del borde inferior,
   una vez). Cada pieza marca su turno con `--i` (0–6): una lista entra
   escalonada a `--stagger` sin un temporizador en JS. Todo lo que entra se
   lee igual si no entra.
     rv-line  titular: sube desde detrás de su línea base
     rv-up    cuerpo, enlaces, botones: sube `--rise` y aparece
     rv-fade  pies y notas: solo aparece
     rv-rule  filete: se dibuja de izquierda a derecha
     rv-img   imagen o vídeo recortado: el recorte sube y la imagen se asienta
     data-words  palabras que se encienden a `--stagger-w` */

[data-reveal] .rv-up {
	opacity: 0;
	transform: translateY(var(--rise));
	transition: opacity var(--dur-3) var(--ease-out), transform var(--dur-3) var(--ease-out);
	transition-delay: calc(min(var(--i, 0), 6) * var(--stagger));
}
[data-reveal].is-in .rv-up { opacity: 1; transform: none; }

/* Líneas que suben desde detrás de su propia línea base. */
[data-reveal] .rv-line { display: block; overflow: hidden; padding-bottom: 0.06em; margin-bottom: -0.06em; }
[data-reveal] .rv-line > span {
	display: block;
	transform: translateY(108%);
	transition: transform var(--dur-3) var(--ease-out);
	transition-delay: calc(min(var(--i, 0), 6) * var(--stagger));
}
[data-reveal].is-in .rv-line > span { transform: none; }

[data-reveal] .rv-fade {
	opacity: 0;
	transition: opacity var(--dur-3) var(--ease-out);
	transition-delay: calc(min(var(--i, 0), 6) * var(--stagger));
}
[data-reveal].is-in .rv-fade { opacity: 1; }

[data-reveal] .rv-rule {
	transform: scaleX(0);
	transform-origin: 0 50%;
	transition: transform var(--dur-4) var(--ease-io);
	transition-delay: calc(min(var(--i, 0), 6) * var(--stagger));
}
[data-reveal].is-in .rv-rule { transform: none; }

/* La única forma de revelar una imagen: el recorte sube desde la base en
   `--dur-4` y la imagen, un 6 % mayor, se asienta en `--dur-settle`. El
   radio va dentro del recorte para que la esquina no aparezca después. */
[data-reveal] .rv-img, .rv-img[data-reveal] {
	overflow: hidden;
	border-radius: var(--r-m);
	clip-path: inset(100% 0 0 0 round var(--r-m));
	transition: clip-path var(--dur-4) var(--ease-io);
	transition-delay: calc(min(var(--i, 0), 6) * var(--stagger));
}
[data-reveal] .rv-img > :is(img, video), .rv-img[data-reveal] > :is(img, video) {
	scale: 1.06;
	transform-origin: 50% 100%;
	transition: scale var(--dur-settle) var(--ease-out);
	transition-delay: inherit;
}
[data-reveal].is-in .rv-img, .rv-img[data-reveal].is-in { clip-path: inset(0 round var(--r-m)); }
[data-reveal].is-in .rv-img > :is(img, video), .rv-img[data-reveal].is-in > :is(img, video) { scale: 1; }
/* Hover de imagen: 1,03 en `--dur-2`, solo con ratón. Se pide con
   `.rv-zoom` en el enlace o la tarjeta que contiene la imagen. */
@media (hover: hover) and (pointer: fine) {
	.rv-zoom img, .rv-zoom video { transition: scale var(--dur-2) var(--ease-out); }
	.rv-zoom:hover img, .rv-zoom:hover video { scale: 1.03; }
}

/* Palabras que se encienden una a una (las parte `site.js`). */
[data-words] .w {
	opacity: 0.14;
	transition: opacity var(--dur-3) var(--ease-out);
	transition-delay: calc(var(--wi, 0) * var(--stagger-w) + min(var(--i, 0), 6) * var(--stagger));
}
[data-reveal].is-in [data-words] .w, [data-words].is-in .w { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
	[data-reveal] .rv-up, [data-reveal] .rv-line > span, [data-reveal] .rv-fade,
	[data-reveal] .rv-rule, [data-words] .w {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	[data-reveal] .rv-img, .rv-img[data-reveal] { clip-path: inset(0 round var(--r-m)); transition: none; }
	[data-reveal] .rv-img > :is(img, video), .rv-img[data-reveal] > :is(img, video) { scale: 1; transition: none; }
	.pbleed[data-reveal] .pbleed__frame { clip-path: none; transition: none; }
	.pbleed[data-reveal] .pbleed__frame > img,
	.pbleed[data-reveal] .pbleed__frame > video { scale: 1; transition: none; }
	.pbleed[data-reveal] .pbleed__cap { opacity: 1; transition: none; }
	.prows__title, .prows__go svg { transition: none; }
}
