/* ============================================================
   NovaDesk — base tokens and primitives
   ============================================================ */
:root{
  --bg:#0b0d12;
  --bg-alt:#0f1219;
  --surface:#141821;
  --surface-2:#1a1f2b;
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.14);
  --txt-1:#f2f4f8;
  --txt-2:#a8b0c0;
  --txt-3:#6f7787;
  --brand-1:#5b8cff;
  --brand-2:#8b5bff;
  --radius:16px;
  --radius-lg:22px;
  --shadow:0 18px 50px rgba(0,0,0,.45);
  --max:1180px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--txt-1);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:Sora,Inter,sans-serif;line-height:1.15;letter-spacing:-.02em;margin:0}
p{margin:0}
ul{margin:0;padding:0;list-style:none}

.wrap{max-width:var(--max);margin:0 auto;padding:0 24px;width:100%}
.wrap.narrow{max-width:820px}
.muted{color:var(--txt-2)}
.small{font-size:.875rem}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:999;
  background:var(--brand-1);color:#fff;padding:12px 20px;border-radius:0 0 10px 0;
}
.skip-link:focus{left:0}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 22px;border-radius:999px;border:1px solid transparent;
  font-weight:600;font-size:.95rem;cursor:pointer;
  transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary{
  background:linear-gradient(135deg,var(--brand-1),var(--brand-2));
  color:#fff;box-shadow:0 10px 26px rgba(91,140,255,.28);
}
.btn-primary:hover{box-shadow:0 14px 32px rgba(91,140,255,.4)}
.btn-ghost{
  background:rgba(255,255,255,.04);color:var(--txt-1);
  border-color:var(--line-strong);
}
.btn-ghost:hover{background:rgba(255,255,255,.08)}
.btn-sm{padding:10px 18px;font-size:.875rem}
.btn-lg{padding:16px 30px;font-size:1rem}
.btn.is-loading{opacity:.7;pointer-events:none}
