/* Transitions.dev Thinking states: free recipe adapted to illustrative preview playback. */
.t-think {
  --think-hold: 2000ms;
  --think-swap: 150ms;
  --think-gap: 50ms;
  --think-distance: 8px;
  --think-blur: 2px;
  --think-shimmer: 2000ms;
  --think-base: #9a9a9a;
  --think-highlight: #f5f5f5;
  --think-ease: ease-in-out;
  position: relative;
  display: inline-block;
  text-align: left;
}
/* All labels share one invisible sizing track in the same font as the visible line. */
.t-think-sizer { display: grid; visibility: hidden; white-space: nowrap; }
.t-think-sizer > span { grid-area: 1 / 1; }
.t-think-text {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: block;
  color: var(--think-base);
  white-space: nowrap;
  transform: translateY(0);
  filter: blur(0);
  opacity: 1;
  transition:
    transform var(--think-swap) var(--think-ease),
    filter var(--think-swap) var(--think-ease),
    opacity var(--think-swap) var(--think-ease);
}
.t-think[data-think-state="playing"] .t-think-text { will-change: transform, filter, opacity; }
.t-think-text::before {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(90deg,
    transparent 0%, transparent 40%,
    var(--think-highlight) 50%,
    transparent 60%, transparent 100%);
  background-size: 400% 100%;
  background-repeat: no-repeat;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: t-think-shimmer var(--think-shimmer) linear infinite;
  animation-play-state: paused;
}
.t-think[data-think-state="playing"] .t-think-text::before { animation-play-state: running; }
.t-think:not([data-think-state="playing"]) .t-think-text { transition: none; }
.t-think:not([data-think-state="playing"]) .t-think-text::before { display: none; }
@keyframes t-think-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: 0% 0; }
}
.t-think-text.is-exit {
  transform: translateY(calc(var(--think-distance) * -1));
  filter: blur(var(--think-blur));
  opacity: 0;
}
.t-think-text.is-enter-start {
  transition: none;
  transform: translateY(var(--think-distance));
  filter: blur(var(--think-blur));
  opacity: 0;
}
@media (prefers-reduced-motion: reduce), (forced-colors: active), print {
  .t-think-text { transition: none !important; transform: none !important; filter: none !important; opacity: 1 !important; will-change: auto !important; }
  .t-think-text::before, .t-think-text.is-exit { display: none !important; }
}
@media (forced-colors: active) {
  .t-think-text { color: CanvasText; }
}
@media print {
  .t-think-text { color: #000; }
}
