/* ObsidianRP V7.1 FX Immersion — efectos visuales ligeros, accesibles y sin bloquear la navegación */
:root {
  --v71-fx-red: #f20d35;
  --v71-fx-red-soft: rgba(242,13,53,.32);
  --v71-fx-violet: #9b5cff;
  --v71-fx-cyan: #27e7ff;
  --v71-fx-gold: #f0b85a;
  --v71-fx-speed: 1;
}

html.v71-fx-low { --v71-fx-speed: .72; }
html.v71-fx-off .v71-fx-layer,
html.v71-fx-off .v71-page-entry,
html.v71-fx-off .v71-section-ambience { display:none !important; }

.v71-fx-layer {
  position:fixed;
  inset:0;
  z-index:9998;
  pointer-events:none;
  overflow:hidden;
  contain:strict;
}

.v71-fx-layer > i,
.v71-fx-layer > b,
.v71-fx-layer > span {
  position:absolute;
  left:var(--x);
  top:var(--y);
  pointer-events:none;
  will-change:transform,opacity,filter;
}

/* Humo: inicio, historias y zonas generales */
.v71-smoke {
  width:var(--size);
  height:var(--size);
  margin:calc(var(--size) / -2);
  border-radius:50%;
  background:radial-gradient(circle,rgba(210,215,225,.28) 0,rgba(95,98,110,.18) 34%,rgba(18,18,24,0) 72%);
  filter:blur(7px);
  mix-blend-mode:screen;
  animation:v71-smoke calc(850ms * var(--v71-fx-speed)) cubic-bezier(.16,.66,.3,1) forwards;
}
@keyframes v71-smoke {
  0% { opacity:0; transform:translate3d(0,0,0) scale(.25); }
  18% { opacity:.72; }
  100% { opacity:0; transform:translate3d(var(--dx),var(--dy),0) scale(1.75) rotate(var(--rot)); filter:blur(14px); }
}

/* Chispas PvP */
.v71-spark {
  width:var(--len);
  height:2px;
  transform-origin:left center;
  border-radius:10px;
  background:linear-gradient(90deg,#fff 0,#ffbd75 22%,var(--v71-fx-red) 58%,transparent 100%);
  box-shadow:0 0 8px rgba(255,45,75,.9);
  animation:v71-spark calc(470ms * var(--v71-fx-speed)) cubic-bezier(.1,.7,.2,1) forwards;
}
@keyframes v71-spark {
  0% { opacity:1; transform:rotate(var(--angle)) translateX(0) scaleX(.3); }
  100% { opacity:0; transform:rotate(var(--angle)) translateX(var(--travel)) scaleX(1); }
}
.v71-impact-ring {
  width:18px;
  height:18px;
  margin:-9px;
  border:2px solid rgba(255,35,70,.9);
  border-radius:50%;
  box-shadow:0 0 18px rgba(242,13,53,.75),inset 0 0 12px rgba(242,13,53,.35);
  animation:v71-ring calc(520ms * var(--v71-fx-speed)) ease-out forwards;
}

/* Nexus/comunidad: onda de datos */
.v71-data-ring {
  width:22px;
  height:22px;
  margin:-11px;
  border:1px solid rgba(155,92,255,.9);
  border-radius:50%;
  box-shadow:0 0 22px rgba(155,92,255,.55),inset 0 0 14px rgba(39,231,255,.18);
  animation:v71-ring calc(720ms * var(--v71-fx-speed)) ease-out forwards;
}
.v71-data-node {
  width:5px;
  height:5px;
  margin:-2.5px;
  border-radius:50%;
  background:var(--v71-fx-cyan);
  box-shadow:0 0 12px rgba(39,231,255,.95);
  animation:v71-node calc(600ms * var(--v71-fx-speed)) ease-out forwards;
}
@keyframes v71-ring {
  from { opacity:.9; transform:scale(.25); }
  to { opacity:0; transform:scale(5.2); }
}
@keyframes v71-node {
  from { opacity:1; transform:translate3d(0,0,0) scale(1); }
  to { opacity:0; transform:translate3d(var(--dx),var(--dy),0) scale(.25); }
}

/* Arcade: píxeles de neón */
.v71-pixel {
  width:var(--size);
  height:var(--size);
  margin:calc(var(--size) / -2);
  border:1px solid rgba(255,255,255,.65);
  background:var(--pixel-color);
  box-shadow:0 0 12px var(--pixel-color);
  animation:v71-pixel calc(650ms * var(--v71-fx-speed)) steps(6,end) forwards;
}
@keyframes v71-pixel {
  0% { opacity:1; transform:translate(0,0) rotate(0) scale(1); }
  100% { opacity:0; transform:translate(var(--dx),var(--dy)) rotate(180deg) scale(.2); }
}

/* Tienda: destello premium */
.v71-shimmer {
  width:150px;
  height:18px;
  margin:-9px -75px;
  border-radius:50%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),rgba(240,184,90,.72),transparent);
  filter:blur(2px);
  transform:rotate(var(--angle)) scaleX(.15);
  animation:v71-shimmer calc(620ms * var(--v71-fx-speed)) ease-out forwards;
}
@keyframes v71-shimmer {
  0% { opacity:.9; transform:rotate(var(--angle)) scaleX(.1); }
  100% { opacity:0; transform:rotate(var(--angle)) scaleX(1.2); filter:blur(8px); }
}

