/* LMB Framework CSS v3 — autoridad: 05-diseno/DESIGN.md v3 validado.
   Portable, sin preprocesador y aislado bajo .lmb-site. */
.lmb-site {
  --lmb-bg: #000;
  --lmb-surface-elevated: #111;
  --lmb-surface-intermediate: #1a1a1a;
  --lmb-surface-light: #fff;
  --lmb-ink: #fff;
  --lmb-ink-secondary: #767676;
  --lmb-ink-inverse: #000;
  --lmb-line: #333;
  --lmb-state-strong: #fff;
  --lmb-state-soft: #767676;
  --lmb-state-info: #9cc3ff;
  --lmb-state-success: #8fdcae;
  --lmb-state-warning: #ffd98a;
  --lmb-state-error: #ffa3a3;
  /* Host Grotesk peso 800 en headings, validado.
      DESIGN.md v3 aún declara Barlow Condensed; reconciliación contractual pendiente.
      Barlow Condensed queda reservado (--lmb-font-condensed) para CTA de shell, sellos y fechas. */
  --lmb-font-heading: "Host Grotesk", "Barlow Condensed", "Arial Narrow", "Helvetica Neue Condensed", Impact, sans-serif;
  --lmb-font-condensed: "Barlow Condensed", "Arial Narrow", "Helvetica Neue Condensed", Impact, sans-serif;
  --lmb-font-body: "Inter Variable", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --lmb-label: clamp(.72rem, .69rem + .12vw, .82rem);
  --lmb-body-small: clamp(.875rem, .84rem + .14vw, .98rem);
  --lmb-body: clamp(1rem, .96rem + .18vw, 1.125rem);
  --lmb-figure-stamp: clamp(1rem, .88rem + .5vw, 1.35rem);
  --lmb-lead: clamp(1.2rem, 1.08rem + .55vw, 1.65rem);
  --lmb-h3: clamp(1.25rem, 0.8rem + 1.4vw, 2.25rem);
  --lmb-h2: clamp(1.5rem, 0.9rem + 2.2vw, 3.25rem);
  --lmb-h1: clamp(2rem, 1.2rem + 3.2vw, 4.75rem);
  --lmb-hero: clamp(2.5rem, 1.5rem + 4.4vw, 6rem);
  --lmb-space-1: clamp(.35rem, .3rem + .2vw, .5rem);
  --lmb-space-2: clamp(.65rem, .53rem + .48vw, .95rem);
  --lmb-space-3: clamp(1rem, .78rem + .9vw, 1.5rem);
  --lmb-space-4: clamp(1.5rem, 1.08rem + 1.8vw, 2.5rem);
  --lmb-space-5: clamp(2.25rem, 1.55rem + 3vw, 4rem);
  --lmb-space-6: clamp(3.5rem, 2.15rem + 5.8vw, 7rem);
  --lmb-space-7: clamp(5rem, 2.8rem + 9vw, 11rem);
  --lmb-grid-gap: clamp(.75rem, .48rem + 1.15vw, 1.75rem);
  --lmb-container: clamp(72rem, 92vw, 100rem);
  --lmb-reading-editorial: clamp(34rem, 52vw, 46rem);
  --lmb-reading-functional: clamp(30rem, 46vw, 40rem);
  --lmb-sidebar-inline-size: 90px;
  --lmb-radius-recto: 0;
  --lmb-radius-functional: clamp(.125rem, .09rem + .12vw, .25rem);
  --lmb-radius-medium: clamp(.25rem, .18rem + .25vw, .5rem);
  --lmb-rule-strong: clamp(.125rem, .1rem + .1vw, .1875rem);
  --lmb-frame-heavy: calc(var(--lmb-rule-strong) * 2);
  --lmb-rule-fine: clamp(.0625rem, .05rem + .04vw, .09375rem);
  --lmb-shadow-overlay: 0 clamp(.5rem, .28rem + .9vw, 1.25rem) clamp(1.5rem, .95rem + 2.4vw, 3.5rem) rgb(0 0 0 / 45%);
  --lmb-icon-s: clamp(1rem, .9rem + .4vw, 1.35rem);
  --lmb-icon-l: clamp(2rem, 1.45rem + 2.4vw, 3.5rem);
  --lmb-icon-cta: clamp(3.25rem, 2.1rem + 3vw, 5.25rem);
  --lmb-target: clamp(2.75rem, 2.55rem + .75vw, 3.25rem);
  --lmb-duration-fast: 140ms;
  --lmb-duration-base: 220ms;
  --lmb-duration-slow: 480ms;
  --lmb-ease-standard: cubic-bezier(.2, .65, .25, 1);
  --lmb-ease-emphasis: cubic-bezier(.22, 1, .36, 1);
  --lmb-motion-reveal-duration: var(--lmb-duration-slow);
  --lmb-motion-reveal-ease: var(--lmb-ease-emphasis);
  --lmb-motion-stagger: 120ms;
  --lmb-motion-mask-duration: 620ms;
  background: var(--lmb-bg); color: var(--lmb-ink); font-family: var(--lmb-font-body); font-optical-sizing: auto;
  font-size: var(--lmb-body); line-height: 1.65; min-block-size: 100vh;
}
.lmb-site *, .lmb-site *::before, .lmb-site *::after { box-sizing: border-box; }
.lmb-site :where(h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd) { margin: 0; }
.lmb-site :where(ul,ol) { margin: 0; padding: 0; }
.lmb-site :where(img,svg,video) { display: block; max-inline-size: 100%; }
.lmb-site :where(button,input,select,textarea) { font: inherit; }
.lmb-site :where(a) { color: inherit; }
.lmb-site :where(button,[type="button"],[type="submit"]) { cursor: pointer; }
.lmb-site :where(:focus-visible) { outline: var(--lmb-rule-strong) solid var(--lmb-ink); outline-offset: clamp(.18rem,.1rem + .25vw,.3rem); }
.lmb-site .lmb-section--light :where(:focus-visible) { outline-color: var(--lmb-ink-inverse); }
.lmb-site .lmb-skip-link { background: var(--lmb-ink); color: var(--lmb-ink-inverse); inset-inline-start: var(--lmb-space-3); padding: var(--lmb-space-2) var(--lmb-space-3); position: fixed; top: calc(var(--lmb-space-5) * -2); z-index: 100; }
.lmb-site .lmb-skip-link:focus { top: var(--lmb-space-3); }
.lmb-site .lmb-container { inline-size: min(100% - (var(--lmb-space-5) * 2),var(--lmb-container)); margin-inline: auto; min-inline-size: 0; }
.lmb-site .lmb-reading--editorial { inline-size: min(100%,var(--lmb-reading-editorial)); }
.lmb-site .lmb-reading--functional { inline-size: min(100%,var(--lmb-reading-functional)); }
.lmb-site .lmb-reading--centered { margin-inline: auto; text-align: center; }
.lmb-site .lmb-section { border-block-end: var(--lmb-rule-strong) solid var(--lmb-ink); padding-block: var(--lmb-space-5); }
.lmb-site .lmb-section--light { background: var(--lmb-surface-light); color: var(--lmb-ink-inverse); }
.lmb-site .lmb-section--elevated { background: var(--lmb-bg); }
.lmb-site .lmb-section--quiet { background: var(--lmb-bg); }
.lmb-site .lmb-stack > * + * { margin-block-start: var(--lmb-space-3); }
.lmb-site .lmb-stack--wide > * + * { margin-block-start: var(--lmb-space-5); }
.lmb-site .lmb-cluster { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lmb-space-2); }
.lmb-site .lmb-align-center { align-self: center; }
.lmb-site .lmb-sr-only { block-size: 1px; clip-path: inset(50%); inline-size: 1px; overflow: hidden; position: absolute; white-space: nowrap; }
.lmb-site .lmb-eyebrow,.lmb-site .lmb-label { font-size: var(--lmb-label); font-weight: 700; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; }
.lmb-site .lmb-eyebrow,.lmb-site .lmb-text-muted { color: var(--lmb-ink-secondary); }
/* Headings: Host Grotesk peso 800 (máximo de la familia; 850/900 no aplican).
    Escala reducida y line-height 1.05 se conservan. text-wrap: balance mejora el wrapping
    de títulos largos sin subir la escala (fallback seguro: normal). */
