@charset "UTF-8";
/* ============================================================
   SABNU — auth.css
   Armazón de las páginas de sesión (/acceder, /registro, /recuperar).
   El formulario en sí lo dibuja auth-ui.css: aquí sólo viven el fondo,
   la columna de marca y la rejilla.

   Paleta: #323946 (base) · #ffffff · #0ef
   ============================================================ */

/* ---------- FUENTES (autoalojadas) ---------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:300 800;font-display:swap;
  src:url('/Assets/FONTS/inter-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:300 800;font-display:swap;
  src:url('/Assets/FONTS/inter-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('/Assets/FONTS/spacegrotesk-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('/Assets/FONTS/spacegrotesk-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

/* ---------- TOKENS ---------- */
:root{
  --bg:#323946;
  --bg-deep:#2a303b;
  --bg-deeper:#252a34;

  --cy:#00eeff;
  --cy-soft:rgba(0,238,255,.12);
  --cy-ghost:rgba(0,238,255,.06);

  --w:#ffffff;
  --muted:rgba(255,255,255,.66);
  --muted-2:rgba(255,255,255,.45);
  --muted-3:rgba(255,255,255,.28);

  --line:rgba(255,255,255,.10);
  --line-2:rgba(255,255,255,.16);

  --ff:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --fd:'Space Grotesk','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;

  --gut:clamp(18px,5vw,56px);
  --e-out:cubic-bezier(.16,1,.3,1);
}

/* ---------- RESET ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0;min-width:0}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
html,body{overflow-x:clip;max-width:100%}
body{
  min-height:100svh;
  font-family:var(--ff);
  font-size:clamp(15px,.4vw + 14px,16.5px);
  line-height:1.6;
  color:var(--w);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,svg{display:block;max-width:100%}
svg{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
::selection{background:var(--cy);color:#0d1117}
:focus-visible{outline:2px solid var(--cy);outline-offset:3px;border-radius:6px}
[hidden]{display:none !important}

*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:var(--bg-deeper)}
*::-webkit-scrollbar-thumb{background:#4a5568;border-radius:20px;border:2px solid var(--bg-deeper)}
html{scrollbar-color:#4a5568 var(--bg-deeper);scrollbar-width:thin}

.skip-link{
  position:fixed;top:10px;left:10px;z-index:100;
  padding:12px 20px;background:var(--cy);color:#0d1117;font-weight:600;border-radius:10px;
  transform:translateY(-160%);transition:transform .3s var(--e-out);
}
.skip-link:focus{transform:translateY(0)}

/* ============================================================
   FONDO AMBIENTAL
   ============================================================ */
.fx-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.fx-bg .glow{
  position:absolute;display:block;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(0,238,255,.30),rgba(0,238,255,.08) 38%,transparent 66%);
}
.fx-bg .glow--1{left:-6%;top:-14%;width:clamp(320px,46vw,760px);animation:drift 26s ease-in-out infinite alternate}
.fx-bg .glow--2{right:-8%;top:26%;width:clamp(280px,38vw,640px);animation:drift 32s ease-in-out -6s infinite alternate-reverse;
  background:radial-gradient(circle,rgba(125,246,255,.24),rgba(0,238,255,.06) 40%,transparent 68%)}
.fx-bg .glow--3{left:18%;bottom:-18%;width:clamp(300px,40vw,700px);animation:drift 29s ease-in-out -12s infinite alternate}
@keyframes drift{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(6%,-5%,0) scale(1.14)}
}
.fx-bg__grid{
  position:absolute;inset:0;display:block;
  background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:clamp(60px,7vw,110px) clamp(60px,7vw,110px);
  -webkit-mask-image:radial-gradient(ellipse 85% 65% at 50% 45%,#000 5%,transparent 78%);
  mask-image:radial-gradient(ellipse 85% 65% at 50% 45%,#000 5%,transparent 78%);
  opacity:.5;
}
.fx-bg__vignette{
  position:absolute;inset:0;display:block;
  background:radial-gradient(ellipse 118% 85% at 50% 50%,transparent 46%,rgba(31,36,45,.55) 100%);
}
.fx-grain{
  position:fixed;inset:-50%;z-index:2;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 6s steps(6) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-4%)}
  60%{transform:translate(-3%,-3%)}80%{transform:translate(4%,4%)}100%{transform:translate(0,0)}
}
@media (max-width:700px){.fx-bg .glow--3{display:none}.fx-bg .glow{animation:none}}

