Diff of /web/style.css [000000] .. [8c4ad8]

Switch to side-by-side view

--- a
+++ b/web/style.css
@@ -0,0 +1,1276 @@
+/* DNA Helix Animation */
+.dna-helix {
+  position: relative;
+  width: 200px;
+  height: 400px;
+  margin: 0 auto;
+  perspective: 1200px;
+  transform-style: preserve-3d;
+  will-change: transform; /* Optimize animation performance */
+}
+
+.base-pair {
+  position: absolute;
+  width: 100%;
+  height: 20px;
+  animation: rotate 8s linear infinite;
+  transform-style: preserve-3d;
+  backface-visibility: hidden; /* Prevent flickering */
+  will-change: transform;
+}
+
+.base {
+  position: absolute;
+  width: 25px;
+  height: 25px;
+  border-radius: 50%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-weight: bold;
+  color: white;
+  text-shadow: 0 0 3px rgba(0,0,0,0.5);
+  box-shadow: 0 0 15px rgba(0,0,0,0.2);
+  backface-visibility: hidden;
+}
+
+.left-base {
+  left: 35px;
+  background: #FF0066;
+  animation: pulse 3s ease-in-out infinite;
+  filter: brightness(1.1);
+}
+
+.right-base {
+  right: 35px;
+  background: #00B7FF;
+  animation: pulse 3s ease-in-out infinite;
+  filter: brightness(1.1);
+}
+
+.base-connector {
+  position: absolute;
+  left: 50%;
+  width: 90px;
+  height: 3px;
+  background: linear-gradient(90deg, 
+      rgba(255, 0, 102, 0.8), 
+      rgba(255, 255, 255, 0.3) 50%,
+      rgba(0, 183, 255, 0.8)
+  );
+  transform: translateX(-50%);
+  box-shadow: 0 0 8px rgba(0,0,0,0.15);
+}
+
+@keyframes rotate {
+  0% { transform: rotateY(0deg) translateZ(40px) translateX(-20px); }
+  12.5% { transform: rotateY(45deg) translateZ(40px) translateX(-15px); }
+  25% { transform: rotateY(90deg) translateZ(40px) translateX(0px); }
+  37.5% { transform: rotateY(135deg) translateZ(40px) translateX(15px); }
+  50% { transform: rotateY(180deg) translateZ(40px) translateX(20px); }
+  62.5% { transform: rotateY(225deg) translateZ(40px) translateX(15px); }
+  75% { transform: rotateY(270deg) translateZ(40px) translateX(0px); }
+  87.5% { transform: rotateY(315deg) translateZ(40px) translateX(-15px); }
+  100% { transform: rotateY(360deg) translateZ(40px) translateX(-20px); }
+}
+
+@keyframes pulse {
+  0% { transform: scale(1); opacity: 0.9; filter: brightness(1.1); }
+  50% { transform: scale(1.15); opacity: 1; filter: brightness(1.3); }
+  100% { transform: scale(1); opacity: 0.9; filter: brightness(1.1); }
+}
+/* DNAnalyzer - Main Stylesheet
+* Global styles for all pages
+*/
+/* Notification Banner Styling */
+.notification-banner {
+  background: linear-gradient(135deg, #FF6F00, #FF9100);
+  color: var(--white);
+  padding: 0.75rem 1rem 0.75rem 0.75rem;
+  text-align: center;
+  font-size: 1rem;
+  font-weight: 600;
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+  z-index: var(--z-navbar);
+  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+  animation: notifPulse 3s infinite;
+  transition: transform 0.3s ease-in-out;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+  align-items: center;
+}
+
+.notification-banner.hide-notification {
+  transform: translateY(-100%);
+}
+
+.notification-banner.closed {
+  display: none !important;
+}
+
+.notification-banner .notification-link {
+  color: inherit;
+  text-decoration: none;
+  font-weight: 700;
+  background-color: rgba(255, 255, 255, 0.2);
+  padding: 0.25rem 0.5rem;
+  border-radius: 4px;
+  margin: 0 0.5rem;
+  transition: all 0.3s ease;
+  white-space: nowrap;
+}
+
+.notification-banner .notification-link:hover {
+  color: #FFD700;
+  text-shadow: 0 0 5px rgba(255, 215, 0, 0.5);
+}
+
+.notification-banner .notification-close {
+  background: rgba(255, 255, 255, 0.1);
+  border: none;
+  color: var(--white);
+  font-size: 1.25rem;
+  line-height: 1;
+  position: absolute;
+  right: 0.5rem;
+  top: 50%;
+  transform: translateY(-50%);
+  cursor: pointer;
+  transition: all 0.3s ease;
+  width: 24px;
+  height: 24px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  border-radius: 50%;
+  padding: 0;
+}
+
+.notification-banner .notification-close::before {
+  content: "×";
+  display: block;
+  position: relative;
+  top: -1px;
+}
+
+.notification-banner .notification-close:hover {
+  background: rgba(255, 255, 255, 0.2);
+  transform: translateY(-50%) rotate(90deg);
+  color: #FFD700;
+  text-shadow: 0 0 5px rgba(255, 215, 0, 0.5);
+}
+
+:root {
+  /* Brand colors from logo */
+  --magenta: #ff0066;
+  --blue: #00a4ef;
+  --orange: #f48022;
+  --white: #ffffff;
+  --dark-bg: #001427;
+  
+  /* Additional UI colors */
+  --dark-blue: #051e3e;
+  --light-blue: #2596be;
+  --light-gray: #f5f5f7;
+  --medium-gray: #86868b;
+  --dark-gray: #333333;
+  
+  /* Functional colors */
+  --success: #34c759;
+  --warning: #ff9500;
+  --error: #ff3b30;
+  
+  /* Typography */
+  --font-heading: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
+  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
+  --font-mono: 'IBM Plex Mono', monospace;
+  
+  /* Spacing */
+  --space-xs: 0.25rem;
+  --space-sm: 0.5rem;
+  --space-md: 1rem;
+  --space-lg: 1.5rem;
+  --space-xl: 2rem;
+  --space-xxl: 3rem;
+  
+  /* Border radius */
+  --radius-sm: 4px;
+  --radius-md: 8px;
+  --radius-lg: 12px;
+  --radius-xl: 20px;
+  
+  /* Shadows */
+  --shadow-sm: 0 2px 5px rgba(0, 0, 0, 0.1);
+  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.15);
+  --shadow-lg: 0 8px 20px rgba(0, 0, 0, 0.2);
+  
+  /* Transitions */
+  --transition-fast: 0.2s ease;
+  --transition-normal: 0.3s ease;
+  --transition-slow: 0.5s ease;
+  
+  /* Z-index layers */
+  --z-tooltip: 100;
+  --z-navbar: 200;
+  --z-modal: 300;
+}
+
+/* Reset & Base Styles */
+*, 
+*::before, 
+*::after {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0;
+}
+
+html {
+  font-size: 16px;
+  scroll-behavior: smooth;
+}
+
+body {
+  font-family: var(--font-body);
+  background-color: var(--dark-bg);
+  color: var(--white);
+  line-height: 1.6;
+  overflow-x: hidden;
+  min-height: 100vh;
+  display: flex;
+  flex-direction: column;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+h1, h2, h3, h4, h5, h6 {
+  font-family: var(--font-heading);
+  line-height: 1.2;
+  font-weight: 700;
+  margin-bottom: var(--space-md);
+}
+
+h1 {
+  font-size: 3.5rem;
+  margin-bottom: var(--space-lg);
+}
+
+h2 {
+  font-size: 2.5rem;
+  margin-bottom: var(--space-lg);
+}
+
+h3 {
+  font-size: 1.75rem;
+}
+
+h4 {
+  font-size: 1.375rem;
+}
+
+p {
+  margin-bottom: var(--space-md);
+  color: rgba(255, 255, 255, 0.85);
+}
+
+a {
+  color: var(--blue);
+  text-decoration: none;
+  transition: color var(--transition-fast);
+}
+
+a:hover {
+  color: var(--light-blue);
+}
+
+img {
+  max-width: 100%;
+  height: auto;
+}
+
+button {
+  font-family: var(--font-body);
+  cursor: pointer;
+}
+
+code, pre {
+  font-family: var(--font-mono);
+}
+
+ul, ol {
+  padding-left: var(--space-lg);
+  margin-bottom: var(--space-md);
+}
+
+/* Container */
+.container {
+  width: 100%;
+  max-width: 1200px;
+  margin: 0 auto;
+  padding: 0 var(--space-lg);
+}
+
+.container-sm {
+  max-width: 800px;
+}
+
+.container-lg {
+  max-width: 1400px;
+}
+
+/* Navbar */
+.navbar {
+  position: fixed;
+  top: var(--notification-height, 0);
+  left: 0;
+  right: 0;
+  background: var(--dark-bg);
+  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
+  z-index: var(--z-navbar);
+  padding: var(--space-md) 0;
+  transition: all var(--transition-normal), top 0.3s ease-in-out;
+}
+
+.navbar.scrolled {
+  background: var(--dark-blue);
+  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
+  padding: var(--space-sm) 0;
+}
+
+.navbar-container {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.logo {
+  display: flex;
+  align-items: center;
+}
+
+.logo img {
+  height: 36px;
+  margin-right: var(--space-sm);
+}
+
+.logo-text {
+  font-size: 1.25rem;
+  font-weight: 700;
+  color: var(--white);
+}
+
+.nav-links {
+  display: flex;
+  align-items: center;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+
+.nav-links li {
+  margin: 0 var(--space-md);
+}
+
+.nav-links a {
+  color: var(--white);
+  font-weight: 500;
+  position: relative;
+  padding: var(--space-xs) 0;
+}
+
+.nav-links a::after {
+  content: '';
+  position: absolute;
+  width: 0;
+  height: 2px;
+  bottom: 0;
+  left: 0;
+  background: linear-gradient(90deg, var(--magenta), var(--blue));
+  transition: width var(--transition-normal);
+}
+
+.nav-links a:hover::after,
+.nav-links a.active::after {
+  width: 100%;
+}
+
+.nav-buttons {
+  display: flex;
+  align-items: center;
+}
+
+.mobile-toggle {
+  display: none;
+  background: none;
+  border: none;
+  color: var(--white);
+  font-size: 1.5rem;
+}
+
+/* Buttons */
+.btn {
+  display: inline-flex;
+  align-items: center;
+  justify-content: center;
+  padding: 0.75rem 1.5rem;
+  border-radius: var(--radius-md);
+  font-weight: 600;
+  transition: all var(--transition-fast);
+  border: none;
+  text-align: center;
+  cursor: pointer;
+}
+
+.btn-primary {
+  background: linear-gradient(135deg, #FF7B00, #FFB347);
+  color: var(--white);
+}
+
+.btn-primary:hover {
+  transform: translateY(-2px);
+  box-shadow: 0 5px 15px rgba(0, 164, 239, 0.4);
+  color: var(--white);
+}
+
+.btn-secondary {
+  background: rgba(255, 255, 255, 0.1);
+  color: var(--white);
+  border: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+.btn-secondary:hover {
+  background: rgba(255, 255, 255, 0.15);
+  transform: translateY(-2px);
+  color: var(--white);
+}
+
+.btn-sm {
+  padding: 0.5rem 1rem;
+  font-size: 0.875rem;
+}
+
+.btn-lg {
+  padding: 1rem 2rem;
+  font-size: 1.125rem;
+}
+
+.btn-icon {
+  margin-right: var(--space-xs);
+}
+
+.btn-github {
+  background: #24292e;
+  color: var(--white);
+}
+
+.btn-github:hover {
+  background: #2c3440;
+  color: var(--white);
+}
+
+.btn-discord {
+  background: #5865F2;
+  color: var(--white);
+}
+
+.btn-discord:hover {
+  background: #4752c4;
+  color: var(--white);
+}
+
+/* Hero section */
+.hero {
+  padding: 160px 0 100px;
+  position: relative;
+  overflow: hidden;
+}
+
+.hero-content {
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+  gap: var(--space-xxl);
+  align-items: center;
+}
+
+.hero-headings {
+  position: relative;
+  z-index: 2;
+}
+
+.hero h1 {
+  margin-bottom: var(--space-md);
+  letter-spacing: -0.02em;
+  line-height: 1.1;
+}
+
+.hero h1 span {
+  background: linear-gradient(135deg, var(--magenta), var(--blue));
+  -webkit-background-clip: text;
+  background-clip: text;
+  -webkit-text-fill-color: transparent;
+}
+
+.hero-subtitle {
+  font-size: 1.25rem;
+  margin-bottom: var(--space-xl);
+  color: rgba(255, 255, 255, 0.85);
+  max-width: 500px;
+}
+
+.hero-buttons {
+  display: flex;
+  gap: var(--space-md);
+  margin-bottom: var(--space-xl);
+}
+
+.hero-animation {
+  position: relative;
+  width: 100%;
+  height: 500px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+/* DNA Helix Animation */
+.dna-helix {
+  position: relative;
+  width: 100%;
+  height: 100%;
+  transform-style: preserve-3d;
+  perspective: 1200px;
+}
+
+.base-pair {
+  position: absolute;
+  width: 100%;
+  height: 30px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  animation: rotate3D 12s linear infinite;
+}
+
+@keyframes rotate3D {
+  0% { transform: rotateY(0deg); }
+  100% { transform: rotateY(360deg); }
+}
+
+.base {
+  width: 35px;
+  height: 35px;
+  border-radius: 50%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-weight: bold;
+  color: white;
+  position: absolute;
+  box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
+}
+
+.left-base {
+  background: var(--magenta);
+  left: calc(50% - 120px);
+  animation: moveLeft 6s ease-in-out infinite;
+}
+
+.right-base {
+  background: var(--blue);
+  right: calc(50% - 120px);
+  animation: moveRight 6s ease-in-out infinite;
+}
+
+.base-connector {
+  width: 200px;
+  height: 3px;
+  background: linear-gradient(90deg, var(--magenta), var(--blue));
+  position: absolute;
+  animation: stretch 6s ease-in-out infinite;
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
+}
+
+@keyframes moveLeft {
+  0%, 100% { transform: translateX(-12px); }
+  50% { transform: translateX(12px); }
+}
+
+@keyframes moveRight {
+  0%, 100% { transform: translateX(12px); }
+  50% { transform: translateX(-12px); }
+}
+
+@keyframes stretch {
+  0%, 100% { width: 200px; }
+  50% { width: 220px; }
+}
+
+/* Section styling */
+.section {
+  padding: var(--space-xxl) 0;
+  position: relative;
+}
+
+.section-title {
+  text-align: center;
+  margin-bottom: var(--space-xxl);
+}
+
+.section-title h2 {
+  margin-bottom: var(--space-md);
+}
+
+.section-title p {
+  max-width: 700px;
+  margin: 0 auto;
+  font-size: 1.1rem;
+}
+
+.section-bg-dark {
+  background-color: var(--dark-blue);
+}
+
+.section-bg-gradient {
+  background: linear-gradient(135deg, rgba(5, 30, 62, 0.7), rgba(0, 20, 39, 0.7));
+}
+
+/* Cards */
+.card {
+  background: rgba(255, 255, 255, 0.05);
+  border-radius: var(--radius-lg);
+  padding: var(--space-xl);
+  transition: all var(--transition-normal);
+  border: 1px solid rgba(255, 255, 255, 0.1);
+}
+
+.card:hover {
+  transform: translateY(-5px);
+  background: rgba(255, 255, 255, 0.08);
+  box-shadow: var(--shadow-md);
+  border-color: rgba(255, 255, 255, 0.15);
+}
+
+.card-title {
+  font-size: 1.3rem;
+  margin-bottom: var(--space-md);
+}
+
+.card-icon {
+  width: 60px;
+  height: 60px;
+  background: linear-gradient(135deg, var(--magenta), var(--blue));
+  border-radius: var(--radius-md);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 1.5rem;
+  color: var(--white);
+  margin-bottom: var(--space-md);
+}
+
+.card-grid {
+  display: grid;
+  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+  gap: var(--space-xl);
+}
+
+/* Feature cards */
+.feature-card {
+  display: flex;
+  align-items: flex-start;
+  gap: var(--space-lg);
+  padding: var(--space-xl);
+  background: rgba(255, 255, 255, 0.05);
+  border-radius: var(--radius-lg);
+  transition: all var(--transition-normal);
+  border: 1px solid rgba(255, 255, 255, 0.1);
+  margin-bottom: var(--space-xl);
+}
+
+.feature-card:hover {
+  transform: translateY(-5px);
+  background: rgba(255, 255, 255, 0.08);
+  box-shadow: var(--shadow-md);
+  border-color: rgba(255, 255, 255, 0.15);
+}
+
+.feature-icon {
+  min-width: 60px;
+  height: 60px;
+  border-radius: var(--radius-md);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 1.5rem;
+}
+
+.feature-icon-blue {
+  background: rgba(0, 164, 239, 0.15);
+  color: var(--blue);
+  border: 1px solid rgba(0, 164, 239, 0.3);
+}
+
+.feature-icon-magenta {
+  background: rgba(255, 0, 102, 0.15);
+  color: var(--magenta);
+  border: 1px solid rgba(255, 0, 102, 0.3);
+}
+
+.feature-icon-orange {
+  background: rgba(244, 128, 34, 0.15);
+  color: var(--orange);
+  border: 1px solid rgba(244, 128, 34, 0.3);
+}
+
+.feature-content h3 {
+  margin-bottom: var(--space-sm);
+}
+
+/* Stats */
+.stats-section {
+  padding: var(--space-xxl) 0;
+  text-align: center;
+  position: relative;
+  background: linear-gradient(135deg, rgba(5, 30, 62, 0.7), rgba(0, 20, 39, 0.7));
+  border-top: 1px solid rgba(255, 255, 255, 0.05);
+  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
+}
+
+.stats-grid {
+  display: grid;
+  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+  gap: var(--space-xl);
+  text-align: center;
+  max-width: 1000px;
+  margin: 0 auto;
+}
+
+.stat-item {
+  padding: var(--space-md);
+}
+
+.stat-number {
+  font-size: 3rem;
+  font-weight: 700;
+  margin-bottom: var(--space-xs);
+  background: linear-gradient(135deg, var(--magenta), var(--blue));
+  -webkit-background-clip: text;
+  background-clip: text;
+  -webkit-text-fill-color: transparent;
+}
+
+.stat-label {
+  color: rgba(255, 255, 255, 0.8);
+  font-size: 1rem;
+  font-weight: 500;
+}
+
+/* Steps */
+.steps-container {
+  counter-reset: step;
+  position: relative;
+}
+
+.step-item {
+  position: relative;
+  padding-left: 70px;
+  margin-bottom: var(--space-xl);
+}
+
+.step-item::before {
+  counter-increment: step;
+  content: counter(step);
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 50px;
+  height: 50px;
+  background: linear-gradient(135deg, var(--magenta), var(--blue));
+  border-radius: 50%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-weight: 700;
+  font-size: 1.25rem;
+  color: var(--white);
+}
+
+.step-item:not(:last-child)::after {
+  content: '';
+  position: absolute;
+  left: 25px;
+  top: 50px;
+  bottom: -40px;
+  width: 2px;
+  background: linear-gradient(to bottom, var(--blue), transparent);
+}
+
+.step-content h3 {
+  margin-bottom: var(--space-sm);
+}
+
+/* Footer */
+.footer {
+  background: var(--dark-blue);
+  padding: var(--space-xxl) 0 var(--space-md);
+  border-top: 1px solid rgba(255, 255, 255, 0.1);
+}
+
+.footer-grid {
+  display: grid;
+  grid-template-columns: 2fr 1fr 1fr 1fr;
+  gap: var(--space-xl);
+}
+
+.footer-brand {
+  display: flex;
+  flex-direction: column;
+}
+
+.footer-brand img {
+  height: 40px;
+  margin-bottom: var(--space-md);
+}
+
+.footer-brand p {
+  margin-bottom: var(--space-lg);
+  color: rgba(255, 255, 255, 0.7);
+}
+
+.footer-social {
+  display: flex;
+  gap: var(--space-md);
+}
+
+.social-link {
+  width: 36px;
+  height: 36px;
+  border-radius: 50%;
+  background: rgba(255, 255, 255, 0.1);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  color: var(--white);
+  transition: all var(--transition-fast);
+}
+
+.social-link:hover {
+  background: rgba(255, 255, 255, 0.2);
+  transform: translateY(-2px);
+  color: var(--white);
+}
+
+.footer-nav h4 {
+  margin-bottom: var(--space-lg);
+  color: var(--white);
+  font-size: 1.1rem;
+}
+
+.footer-nav ul {
+  list-style: none;
+  padding: 0;
+  margin: 0;
+}
+
+.footer-nav li {
+  margin-bottom: var(--space-sm);
+}
+
+.footer-nav a {
+  color: rgba(255, 255, 255, 0.7);
+  transition: color var(--transition-fast);
+}
+
+.footer-nav a:hover {
+  color: var(--white);
+}
+
+.footer-bottom {
+  margin-top: var(--space-xxl);
+  padding-top: var(--space-md);
+  border-top: 1px solid rgba(255, 255, 255, 0.1);
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  flex-wrap: wrap;
+  gap: var(--space-md);
+}
+
+.footer-copyright {
+  color: rgba(255, 255, 255, 0.6);
+  font-size: 0.875rem;
+}
+
+.footer-links {
+  display: flex;
+  gap: var(--space-lg);
+}
+
+.footer-links a {
+  color: rgba(255, 255, 255, 0.6);
+  font-size: 0.875rem;
+}
+
+.footer-links a:hover {
+  color: var(--white);
+}
+
+/* Background effects */
+.bg-gradient {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  z-index: -1;
+}
+
+.bg-blob {
+  position: absolute;
+  border-radius: 50%;
+  filter: blur(60px);
+  opacity: 0.5;
+}
+
+.bg-blob-1 {
+  top: -200px;
+  right: -100px;
+  width: 600px;
+  height: 600px;
+  background: linear-gradient(135deg, rgba(255, 0, 102, 0.2), rgba(0, 0, 0, 0));
+  animation: float 20s ease-in-out infinite alternate;
+}
+
+.bg-blob-2 {
+  bottom: -150px;
+  left: -100px;
+  width: 500px;
+  height: 500px;
+  background: linear-gradient(135deg, rgba(0, 164, 239, 0.2), rgba(0, 0, 0, 0));
+  animation: float 15s ease-in-out infinite alternate-reverse;
+}
+
+@keyframes float {
+  0% { transform: translate(0, 0) rotate(0deg); }
+  100% { transform: translate(40px, 40px) rotate(15deg); }
+}
+
+/* Utilities */
+.text-center {
+  text-align: center;
+}
+
+.mb-sm {
+  margin-bottom: var(--space-sm);
+}
+
+.mb-md {
+  margin-bottom: var(--space-md);
+}
+
+.mb-lg {
+  margin-bottom: var(--space-lg);
+}
+
+.mb-xl {
+  margin-bottom: var(--space-xl);
+}
+
+.mt-sm {
+  margin-top: var(--space-sm);
+}
+
+.mt-md {
+  margin-top: var(--space-md);
+}
+
+.mt-lg {
+  margin-top: var(--space-lg);
+}
+
+.mt-xl {
+  margin-top: var(--space-xl);
+}
+
+.gradient-text {
+  background: linear-gradient(135deg, var(--magenta), var(--blue));
+  -webkit-background-clip: text;
+  background-clip: text;
+  -webkit-text-fill-color: transparent;
+}
+
+/* Responsive styles */
+@media screen and (max-width: 1024px) {
+  h1 {
+    font-size: 3rem;
+  }
+  
+  h2 {
+    font-size: 2.25rem;
+  }
+  
+  .hero-content {
+    grid-template-columns: 1fr;
+    text-align: center;
+  }
+  
+  .hero-subtitle {
+    margin-left: auto;
+    margin-right: auto;
+  }
+  
+  .hero-buttons {
+    justify-content: center;
+  }
+  
+  .hero-animation {
+    margin-top: var(--space-xl);
+  }
+  
+  .footer-grid {
+    grid-template-columns: 1fr 1fr;
+    gap: var(--space-xl) var(--space-xxl);
+  }
+}
+
+@media screen and (max-width: 768px) {
+  h1 {
+    font-size: 2.5rem;
+  }
+  
+  h2 {
+    font-size: 2rem;
+  }
+  
+  .navbar-container {
+    position: relative;
+  }
+  
+  .nav-links {
+    position: absolute;
+    top: 100%;
+    left: 0;
+    right: 0;
+    flex-direction: column;
+    background: var(--dark-bg);
+    padding: var(--space-lg);
+    transform: translateY(-100%);
+    opacity: 0;
+    visibility: hidden;
+    transition: all var(--transition-normal);
+    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+  }
+  
+  .nav-links.active {
+    transform: translateY(0);
+    opacity: 1;
+    visibility: visible;
+  }
+  
+  .nav-links li {
+    margin: var(--space-sm) 0;
+  }
+  
+  .mobile-toggle {
+    display: block;
+  }
+  
+  .hero-buttons {
+    flex-direction: column;
+    width: 100%;
+    max-width: 300px;
+    margin-left: auto;
+    margin-right: auto;
+  }
+  
+  .feature-card {
+    flex-direction: column;
+  }
+  
+  .footer-grid {
+    grid-template-columns: 1fr;
+    gap: var(--space-xl);
+  }
+  
+  .footer-bottom {
+    flex-direction: column;
+    align-items: center;
+    text-align: center;
+  }
+}
+
+@media screen and (max-width: 480px) {
+  .container {
+    padding: 0 var(--space-md);
+  }
+  
+  h1 {
+    font-size: 2rem;
+  }
+  
+  h2 {
+    font-size: 1.75rem;
+  }
+  
+  .stats-grid {
+    grid-template-columns: 1fr;
+  }
+}
+
+@media screen and (max-width: 768px) {
+  .notification-banner {
+    padding: 0.5rem 2rem 0.5rem 0.5rem;
+    font-size: 0.9rem;
+  }
+  
+  .notification-banner span {
+    display: inline;
+  }
+  
+  .notification-banner .notification-link {
+    margin: 0 0.25rem;
+  }
+}
+
+@media screen and (max-width: 480px) {
+  .notification-banner {
+    padding: 0.5rem 2rem 0.5rem 0.5rem;
+    font-size: 0.8rem;
+    line-height: 1.4;
+  }
+  
+  .notification-banner span {
+    display: inline;
+  }
+  
+  .notification-banner .notification-link {
+    margin: 0.25rem;
+    padding: 0.15rem 0.35rem;
+  }
+}
+
+/* DNAnalyzer Disclaimer CSS Update */
+.disclaimer-section {
+padding: 1rem 0;
+background: transparent !important; /* Override any dark background */
+}
+
+.disclaimer-content {
+max-width: 90%;
+margin: 0 auto;
+background-color: rgba(30, 30, 40, 0.4); /* Subtle dark background */
+border-radius: 8px;
+padding: 1rem;
+box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+border: 1px solid rgba(255, 255, 255, 0.1);
+}
+
+.disclaimer-title {
+font-size: 0.85rem;
+margin-bottom: 0.75rem;
+opacity: 0.75;
+color: rgba(255, 255, 255, 0.8);
+font-weight: 500;
+text-transform: uppercase;
+letter-spacing: 0.5px;
+}
+
+.disclaimer-text {
+font-size: 0.7rem;
+ opacity: 0.65;
+ line-height: 1.4;
+ color: rgba(255, 255, 255, 0.7);
+}
+
+/* Futuristic Notification Effects */
+@keyframes notifPulse {
+  0% { box-shadow: 0 0 5px #FF9100; }
+  50% { box-shadow: 0 0 20px #FF9100; }
+  100% { box-shadow: 0 0 5px #FF9100; }
+}
+
+/* JavaScript will add this class when scrolling down */
+.hide-notification {
+  transform: translateY(-100%);
+}
+
+/* Scroll-based animations */
+.scroll-animate {
+opacity: 0;
+transform: translateY(30px);
+transition: opacity 0.8s ease, transform 0.8s ease;
+}
+
+.scroll-animate.animate-in {
+opacity: 1;
+transform: translateY(0);
+}
+
+.scroll-animate-delay-1 {
+transition-delay: 0.2s;
+}
+
+.scroll-animate-delay-2 {
+transition-delay: 0.4s;
+}
+
+.scroll-animate-delay-3 {
+transition-delay: 0.6s;
+}
+
+.scroll-animate-right {
+opacity: 0;
+transform: translateX(50px);
+transition: opacity 0.8s ease, transform 0.8s ease;
+}
+
+.scroll-animate-right.animate-in {
+opacity: 1;
+transform: translateX(0);
+}
+
+.scroll-animate-left {
+opacity: 0;
+transform: translateX(-50px);
+transition: opacity 0.8s ease, transform 0.8s ease;
+}
+
+.scroll-animate-left.animate-in {
+opacity: 1;
+transform: translateX(0);
+}
+
+.scroll-animate-scale {
+opacity: 0;
+transform: scale(0.8);
+transition: opacity 0.8s ease, transform 0.8s ease;
+}
+
+.scroll-animate-scale.animate-in {
+opacity: 1;
+transform: scale(1);
+}
+
+/* Interactive particles */
+.particles-container {
+position: absolute;
+top: 0;
+left: 0;
+width: 100%;
+height: 100%;
+z-index: 0;
+overflow: hidden;
+pointer-events: none;
+}
+
+.floating-particle {
+position: absolute;
+background: rgba(255, 255, 255, 0.1);
+border-radius: 50%;
+pointer-events: none;
+transition: transform 0.3s ease;
+}
\ No newline at end of file