@font-face{font-family:'Fraunces';font-style:italic;font-weight:400;font-display:swap;src:url(/login/static/fonts/Fraunces-italic-400.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:'Fraunces';font-style:normal;font-weight:400;font-display:swap;src:url(/login/static/fonts/Fraunces-normal-400.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:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/login/static/fonts/IBMPlexMono-normal-400.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:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/login/static/fonts/IBMPlexMono-normal-500.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:'IBM Plex Sans';font-style:normal;font-weight:300 600;font-display:swap;src:url(/login/static/fonts/IBMPlexSans-var.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}

/* StratusCave — entrada (login / 2FA). Lenguaje visual del sitio + capa "cave": negro profundo, oro, HUD, vidrio. */
:root{
  --bg:#050608;--bg-2:#0b0d11;--panel:#101216;
  --fg:#eeece6;--fg-soft:#c7c5be;--soft:#8b8d8f;--muted:#666a6e;
  --line:#20242a;--line-soft:#181b1f;
  --gold:#c9a366;--gold-hi:#e2c48c;--gold-lo:#a8854c;--gold-soft:rgba(201,163,102,.14);
  --neg:#d9957c;
  --font-display:'Fraunces',Georgia,serif;--font-sans:'IBM Plex Sans',Arial,sans-serif;--font-mono:'IBM Plex Mono','Courier New',monospace;
  color-scheme:dark
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body.cave{
  min-height:100vh;min-height:100dvh;color:var(--fg);font:15px/1.6 var(--font-sans);
  background:
    radial-gradient(120% 80% at 50% 42%, #0e1117 0%, #07080b 48%, #030405 100%);
  overflow-x:hidden;
}
#cave-eagle{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:0;animation:cave-fade 1.2s .05s ease forwards}
@keyframes cave-fade{to{opacity:1}}

/* HUD grid + scanlines + vignette */
.cave-grid{position:fixed;inset:0;z-index:1;pointer-events:none;
  background-image:
    linear-gradient(rgba(201,163,102,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(201,163,102,.045) 1px,transparent 1px);
  background-size:56px 56px;background-position:center center;
  -webkit-mask-image:radial-gradient(ellipse 70% 65% at 50% 45%,#000 20%,transparent 78%);
          mask-image:radial-gradient(ellipse 70% 65% at 50% 45%,#000 20%,transparent 78%);
}
.cave-grid:after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px);
  opacity:.6}
.cave-vignette{position:fixed;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse 85% 75% at 50% 45%,transparent 55%,rgba(0,0,0,.75) 100%)}

/* HUD corner readouts */
.hud{position:fixed;z-index:3;font:500 10.5px/1.4 var(--font-mono);letter-spacing:2.2px;text-transform:uppercase;color:rgba(201,163,102,.62);pointer-events:none;display:flex;align-items:center;gap:10px}
.hud:before{content:"";width:18px;height:1px;background:currentColor;opacity:.7}
.hud-tl{top:26px;left:30px}
.hud-tr{top:26px;right:30px;flex-direction:row-reverse}
.hud-bl{bottom:24px;left:30px}
.hud-br{bottom:24px;right:30px;flex-direction:row-reverse;color:rgba(199,197,190,.55)}
.hud .dot{width:7px;height:7px;border-radius:50%;background:#7fae8f;box-shadow:0 0 10px #7fae8f;animation:cave-pulse 2.4s ease-in-out infinite}
@keyframes cave-pulse{50%{opacity:.35;box-shadow:0 0 2px #7fae8f}}

/* layout */
.cave-main{position:relative;z-index:2;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:72px 20px 56px}

/* glass card */
.cave-card{position:relative;width:100%;max-width:410px;padding:34px 34px 26px;
  background:linear-gradient(180deg,rgba(18,20,25,.5) 0%,rgba(9,10,13,.72) 100%);
  -webkit-backdrop-filter:blur(5px) saturate(130%);backdrop-filter:blur(5px) saturate(130%);
  border:1px solid rgba(201,163,102,.20);
  box-shadow:0 0 0 1px rgba(0,0,0,.55),0 40px 90px -20px rgba(0,0,0,.85),0 0 70px -10px rgba(201,163,102,.14),inset 0 1px 0 rgba(255,255,255,.04);
  animation:cave-rise .9s cubic-bezier(.2,.7,.2,1) both .15s}
@keyframes cave-rise{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
.cave-card:before{content:"";position:absolute;left:12%;right:12%;top:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold-hi),transparent);box-shadow:0 0 14px rgba(226,196,140,.7)}
.cave-card:after{content:"";position:absolute;inset:0;pointer-events:none;overflow:hidden;
  background:linear-gradient(180deg,transparent 0%,rgba(201,163,102,.06) 50%,transparent 100%) 0 -120% / 100% 40% no-repeat;
  animation:cave-scan 6.5s linear infinite 1.2s}
@keyframes cave-scan{0%{background-position:0 -60%}60%,100%{background-position:0 160%}}
.corner{position:absolute;width:16px;height:16px;border:0 solid var(--gold);opacity:.9}
.corner.tl{top:-6px;left:-6px;border-top-width:1.5px;border-left-width:1.5px}
.corner.tr{top:-6px;right:-6px;border-top-width:1.5px;border-right-width:1.5px}
.corner.bl{bottom:-6px;left:-6px;border-bottom-width:1.5px;border-left-width:1.5px}
.corner.br{bottom:-6px;right:-6px;border-bottom-width:1.5px;border-right-width:1.5px}

/* brand */
.cave-brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:22px}
.cave-mark{width:74px;height:auto;filter:drop-shadow(0 0 14px rgba(201,163,102,.35));margin-bottom:14px}
.cave-eyebrow{font:500 10.5px/1 var(--font-mono);letter-spacing:3.2px;text-transform:uppercase;color:var(--gold);opacity:.85;margin-bottom:10px}
.cave-title{margin:0;font:300 25px/1 var(--font-sans);letter-spacing:9px;padding-left:9px;color:var(--fg)}
.cave-title span{color:var(--gold);text-shadow:0 0 18px rgba(201,163,102,.45)}
.cave-brand--solo{margin:6px 0 30px}
.cave-brand--solo .cave-mark{width:84px;margin-bottom:16px}
.cave-lead{margin:14px auto 0;max-width:320px;font-family:var(--font-display);font-style:italic;font-size:15.5px;line-height:1.5;color:var(--fg-soft)}
.cave-rule{height:1px;margin:22px 0 4px;background:linear-gradient(90deg,transparent,rgba(201,163,102,.35),transparent)}

/* form */
.cave-field{display:block;margin-top:18px}
.cave-field span{display:flex;justify-content:space-between;font:500 10.5px/1 var(--font-mono);letter-spacing:2.2px;text-transform:uppercase;color:var(--soft);margin-bottom:8px}
.cave-input{width:100%;padding:13px 14px;border:1px solid #262b33;border-radius:0;background:rgba(4,5,7,.72);color:var(--fg);font:15px var(--font-sans);outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.cave-input:hover{border-color:#343a44}
.cave-input:focus{border-color:var(--gold);background:rgba(6,7,9,.9);box-shadow:0 0 0 3px rgba(201,163,102,.12),0 0 22px rgba(201,163,102,.14)}
.cave-code{text-align:center;font:500 26px/1 var(--font-mono);letter-spacing:.55em;padding:16px 10px 16px calc(10px + .55em)}
.cave-code::placeholder{color:#3a3f47;letter-spacing:.55em}
.cave-btn{position:relative;overflow:hidden;width:100%;margin-top:24px;padding:14px 18px;border:1px solid var(--gold);cursor:pointer;
  background:linear-gradient(135deg,var(--gold-hi) 0%,var(--gold) 45%,var(--gold-lo) 100%);
  color:#140f05;font:600 12.5px/1 var(--font-mono);letter-spacing:3.5px;text-transform:uppercase;
  box-shadow:0 10px 30px -10px rgba(201,163,102,.55),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .15s,box-shadow .2s,filter .2s}
.cave-btn:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;transform:skewX(-20deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transition:left .6s ease}
.cave-btn:hover{filter:brightness(1.06);box-shadow:0 14px 40px -10px rgba(201,163,102,.75),inset 0 1px 0 rgba(255,255,255,.35)}
.cave-btn:hover:after{left:130%}
.cave-btn:active{transform:translateY(1px)}
.cave-btn:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px}
.cave-input:focus-visible{outline:none}
.cave-alert{margin:18px 0 0;padding:10px 12px;border-left:2px solid var(--neg);background:rgba(217,149,124,.08);color:#f0c2b0;font-size:13.5px}
.cave-note{margin:14px 0 0;font-size:13.5px;color:var(--fg-soft);text-align:center}

/* QR first-time setup */
.cave-qr{position:relative;width:196px;margin:18px auto 6px;padding:10px;background:#fff;box-shadow:0 0 0 1px rgba(201,163,102,.35),0 0 40px rgba(201,163,102,.18)}
.cave-qr img{display:block;width:100%;height:auto}
.cave-qr .corner{width:14px;height:14px}
.cave-qr .corner.tl{top:-9px;left:-9px}.cave-qr .corner.tr{top:-9px;right:-9px}.cave-qr .corner.bl{bottom:-9px;left:-9px}.cave-qr .corner.br{bottom:-9px;right:-9px}
.cave-secret{margin:14px 0 0;padding:9px 11px;border:1px dashed rgba(201,163,102,.3);font-size:12px;color:var(--soft);text-align:center;word-break:break-all}
.cave-secret code{display:block;margin-top:4px;font:500 13px var(--font-mono);letter-spacing:1.5px;color:var(--fg)}

/* steps */
.cave-steps{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.cave-steps div{font:500 10px/1 var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--muted);padding-top:10px;border-top:2px solid #22262d}
.cave-steps div.on{color:var(--gold);border-top-color:var(--gold);box-shadow:0 -8px 14px -10px rgba(201,163,102,.8)}
.cave-steps div.done{color:var(--soft);border-top-color:rgba(201,163,102,.4)}

.cave-foot{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:3;margin:0;white-space:nowrap;font:10.5px/1.5 var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:#6b6f75;text-align:center}
.cave-foot a{color:var(--soft);text-decoration:none;border-bottom:1px solid #2a2e35}
.cave-foot a:hover{color:var(--gold)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

@media (max-width:700px){
  .hud{display:none}
  .cave-main{justify-content:flex-start;padding:max(36vh,250px) 16px 30px}
  .cave-foot{position:static;transform:none;margin-top:22px;white-space:normal}
  .cave-card{padding:28px 22px 22px;background:linear-gradient(180deg,rgba(16,18,22,.74) 0%,rgba(8,9,12,.88) 100%)}
  .cave-mark{display:none}
  .cave-title{font-size:22px;letter-spacing:7px;padding-left:7px}
  .cave-brand{margin-bottom:16px}
  .cave-brand--solo{margin:4px 0 24px}
  .cave-code{font-size:23px}
  .cave-secret code{font-size:12px;letter-spacing:.4px}
  .cave-qr{width:180px}
}
@media (max-height:640px) and (min-width:701px){.cave-main{padding-top:40px;padding-bottom:40px}.cave-mark{display:none}}
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important}
  #cave-eagle{opacity:1}
}

/* password reset pages (body.cave-sober): same frame as the login, without gold light */
.cave-aux{margin:18px 0 0;text-align:center}
.cave-link{font:500 11px/1.4 var(--font-mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--soft);text-decoration:none;border-bottom:1px solid #2a2e35}
.cave-link:hover,.cave-link:focus-visible{color:var(--fg);border-bottom-color:var(--soft);outline:none}
.cave-h2{margin:0 0 10px;font:400 13px/1.3 var(--font-mono);letter-spacing:2.4px;text-transform:uppercase;color:var(--fg);text-align:center}
.cave-text{margin:0;font-size:14px;line-height:1.5;color:var(--fg-soft);text-align:center}
.cave-hint{margin:14px 0 0;font-size:12.5px;line-height:1.5;color:var(--soft)}
.cave-ok{margin:14px 0 0;padding:10px 12px;border-left:2px solid #7fae8f;background:rgba(127,174,143,.07);color:var(--fg-soft);font-size:14px;line-height:1.5}
.cave-alert div+div{margin-top:4px}
.cave-sober .cave-card{border-color:rgba(255,255,255,.09);box-shadow:0 0 0 1px rgba(0,0,0,.55),0 40px 90px -20px rgba(0,0,0,.85)}
.cave-sober .cave-card:before,.cave-sober .cave-card:after,.cave-sober .cave-btn:after{display:none}
.cave-sober .cave-title span{text-shadow:none}
.cave-sober .cave-input:focus{box-shadow:none}
.cave-sober .cave-btn{background:rgba(201,163,102,.12);border-color:rgba(201,163,102,.6);color:var(--gold-hi);box-shadow:none}
.cave-sober .cave-btn:hover{filter:none;background:rgba(201,163,102,.2);box-shadow:none}