.lmb-site :is(h1,.lmb-h1,h2,.lmb-h2,h3,.lmb-h3,h4,.lmb-h4,h5,.lmb-h5,h6,.lmb-h6) { font-family: var(--lmb-font-heading); font-weight: 800; letter-spacing: -.025em; line-height: 1.05; text-wrap: balance; }
.lmb-site :is(h1,.lmb-h1) { font-size: var(--lmb-h1); }
.lmb-site :is(h2,.lmb-h2) { font-size: var(--lmb-h2); }
.lmb-site :is(h3,.lmb-h3) { font-size: var(--lmb-h3); }
.lmb-site :is(h4,.lmb-h4) { font-size: var(--lmb-lead); line-height: 1.2; }
.lmb-site :is(h5,.lmb-h5) { font-size: var(--lmb-body); line-height: 1.3; }
.lmb-site :is(h6,.lmb-h6) { font-size: var(--lmb-body-small); letter-spacing: .06em; line-height: 1.2; text-transform: uppercase; }
.lmb-site .lmb-hero-title { font-family: var(--lmb-font-heading); font-size: var(--lmb-hero); font-weight: 800; letter-spacing: -.025em; line-height: 1.05; max-inline-size: 11ch; }
/* Typewriter: el sizer y la capa comparten métrica y wrapping; los caracteres pendientes reservan su hueco final. */
.lmb-site .lmb-motion-type { position: relative; text-wrap: normal; }
.lmb-site :is(.lmb-type-sizer,.lmb-type-layer,.lmb-type-output) { font: inherit; inline-size: 100%; letter-spacing: inherit; overflow-wrap: normal; text-wrap: normal; white-space: normal; word-break: normal; }
.lmb-site .lmb-type-sizer { display: block; visibility: hidden; }
.lmb-site .lmb-type-layer { inset: 0; position: absolute; }
.lmb-site .lmb-type-output { display: none; }
.lmb-site .lmb-motion-type.is-typing .lmb-type-text { display: none; }
.lmb-site .lmb-motion-type.is-typing .lmb-type-output { display: inline; }
.lmb-site .lmb-type-character { visibility: hidden; }
.lmb-site .lmb-type-character.is-typed { visibility: visible; }
.lmb-site .lmb-type-character.is-current { position: relative; }
.lmb-site .lmb-type-character.is-current::after { background: currentColor; block-size: .7em; content: ""; inline-size: .55ch; inset-block-end: .25em; inset-inline-start: calc(100% + .14em); position: absolute; }
.lmb-site .lmb-motion-type.is-typing .lmb-type-character.is-current::after { animation: lmb-caret-blink 1.1s steps(1) infinite; }
.lmb-site .lmb-type-caret { background: currentColor; display: inline-block; block-size: .7em; inline-size: .55ch; inset-block-end: .25em; margin-inline-start: .14em; position: relative; }
.lmb-site .lmb-motion-type.is-typing .lmb-type-caret { display: none; }
@keyframes lmb-caret-blink { 50% { opacity: 0; } }
.lmb-site .lmb-lead { border-block-end: var(--lmb-rule-fine) solid var(--lmb-line); font-size: var(--lmb-lead); line-height: 1.5; max-inline-size: 48ch; padding-block: var(--lmb-space-4) var(--lmb-space-5); }
/* Aire tras el separador del lead: el primer párrafo siguiente respira más que el resto del stack. */
.lmb-site .lmb-lead + p { margin-block-start: var(--lmb-space-5); }
/* Variante sin separador: cuando el cambio de sección ya marca el corte (p. ej. lead en hero). */
.lmb-site .lmb-lead--bare { border-block-end: 0; }
.lmb-site .lmb-grid { display: grid; gap: var(--lmb-grid-gap); min-inline-size: 0; }
.lmb-site .lmb-grid--12 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.lmb-site .lmb-grid--auto { grid-template-columns: repeat(auto-fit,minmax(min(100%,clamp(16rem,26vw,23rem)),1fr)); }
/* Preloader de filtros AJAX: estático (sin animación), centrado sobre el área del grid. */
.lmb-site .lmb-archive-resultado { position: relative; }
.lmb-site .lmb-preloader {
	align-items: center;
	background: var(--lmb-ink);
	color: var(--lmb-bg);
	display: flex;
	font-family: var(--lmb-font-heading);
	font-size: clamp(1.25rem, 2.5vw, 2rem);
	font-weight: 800;
	inset: 0;
	justify-content: center;
	letter-spacing: 0.08em;
	position: absolute;
	text-align: center;
	z-index: 2;
}
.lmb-site .lmb-preloader[aria-hidden="true"] { visibility: hidden; }
/* Colecciones de Proyectos: la cantidad explícita conserva la ocupación completa de la fila. */
.lmb-site .lmb-grid--projects { grid-template-columns: minmax(0,1fr); }
.lmb-site .lmb-grid--labs { grid-template-columns: minmax(0,1fr); }
.lmb-site :is(.lmb-layout--7-5,.lmb-layout--8-4,.lmb-layout--9-3,.lmb-layout--equal) { display: grid; gap: var(--lmb-grid-gap); min-inline-size: 0; }
/* Shell de navegación: el mismo token gobierna la sidebar y el offset. */
.lmb-site .lmb-shell { min-block-size: 100vh; min-inline-size: 0; }
.lmb-site .lmb-shell :is(main,footer) { min-inline-size: 0; }
.lmb-site .lmb-sidebar { background: var(--lmb-bg); display: none; inset-block: 0 auto; inset-inline-start: 0; overflow: visible; padding-block: var(--lmb-space-3); padding-inline: 0; position: fixed; z-index: 20; }
.lmb-site .lmb-sidebar__inner { align-items: center; display: flex; flex-direction: column; gap: var(--lmb-space-3); min-block-size: calc(100vh - (var(--lmb-space-3) * 2)); overflow: visible; }
.lmb-site .lmb-logo { display: inline-flex; inline-size: min(100%,clamp(8rem,10vw,12rem)); }
.lmb-site .lmb-sidebar__nav { display: grid; gap: var(--lmb-space-1); justify-items: center; }
.lmb-site .lmb-nav-link { align-items: center; display: flex; font-size: var(--lmb-body-small); font-weight: 600; gap: var(--lmb-space-2); min-block-size: var(--lmb-target); padding-inline: var(--lmb-space-2); position: relative; text-decoration: none; transition: background-color var(--lmb-duration-fast) var(--lmb-ease-standard),color var(--lmb-duration-fast) var(--lmb-ease-standard); }
.lmb-site .lmb-nav-link:hover { background: var(--lmb-surface-intermediate); }
.lmb-site .lmb-nav-link[aria-current="page"] { font-weight: 750; }
.lmb-site .lmb-nav-link__icon,.lmb-site .lmb-icon { flex: 0 0 auto; font-size: var(--lmb-icon-s); inline-size: var(--lmb-icon-s); text-align: center; }
.lmb-site .lmb-sidebar .lmb-nav-link { inline-size: var(--lmb-target); justify-content: center; overflow: visible; padding-inline: 0; }
.lmb-site .lmb-sidebar .lmb-nav-link__icon { font-size: 1.5rem; inline-size: 1.5rem; position: relative; z-index: 2; }
.lmb-site .lmb-sidebar .lmb-nav-link__label { align-items: center; background: var(--lmb-ink); color: var(--lmb-ink-inverse); display: flex; font-size: var(--lmb-label); font-weight: 700; inset-block-start: 50%; inset-inline-start: calc(100% + var(--lmb-space-2)); letter-spacing: .08em; min-block-size: var(--lmb-target); opacity: 0; padding-inline: var(--lmb-space-2); pointer-events: none; position: absolute; text-transform: uppercase; transform: translateY(-50%); transition: opacity var(--lmb-duration-fast) var(--lmb-ease-standard),visibility var(--lmb-duration-fast) var(--lmb-ease-standard); visibility: hidden; white-space: nowrap; z-index: 30; }
.lmb-site .lmb-sidebar .lmb-nav-link__label::before { block-size: 0; border-block: var(--lmb-space-1) solid transparent; border-inline-end: var(--lmb-space-1) solid var(--lmb-ink); content: ""; inline-size: 0; inset-block-start: 50%; inset-inline-start: 0; position: absolute; transform: translate(-100%, -50%); }
/* Segundo triángulo, blanco y ligeramente mayor, solo cuando el CTA se invierte: bordea la flecha negra. */
.lmb-site .lmb-sidebar .lmb-nav-link__label::after { block-size: 0; border-block: calc(var(--lmb-space-1) + var(--lmb-rule-fine)) solid transparent; border-inline-end: calc(var(--lmb-space-1) + var(--lmb-rule-fine)) solid var(--lmb-ink); content: ""; display: none; inline-size: 0; inset-block-start: 50%; inset-inline-start: 0; position: absolute; transform: translate(-100%, -50%); z-index: -1; }
.lmb-site .lmb-sidebar .lmb-nav-link:is(:hover,:focus-visible) .lmb-nav-link__label { opacity: 1; visibility: visible; }
.lmb-site .lmb-sidebar .lmb-nav-link[aria-current="page"] { background: var(--lmb-ink); color: var(--lmb-ink-inverse); }
.lmb-site .lmb-sidebar__account { border-block-start: var(--lmb-rule-fine) solid var(--lmb-line); margin-block-start: auto; }
/* Header móvil sticky: permanece visible al hacer scroll; en escritorio la topbar está oculta por la sidebar. Padding horizontal se mantiene. */
.lmb-site .lmb-topbar { align-items: center; background: var(--lmb-bg); border-block-end: var(--lmb-frame-heavy) solid var(--lmb-ink); display: flex; inset-block-start: 0; justify-content: space-between; min-block-size: var(--lmb-target); padding: var(--lmb-space-2) var(--lmb-space-5); position: sticky; z-index: 15; }
.lmb-site .lmb-topbar__logo { inline-size: clamp(4.5rem, 17.5vw, 6.5rem); }
.lmb-site .lmb-topbar__actions { align-items: center; display: flex; gap: var(--lmb-space-2); }
.lmb-site .lmb-icon-button { align-items: center; background: transparent; border: 0; color: var(--lmb-ink); display: inline-flex; inline-size: var(--lmb-target); justify-content: center; min-block-size: var(--lmb-target); padding-inline: 0; text-decoration: none; }
.lmb-site .lmb-menu-toggle { align-items: center; background: transparent; border: var(--lmb-rule-fine) solid currentColor; border-radius: 0; color: var(--lmb-ink); display: inline-flex; font-weight: 700; gap: var(--lmb-space-2); justify-content: center; min-block-size: var(--lmb-target); padding-inline: var(--lmb-space-3); }
.lmb-site .lmb-menu-toggle[aria-expanded="true"] { color: var(--lmb-ink-secondary); }
.lmb-site .lmb-icon-button.lmb-menu-toggle { border: 0; gap: 0; padding-inline: 0; }
.lmb-site .lmb-icon-button .lmb-icon { font-size: clamp(1.5rem, 1.3rem + .9vw, 1.9rem); inline-size: auto; }
.lmb-site .lmb-drawer { background: var(--lmb-bg); border-inline-end: var(--lmb-rule-fine) solid var(--lmb-line); box-shadow: var(--lmb-shadow-overlay); display: grid; grid-template-rows: auto 1fr auto; inset: 0 auto 0 0; inline-size: min(88vw,28rem); padding: var(--lmb-space-4); position: fixed; transform: translateX(-105%); transition: transform var(--lmb-duration-base) var(--lmb-ease-standard),visibility var(--lmb-duration-fast) step-end; visibility: hidden; z-index: 40; }
.lmb-site .lmb-drawer[data-open="true"] { transform: translateX(0); transition-timing-function: var(--lmb-ease-standard); visibility: visible; }
.lmb-site .lmb-drawer__close { justify-self: end; }
.lmb-site .lmb-drawer__nav { align-content: start; display: grid; gap: var(--lmb-space-1); margin-block-start: var(--lmb-space-5); }
.lmb-site .lmb-drawer__footer { border-block-start: var(--lmb-rule-fine) solid var(--lmb-line); padding-block-start: var(--lmb-space-3); }
.lmb-site.lmb-scroll-locked { overflow: hidden; }
/* Acción monocroma: inversión, marco, escala y aire; sin acento de color. */
.lmb-site .lmb-button { align-items: center; background: transparent; border: var(--lmb-rule-fine) solid currentColor; border-radius: 0; display: inline-flex; font-size: var(--lmb-body-small); font-weight: 750; gap: var(--lmb-space-2); justify-content: center; line-height: 1.2; min-block-size: var(--lmb-target); padding-inline: var(--lmb-space-3); text-align: center; text-decoration: none; transition: background-color var(--lmb-duration-fast) var(--lmb-ease-standard),color var(--lmb-duration-fast) var(--lmb-ease-standard),transform var(--lmb-duration-fast) var(--lmb-ease-standard); }
.lmb-site .lmb-button:active { transform: scale(.98); }
.lmb-site .lmb-button--primary { background: var(--lmb-ink); border-color: var(--lmb-ink); border-width: var(--lmb-frame-heavy); color: var(--lmb-ink-inverse); padding-inline: var(--lmb-space-4); }
.lmb-site .lmb-button--multiline { padding-block: var(--lmb-space-3); white-space: normal; }
.lmb-site .lmb-button--primary:hover { background: var(--lmb-ink-inverse); color: var(--lmb-ink); }
.lmb-site .lmb-button--secondary { border-width: var(--lmb-frame-heavy); }
.lmb-site .lmb-button--secondary:hover { background: var(--lmb-ink); border-color: var(--lmb-ink); color: var(--lmb-ink-inverse); }
.lmb-site .lmb-section--light .lmb-button--primary { background: var(--lmb-ink-inverse); border-color: var(--lmb-ink-inverse); color: var(--lmb-ink); }
.lmb-site .lmb-section--light .lmb-button--primary:hover { background: var(--lmb-ink); color: var(--lmb-ink-inverse); }
.lmb-site .lmb-section--light .lmb-button--secondary:hover { background: var(--lmb-ink-inverse); border-color: var(--lmb-ink-inverse); color: var(--lmb-ink); }
/* CTA de shell (drawer móvil): Barlow Condensed, a una línea. */
.lmb-site .lmb-button--shell { align-self: stretch; font-family: var(--lmb-font-condensed); font-size: var(--lmb-figure-stamp); font-weight: 800; letter-spacing: .02em; line-height: 1.1; padding-inline: var(--lmb-space-2); white-space: nowrap; }
.lmb-site .lmb-button--block { inline-size: 100%; }
.lmb-site .lmb-button:disabled,.lmb-site .lmb-button[aria-disabled="true"] { cursor: not-allowed; opacity: .55; pointer-events: none; text-decoration: line-through; }
/* Marcos, cortes, reglas, sellos y placas. */
.lmb-site .lmb-frame-heavy { border: var(--lmb-frame-heavy) solid currentColor; padding: var(--lmb-space-4); }
.lmb-site .lmb-rule--strong { border: 0; border-block-start: var(--lmb-rule-strong) solid currentColor; margin: 0; }
.lmb-site .lmb-rule--fine { border: 0; border-block-start: var(--lmb-rule-fine) solid var(--lmb-ink); margin: 0; }
.lmb-site .lmb-stamp { align-items: center; border: var(--lmb-rule-fine) dashed currentColor; display: inline-flex; font-family: var(--lmb-font-condensed); font-size: var(--lmb-label); font-weight: 800; letter-spacing: .06em; line-height: 1; padding: var(--lmb-space-1) var(--lmb-space-2); text-transform: uppercase; }
.lmb-site .lmb-stack > :is(.lmb-stamp,.lmb-eyebrow,.lmb-work-plate__fact) { display: flex; inline-size: fit-content; }
.lmb-site .lmb-shell::after { border: var(--lmb-frame-heavy) solid var(--lmb-ink); content: ""; inset: 0; pointer-events: none; position: fixed; z-index: 10; }
.lmb-site .lmb-hero { border-block-end: var(--lmb-rule-strong) solid var(--lmb-ink); padding-block: var(--lmb-space-5); }
.lmb-site .lmb-hero__layout { align-items: start; display: grid; gap: var(--lmb-space-5); }
.lmb-site .lmb-hero__layout > * { min-inline-size: 0; }
.lmb-site .lmb-hero__aside { align-self: center; background: var(--lmb-bg); display: grid; gap: var(--lmb-space-3); justify-items: stretch; }
.lmb-site .lmb-hero__aside-logo { display: block; inline-size: min(100%,clamp(9rem,16vw,15rem)); justify-self: center; max-inline-size: 100%; }
.lmb-site .lmb-hero__aside > img:not(.lmb-hero__aside-logo) { aspect-ratio: 16 / 9; display: block; inline-size: 100%; object-fit: cover; }
/* Sección CTA: contenido y acción comparten retícula; la acción ocupa y centra toda su columna. */
.lmb-site .lmb-cta-section { --lmb-cta-surface: var(--lmb-bg); --lmb-cta-ink: var(--lmb-ink); background: var(--lmb-cta-surface); border-block-end: var(--lmb-rule-strong) solid var(--lmb-cta-ink); color: var(--lmb-cta-ink); padding-block: var(--lmb-space-5); }
.lmb-site .lmb-cta-section--dark { --lmb-cta-surface: var(--lmb-bg); --lmb-cta-ink: var(--lmb-ink); }
.lmb-site .lmb-cta-section--light { --lmb-cta-surface: var(--lmb-surface-light); --lmb-cta-ink: var(--lmb-ink-inverse); }
.lmb-site .lmb-cta-section__layout { align-items: center; display: grid; gap: var(--lmb-grid-gap); min-inline-size: 0; }
.lmb-site .lmb-cta-section__content { min-inline-size: 0; }
.lmb-site .lmb-cta-section__action { align-content: center; align-items: center; display: grid; gap: var(--lmb-space-3); justify-items: center; min-inline-size: 0; padding: var(--lmb-space-4); }
.lmb-site .lmb-cta-section__icon { color: inherit; display: block; font-size: var(--lmb-icon-cta); inline-size: var(--lmb-icon-cta); line-height: 1; text-align: center; }
.lmb-site .lmb-cta-section__action-box { align-self: center; border: var(--lmb-frame-heavy) solid currentColor; display: grid; gap: var(--lmb-space-3); inline-size: 100%; justify-items: center; padding: var(--lmb-space-4); text-align: center; }
.lmb-site .lmb-cta-section__action-box .lmb-button { inline-size: 100%; }
.lmb-site .lmb-cta-section--dark .lmb-button--primary { background: var(--lmb-ink); border-color: var(--lmb-ink); color: var(--lmb-ink-inverse); }
.lmb-site .lmb-cta-section--dark .lmb-button--primary:hover { background: var(--lmb-ink-inverse); color: var(--lmb-ink); }
.lmb-site .lmb-cta-section--light .lmb-button--primary { background: var(--lmb-ink-inverse); border-color: var(--lmb-ink-inverse); color: var(--lmb-ink); }
.lmb-site .lmb-cta-section--light .lmb-button--primary:hover { background: var(--lmb-ink); color: var(--lmb-ink-inverse); }
.lmb-site .lmb-cta-section--light :where(:focus-visible) { outline-color: var(--lmb-ink-inverse); }
.lmb-site .lmb-footer.lmb-cta-section { padding-block: var(--lmb-space-5); }
.lmb-site .lmb-work-plate { background: var(--lmb-bg); border: var(--lmb-rule-fine) solid var(--lmb-ink); color: var(--lmb-ink); display: grid; min-inline-size: 0; overflow: clip; position: relative; }
.lmb-site .lmb-work-plate::before { background: currentColor; content: ""; inset-block: 0; inset-inline-start: 0; inline-size: var(--lmb-space-2); position: absolute; }
.lmb-site .lmb-work-plate__media { aspect-ratio: 16 / 9; background: var(--lmb-bg); object-fit: cover; }
.lmb-site .lmb-work-plate__body { display: grid; gap: var(--lmb-space-3); overflow: visible; padding: var(--lmb-space-4); padding-inline-start: calc(var(--lmb-space-2) + var(--lmb-space-4)); }
.lmb-site .lmb-work-plate__meta { align-items: center; display: flex; flex-wrap: nowrap; gap: var(--lmb-space-2); justify-content: space-between; overflow: visible; white-space: nowrap; }
.lmb-site .lmb-work-plate__fact { align-items: center; color: var(--lmb-ink); display: inline-flex; font-size: var(--lmb-body-small); gap: var(--lmb-space-1); }
.lmb-site .lmb-work-plate__body h3, .lmb-site .lmb-work-plate__title { display: -webkit-box; font-size: clamp(1.15rem, .7rem + 1.3vw, 2rem); line-height: 1.2; min-block-size: calc(3 * 1.2em); -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; line-clamp: 3; }
.lmb-site .lmb-work-plate__meta .lmb-stamp { overflow: visible; position: relative; }
.lmb-site .lmb-work-plate__meta .lmb-stamp::before { border-block: 9px solid transparent; border-inline-start: 9px solid currentColor; content: ""; inset-block-start: 50%; inset-inline-start: calc(var(--lmb-space-4) * -1 - 2px); position: absolute; transform: translateY(-50%); }
.lmb-site .lmb-work-plate .lmb-button { inline-size: 100%; }
.lmb-site .lmb-work-plate--functional { background: transparent; border: var(--lmb-rule-fine) solid var(--lmb-ink); }
/* Variante angulada (prueba): imagen 16:9 rotada aleatoriamente por detras, caja negra por delante. */
.lmb-site .lmb-work-plate--angled { background: transparent; border: 0; display: grid; gap: 0; overflow: visible; position: static; }
.lmb-site .lmb-work-plate--angled::before { display: none; }
.lmb-site .lmb-work-plate--angled .lmb-tilt-frame { overflow: visible; padding-inline: var(--lmb-space-2); position: relative; z-index: 0; }
.lmb-site .lmb-work-plate--angled .lmb-tilt-media { aspect-ratio: 16 / 9; background: var(--lmb-bg); display: block; inline-size: 100%; object-fit: cover; transform: translateY(0) rotate(0); transform-origin: 50% 100%; }
/* Media clicable de las cards: el enlace toma el tamaño de la imagen sin decoración. */
.lmb-site .lmb-work-plate__media-link { display: block; text-decoration: none; }
.lmb-site .lmb-work-plate--angled .lmb-work-plate__body { background: var(--lmb-bg); border: var(--lmb-rule-fine) solid var(--lmb-ink); border-inline-start: var(--lmb-space-2) solid var(--lmb-ink); display: grid; gap: var(--lmb-space-3); margin-block-start: calc(var(--lmb-space-3) * -1); overflow: visible; padding: var(--lmb-space-4); position: relative; z-index: 1; }
.lmb-site .lmb-work-plate--angled .lmb-tilt-media { transition: transform var(--lmb-duration-slow) var(--lmb-ease-emphasis); }
.lmb-site .lmb-work-plate--angled:is(:hover,:focus-within) .lmb-tilt-media { transform: translateY(clamp(-.5rem,-.34rem - .3vw,-.85rem)) rotate(var(--tilt, 4deg)); will-change: transform; }
/* Variantes de composición para series destacadas: cada placa toma un ángulo distinto dentro del rango validado de 3–7°. */
.lmb-site .lmb-work-plate--tilt-left-3 { --tilt: -3deg; }
.lmb-site .lmb-work-plate--tilt-right-5 { --tilt: 5deg; }
.lmb-site .lmb-work-plate--tilt-left-7 { --tilt: -7deg; }
/* Miniaturas de Proyectos: fondo blanco invertido para integrarse en la superficie oscura; los Laboratorios conservan el fondo blanco original. */
.lmb-site .lmb-work-plate--project .lmb-tilt-media { border: var(--lmb-rule-fine) solid var(--lmb-ink-inverse); filter: invert(1); }
.lmb-site .lmb-status { align-items: center; display: inline-flex; font-size: var(--lmb-label); font-weight: 750; gap: var(--lmb-space-1); letter-spacing: .08em; text-transform: uppercase; }
.lmb-site .lmb-status::before { background: currentColor; block-size: .55em; content: ""; inline-size: .55em; }
.lmb-site .lmb-status--restricted::before,.lmb-site .lmb-status--warning::before { background: transparent; border: var(--lmb-rule-fine) solid currentColor; }
.lmb-site .lmb-status--error::before { clip-path: polygon(50% 0,100% 100%,0 100%); }
.lmb-site .lmb-status--warning { color: var(--lmb-state-warning); }
.lmb-site .lmb-status--restricted { color: var(--lmb-state-warning); }
.lmb-site .lmb-status--error { color: var(--lmb-state-error); }
.lmb-site .lmb-timeline { border-inline-start: var(--lmb-rule-strong) solid var(--lmb-ink); display: grid; gap: var(--lmb-space-4); list-style: none; padding-inline-start: var(--lmb-space-4); }
.lmb-site .lmb-timeline__item { min-inline-size: 0; position: relative; }
.lmb-site .lmb-timeline__item::before { background: var(--lmb-ink); block-size: clamp(.55rem,.45rem + .2vw,.7rem); content: ""; inline-size: clamp(.55rem,.45rem + .2vw,.7rem); inset-block-start: var(--lmb-space-2); inset-inline-start: calc(var(--lmb-space-4) * -1 - clamp(.28rem,.22rem + .1vw,.36rem)); position: absolute; }
.lmb-site .lmb-feed { display: grid; gap: var(--lmb-space-2); list-style: none; }
.lmb-site .lmb-feed__item { border-block-end: var(--lmb-rule-fine) solid var(--lmb-line); display: grid; gap: var(--lmb-space-2); padding-block: var(--lmb-space-3); }
.lmb-site .lmb-feed__item--thumb { align-items: center; grid-template-columns: clamp(6rem, 22vw, 11rem) 1fr; }
.lmb-site .lmb-thumb { aspect-ratio: 16 / 9; background: var(--lmb-bg); border: var(--lmb-rule-fine) solid var(--lmb-ink); inline-size: 100%; object-fit: cover; }
/* Feed minimalista: listado en columna de items miniatura + contenido, reutilizable en
   single-laboratorio (variante compacta) y archive-genérico (variante completa). */
