/* WORLDWATCH — tokens y primitivas compartidas (landing + command) */
:root{
  --bg:#04080c; --bg2:#060d13;
  --panel:rgba(7,15,21,.88); --panel2:rgba(10,20,27,.94);
  --border:#132430; --border2:#1c3341;
  --cyan:#3ee6f0; --cyan-dim:#1e8d99; --green:#34e58b; --amber:#ffb02e;
  --orange:#ff7a3c; --red:#ff4757; --magenta:#e455e0; --blue:#4d9fff;
  --text:#d9e8ee; --dim:#6c8796; --dim2:#415864;
  --mono:"JetBrains Mono","SFMono-Regular",ui-monospace,Menlo,Consolas,monospace;
  --sans:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
body{font-family:var(--mono);font-size:12px;line-height:1.55}
button{font-family:inherit;cursor:pointer;background:none;border:none;color:inherit}
a{color:var(--cyan);text-decoration:none}
img,canvas{max-width:100%}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}

:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:3px}

.badge-demo{display:inline-flex;align-items:center;gap:6px;font-size:9px;letter-spacing:.16em;
  color:var(--amber);border:1px solid rgba(255,176,46,.4);border-radius:4px;padding:3px 9px;
  background:rgba(255,176,46,.07);white-space:nowrap;font-weight:600}
.badge-demo::before{content:"◈"}
.badge-sim{font-size:7.5px;letter-spacing:.16em;color:var(--amber);
  border:1px solid rgba(255,176,46,.35);border-radius:3px;padding:1px 6px;font-weight:700}
.badge-osint{font-size:7.5px;letter-spacing:.16em;color:var(--green);
  border:1px solid rgba(52,229,139,.35);border-radius:3px;padding:1px 6px;font-weight:700}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;font-weight:700;
  border-radius:6px;padding:12px 22px;transition:background .18s,color .18s,box-shadow .18s;
  text-transform:uppercase}
.btn-primary{color:#04121a;background:var(--cyan);box-shadow:0 0 18px rgba(62,230,240,.3)}
.btn-primary:hover{background:#7df2f9}
.btn-ghost{color:var(--cyan);border:1px solid var(--cyan-dim);background:rgba(62,230,240,.05)}
.btn-ghost:hover{background:rgba(62,230,240,.13)}
.btn-amber{color:#1a1004;background:var(--amber);box-shadow:0 0 18px rgba(255,176,46,.25)}
.btn-amber:hover{background:#ffc95e}

.lang-switch{display:flex;border:1px solid var(--border2);border-radius:4px;overflow:hidden}
.lang-switch button{font-size:9px;letter-spacing:.1em;padding:4px 9px;color:var(--dim);font-weight:700}
.lang-switch button.active{background:var(--cyan);color:#04121a}
.lang-switch button:not(.active):hover{color:var(--text)}

.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;
  backdrop-filter:blur(10px);box-shadow:0 8px 30px rgba(0,0,0,.45)}

/* Modal genérico */
.modal-back{position:fixed;inset:0;z-index:90;background:rgba(2,5,8,.72);
  display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.modal-back.open{display:flex}
.modal{width:min(520px,100%);background:var(--panel2);border:1px solid var(--border2);
  border-radius:10px;padding:26px 28px;box-shadow:0 24px 80px rgba(0,0,0,.6)}
.modal h3{font-size:14px;letter-spacing:.2em;margin-bottom:14px;color:#fff}
.modal p{font-size:11px;color:var(--dim);margin-bottom:10px;line-height:1.7}
.modal .modal-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.modal ul{list-style:none;margin:8px 0 4px}
.modal li{font-size:10.5px;color:var(--dim);padding:5px 0 5px 16px;position:relative;line-height:1.6}
.modal li::before{content:"▸";position:absolute;left:0;color:var(--cyan)}

/* ---------- Puerta de acceso ---------- */
html.gated{overflow:hidden}
#gate{position:fixed;inset:0;z-index:999;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at 50% 40%,#081019 0%,var(--bg) 70%);
  transition:opacity .4s ease}
#gate.gate-out{opacity:0;pointer-events:none}
.gate-box{width:min(360px,calc(100vw - 36px));background:var(--panel2);
  border:1px solid var(--border2);border-radius:10px;padding:32px 30px;
  box-shadow:0 24px 90px rgba(0,0,0,.7);text-align:center}
.gate-box.shake{animation:gateShake .35s ease}
@keyframes gateShake{20%{transform:translateX(-7px)}40%{transform:translateX(6px)}
  60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}
.gate-orb{width:44px;height:44px;border-radius:50%;border:1px solid var(--cyan-dim);
  margin:0 auto 16px;display:grid;place-items:center;position:relative}
.gate-orb::before{content:"";width:16px;height:16px;border-radius:50%;
  border:1px solid var(--cyan);box-shadow:0 0 12px var(--cyan)}
.gate-box h1{font-size:13px;letter-spacing:.4em;color:#fff;margin-bottom:4px}
.gate-box .gate-sub{font-size:8px;letter-spacing:.26em;color:var(--dim);margin-bottom:6px}
.gate-box .gate-note{font-size:9px;color:var(--dim2);letter-spacing:.08em;margin-bottom:20px}
#gate-input{width:100%;background:#081119;border:1px solid var(--border2);border-radius:5px;
  color:var(--text);font-family:var(--mono);font-size:13px;letter-spacing:.3em;
  padding:11px 12px;outline:none;text-align:center}
#gate-input:focus{border-color:var(--cyan-dim)}
#gate-btn{width:100%;margin-top:12px}
#gate-err{font-size:9px;color:var(--red);letter-spacing:.14em;margin-top:12px}
.gate-foot{margin-top:20px;font-size:7.5px;letter-spacing:.2em;color:var(--dim2)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important}
}
