/* AI Tutor loading choreography — canonical flip transplant + real Wrongbook ink overlay. */
.wb-tutor-loading-glyph-layer{
  position:absolute;
  inset:0;
  z-index:13;
  pointer-events:none;
  overflow:hidden;
  contain:layout paint style;
  visibility:hidden;
}
.wb-tutor-loading-glyph-layer.is-active{visibility:visible}
/* Keep the source measurable/eligible after activation while making only its text
 * visually transparent. Glyph color/geometry were cached during idle pre-mount,
 * before this class is applied, so the replacement layer keeps the real ink color. */
.wb-ai-source-hidden{
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
}
.wb-tutor-loading-char{
  position:absolute;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  margin:0;
  padding:0;
  overflow:visible;
  color:inherit;
  background:transparent;
  border:0;
  transform-style:preserve-3d;
  perspective:700px;
  transform-origin:50% 50%;
  pointer-events:none;
  user-select:none;
}
.wb-tutor-loading-glyph{
  position:relative;
  display:block;
  margin:0;
  padding:0;
  white-space:pre;
  text-align:center;
  color:inherit;
  -webkit-text-fill-color:currentColor;
  font:inherit;
  line-height:1;
  text-shadow:none;
  backface-visibility:hidden;
  transform-origin:50% 52%;
  will-change:transform,opacity,filter;
  pointer-events:none;
  user-select:none;
  -webkit-font-smoothing:antialiased;
}
.wb-tutor-loading-char.flipping .wb-tutor-loading-glyph,
.wb-tutor-loading-char.is-flipping .wb-tutor-loading-glyph{
  animation:wbTutorGlyphFlip var(--step,90ms) cubic-bezier(.4,0,.2,1) infinite;
}
@keyframes wbTutorGlyphFlip{
  0%{transform:rotateX(0deg) translateY(0);opacity:1;filter:blur(0)}
  42%{transform:rotateX(72deg) translateY(-.02em);opacity:.28;filter:blur(.5px)}
  50%{transform:rotateX(90deg) translateY(0);opacity:.08;filter:blur(1px)}
  58%{transform:rotateX(-72deg) translateY(.02em);opacity:.28;filter:blur(.5px)}
  100%{transform:rotateX(0deg) translateY(0);opacity:1;filter:blur(0)}
}
.wb-tutor-loading-ink-glow{
  position:absolute;
  z-index:12;
  display:block;
  pointer-events:none;
  user-select:none;
  opacity:1;
  contain:strict;
}
.wb-tutor-loading-ink-glow:not(.is-active){opacity:0}
.v3-paper .v5-tutor-dock{z-index:16}
@media(prefers-reduced-motion:reduce){
  .wb-ai-source-hidden{color:inherit!important;-webkit-text-fill-color:currentColor!important}
  .wb-tutor-loading-glyph-layer,.wb-tutor-loading-ink-glow{display:none!important}
  .wb-tutor-loading-char.flipping .wb-tutor-loading-glyph,
  .wb-tutor-loading-char.is-flipping .wb-tutor-loading-glyph{animation:none!important}
}
