:root{
  --app-transition-ms:280ms;
  --app-transition-ease:cubic-bezier(.22,1,.36,1);
  --app-transition-fade:linear;
}

/* Route motion is deliberately scoped to #route-view in JavaScript.
   Never animate the document root: the atmosphere, header and footer must remain visually locked. */
html[data-app-transitioning="true"]{cursor:progress}
html[data-app-transitioning="true"] body{pointer-events:none}

.app-document-veil{
  position:fixed;
  inset:0;
  z-index:2147483647;
  background:#2E273B;
  opacity:0;
  pointer-events:none;
  will-change:opacity;
}

.app-document-veil[data-tone="paper"]{background:#f5f2ec}

a,button,[role="button"]{-webkit-tap-highlight-color:transparent}

@media(prefers-reduced-motion:reduce){
  :root{--app-transition-ms:1ms}
}
