/* Blindaje 360° · pantalla de acceso (negro y dorado CJM). Colores fijos: es la cara de la marca, no sigue la paleta del cliente. */
@font-face{font-family:'Poppins';font-weight:500;font-style:normal;font-display:swap;src:url('/assets/fonts/Poppins-Medium.woff') format('woff')}
@font-face{font-family:'Poppins';font-weight:700;font-style:normal;font-display:swap;src:url('/assets/fonts/Poppins-Bold.woff') format('woff')}
@font-face{font-family:'Inter';font-weight:400;font-style:normal;font-display:swap;src:url('/assets/fonts/Inter-Regular.woff') format('woff')}
@font-face{font-family:'Inter';font-weight:500;font-style:normal;font-display:swap;src:url('/assets/fonts/Inter-Medium.woff') format('woff')}
@font-face{font-family:'Inter';font-weight:600;font-style:normal;font-display:swap;src:url('/assets/fonts/Inter-SemiBold.woff') format('woff')}
@property --lx-a{syntax:'<angle>';inherits:false;initial-value:0deg}

.lx{
  --g:#c9a24b; --g-hi:#f3dc9b; --g-lo:#8f6d1c; --ink:#f4f1ea; --ink-2:#b9b4a8; --ink-3:#7f7a70; --bg:#07080b; --glass:rgba(18,20,26,.72); --edge:rgba(201,162,75,.18);
  --disp:'Poppins','Inter',system-ui,sans-serif;
  position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;
  background:radial-gradient(1200px 700px at 18% 0%,#1d180c 0,transparent 60%),radial-gradient(900px 600px at 100% 100%,#14110a 0,transparent 55%),var(--bg);
  color:var(--ink);font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif
}
.lx-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:.9}
.lx-floor{position:absolute;left:-20%;right:-20%;bottom:-8%;height:46%;z-index:-2;pointer-events:none;
  background-image:linear-gradient(rgba(201,162,75,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(201,162,75,.13) 1px,transparent 1px);background-size:56px 56px;
  transform:perspective(520px) rotateX(62deg);transform-origin:bottom;mask-image:linear-gradient(to top,#000 10%,transparent 85%);-webkit-mask-image:linear-gradient(to top,#000 10%,transparent 85%);
  animation:lx-floor 6s linear infinite}
.lx-orb{position:absolute;border-radius:50%;filter:blur(90px);z-index:-2;pointer-events:none;opacity:.55}
.lx-orb.o1{width:520px;height:520px;left:-140px;top:-160px;background:#5a4512;animation:lx-drift 18s ease-in-out infinite alternate}
.lx-orb.o2{width:420px;height:420px;right:-120px;bottom:-140px;background:#3a2c0a;animation:lx-drift 22s ease-in-out infinite alternate-reverse}

/* Barra superior */
.lx-top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px clamp(18px,4vw,56px);animation:lx-down .8s cubic-bezier(.2,.8,.2,1) both}
.lx-mini{display:flex;align-items:center;gap:12px}.lx-mini b{display:block;font-family:var(--disp);font-weight:700;letter-spacing:.01em;font-size:1rem}
.lx-mini small{color:var(--ink-3);font-size:.74rem;letter-spacing:.04em}
.lx .lx-mini-logo{width:42px;max-height:40px}
.lx .logo-mark{width:40px;height:40px;border-radius:11px;background:linear-gradient(145deg,var(--g),var(--g-lo));color:#14110a}
.lx-status{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--ink-2);padding:7px 14px;border:1px solid var(--edge);border-radius:999px;background:rgba(10,11,14,.5);backdrop-filter:blur(8px)}
.lx-dot{width:8px;height:8px;border-radius:50%;background:#4cc27a;box-shadow:0 0 0 0 rgba(76,194,122,.6);animation:lx-pulse 2.2s ease-out infinite}
.lx-clock{color:var(--ink-3);padding-left:10px;border-left:1px solid var(--edge);font-variant-numeric:tabular-nums}

/* Cuerpo */
.lx-body{flex:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,440px);gap:clamp(28px,5vw,80px);align-items:center;padding:8px clamp(18px,4vw,56px) 28px;max-width:1360px;width:100%;margin:0 auto}
.lx-hero{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,3.5vw,48px);align-items:center}

/* Emblema con anillos (el «360°») */
.lx-emblem{position:relative;width:clamp(200px,22vw,300px);aspect-ratio:1;display:grid;place-items:center;animation:lx-zoom 1.2s cubic-bezier(.2,.8,.2,1) both}
.lx-ring{position:absolute;inset:0;border-radius:50%;pointer-events:none}
.lx-ring.r1{border:1.5px solid transparent;border-top-color:var(--g);border-right-color:rgba(201,162,75,.35);animation:lx-spin 9s linear infinite}
.lx-ring.r2{inset:9%;border:1px dashed rgba(201,162,75,.35);animation:lx-spin 26s linear infinite reverse}
.lx-ring.r3{inset:-7%;border:1px solid rgba(201,162,75,.12);box-shadow:inset 0 0 60px rgba(201,162,75,.08),0 0 80px rgba(201,162,75,.08)}
.lx-ring.r3::before{content:'';position:absolute;top:-4px;left:50%;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--g-hi);box-shadow:0 0 14px 3px rgba(243,220,155,.7)}
.lx-ring.r3{animation:lx-spin 14s linear infinite}
.lx-sweep{position:absolute;inset:4%;border-radius:50%;background:conic-gradient(from 0deg,rgba(201,162,75,.28),rgba(201,162,75,0) 70deg,transparent 360deg);mask:radial-gradient(circle,transparent 38%,#000 39%);-webkit-mask:radial-gradient(circle,transparent 38%,#000 39%);animation:lx-spin 4.5s linear infinite;mix-blend-mode:screen}
.lx-logo-float{position:relative;width:78%;display:grid;place-items:center;animation:lx-float 6s ease-in-out infinite;filter:drop-shadow(0 18px 40px rgba(201,162,75,.25))}
.lx .lx-logo{width:100%;max-height:none}
.lx-emblem .logo-mark{width:46%;height:46%;border-radius:28%;font-size:clamp(1.4rem,3vw,2.2rem)}

/* Texto */
.lx-eyebrow{display:flex;align-items:center;gap:10px;color:var(--g);font-size:.76rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;margin:0 0 16px;animation:lx-up .8s .1s cubic-bezier(.2,.8,.2,1) both}
.lx-eyebrow span{width:28px;height:1.5px;background:linear-gradient(90deg,var(--g),transparent)}
.lx-hero h1{font-family:var(--disp);font-weight:700;font-size:clamp(2rem,4.1vw,3.5rem);line-height:1.06;letter-spacing:-.02em;margin:0 0 18px;max-width:15ch}
.lx-hero h1 em{display:block;font-style:normal}
.lx-hero h1 em .lx-word{background:linear-gradient(100deg,var(--g-lo) 0%,var(--g) 25%,var(--g-hi) 50%,var(--g) 75%,var(--g-lo) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:lx-word .7s cubic-bezier(.2,.8,.2,1) both,lx-shine 6s 1.6s linear infinite}
.lx-word{display:inline-block;white-space:pre;animation:lx-word .7s cubic-bezier(.2,.8,.2,1) both}
.lx-lead{color:var(--ink-2);font-size:clamp(.98rem,1.2vw,1.1rem);line-height:1.6;max-width:46ch;margin:0 0 24px;animation:lx-up .8s .75s cubic-bezier(.2,.8,.2,1) both}
.lx-feats{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-wrap:wrap;gap:9px;max-width:560px}
.lx-feats li{display:flex;align-items:center;gap:8px;padding:8px 13px;border-radius:999px;font-size:.83rem;color:var(--ink);background:rgba(201,162,75,.06);border:1px solid var(--edge);
  transition:transform .25s,border-color .25s,background .25s,box-shadow .25s;animation:lx-up .6s cubic-bezier(.2,.8,.2,1) both}
.lx-feats li svg{color:var(--g)}
.lx-feats li:hover{transform:translateY(-2px);border-color:rgba(201,162,75,.55);background:rgba(201,162,75,.12);box-shadow:0 8px 24px -10px rgba(201,162,75,.5)}
.lx-trust{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.lx-trust li{display:flex;align-items:center;gap:12px;color:var(--ink-2);font-size:.9rem;animation:lx-left .6s cubic-bezier(.2,.8,.2,1) both}
.lx-trust li>span{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none;color:var(--g);background:linear-gradient(145deg,rgba(201,162,75,.18),rgba(201,162,75,.03));border:1px solid var(--edge)}

/* Tarjeta de acceso con borde luminoso giratorio */
.lx-panel{display:grid;place-items:center;animation:lx-card 1s .35s cubic-bezier(.2,.8,.2,1) both}
.lx-card{position:relative;width:100%;padding:34px 32px 26px;border-radius:22px;background:var(--glass);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);
  box-shadow:0 30px 80px -20px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.05)}
.lx-card::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:conic-gradient(from var(--lx-a),rgba(201,162,75,.08) 0deg,rgba(243,220,155,.9) 40deg,rgba(201,162,75,.08) 90deg,rgba(201,162,75,.08) 200deg,rgba(201,162,75,.6) 240deg,rgba(201,162,75,.08) 290deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);animation:lx-border 7s linear infinite}
.lx-card::after{content:'';position:absolute;inset:-1px;border-radius:inherit;z-index:-1;background:radial-gradient(60% 50% at 50% 0%,rgba(201,162,75,.18),transparent 70%);pointer-events:none}
.lx-card.shake{animation:lx-shake .45s cubic-bezier(.36,.07,.19,.97)}
.lx-card-head h2{font-family:var(--disp);font-weight:700;font-size:1.65rem;letter-spacing:-.01em;margin:14px 0 6px}
.lx-card-head p{color:var(--ink-2);margin:0;font-size:.92rem}
.lx-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--g-hi);background:rgba(201,162,75,.1);border:1px solid var(--edge)}
.lx-card form{display:grid;gap:16px;margin-top:26px}

