/* Google Fonts */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Hanken+Grotesk:wght@400;500;600;700&display=swap");

@font-face {
  font-family: "Noe Display";
  src:
    local("Noe Display"), local("Noe Display Medium"), local("Noe Display Bold");
  font-style: normal;
  font-display: swap;
}

:root {
  /* Canonical Dark Variables (legacy sections) */
  --bg-dark: #1a1a1a;
  --bg-gradient-end: #1a1a11;
  --text-primary: #ffffff;
  --text-secondary: rgba(255, 255, 255, 0.8);

  /* Prestige tokens (from design-system canonical palette) */
  --prestige-oxblood: #7c302c;
  --prestige-oxblood-dark: #642323;
  --prestige-oxblood-light: #a45454;
  --prestige-oxblood-gradient: linear-gradient(90deg, #642323 0%, #a45454 100%);
  --prestige-cream: #fffbfa;
  --prestige-cream-muted: #f3efe9;
  --prestige-ivory: #ffffff;
  --prestige-paper: #fcfaf7;
  --prestige-ink: #1a1a1a;
  --prestige-ink-secondary: #535353;
  --prestige-border: rgba(0, 0, 0, 0.08);
  --prestige-glass-border: rgba(255, 255, 255, 0.08);
  --prestige-shadow-low:
    0 1px 2px rgba(0, 0, 0, 0.06), inset 0 0.5px 0 rgba(255, 255, 255, 0.6);
  --prestige-shadow-medium:
    0 2px 4px rgba(0, 0, 0, 0.05), 0 1px 1px rgba(0, 0, 0, 0.05),
    inset 0 0.5px 0 rgba(255, 255, 255, 0.8);

  --font-serif: "Playfair Display", serif;
  --font-body: "Geist", "Hanken Grotesk", "Inter", sans-serif;
  --font-mono: "Geist Mono", "Roboto Mono", "Fira Code", monospace;
  --font-heading: var(--font-serif);
  --font-subheading: var(--font-body);
  --font-nav: var(--font-body);
  --font-btn: var(--font-body);

  --page-margin: 70px;
  --nav-radius: 22px;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: var(--font-subheading);
  background-color: #000000;
  color: var(--text-primary);
  line-height: 1.1;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

.site-nav .hamburger-menu,
.prestige-theme + .mobile-menu-overlay {
  display: none;
}

/* --- Partners Banner --- */
.partners-banner {
  background: var(--bg-dark);
  padding: 4rem 0;
  text-align: center;
  /* border-bottom removed */
  position: relative;
  z-index: 10;
}

.partners-banner h4 {
  font-size: 0.8rem;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 2.5rem;
  font-weight: 500;
  opacity: 0.7;
}

/* Partners Marquee */
.partners-marquee-container {
  max-width: 100%;
  margin: 0 auto;
  overflow: hidden;
  /* Hide scrollbars */
  mask-image: linear-gradient(
    to right,
    transparent,
    black 10%,
    black 90%,
    transparent
  );
  -webkit-mask-image: linear-gradient(
    to right,
    transparent,
    black 10%,
    black 90%,
    transparent
  );
  padding: 2rem 0;
}

.partners-marquee {
  overflow: hidden;
  white-space: nowrap;
  position: relative;
  width: 100%;
}

.track {
  display: inline-flex;
  align-items: center;
  /* Center vertically */
  gap: 4rem;
  /* Adequate spacing between logos */
  animation: scroll 45s linear infinite;
  width: max-content;
}

.track img {
  height: 40px;
  /* Standard height for logos */
  width: auto;
  opacity: 0.7;
  transition: all 0.3s ease;
  /* mix-blend-mode: screen; REMOVED - these are transparent PNGs now */
  filter: grayscale(100%) brightness(1.2);
}

.partners-marquee:hover .track {
  animation-play-state: paused;
}

.track img:hover {
  opacity: 1;
  filter: grayscale(0%) brightness(1);
  transform: scale(1.05);
  /* Subtle zoom on hover */
}

@keyframes scroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

/* --- About Section --- */
.about-section {
  position: relative;
  padding: 16rem var(--page-margin); /* Desktop value */
  background: var(--bg-dark);
  /* Ensure it sits on top if needed */
  z-index: 10;
}

.section-header {
  text-align: center;
  margin-bottom: 5rem;
}

/* --- Global Layout Containers --- */
.container {
  max-width: 1400px;
  margin: 0 auto;
  width: 100%;
  padding: 0 var(--page-margin);
}

.footer-content {
  /* Inherits .container padding now, but verify footer-specific override removal */
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.workflow-path {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  /* Behind cards */
  pointer-events: none;
  overflow: visible;
}

.path-active {
  stroke-dasharray: 2000;
  /* Long enough to cover path */
  stroke-dashoffset: 2000;
  /* Start hidden */
  transition: stroke-dashoffset 0.1s linear;
  /* JS will update this */
}

.workflow-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 1rem;
  position: relative;
  z-index: 1;
}

/* Grid Areas definition would be complex, let's use direct placement for simplicity and responsiveness */
.card-wide {
  grid-column: 1 / span 2;
}

.card-tall {
  grid-column: 3 / span 1;
  grid-row: 1 / span 2;
}

.card-medium {
  grid-column: 1 / span 1;
}

.card-box {
  grid-column: 2 / span 1;
}

.feature-card {
  background: linear-gradient(
    145deg,
    rgba(255, 255, 255, 0.03) 0%,
    rgba(255, 255, 255, 0.01) 100%
  );
  border: 1px solid rgba(255, 255, 255, 0.05);
  padding: 2.5rem;
  border-radius: 8px;
  /* Slightly softer than sharp */
  backdrop-filter: blur(10px);
  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease,
    border-color 0.4s ease;
  position: relative;
  overflow: hidden;
}

/* --- Hero Section (Prestige Redesign) --- */
.hero-section {
  position: relative;
  width: 100%;
  min-height: 100vh;
  padding: 28px var(--page-margin) 112px;
  background: linear-gradient(180deg, var(--prestige-cream) 0%, #f7f1e9 100%);
  overflow: hidden;
}

.hero-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(
    rgba(0, 0, 0, 0.06) 0.35px,
    transparent 0.35px
  );
  background-size: 3px 3px;
  opacity: 0.35;
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 0;
}

.hero-shell {
  position: relative;
  z-index: 1;
  max-width: 1480px;
  margin: 0 auto;
}

.site-nav {
  width: 100%;
  position: relative;
  z-index: 10;
}

.site-nav-inner {
  min-height: 60px;
  border-radius: 14px;
  padding: 0 14px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
  background: var(--prestige-oxblood-gradient);
  border: 1px solid var(--prestige-glass-border);
  box-shadow: var(--prestige-shadow-medium);
}

.site-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.site-logo {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
}

.site-logo img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.site-logo-text {
  font-family: var(--font-body);
  font-size: 1.22rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.96);
  letter-spacing: 0.015em;
}

.site-nav-links {
  list-style: none;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 24px;
  margin-right: 16px;
}

.site-nav-links a {
  font-family: var(--font-body);
  font-size: 0.82rem;
  letter-spacing: 0.01em;
  text-transform: none;
  text-decoration: none;
  color: rgba(255, 255, 255, 0.88);
  transition: color 0.2s ease;
}

.site-nav-links a:hover {
  color: #fff;
}

.site-nav-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.site-social-icon {
  width: 32px;
  height: 32px;
  padding: 7px;
  border-radius: 0;
  border: 0;
  background: transparent;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: none;
  opacity: 0.9;
  transition: opacity 0.2s ease;
}

.site-social-icon:hover {
  opacity: 1;
}

.site-social-icon img {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-frame {
  margin-top: 16px;
  border-radius: 34px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: linear-gradient(180deg, #873530 0%, #7c302c 45%, #712723 100%);
  box-shadow: 0 26px 56px rgba(73, 22, 20, 0.2);
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 820px;
  animation: heroReveal 0.7s ease-out both;
}

.hero-content {
  padding: clamp(3rem, 5.5vw, 5.3rem) clamp(2rem, 4vw, 4.3rem);
  color: rgba(255, 255, 255, 0.95);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  max-width: 760px;
}

.hero-content h1 {
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: clamp(2.6rem, 5.6vw, 4.7rem);
  line-height: 0.95;
  letter-spacing: -0.03em;
  max-width: 11ch;
  margin-bottom: 1.15rem;
}

.hero-subtext {
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.62;
  color: rgba(255, 255, 255, 0.85);
  max-width: 52ch;
  margin-bottom: 3rem;
}

.hero-auth {
  margin-top: 1.2rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.hero-provider-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 2px;
}

.hero-provider-btn {
  min-height: 42px;
  border-radius: 14px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-decoration: none;
  font-family: "Geist", "Inter", sans-serif;
  font-size: 0.84rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
  border: 1px solid;
  box-shadow:
    0 0.5px 1px rgba(0, 0, 0, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.16);
  transition:
    background-color 0.2s ease,
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

.hero-provider-btn svg {
  flex: 0 0 auto;
}

.hero-provider-btn-github {
  background: #16181d;
  color: #fff;
  border-color: rgba(0, 0, 0, 0.52);
}

.hero-provider-btn-google {
  background: linear-gradient(180deg, #ffffff 0%, #f2efeb 100%);
  color: #151515;
  border-color: rgba(0, 0, 0, 0.28);
}

.hero-provider-btn:hover {
  box-shadow:
    0 1px 1.5px rgba(0, 0, 0, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.hero-provider-btn-github:hover {
  background: #1d2027;
}

.hero-provider-btn-google:hover {
  background: linear-gradient(180deg, #faf9f7 0%, #ece8e4 100%);
  border-color: rgba(0, 0, 0, 0.34);
}

.hero-provider-btn:active {
  transform: translateY(0.5px) scale(0.995);
}

.hero-note {
  margin-top: 1px;
  font-family: var(--font-body);
  font-size: 0.65rem;
  letter-spacing: 0.01em;
  color: rgba(255, 255, 255, 0.7);
}

.hero-note a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.hero-note a:hover {
  color: rgba(255, 255, 255, 0.9);
}

.hero-media {
  position: relative;
  padding: 20px 20px 20px 56px;
}

.hero-media::after {
  content: "";
  position: absolute;
  inset: 20px 20px 20px 56px;
  pointer-events: none;
  border-radius: 14px;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.03) 0%,
    rgba(0, 0, 0, 0.16) 100%
  );
}

.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 14px;
}

@keyframes heroReveal {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

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

/* --- Responsive/Mobile --- */
@media (max-width: 1024px) {
  .site-nav-inner {
    grid-template-columns: auto 1fr auto;
  }

  .site-nav-links {
    justify-content: flex-end;
    gap: 16px;
    margin-right: 8px;
  }

  .site-social-icon {
    display: none;
  }

  .hero-frame {
    grid-template-columns: 1fr;
    min-height: unset;
  }

  .hero-content {
    max-width: 100%;
  }

  .hero-media {
    padding: 0;
    min-height: 340px;
  }

  .hero-media::after {
    inset: 0;
  }

  .card-wide {
    grid-column: 1 / -1;
  }

  .card-tall {
    grid-column: 2 / 3;
    grid-row: 2 / 4;
  }

  .card-medium {
    grid-column: 1 / 2;
  }

  .card-box {
    grid-column: 1 / 2;
  }
}

@media (max-width: 768px) {
  :root {
    --container-padding: 1.5rem;
    --page-margin: 18px;
  }

  .hero-section {
    padding-top: 16px;
    padding-bottom: 42px;
  }

  .site-nav-links,
  .site-nav-actions {
    display: none;
  }

  .site-nav-inner {
    grid-template-columns: 1fr auto;
    min-height: 52px;
    padding: 0 12px;
  }

  .site-brand {
    gap: 9px;
  }

  .site-logo-text {
    font-size: 1.08rem;
  }

  .site-nav .hamburger-menu {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 22px;
    height: 16px;
    cursor: pointer;
    border: 0;
    background: transparent;
    padding: 0;
    z-index: 200;
  }

  .site-nav .hamburger-menu span {
    display: block;
    width: 100%;
    height: 2px;
    background-color: rgba(255, 255, 255, 0.95);
    border-radius: 2px;
    transition: transform 0.3s cubic-bezier(0.4, 0.01, 0.165, 0.99);
  }

  .site-nav .hamburger-menu.active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .site-nav .hamburger-menu.active span:nth-child(2) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .prestige-theme + .mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: linear-gradient(180deg, var(--prestige-cream) 0%, #f4ece2 100%);
    backdrop-filter: blur(12px);
    z-index: 150;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
  }

  .prestige-theme + .mobile-menu-overlay.active {
    opacity: 1;
    pointer-events: all;
  }

  .prestige-theme + .mobile-menu-overlay .mobile-menu-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.15rem;
    margin-top: 0;
  }

  .prestige-theme + .mobile-menu-overlay .mobile-socials {
    display: flex;
    gap: 1.15rem;
    margin-top: 0.3rem;
  }

  .prestige-theme + .mobile-menu-overlay .mobile-link {
    color: var(--prestige-ink);
    font-size: 1.05rem;
    text-decoration: none;
    text-transform: none;
    letter-spacing: 0.01em;
    font-weight: 600;
    opacity: 0;
    transform: translateY(16px);
    transition: all 0.35s ease;
  }

  .prestige-theme + .mobile-menu-overlay.active .mobile-link {
    opacity: 1;
    transform: translateY(0);
  }
  .prestige-theme + .mobile-menu-overlay.active .mobile-link:nth-child(1) {
    transition-delay: 0.08s;
  }
  .prestige-theme + .mobile-menu-overlay.active .mobile-link:nth-child(2) {
    transition-delay: 0.16s;
  }
  .prestige-theme + .mobile-menu-overlay.active .mobile-link:nth-child(3) {
    transition-delay: 0.24s;
  }
  .prestige-theme + .mobile-menu-overlay.active .mobile-link:nth-child(4) {
    transition-delay: 0.32s;
  }
  .prestige-theme + .mobile-menu-overlay.active .mobile-link:nth-child(5) {
    transition-delay: 0.4s;
  }

  .hero-frame {
    border-radius: 26px;
    min-height: unset;
  }

  .hero-content {
    padding: 2.2rem 1.35rem 1.9rem;
    text-align: left;
    align-items: flex-start;
  }

  .hero-content h1 {
    font-size: clamp(2.3rem, 8vw, 3.2rem);
    max-width: 12ch;
  }

  .hero-subtext {
    margin-bottom: 1.35rem;
  }

  .hero-auth {
    width: 100%;
    max-width: 460px;
  }

  .hero-provider-row {
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
    width: 100%;
  }

  .hero-provider-btn {
    width: 100%;
    justify-content: center;
  }

  .hero-media {
    padding: 0;
    min-height: 300px;
  }

  .hero-media::after {
    inset: 0;
  }

  /* Partners */
  .partners-grid {
    gap: 1.5rem 2rem;
  }

  .partner-logo {
    font-size: 0.9rem;
  }

  .section-header h2 {
    font-size: 2.2rem;
  }

  /* Stack Workflow cleanly on mobile (Inherited from 1024px, ensuring specific gaps if needed) */
  .workflow-grid {
    gap: 2rem;
  }

  .card-tall {
    height: 400px;
    /* Limits height on mobile when stacked */
  }

  .feature-card {
    padding: 1.5rem;
  }
}

@media (max-width: 480px) {
  .featured-badge {
    font-size: 0.7rem;
    padding: 0.4rem 0.4rem 0.4rem 0.8rem;
  }

  .site-logo-text {
    font-size: 1rem;
  }

  .hero-content h1 {
    font-size: 2.05rem;
  }

  .hero-media {
    min-height: 240px;
  }
}

/* --- How it Works / Agents Section --- */
.agents-section {
  padding: 6rem var(--page-margin);
  background: var(--bg-dark);
  position: relative;
  border-top: 1px solid rgba(255, 255, 255, 0.03);
}

.langgraph-badge {
  display: inline-block;
  color: var(--text-secondary);
  font-size: 0.9rem;
  padding: 0.5rem 1rem;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 50px;
  margin-top: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.langgraph-badge strong {
  color: #fff;
  font-weight: 600;
}

.agents-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  /* 3 columns */
  gap: 2rem;
  margin-top: 4rem;
}

.agent-card {
  background: rgba(5, 5, 16, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.05);
  padding: 2rem;
  border-radius: 8px;
  transition: all 0.3s ease;
  cursor: default;
}

.agent-card:hover {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.1);
  transform: translateY(-5px);
}

.agent-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.agent-card h4 {
  font-size: 1.2rem;
  margin-bottom: 0;
  font-weight: 500;
}

.agent-card p {
  color: var(--text-secondary);
  font-size: 0.95rem;
  line-height: 1.6;
}

.agent-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Icon Styles (CSS Shapes) */
.icon-idea {
  background: rgba(255, 189, 46, 0.1);
  border: 1px solid rgba(255, 189, 46, 0.3);
}

.icon-idea::after {
  content: "";
  width: 12px;
  height: 12px;
  background: #ffbd2e;
  /* Yellow */
  border-radius: 50%;
  box-shadow: 0 0 10px #ffbd2e;
}

.icon-warden {
  background: rgba(39, 201, 63, 0.1);
  border: 1px solid rgba(39, 201, 63, 0.3);
}

.icon-warden::after {
  content: "";
  width: 12px;
  height: 12px;
  border: 2px solid #27c93f;
  /* Green */
  transform: rotate(45deg);
}

.icon-hater {
  background: rgba(255, 95, 86, 0.1);
  border: 1px solid rgba(255, 95, 86, 0.3);
}

.icon-hater::after {
  content: "";
  width: 12px;
  height: 2px;
  background: #ff5f56;
  /* Red */
  transform: rotate(45deg);
}

.icon-hater::before {
  content: "";
  position: absolute;
  width: 12px;
  height: 2px;
  background: #ff5f56;
  transform: rotate(-45deg);
}

/* --- Impact / Architecture Section --- */
.impact-statement {
  padding: 6rem 0;
  overflow: hidden;
}

/* --- Impact Wrapper (New Column Layout) --- */
.impact-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  /* Left align text block */
  gap: 4rem;
  /* Vertical spacing */
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 5%;
  /* Safety padding */
}

.impact-content {
  width: 100%;
  max-width: 800px;
  /* Readable line length */
  text-align: left;
}

.statement-title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw, 4rem);
  /* Responsive giant text */
  margin-bottom: 2rem;
  line-height: 1.1;
  font-weight: 300;
}

/* Old .arch-diagram definition removed here to avoid conflicts */

.arch-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 40px 40px;
  mask-image: linear-gradient(to bottom, black 40%, transparent 100%);
  z-index: 0;
}

