/* Pasaje Empresalia · sitio y presentación comercial
   Diseño y desarrollo: Lazarillo Studio (lazarillo.studio)
   ¿Necesitas ajustar algo? Con gusto te ayudamos: WhatsApp +52 1 722 322 2354.
   Las modificaciones realizadas fuera del estudio quedan fuera del alcance de nuestro soporte; si algo deja de
   funcionar después de un cambio externo, podemos revisarlo como un trabajo aparte. */
*{box-sizing:border-box}.ico{width:16px;height:16px;flex:none;stroke-width:1.5}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--text-base);line-height:1.5}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:5px}.skip{position:fixed;top:-90px;background:white;padding:12px;z-index:100}.skip:focus{top:10px}.topbar{height:88px;padding:0 4vw;position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;background:var(--bg);border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.1}.brand span{font-size:var(--text-xs);letter-spacing:.3em}.brand strong{font-size:var(--text-xl);}.toolbar{display:flex;align-items:center;gap:28px}.view-toggle{display:flex;padding:4px;border:1px solid var(--line);border-radius:30px}.view-toggle button{border:0;border-radius:24px;background:none;padding:9px 19px;font-size:var(--text-sm);color:var(--text)}.view-toggle [aria-pressed=true]{background:var(--brand);color:white}.download{text-decoration:none;font-size:var(--text-sm);border-bottom:1px solid;padding:8px 0}.download span{margin-left:16px}.panel{padding:72px 5vw 36px;display:grid;grid-template-columns:1fr 1fr;gap:30px 5vw;min-height:85vh;border-bottom:1px solid var(--line);scroll-margin-top:0}.section-body{align-self:center;max-width:670px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:var(--text-xs);margin-bottom:28px}.eyebrow span{margin-right:22px;opacity:.6}h1,h2{line-height:1.02;margin:0 0 26px;font-size:var(--display-2)}.lead{font-size:var(--text-lead);line-height:1.4;margin:0 0 24px}.body-copy p{font-size:var(--text-md);max-width:60ch;margin:0 0 16px;color:var(--text-soft)}figure{margin:0;position:relative;min-height:460px;align-self:stretch;overflow:hidden;border-radius:2px}figure img{width:100%;height:100%;position:absolute;object-fit:cover}figcaption{position:absolute;left:16px;bottom:14px;background:var(--glass-dark);color:white;padding:6px 10px;font-size:var(--text-xs)}.cta{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;background:var(--brand);color:var(--white);text-decoration:none;padding:15px 22px;border-radius:2px;margin-top:12px;font-size:var(--text-base)}.cta:hover{background:var(--brand-hover)}.stats{grid-column:1/-1;display:grid;grid-template-columns:.75fr repeat(4,1fr);padding:30px 0 12px;gap:20px;border-top:1px solid var(--line)}.stats-label{font-size:var(--text-xs);letter-spacing:.12em;align-self:center}.stat{border-left:1px solid var(--line);padding-left:24px}.stat strong{display:block;font-size:var(--display-3);line-height:1.1}.stat span{display:block;font-size:var(--text-sm);margin-top:10px;max-width:19ch}.note{grid-column:1/-1;font-size:var(--text-xs);color:var(--text-mute);margin:0}.panel-0{padding-top:45px}.panel-0 figure{min-height:540px}.panel-1{background:var(--brand);color:white}.panel-1 .body-copy p{color:var(--on-dark-soft)}.panel-1 figure{min-height:590px}.tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:32px}.tags span{padding:7px 12px;border:1px solid var(--line-on-dark);font-size:var(--text-xs)}.cards{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:35px;border-top:1px solid var(--line);padding-top:26px}.cards article{position:relative;padding-left:38px}.card-index{position:absolute;left:0;top:4px;font-size:var(--text-xs);color:var(--text-mute)}h3{font-size:var(--text-lg);margin:0 0 10px;line-height:1.2}.cards p{font-size:var(--text-base);color:var(--text-soft);margin:0}.panel-3 figure img{object-position:center}.contact{display:flex;align-items:flex-start;flex-direction:column;gap:8px;margin-top:28px}.contact strong{font-size:var(--text-xl);}.contact>span{font-size:var(--text-sm);color:var(--text-mute)}.contact>a:not(.cta){font-size:var(--text-base);text-underline-offset:4px}.contact .cta{margin:14px 0}.text-download{margin-top:16px}.deck-mode{overflow:hidden;background:var(--bg-deck)}.deck-mode main,.deck-mode .intro-strip{display:none}.deck-mode .panel{height:calc(100dvh - 152px);min-height:0;overflow:auto;padding:28px 4vw 20px;gap:16px 4vw;align-content:start}.deck-mode .panel h1,.deck-mode .panel h2{font-size:var(--display-3);margin-bottom:16px}.deck-mode .eyebrow{margin-bottom:16px}.deck-mode .lead{font-size:var(--text-md);margin-bottom:14px}.deck-mode .body-copy p{font-size:var(--text-base);margin-bottom:10px}.deck-mode figure{min-height:300px}.deck-mode .stats{padding-top:18px}.deck-mode .stat strong{font-size:32px}.deck-mode .tags{margin-top:18px}.deck-mode .cards{padding-top:18px;gap:20px}.deck-mode h3{font-size:var(--text-md)}.deck-mode .cards p{font-size:var(--text-sm)}.deck-mode .contact{gap:5px;margin-top:16px}[hidden]{display:none!important}@media(min-width:1500px){.panel{padding-left:max(5vw,calc((100vw - 1600px)/2));padding-right:max(5vw,calc((100vw - 1600px)/2))}}@media(max-width:760px){.topbar{height:112px;padding:14px 5vw;align-items:flex-start}.brand strong{font-size:var(--text-md)}.toolbar{gap:12px;flex-direction:column;align-items:flex-end}.view-toggle button{padding:6px 12px}.download{font-size:var(--text-xs);padding:0}.panel{grid-template-columns:1fr;padding:38px 6vw 26px;gap:24px;min-height:0}h1,h2{font-size:39px}.eyebrow{margin-bottom:20px}.panel figure,.panel-0 figure,.panel-1 figure{height:330px;min-height:0}.panel-0 figure{grid-row:2}.stats{grid-template-columns:1fr 1fr;gap:22px}.stats-label{grid-column:1/-1}.stat{padding-left:14px}.stat strong{font-size:32px}.cards{grid-template-columns:1fr;gap:24px}.deck-mode .panel{height:calc(100dvh - 176px);padding:26px 6vw}.deck-mode figure{min-height:240px;height:240px}.deck-mode h1,.deck-mode h2{font-size:34px}.deck-mode .stats{grid-template-columns:1fr 1fr}.deck-mode .cards{grid-template-columns:1fr}.deck-controls{gap:12px}.body-copy p{font-size:var(--text-base)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.topbar,.deck-controls{display:none!important}.panel{display:grid!important;break-after:page;height:auto!important;overflow:visible!important}body{overflow:visible!important}}

/* ---------- Deck: tarjetas apiladas al centro, control a la derecha (ref. Flabbergast) ---------- */
.deck-mode .topbar{background:transparent;border-bottom:0;color:var(--on-dark)}
body.deck-mode .brand,body.deck-mode .brand span,body.deck-mode .brand strong,body.deck-mode .header-contact{color:var(--on-dark)}
.deck-mode #menu-toggle,.deck-mode .deck-switch,.deck-mode #site-menu{background:var(--glass-on-black);box-shadow:var(--glass-edge-on-dark);color:var(--on-dark)}.deck-mode #site-menu{background:var(--glass-panel-on-black)}.deck-mode 
.deck-stage{position:fixed;inset:var(--topbar-h) 0 0 0;display:grid;place-items:center;padding:var(--space-6) calc(var(--gutter) + 72px) var(--space-7) var(--gutter)}
.deck-stage[hidden]{display:none}
.deck-stack{position:relative;width:min(100%,calc((100dvh - var(--topbar-h) - 88px) * 16 / 9),1400px);aspect-ratio:16/9}
.deck-card{position:absolute;inset:0;border-radius:var(--radius-3);overflow:hidden;
  background:var(--bg);color:var(--text);box-shadow:var(--shadow-2);
  transform:translateY(calc(var(--i) * 100dvh)) scale(1);transition:transform .8s var(--ease-out-quint),opacity .8s var(--ease-out-quint);will-change:transform}
/* la que baja al retroceder arranca suave y acelera (ease-in-out): la vuelta se siente igual de fluida que la ida */
.deck-card[data-future]{transition-timing-function:var(--ease-roll)}
/* las pasadas se apilan arriba y se van fundiendo con el negro (menos ruido visual) */
.deck-card[data-past]{transform:translateY(calc(var(--n) * -28px)) scale(calc(1 - var(--n) * .05));opacity:max(0,calc(1 - var(--n) * .32));pointer-events:none}
.deck-card[data-past="0"]{opacity:1;pointer-events:auto}
.deck-card.is-green{background:var(--surface-dark);color:var(--on-dark)}
.deck-card h2{font-size:clamp(28px,3.4vw,56px);line-height:var(--lh-snug);margin:0 0 var(--space-4);max-width:18ch}
.deck-card .lead{font-size:clamp(16px,1.2vw,20px);line-height:var(--lh-normal);margin:0 0 var(--space-5);max-width:48ch;opacity:.9}
/* layouts del deck (deckSlides): párrafos, métricas grandes, tarjetas y cifra destacada */
/* control lateral: rayas verticales, la activa más larga */
/* Rail de progreso (ref. flabbergast): líneas centradas; la activa más larga; en hover la fila crece y empuja a las vecinas */
.deck-controls{position:fixed;right:var(--gutter);top:calc((100dvh + var(--topbar-h)) / 2 + (var(--space-6) - var(--space-7)) / 2);transform:translateY(-50%);z-index:30;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);color:var(--on-dark)}
#dots{display:flex;flex-direction:column;align-items:center}
.deck-controls .dot{position:relative;border:0;background:none;width:28px;height:1px;padding:5px 0;box-sizing:content-box;cursor:pointer;font-size:0;color:inherit}
.deck-controls .dot:before{content:'';position:absolute;left:50%;top:50%;width:100%;height:1px;background:var(--white);opacity:.4;transform:translate(-50%,-50%) scaleX(.7);transition:opacity .3s,transform .3s var(--ease-out-cubic)}
@media(hover:hover){.deck-controls .dot:hover:before{opacity:.75;transform:translate(-50%,-50%) scaleX(.9)}}
.dot[aria-current=page]{pointer-events:none}.dot[aria-current=page]:before{opacity:1;transform:translate(-50%,-50%) scaleX(1.2)}
body.deck-mode .deck-controls,body.deck-mode #page-status{color:var(--white)}
/* el contador no se muestra (decisión 2026-09-11); queda solo para lectores de pantalla vía aria-live */
#page-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Acciones de cabecera en modo deck: Consultar (primario) + Descargar PDF (secundario) */
body.deck-mode .header-actions{position:absolute;right:3vw;top:var(--control-top);display:flex;align-items:center;gap:var(--space-2);z-index:61}
body.deck-mode .header-contact,body.deck-mode .deck-pdf{position:static;display:inline-flex;align-items:center;gap:var(--space-2);height:var(--control-h);padding:0 var(--space-5);border:0;border-radius:var(--radius-2);font-size:var(--text-sm);font-weight:var(--fw-medium);letter-spacing:0;text-transform:none;text-decoration:none;transition:background var(--dur-fast),color var(--dur-fast)}
body.deck-mode .header-contact{background:var(--brand);color:var(--white)}
body.deck-mode .header-contact:hover{background:var(--brand-hover)}
body.deck-mode .deck-pdf{background:var(--glass-on-black);color:var(--on-dark)}
body.deck-mode .deck-pdf:hover{background:rgb(255 255 255 / .14)}
body.deck-mode .deck-pdf svg{opacity:.8}
/* Cabecera que "cabe": app.js mide el hueco entre el botón de vista y las acciones y fija body[data-fit]
   full → short ("PDF") → icon (solo icono) → nopdf (sin PDF) → compact (además Consultar solo con flecha). Nunca se encima. */
