.eco-figure{margin:0}.eco-frame{aspect-ratio:470/560;width:100%;max-width:34rem;margin-inline:auto}.eco-svg{touch-action:manipulation;width:100%;height:auto;display:block;overflow:visible}.eco-part{transform-box:fill-box}.eco-svg[data-layer=static] .eco-part{transform:translate(var(--ax), var(--ay))}.eco-link{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;outline:none;text-decoration:none}.eco-hit{fill:#0000;stroke:#0000;stroke-width:4px}.eco-link:focus-visible .eco-hit{stroke:var(--color-focus)}.eco-link:hover .eco-plate-top{fill:var(--color-border)}.eco-plate-top{fill:var(--color-bg-elevated);stroke:var(--eco-tone);stroke-width:2px;stroke-linejoin:round}.eco-plate-side{fill:var(--eco-tone);fill-opacity:.32;stroke:var(--eco-tone);stroke-width:2px;stroke-linejoin:round}.eco-plate-top[data-dashed],.eco-plate-side[data-dashed]{stroke-dasharray:7 5}.eco-plate-side[data-dashed]{fill-opacity:.12}.eco-glyph{color:var(--eco-ink);fill:none;stroke:var(--eco-ink);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.eco-glyph *{vector-effect:non-scaling-stroke}.eco-glyph .eco-glyph-fill{fill:var(--eco-ink);stroke:none}.eco-leader{stroke:var(--eco-tone);stroke-width:1.5px}.eco-title{fill:var(--color-fg);font-family:var(--font-display);letter-spacing:-.01em;font-weight:600}.eco-desc{fill:var(--color-fg-muted);opacity:0}.eco-edges{opacity:0}.eco-edges path{fill:none;stroke:var(--color-border-strong);stroke-width:1.75px;stroke-linecap:round}.eco-edges path[data-dashed]{stroke:var(--color-eco-optional);stroke-dasharray:6 5}.eco-arrowhead{fill:var(--color-border-strong)}.eco-svg[data-view=exploded] .eco-desc,.eco-svg[data-view=exploded] .eco-edges{opacity:1}.eco-svg[data-layer=interactive] .eco-desc,.eco-svg[data-layer=interactive] .eco-edges{transition:opacity var(--motion-duration-base) var(--motion-ease-standard)}@media (prefers-reduced-motion:no-preference){.eco-svg[data-layer=static] .eco-part{transition:transform var(--motion-duration-slow) var(--motion-ease-emphasized) calc(var(--i) * 60ms)}.eco-svg[data-layer=static] .eco-desc,.eco-svg[data-layer=static] .eco-edges{transition:opacity var(--motion-duration-base) var(--motion-ease-standard) .18s}.eco-svg[data-layer=static]:focus-within .eco-part{transform:translate(var(--ex), var(--ey))}.eco-svg[data-layer=static]:focus-within .eco-desc,.eco-svg[data-layer=static]:focus-within .eco-edges{opacity:1}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.eco-svg[data-layer=static]:hover .eco-part{transform:translate(var(--ex), var(--ey))}.eco-svg[data-layer=static]:hover .eco-desc,.eco-svg[data-layer=static]:hover .eco-edges{opacity:1}}@media (prefers-reduced-motion:reduce){.eco-svg[data-layer=static] .eco-part{transform:translate(var(--ex), var(--ey))!important;transition:none!important}.eco-svg .eco-desc,.eco-svg .eco-edges{opacity:1!important;transition:none!important}}@media (forced-colors:active){.eco-plate-top,.eco-plate-side,.eco-leader,.eco-edges path{stroke:canvastext}.eco-plate-top{fill:canvas}.eco-plate-side{fill:canvas;fill-opacity:1}.eco-glyph{stroke:canvastext}.eco-glyph .eco-glyph-fill,.eco-title,.eco-desc,.eco-arrowhead{fill:canvastext}.eco-link:focus-visible .eco-hit{stroke:highlight;stroke-width:4px}}
