/* QubicAI motion layer. Content and layout remain editable in Elementor. */
.q-header {
  position: sticky;
  top: 0;
  transition: background-color .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.q-header.q-scrolled {
  background: rgba(8,10,18,.95);
  border-bottom-color: rgba(164,164,225,.22);
  box-shadow: 0 12px 34px rgba(0,0,0,.12);
}
.admin-bar .q-header { top: 32px; }
.q-scroll-progress {
  position: fixed;
  z-index: 10000;
  inset: 0 0 auto;
  height: 2px;
  background: linear-gradient(90deg,#92539d,#b0a7f5 56%,#00a0e9);
  transform: scaleX(var(--q-scroll,0));
  transform-origin: left center;
  pointer-events: none;
}
.admin-bar .q-scroll-progress { top: 32px; }
.q-nav-list a { position: relative; }
.q-nav-list a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -9px;
  height: 1px;
  background: linear-gradient(90deg,#a89ce9,#6cabd8);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
.q-nav-list a:hover::after,
.q-nav-list a:focus-visible::after,
.q-nav-list a[aria-current="location"]::after { transform: scaleX(1); }

/* The grid sits behind the brand visual; it never covers readable content. */
.q-hero::before {
  background:
    radial-gradient(ellipse at 82% 42%,rgba(67,43,127,.22),transparent 55%),
    radial-gradient(ellipse at 65% 77%,rgba(0,118,166,.08),transparent 41%),
    radial-gradient(circle,rgba(141,149,192,.15) .65px,transparent .85px);
  background-size: auto,auto,28px 28px;
  background-position: center,center,14px 14px;
}
.q-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg,rgba(8,10,18,.74),transparent 71%);
  pointer-events: none;
}
.q-quantum-stage {
  position: relative;
  width: 100%;
  min-width: 0;
  isolation: isolate;
}
.q-quantum-stage::before {
  content: "";
  position: absolute;
  inset: 17% 8%;
  border-radius: 50%;
  background: radial-gradient(ellipse,rgba(77,73,150,.11),transparent 70%);
  pointer-events: none;
  z-index: -1;
}
.q-quantum-stage .q-quantum-field { margin-left: 0; }
.q-quantum-field canvas,
.q-quantum-field::before,
.q-quantum-field::after { pointer-events: none; }
.q-quantum-stage .q-quantum-field::before { opacity: .27; }
.q-quantum-stage .q-quantum-field::after { content: none; }
.q-quantum-stage .q-quantum-fallback { inset: 0; border: 0; border-radius: 0; transform: none; opacity: 1; background: url("quantum-poster.png") center/contain no-repeat; }
.q-quantum-caption {
  position: absolute;
  z-index: 2;
  left: 22px;
  right: 22px;
  bottom: 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 11px;
  color: #818da9;
  font: 10px/1.6 Consolas,"SFMono-Regular",monospace;
  letter-spacing: .12em;
  pointer-events: none;
}
.q-quantum-caption::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #a4a0ef;
  box-shadow: 0 0 11px rgba(139,135,217,.35);
}
.q-quantum-caption strong { color: #bdc3da; font-weight: 400; }
.q-js-motion .q-reveal { transition-delay: calc(var(--q-stagger-index,0) * 85ms); }

/* Card lighting uses backgrounds only, so text and hit targets remain still. */
.q-focus-column,
.q-team-card { position: relative; isolation: isolate; }
.q-focus-column {
  border-top-color: rgba(174,173,224,.32);
  transition: border-color .3s ease;
}
.q-focus-column::before,
.q-team-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 -14px;
  border-radius: 2px;
  background: radial-gradient(230px circle at var(--q-pointer-x,50%) var(--q-pointer-y,30%),rgba(132,121,213,.10),transparent 72%);
  opacity: .34;
  pointer-events: none;
  transition: opacity .35s ease;
}
.q-focus-column::after {
  content: "";
  position: absolute;
  inset: -1px auto auto 0;
  width: 35%;
  height: 1px;
  background: linear-gradient(90deg,#a9a1ef,rgba(67,163,203,.72),transparent);
  opacity: .7;
  pointer-events: none;
  transition: width .4s ease, opacity .3s ease;
}
.q-focus-column:focus-within { border-top-color: rgba(186,177,241,.62); }
.q-focus-column:focus-within::before,
.q-team-card:focus-within::before { opacity: 1; }
.q-focus-column:focus-within::after { width: 70%; opacity: 1; }
.q-diagram {
  background:
    radial-gradient(ellipse at 50% 55%,rgba(91,76,161,.08),transparent 67%),
    radial-gradient(circle,rgba(120,141,185,.2) .55px,transparent .75px);
  background-size: auto,18px 18px;
  border-radius: 3px;
}
.q-diagram svg { stroke: #8d8ebd; transition: stroke .3s ease; }
.q-diagram .q-signal-path {
  fill: none;
  stroke: #b6b0f3;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-dasharray: 14 84;
  animation: q-signal-flow 7s linear infinite paused;
}
.q-diagram .q-signal-dot {
  fill: #c9c0ff;
  stroke: #e8e4ff;
  stroke-width: .6;
  opacity: .74;
  transform-box: fill-box;
  transform-origin: center;
  animation: q-node-pulse 5s ease-in-out infinite paused;
}
.q-diagram-circuit .q-signal-path { stroke: #82bdda; animation-duration: 6.5s; }
.q-diagram-circuit .q-signal-dot { animation-duration: 6s; }
.q-diagram-network .q-signal-path { stroke-dasharray: 7 110; animation-duration: 8.5s; }
.q-diagram-network .q-signal-dot:nth-of-type(2n) { animation-delay: -1.4s; }
.q-diagram-network .q-signal-dot:nth-of-type(3n) { animation-delay: -2.8s; }
.q-diagram-network .q-signal-dot:nth-of-type(4n) { fill: #8cc4df; animation-delay: -3.7s; }
.q-diagram-layers svg > path:nth-child(2) {
  stroke: #aba4e6;
  animation: q-layer-breathe 8s ease-in-out infinite paused;
}
.q-diagram-layers .q-signal-path { stroke: #91b8da; animation-duration: 9s; }
.q-focus-column.q-in-view .q-signal-path,
.q-focus-column.q-in-view .q-signal-dot,
.q-focus-column.q-in-view .q-diagram-layers svg > path:nth-child(2) { animation-play-state: running; }
@keyframes q-signal-flow { to { stroke-dashoffset: -196; } }
@keyframes q-node-pulse {
  0%,100% { opacity: .48; transform: scale(.85); }
  45% { opacity: 1; transform: scale(1.12); }
}
@keyframes q-layer-breathe {
  0%,100% { transform: translateY(0); opacity: .68; }
  50% { transform: translateY(-4px); opacity: 1; }
}

.q-vision { background: #0b0e1b; }
.q-vision::before {
  inset: -14px -2%;
  opacity: .21;
  background-position: 58% 56%;
  animation: q-topography-drift 28s ease-in-out infinite alternate paused;
  pointer-events: none;
}
.q-vision::after {
  background: linear-gradient(90deg,rgba(8,10,18,.94),rgba(8,10,18,.69) 42%,rgba(8,10,18,.14));
  pointer-events: none;
}
.q-vision.q-in-view::before { animation-play-state: running; }
.q-vision > .elementor-container { position: relative; z-index: 1; }
.q-vision .q-wave-canvas {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: .7;
  pointer-events: none;
}
.q-vision .q-brand-hashtag { color: #d6ccff; }
@keyframes q-topography-drift {
  from { transform: translate3d(-8px,5px,0) scale(1.015); }
  to { transform: translate3d(8px,-5px,0) scale(1.025); }
}
.q-primary-link .elementor-button,
.q-nav-contact { position: relative; overflow: hidden; isolation: isolate; }
.q-primary-link .elementor-button::after,
.q-nav-contact::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg,transparent 28%,rgba(180,180,255,.24) 48%,transparent 69%);
  transform: translateX(-110%);
  pointer-events: none;
  transition: transform .7s ease;
}
.q-primary-link .elementor-button:focus-visible::after,
.q-nav-contact:focus-visible::after { transform: translateX(110%); }
@media (hover:hover) and (pointer:fine) {
  .q-focus-column:hover { border-top-color: rgba(186,177,241,.62); }
  .q-focus-column:hover::before,
  .q-team-card:hover::before { opacity: 1; }
  .q-focus-column:hover::after { width: 70%; opacity: 1; }
  .q-focus-column:hover .q-diagram svg { stroke: #b5afdf; }
  .q-primary-link .elementor-button:hover::after,
  .q-nav-contact:hover::after { transform: translateX(110%); }
}
@media (max-width:782px) {
  .admin-bar .q-header { top: 46px; }
  .admin-bar .q-scroll-progress { top: 46px; }
}
@media (max-width:767px) {
  .q-hero::before { background-size: auto,auto,32px 32px; }
  .q-quantum-caption { left: 5px; right: 5px; bottom: 9px; font-size: 8px; letter-spacing: .08em; gap: 4px 7px; }
  .q-diagram { background-size: auto,20px 20px; }
  .q-focus-column::before,
  .q-team-card::before { inset-inline: -8px; }
  .q-vision::before { opacity: .17; background-position: 66% 65%; }
  .q-vision::after { background: linear-gradient(90deg,rgba(8,10,18,.88),rgba(8,10,18,.51)); }
  .q-vision .q-wave-canvas { opacity: .4; }
  .q-js-motion .q-reveal { transition-delay: calc(var(--q-stagger-index,0) * 45ms); }
}
@media (max-width:600px) {
  /* WordPress makes its mobile admin bar non-sticky at this breakpoint. */
  .admin-bar .q-header { top: 0; }
  .admin-bar .q-scroll-progress { top: 0; }
}
@media (max-width:374px) {
  .q-hero-heading .elementor-heading-title { font-size: 36px!important; }
  .q-hero-actions > .elementor-container { gap: 5px; }
  .q-hero-actions .elementor-button { padding: 11px 12px!important; font-size: 12px!important; }
  .q-quantum-caption { font-size: 7px; letter-spacing: .04em; right: 5px; }
  .q-diagram svg { width: min(215px,100%); }
  .q-nav-shell { gap: 12px; }
}

/* Pausing never hides content and covers every animated selector above. */
html.q-page-hidden .q-diagram .q-signal-path,
html.q-page-hidden .q-diagram .q-signal-dot,
html.q-page-hidden .q-diagram-layers svg > path:nth-child(2),
html.q-page-hidden .q-vision::before,
html.q-motion-paused .q-diagram .q-signal-path,
html.q-motion-paused .q-diagram .q-signal-dot,
html.q-motion-paused .q-diagram-layers svg > path:nth-child(2),
html.q-motion-paused .q-vision::before,
.elementor-editor-active .q-diagram .q-signal-path,
.elementor-editor-active .q-diagram .q-signal-dot,
.elementor-editor-active .q-diagram-layers svg > path:nth-child(2),
.elementor-editor-active .q-vision::before { animation-play-state: paused!important; }
html.q-motion-paused .q-reveal,
.elementor-editor-active .q-reveal { opacity: 1!important; transform: none!important; transition: none!important; }
html.q-motion-paused .q-focus-column::before,
html.q-motion-paused .q-team-card::before,
html.q-motion-paused .q-focus-column::after,
html.q-motion-paused .q-primary-link .elementor-button::after,
html.q-motion-paused .q-nav-contact::after { transition: none; }
@media (prefers-reduced-motion:reduce) {
  .q-diagram .q-signal-path,
  .q-diagram .q-signal-dot,
  .q-diagram-layers svg > path:nth-child(2),
  .q-vision::before { animation: none!important; }
  .q-reveal { opacity: 1!important; transform: none!important; transition: none!important; }
  .q-header,
  .q-nav-list a::after,
  .q-focus-column,
  .q-focus-column::before,
  .q-focus-column::after,
  .q-team-card::before,
  .q-diagram svg,
  .q-primary-link .elementor-button::after,
  .q-nav-contact::after { transition: none!important; }
  .q-primary-link .elementor-button::after,
  .q-nav-contact::after { transform: none; background: none; }
}
