@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

/*====================*/
/*  Keyframes & Loader */
/*====================*/

/* Fade in animation for overall page load */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Slide up animation for elements entering the view */
@keyframes slideUp {
  from { transform: translateY(20px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* Spin animation for the loader */
@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Fade out animation for the loader overlay */
@keyframes fadeOut {
  from { opacity: 1; }
  to { opacity: 0; visibility: hidden; }
}

/* Loader overlay styles */
.loader {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: #1f242d;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 200;
  /* Automatically fade out after 2 seconds */
  animation: fadeOut 1s ease forwards;
  animation-delay: 2s;
}

.loader::before {
  content: "";
  box-sizing: border-box;
  width: 50px;
  height: 50px;
  border: 5px solid #007BFF;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

/*====================*/
/*  Base & Global Styles */
/*====================*/

body {
  background: #1f242d;
  color: #fff;
  font-family: 'Roboto', sans-serif;
  margin: 0;
  padding: 0;
  /* Fade the whole page in */
  animation: fadeIn 1.5s ease-in-out;
}

a {
  color: #fff;
  text-decoration: none;
}

/*====================*/
/*  Navbar Styling */
/*====================*/

.navbar {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  padding: 25px 5%;
  background: green;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 999;
  /* Slide down into view */
  animation: slideUp 1s ease-out;
}

.navbar .logo {
  font-size: 30px;
  font-weight: 700;
}

.navbar ul {
  display: flex;
  gap:20px;
  justify-content: flex-end;
  padding: 0;
  margin: 0;
  list-style: none;
}

.navbar ul li {
  list-style: none;
  flex: 0 1 auto;
}

.navbar ul li a {
  font-size: 18px;
  font-weight: 500;
  transition: 0.5s;
}

.navbar ul li:hover a {
  color: #2dd3b7;
}

/*====================*/
/*  Container & Section */
/*====================*/

/* Generic container to center content */
.container {
  max-width: 800px;
  margin: 0 auto;
  padding: 1em;
  /* Fade in the container */
  animation: fadeIn 1.5s ease-in-out;
}

/* General section styling (applies to both index and CI-LISP pages) */
section {
  padding: 60px 9% 60px;
}

/*====================*/
/*  Home Page Specific */
/*====================*/

.home {
  display: flex;
  align-items: center;
  height: 100vh;
  padding: 60px 9% 0;
  color: #fff;
  /* Slide in the home section */
  animation: slideUp 1s ease-out;
}

.home-info h1 {
  font-size: 55px;
}

.home-info h2 {
  font-size: 32px;
  margin-top: -10px;
}

/*====================*/
/*  CI-LISP Page Specific */
/*====================*/

/* Project header styling for the CI-LISP page */
.project-header {
  text-align: center;
  padding-top: 100px; /* Offset for the fixed navbar */
  /* Fade in the project header */
  animation: fadeIn 1.5s ease-in-out;
}

.project-header h1 {
  font-size: 48px;
  margin-bottom: 10px;
}

.project-header p {
  font-size: 24px;
  color: #ccc;
}

/*====================*/
/*  Common Content Styling */
/*====================*/

/* Section titles and subtitles */
h2, h3 {
  color: #fff;
  margin-bottom: 20px;
}

/* Paragraph styling */
p {
  font-size: 18px;
  line-height: 1.6;
  color: #ccc;
}

/* List styling */
ul {
  list-style-type: disc;
  margin-left: 20px;
}

/* Button styling (used for calls to action) */
.btn {
  display: inline-block;
  padding: 10px 30px;
  background: #007BFF;
  border: 2px solid #007BFF;
  border-radius: 40px;
  box-shadow: 0 0 10px #007BFF;
  font-size: 16px;
  color: #1f242d;
  font-weight: 600;
  transition: 0.5s;
  text-decoration: none;
}

.btn:hover {
  background: transparent;
  color: #007BFF;
  box-shadow: none;
}

/* Styling for code blocks (used in code snippets) */
pre code {
  display: block;
  background-color: #2d2d2d;
  color: #f8f8f2;
  padding: 1em;
  overflow-x: auto;
  border-radius: 4px;
  margin-bottom: 1em;
  font-family: "Source Code Pro", Consolas, "Courier New", monospace;
}

/* Footer styling */
footer {
  background: #151a22;
  padding: 20px 9%;
  text-align: center;
  color: #fff;
  font-size: 14px;
}


/* Overview, Implementation, Code, Features, Usage, and Resources sections */
.project-overview,
.project-implementation,
.project-code,
.project-features,
.project-usage,
.project-resources,
.project-back {
  margin-bottom: 3em;
}

/* Additional spacing for lists in project sections */
.project-implementation ul,
.project-features ul {
  margin-top: 10px;
}

/* Inline code styling */
code {
  background-color: #2d2d2d;
  padding: 2px 4px;
  border-radius: 3px;
  font-family: monospace;
  color: #f8f8f2;
}