.lmb-site .lmb-feed-minimal { display: grid; gap: 0; list-style: none; }
.lmb-site .lmb-feed-minimal__item { align-items: stretch; border-block-end: var(--lmb-rule-fine) solid var(--lmb-line); display: flex; flex-wrap: wrap; gap: var(--lmb-space-3); min-inline-size: 0; padding-block: var(--lmb-space-4); }
/* El último item no lleva separador. */
.lmb-site .lmb-feed-minimal__item:last-child { border-block-end: 0; }
.lmb-site .lmb-feed-minimal__media-link { align-self: stretch; block-size: 100%; display: flex; flex: 0 0 auto; inline-size: clamp(10rem,24vw,17rem); min-block-size: 0; min-inline-size: 0; overflow: hidden; }
.lmb-site .lmb-feed-minimal__media-link > img { block-size: 100%; inline-size: 100%; min-block-size: 0; min-inline-size: 0; object-fit: cover; }
.lmb-site .lmb-feed-minimal__body { align-content: center; display: flex; flex: 1 1 0; flex-direction: column; gap: var(--lmb-space-2); min-inline-size: 0; }
.lmb-site .lmb-feed-minimal__title { font-size: clamp(1.1rem,.9rem + .7vw,1.55rem); line-height: 1.2; }
.lmb-site .lmb-feed-minimal__title a { text-decoration: none; }
.lmb-site .lmb-feed-minimal__title a:hover { text-decoration: underline; text-underline-offset: clamp(.15rem,.1rem + .1vw,.2rem); }
.lmb-site .lmb-feed-minimal__excerpt { color: var(--lmb-ink-secondary); font-size: var(--lmb-body-small); }
.lmb-site .lmb-feed-minimal__cta { justify-self: start; }
/* Variante compacta: solo miniatura + título; listados de contexto (laboratorios de un proyecto). */
.lmb-site .lmb-feed-minimal--compact .lmb-feed-minimal__item { align-items: center; gap: var(--lmb-space-3); padding-block: var(--lmb-space-3); }
.lmb-site .lmb-feed-minimal--compact .lmb-feed-minimal__media-link { aspect-ratio: 16 / 10; block-size: auto; inline-size: clamp(6.5rem,16vw,10rem); }
.lmb-site .lmb-feed-minimal--compact .lmb-feed-minimal__title { font-size: var(--lmb-body); }
/* UI funcional: el estado se diferencia por texto, icono y geometría, nunca solo color. */
.lmb-site .lmb-empty-state,.lmb-site .lmb-gate { border: var(--lmb-rule-fine) solid var(--lmb-line); display: grid; gap: var(--lmb-space-3); padding: var(--lmb-space-5); }
.lmb-site .lmb-empty-state { border-inline-start: var(--lmb-rule-strong) solid var(--lmb-ink); }
.lmb-site .lmb-gate { background: var(--lmb-surface-elevated); }
.lmb-site .lmb-gate__included { border-block-start: var(--lmb-rule-fine) solid var(--lmb-line); list-style: none; padding-block-start: var(--lmb-space-3); }
.lmb-site .lmb-gate__included li + li { margin-block-start: var(--lmb-space-2); }
.lmb-site .lmb-alert { align-items: flex-start; border: var(--lmb-rule-fine) solid currentColor; display: grid; gap: var(--lmb-space-2); grid-template-columns: var(--lmb-icon-s) 1fr; padding: var(--lmb-space-3); }
.lmb-site .lmb-alert--info { border-color: var(--lmb-state-info); border-inline-start-width: var(--lmb-rule-strong); color: var(--lmb-state-info); }
.lmb-site .lmb-alert--success { border-color: var(--lmb-state-success); border-style: double; color: var(--lmb-state-success); }
.lmb-site .lmb-alert--warning { border-color: var(--lmb-state-warning); border-inline-start-width: var(--lmb-frame-heavy); color: var(--lmb-state-warning); }
.lmb-site .lmb-alert--error { border-block: var(--lmb-rule-strong) solid var(--lmb-state-error); border-color: var(--lmb-state-error); color: var(--lmb-state-error); }
.lmb-site .lmb-alert__text, .lmb-site .lmb-alert p { color: var(--lmb-ink); }
.lmb-site .lmb-badge { border: var(--lmb-rule-fine) dashed currentColor; display: inline-flex; font-size: var(--lmb-label); font-weight: 700; letter-spacing: .06em; padding: var(--lmb-space-1) var(--lmb-space-2); text-transform: uppercase; }
.lmb-site .lmb-badge--available { background: var(--lmb-state-success); border-color: var(--lmb-state-success); color: var(--lmb-ink-inverse); }
.lmb-site .lmb-badge--restricted { border-color: var(--lmb-state-warning); color: var(--lmb-state-warning); text-decoration: line-through; }
.lmb-site .lmb-field { display: grid; gap: var(--lmb-space-1); }
.lmb-site .lmb-field__label { font-size: var(--lmb-body-small); font-weight: 700; }
.lmb-site .lmb-field__hint,.lmb-site .lmb-field__error { font-size: var(--lmb-body-small); }
.lmb-site .lmb-field__error { border-inline-start: var(--lmb-rule-strong) solid var(--lmb-state-error); color: var(--lmb-state-error); font-weight: 700; padding-inline-start: var(--lmb-space-2); }
.lmb-site :is(.lmb-input,.lmb-textarea) { background: var(--lmb-bg); border: var(--lmb-rule-fine) solid var(--lmb-line); border-radius: var(--lmb-radius-functional); color: var(--lmb-ink); min-block-size: var(--lmb-target); padding: var(--lmb-space-2); }
.lmb-site .lmb-textarea { min-block-size: clamp(8rem,16vw,14rem); resize: vertical; }
.lmb-site :is(.lmb-input,.lmb-select,.lmb-textarea):focus { border-color: var(--lmb-ink); outline: none; }
.lmb-site :is(.lmb-input,.lmb-select)[aria-invalid="true"] { border-color: var(--lmb-state-error); border-width: var(--lmb-rule-strong); text-decoration: underline; }
.lmb-site :is(.lmb-input,.lmb-select,.lmb-textarea):disabled { cursor: not-allowed; opacity: .6; }
.lmb-site .lmb-check { align-items: center; display: flex; gap: var(--lmb-space-2); min-block-size: var(--lmb-target); }
.lmb-site .lmb-check__control { appearance: none; background: var(--lmb-bg); border: var(--lmb-rule-fine) solid var(--lmb-ink-secondary); block-size: var(--lmb-icon-s); inline-size: var(--lmb-icon-s); margin: 0; }
.lmb-site .lmb-check__control:checked { background: var(--lmb-ink); box-shadow: inset 0 0 0 clamp(.2rem,.14rem + .2vw,.3rem) var(--lmb-bg); }
.lmb-site .lmb-filters { border-block: var(--lmb-rule-fine) solid var(--lmb-line); display: grid; gap: 0; }
/* Filtros pegados a una sección que ya cierra con regla: solo conserva el borde inferior. */
.lmb-site .lmb-filters--flush { border-block-start: 0; }
.lmb-site .lmb-filters__row { align-items: end; display: flex; flex-wrap: wrap; gap: var(--lmb-space-3); padding-block: var(--lmb-space-3); }
.lmb-site .lmb-filters__row + .lmb-filters__row { border-block-start: var(--lmb-rule-fine) solid var(--lmb-line); }
.lmb-site .lmb-filter { background: transparent; border: var(--lmb-rule-fine) solid currentColor; color: var(--lmb-ink); min-block-size: var(--lmb-target); padding-inline: var(--lmb-space-2); }
.lmb-site .lmb-filter[aria-pressed="true"] { background: var(--lmb-ink); color: var(--lmb-ink-inverse); font-weight: 750; }
/* Select de filtro: aspecto de botón de marca + flecha (negro/blanco, sin dependencias externas). */
.lmb-site .lmb-select {
	appearance: none;
	-webkit-appearance: none;
	background-color: transparent;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M3.5 6.5 8 11l4.5-4.5'/%3E%3C/svg%3E");
	background-position: right var(--lmb-space-2) center;
	background-repeat: no-repeat;
	background-size: 1rem;
	border: var(--lmb-rule-fine) solid currentColor;
	color: var(--lmb-ink);
	cursor: pointer;
	font-weight: 700;
	inline-size: auto;
	max-inline-size: 100%;
	min-block-size: var(--lmb-target);
	min-inline-size: 13rem;
	padding-inline: var(--lmb-space-3) 2.75rem;
}
.lmb-site .lmb-select:hover {
	background-color: var(--lmb-ink);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' d='M3.5 6.5 8 11l4.5-4.5'/%3E%3C/svg%3E");
	color: var(--lmb-ink-inverse);
}
.lmb-site .lmb-select:focus-visible {
	outline: var(--lmb-rule-strong) solid var(--lmb-ink);
	outline-offset: 2px;
}
.lmb-site .lmb-select:disabled { cursor: not-allowed; opacity: .6; }
.lmb-site .lmb-select[aria-invalid="true"] {
	border-color: var(--lmb-state-error);
	border-width: var(--lmb-rule-strong);
	text-decoration: underline;
}
.lmb-site .lmb-accordion { border-block-start: var(--lmb-rule-fine) solid var(--lmb-line); }
.lmb-site .lmb-accordion__item { border-block-end: var(--lmb-rule-fine) solid var(--lmb-line); }
.lmb-site .lmb-accordion__summary { align-items: center; cursor: pointer; display: flex; font-weight: 700; gap: var(--lmb-space-3); justify-content: space-between; list-style: none; min-block-size: var(--lmb-target); padding-block: var(--lmb-space-2); }
.lmb-site .lmb-accordion__summary::-webkit-details-marker { display: none; }
.lmb-site .lmb-accordion__summary::after { content: "+"; font-size: var(--lmb-h3); font-weight: 400; }
.lmb-site .lmb-accordion__item[open] .lmb-accordion__summary::after { content: "−"; }
.lmb-site .lmb-accordion__content { max-inline-size: var(--lmb-reading-functional); padding-block-end: var(--lmb-space-3); }
.lmb-site .lmb-data-table { border-collapse: collapse; inline-size: 100%; }
.lmb-site .lmb-data-table :is(th,td) { border-block-end: var(--lmb-rule-fine) solid var(--lmb-line); padding: var(--lmb-space-2); text-align: start; vertical-align: top; }
.lmb-site .lmb-data-table th { font-size: var(--lmb-label); letter-spacing: .06em; text-transform: uppercase; }
/* Player de sesión (Bunny.net): 16:9, sin estilos inline. En PHP solo se renderiza para miembros RCP. */
.lmb-site .lmb-player { aspect-ratio: 16 / 9; background: var(--lmb-surface-elevated); border: var(--lmb-rule-fine) solid var(--lmb-line); isolation: isolate; overflow: clip; position: relative; }
.lmb-site .lmb-player__frame { block-size: 100%; border: 0; display: block; inline-size: 100%; inset: 0; position: absolute; }
.lmb-site .lmb-media { background: transparent; border: 0; display: grid; gap: 0; overflow: visible; }
.lmb-site .lmb-media__frame { aspect-ratio: 16 / 9; background: transparent; overflow: visible; padding-inline: var(--lmb-space-2); }
.lmb-site .lmb-media__frame > img { block-size: 100%; inline-size: 100%; object-fit: cover; }
.lmb-site .lmb-media__meta { background: var(--lmb-bg); border: var(--lmb-rule-fine) solid var(--lmb-ink); border-inline-start: var(--lmb-space-2) solid var(--lmb-ink); display: grid; gap: var(--lmb-space-2); margin-block-start: calc(var(--lmb-space-3) * -1); overflow: visible; padding: var(--lmb-space-3); position: relative; z-index: 1; }
/* Patrón split media/contenido: la imagen llena la fila en ancho y se controla a 1:1 al apilarse. */
.lmb-site .lmb-split-media { align-items: stretch; display: grid; gap: var(--lmb-grid-gap); min-inline-size: 0; }
.lmb-site .lmb-split-media__media { aspect-ratio: 1 / 1; block-size: auto; min-inline-size: 0; overflow: hidden; }
.lmb-site .lmb-split-media__media > img { block-size: 100%; inline-size: 100%; object-fit: cover; }
.lmb-site .lmb-split-media__content { min-inline-size: 0; }
/* Compatibilidad: conserva los usos existentes de media cuadrada fuera del patrón split. */
.lmb-site .lmb-square-media { aspect-ratio: 1 / 1; overflow: hidden; }
.lmb-site .lmb-square-media > img { block-size: 100%; inline-size: 100%; object-fit: cover; }
.lmb-site .lmb-footer { padding-block-end: var(--lmb-space-4); }
.lmb-site .lmb-footer__layout { display: grid; gap: var(--lmb-space-5); }
/* Zona de marca compacta: sustituye la regla y el hueco superior; el enlace conserva nombre accesible. */
.lmb-site .lmb-footer__brand { display: grid; justify-items: center; padding-block: var(--lmb-space-4) var(--lmb-space-3); }
.lmb-site .lmb-footer__brand-link { display: block; inline-size: clamp(7rem,14vw,11rem); }
.lmb-site .lmb-footer__brand-logo { block-size: auto; inline-size: 100%; }
/* Zona de enlaces del footer: columnas encabezadas; auto-fit apila en móvil sin media queries; sin fondos ni regla divisoria. */
.lmb-site .lmb-footer__bottom { padding-block-start: var(--lmb-space-3); }
.lmb-site .lmb-footer__columns { display: grid; gap: var(--lmb-space-4) var(--lmb-grid-gap); grid-template-columns: repeat(auto-fit,minmax(min(100%,12rem),1fr)); }
.lmb-site .lmb-footer__column { align-content: start; display: grid; gap: var(--lmb-space-2); min-inline-size: 0; }
.lmb-site :is(.lmb-footer__links,.lmb-footer__legal) { display: grid; gap: var(--lmb-space-1); list-style: none; margin: 0; padding: 0; }
.lmb-site :is(.lmb-footer__links a,.lmb-footer__legal a) { color: var(--lmb-ink-secondary); font-size: var(--lmb-body-small); font-weight: 600; text-decoration: none; transition: color var(--lmb-duration-fast) var(--lmb-ease-standard); }
.lmb-site :is(.lmb-footer__links a,.lmb-footer__legal a):hover { color: var(--lmb-ink); text-decoration: underline; }
/* Miga de pan: orientación textual para archives y singles. Sin media query; apila con wrap fluido. */
.lmb-site .lmb-breadcrumb { font-size: var(--lmb-body-small); }
.lmb-site .lmb-breadcrumb__list { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lmb-space-2); list-style: none; margin: 0; padding: 0; }
.lmb-site .lmb-breadcrumb__item { align-items: center; display: inline-flex; gap: var(--lmb-space-2); min-inline-size: 0; }
.lmb-site .lmb-breadcrumb__item + .lmb-breadcrumb__item::before { color: var(--lmb-ink-secondary); content: "/"; }
.lmb-site .lmb-breadcrumb__item[aria-current="page"] { color: var(--lmb-ink-secondary); overflow-wrap: anywhere; }
.lmb-site .lmb-breadcrumb__item a { font-weight: 600; text-decoration: none; }
.lmb-site .lmb-breadcrumb__item a:hover { text-decoration: underline; }
.lmb-site .lmb-section--light .lmb-breadcrumb__item a { color: var(--lmb-ink-inverse); }
.lmb-site .lmb-section--light .lmb-breadcrumb__item + .lmb-breadcrumb__item::before,
.lmb-site .lmb-section--light .lmb-breadcrumb__item[aria-current="page"] { color: var(--lmb-ink); }
/* Navegación prev/next dentro de una secuencia (Laboratorios de un mismo Proyecto). */
.lmb-site .lmb-pager { display: grid; gap: var(--lmb-grid-gap); min-inline-size: 0; }
.lmb-site .lmb-pager__item { border: var(--lmb-rule-fine) solid var(--lmb-line); display: grid; gap: var(--lmb-space-1); min-inline-size: 0; padding: var(--lmb-space-3); text-decoration: none; transition: border-color var(--lmb-duration-fast) var(--lmb-ease-standard); }
.lmb-site .lmb-pager__item:hover { border-color: var(--lmb-ink); }
.lmb-site .lmb-pager__item--prev { text-align: start; }
.lmb-site .lmb-pager__item--next { text-align: end; align-items: end; }
.lmb-site .lmb-pager__key { color: var(--lmb-ink-secondary); font-size: var(--lmb-label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.lmb-site .lmb-pager__title { font-family: var(--lmb-font-heading); font-size: var(--lmb-body); font-weight: 800; line-height: 1.2; }
/* Secuencia prev/next con cards (Laboratorio): 0 elementos = no se renderiza; 1 card; 2 cards (prev | next). */
.lmb-site .lmb-sequence { display: grid; gap: var(--lmb-grid-gap); min-inline-size: 0; }
.lmb-site .lmb-sequence__item { display: grid; gap: var(--lmb-space-2); min-inline-size: 0; overflow: visible; }
/* Motion validado: el contenido permanece visible sin JS. */
.lmb-site.motion-ready .lmb-motion-reveal { opacity: 0; transform: translateY(var(--lmb-space-3)); }
.lmb-site.motion-ready .lmb-motion-reveal.is-visible { opacity: 1; transform: none; transition: opacity var(--lmb-motion-reveal-duration) var(--lmb-motion-reveal-ease),transform var(--lmb-motion-reveal-duration) var(--lmb-motion-reveal-ease); }
.lmb-site.motion-ready .lmb-motion-stagger > .lmb-motion-reveal:nth-child(2) { transition-delay: var(--lmb-motion-stagger); }
.lmb-site.motion-ready .lmb-motion-stagger > .lmb-motion-reveal:nth-child(3) { transition-delay: calc(var(--lmb-motion-stagger) * 2); }
.lmb-site .lmb-motion-assemble { transition: transform var(--lmb-duration-base) var(--lmb-ease-standard),background-color var(--lmb-duration-fast) var(--lmb-ease-standard); }
.lmb-site .lmb-motion-assemble:hover { transform: translateY(clamp(-.18rem,-.1rem - .1vw,-.3rem)); }
.lmb-site .lmb-motion-mask { overflow: clip; position: relative; }
.lmb-site.motion-ready .lmb-motion-mask::after { background: var(--lmb-bg); content: ""; inset: 0; position: absolute; transform-origin: right; }
.lmb-site.motion-ready .lmb-motion-mask.is-visible::after { transform: scaleX(0); transition: transform var(--lmb-motion-mask-duration) var(--lmb-motion-reveal-ease); }
/* Navegación v3 y Mesa de Proyectos: UI funcional, sin motion adicional. */
.lmb-site .lmb-nav-separator { border: 0; border-block-start: var(--lmb-rule-fine) solid var(--lmb-line); inline-size: var(--lmb-target); margin: var(--lmb-space-2) 0; }
.lmb-site .lmb-nav-link--cta { background: var(--lmb-ink); color: var(--lmb-ink-inverse); }
.lmb-site .lmb-nav-link--cta:hover { background: var(--lmb-bg); color: var(--lmb-ink); }
.lmb-site .lmb-sidebar .lmb-nav-link--cta:is(:hover,:focus-visible) { background: var(--lmb-ink); color: var(--lmb-ink-inverse); }
.lmb-site .lmb-sidebar .lmb-nav-link--cta .lmb-nav-link__label { background: var(--lmb-ink-inverse); color: var(--lmb-ink); }
.lmb-site .lmb-sidebar .lmb-nav-link--cta .lmb-nav-link__label::before { border-inline-end-color: var(--lmb-ink-inverse); }
.lmb-site .lmb-mesa-panel { border: var(--lmb-rule-fine) solid var(--lmb-ink); border-inline-start: var(--lmb-frame-heavy) solid var(--lmb-ink); display: grid; gap: var(--lmb-space-4); min-inline-size: 0; padding: var(--lmb-space-4); }
.lmb-site .lmb-mesa-panel__header,.lmb-site .lmb-mesa-panel__footer { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lmb-space-2); justify-content: space-between; }
.lmb-site .lmb-mesa-panel__title { max-inline-size: 18ch; }
.lmb-site .lmb-mesa-panel__facts { border-block: var(--lmb-rule-fine) solid var(--lmb-line); display: grid; gap: var(--lmb-space-2); grid-template-columns: repeat(auto-fit,minmax(min(100%,12rem),1fr)); padding-block: var(--lmb-space-3); }
.lmb-site .lmb-mesa-panel__fact { display: grid; gap: var(--lmb-space-1); }
.lmb-site .lmb-mesa-panel__fact dt { color: var(--lmb-ink-secondary); font-size: var(--lmb-label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.lmb-site .lmb-mesa-panel__fact dd { font-size: var(--lmb-body-small); font-weight: 700; margin: 0; }
.lmb-site .lmb-mesa-occupancy { align-items: center; border: var(--lmb-rule-fine) dashed var(--lmb-ink); display: inline-flex; font-family: var(--lmb-font-condensed); font-size: var(--lmb-figure-stamp); font-weight: 800; gap: var(--lmb-space-1); letter-spacing: .02em; line-height: 1; padding: var(--lmb-space-1) var(--lmb-space-2); }
.lmb-site .lmb-mesa-occupancy--full { border-style: solid; text-decoration: line-through; }
.lmb-site .lmb-mesa-projects,.lmb-site .lmb-mesa-following { border-block-start: var(--lmb-rule-fine) solid var(--lmb-line); display: grid; gap: var(--lmb-space-2); list-style: none; padding-block-start: var(--lmb-space-3); }
.lmb-site .lmb-mesa-projects__item,.lmb-site .lmb-mesa-following__item { align-items: baseline; display: flex; flex-wrap: wrap; gap: var(--lmb-space-2); justify-content: space-between; }
.lmb-site .lmb-mesa-privacy { border-inline-start: var(--lmb-rule-strong) solid var(--lmb-ink); color: var(--lmb-ink-secondary); font-size: var(--lmb-body-small); padding-inline-start: var(--lmb-space-2); }
.lmb-site .lmb-mesa-session { border-block-end: var(--lmb-rule-fine) solid var(--lmb-line); display: grid; gap: var(--lmb-space-3); padding-block: var(--lmb-space-3); }
.lmb-site .lmb-mesa-session__header { align-items: baseline; display: flex; flex-wrap: wrap; gap: var(--lmb-space-2); justify-content: space-between; }
.lmb-site .lmb-mesa-session__meta { color: var(--lmb-ink-secondary); font-size: var(--lmb-body-small); }
.lmb-site .lmb-reservation-status { align-items: flex-start; border: var(--lmb-rule-fine) solid currentColor; display: grid; gap: var(--lmb-space-2); grid-template-columns: var(--lmb-icon-s) 1fr; padding: var(--lmb-space-3); }
.lmb-site .lmb-reservation-status__icon { font-size: var(--lmb-icon-s); line-height: 1; }
.lmb-site .lmb-reservation-status__title { font-family: var(--lmb-font-body); font-size: var(--lmb-body-small); font-weight: 800; line-height: 1.3; }
.lmb-site .lmb-reservation-status--waiting { border-style: dashed; color: var(--lmb-state-warning); }
.lmb-site .lmb-reservation-status--confirmed { border-style: double; color: var(--lmb-state-success); }
.lmb-site .lmb-reservation-status--info { border-inline-start-width: var(--lmb-rule-strong); color: var(--lmb-state-info); }
.lmb-site .lmb-reservation-status--error { border-block-width: var(--lmb-rule-strong); color: var(--lmb-state-error); }
.lmb-site .lmb-reservation-status :is(p,small) { color: var(--lmb-ink); }
@media (min-width:48rem) {
  .lmb-site .lmb-grid--12 { grid-template-columns: repeat(6,minmax(0,1fr)); }
  .lmb-site :is(.lmb-layout--7-5,.lmb-layout--8-4) { grid-template-columns: minmax(0,7fr) minmax(0,5fr); }
  .lmb-site .lmb-cta-section__layout { grid-template-columns: minmax(0,8fr) minmax(0,4fr); }
  .lmb-site .lmb-layout--equal { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lmb-site .lmb-split-media { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lmb-site .lmb-split-media__media { align-self: stretch; aspect-ratio: auto; block-size: 100%; }
  .lmb-site .lmb-layout--9-3 { grid-template-columns: minmax(0,9fr) minmax(0,3fr); }
  .lmb-site .lmb-hero__layout { grid-template-columns: minmax(0,8fr) minmax(16rem,4fr); }
  .lmb-site .lmb-grid--projects-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lmb-site .lmb-grid--projects-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .lmb-site .lmb-grid--labs { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lmb-site .lmb-pager { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lmb-site .lmb-sequence { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lmb-site .lmb-sequence__item--next:only-child { grid-column: 2; }
}
@media (min-width:64rem) {
  .lmb-site .lmb-shell { padding-inline-start: var(--lmb-sidebar-inline-size); }
  .lmb-site .lmb-shell::after { inset-inline-start: var(--lmb-sidebar-inline-size); }
  .lmb-site .lmb-sidebar { display: block; inline-size: var(--lmb-sidebar-inline-size); }
  .lmb-site :is(.lmb-topbar,.lmb-drawer) { display: none; }
  .lmb-site .lmb-grid--12 { grid-template-columns: repeat(12,minmax(0,1fr)); }
  .lmb-site .lmb-grid--labs { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width:47.99rem) {
  .lmb-site .lmb-hero__aside { justify-items: center; text-align: center; }
  /* Feed minimalista: la variante completa apila la miniatura arriba; la compacta conserva la miniatura al lado. */
  .lmb-site .lmb-feed-minimal__item { flex-direction: column; }
  .lmb-site .lmb-feed-minimal__media-link { aspect-ratio: 16 / 9; block-size: auto; inline-size: 100%; }
  .lmb-site .lmb-feed-minimal--compact .lmb-feed-minimal__item { flex-direction: row; }
  .lmb-site .lmb-feed-minimal--compact .lmb-feed-minimal__media-link { aspect-ratio: 16 / 10; inline-size: 5.5rem; }
  .lmb-site .lmb-data-table thead { block-size: 1px; clip-path: inset(50%); inline-size: 1px; overflow: hidden; position: absolute; white-space: nowrap; }
  .lmb-site :is(.lmb-data-table,.lmb-data-table tbody,.lmb-data-table tr,.lmb-data-table td) { display: block; inline-size: 100%; }
  .lmb-site .lmb-data-table tr { border-block-end: var(--lmb-rule-fine) solid var(--lmb-line); padding-block: var(--lmb-space-2); }
  .lmb-site .lmb-data-table td { border: 0; display: grid; gap: var(--lmb-space-2); grid-template-columns: minmax(7rem,.7fr) 1fr; padding: var(--lmb-space-1) 0; }
  .lmb-site .lmb-data-table td::before { content: attr(data-label); font-size: var(--lmb-label); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
}
@media (prefers-reduced-motion:reduce) {
  .lmb-site *, .lmb-site *::before, .lmb-site *::after { animation: none !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .lmb-site.motion-ready .lmb-motion-reveal,.lmb-site.motion-ready .lmb-motion-reveal.is-visible,.lmb-site.motion-ready .lmb-motion-mask::after { opacity: 1 !important; transform: none !important; }
  .lmb-site.motion-ready .lmb-motion-mask::after { display: none; }
  .lmb-site .lmb-work-plate--angled:is(:hover,:focus-within) .lmb-tilt-media { transform: none; }
}
