/* XORVANIQ Seasonal Engine presentation layer.
   Decorations are additive and never replace maintenance/error information. */
.xv-launch-ribbon,
.xv-promo-card {
  width: min(calc(100% - 48px), var(--xv-max, 1320px));
  margin: 22px auto 0;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(177,111,255,.34);
  border-radius: 16px;
  background: linear-gradient(110deg, rgba(31,16,55,.92), rgba(8,10,20,.96) 58%, rgba(19,12,38,.94));
  box-shadow: 0 18px 52px rgba(0,0,0,.24), inset 0 1px rgba(255,255,255,.06);
}
.xv-launch-ribbon {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  padding: 16px 20px;
}
.xv-launch-ribbon::after,
.xv-promo-card::after {
  content: "";
  position: absolute;
  width: 190px;
  height: 190px;
  right: -88px;
  top: -120px;
  border: 1px solid rgba(168,85,247,.24);
  border-radius: 50%;
  box-shadow: 0 0 0 18px rgba(168,85,247,.04), 0 0 0 36px rgba(168,85,247,.025);
  pointer-events: none;
}
.xv-launch-ribbon__eyebrow,
.xv-promo-card__eyebrow {
  display: block;
  margin-bottom: 4px;
  color: #c69bff;
  font: 800 .68rem/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.xv-launch-ribbon strong,
.xv-promo-card strong { display: block; font-size: 1.02rem; letter-spacing: -.01em; }
.xv-launch-ribbon__sub,
.xv-promo-card__sub { display: block; margin-top: 3px; color: #b3afbf; font-size: .83rem; }
.xv-launch-ribbon__clock {
  min-width: 184px;
  padding: 11px 14px;
  border: 1px solid rgba(177,111,255,.28);
  border-radius: 11px;
  background: rgba(3,4,10,.5);
  text-align: center;
}
.xv-launch-ribbon__timer {
  display: block;
  color: #f0e5ff;
  font: 800 1.12rem/1.15 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .05em;
}
.xv-launch-ribbon__zone { display: block; margin-top: 4px; color: #878492; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.xv-launch-ribbon[data-launch-state="live"] { border-color: rgba(94,224,163,.45); }
.xv-launch-ribbon[data-launch-state="live"] .xv-launch-ribbon__timer { color: #78f0b5; }
.xv-launch-ribbon[data-launch-state="live"] .xv-launch-ribbon__eyebrow { color: #78f0b5; }
.xv-promo-card { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 18px 20px; }
.xv-promo-card__status { justify-self: end; color: #f6d58b; font: 800 .7rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }
.xv-promo-card code { color: #f3d5ff; font: 800 .86rem ui-monospace, SFMono-Regular, Consolas, monospace; }
body[data-xv-season="HALLOWEEN"] .xv-launch-ribbon,
body[data-xv-season="HALLOWEEN"] .xv-promo-card { border-color: rgba(168,85,247,.58); background: linear-gradient(110deg, rgba(44,17,67,.94), rgba(9,8,22,.97) 60%, rgba(61,27,17,.38)); }
body[data-xv-season="HALLOWEEN"] .xv-launch-ribbon::before,
body[data-xv-season="HALLOWEEN"] .xv-promo-card::before { content: "✦  ·  ◌  ·  ✦"; position: absolute; right: 24px; bottom: 7px; color: rgba(246,189,96,.56); font-size: .8rem; letter-spacing: .55em; pointer-events: none; }
body[data-xv-season="VALENTINES"] .xv-launch-ribbon,
body[data-xv-season="VALENTINES"] .xv-promo-card { border-color: rgba(255,118,185,.42); }
body[data-xv-season="CANADA_DAY"] .xv-launch-ribbon,
body[data-xv-season="CANADA_DAY"] .xv-promo-card { border-color: rgba(251,113,133,.38); }
body[data-xv-season="CHRISTMAS"] .xv-launch-ribbon,
body[data-xv-season="CHRISTMAS"] .xv-promo-card,
body[data-xv-season="NEW_YEAR"] .xv-launch-ribbon,
body[data-xv-season="NEW_YEAR"] .xv-promo-card { border-color: rgba(104,220,255,.32); }
body[data-xv-critical="true"] .xv-promo-card { display: none; }
body[data-xv-critical="true"] .xv-launch-ribbon { margin-top: 0; }
@media (max-width: 640px) {
  .xv-launch-ribbon, .xv-promo-card { width: min(calc(100% - 28px), var(--xv-max, 1320px)); }
  .xv-launch-ribbon::after, .xv-promo-card::after { display: none; }
  .xv-launch-ribbon { grid-template-columns: 1fr; gap: 12px; padding: 14px 15px; }
  .xv-launch-ribbon__clock { min-width: 0; width: 100%; }
  .xv-promo-card { grid-template-columns: 1fr; gap: 9px; padding: 15px; }
  .xv-promo-card__status { justify-self: start; }
}
@media (prefers-reduced-motion: reduce) {
  .xv-launch-ribbon::after, .xv-promo-card::after { display: none; }
}
