.fs-lab,.fs-lab-tokens{--lab-bg:var(--background);--lab-surface:var(--card);--lab-surface-2:var(--secondary);--lab-line:var(--border);--lab-line-strong:220 13% 42%;--lab-text:var(--foreground);--lab-muted:var(--muted-foreground);--lab-accent:var(--primary);--lab-radius:14px;--lab-radius-sm:8px;--lab-shadow:0 1px 0 #ffffff0d inset, 0 12px 30px -20px #020408d9;--lab-ease:cubic-bezier(.22, 1, .36, 1);--lab-fast:.16s;--lab-med:.28s}.fs-lab{color:hsl(var(--lab-text));position:relative}.fs-mono{font-feature-settings:"zero" 1;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.fs-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:hsl(var(--lab-accent));font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.fs-muted{color:hsl(var(--lab-muted))}.fs-card{isolation:isolate;cursor:pointer;border-radius:var(--lab-radius);border:1px solid hsl(var(--lab-line));background:linear-gradient(180deg, hsl(var(--lab-surface-2) / .55), hsl(var(--lab-surface) / .82) 60%);box-shadow:var(--lab-shadow);transition:transform var(--lab-med) var(--lab-ease), border-color var(--lab-fast) ease, box-shadow var(--lab-med) var(--lab-ease);position:relative;overflow:hidden}.fs-card:hover,.fs-card:focus-within{box-shadow:var(--lab-shadow), 0 18px 40px -22px currentColor;transform:translateY(-3px)}.fs-card .fs-glow{z-index:-1;pointer-events:none;opacity:0;height:70%;transition:opacity var(--lab-med) ease;background:radial-gradient(closest-side,currentColor,#0000 72%);position:absolute;inset:auto -20% -45%}.fs-card:hover .fs-glow,.fs-card:focus-within .fs-glow{opacity:.16}.fs-card.fs-static{cursor:default}.fs-card.fs-static:hover,.fs-card.fs-static:focus-within{transform:none}.fs-card .fs-rule{transform-origin:0;opacity:.9;width:100%;height:2px;transition:transform .42s var(--lab-ease);position:absolute;top:0;left:0;transform:scaleX(.12)}.fs-card:hover .fs-rule,.fs-card:focus-within .fs-rule{transform:scaleX(1)}.fs-card .fs-stretch:after{content:"";z-index:1;position:absolute;inset:0}.fs-card .fs-stretch:focus-visible{outline:none}.fs-card:has(.fs-stretch:focus-visible){outline:2px solid hsl(var(--lab-accent));outline-offset:2px}.fs-cta{color:hsl(var(--lab-accent));align-items:center;gap:.4rem;font-size:.875rem;font-weight:600;display:inline-flex}.fs-cta .fs-cta-more{white-space:nowrap;opacity:0;max-width:0;transition:max-width var(--lab-med) var(--lab-ease), opacity var(--lab-fast) ease;overflow:hidden}.fs-card:hover .fs-cta .fs-cta-more,.fs-card:focus-within .fs-cta .fs-cta-more,.fs-cta.is-open .fs-cta-more{opacity:1;max-width:9rem}.fs-cta svg{transition:transform var(--lab-med) var(--lab-ease)}.fs-card:hover .fs-cta svg,.fs-card:focus-within .fs-cta svg{transform:translate(3px)}@media (hover:none){.fs-cta .fs-cta-more{opacity:1;max-width:9rem}}.fs-chip{border:1px solid hsl(var(--lab-line));background:hsl(var(--lab-surface) / .85);white-space:nowrap;min-height:40px;transition:color var(--lab-fast) ease, background var(--lab-fast) ease, border-color var(--lab-fast) ease, transform var(--lab-fast) ease;border-radius:999px;flex:none;align-items:center;gap:.45rem;padding:.35rem .9rem;font-size:.85rem;font-weight:500;display:inline-flex}.fs-chip .fs-chip-label{color:hsl(var(--lab-muted));transition:color var(--lab-fast) ease}.fs-chip:hover{border-color:hsl(var(--lab-line-strong))}.fs-chip:hover .fs-chip-label{color:hsl(var(--lab-text))}.fs-chip:active{transform:scale(.97)}.fs-chip:focus-visible{outline:2px solid hsl(var(--lab-accent));outline-offset:2px}.fs-chip[aria-pressed=true] .fs-chip-label,.fs-chip[aria-selected=true] .fs-chip-label{color:hsl(var(--lab-text))}.fs-chip[aria-pressed=true],.fs-chip[aria-selected=true]{background:hsl(var(--lab-surface-2));border-color:hsl(var(--lab-line-strong));box-shadow:inset 0 0 0 1px}.fs-chip .fs-count{opacity:.7;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.72rem}.fs-scroll-x{scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 16px calc(100% - 28px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 16px calc(100% - 28px),#0000 100%)}.fs-scroll-x::-webkit-scrollbar{display:none}.fs-scroll-x>*{scroll-snap-align:start}@media (min-width:1024px){.fs-scroll-x{flex-wrap:wrap;-webkit-mask-image:none;mask-image:none}}.fs-search{border:1px solid hsl(var(--lab-line-strong));background:hsl(var(--lab-surface) / .85);width:100%;min-height:52px;color:hsl(var(--lab-muted));text-align:left;box-shadow:var(--lab-shadow);transition:border-color var(--lab-fast) ease, box-shadow var(--lab-med) ease;border-radius:12px;align-items:center;gap:.75rem;padding:0 1rem;display:flex}.fs-search:hover{border-color:hsl(var(--lab-accent) / .55);box-shadow:var(--lab-shadow), 0 0 0 4px hsl(var(--lab-accent) / .08)}.fs-search:focus-visible{outline:2px solid hsl(var(--lab-accent));outline-offset:2px}.fs-kbd{border:1px solid hsl(var(--lab-line-strong));background:hsl(var(--lab-surface-2));color:hsl(var(--lab-text));border-radius:6px;padding:.15rem .45rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.72rem}.fs-art{background:radial-gradient(120% 90% at 15% 0%, color-mix(in srgb, currentColor 16%, transparent), transparent 62%), hsl(var(--lab-surface));position:relative;overflow:hidden}.fs-art svg{width:100%;height:100%;display:block}.fs-art .fs-art-line{stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round}.fs-art .fs-art-fill{fill:currentColor}.fs-art .fs-art-dim{stroke:hsl(var(--lab-line-strong));fill:none}.fs-sweep{transform-origin:200px 125px;transform-box:view-box}.fs-card:hover .fs-sweep,.fs-card:focus-within .fs-sweep,[data-live=true] .fs-sweep,.fs-live:hover .fs-sweep{animation:3.6s linear infinite fs-spin}.fs-card:hover .fs-blip,.fs-card:focus-within .fs-blip,[data-live=true] .fs-blip{animation:1.8s ease-in-out infinite fs-blink}.fs-card:hover .fs-node,.fs-card:focus-within .fs-node,[data-live=true] .fs-node{animation:2s ease-in-out infinite fs-pulse}.fs-node{transform-box:fill-box;transform-origin:50%}.fs-bar{transform-box:fill-box;transform-origin:bottom}.fs-card:hover .fs-bar,.fs-card:focus-within .fs-bar,[data-live=true] .fs-bar{animation:fs-grow 1.6s var(--lab-ease) infinite alternate}.fs-dash{stroke-dasharray:7 7}.fs-card:hover .fs-dash,.fs-card:focus-within .fs-dash,[data-live=true] .fs-dash{animation:1.2s linear infinite fs-flow}.fs-card:hover .fs-scan,.fs-card:focus-within .fs-scan,[data-live=true] .fs-scan{animation:2.4s ease-in-out infinite alternate fs-scan}@keyframes fs-spin{to{transform:rotate(360deg)}}@keyframes fs-blink{0%,to{opacity:.35}50%{opacity:1}}@keyframes fs-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes fs-grow{0%{transform:scaleY(.72)}to{transform:scaleY(1)}}@keyframes fs-flow{to{stroke-dashoffset:-28px}}@keyframes fs-scan{0%{transform:translateY(0)}to{transform:translateY(70px)}}@keyframes fs-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fs-fade{0%{opacity:0}to{opacity:1}}.fs-enter{animation:fs-rise .42s var(--lab-ease) both}.fs-step-line{background:linear-gradient(to bottom, hsl(var(--lab-accent) / .5), hsl(var(--lab-line)))}@media (prefers-reduced-motion:reduce){.fs-lab *,.fs-lab :before,.fs-lab :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.fs-card:hover,.fs-card:focus-within{transform:none}}
