/* v33 Chavito Games as one more provider in the six P1 rooms (chavito-provider.v1.js). Own classes (chv-*), no inline
   styles (the rooms run with style-src 'self'), system fonts only (no web fonts), every animation stops with «reduce
   motion». Chavito colors: #05070d (night), #e50914 (red) and #ffd560 (gold).
   - v33.1: the slide in the room's own promo carousel (.chv-hero-slide; Ganamos, Celu Apuestas, Betados, Tío Rico and
     FutureBet): the room's slide box (its size at every width), the room's art (PC / phone) filling it, «● N jugando ahora»
     over it and a short shine while it is on.
   - The promo banner: Multisala.net's, exactly as in v33 (#chavitoBanner; the owner: «el único que queda como va es
     multisala.net»), and the other rooms' fallback when the slide's art failed: the height of the room's wide promo tile
     (Multisala.net's FutureBet tile: 150 px on the phone, 178 px from 521 px, 204 px from 821 px).
   - «Lo nuevo» tiles: no size or look of their own (each room's #homeRows rules); ours are only the «JvJ» tag and where the
     360×450 cover is cropped in the square tile (data-chv-crop), so its title stays whole.
   - The provider tab, the «En Chavito» chip, the notes and the small questions. */
.ms-chavito[hidden], .ms-chavito [hidden], .chv-row [hidden], .chv-chip[hidden], .chv-chip [hidden], .chv-owed-note[hidden], .chv-return-note[hidden] { display: none !important; }

/* ---------------------------------------------------------------- promo banner */
.ms-chavito {
  --chv-night: #05070d; --chv-red: #e50914; --chv-gold: #ffd560;
  --chv-display: "Arial Black", "Segoe UI Black", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --chv-text: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  position: relative; min-height: 150px; margin: 0 0 14px; overflow: hidden; isolation: isolate;
  border: 1px solid rgba(229, 9, 20, .6); border-radius: 13px; color: #fff;
  background:
    radial-gradient(circle at 10% -10%, rgba(229, 9, 20, .55), transparent 46%),
    radial-gradient(circle at 88% 110%, rgba(255, 213, 96, .26), transparent 50%),
    linear-gradient(115deg, #16040b 0%, var(--chv-night) 48%, #0b0f1a 100%);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .42), 0 0 0 1px rgba(255, 213, 96, .08) inset;
}
.ms-chavito::after {
  content: ""; position: absolute; inset: -40% auto -40% -30%; z-index: 0; width: 40%; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .08), transparent);
  transform: translateX(-60%) skewX(-12deg); animation: chv-sweep 6s ease-in-out infinite;
}
@keyframes chv-sweep { 0%, 55% { transform: translateX(-60%) skewX(-12deg); } 100% { transform: translateX(420%) skewX(-12deg); } }
@keyframes chv-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(229, 9, 20, .55); } 50% { box-shadow: 0 0 0 7px rgba(229, 9, 20, 0); } }
@keyframes chv-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -5px; } }
@media (prefers-reduced-motion: reduce) { .ms-chavito::after, .chv-new, .chv-promo-card { animation: none !important; } }

.chv-promo { position: relative; z-index: 1; min-height: inherit; display: flex; align-items: center; gap: 10px; padding: 12px; }
.chv-promo-art {
  position: absolute; z-index: -1; top: 0; right: 0; bottom: 0; width: 56%; pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 42%); mask-image: linear-gradient(90deg, transparent 0, #000 42%);
}
.chv-promo-card {
  position: absolute; bottom: -10%; width: auto; height: 92%; aspect-ratio: 360 / 450; object-fit: cover;
  border: 1px solid rgba(255, 255, 255, .22); border-radius: 10px; background: #1a0508; box-shadow: 0 10px 24px rgba(0, 0, 0, .6);
  animation: chv-float 5s ease-in-out infinite;
}
.chv-promo-card.is-1 { right: 38%; transform: rotate(-10deg); opacity: .7; animation-delay: -1.6s; }
.chv-promo-card.is-2 { right: 19%; z-index: 1; transform: rotate(-3deg) translateY(-6%); opacity: .88; animation-delay: -3.2s; }
.chv-promo-card.is-3 { right: -3%; z-index: 2; transform: rotate(7deg); }
.chv-promo-card.is-fallback { object-fit: contain; padding: 14%; image-rendering: pixelated; }
.ms-chavito.is-paused .chv-promo-art { filter: grayscale(.7); opacity: .55; }

