/* SVG system studies: decorative, responsive and governed by the page's
   shared motion controls. No animation runs before motion is enabled. */
.venture-system.vg-enhanced {
  isolation: isolate;
  overflow: hidden;
  padding: 23px 24px 24px;
  min-height: 350px;
  background: #222b20;
  border-color: #4b5840;
  box-shadow: inset 0 1px 0 #e5f5cf0d, 0 20px 45px #00000015;
}
.venture-system.vg-enhanced::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: linear-gradient(120deg, #ffffff04, transparent 40%, #0000000b);
}
.vg-enhanced .system-top { position: relative; z-index: 1; font-size: 8px; }
.vg-enhanced .system-brand { position: relative; z-index: 1; font-size: 45px; }
.vg-enhanced .system-brand > span { font-size: 11px; padding-bottom: 5px; }
.vg-enhanced .vg-canvas { width: calc(100% + 18px); margin: 7px -9px 13px; }
.vg-enhanced .vg-svg { display: block; width: 100%; height: auto; overflow: visible; }
.vg-enhanced svg * { animation-play-state: paused !important; }
.vg-grid { stroke: #a2b186; stroke-width: .7; opacity: .12; }
.vg-track { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.vg-track-layby { stroke: #91a36c; stroke-width: 1; opacity: .44; }
.vg-stream { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.vg-stream-layby {
  stroke: #ddf991;
  stroke-width: 2.6;
  stroke-dasharray: 1 99;
  stroke-dashoffset: 0;
  animation: vg-travel 10s linear infinite;
  filter: drop-shadow(0 0 3px #c9ea8777);
}
.vg-stream-layby.vg-stream-secondary {
  stroke-width: 1.25;
  opacity: .65;
  stroke-dasharray: .5 99.5;
  animation-delay: -5s;
}
.vg-icon { fill: none; stroke: #e4ebd8; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.vg-icon-accent { fill: none; stroke: #d8f570; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.vg-status { fill: #d8f570; animation: vg-status-breathe 8s ease-in-out infinite; }
.vg-node { animation: vg-node-drift 10s ease-in-out infinite; }
.vg-node-two { animation-delay: -3.3s; }
.vg-node-three { animation-delay: -6.6s; }
.vg-customer-orbit { fill: none; stroke: #d8f570; stroke-width: .6; opacity: .25; stroke-dasharray: 2 9; }
.vg-labels { fill: #ecf1e4; text-anchor: middle; font-family: var(--sans, Arial, sans-serif); font-size: 13px; font-weight: 500; letter-spacing: -.15px; }
.vg-label-marks { fill: none; stroke: #a8b895; stroke-width: .6; opacity: .55; }

.venture-system.vg-flux { background: #d8e3b9; color: #1d301e; border-color: #a9b98c; }
.vg-flux .system-top { color: #425635; }
.vg-flux-grid { stroke: #6c8153; stroke-width: .7; opacity: .2; }
.vg-orbit-dashes { fill: none; stroke: #57713b; stroke-width: 3; stroke-dasharray: .5 14; stroke-linecap: round; opacity: .43; transform-origin: 200px 118px; animation: vg-orbit 14s linear infinite; }
.vg-track-flux { stroke: #57713b; stroke-width: .9; opacity: .35; }
.vg-stream-flux { stroke: #38512b; stroke-width: 4; stroke-dasharray: .8 99.2; animation: vg-travel 12s linear infinite; }
.vg-stream-flux.vg-stream-secondary { stroke: #f7ffe7; stroke-width: 2.4; opacity: .85; animation-delay: -6s; }
.vg-flux-spokes { stroke: #637d45; stroke-width: 1.2; stroke-dasharray: 2 5; opacity: .6; }
.vg-flux-core-line { fill: none; stroke: #9caf7b; stroke-width: .65; opacity: .6; }
.vg-flux-inner { fill: none; stroke: #d8f570; stroke-width: 1; opacity: .6; }
.vg-flux-glyph { fill: none; stroke: #e3f0c5; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.vg-core-pulse { fill: none; stroke: #d8f570; stroke-width: 1; opacity: .15; transform-origin: 200px 118px; animation: vg-core-breathe 10s ease-in-out infinite; }
.vg-flux-node circle { fill: #e9f0d3; stroke: #6e8552; stroke-width: 1; }
.vg-flux-node path { fill: none; stroke: #30482b; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.vg-flux-labels { fill: #2e4329; font-size: 13px; }
.vg-label-leader { fill: none; stroke: #6f8555; stroke-width: .8; }
.vg-flux-registration { stroke: #7c9164; stroke-width: .8; opacity: .55; }

.venture-system.vg-till { background: #cbb99d; color: #383a2e; border-color: #b5a17e; }
.vg-till .system-top { color: #555444; }
.vg-ledger-grid { stroke: #87704f; stroke-width: .7; opacity: .2; }
.vg-track-till { stroke: #796647; stroke-width: 1; opacity: .45; }
.vg-stream-till { stroke: #35492e; stroke-width: 2.4; stroke-dasharray: 1 99; animation: vg-travel 11s linear infinite; }
.vg-sheet { animation: vg-sheet-drift 12s ease-in-out infinite; }
.vg-sheet-back { animation-delay: -8s; }
.vg-sheet-middle { animation-delay: -4s; }
.vg-sheet-lines { fill: none; stroke: #8d7b5f; stroke-width: .7; stroke-linecap: round; opacity: .55; }
.vg-sheet-lines-back { stroke: #e0d1b5; opacity: .4; }
.vg-sheet-heading { fill: none; stroke: #5a6347; stroke-width: 2.5; stroke-linecap: round; }
.vg-entry-lines { fill: none; stroke: #586546; stroke-width: 1.2; stroke-linecap: round; opacity: .7; }
.vg-ledger-scan { fill: none; stroke: #5b7040; stroke-width: 1.2; stroke-linecap: round; stroke-dasharray: 8 92; opacity: .65; animation: vg-travel 13s linear infinite; }
.vg-terminal circle { fill: #e9ddc8; stroke: #7c7057; stroke-width: .9; }
.vg-terminal path { fill: none; stroke: #435537; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.vg-till-labels { fill: #4c4b3b; font-size: 13px; }

html.motion[data-motion='active'][data-motion-running='true'] .vg-enhanced svg * { animation-play-state: running !important; }
html[data-motion='paused'] .vg-enhanced svg *,
html[data-motion-running='false'] .vg-enhanced svg *,
html.motion[data-motion='active'][data-motion-running='true'] .motion-scene[data-motion-visible='false'] .vg-enhanced svg * { animation-play-state: paused !important; }

@keyframes vg-travel { to { stroke-dashoffset: -100; } }
@keyframes vg-node-drift { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes vg-status-breathe { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@keyframes vg-orbit { to { transform: rotate(360deg); } }
@keyframes vg-core-breathe { 0%, 100% { transform: scale(.96); opacity: .12; } 50% { transform: scale(1.06); opacity: .32; } }
@keyframes vg-sheet-drift { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }

@media (max-width: 1100px) {
  .venture-system.vg-enhanced { padding: 21px 19px 22px; min-height: 310px; }
  .vg-enhanced .system-top { font-size: 7px; }
  .vg-enhanced .system-brand { font-size: 40px; }
  .vg-enhanced .vg-canvas { margin-top: 9px; margin-bottom: 16px; }
}
@media (max-width: 760px) {
  .venture-system.vg-enhanced { padding: 22px 22px 24px; min-height: 310px; }
  .vg-enhanced .system-top { font-size: 7px; }
  .vg-enhanced .system-brand { font-size: 41px; }
  .vg-enhanced .system-brand > span { font-size: 10px; }
  .vg-enhanced .vg-canvas { width: calc(100% + 16px); margin-inline: -8px; margin-block: 12px 17px; }
}
@media (max-width: 390px) {
  .venture-system.vg-enhanced { padding: 20px 15px; min-height: 285px; }
  .vg-enhanced .system-top { font-size: 6px; }
  .vg-enhanced .vg-canvas { width: calc(100% + 20px); margin-inline: -10px; }
  .vg-labels, .vg-flux-labels, .vg-till-labels { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  html:not([data-motion='active']) .vg-enhanced svg * { animation: none !important; transition: none !important; }
  html:not([data-motion='active']) .vg-stream { stroke-dashoffset: -35; }
  html:not([data-motion='active']) .vg-stream-secondary { stroke-dashoffset: -72; }
  html:not([data-motion='active']) .vg-ledger-scan { stroke-dashoffset: -22; }
}
@media print { .venture-system.vg-enhanced { display: none !important; } }
