/* Карточка чата и анимированный фон (блобы, зерно, спот) */
/* ===== card ===== */
.deck{width:min(1801px,100%);display:flex;gap:16px;align-items:stretch}
.chat{
  position:relative;flex:1 1 1250px;min-width:0;max-width:1250px;height:min(700px,calc(100dvh - 130px));min-height:560px;
  background:var(--card);border:2px solid var(--card-edge);border-radius:24px;overflow:hidden;
  isolation:isolate;
}
.bg{position:absolute;inset:0;background:var(--bg);overflow:hidden;z-index:0}
.bg .base{position:absolute;inset:0;background:
  radial-gradient(120% 90% at 50% 120%,rgba(60,0,10,.55),transparent 60%),
  radial-gradient(80% 60% at 0% 0%,rgba(50,0,8,.6),transparent 70%),#0b0b0c}
.blob{position:absolute;border-radius:50%;mix-blend-mode:plus-lighter;opacity:.6;will-change:transform;
  background:radial-gradient(closest-side,rgba(190,0,30,.85),rgba(120,0,24,.45) 55%,rgba(60,0,12,0) 100%)}
.blob.b1{width:498px;height:283px;right:-190px;bottom:-100px;animation:drift1 22s ease-in-out infinite}
.blob.b2{width:311px;height:177px;right:-84px;bottom:-60px;opacity:.55;animation:drift2 17s ease-in-out infinite}
.blob.b3{width:174px;height:99px;right:-30px;bottom:-24px;mix-blend-mode:overlay;animation:drift1 13s ease-in-out infinite reverse}
.blob.b4{width:498px;height:283px;left:-239px;top:-86px;animation:drift2 26s ease-in-out infinite}
.blob.b5{width:311px;height:177px;left:-146px;top:-33px;opacity:.5;animation:drift1 19s ease-in-out infinite reverse}
@keyframes drift1{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-34px,-18px,0) scale(1.08)}}
@keyframes drift2{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(28px,14px,0) scale(.94)}}
.bg .grain{position:absolute;inset:0;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.bg .topfade{position:absolute;left:0;top:0;width:100%;height:173px;background:linear-gradient(#000 0%,rgba(0,0,0,.55) 45%,rgba(0,0,0,0))}
.bg .spot{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(380px circle at var(--mx,70%) var(--my,60%),rgba(253,0,47,.10),transparent 70%);transition:opacity .4s;opacity:.9}