.arch-connections {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}

.flow-line {
  fill: none;
  stroke: var(--accent-primary);
  stroke-width: 1.5;
  stroke-dasharray: 8 4;
  animation: flowDash 20s linear infinite;
  marker-end: url(#arrow);
  filter: drop-shadow(0 0 3px var(--accent-primary));
}

.flow-line-dim {
  fill: none;
  stroke: var(--accent-secondary);
  stroke-width: 1;
  opacity: 0.5;
  marker-end: url(#arrow);
}

.flow-line-dashed {
  fill: none;
  stroke: var(--text-secondary);
  stroke-width: 1;
  stroke-dasharray: 4 4;
  opacity: 0.3;
}

@keyframes flowDash {
  to {
    stroke-dashoffset: -200;
  }
}

/* --- Architecture Diagram Cleaned Up --- */

/* --- Architecture Diagram Container --- */
.arch-container {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  /* Space between Diagram and Caption */
}

/* (Internal SVG styles are now inline) */
.arch-diagram {
  height: 500px;
  width: 100%;
  position: relative;
  background: rgba(5, 5, 16, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 16px;
  overflow: hidden;
  /* Optional: Add a subtle shadow for depth */
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

.arch-caption {
  width: 100%;
  text-align: left;
  /* Align left to match standard reading flow */
  color: var(--text-secondary);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-left: 1rem;
  /* Slight indent */
  border-left: 2px solid rgba(0, 240, 255, 0.3);
  /* Scientific sidebar line */
}

.caption-kicker {
  font-family: "JetBrains Mono", monospace;
  /* Scientific/Code look */
  font-size: 0.85rem;
  font-weight: 500;
  color: #00f0ff;
  /* Cyan accent */
  margin: 0 0 0.75rem 0;
  /* Space between kicker and caption text */
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.caption-text {
  font-size: 0.9rem;
  line-height: 1.6;
  margin: 0;
  max-width: 700px;
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--font-body);
}

/* Responsive */
@media (max-width: 1024px) {
  .impact-wrapper {
    align-items: center;
    /* Center on smaller screens */
    text-align: center;
    gap: 3rem;
  }

  .impact-content {
    text-align: center;
  }

  .arch-container {
    width: 100%;
  }

  .arch-diagram {
    width: 100%;
    min-height: 350px;
  }

  .arch-caption {
    align-items: center;
    text-align: center;
    padding-left: 0;
    border-left: none;
    border-top: 2px solid rgba(0, 240, 255, 0.3);
    padding-top: 1rem;
  }

  .caption-text {
    max-width: 100%;
  }
}

@media (max-width: 768px) {
  .agents-grid {
    grid-template-columns: 1fr;
  }
}

/* --- Collaborators Section --- */
.collaborators-section {
  padding: 8rem var(--page-margin);
  background: linear-gradient(
    to bottom,
    var(--bg-dark),
    rgba(112, 0, 255, 0.05)
  );
  position: relative;
  border-top: 1px solid rgba(255, 255, 255, 0.03);
  text-align: center;
}

.stats-grid {
  display: flex;
  justify-content: center;
  gap: 4rem;
  margin-bottom: 4rem;
  flex-wrap: wrap;
}

.stat-item {
  text-align: center;
}

.stat-number {
  font-family: var(--font-heading);
  font-size: 3.5rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  margin-bottom: 0.5rem;
  background: linear-gradient(135deg, #fff 0%, var(--text-secondary) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.stat-label {
  color: var(--text-secondary);
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.community-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}

.avatars-stack {
  display: flex;
  justify-content: center;
  margin-bottom: 1rem;
}

.avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #333;
  border: 2px solid var(--bg-dark);
  margin-left: -10px;
  /* Overlap */
  position: relative;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  object-fit: cover;
}

.avatar:nth-child(1) {
  z-index: 5;
}

.avatar:nth-child(2) {
  z-index: 4;
}

.avatar:nth-child(3) {
  z-index: 3;
}

.avatar:nth-child(4) {
  z-index: 2;
}

.avatar:nth-child(5) {
  z-index: 1;
}

.cta-buttons {
  display: flex;
  gap: 1.5rem;
  justify-content: center;
}

@media (max-width: 768px) {
  .stats-grid {
    flex-direction: column;
    gap: 2rem;
  }

  .stat-number {
    font-size: 2.5rem;
  }
}

/* --- Blog / Research Section --- */
.blog-section {
  padding: 8rem var(--page-margin);
  background: var(--bg-dark);
}

.content-filters {
  display: flex;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.filter-btn {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text-secondary);
  padding: 0.5rem 1.25rem;
  border-radius: 100px;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  cursor: pointer;
  transition: all 0.2s ease;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.filter-btn:hover {
  border-color: var(--text-primary);
  color: var(--text-primary);
}

.filter-btn.active {
  background: var(--text-primary);
  color: var(--bg-dark);
  border-color: var(--text-primary);
  font-weight: 600;
}

/* --- In The Press Section --- */
.press-section {
  background-color: #000;
  padding: 0 0 160px 56px;
  color: #fff;
  overflow: hidden;
}

.press-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
  margin-bottom: 80px;
  max-width: 1400px; /* Aligns visually with process grid max-widths */
  margin-left: auto;
  margin-right: auto;
}

.press-card {
  display: flex;
  flex-direction: column;
  background: transparent;
  text-decoration: none;
}

.press-image {
  height: 240px;
  background-color: rgba(16, 16, 32, 0.4);
  margin-bottom: 32px;
  position: relative;
  overflow: hidden;
}

.press-image.v2 {
  background:
    repeating-linear-gradient(
      45deg,
      rgba(255, 255, 255, 0.03) 0px,
      rgba(255, 255, 255, 0.03) 1px,
      transparent 1px,
      transparent 10px
    ),
    radial-gradient(circle at 50% 50%, rgba(0, 240, 255, 0.2), transparent);
}

.press-image.v3 {
  background: conic-gradient(
    from 0deg at 50% 50%,
    rgba(112, 0, 255, 0.3),
    rgba(0, 240, 255, 0.3),
    rgba(112, 0, 255, 0.3)
  );
  filter: blur(20px);
}

.press-content {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.press-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  font-family: "Geist Mono", monospace;
  font-size: 14px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.press-tag {
  color: #fff;
}

.press-date {
  color: rgba(255, 255, 255, 0.6);
}

.press-title {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 400;
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: 0.01em;
  color: #fff;
  margin: 0 0 16px 0;
}

.press-desc {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 300;
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: rgba(255, 255, 255, 0.8);
  margin: 0 0 32px 0;
  flex-grow: 1;
}

.press-read-more {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-family: "Geist Mono", monospace;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.press-read-more .arrow {
  transition: transform 0.3s ease;
}

.press-card:hover .arrow {
  transform: translateX(5px);
}

@media (max-width: 1200px) {
  .press-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .press-section {
    padding: 24px 0 80px 0;
  }
  .press-grid {
    grid-template-columns: 1fr;
    padding: 0 16px;
  }
  .press-title {
    font-size: 26px;
  }
}

/* --- FAQ Section --- */
.faq-section {
  padding: 0 0 160px 56px;
  background: #000;
  color: #fff;
  overflow: hidden;
}

.faq-grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 1000px; /* Aligns comfortably */
  margin: 0 auto;
}

.faq-item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.faq-item details {
  cursor: pointer;
  transition: all 0.3s ease;
}

.faq-item summary {
  list-style: none;
  /* Hide default triangle */
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem 0;
  cursor: pointer;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary h3 {
  font-family: var(--font-body); /* Maps to Geist */
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.01em;
  color: #fff !important;
  margin: 0;
}

.icon-plus {
  width: 20px;
  height: 20px;
  position: relative;
  opacity: 0.7;
  transition: transform 0.3s ease;
}

.icon-plus::after,
.icon-plus::before {
  content: "";
  position: absolute;
  background: #fff;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.icon-plus::after {
  width: 100%;
  height: 2px;
}

.icon-plus::before {
  width: 2px;
  height: 100%;
  transition: transform 0.3s ease;
}

/* Rotate to X when open */
.faq-item details[open] .icon-plus {
  transform: rotate(45deg);
}

.faq-content {
  padding-bottom: 2rem;
  color: rgba(255, 255, 255, 0.8);
  font-family: var(--font-body); /* Maps to Geist */
  line-height: 1.6;
  font-size: 16px;
  animation: fadeIn 0.4s ease;
}

@media (max-width: 768px) {
  .faq-section {
    padding: 32px 16px 80px 16px;
  }
}

/* --- Full Width Video Section --- */
.full-video-section {
  background-color: #000;
  display: flex;
  flex-direction: column;
}

.full-video-header-container {
  padding: 0 56px;
  max-width: 1400px;
  margin: 0 auto;
}

.full-video-title {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 400;
  font-size: 31px;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: #fff;
  margin-bottom: 32px;
  text-align: center;
}

.full-video-wrapper {
  width: 100vw;
  max-width: 100%;
  display: flex;
}

.full-video-element {
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 0; /* Removing any ghost corner radius */
  display: block; /* Removes inline descender gap */
  background-color: #000; /* Assure no grey letterboxing shows */
}

@media (max-width: 768px) {
  .full-video-header-container {
    padding: 0 16px;
  }
  .full-video-title {
    font-size: 26px;
  }
}

/* Footer Styles */
footer {
  padding: 4rem 0;
  background-color: #000;
  margin-top: 96px;
}

.footer-content {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 4rem;
}

.footer-logo p {
  color: var(--text-secondary);
  font-size: 0.8rem;
  margin-top: 1rem;
  line-height: 1.5;
  text-align: left;
  font-family: var(--font-body);
  font-weight: 500;
  /* Reset from possible global center */
}

.footer-logo .new-site-logo {
  justify-content: flex-start !important;
}

.footer-links {
  display: flex;
  gap: 4rem;
}

.link-column {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.link-column h5 {
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-family: var(--font-heading);
}

.link-column a {
  color: #fff;
  font-size: 0.9rem;
  transition: color 0.2s ease;
  text-decoration: none;
}

.link-column a:hover {
  color: var(--accent-primary);
}

.footer-link {
  color: #ffffff !important;
  opacity: 0.8;
  text-decoration: none;
  transition: opacity 0.2s ease;
  font-size: 0.9rem;
  font-family: var(--font-body);
  font-weight: 500;
}

.footer-link:hover {
  opacity: 1;
}

@media (max-width: 768px) {
  .footer-content {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .footer-logo p {
    text-align: center;
  }

  .footer-logo .new-site-logo {
    justify-content: center !important;
  }

  .footer-links {
    flex-wrap: wrap;
    justify-content: center;
    gap: 2rem;
  }
}

/* --- Scientific Aesthetic / HUD Upgrades --- */
:root {
  --font-mono: "JetBrains Mono", monospace;
}

/* 1. Technical Corner Brackets */
.hud-brackets {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  max-width: 940px;
  /* Match hero content width + padding */
  height: 80vh;
  /* Tighter vertical frame */
  pointer-events: none;
  z-index: 5;
  padding: 2rem;
}

.hud-brackets::before,
.hud-brackets::after {
  content: "";
  position: absolute;
  width: 20px;
  height: 20px;
  border: 1px solid var(--accent-primary);
  /* Make them Cyan, less grey */
  transition: all 0.5s ease;
  opacity: 0.5;
}

.hud-brackets::before {
  top: 0;
  left: 0;
  border-right: none;
  border-bottom: none;
}

.hud-brackets::after {
  bottom: 0;
  right: 0;
  border-left: none;
  border-top: none;
}

/* 2. System Status Indicators */
.hud-status {
  position: absolute;
  bottom: 12vh;
  /* Move up slightly */
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 940px;
  padding-left: 1rem;
  /* Align with bracket */
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--accent-primary);
  display: flex;
  align-items: center;
  gap: 0.8rem;
  letter-spacing: 0.15em;
  opacity: 1;
  /* Full visibility */
  z-index: 6;
  text-shadow: 0 0 10px rgba(0, 240, 255, 0.4);
}

.status-dot {
  width: 8px;
  height: 8px;
  background: var(--accent-primary);
  border-radius: 50%;
  box-shadow: 0 0 10px var(--accent-primary);
  animation: pulse 2s infinite;
}

.hud-version {
  position: absolute;
  top: 12vh;
  right: 50%;
  transform: translateX(50%);
  width: 100%;
  max-width: 940px;
  text-align: right;
  padding-right: 1rem;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--accent-primary);
  /* Make uniform Cyan */
  letter-spacing: 0.15em;
  z-index: 6;
  opacity: 0.7;
}

/* Mobile adjustments for HUD */
@media (max-width: 768px) {
  .hud-brackets {
    display: none;
  }

  .hud-status {
    bottom: 20px;
    left: 20px;
    transform: none;
    padding: 0;
    max-width: none;
    width: auto;
  }

  .hud-version {
    display: none;
  }
}

/* 3. Monospace Accents */
.nav-links a,
.btn,
.stat-label,
.blog-tag {
  font-family: var(--font-mono) !important;
  text-transform: uppercase;
  font-size: 0.75rem !important;
  letter-spacing: 0.15em !important;
}

/* 4. "Living" Connection Lines (Pulsing) */
@keyframes signalFlow {
  0% {
    stroke-dashoffset: 100;
    opacity: 0;
  }

  50% {
    opacity: 1;
  }

  100% {
    stroke-dashoffset: 0;
    opacity: 0;
  }
}

/* Update visual-search nodes to look more "instrumented" */
.visual-search .node {
  border: 1px solid var(--accent-primary);
  background: rgba(0, 240, 255, 0.2);
  box-shadow: 0 0 15px rgba(0, 240, 255, 0.4);
}

.visual-search .connection {
  position: absolute;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--accent-primary),
    transparent
  );
  opacity: 0.5;
}

.visual-search .c1 {
  top: 45%;
  left: 20%;
  width: 30%;
  transform: rotate(45deg);
  animation: pulse 3s infinite;
}

.visual-search .c2 {
  top: 50%;
  left: 50%;
  width: 30%;
  transform: rotate(-15deg);
  animation: pulse 3s infinite 1s;
}

/* Impact Statement */
.impact-statement {
  padding: 8rem 0;
  position: relative;
  overflow: hidden;
}

/* Subtle background glow behind text */
.impact-statement::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 600px;
  height: 400px;
  background: radial-gradient(
    circle,
    rgba(0, 243, 255, 0.05) 0%,
    rgba(0, 0, 0, 0) 70%
  );
  pointer-events: none;
  z-index: 0;
}

.statement-title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.5rem);
  /* Slightly smaller than hero */
  font-weight: 300;
  /* Light weight as requested */
  line-height: 1.2;
  text-align: left;
  /* Left align */
  color: #e2e8f0;
  /* Soften the white to a very light gray */
  margin-bottom: 2rem;
  max-width: 900px;
  margin-left: 0;
  /* Align to left container edge */
  margin-right: auto;
  position: relative;
  z-index: 1;
  letter-spacing: -0.02em;
}

.text-gradient {
  background: linear-gradient(135deg, #fff 0%, #00f3ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
  /* Helps with gradient rendering */
}

.statement-desc {
  font-size: 1.25rem;
  text-align: left;
  /* Left align */
  color: #94a3b8;
  /* Slate-400 equivalent */
  max-width: 700px;
  margin: 0;
  /* Remove auto margins */
  line-height: 1.6;
  position: relative;
  z-index: 1;
}

.code-pill {
  font-family: monospace;
  /* Fallback since I am not sure about JetBrains Mono presence */
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  color: #e2e8f0;
  font-size: 0.9em;
  vertical-align: middle;
}

/* Code Editor Syntax Highlighting */
.code-editor {
  padding: 1rem;
  font-family: "Fira Code", "Roboto Mono", monospace;
  font-size: 0.75rem;
  line-height: 1.5;
  color: #e2e8f0;
  overflow: hidden;
}

.code-editor pre {
  margin: 0;
}

.kw {
  color: #f472b6;
}

/* pink-400 */
.cls {
  color: #facc15;
}

/* yellow-400 */
.func {
  color: #60a5fa;
}

/* blue-400 */
.self {
  color: #c084fc;
}

/* purple-400 */
.num {
  color: #4ade80;
}

/* green-400 */
.cmt {
  color: #64748b;
  font-style: italic;
}

/* slate-500 */

/* --- Deep Research Section --- */
.deep-research-section {
  padding: 8rem var(--page-margin);
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(
      circle at 10% 50%,
      rgba(112, 0, 255, 0.03),
      transparent 40%
    ),
    radial-gradient(circle at 90% 50%, rgba(0, 240, 255, 0.03), transparent 40%);
}

.deep-research-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 4rem;
  align-items: center;
  margin-top: 4rem;
}

.research-text-content {
  display: flex;
  flex-direction: column;
  position: relative;
}

/* Phase Cards */
.phase-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  padding: 2rem;
  border-radius: 12px;
  backdrop-filter: blur(10px);
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.phase-card:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
  transform: translateX(5px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.phase-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 2px;
  height: 100%;
  background: var(--text-secondary);
  opacity: 0.2;
  transition: all 0.3s ease;
}

.phase-card:hover::before {
  background: var(--accent-primary);
  opacity: 1;
}

.phase-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}

