/* Gray World Activity — shared loading / buffering language.
   The visible orb is the same dotted Thinking Orb language used in Labs. */
.gray-activity{position:fixed;z-index:120;left:50%;top:42%;transform:translate(-50%,-50%) scale(.96);opacity:0;pointer-events:none;transition:opacity .16s ease,transform .22s cubic-bezier(.2,.72,.24,1);filter:drop-shadow(0 14px 28px rgba(0,0,0,.18))}
.gray-activity.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}
.gray-thinking-orb{display:block;width:220px;height:220px;max-width:58vw;max-height:58vw}
.gray-activity-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.gray-activity-inline{min-height:260px;display:grid;place-items:center;color:inherit}
body.gray-activity-blocking #content{pointer-events:none}

/* Existing local loading slots are upgraded in-place to the same canvas orb. */
.world-loading-orbit,.ql-reader-loading i{display:grid!important;place-items:center!important;width:64px!important;height:64px!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;animation:none!important;flex:0 0 64px!important}
.world-books-radar-status .world-loading-orbit,.world-author-lens-loading .world-loading-orbit,.ql-reader-loading i{width:20px!important;height:20px!important;flex:0 0 20px!important}
.world-books-radar-status .gray-thinking-orb,.world-author-lens-loading .gray-thinking-orb,.ql-reader-loading .gray-thinking-orb{width:20px!important;height:20px!important}

/* Initial shell state before the app controller owns the page. */
.gray-activity-bootstrap{min-height:360px;display:grid;place-items:center}

@media(prefers-reduced-motion:reduce){
  .gray-activity,.gray-activity.is-visible{transition:opacity .12s linear;transform:translate(-50%,-50%)}
}