.deck-pdf__short{display:none}
body[data-fit="short"] .deck-pdf__full,body[data-fit="icon"] .deck-pdf__full,body[data-fit="nopdf"] .deck-pdf__full,body[data-fit="compact"] .deck-pdf__full{display:none}
body[data-fit="short"] .deck-pdf__short{display:inline}
body[data-fit="icon"] .deck-pdf{width:var(--control-h);padding:0;justify-content:center}
body[data-fit="nopdf"] .deck-pdf,body[data-fit="compact"] .deck-pdf{display:none!important}
body[data-fit="compact"] .header-contact{width:var(--control-h);padding:0;justify-content:center}
body[data-fit="compact"] .header-contact>span,body[data-fit="compact"] .header-contact .ico--in{display:none}
body[data-fit="compact"] .header-contact .ico--out{margin:0}
/* CTA con flecha que se desplaza (ref. details.so button-05): la flecha derecha sale, otra entra por la izquierda y el texto corre 28px; el ancho del botón no cambia */
.btn-shift{position:relative;overflow:hidden;gap:0!important}
.btn-shift>span{display:inline-block;transition:transform .62s var(--ease-shift)}
.btn-shift .ico--out{margin-left:12px;transition:transform .62s var(--ease-shift),opacity .4s}
.btn-shift .ico--in{position:absolute;left:var(--space-5);top:50%;transform:translate(-36px,-50%);opacity:0;transition:transform .62s var(--ease-shift) .08s,opacity .4s .08s}
@media(hover:hover){.btn-shift:hover>span{transform:translateX(28px)}.btn-shift:hover .ico--out{transform:translateX(44px);opacity:0}.btn-shift:hover .ico--in{transform:translate(0,-50%);opacity:1}}
.brand,.header-contact,.deck-pdf,.h-pdf-link,.cta{transition:opacity .3s,background .3s}
@media(hover:hover){.brand:hover,.h-pdf-link:hover{opacity:.6}body.deck-mode .deck-switch:hover{background:rgb(255 255 255 / .16)}}
/* Flechas bajo el deck; se esconden mientras se scrollea */
.deck-arrows{position:fixed;left:50%;bottom:var(--space-4);transform:translateX(-50%);display:flex;gap:var(--space-2);z-index:30;transition:opacity var(--dur-base) var(--ease)}
.deck-arrows button{width:48px;height:48px;border:0;border-radius:var(--radius-2);background:var(--glass-on-black);color:var(--on-dark);display:grid;place-items:center;cursor:pointer;transition:background var(--dur-fast),opacity var(--dur-fast)}
.deck-arrows button:hover{background:rgb(255 255 255 / .16)}
.deck-arrows button:disabled{opacity:.3;cursor:default}
.deck-scrolling .deck-arrows{opacity:0;pointer-events:none}
/* Transición landing ↔ deck (View Transitions): crossfade de 0.4s entre ambos estados completos */
::view-transition-old(root),::view-transition-new(root){animation-duration:.4s;animation-timing-function:var(--ease-out-quad)}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.deck-card{transition:none}}
/* Pantallas angostas: el deck conserva SIEMPRE su 16:9 (Joaquín, 2026-09-24: la presentación no cambia de formato). La disposición móvil (barra inferior, aviso para girar el teléfono) vive en mobile.css bajo body.mobile-mode.deck-mode */