/* Campos con etiqueta flotante */
.lx-field{position:relative}
.lx-field input{width:100%;height:56px;padding:22px 46px 8px 46px;border-radius:13px;border:1px solid rgba(255,255,255,.1);background:rgba(5,6,9,.55);color:var(--ink);font-size:.98rem;outline:none;
  transition:border-color .2s,box-shadow .2s,background .2s}
.lx-field input:hover{border-color:rgba(201,162,75,.35)}
.lx-field input:focus{border-color:var(--g);background:rgba(5,6,9,.75);box-shadow:0 0 0 4px rgba(201,162,75,.16)}
.lx-field input:-webkit-autofill{-webkit-text-fill-color:var(--ink);-webkit-box-shadow:0 0 0 60px #0b0c10 inset;caret-color:var(--ink)}
.lx-field label{position:absolute;left:46px;top:18px;color:var(--ink-3);font-size:.95rem;pointer-events:none;transform-origin:left top;transition:transform .2s cubic-bezier(.2,.8,.2,1),color .2s}
.lx-field input:focus+label,.lx-field input:not(:placeholder-shown)+label,.lx-field input:-webkit-autofill+label{transform:translateY(-11px) scale(.76);color:var(--g)}
.lx-ico{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--ink-3);display:grid;transition:color .2s}
.lx-field:focus-within .lx-ico{color:var(--g)}
.lx-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:10px;background:none;color:var(--ink-3);cursor:pointer;display:grid;place-items:center;transition:color .2s,background .2s}
.lx-eye:hover{color:var(--ink);background:rgba(255,255,255,.05)}.lx-eye.on{color:var(--g)}
.lx-caps{font-size:.8rem;color:#e8a94c;margin-top:-6px}
.lx-error{padding:11px 14px;border-radius:11px;font-size:.88rem;color:#ffb3a9;background:rgba(180,35,24,.16);border:1px solid rgba(255,122,107,.3);animation:lx-up .3s both}

/* Botón */
.lx-submit{position:relative;overflow:hidden;height:54px;margin-top:4px;border:0;border-radius:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--disp);font-weight:700;font-size:1rem;letter-spacing:.01em;color:#16120a;background:linear-gradient(135deg,var(--g-hi),var(--g) 45%,var(--g-lo));
  box-shadow:0 12px 30px -10px rgba(201,162,75,.65),inset 0 1px 0 rgba(255,255,255,.4);transition:transform .2s,box-shadow .2s,filter .2s}
.lx-submit::after{content:'';position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);animation:lx-sheen 3.8s 2s ease-in-out infinite}
.lx-submit:hover{transform:translateY(-1px);box-shadow:0 18px 40px -12px rgba(201,162,75,.8),inset 0 1px 0 rgba(255,255,255,.4);filter:brightness(1.05)}
.lx-submit:active{transform:translateY(0) scale(.99)}
.lx-submit:disabled{cursor:progress;filter:saturate(.7) brightness(.92)}
.lx-arrow{display:grid;transition:transform .25s}.lx-submit:hover .lx-arrow{transform:translateX(4px)}
.lx-spin{display:none;width:18px;height:18px;border-radius:50%;border:2px solid rgba(22,18,10,.25);border-top-color:#16120a;animation:lx-spin .7s linear infinite}
.lx-submit.busy .lx-spin{display:block}.lx-submit.busy .lx-arrow{display:none}
.lx-help{margin:18px 0 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.06);color:var(--ink-3);font-size:.8rem;text-align:center}
.lx :focus-visible{outline:2px solid var(--g-hi);outline-offset:3px}
.lx-field input:focus-visible{outline:none}

