/* /products/gamification/levels: the live section (#live) with the VIP pass widget (partial lvp-live). */
.lvp-sec { --lvp-text: #c3c9e6; --lvp-cyan: #11ced7; --lvp-red: #ff6464; position: relative; z-index: 2; color: #fff; overflow: hidden;
  background: radial-gradient(80% 60% at 50% 0%, #1b2b4a 0%, #070b1a 70%); }
.lvp-sec::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(rgba(255, 255, 255, .03) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .03) 1px, transparent 1px); background-size: 28px 28px; }
.lvp-sec > * { position: relative; }
.lvp-head { max-width: 50rem; margin: 0 auto 2.5rem; text-align: center; display: grid; gap: 1rem; }
.lvp-head .section_title { margin: 0; color: #fff; }
.lvp-head .title_sub { margin: 0; color: var(--lvp-text); opacity: 1; }
.lvp-kicker { justify-self: center; padding: .3rem .8rem; border-radius: 999px; background: rgba(17, 206, 215, .14); color: var(--lvp-cyan); font: 700 .75rem/1.2 "Lexend Deca", sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.lvp-part { width: 100%; max-width: 72rem; margin: 0 auto; scroll-margin-top: var(--nav-fixed-h, 6rem); }
.lvp-widget { width: 100%; min-height: 30rem; }
.lvp-widget_err { padding: 3rem 1rem; text-align: center; color: var(--lvp-red); }

/* ------------------------------------------------ the rest of the page (partials/sp-levels.hbs): the hero (a VIP pass
   moves from Silver to Gold; pure CSS, a 9 s loop), the side panels (#why ladder, #behavior months, #rewards event),
   the cards of #logic, #unlock and #show, and the FAQ. Dark navy game panels as on the other Gamification pages. */
:root { --lvl-bg: #0b1024; --lvl-card: #141b3a; --lvl-line: #263061; --lvl-text: #cdd4ee; --lvl-muted: #8a93b8;
  --lvl-cyan: #11ced7; --lvl-gold: #ffd25e; --lvl-green: #3ddc84; --lvl-red: #ff8a8a; }
.lvl-panel { width: 100%; max-width: 34rem; margin: 0 auto; padding: 1.25rem; border-radius: 1rem; background: radial-gradient(120% 90% at 50% 0%, #1d2550 0%, var(--lvl-bg) 65%); border: 1px solid var(--lvl-line); box-shadow: 0 1.5rem 3rem rgba(24, 27, 43, .18); font-family: "Lexend Deca", sans-serif; color: #fff; }
.lvl-panel_title { font-size: .8125rem; color: var(--lvl-muted); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 1rem; }

/* hero */
.lvl-hero { --T: 9s; position: relative; width: 100%; max-width: 34rem; margin: 0 auto; padding: 1.2rem; border-radius: 1.25rem; overflow: hidden; background: radial-gradient(70% 50% at 50% -10%, rgba(255, 210, 94, .18), transparent 65%), radial-gradient(60% 60% at 100% 100%, rgba(17, 206, 215, .16), transparent 70%), var(--lvl-bg); box-shadow: 0 2rem 4rem rgba(10, 12, 24, .35); font-family: "Lexend Deca", sans-serif; color: #fff; }
.lvl-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px); background-size: 28px 28px; pointer-events: none; }
.lvl-hcards { position: relative; height: 15.5rem; perspective: 900px; }
.lvl-hcard { position: absolute; inset: 0; display: grid; grid-template-rows: auto auto 1fr; gap: .6rem; padding: 1rem 1.15rem; border-radius: 1rem; overflow: hidden; box-shadow: 0 1rem 2rem rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .35); animation: var(--T) ease-in-out infinite; backface-visibility: hidden; }
.lvl-hcard::after { content: ""; position: absolute; inset: 0; opacity: .16; background: repeating-linear-gradient(135deg, transparent 0 14px, rgba(255, 255, 255, .45) 14px 15px); pointer-events: none; }
.lvl-hcard.is-silver { background: linear-gradient(135deg, #e3e9f3, #5d6880); color: #0d1430; animation-name: lvlCardOut; }
.lvl-hcard.is-gold { background: linear-gradient(135deg, #ffd76a, #9c6a08); color: #2b1d00; opacity: 0; animation-name: lvlCardIn; box-shadow: 0 1rem 2rem rgba(0, 0, 0, .45), 0 0 2.4rem rgba(255, 210, 94, .45); }
.lvl-hcard_top { display: flex; justify-content: space-between; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; opacity: .8; }
.lvl-hcard_mid { display: flex; align-items: center; justify-content: space-between; }
.lvl-hcard_mid small { display: block; font-size: .66rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; opacity: .75; }
.lvl-hcard_mid b { font-size: 2.3rem; line-height: 1.05; font-weight: 800; }
.lvl-hcard_mid img { width: 5rem; height: 5rem; object-fit: contain; filter: drop-shadow(0 .5rem .8rem rgba(0, 0, 0, .35)); }
.lvl-hcard_next { align-self: end; font-size: .82rem; font-weight: 600; opacity: .8; }
.lvl-hperks { position: relative; z-index: 1; align-self: end; display: grid; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.lvl-hperks li { display: flex; align-items: center; gap: .5rem; font-size: .82rem; font-weight: 700; opacity: 0; animation: lvlPerk var(--T) ease infinite; }
.lvl-hperks li.is-2 { animation-delay: .35s; } .lvl-hperks li.is-3 { animation-delay: .7s; }
.lvl-hperks i { display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: .45rem; background: rgba(43, 29, 0, .14); font-style: normal; }
.lvl-hbar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; margin-top: 1rem; font-size: .75rem; color: var(--lvl-muted); }
.lvl-hbar > i { height: .5rem; border-radius: 999px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.lvl-hbar s { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--lvl-cyan), var(--lvl-gold)); animation: lvlBar var(--T) ease-in-out infinite; }
.lvl-hbar em { display: grid; font-style: normal; font-weight: 700; color: #fff; font-variant-numeric: tabular-nums; }
.lvl-hbar u { grid-area: 1 / 1; text-decoration: none; }
.lvl-hbar .is-was { animation: lvlWas var(--T) infinite; }
.lvl-hbar .is-now { opacity: 0; color: var(--lvl-gold); animation: lvlNow var(--T) infinite; }
.lvl-hladder { display: flex; justify-content: space-between; align-items: center; margin-top: .9rem; padding: .5rem .7rem; border-radius: .8rem; background: rgba(255, 255, 255, .04); }
.lvl-hladder img, .lvl-hladder i { width: 2.1rem; height: 2.1rem; object-fit: contain; filter: grayscale(1) brightness(.55); }
.lvl-hladder img.is-on { filter: none; }
.lvl-hladder img.is-next { animation: lvlNext var(--T) infinite; }
.lvl-hladder i { display: grid; place-items: center; border-radius: 50%; border: 1px dashed var(--lvl-line); font-style: normal; font-weight: 800; color: var(--lvl-muted); filter: none; }
.lvl-htoast { position: absolute; right: 1rem; bottom: 1rem; z-index: 3; display: flex; align-items: center; gap: .6rem; max-width: 70%; padding: .6rem .8rem; border-radius: .8rem; background: #fff6d6; color: #2b1d00; box-shadow: 0 1rem 2rem rgba(0, 0, 0, .4); font-size: .75rem; opacity: 0; animation: lvlToast var(--T) infinite; }
.lvl-htoast > span { font-size: 1.3rem; }
.lvl-htoast b { display: block; font-size: .85rem; }
@keyframes lvlCardOut { 0%, 32% { opacity: 1; transform: none; } 38%, 94% { opacity: 0; transform: rotateY(90deg); } 100% { opacity: 1; transform: none; } }
@keyframes lvlCardIn { 0%, 34% { opacity: 0; transform: rotateY(-90deg); } 40%, 92% { opacity: 1; transform: none; } 98%, 100% { opacity: 0; transform: none; } }
@keyframes lvlPerk { 0%, 42% { opacity: 0; transform: translateX(-.5rem); } 47%, 92% { opacity: 1; transform: none; } 97%, 100% { opacity: 0; } }
@keyframes lvlBar { 0%, 5% { width: 72%; } 30%, 92% { width: 100%; } 100% { width: 72%; } }
@keyframes lvlWas { 0%, 29% { opacity: 1; } 32%, 96% { opacity: 0; } 100% { opacity: 1; } }
@keyframes lvlNow { 0%, 29% { opacity: 0; } 32%, 96% { opacity: 1; } 100% { opacity: 0; } }
@keyframes lvlNext { 0%, 36% { filter: grayscale(1) brightness(.55); transform: none; } 42% { filter: drop-shadow(0 0 .6rem var(--lvl-gold)); transform: scale(1.3); } 48%, 92% { filter: drop-shadow(0 0 .4rem var(--lvl-gold)); transform: scale(1.15); } 100% { filter: grayscale(1) brightness(.55); transform: none; } }
@keyframes lvlToast { 0%, 38% { opacity: 0; transform: translateY(.6rem); } 43%, 82% { opacity: 1; transform: none; } 88%, 100% { opacity: 0; transform: translateY(.6rem); } }

/* #why: the ladder */
.lvl-ladder { display: grid; gap: .45rem; }
.lvl-ladder .lvl-panel_title { margin-bottom: .5rem; }
.lvl-step { display: grid; grid-template-columns: 2.4rem minmax(0, 1fr) auto; align-items: center; gap: .75rem; padding: .5rem .75rem; border-radius: .75rem; background: var(--lvl-card); border: 1px solid var(--lvl-line); font-size: .82rem; }
.lvl-step img, .lvl-step > i { width: 2.4rem; height: 2.4rem; object-fit: contain; filter: grayscale(1) brightness(.6); }
.lvl-step > i { display: grid; place-items: center; border-radius: 50%; border: 1px dashed var(--lvl-line); font-style: normal; font-weight: 800; color: var(--lvl-muted); filter: none; }
.lvl-step b { display: block; font-weight: 600; }
.lvl-step span { font-size: .72rem; color: var(--lvl-muted); }
.lvl-step em { font-style: normal; color: var(--lvl-muted); font-size: .85rem; }
.lvl-step.is-done img, .lvl-step.is-me img { filter: none; }
.lvl-step.is-done em { color: var(--lvl-green); font-weight: 800; }
.lvl-step.is-me { border-color: rgba(255, 210, 94, .7); background: linear-gradient(90deg, rgba(255, 210, 94, .18), rgba(255, 210, 94, .04)); animation: lvlMe 3s ease-in-out infinite; }
.lvl-step.is-me u { padding: .15rem .45rem; border-radius: .35rem; background: var(--lvl-gold); color: #2b1d00; font-size: .62rem; font-weight: 800; letter-spacing: .06em; text-decoration: none; }
@keyframes lvlMe { 50% { box-shadow: 0 0 0 .3rem rgba(255, 210, 94, .12); } }

/* #logic, #unlock, #show: cards */
.lvl-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.lvl-cards.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lvl-cards li { display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem; border-radius: .875rem; background: #fff; border: 1px solid var(--sp-line, #e3e6f0); }
.lvl-cards li > b { font-weight: 600; }
.lvl-cards li > span { font-size: .9375rem; line-height: 1.5; color: #4a5068; }
.lvl-cards_art { position: relative; display: flex; align-items: center; justify-content: center; gap: .8rem; height: 5rem; margin-bottom: .25rem; border-radius: .7rem; background: var(--lvl-bg); color: #fff; font-family: "Lexend Deca", sans-serif; font-size: .8rem; }
.lvl-cards_art code { padding: .35rem .6rem; border-radius: .45rem; background: var(--lvl-card); color: var(--lvl-cyan); font-size: .85rem; }
.lvl-art_pts { display: grid; gap: .35rem; width: 60%; }
.lvl-art_pts i { height: .5rem; border-radius: 999px; background: linear-gradient(90deg, var(--lvl-cyan) 80%, rgba(255, 255, 255, .1) 80%); }
.lvl-art_pts b { font-size: .75rem; color: var(--lvl-text); }
.lvl-art_beh { display: grid; gap: .4rem; width: 55%; }
.lvl-art_beh > span { display: grid; gap: .15rem; }
.lvl-art_beh small { font-size: .62rem; color: var(--lvl-muted); text-transform: uppercase; letter-spacing: .06em; }
.lvl-art_beh i { height: .4rem; border-radius: 999px; background: linear-gradient(90deg, var(--lvl-gold) var(--w), rgba(255, 255, 255, .1) var(--w)); }
.lvl-art_updown { font-size: 1.6rem; color: var(--lvl-gold); }
.lvl-art_chg { display: grid; justify-items: center; gap: .3rem; color: var(--lvl-muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; }
.lvl-art_chg b { padding: .3rem .6rem; border-radius: .45rem; background: var(--lvl-card); color: #fff; font-size: .8rem; text-transform: none; letter-spacing: 0; }
.lvl-art_img { width: 3.6rem; height: 3.6rem; object-fit: contain; }
.lvl-art_lock { position: absolute; right: 30%; bottom: .7rem; font-size: 1.1rem; }
.lvl-art_shelf { display: flex; gap: .4rem; }
.lvl-art_shelf i { display: grid; place-items: center; width: 2.4rem; height: 2.8rem; border-radius: .45rem; background: var(--lvl-card); border: 1px solid var(--lvl-line); font-style: normal; font-size: .62rem; font-weight: 800; }
.lvl-art_shelf i.is-vip { border-color: var(--lvl-gold); color: var(--lvl-gold); }
.lvl-art_games { font-size: 1.6rem; letter-spacing: .3rem; }
.lvl-art_perks { display: grid; gap: .25rem; }
.lvl-art_perks i { padding: .15rem .5rem; border-radius: .35rem; background: var(--lvl-card); font-style: normal; font-size: .72rem; }
.lvl-art_widget { display: flex; align-items: center; gap: .6rem; }
.lvl-art_widget img { width: 2.6rem; height: 2.6rem; object-fit: contain; }
.lvl-art_widget i { width: 5rem; height: .45rem; border-radius: 999px; background: rgba(255, 255, 255, .1); overflow: hidden; }
.lvl-art_widget s { display: block; width: 64%; height: 100%; background: var(--lvl-cyan); }
.lvl-art_mail { font-size: .85rem; }
.lvl-art_lang { font-weight: 700; letter-spacing: .04em; color: var(--lvl-cyan); }

/* #behavior: three months */
.lvl-months { display: grid; gap: .5rem; }
.lvl-months .lvl-panel_title { margin-bottom: .5rem; }
.lvl-month { display: grid; grid-template-columns: 2.6rem 6rem 2.6rem minmax(0, 1fr); align-items: center; gap: .7rem; padding: .6rem .8rem; border-radius: .8rem; background: var(--lvl-card); border: 1px solid var(--lvl-line); font-size: .8rem; }
.lvl-month_m { font-weight: 700; color: var(--lvl-muted); text-transform: uppercase; letter-spacing: .08em; font-size: .7rem; }
.lvl-month_dep { color: var(--lvl-text); }
.lvl-month_dep b { font-size: 1.15rem; color: #fff; }
.lvl-month img { width: 2.6rem; height: 2.6rem; object-fit: contain; }
.lvl-month div b { display: block; font-weight: 600; }
.lvl-month em { font-style: normal; font-size: .72rem; font-weight: 700; }
.lvl-month.is-up em { color: var(--lvl-green); }
.lvl-month.is-kept { border-color: rgba(255, 210, 94, .55); }
.lvl-month.is-kept em { color: var(--lvl-gold); }
.lvl-month.is-down em { color: var(--lvl-red); }
.lvl-clock { justify-self: start; margin-top: .3rem; padding: .3rem .65rem; border-radius: 999px; background: rgba(17, 206, 215, .12); color: var(--lvl-cyan); font-size: .72rem; }

/* #rewards: the level change event and what it starts */
.lvl-event { display: grid; gap: .5rem; }
.lvl-event_card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; padding: .85rem 1rem; border-radius: .9rem; background: linear-gradient(90deg, rgba(255, 210, 94, .18), rgba(255, 210, 94, .04)); border: 1px solid rgba(255, 210, 94, .6); }
.lvl-event_ic { font-size: 1.4rem; }
.lvl-event_card b { display: block; font-size: .9rem; }
.lvl-event_card span { font-size: .78rem; color: var(--lvl-text); }
.lvl-event_card em { padding: .2rem .5rem; border-radius: .4rem; background: rgba(61, 220, 132, .15); color: var(--lvl-green); font-style: normal; font-size: .7rem; font-weight: 700; }
.lvl-event_line { justify-self: center; width: 2px; height: 1.2rem; background: linear-gradient(180deg, var(--lvl-gold), var(--lvl-cyan)); }
.lvl-event_act { display: flex; align-items: center; gap: .6rem; padding: .6rem .85rem; border-radius: .75rem; background: var(--lvl-card); border: 1px solid var(--lvl-line); font-size: .82rem; animation: lvlAct 6s ease-in-out infinite; }
.lvl-event_act span { font-size: 1.1rem; }
.lvl-event_act.is-2 { animation-delay: 2s; } .lvl-event_act.is-3 { animation-delay: 4s; }
@keyframes lvlAct { 0%, 22%, 100% { border-color: var(--lvl-line); transform: none; } 8% { border-color: var(--lvl-cyan); transform: translateX(4px); } }

/* FAQ: the Webflow look, opened by js/levels.js (this page's Webflow interactions know no FAQ items) */
.lvp-faq .faq-p-3 { height: 80px; transition: height .35s ease; }
.lvp-faq .faq-3 { position: relative; cursor: pointer; }
.lvp-faq .faq-icon { inset: 50% 0 auto auto; width: 24px; height: 24px; margin: -12px 0 0; filter: none; }
.lvp-faq .faq-icon::before, .lvp-faq .faq-icon::after { content: ""; position: absolute; left: 4px; right: 4px; top: 11px; height: 2px; border-radius: 2px; background: #181b2b; transition: transform .3s; }
.lvp-faq .faq-icon::after { transform: rotate(90deg); }
.lvp-faq .faq-p-3.is-open .faq-icon::after { transform: rotate(0); }

@media screen and (max-width: 991px) {
  .lvl-cards, .lvl-cards.is-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 600px) {
  .lvl-cards, .lvl-cards.is-3 { grid-template-columns: minmax(0, 1fr); }
  .lvl-hero { padding: .9rem; }
  .lvl-hcards { height: 14.5rem; }
  .lvl-hcard_mid b { font-size: 1.9rem; }
  .lvl-hladder img, .lvl-hladder i { width: 1.7rem; height: 1.7rem; }
  .lvl-month { grid-template-columns: 2.2rem 4.6rem 2.2rem minmax(0, 1fr); gap: .5rem; padding: .55rem .6rem; }
  .lvl-month img { width: 2.2rem; height: 2.2rem; }
  .lvl-htoast { max-width: 85%; right: .6rem; bottom: .6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .lvl-hero *, .lvl-panel * { animation: none !important; transition: none !important; }
  .lvl-hcard.is-silver { opacity: 0; } .lvl-hcard.is-gold, .lvl-hperks li { opacity: 1; }
}
