/* PYROS 2027 v6 · dirección de arte, encuadres consistentes y movimiento accesible. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-spring:cubic-bezier(.16,1,.3,1)}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
.section-wrap{max-width:1330px}
section[id]{scroll-margin-top:88px}
/* Lectura y navegación */
.scroll-progress{position:fixed;top:0;left:0;width:0;height:3px;z-index:80;pointer-events:none;background:var(--lime);box-shadow:0 0 13px #d9ff0070}
.site-header{transition:background-color .3s,border-color .3s,box-shadow .3s}
.site-header.is-scrolled{background:rgba(10,10,10,.98);border-bottom-color:#4d571d;box-shadow:0 10px 28px #0004}
.desktop-nav a{position:relative}
.desktop-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:2px;background:var(--lime);transition:right .35s var(--ease-out)}
.desktop-nav a:hover::after,.desktop-nav a[aria-current="location"]::after{right:0}
.btn,.nav-cta,.text-link{transition:transform .3s var(--ease-out),box-shadow .3s,border-color .3s,background .3s}
.btn:focus-visible,.nav-cta:focus-visible,.desktop-nav a:focus-visible{outline:3px solid var(--lime);outline-offset:5px}
.btn-lime:hover,.nav-cta:hover{box-shadow:0 9px 27px #d9ff002a}
/* Hero: grande, sin recorte de columna ni salto en el borde móvil. */
.hero{grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr);gap:clamp(24px,3.4vw,60px);align-items:center}
.hero-copy,.hero-visual{min-width:0}
.hero-visual{isolation:isolate}
.hero-poster{max-width:600px;margin-inline:auto;overflow:hidden}
.hero-poster img{transition:transform 1.1s var(--ease-spring),filter .9s}
.hero-visual:hover .hero-poster img{transform:scale(1.03);filter:grayscale(.28)}
.hero-stamp{animation:stamp-float 8s ease-in-out infinite}
.orb-one{animation:orb-breathe 12s ease-in-out infinite alternate;translate:0 var(--orb-shift,0px)}
.hero-bottom-tag{transition:transform .4s var(--ease-out)}
.hero-visual:hover .hero-bottom-tag{transform:translateX(7px)}
@keyframes stamp-float{0%,100%{transform:translateY(0) rotate(14deg)}50%{transform:translateY(-8px) rotate(11deg)}}
@keyframes orb-breathe{from{opacity:.47;transform:scale(.96)}to{opacity:.8;transform:translateY(-16px) scale(1.06)}}
.marquee-track{animation-duration:42s}.marquee:hover .marquee-track{animation-play-state:paused}
/* Experiencia: cada columna respeta su contenido. */
.experience-heading,.section-heading-row{gap:clamp(24px,3vw,60px)}
.experience-heading h2,.section-heading-row h2,.details-inner>h2,.register-title h2{overflow-wrap:normal;min-width:0}
.experience-grid{grid-template-columns:minmax(0,1.12fr) repeat(2,minmax(0,1fr))}
.experience-grid>*{min-width:0}
.exp-card{transition:transform .45s var(--ease-out),box-shadow .4s}
.exp-card:hover{transform:translateY(-5px);box-shadow:0 12px 34px #0005}
.verse-glow{max-width:100%}
/* Tres retratos: marco y fotografía coherentes, textos sobre retícula común. */
.speaker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.8vw,22px);align-items:stretch}
.speaker-card{min-width:0;display:flex;flex-direction:column;overflow:hidden;transition:transform .5s var(--ease-spring),border-color .3s,box-shadow .4s}
.speaker-card:hover{transform:translateY(-7px);border-color:#b6d200;box-shadow:0 22px 50px #0008}
.speaker-photo{width:100%;aspect-ratio:1.16/1;position:relative;flex:0 0 auto;overflow:hidden;background:radial-gradient(ellipse at 50% 55%,#373e12 0%,#141611 60%,#101010 100%)}
.speaker-photo img{display:block;position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:center center;border:0;border-radius:0;filter:grayscale(.2);transition:scale .7s var(--ease-spring),filter .6s ease}
.speaker-card:hover .speaker-photo img{scale:1.035;filter:grayscale(0)}
/* Los tres retratos deben cubrir el 100 % de su marco. Nunca desplazar la tercera imagen. */
.speaker-card:nth-child(1) .speaker-photo img{object-position:50% 50%}
.speaker-card:nth-child(2) .speaker-photo img{object-position:50% 0%}
.speaker-card:nth-child(3) .speaker-photo img{height:100%;top:0;object-position:50% 0%}
/* Formato / nombre / cargo / país alineados en las tres tarjetas. */
.speaker-info{display:grid;grid-template-rows:32px minmax(90px,auto) minmax(48px,auto) auto;align-content:stretch;flex:1;gap:12px;padding:clamp(22px,2.1vw,31px);min-height:263px}
.speaker-info .speaker-format{margin:0;width:100%;align-self:start}
.speaker-info h3{margin:0!important;min-height:0;align-self:center;line-height:.98}
.speaker-info p{margin:0;align-self:start;line-height:1.45}
.speaker-info .speaker-country{margin:0;align-self:end}
/* Horarios */
.program-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.program-card{display:flex;flex-direction:column;min-width:0;min-height:465px;padding:clamp(25px,3.1vw,42px)}
.program-card-head{min-height:34px;flex-wrap:wrap}
.program-card h3{margin:clamp(43px,5vw,68px) 0 25px;min-height:2.02em}
.program-clock{margin-top:0;white-space:nowrap;max-width:100%;padding-bottom:22px;font-size:clamp(32px,4.2vw,60px)}
.program-slots{margin-top:22px;padding-top:0;gap:16px 28px}
.program-card p{margin:20px 0 0;line-height:1.6;opacity:.75}
/* FAQ: acordeón discreto. */
.faq-item summary span{transition:transform .3s var(--ease-out)}
.faq-item[open] p{animation:faq-drop .34s var(--ease-out) both}
@keyframes faq-drop{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}
.venue-art-pin{animation:pin-pulse 5s ease-in-out infinite}
@keyframes pin-pulse{0%,100%{filter:drop-shadow(0 0 0 transparent);transform:translateY(0)}50%{filter:drop-shadow(0 0 12px #d9ff0080);transform:translateY(-5px)}}
/* Diferentes animaciones por sección: sin scroll hijacking; solo transform y opacidad. */
.motion-ready [data-reveal]{transition-property:opacity,transform,clip-path;transition-duration:var(--motion-duration,.88s);transition-timing-function:var(--ease-spring);transition-delay:var(--reveal-delay,0ms)}
.motion-ready [data-reveal]:not(.is-visible){opacity:0}
.motion-ready [data-reveal="fade"]:not(.is-visible){transform:none}
.motion-ready [data-reveal="up"]:not(.is-visible){transform:translate3d(0,46px,0)}
.motion-ready [data-reveal="left"]:not(.is-visible){transform:translate3d(-60px,0,0)}
.motion-ready [data-reveal="right"]:not(.is-visible){transform:translate3d(60px,0,0)}
.motion-ready [data-reveal="scale"]:not(.is-visible){transform:translate3d(0,30px,0) scale(.91)}
.motion-ready [data-reveal="tilt-left"]:not(.is-visible){transform:translate3d(-28px,54px,0) rotate(-2.8deg)}
.motion-ready [data-reveal="tilt-right"]:not(.is-visible){transform:translate3d(28px,54px,0) rotate(2.8deg)}
.motion-ready [data-reveal="wipe"]:not(.is-visible){clip-path:inset(0 0 100% 0);transform:translate3d(0,24px,0)}
.motion-ready [data-reveal="pop"]:not(.is-visible){transform:scale(.85)}
.motion-ready [data-reveal].is-visible{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
/* Grupos sin animación hasta que se ven: actualización por evento, no on-scroll continuo */
@media(max-width:1140px){
 .experience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .experience-grid .exp-feature{grid-row:span 2}
 .experience-grid .exp-card-dark{grid-column:1/-1;min-height:230px}
 .speaker-info{min-height:255px;grid-template-rows:32px minmax(76px,auto) minmax(45px,auto) auto}
 .speaker-info h3{font-size:clamp(28px,3.5vw,45px)}
}
@media(max-width:930px){.hero{grid-template-columns:1fr;gap:35px}.hero-copy{padding-top:30px}.hero-visual{width:min(560px,87%);margin-inline:auto}.hero-poster{max-height:590px}}
@media(max-width:850px){
 .speaker-grid{gap:12px}
 .speaker-photo{aspect-ratio:1/1}
 .speaker-info{min-height:238px;padding:20px 17px 24px;gap:10px;grid-template-rows:30px minmax(75px,auto) minmax(43px,auto) auto}
 .speaker-info h3{font-size:clamp(26px,3.8vw,38px)}
 .speaker-card:nth-child(3) .speaker-photo img{height:100%;top:0}
 .program-card{min-height:420px}.program-clock{font-size:clamp(30px,4.8vw,49px)}
}
@media(max-width:700px){
 .speaker-grid{grid-template-columns:1fr;max-width:460px;margin-inline:auto;gap:18px}
 .speaker-photo{aspect-ratio:1.25/1}
 .speaker-info{min-height:235px;padding:26px;grid-template-rows:32px auto auto auto;gap:12px}
 .speaker-info h3{font-size:clamp(38px,9vw,50px);line-height:.95}
 .program-grid{grid-template-columns:1fr;gap:14px}
 .program-card{min-height:0;padding:30px 24px}
 .program-card h3{margin-top:46px;min-height:0;font-size:clamp(35px,8vw,47px)}
 .program-clock{font-size:clamp(36px,8.8vw,52px)}
}
@media(max-width:540px){
 .hero{gap:18px;padding-bottom:55px}.hero-visual{width:min(100%,460px)}.hero-bottom-tag{left:0}.hero-stamp{right:0}
 .experience-grid{grid-template-columns:minmax(0,1fr)}
 .experience-grid .exp-feature{grid-row:auto}.experience-grid .exp-card-dark{grid-column:auto}
 .speaker-grid{gap:17px}.speaker-photo{aspect-ratio:1.17/1}.speaker-info{min-height:235px}
 .program-card h3{margin:44px 0 23px}.program-clock{font-size:clamp(34px,8.2vw,48px)}.program-slots{margin-top:18px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 .motion-ready [data-reveal],.motion-ready [data-reveal]:not(.is-visible){opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
 .hero-stamp,.orb-one,.venue-art-pin,.marquee-track{animation:none!important}
 .speaker-card:hover,.exp-card:hover,.btn:hover,.hero-visual:hover .hero-poster img{transform:none!important;scale:1!important}
 .faq-item[open] p{animation:none}
}
/* Hover solo cuando el dispositivo tiene puntero; no interfiere con la animación de entrada. */
@media (hover:hover) and (prefers-reduced-motion:no-preference){
 .motion-ready .speaker-card.is-visible:hover{transform:translateY(-7px)}
 .motion-ready .exp-card.is-visible:hover{transform:translateY(-5px)}
}

/* V6: invariant verificable: imagen íntegra dentro del mismo contenedor sin franja. */
.speaker-card .speaker-photo img{inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
.speaker-card:nth-child(3) .speaker-photo img{top:0;bottom:0;object-position:50% 0%}
/* Último paso: explicitar que el QR de pago NO es el pase del evento. */
.entry-pass-note{margin-top:20px;display:flex;gap:13px;align-items:flex-start;padding:17px 18px;border:1px solid rgba(0,0,0,.22);background:rgba(0,0,0,.10);line-height:1.5}
.entry-pass-note svg{flex:0 0 28px;width:28px;height:28px;stroke:currentColor}
.entry-pass-note strong{display:block;font-size:12px;letter-spacing:.035em;text-transform:uppercase;line-height:1.35}
.entry-pass-note small{display:block;margin-top:4px;font-size:12px;line-height:1.55}
.personal-qr-illustration small{line-height:1.45}
@media(max-width:540px){.entry-pass-note{padding:15px 13px}.entry-pass-note small{font-size:12px}}
