/* CUIWordRevealText - mirrors cui_word_reveal_text.dart. Optional loader for a beat (2s), then words appear one per
   interval (120ms); the box height eases (AnimatedSize, 200ms, easeOut = Cubic(0,0,.58,1)) as lines wrap.
   Typography body/lg + text-default. Timing is driven from word_reveal_text.js. */
.cui-word-reveal { display: block; width: 100%; overflow: hidden; --_size: 200;
  transition: height calc(var(--_size) * 1ms / var(--cui-speed, 1)) cubic-bezier(0, 0, 0.58, 1); }
.cui-word-reveal__inner { width: 100%; }
.cui-word-reveal__text { margin: 0; color: var(--cui-color-text-default);
  font-family: var(--cui-type-body-lg-family); font-size: var(--cui-type-body-lg-size); font-weight: var(--cui-type-body-lg-weight);
  letter-spacing: var(--cui-type-body-lg-spacing); line-height: round(up, var(--cui-type-body-lg-line), 1px); }
.cui-word-reveal__loading { display: flex; justify-content: flex-start; padding: var(--cui-space-sm) 0; }

/* demo "thinking" loader (the Dart widget takes any loader; this is the one used by the playground) */
.cui-thinking { display: inline-flex; align-items: center; gap: var(--cui-space-2xs); height: 28px; }
.cui-thinking i { width: 8px; height: 8px; border-radius: var(--cui-radius-pill); background: var(--cui-color-text-brand, currentColor);
  animation: cui-thinking calc(1200ms / var(--cui-speed, 1)) ease-in-out infinite; }
.cui-thinking i:nth-child(2) { animation-delay: calc(150ms / var(--cui-speed, 1)); }
.cui-thinking i:nth-child(3) { animation-delay: calc(300ms / var(--cui-speed, 1)); }
@keyframes cui-thinking { 0%, 80%, 100% { opacity: .25; transform: scale(.7); } 40% { opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .cui-word-reveal { transition: none; } }
