
/* LL AI v101.0 — premium image wait surface + crisper game */
:root{
  --ll1010-pink:#eb78ac;
  --ll1010-pink-rgb:235,120,172;
  --ll1010-line:rgba(255,255,255,.09);
  --ll1010-text:rgba(255,255,255,.96);
  --ll1010-sub:rgba(255,255,255,.50);
}
.ll16ImageGenRow.freshMessage,.ll16StudioImageWait .ll16ImageGenRow{
  width:min(430px,calc(100% - 18px))!important;max-width:min(430px,calc(100% - 18px))!important;
  margin:10px 0 20px!important
}
.ll16ImageGenCard{
  max-width:430px!important;height:350px!important;min-height:350px!important;max-height:350px!important;
}
.ll16ImageGenSurface{height:294px!important;min-height:294px!important;max-height:294px!important}
.ll16ImageMetaCopy b,.thinkingArtifactTitle{font-size:18px!important;font-weight:620!important}
.ll16ImageMetaCopy small,.thinkingArtifactSub{font-size:12px!important;color:var(--ll1010-sub)!important}
.ll16ImageProgress{font-size:11px!important;color:rgba(255,255,255,.36)!important}

/* Pure loader state: premium dense animated dot field. */
.ll16ImageGenCard:not(.is-game) .ll16DotField{
  left:0!important;top:8px!important;width:336px!important;height:240px!important;overflow:visible!important;
}
.ll16ImageGenCard:not(.is-game) .ll16DotField::before,
.ll16ImageGenCard:not(.is-game) .ll16DotField::after{
  content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;border-radius:50%;
}
.ll16ImageGenCard:not(.is-game) .ll16DotField::before{
  width:210px;height:210px;background:radial-gradient(circle,rgba(var(--ll1010-pink-rgb),.16) 0, rgba(var(--ll1010-pink-rgb),.09) 26%, rgba(var(--ll1010-pink-rgb),.03) 45%, transparent 68%);
  filter:blur(18px);animation:ll1010Glow 4.8s ease-in-out infinite;
}
.ll16ImageGenCard:not(.is-game) .ll16DotField::after{
  width:286px;height:220px;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.04),transparent 62%);
}
.ll1010DotGrid{
  width:322px;height:236px;display:grid;grid-template-columns:repeat(var(--cols,19),1fr);grid-template-rows:repeat(var(--rows,23),1fr);
  align-items:center;justify-items:center;gap:7px 8px;position:relative;z-index:1;animation:ll1010GridDrift 7s ease-in-out infinite;
}
.ll1010DotGrid i{
  width:3.8px;height:3.8px;border-radius:999px;background:rgba(var(--ll1010-pink-rgb),.96);opacity:var(--base,.08);
  box-shadow:0 0 0 transparent;transform:translate3d(0,0,0) scale(.92);will-change:transform,opacity,filter;
  animation:ll1010Pulse 2.35s cubic-bezier(.35,0,.2,1) infinite;
  animation-delay:var(--delay,0s);
}
.ll1010DotGrid i.mid{opacity:var(--base,.16)}
.ll1010DotGrid i.core{box-shadow:0 0 12px rgba(var(--ll1010-pink-rgb),.26),0 0 30px rgba(var(--ll1010-pink-rgb),.12);opacity:var(--base,.55)}
.ll1010DotGrid i.edge{opacity:var(--base,.06)}
@keyframes ll1010Pulse{
  0%,100%{transform:translate3d(0,0,0) scale(.88);opacity:calc(var(--base,.14) * .9);filter:brightness(.92)}
  35%{transform:translate3d(0,-1px,0) scale(1.18);opacity:min(1,calc(var(--base,.14) + .36));filter:brightness(1.15)}
  58%{transform:translate3d(0,0,0) scale(1);opacity:min(1,calc(var(--base,.14) + .14));filter:brightness(1)}
}
@keyframes ll1010GridDrift{50%{transform:translateY(-2px)}}
@keyframes ll1010Glow{50%{transform:translate(-50%,-50%) scale(1.07);opacity:.92}}

.ll24ProgressChip{
  right:8px!important;bottom:10px!important;height:38px!important;min-width:66px!important;padding:0 15px!important;
  border:1px solid var(--ll1010-line)!important;background:rgba(46,47,52,.94)!important;color:var(--ll1010-pink)!important;
  box-shadow:0 6px 18px rgba(0,0,0,.18)!important;font-size:12px!important;font-weight:650!important;
}
.ll24ProgressChip span{display:inline-block;transform:translateY(.5px)}
.ll16ImageGenHint{left:0!important;bottom:17px!important;color:rgba(255,255,255,.42)!important;font-size:11.5px!important}

/* Crisper game state */
.ll16ImageGenCard.is-game{
  height:392px!important;min-height:392px!important;max-height:392px!important;border-radius:26px!important;
  background:linear-gradient(180deg,#12141c 0%,#090b11 100%)!important;box-shadow:0 20px 52px rgba(0,0,0,.34)!important;
}
.ll16ImageGenCard.is-game .ll16ImageGenSurface{height:392px!important;min-height:392px!important;max-height:392px!important}
.ll16ImageGenCard.is-game .ll22GameCanvas{image-rendering:auto!important;filter:none!important}
.ll16ImageGenCard.is-game .ll16GameHud{left:16px!important;top:16px!important;right:60px!important;backdrop-filter:blur(10px)!important}
.ll16ImageGenCard.is-game .ll22GameClose{right:16px!important;top:16px!important}
.ll16ImageGenCard.is-game .ll16ImageGenHint{left:16px!important;bottom:16px!important;backdrop-filter:blur(10px)!important}

@media(max-width:760px){
  .ll16ImageGenRow.freshMessage,.ll16StudioImageWait .ll16ImageGenRow{width:min(392px,calc(100% - 14px))!important;max-width:min(392px,calc(100% - 14px))!important}
  .ll16ImageGenCard{height:336px!important;min-height:336px!important;max-height:336px!important}
  .ll16ImageGenSurface{height:280px!important;min-height:280px!important;max-height:280px!important}
  .ll16ImageGenCard:not(.is-game) .ll16DotField{width:308px!important;height:228px!important}
  .ll1010DotGrid{width:296px;height:220px;gap:6px 7px}
  .ll16ImageGenCard.is-game,.ll16ImageGenCard.is-game .ll16ImageGenSurface{height:364px!important;min-height:364px!important;max-height:364px!important}
}
@media(prefers-reduced-motion:reduce){.ll1010DotGrid,.ll1010DotGrid i,.ll16ImageGenCard:not(.is-game) .ll16DotField::before{animation:none!important}}
