@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.homepage .hero,
.homepage #government,
.homepage .technical-section,
.homepage .security-section,
.homepage #contact {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--bg-primary);
}

.homepage .hero::before,
.homepage #government::before,
.homepage .technical-section::before,
.homepage .security-section::before,
.homepage #contact::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 82% 18%, rgba(35, 120, 75, 0.1), transparent 38%),
    radial-gradient(circle at 14% 82%, rgba(40, 110, 72, 0.07), transparent 34%);
}

.homepage .hero::after,
.homepage #government::after,
.homepage .technical-section::after,
.homepage .security-section::after,
.homepage #contact::after {
  content: "";
  position: absolute;
  width: 460px;
  height: 460px;
  top: -180px;
  right: -180px;
  z-index: -1;
  pointer-events: none;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(50, 140, 85, 0.08), rgba(50, 140, 85, 0.025) 42%, transparent 70%);
  filter: blur(60px);
  animation: greenAmbient 22s ease-in-out infinite alternate;
}

@keyframes greenAmbient {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(-36px, 42px, 0) scale(1.08); }
}

@media (max-width: 600px) {
  .reveal { transform: translateY(16px); filter: blur(4px); }

  .homepage .hero::after,
  .homepage #government::after,
  .homepage .technical-section::after,
  .homepage .security-section::after,
  .homepage #contact::after {
    width: 300px;
    height: 300px;
    top: -120px;
    right: -120px;
    filter: blur(45px);
    opacity: .7;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; filter: none; transition: none; }
  .homepage .hero::after,
  .homepage #government::after,
  .homepage .technical-section::after,
  .homepage .security-section::after,
  .homepage #contact::after { animation: none; }
}

/* Shared inner-page atmosphere: quiet depth around the existing editorial layout. */
.inner-page .page-intro,
.inner-page .page-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--bg-primary);
}

.inner-page .page-intro::before,
.inner-page .page-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(circle at 82% 18%, rgba(35, 120, 75, .08), transparent 38%);
}

.inner-page .page-intro::after,
.inner-page .page-cta::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  top: -170px;
  right: -170px;
  z-index: -1;
  pointer-events: none;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(50, 140, 85, .065), rgba(50, 140, 85, .02) 42%, transparent 70%);
  filter: blur(64px);
  animation: greenAmbient 24s ease-in-out infinite alternate;
}

.inner-page--government .page-intro::before,
.inner-page--international .page-intro::before { background: radial-gradient(circle at 16% 48%, rgba(35, 120, 75, .08), transparent 38%); }
.inner-page--technology .page-intro::before { background: radial-gradient(circle at 78% 22%, rgba(55, 145, 90, .1), transparent 40%); }
.inner-page--case-studies .page-intro::before { background: radial-gradient(circle at 70% 85%, rgba(35, 120, 75, .05), transparent 34%); }
.inner-page--privacy .page-intro::before,
.inner-page--terms .page-intro::before,
.inner-page--accessibility .page-intro::before { background: radial-gradient(circle at 78% 18%, rgba(35, 120, 75, .045), transparent 34%); }

.inner-page .page-intro__grid,
.inner-page .content-grid,
.inner-page .editorial-list,
.inner-page .project-list { position: relative; z-index: 1; }

@media (max-width: 600px) {
  .inner-page .page-intro::after,
  .inner-page .page-cta::after { width: 280px; height: 280px; top: -110px; right: -110px; filter: blur(46px); opacity: .7; }
}

@media (prefers-reduced-motion: reduce) {
  .inner-page .page-intro::after,
  .inner-page .page-cta::after { animation: none; }
}


/* Site-wide approved ambient treatment. Decorative only: no layout-changing properties. */
.inner-page .content-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.inner-page .content-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .78;
  background: radial-gradient(circle at 88% 28%, rgba(38, 118, 75, .045), transparent 34%);
}

.inner-page .content-section:nth-of-type(3n)::before {
  background: radial-gradient(circle at 10% 72%, rgba(50, 135, 84, .04), transparent 32%);
}

.inner-page .content-section--tonal::before,
.inner-page .dark-panel::before {
  opacity: .9;
  background:
    radial-gradient(circle at 82% 20%, rgba(50, 140, 85, .055), transparent 34%),
    radial-gradient(circle at 12% 88%, rgba(36, 105, 68, .03), transparent 28%);
}

.inner-page .content-section > .container,
.inner-page .page-cta > .container {
  position: relative;
  z-index: 1;
}

/* Legal/reading pages stay calmer for long-form readability. */
.inner-page--privacy .content-section::before,
.inner-page--terms .content-section::before,
.inner-page--accessibility .content-section::before {
  opacity: .35;
}

@media (max-width: 600px) {
  .inner-page .content-section::before {
    opacity: .5;
    background: radial-gradient(circle at 92% 22%, rgba(38, 118, 75, .038), transparent 30%);
  }
}

@keyframes momentumDraw { to { stroke-dashoffset: 0; } }
@keyframes momentumArea { to { opacity: 1; } }
@keyframes momentumNode {
  from { opacity: 0; transform: scale(.35); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes momentumAmbient {
  from { transform: translate3d(0,0,0) scale(1); }
  to { transform: translate3d(-45px,36px,0) scale(1.12); }
}

@media (prefers-reduced-motion: reduce) {
  .momentum-line { stroke-dashoffset: 0; animation: none; }
  .momentum-area, .momentum-nodes circle { opacity: 1; animation: none; }
  .momentum-section::before { animation: none; }
}
