/* beauty-deal — «Сцена + стекло» (Саша 20.10: «сцена з А мені подобається, але віджет заповненості з третього»)
   Раздача за рейкбек как театральная сцена: при входе свет зала гаснет, сверху бьёт точечный прожектор PokerDot,
   бортик стола загорается красным неоном; итог — стеклянная HUD-панель с двойным кантом (как виджет очков),
   процент — большая белая цифра с красным подсветом, шкала — тонкая неоновая нить; кнопки — капсулы хаба.
   Раскладка (сукно, колода, слоты, высоты банка/панели/кнопки) и шаги сдачи не меняются — на них садится 3D-полёт.
   Цвета: почти чёрный, красный #D71921 как свет, белый и серые. Шрифт — Play. */
#device-host .fr-deal[data-v3]{--s-out:cubic-bezier(.22,1,.36,1);--s-pop:cubic-bezier(.2,1.4,.4,1)}

/* ═══════════ СЦЕНА: свет под картами ═══════════ */
/* прежний мягкий свет на самом сукне снят — теперь свет живёт в .frd-stage.
   Смело 20.10 (п. 5): ::after сукна — «заплатка» на знак PokerDot (4 точки) в центре green.png: знак лежит под картами рук,
   его белые диски торчат рядом с картой и читаются как грязь. Только на 2D-сукне и только после data-open
   (последний кадр полёта = сукно как есть): зона знака за 400 мс затягивается тем же сукном чуть темнее, пока ложатся карты.
   Геометрия — как у картинки сукна (1080×2160, center 46%/cover): знак — круг r≈140 вокруг (540, 1125) */
.fr-deal[data-v3]>.fr-felt::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s ease;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1080' height='2160' viewBox='0 0 1080 2160'%3E%3CradialGradient id='a' cx='540' cy='1125' r='196' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%2346aa73'/%3E%3Cstop offset='.5' stop-color='%2343a670'/%3E%3Cstop offset='.7' stop-color='%2340a46e' stop-opacity='.97'/%3E%3Cstop offset='.84' stop-color='%233ea46d' stop-opacity='.6'/%3E%3Cstop offset='1' stop-color='%233ba26b' stop-opacity='0'/%3E%3C/radialGradient%3E%3Ccircle cx='540' cy='1125' r='196' fill='url(%23a)'/%3E%3C/svg%3E") center 46%/cover no-repeat}
.fr-deal[data-v3][data-open]>.fr-felt::after{opacity:1}
/* шапка без своей тёмной подложки — источник прожектора виден над ней, как на экране рейкбека */
#device-host .fr-deal[data-v3] .pd-route-header{background:none!important}
/* Смело 20.10 (п. 1): стопка слоёв — сукно → 3D-полёт → свет сцены → интерфейс. Свет и шапка с банком
   лежат над 3D-холстом, поэтому могут загореться ещё в конце полёта (data-lit), до передачи в 2D */
#device-host .fr-deal[data-v3]>.frd-stage{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
#device-host .fr-deal[data-v3]>.frd-3d{z-index:0}
/* Смело 20.10 (QA, п. 2): зал гаснет (frd-dim из friday-deal.css) не с монтированием раздачи, а когда первый кадр
   3D-полёта уже на экране (data-dim ставит friday-deal.js). До этого раздача прозрачна: хаб под ней не тускнеет,
   и первый кадр полёта совпадает с ним, а не «вспыхивает» поверх потемневшего экрана */
