/* Version 489: rolige, professionelle animationer på JacobRytter.dk */
body::after{
 content:"";position:fixed;z-index:-1;inset:-30%;pointer-events:none;
 background:radial-gradient(circle at 18% 25%,rgba(45,161,255,.08),transparent 22%),radial-gradient(circle at 78% 68%,rgba(105,213,255,.06),transparent 24%);
 animation:jrAmbientLight 22s ease-in-out infinite alternate;will-change:transform
}
@keyframes jrAmbientLight{from{transform:translate3d(-2%,-1%,0) scale(1)}to{transform:translate3d(3%,2%,0) scale(1.06)}}

/* Jacobs hero-portræt bevæger sig kun ganske svagt og beholder sin placering. */
.pilot{transform-origin:50% 100%;animation:jrPortraitBreathe 8s ease-in-out infinite alternate}
@keyframes jrPortraitBreathe{from{transform:translateX(-50%) translateY(0) scale(1)}to{transform:translateX(-50%) translateY(-5px) scale(1.008)}}

/* Indhold glider roligt ind ved scroll. JS tilføjer klassen uden at ændre layoutet. */
.jr-reveal{opacity:0;transform:translate3d(0,24px,0);transition:opacity .78s ease,transform .78s cubic-bezier(.2,.7,.2,1)}
.jr-reveal.jr-in{opacity:1;transform:none}
.jr-reveal[data-jr-delay="1"]{transition-delay:.08s}.jr-reveal[data-jr-delay="2"]{transition-delay:.16s}.jr-reveal[data-jr-delay="3"]{transition-delay:.24s}

/* Mere levende kort og billeder uden at tilføje nye knapper. */
:is(.service-card,.gallery-slide,.film-slide,.thermal-slide,.event-slide,.nature-slide,.astro-slide,.sund-showcase,.pro-song-card,.pro-book-card,.faq-item){
 transition:transform .32s ease,border-color .32s ease,box-shadow .32s ease,filter .32s ease
}
@media(hover:hover){
 :is(.service-card,.gallery-slide,.film-slide,.thermal-slide,.event-slide,.nature-slide,.astro-slide,.sund-showcase,.pro-song-card,.pro-book-card):hover{
  transform:translateY(-6px);border-color:rgba(105,213,255,.62);box-shadow:0 22px 48px rgba(0,0,0,.28);filter:saturate(1.04)
 }
}

/* Genvejsmenuen får en diskret bevægelse på små skærme. */
@media(max-width:700px){
 .section-nav-inner{scroll-behavior:smooth}
 .hero-drone-camera{opacity:.96}.hero-drone-fpv{opacity:.9}.hero-drone-thermal{opacity:.94}
}
@media(prefers-reduced-motion:reduce){
 body::after,.pilot{animation:none!important}
 .jr-reveal{opacity:1!important;transform:none!important;transition:none!important}
}

/* Version 491: det samlede 10/10 motion-system */

/* Aktivt galleri får en næsten umærkelig kamerabevægelse. */
:is(.gallery-slide,.film-slide,.thermal-slide,.event-slide,.nature-slide,.astro-slide).is-active img,
:is(.gallery-slide,.film-slide,.thermal-slide,.event-slide,.nature-slide,.astro-slide).active img{
 animation:jrGalleryDrift 9s ease-in-out infinite alternate;transform-origin:center
}
@keyframes jrGalleryDrift{from{transform:scale(1.002) translate3d(0,0,0)}to{transform:scale(1.035) translate3d(-.35%,-.2%,0)}}
:is(.gallery-slider,.film-slider,.thermal-slider,.event-slider,.nature-slider,.astro-slider):hover img{animation-play-state:paused!important}

/* Overskrifter afsløres i to rolige trin. */
.jr-reveal :is(h2,h3){transition:transform .72s cubic-bezier(.2,.7,.2,1),opacity .72s ease}
.jr-reveal:not(.jr-in) :is(h2,h3){opacity:0;transform:translateY(15px)}
.jr-reveal :is(h2,h3) span{display:block;transition:transform .78s .1s cubic-bezier(.2,.7,.2,1),opacity .78s .1s ease}
.jr-reveal:not(.jr-in) :is(h2,h3) span{opacity:0;transform:translateY(12px)}

/* Dybdeeffekt på musik- og boguniverserne. */
.music-panel,.pro-books-panel{transform:perspective(1200px) rotateX(var(--jr-tilt-y,0deg)) rotateY(var(--jr-tilt-x,0deg));transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease}
.music-panel>* ,.pro-books-panel>*{transform:translateZ(0)}
@media(hover:hover){.music-panel:hover,.pro-books-panel:hover{box-shadow:0 34px 78px rgba(0,0,0,.34)}}

/* Portrætter forbliver naturlige uden farvet halo eller ringglød. */
.creative-visual .creative-rings,.portrait-ring{opacity:.12!important;box-shadow:none!important}
.creative-visual>img,.contact-portrait>img{filter:none!important}

/* Forskellig intensitet: stærkere på computer, roligere på mobil. */
@media(min-width:1000px){
 .hero-drone-camera{filter:drop-shadow(0 18px 22px rgba(0,0,0,.56))}
 .hero-drone-fpv{filter:drop-shadow(0 13px 17px rgba(0,0,0,.52))}
 .hero-drone-thermal{filter:drop-shadow(0 20px 24px rgba(0,0,0,.58))}
}
@media(max-width:700px){
 body::after{opacity:.55;animation-duration:30s}
 .pilot{animation-duration:12s}
 .jr-reveal{transform:translate3d(0,14px,0);transition-duration:.62s}
 :is(.gallery-slide,.film-slide,.thermal-slide,.event-slide,.nature-slide,.astro-slide).is-active img,
 :is(.gallery-slide,.film-slide,.thermal-slide,.event-slide,.nature-slide,.astro-slide).active img{animation-duration:13s}
}
