/* Haqathon Platform - Custom Styles */
/* Bootstrap 5 + Custom Theme */

:root {
  --primary: #0969da;
  --primary-hover: #0550ae;
  --secondary: #57606a;
  --accent: #8b949e;
  --background: #ffffff;
  --background-secondary: #f6f8fa;
  --foreground: #24292f;
  --foreground-muted: #57606a;
  --border: #d0d7de;
  --border-hover: #8b949e;
  --success: #1a7f37;
  --success-bg: #dafbe1;
  --warning: #9a6700;
  --warning-bg: #fff8c5;
  --error: #cf222e;
  --error-bg: #ffebe9;
  --card: #ffffff;
  --card-hover: #f6f8fa;
  --input-bg: #f6f8fa;
}

[data-theme="dark"] {
  --primary: #58a6ff;
  --primary-hover: #79c0ff;
  --secondary: #8b949e;
  --accent: #8b949e;
  --background: #0d1117;
  --background-secondary: #161b22;
  --foreground: #c9d1d9;
  --foreground-muted: #8b949e;
  --border: #30363d;
  --border-hover: #484f58;
  --success: #3fb950;
  --success-bg: #1f3d2b;
  --warning: #d29922;
  --warning-bg: #3d2e00;
  --error: #f85149;
  --error-bg: #3d1f20;
  --card: #161b22;
  --card-hover: #21262d;
  --input-bg: #0d1117;
}

/* Base Styles */
body {
  background: var(--background);
  color: var(--foreground);
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Background gradients for auth pages */
.bg-auth {
  background: linear-gradient(135deg, var(--background-secondary) 0%, var(--background) 100%);
}

[data-theme="dark"] .bg-auth {
  background: linear-gradient(135deg, #0d1117 0%, #161b22 100%);
}

/* Main content area */
main {
  flex: 1;
}

/* Typography */
.h1, h1 { font-size: 2rem; font-weight: 600; line-height: 1.25; }
.h2, h2 { font-size: 1.5rem; font-weight: 600; line-height: 1.25; }
.h3, h3 { font-size: 1.25rem; font-weight: 600; line-height: 1.25; }
.h4, h4 { font-size: 1rem; font-weight: 600; line-height: 1.25; }

.text-muted { 
  color: var(--foreground-muted) !important; 
}

/* Better text contrast in dark mode */
[data-theme="dark"] .text-muted {
  color: #8b949e !important;
}

[data-theme="dark"] body {
  color: #c9d1d9;
}

[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
  color: #f0f6fc;
}

/* Links */
a {
  color: var(--primary);
  text-decoration: none;
  transition: color 0.2s;
}

a:hover {
  color: var(--primary-hover);
  text-decoration: underline;
}

/* Better link contrast in dark mode */
[data-theme="dark"] a {
  color: #58a6ff;
}

[data-theme="dark"] a:hover {
  color: #79c0ff;
}

/* Cards */
.card {
  background-color: var(--card);
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  transition: background-color 0.2s, border-color 0.2s;
}

.card:hover {
  background-color: var(--card-hover);
  border-color: var(--border-hover);
}

.card-header {
  background-color: var(--background-secondary);
  border-bottom: 1px solid var(--border);
  color: var(--foreground);
}

.card-body {
  color: var(--foreground);
}

.card-footer {
  background-color: var(--background-secondary);
  border-top: 1px solid var(--border);
  color: var(--foreground-muted);
}

/* Dark mode card improvements */
[data-theme="dark"] .card {
  background-color: #161b22;
  border-color: #30363d;
}

[data-theme="dark"] .card:hover {
  background-color: #21262d;
  border-color: #484f58;
}

[data-theme="dark"] .card-header {
  background-color: #21262d;
  border-bottom-color: #30363d;
  color: #c9d1d9;
}

[data-theme="dark"] .card-body {
  color: #c9d1d9;
}

[data-theme="dark"] .card-footer {
  background-color: #21262d;
  border-top-color: #30363d;
  color: #8b949e;
}

/* Buttons */
.btn {
  font-weight: 500;
  transition: all 0.2s;
  color: var(--foreground);
}

.btn-primary {
  background-color: #238636;
  border-color: rgba(27, 31, 36, 0.15);
  color: #ffffff;
}

.btn-primary:hover {
  background-color: #2ea043;
  border-color: rgba(27, 31, 36, 0.15);
  color: #ffffff;
}

.btn-outline-primary {
  color: var(--primary);
  border-color: var(--border);
}

.btn-outline-primary:hover {
  background-color: var(--background-secondary);
  color: var(--primary-hover);
}

.btn-ghost {
  background: transparent;
  border: 1px solid transparent;
  color: var(--foreground);
}

.btn-ghost:hover {
  background-color: var(--background-secondary);
  color: var(--foreground);
}

/* Dark mode button improvements */
[data-theme="dark"] .btn {
  color: #c9d1d9;
}

[data-theme="dark"] .btn-primary {
  background-color: #238636;
  color: #ffffff;
}

[data-theme="dark"] .btn-primary:hover {
  background-color: #2ea043;
  color: #ffffff;
}

[data-theme="dark"] .btn-ghost {
  color: #c9d1d9;
}

[data-theme="dark"] .btn-ghost:hover {
  background-color: #21262d;
  color: #c9d1d9;
}

[data-theme="dark"] .btn-outline-primary {
  color: #58a6ff;
  border-color: #30363d;
}

[data-theme="dark"] .btn-outline-primary:hover {
  background-color: #21262d;
  color: #79c0ff;
}

/* Forms */
.form-control {
  background-color: var(--input-bg);
  border: 1px solid var(--border);
  color: var(--foreground);
}

.form-control:focus {
  background-color: var(--input-bg);
  border-color: var(--primary);
  color: var(--foreground);
  box-shadow: 0 0 0 3px rgba(88, 166, 255, 0.4);
}

.form-control::placeholder {
  color: var(--foreground-muted);
}

.form-label {
  color: var(--foreground);
  font-weight: 500;
}

.form-select {
  background-color: var(--input-bg);
  border: 1px solid var(--border);
  color: var(--foreground);
}

.form-select:focus {
  background-color: var(--input-bg);
  border-color: var(--primary);
  color: var(--foreground);
}

.form-text {
  color: var(--foreground-muted);
}

/* Dark mode form improvements */
[data-theme="dark"] .form-control {
  background-color: #0d1117;
  border-color: #30363d;
  color: #c9d1d9;
}

[data-theme="dark"] .form-control:focus {
  background-color: #0d1117;
  border-color: #58a6ff;
  color: #c9d1d9;
}

[data-theme="dark"] .form-control::placeholder {
  color: #8b949e;
}

[data-theme="dark"] .form-label {
  color: #c9d1d9;
}

[data-theme="dark"] .form-select {
  background-color: #0d1117;
  border-color: #30363d;
  color: #c9d1d9;
}

[data-theme="dark"] .form-text {
  color: #8b949e;
}

/* Navbar */
.navbar {
  background-color: #24292f !important;
  border-bottom: 1px solid #30363d;
}

[data-theme="dark"] .navbar {
  background-color: #0d1117 !important;
  border-bottom-color: #30363d;
}

.navbar-brand {
  color: #ffffff !important;
  font-weight: 700;
  font-size: 1.25rem;
  margin-bottom: 0 !important;
}

.nav-link {
  color: #8b949e !important;
  transition: color 0.2s;
}

.nav-link:hover,
.nav-link.active {
  color: #ffffff !important;
}

/* Navbar buttons - always visible in both themes */
.navbar .btn-ghost,
.navbar .btn-icon {
  color: #c9d1d9 !important;
  border-color: transparent;
}

.navbar .btn-ghost:hover,
.navbar .btn-icon:hover {
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
}

.navbar .btn-ghost svg,
.navbar .btn-icon svg {
  stroke: #c9d1d9 !important;
}

.navbar .btn-ghost:hover svg,
.navbar .btn-icon:hover svg {
  stroke: #ffffff !important;
}

/* Dropdown menu */
.dropdown-menu {
  background-color: var(--card);
  border: 1px solid var(--border);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

[data-theme="dark"] .dropdown-menu {
  background-color: #161b22;
  border-color: #30363d;
}

.dropdown-item {
  color: var(--foreground);
}

.dropdown-item:hover {
  background-color: var(--background-secondary);
  color: var(--foreground);
}

.dropdown-divider {
  border-color: var(--border);
}

/* Dark mode dropdown improvements */
[data-theme="dark"] .dropdown-item {
  color: #c9d1d9;
}

[data-theme="dark"] .dropdown-item:hover {
  background-color: #21262d;
  color: #c9d1d9;
}

[data-theme="dark"] .dropdown-divider {
  border-color: #30363d;
}
.badge {
  font-weight: 500;
  border-radius: 2em;
}

.badge-success {
  background-color: var(--success-bg);
  color: var(--success);
}

.badge-warning {
  background-color: var(--warning-bg);
  color: var(--warning);
}

.badge-danger {
  background-color: var(--error-bg);
  color: var(--error);
}

.badge-outline {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--foreground-muted);
}

/* Dark mode badge improvements */
[data-theme="dark"] .badge-outline {
  border-color: #30363d;
  color: #8b949e;
}

/* Tables */
.table {
  color: var(--foreground);
}

.table > :not(caption) > * > * {
  background-color: var(--card);
  border-color: var(--border);
}

.table-hover > tbody > tr:hover {
  background-color: var(--card-hover);
}

/* Dark mode table improvements */
[data-theme="dark"] .table {
  color: #c9d1d9;
}

[data-theme="dark"] .table > :not(caption) > * > * {
  background-color: #161b22;
  border-color: #30363d;
}

[data-theme="dark"] .table-hover > tbody > tr:hover {
  background-color: #21262d;
}

/* Footer */
footer {
  background-color: var(--background-secondary);
  border-top: 1px solid var(--border);
  color: var(--foreground-muted);
}

footer a {
  color: var(--foreground-muted);
}

footer a:hover {
  color: var(--foreground);
}

/* Dark mode footer improvements */
[data-theme="dark"] footer {
  background-color: #161b22;
  border-top-color: #30363d;
  color: #8b949e;
}

[data-theme="dark"] footer a {
  color: #8b949e;
}

[data-theme="dark"] footer a:hover {
  color: #c9d1d9;
}

/* Header sticky */
.header-sticky {
  position: sticky;
  top: 0;
  z-index: 1030;
}

/* Container */
.container-app {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1rem;
}

@media (min-width: 768px) {
  .container-app {
    padding: 0 1.5rem;
  }
}

/* Spacing utilities */
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }

/* Icon buttons */
.btn-icon {
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Dropdown menu */
.dropdown-menu {
  background-color: var(--card);
  border: 1px solid var(--border);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

[data-theme="dark"] .dropdown-menu {
  background-color: #161b22;
}

.dropdown-item {
  color: var(--foreground);
}

.dropdown-item:hover {
  background-color: var(--background-secondary);
  color: var(--foreground);
}

.dropdown-divider {
  border-color: var(--border);
}

/* Modal */
.modal-content {
  background-color: var(--card);
  border: 1px solid var(--border);
}

.modal-header {
  border-bottom: 1px solid var(--border);
  background-color: var(--background-secondary);
  color: var(--foreground);
}

.modal-body {
  color: var(--foreground);
}

.modal-footer {
  border-top: 1px solid var(--border);
  background-color: var(--background-secondary);
}

.btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

[data-theme="light"] .btn-close {
  filter: none;
}

/* Dark mode modal improvements */
[data-theme="dark"] .modal-content {
  background-color: #161b22;
  border-color: #30363d;
}

[data-theme="dark"] .modal-header {
  background-color: #21262d;
  border-bottom-color: #30363d;
  color: #c9d1d9;
}

[data-theme="dark"] .modal-body {
  color: #c9d1d9;
}

[data-theme="dark"] .modal-footer {
  background-color: #21262d;
  border-top-color: #30363d;
}

/* Progress */
.progress {
  background-color: var(--background-secondary);
}

.progress-bar {
  background-color: var(--primary);
}

/* Dark mode progress improvements */
[data-theme="dark"] .progress {
  background-color: #21262d;
}

/* Alerts */
.alert {
  border: 1px solid var(--border);
}

.alert-success {
  background-color: var(--success-bg);
  color: var(--success);
  border-color: var(--success);
}

.alert-warning {
  background-color: var(--warning-bg);
  color: var(--warning);
  border-color: var(--warning);
}

.alert-danger {
  background-color: var(--error-bg);
  color: var(--error);
  border-color: var(--error);
}

/* Loading spinner */
.spinner-border-sm {
  width: 1rem;
  height: 1rem;
  border-width: 0.15em;
}

/* Feature icons */
.feature-icon {
  width: 4rem;
  height: 4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  margin: 0 auto 1rem;
}

.feature-icon-bg {
  background-color: #ddf4ff;
  color: #0969da;
}

[data-theme="dark"] .feature-icon-bg {
  background-color: #388bfd26;
  color: #58a6ff;
}

/* Hero Section */
.hero-section {
  padding: 5rem 0;
  background: linear-gradient(135deg, var(--background) 0%, var(--background-secondary) 100%);
}

.hero-image {
  animation: float 3s ease-in-out infinite;
}

.rocket-svg {
  width: 100%;
  max-width: 400px;
  height: auto;
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-20px); }
}

/* Features Section */
.features-section {
  background: var(--background);
}

.feature-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 1rem;
  transition: all 0.3s;
}

