/* Decatron motion layer. Content, typography and layout stay in the original files. */
:root {
  --dt-rgb: 80, 210, 255;
  --dt-secondary-rgb: 240, 178, 27;
  --dt-ease: cubic-bezier(.16, 1, .3, 1);
}
.decawatt-shell {
  --dt-rgb: 240, 178, 27;
  --dt-secondary-rgb: 152, 222, 77;
}
.dt-motion-enabled { scroll-behavior: smooth; scroll-padding-top: 110px; }
.dt-motion-enabled .site-header {
  position: fixed;
  transition: background .35s ease, border-color .35s ease, box-shadow .35s ease;

}
.dt-motion-enabled.dt-scrolled .site-header {
  background: rgba(5, 7, 10, .88);
  border-bottom-color: rgba(80, 210, 255, .22);
  box-shadow: 0 12px 40px rgba(0, 0, 0, .22);
}
.dt-motion-enabled .reveal-up { animation: none; opacity: 1; transform: none; }
.dt-intro-running .dt-section > .container { opacity: 0 !important; visibility: hidden; }
.dt-intro-running .site-header { z-index: 100; background: transparent; border-color: transparent; box-shadow: none; }
.dt-intro-running .site-header .desktop-nav,
.dt-intro-running .site-header .mobile-nav-trigger,
.dt-intro-running .site-header .brand-lockup small,
.dt-intro-running .site-header .brand-lockup > span,
.dt-intro-running .site-header .brand-lockup > img:not(:first-child) { visibility: hidden; }
.dt-intro-running .site-header { animation: none; }
.dt-intro {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  background: #05070a;
  pointer-events: none;
  animation: dt-intro-exit 3.4s ease both;
}
.dt-intro::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 42% 45%, rgba(var(--dt-intro-first), .16), transparent 46%), radial-gradient(ellipse at 62% 40%, rgba(var(--dt-intro-middle), .14), transparent 45%), radial-gradient(ellipse at 50% 62%, rgba(var(--dt-intro-last), .08), transparent 40%);
  animation: dt-intro-atmosphere 3.4s ease both;
}
.dt-intro-stage { position: relative; width: min(420px, 86vw); aspect-ratio: 1; }
.dt-intro-canvas { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; pointer-events: none; }
.dt-intro-geometry { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; overflow: visible; }
.dt-intro-orbit, .dt-intro-frame {
  fill: none;
  stroke: rgba(var(--dt-intro-line), .7);
  stroke-width: 1.15;
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  transform-origin: center;
  animation: dt-intro-trace 2.1s var(--dt-ease) .45s both;
}
.dt-intro-orbit--outer { stroke: rgb(var(--dt-intro-middle)); stroke-opacity: .65; animation-delay: .65s; }
.dt-intro-frame { stroke: #9ddff6; stroke-opacity: .35; animation-delay: .9s; }
.dt-intro-particle {
  fill: rgb(var(--dt-rgb));
  filter: drop-shadow(0 0 3px rgba(var(--dt-rgb), .65));
  animation: dt-intro-converge 2.2s var(--dt-ease) both;
}

.dt-intro-wave {
  position: absolute;
  inset: 25%;
  z-index: 1;
  border: 1px solid rgba(var(--dt-rgb), .55);
  border-radius: 50%;
  box-shadow: 0 0 24px rgba(var(--dt-rgb), .08);
  animation: dt-intro-wave 1.8s ease-out 1.45s both;
}
.dt-motion-enabled .dt-section { position: relative; isolation: isolate; }
.dt-motion-enabled .dt-section > .container { position: relative; z-index: 2; }
.dt-scroll-bloom {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
  border-radius: inherit;
  opacity: calc(.12 + var(--dt-scroll-light, 0) * .74);
  background:
    radial-gradient(ellipse 58% 32% at 108% 56%, rgba(var(--dt-rgb), .48), rgba(var(--dt-rgb), .12) 46%, transparent 82%),
    radial-gradient(ellipse 35% 18% at 97% 40%, rgba(var(--dt-secondary-rgb), .25), transparent 75%),
    radial-gradient(ellipse 43% 24% at 114% 80%, rgba(var(--dt-rgb), .20), transparent 78%);
  background-size: 100vw 100vh;
  background-position: left var(--dt-light-offset, 0px);
  background-repeat: no-repeat;
  animation: dt-light-breathe 4.8s ease-in-out infinite;
}
.dt-paused .dt-scroll-bloom { animation-play-state: paused; }
@keyframes dt-light-breathe { 0%, 100% { filter: brightness(.75); } 50% { filter: brightness(1.55); } }
.dt-particle-field {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0;
  animation: dt-field-arrive 1.9s var(--dt-ease) .08s both;
  -webkit-mask-image: linear-gradient(transparent, #000 12%, #000 72%, transparent);
  mask-image: linear-gradient(transparent, #000 12%, #000 72%, transparent);
}
.dt-section-aura {
  position: absolute;
  z-index: -1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.dt-section-aura::before {
  content: "";
  position: absolute;
  inset: -15% -8%;
  opacity: .55;
  background: radial-gradient(ellipse at 18% 34%, rgba(var(--dt-rgb), .08), transparent 48%),
    radial-gradient(ellipse at 84% 64%, rgba(var(--dt-secondary-rgb), .055), transparent 46%);
  transform: translate3d(-2%, 0, 0);
  animation: dt-aura-drift 22s ease-in-out infinite alternate;
  animation-play-state: paused;
}
.dt-section.dt-section-visible > .dt-section-aura::before { animation-play-state: running; }
.dt-section:nth-of-type(even) > .dt-section-aura::before { animation-direction: alternate-reverse; }
.dt-surface {
  position: relative;
  isolation: isolate;
  --dt-local-rgb: var(--dt-rgb);
  --dt-pointer-x: 50%;
  --dt-pointer-y: 35%;
  --dt-rotate-x: 0deg;
  --dt-rotate-y: 0deg;
}
.path-card--gold { --dt-local-rgb: 240, 178, 27; }
.dt-surface-light {
  position: absolute;
  inset: -1px;
  z-index: 4;
  border: 1px solid rgba(var(--dt-local-rgb), .55);
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  background: radial-gradient(240px circle at var(--dt-pointer-x) var(--dt-pointer-y),
    rgba(var(--dt-local-rgb), .10), transparent 75%);
  box-shadow: 0 0 24px rgba(var(--dt-local-rgb), .13), inset 0 0 20px rgba(var(--dt-local-rgb), .035);
  transition: opacity .32s ease;
}
.dt-surface:focus-within > .dt-surface-light { opacity: 1; }
@media (hover: hover) and (pointer: fine) {
  .dt-surface:hover > .dt-surface-light { opacity: 1; }
  .dt-surface.dt-tilt {
    transition: transform .32s var(--dt-ease), border-color .3s, box-shadow .3s;
    transform-style: preserve-3d;
  }
  .dt-surface.dt-tilt.dt-pointer-over {
    transform: perspective(1100px) rotateX(var(--dt-rotate-x)) rotateY(var(--dt-rotate-y)) translateY(-4px);
  }
  .dt-motion-enabled .button,
  .dt-motion-enabled .contact-submit {
    transition: transform .3s var(--dt-ease), border-color .3s, box-shadow .3s, background .3s;
  }
  .dt-motion-enabled .button:hover,
  .dt-motion-enabled .contact-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 26px rgba(var(--dt-rgb), .18);
  }
  .dt-motion-enabled .venture-hero__visual {
    translate: var(--dt-visual-x, 0px) var(--dt-visual-y, 0px);
    transition: translate .5s var(--dt-ease);
  }
}
.dt-motion-enabled .desktop-nav a { transition: color .25s, text-shadow .25s; }
.dt-motion-enabled .desktop-nav a.dt-active-section {
  color: rgb(var(--dt-rgb));
  text-shadow: 0 0 16px rgba(var(--dt-rgb), .28);
}
.dt-motion-enabled .contact-form :is(input, textarea):focus {
  box-shadow: 0 0 0 3px rgba(var(--dt-rgb), .10), 0 0 20px rgba(var(--dt-rgb), .08);
}
.dt-cursor-ring, .dt-cursor-dot {
  position: fixed;
  z-index: 100;
  left: 0;
  top: 0;
  pointer-events: none;
  border-radius: 50%;
  opacity: 0;
  transition: opacity .2s ease, width .25s ease, height .25s ease, border-color .25s ease;
}
.dt-cursor-ring {
  width: 32px;
  height: 32px;
  border: 1px solid rgba(80, 210, 255, .4);
  box-shadow: 0 0 16px rgba(80, 210, 255, .07);
}
.dt-cursor-dot { width: 4px; height: 4px; background: #b9edff; box-shadow: 0 0 9px #50d2ff; }
.dt-cursor-live { opacity: 1; }
.dt-cursor-ring.dt-cursor-interactive {
  width: 52px;
  height: 52px;
  border-color: rgba(80, 210, 255, .65);
  background: rgba(80, 210, 255, .025);
}
.dt-chart-bar { transform-box: fill-box; }
.dt-chart-bar--horizontal { transform-origin: left center; }
.dt-chart-bar--vertical { transform-origin: center bottom; }
/* Dedicated tags keep counters out of the site's span-based label/diagram rules.
   All typography inherits unchanged from the original number's parent. */
dt-number.dt-number { position: relative; display: inline-block; white-space: nowrap; }
.dt-number-live { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.dt-number-counting > .dt-number-final { opacity: 0; }
.dt-number-counting > .dt-number-live { opacity: 1; }
@media print {
  .dt-number-final { opacity: 1 !important; }
  .dt-number-live { display: none !important; }
}
.dt-motion-enabled .dt-section-visible .foundation-icon svg,
.dt-motion-enabled .dt-section-visible .gemm-core > svg {
  animation: dt-icon-breathe 5s ease-in-out infinite;
}
.dt-motion-enabled.dt-paused *,
.dt-motion-enabled.dt-paused *::before,
.dt-motion-enabled.dt-paused *::after { animation-play-state: paused !important; }
@keyframes dt-field-arrive { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: scale(1); } }
@keyframes dt-header-arrive { from { opacity: 0; transform: translateY(-14px); } to { opacity: 1; transform: none; } }
@keyframes dt-intro-exit { 0%, 70% { opacity: 1; } 86% { opacity: .5; } to { opacity: 0; } }
@keyframes dt-intro-atmosphere { from { opacity: 0; transform: scale(.85); } 65% { opacity: 1; } to { opacity: .6; transform: scale(1.12); } }
@keyframes dt-intro-trace { from { stroke-dashoffset: 1000; transform: rotate(-24deg) scale(.9); opacity: 0; } 30% { opacity: 1; } to { stroke-dashoffset: 0; transform: rotate(0) scale(1); opacity: .6; } }
@keyframes dt-intro-converge { from { opacity: 0; transform: translate(0, 0); } 20% { opacity: .85; } to { opacity: .1; transform: translate(var(--dt-dot-x), var(--dt-dot-y)); } }
@keyframes dt-intro-logo { from { opacity: 0; filter: blur(6px); transform: translateY(12px); } to { opacity: 1; filter: blur(0); transform: none; } }
@keyframes dt-intro-wave { from { opacity: 0; transform: scale(.7); } 18% { opacity: .55; } to { opacity: 0; transform: scale(2.4); } }
@keyframes dt-aura-drift { to { transform: translate3d(3%, -2%, 0); opacity: .9; } }
@keyframes dt-icon-breathe { 0%, 100% { filter: drop-shadow(0 0 0 rgba(var(--dt-rgb), 0)); } 50% { filter: drop-shadow(0 0 7px rgba(var(--dt-rgb), .55)); } }
@media (max-width: 980px) {
  .dt-motion-enabled { scroll-padding-top: 94px; }
}
@media (hover: none), (pointer: coarse) { .dt-cursor-ring, .dt-cursor-dot { display: none; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .dt-intro, .dt-scroll-bloom, .dt-particle-field, .dt-section-aura, .dt-cursor-ring, .dt-cursor-dot { display: none !important; }
  .dt-intro-running .site-shell, .dt-intro-running .dt-section > .container { visibility: visible !important; opacity: 1 !important; }
  .site-shell *, .site-shell *::before, .site-shell *::after { animation: none !important; transition: none !important; }
  .site-shell .reveal-up, .dt-reveal { opacity: 1 !important; transform: none !important; filter: none !important; }
}
@media print {
  .dt-intro, .dt-scroll-bloom, .dt-particle-field, .dt-section-aura, .dt-surface-light, .dt-cursor-ring, .dt-cursor-dot { display: none !important; }
  .dt-intro-running .site-shell, .dt-intro-running .dt-section > .container { visibility: visible !important; opacity: 1 !important; }
  .dt-motion-enabled .site-header { position: absolute; }
  .dt-reveal { opacity: 1 !important; transform: none !important; filter: none !important; }
}

/* Product references on the shared homepage are explicit navigation links. */
.product-reference-link {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(80, 210, 255, .32);
  text-underline-offset: 4px;
  transition: color .2s ease, text-decoration-color .2s ease;
}
.product-reference-link:hover, .product-reference-link:focus-visible {
  color: var(--blue);
  text-decoration-color: currentColor;
}
.product-reference-link--decagemm:hover, .product-reference-link--decagemm:focus-visible { color: var(--gold); }
.home-lead > span:first-child { white-space: normal; }
.brand-lockup--home > a { display: flex; align-items: center; }

/* Bring the DecaGEMM opening closer to the fixed header. */
.decawatt-hero { padding-top: 112px; }
@media (max-width: 980px) { .decawatt-hero { padding-top: 100px; } }
@media (max-width: 640px) { .decawatt-hero { padding-top: 94px; } }

/* Compact GERVIS opening and an explicit route back to the shared homepage. */
.decatron-hero { padding-top: 112px; }
@media (max-width: 980px) { .decatron-hero { padding-top: 100px; } }
@media (max-width: 640px) { .decatron-hero { padding-top: 94px; } }