/* --- El deck escala como una lámina: tipografía relativa al ancho de la tarjeta (cqi), con mínimos de 12 px --- */
.deck-stack{container-type:inline-size}
.deck-card h2{font-size:clamp(22px,3.1cqi,46px);margin-bottom:clamp(8px,1.2cqi,16px)}
.deck-card .lead{font-size:clamp(14px,1.4cqi,19px);margin-bottom:clamp(8px,1.3cqi,18px)}


/* Cabecera sobre fondo oscuro (video del hero, escena verde, panorámicas): logo y controles en blanco */
body.on-dark-brand .brand{color:var(--on-dark)} /* cada pieza de la cabecera mide el fondo bajo sí misma (2026-09-24) */
body.on-dark #menu-toggle,body.on-dark .deck-switch{background:rgb(15 21 19 / .32);backdrop-filter:blur(14px) saturate(1.1);box-shadow:var(--glass-edge-on-dark);color:var(--on-dark)}
body.on-dark #site-menu{background:var(--glass-panel-on-black);color:var(--on-dark)}
/* sobre video o escena oscura el CTA se invierte: claro con texto verde, para que resalte */
body.on-dark-cta .header-contact{background:var(--bg);color:var(--brand)}
body.on-dark-cta .header-contact:hover{background:var(--white)}