/* Acceso/registro: sello circular */
.v71-sigil {
  width:38px;
  height:38px;
  margin:-19px;
  border:1px solid rgba(242,13,53,.85);
  border-radius:50%;
  box-shadow:0 0 0 7px rgba(242,13,53,.08),0 0 28px rgba(242,13,53,.45);
  animation:v71-sigil calc(760ms * var(--v71-fx-speed)) cubic-bezier(.12,.7,.2,1) forwards;
}
.v71-sigil::before,.v71-sigil::after {
  content:"";
  position:absolute;
  inset:7px;
  border:1px solid rgba(255,255,255,.45);
  transform:rotate(45deg);
}
.v71-sigil::after { inset:13px; border-color:rgba(242,13,53,.8); transform:rotate(0); }
@keyframes v71-sigil {
  0% { opacity:0; transform:scale(.15) rotate(-65deg); }
  35% { opacity:1; }
  100% { opacity:0; transform:scale(2.35) rotate(75deg); }
}

/* Administración: pulso escáner discreto */
.v71-scan {
  width:220px;
  height:1px;
  margin-left:-110px;
  background:linear-gradient(90deg,transparent,rgba(242,13,53,.95),transparent);
  box-shadow:0 0 14px rgba(242,13,53,.7);
  animation:v71-scan calc(560ms * var(--v71-fx-speed)) ease-out forwards;
}
@keyframes v71-scan {
  from { opacity:.9; transform:translateY(-28px) scaleX(.25); }
  to { opacity:0; transform:translateY(28px) scaleX(1); }
}

