/* ============================================================
   Navratri — home skin: banners, section heads, the view-more
   card, the custom block, products on show and their tags, the
   winner ticker and the quick-look dialogs. Loaded on every page,
   since the listing pages reuse these pieces. Scoped "html body …"
   so it outranks page and component CSS printed later.
   ============================================================ */

/* ── The banner cloth ──
   A banner is a panel of cream cloth sewn onto a band of its own colour
   (the nearest of the nine, --nvr-tone): a row of small mirrors runs
   along the band's head and a gold running stitch round the panel;
   pointed at, the cloth lifts and its mirrors catch the light. */
html body .nvr-ledge {
  --nvr-tone: var(--nvr-c2);
  position: relative; display: block;
  padding: 16px 7px 7px;
  border-radius: 22px;
  background: var(--nvr-tone);
  box-shadow: 0 5px 0 color-mix(in srgb, var(--nvr-tone) 55%, #120f2a), 0 18px 30px -18px rgba(31, 26, 69, .55);
  container-type: inline-size;
  transition: transform .3s cubic-bezier(.2, .9, .3, 1.2), box-shadow .3s ease;
}
html.dark body .nvr-ledge { box-shadow: 0 5px 0 #0a0820, 0 0 30px -10px var(--nvr-tone), 0 20px 40px -18px rgba(0, 0, 0, .9); }
html body .nvr-ledge::before {
  content: ''; position: absolute; z-index: 2; top: 3px; left: 18px; right: 18px; height: 10px;
  background: radial-gradient(circle at 50% 5px, #f4f6fa 0 2.4px, #8d95aa 2.8px, transparent 3.3px) 0 0 / 22px 10px repeat-x;
  transition: filter .25s ease;
}
html body .nvr-ledge::after { display: none; }
html body .nvr-ledge--slim { padding: 14px 6px 6px; }
html body .nvr-ledge > .nvr-bnr {
  position: relative;
  outline: 1.5px dashed rgba(200, 149, 47, .65); outline-offset: -7px;
  border-radius: 16px !important;
  border: 0 !important;
  background: var(--paper-2) !important;
  box-shadow: none !important;
  overflow: hidden;
}
html body a.nvr-ledge:hover, html body a.nvr-ledge:focus-visible, html body .nvr-ledge:focus-within { transform: translateY(-3px); }
html body a.nvr-ledge:hover::before, html body a.nvr-ledge:focus-visible::before, html body .nvr-ledge:hover::before, html body .nvr-ledge:focus-within::before { filter: brightness(1.35) drop-shadow(0 0 3px #fff); }
html body .nvr-ledge > .nvr-bnr::before { display: none !important; }
html body .nvr-bnr :is(.bpc-accent-strip, .bpc-mystery-strip) { display: none; }
@media (prefers-reduced-motion: reduce) { html body .nvr-ledge { transition: none; transform: none !important; } }

/* Banner text in the theme's type, whichever style; the banner's colour
   ringed round a small mirror before the label */
html body .nvr-bnr [data-bnr-title] { font-family: var(--font-display) !important; font-weight: 400 !important; letter-spacing: .005em !important; font-variation-settings: normal !important; line-height: 1.1 !important; overflow-wrap: break-word; hyphens: manual; }
html body .nvr-bnr [data-bnr-label], html body .nvr-bnr .ed-eyebrow {
  display: inline-flex; align-items: center; gap: .55rem;
  color: var(--ink-soft) !important; letter-spacing: .12em !important; font-weight: 700;
}
html body .nvr-bnr [data-bnr-label]::before {
  content: ''; flex-shrink: 0; width: 11px; height: 11px; border-radius: 50%;
  background: var(--nvr-mirror); box-shadow: 0 0 0 2.5px var(--nvr-tone, var(--nvr-c2));
}
html body .nvr-bnr .bnr-sub { color: var(--ink-2); font-size: .97rem; line-height: 1.55; }
html body .nvr-bnr .bnr-chip:not(.is-urgent):not(.is-ended) { color: var(--ink); background: var(--nvr-chip-bg); border-radius: 999px; font-weight: 700; font-family: var(--font-num); letter-spacing: .02em; }
html body .nvr-bnr .bnr-chip.is-urgent { color: var(--nvr-acc-on); background: var(--nvr-acc); border-radius: 999px; font-weight: 700; font-family: var(--font-num); }
html body .nvr-bnr .bnr-stat { color: var(--ink); font-weight: 700; }

/* Product layout: the cut-out product stands on a round mat of the
   banner's colour rimmed in gold, at the cloth's far side in a pool of
   light, over the cloth's lattice of mirror dots. The card is an
   inline-size container, so the mat keeps clear of the text. */
html body .nvr-bnr { --plate: min(30cqw, 11rem); --plate-x: 5cqw; }
html body .nvr-bnr[data-bnr-layout="product"] {
  background:
    var(--bnr-image) right calc(var(--plate-x) + var(--plate) * .2) top calc(50% - var(--plate) * .08) / auto min(calc(var(--plate) * .6), calc(var(--plate) * .6 / var(--bnr-ar, 1))) no-repeat,
    radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) right var(--plate-x) top calc(50% + var(--plate) * .3) / var(--plate) calc(var(--plate) * .2) no-repeat,
    linear-gradient(var(--nvr-tone, var(--nvr-c2)), var(--nvr-tone, var(--nvr-c2))) right calc(var(--plate-x) + var(--plate) * .1) top calc(50% + var(--plate) * .44) / calc(var(--plate) * .8) 3px no-repeat,
    radial-gradient(closest-side, rgba(255, 255, 255, .95), rgba(255, 255, 255,  0)) right calc(var(--plate-x) - var(--plate) * .2) center / calc(var(--plate) * 1.4) calc(var(--plate) * 1.4) no-repeat,
    var(--nvr-weave),
    linear-gradient(180deg, #fbf5e6, #f3e8cf) !important;
}
html.dark body .nvr-bnr[data-bnr-layout="product"] {
  background:
    var(--bnr-image) right calc(var(--plate-x) + var(--plate) * .2) top calc(50% - var(--plate) * .08) / auto min(calc(var(--plate) * .6), calc(var(--plate) * .6 / var(--bnr-ar, 1))) no-repeat,
    radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) right var(--plate-x) top calc(50% + var(--plate) * .3) / var(--plate) calc(var(--plate) * .2) no-repeat,
    linear-gradient(var(--nvr-tone, var(--nvr-c2)), var(--nvr-tone, var(--nvr-c2))) right calc(var(--plate-x) + var(--plate) * .1) top calc(50% + var(--plate) * .44) / calc(var(--plate) * .8) 3px no-repeat,
    radial-gradient(closest-side, rgba(200, 190, 255, .45), rgba(200, 190, 255,  0)) right calc(var(--plate-x) - var(--plate) * .2) center / calc(var(--plate) * 1.4) calc(var(--plate) * 1.4) no-repeat,
    var(--nvr-weave),
    linear-gradient(180deg, #1b1740, #120f2a) !important;
}
html body .nvr-bnr[data-bnr-layout="product"] [data-bnr-text] [data-bnr-title],
html body .nvr-bnr[data-bnr-layout="product"] [data-bnr-text] .bnr-stat { color: var(--ink) !important; }
html body .nvr-bnr[data-bnr-layout="product"] [data-bnr-text] :is(.bnr-sub, .bnr-live, .ed-status) { color: var(--ink-2) !important; }
html body .nvr-bnr[data-bnr-layout="product"] :is([data-bnr-label], [data-bnr-text] .ed-eyebrow) { color: var(--ink-soft) !important; }
@media (min-width: 640px) { html body .nvr-bnr[data-bnr-layout="product"] [data-bnr-text]:not([data-bnr-row]) { max-width: calc(100cqw - var(--plate) - var(--plate-x) - 3rem); } }
@media (min-width: 640px) {
  html[dir="rtl"] body .nvr-bnr[data-bnr-layout="product"] {
    background:
      var(--bnr-image) left calc(var(--plate-x) + var(--plate) * .2) top calc(50% - var(--plate) * .08) / auto min(calc(var(--plate) * .6), calc(var(--plate) * .6 / var(--bnr-ar, 1))) no-repeat,
      radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) left var(--plate-x) top calc(50% + var(--plate) * .3) / var(--plate) calc(var(--plate) * .2) no-repeat,
      linear-gradient(var(--nvr-tone, var(--nvr-c2)), var(--nvr-tone, var(--nvr-c2))) left calc(var(--plate-x) + var(--plate) * .1) top calc(50% + var(--plate) * .44) / calc(var(--plate) * .8) 3px no-repeat,
      radial-gradient(closest-side, rgba(255, 255, 255, .95), rgba(255, 255, 255,  0)) left calc(var(--plate-x) - var(--plate) * .2) center / calc(var(--plate) * 1.4) calc(var(--plate) * 1.4) no-repeat,
      var(--nvr-weave),
      linear-gradient(180deg, #fbf5e6, #f3e8cf) !important;
  }
  html.dark[dir="rtl"] body .nvr-bnr[data-bnr-layout="product"] {
    background:
      var(--bnr-image) left calc(var(--plate-x) + var(--plate) * .2) top calc(50% - var(--plate) * .08) / auto min(calc(var(--plate) * .6), calc(var(--plate) * .6 / var(--bnr-ar, 1))) no-repeat,
      radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) left var(--plate-x) top calc(50% + var(--plate) * .3) / var(--plate) calc(var(--plate) * .2) no-repeat,
      linear-gradient(var(--nvr-tone, var(--nvr-c2)), var(--nvr-tone, var(--nvr-c2))) left calc(var(--plate-x) + var(--plate) * .1) top calc(50% + var(--plate) * .44) / calc(var(--plate) * .8) 3px no-repeat,
      radial-gradient(closest-side, rgba(200, 190, 255, .45), rgba(200, 190, 255,  0)) left calc(var(--plate-x) - var(--plate) * .2) center / calc(var(--plate) * 1.4) calc(var(--plate) * 1.4) no-repeat,
      var(--nvr-weave),
      linear-gradient(180deg, #1b1740, #120f2a) !important;
  }
  html[dir="rtl"] body .nvr-bnr[data-bnr-layout="cover"] {
    background: linear-gradient(270deg, rgba(251, 245, 230, .97) 0%, rgba(251, 245, 230, .86) 38%, rgba(251, 245, 230, .1) 74%, rgba(251, 245, 230,  0) 100%), var(--bnr-image) center / cover no-repeat, #fbf5e6 !important;
  }
  html.dark[dir="rtl"] body .nvr-bnr[data-bnr-layout="cover"] {
    background: linear-gradient(270deg, rgba(18, 15, 42, .97) 0%, rgba(18, 15, 42, .84) 38%, rgba(18, 15, 42, .12) 74%, rgba(18, 15, 42,  0) 100%), var(--bnr-image) center / cover no-repeat, #120f2a !important;
  }
}
/* Phones: the mat at the top, the words below */
@media (max-width: 639px) {
  html body .nvr-bnr[data-bnr-layout="product"] {
    background:
      var(--bnr-image) center 1rem / auto 4.4rem no-repeat,
      radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) center 4.9rem / 7rem 1.4rem no-repeat,
      radial-gradient(closest-side, rgba(18, 15, 42, .2), transparent) center 6.25rem / 5.4rem 9px no-repeat,
      radial-gradient(closest-side, rgba(255, 255, 255, .95), rgba(255, 255, 255,  0)) center 0 / 10rem 7rem no-repeat,
      var(--nvr-weave),
      linear-gradient(180deg, #fbf5e6, #f3e8cf) !important;
  }
  html.dark body .nvr-bnr[data-bnr-layout="product"] {
    background:
      var(--bnr-image) center 1rem / auto 4.4rem no-repeat,
      radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) center 4.9rem / 7rem 1.4rem no-repeat,
      radial-gradient(closest-side, rgba(18, 15, 42, .2), transparent) center 6.25rem / 5.4rem 9px no-repeat,
      radial-gradient(closest-side, rgba(200, 190, 255, .45), rgba(200, 190, 255,  0)) center 0 / 10rem 7rem no-repeat,
      var(--nvr-weave),
      linear-gradient(180deg, #1b1740, #120f2a) !important;
  }
  html body .nvr-bnr:is([data-bnr-layout="product"], [data-bnr-layout="cover"]) [data-bnr-text] { padding-top: 7.6rem !important; }
}

/* Cover layout: the photo seen through a wash of cream (indigo after
   dark) */
html body .nvr-bnr[data-bnr-layout="cover"] {
  background: linear-gradient(90deg, rgba(251, 245, 230, .97) 0%, rgba(251, 245, 230, .86) 38%, rgba(251, 245, 230, .1) 74%, rgba(251, 245, 230,  0) 100%), var(--bnr-image) center / cover no-repeat, #fbf5e6 !important;
}
html.dark body .nvr-bnr[data-bnr-layout="cover"] {
  background: linear-gradient(90deg, rgba(18, 15, 42, .97) 0%, rgba(18, 15, 42, .84) 38%, rgba(18, 15, 42, .12) 74%, rgba(18, 15, 42,  0) 100%), var(--bnr-image) center / cover no-repeat, #120f2a !important;
}
html body .nvr-bnr[data-bnr-layout="cover"] [data-bnr-text] [data-bnr-title],
html body .nvr-bnr[data-bnr-layout="cover"] [data-bnr-text] .bnr-stat { color: var(--ink) !important; }
html body .nvr-bnr[data-bnr-layout="cover"] [data-bnr-text] :is(.bnr-sub, .bnr-live, .ed-status) { color: var(--ink-2) !important; }
html body .nvr-bnr[data-bnr-layout="cover"] :is([data-bnr-label], [data-bnr-text] .ed-eyebrow) { color: var(--ink-soft) !important; }
@media (max-width: 639px) {
  html body .nvr-bnr[data-bnr-layout="cover"] {
    background: linear-gradient(180deg, rgba(251, 245, 230,  0) 0, rgba(251, 245, 230, .2) 5rem, rgba(251, 245, 230, .96) 8rem, #fbf5e6 9.4rem), var(--bnr-image) center top / var(--bnr-phone-size, contain) no-repeat, #fbf5e6 !important;
  }
  html.dark body .nvr-bnr[data-bnr-layout="cover"] {
    background: linear-gradient(180deg, rgba(18, 15, 42,  0) 0, rgba(18, 15, 42, .2) 5rem, rgba(18, 15, 42, .96) 8rem, #120f2a 9.4rem), var(--bnr-image) center top / var(--bnr-phone-size, contain) no-repeat, #120f2a !important;
  }
}

/* The theme's own plain card (no image): cream cloth with its lattice */
html body .nvr-bnr[data-bnr-layout="none"], html body .nvr-bnr:not([data-bnr-layout]) {
  background: var(--nvr-weave), linear-gradient(180deg, #fbf5e6, #f3e8cf) !important;
}
html.dark body .nvr-bnr[data-bnr-layout="none"], html.dark body .nvr-bnr:not([data-bnr-layout]) {
  background: var(--nvr-weave), linear-gradient(180deg, #1b1740, #120f2a) !important;
}

/* Swiper dots: a row of small mirrors; the one showing is ringed in the
   night's colour */
html body .banner-carousel-swiper .swiper-pagination-bullet {
  width: 9px; height: 9px; opacity: 1; border-radius: 50%;
  background: var(--ink-soft) !important; opacity: .35;
  transition: width .35s cubic-bezier(.2, .9, .3, 1.2), background-color .3s ease, opacity .3s ease, border-radius .3s ease;
}
html body .banner-carousel-swiper .swiper-pagination-bullet-active,
html body .banner-carousel-swiper.bnr-progress .swiper-pagination-bullet-active { width: 13px; height: 13px; border-radius: 50%; opacity: 1; background: var(--nvr-mirror) !important; box-shadow: 0 0 0 3px var(--nvr-acc); transition: width .35s cubic-bezier(.2, .9, .3, 1.2), height .35s cubic-bezier(.2, .9, .3, 1.2); }
/* Arrows: round cream buttons ringed in gold that sink when pressed */
html body .banner-carousel-swiper :is(.swiper-button-prev, .swiper-button-next) {
  width: 42px; height: 42px; margin-top: -21px;
  border-radius: 50%;
  background: #fffaf0; color: #1f1a45;
  border: 0;
  box-shadow: inset 0 0 0 2px #c8952f, 0 3px 0 #1f1a45, 0 10px 16px -10px rgba(31, 26, 69, .5);
  transition: transform .15s ease, box-shadow .15s ease;
}
html body .banner-carousel-swiper :is(.swiper-button-prev, .swiper-button-next):active { transform: translateY(3px); box-shadow: inset 0 0 0 2px #c8952f, 0 0 0 #1f1a45; }
html body .banner-carousel-swiper :is(.swiper-button-prev, .swiper-button-next)::after { font-size: 13px; font-weight: 700; }
html[dir="rtl"] body .nvr-bnr :is(.ed-btn-primary, [data-bnr-text] a) svg { transform: scaleX(-1); }

/* ── Section heads ──
   Every section on the homepage and the listing pages prints its own
   head (eyebrow, display title, view-all link, a rule under it). Here
   the rule is a dandiya stick under the title with a row of small
   mirrors running on from it, the title is in the carved display face
   and its full stop is a mirror ringed in the night's colour. The
   scroll-reveal fade is dropped: the heads are there from the first
   paint. */
html body .reveal { opacity: 1; transform: none; }
html body :is(.reveal, .nvr-shell__head):has(> .min-w-0 > h2, > div > h2, > h2) {
  position: relative;
  border-bottom: 0 !important;
  padding-bottom: 1.4rem !important;
}
html body :is(.reveal, .nvr-shell__head):has(> .min-w-0 > h2, > div > h2, > h2)::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 8px;
  background: var(--nvr-stick-rule);
  -webkit-mask: linear-gradient(90deg, #000 60%, transparent); mask: linear-gradient(90deg, #000 60%, transparent);
}
html body { --nvr-stick-rule: linear-gradient(90deg, #c8952f 0 7px, transparent 7px 64px, #c8952f 64px 71px, transparent 71px) 0 0 / 100% 8px no-repeat, repeating-linear-gradient(-55deg, var(--nvr-acc) 0 6px, #e2b65a 6px 8px) 0 0 / 71px 8px no-repeat, radial-gradient(circle, #e8ebf2 0 2px, #8d95aa 2.4px, transparent 2.9px) 80px 0 / 14px 8px repeat-x; }
html[dir="rtl"] body :is(.reveal, .nvr-shell__head):has(> .min-w-0 > h2, > div > h2, > h2)::after { transform: scaleX(-1); }
html body :is(.reveal, .nvr-shell__head) h2.font-display, html body .nvr-shell__title {
  font-family: var(--font-display) !important;
  font-weight: 400 !important;
  letter-spacing: .005em !important;
  color: var(--ink);
}
html:is(:lang(ar), :lang(ur), :lang(bn), :lang(zh), :lang(ru), :lang(el)) body :is(.reveal, .nvr-shell__head) h2.font-display { font-weight: 800 !important; letter-spacing: 0 !important; }
/* A mirror for the full stop, whichever markup prints it */
html body :is(.reveal, .nvr-shell__head) h2.font-display > .display-italic,
html body #px-spa-content h2.font-display > .display-italic,
html body #px-spa-content h2.font-display > span > .display-italic,
html body .nvr-stop {
  display: inline-block; width: .24em; height: .24em; margin-inline-start: .14em; vertical-align: baseline;
  border-radius: 50%;
  background: var(--nvr-mirror);
  box-shadow: 0 0 0 .05em var(--nvr-acc);
  color: transparent !important; overflow: hidden; font-size: inherit; line-height: 0;
}
/* The asterisk dividers between sections become a small garba circle
   between two running stitches */
html body .w-full[aria-hidden="true"] > .flex > span.font-display {
  width: 46px; height: 46px; flex-shrink: 0;
  background: var(--art-circle) center / 150% auto no-repeat;
}
html body .w-full[aria-hidden="true"] > .flex > span.font-display > svg { visibility: hidden; }
html body .w-full[aria-hidden="true"] > .flex > .h-px { height: 2px !important; background: repeating-linear-gradient(90deg, var(--nvr-gold) 0 7px, transparent 7px 13px) !important; }

/* section-shell.php */
html body .nvr-shell { position: relative; padding: 3.5rem 1.5rem; background: transparent; }
html body .nvr-shell__head { position: relative; margin-bottom: 2.2rem; }
html body .nvr-shell__title { margin: 0; font-size: clamp(1.8rem, 4vw, 2.6rem); overflow-wrap: break-word; }

/* ── View-more card: a stretch of cloth under a toran at the end of the
   row ── */
html body .nvr-vm {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .9rem;
  min-height: 22rem; padding: 2rem 1.4rem;
  text-align: center; color: var(--ink);
  background: var(--nvr-weave), var(--paper-2);
  border: 2px dashed rgba(200, 149, 47, .55); border-radius: var(--radius);
  box-shadow: none;
  transition: transform .3s cubic-bezier(.2, .9, .3, 1.2), box-shadow .3s ease, border-color .3s ease;
}
html.dark body .nvr-vm { background: var(--nvr-weave), var(--paper-2); border-color: rgba(226, 182, 90, .45); }
html body .nvr-vm::after { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 10px; background: var(--nvr-hem); }
html body .nvr-vm:hover, html body .nvr-vm:focus-visible { transform: translateY(-4px); border-style: solid; border-color: var(--nvr-acc); outline: none; }
html body .nvr-vm .nvr-art { width: 170px; height: auto; }
html body .nvr-vm__label { font-family: var(--font-display); font-weight: 400; font-size: 1.5rem; line-height: 1.15; overflow-wrap: break-word; }
html body .nvr-vm__go {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .6rem 1.1rem; border-radius: 999px; outline: 1.5px dashed var(--btn-stitch); outline-offset: -4px;
  font-size: 13px; font-weight: 700; letter-spacing: .04em;
  color: var(--btn-ink); background: var(--btn-bg); box-shadow: var(--btn-shadow);
  transition: gap .3s ease;
}
html body .nvr-vm:hover .nvr-vm__go, html body .nvr-vm:focus-visible .nvr-vm__go { gap: .8rem; }
html[dir="rtl"] body .nvr-vm__go svg { transform: scaleX(-1); }

/* ── Custom block (home/section-custom.php) ── */
html body .hcb { border-radius: 20px; position: relative; isolation: isolate; overflow: hidden; }
html body .hcb--card { background: var(--paper-2); border: 1px solid var(--rule); box-shadow: var(--shadow); }
html body .hcb--card::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 10px; background: var(--nvr-hem); }
html body .hcb--brand { background: radial-gradient(circle, rgba(216, 220, 234, .2) 0 1.4px, transparent 1.8px) 0 0 / 22px 22px, linear-gradient(150deg, #2a2360, #1d1944 60%, #120f2a); color: #ffffff; }
html body .hcb--brand::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; background: var(--nvr-nine); }
html body .hcb--brand :is(h2, h3, p, .hcb__title) { color: #ffffff; }
html body .hcb__title { font-family: var(--font-display); font-weight: 400; }
html body .hcb__img, html body .hcb img { border-radius: 14px; }

/* ── A product on show ──
   The photo on a card sits on the cloth: its lattice of mirror dots
   behind, a pool of light from above, and the product standing on a
   round mat in the night's colour, rimmed in gold. */
html body .nvr-stage {
  position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(60% 55% at 50% 0%, rgba(255, 255, 255, .95), transparent 75%),
    var(--nvr-weave),
    linear-gradient(180deg, #fffaf0, #f6ecd5);
}
html.dark body .nvr-stage {
  background:
    radial-gradient(60% 55% at 50% 0%, rgba(200, 190, 255, .35), transparent 75%),
    var(--nvr-weave),
    linear-gradient(180deg, #1b1740, #120f2a);
}
html body .nvr-stage__plate {
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  width: min(72%, 12.5rem); aspect-ratio: 1;
  transition: transform .4s cubic-bezier(.2, .9, .3, 1.3);
}
/* The mat under it */
html body .nvr-stage__plate::before {
  content: ''; position: absolute; left: 8%; right: 8%; bottom: 3%; height: 15%;
  border-radius: 50%;
  background: radial-gradient(closest-side, var(--nvr-acc) 0 78%, transparent 80%), radial-gradient(closest-side, #c8952f 0 92%, transparent 95%);
  box-shadow: 0 6px 10px -6px rgba(31, 26, 69, .45);
}
html.dark body .nvr-stage__plate::before { box-shadow: 0 0 18px rgba(var(--nvr-tint-rgb), .45); }
html body .nvr-stage__plate img { position: relative; width: 74%; height: 74%; margin-bottom: 10%; object-fit: contain; filter: drop-shadow(0 10px 10px rgba(31, 26, 69, .25)); }
html body .nvr-stage > .absolute { z-index: 3; }
html body :is(a, article, div):hover > .nvr-stage .nvr-stage__plate,
html body :is(a, article, div):focus-within > .nvr-stage .nvr-stage__plate { transform: translateY(-4px); }
@media (prefers-reduced-motion: reduce) { html body :is(a, article, div):is(:hover, :focus-within) > .nvr-stage .nvr-stage__plate { transform: none; } }

/* Notes on a product: small solid pills with a running stitch inside */
html body .nvr-tag {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .32rem .7rem;
  font-family: var(--font-ui); font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.1;
  color: var(--t, #1f1a45);
  background: var(--c, #ffffff);
  border-radius: 999px;
  outline: 1px dashed rgba(255, 255, 255, .55); outline-offset: -3px;
}
html body .nvr-tag svg { width: 12px; height: 12px; flex-shrink: 0; }
html body .nvr-tag--red    { --c: var(--nvr-acc-deep); --t: #ffffff; }
html body .nvr-tag--green  { --c: #136a3a; --t: #ffffff; }
html body .nvr-tag--yellow { --c: #e2b65a; --t: #1f1a45; }
html body .nvr-tag--blue   { --c: #3b2f8f; --t: #ffffff; }
html body .nvr-tag--ink    { --c: #1f1a45; --t: #ffffff; }
html.dark body .nvr-tag--ink { --c: #f6f1ff; --t: #1f1a45; }
html body .nvr-veil { background: color-mix(in srgb, #fbf5e6 55%, transparent); }
html.dark body .nvr-veil { background: rgba(18, 15, 42, .55); }
html body .nvr-stars-row { color: #c8952f; gap: 1px; }
html.dark body .nvr-stars-row { color: #e2b65a; }
html body .nvr-free { color: var(--nvr-green-ink) !important; }

/* ── Winner ticker: the winners circle past like dancers round the
   ground: stitched cloth tags with scalloped hems along a dandiya
   stick ── */
html body .nvr-wt__head { position: relative; }
html body .nvr-wt .wt-wrap { padding: 4px 0 18px; }
html body .nvr-wt .wt-card {
  position: relative; overflow: visible;
  width: 300px; margin: 0 10px; gap: 14px; padding: 12px 14px 14px 12px;
  border-radius: 18px 18px 0 0; background: var(--paper-2); border: 0;
  box-shadow: var(--shadow);
  -webkit-mask: var(--nvr-scallop); mask: var(--nvr-scallop);
  padding-bottom: 20px;
}
html body .nvr-wt .wt-card::after {
  content: ''; display: block; position: absolute; left: 0; right: 0; top: 0; height: 10px; border: 0;
  background: var(--nvr-hem);
  pointer-events: none;
}
html body .nvr-wt .wt-card:hover, html body .nvr-wt .wt-card:focus-visible { transform: translateY(-3px); }
html body .nvr-wt .wt-tile { width: 66px; height: 66px; }
html body .nvr-wt .wt-tile-frame { border-radius: 50%; border: 0; background: var(--nvr-mat); box-shadow: inset 0 0 0 3px var(--nvr-acc), inset 0 0 0 5px var(--paper-2), inset 0 0 0 6.5px #c8952f; display: flex; align-items: center; justify-content: center; overflow: hidden; }
html.dark body .nvr-wt .wt-tile-frame { box-shadow: inset 0 0 0 3px var(--nvr-acc), inset 0 0 0 5px var(--paper-2), inset 0 0 0 6.5px #e2b65a; }
html body .nvr-wt .wt-tile-img { width: 70%; height: 70%; object-fit: contain; }
html body .nvr-wt .wt-card:hover .wt-tile-img { transform: translateY(-2px); }
html body .nvr-wt .wt-tile-fallback { color: var(--ink-soft); font-size: 22px; background: none; }
html body .nvr-wt .wt-ava { width: 26px; height: 26px; border: 0; box-shadow: 0 0 0 2px var(--paper-2), 0 0 0 4px var(--nvr-acc); }
html body .nvr-wt .wt-ava-init { display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: #ffffff; background: var(--nvr-acc); }
html body .nvr-wt .wt-src-pill { padding: .2rem .6rem; border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #f6f1ff; background: #2a2360; border: 0; }
html.dark body .nvr-wt .wt-src-pill { color: #120f2a; background: var(--nvr-acc); }
html body .nvr-wt .wt-time-pill { color: var(--ink-soft); font-size: 12px; font-family: var(--font-num); letter-spacing: .02em; }
html body .nvr-wt .wt-wname { font-family: var(--font-display); font-weight: 400; font-size: 1.12rem; color: var(--ink); }
html body .nvr-wt .wt-iname { color: var(--ink-2); }
html body .nvr-wt :is(.wt-val-currency, .wt-val-coins) { color: var(--nvr-acc-ink) !important; font-family: var(--font-num); letter-spacing: .01em; font-size: 1.12rem; font-weight: 700; white-space: nowrap; overflow-wrap: normal; }
html body .nvr-wt__ledge { position: absolute; left: 0; right: 0; bottom: calc(1.75rem + 18px); height: 12px; border-radius: 99px; background: repeating-linear-gradient(-55deg, var(--nvr-acc) 0 9px, #e2b65a 9px 13px); pointer-events: none; z-index: 0; box-shadow: inset 0 0 0 1.5px rgba(18, 15, 42, .35); }
html body .nvr-wt__ledge::before { display: none; }
html.dark body .nvr-wt__ledge { box-shadow: 0 0 22px -4px rgba(var(--nvr-tint-rgb), .55); }
html body .nvr-wt .wt-wrap { z-index: 1; }
@media (min-width: 640px) { html body .nvr-wt__ledge { bottom: calc(2.25rem + 18px); } }
@media (prefers-reduced-motion: reduce) { html body .nvr-wt .wt-track { animation-duration: 600s; } }

/* ── Quick-look dialogs ──
   The plugins' quick-look and quick-buy dialogs on the homepage are
   fixed overlays named …Modal, each with one panel: a cream panel with
   the kutch hem along its top edge, on a lip of the night's colour. */
html body .fixed.inset-0[id$="Modal"] > div:not(.absolute):not([class*="bg-black"]):is(.rounded-2xl, .rounded-3xl, [class*="rounded-"]) {
  position: relative; overflow: hidden;
  background: var(--nvr-sheen), var(--paper-2) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 22px !important;
  box-shadow: 0 5px 0 var(--nvr-acc), 0 26px 50px -24px rgba(18, 15, 42, .6) !important;
}
html body .fixed.inset-0[id$="Modal"] > div:not(.absolute):not([class*="bg-black"]):is(.rounded-2xl, .rounded-3xl, [class*="rounded-"])::before { content: ''; position: absolute; z-index: 5; left: 0; right: 0; top: 0; height: 10px; background: var(--nvr-hem); pointer-events: none; }
html body .fixed.inset-0[id$="Modal"] :is(h2, h3).font-display { font-family: var(--font-display); font-weight: 400; }
html body .fixed.inset-0[id$="Modal"] > .absolute.inset-0 { background: rgba(18, 15, 42, .55) !important; backdrop-filter: blur(4px); }

/* The listing pages print the same head as the homepage sections with
   the display full stop, sometimes without .reveal: the same strip */
html body #px-spa-content div.border-b:has(> div h2.font-display .display-italic):not(.reveal) { position: relative; border-bottom: 0 !important; }
html body #px-spa-content div.border-b:has(> div h2.font-display .display-italic):not(.reveal)::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 8px;
  background: var(--nvr-stick-rule);
  -webkit-mask: linear-gradient(90deg, #000 60%, transparent); mask: linear-gradient(90deg, #000 60%, transparent);
}

/* Home stats in the hero lift on hover instead of fading (home.css) */
html body .hero-stat-link:hover { opacity: 1 !important; }

/* Prize names on the plugins' cards come from the database in any
   script; each heading finds its own direction */
html[dir="rtl"] body :is([class*="ed-card-"], .wnc, .wishlist-item) :is(h2, h3, h4) { unicode-bidi: plaintext; }
html body .nvr-off { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; color: var(--nvr-indigo-ink); }
/* Plan cards: the rate in the reading face's bold */
html body .nvr-inv__rate { font-family: var(--font-num) !important; font-size: clamp(2.2rem, 3.4vw, 2.7rem); font-weight: 700 !important; letter-spacing: 0; font-variant-numeric: lining-nums tabular-nums; }

/* Banners in the plugins' own styles (the kernel markup, without .nvr-bnr):
   the same round mat for a cut-out product and the same cream wash over
   a cover photo, in place of the stock dark card. */
html body [data-bnr-card]:not(.nvr-bnr) { --plate: 9.5rem; --plate-x: 1.6rem; --nvr-tone: var(--nvr-c2); border-radius: 16px; }
html body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="product"] {
  background:
    var(--bnr-image) right calc(var(--plate-x) + var(--plate) * .2) top calc(50% - var(--plate) * .08) / auto min(calc(var(--plate) * .6), calc(var(--plate) * .6 / var(--bnr-ar, 1))) no-repeat,
    radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) right var(--plate-x) top calc(50% + var(--plate) * .3) / var(--plate) calc(var(--plate) * .2) no-repeat,
    linear-gradient(var(--nvr-tone), var(--nvr-tone)) right calc(var(--plate-x) + var(--plate) * .1) top calc(50% + var(--plate) * .44) / calc(var(--plate) * .8) 3px no-repeat,
    var(--nvr-weave),
    linear-gradient(180deg, #fbf5e6, #f3e8cf) !important;
}
html.dark body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="product"] {
  background:
    var(--bnr-image) right calc(var(--plate-x) + var(--plate) * .2) top calc(50% - var(--plate) * .08) / auto min(calc(var(--plate) * .6), calc(var(--plate) * .6 / var(--bnr-ar, 1))) no-repeat,
    radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) right var(--plate-x) top calc(50% + var(--plate) * .3) / var(--plate) calc(var(--plate) * .2) no-repeat,
    linear-gradient(var(--nvr-tone), var(--nvr-tone)) right calc(var(--plate-x) + var(--plate) * .1) top calc(50% + var(--plate) * .44) / calc(var(--plate) * .8) 3px no-repeat,
    var(--nvr-weave),
    linear-gradient(180deg, #1b1740, #120f2a) !important;
}
html body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="cover"] {
  background: linear-gradient(90deg, rgba(251, 245, 230, .97) 0%, rgba(251, 245, 230, .86) 38%, rgba(251, 245, 230, .1) 74%, rgba(251, 245, 230,  0) 100%), var(--bnr-image) center / cover no-repeat, #fbf5e6 !important;
}
html.dark body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="cover"] {
  background: linear-gradient(90deg, rgba(18, 15, 42, .97) 0%, rgba(18, 15, 42, .84) 38%, rgba(18, 15, 42, .12) 74%, rgba(18, 15, 42,  0) 100%), var(--bnr-image) center / cover no-repeat, #120f2a !important;
}
@media (min-width: 640px) {
  html[dir="rtl"] body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="product"] {
    background:
      var(--bnr-image) left calc(var(--plate-x) + var(--plate) * .2) top calc(50% - var(--plate) * .08) / auto min(calc(var(--plate) * .6), calc(var(--plate) * .6 / var(--bnr-ar, 1))) no-repeat,
      radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) left var(--plate-x) top calc(50% + var(--plate) * .3) / var(--plate) calc(var(--plate) * .2) no-repeat,
      linear-gradient(var(--nvr-tone), var(--nvr-tone)) left calc(var(--plate-x) + var(--plate) * .1) top calc(50% + var(--plate) * .44) / calc(var(--plate) * .8) 3px no-repeat,
      var(--nvr-weave),
      linear-gradient(180deg, #fbf5e6, #f3e8cf) !important;
  }
  html.dark[dir="rtl"] body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="product"] {
    background:
      var(--bnr-image) left calc(var(--plate-x) + var(--plate) * .2) top calc(50% - var(--plate) * .08) / auto min(calc(var(--plate) * .6), calc(var(--plate) * .6 / var(--bnr-ar, 1))) no-repeat,
      radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) left var(--plate-x) top calc(50% + var(--plate) * .3) / var(--plate) calc(var(--plate) * .2) no-repeat,
      linear-gradient(var(--nvr-tone), var(--nvr-tone)) left calc(var(--plate-x) + var(--plate) * .1) top calc(50% + var(--plate) * .44) / calc(var(--plate) * .8) 3px no-repeat,
      var(--nvr-weave),
      linear-gradient(180deg, #1b1740, #120f2a) !important;
  }
  html[dir="rtl"] body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="cover"] { background: linear-gradient(270deg, rgba(251, 245, 230, .97) 0%, rgba(251, 245, 230, .86) 38%, rgba(251, 245, 230, .1) 74%, rgba(251, 245, 230,  0) 100%), var(--bnr-image) center / cover no-repeat, #fbf5e6 !important; }
  html.dark[dir="rtl"] body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="cover"] { background: linear-gradient(270deg, rgba(18, 15, 42, .97) 0%, rgba(18, 15, 42, .84) 38%, rgba(18, 15, 42, .12) 74%, rgba(18, 15, 42,  0) 100%), var(--bnr-image) center / cover no-repeat, #120f2a !important; }
}
@media (max-width: 639px) {
  html body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="product"] {
    background: var(--bnr-image) center 1rem / auto 4.4rem no-repeat, radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) center 4.9rem / 7rem 1.4rem no-repeat, radial-gradient(closest-side, rgba(18, 15, 42, .2), transparent) center 6.25rem / 5.4rem 9px no-repeat, linear-gradient(180deg, #fbf5e6, #f3e8cf) !important;
  }
  html.dark body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="product"] {
    background: var(--bnr-image) center 1rem / auto 4.4rem no-repeat, radial-gradient(closest-side, var(--nvr-tone, var(--nvr-c2)) 0 80%, #c8952f 83% 93%, transparent 96%) center 4.9rem / 7rem 1.4rem no-repeat, radial-gradient(closest-side, rgba(18, 15, 42, .2), transparent) center 6.25rem / 5.4rem 9px no-repeat, linear-gradient(180deg, #1b1740, #120f2a) !important;
  }
  html body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="cover"] { background: linear-gradient(180deg, rgba(251, 245, 230,  0) 0, rgba(251, 245, 230, .2) 5rem, rgba(251, 245, 230, .96) 8rem, #fbf5e6 9.4rem), var(--bnr-image) center top / var(--bnr-phone-size, contain) no-repeat, #fbf5e6 !important; }
  html.dark body [data-bnr-card]:not(.nvr-bnr)[data-bnr-layout="cover"] { background: linear-gradient(180deg, rgba(18, 15, 42,  0) 0, rgba(18, 15, 42, .2) 5rem, rgba(18, 15, 42, .96) 8rem, #120f2a 9.4rem), var(--bnr-image) center top / var(--bnr-phone-size, contain) no-repeat, #120f2a !important; }
  html body [data-bnr-card]:not(.nvr-bnr):is([data-bnr-layout="product"], [data-bnr-layout="cover"]) [data-bnr-text] { padding-top: 7.6rem !important; }
}
html body [data-bnr-card]:not(.nvr-bnr):is([data-bnr-layout="product"], [data-bnr-layout="cover"]) [data-bnr-text] :is([data-bnr-title], .bnr-stat) { color: var(--ink) !important; }
html body [data-bnr-card]:not(.nvr-bnr):is([data-bnr-layout="product"], [data-bnr-layout="cover"]) [data-bnr-text] :is(.bnr-sub, .bnr-live, .ed-status) { color: var(--ink-2) !important; }
html body [data-bnr-card]:not(.nvr-bnr):is([data-bnr-layout="product"], [data-bnr-layout="cover"]) :is([data-bnr-label], [data-bnr-text] .ed-eyebrow) { color: var(--nvr-indigo-ink) !important; }
html body [data-bnr-card]:not(.nvr-bnr):is([data-bnr-layout="product"], [data-bnr-layout="cover"]) .bnr-chip:not(.is-urgent):not(.is-ended) { color: var(--ink); background: var(--nvr-chip-bg); }
html body [data-bnr-card]:not(.nvr-bnr) [data-bnr-title] { font-family: var(--font-display) !important; font-weight: 400 !important; font-variation-settings: normal !important; }
/* Stock yellow accent words inside headings take the night's colour */
html body :is(h1, h2) .text-yellow-400 { color: var(--nvr-acc-ink) !important; }