.chv-logo { position: relative; flex: 0 0 auto; display: block; width: 58px; height: auto; aspect-ratio: 160 / 158; image-rendering: pixelated; filter: drop-shadow(0 6px 14px rgba(229, 9, 20, .55)); }
.chv-promo-copy { min-width: 0; max-width: 74%; display: grid; justify-items: start; gap: 4px; }
.chv-kicker { margin: 0; display: flex; align-items: center; gap: 6px; font: 900 10px/1.25 var(--chv-text); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.chv-new { padding: 2px 8px; border-radius: 999px; background: var(--chv-red); color: #fff; letter-spacing: .12em; animation: chv-pulse 2.4s ease-in-out infinite; }
.chv-title {
  margin: 0; color: var(--chv-red); font-family: var(--chv-display); font-size: 22px; font-weight: 900; line-height: 1.02; letter-spacing: .005em;
  text-transform: uppercase; white-space: nowrap; text-shadow: 0 2px 0 #4d0005, 0 0 22px rgba(229, 9, 20, .5);
}
.chv-promo-line { max-width: 100%; margin: 0; overflow: hidden; color: var(--chv-gold); font: 800 12px/1.3 var(--chv-text); white-space: nowrap; text-overflow: ellipsis; }
.chv-live-now { margin: 0; color: #cff7e4; font: 800 11px/1.3 var(--chv-text); }
.chv-live-now::before { content: "●"; margin-right: 5px; color: #34d399; }
.chv-paused { margin: 0; padding: 3px 8px; border: 1px solid #ffd56066; border-radius: 8px; background: #1f1605; color: #ffe7a3; font: 800 11px/1.3 var(--chv-text); }
.chv-cta { margin-top: 4px; display: flex; align-items: center; gap: 6px; }
.chv-cta .chv-cta-play {
  min-height: 36px; padding: 0 16px 0 6px; display: inline-flex; align-items: center; gap: 8px; border: 0; border-radius: 10px; cursor: pointer;
  background: linear-gradient(180deg, #ff3340 0%, var(--chv-red) 60%, #b3000a 100%); color: #fff; font: 950 14px/1 var(--chv-text); text-transform: uppercase; letter-spacing: .05em;
  box-shadow: 0 8px 20px rgba(229, 9, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .25);
}
.chv-cta-icon { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--chv-gold); color: #3a0006; font-size: 10px; line-height: 1; }
.chv-cta .chv-cta-play:disabled { opacity: .5; cursor: default; }
.chv-cta .chv-cta-play:focus-visible { outline: 3px solid var(--chv-gold); outline-offset: 2px; }
/* «Ver proveedor»: the provider's own screen (its catalog) in the room's shell; secondary, glass. */
.chv-cta .chv-cta-lobby {
  min-height: 36px; padding: 0 12px; border: 1px solid rgba(255, 213, 96, .55); border-radius: 10px; cursor: pointer; white-space: nowrap;
  background: rgba(5, 7, 13, .55); color: var(--chv-gold); font: 850 12px/1 var(--chv-text); letter-spacing: .03em;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.chv-cta .chv-cta-lobby:disabled { opacity: .5; cursor: default; }
.chv-cta .chv-cta-lobby:focus-visible { outline: 3px solid var(--chv-gold); outline-offset: 2px; }
@media (min-width: 521px) {
  .ms-chavito { min-height: 178px; }
  .chv-promo { gap: 16px; padding: 14px 18px; }
  .chv-logo { width: 96px; }
  .chv-kicker { font-size: 11px; }
  .chv-title { font-size: 32px; }
  .chv-promo-line { font-size: 14px; }
  .chv-live-now { font-size: 12px; }
  .chv-cta .chv-cta-play { min-height: 42px; font-size: 15px; }
  .chv-cta .chv-cta-lobby { min-height: 42px; padding: 0 16px; font-size: 14px; }
  .chv-promo-art { width: 52%; }
  .chv-promo-copy { max-width: 64%; }
}
@media (min-width: 821px) {
  .ms-chavito { min-height: 204px; border-radius: 18px; }
  .chv-promo { gap: 22px; padding: 16px 26px; }
  .chv-logo { width: 132px; }
  .chv-kicker { font-size: 12px; letter-spacing: .18em; }
  .chv-title { font-size: 44px; }
  .chv-promo-line { font-size: 17px; }
  .chv-live-now { font-size: 13px; }
  .chv-cta .chv-cta-play { min-height: 46px; padding: 0 22px 0 8px; font-size: 16px; }
  .chv-cta .chv-cta-lobby { min-height: 46px; padding: 0 20px; font-size: 15px; }
  .chv-cta-icon { width: 28px; height: 28px; font-size: 12px; }
  .chv-promo-art { width: 44%; }
  .chv-promo-copy { max-width: 58%; }
}
@media (max-width: 520px) { .chv-line-more { display: none; } }
@media (max-width: 359px) {
  .chv-promo { gap: 8px; padding: 10px; }
  .chv-logo { width: 48px; }
  .chv-title { font-size: 19px; }
  .chv-cta .chv-cta-play { padding-right: 12px; }
  .chv-cta .chv-cta-lobby { padding: 0 9px; font-size: 11px; }
}
@media (forced-colors: active) { .chv-promo-art { display: none; } }
/* Ganamos pads each #homeRows row (12 px), not the page: same gutter for the banner. */
.ms-chavito[data-room="ganamos"] { margin-left: 12px; margin-right: 12px; }

/* ---------------------------------------------------------------- v33.1: the slide in the room's promo carousel
   The room's own rules place it and show it (.hero-slide: absolute in its box, .active on, its fade or its cut), so it is
   exactly as big as the room's slides at every width. These rules only fill that box with the art. They sit above the
   rooms' «.hero-slide img» rules (contain, a background, some with !important: room-layout.css, Betados, Tío Rico). */
.hero-carousel .hero-slide.chv-hero-slide {
  padding: 0; border: 0; overflow: hidden; isolation: isolate; container-type: size;
  background: #05070d; color: #fff; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.hero-carousel .hero-slide.chv-hero-slide::before, .hero-carousel .hero-slide.chv-hero-slide::after { content: none; }
.chv-hero-slide .chv-hero-picture { position: absolute; inset: 0; z-index: 1; display: block; margin: 0; }
.hero-carousel .hero-slide.chv-hero-slide img.chv-hero-img {
  position: absolute; inset: 0; z-index: 1; display: block; width: 100% !important; height: 100% !important; max-width: none; max-height: none;
  margin: 0; padding: 0; border: 0; border-radius: 0; background: #05070d !important;
  object-fit: cover !important; object-position: center !important;
}
.chv-hero-slide:focus-visible { outline: 3px solid #ffd560; outline-offset: -3px; }
@keyframes chv-hero-in { from { transform: scale(1.07); filter: brightness(1.3) saturate(1.2); } to { transform: none; filter: none; } }
@keyframes chv-hero-shine {
  0%, 10% { opacity: 0; transform: translateX(-120%) skewX(-16deg); }
  14% { opacity: 1; }
  44% { opacity: 1; transform: translateX(560%) skewX(-16deg); }
  48%, 100% { opacity: 0; transform: translateX(560%) skewX(-16deg); }
}
@keyframes chv-hero-dot { 0% { box-shadow: 0 0 0 0 rgba(52, 211, 153, .65); } 80%, 100% { box-shadow: 0 0 0 6px rgba(52, 211, 153, 0); } }
/* Each time it comes on: the art settles in (backwards: afterwards the hover glow is free) and a shine crosses it. */
.hero-carousel .hero-slide.chv-hero-slide.active img.chv-hero-img {
  animation: chv-hero-in .9s cubic-bezier(.2, .8, .2, 1) backwards;
}
@media (hover: hover) { .chv-hero-slide:hover img.chv-hero-img { filter: brightness(1.08) saturate(1.08); } }
.chv-hero-slide .chv-hero-shine {
  position: absolute; z-index: 2; top: -20%; bottom: -20%; left: 0; width: 20%; pointer-events: none; opacity: 0;
  background: linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, .2) 50%, transparent 100%);
  transform: translateX(-120%) skewX(-16deg);
}
.chv-hero-slide.active .chv-hero-shine { animation: chv-hero-shine 6.5s ease-in-out .5s infinite; }
/* «● N jugando ahora»: text over the art (the gateway's count), clear of the room's arrows and dots. On the wide (PC) art the
   top-right corner is free (the posters start lower); the phone art fills every corner (logo, «JUGÁ AHORA», +18), so it is
   never shown over it: the phone art is picked by each room's own width (chavito-provider.v1.js SLIDE_PHONE_MAX: Ganamos'
   phone carousel, Betados ≤ 1180 px, the 5:1 strips ≤ 640 px), nor on the low strips. */
.chv-hero-slide .chv-hero-live {
  position: absolute; z-index: 3; top: 10px; right: 12px; display: inline-flex; align-items: center; gap: 6px; max-width: calc(100% - 24px);
  padding: 4px 10px 4px 8px; overflow: hidden; border: 1px solid rgba(52, 211, 153, .6); border-radius: 999px; pointer-events: none;
  background: rgba(5, 7, 13, .76); color: #eafff4; box-shadow: 0 4px 14px rgba(0, 0, 0, .45);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  font: 800 12px/1.2 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; letter-spacing: .02em; white-space: nowrap; text-overflow: ellipsis;
}
.chv-hero-slide .chv-hero-live::before { content: ""; flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; background: #34d399; animation: chv-hero-dot 1.8s ease-out infinite; }
.chv-hero-slide .chv-hero-live[hidden] { display: none; }
@container (max-height: 170px) { .chv-hero-slide .chv-hero-live { display: none; } }
@container (min-height: 300px) {
  .chv-hero-slide .chv-hero-live { top: 16px; right: 18px; gap: 8px; padding: 6px 14px 6px 11px; font-size: 14px; }
  .chv-hero-slide .chv-hero-live::before { width: 8px; height: 8px; }
}
/* FutureBet draws a HUD frame over its carousel (corners 8 px in, 20 px long): the count sits inside it. */
.fb-hero .hero-slide.chv-hero-slide .chv-hero-live { top: 14px; right: 34px; }
.mobile-hero .hero-slide.chv-hero-slide .chv-hero-live { display: none; }
@media (max-width: 1180px) { .hero-slide.chv-hero-slide[data-room="betados"] .chv-hero-live { display: none; } }
@media (max-width: 640px) {
  .hero-slide.chv-hero-slide[data-room="celuapuestas"] .chv-hero-live, .hero-slide.chv-hero-slide[data-room="tioricojuegos"] .chv-hero-live,
  .hero-slide.chv-hero-slide[data-room="futurebet"] .chv-hero-live { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .chv-hero-slide img.chv-hero-img, .chv-hero-slide .chv-hero-shine, .chv-hero-slide .chv-hero-live::before { animation: none !important; transition: none !important; }
}
.chv-hero-slide.is-still img.chv-hero-img, .chv-hero-slide.is-still .chv-hero-shine, .chv-hero-slide.is-still .chv-hero-live::before { animation: none !important; }
@media (forced-colors: active) { .chv-hero-slide .chv-hero-shine { display: none; } }

/* ---------------------------------------------------------------- «Lo nuevo · Chavito Games» tiles (the room's own rules) */
.chv-row .chv-row-studio { padding: 2px 7px; border: 1px solid rgba(229, 9, 20, .65); border-radius: 999px; background: #05070d; color: #ffd9dc; font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
/* v33.1, fourth round: in maintenance, where the slide took the banner's place, the row says what the v33 banner said (the
   banner's .chv-paused look), on the header's free side (where the rooms put «Ver todos»). */
/* When it does not fit next to the title (phones), it goes to its own line: the title is never cut for it. */
.chv-row > .home-row-header { flex-wrap: wrap; row-gap: 6px; }
.chv-row .chv-row-note { flex: 0 1 auto; min-width: 0; margin: 0 0 0 auto; padding: 3px 8px; border: 1px solid #ffd56066; border-radius: 8px; background: #1f1605; color: #ffe7a3;
  font: 800 11px/1.3 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; letter-spacing: 0; }
@media (max-width: 520px) { .chv-row .chv-row-note { padding: 2px 6px; font-size: 10px; } }
/* The module's own scroll that keeps the view in place when «Lo nuevo» goes in above it: at once, over the rooms' smooth
   scrolling (the class is on only during that scrollBy). */
html.chv-scroll-now { scroll-behavior: auto !important; }
/* v33.1, fifth round: after the login form, a question or the game shell the focus comes back to the row's (or the banner's)
   title, never to a tile or «Jugar» (the next Enter would play them). With the keyboard it shows the focus ring; after a tap
   or a click, nothing. */
.chv-row h2[tabindex="-1"]:focus:not(:focus-visible), .ms-chavito h2[tabindex="-1"]:focus:not(:focus-visible) { outline: none; }
.chv-game-card { cursor: pointer; }
.chv-game-card:disabled { cursor: default; filter: grayscale(.45); }
.chv-game-card > .chv-poster.is-fallback { object-fit: contain !important; padding: 18% !important; image-rendering: pixelated; background: radial-gradient(circle at 50% 40%, #2a0508, #05070d 70%); }
/* v33.1: the Lobby's covers are 360×450 and the rooms' tiles square (lobby-v8: cover, centred): centred, a title at the top
   was cut («SANTO DIABLO» in «Lo nuevo»). Each tile says where its cover carries the title (chavito-provider.v1.js
   COVER_FOOT; checked with the real covers in slide-v331/qa): at the top (most), or at the foot (Roulette Battle, Candy
   Race). The animated cover (same size) is cropped the same way. Not the pixel logo of a missing cover (contain). */
.chv-game-card[data-chv-crop="top"] > img.chv-poster:not(.is-fallback), .chv-game-card[data-chv-crop="top"] > .chv-animated > img { object-position: 50% 0; }
.chv-game-card[data-chv-crop="bottom"] > img.chv-poster:not(.is-fallback), .chv-game-card[data-chv-crop="bottom"] > .chv-animated > img { object-position: 50% 100%; }
/* The only text on a tile (the owner): «JvJ» / «JvJ · 2 a 4 jugadores» / PPT «Banca o JvJ · 2 a 4» on games between people.
   It goes on the edge away from the title (a cover cropped at the top carries it at the foot), never over it. */
.chv-game-card .chv-card-tag { position: absolute; z-index: 4; top: 5px; left: 5px; max-width: calc(100% - 10px); padding: 2px 6px; overflow: hidden; pointer-events: none;
  border-radius: 5px; background: #e50914; color: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .5);
  font: 900 9px/1.3 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; letter-spacing: .02em; white-space: nowrap; text-overflow: ellipsis; }
.chv-game-card[data-chv-crop="top"] .chv-card-tag { top: auto; bottom: 5px; }
@media (max-width: 700px) { .chv-game-card .chv-card-tag { padding: 1px 5px; font-size: 8px; } }

/* ---------------------------------------------------------------- «Chavito Games» among the provider tabs */
.chv-provider-tab .chv-provider-logo { background: radial-gradient(circle at 50% 40%, #2a0508, #05070d 70%); }
.chv-provider-tab .chv-provider-logo img { width: 100%; height: 100%; object-fit: contain; image-rendering: pixelated; }

/* ---------------------------------------------------------------- «En Chavito: $X · Jugar · Traer» next to the balance */
.chv-chip { flex: 0 1 auto; min-width: 0; display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 4px 6px 4px 10px; border: 1px solid rgba(229, 9, 20, .7); border-radius: 999px; background: #05070d; color: #ffd9dc; font-size: 12px; font-weight: 850; white-space: nowrap; }
.chv-chip button { flex: 0 0 auto; min-height: 30px; padding: 0 10px; border: 0; border-radius: 999px; background: #e50914; color: #fff; font-weight: 950; font-size: 12px; cursor: pointer; }
.chv-chip button[data-chv-chip-play] { background: #ffd560; color: #3a2600; }
.chv-chip button:disabled { opacity: .55; cursor: default; }
.chv-chip::before { content: ""; display: none; flex: 0 0 22px; width: 22px; height: 22px; background: url("/multisala/assets/chavito/chavito-pixel-160.webp?v=20260926-chavito-v29") center / contain no-repeat; image-rendering: pixelated; }
.chv-chip-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.chv-chip-label:not([hidden]) { display: inline-block; }
.chv-chip-value { color: #fff; font-weight: 950; }
.chv-chip-owed strong { flex: 0 0 auto; }
.chv-chip-icon { display: none; }
.chv-chip-owed { padding-right: 4px; color: #ffd560; }
.chv-chip.has-chips .chv-chip-owed { display: none; }
@media (max-width: 1500px) {
  .chv-chip.has-chips { padding-left: 6px; }
  .chv-chip.has-chips::before { display: block; }
  .chv-chip.has-chips .chv-chip-where { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
}
@media (max-width: 1100px) {
  .chv-chip [data-chv-chip-play] .chv-chip-text { display: none; }
  .chv-chip [data-chv-chip-play] .chv-chip-icon { display: inline; }
}
@media (max-width: 820px) {
  .chv-chip { gap: 5px; min-height: 36px; padding: 3px 4px 3px 5px; font-size: 11px; }
  .chv-chip button { min-height: 28px; padding: 0 9px; font-size: 11px; }
  .chv-chip-owed-long { display: none; }
}

/* ---------------------------------------------------------------- notes above the content */
.chv-owed-note { margin: 0 0 14px; padding: 10px 14px; border: 1px solid rgba(255, 213, 96, .6); border-radius: 14px; background: #05070d; color: #ffe7a8; font-size: 13px; font-weight: 700; line-height: 1.4; }
.chv-owed-note strong { color: #ffd560; font-weight: 950; }
.chv-return-note { margin: 0 0 14px; padding: 10px 14px 10px 40px; position: relative; border: 1px solid rgba(120, 220, 170, .55); border-radius: 14px; background: #06140f; color: #d4f7e6; font-size: 13px; font-weight: 700; line-height: 1.4; }
.chv-return-note::before { content: "↺"; position: absolute; left: 14px; top: 9px; color: #7be0b0; font-size: 17px; font-weight: 900; }

/* ---------------------------------------------------------------- small questions (bonus, not enough chips, a hand in play) */
.chv-ask { position: fixed; inset: 0; z-index: 260; display: grid; place-items: center; padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom)); background: rgba(3, 4, 10, .72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.chv-ask-card { width: min(440px, 100%); padding: 22px 20px 18px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 20px; background: linear-gradient(180deg, rgba(26, 8, 14, .96), rgba(10, 11, 20, .97)); box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .9), 0 0 0 1px rgba(229, 9, 20, .25); color: #f4f5fa; font-family: inherit; }
.chv-ask-kicker { margin: 0 0 6px; color: #ffd560; font-size: 11px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.chv-ask-card h2 { margin: 0 0 10px; font-size: 20px; font-weight: 900; line-height: 1.2; }
.chv-ask-text { margin: 0 0 16px; color: #d8dbe6; font-size: 14.5px; line-height: 1.5; }
.chv-ask-actions { display: grid; gap: 10px; }
.chv-ask-actions button { min-height: 48px; border-radius: 14px; font: 800 15px/1 inherit; cursor: pointer; }
.chv-ask-go { border: 0; background: linear-gradient(180deg, #ff2a37, #c1000c); color: #fff; box-shadow: 0 10px 24px -10px rgba(229, 9, 20, .8); }
.chv-ask-stay { border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .06); color: #fff; }
.chv-ask-actions button:focus-visible { outline: 3px solid #ffd560; outline-offset: 2px; }
@media (min-width: 520px) { .chv-ask-actions { grid-template-columns: 1fr 1fr; } }

/* Public tables awaiting one opponent. Visible only outside a game or money operation. */
.chv-waiting-bubbles{position:fixed;right:14px;bottom:90px;z-index:45;display:grid;gap:9px;max-width:min(290px,calc(100vw - 28px));pointer-events:none}
.chv-waiting-bubbles[hidden]{display:none!important}
.chv-waiting-bubble{pointer-events:auto;display:flex;align-items:center;gap:10px;border:1px solid #d5a447;border-radius:22px;background:#171021;color:#fff;padding:10px 15px 10px 10px;box-shadow:0 8px 25px #0008;text-align:left;font:inherit;cursor:pointer;min-height:68px}
.chv-waiting-bubble img{width:48px;height:48px;object-fit:cover;border-radius:50%;flex:none}
.chv-waiting-bubble span{display:grid;gap:2px}.chv-waiting-bubble strong{font-size:14px}.chv-waiting-bubble small{font-size:11px;color:#e9c776}.chv-waiting-bubble:focus-visible{outline:3px solid #fff;outline-offset:3px}
body.game-open .chv-waiting-bubbles,body.ms-game-open .chv-waiting-bubbles{display:none!important}
@media(max-width:480px){.chv-waiting-bubbles{right:10px;bottom:85px;max-width:250px}.chv-waiting-bubble{padding:8px 12px 8px 8px;min-height:62px}.chv-waiting-bubble img{width:42px;height:42px}}

/* Brief exact-table invitation, with an independent dismiss target. */
.chv-waiting-card{display:flex;align-items:center;pointer-events:auto;width:min(278px,calc(100vw - 28px));border:1px solid #c6a26666;border-radius:20px;background:#171021f5;box-shadow:0 8px 24px #0006;overflow:hidden}
.chv-waiting-card .chv-waiting-bubble{flex:1;min-width:0;width:auto;border:0;border-radius:0;background:transparent;box-shadow:none;min-height:64px;padding:9px;gap:9px;text-align:left}
.chv-waiting-card .chv-waiting-bubble img{width:40px;height:40px;flex:0 0 40px}
.chv-waiting-close{flex:0 0 38px;width:38px;height:44px;align-self:center;border:0;background:transparent;color:#e9dfd0;font-size:23px;cursor:pointer;touch-action:manipulation}
.chv-waiting-close:focus-visible{outline:2px solid #e6c579;outline-offset:-4px}

/* Cleopatra's original 40-frame cover stays complete, including its title. */
.chv-waiting-card{max-width:100%}
/* Authoritative cash and bonus, separately, beside the account in every room. */
.chv-account-header :is(.header-actions,.top-actions){min-width:0;gap:8px}
.chv-account-header :is(.header-actions,.top-actions) #walletButton.chv-account-wallet:not(.hidden){display:flex!important;flex:0 1 auto;min-width:0;align-items:center;padding:7px 10px;max-width:220px;white-space:nowrap;background:#172130!important;color:#f6f8fc!important;border:1px solid #536078!important;box-shadow:none!important}
.chv-account-wallet>:not(.chv-account-values){display:none!important}
.chv-account-values{display:grid!important;gap:1px;min-width:0;text-align:right;font-variant-numeric:tabular-nums;line-height:1.15}
.chv-account-label{font:600 9px/1.15 system-ui;opacity:.7;letter-spacing:.06em;text-transform:uppercase}
.chv-account-wallet .chv-account-cash{font:800 15px/1.2 system-ui!important;color:inherit;white-space:nowrap}
.chv-account-bonus{font:600 10px/1.2 system-ui;color:#ecd393;white-space:nowrap}.chv-account-bonus[hidden]{display:none!important}
.chv-account-header :is(.header-actions,.top-actions) #walletButton.chv-account-wallet:not(.hidden){flex-shrink:0!important;max-width:none}
.chv-account-header :is(.header-actions,.top-actions){flex-shrink:0!important}
.chv-account-header #profileButton{flex-shrink:0!important}
/* Provider navigation uses the existing brand assets; names remain accessible on focus. */
.provider-rail .provider-all,#providerTabs .provider-tab[data-provider=""]{display:none!important}
#providerTabs .provider-tab>:not(.provider-logo){display:none!important}
#providerTabs .provider-tab{justify-content:center;gap:0!important;min-height:58px}
#providerTabs .provider-logo{width:90px!important;height:50px!important;border-radius:9px!important;padding:6px!important}
#providerTabs .provider-logo img{width:100%!important;height:100%!important;object-fit:contain!important}
.chv-chip{margin:8px 12px;max-width:calc(100% - 24px)}
@media(max-width:1400px) and (min-width:901px){.chv-account-header .desktop-nav{gap:0!important;min-width:0}.chv-account-header .desktop-nav>*{padding-left:9px!important;padding-right:9px!important}.chv-account-header .deposit-button{padding-left:12px!important;padding-right:12px!important}.chv-account-header #profileButton>b{display:none!important}}
@media(max-width:900px){.chv-account-wallet .chv-account-cash{font-size:13px!important}}
@media(max-width:359px){.chv-account-wallet .chv-account-cash{font-size:11px!important}}
@media(max-width:900px){.chv-account-header{gap:8px!important;padding-left:10px!important;padding-right:10px!important;flex-wrap:nowrap!important}.chv-account-header>.brand{flex:0 1 auto;min-width:0;max-width:90px}.chv-account-header>.brand img{max-width:100%;object-fit:contain}.chv-account-header :is(.header-actions,.top-actions){margin-left:auto;flex:0 1 auto;min-width:0;gap:6px!important}.chv-account-header :is(.header-actions,.top-actions) .deposit-button,.chv-account-header :is(.header-actions,.top-actions) .round-action{display:none!important}.chv-account-header :is(.header-actions,.top-actions) #walletButton.chv-account-wallet:not(.hidden){padding:5px 7px!important;min-height:44px;max-width:175px;margin:0!important}.chv-account-header #profileButton{flex:0 0 auto!important;min-width:34px!important;width:34px!important;height:34px!important;padding:0!important}.chv-account-header #profileButton>b{display:none!important}.chv-account-header :is(.hamburger,.mobile-menu-toggle){flex:0 0 28px!important;width:28px!important;min-width:28px!important}.chv-account-cash{font-size:13px}.chv-account-bonus{font-size:10px}}
@media(max-width:359px){.chv-account-header{gap:5px!important;padding-left:8px!important;padding-right:8px!important}.chv-account-header>.brand{max-width:66px}.chv-account-header :is(.header-actions,.top-actions){gap:5px!important}.chv-account-header :is(.header-actions,.top-actions) #walletButton.chv-account-wallet:not(.hidden){padding:5px!important;max-width:145px}.chv-account-cash{font-size:11px}.chv-account-bonus{font-size:9px}}
.ms-chavito.is-cleopatra{display:flex;align-items:center;min-height:390px;border-color:#aa875144;background:radial-gradient(ellipse at 78% 55%,#54335766,transparent 52%),linear-gradient(115deg,#0b1120,#21152d);border-radius:20px}
.ms-chavito.is-cleopatra::after{display:none}.chv-cleopatra-copy{position:relative;z-index:2;width:56%;padding:42px 5%;color:#efdfb8}.chv-cleopatra-kicker{margin:0 0 22px;font:600 11px/1.4 system-ui;letter-spacing:.25em}.chv-cleopatra-title{margin:0;max-width:7.5em;font:400 clamp(36px,4.2vw,66px)/1.06 Georgia,serif;color:#efdfb8!important;text-transform:none!important}.chv-cleopatra-sub{margin:19px 0 24px;font:500 14px/1.4 system-ui;color:#c2b7c7}.chv-cleopatra-play{border:1px solid #dab86c;border-radius:5px;padding:14px 22px;min-height:46px;color:#241b0c;background:linear-gradient(135deg,#efd497,#b18a45);font:800 13px/1.2 system-ui;cursor:pointer}.chv-cleopatra-play:disabled{opacity:.5;cursor:default}.chv-cleopatra-play:focus-visible,.chv-cleopatra-pause:focus-visible{outline:3px solid #fff1b8;outline-offset:4px}.chv-cleopatra-art{position:absolute;right:4%;top:14px;bottom:14px;height:calc(100% - 28px);width:45%;object-fit:contain;object-position:50% 50%;filter:drop-shadow(0 16px 26px #0008)}.chv-cleopatra-pause{position:absolute;z-index:3;right:14px;top:12px;border:1px solid #be9e5c66;border-radius:20px;background:#0b1120d9;color:#e4d1a8;padding:7px 11px;min-height:34px;font:600 11px system-ui;cursor:pointer}
.chv-game-card::before{content:"";position:absolute;inset:-8px;pointer-events:none;background-image:var(--chv-cover-background);background-position:center;background-size:cover;filter:blur(8px) brightness(.45);transform:scale(1.08)}
.chv-game-card>img.chv-poster,.chv-game-card>.chv-animated>img{position:relative;object-fit:contain!important;object-position:50% 50%!important;background:transparent!important}
.chv-game-card>.chv-animated{background:transparent!important}
@media(max-width:600px){.ms-chavito.is-cleopatra{min-height:320px}.chv-cleopatra-copy{width:58%;padding:34px 0 24px 18px}.chv-cleopatra-kicker{font-size:8px;letter-spacing:.13em;max-width:16em;margin-bottom:17px}.chv-cleopatra-title{font-size:34px;line-height:1.04;max-width:5.7em}.chv-cleopatra-sub{font-size:11px;max-width:12em;margin:16px 0 19px}.chv-cleopatra-play{padding:12px 13px;font-size:12px}.chv-cleopatra-art{width:49%;right:0;top:36px;bottom:13px;height:calc(100% - 49px)}.chv-cleopatra-pause{top:8px;right:8px;font-size:9px;min-height:30px;padding:5px 9px}}

/* Occasional campaign, independent of the ordinary catalog and its account header. */
.chv-campaign{box-sizing:border-box;position:fixed;width:min(520px,calc(100vw - 24px),calc(80dvh - 96px));max-height:calc(100dvh - 20px);overflow:auto;padding:0;border:1px solid #b89351;border-radius:18px;background:#170f25;color:#f7e9cb;text-align:center;box-shadow:0 28px 100px #000c}
.chv-campaign::backdrop{background:#030409d4;backdrop-filter:blur(7px)}
.chv-campaign .chv-campaign-close{box-sizing:border-box;position:absolute;z-index:2;right:10px;top:10px;display:grid;place-items:center;width:40px;min-width:40px;max-width:40px;height:40px;min-height:40px;margin:0;padding:0;border:1px solid #e9cb8066;border-radius:50%;background:#170c26db;color:#fff4d9;font:28px/1 system-ui;cursor:pointer;box-shadow:0 2px 10px #0008;appearance:none;outline:none}
.chv-campaign-sr{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.chv-campaign .chv-campaign-art{display:block;width:100%;height:auto;object-fit:contain;border-radius:17px 17px 0 0}
.chv-campaign-footer{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px;padding:12px 14px 8px;background:linear-gradient(110deg,#25162f,#120c1b)}
.chv-campaign .chv-campaign-game{box-sizing:border-box;display:block;width:100%;min-width:0;min-height:44px;margin:0;padding:9px 7px;border:1px solid #d8ae62;border-radius:10px;background:linear-gradient(#f4d78d,#c39645);color:#251427;cursor:pointer;font:800 14px/1.2 system-ui;appearance:none}
.chv-campaign .chv-campaign-game:hover{background:#ffe2a0}.chv-campaign .chv-campaign-later{box-sizing:border-box;grid-column:1/-1;justify-self:center;width:auto;min-width:88px;min-height:32px;margin:0;padding:6px 15px;border:0;border-radius:16px;background:transparent;color:#e3d4bb;font:600 12px/1.3 system-ui;cursor:pointer;appearance:none}
.chv-campaign button:focus{outline:none}.chv-campaign button:focus-visible{outline:3px solid #fff3cf;outline-offset:2px}.chv-campaign .chv-campaign-close:focus-visible{outline-offset:2px}
@media(max-width:360px),(max-height:480px){.chv-campaign-footer{gap:4px 6px;padding:8px 9px 5px}.chv-campaign .chv-campaign-game{font-size:12px;padding-inline:4px}.chv-campaign .chv-campaign-close{right:8px;top:8px}}
@media(max-height:480px){.chv-campaign{width:min(520px,calc(100vw - 24px),calc(80dvh - 112px))}.chv-campaign .chv-campaign-close{top:auto;bottom:8px;right:8px}.chv-campaign .chv-campaign-later{min-height:44px}.chv-campaign-footer{padding-bottom:8px}}

/* Multisala: keep room cards inside narrow grid tracks despite their minimum height. */
.ms-room-grid .ms-room-card{width:100%;max-width:100%;}

/* Immediate feedback while the server confirms the entry. No game iframe is opened here. */
/* The existing casino shell also owns preparation; no intermediate opening dialog. */
#gameShell.chv-opening-shell{position:fixed;inset:0;display:flex;flex-direction:column;box-sizing:border-box;width:100%;height:100dvh;margin:0;background:#090b12}
#gameShell.chv-opening-shell:not(.chv-fullscreen){z-index:85!important}
#gameShell.chv-opening-shell>header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between}
#gameShell.chv-opening-shell #gameShellStage{position:relative;flex:1 1 auto;min-height:0}
#gameShell.chv-opening-shell #gameFrame{visibility:hidden;pointer-events:none}
#gameShell.chv-opening-shell #gameLoading{position:absolute;inset:0;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:16px;visibility:visible!important;opacity:1!important}
body.chv-is-opening .chv-promo-card{animation-play-state:paused}
#gameShell.chv-fullscreen:not(.hidden){position:fixed!important;inset:0!important;z-index:2147483000;display:flex!important;flex-direction:column;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;margin:0!important;padding:0!important;transform:none!important;border:0;border-radius:0;background:#090b12}
#gameShell.chv-fullscreen>header{display:flex!important;flex:0 0 auto;position:relative!important;inset:auto!important;z-index:2;box-sizing:border-box;width:100%;min-height:52px;padding-top:max(8px,env(safe-area-inset-top));visibility:visible!important;opacity:1!important}
#gameShell.chv-fullscreen #gameShellStage{position:relative;flex:1 1 auto;min-height:0;height:auto!important;width:100%;overflow:hidden}#gameShell.chv-fullscreen #gameFrame{display:block;width:100%;height:100%;border:0}

/* CHAVITOGAMING byRO rotation */
.chv-campaign.has-carousel{width:min(520px,calc(100vw - 24px),calc(80dvh - 136px))}
.chv-campaign-controls{display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 10px;background:#101511;color:#f6e6b7;font:600 12px/1.2 system-ui}
.chv-campaign-controls[hidden]{display:none}
.chv-campaign-controls [hidden]{display:none!important}
.chv-campaign .chv-campaign-controls .chv-campaign-close{position:static;flex:0 0 40px;box-shadow:none}
.chv-campaign .chv-campaign-arrow,.chv-campaign .chv-campaign-pause{appearance:none;box-sizing:border-box;display:inline-grid;place-items:center;width:auto;min-width:36px;height:36px;min-height:36px;margin:0;padding:4px 8px;border:1px solid #96845766;border-radius:20px;background:#263027;color:#f7e6b8;font:700 13px/1 system-ui;cursor:pointer}
.chv-campaign .chv-campaign-arrow{font-size:24px}.chv-campaign .chv-campaign-count{min-width:28px}
@media(max-height:480px) and (min-width:600px){
 .chv-campaign.has-carousel{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:auto 1fr;width:min(660px,calc(100vw - 24px));max-height:calc(100dvh - 20px);overflow:hidden}
 .chv-campaign.has-carousel .chv-campaign-picture{grid-column:1;grid-row:1/-1;display:flex;align-items:center;justify-content:center;background:#050b08;min-height:0}
 .chv-campaign.has-carousel .chv-campaign-art{width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 24px);object-fit:contain;border-radius:17px 0 0 17px}
 .chv-campaign.has-carousel .chv-campaign-controls{grid-column:2;grid-row:1;padding:52px 8px 8px}
 .chv-campaign.has-carousel .chv-campaign-footer{grid-column:2;grid-row:2;grid-template-columns:1fr;align-content:center;padding:8px 14px 12px;gap:8px}
 .chv-campaign.has-carousel .chv-campaign-controls .chv-campaign-close{position:absolute;top:8px;bottom:auto;right:8px}
 .chv-campaign.has-carousel .chv-campaign-game{font-size:14px}
}

/* Catalog refresh 20261001: square artwork fills square cards without bars or decorative frames. */
#homeRows .chv-row .chv-game-card[data-chv-art="meshy"] > img.chv-poster:not(.is-fallback),
#homeRows .chv-row .chv-game-card[data-chv-art="meshy"] > .chv-animated > img {
  width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;padding:0!important;
}
#homeRows .chv-row .chv-game-card[data-chv-art="meshy"] { aspect-ratio:1; background:#0a0710; }
#homeRows .chv-row .chv-game-card[data-chv-art="meshy"]::before { display:none!important; }
.multisala-actions > .chv-pvp-promo {
  box-sizing:border-box;position:absolute;right:0;bottom:calc(100% + 25px);width:min(264px,calc(100vw - 28px));
  padding:17px 14px 12px;border:1px solid #eac77d;border-radius:20px;background:linear-gradient(135deg,#301343,#130c21 62%);
  color:#fff7df;box-shadow:0 12px 38px #0009,0 0 22px #d7993922;text-align:left;font-family:Inter,system-ui,sans-serif;
}
.multisala-actions > .chv-pvp-promo[hidden] { display:none!important; }
.chv-pvp-promo::after { content:"";position:absolute;right:22px;bottom:-8px;width:14px;height:14px;transform:rotate(45deg);background:#130c21;border-right:1px solid #eac77d;border-bottom:1px solid #eac77d; }
.chv-pvp-promo .chv-pvp-promo-title { display:block;box-sizing:border-box;min-height:44px;width:calc(100% - 30px);padding:10px 14px;border:1px solid #fff0b8;border-radius:12px;background:linear-gradient(135deg,#fff0aa,#ffc64c 58%,#efa735);box-shadow:0 4px 18px #ffbe4138;text-align:center;font:950 23px/1.1 system-ui;letter-spacing:-.03em;color:#281032;cursor:pointer;touch-action:manipulation; }
.chv-pvp-promo-copy { display:block;margin:9px 15px 0 0;font-size:12px;line-height:1.4;color:#eee0f6; }
.chv-pvp-promo .chv-pvp-promo-close { position:absolute;right:2px;top:2px;display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:#fff4d9;font:26px/1 system-ui;cursor:pointer; }
.chv-pvp-promo-actions { display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px; }
.chv-pvp-promo-actions[hidden] { display:none!important; }
.chv-pvp-promo .chv-pvp-promo-play { box-sizing:border-box;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #fae3a4;border-radius:11px;background:linear-gradient(135deg,#ffe09a,#dfb259);color:#26172a;font:850 14px/1.2 system-ui;cursor:pointer;touch-action:manipulation; }
.chv-pvp-promo .chv-pvp-promo-play:disabled { opacity:.45;cursor:default; }
.chv-pvp-promo button:focus-visible { outline:3px solid #fff;outline-offset:2px; }
@media(max-height:420px) { .multisala-actions > .chv-pvp-promo { bottom:calc(100% + 15px);padding-top:12px; } .chv-pvp-promo-title { font-size:19px; } .chv-pvp-promo-copy { margin-top:4px;margin-bottom:8px; } }

/* Display campaign v1: the art, copy and controls share one hero; wallet routes and cadence are unchanged. */
dialog.chv-campaign.chv-campaign-hero {
  --promo-accent:#ffd66b;--promo-glow:#ca8a29;
  display:block;position:fixed;box-sizing:border-box;width:min(980px,calc(100vw - 32px));height:min(550px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);
  margin:auto;padding:0;overflow:hidden;border:1px solid #fff0c76b;border-radius:26px;background:#0e0916;color:#fff7e5;text-align:left;isolation:isolate;
  box-shadow:0 28px 100px #000e,0 0 70px color-mix(in srgb,var(--promo-glow) 24%,transparent);
}
dialog.chv-campaign.chv-campaign-hero:not([open]){display:none}
.chv-campaign.chv-campaign-hero[data-tone=red]{--promo-accent:#ffaea1;--promo-glow:#cb293d}
.chv-campaign.chv-campaign-hero[data-tone=cyan]{--promo-accent:#96f5ff;--promo-glow:#16cbe0}
.chv-campaign.chv-campaign-hero[data-tone=green]{--promo-accent:#d5ff8c;--promo-glow:#52df82}
.chv-campaign.chv-campaign-hero[data-tone=purple]{--promo-accent:#f0b9ff;--promo-glow:#b156e8}
.chv-campaign.chv-campaign-hero[data-tone=amber]{--promo-accent:#ffcb88;--promo-glow:#ef8f34}
.chv-campaign.chv-campaign-hero .chv-campaign-picture{position:absolute;inset:0;display:block;min-height:0;background:#0d0a15;overflow:hidden;pointer-events:none}
.chv-campaign.chv-campaign-hero .chv-campaign-picture::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,#0d0917f5 0%,#0d0917e0 23%,#0d091780 48%,#0d09170a 74%),linear-gradient(0deg,#090811e8,transparent 30%,transparent 85%,#0b08154d);pointer-events:none}
.chv-campaign.chv-campaign-hero .chv-campaign-art-backdrop{position:absolute;inset:-5%;display:block;width:110%;height:110%;max-width:none;object-fit:cover;filter:blur(24px) saturate(.95);opacity:.55;transform:scale(1.08)}
.chv-campaign.chv-campaign-hero .chv-campaign-art{position:absolute;z-index:1;top:0;right:0;display:block;width:64%;max-width:none;height:100%;max-height:none;object-fit:contain;border-radius:0;filter:drop-shadow(0 10px 26px #0008);transform-origin:58% 65%;animation:chv-promo-art-drift 9s ease-in-out infinite alternate}
.chv-campaign.chv-campaign-hero .chv-campaign-glow{position:absolute;z-index:3;inset:0;background:radial-gradient(ellipse at 75% 20%,color-mix(in srgb,var(--promo-glow) 24%,transparent),transparent 58%);mix-blend-mode:screen;pointer-events:none}
.chv-campaign.chv-campaign-hero .chv-campaign-glow::after{content:"";position:absolute;inset:-40%;background:linear-gradient(110deg,transparent 43%,#ffedb61c 48%,#fff2d638 49%,transparent 55%);transform:translateX(-45%) rotate(-8deg);animation:chv-promo-shine 9s ease-in-out infinite;pointer-events:none}
.chv-campaign.chv-campaign-hero .chv-campaign-content{position:absolute;z-index:4;left:7%;top:50%;width:45%;box-sizing:border-box;transform:translateY(-53%);text-shadow:0 2px 16px #000c}
.chv-campaign.chv-campaign-hero .chv-campaign-eyebrow{display:inline-block;margin:0 0 15px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--promo-accent) 65%,transparent);border-radius:7px;background:#131022a8;color:var(--promo-accent);font:850 11px/1.3 system-ui;letter-spacing:.18em}
.chv-campaign.chv-campaign-hero .chv-campaign-title{display:block;width:auto;height:auto;margin:0 0 16px;padding:0;overflow:visible;color:#fff4d8;font:950 clamp(32px,4.9vw,60px)/1.01 system-ui;letter-spacing:-.055em;text-wrap:balance}
.chv-campaign.chv-campaign-hero[data-campaign=truco-pvp] .chv-campaign-title{font-size:clamp(30px,4.2vw,48px)}
.chv-campaign.chv-campaign-hero .chv-campaign-copy{margin:0;max-width:350px;color:#f2e9df;font:550 15px/1.55 system-ui;text-wrap:pretty}
.chv-campaign.chv-campaign-hero .chv-campaign-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px 14px;margin:24px 0 0;padding:0;background:transparent}
.chv-campaign.chv-campaign-hero .chv-campaign-game{display:inline-flex;align-items:center;justify-content:center;gap:12px;width:auto;max-width:100%;min-height:50px;padding:13px 18px;border:1px solid #fff0bb;border-radius:12px;background:linear-gradient(120deg,#fff0aa,#ffd262 60%,#f3b941);color:#23102e;font:900 15px/1.2 system-ui;box-shadow:0 5px 24px #ffcc543b;text-shadow:none;cursor:pointer;touch-action:manipulation}
.chv-campaign.chv-campaign-hero .chv-campaign-game::after{content:"↗";font-size:20px;line-height:1}
.chv-campaign.chv-campaign-hero .chv-campaign-game:hover{background:#fff0b9}
.chv-campaign.chv-campaign-hero .chv-campaign-later{width:auto;min-height:44px;padding:9px 3px;color:#f2e6d8;font:650 13px/1.3 system-ui;text-decoration:underline;text-underline-offset:4px}
.chv-campaign.chv-campaign-hero .chv-campaign-controls{position:absolute;z-index:5;bottom:17px;left:7%;display:flex;align-items:center;justify-content:flex-start;gap:6px;margin:0;padding:0;background:transparent;font:700 12px/1 system-ui}
.chv-campaign.chv-campaign-hero .chv-campaign-arrow,.chv-campaign.chv-campaign-hero .chv-campaign-pause{height:44px;min-height:44px;min-width:44px;padding:7px 12px;border:1px solid #fff1c34d;border-radius:22px;background:#0b071cba;color:#fff4d8;box-shadow:0 3px 12px #0003;backdrop-filter:blur(10px);touch-action:manipulation}
.chv-campaign.chv-campaign-hero .chv-campaign-arrow{position:absolute;z-index:5;top:48%;font-size:29px;font-weight:400;padding:0 10px;transform:translateY(-50%)}
.chv-campaign.chv-campaign-hero .chv-campaign-previous{left:9px}.chv-campaign.chv-campaign-hero .chv-campaign-next{right:9px}
.chv-campaign.chv-campaign-hero .chv-campaign-count{min-width:36px;text-align:center;text-shadow:0 2px 5px #000}
.chv-campaign.chv-campaign-hero .chv-campaign-pause{margin-left:7px;min-width:104px;font:750 12px/1 system-ui}
.chv-campaign.chv-campaign-hero .chv-campaign-close{position:absolute;z-index:6;top:13px;right:13px;bottom:auto;width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;border:1px solid #fff1c36b;background:#10091dbe;color:#fff6e1;box-shadow:0 4px 16px #0005;backdrop-filter:blur(10px);touch-action:manipulation}
.chv-campaign.chv-campaign-hero button:focus-visible{outline:3px solid #fff;outline-offset:3px}
.chv-campaign.chv-campaign-hero.is-paused .chv-campaign-art,.chv-campaign.chv-campaign-hero.is-background .chv-campaign-art,.chv-campaign.chv-campaign-hero.is-paused .chv-campaign-glow::after,.chv-campaign.chv-campaign-hero.is-background .chv-campaign-glow::after{animation-play-state:paused}
@keyframes chv-promo-art-drift{from{transform:scale(1)}to{transform:scale(1.035)}}
@keyframes chv-promo-shine{0%,40%{transform:translateX(-50%) rotate(-8deg);opacity:0}52%{opacity:.65}72%,100%{transform:translateX(48%) rotate(-8deg);opacity:0}}
@media(max-width:620px){
 dialog.chv-campaign.chv-campaign-hero{width:calc(100vw - 24px);height:min(690px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);border-radius:22px}
 .chv-campaign.chv-campaign-hero .chv-campaign-art{width:100%;height:66%;top:-1%;right:0;object-position:center top;transform-origin:50% 70%}
 .chv-campaign.chv-campaign-hero .chv-campaign-picture::after{background:linear-gradient(0deg,#0e0917 0%,#0e0917f5 18%,#0e0917dc 31%,#0e09174a 50%,transparent 68%),linear-gradient(0deg,transparent 80%,#0e091744)}
 .chv-campaign.chv-campaign-hero .chv-campaign-content{top:auto;left:7%;bottom:77px;width:86%;transform:none;text-align:left}
 .chv-campaign.chv-campaign-hero .chv-campaign-eyebrow{margin-bottom:11px;padding:5px 8px;font-size:10px;letter-spacing:.15em}
 .chv-campaign.chv-campaign-hero .chv-campaign-title{margin-bottom:10px;font-size:clamp(30px,9.2vw,45px);line-height:1.02}
 .chv-campaign.chv-campaign-hero[data-campaign=truco-pvp] .chv-campaign-title{font-size:clamp(28px,8.3vw,39px)}
 .chv-campaign.chv-campaign-hero .chv-campaign-copy{font-size:13px;line-height:1.45;max-width:330px}
 .chv-campaign.chv-campaign-hero .chv-campaign-footer{margin-top:17px;gap:4px 12px}
 .chv-campaign.chv-campaign-hero .chv-campaign-game{min-height:47px;padding:12px 14px;font-size:13px}
 .chv-campaign.chv-campaign-hero .chv-campaign-later{font-size:12px}
 .chv-campaign.chv-campaign-hero .chv-campaign-controls{left:7%;bottom:16px}
 .chv-campaign.chv-campaign-hero .chv-campaign-arrow{top:30%;background:#100c21a8}.chv-campaign.chv-campaign-hero .chv-campaign-previous{left:7px}.chv-campaign.chv-campaign-hero .chv-campaign-next{right:7px}
 .chv-campaign.chv-campaign-hero .chv-campaign-close{right:11px;top:11px}
}
@media(max-width:620px) and (max-height:620px){
 .chv-campaign.chv-campaign-hero .chv-campaign-art{height:62%}
 .chv-campaign.chv-campaign-hero .chv-campaign-content{bottom:69px}
 .chv-campaign.chv-campaign-hero .chv-campaign-title{font-size:30px;margin-bottom:7px}
 .chv-campaign.chv-campaign-hero[data-campaign=truco-pvp] .chv-campaign-title{font-size:27px}
 .chv-campaign.chv-campaign-hero .chv-campaign-copy{font-size:12px;line-height:1.3}
 .chv-campaign.chv-campaign-hero .chv-campaign-eyebrow{margin-bottom:8px;font-size:9px}
 .chv-campaign.chv-campaign-hero .chv-campaign-footer{margin-top:11px;gap:2px 9px}
 .chv-campaign.chv-campaign-hero .chv-campaign-game{font-size:12px;min-height:44px;padding:10px 11px}
 .chv-campaign.chv-campaign-hero .chv-campaign-controls{bottom:11px}
}
@media(min-width:621px) and (max-height:500px){
 dialog.chv-campaign.chv-campaign-hero{height:calc(100dvh - 20px);max-height:calc(100dvh - 20px);width:min(850px,calc(100vw - 24px))}
 .chv-campaign.chv-campaign-hero .chv-campaign-content{top:18px;transform:none;width:51%}
 .chv-campaign.chv-campaign-hero .chv-campaign-eyebrow{margin-bottom:9px;font-size:9px}
 .chv-campaign.chv-campaign-hero .chv-campaign-title,.chv-campaign.chv-campaign-hero[data-campaign=truco-pvp] .chv-campaign-title{font-size:32px;margin-bottom:8px}
 .chv-campaign.chv-campaign-hero .chv-campaign-copy{font-size:12px;line-height:1.3}
 .chv-campaign.chv-campaign-hero .chv-campaign-footer{margin-top:13px}
 .chv-campaign.chv-campaign-hero .chv-campaign-game{font-size:12px;min-height:44px;padding:10px 12px}
 .chv-campaign.chv-campaign-hero .chv-campaign-controls{bottom:9px}
}
@media(prefers-reduced-motion:reduce){.chv-campaign.chv-campaign-hero .chv-campaign-art,.chv-campaign.chv-campaign-hero .chv-campaign-glow::after{animation:none!important}}
@media(forced-colors:active){.chv-campaign.chv-campaign-hero .chv-campaign-glow,.chv-campaign.chv-campaign-hero .chv-campaign-art-backdrop{display:none}.chv-campaign.chv-campaign-hero .chv-campaign-content{background:Canvas;padding:8px}.chv-campaign.chv-campaign-hero button{border:1px solid ButtonText}}