/* Entrada distinta para cada sección */
.v71-page-entry {
  position:fixed;
  inset:0;
  z-index:9997;
  display:grid;
  place-items:center;
  pointer-events:none;
  overflow:hidden;
  background:rgba(4,4,7,.94);
  animation:v71-entry-out 760ms cubic-bezier(.55,.04,.27,.99) 260ms forwards;
}
.v71-page-entry::before {
  content:"";
  position:absolute;
  inset:-30%;
  opacity:.55;
  background:radial-gradient(circle at 50% 50%,var(--entry-glow,rgba(242,13,53,.24)),transparent 32%);
  animation:v71-entry-breathe 900ms ease-out forwards;
}
.v71-page-entry::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--entry-line,#f20d35),transparent);
  box-shadow:0 0 28px var(--entry-line,#f20d35);
  transform:scaleX(.1);
  animation:v71-entry-line 690ms ease-out forwards;
}
.v71-page-entry span {
  position:relative;
  z-index:1;
  color:#fff;
  font-size:10px;
  font-weight:900;
  letter-spacing:.32em;
  text-shadow:0 0 22px var(--entry-line,#f20d35);
  animation:v71-entry-title 720ms ease-out forwards;
}
@keyframes v71-entry-line { 0%{opacity:0;transform:scaleX(.05)} 45%{opacity:1} 100%{opacity:0;transform:scaleX(1)} }
@keyframes v71-entry-title { 0%{opacity:0;letter-spacing:.7em;transform:scale(.88)} 45%{opacity:1} 100%{opacity:0;letter-spacing:.22em;transform:scale(1.04)} }
@keyframes v71-entry-breathe { from{transform:scale(.7);opacity:0} 45%{opacity:.7} to{transform:scale(1.3);opacity:0} }
@keyframes v71-entry-out { to{opacity:0;visibility:hidden} }

/* Ambiente de página: muy suave y no interactivo */
.v71-section-ambience {
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  opacity:.28;
  mix-blend-mode:screen;
}
.v71-section-ambience::before,
.v71-section-ambience::after {
  content:"";
  position:absolute;
  width:38vw;
  height:38vw;
  min-width:360px;
  min-height:360px;
  border-radius:50%;
  filter:blur(90px);
  background:var(--ambience-a,rgba(242,13,53,.13));
  animation:v71-ambience 15s ease-in-out infinite alternate;
}
.v71-section-ambience::before { left:-18vw; top:15vh; }
.v71-section-ambience::after { right:-20vw; bottom:-10vh; background:var(--ambience-b,rgba(120,0,30,.1)); animation-delay:-7s; }
@keyframes v71-ambience { to{transform:translate3d(6vw,-4vh,0) scale(1.14)} }

body.v71-section-social .v71-section-ambience { --ambience-a:rgba(155,92,255,.14); --ambience-b:rgba(39,231,255,.08); }
body.v71-section-pvp .v71-section-ambience { --ambience-a:rgba(255,18,50,.2); --ambience-b:rgba(255,120,30,.08); }
body.v71-section-arcade .v71-section-ambience { --ambience-a:rgba(39,231,255,.12); --ambience-b:rgba(168,60,255,.12); }
body.v71-section-store .v71-section-ambience { --ambience-a:rgba(240,184,90,.1); --ambience-b:rgba(242,13,53,.08); }
body.v71-section-auth .v71-section-ambience { --ambience-a:rgba(242,13,53,.12); --ambience-b:rgba(255,255,255,.035); }
body.v71-section-admin .v71-section-ambience { --ambience-a:rgba(242,13,53,.07); --ambience-b:rgba(70,75,90,.04); opacity:.16; }

/* Control FX */
.v71-fx-control {
  position:fixed;
  left:15px;
  bottom:15px;
  z-index:9996;
  min-width:66px;
  height:31px;
  padding:0 10px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:4px;
  color:#b8b8c2;
  background:rgba(7,7,11,.78);
  backdrop-filter:blur(14px);
  box-shadow:0 10px 30px rgba(0,0,0,.3);
  font:800 8px/1 system-ui,sans-serif;
  letter-spacing:.1em;
  cursor:pointer;
  transition:.2s ease;
}
.v71-fx-control:hover { color:#fff; border-color:rgba(242,13,53,.45); box-shadow:0 0 20px rgba(242,13,53,.13); }
.v71-fx-control b { color:var(--v71-fx-red); }

/* Hover premium en elementos interactivos */
html:not(.v71-fx-off) :is(.button,.v7-nexus-card,.v6-rail-card,.character-card,.story-card,.product-card,.v7-dashboard-panel) {
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,filter .22s ease;
}
html:not(.v71-fx-off) :is(.button,.v7-nexus-card,.character-card,.story-card,.product-card):hover {
  transform:translateY(-2px);
  filter:brightness(1.045);
}

@media (max-width:899px) {
  .v71-section-ambience { opacity:.14; }
  .v71-fx-control { left:9px; bottom:9px; min-width:58px; height:29px; }
  .v71-smoke { filter:blur(9px); }
}

@media (prefers-reduced-motion:reduce) {
  .v71-fx-layer,.v71-page-entry,.v71-section-ambience { display:none !important; }
  .v71-fx-control { display:none; }
  html:not(.v71-fx-off) :is(.button,.v7-nexus-card,.character-card,.story-card,.product-card):hover { transform:none; }
}
