.eng-model{isolation:isolate;position:relative;overflow:hidden}.eng-model:before{content:"";aspect-ratio:1;background:radial-gradient(circle, color-mix(in oklab, hsl(var(--accent)) 22%, transparent), transparent 65%);z-index:-1;pointer-events:none;width:55%;position:absolute;inset:-40% -10% auto auto}.eng-model:after{content:"";z-index:-1;pointer-events:none;opacity:.5;background-image:linear-gradient(color-mix(in oklab, hsl(var(--primary-foreground)) 6%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in oklab, hsl(var(--primary-foreground)) 6%, transparent) 1px, transparent 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 70% 0,#000,#0000 70%);mask-image:radial-gradient(at 70% 0,#000,#0000 70%)}.eng-rail{background:color-mix(in oklab, hsl(var(--primary-foreground)) 18%, transparent);height:2px;position:absolute;top:1.25rem;left:0;right:0}.eng-rail-fill{transform-origin:0;background:linear-gradient(90deg, hsl(var(--accent)), color-mix(in oklab, hsl(var(--accent)) 40%, hsl(var(--primary-foreground))));position:absolute;inset:0;transform:scaleX(1)}.eng-node{background:hsl(var(--primary));border:2px solid hsl(var(--accent));width:2.5rem;height:2.5rem;color:hsl(var(--accent));border-radius:999px;place-items:center;font-family:ui-monospace,monospace;font-size:.8rem;font-weight:600;display:grid}.eng-node:after{content:"";border-radius:inherit;border:1px solid color-mix(in oklab, hsl(var(--accent)) 45%, transparent);opacity:0;position:absolute;inset:-6px}.eng-card{border:1px solid color-mix(in oklab, hsl(var(--primary-foreground)) 14%, transparent);background:linear-gradient(160deg, color-mix(in oklab, hsl(var(--primary-foreground)) 7%, transparent), color-mix(in oklab, hsl(var(--primary-foreground)) 2%, transparent));border-radius:1rem;transition:transform .4s cubic-bezier(.2,.7,.2,1),border-color .4s,background .4s}.eng-card:hover,.eng-card:focus-within{border-color:color-mix(in oklab, hsl(var(--accent)) 55%, transparent);transform:translateY(-4px)}.eng-step:hover .eng-node:after{opacity:1;animation:1.2s ease-out infinite eng-ping}.eng-model[data-armed] .eng-reveal{opacity:0;transform:translateY(18px)}.eng-model[data-armed] .eng-rail-fill{transform:scaleX(0)}.eng-model[data-inview] .eng-reveal{opacity:1;transition:opacity .7s,transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--d,0) * .12s);transform:none}.eng-model[data-inview] .eng-rail-fill{transition:transform 1.6s cubic-bezier(.65,0,.35,1) .25s;transform:scaleX(1)}.eng-model[data-inview] .eng-node{animation:.6s cubic-bezier(.3,1.6,.5,1) both eng-pop;animation-delay:calc(.3s + var(--d,0) * .45s)}@keyframes eng-ping{0%{opacity:.9;transform:scale(.9)}to{opacity:0;transform:scale(1.5)}}@keyframes eng-pop{0%{box-shadow:0 0 0 0 color-mix(in oklab, hsl(var(--accent)) 60%, transparent);transform:scale(.6)}60%{transform:scale(1.12)}to{transform:scale(1);box-shadow:0 0 0 10px #0000}}@media (width<=1023px){.eng-rail{width:2px;height:auto;inset:0 auto 0 1.25rem}.eng-rail-fill{transform-origin:top}.eng-model[data-armed] .eng-rail-fill{transform:scaleY(0)}.eng-model[data-inview] .eng-rail-fill{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.eng-model .eng-reveal,.eng-model .eng-rail-fill,.eng-model .eng-node,.eng-card{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}}
