/* Loader-only overrides; the floating lobster helper keeps its own motion. */
.wiesmeier-loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 13px;
  padding: 24px 16px;
  color: #696c68;
  text-align: center;
}
.menu-loading.wiesmeier-loader { min-height: 228px; }
.drawer-loading.wiesmeier-loader { gap: 16px; pointer-events: none; }
.wiesmeier-loader__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.wiesmeier-loader .lobster {
  width: 76px;
  height: 78px;
  max-width: 100%;
  animation: none;
  transform: none;
}
.wiesmeier-loader__brand > img { display: block; width: 112px; height: auto; max-width: 100%; }
.wiesmeier-loader__label {
  font-family: var(--sans, sans-serif);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .035em;
  max-width: 100%;
  overflow-wrap: anywhere;
}
/* Keep the body and eyes still. Paired movement comes from the original paths. */
.wiesmeier-loader .lobster-eye { animation: none; }
.wiesmeier-loader .lobster-antenna-right,
.wiesmeier-loader .lobster-antenna-left {
  transform-box: fill-box;
  transform-origin: 50% 100%;
  animation: wiesmeier-loader-feeler 3.2s ease-in-out infinite;
}
.wiesmeier-loader .lobster-antenna-left {
  animation-name: wiesmeier-loader-feeler-left;
  animation-delay: -.35s;
}
.wiesmeier-loader .lobster-claw-right,
.wiesmeier-loader .lobster-claw-left {
  transform-box: fill-box;
  transform-origin: 50% 12%;
  animation: wiesmeier-loader-claw 3.2s ease-in-out infinite;
}
.wiesmeier-loader .lobster-claw-left {
  animation-name: wiesmeier-loader-claw-left;
  animation-delay: -.3s;
}
.wiesmeier-loader__line {
  display: block;
  position: relative;
  width: 144px;
  max-width: 100%;
  height: 1px;
  overflow: hidden;
  background: #deded8;
}
.wiesmeier-loader__line::after {
  content: "";
  display: block;
  width: 38%;
  height: 100%;
  background: linear-gradient(90deg, transparent, #94191e 40%, #94191e 60%, transparent);
  animation: wiesmeier-loader-line 2.4s cubic-bezier(.45, 0, .35, 1) infinite;
}
@keyframes wiesmeier-loader-feeler {
  0%, 100% { transform: rotate(0); }
  38% { transform: rotate(4deg); }
  70% { transform: rotate(-2deg); }
}
@keyframes wiesmeier-loader-feeler-left {
  0%, 100% { transform: rotate(0); }
  38% { transform: rotate(-4deg); }
  70% { transform: rotate(2deg); }
}
@keyframes wiesmeier-loader-claw {
  0%, 18%, 80%, 100% { transform: rotate(0); }
  46% { transform: rotate(-8deg); }
  62% { transform: rotate(2deg); }
}
@keyframes wiesmeier-loader-claw-left {
  0%, 18%, 80%, 100% { transform: rotate(0); }
  46% { transform: rotate(8deg); }
  62% { transform: rotate(-2deg); }
}
@keyframes wiesmeier-loader-line {
  from { transform: translateX(-110%); }
  to { transform: translateX(370%); }
}
/* app.js removes the menu loader on success/error and sets .loaded on iframe load.
   Stop, rather than merely obscure, animation on completion or dialog close. */
.drawer-frame.loaded .wiesmeier-loader { display: none; }
.drawer-frame.loaded .wiesmeier-loader *,
.drawer-frame.loaded .wiesmeier-loader__line::after,
dialog:not([open]) .wiesmeier-loader *,
dialog:not([open]) .wiesmeier-loader__line::after {
  animation: none;
}
@media (prefers-reduced-motion: reduce) {
  .wiesmeier-loader *, .wiesmeier-loader__line::after { animation: none !important; }
  .wiesmeier-loader__line::after { transform: translateX(82%); }
}