/* Luz bajo la copa (2026-09-23, socios: las secciones claras "parecían planas"): sombra de hojas que se mece despacio sobre
   el papel + grano fino. Capas fijas sin interacción, por encima del recorrido (z 1) y por debajo de la cabecera (z 60).
   Se apagan sobre escenas oscuras (body.on-dark), con el menú abierto y en el deck (el PDF tampoco las lleva). */
/* Detrás del contenido (Joaquín, 2026-09-23): las capas van a z 0, sobre el fondo del body y bajo el recorrido (z 1). Para que se
   vean, el visor y los capítulos de papel no pintan fondo propio; las cajas con fondo (mapa, planos, tarjetas) quedan limpias encima. */
.canopy,.grain{position:fixed;inset:0;pointer-events:none;z-index:0}
body.horizontal-mode .h-viewport,body.horizontal-mode .h-location,body.horizontal-mode .h-statement{background:transparent}
.canopy{overflow:hidden;transition:opacity .4s var(--ease);mix-blend-mode:multiply;isolation:isolate;opacity:var(--copa-op,.16);
  /* claro para la lectura (2026-09-23): la sombra se atenúa del centro hacia las orillas, donde vive el texto queda a ~40 % y en los
     bordes y esquinas al 100 %; se ven las hojas sin competir con la tipografía */
  -webkit-mask-image:radial-gradient(ellipse 64% 60% at 50% 52%,rgb(0 0 0 / .38) 0%,rgb(0 0 0 / .62) 48%,#000 100%);mask-image:radial-gradient(ellipse 64% 60% at 50% 52%,rgb(0 0 0 / .38) 0%,rgb(0 0 0 / .62) 48%,#000 100%)}
/* Dos copias sin que el traslape oscurezca el doble (2026-09-23): las hojas se funden ENTRE SÍ con `darken` dentro del grupo
   (donde se cruzan se toma la más oscura, no la suma) y es el grupo entero el que multiplica sobre el papel con una sola
   opacidad (--copa-op). Así una zona cruzada nunca es más intensa que la zona más densa de una sola copa. */
/* Tres copas a distinta profundidad (2026-09-23, Joaquín: "más movimiento, ritmo"): cada capa se desplaza con el scroll
   horizontal a una fracción de su velocidad (data-k, en horizontal.js) —la lejana y borrosa más despacio, la cercana y
   nítida más rápido— y encima cada una se mece con su propio ciclo. La imagen se repite a lo ancho con los bordes
   desvanecidos: parches de sombra y claros de sol que van pasando. Tintadas en arena y en multiply: crema, nunca verde. */
.canopy__layer{position:absolute;left:-10vw;top:-12vh;width:340vw;height:124vh;will-change:transform}
.canopy__leaf{position:absolute;inset:0;background-repeat:repeat-x;background-position:0 0;mix-blend-mode:darken;will-change:transform;transform-origin:20% 0}
/* Dos movimientos en UNA sola capa (2026-09-23, Joaquín: más vida sin exagerar ni duplicar capas): el vaivén lento va en
   `transform` y encima un aleteo corto y mínimo en las propiedades individuales `rotate`/`scale`, que se componen con él.
   Cuelga del borde superior (transform-origin), así el giro se lee como rama que se mece. */
.canopy__leaf{animation:canopy-sway 14s linear infinite,canopy-flutter 4.2s ease-in-out infinite alternate,canopy-breathe 9s ease-in-out infinite;animation-delay:-4s,-1.6s,-3.2s}
/* El vaivén es una curva de Lissajous muestreada en 24 pasos con timing LINEAR (2026-09-23, Joaquín: "que ya esté en movimiento
   al entrar"): con ease-in-out entre pocos keyframes la rama se frenaba casi del todo cada pocos segundos y parecía quieta al
   entrar en la sección. Ahora nunca se detiene. */ /* arranca a mitad del vaivén: el movimiento ya está pasando cuando la copa entra a cuadro */
@keyframes canopy-flutter{0%{rotate:-.5deg;scale:1}38%{rotate:.3deg;scale:1.006}71%{rotate:-.15deg;scale:.997}100%{rotate:.55deg;scale:1.005}}
@keyframes canopy-breathe{0%,100%{filter:brightness(1)}50%{filter:brightness(1.12)}} /* la luz "respira": la sombra se aclara un poco y vuelve, como una nube que pasa */
.canopy__leaf--far{background-size:auto 96vh;opacity:.75;animation-name:canopy-sway-b,canopy-flutter,canopy-breathe;animation-duration:23s,7s,11s;animation-delay:-9s,-2s,-4s}
.canopy__leaf--mid{background-size:auto 118vh;background-position:60vw 0;opacity:.85;animation-duration:17s,6.2s,9.5s}
.canopy__leaf--near{background-size:auto 108vh;background-position:130vw 0;opacity:1;animation-name:canopy-sway-b,canopy-flutter,canopy-breathe;animation-duration:14s,5s,8s;animation-delay:-5s,-1s,-3s}
@keyframes canopy-sway{0.0%{transform:translate3d(0.0px,12.5px,0) rotate(0.57deg) scale(1.0074)}4.17%{transform:translate3d(8.8px,15.8px,0) rotate(0.79deg) scale(1.0079)}8.33%{transform:translate3d(17.0px,14.9px,0) rotate(0.96deg) scale(1.0079)}12.5%{transform:translate3d(24.0px,9.9px,0) rotate(1.07deg) scale(1.0074)}16.67%{transform:translate3d(29.4px,2.3px,0) rotate(1.10deg) scale(1.0064)}20.83%{transform:translate3d(32.8px,-5.9px,0) rotate(1.06deg) scale(1.0049)}25.0%{transform:translate3d(34.0px,-12.5px,0) rotate(0.94deg) scale(1.0031)}29.17%{transform:translate3d(32.8px,-15.8px,0) rotate(0.76deg) scale(1.0011)}33.33%{transform:translate3d(29.4px,-14.9px,0) rotate(0.53deg) scale(0.9990)}37.5%{transform:translate3d(24.0px,-9.9px,0) rotate(0.27deg) scale(0.9970)}41.67%{transform:translate3d(17.0px,-2.3px,0) rotate(-0.02deg) scale(0.9952)}45.83%{transform:translate3d(8.8px,5.9px,0) rotate(-0.30deg) scale(0.9937)}50.0%{transform:translate3d(0.0px,12.5px,0) rotate(-0.57deg) scale(0.9926)}54.17%{transform:translate3d(-8.8px,15.8px,0) rotate(-0.79deg) scale(0.9921)}58.33%{transform:translate3d(-17.0px,14.9px,0) rotate(-0.96deg) scale(0.9921)}62.5%{transform:translate3d(-24.0px,9.9px,0) rotate(-1.07deg) scale(0.9926)}66.67%{transform:translate3d(-29.4px,2.3px,0) rotate(-1.10deg) scale(0.9936)}70.83%{transform:translate3d(-32.8px,-5.9px,0) rotate(-1.06deg) scale(0.9951)}75.0%{transform:translate3d(-34.0px,-12.5px,0) rotate(-0.94deg) scale(0.9969)}79.17%{transform:translate3d(-32.8px,-15.8px,0) rotate(-0.76deg) scale(0.9989)}83.33%{transform:translate3d(-29.4px,-14.9px,0) rotate(-0.53deg) scale(1.0010)}87.5%{transform:translate3d(-24.0px,-9.9px,0) rotate(-0.27deg) scale(1.0030)}91.67%{transform:translate3d(-17.0px,-2.3px,0) rotate(0.02deg) scale(1.0048)}95.83%{transform:translate3d(-8.8px,5.9px,0) rotate(0.30deg) scale(1.0063)}100.0%{transform:translate3d(-0.0px,12.5px,0) rotate(0.57deg) scale(1.0074)}}
@keyframes canopy-sway-b{0.0%{transform:translate3d(0.0px,12.1px,0) rotate(1.24deg) scale(1.0032)}4.17%{transform:translate3d(20.0px,9.8px,0) rotate(1.30deg) scale(1.0012)}8.33%{transform:translate3d(34.6px,6.9px,0) rotate(1.27deg) scale(0.9991)}12.5%{transform:translate3d(40.0px,3.5px,0) rotate(1.16deg) scale(0.9971)}16.67%{transform:translate3d(34.6px,-0.1px,0) rotate(0.96deg) scale(0.9953)}20.83%{transform:translate3d(20.0px,-3.7px,0) rotate(0.70deg) scale(0.9937)}25.0%{transform:translate3d(0.0px,-7.1px,0) rotate(0.40deg) scale(0.9927)}29.17%{transform:translate3d(-20.0px,-10.0px,0) rotate(0.06deg) scale(0.9921)}33.33%{transform:translate3d(-34.6px,-12.2px,0) rotate(-0.27deg) scale(0.9921)}37.5%{transform:translate3d(-40.0px,-13.5px,0) rotate(-0.59deg) scale(0.9926)}41.67%{transform:translate3d(-34.6px,-14.0px,0) rotate(-0.87deg) scale(0.9936)}45.83%{transform:translate3d(-20.0px,-13.5px,0) rotate(-1.09deg) scale(0.9950)}50.0%{transform:translate3d(-0.0px,-12.1px,0) rotate(-1.24deg) scale(0.9968)}54.17%{transform:translate3d(20.0px,-9.8px,0) rotate(-1.30deg) scale(0.9988)}58.33%{transform:translate3d(34.6px,-6.9px,0) rotate(-1.27deg) scale(1.0009)}62.5%{transform:translate3d(40.0px,-3.5px,0) rotate(-1.16deg) scale(1.0029)}66.67%{transform:translate3d(34.6px,0.1px,0) rotate(-0.96deg) scale(1.0047)}70.83%{transform:translate3d(20.0px,3.7px,0) rotate(-0.70deg) scale(1.0063)}75.0%{transform:translate3d(0.0px,7.1px,0) rotate(-0.40deg) scale(1.0073)}79.17%{transform:translate3d(-20.0px,10.0px,0) rotate(-0.06deg) scale(1.0079)}83.33%{transform:translate3d(-34.6px,12.2px,0) rotate(0.27deg) scale(1.0079)}87.5%{transform:translate3d(-40.0px,13.5px,0) rotate(0.59deg) scale(1.0074)}91.67%{transform:translate3d(-34.6px,14.0px,0) rotate(0.87deg) scale(1.0064)}95.83%{transform:translate3d(-20.0px,13.5px,0) rotate(1.09deg) scale(1.0050)}100.0%{transform:translate3d(-0.0px,12.1px,0) rotate(1.24deg) scale(1.0032)}}
.grain{background:url(assets/grano.webp) repeat 0 0 / 256px 256px;opacity:.06;mix-blend-mode:multiply;transition:opacity .9s var(--ease)}
body.menu-open .canopy,body.deck-mode .canopy,body.deck-mode .grain{opacity:0}
@media(prefers-reduced-motion:reduce){.canopy__leaf{animation:none}}
@media(max-width:760px){.canopy{display:none}}

/* Sombra (estado final, 2026-09-24): una sola copia en un solo plano (la cercana), con parallax y vaivén */
html[data-fondo="s1"]{--copa-op:.22}
html[data-fondo="s1"] .canopy__layer:has(.canopy__leaf--far),html[data-fondo="s1"] .canopy__layer:has(.canopy__leaf--mid){display:none}
html[data-fondo="s1"] .canopy__leaf{background-image:url(assets/sombra-copa-1.webp?pv=4);background-size:auto 124vh;background-position:-16vw -22vh; /* 2026-09-24 (Joaquín): la mancha densa sube y cubre desde el logo hasta el centro superior, sin caer tanto sobre el título */opacity:1;animation-duration:14s,4.2s,9s}
/* (2026-09-24) el patrón "Hojas" y las variantes 1×2 / Render se eliminaron: la decoración final es sombra + bocetos */
}




.deck-count{display:none}
