:root {
  --grid: 8px;
}
*, *::before, *::after { box-sizing: border-box; margin:0; padding:0; }
body {
  margin: 0; background: #000; color: #fff;
  font-family: 'Segoe UI', sans-serif;
  height: 100vh; overflow: hidden;
}
/* Header */
.site-header {
  position: fixed; top: 0; left: 0; right: 0;
  height: calc(8 * var(--grid));
  background: rgba(0, 0, 0, 0.7);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 calc(2 * var(--grid)); z-index: 100;
}
.site-header .main-nav {
  margin-right: auto;
}
.site-header .main-nav ul {
  display: flex; list-style: none; gap: calc(3 * var(--grid));
}
.site-header .main-nav a {
  color: #fff; text-decoration: none; font-weight: 500;
  transition: color 0.3s;
}
.site-header .main-nav a:hover { color: #a0c4ff; }

.site-header .auth-links {
  margin-left: auto; display: flex; gap: calc(2 * var(--grid));
}
.site-header .auth-links a {
  color: #fff; text-decoration: none; font-weight: 500;
  transition: color 0.3s;
}
.site-header .auth-links a:hover { color: #a0c4ff; }

/* Containers */
.container {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: calc(45 * var(--grid)); padding: calc(4 * var(--grid));
  border-radius: calc(1.5 * var(--grid));
  background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.1);
  backdrop-filter: blur(calc(8 * var(--grid)));
  box-shadow: 0 8px 40px rgba(0,0,0,0.7);
  z-index: 1;
}
.hidden { display: none; }

.container h2 {
  margin-bottom: calc(2 * var(--grid)); font-size: 1.25rem;
}
.container form {
  display: flex; flex-direction: column;
}
.container input {
  margin-bottom: calc(2 * var(--grid)); padding: calc(2 * var(--grid));
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: calc(1 * var(--grid));
  background: rgba(255,255,255,0.05); color: #fff;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.container input:focus {
  outline: none; border-color: #a0c4ff;
  box-shadow: 0 0 8px rgba(160,196,255,0.8);
}
.container .action-btn {
  padding: calc(2 * var(--grid)); border: none;
  border-radius: calc(1 * var(--grid));
  background: rgba(160,196,255,0.6); color: #1e1e1e;
  font-weight: 600; cursor: pointer;
  transition: background 0.3s, transform 0.2s;
}
.container .action-btn:hover {
  background: rgba(160,196,255,0.8); transform: scale(1.02);
}
/* Typing animation */
@keyframes typingAnim { 0%{transform:scale(1);}50%{transform:scale(1.02);}100%{transform:scale(1);} }
/* Background grid */
body::before {
  content: '';
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size: 40px 40px;
  z-index: -2;
}


/* Background blurred circles */
.bg-circle {
  position: fixed;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  filter: blur(120px);
  pointer-events: none;
  
  z-index: -3;
}

.centered {
  display: flex;
  justify-content: center;
}


/* Static white glow circles */
.circle1 {
  background: radial-gradient(circle at center, rgba(255,255,255,0.25) 0%, transparent 80%);
  width: 400px;
  height: 400px;
  top: 5%;
  left: 5%;
}

.circle2 {
  background: radial-gradient(circle at center, rgba(255,255,255,0.25) 0%, transparent 80%);
  width: 600px;
  height: 600px;
  top: 40%;
  right: 5%;
  transform: translateY(-50%);
}


/* Bottom-left white glow circle (600x600) */
.circle4 {
  background: radial-gradient(circle at center, rgba(255,255,255,0.25) 0%, transparent 80%);
  width: 600px;
  height: 600px;
  bottom: 5%;
  left: 5%;
}


.site-header .logo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
}


/* Profile page glow circle */
.circle-profile {
  position: fixed;
  width: calc(48 * var(--grid));
  height: calc(48 * var(--grid));
  bottom: calc(4 * var(--grid));
  right: calc(4 * var(--grid));
  background: radial-gradient(circle at center, rgba(255,255,255,0.15) 0%, transparent 80%);
  filter: blur(calc(8 * var(--grid)));
  z-index: -1;
}