/* Pie */
.lx-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px clamp(18px,4vw,56px) 22px;color:var(--ink-3);font-size:.76rem;border-top:1px solid rgba(201,162,75,.08);animation:lx-up .8s 1.2s both}
.lx-foot b{color:var(--g);font-weight:600}

/* Animaciones */
@keyframes lx-spin{to{transform:rotate(360deg)}}
@keyframes lx-border{to{--lx-a:360deg}}
@keyframes lx-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes lx-drift{0%{transform:translate(0,0) scale(1)}100%{transform:translate(120px,80px) scale(1.15)}}
@keyframes lx-floor{to{background-position:0 56px,0 0}}
@keyframes lx-pulse{0%{box-shadow:0 0 0 0 rgba(76,194,122,.6)}80%,100%{box-shadow:0 0 0 9px rgba(76,194,122,0)}}
@keyframes lx-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes lx-down{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
@keyframes lx-left{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
@keyframes lx-word{from{opacity:0;transform:translateY(.55em) rotate(2deg);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes lx-shine{to{background-position:-250% 0}}
@keyframes lx-zoom{from{opacity:0;transform:scale(.82) rotate(-12deg)}to{opacity:1;transform:none}}
@keyframes lx-card{from{opacity:0;transform:translateY(28px) scale(.97)}to{opacity:1;transform:none}}
@keyframes lx-sheen{0%,70%{left:-60%}100%{left:130%}}
@keyframes lx-shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-7px)}40%,60%{transform:translateX(7px)}}

/* Responsivo */
@media (max-width:1360px){.lx-hero{grid-template-columns:1fr;gap:18px}.lx-emblem{width:132px}.lx-hero h1{max-width:18ch;font-size:clamp(2rem,3.4vw,3rem)}}
@media (max-height:820px) and (min-width:901px){.lx-trust{display:none}.lx-feats{margin-bottom:0}}
.lx-status.down{color:#ffb3a9}.lx-status.down .lx-dot{background:#ff7a6b;animation:none}
@media (max-width:900px){
  .lx-body{grid-template-columns:1fr;gap:34px;padding-top:0}
  .lx-panel{order:-1}
  .lx-emblem,.lx-trust,.lx-status .lx-clock{display:none}
  .lx-hero h1{font-size:clamp(1.6rem,6.5vw,2.2rem);max-width:none;margin-bottom:10px}
}
@media (max-width:520px){
  .lx-top{padding:16px}.lx-mini small{display:none}
  .lx-status{padding:6px 10px}
  .lx-card{padding:26px 20px 20px;border-radius:18px}
  .lx-body{padding:0 16px 20px}
  .lx-feats li{font-size:.78rem;padding:7px 11px}
  .lx-foot{padding:14px 16px 18px;justify-content:center;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  .lx *,.lx *::before,.lx *::after{animation:none!important;transition:none!important}
}
