/* The motion layer is decorative. Content remains visible without JavaScript. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:.22s ease-in both page-exit}
::view-transition-new(root){animation:.48s cubic-bezier(.18,.7,.2,1) both page-enter}
@keyframes page-exit{to{opacity:.55;transform:translateY(-12px)}}
@keyframes page-enter{from{opacity:.35;transform:translateY(20px)}to{opacity:1;transform:none}}

.site-header{position:sticky;top:0;background:rgb(245 241 232 / 96%);backdrop-filter:blur(14px)}
.desktop-nav a{position:relative;transition:color .2s ease}
.desktop-nav a:after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.desktop-nav a:hover:after,.desktop-nav a[aria-current="page"]:after{transform:scaleX(1)}
.reading-line{position:fixed;top:0;left:0;right:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;z-index:100;pointer-events:none}
main [id]{scroll-margin-top:100px}

.route-ticker{overflow:hidden;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);background:var(--red);color:var(--paper);white-space:nowrap}
.route-ticker-track{display:flex;align-items:center;width:max-content;animation:ticker-travel 30s linear infinite}
.route-ticker-track span{display:block;padding:13px 24px;font-size:11px;font-weight:900;letter-spacing:.18em}
.route-ticker-track b{font-weight:400;font-size:15px;padding:0 24px}
@keyframes ticker-travel{to{transform:translateX(-50%)}}

.button span[aria-hidden],.text-link span[aria-hidden],.card-bottom span:last-child{transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.button:hover span[aria-hidden],.text-link:hover span[aria-hidden],.experience-card:hover .card-bottom span:last-child{transform:translate(4px,-4px)}
.experience-card{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,outline-color .35s ease}
.experience-card:after{transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .7s ease}
.experience-card:hover:after,.experience-card.is-current:after{transform:scale(1.18) rotate(13deg);opacity:.45}
.experience-card.is-current{outline:3px solid var(--red);outline-offset:-3px;transform:translateY(-7px);box-shadow:0 18px 38px #172b3525}
.experience-primary.is-current{outline-color:var(--paper)}
.place-visual img{top:-8%;height:116%;transform:translateY(var(--place-shift,0px)) scale(1.02);will-change:transform}

@media(prefers-reduced-motion:no-preference){
  .home-hero .hero-copy>*{animation:editorial-rise .7s cubic-bezier(.16,.72,.26,1) both}
  .home-hero .hero-copy>*:nth-child(2){animation-delay:.1s}
  .home-hero .hero-copy>*:nth-child(3){animation-delay:.22s}
  .home-hero .hero-copy>*:nth-child(4){animation-delay:.32s}
  .home-hero .hero-copy>*:nth-child(5){animation-delay:.42s}
  .inner-hero-grid>div:first-child>*{animation:editorial-rise .65s cubic-bezier(.16,.72,.26,1) both}
  .inner-hero-grid>div:first-child>*:nth-child(2){animation-delay:.12s}
  .inner-hero-grid>div:first-child>*:nth-child(3){animation-delay:.23s}
  .inner-hero-grid>div:first-child>*:nth-child(4){animation-delay:.33s}
  .prices-hero .container>*,.contacts-hero .container>*{animation:editorial-rise .68s cubic-bezier(.16,.72,.26,1) both}
  .prices-hero .container>*:nth-child(2),.contacts-hero .container>*:nth-child(2){animation-delay:.12s}
  .prices-hero .container>*:nth-child(3),.contacts-hero .container>*:nth-child(3){animation-delay:.23s}
  .prices-hero .container>*:nth-child(4){animation-delay:.33s}
  .hero-scene-photo{animation:photo-breathe 17s ease-in-out infinite alternate}
  .hero-reveal{animation:hero-curtain .95s .9s cubic-bezier(.76,0,.24,1) forwards}
  .hero-reveal-mark{animation:hero-mark-launch 1s ease-in-out both}
  .hero-city-inset{animation:photo-unfold .95s .32s cubic-bezier(.2,.75,.2,1) both}
  .hero-scene-caption{animation:editorial-rise .8s .48s cubic-bezier(.16,.72,.26,1) both}
  .hero-trajectory{animation:route-draw 1.4s .6s cubic-bezier(.22,.8,.25,1) both}
  .hero-animated-plane{animation:hero-plane-fly 6.5s ease-in-out infinite alternate}
  .hero-animated-plane .symbol{animation:hero-plane-bank 6.5s ease-in-out infinite alternate}
  .hero-animated-canopy-one{animation:hero-canopy-drop 5.2s ease-in-out infinite alternate}
  .hero-animated-canopy-two{animation:hero-canopy-drop 6.6s -1.8s ease-in-out infinite alternate-reverse}
  .hero-animated-canopy-three{animation:hero-canopy-drop 4.8s -2.4s ease-in-out infinite alternate}
  .hero-an2{animation:an2-over-ivanovo 8s ease-in-out infinite alternate}
  .sky-motion-plane{animation:sky-plane-cross 7s ease-in-out infinite alternate}
  .sky-motion-canopy{animation:hero-canopy-drop 5.6s ease-in-out infinite alternate}
  .jump-option-canopy{animation:jump-canopy-float 5.4s ease-in-out infinite alternate}
  .jump-option:nth-child(2) .jump-option-canopy{animation-delay:-1.7s}
  .jump-option:nth-child(3) .jump-option-canopy{animation-delay:-3.2s}
  .feature-plane{animation:feature-plane-glide 4.8s ease-in-out infinite alternate}
  .feature-card:nth-child(2) .feature-plane{animation-delay:-2s}
  .flight-note-mark{animation:feature-plane-glide 7s ease-in-out infinite alternate}
  .flight-card-more[open] .flight-card-reveal{animation:flight-card-unfold .58s cubic-bezier(.16,.72,.26,1) both}
  .flights-visual>img,.about-visual>img:not(.about-flying-plane),.contacts-hero-photo>img{animation:photo-breathe 14s ease-in-out infinite alternate}
  .flight-route{animation:flight-route-reveal 1.5s .45s ease-out both}
  .has-motion .flight-discovery.motion-target{clip-path:inset(0 0 24% 0);transition:opacity 1s ease,transform 1s cubic-bezier(.16,.72,.26,1),clip-path 1.15s cubic-bezier(.16,.72,.26,1)}
  .has-motion .flight-discovery.motion-target.is-visible{clip-path:inset(0)}
  .has-motion .flight-discovery .feature-card.motion-target{clip-path:inset(0 0 42% 0);transition:opacity .9s ease,transform .9s cubic-bezier(.16,.72,.26,1),clip-path 1.1s cubic-bezier(.16,.72,.26,1)}
  .has-motion .flight-discovery .feature-card.motion-target.is-visible{clip-path:inset(0)}
  .has-motion .motion-target{opacity:0;transform:translateY(30px);transition:opacity .75s ease,transform .75s cubic-bezier(.16,.72,.26,1)}
  .has-motion .motion-target.is-visible,.has-motion .motion-target:focus-within{opacity:1;transform:none}
  .flight-plane{animation:plane-cruise 7s ease-in-out infinite}
  .flight-cloud-one{animation:cloud-drift 12s ease-in-out infinite alternate}
  .flight-cloud-two{animation:cloud-drift 15s ease-in-out -4s infinite alternate-reverse}
}
@keyframes editorial-rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes photo-unfold{from{opacity:.5;clip-path:inset(0 0 100% 0);transform:translateY(28px)}to{opacity:1;clip-path:inset(0);transform:none}}
@keyframes photo-breathe{from{transform:scale(1.01)}to{transform:scale(1.09)}}
@keyframes stamp-float{0%,100%{transform:translate(-50%,-50%) rotate(-10deg)}50%{transform:translate(-50%,-54%) rotate(-2deg)}}
@keyframes plane-cruise{0%,100%{transform:translate(-22px,15px) rotate(-30deg)}50%{transform:translate(34px,-26px) rotate(-20deg)}}
@keyframes cloud-drift{from{transform:translateX(-24px)}to{transform:translateX(34px)}}
@keyframes route-draw{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}
@keyframes hero-plane-fly{from{transform:translate(-35px,22px) rotate(-7deg)}to{transform:translate(44px,-34px) rotate(13deg)}}
@keyframes hero-plane-bank{from{transform:rotate(67deg)}to{transform:rotate(84deg)}}
@keyframes hero-canopy-drop{from{transform:translate(-8px,-39px) rotate(-7deg)}to{transform:translate(10px,43px) rotate(7deg)}}
@keyframes hero-curtain{to{clip-path:inset(0 0 100% 0);visibility:hidden}}
@keyframes hero-mark-launch{from{transform:translateY(60px) rotate(-18deg);opacity:0}to{transform:translateY(0) rotate(11deg);opacity:1}}
@keyframes an2-over-ivanovo{from{transform:translate(-7%,25px) rotate(-5deg)}to{transform:translate(35%,-20px) rotate(4deg)}}
@keyframes sky-plane-cross{from{transform:translate(-16px,18px) rotate(-8deg)}to{transform:translate(92px,-24px) rotate(9deg)}}
@keyframes jump-canopy-float{from{transform:translate(-5px,-6px) rotate(-8deg)}to{transform:translate(8px,16px) rotate(7deg)}}
@keyframes flight-route-reveal{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}
@keyframes feature-plane-glide{from{transform:translate(-18px,12px) rotate(-14deg)}to{transform:translate(24px,-12px) rotate(13deg)}}
@keyframes flight-card-unfold{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(-12px)}to{opacity:1;clip-path:inset(0);transform:none}}

@media(prefers-reduced-motion:no-preference){
  .hero-an2{animation:an2-over-ivanovo 16s linear infinite}
  .hero-scene-photo.hero-scene-photo-second{animation:ivanovo-view-two 24s ease-in-out infinite}
  .hero-scene-photo.hero-scene-photo-third{animation:ivanovo-view-three 24s ease-in-out infinite}
}
@keyframes ivanovo-view-two{0%,27%,67%,100%{opacity:0;transform:scale(1.04) translateX(-2%)}36%,58%{opacity:1;transform:scale(1.12) translateX(2%)}}
@keyframes ivanovo-view-three{0%,59%,100%{opacity:0;transform:scale(1.03) translateX(2%)}70%,91%{opacity:1;transform:scale(1.1) translateX(-2%)}}
@keyframes an2-over-ivanovo{0%{transform:translateX(-140%) translateY(18px) scale(.82) rotate(-5deg)}100%{transform:translateX(165%) translateY(-20px) scale(1.08) rotate(3deg)}}

@media(max-width:700px){.route-ticker-track span{padding:11px 16px;font-size:10px}.route-ticker-track b{padding:0 15px}.experience-card.is-current{transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.01ms!important}
  .route-ticker-track{animation:none}
  .place-visual img{transform:none}
  .experience-card.is-current{transform:none}
  .has-motion .motion-target{opacity:1;transform:none}
  .hero-reveal{display:none}
  .hero-an2,.sky-motion-plane,.sky-motion-canopy,.jump-option-canopy,.feature-plane,.flight-note-mark,.flight-card-reveal,.flights-visual>img,.about-visual>img:not(.about-flying-plane),.contacts-hero-photo>img{animation:none!important}
  .has-motion .flight-discovery.motion-target,.has-motion .flight-discovery .feature-card.motion-target{clip-path:inset(0);transition:none}
}
