.preview-flow{stroke-dasharray:7 19;animation:3s linear infinite preview-current}.preview-signal{offset-distance:0%;animation:4s linear infinite preview-travel}.preview-rotor{transform-box:view-box;animation:3s linear infinite preview-turn}.preview-status{animation:4s ease-in-out infinite preview-status}.preview-field{opacity:.2;transform-box:view-box;animation:3.5s ease-out infinite preview-field}@keyframes preview-current{to{stroke-dashoffset:-104px}}@keyframes preview-travel{to{offset-distance:100%}}@keyframes preview-turn{to{transform:rotate(360deg)}}@keyframes preview-status{0%,to{opacity:.35}50%{opacity:1}}@keyframes preview-field{0%{opacity:0;transform:scale(.85)}25%{opacity:.4}to{opacity:0;transform:scale(1.6)}}@media (prefers-reduced-motion:reduce),print{.project-preview *{animation:none!important}.preview-signal,.preview-field{opacity:0}.preview-status{opacity:1}}
.project-model{isolation:isolate;background:#fff;border:1px solid #e9e5e1;border-radius:4px;position:relative;overflow:hidden}.project-model-viewport{aspect-ratio:1.7;width:100%;position:relative}.project-model-viewport canvas,.project-model-poster{width:100%;height:100%;display:block;position:absolute;inset:0}.project-model-viewport canvas{opacity:0;transition:opacity .65s}.project-model-poster{place-items:center;padding:.4rem;transition:opacity .5s;display:grid}.project-model-poster .project-preview{max-height:100%}.project-model[data-ready=true] canvas{opacity:1}.project-model[data-ready=true] .project-model-poster{opacity:0}.project-model-labels{pointer-events:none;position:absolute;inset:0}.project-model[data-ready=false] .project-model-labels{visibility:hidden}.project-model-label{white-space:nowrap;color:#4b5551;font-family:var(--font-mono), monospace;letter-spacing:.06em;background:#ffffffde;border-radius:2px;padding:2px 4px;font-size:9px;font-weight:500;line-height:1.1;position:absolute;transform:translate(-50%,-50%)}.project-model-label-bus,.project-model-label-sag,.project-model-label-span,.project-model-label-circuit{color:#87583f;font-size:8px}@media (max-width:767px){.project-model-viewport{aspect-ratio:1.45}.project-model-label{padding:1px 3px;font-size:8px}}@media (prefers-reduced-motion:reduce){.project-model-viewport canvas,.project-model-poster{transition:none}}@media print{.project-model-viewport canvas{display:none}.project-model-labels{visibility:hidden}.project-model[data-ready=true] .project-model-poster{opacity:1}}
