/* One transparent mascot for every workspace screen. Legacy slots remain a
   fallback until the widget has mounted successfully. */
.buddy-enabled .buddycol,
.buddy-enabled .chk-buddy,
.buddy-enabled .login > .buddybox { display: none; }
.buddy-enabled .grid,
.buddy-enabled .panelgrid,
.buddy-enabled .k15-grid,
.buddy-enabled .chk-grid { grid-template-columns: minmax(0, 1fr); }
.buddy-enabled .k15-grid { max-width: 1100px; margin-inline: auto; }
.buddy-enabled .login { grid-template-columns: 260px 440px; }

.buddy-widget {
  --buddy-size: 112px;
  --buddy-safe-top: env(safe-area-inset-top, 0px);
  --buddy-safe-right: env(safe-area-inset-right, 0px);
  --buddy-safe-bottom: env(safe-area-inset-bottom, 0px);
  --buddy-safe-left: env(safe-area-inset-left, 0px);
  position: fixed;
  left: 0;
  top: 0;
  z-index: 30;
  width: var(--buddy-size);
  height: calc(var(--buddy-size) * 202 / 190);
  background: transparent;
  border: 0;
  padding: 0;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}
.buddy-figure {
  position: absolute;
  left: 0;
  bottom: 0;
  width: var(--buddy-size);
  height: calc(var(--buddy-size) * 202 / 190);
  overflow: visible;
  pointer-events: none;
  touch-action: none;
  cursor: grab;
  animation: turn 12s ease-in-out infinite;
}
/* The transparent SVG rectangle must never intercept the page beneath it. */
.buddy-figure > :is(ellipse, path, circle, text) {
  pointer-events: visiblePainted;
  touch-action: none;
}
.buddy-widget.is-dragging .buddy-figure { cursor: grabbing; animation: none; }
.buddy-figure:focus-visible { outline: 2px solid var(--o); outline-offset: 4px; border-radius: 12px; }
.buddy-instructions { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 900px) {
  .buddy-enabled .login { grid-template-columns: minmax(0, 1fr); }
  .buddy-widget { --buddy-size: 88px; }
}
@media (prefers-reduced-motion: reduce) { .buddy-figure { animation: none; } }