.feature-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  border-color: var(--primary);
}

/* How It Works Section */
.how-it-works-section {
  background: var(--background-secondary);
}

.step-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 1rem;
  transition: all 0.3s;
}

.step-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.step-number {
  width: 4rem;
  height: 4rem;
  background: linear-gradient(135deg, var(--primary), var(--primary-hover));
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 auto;
}

/* CTA Section */
.cta-section {
  background: linear-gradient(135deg, var(--card) 0%, var(--background-secondary) 100%);
  border: 1px solid var(--border);
  border-radius: 1rem;
  padding: 4rem 2rem;
}

.cta-section h2,
.cta-section p {
  color: var(--foreground);
}

/* Stats Card */
.stats-card {
  text-align: center;
  padding: 1rem;
}

.stats-value {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--primary);
}

.stats-label {
  font-size: 0.875rem;
  color: var(--foreground-muted);
}
.hackathon-card {
  transition: transform 0.2s, box-shadow 0.2s;
}

.hackathon-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Stats card */
.stats-card {
  text-align: center;
  padding: 1rem;
}

.stats-value {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--primary);
}

.stats-label {
  font-size: 0.875rem;
  color: var(--foreground-muted);
}

/* Bottom navigation for mobile */
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: var(--card);
  border-top: 1px solid var(--border);
  display: none;
  z-index: 1020;
}

@media (max-width: 767.98px) {
  .bottom-nav {
    display: flex;
  }
  
  .bottom-nav .nav-link {
    flex: 1;
    text-align: center;
    padding: 0.75rem 0.5rem;
    font-size: 0.75rem;
  }
  
  .bottom-nav .nav-link svg {
    display: block;
    margin: 0 auto 0.25rem;
  }
  
  main {
    padding-bottom: 4rem;
  }
}

/* Dashboard tabs */
.dashboard-tabs .nav-link {
  color: var(--foreground-muted);
  border: none;
  padding: 0.75rem 1rem;
}

.dashboard-tabs .nav-link.active {
  color: var(--primary);
  background-color: transparent;
  border-bottom: 2px solid var(--primary);
}

/* File upload area */
.upload-area {
  border: 2px dashed var(--border);
  border-radius: 0.5rem;
  padding: 2rem;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s, background-color 0.2s;
}

.upload-area:hover {
  border-color: var(--primary);
  background-color: var(--background-secondary);
}

/* Leaderboard */
.leaderboard-rank {
  font-weight: 700;
  width: 2.5rem;
  text-align: center;
}