.phase-title {
  font-size: 1.4rem;
  font-weight: 500;
  margin: 0;
}

.phase-badge {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-secondary);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 2px 8px;
  border-radius: 100px;
}

.phase-desc {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text-secondary);
  margin-bottom: 1.5rem;
}

.phase-meta {
  display: flex;
  align-items: center;
}

.highlight-term {
  display: inline-block;
  color: var(--accent-primary);
  font-family: var(--font-heading);
  font-weight: 500;
  background: rgba(0, 240, 255, 0.05);
  padding: 0.3rem 0.8rem;
  border-radius: 4px;
  border: 1px solid rgba(0, 240, 255, 0.1);
}

.highlight-term.secondary {
  color: var(--accent-secondary);
  background: rgba(112, 0, 255, 0.05);
  border-color: rgba(112, 0, 255, 0.1);
}

/* Connector Line */
.phase-connector-line {
  height: 3rem;
  margin-left: 2rem;
  border-left: 1px dashed rgba(255, 255, 255, 0.1);
  position: relative;
  width: 2px;
}

.phase-connector-line .arrow-down {
  position: absolute;
  bottom: -5px;
  left: -4px;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 6px solid rgba(255, 255, 255, 0.2);
}

/* Benefits List in Card 2 */
.phase-benefits {
  list-style: none;
  display: flex;
  gap: 1.5rem;
  padding: 0;
  margin: 0;
  margin-top: 1rem;
}

