.product-figure{border:1px solid var(--color-border-strong);background:var(--color-bg-primary);box-shadow:.75rem .75rem 0 var(--color-bg-inset);margin:0;position:relative}.product-figure__top,.product-figure figcaption{min-height:3rem;font:650 .67rem/1 var(--font-mono);letter-spacing:.06em;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.product-figure__top{border-bottom:1px solid var(--color-border-subtle)}.product-figure__top small,.product-figure figcaption{color:var(--color-text-secondary)}.product-figure figcaption{border-top:1px solid var(--color-border-subtle)}.product-figure__canvas{background-image:linear-gradient(var(--color-border-subtle) 1px, transparent 1px), linear-gradient(90deg, var(--color-border-subtle) 1px, transparent 1px);background-size:3.5rem 3.5rem;position:relative;overflow:hidden}.product-figure__fallback{min-height:18rem;font:650 1rem var(--font-mono);place-content:center;display:grid}svg.pf{width:100%;height:auto;display:block}.pf :where(text){font-family:var(--font-mono);fill:var(--color-text-primary)}.pf-window rect{fill:var(--color-bg-primary);stroke:var(--color-border-strong)}.pf-window circle{fill:var(--color-border-subtle)}.pf-window-title{letter-spacing:.08em;fill:var(--color-text-secondary);text-anchor:middle;font-size:8px}.pf-gutter{fill:var(--color-text-helper);font-size:7px}.pf-code-line{fill:var(--patty-gray-20)}.pf-patch-line{fill:color-mix(in srgb, var(--color-action) 14%, transparent);stroke:var(--color-action)}.pf-caret{fill:var(--color-action)}.pf-scan{fill:var(--color-action);opacity:0}.pf-term rect{fill:var(--color-bg-inverse);stroke:var(--color-border-inverse)}.pf-term text{font-size:9px}.pf-term-cmd{fill:var(--color-text-inverse);font-weight:700}.pf-term-out{fill:var(--patty-gray-30)}.pf-term-ok{fill:var(--color-accent-inverse-strong);font-weight:700}.pf-pipe-rail{stroke:var(--color-border-subtle);stroke-width:1.2px}.pf-pipe-dot{fill:var(--color-border-subtle)}.pf-pipe-pulse{fill:var(--color-action);opacity:0}.pf-pipe-label{letter-spacing:.06em;fill:var(--color-text-secondary);font-size:8px;font-weight:650}.pf-pipe-label--human{fill:var(--color-text-primary)}.pf-pipe-human-ring{fill:none;stroke:var(--color-action);stroke-width:1px;stroke-dasharray:3 3}.pf-core rect{fill:var(--color-bg-inverse);stroke:var(--color-border-inverse)}.pf-core-name{fill:var(--color-text-inverse);text-anchor:middle;letter-spacing:.02em;font-size:15px;font-weight:700}.pf-core-name--sm{font-size:12px}.pf-core-sub{letter-spacing:.14em;fill:var(--color-accent-inverse);text-anchor:middle;font-size:6.5px}.pf-core-tick{fill:var(--color-accent-inverse-strong)}.pf-ring{fill:none;stroke:var(--color-action);opacity:0}.pf-chip rect{fill:var(--color-bg-primary);stroke:var(--color-border-strong)}.pf-chip text{letter-spacing:.06em;text-anchor:start;font-size:8px;font-weight:650}.pf--ergazo .pf-chip text,.pf--pilot .pf-chip text{text-anchor:middle}.pf-chip-dot{fill:var(--color-action)}.pf-link{fill:none;stroke:var(--color-border-strong);stroke-width:1.2px;stroke-dasharray:420;stroke-dashoffset:0}.pf-link--internal{stroke:var(--color-border-subtle)}.pf-packet{fill:var(--color-action);opacity:0;offset-rotate:0deg}.pf-ledger-rule{stroke:var(--color-border-strong);stroke-width:1px}.pf-ledger-fill{fill:var(--color-action);opacity:.14}.pf-ledger-cell text{fill:var(--color-text-secondary);letter-spacing:.08em;font-size:7px;font-weight:650}.pf-stamp rect{fill:none;stroke:var(--color-action);stroke-width:1.2px}.pf-stamp text{fill:var(--color-action);letter-spacing:.1em;font-size:7px;font-weight:700}.pf-perimeter{fill:none;stroke:var(--color-action);stroke-width:1.4px;stroke-dasharray:1800;stroke-dashoffset:0}.pf-perimeter-label rect{fill:var(--color-bg-primary)}.pf-perimeter-label text{letter-spacing:.16em;fill:var(--color-action);text-anchor:middle;font-size:7px;font-weight:700}.pf-gov-scan{fill:color-mix(in srgb, var(--color-action) 8%, transparent);stroke:var(--color-action);stroke-width:.8px;opacity:.8}.pf-gov-lock{fill:none;stroke:var(--color-accent-inverse-strong);stroke-width:1.2px}.pf-denied-packet{fill:var(--patty-gray-40);opacity:0}.pf-denied-mark line{stroke:var(--color-action);stroke-width:2px}.pf-denied-mark,.pf-denied-text{opacity:0}.pf-denied-text{letter-spacing:.14em;fill:var(--color-action);font-size:7px;font-weight:700}.pf-request rect{fill:var(--color-bg-primary);stroke:var(--color-border-strong)}.pf-request-label{letter-spacing:.14em;fill:var(--color-text-secondary);font-size:6.5px;font-weight:700}.pf-request-body{fill:var(--color-text-primary);font-size:9px;font-weight:620}.pf-result rect{fill:var(--color-bg-primary);stroke:var(--color-border-strong)}.pf-result-line{fill:var(--patty-gray-20)}.pf-approval rect{fill:var(--color-bg-inverse);stroke:var(--color-border-inverse)}.pf-approval-text{letter-spacing:.06em;fill:var(--color-text-inverse);font-size:8.5px;font-weight:650}.pf-approval-ring{fill:none;stroke:var(--color-accent-inverse);stroke-width:1.2px}.pf-approval-check{fill:none;stroke:var(--color-action);stroke-width:2px;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:24;stroke-dashoffset:0}.pf-crew-head rect{fill:var(--color-bg-primary);stroke:var(--color-border-subtle)}.pf-crew-title{font-size:9px;font-weight:700}.pf-crew-meta{fill:var(--color-text-secondary);font-size:7px;font-weight:600}.pf-presence-dot{fill:var(--color-action)}.pf-msg rect{stroke:var(--color-border-strong)}.pf-msg--human rect{fill:var(--color-bg-primary)}.pf-msg--agent rect{fill:var(--color-bg-inset)}.pf-msg-avatar{fill:var(--color-bg-primary);stroke:var(--color-border-strong)}.pf-msg-avatar--agent{fill:var(--color-bg-inverse);stroke:var(--color-border-inverse)}.pf-msg-avatar-text{fill:var(--color-text-primary);text-anchor:middle;font-size:7px;font-weight:700}.pf-msg--agent .pf-msg-avatar-text{fill:var(--color-accent-inverse-strong)}.pf-msg-name{letter-spacing:.1em;fill:var(--color-text-secondary);font-size:6.5px;font-weight:700}.pf-msg-body{fill:var(--color-text-primary);font-size:8.5px;font-weight:620}.pf-work-rail{fill:var(--color-border-subtle)}.pf-work-fill{fill:var(--color-action)}.pf-typing rect{fill:var(--color-bg-inset);stroke:var(--color-border-subtle)}.pf-typing-avatar{fill:var(--color-bg-primary);stroke:var(--color-border-strong)}.pf-typing-dot{fill:var(--color-text-secondary)}.pf-crew-done rect{fill:var(--color-bg-inverse);stroke:var(--color-border-inverse)}.pf-crew-done text{fill:var(--color-text-inverse)}.pf-crew-done .pf-approval-check{stroke:var(--color-accent-inverse-strong)}.pf-owner rect{fill:var(--color-bg-inverse);stroke:var(--color-border-inverse)}.pf-owner text{letter-spacing:.1em;fill:var(--color-text-inverse);text-anchor:middle;font-size:8px;font-weight:700}.pf-org-line{fill:none;stroke:var(--color-border-strong);stroke-width:1.2px;stroke-dasharray:420;stroke-dashoffset:0}.pf-agent circle{fill:var(--color-bg-primary);stroke:var(--color-border-strong)}.pf-agent-name{fill:var(--color-text-primary);text-anchor:middle;font-size:7px;font-weight:700}.pf-hud rect{fill:var(--color-bg-primary);stroke:var(--color-border-subtle)}.pf-hud-label{letter-spacing:.14em;fill:var(--color-text-secondary);font-size:6.5px;font-weight:700}.pf-hud-value{letter-spacing:.08em;fill:var(--color-text-primary);font-size:8px;font-weight:700}.pf-hud-value--active{fill:var(--color-action)}.pf-budget-rail{fill:var(--color-border-subtle)}.pf-budget-fill,.pf-audit-dot{fill:var(--color-action)}@media (prefers-reduced-motion:no-preference){@keyframes pf-draw{0%{stroke-dashoffset:420px}}.pf-link,.pf-org-line{animation:pf-draw 1.1s var(--ease-carbon) both}@keyframes pf-arrive{0%{opacity:0;transform:translateY(4px)}}.pf-chip{animation:pf-arrive .6s var(--ease-carbon) both}@keyframes pf-seal{0%{stroke-dashoffset:1800px}}.pf-perimeter{animation:pf-seal 1.8s var(--ease-carbon) both}@keyframes pf-stream{0%{opacity:0;transform:scaleX(0)}}.pf-code-line{transform-box:fill-box;transform-origin:0;animation:pf-stream .8s var(--ease-carbon) both}@keyframes pf-in{0%{opacity:0}}.pf-patch-line{animation:pf-in .5s var(--ease-carbon) 1.6s both}.pf-caret{transform-box:fill-box;transform-origin:0;animation:.3s linear 1.4s both pf-in,1.1s step-end 1.7s infinite pf-caret-blink}@keyframes pf-caret-blink{0%{transform:scaleX(1)}50%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes pf-type{0%{clip-path:inset(-30% 100% -30% 0)}}.pf-term-cmd{animation:.9s steps(9,end) .4s both pf-type}@keyframes pf-line-in{0%{opacity:0;transform:translateY(3px)}}.pf-term-out{animation:pf-line-in .45s var(--ease-carbon) both}.pf-term .pf-term-out:nth-of-type(2){animation-delay:1.4s}.pf-term .pf-term-out:nth-of-type(3){animation-delay:2s}.pf-term .pf-term-ok{animation:pf-line-in .45s var(--ease-carbon) 2.6s both}.pf-pipe-human-ring{animation:pf-in .5s var(--ease-carbon) 1.65s both}.pf-pipe-node{animation:pf-in .4s var(--ease-carbon) both}@keyframes pf-thud{0%{opacity:0;transform:scale(1.4)}}.pf-stamp{transform-box:fill-box;transform-origin:50%;animation:pf-thud .5s var(--ease-carbon) both}@keyframes pf-card-in{0%{opacity:0;transform:translateY(-8px)}}.pf-request{animation:pf-card-in .6s var(--ease-carbon) both}.pf-result{animation:pf-arrive .6s var(--ease-carbon) 2.4s both}.pf-result-line{transform-box:fill-box;transform-origin:0;animation:pf-stream .8s var(--ease-carbon) both}.pf-approval{animation:pf-arrive .6s var(--ease-carbon) 4.4s both}@keyframes pf-sign{0%{stroke-dashoffset:24px;opacity:0}}.pf-approval-check{animation:pf-sign .8s var(--ease-carbon) both}.pf--ergazo .pf-approval-check{animation-delay:4.9s}@keyframes pf-msg-cycle{0%{opacity:0;transform:translateY(10px)}}.pf-msg{animation:pf-msg-cycle .6s var(--ease-carbon) both}.pf-msg--human{animation-delay:.6s}.pf-msg--agent{animation-delay:2.1s}.pf-crew-head{animation:pf-arrive .5s var(--ease-carbon) both}@keyframes pf-typing-presence{0%{opacity:0;transform:translateY(4px)}4%{opacity:1;transform:none}28%{opacity:1;transform:none}31%,to{opacity:0}}.pf-typing{animation:pf-typing-presence 12s var(--ease-carbon) 3.6s both}.pf-crew-done{animation:pf-arrive .5s var(--ease-carbon) 7.2s both}.pf-crew-done .pf-approval-check{animation-delay:7.4s}.pf-owner{animation:pf-arrive .5s var(--ease-carbon) .1s both}.pf-agent{animation:pf-arrive .5s var(--ease-carbon) both}.pf-hud{animation:pf-arrive .5s var(--ease-carbon) 1.2s both}@keyframes pf-travel{0%{offset-distance:0%;opacity:0}8%{opacity:1}42%{offset-distance:100%;opacity:1}50%{offset-distance:100%;opacity:0}to{offset-distance:0%;opacity:0}}.pf-packet{animation:5.2s linear infinite pf-travel}@keyframes pf-roundtrip{0%{offset-distance:0%;opacity:0}10%{opacity:1}38%{offset-distance:100%;opacity:1}44%{offset-distance:100%;opacity:1}72%{offset-distance:0%;opacity:1}78%,to{offset-distance:0%;opacity:0}}.pf-packet--roundtrip{animation-name:pf-roundtrip;animation-duration:6.4s}@keyframes pf-breathe{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.5)}}.pf-chip-dot{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite pf-breathe}.pf-presence-dot{transform-box:fill-box;transform-origin:50%;animation:2.8s ease-in-out infinite pf-breathe}.pf-audit-dot{transform-box:fill-box;transform-origin:50%;animation:2s ease-in-out infinite pf-breathe}@keyframes pf-ring{0%{opacity:.55;stroke-width:1.4px;transform:scale(1)}to{opacity:0;stroke-width:.4px;transform:scale(4.6)}}.pf-ring{transform-box:fill-box;transform-origin:50%;animation:pf-ring 4.8s var(--ease-carbon) infinite}@keyframes pf-print{0%,6%{opacity:0;transform:scaleX(0)}10%{opacity:1}22%{transform:scaleX(1)}82%{opacity:1;transform:scaleX(1)}88%,to{opacity:0;transform:scaleX(0)}}.pf-ledger-cell{animation:pf-arrive .6s var(--ease-carbon) both}.pf-ledger-fill{transform-box:fill-box;transform-origin:0;animation:pf-print 12s var(--ease-carbon) infinite}@keyframes pf-scan-x{0%{opacity:0;transform:translate(0)}4%{opacity:.9}38%{opacity:.9;transform:translate(218px)}42%{opacity:0;transform:translate(218px)}50%{opacity:0;transform:translate(0)}54%{opacity:.9}88%{opacity:.9;transform:translate(218px)}92%,to{opacity:0;transform:translate(218px)}}.pf-scan{animation:12s linear infinite pf-scan-x}@keyframes pf-pipe-travel{0%{offset-distance:0%;opacity:0}9%{opacity:1}46%{offset-distance:100%;opacity:1}51%,to{offset-distance:100%;opacity:0}}.pf-pipe-pulse{animation:12s linear 1s infinite pf-pipe-travel}@keyframes pf-node-light{0%,8%{fill:var(--color-border-subtle)}12%,86%{fill:var(--color-action)}90%,to{fill:var(--color-border-subtle)}}.pf-pipe-dot{animation:pf-node-light 12s var(--ease-carbon) infinite}@keyframes pf-sweep{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pf-gov-scan{transform-box:view-box;transform-origin:118px 148px;animation:9s linear infinite pf-sweep}@keyframes pf-deny{0%{offset-distance:0%;opacity:0}12%{opacity:1}20%{offset-distance:100%;opacity:1}23%{offset-distance:100%;opacity:1}27%{offset-distance:96%;opacity:.6}42%,to{offset-distance:0%;opacity:0}}.pf-denied-packet{animation:12s linear infinite pf-deny}@keyframes pf-deny-mark{0%,19%{opacity:0;transform:scale(.6)}22%{opacity:1;transform:scale(1.15)}24%,42%{opacity:1;transform:scale(1)}48%,to{opacity:0}}.pf-denied-mark{transform-box:fill-box;transform-origin:50%;animation:pf-deny-mark 12s var(--ease-carbon) infinite}.pf-denied-text{animation:pf-deny-mark 12s var(--ease-carbon) infinite}@keyframes pf-work{0%,18%{transform:scaleX(0)}55%,86%{transform:scaleX(1)}93%,to{transform:scaleX(0)}}.pf-work-fill{transform-box:fill-box;transform-origin:0;animation:pf-work 12s var(--ease-carbon) 2.1s infinite}@keyframes pf-typing-bounce{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.pf-typing-dot{transform-box:fill-box;transform-origin:50%;animation:pf-typing-bounce 1.15s var(--ease-carbon) infinite}.pf-typing .pf-typing-dot:nth-of-type(3){animation-delay:.15s}.pf-typing .pf-typing-dot:nth-of-type(4){animation-delay:.3s}@keyframes pf-heartbeat{0%,88%,to{stroke:var(--color-border-strong);transform:scale(1)}90%{stroke:var(--color-action);transform:scale(1.14)}93%{transform:scale(1.02)}96%{stroke:var(--color-action);transform:scale(1.1)}}.pf-agent circle{transform-box:fill-box;transform-origin:50%;animation:pf-heartbeat 2.8s var(--ease-carbon) infinite}@keyframes pf-budget{0%,80%,to{transform:scaleX(1)}45%,55%{transform:scaleX(.3)}}.pf-budget-fill{transform-box:fill-box;transform-origin:0;animation:pf-budget 12s var(--ease-carbon) infinite}@keyframes pf-active-blink{0%,to{opacity:1}50%{opacity:.5}}.pf-hud-value--active{animation:3.2s ease-in-out infinite pf-active-blink}}