.leaderboard-rank-1 { color: #ffd700; }
.leaderboard-rank-2 { color: #c0c0c0; }
.leaderboard-rank-3 { color: #cd7f32; }

/* Team member badge */
.team-member-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background-color: var(--background-secondary);
  border: 1px solid var(--border);
  border-radius: 0.5rem;
}

/* Payment status */
.payment-status {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.payment-status-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
}

.payment-status-success { background-color: var(--success); }
.payment-status-pending { background-color: var(--warning); }
.payment-status-failed { background-color: var(--error); }

/* Static site redesign */
:root {
  --primary: #5b52ff;
  --primary-hover: #4d44ef;
  --secondary: #546488;
  --accent: #3f97ff;
  --background: #f4f7ff;
  --background-secondary: #e9efff;
  --foreground: #111831;
  --foreground-muted: #5d6b8d;
  --border: rgba(53, 79, 154, 0.14);
  --border-hover: rgba(53, 79, 154, 0.24);
  --success: #1f8a5b;
  --success-bg: rgba(31, 138, 91, 0.12);
  --warning: #a56a18;
  --warning-bg: rgba(165, 106, 24, 0.12);
  --error: #cf4066;
  --error-bg: rgba(207, 64, 102, 0.12);
  --card: rgba(255, 255, 255, 0.86);
  --card-hover: rgba(255, 255, 255, 0.98);
  --input-bg: rgba(255, 255, 255, 0.94);
  --header-bg: rgba(244, 247, 255, 0.74);
  --footer-bg: rgba(234, 240, 255, 0.72);
}

[data-theme="dark"] {
  --primary: #8d71ff;
  --primary-hover: #a28cff;
  --secondary: #aab6df;
  --accent: #57c6ff;
  --background: #050713;
  --background-secondary: #091022;
  --foreground: #f5f7ff;
  --foreground-muted: #a4afd7;
  --border: rgba(161, 180, 255, 0.16);
  --border-hover: rgba(161, 180, 255, 0.28);
  --success: #62db9f;
  --success-bg: rgba(98, 219, 159, 0.16);
  --warning: #f0bd72;
  --warning-bg: rgba(240, 189, 114, 0.14);
  --error: #ff829d;
  --error-bg: rgba(255, 130, 157, 0.14);
  --card: rgba(10, 15, 36, 0.84);
  --card-hover: rgba(14, 20, 46, 0.96);
  --input-bg: rgba(9, 13, 32, 0.9);
  --header-bg: rgba(8, 11, 29, 0.72);
  --footer-bg: rgba(5, 7, 20, 0.82);
}

html,
body {
  font-family: "Sora", "Segoe UI", sans-serif;
  background: var(--background);
  color: var(--foreground);
}

.site-main {
  flex: 1;
}

.site-header {
  background: transparent;
}

.site-header-shell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.35rem;
  min-height: 86px;
  padding: 0.95rem 1.2rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: rgba(252, 253, 255, 0.94);
  backdrop-filter: blur(18px);
  box-shadow: 0 18px 38px rgba(92, 110, 170, 0.16);
  overflow: visible;
}

[data-theme="dark"] .site-header-shell {
  background: rgba(7, 10, 28, 0.92);
  box-shadow: 0 18px 38px rgba(3, 5, 18, 0.28);
}

.site-header-left,
.site-header-actions,
.site-nav {
  display: flex;
  align-items: center;
  gap: 0.9rem;
}

.site-header-actions {
  margin-left: auto;
}

.site-brand {
  color: #18213f !important;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
}

[data-theme="dark"] .site-brand {
  color: #ffffff !important;
}

.site-nav-link,
.site-action-link {
  color: #18213f;
  font-weight: 500;
  font-size: 0.95rem;
  text-decoration: none;
  line-height: 1;
}

[data-theme="dark"] .site-nav-link,
[data-theme="dark"] .site-action-link {
  color: #ffffff;
}

.site-nav-link.active,
.site-nav-link:hover,
.site-action-link:hover {
  color: #18213f;
  text-decoration: none;
}

[data-theme="dark"] .site-nav-link.active,
[data-theme="dark"] .site-nav-link:hover,
[data-theme="dark"] .site-action-link:hover {
  color: #ffffff;
}

.site-action-primary,
.site-action-primary:hover {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 1rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #4f46e5, #7c3aed);
  color: #ffffff !important;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(79, 70, 229, 0.28);
}

.icon-button,
.lang-button {
  border: 1px solid transparent;
  background: transparent;
  color: #18213f;
  border-radius: 999px;
  min-width: 42px;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  line-height: 1;
}

[data-theme="dark"] .icon-button,
[data-theme="dark"] .lang-button {
  color: #ffffff;
}

.icon-button:hover,
.lang-button:hover {
  background: rgba(104, 84, 255, 0.08);
  color: #18213f;
}

[data-theme="dark"] .icon-button:hover,
[data-theme="dark"] .lang-button:hover {
  background: rgba(104, 84, 255, 0.14);
  color: #ffffff;
}

.lang-button span {
  font-size: 0.75rem;
  text-transform: uppercase;
  color: #18213f;
}

[data-theme="dark"] .lang-button span {
  color: #ffffff;
}

.mobile-menu-toggle {
  display: none;
  flex-direction: column;
}

.mobile-menu-toggle span {
  display: block;
  width: 16px;
  height: 2px;
  background: currentColor;
  border-radius: 999px;
}

.mobile-nav-panel {
  display: none;
  flex-direction: column;
  gap: 0.9rem;
  padding: 1rem 1.15rem 0.3rem;
}

.mobile-nav-panel.open,
.site-user-menu.open {
  display: flex;
}

.site-nav-link-strong {
  color: var(--foreground);
  font-weight: 600;
}

.site-user-wrap {
  position: relative;
  z-index: 3100;
}

.site-user-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 0.75rem);
  display: none;
  flex-direction: column;
  gap: 0.2rem;
  width: 250px;
  padding: 0.8rem;
  border: 1px solid var(--border);
  border-radius: 22px;
  background: #ffffff;
  box-shadow: 0 24px 60px rgba(17, 12, 8, 0.12);
  backdrop-filter: none;
  z-index: 3200;
}

[data-theme="dark"] .site-user-menu {
  background: #0b132b;
}

.site-user-menu-head {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.25rem 0.25rem 0.75rem;
  border-bottom: 1px solid var(--border);
}

.site-user-link {
  color: var(--foreground);
  padding: 0.65rem 0.5rem;
  border-radius: 12px;
  text-decoration: none;
}

.site-user-link:hover {
  background: rgba(104, 84, 255, 0.14);
  text-decoration: none;
}

.site-user-link.danger {
  color: var(--error);
}

.site-footer {
  background: var(--footer-bg) !important;
  border-top: 1px solid var(--border) !important;
  backdrop-filter: blur(18px);
}

.site-footer-grid {
  display: grid;
  gap: 3rem;
  align-items: start;
  justify-content: center;
}

.site-footer-title,
.site-footer-heading {
  color: var(--foreground);
  margin-bottom: 1rem;
}

.site-footer-col {
  min-width: 0;
}

.site-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.85rem;
}

.site-footer-text,
.site-footer-links a {
  color: var(--foreground-muted);
  text-decoration: none;
}

.site-footer-links a:hover {
  color: var(--foreground);
  text-decoration: none;
}

.site-footer-bottom {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
  text-align: center;
}

.home-showcase {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top left, rgba(102, 147, 255, 0.22), transparent 34%),
    radial-gradient(circle at 82% 16%, rgba(156, 124, 255, 0.2), transparent 30%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 14%),
    var(--background);
}

[data-theme="dark"] .home-showcase {
  background:
    radial-gradient(circle at top left, rgba(75, 125, 255, 0.18), transparent 34%),
    radial-gradient(circle at 82% 16%, rgba(149, 92, 255, 0.22), transparent 30%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 14%),
    var(--background);
}

.hero-shell {
  position: relative;
  padding: 2.6rem 0 1.8rem;
}

.hero-layout {
  position: relative;
  display: grid;
  gap: 2rem;
  align-items: center;
}

.hero-copy,
.hero-stage,
.section-heading,
.showcase-card,
.pillar-card,
.partners-strip,
.final-cta,
.showcase-quote {
  position: relative;
  z-index: 2;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.7rem 0.95rem;
  border-radius: 999px;
  border: 1px solid rgba(91, 82, 255, 0.16);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
}