.phase-benefits li {
  font-size: 0.9rem;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.check-icon {
  color: var(--accent-secondary);
  font-weight: bold;
}

/* Diagram Visual */
.diagram-frame {
  position: relative;
  padding: 10px;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  overflow: hidden;
}

.deep-research-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
  /* Ensure image is shown as-is (Dark Mode) */
  opacity: 1;
  transition: all 0.3s ease;
  filter: drop-shadow(0 0 20px rgba(0, 240, 255, 0.05));
}

.diagram-frame:hover .deep-research-img {
  filter: drop-shadow(0 0 30px rgba(0, 240, 255, 0.1));
  transform: scale(1.01);
}

/* Techy Corners */
.frame-corners .c {
  position: absolute;
  width: 10px;
  height: 10px;
  border-color: rgba(255, 255, 255, 0.3);
  border-style: solid;
  transition: all 0.3s ease;
}

.diagram-frame:hover .frame-corners .c {
  border-color: var(--accent-primary);
  width: 15px;
  height: 15px;
}

.c-tl {
  top: 0;
  left: 0;
  border-width: 1px 0 0 1px;
}

.c-tr {
  top: 0;
  right: 0;
  border-width: 1px 1px 0 0;
}

.c-bl {
  bottom: 0;
  left: 0;
  border-width: 0 0 1px 1px;
}

.c-br {
  bottom: 0;
  right: 0;
  border-width: 0 1px 1px 0;
}

/* --- Native HTML Architecture Diagram --- */
/* --- Static Hybrid Architecture Diagram (Senior Design) --- */
.arch-native-container {
  width: 100%;
  background: #020205;
  border: 1px solid rgba(255, 255, 255, 0.08); /* Subtle border */
  border-radius: 12px;
  padding: 3rem 1rem;
  position: relative;
  overflow: hidden; /* Keep SVG inside */
}

/* 1. SVG Layer (Connectors) */
.arch-connections {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1; /* Behind text */
  pointer-events: none;
}
.arch-connections path {
  vector-effect: non-scaling-stroke; /* Keep lines sharp on resize if possible, though viewBox matters */
}

/* 2. Content Layer (Text/Nodes) */
.arch-grid {
  position: relative;
  z-index: 2; /* Above SVG */
  display: grid;
  /* 6 Columns: Lit, Idea, Meth, Anal, Paper, Rev */
  grid-template-columns: repeat(6, 1fr);
  /* Rows: Header, Gap, AppModules, Gap, Outputs */
  grid-template-rows: auto 50px auto 80px auto;
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
}

/* Header Node */
.arch-header-node {
  grid-column: 1 / -1;
  justify-self: center;
  background: #0f1020;
  border: 2px solid #00f0ff; /* Cyan Input */
  border-radius: 50px;
  padding: 0.8rem 3rem;
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0;
}

/* Module Nodes (Hexagons) */
.arch-module-node {
  grid-row: 3;
  position: relative;
  width: 120px;
  height: 104px; /* Hexagon Ratio */
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  /* Static Hexagon Shape */
  background: #0a1518;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  /* We mimic border via inset box-shadow or a pseudo element if clip-path cuts it */
  /* Best method for bordered hexagon with clip-path is a wrapper. 
       But for "Simple", let's use a Pseudo-element background approach */
}

/* "Border" trick for clipped shapes: Put a bg color on parent, and slightly smaller clipped child */
.hex-border {
  position: absolute;
  inset: 0;
  background: #4a5568; /* Default Border */
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  z-index: -1;
}
.hex-inner {
  position: absolute;
  inset: 2px; /* Border thickness */
  background: #0a1518; /* Content BG */
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.hex-inner h5 {
  font-size: 0.8rem;
  color: #fff;
  margin: 0;
  font-weight: 700;
}
.hex-inner p {
  font-size: 0.65rem;
  color: #a0aec0;
  margin: 0;
  text-transform: uppercase;
}

/* Specific Colors */
.mod-cyan .hex-border {
  background: #00f0ff;
}
.mod-cyan h5 {
  color: #00f0ff;
}

/* Outputs */
.arch-output-node {
  grid-row: 5;
  background: #0f1016;
  border: 1px solid #4a5568;
  border-radius: 6px;
  padding: 0.5rem 1rem;
  font-size: 0.75rem;
  color: #cbd5e0;
  width: 90%;
  margin: 0 auto;
  position: relative;
}
.out-cyan {
  border-color: #00f0ff;
  color: #00f0ff;
  background: rgba(0, 240, 255, 0.05);
}

/* Mobile Fallback */
@media (max-width: 900px) {
  .arch-connections {
    display: none;
  }
  .arch-grid {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }
  .arch-header-node {
    margin-bottom: 2rem;
  }

  /* Mobile grouping */
  .arch-module-group {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    border: 1px solid #333;
    border-radius: 8px;
  }
  .arch-module-node {
    margin: 0;
    width: 80px;
    height: 70px;
  }
  .arch-output-node {
    width: auto;
    flex: 1;
    margin-left: 1rem;
  }
}

/* Scan Line Animation */
.scan-line {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--accent-primary),
    transparent
  );
  opacity: 0.5;
  animation: scan 4s linear infinite;
  z-index: 10;
  pointer-events: none;
  display: none;
}

