@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&family=Space+Grotesk:wght@300..700&display=swap");

/* Global Material Symbols configuration */
.material-symbols-outlined {
  font-variation-settings:
    "FILL" 0,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
  display: inline-block;
  vertical-align: middle;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 10px;
}

::-webkit-scrollbar-track {
  background: #0e1322;
}

::-webkit-scrollbar-thumb {
  background: #2f3445;
  border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
  background: #404850;
}

/* Monolith Grid Pattern */
.monolith-grid {
  background-image: radial-gradient(circle at 2px 2px, rgb(164 214 76 / 5%) 1px, transparent 0);
  background-size: 40px 40px;
}

/* Primary Content Glow */
.text-glow {
  text-shadow: 0 0 30px rgb(164 214 76 / 30%);
}

/* Sophisticated Glass Blur */
.glass-blur {
  backdrop-filter: blur(20px);
}

/* Geometric Transitions */
.transition-all-custom {
  transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}

/* Background Gradients */
.bg-deep-surface {
  background: radial-gradient(circle at top, #1a1f2f 0%, #0e1322 100%);
}

/* Layout Overrides */
html {
  scroll-behavior: smooth;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Page reveal motion */
html.reveal-ready .hero-reveal {
  opacity: 0;
  transform: translateY(26px) scale(0.985);
  filter: blur(6px);
  transition:
    opacity 900ms ease,
    transform 1150ms cubic-bezier(0.22, 1, 0.36, 1),
    filter 1150ms ease;
}

html.reveal-ready .hero-reveal.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

html.reveal-ready .reveal-section {
  opacity: 0;
  transform: translateY(38px);
  filter: blur(4px);
  transition:
    opacity 820ms ease,
    transform 1020ms cubic-bezier(0.22, 1, 0.36, 1),
    filter 1020ms ease;
}

html.reveal-ready .reveal-section.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

@media (prefers-reduced-motion: reduce) {
  html.reveal-ready .hero-reveal,
  html.reveal-ready .reveal-section {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
}

/* Typography Extensions */
.font-headline {
  font-family: "Space Grotesk", sans-serif;
}

.font-body {
  font-family: "Plus Jakarta Sans", sans-serif;
}

/* ============================================================
   Extracted from inline style attributes (Phase 01 refactor)
   These were moved out so a strict Content-Security-Policy
   without 'unsafe-inline' can be enforced in Phase 04.
   ============================================================ */

/* Hero monolith canvas layers */
.hero-canvas-vortex {
  z-index: 0;
}

.hero-canvas-graph {
  z-index: 1;
  opacity: 0.55;
}

.hero-radial-glow {
  z-index: 2;
  background: radial-gradient(circle, rgb(164 214 76 / 4%) 0%, transparent 70%);
}

.hero-content {
  position: relative;
  z-index: 10;
}

.hero-bottom-fade {
  z-index: 3;
  background: linear-gradient(to top, #0e1322 0%, transparent 100%);
}

/* Problem section background gradient */
.problem-section-bg {
  background: linear-gradient(180deg, #0e1322 0%, #141928 100%);
}

/* Pricing featured tier glow */
.pricing-tier-featured {
  box-shadow:
    0 0 60px rgb(164 214 76 / 15%),
    inset 0 1px 0 rgb(164 214 76 / 10%);
}

/* Filled variant for Material Symbols icons */
.material-symbols-outlined.filled {
  font-variation-settings: "FILL" 1;
}

/* Final CTA section background */
.final-cta-bg {
  background: linear-gradient(180deg, #0e1322 0%, #0b1020 100%);
}

/* Blog index dot-grid overlay */
.blog-dot-grid {
  background-image: radial-gradient(circle at 2px 2px, #404850 1px, transparent 0);
  background-size: 40px 40px;
}

/* Cookie consent banner */
.consent-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  transform: translateY(120%);
  transition: transform 0.3s ease;
  background: #1a1a2e;
  border-top: 1px solid rgb(255 255 255 / 10%);
  box-shadow: 0 -4px 24px rgb(0 0 0 / 30%);
}

.consent-banner-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.consent-banner-text {
  flex: 1;
  color: #e2e8f0;
  font-size: 0.875rem;
  line-height: 1.5;
  margin: 0;
}

.consent-banner-link {
  color: #818cf8;
  text-decoration: underline;
}

.consent-banner-actions {
  display: flex;
  gap: 0.75rem;
  flex-shrink: 0;
}

.consent-banner-btn {
  padding: 0.5rem 1.25rem;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  border: none;
  transition: opacity 0.15s;
}

.consent-banner-btn:hover {
  opacity: 0.85;
}

.consent-banner-btn-primary {
  background: #6366f1;
  color: #fff;
}

.consent-banner-btn-secondary {
  background: rgb(255 255 255 / 10%);
  color: #e2e8f0;
}

/* Transformation table — Before | arrow | After (md+ only, stacks below) */
@media (width >= 768px) {
  .transformation-row {
    grid-template-columns: 1fr auto 1fr;
  }
}

/* True circular avatar (Tailwind's rounded-full is overridden to 0.75rem in this project's config) */
.avatar-circle {
  border-radius: 9999px;
}

/* Complexity slider — styled track and thumb */
.ea-complexity-slider,
.ra-complexity-slider {
  appearance: none;
  height: 6px;
  border-radius: 9999px;
  background: linear-gradient(
    to right,
    #a4d64c calc((var(--val, 2) - 1) / 3 * 100%),
    #25293a calc((var(--val, 2) - 1) / 3 * 100%)
  );
  outline: none;
}

.ea-complexity-slider::-webkit-slider-thumb,
.ra-complexity-slider::-webkit-slider-thumb {
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 9999px;
  background: #a4d64c;
  border: 2px solid #0e1322;
  cursor: pointer;
  box-shadow: 0 0 0 3px rgb(164 214 76 / 20%);
  transition: box-shadow 0.15s;
}

.ea-complexity-slider::-webkit-slider-thumb:hover,
.ea-complexity-slider:focus::-webkit-slider-thumb,
.ra-complexity-slider::-webkit-slider-thumb:hover,
.ra-complexity-slider:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 5px rgb(164 214 76 / 30%);
}

.ea-complexity-slider::-moz-range-thumb,
.ra-complexity-slider::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 9999px;
  background: #a4d64c;
  border: 2px solid #0e1322;
  cursor: pointer;
}

.ea-complexity-slider::-moz-range-track,
.ra-complexity-slider::-moz-range-track {
  height: 6px;
  border-radius: 9999px;
  background: #25293a;
}