[data-theme="dark"] .hero-badge {
  border-color: rgba(136, 125, 255, 0.28);
  background: rgba(13, 20, 48, 0.72);
}

.hero-badge-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: linear-gradient(135deg, #4f46e5, #7c3aed);
  box-shadow: 0 0 12px rgba(124, 92, 255, 0.4);
}

.hero-title {
  max-width: 9.2ch;
  margin: 1.15rem 0 0;
  font-size: clamp(1.95rem, 4.55vw, 3.75rem);
  line-height: 1.02;
  letter-spacing: -0.06em;
  font-weight: 700;
  text-wrap: balance;
}

.hero-title br {
  display: block;
  content: "";
}

.hero-text {
  max-width: 640px;
  margin: 1.45rem 0 0;
  font-size: clamp(1.03rem, 2vw, 1.24rem);
  line-height: 1.72;
  color: var(--foreground-muted);
}

.hero-actions,
.final-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.8rem;
}

.hero-primary-button,
.hero-secondary-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 1.25rem;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

.hero-primary-button {
  border: 1px solid rgba(122, 143, 255, 0.2);
  background: linear-gradient(135deg, rgba(68, 117, 255, 1), rgba(127, 72, 255, 1));
  color: #fff;
  box-shadow: 0 16px 40px rgba(63, 88, 219, 0.3);
}

.hero-secondary-button {
  border: 1px solid rgba(91, 110, 180, 0.16);
  background: rgba(255, 255, 255, 0.68);
  color: #ffffff;
  backdrop-filter: blur(14px);
}

[data-theme="dark"] .hero-secondary-button {
  border-color: rgba(154, 173, 255, 0.16);
  background: rgba(12, 18, 44, 0.56);
  color: #ffffff;
}

.hero-stat-row {
  display: grid;
  gap: 1rem;
  margin-top: 2rem;
}

.hero-stat-card {
  padding: 1.2rem 1.2rem 1rem;
  border: 1px solid var(--border);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(18px);
  box-shadow: 0 18px 40px rgba(49, 67, 128, 0.1);
}

[data-theme="dark"] .hero-stat-card {
  background: rgba(11, 18, 43, 0.72);
  box-shadow: 0 18px 40px rgba(6, 9, 24, 0.3);
}

.hero-stat-value {
  font-size: 1.55rem;
  font-weight: 700;
  letter-spacing: -0.04em;
}

.hero-stat-label {
  margin-top: 0.25rem;
  color: var(--foreground-muted);
  font-size: 0.88rem;
}

.hero-stage {
  position: relative;
  min-height: 580px;
}

.stage-card {
  position: relative;
  overflow: hidden;
  padding: 1.7rem;
  border: 1px solid rgba(150, 168, 230, 0.24);
  border-radius: 34px;
  background: linear-gradient(180deg, rgba(248, 250, 255, 0.96), rgba(234, 240, 255, 0.98));
  color: #18213f;
  box-shadow: 0 30px 80px rgba(65, 82, 144, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.68);
}

[data-theme="dark"] .stage-card {
  border-color: rgba(169, 181, 255, 0.14);
  background: linear-gradient(180deg, rgba(10, 15, 38, 0.96), rgba(5, 8, 22, 0.98));
  color: #eef2ff;
  box-shadow: 0 30px 80px rgba(2, 4, 14, 0.58), inset 0 1px 0 rgba(221, 228, 255, 0.08);
}

.stage-card::before {
  content: "";
  position: absolute;
  inset: auto -20% -35% auto;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(111, 91, 255, 0.14), transparent 70%);
}

.stage-topline,
.stage-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.stage-topline {
  color: rgba(76, 91, 137, 0.72);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.72rem;
}

.stage-topline span:empty {
  display: none;
}

[data-theme="dark"] .stage-topline {
  color: rgba(225, 231, 255, 0.64);
}

.stage-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 1rem;
  margin-top: 1.4rem;
}

.stage-kicker,
.section-kicker,
.stage-panel-label,
.stage-footer-label {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.72rem;
}

.stage-kicker {
  color: rgba(76, 91, 137, 0.58);
}

[data-theme="dark"] .stage-kicker {
  color: rgba(225, 231, 255, 0.54);
}

.stage-title {
  margin: 0.5rem 0 0;
  max-width: 12ch;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 0.98;
  letter-spacing: -0.05em;
}

.stage-panel-grid,
.showcase-grid,
.pillar-grid {
  display: grid;
  gap: 1rem;
}

.stage-panel {
  padding: 1rem;
  border-radius: 20px;
  border: 1px solid rgba(112, 128, 184, 0.12);
  background: rgba(255, 255, 255, 0.48);
}

[data-theme="dark"] .stage-panel {
  border-color: rgba(225, 231, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
}

.stage-panel-label,
.stage-footer-label {
  color: rgba(82, 95, 141, 0.62);
}

[data-theme="dark"] .stage-panel-label,
[data-theme="dark"] .stage-footer-label {
  color: rgba(225, 231, 255, 0.48);
}

.stage-panel-value,
.stage-footer-value {
  margin: 0.5rem 0 0;
  color: #18213f;
  font-size: 0.98rem;
  line-height: 1.6;
}

[data-theme="dark"] .stage-panel-value,
[data-theme="dark"] .stage-footer-value {
  color: #f5f7ff;
}

.stage-journey {
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
}

.stage-step {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.8rem;
}

.stage-step-index {
  color: rgba(75, 119, 255, 0.94);
  font-weight: 700;
}

[data-theme="dark"] .stage-step-index {
  color: rgba(123, 196, 255, 0.94);
}

.stage-step-line {
  height: 1px;
  background: linear-gradient(90deg, rgba(75, 119, 255, 0.34), rgba(114, 136, 214, 0.08));
}

[data-theme="dark"] .stage-step-line {
  background: linear-gradient(90deg, rgba(123, 196, 255, 0.34), rgba(255, 255, 255, 0.04));
}

.stage-step-text {
  color: rgba(37, 49, 90, 0.82);
}

[data-theme="dark"] .stage-step-text {
  color: rgba(234, 239, 255, 0.82);
}

.stage-footer {
  margin-top: 1.8rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(112, 128, 184, 0.12);
}

[data-theme="dark"] .stage-footer {
  border-top-color: rgba(225, 231, 255, 0.1);
}

.stage-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.7rem 0.95rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.36);
  color: rgba(31, 42, 78, 0.84);
  font-size: 0.88rem;
}

[data-theme="dark"] .stage-chip {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(234, 239, 255, 0.84);
}

