/* JANGKAR CXF Provider Visual v15 — desktop + mobile lobby styles */
.cxf-visual-lobby{padding-bottom:32px}
.cxf-visual-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:12px 0 22px}
.cxf-visual-heading h2{margin:0;color:#f8c96d;font-size:24px;font-weight:850;letter-spacing:.25px;line-height:1.25}
.cxf-visual-heading p{font-size:13px;color:#e4c4b4;margin:7px 0 0}
.cxf-visual-search{display:flex;align-items:center;gap:8px;width:255px;max-width:100%;border:1px solid rgba(238,184,88,.4);border-radius:10px;background:#250608;padding:0 13px;color:#d4a85e;transition:border-color .16s}
.cxf-visual-search:focus-within{border-color:#f8c96d}
.cxf-visual-search input{display:block;width:100%;height:44px;min-width:0;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;color:#fff6df;font-size:14px}
.cxf-visual-search input::placeholder{color:#a78880}
.cxf-visual-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;align-items:stretch;margin-bottom:30px}
.cxf-visual-card{position:relative;display:block;aspect-ratio:1.74;min-height:140px;overflow:hidden;background:radial-gradient(ellipse at 70% 15%,#73412c 0%,#461219 34%,#1f0209 90%);border:1px solid rgba(221,172,100,.18);border-radius:8px;text-decoration:none!important;box-shadow:0 3px 13px rgba(0,0,0,.19);isolation:isolate;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.cxf-visual-card:nth-child(4n+2){background:radial-gradient(ellipse at 20% 15%,#795521,#3e1427 44%,#18020b 93%)}
.cxf-visual-card:nth-child(4n+3){background:radial-gradient(ellipse at 80% 10%,#385868,#4c1522 44%,#1c020a 93%)}
.cxf-visual-card:nth-child(4n+4){background:radial-gradient(ellipse at 30% 15%,#7c3125,#4b0b13 47%,#20020b 93%)}
.cxf-visual-art,.cxf-visual-vignette{position:absolute;inset:0;display:block}
.cxf-visual-art{overflow:hidden}
.cxf-visual-art::before{content:"";position:absolute;inset:0;opacity:.3;background:repeating-linear-gradient(120deg,transparent,transparent 28px,rgba(250,203,113,.065) 29px,transparent 30px);pointer-events:none}
.cxf-visual-art>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(1.05);transition:transform .3s ease}
.cxf-visual-art .cxf-game-collage{display:flex;width:100%;height:100%;overflow:hidden}
.cxf-visual-art .cxf-game-collage img{width:33.3333%;height:100%;object-fit:cover;filter:saturate(1.1);transition:transform .3s ease}
.cxf-visual-art .cxf-game-collage img:only-child{width:100%}
.cxf-visual-art .cxf-game-collage img:first-child:nth-last-child(2),.cxf-visual-art .cxf-game-collage img:first-child:nth-last-child(2)~img{width:50%}
.cxf-art-shimmer{position:absolute;inset:-30%;background:linear-gradient(110deg,transparent 26%,rgba(255,214,127,.09) 48%,transparent 70%);transform:translateX(-100%);animation:cxf-art-glow 2.2s infinite ease-in-out}
@keyframes cxf-art-glow{to{transform:translateX(110%)}}
.cxf-visual-vignette{background:linear-gradient(180deg,rgba(10,1,7,.02) 0%,rgba(10,1,7,.17) 35%,rgba(15,1,5,.87) 100%);pointer-events:none}
.cxf-visual-text{position:absolute;bottom:0;left:0;right:0;padding:30px 12px 11px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-shadow:0 2px 5px rgba(0,0,0,.8)}
.cxf-visual-text strong{color:#fff2d1;font-size:15px;line-height:1.23;font-weight:850;letter-spacing:.05px}
.cxf-visual-text>span{color:#f5bf65;font-size:11px;font-weight:600}
.cxf-visual-chevron{font-size:15px;vertical-align:-1px}
.cxf-visual-card:hover,.cxf-visual-card:focus-visible{transform:translateY(-3px);border-color:#edbd67;box-shadow:0 10px 22px rgba(0,0,0,.34)}
.cxf-visual-card:hover .cxf-visual-art>img,.cxf-visual-card:hover .cxf-game-collage img{transform:scale(1.045)}
.cxf-visual-card:focus-visible{outline:2px solid #f2c66b;outline-offset:3px}
.cxf-visual-card[hidden]{display:none!important}
.cxf-visual-empty{text-align:center;color:#f4dab8;padding:26px}
.cxf-visual-empty[hidden]{display:none!important}
@media(max-width:1250px){.cxf-visual-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.cxf-visual-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}}
@media(max-width:580px){.cxf-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cxf-visual-heading h2{font-size:19px}.cxf-visual-search{width:100%}.cxf-visual-card{min-height:115px}.cxf-visual-text{padding:22px 9px 9px}.cxf-visual-text strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.cxf-visual-card,.cxf-visual-art>img,.cxf-game-collage img{transition:none}.cxf-art-shimmer{animation:none}}

/* V15: fill provider cards with muted looping MP4/WebM banners. */
.cxf-visual-art>video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}
.cxf-visual-card.cxf-has-video .cxf-visual-vignette{background:linear-gradient(180deg,transparent 0%,rgba(12,0,4,.05) 60%,rgba(12,0,4,.25) 100%)}
.cxf-visual-card.cxf-has-video .cxf-visual-text{opacity:0;transition:opacity .2s ease}
.cxf-visual-card.cxf-has-video:hover .cxf-visual-text,.cxf-visual-card.cxf-has-video:focus-visible .cxf-visual-text{opacity:1}
.cxf-visual-card.cxf-has-video:hover .cxf-visual-vignette,.cxf-visual-card.cxf-has-video:focus-visible .cxf-visual-vignette{background:linear-gradient(180deg,transparent,rgba(12,0,4,.8))}
@media(prefers-reduced-motion:reduce){.cxf-visual-card.cxf-has-video .cxf-visual-text{opacity:1}}

/* V16 — Mobile layout: three neat banners per row, just like a provider media catalog. */
.cxf-visual-mobile{max-width:100%;padding-left:12px!important;padding-right:12px!important;padding-bottom:90px}
.cxf-visual-mobile .cxf-visual-head{margin:8px 0 15px;gap:11px}
.cxf-visual-mobile .cxf-visual-heading h2{font-size:19px;line-height:1.3}
.cxf-visual-mobile .cxf-visual-heading p{font-size:12px}
.cxf-visual-mobile .cxf-visual-search{width:100%;height:42px}
.cxf-visual-mobile .cxf-visual-search input{height:40px}
.cxf-visual-mobile .cxf-visual-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:20px}
.cxf-visual-mobile .cxf-visual-card{width:100%;aspect-ratio:1.25;min-height:84px;max-height:none;margin:0;border-radius:8px}
.cxf-visual-mobile .cxf-visual-text{opacity:1!important;padding:18px 6px 6px;background:none}
.cxf-visual-mobile .cxf-visual-text strong{font-size:10px;line-height:1.12;word-break:break-word}
.cxf-visual-mobile .cxf-visual-text>span{display:none}
.cxf-visual-mobile .cxf-visual-card.cxf-has-video .cxf-visual-vignette{background:linear-gradient(180deg,transparent 40%,rgba(12,0,4,.58) 100%)}
.cxf-visual-mobile .cxf-visual-card.cxf-has-video .cxf-visual-text{opacity:1!important}
.cxf-visual-mobile .cxf-visual-card:active{transform:scale(.985)}
@media(max-width:345px){.cxf-visual-mobile .cxf-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cxf-visual-mobile .cxf-visual-card{min-height:100px}.cxf-visual-mobile .cxf-visual-text strong{font-size:12px}}
@media(min-width:600px){.cxf-visual-mobile .cxf-visual-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.cxf-visual-mobile .cxf-visual-card{aspect-ratio:1.6}}

/* V18: make CXF fallback game covers visible and legible. */
.cxf-visual-card.cxf-has-collage .cxf-visual-vignette{background:linear-gradient(180deg,transparent 12%,rgba(10,0,5,.2) 52%,rgba(12,1,5,.75) 100%)}
.cxf-visual-card.cxf-has-collage .cxf-visual-art::before{display:none}
.cxf-visual-card.cxf-has-collage .cxf-art-shimmer{display:none}
