.catpanel{--cs-alert:var(--destructive);background:var(--card);box-shadow:inset 0 0 0 1px var(--border);flex-direction:column;padding:24px 26px 22px;display:flex}.cat-stage{margin:4px 0 20px;position:relative}.cat-stage svg{width:100%;height:auto;display:block;overflow:visible}.cat-foot-row{justify-content:space-between;align-items:center;gap:24px;min-height:52px;margin-top:auto;display:flex}.cs-dot{fill:var(--muted-foreground);opacity:.16}.cs-cap{fill:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;opacity:0;font-size:9.5px;animation:.5s cubic-bezier(.22,.7,.25,1) .25s forwards csFade}.cs-cap.cs-late{animation-delay:1.1s}.cs-idx{fill:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;opacity:0;font-size:9px;animation:.5s cubic-bezier(.22,.7,.25,1) .9s forwards csFade}.cs-rule{fill:none;stroke:var(--border);stroke-width:1px;stroke-dasharray:1;stroke-dashoffset:1px;animation:.55s cubic-bezier(.22,.7,.25,1) forwards csDraw}.cs-axis{stroke:var(--input);stroke-width:1px;stroke-dasharray:1;stroke-dashoffset:1px;animation:.7s cubic-bezier(.22,.7,.25,1) forwards csDraw}.cs-div{stroke:var(--input);stroke-width:1px;stroke-dasharray:2 6;opacity:0;animation:.6s cubic-bezier(.22,.7,.25,1) .35s forwards csFade}@keyframes csFade{to{opacity:1}}@keyframes csDraw{to{stroke-dashoffset:0}}.cs-ln{stroke:var(--input);stroke-width:2px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:.32s cubic-bezier(.3,.8,.4,1) forwards csDraw}.cs-ln.hi{stroke:var(--primary);opacity:.85}.cs-tool{fill:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.12em;opacity:0;font-size:9.5px;animation:.4s cubic-bezier(.22,.7,.25,1) .2s forwards csFade}.cs-tool.hi{fill:var(--primary)}.cs-brk{fill:none;stroke:var(--primary);stroke-width:1px;opacity:.55;stroke-dasharray:1;stroke-dashoffset:1px;animation:.5s cubic-bezier(.22,.7,.25,1) forwards csDraw}.cs-tag{fill:var(--primary);font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;opacity:0;font-size:9px;animation:.4s cubic-bezier(.22,.7,.25,1) 1.7s forwards csFade}.cs-caret{stroke:var(--primary);stroke-width:2px;opacity:0;animation:1s step-end infinite csBlink}@keyframes csBlink{0%,49%{opacity:.9}50%,to{opacity:0}}.cs-frame rect{fill:color-mix(in oklab, var(--foreground) 2%, transparent);stroke:var(--input);stroke-width:1px}.cs-frame{opacity:0;animation:.5s cubic-bezier(.22,.7,.25,1) forwards csFade}.cs-part{stroke:var(--input);stroke-width:1px;stroke-dasharray:1;stroke-dashoffset:1px;animation:.6s cubic-bezier(.22,.7,.25,1) forwards csDraw}.cs-bbar{fill:color-mix(in oklab, var(--foreground) 5%, transparent);stroke:var(--input);stroke-width:1px;transform-box:fill-box;transform-origin:50% 100%;animation:.5s cubic-bezier(.22,.7,.25,1) forwards csBar;transform:scaleY(0)}.cs-bbar.hi{fill:var(--primary);stroke:none;opacity:.85}@keyframes csBar{to{transform:scaleY(1)}}.cs-lead{opacity:0;animation:.45s cubic-bezier(.22,.7,.25,1) forwards csFade}.cs-lead-l{fill:none;stroke:var(--input);stroke-width:.8px}.cs-lead-a{fill:var(--primary)}.cs-lead-t{fill:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;font-size:9.5px}.cs-dim{opacity:0;animation:.5s cubic-bezier(.22,.7,.25,1) forwards csFade}.cs-dim line{stroke:var(--input);stroke-width:.8px}.cs-dim-t{fill:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-size:9.5px}.cs-ring{fill:none;stroke:var(--input);stroke-width:1px;stroke-dasharray:1;stroke-dashoffset:1px;animation:1.1s cubic-bezier(.22,.7,.25,1) .1s forwards csDraw}.cs-tick{stroke:var(--input);stroke-width:1px;opacity:0;animation:.3s cubic-bezier(.22,.7,.25,1) forwards csFade}.cs-wp{opacity:0;animation:.4s cubic-bezier(.22,.7,.25,1) forwards csFade}.cs-wp circle{fill:var(--card);stroke:var(--primary);stroke-width:1.4px}.cs-wpn{fill:var(--primary);font-family:var(--font-mono);letter-spacing:.1em;font-size:9.5px}.cs-orb circle{fill:var(--primary)}.cs-orb{animation:5.5s linear infinite csSpin}@keyframes csSpin{to{transform:rotate(360deg)}}.cs-mid{fill:var(--foreground);font-family:var(--font-heading);letter-spacing:-.02em;opacity:0;font-size:21px;font-weight:700;animation:.5s cubic-bezier(.22,.7,.25,1) .8s forwards csFade}.cs-mid-s{fill:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.2em;opacity:0;font-size:9px;animation:.5s cubic-bezier(.22,.7,.25,1) 1s forwards csFade}.cs-row{opacity:0;animation:.45s cubic-bezier(.22,.7,.25,1) forwards csRow}.cs-rowt{fill:var(--foreground);font-family:var(--font-sans);font-size:13px;font-weight:600}.cs-rows{fill:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.04em;font-size:9.5px}@keyframes csRow{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}.cs-shl{opacity:0;animation:.5s cubic-bezier(.22,.7,.25,1) forwards csFade}.cs-sh{fill:none;stroke:var(--muted-foreground);stroke-width:1px}.cs-sh.core{fill:color-mix(in oklab, var(--primary) 9%, transparent);stroke:var(--primary);stroke-width:1.2px}.cs-sh.inner{stroke:var(--primary);opacity:.28}.cs-shn{fill:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.16em;opacity:0;font-size:9px;animation:.5s cubic-bezier(.22,.7,.25,1) .9s forwards csFade}.cs-shn.hi{fill:var(--primary)}.cs-corepin{opacity:0;animation:.4s cubic-bezier(.22,.7,.25,1) forwards csFade}.cs-corepin circle{fill:var(--primary)}.cs-atk-t{fill:var(--cs-alert);font-family:var(--font-mono);letter-spacing:.12em;font-size:8.5px}.cs-burst{fill:none;stroke:var(--cs-alert);stroke-width:1px;opacity:.4}.cs-chk-t{fill:none;stroke:var(--success);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:.3s cubic-bezier(.22,.7,.25,1) forwards csDraw}.cs-vec{opacity:0;animation:.3s cubic-bezier(.22,.7,.25,1) forwards csFade}.cs-vec-l{fill:none;stroke:var(--cs-alert);stroke-width:1.2px;stroke-dasharray:1;stroke-dashoffset:1px;animation:.35s cubic-bezier(.22,.7,.25,1) forwards csDraw}.cs-x path{fill:none;stroke:var(--cs-alert);stroke-width:1.2px;stroke-linecap:round}.cs-x{opacity:0;animation:.3s cubic-bezier(.22,.7,.25,1) forwards csPop}@keyframes csPop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.cs-noise{fill:var(--muted-foreground);opacity:0;animation:.5s cubic-bezier(.22,.7,.25,1) forwards csNoise}@keyframes csNoise{to{opacity:.45}}.cs-kpi{opacity:0;animation:.5s cubic-bezier(.22,.7,.25,1) forwards csFade}.cs-kv{fill:var(--foreground);font-family:var(--font-heading);letter-spacing:-.02em;font-size:22px;font-weight:700}.cs-ku{fill:var(--primary);font-family:var(--font-mono);letter-spacing:.1em;font-size:11px}.cs-kl{fill:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.08em;font-size:9.5px}.cs-target{stroke:var(--input);stroke-width:1px;stroke-dasharray:3 5;opacity:0;animation:.5s cubic-bezier(.22,.7,.25,1) .9s forwards csFade}.cs-curve{fill:none;stroke:var(--primary);stroke-width:1.8px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:1.1s cubic-bezier(.22,.7,.25,1) forwards csDraw}.cs-cd{fill:var(--primary);opacity:0;animation:.3s cubic-bezier(.22,.7,.25,1) forwards csFade}@media (prefers-reduced-motion:reduce){.cs-cap,.cs-idx,.cs-div,.cs-tool,.cs-tag,.cs-lead,.cs-dim,.cs-wp,.cs-tick,.cs-row,.cs-shl,.cs-corepin,.cs-vec,.cs-x,.cs-kpi,.cs-cd,.cs-target,.cs-frame{opacity:1;animation:none;transform:none}.cs-ln,.cs-rule,.cs-axis,.cs-part,.cs-brk,.cs-ring,.cs-curve,.cs-chk-t,.cs-vec-l{stroke-dashoffset:0;animation:none}.cs-bbar{animation:none;transform:none}.cs-noise{opacity:.45;animation:none}.cs-orb,.cs-caret{animation:none}}
.ctxsw{border-bottom:1px solid var(--border);align-items:center;margin-top:34px;padding-bottom:10px;display:flex}.ctxsw-tabs{gap:4px;margin-left:auto;display:flex}.ctxsw-t{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tx-3);cursor:pointer;transition:color .18s var(--ease);background:0 0;border:0;padding:8px 14px 10px;font-size:11.5px;font-weight:500;position:relative}.ctxsw-t:after{content:"";background:var(--primary);transform-origin:0;height:1.5px;transition:transform .28s var(--ease);position:absolute;bottom:-11px;left:14px;right:14px;transform:scaleX(0)}.ctxsw-t:hover{color:var(--muted-foreground)}.ctxsw-t[aria-selected=true]{color:var(--accent-tx)}.ctxsw-t[aria-selected=true]:after{transform:scaleX(1)}.cat-list{margin:0;padding:0;list-style:none}.cat-item{text-align:left;border:0;border-bottom:1px solid var(--border);cursor:pointer;opacity:0;width:100%;animation:ciIn .5s var(--ease) forwards;transition:padding-left .28s var(--ease);background:0 0;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:22px 4px 22px 0;display:grid;position:relative}.cat-item:before{content:"";background:var(--primary);transform-origin:top;width:2px;transition:transform .28s var(--ease);position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.cat-item[aria-pressed=true]{padding-left:18px}.cat-item[aria-pressed=true]:before{transform:scaleY(1)}.ci-n{font-family:var(--font-mono);letter-spacing:.14em;color:var(--tx-3);transition:color .2s var(--ease);font-size:11px}.cat-item[aria-pressed=true] .ci-n{color:var(--accent-tx)}.ci-t{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--muted-foreground);transition:color .2s var(--ease);font-size:clamp(21px,2vw,27px);font-weight:700;line-height:1.05}.cat-item[aria-pressed=true] .ci-t,.cat-item:hover .ci-t{color:var(--foreground)}.ci-m{font-family:var(--font-mono);letter-spacing:.12em;color:var(--tx-3);text-transform:uppercase;white-space:nowrap;font-size:10.5px}@keyframes ciIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (max-width:560px){.cat-item{grid-template-columns:auto 1fr;row-gap:6px;padding:18px 0}.ci-m{grid-column:2}}@media (prefers-reduced-motion:reduce){.cat-item{opacity:1;animation:none}}
.flowpanel{position:relative}.flow-live{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-foreground);white-space:nowrap;align-items:center;gap:8px;margin-left:auto;font-size:11px;transition:color .2s cubic-bezier(.22,.7,.25,1);display:inline-flex}.flow-live.on{color:var(--success)}.flow-live.on .dot{background:var(--success)}.dot{background:var(--success);width:6px;height:6px;box-shadow:0 0 8px var(--success);border-radius:50%}.fpw{border:1px solid var(--border);background:var(--card);border-radius:12px;overflow:hidden}.fpw-bar{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:10px 16px;display:flex}.fpw-sq{gap:5px;display:inline-flex}.fpw-sq i{border:1px solid var(--input);border-radius:50%;width:6px;height:6px}.fpw-sq i:first-child{border-color:var(--primary);background:var(--primary)}.fpw-file{letter-spacing:.1em;color:var(--muted-foreground);text-transform:none;font-size:10.5px}.fpw-save{letter-spacing:.08em;color:var(--success);white-space:nowrap;margin-left:auto;font-size:10.5px}.fpw-body{padding:20px 20px 6px}.fpw-foot{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:18px;padding:10px 16px;display:flex}.flow-svg{width:100%;height:auto;display:block}.flow-svg.g2{transition:opacity .4s cubic-bezier(.22,.7,.25,1)}.flow-svg.g2.dim{opacity:.3}.g2-dot{fill:var(--muted-foreground);opacity:.2}.g2-wire{fill:none;stroke:var(--input);stroke-width:1.2px}.g2-draw{fill:none;stroke:var(--success);stroke-width:1.4px;stroke-dasharray:100;stroke-dashoffset:100px}.g2-draw.on{stroke-dashoffset:0;transition:stroke-dashoffset .42s cubic-bezier(.22,.7,.25,1)}.g2-pk{fill:var(--primary);opacity:0;offset-rotate:0deg}.g2-pk.on{animation:.42s cubic-bezier(.22,.7,.25,1) forwards g2pk}@keyframes g2pk{0%{offset-distance:0%;opacity:1}85%{opacity:1}to{offset-distance:100%;opacity:0}}.g2-plus circle{fill:var(--muted);stroke:var(--input);stroke-width:1px}.g2-plus path{fill:none;stroke:var(--muted-foreground);stroke-width:1.2px;stroke-linecap:round}.g2-anchor{fill:var(--secondary);stroke:var(--input);stroke-width:1px}.g2-fallback{fill:none;stroke:var(--destructive);stroke-width:1.2px;stroke-dasharray:3 5;opacity:.45}.g2n-card{fill:color-mix(in oklab, var(--foreground) 2%, transparent);stroke:var(--input);stroke-width:1px;transition:height .34s cubic-bezier(.22,.7,.25,1),y .34s cubic-bezier(.22,.7,.25,1),stroke .22s cubic-bezier(.22,.7,.25,1),fill .22s cubic-bezier(.22,.7,.25,1)}.g2n-run .g2n-card{fill:color-mix(in oklab, var(--primary) 6%, transparent);stroke:var(--primary)}.g2n-retry .g2n-card{fill:color-mix(in oklab, var(--destructive) 5%, transparent);stroke:var(--destructive)}.g2n-ghost .g2n-card{fill:none;stroke:var(--border);stroke-dasharray:4 5}.g2n-chip{fill:color-mix(in oklab, var(--primary) 14%, transparent);transition:y .34s cubic-bezier(.22,.7,.25,1),fill .22s cubic-bezier(.22,.7,.25,1)}.g2n-ghost .g2n-chip{fill:color-mix(in oklab, var(--foreground) 5%, transparent)}.g2n-ic{color:var(--primary)}.g2n-ghost .g2n-ic{color:var(--muted-foreground)}.g2n-title{fill:var(--muted-foreground);font-family:var(--font-sans);letter-spacing:-.005em;font-size:13px;font-weight:600}.g2n-run .g2n-title,.g2n-retry .g2n-title,.g2n-ok .g2n-title{fill:var(--foreground)}.g2n-ghost .g2n-title{fill:var(--muted-foreground);font-weight:500}.g2n-port{fill:var(--secondary);stroke:var(--input);stroke-width:1px}.g2n-run .g2n-port,.g2n-retry .g2n-port,.g2n-ok .g2n-port{fill:var(--muted-foreground)}.g2n-body{opacity:0;transition:opacity .24s cubic-bezier(.22,.7,.25,1)}.g2n-body.open{opacity:1}.g2n-div{stroke:var(--border);stroke-width:1px}.g2n-line{fill:var(--foreground);font-family:var(--font-mono);font-size:10.5px}.g2n-tool{fill:var(--muted-foreground)}.g2n-arg{fill:var(--foreground)}.g2n-meta{fill:var(--muted-foreground);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:9.5px}.g2n-track,.g2n-fill{opacity:0}.g2n-track.go{fill:var(--border);opacity:1}.g2n-fill{fill:var(--primary)}.g2n-fill.go{opacity:1;transition:width 1.2s linear}.g2n-retry .g2n-fill{fill:var(--destructive)}.g2s{fill:none}.g2s-idle{stroke:var(--muted-foreground);stroke-width:1.2px;opacity:.75}.g2s-run{stroke:var(--primary);stroke-width:1.7px;stroke-linecap:round;stroke-dasharray:26 100;transform-box:fill-box;transform-origin:50%;animation:.85s linear infinite g2spin}.g2s-retry{stroke:var(--destructive);stroke-width:1.5px;stroke-linecap:round;transform-box:fill-box;transform-origin:50%;animation:1.5s linear infinite g2spin}.g2s-ok{stroke:var(--success);stroke-width:1.8px;stroke-linecap:round;animation:.26s cubic-bezier(.22,.7,.25,1) g2pop}@keyframes g2spin{to{transform:rotate(360deg)}}@keyframes g2pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.g2-draw,.g2n-card,.g2n-body,.g2n-fill,.flow-svg.g2{transition:none}.g2-pk.on{opacity:0;animation:none}.g2-draw.on{stroke-dashoffset:0}.g2s-run,.g2s-retry,.g2s-ok{animation:none}}
.board{background:var(--border);border:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:clamp(44px,5vw,68px);display:grid}.bcol{background:var(--background);flex-direction:column;padding:18px 16px 20px;display:flex}.bcol-rail{background:var(--border);height:2px;margin:14px 0 16px;overflow:hidden}.bcol-rail i{background:var(--primary);opacity:.55;height:100%;display:block}.bcol:hover .bcol-rail i{opacity:1}.bcard{background:var(--card);box-shadow:inset 0 0 0 1px var(--border);transition:transform .16s var(--ease), box-shadow .2s var(--ease);padding:14px 14px 12px 20px;position:relative}.bcard-grip{background:repeating-linear-gradient(180deg, var(--input) 0 1px, transparent 1px 4px);width:3px;position:absolute;top:14px;bottom:12px;left:8px}.bcard:hover{box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--primary) 45%, transparent), -4px 8px 22px -10px #0000008c;transform:translate(2px,-4px)rotate(-.5deg)}.bcard:hover .bcard-grip{background:repeating-linear-gradient(180deg, var(--primary) 0 1px, transparent 1px 4px)}.bcard-run{box-shadow:inset 1.5px 0 0 var(--primary), inset 0 0 0 1px var(--border)}.bslot{border:1px dashed var(--input);font-family:var(--font-mono);letter-spacing:.1em;color:var(--tx-3);text-transform:uppercase;transition:color .18s var(--ease), border-color .18s var(--ease);padding:14px 12px;font-size:10.5px;display:block}.bslot:hover{border-color:color-mix(in oklab, var(--primary) 45%, transparent);color:var(--accent-tx)}@media (max-width:820px){.board{scroll-snap-type:x mandatory;gap:0;display:flex;overflow-x:auto}.bcol{scroll-snap-align:start;border-right:1px solid var(--border);flex:0 0 74%}.bcol:last-child{border-right:none}}@media (max-width:560px){.bcol{flex-basis:86%}}@media (prefers-reduced-motion:reduce){.bcard{transition:none}.bcard:hover{transform:none}}
.why-ledger{margin:0;padding:0 0 0 34px;list-style:none;position:relative}.why-ledger:before{content:"";background:linear-gradient(180deg, transparent, var(--input) 8%, var(--input) 92%, transparent);width:1px;transform:scaleY(var(--p,0));transform-origin:top;position:absolute;top:10px;bottom:10px;left:0}.why-ledger:after{content:"";pointer-events:none;background:repeating-linear-gradient(180deg, var(--border) 0 1px, transparent 1px 14px);width:9px;transform:scaleY(var(--p,0));transform-origin:top;position:absolute;top:14px;bottom:14px;left:-4px;-webkit-mask-image:linear-gradient(#0000,#000 10% 90%,#0000);mask-image:linear-gradient(#0000,#000 10% 90%,#0000)}.why-entry{padding:0 0 clamp(34px, 4vw, 54px) calc(var(--step) * 30px);position:relative}.why-entry:last-child{padding-bottom:0}.why-node{border:1px solid var(--input);background:var(--background);opacity:0;width:9px;height:9px;transition:opacity .3s var(--ease), transform .35s var(--ease), border-color .25s var(--ease), background .25s var(--ease);border-radius:50%;position:absolute;top:9px;left:-38px;transform:scale(.3)}.why-entry[data-lit] .why-node{opacity:1;transform:none}.why-n,.why-title,.why-desc{opacity:0;transition:opacity .5s var(--ease) var(--dd), transform .5s var(--ease) var(--dd);transform:translateY(12px)}.why-n{--dd:80ms;font-family:var(--font-mono);letter-spacing:.16em;color:var(--tx-3);font-size:10.5px;display:block}.why-title{--dd:.16s;font-family:var(--font-heading);letter-spacing:-.025em;transition:opacity .5s var(--ease) var(--dd), transform .5s var(--ease) var(--dd), color .2s var(--ease);margin-top:12px;font-size:clamp(21px,2.1vw,28px);font-weight:700;line-height:1.1}.why-desc{--dd:.24s;max-width:48ch;color:var(--muted-foreground);margin-top:10px;font-size:15px}.why-entry[data-lit] .why-n,.why-entry[data-lit] .why-title,.why-entry[data-lit] .why-desc{opacity:1;transform:none}.why-entry:hover .why-node{border-color:var(--primary);background:var(--primary)}.why-entry:hover .why-title{color:var(--accent-tx)}@media (max-width:920px){.why-entry{padding-left:0}}@media (max-width:560px){.why-ledger{padding-left:24px}.why-node{left:-28px}}@media (prefers-reduced-motion:reduce){.why-ledger:before,.why-ledger:after{transform:scaleY(1)}.why-node,.why-n,.why-title,.why-desc{opacity:1;transition:none;transform:none}}
