/* boot-screen (INBOX 260 part 1): the loading screen index.html shows before the app's code arrives.
   A static file (the content policy allows no inline style).
   fx2-boot-loader (owner 21.10): the logo's «P», centred, is drawn as one continuous
   stroke in the accent; the stroke's length is the real progress (boot.js), over a faint outline of the whole
   letter. Once the editor is painted the letter fills in and the screen fades out (200 ms). Transform,
   opacity and stroke-dashoffset only. Reduced motion: the solid «P» and a thin progress line, nothing moves.
   ma-gsans-default: the caption's face (index.html preloads it) */
@font-face{font-family:'Google Sans';font-weight:400 700;font-display:swap;src:url(/fonts/ui/google-sans/google-sans-latin.woff2)}
@font-face{font-family:'Google Sans';font-weight:400 700;font-display:swap;src:url(/fonts/ui/google-sans/google-sans-cyrillic.woff2)}
.boot {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #f5f5f5;
  color: #db4d28;
  font-family: var(--ui-face, 'Google Sans', 'Inter'), system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
  opacity: 1;
  transition: opacity 120ms ease-out 80ms;
}
.boot[hidden] {
  display: none;
}
.boot.is-out {
  opacity: 0;
  pointer-events: none;
}
/* the «P» in its optically centred square (#brand-mark's box); 1 unit = 2.8 px, the stroke 1.4 px */
.boot-mark {
  display: block;
  width: 56px;
  height: 56px;
  overflow: visible;
  fill: none;
  stroke-width: 0.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 200ms cubic-bezier(0.2, 0, 0, 1);
}
.boot.is-out .boot-mark {
  transform: scale(0.96);
}
/* what is left to draw: the letter's outline, breathing while the network is quiet */
.boot-ghost {
  stroke: #d9d9d9;
  animation: boot-breathe 2400ms ease-in-out infinite;
}
@keyframes boot-breathe {
  50% {
    opacity: 0.45;
  }
}
/* the pen: one path per contour, pathLength 1, so dashoffset = 1 − its share drawn (boot.js); the gap of 2 leaves no dot at 0 */
.boot-pen {
  stroke: currentColor;
  stroke-dasharray: 1 2;
  stroke-dashoffset: 1;
}
.boot-pen path {
  transition: stroke-dashoffset 480ms cubic-bezier(0.2, 0, 0, 1);
}
.boot-ink {
  fill: currentColor;
  opacity: 0;
  transition: opacity 120ms ease-out;
}
.boot.is-out .boot-ink {
  opacity: 1;
}
.boot.is-out .boot-ghost {
  animation: none;
}
.boot-track {
  display: none;
  width: 56px;
  height: 2px;
  margin-top: 16px;
  border-radius: 2px;
  background: #e6e6e6;
  overflow: hidden;
}
.boot-bar {
  height: 100%;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: 0 50%;
}
/* fx2-loader: a quiet line, only once the wait is long (4 s from the first paint; the open's own line: useDocRoute.tsx) */
.boot-caption {
  margin: 16px 0 0;
  min-height: 16px;
  font-size: 11px;
  line-height: 16px;
  font-weight: 450;
  color: rgba(0, 0, 0, 0.55);
  animation: boot-late 160ms ease-out 4s both;
}
@keyframes boot-late {
  0% {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .boot,
  .boot-mark {
    transition: none;
  }
  .boot-ghost,
  .boot-pen {
    display: none;
  }
  .boot-ink {
    opacity: 1;
    transition: none;
  }
  .boot-track {
    display: block;
  }
}
/* fx2-home-legal: index.html's #site-legal, out of sight (a bar while focused); boot.js removes it */
.site-legal {
  position: absolute;
  top: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.site-legal:focus-within {
  position: fixed;
  inset: auto 0 0;
  z-index: 2147483001;
  width: auto;
  height: auto;
  padding: 8px 16px;
  clip-path: none;
  background: #fff;
  font: 450 11px/16px var(--ui-face, 'Google Sans', 'Inter'), system-ui, sans-serif;
  color: rgba(0, 0, 0, 0.55);
}
.site-legal p {
  margin: 0;
}
.site-legal a {
  color: inherit;
}
[data-theme='dark'] .site-legal:focus-within {
  background: #2c2c2c;
  color: rgba(255, 255, 255, 0.7);
}