.hero-grid,
.hero-aurora,
.starfield,
.meteor-field {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.hero-grid {
  display: none;
}

.hero-aurora {
  filter: blur(40px);
  opacity: 0.8;
}

.hero-aurora-one {
  top: 10%;
  left: -12%;
  width: 40vw;
  height: 40vw;
  border-radius: 50%;
  background: rgba(74, 129, 255, 0.2);
  animation: driftGlow 12s ease-in-out infinite;
}

.hero-aurora-two {
  top: 18%;
  right: -10%;
  width: 34vw;
  height: 34vw;
  border-radius: 50%;
  background: rgba(139, 86, 255, 0.2);
  animation: driftGlow 14s ease-in-out infinite reverse;
}

.starfield {
  background-repeat: repeat;
  animation: starFall linear infinite;
}

.starfield-back {
  background-image:
    radial-gradient(circle at 18% 24%, rgba(255, 255, 255, 0.22) 0.8px, transparent 1.7px),
    radial-gradient(circle at 72% 38%, rgba(213, 223, 255, 0.18) 0.7px, transparent 1.6px),
    radial-gradient(circle at 46% 78%, rgba(255, 255, 255, 0.16) 0.9px, transparent 1.8px);
  background-size: 260px 240px, 310px 280px, 230px 250px;
  background-position: 0 0, 120px 70px, 45px 140px;
  animation-duration: 90s;
}

.starfield-mid {
  background-image:
    radial-gradient(circle at 12% 22%, rgba(204, 218, 255, 0.44) 1px, transparent 1.9px),
    radial-gradient(circle at 68% 52%, rgba(184, 200, 255, 0.36) 1.15px, transparent 2px),
    radial-gradient(circle at 42% 84%, rgba(222, 230, 255, 0.3) 0.95px, transparent 1.85px),
    radial-gradient(circle at 88% 18%, rgba(196, 210, 255, 0.24) 0.9px, transparent 1.75px);
  background-size: 180px 170px, 210px 190px, 165px 185px, 240px 210px;
  background-position: 0 0, 55px 120px, 100px 35px, 160px 80px;
  animation-duration: 60s;
}

.starfield-front {
  background-image:
    radial-gradient(circle at 14% 18%, rgba(236, 228, 255, 0.76) 1.35px, transparent 2.2px),
    radial-gradient(circle at 76% 42%, rgba(255, 255, 255, 0.72) 1.15px, transparent 2.1px),
    radial-gradient(circle at 38% 74%, rgba(220, 214, 255, 0.64) 1.25px, transparent 2.15px),
    radial-gradient(circle at 90% 86%, rgba(208, 221, 255, 0.52) 1px, transparent 1.95px),
    radial-gradient(circle at 58% 12%, rgba(255, 255, 255, 0.62) 1.1px, transparent 2px);
  background-size: 120px 130px, 150px 140px, 135px 150px, 170px 155px, 145px 125px;
  background-position: 0 0, 40px 70px, 85px 18px, 25px 115px, 110px 55px;
  animation-duration: 38s;
}

[data-theme="dark"] .starfield-back {
  background-image:
    radial-gradient(circle at 18% 24%, rgba(255, 255, 255, 0.34) 1px, transparent 1.8px),
    radial-gradient(circle at 72% 38%, rgba(220, 228, 255, 0.26) 0.85px, transparent 1.7px),
    radial-gradient(circle at 46% 78%, rgba(255, 255, 255, 0.24) 1px, transparent 1.9px);
}

[data-theme="dark"] .starfield-mid {
  background-image:
    radial-gradient(circle at 12% 22%, rgba(189, 214, 255, 0.58) 1.05px, transparent 1.95px),
    radial-gradient(circle at 68% 52%, rgba(171, 203, 255, 0.5) 1.2px, transparent 2.1px),
    radial-gradient(circle at 42% 84%, rgba(222, 235, 255, 0.38) 1px, transparent 1.9px),
    radial-gradient(circle at 88% 18%, rgba(193, 215, 255, 0.3) 0.95px, transparent 1.8px);
}

[data-theme="dark"] .starfield-front {
  background-image:
    radial-gradient(circle at 14% 18%, rgba(226, 208, 255, 0.84) 1.4px, transparent 2.3px),
    radial-gradient(circle at 76% 42%, rgba(255, 255, 255, 0.82) 1.2px, transparent 2.15px),
    radial-gradient(circle at 38% 74%, rgba(213, 194, 255, 0.76) 1.3px, transparent 2.2px),
    radial-gradient(circle at 90% 86%, rgba(201, 220, 255, 0.62) 1.05px, transparent 2px),
    radial-gradient(circle at 58% 12%, rgba(255, 255, 255, 0.72) 1.15px, transparent 2.05px);
}

.meteor-field {
  overflow: hidden;
}

.meteor {
  position: absolute;
  width: 240px;
  height: 3px;
  top: -18%;
  right: -22%;
  opacity: 0;
  border-radius: 999px;
  transform: rotate(145deg);
  background: linear-gradient(90deg, rgba(67, 91, 176, 0), rgba(67, 91, 176, 0.16) 24%, rgba(118, 143, 228, 0.38) 54%, rgba(255, 255, 255, 0.92) 100%);
  box-shadow: 0 0 12px rgba(88, 116, 228, 0.24), 0 0 28px rgba(88, 116, 228, 0.16);
  animation: cometFall 9.5s linear infinite;
}

[data-theme="dark"] .meteor {
  background: linear-gradient(90deg, rgba(126, 149, 255, 0), rgba(126, 149, 255, 0.18) 24%, rgba(186, 213, 255, 0.54) 56%, rgba(255, 255, 255, 0.96) 100%);
}

.meteor-one { top: -16%; right: 8%; width: 280px; animation-delay: 0s; }
.meteor-two { top: -22%; right: 34%; width: 210px; animation-delay: 2.4s; }
.meteor-three { top: -12%; right: 58%; width: 320px; animation-delay: 5.1s; }
.meteor-four { top: -28%; right: -4%; width: 190px; animation-delay: 7.2s; }

.meteor-core {
  position: absolute;
  top: 50%;
  right: -2px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
  transform: translateY(-50%);
  box-shadow: 0 0 12px rgba(255, 255, 255, 0.95), 0 0 24px rgba(129, 162, 255, 0.58);
}

.ticker-band {
  overflow: hidden;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.52);
  backdrop-filter: blur(10px);
}

[data-theme="dark"] .ticker-band {
  background: rgba(9, 13, 32, 0.56);
}

.ticker-track {
  display: flex;
  gap: 1rem;
  width: max-content;
  padding: 1rem 0;
  animation: marquee 24s linear infinite;
}

.ticker-item {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  white-space: nowrap;
  color: var(--foreground-muted);
  font-weight: 600;
}

.ticker-item::before {
  content: "•";
  color: var(--primary);
}

.showcase-section {
  padding: 2rem 0;
}

.showcase-section-soft {
  background: linear-gradient(180deg, transparent, rgba(71, 82, 162, 0.14));
}

.showcase-section-end {
  padding-top: 0.9rem;
  padding-bottom: 3.4rem;
}

.section-heading {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  margin-bottom: 1.4rem;
}

.section-kicker {
  color: var(--primary);
}

.section-title {
  margin: 0;
  max-width: 18ch;
  font-size: clamp(2rem, 4.8vw, 4rem);
  line-height: 1;
  letter-spacing: -0.05em;
}

.section-link {
  color: var(--foreground);
  font-weight: 600;
  text-decoration: none;
}

.showcase-card {
  display: block;
  height: 100%;
  padding: 1.2rem;
  border: 1px solid var(--border);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(239, 244, 255, 0.84));
  box-shadow: 0 18px 40px rgba(51, 69, 128, 0.12);
  text-decoration: none;
  transition: transform 300ms ease, box-shadow 300ms ease;
}

[data-theme="dark"] .showcase-card {
  background: linear-gradient(180deg, rgba(14, 20, 48, 0.9), rgba(8, 13, 33, 0.82));
  box-shadow: 0 18px 40px rgba(3, 6, 20, 0.28);
}

.showcase-card:hover {
  transform: translateY(-6px);
  text-decoration: none;
}

.showcase-card-top,
.showcase-card-footer,
.showcase-meta,
.partners-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
}

.showcase-card-title {
  margin: 1rem 0 0.45rem;
  font-size: 1.2rem;
  line-height: 1.2;
  letter-spacing: -0.03em;
  color: var(--foreground);
}

.showcase-card-text,
.showcase-meta,
.pillar-text,
.final-cta-text,
.showcase-quote {
  color: var(--foreground-muted);
}

.showcase-meta {
  flex-wrap: wrap;
  margin-top: 0.8rem;
  font-size: 0.92rem;
}

.showcase-card-footer {
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(91, 110, 180, 0.12);
}

[data-theme="dark"] .showcase-card-footer {
  border-top-color: rgba(173, 190, 255, 0.1);
}

.showcase-prize-label {
  font-size: 0.8rem;
  color: var(--foreground-muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.showcase-prize-value {
  font-weight: 700;
  font-size: 1rem;
  color: var(--foreground);
}

.showcase-icon-wrap,
.partner-logo,
.pillar-icon {
  display: grid;
  place-items: center;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--primary);
}

.showcase-icon-wrap {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  background: rgba(91, 82, 255, 0.08);
  font-size: 0.92rem;
}

[data-theme="dark"] .showcase-icon-wrap {
  background: rgba(255, 255, 255, 0.08);
}

.pillar-card {
  padding: 1.4rem;
  border: 1px solid var(--border);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 14px 34px rgba(51, 69, 128, 0.1);
}

[data-theme="dark"] .pillar-card {
  background: rgba(12, 18, 43, 0.72);
  box-shadow: 0 14px 34px rgba(3, 6, 20, 0.26);
}

.pillar-icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: rgba(124, 92, 255, 0.14);
  font-size: 0.72rem;
}

