/* Movement belongs to conceptual illustrations, not to page entry or body text. */
main .reveal, main .vital-visual { opacity:1; }
.btn:hover, .release-card:hover, .module-app:hover, .bento-card:hover, .product-updates-grid article:hover { transform:none; }
.diagram-canvas { position:relative; isolation:isolate; --diagram-play:paused; --diagram-ink:#397b7066; --diagram-signal:#b95835; }
.diagram-canvas[data-diagram-playing="true"] { --diagram-play:running; }
.diagram-control-host { position:relative; }
.vision-board.diagram-control-host, .feature-console.diagram-control-host { padding-bottom:70px; }
.diagram-trails { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; pointer-events:none; z-index:0; }
.diagram-route, .diagram-signal, .diagram-orbit { fill:none; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.diagram-route { stroke:var(--diagram-ink); stroke-width:1.3; }
.diagram-signal { stroke:var(--diagram-signal); stroke-width:4.2; stroke-dasharray:4 46; stroke-dashoffset:0; }
.diagram-orbit { stroke:var(--diagram-ink); stroke-width:1.2; stroke-dasharray:1 2; }
.trust-visual { --diagram-ink:#bdded088; --diagram-signal:#f2bd8e; }
.trust-visual .trust-lock, .trust-visual > span { position:relative; z-index:3; }
.trust-visual > span { position:absolute; }
.trust-visual .trust-ring { z-index:1; border-color:#a0c7b94d; }
.trust-visual .ring-a { width:min(66%,220px); height:auto; aspect-ratio:1; }
.trust-visual .ring-b { width:min(90%,300px); height:auto; aspect-ratio:1; }
.trust-ring::after { content:""; position:absolute; left:50%; top:-4px; width:8px; height:8px; border-radius:50%; background:#f2bd8e; box-shadow:0 0 0 5px #f2bd8e12; }
.trust-ring::before { content:""; position:absolute; left:50%; bottom:-4px; width:7px; height:7px; border-radius:50%; background:#c0e4d6; box-shadow:0 0 0 4px #c0e4d612; }
.trust-ring.ring-b::after { width:5px; height:5px; top:-3px; background:#c0e4d6; }
.diagram-canvas :is(.core-center,.core-node,.security-sat,.shield-shell,.contact-center,.story-core,.chaos-card,.radar-core,.solution-mark,.solution-nodes) { z-index:2; }
.diagram-canvas :is(.contact-center,.solution-mark) { position:relative; }
.diagram-canvas :is(.trust-lock,.core-center,.contact-center,.radar-core,.solution-mark,.story-core)::after { content:""; position:absolute; inset:-8px; border:2px solid var(--diagram-signal); border-radius:inherit; pointer-events:none; opacity:.35; }
.diagram-canvas :is(.core-node,.security-sat,.contact-center,.radar-core,.solution-mark) { background:#e3eee5; }
.diagram-canvas .security-sat, .diagram-canvas.contact-orbit > span, .diagram-canvas.future-radar > span { color:#345b50; background:#fffdf7; font-size:13px; z-index:3; }
.diagram-canvas.solution-visual > :is(span,small) { z-index:2; }
.diagram-canvas.future-radar > span { border-color:#c5d8c9; }
.diagram-canvas.module-stack > .stack-card { overflow:hidden; }
.diagram-canvas.module-stack > .stack-card::after { content:""; position:absolute; left:18px; bottom:10px; height:2px; width:calc(100% - 36px); background:linear-gradient(90deg,transparent,#bf6b42,transparent); transform:scaleX(.15); transform-origin:left; opacity:.4; }
.diagram-canvas.vision-board > div, .diagram-canvas .console-steps > div { position:relative; z-index:1; }
.diagram-canvas.vision-board > div::after, .diagram-canvas .console-steps > div::after { content:""; position:absolute; left:0; top:16%; bottom:16%; width:3px; border-radius:5px; background:#bb6840; opacity:.15; }
.diagram-canvas .data-pulse { display:none; }
.diagram-canvas .story-arrow { opacity:.5; }
.diagram-canvas.flow-track > div, .solution-flow ol.diagram-canvas > li { position:relative; z-index:1; }
.diagram-canvas .solution-nodes i { box-shadow:none; }
.diagram-canvas.demo-pulse > i { width:min(72%,290px); height:auto; aspect-ratio:1; border-color:#6a9a844a; z-index:1; }
.diagram-canvas.demo-pulse > i:nth-of-type(2) { width:min(87%,350px); }
.diagram-canvas.demo-pulse > i:nth-of-type(3) { width:min(96%,394px); }
.diagram-canvas.demo-pulse .demo-pulse-core { z-index:2; }
.diagram-canvas.flow-track { min-width:0; }
.diagram-canvas .chart-bars i, .diagram-canvas.chart-bars i, .diagram-canvas.demo-line i { transform-origin:center bottom; }
.diagram-toggle { position:absolute; right:14px; bottom:12px; z-index:5; display:inline-flex; align-items:center; gap:7px; min-height:36px; padding:6px 10px; border:1px solid #bfd1c5; border-radius:999px; background:#fffcf3; color:#245b5a; font-family:inherit; font-weight:600; font-size:11px; line-height:1.3; cursor:pointer; box-shadow:none; }
.diagram-toggle::before { content:"Ⅱ"; font:700 13px/1 sans-serif; }
.diagram-toggle[aria-pressed="true"]::before { content:"▷"; }
.diagram-toggle:focus-visible { outline:3px solid #cf6d42; outline-offset:3px; }
.diagram-toggle:disabled { cursor:default; opacity:1; font-size:10px; }
.diagram-toggle:disabled::before { content:"—"; }
@media (prefers-reduced-motion:no-preference) {
  .diagram-canvas .diagram-signal { animation:diagramTravel 3.8s linear infinite; animation-delay:var(--diagram-delay,0s); animation-play-state:var(--diagram-play); }
  .diagram-canvas .diagram-orbit { animation:diagramRing 18s linear infinite; transform-origin:center; transform-box:fill-box; animation-play-state:var(--diagram-play); }
  .diagram-canvas .trust-ring { animation:diagramRing 12s linear infinite; animation-play-state:var(--diagram-play); }
  .diagram-canvas .trust-ring.ring-b { animation-direction:reverse; animation-duration:20s; }
  .diagram-canvas.contact-orbit::after { animation:diagramRing 20s linear infinite; animation-play-state:var(--diagram-play); }
  .diagram-canvas :is(.trust-lock,.core-center,.contact-center,.radar-core,.solution-mark,.story-core)::after { animation:diagramHalo 3.6s ease-out infinite; animation-play-state:var(--diagram-play); }
  .diagram-canvas.demo-pulse > i { animation:diagramBreathe 4.5s ease-in-out infinite; animation-play-state:var(--diagram-play); }
  .diagram-canvas.demo-pulse > i:nth-of-type(2) { animation-delay:-2s; }
  .diagram-canvas.demo-pulse > i:nth-of-type(3) { animation-delay:-4s; }
  .diagram-canvas.module-stack > .stack-card::after { animation:diagramLayer 5s ease-in-out infinite; animation-play-state:var(--diagram-play); }
  .diagram-canvas.module-stack > .stack-card:nth-of-type(2)::after { animation-delay:-2s; }
  .diagram-canvas.module-stack > .stack-card:nth-of-type(3)::after { animation-delay:-4s; }
  .diagram-canvas.module-stack > .stack-card:nth-of-type(4)::after { animation-delay:-6s; }
  .diagram-canvas.vision-board > div::after, .diagram-canvas .console-steps > div::after { animation:diagramStep 9s ease-in-out infinite; animation-play-state:var(--diagram-play); }
  .diagram-canvas.vision-board > div:nth-of-type(2)::after, .diagram-canvas .console-steps > div:nth-of-type(2n)::after { animation-delay:-3s; }
  .diagram-canvas.vision-board > div:nth-of-type(3)::after, .diagram-canvas .console-steps > div:nth-of-type(3n)::after { animation-delay:-6s; }
  .diagram-canvas.chart-bars > i, .diagram-canvas.demo-line > i { animation:diagramBars 4s ease-in-out 1 both; animation-play-state:var(--diagram-play); }
}
@keyframes diagramTravel { to { stroke-dashoffset:-100; } }
@keyframes diagramRing { to { transform:rotate(360deg); } }
@keyframes diagramHalo { 0% { transform:scale(.98); opacity:.5; } 85%,100% { transform:scale(1.28); opacity:0; } }
@keyframes diagramBreathe { 0%,100% { transform:scale(.94); opacity:.5; } 50% { transform:scale(1.04); opacity:1; } }
@keyframes diagramLayer { 0%,70%,100% { transform:scaleX(.15); opacity:.4; } 30%,45% { transform:scaleX(1); opacity:.9; } }
@keyframes diagramStep { 0%,65%,100% { opacity:.2; } 25%,40% { opacity:.9; } }
@keyframes diagramBars { 0% { transform:scaleY(.76); } 55% { transform:scaleY(.95); } 100% { transform:scaleY(1); } }
@media (prefers-reduced-motion:reduce) {
  .diagram-canvas, .diagram-canvas *, .diagram-canvas::before, .diagram-canvas::after, .diagram-canvas *::before, .diagram-canvas *::after { animation:none!important; transition:none!important; }
  .diagram-signal { stroke-dasharray:none; stroke-width:1.3; opacity:.45; }
}
