/* Input feedback never delays a button's action or changes its layout. */
:where(button,summary,[role=button],[role=tab],a[href]){-webkit-tap-highlight-color:transparent;transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,box-shadow 220ms ease,opacity 140ms ease}
button:focus-visible,summary:focus-visible,[role=button]:focus-visible,[role=tab]:focus-visible,a[href]:focus-visible{outline:2px solid var(--seasonal-orange,rgb(var(--accent-rgb,47 211 122)));outline-offset:3px}
.sky-press-animating{will-change:scale}
.sky-button-feedback{outline:2px solid var(--sky-text,#eee)!important;outline-offset:2px}
.sky-click-ring{position:fixed;z-index:2147483646;pointer-events:none;overflow:hidden;contain:strict;color:var(--sky-text,#eee)}
.sky-click-ring i{position:absolute;display:block;background:radial-gradient(circle,currentColor 0%,currentColor 42%,transparent 72%);border-radius:50%;pointer-events:none;will-change:scale,opacity}
@media(prefers-reduced-motion:reduce){html:not([data-reduce-motion=false]) .sky-click-ring{display:none!important}html:not([data-reduce-motion=false]) :is(button,summary,[role=button],[role=tab],a[href]){transition:none!important}}
html[data-reduce-motion=true] .sky-click-ring{display:none!important}
html[data-reduce-motion=true] :is(button,summary,[role=button],[role=tab],a[href]){transition:none!important}

/* Panels enter once when opened; live aircraft positions are never animated by this layer. */
:where(input,select,textarea,[role=tab],.sky-nav-button){transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,box-shadow 180ms ease}
.sky-flight-progress-fill,.world-progress-fill,#sni-progress>span{transition:width 600ms cubic-bezier(.2,.75,.25,1)}
:where(.sky-flight-symbol,.world-toolbar button svg,.sky-mobile-dock button svg){transition:color 180ms ease,opacity 180ms ease}
@media(hover:hover) and (pointer:fine){
 :where(.sky-nav-button,[role=tab],.world-toolbar button,.sky-mobile-dock button):hover{box-shadow:inset 0 0 0 1px var(--sky-border,#555)}
 :where(input,select,textarea):focus{box-shadow:0 0 0 2px rgb(var(--accent-rgb,47 211 122)/.18)}
}
/* Deliberate, visible feedback in both themes; no permanent animation loop. */
:where(summary)::marker{color:var(--sky-muted,#aaa)}
:where(input[type=checkbox],input[type=radio]){accent-color:var(--sky-text,#eee)}
@media(hover:hover) and (pointer:fine){
 :where(button,summary,[role=tab],.sky-nav-button):not(:disabled):hover{filter:brightness(1.14)}
 :where(.sky-nav-button,.world-toolbar button,.sky-mobile-dock button):hover>svg{translate:0 -2px}
}
:where(.sky-nav-icon,.world-toolbar button svg,.sky-mobile-dock button svg){transition:translate 220ms ease,color 180ms ease}
/* Modern WebViews keep a closing dialog visible for its fade without delaying
   close(), focus restoration, cleanup or a button's action. Older engines close
   normally and still receive the JS opening/press animations. */
@supports(transition-behavior:allow-discrete){
 dialog{transition:opacity 220ms ease,translate 300ms cubic-bezier(.34,1.56,.64,1),display 300ms allow-discrete,overlay 300ms allow-discrete}
 dialog:not([open]){opacity:0;translate:0 20px;pointer-events:none}
 dialog[open]{opacity:1;translate:0 0}
 dialog::backdrop{transition:opacity 180ms ease,display 180ms allow-discrete,overlay 180ms allow-discrete}
 dialog:not([open])::backdrop{opacity:0;pointer-events:none}
}
html[data-reduce-motion=true] dialog,html[data-reduce-motion=true] dialog::backdrop{transition:none!important;translate:none!important}
@media(prefers-reduced-motion:reduce){html:not([data-reduce-motion=false]) dialog,html:not([data-reduce-motion=false]) dialog::backdrop{transition:none!important;translate:none!important}}
html[data-reduce-motion=true] :is(.sky-nav-icon,.world-toolbar button svg,.sky-mobile-dock button svg){translate:none!important;transition:none!important}
html[data-reduce-motion=true] #sni-progress>span{transition:none!important}
@media(prefers-reduced-motion:reduce){html:not([data-reduce-motion=false]) :is(.sky-nav-icon,.world-toolbar button svg,.sky-mobile-dock button svg){translate:none!important;transition:none!important}html:not([data-reduce-motion=false]) #sni-progress>span{transition:none!important}}
html[data-reduce-motion=true] :is(input,select,textarea,[role=tab],.sky-nav-button,.sky-flight-progress-fill,.world-progress-fill,.sky-flight-symbol,.world-toolbar button svg,.sky-mobile-dock button svg){transition:none!important}
@media(prefers-reduced-motion:reduce){html:not([data-reduce-motion=false]) :is(input,select,textarea,[role=tab],.sky-nav-button,.sky-flight-progress-fill,.world-progress-fill,.sky-flight-symbol,.world-toolbar button svg,.sky-mobile-dock button svg){transition:none!important}}