.pillar-title {
  margin: 1rem 0 0.45rem;
  font-size: 1.15rem;
  color: var(--foreground);
}

.partners-strip {
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.partner-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.8rem 1rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.74);
}

[data-theme="dark"] .partner-pill {
  background: rgba(12, 18, 43, 0.74);
}

.partner-logo {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(91, 82, 255, 0.1);
  font-size: 0.72rem;
}

.final-cta {
  display: grid;
  gap: 1.5rem;
  padding: 1.8rem;
  border: 1px solid var(--border);
  border-radius: 34px;
  background:
    radial-gradient(circle at 15% 20%, rgba(85, 129, 255, 0.18), transparent 28%),
    radial-gradient(circle at 82% 18%, rgba(140, 86, 255, 0.18), transparent 26%),
    linear-gradient(135deg, rgba(242, 246, 255, 0.98), rgba(230, 236, 255, 0.98));
  box-shadow: 0 28px 64px rgba(51, 69, 128, 0.16);
}

[data-theme="dark"] .final-cta {
  background:
    radial-gradient(circle at 15% 20%, rgba(85, 129, 255, 0.18), transparent 28%),
    radial-gradient(circle at 82% 18%, rgba(140, 86, 255, 0.18), transparent 26%),
    linear-gradient(135deg, rgba(8, 13, 33, 0.98), rgba(5, 8, 22, 0.98));
  box-shadow: 0 28px 64px rgba(2, 4, 14, 0.42);
}

[data-theme="dark"] .final-cta .section-title,
[data-theme="dark"] .final-cta .section-kicker,
[data-theme="dark"] .final-cta .final-cta-text {
  color: #ffffff;
}

.final-cta-copy {
  display: grid;
  align-content: center;
  gap: 0.75rem;
  max-width: 820px;
}

.final-cta-copy .section-kicker {
  margin-bottom: 0;
}

.final-cta-copy .section-title {
  max-width: 13ch;
  margin-bottom: 0;
}

.showcase-quote {
  max-width: 760px;
  margin: 0 auto;
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  letter-spacing: -0.02em;
  line-height: 1.5;
  color: #ffffff;
}

.animate-enter {
  opacity: 0;
  transform: translateY(26px);
  animation: fadeSlideUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.stage-float-slow { animation: floatY 7s ease-in-out infinite; }

@keyframes fadeSlideUp {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes driftGlow {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(3%, -4%, 0) scale(1.06); }
}

@keyframes floatY {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

@keyframes orbitPulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(116, 142, 255, 0.16); }
  50% { transform: scale(1.05); box-shadow: 0 0 0 16px rgba(116, 142, 255, 0); }
}

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-33%); }
}

@keyframes starFall {
  0% { transform: translate3d(0, -24px, 0); }
  100% { transform: translate3d(-14px, 64px, 0); }
}

@keyframes cometFall {
  0% { opacity: 0; transform: translate3d(0, 0, 0) rotate(145deg) scaleX(0.72); }
  8% { opacity: 1; }
  42% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(-760px, 620px, 0) rotate(145deg) scaleX(1.04); }
}

@media (min-width: 900px) {
  .hero-shell { padding: 4rem 0 2.3rem; }
  .hero-layout { grid-template-columns: minmax(0, 1.1fr) minmax(420px, 0.9fr); gap: 2.4rem; }
  .hero-stat-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stage-panel-grid,
  .showcase-grid,
  .pillar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .section-heading { flex-direction: row; align-items: end; justify-content: space-between; }
  .final-cta { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .site-footer-grid {
    grid-template-columns: repeat(3, minmax(220px, 280px));
  }
}

@media (min-width: 1180px) {
  .showcase-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pillar-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 899px) {
  .desktop-nav,
  .site-action-link,
  .site-action-primary {
    display: none;
  }

  .mobile-menu-toggle {
    display: inline-flex;
  }

  .site-header-shell {
    min-height: auto;
    border-radius: 24px;
  }

  .mobile-nav-panel {
    display: none;
  }

  .mobile-nav-panel.open {
    display: flex;
  }

  .hero-stage {
    min-height: auto;
  }

  .stage-title-row,
  .stage-topline,
  .stage-footer {
    flex-direction: column;
    align-items: flex-start;
  }

  .final-cta-copy .section-title {
    max-width: 100%;
  }
}

/* Unified internal pages */
.page-shell {
  position: relative;
  overflow-x: hidden;
}

.page-shell > *:not(.page-backdrop):not(.modal):not(.modal-backdrop) {
  position: relative;
  z-index: 2;
}

.page-shell > .modal {
  position: fixed;
  z-index: 5000;
}

.page-shell > .modal-backdrop {
  position: fixed;
  z-index: 4990;
}

.page-shell #header-container {
  position: relative;
  z-index: 3000;
}

.page-backdrop {
  position: fixed;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(circle at 18% 28%, rgba(105, 118, 255, 0.22), transparent 32%),
    radial-gradient(circle at 82% 18%, rgba(131, 82, 255, 0.14), transparent 28%),
    linear-gradient(180deg, rgba(248, 250, 255, 0.94), rgba(232, 239, 255, 0.96));
}

[data-theme="dark"] .page-backdrop {
  background:
    radial-gradient(circle at 18% 28%, rgba(83, 102, 255, 0.18), transparent 28%),
    radial-gradient(circle at 82% 18%, rgba(138, 86, 255, 0.14), transparent 26%),
    linear-gradient(180deg, #050713, #091022);
}

.page-aurora,
.page-stars,
.page-comets {
  position: absolute;
  inset: 0;
}

.page-aurora {
  filter: blur(48px);
  opacity: 0.82;
}

.page-aurora-left {
  width: 34vw;
  height: 34vw;
  top: 12%;
  left: -10%;
  border-radius: 50%;
  background: rgba(109, 124, 255, 0.22);
  animation: driftGlow 16s ease-in-out infinite;
}

.page-aurora-right {
  width: 28vw;
  height: 28vw;
  top: 18%;
  right: -8%;
  border-radius: 50%;
  background: rgba(133, 87, 255, 0.16);
  animation: driftGlow 18s ease-in-out infinite reverse;
}

.page-stars {
  background-repeat: repeat;
  animation: starFall linear infinite;
}

.page-stars-back {
  background-image:
    radial-gradient(circle at 18% 24%, rgba(255, 255, 255, 0.32) 0.8px, transparent 1.7px),
    radial-gradient(circle at 72% 38%, rgba(213, 223, 255, 0.24) 0.75px, transparent 1.6px),
    radial-gradient(circle at 46% 78%, rgba(255, 255, 255, 0.2) 0.85px, transparent 1.8px);
  background-size: 250px 240px, 300px 270px, 220px 245px;
  background-position: 0 0, 120px 60px, 55px 135px;
  animation-duration: 92s;
  opacity: 0.88;
}

.page-stars-mid {
  background-image:
    radial-gradient(circle at 12% 22%, rgba(184, 201, 255, 0.46) 1px, transparent 1.9px),
    radial-gradient(circle at 68% 52%, rgba(204, 216, 255, 0.38) 1.1px, transparent 2px),
    radial-gradient(circle at 42% 84%, rgba(222, 230, 255, 0.3) 0.95px, transparent 1.85px);
  background-size: 170px 168px, 206px 184px, 160px 182px;
  background-position: 0 0, 60px 104px, 98px 28px;
  animation-duration: 62s;
}

.page-stars-front {
  background-image:
    radial-gradient(circle at 14% 18%, rgba(255, 255, 255, 0.66) 1.25px, transparent 2.1px),
    radial-gradient(circle at 76% 42%, rgba(236, 228, 255, 0.6) 1.1px, transparent 2.05px),
    radial-gradient(circle at 38% 74%, rgba(214, 224, 255, 0.52) 1px, transparent 1.95px),
    radial-gradient(circle at 90% 86%, rgba(255, 255, 255, 0.48) 0.95px, transparent 1.85px);
  background-size: 132px 134px, 148px 142px, 155px 148px, 170px 158px;
  background-position: 0 0, 48px 72px, 84px 20px, 22px 118px;
  animation-duration: 38s;
}

[data-theme="dark"] .page-stars-mid {
  background-image:
    radial-gradient(circle at 12% 22%, rgba(184, 201, 255, 0.52) 1px, transparent 1.95px),
    radial-gradient(circle at 68% 52%, rgba(204, 216, 255, 0.42) 1.15px, transparent 2.05px),
    radial-gradient(circle at 42% 84%, rgba(232, 238, 255, 0.34) 1px, transparent 1.9px);
}

[data-theme="dark"] .page-stars-front {
  background-image:
    radial-gradient(circle at 14% 18%, rgba(255, 255, 255, 0.78) 1.25px, transparent 2.1px),
    radial-gradient(circle at 76% 42%, rgba(235, 220, 255, 0.72) 1.15px, transparent 2.1px),
    radial-gradient(circle at 38% 74%, rgba(196, 219, 255, 0.62) 1.05px, transparent 2px),
    radial-gradient(circle at 90% 86%, rgba(255, 255, 255, 0.58) 1px, transparent 1.9px);
}

.page-comet {
  position: absolute;
  top: -18%;
  right: -18%;
  width: 250px;
  height: 3px;
  border-radius: 999px;
  opacity: 0;
  transform: rotate(145deg);
  background: linear-gradient(90deg, rgba(126, 149, 255, 0), rgba(126, 149, 255, 0.16) 24%, rgba(201, 218, 255, 0.46) 58%, rgba(255, 255, 255, 0.96) 100%);
  box-shadow: 0 0 14px rgba(92, 124, 255, 0.24), 0 0 28px rgba(92, 124, 255, 0.18);
  animation: cometFall 11s linear infinite;
}

.page-comet::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -2px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
  transform: translateY(-50%);
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.96), 0 0 22px rgba(129, 162, 255, 0.54);
}