.diagram-frame:hover .scan-line {
  display: block;
}

@keyframes scan {
  0% {
    top: 0;
    opacity: 0;
  }

  10% {
    opacity: 0.8;
  }

  90% {
    opacity: 0.8;
  }

  100% {
    top: 100%;
    opacity: 0;
  }
}

@media (max-width: 900px) {
  .deep-research-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .phase-connector-line {
    height: 2rem;
    margin-left: 50%;
    border-left: 1px dashed rgba(255, 255, 255, 0.1);
  }
}

/* --- Generated Papers Section --- */
.generated-papers-section {
  padding: 8rem var(--page-margin);
  position: relative;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.2) 100%);
}

.papers-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-top: 4rem;
}

.paper-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
}

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

.paper-header {
  padding: 1rem 1.25rem;
  background: rgba(255, 255, 255, 0.01);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.paper-header h3 {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.paper-link-icon {
  color: var(--text-muted);
  text-decoration: none;
  font-size: 0.9rem;
  transition: color 0.2s;
}

.paper-link-icon:hover {
  color: var(--accent-primary);
}

.paper-preview {
  width: 100%;
  position: relative;
  height: 600px;
  min-height: 600px;
  /* Fixed height for consistency */
  background: #fff;
  /* PDF viewer bg */
}

.paper-preview iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

@media (max-width: 1200px) {
  .papers-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .papers-grid {
    grid-template-columns: 1fr;
  }
}

/* --- Responsive Adjustments & Mobile Menu --- */

/* Hamburger Button - Hidden on Desktop */
.hamburger-menu {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  width: 30px;
  height: 30px;
  cursor: pointer;
  z-index: 1002;
  margin-left: 1rem;
}

.hamburger-menu span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--text-primary);
  transition: all 0.3s ease;
}

/* Hamburger Active State */
.hamburger-menu.active span:nth-child(1) {
  transform: translateY(4px) rotate(45deg);
}

.hamburger-menu.active span:nth-child(2) {
  transform: translateY(-4px) rotate(-45deg);
}

/* Mobile Menu Overlay */
.mobile-menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(5, 5, 16, 0.98);
  backdrop-filter: blur(20px);
  z-index: 1001;
  /* Below navbar (1000) so we need to adjust navbar z-index or place this higher */
  /* Let's place it behind the navbar content but visible on screen. 
       Actually, standard pattern is below navbar. Navbar z-index is 1000. 
       Let's put this at 999 and add padding top. */
  z-index: 999;
  padding-top: 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.mobile-menu-overlay.active {
  opacity: 1;
  pointer-events: all;
}

.mobile-menu-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  margin-top: 2rem;
}

.mobile-link {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  color: var(--text-primary);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.3s ease;
}

.mobile-menu-overlay.active .mobile-link {
  opacity: 1;
  transform: translateY(0);
}

.mobile-menu-overlay.active .mobile-link:nth-child(1) {
  transition-delay: 0.1s;
}

.mobile-menu-overlay.active .mobile-link:nth-child(2) {
  transition-delay: 0.2s;
}

.mobile-menu-overlay.active .mobile-link:nth-child(3) {
  transition-delay: 0.3s;
}

.mobile-menu-overlay.active .mobile-link:nth-child(4) {
  transition-delay: 0.4s;
}

.mobile-socials {
  display: flex;
  gap: 1.5rem;
  margin-top: 2rem;
  opacity: 0;
  transition: opacity 0.3s ease 0.5s;
}

.mobile-menu-overlay.active .mobile-socials {
  opacity: 1;
}

.mobile-socials .social-icon {
  width: 48px;
  height: 48px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 50%;
}

/* Mobile Media Query */
@media (max-width: 900px) {
  nav {
    width: 100%;
    top: 0;
    left: 0;
    transform: none;
    border-radius: 0;
    border-top: none;
    border-left: none;
    border-right: none;
    padding: 1rem 1.5rem;
  }

  .nav-container {
    justify-content: space-between;
    flex-wrap: nowrap;
    /* Keep logo and actions on same line */
  }

  .logo {
    margin-right: 0;
  }

  .nav-links {
    display: none;
  }

  .nav-socials {
    display: none;
    /* Hide desktop socials */
  }

  .nav-divider {
    display: none;
  }

  .hamburger-menu {
    display: flex;
    /* Show hamburger */
  }

  .nav-actions .btn-primary {
    display: none;
    /* Hide header button on mobile */
  }
}

/* Mobile Menu Button Style */
.mobile-btn {
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.3s ease 0.45s;
  margin-top: 1rem;
  font-size: 1.1rem;
  padding: 0.8rem 2.5rem;
}

.mobile-menu-overlay.active .mobile-btn {
  opacity: 1;
  transform: translateY(0);
}

/* Mobile Menu Footer (Logo) */
.mobile-menu-footer {
  margin-top: auto;
  /* Push to bottom */
  padding-bottom: 3rem;
  opacity: 0;
  transition: opacity 0.3s ease 0.6s;
}

.mobile-menu-overlay.active .mobile-menu-footer {
  opacity: 1;
}

@media (max-width: 600px) {
  .hero h1 {
    font-size: 2.8rem;
  }

  .hero-section:not(.prestige-theme) .hero-subtext {
    font-size: 1rem;
    max-width: 100%; /* Allow full width or controlled by parent */
    margin-bottom: 3rem;
    padding: 0; /* Remove 16px padding */
  }
}

/* --- Paper Disclaimer --- */
.papers-disclaimer {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px dashed rgba(255, 255, 255, 0.1);
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.disclaimer-caption {
  font-family: "Space Mono", monospace;
  color: var(--accent-primary);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
}

.disclaimer-caption::before {
  content: "";
  display: block;
  width: 2px;
  height: 1.2em;
  background: var(--accent-primary);
  margin-right: 0.75rem;
}

.disclaimer-text {
  color: var(--text-muted);
  font-size: 0.95rem;
  line-height: 1.6;
  margin: 0;
}

/* --- Pull-Quote Section --- */
.quote-section {
  padding: 6rem 0;
  position: relative;
  background: radial-gradient(
    circle at 50% 50%,
    rgba(112, 0, 255, 0.05),
    transparent 60%
  );
  text-align: center;
}

.quote-container {
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  padding: 3rem;
}

/* Big decorative quotation mark */
.quote-icon-bg {
  position: absolute;
  top: -2rem;
  left: 2rem;
  font-family: var(--font-heading);
  font-size: 10rem;
  line-height: 1;
  color: var(--accent-primary);
  opacity: 0.1;
  pointer-events: none;
  z-index: 0;
}

.quote-text {
  position: relative;
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: 300;
  line-height: 1.4;
  color: var(--text-primary);
  margin-bottom: 2.5rem;
  z-index: 1;
}

.quote-text em {
  color: #fff;
  font-style: normal;
  text-shadow: 0 0 20px rgba(255, 255, 255, 0.2);
}

.quote-author {
  display: flex;
  flex-direction: column;
  align-items: left;
  gap: 0.5rem;
  position: relative;
  z-index: 1;
}

.author-name {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 1.1rem;
  color: var(--accent-primary);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.author-role {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--text-secondary);
}

.quote-decoration-line {
  width: 60px;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--accent-secondary),
    transparent
  );
  margin: 3rem auto 0;
}

@media (max-width: 768px) {
  .quote-text {
    font-size: 1.5rem;
  }

  .quote-icon-bg {
    font-size: 6rem;
    top: -1rem;
    left: 0;
  }
}

/* Scroll Reveal System */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 1s cubic-bezier(0.16, 1, 0.3, 1),
    transform 1s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal-on-scroll.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Mobile Fixes */
