/* GENERATED by tools/build-shared-styles.cjs. Edit the source modules, not this file.
   Original cascade order is preserved; see tools/shared-styles.json. */

/* Source: interior-motion.css */
/* Internal-page motion is decorative. Content remains visible without JavaScript. */
.gn-page:not(.gn-home) .interior-motion-word { display: inline-block; transform-origin: center bottom; }

/* Existing architectural details gain a quiet, viewport-aware drift. */
.gn-page:not(.gn-home) .internal-hero::after,
.gn-page:not(.gn-home) .portfolio-hero::after,
.gn-page:not(.gn-home) .internal-dark::after,
.gn-page:not(.gn-home) .academy-paths-section::before,
.gn-page:not(.gn-home) .company-confidence::before,
.gn-page:not(.gn-home) .contact-main::before,
.gn-page:not(.gn-home) .portfolio-index::before {
  animation-play-state: paused;
}
.gn-page:not(.gn-home) .academy-paths-section::before,
.gn-page:not(.gn-home) .company-confidence::before,
.gn-page:not(.gn-home) .contact-main::before,
.gn-page:not(.gn-home) .portfolio-index::before {
  animation: gn-interior-dots 18s ease-in-out infinite;
  animation-play-state: paused;
}
.gn-page:not(.gn-home) .internal-hero::after {
  --gn-hero-field-low: .12;
  --gn-hero-field-high: .21;
  animation: gn-interior-hero-drift 20s ease-in-out infinite;
  animation-play-state: paused;
}
html[data-theme="dark"] .gn-page:not(.gn-home) .internal-hero::after {
  --gn-hero-field-low: .23;
  --gn-hero-field-high: .32;
}
.gn-page:not(.gn-home) :is(.portfolio-hero, .internal-dark)::after {
  animation: gn-interior-orbit 16s ease-in-out infinite;
  animation-play-state: paused;
}
.gn-page:not(.gn-home) :is(.internal-hero, .portfolio-hero, .internal-dark, .academy-paths-section, .company-confidence, .contact-main, .portfolio-index).is-ambient-active::before,
.gn-page:not(.gn-home) :is(.internal-hero, .portfolio-hero, .internal-dark, .academy-paths-section, .company-confidence, .contact-main, .portfolio-index).is-ambient-active::after {
  animation-play-state: running;
}

/* Add detail only to open surfaces that do not already have a visual composition. */
.gn-page:not(.gn-home) :is(
  .capabilities-section, .service-next-step,
  .company-overview, .company-model,
  .portfolio-case, .insights-catalog,
  .insight-article-related, .legal-content
),
.quote-page main > .gn-section {
  position: relative;
  isolation: isolate;
}
.gn-page:not(.gn-home) :is(
  .capabilities-section, .service-next-step,
  .company-overview, .company-model,
  .portfolio-case, .insights-catalog,
  .insight-article-related, .legal-content
)::before,
.quote-page main > .gn-section::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  width: min(39vw, 500px);
  height: clamp(210px, 24vw, 315px);
  pointer-events: none;
  opacity: .7;
  background:
    radial-gradient(circle at 1px 1px, var(--gn-ambient-dot) 1px, transparent 1.7px) 0 0 / 26px 26px,
    repeating-linear-gradient(90deg, transparent 0 87px, var(--gn-ambient-line) 87px 88px);
  -webkit-mask-image: radial-gradient(ellipse at top right, #000 0%, transparent 77%);
  mask-image: radial-gradient(ellipse at top right, #000 0%, transparent 77%);
  animation: gn-interior-dots 18s ease-in-out infinite;
  animation-play-state: paused;
}
.gn-page:not(.gn-home) :is(
  .company-model, .portfolio-case:nth-child(even), .insight-article-related
)::before,
.quote-page main > .gn-section::before {
  right: auto;
  left: 0;
  -webkit-mask-image: radial-gradient(ellipse at top left, #000 0%, transparent 77%);
  mask-image: radial-gradient(ellipse at top left, #000 0%, transparent 77%);
}
.gn-page:not(.gn-home) :is(
  .capabilities-section, .service-next-step,
  .company-overview, .company-model,
  .portfolio-case, .insights-catalog,
  .insight-article-related, .legal-content
).is-ambient-active::before,
.quote-page main > .gn-section.is-ambient-active::before { animation-play-state: running; }

@keyframes gn-interior-dots {
  0%, 100% { background-position: 0 0, 0 0; opacity: .56; }
  50% { background-position: 9px -7px, -9px 0; opacity: .84; }
}
@keyframes gn-interior-hero-drift {
  0%, 100% { background-position: 0 0; opacity: var(--gn-hero-field-low); }
  50% { background-position: 11px -8px; opacity: var(--gn-hero-field-high); }
}
@keyframes gn-interior-orbit {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.035); }
}

@media (max-width: 720px) {
  .gn-page:not(.gn-home) :is(.capabilities-section, .service-next-step, .company-overview, .company-model, .portfolio-case, .insights-catalog, .insight-article-related, .legal-content)::before,
  .quote-page main > .gn-section::before { width: min(64vw, 260px); height: 190px; }
}
@media (prefers-reduced-motion: reduce) {
  .gn-page:not(.gn-home) .interior-motion-word { display: inline; }
  .gn-page:not(.gn-home) main :is(.internal-hero, .portfolio-hero, .internal-dark, .academy-paths-section, .company-confidence, .contact-main, .portfolio-index, .capabilities-section, .service-next-step, .company-overview, .company-model, .portfolio-case, .insights-catalog, .insight-article-related, .legal-content)::before,
  .gn-page:not(.gn-home) main :is(.internal-hero, .portfolio-hero, .internal-dark, .academy-paths-section, .company-confidence, .contact-main, .portfolio-index)::after,
  .quote-page main > .gn-section::before { animation: none !important; }
}

/* Source: section-dividers.css */
/* Decorative section boundaries: zero layout height, no pointer or screen-reader impact. */
.gn-page main > .gn-section-divider {
  position: relative;
  z-index: 3;
  height: 0;
  pointer-events: none;
}

.gn-section-divider__line {
  position: absolute;
  top: -2px;
  right: 0;
  left: 0;
  height: 4px;
  overflow: hidden;
}

.gn-section-divider__line::before,
.gn-section-divider__line::after {
  content: "";
  position: absolute;
  display: block;
}

.gn-section-divider__line::before {
  inset: 1px 0 auto;
  height: 1px;
  background: linear-gradient(90deg, #091a32, #2272e8 46%, #0b2140);
  opacity: .62;
}

.gn-section-divider__line::after {
  top: 0;
  left: 0;
  width: clamp(110px, 19vw, 260px);
  height: 4px;
  background: linear-gradient(90deg, transparent, rgba(34,114,232,.3) 26%, #8bddff 51%, rgba(34,114,232,.3) 76%, transparent);
  transform: translate3d(-100%, 0, 0);
  animation: gn-divider-slide 8s linear infinite;
  animation-delay: var(--gn-divider-phase, 0s);
}

html[data-theme="dark"] .gn-section-divider__line::before {
  background: linear-gradient(90deg, #020a17, #2f86e8 48%, #020a17);
  opacity: .85;
}

html[data-theme="dark"] .gn-section-divider__line::after {
  background: linear-gradient(90deg, transparent, rgba(60,143,239,.35) 25%, #c5efff 50%, rgba(60,143,239,.35) 75%, transparent);
}

@keyframes gn-divider-slide {
  to { transform: translate3d(calc(100vw + 100%), 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .gn-section-divider__line::after { animation: none; opacity: 0; }
}