.page-comet-one { top: -14%; right: 10%; width: 260px; animation-delay: 0s; }
.page-comet-two { top: -22%; right: 42%; width: 190px; animation-delay: 3.4s; }
.page-comet-three { top: -10%; right: 68%; width: 290px; animation-delay: 7.1s; }

.site-header {
  padding: 0.85rem 0 0.45rem;
  position: relative;
  z-index: 3000;
}

.site-header-shell {
  margin-top: 0;
  min-height: 82px;
  padding: 1rem 1.35rem;
  border-radius: 32px;
  border-color: rgba(94, 113, 184, 0.18);
  background: var(--header-bg);
  box-shadow: 0 18px 50px rgba(80, 98, 168, 0.16);
  overflow: visible;
}

[data-theme="dark"] .site-header-shell {
  border-color: rgba(166, 182, 255, 0.14);
}

.hackathons-page main,
.dashboard-page main,
.legal-page main,
.content-page main {
  padding-top: 1.8rem;
  padding-bottom: 3.25rem;
}

.auth-page main {
  padding: 4rem 0;
}

.auth-page .container,
.dashboard-page .container-fluid {
  max-width: 1280px;
}

.dashboard-page .container-fluid {
  margin: 0 auto;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.auth-page .card,
.hackathons-page .card,
.dashboard-page .card,
.dashboard-page .thm-card,
.legal-page #privacy-root,
.legal-page #terms-root {
  border-radius: 28px;
  border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(241, 246, 255, 0.94));
  backdrop-filter: blur(18px);
  box-shadow: 0 24px 60px rgba(80, 98, 168, 0.12);
}

[data-theme="dark"] .auth-page .card,
[data-theme="dark"] .hackathons-page .card,
[data-theme="dark"] .dashboard-page .card,
[data-theme="dark"] .dashboard-page .thm-card,
[data-theme="dark"] .legal-page #privacy-root,
[data-theme="dark"] .legal-page #terms-root {
  background: linear-gradient(180deg, rgba(10, 15, 38, 0.9), rgba(7, 10, 28, 0.96));
  box-shadow: 0 24px 60px rgba(2, 4, 14, 0.46);
}

.auth-page .card-header,
.hackathons-page .card-header,
.dashboard-page .card-header,
.dashboard-page .thm-card-header {
  padding: 1.1rem 1.4rem;
  border-bottom: 1px solid var(--border);
  background: transparent;
}

.auth-page .card-body,
.hackathons-page .card-body,
.dashboard-page .card-body,
.dashboard-page .thm-card-body {
  padding: 1.35rem 1.45rem;
}

.legal-page #privacy-root,
.legal-page #terms-root {
  padding: 2rem 2.15rem;
}

.btn-primary,
.thm-btn-primary,
.hero-primary-button {
  border: 1px solid rgba(122, 143, 255, 0.24);
  background: linear-gradient(135deg, rgba(68, 117, 255, 1), rgba(127, 72, 255, 1));
  color: #fff;
  box-shadow: 0 16px 40px rgba(63, 88, 219, 0.26);
}

.btn-primary:hover,
.thm-btn-primary:hover {
  border-color: rgba(145, 164, 255, 0.28);
  background: linear-gradient(135deg, rgba(88, 132, 255, 1), rgba(141, 88, 255, 1));
  color: #fff;
}

.btn-outline-primary,
.btn-ghost,
.thm-btn-outline {
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.56);
  color: var(--foreground);
  backdrop-filter: blur(14px);
}

[data-theme="dark"] .btn-outline-primary,
[data-theme="dark"] .btn-ghost,
[data-theme="dark"] .thm-btn-outline {
  background: rgba(255, 255, 255, 0.04);
}

.btn-outline-primary:hover,
.btn-ghost:hover,
.thm-btn-outline:hover {
  border-color: var(--border-hover);
  background: rgba(255, 255, 255, 0.76);
  color: var(--foreground);
}

[data-theme="dark"] .btn-outline-primary:hover,
[data-theme="dark"] .btn-ghost:hover,
[data-theme="dark"] .thm-btn-outline:hover {
  background: rgba(255, 255, 255, 0.08);
}

.form-control,
.form-select {
  min-height: 52px;
  border-radius: 18px;
  border-color: rgba(94, 113, 184, 0.16);
  background: rgba(255, 255, 255, 0.76);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
  background: rgba(9, 13, 32, 0.84);
}

textarea.form-control {
  min-height: 132px;
}

.modal-content {
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(248, 250, 255, 0.98), rgba(233, 240, 255, 0.98));
  box-shadow: 0 28px 70px rgba(74, 92, 160, 0.2);
}

[data-theme="dark"] .modal-content {
  background: linear-gradient(180deg, rgba(10, 15, 38, 0.98), rgba(6, 9, 24, 0.98));
}

.hackathons-page .filter-btn {
  min-height: 46px;
  padding-inline: 1rem;
  border-radius: 999px;
}

.hackathons-stage {
  position: relative;
  width: 100%;
  max-width: none;
  min-height: 980px;
  padding: 2rem 2rem 2rem;
  border-radius: 34px;
  border: 1px solid rgba(137, 154, 226, 0.16);
  background: linear-gradient(180deg, rgba(7, 11, 28, 0.46), rgba(7, 11, 28, 0.18));
  backdrop-filter: blur(18px);
  box-shadow: 0 28px 70px rgba(5, 8, 22, 0.22);
  overflow: hidden;
}

[data-theme="light"] .hackathons-stage {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.46), rgba(236, 242, 255, 0.26));
  box-shadow: 0 28px 70px rgba(85, 102, 170, 0.14);
}

.hackathons-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    radial-gradient(circle at 14% 20%, rgba(109, 124, 255, 0.18), transparent 28%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 24%);
  pointer-events: none;
}

.hackathons-page .hackathon-card {
  overflow: hidden;
  border-radius: 28px;
}

.hackathons-page .hackathon-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 60px rgba(80, 98, 168, 0.16);
}

.content-spotlight {
  padding: 1.4rem 1.55rem;
  border: 1px solid rgba(113, 129, 210, 0.16);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(8, 12, 30, 0.72), rgba(8, 12, 30, 0.48));
  backdrop-filter: blur(16px);
  box-shadow: 0 18px 46px rgba(8, 12, 30, 0.18);
}