@media (max-width: 768px) {
  .reveal-on-scroll {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  /* Homepage: Left aligned (User Request) */
  .hero-section:not(.prestige-theme) .hero-subtext {
    padding: 0; /* Remove 16px padding */
    margin: 0 0 3rem 0 !important; /* Reset margin to left align flow */
    text-align: left;
    font-size: 1rem;
  }

  /* Inner Pages (Articles/FAQ): Left aligned */
  .page-hero .hero-subtext {
    padding: 0;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left;
    font-size: 1rem;
  }

  .article-header {
    padding: 0 1rem;
  }

  /* Ensure article body is visible */
  .article-content {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Fix for overlay leaking out of page hero */
.page-hero {
  position: relative;
  width: 100%;
}

/* Project Paper Section */
.project-paper-section {
  padding: 6rem var(--page-margin);
  position: relative;
  background: linear-gradient(
    180deg,
    rgba(5, 5, 16, 0) 0%,
    rgba(0, 240, 255, 0.03) 50%,
    rgba(5, 5, 16, 0) 100%
  );
}

.featured-paper-card {
  background: rgba(13, 14, 34, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  padding: 3rem;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 3rem;
  backdrop-filter: blur(10px);
  transition: all 0.4s ease;
  position: relative;
  overflow: hidden;
}

.featured-paper-card:hover {
  border-color: rgba(0, 240, 255, 0.3);
  box-shadow: 0 10px 40px -10px rgba(0, 240, 255, 0.15);
  transform: translateY(-5px);
}

.fpc-content h3 {
  font-size: 2rem;
  margin-bottom: 1rem;
  line-height: 1.2;
  background: linear-gradient(90deg, #fff, #a0aec0);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.fpc-authors {
  color: #718096;
  font-family: "Spline Sans Mono", monospace;
  font-size: 0.9rem;
  margin-bottom: 1.5rem;
}

.fpc-abstract {
  color: #a0aec0;
  line-height: 1.7;
  margin-bottom: 2rem;
  font-size: 1.05rem;
}

.fpc-visual {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

/* Paper Stack Visual */
.paper-stack-icon {
  position: relative;
  width: 200px;
  height: 260px;
}

.paper-sheet {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #e2e8f0 0%, #cbd5e0 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.paper-sheet.p1 {
  transform: rotate(0deg) scale(1);
  z-index: 3;
  display: flex;
  flex-direction: column;
  padding: 20px;
}

/* Fake text lines on paper */
.paper-sheet.p1::before {
  content: "";
  display: block;
  width: 60%;
  height: 12px;
  background: #cbd5e0;
  margin-bottom: 15px;
  border-radius: 2px;
}

.paper-sheet.p1::after {
  content: "";
  display: block;
  width: 100%;
  height: 100px;
  background: repeating-linear-gradient(
    180deg,
    #cbd5e0 0,
    #cbd5e0 6px,
    transparent 6px,
    transparent 14px
  );
  opacity: 0.5;
}

.paper-sheet.p2 {
  transform: rotate(3deg) translate(5px, 5px);
  z-index: 2;
  background: #cbd5e0;
}

.paper-sheet.p3 {
  transform: rotate(6deg) translate(10px, 10px);
  z-index: 1;
  background: #a0aec0;
}

.featured-paper-card:hover .paper-sheet.p1 {
  transform: rotate(-2deg) translate(-5px, -5px) scale(1.02);
}
.featured-paper-card:hover .paper-sheet.p2 {
  transform: rotate(5deg) translate(10px, 0) scale(1.01);
}
.featured-paper-card:hover .paper-sheet.p3 {
  transform: rotate(12deg) translate(25px, 5px);
}

@media (max-width: 768px) {
  .featured-paper-card {
    grid-template-columns: 1fr;
    padding: 2rem;
  }
  .fpc-visual {
    margin-top: 2rem;
    display: none; /* Hide on mobile if too tall */
  }
}

.btn-hero-secondary {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.3);
  font-weight: 500;
}
.btn-hero-secondary:hover {
  background: #fff;
  border-color: #fff;
  color: #050510;
  transform: translateY(-2px);
}

/* Centered Featured Paper Card */
/* Centered Featured Paper Card */
.featured-paper-card.centered-card {
  grid-template-columns: 1fr;
  max-width: 650px; /* Constrained width as requested */
  width: 90%;
  margin: 0 auto;
  text-align: center;
  padding: 3rem; /* Slightly reduced padding for tighter card */
  gap: 2rem;
}

.featured-paper-card.centered-card .fpc-content h3 {
  font-size: 2rem; /* Adjusted for narrower card */
  margin-bottom: 1rem;
  background: none;
  -webkit-text-fill-color: initial;
  color: #fff;
  line-height: 1.3;
}

.featured-paper-card.centered-card .fpc-authors {
  justify-content: center;
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 2rem;
  font-size: 0.95rem;
}

.featured-paper-card.centered-card .fpc-abstract {
  margin-left: auto;
  margin-right: auto;
  max-width: 100%; /* Fill the card */
  font-size: 1.05rem;
}

.featured-paper-card.centered-card .fpc-actions {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
}

/* Hide visual in centered mode */
.featured-paper-card.centered-card .fpc-visual {
  display: none;
}

/* Mobile Responsiveness for Paper Card */
@media (max-width: 768px) {
  .featured-paper-card.centered-card {
    padding: 2rem 1.5rem;
    width: 95%;
    max-width: 100%;
  }

  .featured-paper-card.centered-card .fpc-content h3 {
    font-size: 1.6rem;
  }

  .featured-paper-card.centered-card .paper-preview {
    height: 400px !important; /* Smaller height on mobile */
    margin: 1.5rem 0;
  }
}

/* --- Team Section --- */
.team-section {
  padding: 8rem var(--page-margin);
  width: 100%;
}

/* --- Articles Section Gradient --- */
.articles-gradient {
  background: linear-gradient(to bottom, #1a1a11 0%, var(--bg-dark) 100%);
  position: relative;
  z-index: 5;
  padding: 4rem var(--page-margin); /* 70px side margins as requested */
}

/* --- Articles Header Redesign --- */
.articles-header {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center; /* Or center if fonts differ */
  text-align: left !important;
  width: 100%;

  /* Borders as per design */
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding: 1rem 0; /* Reduced vertical padding */
  margin-bottom: 3rem; /* Reduced space before grid */
}

/* Override default section-header styles */
.articles-header h2 {
  font-family: var(--font-heading);
  font-size: 3rem;
  font-weight: 400; /* Lighter weight as per image */
  margin: 0;
  background: none; /* Remove any text gradients if inherited */
  -webkit-text-fill-color: var(--text-primary);
  color: var(--text-primary);
}

.articles-header p {
  font-family: var(--font-subheading);
  font-size: 0.9rem;
  color: var(--text-secondary);
  max-width: 400px;
  text-align: right;
  margin: 0;
  text-transform: capitalize; /* "Re-Shaping The Science Field" */
}

/* Mobile responsive for header */
@media (max-width: 768px) {
  .articles-header {
    flex-direction: column !important;
    align-items: flex-start;
    gap: 0.25rem;
    text-align: left !important;
    padding: 2rem 0;
  }

  .articles-header p {
    text-align: left;
    max-width: 100%;
  }
}

/* --- About Us Section --- */
.about-us {
  position: relative;
  /* background managed by body or global gradients */
  padding: 5rem var(--page-margin) 2rem; /* Reduced from 8rem to 5rem */
}

.about-wrapper {
  display: flex;
  flex-direction: column;
  gap: 2rem; /* Space between rows */
}

/* 1. Header Row */
.about-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding: 1.5rem 0; /* Reduced to 24px as requested */
}

.about-title {
  font-family: var(--font-heading);
  font-size: 2.5rem; /* Adjust based on mockup */
  line-height: 1.2;
  font-weight: 300;
  max-width: 70%;
  color: var(--text-primary);
}

.about-graphic-sphere {
  width: 280px; /* Larger sphere as requested */
  height: auto;
  object-fit: contain;
  /* Add glow or effect if needed */
}

/* 2. Video Placeholder */
.about-video-container {
  width: 70%; /* Matched to header title width */
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.video-placeholder {
  width: 100%;
  border-radius: 8px; /* Slight radius */
  position: relative;
  overflow: hidden; /* trim video corners */
  background: black; /* Loading state */
}

.about-video-element {
  width: 100%;
  height: auto;
  display: block;
}

.video-caption {
  font-family: var(--font-subheading);
  font-size: 1rem;
  color: var(--text-primary);
  opacity: 0.9;
}

/* 3. Architecture Block */
.about-architecture {
  display: flex;
  align-items: center; /* Centered alignment */
  gap: 4rem;
  padding-top: 2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2); /* Mockup shows separate line? Or section barrier? */
  padding-bottom: 6rem; /* Space before team */
}

.about-graphic-atom {
  width: 350px; /* Increased size significantly */
  height: auto;
  flex-shrink: 0;
}

.arch-text-block {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 600px;
}

.arch-kicker {
  font-family: var(--font-subheading); /* Monospace or technical font? */
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #00f0ff; /* Cyan kicker */
  display: block;
}

.arch-text-block p {
  font-family: var(--font-subheading);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text-secondary);
}

/* --- Responsive Design (Tablet & Mobile) --- */

/* Tablet (1024px) */
@media (max-width: 1024px) {
  :root {
    --page-margin: 40px; /* Reducing global side margins */
  }

  .partners-banner {
    padding: 2rem 0;
  }

  /* Restore smaller padding for tablet/mobile */
  .about-section {
    padding: 8rem var(--page-margin);
  }

  .about-title {
    font-size: 2.2rem;
    max-width: 60%;
  }

  .about-graphic-sphere {
    width: 200px;
  }

  .about-video-container {
    width: 100%; /* Video full width on tablet */
  }

  .about-graphic-atom {
    width: 280px;
  }

  /* Tablet Stack for Workflow */
  .workflow-grid {
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }

  .workflow-path {
    display: none;
  }

  .card-wide,
  .card-tall,
  .card-medium,
  .card-box {
    grid-column: auto;
    grid-row: auto;
    width: 100%;
  }
}

/* Mobile (768px) - Senior UX Adjustments */
@media (max-width: 768px) {
  :root {
    --page-margin: 16px; /* Tight margins for mobile */
  }

  /* Fix CTA buttons bleeding */
  .cta-buttons,
  .hero-cta {
    flex-direction: column;
    width: 100%;
    align-items: stretch;
    gap: 1rem;
  }

  .cta-buttons .btn,
  .hero-cta .btn {
    width: 100%;
    text-align: center;
  }

  /* About Us Header: Stack layout */
  .about-header {
    flex-direction: column-reverse; /* Metal sphere on top */
    align-items: center; /* Center everything on mobile */
    text-align: center;
    gap: 1.5rem;
    padding: 1.5rem 0;
  }

  .about-title {
    max-width: 100%;
    font-size: 1.8rem; /* Readable heading (approx 29px) */
    line-height: 1.3;
  }

  .about-graphic-sphere {
    width: 240px;
    align-self: center;
    margin-bottom: 0.5rem; /* Gap between sphere and text */
  }

  /* Video */
  .about-video-container {
    width: 100%; /* Full bleed within container */
  }

  /* Architecture Block: Stack, visual first */
  .about-architecture {
    flex-direction: column;
    align-items: center;
    text-align: left; /* Keep text left aligned for readability */
    gap: 2rem;
    padding-bottom: 4rem;
  }

  .about-graphic-atom {
    width: 240px;
  }

  .arch-text-block {
    max-width: 100%;
  }

  /* Reset padding for better mobile flow */
  .about-us {
    padding-top: 3rem; /* Less text gap on mobile */
  }
}

/* --- New Hero Section Styling --- */
.new-hero {
  background-color: #000;
  padding: 56px 0 124px 56px; /* Exactly 56px left margin padding */
  position: relative;
  overflow: hidden;
  color: #fff;
}

@keyframes heroFadeUp {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.new-hero-container {
  display: grid;
  grid-template-areas:
    "logo"
    "nav"
    "text";
  grid-template-columns: 1fr;
  grid-template-rows: auto auto 1fr;
  min-height: 800px;
  max-width: calc(100% - 112px); /* Let it fill naturally */
  margin: 0; /* Left align by removing center margin */
}

.new-hero-logo {
  grid-area: logo;
  margin-bottom: 24px;
  opacity: 0; /* Starting state for animation */
  animation: heroFadeUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  animation-delay: 0.1s;
}

.new-site-logo {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
}

.new-site-logo img {
  width: 32px;
  height: 32px;
}
.new-site-logo-text {
  font-family: "Space Grotesk", sans-serif;
  font-size: 32px;
  line-height: 1;
  letter-spacing: -0.02em;
  font-weight: 700;
  color: #fff;
}

.new-hero-nav {
  grid-area: nav;
  margin-top: 32px;
}

.new-nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
  opacity: 0;
  animation: heroFadeUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  animation-delay: 0.2s;
}

.new-nav-list li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  width: 220px;
  margin-bottom: 10px;
  padding-bottom: 10px;
}

.new-nav-list li:last-child {
  border-bottom: none;
}

.new-nav-list a {
  font-family: "Geist Mono", monospace;
  font-weight: 400;
  font-size: 11px;
  text-decoration: none;
  color: #fff;
  letter-spacing: 6px;
  line-height: 1.2;
  text-transform: uppercase;
  display: block;
  white-space: nowrap;
}
.new-nav-list a:hover {
  color: rgba(255, 255, 255, 0.7);
}

.new-hero-text {
  grid-area: text;
  margin-top: 210px;
  align-self: start;
  max-width: 740px;
  position: relative;
  z-index: 10;
  opacity: 0;
  animation: heroFadeUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  animation-delay: 0.3s;
}

.new-hero-text h1 {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 300;
  font-size: 74px;
  letter-spacing: -0.01em;
  line-height: 1.1;
  margin-bottom: 24px;
}

.new-hero-text p {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 300;
  font-size: 32px;
  letter-spacing: 0.001em;
  line-height: 1.2;
  color: rgba(255, 255, 255, 0.9);
}

.new-hero-image {
  position: absolute;
  top: 50%; /* Shift center back to normal */
  right: -710px; /* Force it deep into the right edge */
  transform: translateY(-50%);
  pointer-events: none;
  z-index: 1;
}

.new-hero-image img {
  width: 1900px; /* Scale back from 2600 to visually match intended mock */
  max-width: none;
  height: auto;
  display: block;
}

/* --- Responsive Adjustments --- */
@media (max-width: 1400px) {
  .new-hero-image {
    right: -450px;
  }
  .new-hero-image img {
    width: 1600px;
  }
  .new-hero-text {
    max-width: 600px;
  }
}

@media (max-width: 1080px) {
  .new-hero-container {
    grid-template-columns: 1fr;
    grid-template-areas: "logo" "nav" "text";
  }
  .new-hero-image {
    right: -300px;
    top: 55%;
  }
  .new-hero-image img {
    width: 1100px;
  }
  .new-hero-text {
    margin-top: 60px;
    max-width: 480px; /* Constrain text so it doesn't overlap the image on tablets */
    z-index: 10;
  }
  .new-hero-text h1 {
    font-size: 56px;
  }
  .new-hero-text p {
    font-size: 24px;
    margin-bottom: 24px;
  }
}

@media (max-width: 768px) {
  .new-hero {
    /* === MOBILE HERO OFFSETS === */
    /* Tweak these values to move elements up or down on mobile. Negative = Up, Positive = Down */
    --mobile-image-top-offset: -56px; /* Moves the hero graphic up/down */
    --mobile-text-top-offset: -88px; /* Moves the header/subhead block up/down */

    padding: 24px 0 48px 0; /* Remove side padding, handle margins natively inside components */
    min-height: auto;
  }

  .new-hero-container {
    grid-template-columns: 1fr;
    grid-template-areas:
      "logo"
      "image"
      "text"
      "nav";
    margin: 0;
    max-width: 100%;
    width: 100%;
    min-height: auto;
  }

  .new-hero-logo {
    padding: 0 16px;
    margin-bottom: 32px;
  }

  .new-hero-image {
    position: relative; /* Bring back into DOM flow for mobile */
    top: var(--mobile-image-top-offset, 0px); /* Controlled by variable above */
    right: auto;
    grid-area: image;
    order: 2;
    transform: none;
    width: 100%;
    display: flex;
    justify-content: flex-end; /* Show the dramatic crop */
    overflow: hidden;
    margin-bottom: 40px;
    z-index: 1;
  }
  .new-hero-image img {
    width: 900px; /* Big enough to bleed out beautifully */
    max-width: none;
    height: auto;
    object-fit: contain;
    transform: translateX(38%); /* Slide right out of viewport */
  }

  .new-hero-text {
    position: relative;
    top: var(--mobile-text-top-offset, 0px); /* Controlled by variable above */
    grid-area: text;
    order: 3;
    padding: 0 16px;
    margin-top: 0;
    margin-bottom: 20px;
    max-width: 100%;
    z-index: 2;
  }

  .new-hero-text h1 {
    font-size: 42px;
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin-bottom: 16px;
  }

  .new-hero-text p {
    font-size: 18px;
    line-height: 1.5;
  }

  .new-hero-nav {
    grid-area: nav;
    order: 4;
    padding: 0 16px; /* Inside padding keeps text aligned right up to the border edges */
    margin: 0;
    width: 100%;
  }

  .new-nav-list {
    width: 100%;
  }

  .new-nav-list li {
    width: 100%; /* Spans full width inside constraints */
  }
}

@media (max-width: 375px) {
  .new-hero-text h1 {
    font-size: 36px;
  }
  .new-hero-text p {
    font-size: 18px;
  }
  .new-hero-image img {
    width: 600px;
    transform: translateX(20%);
  }
}

/* --- Institutions Section --- */
.institutions-section {
  background-color: #000;
  padding: 112px 0 56px 56px; /* 56px left margin padding */
  color: #fff;
}

@media (max-width: 768px) {
  .institutions-section {
    padding: 0 0 8px 0;
  }
}

/* --- Primary Team Section --- */
.primary-team-section {
  background-color: #000;
  padding: 56px 0 96px 56px;
  color: #fff;
}

.primary-team-container {
  max-width: calc(100% - 56px);
  margin-left: 0;
}

.team-header {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  margin-bottom: 56px;
  padding: 16px 0;
}

.team-header h2 {
  font-family: "Geist Mono", monospace;
  font-weight: 400;
  font-size: 11px;
  color: #fff;
  letter-spacing: 6px;
  line-height: 1.2;
  text-transform: uppercase;
  margin: 0;
}

.team-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 40px;
  row-gap: 48px;
}

.team-profile {
  display: flex;
  flex-direction: row;
  gap: 24px;
  align-items: flex-start;
}

.team-profile img {
  width: 268px;
  height: 300px;
  object-fit: cover;
  flex-shrink: 0;
  display: block;
}

.profile-info {
  display: flex;
  flex-direction: column;
}

.profile-info h3 {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 400;
  font-size: 32px;
  line-height: 1.2;
  letter-spacing: 0.01em;
  margin: 0 0 16px 0;
  color: #fff;
}

.team-profile-link {
  text-decoration: none;
  color: inherit;
  display: block;
  transition: transform 0.3s ease;
}

.team-profile-link:hover img {
  filter: brightness(1.2);
  transform: scale(1.02);
}

.team-profile-link:hover h3 {
  color: #cacaca;
}

.profile-avatar-link {
  display: block;
  flex-shrink: 0;
  overflow: hidden;
  transition: transform 0.3s ease;
}

.profile-avatar-link:hover img {
  transform: scale(1.05);
}

.profile-name-link {
  text-decoration: none;
  color: inherit;
  transition: color 0.3s ease;
}

.profile-name-link:hover {
  text-decoration: underline;
  opacity: 0.8;
}

.profile-info .occupation {
  font-family: "Geist Mono", monospace;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: 0.01em;
  margin: 0 0 32px 0;
  color: #cacaca;
}

.profile-info .blurb {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.2;
  letter-spacing: 0.01em;
  margin: 0;
  color: #fff;
}

.view-whole-team {
  display: flex;
  justify-content: flex-start;
  margin-top: 48px;
}

.view-whole-team a {
  font-family: "Geist Mono", monospace;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.08em;
  color: #fff;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  transition: opacity 0.2s ease;
  text-transform: uppercase;
}

.view-whole-team a:hover {
  opacity: 0.7;
}

.view-whole-team .arrow {
  display: flex;
  align-items: center;
  margin-left: 8px;
}

/* --- Responsive Adjustments for Primary Team --- */
.padded-grid {
  padding-right: 56px;
}

@media (max-width: 1080px) {
  .team-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .primary-team-section {
    padding: 24px 0 48px 0;
  }

  .primary-team-container {
    max-width: 100%;
    width: 100%;
    margin: 0;
  }

  .team-header {
    margin-bottom: 40px;
    padding-left: 16px;
    padding-right: 16px;
  }

  .team-grid {
    grid-template-columns: 1fr;
    row-gap: 40px;
    padding: 0 16px;
  }

  .padded-grid {
    padding-right: 16px; /* Reset the 56px to match normal mobile layout scale */
  }

  .sub-section-title,
  .sub-section-desc {
    padding-right: 16px !important;
  }

  .team-profile {
    flex-direction: column;
  }

  .team-profile img {
    width: 208px;
    height: 233px;
  }

  .profile-info h3 {
    font-size: 28px;
  }

  .profile-info .occupation {
    font-size: 14px;
  }
  .profile-info .blurb {
    font-size: 18px;
  }

  .profile-info br {
    display: none;
  }

  .view-whole-team {
    padding: 0 16px;
  }
}

/* --- Our Paper Section --- */
.our-paper-section {
  background-color: #000;
  padding: 0 0 72px 56px; /* Align to container */
  color: #fff;
  overflow: hidden;
  position: relative;
}

.paper-hero-container {
  display: grid;
  grid-template-columns: 1fr 1fr; /* Split down middle */
  align-items: center;
  margin-bottom: 240px; /* Adjust this to find the sweet spot between arxiv and quote */
  position: relative;
}

.paper-hero-text {
  max-width: 580px;
  position: relative;
  z-index: 10;
}

.paper-hero-text h1 {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 300;
  font-size: 74px;
  letter-spacing: -0.01em;
  line-height: 1.1;
  margin-bottom: 24px;
  color: #fff;
}

.paper-hero-text p {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 300;
  font-size: 26px;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 48px;
}

.paper-pill-button {
  display: inline-flex;
  padding: 8px 48px;
  border-radius: 100px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  font-family: "Geist Mono", monospace;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.01em;
  color: #fff;
  text-decoration: none;
  transition: all 0.3s ease;
}

.paper-pill-button:hover {
  background-color: #fff;
  color: #000;
}

.paper-hero-image {
  display: flex;
  justify-content: flex-end; /* Sits perfectly to the container edge */
  height: auto;
  position: relative;
  z-index: 1;
  margin-right: -56px; /* Bypass the 56px right margin to anchor flush with the right screen bezel */
}

.paper-hero-image img {
  max-width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

/* Quote Section */
.paper-quote-container {
  max-width: 1175px;
  margin: 0 auto 32px auto;
  text-align: left;
}

.quote-mark {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 700;
  font-size: 96px;
  line-height: 1;
  color: #fff;
  margin-bottom: -16px;
}

.quote-text {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 400;
  font-size: 48px;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #fff;
  margin-bottom: 40px;
}

.quote-author {
  font-family: "Geist Mono", monospace;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.8);
  text-transform: uppercase;
  align-items: left;
}

/* Planet Image Container */
.paper-planet-image {
  max-width: 1175px;
  margin: 0 auto -10px auto; /* Centers the block itself */
  width: 100%;
  display: flex;
  justify-content: center;
  overflow: hidden;
}

.paper-planet-image img {
  width: 100%;
  max-width: none;
  height: auto;
  display: block;
  transform: scale(1.25); /* Zooms in to crop black edges */
  transform-origin: top center;
}

/* --- Responsive Adjustments for Our Paper --- */
@media (max-width: 1080px) {
  .paper-hero-container {
    display: block;
    margin-bottom: 140px;
  }

  .paper-hero-image {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 60%;
    max-width: 400px;
    z-index: 1; /* Drop it backwards */
    opacity: 0.8; /* Lower opacity to allow white text to be readable */
  }
}

@media (max-width: 768px) {
  .our-paper-section {
    padding: 24px 0 56px 0;
  }

  .paper-hero-container {
    margin-bottom: 80px;
  }

  .paper-hero-text {
    padding: 0 16px;
  }

  .paper-hero-text h1 {
    font-size: 56px;
    margin-top: 64px;
  }

  .paper-hero-text p {
    font-size: 18px;
  }

  .paper-hero-image {
    padding-right: 0;
    width: 70%;
    max-width: 280px;
    top: 48%;
    right: -16px; /* Let it bleed into margin so it fills the edge */
    opacity: 0.6; /* Very faded behind text on phone screens */
  }

  .paper-quote-container {
    padding: 0 16px;
    margin-bottom: 64px;
  }

  .quote-text {
    font-size: 32px;
  }

  .quote-author {
    font-size: 14px; /* Same on mobile */
  }

  .paper-planet-image {
    margin-left: 0;
    width: 100%;
  }
  .paper-planet-image img {
    transform: scale(1.3);
  }
}

/* --- Our Process Section --- */
.our-process-section {
  background-color: #000;
  padding: 0 0 160px 56px;
  color: #fff;
  overflow: hidden;
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 100px 80px;
  max-width: 1400px;
}

.process-item {
  display: flex;
  align-items: flex-start;
  gap: 32px;
}

.process-image {
  flex-shrink: 0;
  width: 220px;
  height: 220px;
  background-color: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
}

.process-image img {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.process-content {
  display: flex;
  flex-direction: column;
  padding-top: 16px;
}

.process-content h3 {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 400;
  font-size: 32px;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #fff;
  margin-top: 0;
  margin-bottom: 16px;
}

.process-content p {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: 0.01em;
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}

/* --- Info Block in Process Section --- */
.process-info-block {
  text-align: center;
  margin-top: 240px; /* Adjust distance from process blocks here */
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding-right: 56px; /* Balance the 56px left padding of the parent section to center on screen */
}

.info-eyebrow {
  font-family: "Geist Mono", monospace;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 48px;
}

.info-header {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 400;
  font-size: 72px;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: #fff;
  margin: 0 auto 32px auto;
  max-width: 900px;
}

.info-subhead {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 300;
  font-size: 32px;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 auto 48px auto;
  max-width: 780px;
}

/* --- Responsive Adjustments for Process --- */
@media (max-width: 1080px) {
  .process-grid {
    grid-template-columns: 1fr;
    gap: 80px;
  }
}

@media (max-width: 768px) {
  .our-process-section {
    padding: 24px 0 80px 0;
  }

  .process-grid {
    padding: 0 16px;
    gap: 72px;
  }

  .process-item {
    flex-direction: column;
    gap: 32px;
  }

  .process-item.align-left {
    align-items: flex-start;
  }

  /* Stagger the image for the right-aligned items */
  .process-item.align-right {
    align-items: flex-end;
  }

  /* Force the text block to remain left-aligned inside the right-staggered item */
  .process-item.align-right .process-content {
    align-items: flex-start;
    text-align: left;
    width: 100%;
  }

  .process-image {
    width: 180px;
    height: 180px;
  }

  .process-image img {
    max-width: 140px;
  }

  .process-content {
    padding-top: 0;
  }

  .process-content h3 {
    font-size: 32px;
    margin-bottom: 16px;
  }

  .process-content p {
    font-size: 20px;
    line-height: 1.2rem;
  }

  .process-info-block {
    margin-top: 140px;
    padding: 0 16px;
    max-width: 100%;
  }

  .info-header {
    font-size: 48px;
    margin-bottom: 24px;
    max-width: 100%;
  }

  .info-subhead {
    font-size: 18px;
    margin-bottom: 40px;
    max-width: 100%;
  }

  .desktop-br {
    display: none;
  }
}

/* --- AI Generated Papers Section --- */
.ai-papers-section {
  background-color: #000;
  padding: 0 0 160px 56px; /* Align to container edge */
  color: #fff;
  overflow: hidden;
}

.ai-papers-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
  margin-bottom: 80px;
}

.ai-paper-card {
  display: flex;
  flex-direction: column;
  padding-top: 20px;
  border-radius: 4px; /* Optional subtle softness on corners */
  overflow: hidden; /* Ensure paper image clips nicely at the bottom */
}

/* Specific Gradient Backgrounds */
.ai-paper-card.ai-gradient-1 {
  background: linear-gradient(to bottom, #1d202b, #262428);
}

.ai-paper-card.ai-gradient-2 {
  background: linear-gradient(to bottom, #171915, #262428);
}

.ai-paper-card.ai-gradient-3 {
  background: linear-gradient(to bottom, #1b0e15, #262428);
}

.ai-paper-title {
  font-family: "Gothia Serif VF Display", serif;
  font-weight: 400;
  font-size: 31px;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: #fff;
  margin: 0 0 40px 0;
  padding-left: 40px;
  padding-right: 40px;
}

.ai-paper-pill-wrapper {
  padding-left: 40px;
  padding-right: 40px;
  margin-bottom: 48px;
  display: flex;
  flex-wrap: wrap; /* Safe wrapping for multiple pills */
  gap: 12px;
}

.ai-paper-image {
  margin-left: 40px;
  margin-right: 40px;
  display: flex;
  margin-top: auto; /* Pushes image to bottom if the text wraps and card heights differ */
}

.ai-paper-image img {
  width: 100%; /* Scale inside the 40px margin confines */
  height: auto;
  display: block;
}

.ai-papers-view-more {
  display: flex;
  justify-content: center;
  align-items: center;
}

/* --- Responsive Adjustments for AI Papers --- */
@media (max-width: 1200px) {
  .ai-papers-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .ai-papers-section {
    padding: 24px 0 80px 0;
  }

  .ai-papers-grid {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 0 16px; /* In case the container is flush */
  }

  .ai-paper-card {
    padding-top: 24px;
  }

  .ai-paper-title {
    font-size: 26px;
    padding-left: 24px;
    padding-right: 24px;
    margin-bottom: 32px;
  }

  .ai-paper-pill-wrapper {
    padding-left: 24px;
    padding-right: 24px;
    margin-bottom: 40px;
  }

  .ai-paper-image {
    margin-left: 24px;
    margin-right: 24px;
  }
}

/* --- Internal Pages Resets --- */
.internal-header {
  min-height: auto !important;
  padding-bottom: 2rem !important;
}

.internal-header .new-hero-container {
  min-height: auto !important;
  grid-template-areas:
    "logo"
    "nav" !important;
  grid-template-rows: auto auto !important;
}

/* --- Blog / Research Section --- */
.blog-section {
  padding: 8rem 0;
  background: var(--bg-dark);
}

.content-filters {
  display: flex;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.filter-btn {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text-secondary);
  padding: 0.5rem 1.25rem;
  border-radius: 100px;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  cursor: pointer;
  transition: all 0.2s ease;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.filter-btn:hover {
  border-color: var(--text-primary);
  color: var(--text-primary);
}

.filter-btn.active {
  background: var(--text-primary);
  color: var(--bg-dark);
  border-color: var(--text-primary);
  font-weight: 600;
}

.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.blog-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
}

.blog-card:hover {
  transform: translateY(-5px);
  border-color: rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
}

.blog-image {
  height: 200px;
  background: #000;
  position: relative;
  overflow: hidden;
}

.blog-image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: none;
  z-index: 2;
  display: none;
}

.blog-visual {
  width: 100%;
  height: 100%;
  position: relative;
  opacity: 0.6;
  transition: transform 0.5s ease;
}

.blog-card:hover .blog-visual {
  transform: scale(1.05);
}

/* Abstract visuals for blog posts using CSS gradients */
.v1 {
  background:
    radial-gradient(circle at 30% 50%, rgba(0, 240, 255, 0.4), transparent 60%),
    radial-gradient(circle at 70% 80%, rgba(112, 0, 255, 0.4), transparent 60%);
}

.v2 {
  background:
    repeating-linear-gradient(
      45deg,
      rgba(255, 255, 255, 0.03) 0px,
      rgba(255, 255, 255, 0.03) 1px,
      transparent 1px,
      transparent 10px
    ),
    radial-gradient(circle at 50% 50%, rgba(0, 240, 255, 0.2), transparent);
}

.v3 {
  background: conic-gradient(
    from 0deg at 50% 50%,
    rgba(112, 0, 255, 0.3),
    rgba(0, 240, 255, 0.3),
    rgba(112, 0, 255, 0.3)
  );
  filter: blur(20px);
}

.blog-content {
  padding: 2rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.blog-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  font-size: 0.8rem;
}

.blog-tag {
  color: var(--accent-primary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 500;
}

.blog-date {
  color: var(--text-secondary);
}

.blog-card h3 {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  margin-bottom: 0.8rem;
  line-height: 1.3;
}

.blog-card p {
  color: var(--text-secondary);
  font-size: 0.95rem;
  margin-bottom: 1.5rem;
  line-height: 1.6;
  flex-grow: 1;
}

.read-more {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 500;
}

.read-more .arrow {
  transition: transform 0.3s ease;
}

.blog-card:hover .read-more .arrow {
  transform: translateX(5px);
}
