/* THEME CONFIGURATION AND CSS VARIABLES */
:root {
  /* DARK Theme Palette based on Nerotens */
  --ne-bg: #070a13;
  --ne-surface: #0e1324;
  --ne-surface-alt: #161d36;
  --ne-accent: #06b6d4;
  --ne-accent-glow: rgba(6, 182, 212, 0.35);
  --ne-gold: #f59e0b;
  --ne-gold-glow: rgba(245, 158, 11, 0.4);
  --ne-border: rgba(255, 255, 255, 0.07);
  --ne-text-main: #f3f4f6;
  --ne-text-muted: #9ca3af;
  --ne-gradient-accent: linear-gradient(135deg, #06b6d4 0%, #2563eb 100%);
  --ne-gradient-gold: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  
  /* Selected Random Fonts */
  --font-display: 'Oswald', sans-serif;
  --font-body: 'Inter', sans-serif;
  
  /* Selected Layout Dimensions */
  --ne-max-width: 1180px;
  
  /* Selected Styling Variations */
  --ne-radius: 16px; /* soft */
  --ne-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.7); /* deep */
}

/* GENERAL LAYOUT RULES & NATIVE STYLES */
body {
  font-family: var(--font-body);
  background-color: var(--ne-bg);
  color: var(--ne-text-main);
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

main {
  flex: 1 0 auto;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  text-transform: uppercase; /* uppercase style case */
  letter-spacing: 0.05em;
  line-height: 1.2;
}

/* ANTI-FOOTPRINT CUSTOM HELPERS */
/* Replaces forbidden utility classes like .grid, .row, .col, .container, etc. */
.ne-inner-hull {
  max-width: var(--ne-max-width);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.ne-flex-horizontal {
  display: flex;
  flex-direction: row;
}

.ne-flex-vertical {
  display: flex;
  flex-direction: column;
}

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

.ne-flex-center-y {
  align-items: center;
}

.ne-flex-between {
  justify-content: space-between;
}

/* PRESET A: SPLIT STICKY LAYOUT */
.ne-split-arena {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

@media (min-width: 768px) {
  .ne-split-arena {
    flex-direction: row;
  }
  
  .ne-sticky-side {
    position: -webkit-sticky;
    position: sticky;
    top: 2rem;
    width: 40%;
    align-self: flex-start;
  }
  
  .ne-content-side {
    width: 60%;
  }
}

/* STYLING INDIVIDUAL ELEMENTS ACCORDING TO RANDOM RULES */
.ne-media-showcase {
  padding: 1.5rem;
  overflow: hidden;
}

.ne-main-image {
  transition: transform 0.3s ease;
}

.ne-main-image:hover {
  transform: scale(1.02);
}

.ne-info-strip {
  transition: transform 0.2s ease, background-color 0.2s ease;
}

.ne-info-strip:hover {
  transform: translateY(-2px);
  background-color: rgba(22, 29, 54, 0.8) !important;
}

/* TESTIMONIALS CONFIGURATION */
/* Masonry-like dynamic grid without utilizing restricted class names */
.ne-mesh-panel {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
}

@media (min-width: 768px) {
  .ne-mesh-panel {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .ne-mesh-panel {
    grid-template-columns: repeat(3, 1fr);
  }
}

.ne-feedback-item {
  transition: transform 0.25s ease;
}

.ne-feedback-item:hover {
  transform: translateY(-4px);
}

/* TEXT UTILITIES */
.ne-align-center {
  text-align: center;
}

.ne-align-left {
  text-align: left;
}

.ne-font-huge {
  font-size: 2.25rem;
}

@media (min-width: 1024px) {
  .ne-font-huge {
    font-size: 2.85rem;
  }
}

.ne-font-large {
  font-size: 1.85rem;
}

.ne-font-medium {
  font-size: 1.15rem;
}

.ne-font-regular {
  font-size: 1rem;
}

.ne-font-small {
  font-size: 0.875rem;
}

.ne-font-tiny {
  font-size: 0.75rem;
}

/* TRANSITIONS */
.ne-action-link:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px var(--ne-accent-glow) !important;
  filter: brightness(1.05);
}

.ne-action-link:active {
  transform: translateY(1px);
}

/* WCAG AA CONSTANT CONTRAST GUARANTEE */
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
}