{
  "name": "stepkit-background-paths",
  "type": "registry:component",
  "title": "Background paths",
  "description": "A flowing path field adapted from KokonutUI with a readable editorial layer and bounded motion.",
  "author": "Vladislav Stepanov",
  "dependencies": [
    "react@19.3.0",
    "react-dom@19.3.0"
  ],
  "files": [
    {
      "path": "components/stepkit/BackgroundPaths.tsx",
      "content": "/*\n * Stepkit 0.3.0\n * Copyright (c) 2026 Vladislav Stepanov\n *\n * Original Stepkit portions in this release are licensed under the MIT License. Adapted portions identify their upstream licence and attribution in the copied source and in the entry-specific upstream notice files.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n *\n * MIT License\n *\n * Copyright (c) 2025 kokonutUI\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n */\n\"use client\";\n\nimport { memo, useId, useMemo, type CSSProperties } from \"react\";\nimport \"./styles.css\";\nimport \"./adapted-showcase.css\";\n\n/**\n * Adapted from KokonutUI Background Paths (MIT).\n * Source: https://raw.githubusercontent.com/kokonut-labs/kokonutui/b1ac155138b089ae7825022182b431da89de89be/components/kokonutui/background-paths.tsx\n * License snapshot: provenance/KOKONUTUI-LICENSE-b1ac155.md\n * Stepkit replaces Motion and Tailwind with scoped SVG/CSS while retaining the flowing path field.\n */\nexport interface BackgroundPathsProps {\n  title?: string;\n  description?: string;\n  paused?: boolean;\n  className?: string;\n}\n\ntype PathKind = \"primary\" | \"secondary\" | \"accent\";\ninterface Point { x: number; y: number; }\ninterface PathData { id: string; d: string; opacity: number; width: number; duration: number; delay: number; }\ntype ShowcaseStyle = CSSProperties & Record<`--stepkit-${string}`, string | number>;\n\nfunction generateAestheticPath(index: number, position: number, type: PathKind) {\n  const amplitude = type === \"primary\" ? 150 : type === \"secondary\" ? 100 : 60;\n  const phase = index * 0.2;\n  const segments = type === \"primary\" ? 10 : type === \"secondary\" ? 8 : 6;\n  const points: Point[] = [];\n  const startX = 2400;\n  const startY = 800;\n  const endX = -2400;\n  const endY = -800 + index * 25;\n\n  for (let i = 0; i <= segments; i += 1) {\n    const progress = i / segments;\n    const eased = 1 - (1 - progress) ** 2;\n    const baseX = startX + (endX - startX) * eased;\n    const baseY = startY + (endY - startY) * eased;\n    const amplitudeFactor = 1 - eased * 0.3;\n    const wave =\n      Math.sin(progress * Math.PI * 3 + phase) * amplitude * 0.7 * amplitudeFactor +\n      Math.cos(progress * Math.PI * 4 + phase) * amplitude * 0.3 * amplitudeFactor +\n      Math.sin(progress * Math.PI * 2 + phase) * amplitude * 0.2 * amplitudeFactor;\n    points.push({ x: baseX * position, y: baseY + wave });\n  }\n\n  return points.map((point, pointIndex) => {\n    if (pointIndex === 0) return `M ${point.x} ${point.y}`;\n    const previous = points[pointIndex - 1];\n    const tension = 0.4;\n    const cp1x = previous.x + (point.x - previous.x) * tension;\n    const cp2x = previous.x + (point.x - previous.x) * (1 - tension);\n    return `C ${cp1x} ${previous.y}, ${cp2x} ${point.y}, ${point.x} ${point.y}`;\n  }).join(\" \");\n}\n\nconst FloatingPaths = memo(function FloatingPaths({ id, position, paused }: { id: string; position: number; paused: boolean }) {\n  const groups = useMemo(() => ({\n    primary: Array.from({ length: 12 }, (_, index): PathData => ({ id: `primary-${position}-${index}`, d: generateAestheticPath(index, position, \"primary\"), opacity: 0.15 + index * 0.02, width: 4 + index * 0.3, duration: 8, delay: 0 })),\n    secondary: Array.from({ length: 15 }, (_, index): PathData => ({ id: `secondary-${position}-${index}`, d: generateAestheticPath(index, position, \"secondary\"), opacity: 0.12 + index * 0.015, width: 3 + index * 0.25, duration: 6, delay: 0 })),\n    accent: Array.from({ length: 10 }, (_, index): PathData => ({ id: `accent-${position}-${index}`, d: generateAestheticPath(index, position, \"accent\"), opacity: 0.08 + index * 0.12, width: 2 + index * 0.2, duration: 5, delay: index * 0.12 })),\n  }), [position]);\n\n  const pathMarkup = (paths: PathData[], group: PathKind) => paths.map((path) => {\n    const style: ShowcaseStyle = {\n      opacity: path.opacity,\n      \"--stepkit-path-duration\": `${path.duration}s`,\n      \"--stepkit-path-delay\": `${path.delay}s`,\n    };\n    return <path className={`stepkit-background-paths__path stepkit-background-paths__path--${group}`} d={path.d} key={path.id} strokeWidth={path.width} style={style} />;\n  });\n\n  return (\n    <svg aria-hidden=\"true\" className=\"stepkit-background-paths__svg\" fill=\"none\" preserveAspectRatio=\"xMidYMid slice\" viewBox=\"-2400 -800 4800 1600\">\n      <defs>\n        <linearGradient id={id} x1=\"0%\" x2=\"100%\" y1=\"0%\" y2=\"0%\">\n          <stop offset=\"0%\" stopColor=\"var(--stepkit-accent, #6950df)\" stopOpacity=\".22\" />\n          <stop offset=\"50%\" stopColor=\"var(--stepkit-accent-strong, #5137c7)\" stopOpacity=\".4\" />\n          <stop offset=\"100%\" stopColor=\"var(--stepkit-accent, #6950df)\" stopOpacity=\".16\" />\n        </linearGradient>\n      </defs>\n      <g className=\"stepkit-background-paths__group\" data-paused={paused} stroke={`url(#${id})`} strokeLinecap=\"round\">\n        {pathMarkup(groups.primary, \"primary\")}\n        {pathMarkup(groups.secondary, \"secondary\")}\n        {pathMarkup(groups.accent, \"accent\")}\n      </g>\n    </svg>\n  );\n});\n\nexport function BackgroundPaths({ title = \"Make room for a moving idea\", description = \"Flowing paths add depth without taking attention away from the work.\", paused = false, className = \"\" }: BackgroundPathsProps) {\n  const gradientId = `stepkit-background-gradient-${useId().replace(/:/g, \"\")}`;\n  return (\n    <section aria-label={title} className={`stepkit stepkit-background-paths${className ? ` ${className}` : \"\"}`} data-paused={paused}>\n      <div className=\"stepkit-background-paths__field\"><FloatingPaths id={gradientId} paused={paused} position={1} /><FloatingPaths id={`${gradientId}-reverse`} paused={paused} position={-1} /></div>\n      <div className=\"stepkit-background-paths__content\">\n        <span className=\"stepkit-background-paths__eyebrow\">Background paths</span>\n        <h2 className=\"stepkit-background-paths__title\">{title}</h2>\n        <p className=\"stepkit-background-paths__description\">{description}</p>\n      </div>\n    </section>\n  );\n}\n\nexport default BackgroundPaths;\n",
      "type": "registry:component",
      "target": "components/stepkit/BackgroundPaths.tsx"
    },
    {
      "path": "components/stepkit/adapted-showcase.css",
      "content": "/*\n * Stepkit 0.3.0\n * Copyright (c) 2026 Vladislav Stepanov\n *\n * Original Stepkit portions in this release are licensed under the MIT License. Adapted portions identify their upstream licence and attribution in the copied source and in the entry-specific upstream notice files.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n */\n/* Stepkit-specific presentation for the verified MIT adaptations. */\n.stepkit-background-paths { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-card-radius, var(--stepkit-radius, 16px)); min-height: 430px; overflow: hidden; position: relative; }\n.stepkit-background-paths__field { inset: 0; opacity: .9; overflow: hidden; position: absolute; }\n.stepkit-background-paths__svg { height: 100%; inset: 0; position: absolute; width: 100%; }\n.stepkit-background-paths__group { transform-origin: center; }\n.stepkit-background-paths__path { animation: stepkit-background-path-drift var(--stepkit-path-duration, 8s) ease-in-out infinite alternate; animation-delay: var(--stepkit-path-delay, 0s); stroke-width: var(--stepkit-path-width, 2); vector-effect: non-scaling-stroke; }\n.stepkit-background-paths[data-paused=\"true\"] .stepkit-background-paths__path, .stepkit-background-paths[data-reduced-motion=\"true\"] .stepkit-background-paths__path { animation: none; }\n.stepkit-background-paths__path--secondary { --stepkit-path-opacity: .72; }\n.stepkit-background-paths__path--accent { --stepkit-path-opacity: .55; }\n.stepkit-background-paths__content { max-width: 34rem; padding: clamp(56px, 10vw, 112px) clamp(24px, 8vw, 90px); position: relative; z-index: 1; }\n.stepkit-background-paths__eyebrow, .stepkit-orbital-timeline__header > span { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }\n.stepkit-background-paths__title { font-size: clamp(30px, 6vw, 64px); letter-spacing: -.07em; line-height: .98; margin: 14px 0 0; max-width: 10ch; }\n.stepkit-background-paths__description { color: var(--stepkit-muted, #626572); font-size: 15px; line-height: 1.45; margin: 20px 0 0; max-width: 34ch; }\n\n.stepkit-orbital-timeline { background: var(--stepkit-bg, #f7f7f8); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-card-radius, var(--stepkit-radius, 16px)); min-height: 680px; overflow: hidden; position: relative; }\n.stepkit-orbital-timeline__header { padding: 26px clamp(22px, 5vw, 48px) 0; position: relative; z-index: 2; }\n.stepkit-orbital-timeline__header h2 { font-size: clamp(24px, 4vw, 42px); letter-spacing: -.06em; line-height: 1; margin: 10px 0 0; }\n.stepkit-orbital-timeline__header p { color: var(--stepkit-muted, #626572); margin: 10px 0 0; max-width: 42ch; }\n.stepkit-orbital-timeline__stage { min-height: 560px; overflow: visible; position: relative; }\n.stepkit-orbital-timeline__orbit { height: min(78vw, 500px); left: 50%; max-height: 500px; max-width: 500px; position: absolute; top: 52%; transform: translate(-50%, -50%); width: min(78vw, 500px); }\n.stepkit-orbital-timeline__ring { border: 1px solid color-mix(in srgb, var(--stepkit-accent, #6950df) 30%, var(--stepkit-border, #e3e4e9)); border-radius: 50%; inset: 50px; position: absolute; }\n.stepkit-orbital-timeline__ring::after { border: 1px dashed color-mix(in srgb, var(--stepkit-accent, #6950df) 18%, transparent); border-radius: 50%; content: \"\"; inset: 22px; position: absolute; }\n.stepkit-orbital-timeline__center { align-items: center; background: var(--stepkit-accent, #6950df); border: 5px solid var(--stepkit-surface, #fff); border-radius: 50%; box-shadow: 0 0 0 1px var(--stepkit-accent, #6950df), 0 0 44px color-mix(in srgb, var(--stepkit-accent, #6950df) 30%, transparent); display: flex; height: 64px; justify-content: center; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); width: 64px; z-index: 10; }\n.stepkit-orbital-timeline__fallback-icon { height: 18px; width: 18px; }\n.stepkit-orbital-timeline__center span { background: var(--stepkit-accent-text, #fff); border-radius: 50%; height: 18px; opacity: .85; width: 18px; }\n.stepkit-orbital-timeline__center i { border: 1px solid color-mix(in srgb, var(--stepkit-accent-text, #fff) 55%, transparent); border-radius: 50%; height: 80px; position: absolute; width: 80px; }\n.stepkit-orbital-timeline__center i:last-child { height: 104px; opacity: .55; width: 104px; }\n.stepkit-orbital-timeline__node { left: 50%; position: absolute; top: 50%; transition: opacity 240ms ease, transform 700ms cubic-bezier(.2,.8,.2,1); }\n.stepkit-orbital-timeline__node-button { align-items: center; background: var(--stepkit-fg, #17181c); border: 2px solid color-mix(in srgb, var(--stepkit-fg, #17181c) 50%, var(--stepkit-border-strong, #c8cad3)); border-radius: 50%; color: var(--stepkit-surface, #fff); display: flex; height: 42px; justify-content: center; padding: 0; transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; width: 42px; }\n.stepkit-orbital-timeline__node-button:hover, .stepkit-orbital-timeline__node-button:focus-visible, .stepkit-orbital-timeline__node-button.is-expanded { background: var(--stepkit-accent, #6950df); border-color: var(--stepkit-accent, #6950df); box-shadow: 0 0 0 6px var(--stepkit-accent-soft, #eeeafd); transform: scale(1.2); }\n.stepkit-orbital-timeline__node-button.is-related { border-color: var(--stepkit-accent, #6950df); }\n.stepkit-orbital-timeline__pulse { border-radius: 50%; inset: 50% auto auto 50%; pointer-events: none; position: absolute; transform: translate(-50%, -50%); background: radial-gradient(circle, color-mix(in srgb, var(--stepkit-accent, #6950df) 20%, transparent), transparent 70%); opacity: 0; transition: opacity 180ms ease; }\n.stepkit-orbital-timeline__pulse.is-active { animation: stepkit-orbital-pulse 1.2s ease-in-out infinite; opacity: 1; }\n.stepkit-orbital-timeline__label { color: var(--stepkit-muted, #626572); display: block; font-size: 11px; font-weight: 750; left: 50%; max-width: 12ch; overflow-wrap: normal; position: absolute; text-align: center; top: 50px; transform: translateX(-50%); width: 10ch; word-break: normal; }\n.stepkit-orbital-timeline__details { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); box-shadow: var(--stepkit-shadow, 0 20px 60px rgba(31, 26, 64, .1)); color: var(--stepkit-fg, #17181c); left: 50%; padding: 17px; position: absolute; top: 72px; transform: translateX(-50%); width: min(300px, 74vw); }\n.stepkit-orbital-timeline__details::before { background: var(--stepkit-border, #e3e4e9); content: \"\"; height: 14px; left: 50%; position: absolute; top: -14px; width: 1px; }\n.stepkit-orbital-timeline__details-meta, .stepkit-orbital-timeline__energy > span { align-items: center; display: flex; gap: 8px; justify-content: space-between; }\n.stepkit-orbital-timeline__details-meta > span { background: var(--stepkit-accent-soft, #eeeafd); border-radius: 999px; color: var(--stepkit-accent-on-soft, #5137c7); font-size: 10px; font-weight: 800; padding: 5px 8px; }\n.stepkit-orbital-timeline__details-meta > span[data-status=\"pending\"] { background: var(--stepkit-surface-muted, #f0f0f3); color: var(--stepkit-muted, #626572); }\n.stepkit-orbital-timeline__details-meta time { color: var(--stepkit-muted, #626572); font-size: 11px; }\n.stepkit-orbital-timeline__details h3 { font-size: 18px; margin: 14px 0 6px; }\n.stepkit-orbital-timeline__details p { color: var(--stepkit-muted, #626572); font-size: 13px; margin: 0; }\n.stepkit-orbital-timeline__energy { border-top: 1px solid var(--stepkit-border, #e3e4e9); margin-top: 15px; padding-top: 13px; }\n.stepkit-orbital-timeline__energy b, .stepkit-orbital-timeline__related > span { font-size: 11px; font-weight: 800; }\n.stepkit-orbital-timeline__energy strong { font-size: 12px; }\n.stepkit-orbital-timeline__energy meter { display: block; height: 6px; margin-top: 7px; width: 100%; }\n.stepkit-orbital-timeline__related { border-top: 1px solid var(--stepkit-border, #e3e4e9); margin-top: 14px; padding-top: 12px; }\n.stepkit-orbital-timeline__related > div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }\n.stepkit-orbital-timeline__related button { background: transparent; border: 1px solid var(--stepkit-border-strong, #c8cad3); border-radius: 999px; color: var(--stepkit-fg, #17181c); font-size: 11px; min-height: 30px; padding: 5px 9px; }\n.stepkit-orbital-timeline__related button:hover, .stepkit-orbital-timeline__related button:focus-visible { border-color: var(--stepkit-accent, #6950df); color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-orbital-timeline[data-paused=\"true\"] .stepkit-orbital-timeline__node, .stepkit-orbital-timeline[data-reduced-motion=\"true\"] .stepkit-orbital-timeline__node { transition: none; }\n.stepkit-orbital-timeline[data-paused=\"true\"] .stepkit-orbital-timeline__pulse, .stepkit-orbital-timeline[data-reduced-motion=\"true\"] .stepkit-orbital-timeline__pulse { animation: none; opacity: 0; }\n@keyframes stepkit-background-path-drift { from { transform: translateY(0); } to { transform: translateY(-12px); } }\n@keyframes stepkit-orbital-pulse { 0%, 100% { transform: translate(-50%, -50%) scale(.84); } 50% { transform: translate(-50%, -50%) scale(1.08); } }\n@media (max-width: 620px) { .stepkit-orbital-timeline__orbit { top: 54%; } .stepkit-orbital-timeline__ring { inset: 30px; } .stepkit-orbital-timeline__header { padding-inline: 20px; } }\n@media (prefers-reduced-motion: reduce) { .stepkit-background-paths__path, .stepkit-orbital-timeline__pulse.is-active { animation: none; } .stepkit-orbital-timeline__node, .stepkit-orbital-timeline__node-button { transition: none; } }\n",
      "type": "registry:style",
      "target": "components/stepkit/adapted-showcase.css"
    },
    {
      "path": "components/stepkit/styles.css",
      "content": "/*\n * Stepkit 0.3.0\n * Copyright (c) 2026 Vladislav Stepanov\n *\n * Original Stepkit portions in this release are licensed under the MIT License. Adapted portions identify their upstream licence and attribution in the copied source and in the entry-specific upstream notice files.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n */\n/* Stepkit components inherit tokens from .stepkit-theme or a consumer wrapper. */\n.stepkit-theme { background: var(--stepkit-bg, #f7f7f8); color: var(--stepkit-fg, #17181c); font-family: var(--stepkit-font-sans, Inter, ui-sans-serif, system-ui, sans-serif); }\n.stepkit,\n.stepkit * { box-sizing: border-box; }\n\n.stepkit {\n  color: var(--stepkit-fg, #17181c);\n  font-family: var(--stepkit-font-sans, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif);\n  font-size: 16px;\n  line-height: 1.5;\n  min-width: 0;\n}\n.stepkit :where(button, input, textarea, select) { color: inherit; font: inherit; }\n.stepkit:where(button, a, input, textarea, select, [tabindex=\"0\"]):focus-visible, .stepkit :where(button, a, input, textarea, select, [tabindex=\"0\"]):focus-visible { outline: 3px solid var(--stepkit-accent, #6950df); outline-offset: 3px; }\n.stepkit :where(a) { color: inherit; }\n.stepkit :where(p, h1, h2, h3, h4, ul, ol) { overflow-wrap: anywhere; }\n.stepkit :where(p) { white-space: pre-wrap; }\n.stepkit :where(button) { cursor: pointer; }\n.stepkit :where(button:disabled, input:disabled, textarea:disabled) { cursor: not-allowed; opacity: .58; }\n\n.stepkit-button { align-items: center; background: var(--stepkit-accent, #6950df); border: 1px solid var(--stepkit-accent, #6950df); border-radius: var(--stepkit-radius, 16px); color: var(--stepkit-accent-text, #fff); display: inline-flex; font-size: 14px; font-weight: 700; gap: 8px; justify-content: center; min-height: var(--stepkit-control-height, 44px); padding: 10px 17px; text-decoration: none; transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }\n.stepkit-button:hover:not(:disabled) { background: var(--stepkit-accent-strong, #5137c7); border-color: var(--stepkit-accent-strong, #5137c7); transform: translateY(-1px); }\n.stepkit-button:active:not(:disabled) { transform: translateY(0); }\n.stepkit-button[data-size=\"sm\"] { min-height: 44px; padding: 8px 13px; }\n.stepkit-button[data-size=\"lg\"] { min-height: 50px; padding: 13px 22px; }\n.stepkit-button[data-variant=\"outline\"] { background: transparent; border-color: var(--stepkit-border-strong, #c8cad3); color: var(--stepkit-fg, #17181c); }\n.stepkit-button[data-variant=\"outline\"]:hover:not(:disabled) { background: var(--stepkit-accent-soft, #eeeafd); border-color: var(--stepkit-accent, #6950df); color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-button[data-variant=\"ghost\"], .stepkit-button[data-variant=\"soft\"] { background: var(--stepkit-accent-soft, #eeeafd); border-color: transparent; color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-button[data-variant=\"ghost\"]:hover:not(:disabled), .stepkit-button[data-variant=\"soft\"]:hover:not(:disabled) { background: color-mix(in srgb, var(--stepkit-accent-soft, #eeeafd) 76%, var(--stepkit-accent, #6950df)); }\n.stepkit-button[data-variant=\"danger\"] { background: #c43d50; border-color: #c43d50; color: #fff; }\n.stepkit-button[data-variant=\"danger\"]:hover:not(:disabled) { background: #a92d40; border-color: #a92d40; }\n.stepkit-button__spinner { animation: stepkit-spin 700ms linear infinite; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; height: 15px; width: 15px; }\n\n.stepkit-card { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-card-radius, var(--stepkit-radius, 16px)); box-shadow: 0 8px 24px color-mix(in srgb, var(--stepkit-fg, #17181c) 5%, transparent); color: var(--stepkit-fg, #17181c); padding: clamp(18px, 3vw, 28px); }\n.stepkit-card__eyebrow { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 12px; font-weight: 800; letter-spacing: .08em; margin: 0 0 10px; text-transform: uppercase; }\n.stepkit-card__title { font-size: 20px; letter-spacing: -.03em; line-height: 1.2; margin: 0 0 8px; }\n.stepkit-card__body { color: var(--stepkit-muted, #626572); margin: 0; }\n.stepkit-card__footer { align-items: center; border-top: 1px solid var(--stepkit-border, #e3e4e9); display: flex; gap: 12px; justify-content: space-between; margin-top: 22px; padding-top: 16px; }\n\n.stepkit-badge { align-items: center; border-radius: 999px; display: inline-flex; font-size: 12px; font-weight: 750; gap: 7px; line-height: 1; min-height: 28px; padding: 6px 10px; }\n.stepkit-badge[data-size=\"sm\"] { font-size: 11px; min-height: 24px; padding: 5px 8px; }\n.stepkit-badge__dot { background: currentColor; border-radius: 50%; height: 7px; width: 7px; }\n.stepkit-badge[data-tone=\"neutral\"] { background: var(--stepkit-surface-muted, #f0f0f3); color: var(--stepkit-muted, #626572); }\n.stepkit-badge[data-tone=\"accent\"], .stepkit-badge[data-tone=\"info\"] { background: var(--stepkit-accent-soft, #eeeafd); color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-badge[data-tone=\"success\"] { background: #e4f7ef; color: #087452; }\n.stepkit-badge[data-tone=\"warning\"] { background: #fff1dc; color: #9b5b08; }\n.stepkit-badge[data-tone=\"danger\"] { background: #ffe6ea; color: #a52e42; }\n\n.stepkit-field { display: grid; gap: 8px; width: 100%; }\n.stepkit-field__label { color: var(--stepkit-fg, #17181c); font-size: 14px; font-weight: 700; }\n.stepkit-field__hint { color: var(--stepkit-muted, #626572); font-size: 13px; margin: 0; }\n.stepkit-field__error { color: var(--stepkit-error, #b43145); font-size: 13px; margin: 0; }\n.stepkit-input, .stepkit-textarea { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border-strong, #c8cad3); border-radius: var(--stepkit-radius, 16px); color: var(--stepkit-fg, #17181c); min-height: var(--stepkit-control-height, 44px); padding: 10px 13px; transition: border-color 160ms ease, box-shadow 160ms ease; width: 100%; }\n.stepkit-textarea { min-height: 116px; resize: vertical; }\n.stepkit-input::placeholder, .stepkit-textarea::placeholder { color: var(--stepkit-placeholder, #626572); opacity: 1; }\n.stepkit-input:hover, .stepkit-textarea:hover { border-color: var(--stepkit-accent, #6950df); }\n.stepkit-input:focus, .stepkit-textarea:focus { border-color: var(--stepkit-accent, #6950df); box-shadow: 0 0 0 4px var(--stepkit-accent-soft, #eeeafd); outline: none; }\n.stepkit-field[data-invalid=\"true\"] .stepkit-input, .stepkit-field[data-invalid=\"true\"] .stepkit-textarea { border-color: #c43d50; }\n.stepkit-field__control { position: relative; }\n.stepkit-field__adornment { align-items: center; color: var(--stepkit-muted, #626572); display: flex; inset: 0 auto 0 13px; pointer-events: none; position: absolute; }\n.stepkit-field__adornment--end { inset: 0 13px 0 auto; }\n.stepkit-field__control:has(.stepkit-field__adornment) .stepkit-input { padding-left: 40px; }\n.stepkit-field__control:has(.stepkit-field__adornment--end) .stepkit-input { padding-right: 40px; }\n\n.stepkit-check, .stepkit-switch { align-items: flex-start; display: flex; gap: 12px; }\n.stepkit-check__box { appearance: none; background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border-strong, #c8cad3); border-radius: 6px; flex: 0 0 20px; height: 20px; margin: 2px 0 0; position: relative; width: 20px; }\n.stepkit-check__box:checked { background: var(--stepkit-accent, #6950df); border-color: var(--stepkit-accent, #6950df); }\n.stepkit-check__box:checked::after { border: solid #fff; border-width: 0 2px 2px 0; content: \"\"; height: 10px; left: 6px; position: absolute; top: 2px; transform: rotate(45deg); width: 5px; }\n.stepkit-check__copy, .stepkit-switch__copy { display: grid; gap: 3px; }\n.stepkit-check__label, .stepkit-switch__label { color: var(--stepkit-fg, #17181c); font-size: 14px; font-weight: 700; }\n.stepkit-check__description, .stepkit-switch__description { color: var(--stepkit-muted, #626572); font-size: 13px; margin: 0; }\n.stepkit-switch__input { appearance: none; background: var(--stepkit-border-strong, #c8cad3); border: 0; border-radius: 999px; flex: 0 0 44px; height: 24px; margin: 1px 0 0; padding: 3px; transition: background-color 160ms ease; width: 44px; }\n.stepkit-switch__input::before { background: #fff; border-radius: 50%; content: \"\"; display: block; height: 18px; transition: transform 160ms ease; width: 18px; }\n.stepkit-switch__input:checked { background: var(--stepkit-accent, #6950df); }\n.stepkit-switch__input:checked::before { transform: translateX(20px); }\n\n.stepkit-tabs { display: grid; gap: 18px; }\n.stepkit-tabs__list { border-bottom: 1px solid var(--stepkit-border, #e3e4e9); display: flex; flex-wrap: wrap; gap: 4px; }\n.stepkit-tabs__trigger { background: transparent; border: 0; border-bottom: 2px solid transparent; color: var(--stepkit-muted, #626572); min-height: 44px; padding: 9px 13px; }\n.stepkit-tabs__trigger[aria-selected=\"true\"] { border-bottom-color: var(--stepkit-accent, #6950df); color: var(--stepkit-accent-on-soft, #5137c7); font-weight: 750; }\n.stepkit-tabs__panel { animation: stepkit-fade-in 180ms ease both; color: var(--stepkit-muted, #626572); min-height: 60px; }\n\n.stepkit-modal-trigger { margin: 0; }\n.stepkit-modal-panel { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); box-shadow: var(--stepkit-shadow, 0 20px 60px rgba(31, 26, 64, .1)); color: var(--stepkit-fg, #17181c); max-height: min(82vh, 680px); max-width: min(520px, calc(100% - 28px)); overflow: auto; padding: clamp(22px, 5vw, 34px); width: 100%; }\n.stepkit-modal-panel::backdrop { background: color-mix(in srgb, var(--stepkit-fg, #17181c) 32%, transparent); }\n.stepkit-modal-title { font-size: 24px; letter-spacing: -.04em; line-height: 1.15; margin: 0 0 10px; }\n.stepkit-modal-body { color: var(--stepkit-muted, #626572); margin: 0 0 24px; }\n.stepkit-modal-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; margin-top: 24px; }\n\n.stepkit-tooltip { display: inline-flex; position: relative; }\n.stepkit-tooltip__content { background: var(--stepkit-fg, #17181c); border-radius: 8px; bottom: calc(100% + 10px); color: var(--stepkit-surface, #fff); font-size: 12px; left: 50%; max-width: min(260px, 80vw); opacity: 0; padding: 8px 10px; pointer-events: none; position: absolute; transform: translate(-50%, 4px); transition: opacity 140ms ease, transform 140ms ease; width: max-content; z-index: 4; }\n.stepkit-tooltip__content::after { border: 5px solid transparent; border-top-color: var(--stepkit-fg, #17181c); content: \"\"; left: 50%; position: absolute; top: 100%; transform: translateX(-50%); }\n.stepkit-tooltip[data-open=\"true\"] .stepkit-tooltip__content { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }\n\n.stepkit-navbar { align-items: center; display: flex; gap: 24px; justify-content: space-between; min-height: 64px; width: 100%; }\n.stepkit-navbar__brand { align-items: center; color: var(--stepkit-fg, #17181c); display: inline-flex; font-size: 17px; font-weight: 800; letter-spacing: -.04em; min-height: 44px; text-decoration: none; }\n.stepkit-navbar__links { align-items: center; display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }\n.stepkit-navbar__link { align-items: center; border-radius: 10px; color: var(--stepkit-muted, #626572); display: inline-flex; min-height: 44px; padding: 8px 11px; text-decoration: none; }\n.stepkit-navbar__link:hover, .stepkit-navbar__link:focus-visible { background: var(--stepkit-accent-soft, #eeeafd); color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-navbar[data-compact=\"true\"] { min-height: 48px; }\n@media (max-width: 560px) { .stepkit-navbar { align-items: flex-start; flex-direction: column; gap: 10px; } .stepkit-navbar__links { justify-content: flex-start; width: 100%; } }\n\n.stepkit-sidebar { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); display: flex; flex-direction: column; gap: 18px; min-width: 190px; padding: 16px; }\n.stepkit-sidebar__title { color: var(--stepkit-muted, #626572); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }\n.stepkit-sidebar__items { display: grid; gap: 3px; }\n.stepkit-sidebar__item { align-items: center; background: transparent; border: 0; border-radius: 10px; color: var(--stepkit-muted, #626572); display: flex; font-size: 14px; gap: 9px; min-height: 42px; padding: 9px 10px; text-align: left; width: 100%; }\n.stepkit-sidebar__item:hover, .stepkit-sidebar__item[aria-current=\"page\"] { background: var(--stepkit-accent-soft, #eeeafd); color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-sidebar__item[aria-current=\"page\"] { font-weight: 750; }\n.stepkit-sidebar__footer { border-top: 1px solid var(--stepkit-border, #e3e4e9); color: var(--stepkit-muted, #626572); font-size: 12px; padding-top: 14px; }\n\n.stepkit-command { display: inline-flex; }\n.stepkit-command__dialog { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); box-shadow: var(--stepkit-shadow, 0 20px 60px rgba(31, 26, 64, .1)); color: var(--stepkit-fg, #17181c); max-width: min(600px, calc(100% - 24px)); padding: 10px; width: 100%; }\n.stepkit-command__dialog::backdrop { background: color-mix(in srgb, var(--stepkit-fg, #17181c) 30%, transparent); }\n.stepkit-command__input { background: transparent; border: 0; border-bottom: 1px solid var(--stepkit-border, #e3e4e9); border-radius: 0; min-height: 48px; outline: none; padding: 12px; width: 100%; }\n.stepkit-command__list { display: grid; gap: 3px; list-style: none; margin: 8px 0 0; max-height: 300px; overflow: auto; padding: 0; }\n.stepkit-command__item { align-items: center; background: transparent; border: 0; border-radius: 10px; display: flex; gap: 12px; justify-content: space-between; min-height: 44px; padding: 10px 12px; text-align: left; width: 100%; }\n.stepkit-command__item:hover, .stepkit-command__item[aria-selected=\"true\"] { background: var(--stepkit-accent-soft, #eeeafd); color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-command__shortcut { color: var(--stepkit-muted, #626572); font-size: 12px; }\n.stepkit-command__empty { color: var(--stepkit-muted, #626572); margin: 14px 12px; }\n\n.stepkit-accordion { border-top: 1px solid var(--stepkit-border, #e3e4e9); }\n.stepkit-accordion__item { border-bottom: 1px solid var(--stepkit-border, #e3e4e9); }\n.stepkit-accordion__trigger { align-items: center; background: transparent; border: 0; display: flex; font-size: 16px; font-weight: 750; gap: 14px; justify-content: space-between; min-height: 58px; padding: 14px 0; text-align: left; width: 100%; }\n.stepkit-accordion__icon { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 22px; font-weight: 400; }\n.stepkit-accordion__panel { color: var(--stepkit-muted, #626572); max-width: 70ch; padding: 0 28px 20px 0; }\n\n.stepkit-empty-state { align-items: center; background: var(--stepkit-surface, #fff); border: 1px dashed var(--stepkit-border-strong, #c8cad3); border-radius: var(--stepkit-radius, 16px); display: flex; flex-direction: column; gap: 10px; justify-content: center; min-height: 240px; padding: 30px; text-align: center; }\n.stepkit-empty-state__icon { align-items: center; background: var(--stepkit-accent-soft, #eeeafd); border-radius: 14px; color: var(--stepkit-accent-on-soft, #5137c7); display: flex; font-size: 22px; height: 48px; justify-content: center; width: 48px; }\n.stepkit-empty-state__title { font-size: 20px; letter-spacing: -.03em; margin: 0; }\n.stepkit-empty-state__description { color: var(--stepkit-muted, #626572); margin: 0 0 8px; max-width: 42ch; }\n\n.stepkit-toast { align-items: flex-start; background: var(--stepkit-fg, #17181c); border-radius: var(--stepkit-radius, 16px); box-shadow: var(--stepkit-shadow, 0 20px 60px rgba(31, 26, 64, .1)); color: var(--stepkit-surface, #fff); display: flex; gap: 16px; justify-content: space-between; max-width: min(420px, 100%); padding: 16px 18px; }\n.stepkit-toast__copy { display: grid; gap: 3px; }\n.stepkit-toast__title { font-weight: 800; }\n.stepkit-toast__message { color: color-mix(in srgb, var(--stepkit-surface, #fff) 72%, transparent); font-size: 14px; margin: 0; }\n.stepkit-toast__close { background: transparent; border: 0; border-radius: 8px; color: inherit; min-height: 36px; min-width: 36px; }\n.stepkit-toast__close:hover { background: color-mix(in srgb, var(--stepkit-surface, #fff) 16%, transparent); }\n\n.stepkit-border-highlight { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); color: var(--stepkit-fg, #17181c); display: block; padding: 24px; text-decoration: none; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }\n.stepkit-border-highlight:hover, .stepkit-border-highlight:focus-visible { border-color: var(--stepkit-accent, #6950df); box-shadow: 0 0 0 4px var(--stepkit-accent-soft, #eeeafd); transform: translateY(-2px); }\n.stepkit-border-highlight[data-intensity=\"strong\"] { border-color: var(--stepkit-accent, #6950df); }\n.stepkit-border-highlight[data-paused=\"true\"] { transition: none; }\n.stepkit-border-highlight__title { display: block; font-size: 18px; font-weight: 800; }\n.stepkit-border-highlight__hint { color: var(--stepkit-muted, #626572); display: block; font-size: 13px; margin-top: 5px; }\n\n.stepkit-pointer-tilt { perspective: 900px; }\n.stepkit-pointer-tilt__surface { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); box-shadow: var(--stepkit-shadow, 0 20px 60px rgba(31, 26, 64, .1)); padding: clamp(24px, 5vw, 50px); transform: rotateX(var(--stepkit-tilt-y, 0deg)) rotateY(var(--stepkit-tilt-x, 0deg)); transition: transform 180ms ease; }\n.stepkit-pointer-tilt__surface h3 { font-size: clamp(24px, 4vw, 42px); letter-spacing: -.06em; line-height: 1; margin: 0 0 12px; }\n.stepkit-pointer-tilt__surface p { color: var(--stepkit-muted, #626572); margin: 0; }\n.stepkit-pointer-tilt[data-paused=\"true\"] .stepkit-pointer-tilt__surface { transition: none; transform: none; }\n\n.stepkit-text-reveal { display: inline; }\n.stepkit-text-reveal__word { animation: stepkit-reveal 520ms cubic-bezier(.2,.8,.2,1) forwards; animation-delay: calc(var(--stepkit-index) * 55ms); display: inline-block; margin-right: .23em; opacity: 0; transform: translateY(.45em); }\n.stepkit-text-reveal[data-paused=\"true\"] .stepkit-text-reveal__word { animation: none; opacity: 1; transform: none; }\n\n.stepkit-spotlight-panel { background: radial-gradient(circle at var(--stepkit-spotlight-x, 50%) var(--stepkit-spotlight-y, 50%), color-mix(in srgb, var(--stepkit-accent, #6950df) 25%, transparent), transparent 34%), var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); min-height: 260px; overflow: hidden; padding: clamp(24px, 5vw, 54px); position: relative; }\n.stepkit-spotlight-panel::after { background: linear-gradient(135deg, color-mix(in srgb, var(--stepkit-accent, #6950df) 12%, transparent), transparent 48%); content: \"\"; inset: 0; pointer-events: none; position: absolute; }\n.stepkit-spotlight-panel__content { max-width: 34rem; position: relative; z-index: 1; }\n.stepkit-spotlight-panel__eyebrow { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }\n.stepkit-spotlight-panel h3 { font-size: clamp(26px, 5vw, 52px); letter-spacing: -.07em; line-height: .98; margin: 14px 0; }\n.stepkit-spotlight-panel p { color: var(--stepkit-muted, #626572); margin: 0; max-width: 46ch; }\n\n.stepkit-gradient-wash { background: linear-gradient(135deg, color-mix(in srgb, var(--stepkit-accent, #6950df) 19%, var(--stepkit-bg, #f7f7f8)), var(--stepkit-surface, #fff) 52%, color-mix(in srgb, var(--stepkit-accent-soft, #eeeafd) 68%, var(--stepkit-surface, #fff))); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); min-height: 260px; overflow: hidden; padding: clamp(26px, 5vw, 58px); position: relative; }\n.stepkit-gradient-wash::before, .stepkit-gradient-wash::after { border: 1px solid color-mix(in srgb, var(--stepkit-accent, #6950df) 30%, transparent); border-radius: 50%; content: \"\"; height: 240px; position: absolute; right: -50px; top: -80px; transform: rotate(-20deg); width: 240px; }\n.stepkit-gradient-wash::after { bottom: -80px; height: 150px; right: 110px; top: auto; width: 150px; }\n.stepkit-gradient-wash__content { max-width: 36rem; position: relative; z-index: 1; }\n.stepkit-gradient-wash h3 { font-size: clamp(28px, 5vw, 54px); letter-spacing: -.07em; line-height: .98; margin: 0 0 14px; }\n.stepkit-gradient-wash p { color: var(--stepkit-muted, #626572); margin: 0; max-width: 45ch; }\n\n.stepkit-staggered-grid { display: grid; gap: var(--stepkit-space, 16px); grid-template-columns: repeat(3, minmax(0, 1fr)); }\n.stepkit-staggered-grid__item { animation: stepkit-rise 500ms cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--stepkit-index) * 70ms); background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); min-height: 150px; padding: 20px; }\n.stepkit-staggered-grid__number { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 13px; font-weight: 800; }\n.stepkit-staggered-grid__title { font-size: 18px; font-weight: 800; margin: 28px 0 5px; }\n.stepkit-staggered-grid__body { color: var(--stepkit-muted, #626572); font-size: 14px; margin: 0; }\n.stepkit-staggered-grid[data-paused=\"true\"] .stepkit-staggered-grid__item { animation: none; }\n@media (max-width: 640px) { .stepkit-staggered-grid { grid-template-columns: 1fr; } }\n\n.stepkit-expandable-card { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); overflow: hidden; }\n.stepkit-expandable-card__trigger { align-items: center; background: transparent; border: 0; display: flex; gap: 14px; justify-content: space-between; min-height: 72px; padding: 18px 20px; text-align: left; width: 100%; }\n.stepkit-expandable-card__title { font-size: 18px; font-weight: 800; }\n.stepkit-expandable-card__icon { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 24px; }\n.stepkit-expandable-card__body { border-top: 1px solid var(--stepkit-border, #e3e4e9); color: var(--stepkit-muted, #626572); padding: 18px 20px 22px; }\n\n.stepkit-hero { background: linear-gradient(135deg, var(--stepkit-surface, #fff), var(--stepkit-accent-soft, #eeeafd)); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: calc(var(--stepkit-radius, 16px) + 6px); display: grid; gap: 20px; overflow: hidden; padding: clamp(32px, 7vw, 84px); position: relative; }\n.stepkit-hero::after { background: radial-gradient(circle, color-mix(in srgb, var(--stepkit-accent, #6950df) 38%, transparent), transparent 68%); content: \"\"; height: 400px; opacity: .42; position: absolute; right: -160px; top: -160px; width: 400px; }\n.stepkit-hero__content { max-width: 660px; position: relative; z-index: 1; }\n.stepkit-hero__eyebrow { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 12px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }\n.stepkit-hero__headline { font-size: clamp(38px, 7vw, 78px); letter-spacing: -.08em; line-height: .96; margin: 12px 0 18px; max-width: 10ch; }\n.stepkit-hero__body { color: var(--stepkit-muted, #626572); font-size: clamp(16px, 2vw, 20px); margin: 0; max-width: 48ch; }\n.stepkit-hero__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }\n.stepkit-hero__visual { min-height: 170px; position: relative; z-index: 1; }\n.stepkit-hero__orb { background: linear-gradient(135deg, var(--stepkit-accent, #6950df), color-mix(in srgb, var(--stepkit-accent, #6950df) 42%, #fff)); border-radius: 42% 58% 55% 45%; box-shadow: 0 30px 80px color-mix(in srgb, var(--stepkit-accent, #6950df) 32%, transparent); height: clamp(130px, 25vw, 240px); margin-left: auto; transform: rotate(-15deg); width: clamp(130px, 25vw, 240px); }\n\n.stepkit-feature-bento { display: grid; gap: var(--stepkit-space, 16px); grid-template-columns: repeat(4, minmax(0, 1fr)); }\n.stepkit-feature-bento__item { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); min-height: 180px; overflow: hidden; padding: clamp(18px, 3vw, 28px); position: relative; }\n.stepkit-feature-bento__item:nth-child(1) { grid-column: span 2; grid-row: span 2; min-height: 380px; }\n.stepkit-feature-bento__item:nth-child(2) { grid-column: span 2; }\n.stepkit-feature-bento__item:nth-child(3), .stepkit-feature-bento__item:nth-child(4) { grid-column: span 1; }\n.stepkit-feature-bento__glow { background: radial-gradient(circle, color-mix(in srgb, var(--stepkit-accent, #6950df) 55%, transparent), transparent 70%); height: 260px; opacity: .7; position: absolute; right: -80px; top: -70px; width: 260px; }\n.stepkit-feature-bento__title { font-size: 21px; letter-spacing: -.04em; margin: 0 0 8px; position: relative; }\n.stepkit-feature-bento__body { color: var(--stepkit-muted, #626572); margin: 0; max-width: 34ch; position: relative; }\n.stepkit-feature-bento__metric { bottom: 22px; color: var(--stepkit-accent, #6950df); font-size: clamp(38px, 7vw, 72px); font-weight: 850; letter-spacing: -.09em; line-height: 1; position: absolute; right: 22px; }\n@media (max-width: 760px) { .stepkit-feature-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); } .stepkit-feature-bento__item:nth-child(1), .stepkit-feature-bento__item:nth-child(2), .stepkit-feature-bento__item:nth-child(3), .stepkit-feature-bento__item:nth-child(4) { grid-column: span 2; grid-row: auto; min-height: 180px; } }\n\n.stepkit-pricing-comparison { display: grid; gap: var(--stepkit-space, 16px); grid-template-columns: repeat(3, minmax(0, 1fr)); }\n.stepkit-pricing-comparison > .stepkit-card__eyebrow { grid-column: 1 / -1; margin: 0; }\n.stepkit-pricing-comparison__plan { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); display: flex; flex-direction: column; padding: clamp(20px, 3vw, 28px); position: relative; }\n.stepkit-pricing-comparison__plan[data-recommended=\"true\"] { border-color: var(--stepkit-accent, #6950df); box-shadow: 0 14px 40px color-mix(in srgb, var(--stepkit-accent, #6950df) 15%, transparent); transform: translateY(-8px); }\n.stepkit-pricing-comparison__recommended { background: var(--stepkit-accent, #6950df); border-radius: 999px; color: #fff; font-size: 11px; font-weight: 800; padding: 5px 9px; position: absolute; right: 18px; text-transform: uppercase; top: 18px; }\n.stepkit-pricing-comparison__name { font-size: 18px; font-weight: 800; }\n.stepkit-pricing-comparison__description { color: var(--stepkit-muted, #626572); font-size: 14px; margin: 7px 0 20px; }\n.stepkit-pricing-comparison__price { font-size: 42px; font-weight: 850; letter-spacing: -.08em; line-height: 1; }\n.stepkit-pricing-comparison__interval { color: var(--stepkit-muted, #626572); font-size: 13px; margin-left: 5px; }\n.stepkit-pricing-comparison__features { border-top: 1px solid var(--stepkit-border, #e3e4e9); display: grid; gap: 10px; list-style: none; margin: 22px 0; padding: 18px 0 0; }\n.stepkit-pricing-comparison__feature { color: var(--stepkit-muted, #626572); font-size: 14px; }\n.stepkit-pricing-comparison__feature::before { color: var(--stepkit-accent-on-soft, #5137c7); content: \"✓\"; font-weight: 800; margin-right: 9px; }\n.stepkit-pricing-comparison__action { margin-top: auto; width: 100%; }\n@media (max-width: 760px) { .stepkit-pricing-comparison { grid-template-columns: 1fr; } .stepkit-pricing-comparison__plan[data-recommended=\"true\"] { transform: none; } }\n\n.stepkit-testimonials { display: grid; gap: var(--stepkit-space, 16px); grid-template-columns: repeat(3, minmax(0, 1fr)); }\n.stepkit-testimonials__item { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); display: grid; gap: 20px; padding: 22px; }\n.stepkit-testimonials__quote { font-size: 18px; letter-spacing: -.03em; margin: 0; }\n.stepkit-testimonials__author { align-items: center; display: flex; gap: 10px; }\n.stepkit-testimonials__avatar { align-items: center; background: var(--stepkit-accent-soft, #eeeafd); border-radius: 50%; color: var(--stepkit-accent-on-soft, #5137c7); display: flex; font-size: 12px; font-weight: 850; height: 34px; justify-content: center; width: 34px; }\n.stepkit-testimonials__name { font-size: 13px; font-weight: 800; }\n.stepkit-testimonials__role { color: var(--stepkit-muted, #626572); display: block; font-size: 12px; }\n@media (max-width: 760px) { .stepkit-testimonials { grid-template-columns: 1fr; } }\n\n.stepkit-faq { display: grid; gap: 28px; grid-template-columns: minmax(180px, .6fr) minmax(0, 1.4fr); }\n.stepkit-faq__intro h3 { font-size: clamp(28px, 5vw, 48px); letter-spacing: -.07em; line-height: 1; margin: 0 0 12px; }\n.stepkit-faq__intro p { color: var(--stepkit-muted, #626572); margin: 0; }\n@media (max-width: 700px) { .stepkit-faq { grid-template-columns: 1fr; } }\n\n.stepkit-footer { border-top: 1px solid var(--stepkit-border, #e3e4e9); display: grid; gap: 28px; grid-template-columns: 1.3fr repeat(3, 1fr); padding: 34px 0 12px; }\n.stepkit-footer__brand { font-size: 20px; font-weight: 850; letter-spacing: -.05em; }\n.stepkit-footer__note { color: var(--stepkit-muted, #626572); font-size: 13px; margin: 8px 0 0; max-width: 26ch; }\n.stepkit-footer__group h4 { font-size: 12px; margin: 0 0 10px; }\n.stepkit-footer__links { display: grid; gap: 7px; }\n.stepkit-footer__link { color: var(--stepkit-muted, #626572); font-size: 13px; text-decoration: none; }\n.stepkit-footer__link:hover { color: var(--stepkit-accent-on-soft, #5137c7); text-decoration: underline; }\n.stepkit-footer__copyright { border-top: 1px solid var(--stepkit-border, #e3e4e9); color: var(--stepkit-muted, #626572); font-size: 12px; grid-column: 1 / -1; padding-top: 14px; }\n@media (max-width: 700px) { .stepkit-footer { grid-template-columns: repeat(2, 1fr); } .stepkit-footer__brand { grid-column: 1 / -1; } }\n\n@keyframes stepkit-spin { to { transform: rotate(360deg); } }\n@keyframes stepkit-fade-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }\n@keyframes stepkit-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }\n@keyframes stepkit-reveal { to { opacity: 1; transform: none; } }\n@media (prefers-reduced-motion: reduce) { .stepkit, .stepkit *, .stepkit::before, .stepkit::after, .stepkit *::before, .stepkit *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }\n.stepkit-sr-only { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }\n\n/* Magic UI Border Beam adaptation: local CSS path, tokens, and motion bounds. */\n.stepkit-border-highlight { isolation: isolate; overflow: hidden; position: relative; }\n.stepkit-border-highlight::before { background: linear-gradient(120deg, color-mix(in srgb, var(--stepkit-beam-from, var(--stepkit-accent, #6950df)) 44%, transparent), transparent 58%, color-mix(in srgb, var(--stepkit-beam-to, var(--stepkit-accent-strong, #5137c7)) 40%, transparent)) border-box; border: var(--stepkit-beam-width, 1px) solid transparent; border-radius: inherit; content: \"\"; inset: 0; mask: linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0); mask-composite: exclude; opacity: .5; pointer-events: none; position: absolute; }\n.stepkit-border-highlight__beam { aspect-ratio: 1; background: radial-gradient(circle, var(--stepkit-beam-from, var(--stepkit-accent, #6950df)) 0 16%, var(--stepkit-beam-to, var(--stepkit-accent-strong, #5137c7)) 37%, transparent 72%); border-radius: 50%; filter: blur(1px); height: var(--stepkit-beam-size, 52px); left: calc(var(--stepkit-beam-size, 52px) * -.5); offset-distance: var(--stepkit-beam-start, 0%); offset-path: inset(0 round var(--stepkit-radius, 16px)); opacity: .8; pointer-events: none; position: absolute; top: calc(var(--stepkit-beam-size, 52px) * -.5); animation: stepkit-border-beam calc(var(--stepkit-beam-duration, 6) * 1s) linear calc(var(--stepkit-beam-delay, 0) * -1s) infinite; z-index: 0; }\n.stepkit-border-highlight[data-reverse=\"true\"] .stepkit-border-highlight__beam { animation-direction: reverse; }\n.stepkit-border-highlight[data-intensity=\"subtle\"] .stepkit-border-highlight__beam { opacity: .56; }\n.stepkit-border-highlight[data-intensity=\"strong\"] .stepkit-border-highlight__beam { opacity: .95; }\n.stepkit-border-highlight[data-paused=\"true\"] .stepkit-border-highlight__beam { animation-play-state: paused; }\n.stepkit-border-highlight > :not(.stepkit-border-highlight__beam) { position: relative; z-index: 1; }\n.stepkit-number-transition { color: var(--stepkit-fg, #17181c); font-variant-numeric: tabular-nums; font-weight: 800; }\n@keyframes stepkit-border-beam { from { offset-distance: var(--stepkit-beam-start, 0%); } to { offset-distance: calc(var(--stepkit-beam-start, 0%) + 100%); } }\n@media (prefers-reduced-motion: reduce) { .stepkit-border-highlight__beam { animation: none; offset-distance: var(--stepkit-beam-start, 0%); } }\n",
      "type": "registry:style",
      "target": "components/stepkit/styles.css"
    },
    {
      "path": "NOTICE.md",
      "content": "Stepkit 0.3.0\nCopyright (c) 2026 Vladislav Stepanov\n\nOriginal Stepkit portions in this release are licensed under the MIT License. Adapted portions identify their upstream licence and attribution in the copied source and in the entry-specific upstream notice files.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n",
      "type": "registry:file",
      "target": "NOTICE.md"
    },
    {
      "path": "PROVENANCE-stepkit-background-paths.md",
      "content": "# Stepkit provenance: Background paths\n\nRelease: Stepkit 0.3.0\nOrigin: Adapted\nLicence: MIT\n\nThis source is a local Stepkit adaptation. The upstream reference and licence evidence are recorded below; Stepkit-specific props, class names, tokens, and implementation constraints are maintained in the copied source.\n\n## Upstream evidence\n\n- KokonutUI Background Paths\n  - Source: https://raw.githubusercontent.com/kokonut-labs/kokonutui/b1ac155138b089ae7825022182b431da89de89be/components/kokonutui/background-paths.tsx\n  - Commit: b1ac155138b089ae7825022182b431da89de89be\n  - Snapshot SHA-256: a2b19a8ae00c0d74e27680ff6fd6410cac7d2bda60e9adcdc51cad66d1ed8fe9\n  - Source snapshot: provenance/kokonut-background-paths-b1ac155.tsx\n  - Notice snapshot: provenance/KOKONUTUI-LICENSE-b1ac155.md\n  - Licence: MIT\n\nSee `NOTICE.md` for the Stepkit MIT notice.\nSee `NOTICE-KOKONUTUI.md` for the upstream notice associated with KokonutUI Background Paths.\n",
      "type": "registry:file",
      "target": "PROVENANCE-stepkit-background-paths.md"
    },
    {
      "path": "NOTICE-KOKONUTUI.md",
      "content": "MIT License\n\nCopyright (c) 2025 kokonutUI\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n",
      "type": "registry:file",
      "target": "NOTICE-KOKONUTUI.md"
    }
  ],
  "docs": "# Background paths\n\nA flowing path field adapted from KokonutUI with a readable editorial layer and bounded motion.\n\nStepkit 0.3.0 · Adapted · MIT\n\nThe generated source keeps user text as text and includes the shared styles file.\n\n## Usage\n\n```tsx\n\"use client\";\n\nimport type { CSSProperties } from \"react\";\nimport { BackgroundPaths } from \"./components/stepkit/BackgroundPaths\";\nimport \"./components/stepkit/styles.css\";\nimport \"./components/stepkit/adapted-showcase.css\";\n\nconst themeStyle = {\"--stepkit-bg\":\"#111217\",\"--stepkit-surface\":\"#1b1c24\",\"--stepkit-surface-muted\":\"#22232d\",\"--stepkit-fg\":\"#f6f5fb\",\"--stepkit-muted\":\"#a4a6b4\",\"--stepkit-border\":\"#343641\",\"--stepkit-border-strong\":\"#565866\",\"--stepkit-code\":\"#20212a\",\"--stepkit-shadow\":\"0 24px 70px rgba(0, 0, 0, .34)\",\"--stepkit-accent\":\"#6950df\",\"--stepkit-accent-strong\":\"#5137c7\",\"--stepkit-accent-soft\":\"#302760\",\"--stepkit-accent-on-soft\":\"#c8bcff\",\"--stepkit-accent-text\":\"#ffffff\",\"--stepkit-error\":\"#ff9ba9\",\"--stepkit-placeholder\":\"#b8bac6\",\"--stepkit-radius\":\"16px\",\"--stepkit-space\":\"16px\",\"--stepkit-control-height\":\"44px\",\"--stepkit-font-sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", sans-serif\"} as CSSProperties;\n\nexport default function Example() {\n  return (\n    <div className=\"stepkit-theme\" data-stepkit-preset=\"modern\" style={themeStyle}>\n      <BackgroundPaths\n      title={\"Make room for a moving idea\"}\n      description={\"Flowing paths add depth without taking attention away from the work.\"}\n      paused={false}\n      />\n    </div>\n  );\n}\n```\n\n## Dependencies\n\n- react@19.3.0\n- react-dom@19.3.0\n\nSee `NOTICE.md`, `PROVENANCE-stepkit-background-paths.md`, `NOTICE-KOKONUTUI.md` for the notices and provenance that must travel with copied source.\n",
  "categories": [
    "effects"
  ],
  "meta": {
    "stepkit": {
      "version": "0.3.0",
      "slug": "background-paths",
      "componentName": "BackgroundPaths",
      "origin": "Adapted",
      "license": "MIT",
      "sourceFiles": [
        "components/BackgroundPaths.tsx",
        "components/adapted-showcase.css",
        "components/styles.css"
      ],
      "provenance": {
        "kind": "adapted",
        "upstream": [
          {
            "name": "KokonutUI Background Paths",
            "url": "https://raw.githubusercontent.com/kokonut-labs/kokonutui/b1ac155138b089ae7825022182b431da89de89be/components/kokonutui/background-paths.tsx",
            "commit": "b1ac155138b089ae7825022182b431da89de89be",
            "sha256": "a2b19a8ae00c0d74e27680ff6fd6410cac7d2bda60e9adcdc51cad66d1ed8fe9",
            "license": "MIT",
            "noticeFile": "NOTICE-KOKONUTUI.md",
            "noticePath": "provenance/KOKONUTUI-LICENSE-b1ac155.md",
            "sourceSnapshot": "provenance/kokonut-background-paths-b1ac155.tsx"
          }
        ]
      },
      "upstream": [
        {
          "name": "KokonutUI Background Paths",
          "url": "https://raw.githubusercontent.com/kokonut-labs/kokonutui/b1ac155138b089ae7825022182b431da89de89be/components/kokonutui/background-paths.tsx",
          "commit": "b1ac155138b089ae7825022182b431da89de89be",
          "sha256": "a2b19a8ae00c0d74e27680ff6fd6410cac7d2bda60e9adcdc51cad66d1ed8fe9",
          "license": "MIT",
          "noticeFile": "NOTICE-KOKONUTUI.md",
          "noticePath": "provenance/KOKONUTUI-LICENSE-b1ac155.md",
          "sourceSnapshot": "provenance/kokonut-background-paths-b1ac155.tsx"
        }
      ],
      "noticeFiles": [
        "NOTICE.md",
        "PROVENANCE-stepkit-background-paths.md",
        "NOTICE-KOKONUTUI.md"
      ]
    }
  }
}