/* ============================================================
   ESTRUCTURA
   ============================================================ */
.auth{
  position:relative;z-index:1;
  min-height:100svh;
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);
}

/* ---------- Columna de marca ---------- */
.auth__aside{
  position:relative;
  display:flex;flex-direction:column;justify-content:space-between;gap:40px;
  padding:clamp(28px,3.4vw,48px) clamp(28px,4vw,64px);
  border-right:1px solid var(--line);
  background:linear-gradient(160deg,rgba(39,44,54,.42),rgba(39,44,54,.12));
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  overflow:hidden;
}
.auth__aside-in{max-width:30rem;margin-block:auto;width:100%}

.brand{display:inline-flex;align-items:center;width:fit-content}
/* El logotipo trae ya la palabra; se dimensiona por alto. */
.brand__img{height:32px;width:auto;display:block}
@keyframes spin{to{transform:rotate(360deg)}}

.auth__eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--fd);font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted-2);margin-bottom:20px;
}
.auth__eyebrow i{
  width:7px;height:7px;border-radius:50%;background:var(--cy);flex:0 0 auto;
  box-shadow:0 0 0 5px var(--cy-ghost);animation:pulse 2.6s ease-in-out infinite;
}
@keyframes pulse{0%,100%{box-shadow:0 0 0 5px rgba(0,238,255,.06)}50%{box-shadow:0 0 0 10px rgba(0,238,255,0)}}

.auth__claim{
  font-family:var(--fd);font-weight:600;
  font-size:clamp(30px,3.2vw,50px);line-height:1.05;letter-spacing:-.035em;
}
.auth__claim em{font-style:normal;color:var(--cy)}
.auth__lede{margin-top:20px;color:var(--muted);max-width:44ch;font-size:15.5px}

.auth__points{display:flex;flex-direction:column;gap:14px;margin-top:34px}
.auth__points li{position:relative;padding-left:30px;color:var(--muted);font-size:15px}
.auth__points li::before{
  content:'';position:absolute;left:0;top:.42em;width:16px;height:16px;border-radius:50%;
  background:var(--cy-soft);border:1px solid rgba(0,238,255,.5);
}
.auth__points li::after{content:'';position:absolute;left:5px;top:calc(.42em + 5px);width:6px;height:6px;border-radius:50%;background:var(--cy)}

.auth__foot{color:var(--muted-3);font-size:13px;display:flex;flex-wrap:wrap;gap:6px 18px}
.auth__foot a{color:var(--muted-2);transition:color .3s var(--e-out)}
.auth__foot a:hover{color:var(--cy)}

/* ---------- Columna del formulario ---------- */
.auth__main{
  display:flex;flex-direction:column;
  padding:clamp(20px,3vw,40px) var(--gut) clamp(36px,5vw,60px);
  min-width:0;
}
.auth__top{
  display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px 16px;
  min-height:44px;margin-bottom:clamp(16px,3vw,34px);
}
.auth__top .brand{display:none;margin-right:auto}
.auth__top-txt{color:var(--muted-2);font-size:14px}
.auth__top-txt a{color:var(--cy);font-weight:500}
.auth__top-txt a:hover{text-decoration:underline;text-underline-offset:3px}

.auth__slot{margin:auto;width:100%;max-width:510px}

/* ---------- Entrada animada ---------- */
.reveal{opacity:0;transform:translateY(16px);animation:reveal .9s var(--e-out) forwards}
.reveal--1{animation-delay:.05s}
.reveal--2{animation-delay:.13s}
.reveal--3{animation-delay:.21s}
@keyframes reveal{to{opacity:1;transform:none}}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1000px){
  .auth{grid-template-columns:1fr}
  .auth__aside{display:none}
  .auth__top .brand{display:inline-flex}
  .auth__main{padding-top:clamp(18px,4vw,28px)}
}
@media (max-width:520px){
  .auth__top-txt{display:none}
}

/* ============================================================
   MOVIMIENTO REDUCIDO
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .fx-grain{display:none}
  .reveal{opacity:1;transform:none}
}
