/* Shared motion and focus treatment. Artwork keeps its own 3-D transforms. */
:root{--motion-fast:150ms;--motion-normal:240ms;--motion-ease:cubic-bezier(.22,.75,.25,1);--focus-ink:#31765b}
:where(a,button,input,select,textarea,summary,[role=button],[tabindex]){-webkit-tap-highlight-color:transparent}
html body :is(a,button,input,select,textarea,summary,[role=button],[tabindex]):focus-visible{outline:2px solid var(--focus-ink)!important;outline-offset:3px}
html body :is(a,button,summary,[role=button],[tabindex]):focus:not(:focus-visible){outline:none!important}
html body :is(input,select,textarea):focus{outline:none!important;border-color:var(--focus-ink);box-shadow:0 0 0 2px #31765b18}
html body :is(input,select,textarea):focus-visible{outline:2px solid var(--focus-ink)!important;outline-offset:2px}
.passport-home-hero{--focus-ink:#a9d4b8}
:where(button,a,input,select,textarea,summary,[role=button]){transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-normal) ease,opacity var(--motion-fast) ease}
:where(button:not(:disabled),a[href],summary,[role=button]){touch-action:manipulation}
@media(prefers-reduced-motion:no-preference){
 html{scroll-behavior:smooth}
 :is(button,.button,.passport-visa-apply):not(#passport-cover,#home-book-cover):not(:disabled){transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-normal) ease,translate var(--motion-normal) var(--motion-ease),scale var(--motion-fast) var(--motion-ease)}
 :is(button,.button,.passport-visa-apply):not(#passport-cover,#home-book-cover):not(:disabled):active{scale:.98}
 dialog[open]:not(.mobile-nav-drawer){animation:surface-enter 220ms var(--motion-ease) both}
 dialog[open]:not(.mobile-nav-drawer)::backdrop{animation:veil-enter 180ms ease both}
 body>main{animation:page-enter 280ms var(--motion-ease) both}
 @media(hover:hover) and (pointer:fine){
  :is(button,.button,.passport-visa-apply):not(#passport-cover,#home-book-cover):not(:disabled):hover{translate:0 -1px}
  :is(.popular-tile,.season-destination,.place-card){transition:box-shadow var(--motion-normal) ease,translate var(--motion-normal) var(--motion-ease)}
  :is(.popular-tile,.season-destination,.place-card):hover{translate:0 -2px;box-shadow:0 8px 22px #193c3012}
 }
 @view-transition{navigation:auto}
 ::view-transition-old(root){animation:page-out 120ms ease both}
 ::view-transition-new(root){animation:page-enter 240ms var(--motion-ease) both}
 html:active-view-transition body>main{animation:none}
}
@keyframes page-enter{from{opacity:0;translate:0 5px}to{opacity:1;translate:none}}
@keyframes page-out{to{opacity:0}}
@keyframes surface-enter{from{opacity:0;translate:0 8px}to{opacity:1;translate:none}}
@keyframes veil-enter{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}
 @view-transition{navigation:none}
}