#device-host .fr-deal[data-v3][data-three]:not([data-dim]){background-color:transparent;animation:none}
#device-host .fr-deal[data-v3] .frd-stage :is(.frd-vig,.frd-spot,.frd-pool,.frd-beam,.frd-rays){position:absolute;inset:0;display:block}
#device-host .fr-deal[data-v3] .frd-spot{will-change:opacity}
/* свет зала погашен: края сукна и пол уходят в темноту, внизу — темнее (там стекло итога) */
#device-host .fr-deal[data-v3] .frd-vig{background:
  radial-gradient(ellipse 62% 38% at 50% 41%,#0000 0%,#0000 30%,#0000009e 70%,#000000e6 100%),
  linear-gradient(180deg,#00000099 0%,#0000 16%,#0000 52%,#000000bf 80%,#000000eb 100%)}
/* пятно прожектора на сукне — вокруг карт */
#device-host .fr-deal[data-v3] .frd-pool{background:
  radial-gradient(ellipse 44% 24% at 50% 46%,#ffffff24 0%,#ffffff0d 50%,#fff0 76%),
  radial-gradient(ellipse 30% 9% at 50% 33%,#ffffff14,#fff0 72%);mix-blend-mode:screen}
/* Смело 20.10 (п. 6): ОДНА ЛАМПА на хабе и в раздаче — общие токены --pd-lamp-* (beauty-hub.css, на #device-host),
   подключение как у .rbh-beam/.rbh-rays хаба: вершина на 8 px ниже шапки (104 px), у вершины 110 px, к низу
   (--pd-lamp-h) во всю ширину, шаг точек 6 px, та же яркость. Заголовок в темноте, свет падает на банк и сукно.
   Запасные значения = значения токенов (если beauty-hub.css вдруг не подключён) */
#device-host .fr-deal[data-v3] .frd-stage :is(.frd-beam,.frd-rays){inset:auto 0;top:var(--pd-lamp-y,112px);height:var(--pd-lamp-h,300px);
  -webkit-clip-path:var(--pd-lamp-clip,polygon(calc(50% - 55px) 0,calc(50% + 55px) 0,100% 100%,0 100%));
  clip-path:var(--pd-lamp-clip,polygon(calc(50% - 55px) 0,calc(50% + 55px) 0,100% 100%,0 100%))}
#device-host .fr-deal[data-v3] .frd-beam{background:var(--pd-lamp-haze,radial-gradient(ellipse 70px 30px at 50% 0,#ffffff66,transparent 75%),linear-gradient(180deg,#ffffff30,#ffffff12 45%,transparent 90%))}
#device-host .fr-deal[data-v3] .frd-rays{background:var(--pd-lamp-dots,radial-gradient(circle,rgb(255 255 255 / .65) .9px,transparent 1.45px) 50% 0/6px 6px);
  -webkit-mask-image:var(--pd-lamp-mask,linear-gradient(180deg,#000,transparent 60%));mask-image:var(--pd-lamp-mask,linear-gradient(180deg,#000,transparent 60%))}
/* неон бортика по контуру стола: тонкая линия и отсвет на глянцевом полу */
#device-host .fr-deal[data-v3] .frd-rim{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 3px #ff3b47) drop-shadow(0 0 10px #d7192199)}
#device-host .fr-deal[data-v3] .frd-rim path{fill:none;vector-effect:non-scaling-stroke;stroke-linejoin:round}
#device-host .fr-deal[data-v3] .frd-rim-line{stroke:#ff4651;stroke-width:1.4px}
#device-host .fr-deal[data-v3] .frd-rim-glow{stroke:#d71921;stroke-width:7px;opacity:.28}
/* пока сдаём — прожектор в полсилы, на итоге — на полную */
#device-host .fr-deal[data-v3] :is(.frd-pool,.frd-beam,.frd-rays,.frd-rim){transition:opacity 1s ease}
#device-host .fr-deal[data-v3]:not([data-done]) .frd-pool{opacity:.7}
/* лампа (луч и точки) — всегда в полную силу, как на хабе: на стыке экранов она одна и та же */
#device-host .fr-deal[data-v3]:not([data-done]) .frd-rim{opacity:.7}
/* вход: пока летит камера, света нет (первый кадр 2D = последний кадр 3D); потом зал гаснет
   и прожектор «зажигается» короткой театральной дрожью */
#device-host .fr-deal[data-v3]:not([data-open]) .frd-stage{opacity:0}
@keyframes frd-s-house{from{opacity:0}}
@keyframes frd-s-strike{0%{opacity:0}10%{opacity:.8}17%{opacity:.1}29%{opacity:.95}40%{opacity:.4}54%{opacity:1}100%{opacity:1}}
@keyframes frd-s-out{0%{opacity:1}14%{opacity:.15}28%{opacity:.85}42%{opacity:.1}56%{opacity:.4}100%{opacity:0}}
#device-host .fr-deal[data-v3][data-open] .frd-vig{animation:frd-s-house .9s ease-out .05s backwards}
#device-host .fr-deal[data-v3][data-open] .frd-spot{animation:frd-s-strike 1.1s cubic-bezier(.3,0,.2,1) .3s backwards}
/* без WebGL сукно раскрывается из окна (до ~1,1 с) — свет ждёт, пока раскроется */
#device-host .fr-deal[data-v3][data-from]:not([data-three])[data-open] .frd-vig{animation-delay:.35s}
#device-host .fr-deal[data-v3][data-from]:not([data-three])[data-open] .frd-spot{animation-delay:.5s}
/* Смело 20.10 (п. 1): с 3D — без мёртвой паузы в конце полёта и без вспышки бортика в кадре передачи.
   С 70 % полёта (data-lit, onProgress) свет сцены, неон бортика, шапка и банк загораются за ~350 мс (ease-out):
   2D-бортик принимает эстафету у гаснущего 3D-бортика (тот гаснет на 70–92 %), к концу полёта сцена уже «на сцене».
   На data-open свет не зажигается заново — он уже горит */
#device-host .fr-deal[data-v3][data-lit] .frd-stage{opacity:1;transition:opacity .36s cubic-bezier(.2,.55,.45,1)}
#device-host .fr-deal[data-v3][data-lit] :is(.frd-vig,.frd-spot){animation:none}
#device-host .fr-deal[data-v3][data-lit]:not([data-open]) :is(.pd-route-header,.frd-top){opacity:1;transition:opacity .36s cubic-bezier(.2,.55,.45,1)}
/* «Забрать»: прожектор гаснет (короткое мигание), зал остаётся тёмным — действие уходит в «Кошелёк» */
#device-host .fr-deal[data-v3][data-open][data-flight] .frd-spot{animation:frd-s-out .5s linear both}

/* ═══════════ Колода, слоты, сдача (движение — в JS) ═══════════ */
.fr-deal[data-v3] .frd-deck::before{content:"";position:absolute;z-index:-1;left:-6px;right:-6px;bottom:-9px;height:16px;border-radius:50%;background:radial-gradient(closest-side,#000000b8,#0000 100%);pointer-events:none}
.fr-deal[data-v3] .frd-deck::after{content:"";position:absolute;z-index:-1;inset:0;border-radius:5px;transform:translate(-1px,4px) rotate(-3deg);background:#0c0d10;box-shadow:inset 0 0 0 1px #ffffff12,0 1px 0 #2a2d33,0 2px 0 #18191d,0 3px 0 #101114,0 4px 0 #0a0b0d;pointer-events:none}
.fr-deal[data-v3] .frd-slot-bg{border-radius:7px;background:radial-gradient(circle,#ffffff38 1px,transparent 1.5px) 0 0/6px 6px,linear-gradient(180deg,#ffffff08,#00000014);box-shadow:inset 0 0 0 1px #ffffff1c,inset 0 1px 0 #ffffff14,inset 0 -10px 18px #0000002e;opacity:.55}
.fr-deal[data-v3] .frd-card{--hd:calc((var(--o,0) + 1) * 70ms)}
.fr-deal[data-v3] .frd-own-card{--o:-1}
.fr-deal[data-v3][data-ready] .frd-deal-card{transition:opacity .45s ease,filter .6s ease calc(.15s + var(--settle,0ms)),translate .6s cubic-bezier(.2,1.4,.4,1) calc(.2s + var(--hd) + var(--settle,0ms))}
.fr-deal[data-v3] .frd-deal-card .fr-card-flip{transition:none;box-shadow:0 1px 0 #ffffff14 inset,0 10px 18px #000000a8,0 2px 4px #00000080}
.fr-deal[data-v3] .frd-lift{position:absolute;inset:4% 6%;border-radius:8px;box-shadow:0 24px 26px #000000a6,0 10px 12px #0000005c;opacity:0;pointer-events:none}
.fr-deal[data-v3] .frd-sheen{position:absolute;top:0;bottom:0;left:-200%;width:300%;opacity:0;pointer-events:none;background:linear-gradient(100deg,#fff0 0,#fff0 40%,#ffffffe0 45.5%,#fff0 50%,#0a0c1024 51%,#0a0c1042 100%)}
/* итог: карты комбинации поднимаются по очереди в красном ореоле, остальные уходят в тень сцены */
.fr-deal[data-v3] .frd-card::after{inset:-3px;border-radius:9px;box-shadow:0 0 0 1.5px #ff3b47,0 0 0 4px #d719212b,0 0 18px 2px #d71921a6,0 18px 30px -8px #d71921b8;opacity:0;transform:scale(1.1);transition:opacity .2s ease,transform .2s ease}
.fr-deal[data-v3][data-done] .frd-card[data-hit]::after{opacity:1;transform:none;transition:opacity .5s ease calc(.22s + var(--hd) + var(--settle,0ms)),transform .7s cubic-bezier(.22,1,.36,1) calc(.22s + var(--hd) + var(--settle,0ms))}
.fr-deal[data-v3][data-done] .frd-deal-card[data-hit]{transform:none}
.fr-deal[data-v3][data-done] .frd-slot--hole>.frd-deal-card[data-hit]{transform:rotate(4deg)}
.fr-deal[data-v3][data-done] .frd-own-card[data-hit]{transform:rotate(-5deg)}
.fr-deal[data-v3][data-done] .frd-card[data-hit]{translate:0 -8px}
.fr-deal[data-v3] .frd-own-card{transition:transform .45s cubic-bezier(.25,.8,.25,1),filter .6s ease calc(.15s + var(--settle,0ms)),translate .6s cubic-bezier(.2,1.4,.4,1) calc(.2s + var(--hd) + var(--settle,0ms))}
.fr-deal[data-v3][data-done] .frd-deal-card:not([data-hit]){filter:brightness(.36) saturate(.5)}

/* подписи под картами — как титр сцены «● ТВОЯ КАРТА»: без капсулы, разрядка, у своей карты — красный огонёк.
   Коробка подписи та же (по ней строится раскладка), видимый титр рисуется поверх по центру */
.fr-deal[data-v3] .frd-label{position:relative;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:#0000!important}
.fr-deal[data-v3] .frd-label::after{content:attr(data-t);content:attr(data-t) / "";position:absolute;left:50%;top:2px;transform:translateX(-50%);white-space:nowrap;font:700 10px/16px var(--pd-font,'Play',sans-serif);letter-spacing:.14em;text-transform:uppercase;color:#8e8e98;text-shadow:0 1px 6px #000,0 0 2px #000}
.fr-deal[data-v3] .frd-label--me::after{padding-left:13px;color:#e6e8ec;background:radial-gradient(circle,#ff3b47 0 2.6px,#ff3b4766 3.2px,#fff0 5px) 0 50%/10px 10px no-repeat}
/* Смело 20.10 (п. 7): вторая карта открылась — её подпись тоже белая с красным огоньком (обе карты «твои»):
   переход 300 мс в момент, когда карта разворачивается лицом (~0,6 с после сдачи) */
@property --frd-dot{syntax:'<number>';inherits:false;initial-value:0}
.fr-deal[data-v3] .frd-label:not(.frd-label--me)::after{--frd-dot:0;
  background:radial-gradient(circle,rgb(255 59 71/var(--frd-dot)) 0 2.6px,rgb(255 59 71/calc(var(--frd-dot) * .4)) 3.2px,#ff3b4700 5px) 0 50%/10px 10px no-repeat;
  transition:color .3s ease .6s,padding-left .3s ease .6s,--frd-dot .3s ease .6s}
.fr-deal[data-v3] .frd-label[data-on]::after{--frd-dot:1;padding-left:13px;color:#e6e8ec}

/* ═══════════ R-банк (21.10, было «Рейкбек банк»): маленькая стеклянная плашка в семье виджета ═══════════ */
.fr-deal[data-v3] .frd-bank{position:relative;isolation:isolate;height:34px;gap:9px;padding:0 15px 0 5px;border-radius:999px;
  background:linear-gradient(180deg,#16181dd9,#0a0b0ef2 70%);
  box-shadow:inset 0 0 0 1px #ffffff1c,inset 0 1px 0 #ffffff2e,0 0 0 1px #000000b3,0 12px 26px -10px #000;
  -webkit-backdrop-filter:blur(12px) saturate(1.3);backdrop-filter:blur(12px) saturate(1.3);
  font:700 10px/14px var(--pd-font,'Play',sans-serif);letter-spacing:.18em;color:#a1a7b2;
  transition:box-shadow .6s ease,color .6s ease}
/* внутренний кант */
.fr-deal[data-v3] .frd-bank::after{content:"";position:absolute;inset:3px;z-index:-1;border-radius:inherit;box-shadow:inset 0 0 0 1px #ffffff0d;pointer-events:none}
/* красный подсвет под плашкой, когда в банке появилась сумма */
.fr-deal[data-v3] .frd-bank::before{content:"";position:absolute;z-index:-2;inset:-14px -24px;border-radius:999px;background:radial-gradient(50% 50% at 50% 50%,#d7192159,#d7192100 72%);opacity:0;transform:scale(.8);transition:opacity .7s ease,transform .9s cubic-bezier(.22,1,.36,1);pointer-events:none}
.fr-deal[data-v3] .frd-bank[data-on]{color:#d9dce1;box-shadow:inset 0 0 0 1px #ff3b4773,inset 0 1px 0 #ff8a9047,0 0 0 1px #000000b3,0 0 22px #d7192166,0 12px 26px -10px #000}
.fr-deal[data-v3] .frd-bank[data-on]::before{opacity:1;transform:none}
.fr-deal[data-v3] .frd-bank[data-empty]{color:#a1a7b2;box-shadow:inset 0 0 0 1px #ffffff1c,inset 0 1px 0 #ffffff2e,0 0 0 1px #000000b3,0 12px 26px -10px #000;transition-delay:.5s}
.fr-deal[data-v3] .frd-bank[data-empty]::before{opacity:0;transform:scale(.8);transition-delay:.45s}
/* сумма — белая цифра с красным подсветом, как цифры виджета */
.fr-deal[data-v3] .frd-bank>b{font:700 17px/20px var(--pd-font,'Play',sans-serif);letter-spacing:0;font-variant-numeric:tabular-nums;color:#fff;transition:color .6s ease,text-shadow .6s ease}
.fr-deal[data-v3] .frd-bank[data-on]>b{text-shadow:0 0 14px #ff3b4799}
.fr-deal[data-v3] .frd-bank[data-empty]>b{color:#8e8e98;text-shadow:none;transition-delay:.6s}
.fr-deal[data-v3] .frd-bank-fx{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}
.fr-deal[data-v3] .frd-bank-fx::before{content:"";position:absolute;top:0;bottom:0;left:0;width:36%;background:linear-gradient(100deg,#fff0,#ffffff38 50%,#fff0);transform:translateX(-120%) skewX(-14deg)}
.fr-deal[data-v3] .frd-bank[data-on]:not([data-empty]) .frd-bank-fx::before{animation:frd-s-sweep .9s cubic-bezier(.4,0,.2,1) .3s backwards}
@keyframes frd-s-sweep{from{transform:translateX(-120%) skewX(-14deg)}to{transform:translateX(330%) skewX(-14deg)}}
/* фишка казино — та же, что на экране рейкбека (её выбрал Саша); 21.10 — с буквой «R» (R-фишка).
   Смело 20.10 (п. 9): копия один в один, ЗЕРКАЛО фишки хаба —
   · рисунок = SVG из RbChip (js/friday-hub.js): ребро, красная лицевая сторона, 6 белых вставок на ободе, объём,
     светлый кант, тёмное ядро с красным кантом, пунктирное кольцо #ff9ca2/.5;
   · свечение = box-shadow у #device-host .rbh-chip (css/beauty-hub.css), пересчитанное через --chip (там 80 px).
   Поменяли фишку хаба (RbChip / .rbh-chip) — поменяйте и здесь: .frd-bank-chip (банк) и .frd-fly-chip (полёт в «Кошелёк») */
.fr-deal[data-v3] .frd-bank-chip,#device-host .frd-fly-chip{--chip:24px;box-sizing:border-box;width:var(--chip);height:var(--chip);padding:0;border:0;border-radius:50%;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cdefs%3E%3CradialGradient id='f' cx='50%25' cy='28%25' r='78%25'%3E%3Cstop offset='0' stop-color='%23ff4651'/%3E%3Cstop offset='.55' stop-color='%23d71921'/%3E%3Cstop offset='1' stop-color='%23990c14'/%3E%3C/radialGradient%3E%3CradialGradient id='c' cx='50%25' cy='26%25' r='82%25'%3E%3Cstop offset='0' stop-color='%23520c12'/%3E%3Cstop offset='.62' stop-color='%231c0509'/%3E%3Cstop offset='1' stop-color='%230d0305'/%3E%3C/radialGradient%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='.3'/%3E%3Cstop offset='.4' stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='.66' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='.34'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='40' cy='42.2' r='37' fill='%234a060b'/%3E%3Ccircle cx='40' cy='40' r='37' fill='url(%23f)'/%3E%3Ccircle cx='40' cy='40' r='33' fill='none' stroke='%23f6f7f9' stroke-width='7.2' stroke-dasharray='9.6 24.96' transform='rotate(-96 40 40)'/%3E%3Ccircle cx='40' cy='40' r='37' fill='url(%23g)'/%3E%3Ccircle cx='40' cy='40' r='36.5' fill='none' stroke='%23ffc2c6' stroke-opacity='.45' stroke-width='.8'/%3E%3Ccircle cx='40' cy='40' r='28.8' fill='%234f060c'/%3E%3Ccircle cx='40' cy='40' r='27.3' fill='url(%23c)' stroke='%23ff5a63' stroke-width='1.1'/%3E%3Ccircle cx='40' cy='40' r='22.6' fill='none' stroke='%23ff9ca2' stroke-opacity='.5' stroke-width='.9' stroke-dasharray='2.3 2.43'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  box-shadow:0 calc(var(--chip) * .0875) calc(var(--chip) * .175) calc(var(--chip) * -.05) #000d,0 0 calc(var(--chip) * .275) calc(var(--chip) * .025) #d7192166,0 0 0 calc(var(--chip) * .075) #0b0c0f4d,0 0 0 calc(var(--chip) * .0825) #ff3b4730}
.fr-deal[data-v3] .frd-bank-chip{position:relative;flex:none}
/* у летящих фишек буквы нет: они кувыркаются ребром, и «R» на обороте читается как «Я» */
#device-host .frd-fly-chip::after{content:none}
.fr-deal[data-v3] .frd-bank-chip::after{content:"R";position:absolute;inset:0;display:grid;place-items:center;
  font:700 calc(var(--chip) * .42)/1 var(--pd-font,'Play',sans-serif);letter-spacing:0;color:#fff;text-shadow:0 0 4px #ff3b47,0 1px 1px #000}
.fr-deal[data-v3] .frd-bank[data-on] .frd-bank-chip{animation:frd-s-chip 1s cubic-bezier(.22,1,.36,1) .15s backwards}
.fr-deal[data-v3] .frd-bank[data-empty] .frd-bank-chip{animation:frd-s-chip-out .7s cubic-bezier(.22,1,.36,1) .3s backwards}
@keyframes frd-s-chip{from{transform:rotate(-320deg) scale(.7)}60%{transform:rotate(8deg) scale(1.12)}}
@keyframes frd-s-chip-out{40%{transform:rotate(160deg) scale(1.15)}to{transform:rotate(360deg)}}

/* ═══════════ ИТОГ: стеклянная HUD-панель с двойным кантом (как виджет очков) ═══════════ */
.fr-deal[data-v3] .frd-panel{border-radius:26px;border-color:#ffffff1c;
  background:linear-gradient(180deg,#16181dcc,#0a0b0ef0 70%);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);
  box-shadow:inset 0 1px 0 #ffffff2e,0 0 0 1px #000000b3,0 30px 50px -18px #000,0 -10px 40px -20px #d7192166;
  transition:box-shadow .8s ease}
/* внутренний кант и красный свет в углу (вместо прежней маски-точек) */
.fr-deal[data-v3] .frd-panel::before{inset:5px;border-radius:21px;background:radial-gradient(70% 90% at 100% 0%,#d7192129,#d7192100 60%);-webkit-mask:none;mask:none;opacity:1;box-shadow:inset 0 0 0 1px #ffffff0f;transition:none}
/* дот-матрица в углу панели (гаснет к центру) */
.fr-deal[data-v3] .frd-panel-head::before{content:"";position:absolute;inset:5px;z-index:-1;border-radius:21px;pointer-events:none;
  background:radial-gradient(circle,#ff6b7333 .9px,#ff6b7300 1.5px) 100% 0/7px 7px;
  -webkit-mask-image:radial-gradient(90% 120% at 100% 0%,#000,#0006 40%,#0000 70%);
  mask-image:radial-gradient(90% 120% at 100% 0%,#000,#0006 40%,#0000 70%)}
/* световые рейки на канте: красный отрезок сверху слева и снизу справа; к итогу — ярче */
.fr-deal[data-v3] .frd-panel::after{content:"";position:absolute;inset:0;left:0;right:0;top:0;height:auto;z-index:1;border-radius:inherit;pointer-events:none;
  background:
    linear-gradient(90deg,#ff3b4700,#ff3b47 20%,#ffc2c6 50%,#ff3b47 80%,#ff3b4700) 30px 0/92px 1.5px no-repeat,
    linear-gradient(90deg,#ff3b4700,#ff3b47 30%,#ff3b47 70%,#ff3b4700) calc(100% - 30px) 100%/64px 1.5px no-repeat;
  filter:drop-shadow(0 0 4px #ff3b47);box-shadow:none;opacity:.5;transform:none;transition:opacity .8s ease .15s}
.fr-deal[data-v3][data-done] .frd-panel::after{opacity:1}
/* красный кикер с огоньком, как титр сцены */
.fr-deal[data-v3] .frd-kicker{display:inline-flex;align-items:center;gap:8px;font:700 11px/16px var(--pd-font,'Play',sans-serif);letter-spacing:.18em;color:#ff5a62;text-shadow:0 0 10px #d7192199}
.fr-deal[data-v3] .frd-kicker::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:#ff3b47;box-shadow:0 0 0 2px #d7192140,0 0 8px #ff3b47}
/* «Зачислено» — стеклянная пилюля, белый текст и красный огонёк (без зелёного) */
#device-host .fr-deal[data-v3] .frd-panel-head>.pd-pill{height:24px;gap:7px;padding:0 11px 0 9px;background:#ffffff0d;box-shadow:inset 0 0 0 1px #ffffff2e,inset 0 1px 0 #ffffff1f;color:#fff;letter-spacing:.16em;animation:frd-s-pop .5s var(--s-pop) backwards}
#device-host .fr-deal[data-v3] .frd-panel-head>.pd-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:#ff3b47;box-shadow:0 0 6px #ff3b47}
@keyframes frd-s-pop{from{opacity:0;transform:scale(.6)}}

/* скрытая для глаз строка — для экранного диктора (буквы ему не читаем по одной) */
.fr-deal[data-v3] .frd-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* подпись шага во время сдачи — проявляется заново на каждом шаге.
   Смело 20.10 (п. 4): это титр сцены, как «● ТВОЯ КАРТА»: чёткий белый, заглавные, разрядка .12em, ~20 px,
   перед ним мигает красный огонёк. Без размытия — размытие проявления осталось только у названия комбинации.
   Строка одна (длинную подпись friday-deal.js чуть уменьшает), высота строки та же 36 px — панель не растёт */
.fr-deal[data-v3] .frd-name[data-wait]{display:inline-flex;align-items:center;gap:11px;flex:0 0 auto;white-space:nowrap;
  font:700 20px/36px var(--pd-font,'Play',sans-serif);letter-spacing:.12em;text-transform:uppercase;color:#fff;text-shadow:0 1px 8px #000;
  animation:frd-s-cap .4s var(--s-out,cubic-bezier(.22,1,.36,1)) backwards}
.fr-deal[data-v3] .frd-name[data-wait]::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:#ff3b47;box-shadow:0 0 0 2px #d7192140,0 0 8px #ff3b47;
  animation:frd-s-blink 1.2s ease-in-out infinite}
@keyframes frd-s-cap{from{opacity:0;transform:translateY(5px)}}
@keyframes frd-s-blink{50%{opacity:.25;box-shadow:0 0 0 2px #d7192100,0 0 2px #ff3b4700}}
/* название комбинации — крупно, буквы поднимаются из размытия, на миг вспыхивая красным */
.fr-deal[data-v3] .frd-name:not([data-wait]){animation:none;color:#fff;white-space:nowrap;min-width:0;flex:0 1 auto}
/* строка итога — ровно та же высота, что и раньше (55 px): панель не растёт, стол не сдвигается */
.fr-deal[data-v3][data-done] .frd-result{height:55px;min-height:0}
.fr-deal[data-v3] .frd-name .frd-w{display:inline-block;white-space:nowrap}
.fr-deal[data-v3] .frd-name .frd-ch{display:inline-block;animation:frd-s-ch .7s cubic-bezier(.22,1,.36,1) calc(.05s + var(--i) * 40ms) backwards}
@keyframes frd-s-ch{0%{opacity:0;transform:translateY(.42em) scale(.94);filter:blur(6px);text-shadow:0 0 0 #ff3b4700}45%{opacity:1;filter:blur(0);text-shadow:0 0 18px #ff3b47cc}100%{text-shadow:0 0 0 #ff3b4700}}
/* процент — главная цифра: белая с розовым низом и красным подсветом, «%» — красный, как «XP» у виджета */
.fr-deal[data-v3][data-done] .frd-rate{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:5px;flex:none;
  font:700 58px/46px var(--pd-font,'Play',sans-serif);letter-spacing:-.02em;font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,#fff 30%,#ffd9db 72%,#ff8f96);-webkit-background-clip:text;background-clip:text;color:#0000;
  filter:drop-shadow(0 0 18px #d7192166);transform-origin:100% 85%;animation:frd-s-rate 1.75s cubic-bezier(.22,1,.36,1) .1s both}
.fr-deal[data-v3][data-done] .frd-rate small{font-size:17px;line-height:1;letter-spacing:.1em;color:#ff5a62;-webkit-text-fill-color:#ff5a62}
@keyframes frd-s-rate{0%{opacity:0;transform:translateY(8px);filter:drop-shadow(0 0 0 #ff3b4700)}12%{opacity:1;transform:none}56%{transform:scale(1);filter:drop-shadow(0 0 26px #ff3b47e6)}63%{transform:scale(1.06)}78%{transform:scale(1)}100%{transform:none;filter:drop-shadow(0 0 18px #d7192166)}}
/* шкала 0–100 % — та же тонкая неоновая нить, что у миссий/виджета: коробка 10 px (раскладка), линия 3 px */
.fr-deal[data-v3] .frd-meter{border-radius:3px;background:linear-gradient(#ffffff17,#ffffff17) 0 50%/100% 3px no-repeat;box-shadow:none;overflow:visible}
.fr-deal[data-v3] .frd-meter>i{top:3.5px;bottom:3.5px;border-radius:3px;overflow:hidden;transition:none;
  background:linear-gradient(90deg,#8f0f16,#D71921 50%,#ff4d58);box-shadow:0 0 10px #ff3b47,0 0 24px #d71921b3}
/* огонёк на конце */
.fr-deal[data-v3] .frd-meter>i::before{content:"";position:absolute;right:0;top:0;width:18px;height:100%;border-radius:3px;background:linear-gradient(90deg,#fff0,#fff);box-shadow:0 0 10px #ff3b47,0 0 4px #fff}
/* один блик по готовности */
.fr-deal[data-v3] .frd-meter>i::after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(90deg,#fff0,#ffffffcc,#fff0);transform:translateX(-120%);opacity:0}
.fr-deal[data-v3][data-done] .frd-meter>i{animation:frd-s-fill 1s cubic-bezier(.33,1,.68,1) .15s both}
.fr-deal[data-v3][data-done] .frd-meter>i::after{animation:frd-s-sheen .8s cubic-bezier(.4,0,.2,1) 1.2s both}
@keyframes frd-s-fill{from{clip-path:inset(-14px 100% -14px -14px)}to{clip-path:inset(-14px -14px -14px -14px)}}
@keyframes frd-s-sheen{0%{transform:translateX(-120%);opacity:1}100%{transform:translateX(280%);opacity:1}}
/* фраза — спокойная цитата под линией: тонкая красная черта слева, по словам после того, как процент встал */
.fr-deal[data-v3] .frd-phrase{position:relative;padding-left:14px;font:400 14px/20px var(--pd-font,'Play',sans-serif);letter-spacing:.01em;color:#8e8e98}
.fr-deal[data-v3] .frd-phrase::before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:2px;border-radius:2px;background:linear-gradient(180deg,#ff3b47,#d7192100);box-shadow:0 0 8px #d7192180;opacity:.5;transition:opacity .6s ease}
.fr-deal[data-v3] .frd-phrase[data-done]{color:#dfe2e7;animation:none}
.fr-deal[data-v3] .frd-phrase[data-done]::before{opacity:1}
.fr-deal[data-v3] .frd-phrase .frd-wd{display:inline-block;animation:frd-s-word .6s cubic-bezier(.22,1,.36,1) calc(1s + var(--i) * 32ms) backwards}
@keyframes frd-s-word{from{opacity:0;transform:translateY(8px);filter:blur(4px)}}

/* ═══════════ Кнопки — семья CTA хаба: красная капсула со светом изнутри и мягким свечением; вторичная — контур ═══════════ */
#device-host .fr-deal[data-v3] .frd-footer .pd-btn{position:relative;isolation:isolate;overflow:visible;border:0;border-radius:12px;background:transparent;box-shadow:none;
  font:700 15px/20px var(--pd-font,'Play',sans-serif);letter-spacing:.14em;color:#fff;text-shadow:0 1px 1px #5c070c80;
  transition:transform .18s cubic-bezier(.2,.8,.2,1),filter .18s ease;-webkit-tap-highlight-color:transparent}
#device-host .fr-deal[data-v3] .frd-footer .pd-btn::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;
  background:
    linear-gradient(105deg,#fff0 38%,#ffffff4d 50%,#fff0 62%) -160% 0/60% 100% no-repeat,
    radial-gradient(120% 140% at 50% -30%,#ff5a6380,#ff5a6300 55%),
    linear-gradient(180deg,#ef2733 0%,#d71921 52%,#b0111a 100%);
  box-shadow:inset 0 1px 0 #ffffff5c,inset 0 -2px 0 #6e0a1059,inset 0 0 0 1px #ff6b7340,0 2px 4px #000a}
/* свечение под капсулой — на краю сцены */
#device-host .fr-deal[data-v3] .frd-footer .pd-btn::before{content:"";position:absolute;left:8%;right:8%;top:30%;bottom:-10px;z-index:-2;border-radius:50%;pointer-events:none;background:#d71921;filter:blur(18px);opacity:.55}
#device-host .fr-deal[data-v3][data-done] .frd-footer .pd-btn:not(.pd-btn--secondary){animation:frd-s-btn .7s cubic-bezier(.22,1,.36,1) .35s backwards}
#device-host .fr-deal[data-v3][data-done]:not([data-flight]) .frd-footer .pd-btn:not(.pd-btn--secondary)::after{animation:frd-s-cta-sheen 1.2s cubic-bezier(.45,0,.2,1) 1.45s}
/* Смело 20.10 (п. 10): «Забрать» проявляется на месте, без сдвига и размытия — поверх «гнезда» ушедшей кнопки */
@keyframes frd-s-btn{from{opacity:0;transform:scale(.97)}}
@keyframes frd-s-cta-sheen{from{background-position:-160% 0,0 0,0 0}to{background-position:260% 0,0 0,0 0}}
/* «Пропустить анимацию» — призрачная капсула: тонкий контур, стекло, без заливки и свечения */
#device-host .fr-deal[data-v3] .frd-footer .pd-btn--secondary{color:#d9dce1;text-shadow:none}
#device-host .fr-deal[data-v3] .frd-footer .pd-btn--secondary::after{background:linear-gradient(180deg,#ffffff0d,#ffffff03);box-shadow:inset 0 0 0 1px #ffffff2e,inset 0 1px 0 #ffffff1a,0 0 0 1px #000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
#device-host .fr-deal[data-v3] .frd-footer .pd-btn--secondary::before{content:none}
#device-host .fr-deal[data-v3] .frd-footer .pd-btn:active:not(:disabled){transform:scale(.98);filter:brightness(1.1)}
/* Смело 20.10 (п. 10): «Пропустить» → «Забрать» — место кнопки не пустеет ни на кадр (иначе под панелью выглядывает
   красная дуга бортика): на data-done под новой кнопкой ещё ~0,5 с держится та же призрачная капсула («гнездо»),
   «Забрать» проявляется поверх неё, потом гнездо тихо уходит. Коробка гнезда = коробка кнопки (подвал 12/16/30, высота 52) */
#device-host .fr-deal[data-v3] .frd-footer::before{content:"";position:absolute;left:16px;right:16px;top:12px;bottom:30px;border-radius:12px;pointer-events:none;opacity:0;
  background:linear-gradient(180deg,#ffffff0d,#ffffff03),#0a0b0ee6;box-shadow:inset 0 0 0 1px #ffffff2e,inset 0 1px 0 #ffffff1a,0 0 0 1px #000000b3;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
#device-host .fr-deal[data-v3][data-done]:not([data-flight]) .frd-footer::before{animation:frd-s-socket 1.1s linear both}
@keyframes frd-s-socket{0%,45%{opacity:1}100%{opacity:0}}
/* Смело 20.10 (п. 2): нажатие «Забрать» — капсула сжимается до .96 с красной вспышкой свечения (120 мс),
   потом опускается на 16 px и гаснет (220 мс) — с той же надписью, без серого «выключенного» вида;
   док выезжает уже после этого (ниже) */
/* движение и прозрачность — разными кривыми: вниз с разгоном, гаснет сразу (док поднимается уже над пустым местом) */
@keyframes frd-s-press{0%{transform:none;animation-timing-function:cubic-bezier(.2,.8,.2,1)}35%{transform:scale(.96);animation-timing-function:cubic-bezier(.55,0,.8,.4)}100%{transform:translateY(16px) scale(.96)}}
@keyframes frd-s-press-o{0%,35%{opacity:1;animation-timing-function:cubic-bezier(.2,.6,.3,1)}100%{opacity:0}}
@keyframes frd-s-flare{0%{opacity:.55;transform:none;animation-timing-function:cubic-bezier(.2,.8,.2,1)}35%{opacity:1;transform:scale(1.15,1.6)}100%{opacity:.4;transform:scale(1.05,1.2)}}
#device-host .fr-deal[data-v3][data-flight] .frd-footer,#device-host .fr-deal[data-v3][data-from][data-open][data-flight] .frd-footer{opacity:1;pointer-events:none}
#device-host .fr-deal[data-v3][data-done][data-flight] .frd-footer .pd-btn:not(.pd-btn--secondary){animation:frd-s-press .34s both,frd-s-press-o .34s both;color:#fff!important;filter:none}
#device-host .fr-deal[data-v3][data-done][data-flight] .frd-footer .pd-btn:not(.pd-btn--secondary)::before{animation:frd-s-flare .34s both}
/* вспышка и на самой капсуле: красный ореол вокруг и чуть светлее заливка в момент нажатия */
@keyframes frd-s-flare-b{35%{filter:brightness(1.18);box-shadow:inset 0 1px 0 #ffffff80,inset 0 -2px 0 #6e0a1059,inset 0 0 0 1px #ff8a9080,0 0 0 2px #ff3b4773,0 0 26px 6px #ff3b47b3}}
#device-host .fr-deal[data-v3][data-done][data-flight] .frd-footer .pd-btn:not(.pd-btn--secondary)::after{animation:frd-s-flare-b .34s cubic-bezier(.2,.8,.2,1) both}
/* док «Кошелька» выезжает снизу целиком (translateY 100% → 0) за 0,7 с, через 150 мс после нажатия — к моменту,
   когда фишки долетают (~1,1 с), он уже на месте и им есть куда лететь (JS целится в его конечное положение) */
@keyframes frd-s-dock{from{transform:translateY(100%)}to{transform:none}}
html[data-rb-claim] #device-host .pd-bottom-dock{animation:frd-s-dock .7s cubic-bezier(.2,.8,.2,1) .15s both}
/* Смело 20.10 (п. 8): «Назад» в шапке раздачи — 36×36 (33×33 на 375): зона нажатия +6 px от внешнего края со всех сторон
   (у кнопки кант 1 px, отсчёт ::after — от внутреннего края, поэтому -7px): 48×48 на 402, 44,4×44,4 на 375 */
#device-host .fr-deal .pd-route-back::after{content:"";position:absolute;inset:-7px;border-radius:16px}

/* ═══════════ Вход с экрана рейкбека: блоки проявляются лесенкой ═══════════ */
.fr-deal[data-v3][data-from][data-open] .frd-top{transition-delay:.05s}
.fr-deal[data-v3][data-from][data-open] .frd-deck{transition-delay:.1s}
.fr-deal[data-v3][data-from][data-open] .frd-panel{transition-delay:.14s}
.fr-deal[data-v3][data-from][data-open] .frd-label{transition-delay:.18s}
.fr-deal[data-v3][data-from][data-open] .frd-footer{transition-delay:.22s}
.fr-deal[data-v3][data-from] :is(.frd-panel,.frd-footer){transition:opacity .5s ease,transform .7s cubic-bezier(.22,1,.36,1),box-shadow .8s ease}
/* на «Забрать» подвал без задержки входа (саму кнопку ведёт frd-s-press выше) */
.fr-deal[data-v3][data-flight] .frd-footer,.fr-deal[data-v3][data-from][data-open][data-flight] .frd-footer{transition:opacity .22s ease 0s}

/* ═══════════ «Забрать»: свет собирается в банке, фишки казино и сумма летят в «Кошелёк» ═══════════ */
/* вспышка на банке и кольцо */
#device-host .frd-bflash{position:absolute;z-index:88;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,#ffffffd9 0,#ffd2d580 14%,#ff3b4766 30%,#d7192100 68%);pointer-events:none;mix-blend-mode:screen}
#device-host .frd-bring{position:absolute;z-index:88;width:60px;height:60px;border-radius:50%;box-shadow:0 0 0 1.5px #fff,0 0 12px 2px #ff3b47b3,inset 0 0 10px #ff3b4780;pointer-events:none}
#device-host .frd-bring--2{width:52px;height:52px;box-shadow:0 0 0 1px #ff3b47,0 0 8px #ff3b4799}
/* сам банк в момент выстрела вспыхивает белым и красным */
@keyframes frd-s-bank-burst{0%{transform:none}14%{transform:scale(1.07);box-shadow:inset 0 0 0 1.5px #fff,inset 0 1px 0 #fff,0 0 0 1px #000000b3,0 0 26px 6px #ff3b47,0 0 70px 14px #d7192199}100%{transform:none}}
.fr-deal[data-v3][data-flight] .frd-bank{animation:frd-s-bank-burst .75s cubic-bezier(.22,1,.36,1) .36s backwards}
/* сумма — красная капсула, как кнопка */
#device-host .frd-fly-sum{position:absolute;z-index:90;padding:6px 13px;border-radius:999px;
  background:radial-gradient(120% 140% at 50% -30%,#ff7a8299,#ff7a8200 55%),linear-gradient(180deg,#f02a36,#b3121a);
  color:#fff;font:700 15px/18px var(--pd-font,'Play',sans-serif);letter-spacing:.02em;font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 1px 1px #5c070c;
  box-shadow:inset 0 1px 0 #ffffff66,inset 0 0 0 1px #ff8a9066,0 0 0 1px #000000a6,0 10px 24px #000000b3,0 0 22px #ff3b47b3;pointer-events:none;will-change:transform,opacity}
/* фишки (оформление — общее с фишкой банка выше: зеркало фишки хаба) */
#device-host .frd-fly-chip{--chip:22px;position:absolute;z-index:89;pointer-events:none;will-change:transform,opacity}
#device-host .frd-fly-trail{position:absolute;z-index:88;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle,#ffd2d5 0,#ff3b47a6 35%,#d7192100 70%);pointer-events:none;will-change:transform,opacity}
/* удар в «Кошелёк»: белое ядро, красные кольца и искры */
#device-host .frd-flash{position:absolute;z-index:91;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle,#ffffffcc 0,#ff8a9066 22%,#d7192133 44%,#d7192100 70%);pointer-events:none}
#device-host .frd-ring{position:absolute;z-index:92;width:46px;height:46px;border-radius:50%;box-shadow:0 0 0 2px #ff3b47,0 0 14px 2px #d71921b3,inset 0 0 10px #ff3b4766;pointer-events:none}
#device-host .frd-ring--2{width:38px;height:38px;box-shadow:0 0 0 1px #ffffffcc,0 0 8px #ff3b4799}
#device-host .frd-spark{position:absolute;z-index:92;width:4px;height:4px;border-radius:50%;background:#ff6b73;box-shadow:0 0 6px 1px #ff3b47;pointer-events:none}
#device-host .frd-spark--w{background:#fff;box-shadow:0 0 6px 1px #ff8a90}
/* штамп «+$X» над «Кошельком»: тёмное стекло, двойной красный кант, белая цифра с красным подсветом */
#device-host .frd-plus{position:absolute;z-index:93;padding:6px 13px;border-radius:12px;
  background:linear-gradient(180deg,#1d0a0cf2,#0a0b0ef7);
  box-shadow:inset 0 0 0 1px #ff3b47,inset 0 0 0 3px #0a0b0e,inset 0 0 0 4px #ff3b4766,inset 0 1px 0 #ffffff33,0 0 0 1px #000000b3,0 10px 24px #000000cc,0 0 22px #d7192199;
  color:#fff;font:700 18px/20px var(--pd-font,'Play',sans-serif);letter-spacing:.02em;font-variant-numeric:tabular-nums;white-space:nowrap;
  text-shadow:0 0 12px #ff3b47cc,0 0 2px #ff8a90;pointer-events:none}
/* оттиск штампа: контур расходится от места удара */
#device-host .frd-plus::after{content:"";position:absolute;inset:-3px;border-radius:15px;box-shadow:0 0 0 1.5px #ff3b47,0 0 10px #ff3b47b3;animation:frd-s-stamp .55s cubic-bezier(.22,1,.36,1) .13s both;pointer-events:none}
@keyframes frd-s-stamp{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.32,1.6)}}
/* «Кошелёк» на миг загорается белым с красным свечением — это ведёт JS (анимации элементов меню) */
/* Смело 20.10 (п. 3): уход — не растворение поверх хаба (двойная экспозиция), а «свет погас»: за 200 мс всё на сцене
   уходит в чёрное — сукно, бортик, прожектор, карты с ореолом, стекло, шапка. Сама раздача остаётся непрозрачной
   (#050607), пока её не снимут: хаб под ней не просвечивает ни в одном кадре, он зажигается уже сам */
#device-host .fr-deal[data-v3][data-closing]{opacity:1;filter:none;transform:none;background-color:#050607;transition:none;pointer-events:none}
#device-host .fr-deal[data-v3][data-closing]>*{opacity:0!important;transition:opacity .2s cubic-bezier(.4,0,.9,.6) 0s!important}

/* ═══════════ 21.10: R-банк — раздача на весь банк, выплата = % комбинации, остаток сгорает ═══════════ */
/* банк полон с первого кадра: цифра R-фишек белая, «R» после числа — красная мелкая */
.fr-deal[data-v3] .frd-bank{padding-right:17px}
.fr-deal[data-v3] .frd-bank>b{display:inline-block;text-align:right}
/* черта по низу плашки: слева доля выплаты (белый→красный), справа — то, что сгорит (тёмно-красная) */
.fr-deal[data-v3] .frd-bank-split{position:absolute;left:18px;right:18px;bottom:4px;height:1.5px;pointer-events:none}
.fr-deal[data-v3] .frd-bank-split>i{position:absolute;top:0;bottom:0;border-radius:1px;opacity:0;transform:scaleX(0);transition:opacity .5s ease,transform .8s cubic-bezier(.22,1,.36,1)}
.fr-deal[data-v3] .frd-bank-split>i:first-child{left:0;width:var(--p);transform-origin:0 50%;background:linear-gradient(90deg,#ff3b47,#fff);box-shadow:0 0 6px #ff3b47}
.fr-deal[data-v3] .frd-bank-split>i:last-child{left:calc(var(--p) + 3px);right:0;transform-origin:0 50%;background:#7a0d14;box-shadow:0 0 4px #d7192166}
.fr-deal[data-v3] .frd-bank[data-on] .frd-bank-split>i{opacity:1;transform:none;transition-delay:.9s}
.fr-deal[data-v3] .frd-bank[data-on] .frd-bank-split>i:last-child{transition-delay:1.05s}
/* «Забрать»: доля выплаты уходит вместе с полётом */
.fr-deal[data-v3] .frd-bank[data-empty] .frd-bank-split>i:first-child{opacity:0;transform:scaleX(0);transform-origin:0 50%;transition:opacity .3s ease .38s,transform .46s cubic-bezier(.4,0,.2,1) .38s}
/* остаток горит: черта справа налево накаляется и выгорает */
.fr-deal[data-v3] .frd-bank[data-burn] .frd-bank-split>i:last-child{animation:frd-s-burn-line .62s cubic-bezier(.4,0,.6,1) both}
@keyframes frd-s-burn-line{0%{background:#ff3b47;box-shadow:0 0 8px #ff3b47;clip-path:inset(-6px -6px -6px -6px)}
  100%{background:#ff3b47;box-shadow:0 0 8px #ff3b47;clip-path:inset(-6px 100% -6px -6px)}}
/* фронт горения: раскалённая красная полоса проходит по плашке справа налево */
.fr-deal[data-v3] .frd-bank-fx::after{content:"";position:absolute;top:0;bottom:0;left:0;width:34%;opacity:0;
  background:linear-gradient(90deg,#0a0b0e00,#5c070c66 30%,#ff3b47b3 62%,#ffd2d5cc 72%,#ff3b4700);transform:translateX(300%)}
.fr-deal[data-v3] .frd-bank[data-burn] .frd-bank-fx::after{animation:frd-s-burn-front .66s cubic-bezier(.45,0,.55,1) both}
@keyframes frd-s-burn-front{0%{opacity:0;transform:translateX(300%)}12%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateX(-110%)}}
/* число раскаляется, потом остывает до серого «0 R» */
.fr-deal[data-v3] .frd-bank[data-burn]>b{animation:frd-s-burn-num .7s ease both}
@keyframes frd-s-burn-num{0%{color:#fff;text-shadow:0 0 14px #ff3b4799}30%{color:#ffd2d5;text-shadow:0 0 10px #ff3b47,0 0 22px #d71921cc}100%{color:#6e717a;text-shadow:none}}
/* красный жар под плашкой вспыхивает и гаснет */
.fr-deal[data-v3] .frd-bank[data-burn]::before{animation:frd-s-burn-glow .8s ease-out both}
@keyframes frd-s-burn-glow{0%{opacity:.4;transform:none}25%{opacity:1;transform:scale(1.06)}45%{opacity:.7}60%{opacity:.9}100%{opacity:0;transform:scale(.85)}}
/* угли (JS кладёт их в #device-host): красные, раскалённые розово-белые и тёмный пепел — без золота */
#device-host .frd-ember{position:absolute;z-index:89;width:4px;height:4px;border-radius:50%;background:#ff3b47;box-shadow:0 0 5px 1px #d71921;pointer-events:none;will-change:transform,opacity}
#device-host .frd-ember--hot{width:3px;height:3px;background:#ffd2d5;box-shadow:0 0 4px 1px #ff3b47,0 0 10px 2px #d7192199}
#device-host .frd-ember--ash{width:3px;height:3px;border-radius:1px;background:#3a3c42;box-shadow:none}

/* Саша 21.10: итог — три шага по порядку: ① комбинация → ② выигрыш, % банка → ③ это в деньгах.
   Бюджет высоты тот же, что раньше (панель 189 px на итоге): шапка 24 + ① 30 + ②③ 54 + фраза 2 строки 34 и отступы —
   стол над панелью не сдвигается. Кикеры всех трёх шагов одинаковые: красные, с номером в кружке */
.fr-deal[data-v3] .frd-kicker[data-n]::before,.fr-deal[data-v3] .frd-n{content:attr(data-n);box-sizing:border-box;flex:none;display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;
  background:#d7192126;box-shadow:inset 0 0 0 1px #ff3b47,0 0 8px #d7192166;font:700 9px/1 var(--pd-font,'Play',sans-serif);letter-spacing:0;font-style:normal;color:#fff;text-shadow:none}
/* ① название комбинации — во всю строку */
.fr-deal[data-v3][data-done] .frd-result{height:30px;min-height:0;margin-top:2px;align-items:center}
.fr-deal[data-v3][data-done] .frd-name{font-size:26px;line-height:30px}
/* ②→③: две колонки со стрелкой между ними, над ними тонкий разделитель от ① */
.fr-deal[data-v3] .frd-win{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);height:54px;margin-top:9px}
.fr-deal[data-v3] .frd-win::before{content:"";position:absolute;left:0;right:0;top:-5px;height:1px;background:linear-gradient(90deg,#ffffff24,#ffffff08 70%,#fff0)}
.fr-deal[data-v3] .frd-step{display:flex;flex-direction:column;min-width:0}
.fr-deal[data-v3] .frd-step--pay{align-items:flex-end;text-align:right}
.fr-deal[data-v3] .frd-step-k{display:inline-flex;align-items:center;gap:7px;height:16px;font:700 10px/16px var(--pd-font,'Play',sans-serif);letter-spacing:.16em;text-transform:uppercase;color:#ff5a62;text-shadow:0 0 10px #d7192199;white-space:nowrap;
  animation:frd-s-word .5s cubic-bezier(.22,1,.36,1) backwards}
.fr-deal[data-v3] .frd-step--pct .frd-step-k{animation-delay:.1s}
.fr-deal[data-v3] .frd-step--pay .frd-step-k{animation-delay:.8s}
/* ② процент — главная цифра шага, рядом «%» и «банка» */
.fr-deal[data-v3][data-done] .frd-win .frd-rate{justify-content:flex-start;gap:4px;margin-top:2px;font-size:36px;line-height:28px;transform-origin:0 85%}
.fr-deal[data-v3][data-done] .frd-win .frd-rate small{font-size:18px;letter-spacing:0}
.fr-deal[data-v3][data-done] .frd-win .frd-rate em{margin-left:3px;font:700 10px/1 var(--pd-font,'Play',sans-serif);font-style:normal;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:#a1a7b2;-webkit-text-fill-color:#a1a7b2}
/* шкала 0–100 % — та же неоновая нить, теперь под процентом */
.fr-deal[data-v3] .frd-meter.frd-meter--in{display:block;position:relative;height:3px;margin-top:5px;border-radius:3px;background:#ffffff17}
.fr-deal[data-v3] .frd-meter--in>i{position:absolute;left:0;top:0;bottom:0}
/* стрелка ②→③ на уровне цифр */
.fr-deal[data-v3] .frd-step-arrow{position:relative;align-self:start;height:28px;margin-top:20px;animation:frd-s-word .5s cubic-bezier(.22,1,.36,1) .7s backwards}
.fr-deal[data-v3] .frd-step-arrow::before{content:"";position:absolute;left:3px;right:6px;top:50%;height:1.5px;background:linear-gradient(90deg,#ff3b4700,#ff3b47);box-shadow:0 0 6px #d71921}
.fr-deal[data-v3] .frd-step-arrow::after{content:"";position:absolute;right:5px;top:50%;width:6px;height:6px;border-top:1.5px solid #ff3b47;border-right:1.5px solid #ff3b47;transform:translateY(-50%) rotate(45deg)}
/* ③ сумма в деньгах — белая цифра с красным подсветом (размер подбирает JS по итоговой сумме) */
.fr-deal[data-v3] .frd-pay{display:block;margin-top:2px;font:700 30px/28px var(--pd-font,'Play',sans-serif);letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;color:#fff;text-shadow:0 0 14px #ff3b47b3;
  animation:frd-s-pop .5s var(--s-pop,cubic-bezier(.2,1.4,.4,1)) .85s backwards;transform-origin:100% 60%}
/* фраза — маленькой строкой под шагами, не больше двух строк */
.fr-deal[data-v3] .frd-phrase[data-done]{min-height:34px;max-height:34px;margin-top:6px;overflow:hidden;font-size:13px;line-height:17px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
/* Саша 21.10: подписи «Твоя карта» / «Вторая карта» под картами убраны — коробки остаются (раскладка и посадка 3D те же) */
.fr-deal[data-v3] .frd-label{visibility:hidden}

@media(prefers-reduced-motion:reduce){
  .fr-deal[data-v3] :is(.frd-ch,.frd-wd,.frd-name,.frd-rate,.frd-meter>i,.frd-meter>i::after,.frd-bank-chip,.frd-bank-fx::before,.frd-bank-fx::after,.frd-bank-split>i,.frd-pay,.frd-step-k,.frd-step-arrow,.pd-pill){animation:none!important}
  #device-host .fr-deal[data-v3] :is(.frd-vig,.frd-spot){animation:none!important}
  #device-host .fr-deal[data-v3][data-flight] .frd-spot{opacity:0}
  #device-host .fr-deal[data-v3] .frd-footer .pd-btn,#device-host .fr-deal[data-v3] .frd-footer .pd-btn::after{animation:none!important}
  .fr-deal[data-v3] .frd-card,.fr-deal[data-v3] .frd-card::after{transition:none!important}
  #device-host .fr-deal[data-v3][data-done][data-flight] .frd-footer .pd-btn:not(.pd-btn--secondary){animation:none!important;opacity:0}
  #device-host .fr-deal[data-v3] .frd-footer::before{animation:none!important;opacity:0}
  html[data-rb-claim] #device-host .pd-bottom-dock{animation:none}
}

/* Саша 21.10: после раздачи фразы нет — строка схлопывается, панель держит прежний низ */
.fr-deal[data-v3] .frd-phrase[data-off]{display:none}

/* Саша 26.10: карты коллекции нет — обе карты руки обычные, сдаются из колоды рубашкой вверх и открываются.
   Первая лежит с наклоном влево (как раньше карта игрока), вторая — вправо */
.fr-deal[data-v3] .frd-slot--hole.frd-slot--first>.frd-slot-bg{transform:rotate(-5deg)}
.fr-deal[data-v3] .frd-slot--hole.frd-slot--first>.frd-deal-card[data-dealt=true]{transform:rotate(-5deg)}
.fr-deal[data-v3][data-done] .frd-slot--hole.frd-slot--first>.frd-deal-card[data-hit]{transform:rotate(-5deg)}

/* метка талисмана под итогом: маленькая 2D-статуэтка и «Потолок твоего талисмана: до N %» */
.fr-deal[data-v3] .frd-tal{position:relative;display:flex;align-items:center;gap:10px;min-height:48px;margin-top:10px;padding-top:8px;
  animation:frd-s-word .6s cubic-bezier(.22,1,.36,1) 1.2s backwards}
.fr-deal[data-v3] .frd-tal::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,#ffffff24,#ffffff08 70%,#fff0)}
.fr-deal[data-v3] .frd-tal-art{position:relative;flex:none;width:44px;height:44px;border-radius:12px;overflow:hidden;
  background:radial-gradient(closest-side,#d7192133,#d7192100 80%),#ffffff08;box-shadow:inset 0 0 0 1px #ffffff17}
.fr-deal[data-v3] .frd-tal-art>.pd-tal-art{position:absolute;left:2px;right:2px;bottom:0;width:auto}
.fr-deal[data-v3] .frd-tal-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.fr-deal[data-v3] .frd-tal-k{font:700 10px/14px var(--pd-font,'Play',sans-serif);letter-spacing:.14em;text-transform:uppercase;color:#8e8e98;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-deal[data-v3] .frd-tal-txt>b{display:flex;align-items:baseline;gap:0;min-width:0;font:700 16px/20px var(--pd-font,'Play',sans-serif);color:#fff;white-space:nowrap}
.fr-deal[data-v3] .frd-tal-txt>b>small{margin-left:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;font:400 12px/20px var(--pd-font,'Play',sans-serif);color:#a1a7b2}
@media(prefers-reduced-motion:reduce){.fr-deal[data-v3] .frd-tal{animation:none}}

/* t03: шкала «доля банка» — общая шкала рейкбека: 4 px, трек #ffffff1f, заливка #D71921 → светлый, без огонька и свечения */
.fr-deal[data-v3] .frd-meter.frd-meter--in{height:4px;margin-top:8px;border-radius:2px;background:#ffffff1f;box-shadow:none;overflow:hidden}
.fr-deal[data-v3] .frd-meter--in>i{top:0;bottom:0;border-radius:2px;background:linear-gradient(90deg,#D71921,#ff6b73);box-shadow:none}
.fr-deal[data-v3] .frd-meter--in>i::before{content:none}
