/* SERPENS — adaptive performance + coming-soon cards */

/* Kits ainda não lançados */
.product--comingSoon{
  cursor:not-allowed !important;
  user-select:none;
  isolation:isolate;
  border-color:rgba(180,190,220,.16) !important;
  box-shadow:0 12px 34px rgba(0,0,0,.28) !important;
  filter:saturate(.38) brightness(.72);
}
.product--comingSoon .vipCard__media{
  filter:grayscale(.34) contrast(.94) brightness(.68) !important;
  transform:none !important;
}
.product--comingSoon .vipCard__content{
  z-index:3 !important;
  background:linear-gradient(to bottom,rgba(5,7,14,.20),rgba(5,7,14,.67) 56%,rgba(5,7,14,.94) 100%) !important;
}
.comingSoonShade{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(3,5,11,.12) 0 9px,rgba(3,5,11,.28) 9px 18px);
}
.comingSoonBadge{
  position:absolute;
  top:14px;
  left:50%;
  z-index:5;
  transform:translateX(-50%);
  min-width:128px;
  padding:9px 15px;
  border:1px solid rgba(255,255,255,.20);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(45,51,70,.96),rgba(17,20,31,.96));
  color:#fff;
  text-align:center;
  font-size:.76rem;
  font-weight:950;
  letter-spacing:.10em;
  line-height:1;
  box-shadow:0 10px 26px rgba(0,0,0,.42);
}
.product__price--soon{
  color:rgba(238,241,255,.86) !important;
  font-size:1rem !important;
  letter-spacing:.08em;
}
.btn--comingSoon,
.btn--comingSoon:disabled{
  opacity:.60 !important;
  cursor:not-allowed !important;
  pointer-events:none !important;
  border-color:rgba(255,255,255,.12) !important;
  background:rgba(255,255,255,.045) !important;
  color:rgba(238,241,255,.72) !important;
}
.comingSoonRedirect__main{
  min-height:100vh;
  display:grid;
  place-content:center;
  justify-items:center;
  gap:14px;
  text-align:center;
}
.comingSoonRedirect__main h1,
.comingSoonRedirect__main p{margin:0;}
.comingSoonRedirect__eyebrow{
  font-weight:900;
  letter-spacing:.18em;
  color:var(--violet,#a45bff);
}

/* Desliga trabalho contínuo quando a aba ou o elemento não está visível. */
html.perf-hidden *,
.perf-offscreen *,
.perf-offscreen::before,
.perf-offscreen::after{
  animation-play-state:paused !important;
}

/* Modo leve automático para PCs/GPU mais fracos. */
html.perf-lite{
  scroll-behavior:auto !important;
}
html.perf-lite *,
html.perf-lite *::before,
html.perf-lite *::after{
  scroll-behavior:auto !important;
}
html.perf-lite body{
  background:
    radial-gradient(760px 520px at 18% 10%,rgba(47,210,255,.10),transparent 60%),
    radial-gradient(720px 500px at 82% 16%,rgba(155,92,255,.09),transparent 62%),
    #050713 !important;
}
html.perf-lite .card,
html.perf-lite .feature,
html.perf-lite .updateCard,
html.perf-lite .product,
html.perf-lite .socialCard,
html.perf-lite .ruleCard,
html.perf-lite .faq,
html.perf-lite .notice,
html.perf-lite .drawer__col,
html.perf-lite .cartDrawer__panel,
html.perf-lite .drawer__panel,
html.perf-lite .productBadge,
html.perf-lite .serpensCorruptedBadge{
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
html.perf-lite .page-home .craftHero__visual,
html.perf-lite .page-home .homeJoin__visual,
html.perf-lite .storeHeroArt,
html.perf-lite .serpensHeroVisual--rules,
html.perf-lite .serpensHeroVisual--updates,
html.perf-lite .brand__logo,
html.perf-lite .vipCard__media img{
  filter:none !important;
}
html.perf-lite .reveal,
html.perf-lite .reveal.is-in{
  opacity:1 !important;
  transform:none !important;
  transition:none !important;
}
html.perf-lite .introOverlayV103,
html.perf-lite .routeOverlay{
  animation-duration:.14s !important;
  transition-duration:.14s !important;
}
html.perf-lite .product,
html.perf-lite .card,
html.perf-lite .feature,
html.perf-lite .socialCard{
  box-shadow:0 10px 28px rgba(0,0,0,.32) !important;
}
html.perf-lite .section:not(.pageHero):not(.hero--craft){
  content-visibility:auto;
  contain-intrinsic-size:1px 680px;
}
html.perf-lite [data-carousel-track]{
  scroll-behavior:auto !important;
}

/* Corrupted: preserva identidade, mas reduz camadas e blur no hardware lento. */
html.perf-lite .serpensCorruptedCard::before,
html.perf-lite .serpensCorruptedMist{
  animation:none !important;
  filter:none !important;
  opacity:.42 !important;
}
html.perf-lite .serpensCorruptedAura{
  animation-duration:11s !important;
  mix-blend-mode:normal !important;
  opacity:.62 !important;
}
html.perf-lite .serpensCorruptedMedia img{
  transform:none !important;
  filter:contrast(1.04) brightness(.96) !important;
}
html.perf-lite .serpensCorruptedLightning,
html.perf-lite .serpensOuterLightning{
  mix-blend-mode:normal !important;
}
html.perf-lite .serpensCorruptedParticles .p{
  animation-duration:13s !important;
  box-shadow:0 0 5px rgba(190,116,255,.60) !important;
}
html.perf-lite .serpensCorruptedParticles .p:nth-child(n+7){
  display:none !important;
}
html.perf-lite .serpensOuterLightning .outerBolt{
  filter:none !important;
  box-shadow:0 0 8px rgba(225,190,255,.72),0 0 16px rgba(137,63,223,.40) !important;
  animation-duration:9s !important;
}
html.perf-lite .serpensOuterLightning .outerBolt--3,
html.perf-lite .serpensOuterLightning .outerBolt--4{
  display:none !important;
}
html.perf-lite .serpensBlackFlames{
  filter:none !important;
}
html.perf-lite .serpensBlackFlames .flame{
  display:none !important;
  box-shadow:inset 0 -12px 16px rgba(0,0,0,.86),0 0 12px rgba(76,18,124,.38) !important;
  animation-duration:4.8s !important;
}
html.perf-lite .serpensBlackFlames .flame--1,
html.perf-lite .serpensBlackFlames .flame--4,
html.perf-lite .serpensBlackFlames .flame--7,
html.perf-lite .serpensBlackFlames .flame--9{
  display:block !important;
}
html.perf-lite .serpensBlackFlames .flame::before{
  animation:none !important;
  filter:none !important;
}
html.perf-lite .serpensCorruptedFxFrame{
  contain:layout style;
}
html.perf-lite .serpensCorruptedCard{
  contain:layout paint style;
}

@media (prefers-reduced-motion:reduce), (prefers-reduced-data:reduce){
  .serpensCorruptedParticles .p:nth-child(n+5),
  .serpensOuterLightning .outerBolt:nth-child(n+2),
  .serpensBlackFlames .flame:nth-child(n+4){display:none !important;}
}