[data-theme="light"] .content-spotlight {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.84), rgba(237, 243, 255, 0.76));
  box-shadow: 0 18px 46px rgba(80, 98, 168, 0.12);
}

.hackathons-hero-copy {
  max-width: 100%;
}

.hackathons-stage .content-spotlight,
.hackathons-stage .hackathons-filters {
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  border-color: transparent;
  padding-left: 0;
  padding-right: 0;
}

.hackathons-page .lead {
  max-width: 760px;
  color: rgba(245, 247, 255, 0.86) !important;
  font-size: 1.25rem;
}

[data-theme="light"] .hackathons-page .lead {
  color: rgba(38, 51, 92, 0.82) !important;
}

.hackathons-filters {
  display: inline-flex !important;
  align-items: center;
  padding: 0.7rem;
  border-radius: 999px;
  background: rgba(7, 10, 28, 0.24);
}

[data-theme="light"] .hackathons-filters {
  background: rgba(255, 255, 255, 0.24);
}

.hackathon-mark {
  width: 64px;
  height: 64px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: -0.04em;
  color: #d9e4ff;
  background: linear-gradient(135deg, rgba(61, 102, 255, 0.24), rgba(123, 72, 255, 0.18));
  border: 1px solid rgba(150, 169, 255, 0.16);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.hackathon-mark-large {
  width: 76px;
  height: 76px;
  font-size: 1.65rem;
  border-radius: 24px;
}

.auth-page .display-4 {
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 700;
  color: var(--foreground);
  letter-spacing: -0.05em;
}

.auth-stage {
  position: relative;
  width: 100%;
  padding: 2rem 2rem 1.5rem;
  border-radius: 36px;
  border: 1px solid rgba(138, 154, 226, 0.16);
  background: linear-gradient(180deg, rgba(7, 11, 28, 0.46), rgba(7, 11, 28, 0.18));
  backdrop-filter: blur(18px);
  box-shadow: 0 28px 70px rgba(5, 8, 22, 0.22);
  overflow: hidden;
}

[data-theme="light"] .auth-stage {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.48), rgba(238, 243, 255, 0.28));
  box-shadow: 0 28px 70px rgba(85, 102, 170, 0.14);
}

.auth-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    radial-gradient(circle at 14% 18%, rgba(109, 124, 255, 0.16), transparent 28%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 24%);
  pointer-events: none;
}

.auth-page .auth-intro {
  margin-bottom: 1.6rem !important;
}

.auth-page .auth-intro .text-muted {
  color: rgba(245, 247, 255, 0.72) !important;
}

[data-theme="light"] .auth-page .auth-intro .text-muted {
  color: rgba(38, 51, 92, 0.66) !important;
}

.auth-page .card {
  overflow: hidden;
}

.auth-page .card-body {
  padding: 2rem 1.9rem;
}

.auth-page .auth-card {
  position: relative;
  border-radius: 30px;
}

.auth-page .auth-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent);
  pointer-events: none;
}

.auth-page .auth-support-copy {
  max-width: 580px;
  margin: 1.35rem auto 0;
  padding: 1rem 1.2rem;
  border-radius: 20px;
  border: 1px solid rgba(113, 129, 210, 0.12);
  background: rgba(8, 12, 30, 0.42);
}

[data-theme="light"] .auth-page .auth-support-copy {
  background: rgba(255, 255, 255, 0.5);
}

.auth-page .auth-divider {
  margin-top: 1.75rem !important;
  padding-top: 1.5rem !important;
  border-top: 0 !important;
}

.auth-page .auth-divider::before {
  display: none !important;
  content: none !important;
}

.auth-page .auth-empty-copy {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--foreground-muted);
  font-size: 0.95rem;
}

.auth-page .auth-link-row a {
  color: #eef3ff;
}

[data-theme="light"] .auth-page .auth-link-row a {
  color: #22305b;
}

@media (max-width: 991.98px) {
  .hackathons-stage {
    min-height: auto;
  }
}

.auth-page #google-login-btn,
.auth-page #google-register-btn {
  min-height: 60px !important;
  border-radius: 20px;
  border: 1px solid var(--border) !important;
  background: rgba(255, 255, 255, 0.84) !important;
  color: var(--foreground) !important;
  box-shadow: none !important;
}

[data-theme="dark"] .auth-page #google-login-btn,
[data-theme="dark"] .auth-page #google-register-btn {
  background: rgba(255, 255, 255, 0.06) !important;
}

.dashboard-page .thm-main {
  min-height: calc(100vh - 150px);
  padding: 0.5rem 0 3rem;
}

.dashboard-page .thm-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 1.35rem;
}

.dashboard-page .thm-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.dashboard-page .thm-section-title {
  margin: 0;
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--foreground);
}

.dashboard-page .thm-progress-item,
.dashboard-page .thm-member,
.dashboard-page .thm-stat-card {
  border: 1px solid rgba(100, 117, 184, 0.12);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.42);
}

[data-theme="dark"] .dashboard-page .thm-progress-item,
[data-theme="dark"] .dashboard-page .thm-member,
[data-theme="dark"] .dashboard-page .thm-stat-card {
  background: rgba(255, 255, 255, 0.03);
}

.dashboard-page .thm-progress-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem;
  transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.dashboard-page .thm-progress-item:hover {
  transform: translateY(-2px);
  border-color: rgba(110, 126, 255, 0.22);
}

.dashboard-page .thm-item-icon,
.dashboard-page .thm-member-avatar,
.dashboard-page .thm-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(68, 117, 255, 1), rgba(127, 72, 255, 1));
  color: #fff;
}

.dashboard-page .thm-item-icon {
  width: 48px;
  height: 48px;
  border-radius: 18px;
  flex-shrink: 0;
  font-size: 1.2rem;
}

.dashboard-page .thm-item-icon.success {
  background: linear-gradient(135deg, #3cb5ff, #8d71ff);
}

.dashboard-page .thm-item-content,
.dashboard-page .thm-member-info {
  flex: 1;
}

.dashboard-page .thm-item-title,
.dashboard-page .thm-member-name {
  margin-bottom: 0.25rem;
  color: var(--foreground);
  font-weight: 600;
}

.dashboard-page .thm-item-desc,
.dashboard-page .thm-member-role,
.dashboard-page .thm-stat-label {
  color: var(--foreground-muted);
}

.dashboard-page .thm-progress-bar,
.dashboard-page .thm-mini-progress {
  height: 6px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(120, 137, 198, 0.14);
}

.dashboard-page .thm-progress-fill,
.dashboard-page .thm-mini-progress-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(68, 117, 255, 1), rgba(127, 72, 255, 1));
}

.dashboard-page .thm-stat-card {
  padding: 1rem;
  text-align: center;
}

.dashboard-page .thm-stat-value {
  font-size: 1.7rem;
  line-height: 1;
  font-weight: 700;
  color: var(--primary);
}

.dashboard-page .thm-stat-label {
  margin-top: 0.45rem;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.dashboard-page .thm-member {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.9rem 1rem;
}

.dashboard-page .thm-member-avatar,
.dashboard-page .thm-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  font-size: 0.82rem;
  font-weight: 700;
}

.dashboard-page .thm-btn-primary,
.dashboard-page .thm-btn-outline {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
}

.dashboard-page .bottom-nav {
  border-top: 1px solid var(--border);
  background: var(--header-bg);
  backdrop-filter: blur(18px);
}

.dashboard-page .bottom-nav .nav-link {
  color: var(--foreground-muted) !important;
}

.dashboard-page .bottom-nav .nav-link.active {
  color: var(--primary) !important;
}

.legal-page .alert-info {
  border-radius: 20px;
  border-color: rgba(92, 124, 255, 0.14);
  background: rgba(92, 124, 255, 0.08);
  color: var(--foreground);
}

@media (max-width: 991.98px) {
  .dashboard-page .thm-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767.98px) {
  .site-header {
    padding-top: 0.55rem;
  }

  .site-header-shell {
    border-radius: 24px;
    min-height: 72px;
    padding: 0.85rem 1rem;
  }

  .auth-page .card-body,
  .legal-page #privacy-root,
  .legal-page #terms-root {
    padding: 1.5rem 1.25rem;
  }
}
