:root{
    --bg:#0e0f11;
    --surface:#17181b;
    --surface-2:#1c1e22;
    --border:rgba(242,243,244,0.08);
    --border-strong:rgba(242,243,244,0.15);
    --ink:#f2f3f4;
    --muted:#9a9ea3;
    --muted-2:#63676c;
    --accent:#8fa3b3;
    --accent-ink:#12161a;
    --accent-soft:rgba(143,163,179,0.12);

    /* Poppins: títulos, marca y texto · Geist Mono: datos (números, dominios) */
    --font-display:'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-body:'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-mono:'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
    --font-brand:'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;

    --sp-1:.5rem; --sp-2:1rem; --sp-3:1.5rem; --sp-4:2rem;
    --sp-5:3rem; --sp-6:4.5rem; --sp-7:6rem; --sp-8:8rem;

    --container:1180px;
    --radius-s:10px; --radius-m:16px; --radius-l:24px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:var(--font-body);
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{margin:0;padding:0;list-style:none;}
  p{margin:0;}

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

  .ds-skip-link{
    position:absolute; left:-9999px; top:0;
    background:var(--accent); color:var(--accent-ink);
    padding:.75rem 1.25rem; z-index:200; font-family:var(--font-mono);
  }
  .ds-skip-link:focus{left:var(--sp-2); top:var(--sp-2);}

  .ds-container{
    max-width:var(--container);
    margin:0 auto;
    padding:0 var(--sp-4);
  }

  /* ---------- background texture ---------- */
  body::before{
    content:"";
    position:fixed; inset:0; z-index:-1;
    background:
      radial-gradient(60rem 40rem at 85% -10%, rgba(143,163,179,0.06), transparent 60%),
      radial-gradient(50rem 36rem at -10% 30%, rgba(255,255,255,0.03), transparent 60%);
  }

  /* ---------- header ---------- */
  .ds-header{
    position:sticky; top:0; z-index:100;
    background:rgba(10,14,19,0.62);
    backdrop-filter:blur(18px) saturate(140%);
    -webkit-backdrop-filter:blur(18px) saturate(140%);
    border-bottom:1px solid var(--border);
  }
  .ds-header .ds-container{
    display:flex; align-items:center; justify-content:space-between;
    height:72px;
  }
  .ds-brand{display:flex; align-items:center; gap:.65rem;}
  .ds-brand-mark{width:30px; height:30px; flex:none; object-fit:contain;}
  .ds-brand-word{
    font-family:var(--font-brand); font-weight:400; font-size:1.32rem;
    letter-spacing:-.015em; color:var(--ink);
  }
  .ds-brand-word b{font-weight:700;}

  .ds-nav{display:flex; align-items:center; gap:var(--sp-4);}
  .ds-nav-links{display:flex; gap:var(--sp-3);}
  .ds-nav-link{
    font-family:var(--font-body); font-size:.9rem; font-weight:500;
    color:var(--muted); padding:.4rem 0;
    border-bottom:1px solid transparent; transition:color .15s ease, border-color .15s ease;
  }
  .ds-nav-link:hover{color:var(--ink); border-color:var(--border-strong);}
  .ds-nav-actions{display:flex; align-items:center; gap:.6rem;}

  .ds-btn{
    display:inline-flex; align-items:center; justify-content:center;
    font-family:var(--font-body); font-size:.88rem; font-weight:600; letter-spacing:-.005em;
    padding:.62rem 1.15rem; border-radius:999px; border:1px solid transparent;
    background:transparent; cursor:pointer;
    transition:transform .15s ease, background .15s ease, border-color .15s ease, opacity .15s ease;
    white-space:nowrap;
  }
  .ds-btn--primary{background:var(--accent); color:var(--accent-ink);}
  .ds-btn--primary:hover{transform:translateY(-1px); opacity:.92;}
  .ds-btn--ghost{border-color:var(--border-strong); color:var(--ink);}
  .ds-btn--ghost:hover{background:rgba(255,255,255,0.05); transform:translateY(-1px);}
  .ds-btn--lg{padding:.9rem 1.6rem; font-size:.95rem;}

  /* ---------- eyebrow (login, registro) ---------- */
  .ds-eyebrow{
    display:inline-flex; align-items:center; gap:.5rem;
    font-family:var(--font-body); font-size:.82rem; font-weight:500;
    color:var(--muted); margin-bottom:var(--sp-2);
  }
  .ds-eyebrow::before{
    content:""; width:6px; height:6px; border-radius:50%;
    background:var(--accent); box-shadow:0 0 0 3px var(--accent-soft);
  }

  @keyframes ds-spin{to{transform:rotate(360deg);}}
  @keyframes ds-pulse{0%,100%{opacity:.5; transform:scale(.85);} 50%{opacity:1; transform:scale(1.15);}}

  /* ---------- footer ---------- */
  .ds-footer{border-top:1px solid var(--border); padding:var(--sp-4) 0;}
  .ds-footer .ds-container{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:var(--sp-2);
  }
  .ds-footer p{font-size:.82rem; color:var(--muted-2);}

  /* ---------- responsive ---------- */
  @media (max-width:520px){
    .ds-container{padding:0 var(--sp-3);}
  }
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
  }
