/* 0.23 — Per-slide composition and motion. Settings share the public/preview renderer. */
.gna-hs{--hs-duration:700ms;--hs-delay:90ms;--hs-progress:0}
.gna-hs-slide{transition-duration:var(--hs-duration);gap:var(--hs-content-gap,clamp(24px,4vw,60px));overflow:clip}
.gna-hs-visual-slot{display:grid;place-items:center;width:100%;max-width:620px;min-width:0;justify-self:center;align-self:center}
.gna-hs-slide[data-layout=image_left]:not(.is-text-only){grid-template-columns:1fr 1.2fr}
.gna-hs-slide[data-layout=image_left]:not(.is-text-only) .gna-hs-copy{grid-column:2;grid-row:1}
.gna-hs-slide[data-layout=image_left]:not(.is-text-only) .gna-hs-visual-slot{grid-column:1;grid-row:1}
.gna-hs .gna-hs-copy{width:var(--hs-copy-width,100%);max-width:100%;text-align:var(--hs-align,left);justify-self:var(--hs-align,left)}
.gna-hs .gna-hs-copy :is(h1,h2,.gna-content-title){font-size:var(--hs-title-size,min(clamp(38px,5.5vw,84px),clamp(38px,calc(var(--hs-viewport-height,783px) * .11),84px)))}
.gna-hs .gna-hs-text{font-size:var(--hs-text-size,15px);max-width:100%;color:var(--hs-description-color,color-mix(in srgb,var(--hs-ink) 72%,transparent));margin-top:var(--hs-text-spacing,20px)}
.gna-hs .gna-hs-kicker{justify-content:var(--hs-justify,flex-start);color:var(--hs-kicker-color,var(--hs-ink))}
.gna-hs .gna-hs-actions{justify-content:var(--hs-justify,flex-start);gap:var(--hs-button-gap,12px);margin-top:var(--hs-text-spacing,25px)}
.gna-hs .gna-hs-cta{font-size:var(--hs-button-size,13px)}
.gna-hs .gna-hs-cta.is-secondary{background:var(--hs-button2-background,transparent);color:var(--hs-button2-color,var(--hs-ink));border-color:var(--hs-button2-border,color-mix(in srgb,var(--hs-ink) 32%,transparent))}
.gna-hs .gna-hs-visual{width:var(--hs-image-scale,100%);max-width:520px;translate:var(--hs-image-x,0px) var(--hs-image-y,0px);rotate:var(--hs-image-rotation,-3deg);transform:none;border-radius:var(--hs-image-radius,14px)}
.gna-hs .gna-hs-visual-caption{transform:none}
.gna-hs-slide[data-shadow=soft] .gna-hs-visual{box-shadow:0 24px 55px #0008}
.gna-hs-slide[data-shadow=glow] .gna-hs-visual{box-shadow:0 0 60px color-mix(in srgb,var(--hs-accent) 28%,transparent)}
.gna-hs-slide[data-shadow=glow] .gna-hs-visual.is-pack{box-shadow:none;filter:drop-shadow(0 0 18px color-mix(in srgb,var(--hs-accent) 28%,transparent))}
.gna-hs .gna-hs-visual:has(.gna-hs-visual-caption):not(.is-logo) picture:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(0deg,#08080b,transparent 48%);pointer-events:none}
/* The cursor layer never receives clicks or changes text/button positions. */
.gna-hs-cursor-halo{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(circle var(--hs-halo-size,600px) at var(--hs-cursor-x,65%) var(--hs-cursor-y,45%),var(--hs-halo-color,var(--hs-accent)),transparent 64%),radial-gradient(circle calc(var(--hs-halo-size,600px) * .55) at calc(var(--hs-cursor-x,65%) + 10%) var(--hs-cursor-y,45%),var(--hs-halo-color2,#ff712c),transparent 75%);transition:opacity .35s}
.gna-hs.has-cursor:not(.is-still):not(.is-outside) .gna-hs-cursor-halo{opacity:var(--hs-halo-opacity,.2)}
.gna-hs.has-cursor .gna-hs-halo{opacity:calc(var(--hs-halo-opacity,.2) * .35)}
.gna-hs .gna-hs-halo span{width:var(--hs-halo-size,600px);height:var(--hs-halo-size,600px)}
.gna-hs .gna-hs-halo span+span{width:calc(var(--hs-halo-size,600px) * .75);height:calc(var(--hs-halo-size,600px) * .75)}
.gna-hs[data-halo="0"] :is(.gna-hs-halo,.gna-hs-cursor-halo){display:none}
.gna-hs-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff10;pointer-events:none;overflow:hidden}
.gna-hs-progress span{display:block;width:100%;height:100%;background:var(--hs-nav-line,var(--hs-accent));transform:scaleX(var(--hs-progress));transform-origin:left}
.gna-hs[data-progress="0"] .gna-hs-progress,.gna-hs[data-autoplay="0"] .gna-hs-progress,.gna-hs.is-still .gna-hs-progress{display:none}
/* Only incoming content is animated; outgoing slides are immediately inert. */
.gna-hs.is-ready:not(.is-still) .gna-hs-slide.is-active .gna-hs-copy,.gna-hs.is-ready:not(.is-still) .gna-hs-slide.is-active .gna-hs-visual{animation:none}
.gna-hs .gna-hs-slide.is-entering{animation:gna-hsx-fade var(--hs-duration) ease backwards}
.gna-hs .gna-hs-slide.is-entering[data-effect=slide]{animation-name:gna-hsx-slide}
.gna-hs .gna-hs-slide.is-entering[data-effect=depth]{animation-name:gna-hsx-depth}
.gna-hs .gna-hs-slide.is-entering[data-effect=blur]{animation-name:gna-hsx-blur}
.gna-hs .gna-hs-slide.is-entering[data-effect=none]{animation:none;transition:none}
.gna-hs .gna-hs-slide[data-effect=none]{transition:none}
.gna-hs-stage:after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(110deg,transparent 30%,color-mix(in srgb,var(--hs-accent) 10%,transparent) 42%,#ffffff22 49%,color-mix(in srgb,var(--hs-accent) 18%,transparent) 53%,transparent 68%);opacity:0}
.gna-hs.is-sweeping .gna-hs-stage:after{animation:gna-hsx-sweep var(--hs-duration) ease-in-out backwards}
.gna-hs .gna-hs-slide.is-entering[data-stagger="1"] .gna-hs-copy>*{animation:gna-hsx-rise var(--hs-duration) backwards}
.gna-hs .gna-hs-slide.is-entering[data-stagger="1"] .gna-hs-copy>:nth-child(2){animation-delay:var(--hs-delay)}
.gna-hs .gna-hs-slide.is-entering[data-stagger="1"] .gna-hs-copy>:nth-child(3){animation-delay:calc(var(--hs-delay) * 2)}
.gna-hs .gna-hs-slide.is-entering[data-stagger="1"] .gna-hs-copy>:nth-child(4){animation-delay:calc(var(--hs-delay) * 3)}
.gna-hs .gna-hs-slide.is-entering[data-stagger="1"] .gna-hs-visual-slot{animation:gna-hsx-rise var(--hs-duration) calc(var(--hs-delay) * 4) backwards}
.gna-hs.gna-hs-motion-dynamic:not(.is-still) .gna-hs-slide.is-active:not(.is-entering) .gna-hs-visual-slot{animation:gna-hsx-float 7s ease-in-out infinite alternate}
@keyframes gna-hsx-fade{from{opacity:.15}to{opacity:1}}
@keyframes gna-hsx-slide{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes gna-hsx-depth{from{opacity:0;transform:perspective(1200px) translateZ(-80px) scale(.98)}to{opacity:1;transform:none}}
@keyframes gna-hsx-blur{from{opacity:0;filter:blur(9px);transform:translateY(8px)}to{opacity:1;filter:none;transform:none}}
@keyframes gna-hsx-sweep{0%{opacity:0;transform:translateX(-90%)}35%{opacity:1}100%{opacity:0;transform:translateX(90%)}}
@keyframes gna-hsx-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes gna-hsx-float{from{transform:translateY(0)}to{transform:translateY(-6px)}}
@media(max-width:760px){
 .gna-hs .gna-hs-slide,.gna-hs .gna-hs-slide[data-layout=image_left]{grid-template-columns:1fr;gap:var(--hs-content-gap-mobile,14px)}
 .gna-hs .gna-hs-slide .gna-hs-copy,.gna-hs .gna-hs-slide[data-layout=image_left] .gna-hs-copy{grid-column:1;grid-row:1;width:var(--hs-copy-width-mobile,100%);text-align:var(--hs-align-mobile,left);justify-self:var(--hs-align-mobile,left)}
 .gna-hs .gna-hs-slide .gna-hs-visual-slot,.gna-hs .gna-hs-slide[data-layout=image_left] .gna-hs-visual-slot{grid-column:1;grid-row:2;max-width:360px}
 .gna-hs .gna-hs-slide[data-mobile-order=image_first]:not(.is-text-only) .gna-hs-copy{grid-row:2}
 .gna-hs .gna-hs-slide[data-mobile-order=image_first]:not(.is-text-only) .gna-hs-visual-slot{grid-row:1}
 .gna-hs .gna-hs-copy :is(h1,h2,.gna-content-title){font-size:var(--hs-title-size-mobile,clamp(33px,9vw,49px))}
 .gna-hs .gna-hs-text{font-size:var(--hs-text-size-mobile,12px);margin-top:var(--hs-text-spacing-mobile,12px)}
 .gna-hs .gna-hs-actions{justify-content:var(--hs-justify-mobile,flex-start);gap:var(--hs-button-gap-mobile,9px);margin-top:var(--hs-text-spacing-mobile,15px)}
 .gna-hs .gna-hs-kicker{justify-content:var(--hs-justify-mobile,flex-start)}
 .gna-hs .gna-hs-cta{font-size:var(--hs-button-size-mobile,11px)}
 .gna-hs .gna-hs-visual{width:var(--hs-image-scale-mobile,100%);translate:var(--hs-image-x-mobile,0px) var(--hs-image-y-mobile,0px);rotate:var(--hs-image-rotation-mobile,-2deg)}
  .gna-hs-cursor-halo{display:none}.gna-hs[data-halo-mobile="0"] :is(.gna-hs-halo,.gna-hs-cursor-halo){display:none}
}
@media(hover:none),(pointer:coarse){.gna-hs-cursor-halo{display:none}}
.gna-hs.is-still *,.gna-section-motion-off .gna-hs *,.gna-hs-motion-off *{animation:none!important;transition:none!important}
.gna-hs.is-still .gna-hs-stage:after,.gna-section-motion-off .gna-hs-stage:after,.gna-hs-motion-off .gna-hs-stage:after{animation:none!important;opacity:0}
@media(prefers-reduced-motion:reduce){.gna-hs *,.gna-hs .gna-hs-stage:after{animation:none!important;transition:none!important}.gna-hs-cursor-halo{display:none!important}.gna-hs .gna-hs-stage:after{opacity:0}}
