.wwc-loader {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgb(245 248 253 / 72%);
  /* Feedback never intercepts a form, steals focus or blocks navigation. */
  pointer-events: none;
}
.wwc-loader[hidden], .wwc-loader [hidden] { display: none !important; }
.wwc-loader__card {
  box-sizing: border-box;
  width: min(300px, 100%);
  padding: 25px 28px 24px;
  border: 1px solid #e2eaf5;
  border-radius: 24px;
  background: #fff;
  color: #132d50;
  text-align: center;
  font-family: inherit;
  box-shadow: 0 18px 64px rgb(16 47 87 / 12%), 0 3px 12px rgb(16 47 87 / 4%);
}
.wwc-loader__flight { position: relative; width: 144px; height: 112px; margin: 0 auto 14px; }
.wwc-loader__bird {
  position: absolute;
  left: 18px;
  top: 0;
  width: 112px;
  height: 98px;
  object-fit: contain;
  transform-origin: 56% 58%;
  animation: wwc-loader-flight 1.6s ease-in-out infinite;
}
.wwc-loader__shadow {
  position: absolute;
  bottom: 2px;
  left: 43px;
  width: 64px;
  height: 7px;
  border-radius: 50%;
  background: #dae5f5;
  animation: wwc-loader-shadow 1.6s ease-in-out infinite;
}
.wwc-loader__trail, .wwc-loader__trail::before, .wwc-loader__trail::after {
  position: absolute;
  width: 18px;
  height: 2px;
  border-radius: 4px;
  background: #c5d6f0;
}
.wwc-loader__trail { left: 10px; top: 54px; animation: wwc-loader-trail 1.6s ease-in-out infinite; }
.wwc-loader__trail::before { content: ''; top: -10px; left: 6px; width: 12px; }
.wwc-loader__trail::after { content: ''; top: 10px; left: 4px; width: 14px; }
.wwc-loader__brand { display: block; color: #577194; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.wwc-loader .wwc-loader__message { margin: 9px 0 0; color: #132d50; font-size: 16px; line-height: 1.5; font-weight: 600; }
.wwc-loader .wwc-loader__slow { margin: 12px 0 0; color: #536982; font-size: 12px; line-height: 1.6; }
.wwc-loader__progress { width: 76px; height: 3px; margin: 20px auto 0; overflow: hidden; background: #eaf0f8; border-radius: 8px; }
.wwc-loader__progress span { display: block; width: 30px; height: 100%; border-radius: inherit; background: #2455a5; animation: wwc-loader-progress 1.6s ease-in-out infinite; }
.wwc-loader__dismiss { margin: 14px 0 0; padding: 6px; border: 0; background: transparent; color: #2455a5; font: inherit; font-size: 12px; text-decoration: underline; pointer-events: auto; cursor: pointer; }
.wwc-loader__dismiss:focus-visible { outline: 2px solid #2455a5; outline-offset: 3px; border-radius: 4px; }
.wwc-loader-preview { position: fixed; right: 16px; bottom: 16px; z-index: 50; padding: 6px 9px; border: 1px solid #d9e3f1; border-radius: 8px; color: #31517a; background: #fff; font: inherit; font-size: 11px; cursor: pointer; white-space: nowrap; }
@keyframes wwc-loader-flight { 0%, 100% { transform: translate(-2px, 3px) rotate(-4deg); } 50% { transform: translate(3px, -6px) rotate(3deg); } }
@keyframes wwc-loader-shadow { 0%, 100% { transform: scaleX(1); opacity: .8; } 50% { transform: scaleX(.72); opacity: .45; } }
@keyframes wwc-loader-trail { 0%, 100% { transform: translateX(2px); opacity: .2; } 50% { transform: translateX(-7px); opacity: .9; } }
@keyframes wwc-loader-progress { 0%, 100% { transform: translateX(-22px); } 50% { transform: translateX(69px); } }
@media (prefers-reduced-motion: reduce) {
  .wwc-loader *, .wwc-loader *::before, .wwc-loader *::after { animation: none !important; }
  .wwc-loader__trail { display: none; }
  .wwc-loader__progress span { width: 100%; opacity: .6; }
}
@media print { .wwc-loader, .wwc-loader-preview { display: none !important; } }
