:root {
  --bg: #000000;
  --bg-primary: #000000;
  --bg-secondary: rgba(0, 0, 0, 0.7);
  --bg-card: rgba(0, 0, 0, 0.6);
  --bg-container: rgba(0, 0, 0, 0.4);
  --text: #ffffff;
  --text-primary: #ffffff;
  --text-secondary: #b7a0c9;
  --text-accent: #d9b3ff;
  --nav-bg: rgba(0, 0, 0, 0.7);
  --border: rgba(255, 255, 255, 0.08);
  --border-color: rgba(255, 255, 255, 0.08);
  --shadow-color: rgba(0, 0, 0, 0.5);
  --hover-bg: rgba(255, 255, 255, 0.08);
  --input-bg: rgba(20, 16, 30, 0.6);
  --site-font: "Lexend", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  height: 100%;
}

body {
  background: radial-gradient(ellipse at bottom, #050510 0%, var(--bg) 100%);
  color: var(--text);
  font-family: var(--site-font);
  line-height: 1.6;
  overflow-x: hidden;
  min-height: 100vh;
}

/* Particles */
#particles-js {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
}

/* Starfield */
.stars {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}

.stars::before,
.stars::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  background: transparent;
  animation: animStar linear infinite;
}

.stars::before {
  box-shadow: 1541px 300px #fff, 1823px 1214px #fff, 826px 1187px #fff,
    1923px 184px #fff, 432px 1456px #fff, 1163px 1023px #fff,
    643px 1389px #fff, 1742px 462px #fff, 928px 1763px #fff,
    1584px 892px #fff, 1123px 1342px #fff, 742px 1567px #fff,
    1864px 723px #fff, 324px 1892px #fff, 1456px 234px #fff,
    873px 1654px #fff, 1234px 567px #fff, 1672px 1432px #fff,
    456px 982px #fff, 1398px 1723px #fff, 654px 345px #fff,
    1789px 1267px #fff, 234px 1543px #fff, 1523px 876px #fff,
    987px 432px #fff, 1654px 1189px #fff, 543px 1678px #fff,
    1345px 723px #fff, 1765px 1564px #fff, 423px 234px #fff;
  animation-duration: 120s;
}

.stars::after {
  box-shadow: 1234px 1456px #fff, 567px 892px #fff, 1789px 234px #fff,
    345px 1678px #fff, 1567px 1234px #fff, 892px 456px #fff,
    1678px 1723px #fff, 234px 987px #fff, 1432px 654px #fff,
    765px 1345px #fff, 1892px 543px #fff, 432px 1765px #fff,
    1543px 323px #fff, 876px 1584px #fff, 1654px 1123px #fff,
    323px 743px #fff, 1267px 1864px #fff, 982px 432px #fff,
    1723px 928px #fff, 654px 1742px #fff, 1342px 826px #fff,
    1567px 1923px #fff, 243px 643px #fff, 1189px 1823px #fff,
    876px 1541px #fff, 1432px 765px #fff, 567px 1398px #fff,
    1789px 324px #fff, 432px 1234px #fff, 1654px 567px #fff;
  animation-duration: 200s;
  animation-delay: -60s;
}

@keyframes animStar {
  from {
    transform: translateY(0px);
  }
  to {
    transform: translateY(-2000px);
  }
}

/* Layout */
.app-layout {
  display: flex;
  min-height: 100vh;
  position: relative;
  z-index: 1;
}

/* Sidebar */
nav {
  position: fixed;
  left: 0;
  top: 0;
  height: 100vh;
  width: 90px;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.6rem 0.8rem;
  background: var(--nav-bg);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-right: 1px solid var(--border);
  gap: 2rem;
}

.nav-top {
  display: flex;
  align-items: center;
  justify-content: center;
}

.logo-img {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--border);
}

.nav-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.9rem;
  list-style: none;
  margin-top: 1rem;
}

.nav-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  color: var(--text);
  text-decoration: none;
  font-size: 1.4rem;
  opacity: 0.7;
  border-radius: 12px;
  transition: opacity 150ms ease-in-out, background 150ms ease-in-out,
    box-shadow 150ms ease-in-out;
}

.nav-links a:hover,
.nav-links a:focus-visible {
  opacity: 1;
  background: rgba(255, 255, 255, 0.04);
  box-shadow: 0 0 18px rgba(255, 255, 255, 0.18);
}

.nav-links a.active {
  opacity: 1;
  background: rgba(255, 255, 255, 0.06);
}

/* Loading screen */
.loading-screen {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
  background: radial-gradient(ellipse at bottom, #050510 0%, #000000 100%);
  transition: opacity 600ms ease, visibility 600ms ease;
}

.loading-screen.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loading-logo {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--border);
  animation: pulse 1600ms ease-in-out infinite;
}

.loading-text {
  letter-spacing: 0.4em;
  text-transform: uppercase;
  font-size: 0.8rem;
  opacity: 0.6;
}

@keyframes pulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.8;
  }
  50% {
    transform: scale(1.05);
    opacity: 1;
  }
}
