@mean-weasel/lineage 0.1.21 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/MANUAL_INSTALL_DOGFOOD.md +340 -0
- package/README.md +38 -9
- package/dist/runtime-build.json +4 -4
- package/dist/web/assets/{app-DX744BME.js → app-D-7R33Mc.js} +1 -1
- package/dist/web/assets/landing-DIjBBL33.js +2 -0
- package/dist/web/assets/{landing-Dmkx4R_N.css → landing-wy4L-yBm.css} +1 -1
- package/dist/web/index.html +1 -1
- package/dist/web/landing/index.html +2 -2
- package/package.json +2 -1
- package/dist/web/assets/landing-CPZnU7M8.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e,c as t,d as n,i as r,l as i,n as a,o,p as s,r as c,s as l,t as u}from"./jsx-runtime-DAFSxiwi.js";var d=t(`ArrowDownRight`,[[`path`,{d:`m7 7 10 10`,key:`1fmybs`}],[`path`,{d:`M17 7v10H7`,key:`6fjiku`}]]),f=t(`Check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),p=t(`GitBranch`,[[`line`,{x1:`6`,x2:`6`,y1:`3`,y2:`15`,key:`17qcm7`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`path`,{d:`M18 9a9 9 0 0 1-9 9`,key:`n2h4wq`}]]),m=t(`MousePointer2`,[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`,key:`edeuup`}]]),h=t(`Pause`,[[`rect`,{x:`14`,y:`4`,width:`4`,height:`16`,rx:`1`,key:`zuxfzm`}],[`rect`,{x:`6`,y:`4`,width:`4`,height:`16`,rx:`1`,key:`1okwgv`}]]),g=s(n(),1),_=i(),v=`/assets/agent-shared-state-DOfpTLiw.webp`,y=`/assets/agent-to-canvas-DtIu_cPq.mp4`,b=`/assets/attempt-history-D6wdic6n.webp`,x=`/assets/branching-tree-B8I5_S6D.png`,S=`/assets/canvas-cli-DHBacq7r.png`,C=`/assets/hero-agent-sync-poster-zBB3KpbO.png`,w=`/assets/hero-agent-sync-D8ibW83E.mp4`,T=`/assets/hero-board-DG3ED4AW.webp`,E=`/assets/hero-lineage-growth-Bsl9tiq-.mp4`,D=`/assets/hero-trace-connections-Bb52ABBc.mp4`,O=`/assets/human-selection-BdDBDE-I.webp`,k=`/assets/human-to-agent-D1z92ZO9.mp4`,A=`/assets/reroll-history-DQcEH42R.mp4`,j=[{id:`hero-lineage-growth`,eyebrow:`From agent to canvas`,title:`Turn agent output into visual creative history.`,description:`Every new asset joins the lineage instead of disappearing into a chat.`,kind:`video`,src:E,poster:T,fit:`contain`},{id:`hero-trace-connections`,eyebrow:`Context stays connected`,title:`Keep the reasoning behind the visual work.`,description:`Prompts, branches, and decisions remain attached to every result.`,kind:`video`,src:D,poster:x,fit:`contain`},{id:`hero-agent-sync`,eyebrow:`One shared creative state`,title:`Humans and agents continue from the same place.`,description:`New agent work returns to the canvas, ready for the next decision.`,kind:`video`,src:w,poster:C,fit:`contain`}],M={"human-to-agent":{id:`human-to-agent`,eyebrow:`Human → agent`,title:`Send the exact creative context to Codex.`,description:`A canvas selection becomes actionable agent context.`,kind:`video`,src:k,poster:S,fit:`contain`},"agent-to-canvas":{id:`agent-to-canvas`,eyebrow:`Agent → canvas`,title:`Bring agent results back into the shared state.`,description:`New agent output returns to the same visual workspace.`,kind:`video`,src:y,poster:v,fit:`contain`},"trace-tree":{id:`trace-tree`,eyebrow:`Lineage graph`,title:`Every branch remains visible.`,description:`The graph preserves the path from source to variation.`,kind:`image`,src:x,fit:`cover`},"selection-still":{id:`selection-still`,eyebrow:`Selection + direction`,title:`Choose exactly where the work continues.`,description:`Inspect, select, and turn the decision into precise context.`,kind:`image`,src:O,fit:`cover`,position:`left`},"reroll-history":{id:`reroll-history`,eyebrow:`Attempt history`,title:`Ask for another pass without losing the first.`,description:`The new attempt returns without replacing earlier work.`,kind:`video`,src:A,poster:b,fit:`cover`}},N=u(),P=[`npm install -g @mean-weasel/lineage@latest`,`lineage-channel install stable`,`lineage-stable runtime doctor --json`,`lineage-stable profile init --profile team-production --confirm-write --json`,`lineage-stable runtime doctor --json`,`lineage-stable profile doctor --profile team-production --json`,`lineage-stable db info --profile team-production --json`,`lineage-stable start --profile team-production`].join(` &&
|
|
2
|
+
`);function F(){let[e,t]=(0,g.useState)(!1);async function n(){try{await navigator.clipboard.writeText(P),t(!0),window.setTimeout(()=>t(!1),1800)}catch{t(!1)}}return(0,N.jsxs)(`div`,{className:`landing-shell`,children:[(0,N.jsxs)(`header`,{className:`landing-nav`,children:[(0,N.jsxs)(`a`,{"aria-label":`Lineage home`,className:`landing-brand`,href:`#top`,children:[(0,N.jsxs)(`span`,{"aria-hidden":`true`,className:`landing-brand-mark`,children:[(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{})]}),(0,N.jsx)(`span`,{children:`LINEAGE`})]}),(0,N.jsxs)(`nav`,{"aria-label":`Landing page`,children:[(0,N.jsx)(`a`,{href:`#loop`,children:`How it works`}),(0,N.jsx)(`a`,{href:`#features`,children:`What it enables`}),(0,N.jsx)(`a`,{href:`#install`,children:`Install`})]}),(0,N.jsxs)(`a`,{className:`nav-cta`,href:`https://github.com/mean-weasel/lineage`,rel:`noreferrer`,target:`_blank`,children:[`View on GitHub `,(0,N.jsx)(d,{"aria-hidden":`true`,size:16})]})]}),(0,N.jsxs)(`main`,{id:`top`,children:[(0,N.jsxs)(`section`,{className:`hero-section`,children:[(0,N.jsxs)(`div`,{className:`hero-grid`,"aria-hidden":`true`,children:[(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{})]}),(0,N.jsxs)(`div`,{className:`hero-copy`,children:[(0,N.jsxs)(`p`,{className:`section-index`,children:[(0,N.jsx)(`span`,{children:`01`}),` Human × agent creative work`]}),(0,N.jsx)(`h1`,{children:`The UX where humans and agents shape visual work together.`}),(0,N.jsx)(`p`,{className:`hero-summary`,children:`Lineage is the shared visual workspace where humans and agents create, review, and evolve creative assets together.`}),(0,N.jsxs)(`div`,{className:`hero-actions`,children:[(0,N.jsxs)(`a`,{className:`primary-cta`,href:`#loop`,children:[`See the collaboration loop `,(0,N.jsx)(l,{"aria-hidden":`true`,size:18})]}),(0,N.jsx)(`a`,{className:`text-cta`,href:`#install`,children:`Install Lineage`})]})]}),(0,N.jsx)(`div`,{className:`hero-media-wrap`,children:(0,N.jsx)(I,{})})]}),(0,N.jsxs)(`section`,{className:`loop-section`,id:`loop`,children:[(0,N.jsxs)(`div`,{className:`loop-heading`,children:[(0,N.jsxs)(`p`,{className:`section-index`,children:[(0,N.jsx)(`span`,{children:`02`}),` Context travels both ways`]}),(0,N.jsx)(`h2`,{children:`One creative state for humans and agents.`}),(0,N.jsxs)(`div`,{className:`loop-copy`,children:[(0,N.jsx)(`p`,{className:`loop-problem`,children:`Chat is the right UX for directing agent-driven creative work. But it isn’t built to hold the state of that work.`}),(0,N.jsx)(`p`,{children:`Lineage preserves every asset, path, prompt, relationship, and decision in a shared record—precise enough for agents to retrieve through the CLI and organized visually for humans to review and direct.`})]})]}),(0,N.jsxs)(`div`,{className:`interface-grid`,children:[(0,N.jsxs)(`article`,{className:`interface-card agent-card`,children:[(0,N.jsx)(`div`,{className:`interface-number`,children:`A`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`p`,{className:`card-eyebrow`,children:`For agents`}),(0,N.jsx)(`h3`,{children:`Never lose the state behind the work.`}),(0,N.jsx)(`p`,{children:`Every asset, path, prompt, iteration, and relationship stays available so the work can continue accurately.`})]}),(0,N.jsx)(L,{definition:M[`agent-to-canvas`],showCaption:!0})]}),(0,N.jsxs)(`div`,{className:`loop-bridge`,"aria-label":`Assets, context, selections, and annotations move through one creative state`,children:[(0,N.jsx)(`span`,{children:`Assets + context`}),(0,N.jsx)(`div`,{className:`bridge-line`,children:(0,N.jsx)(l,{"aria-hidden":`true`,size:18})}),(0,N.jsxs)(`strong`,{children:[`ONE CREATIVE`,(0,N.jsx)(`br`,{}),`STATE`]}),(0,N.jsx)(`div`,{className:`bridge-line reverse`,children:(0,N.jsx)(l,{"aria-hidden":`true`,size:18})}),(0,N.jsx)(`span`,{children:`Selections + annotations`})]}),(0,N.jsxs)(`article`,{className:`interface-card human-card`,children:[(0,N.jsx)(`div`,{className:`interface-number`,children:`H`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`p`,{className:`card-eyebrow`,children:`For humans`}),(0,N.jsx)(`h3`,{children:`Keep your creative history organized.`}),(0,N.jsx)(`p`,{children:`Review and compare the history, then use selections and annotations to direct the next iteration.`})]}),(0,N.jsx)(L,{definition:M[`human-to-agent`],showCaption:!0})]})]})]}),(0,N.jsxs)(`section`,{className:`features-section`,id:`features`,children:[(0,N.jsxs)(`div`,{className:`features-heading`,children:[(0,N.jsxs)(`p`,{className:`section-index`,children:[(0,N.jsx)(`span`,{children:`03`}),` What it enables`]}),(0,N.jsx)(`h2`,{children:`A shared creative history you and your agents can build on.`}),(0,N.jsx)(`p`,{children:`Keep the useful context behind every asset available, understandable, and ready for the next human or agent action.`})]}),(0,N.jsxs)(`div`,{className:`feature-grid`,children:[(0,N.jsx)(z,{icon:(0,N.jsx)(p,{}),media:M[`trace-tree`],number:`01`,title:`Trace every iteration`,children:`Follow an asset from its origin through branches, selections, and final campaign formats.`}),(0,N.jsx)(z,{icon:(0,N.jsx)(m,{}),media:M[`selection-still`],number:`02`,title:`Continue from the exact asset`,children:`Select any useful point in the lineage and bring that context into the next agent session.`}),(0,N.jsx)(z,{icon:(0,N.jsx)(a,{}),media:M[`reroll-history`],number:`03`,title:`Keep every agent attempt tied to your decisions`,children:`Review another pass without losing earlier results, prompts, relationships, or human direction.`})]}),(0,N.jsxs)(`div`,{className:`final-cta`,id:`install`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`p`,{className:`section-index`,children:[(0,N.jsx)(`span`,{children:`→`}),` Local-first and agent-ready`]}),(0,N.jsx)(`h3`,{children:`One durable home for visual work made with your agents.`})]}),(0,N.jsxs)(`div`,{className:`install-panel`,children:[(0,N.jsxs)(`div`,{className:`install-command`,children:[(0,N.jsx)(`span`,{"aria-hidden":`true`,children:`$`}),(0,N.jsx)(`pre`,{children:(0,N.jsx)(`code`,{children:P})}),(0,N.jsxs)(`button`,{"aria-label":`Copy first-run commands`,onClick:()=>void n(),type:`button`,children:[e?(0,N.jsx)(f,{"aria-hidden":`true`,size:18}):(0,N.jsx)(r,{"aria-hidden":`true`,size:18}),e?`Copied`:`Copy first-run commands`]})]}),(0,N.jsxs)(`a`,{className:`install-guide-link`,href:`https://github.com/mean-weasel/lineage#first-run`,rel:`noreferrer`,target:`_blank`,children:[`Read the complete first-run guide `,(0,N.jsx)(d,{"aria-hidden":`true`,size:15})]}),(0,N.jsxs)(`div`,{className:`install-meta`,children:[(0,N.jsx)(`span`,{children:`Local-first`}),(0,N.jsx)(`span`,{children:`MIT licensed`}),(0,N.jsx)(`span`,{children:`Codex plugin`}),(0,N.jsx)(`span`,{children:`CLI access`})]}),(0,N.jsxs)(`a`,{className:`primary-cta dark`,href:`https://github.com/mean-weasel/lineage`,rel:`noreferrer`,target:`_blank`,children:[`Explore Lineage on GitHub `,(0,N.jsx)(d,{"aria-hidden":`true`,size:18})]})]})]})]})]}),(0,N.jsxs)(`footer`,{children:[(0,N.jsxs)(`a`,{className:`landing-brand`,href:`#top`,children:[(0,N.jsxs)(`span`,{"aria-hidden":`true`,className:`landing-brand-mark`,children:[(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{})]}),(0,N.jsx)(`span`,{children:`LINEAGE`})]}),(0,N.jsx)(`p`,{children:`The shared visual workspace for humans and agents.`}),(0,N.jsxs)(`a`,{href:`https://github.com/mean-weasel/lineage`,rel:`noreferrer`,target:`_blank`,children:[`GitHub `,(0,N.jsx)(d,{"aria-hidden":`true`,size:14})]})]})]})}function I(){let t=(0,g.useRef)(null),[n,r]=(0,g.useState)(0),[i,a]=(0,g.useState)(!0),[s,l]=(0,g.useState)(!1),[u,d]=(0,g.useState)(!1),[f,p]=(0,g.useState)(!1),[m,_]=(0,g.useState)(()=>typeof document>`u`||document.visibilityState===`visible`),[v,y]=(0,g.useState)(!1),[b,x]=(0,g.useState)(null),S=j[n],C=b?j[b.fromIndex]:null,w=b?.direction===1?`next`:`previous`,T=i&&!s&&!u&&f&&m&&!v&&!b;(0,g.useEffect)(()=>{let e=t.current;if(!e)return;if(!(`IntersectionObserver`in window)){p(!0);return}let n=new IntersectionObserver(([e])=>{p(!!(e&&e.intersectionRatio>=.35))},{threshold:.35});return n.observe(e),()=>n.disconnect()},[]),(0,g.useEffect)(()=>{let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t=()=>y(e.matches);return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,g.useEffect)(()=>{let e=()=>_(document.visibilityState===`visible`);return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),(0,g.useEffect)(()=>{if(!T)return;let e=window.setTimeout(()=>{x({direction:1,fromIndex:n,initiatedBy:`automatic`}),r((n+1)%j.length)},15e3);return()=>window.clearTimeout(e)},[n,T]),(0,g.useEffect)(()=>{if(!b)return;let e=window.setTimeout(()=>x(null),700);return()=>window.clearTimeout(e)},[b]);function E(e){D((n+e+j.length)%j.length,e)}function D(e,t){if(!(b||e===n)){if(window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches){r(e);return}x({direction:t,fromIndex:n,initiatedBy:`manual`}),r(e)}}return(0,N.jsxs)(`div`,{"aria-label":`Lineage product tour`,"aria-roledescription":`carousel`,className:`hero-carousel`,onBlurCapture:e=>{e.currentTarget.contains(e.relatedTarget)||d(!1)},onFocusCapture:()=>d(!0),onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`ArrowLeft`&&E(-1),e.key===`ArrowRight`&&E(1))},role:`region`,ref:t,tabIndex:0,children:[(0,N.jsx)(`div`,{className:`hero-carousel-media-viewport`,children:(0,N.jsxs)(`div`,{className:`hero-carousel-media-track ${b?`carousel-track-${w}`:``}`,onAnimationEnd:e=>{e.currentTarget===e.target&&x(null)},children:[b?.direction===-1&&(0,N.jsx)(`div`,{className:`hero-carousel-media-slide`,children:(0,N.jsx)(L,{definition:S,hero:!0})},S.id),(0,N.jsx)(`div`,{"aria-hidden":C?`true`:void 0,className:`hero-carousel-media-slide`,children:(0,N.jsx)(L,{definition:C??S,hero:!0,showPlaybackControl:!C})},(C??S).id),b?.direction===1&&(0,N.jsx)(`div`,{className:`hero-carousel-media-slide`,children:(0,N.jsx)(L,{definition:S,hero:!0})},S.id)]})}),(0,N.jsxs)(`div`,{"aria-live":T||b?.initiatedBy===`automatic`?`off`:`polite`,className:`hero-carousel-caption-viewport`,children:[C&&(0,N.jsxs)(`div`,{"aria-hidden":`true`,className:`hero-carousel-caption carousel-caption-exit carousel-${w}`,children:[(0,N.jsx)(`span`,{className:`media-eyebrow`,children:C.eyebrow}),(0,N.jsx)(`strong`,{children:C.title}),(0,N.jsx)(`small`,{children:C.description})]},C.id),(0,N.jsxs)(`div`,{className:`hero-carousel-caption ${b?`carousel-caption-enter carousel-${w}`:``}`,children:[(0,N.jsx)(`span`,{className:`media-eyebrow`,children:S.eyebrow}),(0,N.jsx)(`strong`,{children:S.title}),(0,N.jsx)(`small`,{children:S.description})]},S.id)]}),(0,N.jsxs)(`div`,{className:`hero-carousel-controls`,children:[(0,N.jsx)(`button`,{"aria-label":`Previous carousel slide`,onClick:()=>E(-1),type:`button`,children:(0,N.jsx)(o,{"aria-hidden":`true`,size:19})}),(0,N.jsxs)(`div`,{className:`carousel-center-controls`,children:[(0,N.jsx)(`button`,{"aria-label":i?`Pause carousel rotation`:`Resume carousel rotation`,className:`carousel-autoplay-toggle`,onClick:()=>a(e=>!e),type:`button`,children:i?(0,N.jsx)(h,{"aria-hidden":`true`,size:13}):(0,N.jsx)(c,{"aria-hidden":`true`,size:13})}),(0,N.jsx)(`div`,{"aria-label":`Slide ${n+1} of ${j.length}`,className:`carousel-progress`,children:j.map((e,t)=>(0,N.jsx)(`button`,{"aria-current":t===n?`true`:void 0,"aria-label":`Show slide ${t+1}: ${e.title}`,className:t===n?`active`:``,onClick:()=>D(t,t>n?1:-1),type:`button`},e.id))})]}),(0,N.jsx)(`button`,{"aria-label":`Next carousel slide`,onClick:()=>E(1),type:`button`,children:(0,N.jsx)(e,{"aria-hidden":`true`,size:19})})]})]})}function L({definition:e,hero:t=!1,showCaption:n=!1,showPlaybackControl:r=!0}){return(0,N.jsxs)(`figure`,{className:`media-slot media-slot-ready ${`media-fit-${e.fit??`cover`}`} ${e.position===`left`?`media-position-left`:``} ${t?`media-slot-hero`:``}`,"data-media-slot":e.id,children:[e.kind===`video`?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(R,{definition:e,showPlaybackControl:r}),e.poster&&(0,N.jsx)(`img`,{alt:``,"aria-hidden":`true`,className:`reduced-motion-poster`,src:e.poster})]}):(0,N.jsx)(`img`,{alt:e.description,loading:`lazy`,src:e.src}),n&&(0,N.jsxs)(`figcaption`,{"aria-live":t?`polite`:void 0,children:[(0,N.jsx)(`span`,{className:`media-eyebrow`,children:e.eyebrow}),(0,N.jsx)(`strong`,{children:e.title}),(0,N.jsx)(`small`,{children:e.description})]})]})}function R({definition:e,showPlaybackControl:t}){let n=(0,g.useRef)(null),[r,i]=(0,g.useState)(!1),[a,o]=(0,g.useState)(!1);(0,g.useEffect)(()=>{let e=n.current;if(!e||window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;if(a){e.pause();return}if(!(`IntersectionObserver`in window)){e.play().catch(()=>void 0);return}let t=new IntersectionObserver(([t])=>{t?.isIntersecting?e.play().catch(()=>void 0):e.pause()},{threshold:.45});return t.observe(e),()=>{t.disconnect(),e.pause()}},[e.src,a]);function s(){let e=n.current;e&&(e.paused?(o(!1),e.play().catch(()=>void 0)):(o(!0),e.pause()))}return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`video`,{"aria-label":e.description,loop:!0,muted:!0,onPause:()=>i(!1),onPlay:()=>i(!0),playsInline:!0,poster:e.poster,preload:`metadata`,ref:n,src:e.src}),t&&(0,N.jsx)(`button`,{"aria-label":`${r?`Pause`:`Play`} ${e.title}`,className:`video-toggle`,onClick:s,type:`button`,children:r?(0,N.jsx)(h,{"aria-hidden":`true`,size:16}):(0,N.jsx)(c,{"aria-hidden":`true`,fill:`currentColor`,size:16})})]})}function z({children:e,icon:t,media:n,number:r,title:i}){return(0,N.jsxs)(`article`,{className:`feature-card`,children:[(0,N.jsxs)(`div`,{className:`feature-top`,children:[(0,N.jsx)(`span`,{children:r}),t]}),(0,N.jsx)(`h3`,{children:i}),(0,N.jsx)(`p`,{children:e}),(0,N.jsx)(`div`,{className:`feature-media`,children:(0,N.jsx)(L,{definition:n})})]})}(0,_.createRoot)(document.getElementById(`landing-root`)).render((0,N.jsx)(g.StrictMode,{children:(0,N.jsx)(F,{})}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--landing-ink:#121212;--landing-paper:#f3f0e8;--landing-cream:#fffdf6;--landing-red:#f04432;--landing-yellow:#f6c643;--landing-mint:#b9ddd2;--landing-blue:#2646d8;--landing-line:#1212122e;color:var(--landing-ink);background:var(--landing-paper);font-synthesis:none;font-family:Helvetica Neue,Arial Nova,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:linear-gradient(90deg, transparent calc(50% - .5px), #1212120b 50%, transparent calc(50% + .5px)), var(--landing-paper);min-width:320px;margin:0}button,a{font:inherit}a{color:inherit}button{cursor:pointer}.landing-shell{overflow:hidden}.landing-nav{z-index:10;border-bottom:1px solid var(--landing-ink);background:#f3f0e8f0;grid-template-columns:minmax(160px,1fr) auto minmax(160px,1fr);align-items:center;min-height:74px;padding:0 3.2vw;display:grid;position:relative}.landing-brand{width:fit-content;color:var(--landing-ink);letter-spacing:.08em;justify-self:start;align-items:center;gap:11px;font-size:14px;font-weight:900;text-decoration:none;display:inline-flex}.landing-brand-mark{border:1px solid var(--landing-ink);grid-template-columns:repeat(3,1fr);gap:3px;width:30px;height:30px;padding:4px;display:grid;position:relative}.landing-brand-mark span{background:var(--landing-ink)}.landing-brand-mark span:nth-child(2){background:var(--landing-red)}.landing-brand-mark span:nth-child(3){background:var(--landing-yellow)}.landing-nav nav{gap:clamp(18px,3vw,46px);display:flex}.landing-nav nav a,.nav-cta{font-size:12px;font-weight:750;text-decoration:none}.landing-nav nav a:hover{text-underline-offset:5px;text-decoration:underline}.nav-cta{border-bottom:1px solid var(--landing-ink);justify-self:end;align-items:center;gap:7px;padding:6px 0;display:inline-flex}.hero-section{border-bottom:1px solid var(--landing-ink);grid-template-columns:minmax(0,.92fr) minmax(460px,1.08fr);min-height:calc(100vh - 74px);display:grid;position:relative}.hero-grid{pointer-events:none;grid-template-columns:repeat(4,1fr);display:grid;position:absolute;inset:0}.hero-grid span{border-right:1px solid #12121214}.hero-copy{z-index:1;flex-direction:column;justify-content:center;padding:clamp(52px,5vw,76px) clamp(32px,5vw,84px);display:flex;position:relative}.section-index{letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:11px;margin:0 0 28px;font-size:11px;font-weight:800;display:flex}.section-index span{border:1px solid;border-radius:50%;place-items:center;width:27px;height:27px;font-size:9px;display:grid}.hero-copy h1{letter-spacing:-.075em;max-width:760px;margin:0;font-size:clamp(58px,5.35vw,86px);font-weight:900;line-height:.86}.hero-summary{letter-spacing:-.025em;max-width:650px;margin:30px 0 0;font-size:clamp(18px,1.45vw,24px);font-weight:580;line-height:1.22}.hero-actions{align-items:center;gap:24px;margin-top:30px;display:flex}.primary-cta{border:1px solid var(--landing-ink);background:var(--landing-red);min-height:52px;color:var(--landing-ink);box-shadow:5px 5px 0 var(--landing-ink);justify-content:center;align-items:center;gap:14px;padding:0 19px;font-size:13px;font-weight:850;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex}.primary-cta:hover{box-shadow:3px 3px 0 var(--landing-ink);transform:translate(2px,2px)}.primary-cta.dark{background:var(--landing-ink);color:var(--landing-cream);box-shadow:5px 5px 0 var(--landing-red)}.text-cta{text-underline-offset:5px;font-size:13px;font-weight:850}.hero-media-wrap{border-left:1px solid var(--landing-ink);background:var(--landing-yellow);align-items:center;padding:clamp(52px,6vw,96px) clamp(28px,4.8vw,80px);display:flex;position:relative}.hero-carousel{outline:none;gap:14px;width:100%;display:grid}.hero-carousel:focus-visible .media-slot{outline:3px solid var(--landing-blue);outline-offset:5px}.hero-carousel-media-viewport{margin:-5px -13px -13px -5px;padding:5px 13px 13px 5px;position:relative;overflow:hidden}.hero-carousel-media-track{width:100%;display:flex}.hero-carousel-media-slide{flex:0 0 100%;min-width:0}.hero-carousel-media-track[class*=carousel-track-]{will-change:transform;width:200%}.hero-carousel-media-track[class*=carousel-track-] .hero-carousel-media-slide{flex-basis:50%}.hero-carousel-media-track[class*=carousel-track-] .hero-carousel-media-slide[aria-hidden=true]{pointer-events:none}.carousel-track-next{animation:.58s cubic-bezier(.65,0,.35,1) both carousel-track-next}.carousel-track-previous{animation:.58s cubic-bezier(.65,0,.35,1) both carousel-track-previous}.hero-carousel-caption-viewport{margin:-4px -8px -8px -4px;padding:4px 8px 8px 4px;position:relative;overflow:hidden}.hero-carousel-caption{border:1px solid var(--landing-ink);background:var(--landing-cream);box-shadow:4px 4px 0 var(--landing-ink);will-change:opacity;grid-template-columns:minmax(130px,.62fr) minmax(0,1fr);gap:4px 18px;padding:13px 15px;display:grid}.hero-carousel-caption.carousel-caption-exit{z-index:1;pointer-events:none;position:absolute;inset:4px 8px 8px 4px}.hero-carousel-caption.carousel-caption-enter{z-index:2;position:relative}.carousel-caption-enter{animation:.46s 60ms both carousel-caption-enter}.carousel-caption-exit{animation:.4s both carousel-caption-exit}@keyframes carousel-track-next{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes carousel-track-previous{0%{transform:translate(-50%)}to{transform:translate(0)}}@keyframes carousel-caption-enter{0%{opacity:0}to{opacity:1}}@keyframes carousel-caption-exit{0%{opacity:1}to{opacity:0}}.hero-carousel-caption .media-eyebrow{grid-row:1/span 2;align-self:center}.hero-carousel-caption strong{letter-spacing:-.02em;font-size:15px}.hero-carousel-caption small{font-size:11px;line-height:1.35}.hero-carousel-controls{grid-template-columns:42px 1fr 42px;align-items:center;gap:12px;display:grid}.hero-carousel-controls>button{border:1px solid var(--landing-ink);background:var(--landing-cream);width:42px;height:42px;color:var(--landing-ink);box-shadow:3px 3px 0 var(--landing-ink);place-items:center;transition:transform .15s,box-shadow .15s;display:grid}.hero-carousel-controls>button:hover{box-shadow:2px 2px 0 var(--landing-ink);transform:translate(1px,1px)}.carousel-center-controls{grid-template-columns:28px auto 28px;justify-self:center;align-items:center;gap:12px;display:grid}.carousel-center-controls:after{content:"";width:28px}.carousel-autoplay-toggle{border:1px solid var(--landing-ink);background:var(--landing-cream);width:28px;height:28px;color:var(--landing-ink);border-radius:50%;place-items:center;padding:0;display:grid}.carousel-autoplay-toggle:hover{background:var(--landing-mint)}.carousel-autoplay-toggle:focus-visible{outline:3px solid var(--landing-blue);outline-offset:2px}.carousel-progress{align-items:center;gap:7px;display:flex}.carousel-progress button{border:1px solid var(--landing-ink);background:var(--landing-cream);border-radius:999px;width:28px;height:8px;padding:0}.carousel-progress button.active{background:var(--landing-red)}.media-slot{border:1px solid var(--landing-ink);background:var(--landing-cream);aspect-ratio:16/10;width:100%;min-width:0;box-shadow:8px 8px 0 var(--landing-ink);margin:0;position:relative;overflow:hidden}.media-slot-hero{aspect-ratio:16/11}.media-slot-ready img,.media-slot-ready video{object-fit:cover;width:100%;max-width:100%;height:100%;display:block}.media-slot-ready.media-fit-contain img,.media-slot-ready.media-fit-contain video{object-fit:contain;background:#f5f8f5}.media-slot-ready.media-position-left img,.media-slot-ready.media-position-left video{object-position:left center}.media-slot-ready .reduced-motion-poster{display:none}.video-toggle{z-index:5;border:1px solid var(--landing-ink);width:38px;height:38px;color:var(--landing-ink);box-shadow:3px 3px 0 var(--landing-ink);background:#fffdf6f0;border-radius:50%;place-items:center;display:grid;position:absolute;top:12px;right:12px}.video-toggle:hover{background:var(--landing-mint)}.video-toggle:focus-visible{outline:3px solid var(--landing-blue);outline-offset:3px}.placeholder-canvas{background:linear-gradient(#1212120f 1px,#0000 1px) 0 0/32px 32px,linear-gradient(90deg,#1212120f 1px,#0000 1px) 0 0/32px 32px,linear-gradient(145deg,#fefcf5,#ddd8cd);position:absolute;inset:0}.placeholder-node{z-index:2;aspect-ratio:4/3;border:1px solid var(--landing-ink);background:var(--landing-cream);width:21%;padding:7px;display:block;position:absolute}.placeholder-node i{background:var(--landing-yellow);width:100%;height:100%;display:block}.placeholder-node.node-root{top:40%;left:8%}.placeholder-node.node-a{top:14%;left:39%}.placeholder-node.node-b{top:60%;left:39%}.placeholder-node.node-c{top:34%;right:8%}.placeholder-node.node-a i{background:var(--landing-red)}.placeholder-node.node-b i{background:var(--landing-mint)}.placeholder-node.node-c i{background:var(--landing-blue)}.placeholder-edge{z-index:1;background:var(--landing-ink);transform-origin:0;height:1px;display:block;position:absolute}.edge-a{width:20%;top:46%;left:27%;transform:rotate(-27deg)}.edge-b{width:19%;top:53%;left:27%;transform:rotate(29deg)}.edge-c{width:22%;top:40%;left:58%;transform:rotate(8deg)}.media-slot figcaption{z-index:3;border:1px solid var(--landing-ink);background:#fffdf6f2;grid-template-columns:1fr auto;gap:2px 12px;padding:11px 13px;display:grid;position:absolute;bottom:14px;left:14px;right:14px}.media-slot figcaption strong{letter-spacing:-.02em;font-size:14px}.media-slot figcaption small{grid-column:1/-1;max-width:90%;font-size:10px;line-height:1.3}.media-eyebrow{letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:850}.play-badge{z-index:4;border:1px solid var(--landing-ink);background:var(--landing-red);border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:14px;right:14px}.features-heading h2{letter-spacing:-.065em;margin:0;font-size:clamp(48px,6vw,92px);font-weight:900;line-height:.92}.loop-section{background:var(--landing-ink);color:var(--landing-cream);padding:clamp(76px,9vw,148px) clamp(26px,6vw,98px)}.loop-heading{grid-template-columns:.58fr 1fr .72fr;align-items:end;gap:5vw;display:grid}.loop-heading .section-index{align-self:start}.loop-heading h2{letter-spacing:-.065em;margin:0;font-size:clamp(48px,5.5vw,88px);line-height:.92}.loop-copy{gap:22px;display:grid}.loop-copy p{margin:0;font-size:16px;line-height:1.45}.loop-copy .loop-problem{letter-spacing:-.02em;font-size:clamp(18px,1.5vw,23px);font-weight:750;line-height:1.25}.interface-grid{grid-template-columns:minmax(0,1fr) 110px minmax(0,1fr);align-items:stretch;margin-top:78px;display:grid}.interface-card{border:1px solid var(--landing-cream);min-width:0;color:var(--landing-ink);grid-template-rows:auto auto 1fr;gap:28px;padding:clamp(24px,3vw,46px);display:grid;position:relative}.human-card{background:var(--landing-yellow)}.agent-card{background:var(--landing-mint)}.interface-card h3{letter-spacing:-.05em;max-width:570px;margin:8px 0 14px;font-size:clamp(31px,3vw,51px);line-height:.95}.interface-card p{max-width:520px;margin:0;font-size:15px;line-height:1.45}.card-eyebrow{letter-spacing:.12em;text-transform:uppercase;font-weight:900;font-size:10px!important}.interface-number{border:1px solid var(--landing-ink);border-radius:50%;place-items:center;width:42px;height:42px;font-size:12px;font-weight:900;display:grid}.interface-card .media-slot{box-shadow:6px 6px 0 var(--landing-ink);align-self:end;margin-top:22px}.loop-bridge{border-top:1px solid var(--landing-cream);border-bottom:1px solid var(--landing-cream);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex}.loop-bridge strong{letter-spacing:.12em;font-size:12px;line-height:1.15}.loop-bridge span{letter-spacing:.12em;text-transform:uppercase;font-size:9px}.bridge-line{place-items:center;width:100%;display:grid}.bridge-line:before{content:"";background:var(--landing-cream);width:72px;height:1px;position:absolute}.bridge-line svg{background:var(--landing-ink);margin-left:60px;position:relative}.bridge-line.reverse{transform:rotate(180deg)}.features-section{padding:clamp(76px,9vw,148px) clamp(26px,6vw,98px)}.features-heading{grid-template-columns:.5fr 1fr .75fr;align-items:end;gap:5vw;display:grid}.features-heading .section-index{align-self:start}.features-heading>p:last-child{margin:0;font-size:17px;line-height:1.5}.feature-grid{border-top:1px solid var(--landing-ink);border-left:1px solid var(--landing-ink);grid-template-columns:repeat(3,1fr);margin-top:76px;display:grid}.feature-card{border-right:1px solid var(--landing-ink);border-bottom:1px solid var(--landing-ink);flex-direction:column;min-height:580px;padding:24px;display:flex}.feature-card:nth-child(2){background:var(--landing-yellow)}.feature-card:nth-child(3){background:var(--landing-mint)}.feature-top{justify-content:space-between;align-items:center;display:flex}.feature-top span{font-size:10px;font-weight:850}.feature-card h3{letter-spacing:-.05em;margin:66px 0 14px;font-size:clamp(25px,2.3vw,38px);line-height:1}.feature-card p{margin:0;font-size:14px;line-height:1.45}.feature-media{margin-top:auto;padding-top:28px}.feature-media .media-slot{aspect-ratio:4/3;box-shadow:4px 4px 0 var(--landing-ink)}.final-cta{border:1px solid var(--landing-ink);background:var(--landing-yellow);grid-template-columns:1fr .92fr;gap:7vw;margin-top:82px;padding:clamp(34px,5vw,72px);display:grid}.final-cta h3{letter-spacing:-.065em;max-width:760px;margin:0;font-size:clamp(42px,5vw,76px);font-weight:900;line-height:.92}.install-panel{flex-direction:column;justify-content:center;gap:28px;display:flex}.install-command{border:1px solid var(--landing-ink);background:var(--landing-cream);min-height:70px;box-shadow:7px 7px 0 var(--landing-ink);grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px 10px 20px;display:grid}.install-command code{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.install-command button{border:1px solid var(--landing-ink);background:var(--landing-mint);align-items:center;gap:7px;height:44px;padding:0 12px;font-size:11px;font-weight:850;display:inline-flex}.install-meta{flex-wrap:wrap;gap:9px;display:flex}.install-meta span{border:1px solid var(--landing-ink);text-transform:uppercase;border-radius:999px;padding:7px 11px;font-size:10px;font-weight:850}footer{background:var(--landing-ink);min-height:150px;color:var(--landing-cream);grid-template-columns:1fr auto 1fr;align-items:center;padding:28px 3.2vw;display:grid}footer .landing-brand{color:var(--landing-cream)}footer .landing-brand-mark{border-color:var(--landing-cream)}footer p{margin:0;font-size:12px}footer>a:last-child{justify-self:end;align-items:center;gap:5px;font-size:12px;display:inline-flex}@media (width<=1080px){.hero-section{grid-template-columns:1fr}.hero-media-wrap{border-top:1px solid var(--landing-ink);border-left:0;min-height:650px}.loop-heading,.features-heading{grid-template-columns:1fr 1.4fr}.loop-copy,.features-heading>p:last-child{grid-column:2}.interface-grid{grid-template-columns:minmax(0,1fr);gap:0}.loop-bridge{border-right:1px solid var(--landing-cream);border-left:1px solid var(--landing-cream);flex-direction:row;min-height:90px}.bridge-line{width:80px}.bridge-line:before{width:60px}.feature-card{min-height:280px}.final-cta{grid-template-columns:1fr;gap:48px}}@media (width<=760px){.landing-nav{grid-template-columns:1fr auto;padding:0 18px}.landing-nav nav{display:none}.nav-cta{font-size:11px}.hero-copy{padding:76px 22px 66px}.hero-copy h1{font-size:clamp(55px,17vw,82px)}.hero-summary{font-size:19px}.hero-actions{flex-direction:column;align-items:flex-start}.hero-media-wrap{min-height:470px;padding:52px 22px}.hero-carousel-caption{grid-template-columns:1fr}.hero-carousel-caption .media-eyebrow{grid-row:auto}.loop-heading,.features-heading{grid-template-columns:1fr}.loop-copy,.features-heading>p:last-child{grid-column:1}.interface-grid{margin-top:48px}.interface-card{padding:26px 20px}.feature-grid{grid-template-columns:1fr}.feature-card{min-height:580px}.feature-card h3{margin-top:58px}.final-cta{padding:32px 20px}.install-command{grid-template-columns:auto 1fr}.install-command button{grid-column:1/-1;justify-content:center}footer{grid-template-columns:1fr auto;gap:28px}footer p{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.primary-cta,.hero-carousel-controls>button{transition:none}.hero-carousel-media-track,.carousel-caption-enter,.carousel-caption-exit{animation:none}.media-slot-ready video{display:none}.media-slot-ready .reduced-motion-poster{display:block}.video-toggle{display:none}.carousel-autoplay-toggle{visibility:hidden}}
|
|
1
|
+
:root{--landing-ink:#121212;--landing-paper:#f3f0e8;--landing-cream:#fffdf6;--landing-red:#f04432;--landing-yellow:#f6c643;--landing-mint:#b9ddd2;--landing-blue:#2646d8;--landing-line:#1212122e;color:var(--landing-ink);background:var(--landing-paper);font-synthesis:none;font-family:Helvetica Neue,Arial Nova,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:linear-gradient(90deg, transparent calc(50% - .5px), #1212120b 50%, transparent calc(50% + .5px)), var(--landing-paper);min-width:320px;margin:0}button,a{font:inherit}a{color:inherit}button{cursor:pointer}.landing-shell{overflow:hidden}.landing-nav{z-index:10;border-bottom:1px solid var(--landing-ink);background:#f3f0e8f0;grid-template-columns:minmax(160px,1fr) auto minmax(160px,1fr);align-items:center;min-height:74px;padding:0 3.2vw;display:grid;position:relative}.landing-brand{width:fit-content;color:var(--landing-ink);letter-spacing:.08em;justify-self:start;align-items:center;gap:11px;font-size:14px;font-weight:900;text-decoration:none;display:inline-flex}.landing-brand-mark{border:1px solid var(--landing-ink);grid-template-columns:repeat(3,1fr);gap:3px;width:30px;height:30px;padding:4px;display:grid;position:relative}.landing-brand-mark span{background:var(--landing-ink)}.landing-brand-mark span:nth-child(2){background:var(--landing-red)}.landing-brand-mark span:nth-child(3){background:var(--landing-yellow)}.landing-nav nav{gap:clamp(18px,3vw,46px);display:flex}.landing-nav nav a,.nav-cta{font-size:12px;font-weight:750;text-decoration:none}.landing-nav nav a:hover{text-underline-offset:5px;text-decoration:underline}.nav-cta{border-bottom:1px solid var(--landing-ink);justify-self:end;align-items:center;gap:7px;padding:6px 0;display:inline-flex}.hero-section{border-bottom:1px solid var(--landing-ink);grid-template-columns:minmax(0,.92fr) minmax(460px,1.08fr);min-height:calc(100vh - 74px);display:grid;position:relative}.hero-grid{pointer-events:none;grid-template-columns:repeat(4,1fr);display:grid;position:absolute;inset:0}.hero-grid span{border-right:1px solid #12121214}.hero-copy{z-index:1;flex-direction:column;justify-content:center;padding:clamp(52px,5vw,76px) clamp(32px,5vw,84px);display:flex;position:relative}.section-index{letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:11px;margin:0 0 28px;font-size:11px;font-weight:800;display:flex}.section-index span{border:1px solid;border-radius:50%;place-items:center;width:27px;height:27px;font-size:9px;display:grid}.hero-copy h1{letter-spacing:-.075em;max-width:760px;margin:0;font-size:clamp(58px,5.35vw,86px);font-weight:900;line-height:.86}.hero-summary{letter-spacing:-.025em;max-width:650px;margin:30px 0 0;font-size:clamp(18px,1.45vw,24px);font-weight:580;line-height:1.22}.hero-actions{align-items:center;gap:24px;margin-top:30px;display:flex}.primary-cta{border:1px solid var(--landing-ink);background:var(--landing-red);min-height:52px;color:var(--landing-ink);box-shadow:5px 5px 0 var(--landing-ink);justify-content:center;align-items:center;gap:14px;padding:0 19px;font-size:13px;font-weight:850;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex}.primary-cta:hover{box-shadow:3px 3px 0 var(--landing-ink);transform:translate(2px,2px)}.primary-cta.dark{background:var(--landing-ink);color:var(--landing-cream);box-shadow:5px 5px 0 var(--landing-red)}.text-cta{text-underline-offset:5px;font-size:13px;font-weight:850}.hero-media-wrap{border-left:1px solid var(--landing-ink);background:var(--landing-yellow);align-items:center;padding:clamp(52px,6vw,96px) clamp(28px,4.8vw,80px);display:flex;position:relative}.hero-carousel{outline:none;gap:14px;width:100%;display:grid}.hero-carousel:focus-visible .media-slot{outline:3px solid var(--landing-blue);outline-offset:5px}.hero-carousel-media-viewport{margin:-5px -13px -13px -5px;padding:5px 13px 13px 5px;position:relative;overflow:hidden}.hero-carousel-media-track{width:100%;display:flex}.hero-carousel-media-slide{flex:0 0 100%;min-width:0}.hero-carousel-media-track[class*=carousel-track-]{will-change:transform;width:200%}.hero-carousel-media-track[class*=carousel-track-] .hero-carousel-media-slide{flex-basis:50%}.hero-carousel-media-track[class*=carousel-track-] .hero-carousel-media-slide[aria-hidden=true]{pointer-events:none}.carousel-track-next{animation:.58s cubic-bezier(.65,0,.35,1) both carousel-track-next}.carousel-track-previous{animation:.58s cubic-bezier(.65,0,.35,1) both carousel-track-previous}.hero-carousel-caption-viewport{margin:-4px -8px -8px -4px;padding:4px 8px 8px 4px;position:relative;overflow:hidden}.hero-carousel-caption{border:1px solid var(--landing-ink);background:var(--landing-cream);box-shadow:4px 4px 0 var(--landing-ink);will-change:opacity;grid-template-columns:minmax(130px,.62fr) minmax(0,1fr);gap:4px 18px;padding:13px 15px;display:grid}.hero-carousel-caption.carousel-caption-exit{z-index:1;pointer-events:none;position:absolute;inset:4px 8px 8px 4px}.hero-carousel-caption.carousel-caption-enter{z-index:2;position:relative}.carousel-caption-enter{animation:.46s 60ms both carousel-caption-enter}.carousel-caption-exit{animation:.4s both carousel-caption-exit}@keyframes carousel-track-next{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes carousel-track-previous{0%{transform:translate(-50%)}to{transform:translate(0)}}@keyframes carousel-caption-enter{0%{opacity:0}to{opacity:1}}@keyframes carousel-caption-exit{0%{opacity:1}to{opacity:0}}.hero-carousel-caption .media-eyebrow{grid-row:1/span 2;align-self:center}.hero-carousel-caption strong{letter-spacing:-.02em;font-size:15px}.hero-carousel-caption small{font-size:11px;line-height:1.35}.hero-carousel-controls{grid-template-columns:42px 1fr 42px;align-items:center;gap:12px;display:grid}.hero-carousel-controls>button{border:1px solid var(--landing-ink);background:var(--landing-cream);width:42px;height:42px;color:var(--landing-ink);box-shadow:3px 3px 0 var(--landing-ink);place-items:center;transition:transform .15s,box-shadow .15s;display:grid}.hero-carousel-controls>button:hover{box-shadow:2px 2px 0 var(--landing-ink);transform:translate(1px,1px)}.carousel-center-controls{grid-template-columns:28px auto 28px;justify-self:center;align-items:center;gap:12px;display:grid}.carousel-center-controls:after{content:"";width:28px}.carousel-autoplay-toggle{border:1px solid var(--landing-ink);background:var(--landing-cream);width:28px;height:28px;color:var(--landing-ink);border-radius:50%;place-items:center;padding:0;display:grid}.carousel-autoplay-toggle:hover{background:var(--landing-mint)}.carousel-autoplay-toggle:focus-visible{outline:3px solid var(--landing-blue);outline-offset:2px}.carousel-progress{align-items:center;gap:7px;display:flex}.carousel-progress button{border:1px solid var(--landing-ink);background:var(--landing-cream);border-radius:999px;width:28px;height:8px;padding:0}.carousel-progress button.active{background:var(--landing-red)}.media-slot{border:1px solid var(--landing-ink);background:var(--landing-cream);aspect-ratio:16/10;width:100%;min-width:0;box-shadow:8px 8px 0 var(--landing-ink);margin:0;position:relative;overflow:hidden}.media-slot-hero{aspect-ratio:16/11}.media-slot-ready img,.media-slot-ready video{object-fit:cover;width:100%;max-width:100%;height:100%;display:block}.media-slot-ready.media-fit-contain img,.media-slot-ready.media-fit-contain video{object-fit:contain;background:#f5f8f5}.media-slot-ready.media-position-left img,.media-slot-ready.media-position-left video{object-position:left center}.media-slot-ready .reduced-motion-poster{display:none}.video-toggle{z-index:5;border:1px solid var(--landing-ink);width:38px;height:38px;color:var(--landing-ink);box-shadow:3px 3px 0 var(--landing-ink);background:#fffdf6f0;border-radius:50%;place-items:center;display:grid;position:absolute;top:12px;right:12px}.video-toggle:hover{background:var(--landing-mint)}.video-toggle:focus-visible{outline:3px solid var(--landing-blue);outline-offset:3px}.placeholder-canvas{background:linear-gradient(#1212120f 1px,#0000 1px) 0 0/32px 32px,linear-gradient(90deg,#1212120f 1px,#0000 1px) 0 0/32px 32px,linear-gradient(145deg,#fefcf5,#ddd8cd);position:absolute;inset:0}.placeholder-node{z-index:2;aspect-ratio:4/3;border:1px solid var(--landing-ink);background:var(--landing-cream);width:21%;padding:7px;display:block;position:absolute}.placeholder-node i{background:var(--landing-yellow);width:100%;height:100%;display:block}.placeholder-node.node-root{top:40%;left:8%}.placeholder-node.node-a{top:14%;left:39%}.placeholder-node.node-b{top:60%;left:39%}.placeholder-node.node-c{top:34%;right:8%}.placeholder-node.node-a i{background:var(--landing-red)}.placeholder-node.node-b i{background:var(--landing-mint)}.placeholder-node.node-c i{background:var(--landing-blue)}.placeholder-edge{z-index:1;background:var(--landing-ink);transform-origin:0;height:1px;display:block;position:absolute}.edge-a{width:20%;top:46%;left:27%;transform:rotate(-27deg)}.edge-b{width:19%;top:53%;left:27%;transform:rotate(29deg)}.edge-c{width:22%;top:40%;left:58%;transform:rotate(8deg)}.media-slot figcaption{z-index:3;border:1px solid var(--landing-ink);background:#fffdf6f2;grid-template-columns:1fr auto;gap:2px 12px;padding:11px 13px;display:grid;position:absolute;bottom:14px;left:14px;right:14px}.media-slot figcaption strong{letter-spacing:-.02em;font-size:14px}.media-slot figcaption small{grid-column:1/-1;max-width:90%;font-size:10px;line-height:1.3}.media-eyebrow{letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:850}.play-badge{z-index:4;border:1px solid var(--landing-ink);background:var(--landing-red);border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:14px;right:14px}.features-heading h2{letter-spacing:-.065em;margin:0;font-size:clamp(48px,6vw,92px);font-weight:900;line-height:.92}.loop-section{background:var(--landing-ink);color:var(--landing-cream);padding:clamp(76px,9vw,148px) clamp(26px,6vw,98px)}.loop-heading{grid-template-columns:.58fr 1fr .72fr;align-items:end;gap:5vw;display:grid}.loop-heading .section-index{align-self:start}.loop-heading h2{letter-spacing:-.065em;margin:0;font-size:clamp(48px,5.5vw,88px);line-height:.92}.loop-copy{gap:22px;display:grid}.loop-copy p{margin:0;font-size:16px;line-height:1.45}.loop-copy .loop-problem{letter-spacing:-.02em;font-size:clamp(18px,1.5vw,23px);font-weight:750;line-height:1.25}.interface-grid{grid-template-columns:minmax(0,1fr) 110px minmax(0,1fr);align-items:stretch;margin-top:78px;display:grid}.interface-card{border:1px solid var(--landing-cream);min-width:0;color:var(--landing-ink);grid-template-rows:auto auto 1fr;gap:28px;padding:clamp(24px,3vw,46px);display:grid;position:relative}.human-card{background:var(--landing-yellow)}.agent-card{background:var(--landing-mint)}.interface-card h3{letter-spacing:-.05em;max-width:570px;margin:8px 0 14px;font-size:clamp(31px,3vw,51px);line-height:.95}.interface-card p{max-width:520px;margin:0;font-size:15px;line-height:1.45}.card-eyebrow{letter-spacing:.12em;text-transform:uppercase;font-weight:900;font-size:10px!important}.interface-number{border:1px solid var(--landing-ink);border-radius:50%;place-items:center;width:42px;height:42px;font-size:12px;font-weight:900;display:grid}.interface-card .media-slot{box-shadow:6px 6px 0 var(--landing-ink);align-self:end;margin-top:22px}.loop-bridge{border-top:1px solid var(--landing-cream);border-bottom:1px solid var(--landing-cream);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex}.loop-bridge strong{letter-spacing:.12em;font-size:12px;line-height:1.15}.loop-bridge span{letter-spacing:.12em;text-transform:uppercase;font-size:9px}.bridge-line{place-items:center;width:100%;display:grid}.bridge-line:before{content:"";background:var(--landing-cream);width:72px;height:1px;position:absolute}.bridge-line svg{background:var(--landing-ink);margin-left:60px;position:relative}.bridge-line.reverse{transform:rotate(180deg)}.features-section{padding:clamp(76px,9vw,148px) clamp(26px,6vw,98px)}.features-heading{grid-template-columns:.5fr 1fr .75fr;align-items:end;gap:5vw;display:grid}.features-heading .section-index{align-self:start}.features-heading>p:last-child{margin:0;font-size:17px;line-height:1.5}.feature-grid{border-top:1px solid var(--landing-ink);border-left:1px solid var(--landing-ink);grid-template-columns:repeat(3,1fr);margin-top:76px;display:grid}.feature-card{border-right:1px solid var(--landing-ink);border-bottom:1px solid var(--landing-ink);flex-direction:column;min-height:580px;padding:24px;display:flex}.feature-card:nth-child(2){background:var(--landing-yellow)}.feature-card:nth-child(3){background:var(--landing-mint)}.feature-top{justify-content:space-between;align-items:center;display:flex}.feature-top span{font-size:10px;font-weight:850}.feature-card h3{letter-spacing:-.05em;margin:66px 0 14px;font-size:clamp(25px,2.3vw,38px);line-height:1}.feature-card p{margin:0;font-size:14px;line-height:1.45}.feature-media{margin-top:auto;padding-top:28px}.feature-media .media-slot{aspect-ratio:4/3;box-shadow:4px 4px 0 var(--landing-ink)}.final-cta{border:1px solid var(--landing-ink);background:var(--landing-yellow);grid-template-columns:1fr .92fr;gap:7vw;margin-top:82px;padding:clamp(34px,5vw,72px);display:grid}.final-cta h3{letter-spacing:-.065em;max-width:760px;margin:0;font-size:clamp(42px,5vw,76px);font-weight:900;line-height:.92}.install-panel{flex-direction:column;justify-content:center;gap:28px;display:flex}.install-command{border:1px solid var(--landing-ink);background:var(--landing-cream);min-height:142px;box-shadow:7px 7px 0 var(--landing-ink);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:16px 12px 16px 20px;display:grid}.install-command pre{min-width:0;margin:0}.install-command code{overflow-wrap:anywhere;white-space:pre-wrap;font-size:12px;font-weight:700;line-height:1.65}.install-command button{border:1px solid var(--landing-ink);background:var(--landing-mint);grid-column:1/-1;justify-content:center;align-items:center;gap:7px;width:100%;height:44px;padding:0 12px;font-size:11px;font-weight:850;display:inline-flex}.install-guide-link{color:var(--landing-ink);text-underline-offset:4px;align-self:flex-start;align-items:center;gap:6px;font-size:12px;font-weight:850;text-decoration:underline;display:inline-flex}.install-meta{flex-wrap:wrap;gap:9px;display:flex}.install-meta span{border:1px solid var(--landing-ink);text-transform:uppercase;border-radius:999px;padding:7px 11px;font-size:10px;font-weight:850}footer{background:var(--landing-ink);min-height:150px;color:var(--landing-cream);grid-template-columns:1fr auto 1fr;align-items:center;padding:28px 3.2vw;display:grid}footer .landing-brand{color:var(--landing-cream)}footer .landing-brand-mark{border-color:var(--landing-cream)}footer p{margin:0;font-size:12px}footer>a:last-child{justify-self:end;align-items:center;gap:5px;font-size:12px;display:inline-flex}@media (width<=1080px){.hero-section{grid-template-columns:1fr}.hero-media-wrap{border-top:1px solid var(--landing-ink);border-left:0;min-height:650px}.loop-heading,.features-heading{grid-template-columns:1fr 1.4fr}.loop-copy,.features-heading>p:last-child{grid-column:2}.interface-grid{grid-template-columns:minmax(0,1fr);gap:0}.loop-bridge{border-right:1px solid var(--landing-cream);border-left:1px solid var(--landing-cream);flex-direction:row;min-height:90px}.bridge-line{width:80px}.bridge-line:before{width:60px}.feature-card{min-height:280px}.final-cta{grid-template-columns:1fr;gap:48px}}@media (width<=760px){.landing-nav{grid-template-columns:1fr auto;padding:0 18px}.landing-nav nav{display:none}.nav-cta{font-size:11px}.hero-copy{padding:76px 22px 66px}.hero-copy h1{font-size:clamp(55px,17vw,82px)}.hero-summary{font-size:19px}.hero-actions{flex-direction:column;align-items:flex-start}.hero-media-wrap{min-height:470px;padding:52px 22px}.hero-carousel-caption{grid-template-columns:1fr}.hero-carousel-caption .media-eyebrow{grid-row:auto}.loop-heading,.features-heading{grid-template-columns:1fr}.loop-copy,.features-heading>p:last-child{grid-column:1}.interface-grid{margin-top:48px}.interface-card{padding:26px 20px}.feature-grid{grid-template-columns:1fr}.feature-card{min-height:580px}.feature-card h3{margin-top:58px}.final-cta{padding:32px 20px}.install-command{grid-template-columns:auto 1fr}.install-command button{grid-column:1/-1;justify-content:center}footer{grid-template-columns:1fr auto;gap:28px}footer p{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.primary-cta,.hero-carousel-controls>button{transition:none}.hero-carousel-media-track,.carousel-caption-enter,.carousel-caption-exit{animation:none}.media-slot-ready video{display:none}.media-slot-ready .reduced-motion-poster{display:block}.video-toggle{display:none}.carousel-autoplay-toggle{visibility:hidden}}
|
package/dist/web/index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Lineage</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/app-
|
|
7
|
+
<script type="module" crossorigin src="/assets/app-D-7R33Mc.js"></script>
|
|
8
8
|
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-DAFSxiwi.js">
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/app-B-fAyNsU.css">
|
|
10
10
|
</head>
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
content="Lineage is the shared visual workspace where humans and agents create, review, and evolve creative assets together."
|
|
10
10
|
/>
|
|
11
11
|
<title>Lineage — Visual work for humans and agents</title>
|
|
12
|
-
<script type="module" crossorigin src="/assets/landing-
|
|
12
|
+
<script type="module" crossorigin src="/assets/landing-DIjBBL33.js"></script>
|
|
13
13
|
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-DAFSxiwi.js">
|
|
14
|
-
<link rel="stylesheet" crossorigin href="/assets/landing-
|
|
14
|
+
<link rel="stylesheet" crossorigin href="/assets/landing-wy4L-yBm.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
17
17
|
<div id="landing-root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mean-weasel/lineage",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"description": "Local-first creative lineage workspace",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"dist",
|
|
16
16
|
"fixtures/demo-project",
|
|
17
17
|
"README.md",
|
|
18
|
+
"MANUAL_INSTALL_DOGFOOD.md",
|
|
18
19
|
"CHANGELOG.md",
|
|
19
20
|
"LICENSE"
|
|
20
21
|
],
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,d as n,i as r,l as i,n as a,o,p as s,r as c,s as l,t as u}from"./jsx-runtime-DAFSxiwi.js";var d=t(`ArrowDownRight`,[[`path`,{d:`m7 7 10 10`,key:`1fmybs`}],[`path`,{d:`M17 7v10H7`,key:`6fjiku`}]]),f=t(`Check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),p=t(`GitBranch`,[[`line`,{x1:`6`,x2:`6`,y1:`3`,y2:`15`,key:`17qcm7`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`path`,{d:`M18 9a9 9 0 0 1-9 9`,key:`n2h4wq`}]]),m=t(`MousePointer2`,[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`,key:`edeuup`}]]),h=t(`Pause`,[[`rect`,{x:`14`,y:`4`,width:`4`,height:`16`,rx:`1`,key:`zuxfzm`}],[`rect`,{x:`6`,y:`4`,width:`4`,height:`16`,rx:`1`,key:`1okwgv`}]]),g=s(n(),1),_=i(),v=`/assets/agent-shared-state-DOfpTLiw.webp`,y=`/assets/agent-to-canvas-DtIu_cPq.mp4`,b=`/assets/attempt-history-D6wdic6n.webp`,x=`/assets/branching-tree-B8I5_S6D.png`,S=`/assets/canvas-cli-DHBacq7r.png`,C=`/assets/hero-agent-sync-poster-zBB3KpbO.png`,w=`/assets/hero-agent-sync-D8ibW83E.mp4`,T=`/assets/hero-board-DG3ED4AW.webp`,E=`/assets/hero-lineage-growth-Bsl9tiq-.mp4`,D=`/assets/hero-trace-connections-Bb52ABBc.mp4`,O=`/assets/human-selection-BdDBDE-I.webp`,k=`/assets/human-to-agent-D1z92ZO9.mp4`,A=`/assets/reroll-history-DQcEH42R.mp4`,j=[{id:`hero-lineage-growth`,eyebrow:`From agent to canvas`,title:`Turn agent output into visual creative history.`,description:`Every new asset joins the lineage instead of disappearing into a chat.`,kind:`video`,src:E,poster:T,fit:`contain`},{id:`hero-trace-connections`,eyebrow:`Context stays connected`,title:`Keep the reasoning behind the visual work.`,description:`Prompts, branches, and decisions remain attached to every result.`,kind:`video`,src:D,poster:x,fit:`contain`},{id:`hero-agent-sync`,eyebrow:`One shared creative state`,title:`Humans and agents continue from the same place.`,description:`New agent work returns to the canvas, ready for the next decision.`,kind:`video`,src:w,poster:C,fit:`contain`}],M={"human-to-agent":{id:`human-to-agent`,eyebrow:`Human → agent`,title:`Send the exact creative context to Codex.`,description:`A canvas selection becomes actionable agent context.`,kind:`video`,src:k,poster:S,fit:`contain`},"agent-to-canvas":{id:`agent-to-canvas`,eyebrow:`Agent → canvas`,title:`Bring agent results back into the shared state.`,description:`New agent output returns to the same visual workspace.`,kind:`video`,src:y,poster:v,fit:`contain`},"trace-tree":{id:`trace-tree`,eyebrow:`Lineage graph`,title:`Every branch remains visible.`,description:`The graph preserves the path from source to variation.`,kind:`image`,src:x,fit:`cover`},"selection-still":{id:`selection-still`,eyebrow:`Selection + direction`,title:`Choose exactly where the work continues.`,description:`Inspect, select, and turn the decision into precise context.`,kind:`image`,src:O,fit:`cover`,position:`left`},"reroll-history":{id:`reroll-history`,eyebrow:`Attempt history`,title:`Ask for another pass without losing the first.`,description:`The new attempt returns without replacing earlier work.`,kind:`video`,src:A,poster:b,fit:`cover`}},N=u(),P=`npm install -g @mean-weasel/lineage@latest`;function F(){let[e,t]=(0,g.useState)(!1);async function n(){try{await navigator.clipboard.writeText(P),t(!0),window.setTimeout(()=>t(!1),1800)}catch{t(!1)}}return(0,N.jsxs)(`div`,{className:`landing-shell`,children:[(0,N.jsxs)(`header`,{className:`landing-nav`,children:[(0,N.jsxs)(`a`,{"aria-label":`Lineage home`,className:`landing-brand`,href:`#top`,children:[(0,N.jsxs)(`span`,{"aria-hidden":`true`,className:`landing-brand-mark`,children:[(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{})]}),(0,N.jsx)(`span`,{children:`LINEAGE`})]}),(0,N.jsxs)(`nav`,{"aria-label":`Landing page`,children:[(0,N.jsx)(`a`,{href:`#loop`,children:`How it works`}),(0,N.jsx)(`a`,{href:`#features`,children:`What it enables`}),(0,N.jsx)(`a`,{href:`#install`,children:`Install`})]}),(0,N.jsxs)(`a`,{className:`nav-cta`,href:`https://github.com/mean-weasel/lineage`,rel:`noreferrer`,target:`_blank`,children:[`View on GitHub `,(0,N.jsx)(d,{"aria-hidden":`true`,size:16})]})]}),(0,N.jsxs)(`main`,{id:`top`,children:[(0,N.jsxs)(`section`,{className:`hero-section`,children:[(0,N.jsxs)(`div`,{className:`hero-grid`,"aria-hidden":`true`,children:[(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{})]}),(0,N.jsxs)(`div`,{className:`hero-copy`,children:[(0,N.jsxs)(`p`,{className:`section-index`,children:[(0,N.jsx)(`span`,{children:`01`}),` Human × agent creative work`]}),(0,N.jsx)(`h1`,{children:`The UX where humans and agents shape visual work together.`}),(0,N.jsx)(`p`,{className:`hero-summary`,children:`Lineage is the shared visual workspace where humans and agents create, review, and evolve creative assets together.`}),(0,N.jsxs)(`div`,{className:`hero-actions`,children:[(0,N.jsxs)(`a`,{className:`primary-cta`,href:`#loop`,children:[`See the collaboration loop `,(0,N.jsx)(l,{"aria-hidden":`true`,size:18})]}),(0,N.jsx)(`a`,{className:`text-cta`,href:`#install`,children:`Install Lineage`})]})]}),(0,N.jsx)(`div`,{className:`hero-media-wrap`,children:(0,N.jsx)(I,{})})]}),(0,N.jsxs)(`section`,{className:`loop-section`,id:`loop`,children:[(0,N.jsxs)(`div`,{className:`loop-heading`,children:[(0,N.jsxs)(`p`,{className:`section-index`,children:[(0,N.jsx)(`span`,{children:`02`}),` Context travels both ways`]}),(0,N.jsx)(`h2`,{children:`One creative state for humans and agents.`}),(0,N.jsxs)(`div`,{className:`loop-copy`,children:[(0,N.jsx)(`p`,{className:`loop-problem`,children:`Chat is the right UX for directing agent-driven creative work. But it isn’t built to hold the state of that work.`}),(0,N.jsx)(`p`,{children:`Lineage preserves every asset, path, prompt, relationship, and decision in a shared record—precise enough for agents to retrieve through the CLI and organized visually for humans to review and direct.`})]})]}),(0,N.jsxs)(`div`,{className:`interface-grid`,children:[(0,N.jsxs)(`article`,{className:`interface-card agent-card`,children:[(0,N.jsx)(`div`,{className:`interface-number`,children:`A`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`p`,{className:`card-eyebrow`,children:`For agents`}),(0,N.jsx)(`h3`,{children:`Never lose the state behind the work.`}),(0,N.jsx)(`p`,{children:`Every asset, path, prompt, iteration, and relationship stays available so the work can continue accurately.`})]}),(0,N.jsx)(L,{definition:M[`agent-to-canvas`],showCaption:!0})]}),(0,N.jsxs)(`div`,{className:`loop-bridge`,"aria-label":`Assets, context, selections, and annotations move through one creative state`,children:[(0,N.jsx)(`span`,{children:`Assets + context`}),(0,N.jsx)(`div`,{className:`bridge-line`,children:(0,N.jsx)(l,{"aria-hidden":`true`,size:18})}),(0,N.jsxs)(`strong`,{children:[`ONE CREATIVE`,(0,N.jsx)(`br`,{}),`STATE`]}),(0,N.jsx)(`div`,{className:`bridge-line reverse`,children:(0,N.jsx)(l,{"aria-hidden":`true`,size:18})}),(0,N.jsx)(`span`,{children:`Selections + annotations`})]}),(0,N.jsxs)(`article`,{className:`interface-card human-card`,children:[(0,N.jsx)(`div`,{className:`interface-number`,children:`H`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`p`,{className:`card-eyebrow`,children:`For humans`}),(0,N.jsx)(`h3`,{children:`Keep your creative history organized.`}),(0,N.jsx)(`p`,{children:`Review and compare the history, then use selections and annotations to direct the next iteration.`})]}),(0,N.jsx)(L,{definition:M[`human-to-agent`],showCaption:!0})]})]})]}),(0,N.jsxs)(`section`,{className:`features-section`,id:`features`,children:[(0,N.jsxs)(`div`,{className:`features-heading`,children:[(0,N.jsxs)(`p`,{className:`section-index`,children:[(0,N.jsx)(`span`,{children:`03`}),` What it enables`]}),(0,N.jsx)(`h2`,{children:`A shared creative history you and your agents can build on.`}),(0,N.jsx)(`p`,{children:`Keep the useful context behind every asset available, understandable, and ready for the next human or agent action.`})]}),(0,N.jsxs)(`div`,{className:`feature-grid`,children:[(0,N.jsx)(z,{icon:(0,N.jsx)(p,{}),media:M[`trace-tree`],number:`01`,title:`Trace every iteration`,children:`Follow an asset from its origin through branches, selections, and final campaign formats.`}),(0,N.jsx)(z,{icon:(0,N.jsx)(m,{}),media:M[`selection-still`],number:`02`,title:`Continue from the exact asset`,children:`Select any useful point in the lineage and bring that context into the next agent session.`}),(0,N.jsx)(z,{icon:(0,N.jsx)(a,{}),media:M[`reroll-history`],number:`03`,title:`Keep every agent attempt tied to your decisions`,children:`Review another pass without losing earlier results, prompts, relationships, or human direction.`})]}),(0,N.jsxs)(`div`,{className:`final-cta`,id:`install`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`p`,{className:`section-index`,children:[(0,N.jsx)(`span`,{children:`→`}),` Local-first and agent-ready`]}),(0,N.jsx)(`h3`,{children:`One durable home for visual work made with your agents.`})]}),(0,N.jsxs)(`div`,{className:`install-panel`,children:[(0,N.jsxs)(`div`,{className:`install-command`,children:[(0,N.jsx)(`span`,{"aria-hidden":`true`,children:`$`}),(0,N.jsx)(`code`,{children:P}),(0,N.jsxs)(`button`,{"aria-label":`Copy install command`,onClick:()=>void n(),type:`button`,children:[e?(0,N.jsx)(f,{"aria-hidden":`true`,size:18}):(0,N.jsx)(r,{"aria-hidden":`true`,size:18}),e?`Copied`:`Copy`]})]}),(0,N.jsxs)(`div`,{className:`install-meta`,children:[(0,N.jsx)(`span`,{children:`Local-first`}),(0,N.jsx)(`span`,{children:`MIT licensed`}),(0,N.jsx)(`span`,{children:`Codex plugin`}),(0,N.jsx)(`span`,{children:`CLI access`})]}),(0,N.jsxs)(`a`,{className:`primary-cta dark`,href:`https://github.com/mean-weasel/lineage`,rel:`noreferrer`,target:`_blank`,children:[`Explore Lineage on GitHub `,(0,N.jsx)(d,{"aria-hidden":`true`,size:18})]})]})]})]})]}),(0,N.jsxs)(`footer`,{children:[(0,N.jsxs)(`a`,{className:`landing-brand`,href:`#top`,children:[(0,N.jsxs)(`span`,{"aria-hidden":`true`,className:`landing-brand-mark`,children:[(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{})]}),(0,N.jsx)(`span`,{children:`LINEAGE`})]}),(0,N.jsx)(`p`,{children:`The shared visual workspace for humans and agents.`}),(0,N.jsxs)(`a`,{href:`https://github.com/mean-weasel/lineage`,rel:`noreferrer`,target:`_blank`,children:[`GitHub `,(0,N.jsx)(d,{"aria-hidden":`true`,size:14})]})]})]})}function I(){let t=(0,g.useRef)(null),[n,r]=(0,g.useState)(0),[i,a]=(0,g.useState)(!0),[s,l]=(0,g.useState)(!1),[u,d]=(0,g.useState)(!1),[f,p]=(0,g.useState)(!1),[m,_]=(0,g.useState)(()=>typeof document>`u`||document.visibilityState===`visible`),[v,y]=(0,g.useState)(!1),[b,x]=(0,g.useState)(null),S=j[n],C=b?j[b.fromIndex]:null,w=b?.direction===1?`next`:`previous`,T=i&&!s&&!u&&f&&m&&!v&&!b;(0,g.useEffect)(()=>{let e=t.current;if(!e)return;if(!(`IntersectionObserver`in window)){p(!0);return}let n=new IntersectionObserver(([e])=>{p(!!(e&&e.intersectionRatio>=.35))},{threshold:.35});return n.observe(e),()=>n.disconnect()},[]),(0,g.useEffect)(()=>{let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t=()=>y(e.matches);return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,g.useEffect)(()=>{let e=()=>_(document.visibilityState===`visible`);return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),(0,g.useEffect)(()=>{if(!T)return;let e=window.setTimeout(()=>{x({direction:1,fromIndex:n,initiatedBy:`automatic`}),r((n+1)%j.length)},15e3);return()=>window.clearTimeout(e)},[n,T]),(0,g.useEffect)(()=>{if(!b)return;let e=window.setTimeout(()=>x(null),700);return()=>window.clearTimeout(e)},[b]);function E(e){D((n+e+j.length)%j.length,e)}function D(e,t){if(!(b||e===n)){if(window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches){r(e);return}x({direction:t,fromIndex:n,initiatedBy:`manual`}),r(e)}}return(0,N.jsxs)(`div`,{"aria-label":`Lineage product tour`,"aria-roledescription":`carousel`,className:`hero-carousel`,onBlurCapture:e=>{e.currentTarget.contains(e.relatedTarget)||d(!1)},onFocusCapture:()=>d(!0),onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`ArrowLeft`&&E(-1),e.key===`ArrowRight`&&E(1))},role:`region`,ref:t,tabIndex:0,children:[(0,N.jsx)(`div`,{className:`hero-carousel-media-viewport`,children:(0,N.jsxs)(`div`,{className:`hero-carousel-media-track ${b?`carousel-track-${w}`:``}`,onAnimationEnd:e=>{e.currentTarget===e.target&&x(null)},children:[b?.direction===-1&&(0,N.jsx)(`div`,{className:`hero-carousel-media-slide`,children:(0,N.jsx)(L,{definition:S,hero:!0})},S.id),(0,N.jsx)(`div`,{"aria-hidden":C?`true`:void 0,className:`hero-carousel-media-slide`,children:(0,N.jsx)(L,{definition:C??S,hero:!0,showPlaybackControl:!C})},(C??S).id),b?.direction===1&&(0,N.jsx)(`div`,{className:`hero-carousel-media-slide`,children:(0,N.jsx)(L,{definition:S,hero:!0})},S.id)]})}),(0,N.jsxs)(`div`,{"aria-live":T||b?.initiatedBy===`automatic`?`off`:`polite`,className:`hero-carousel-caption-viewport`,children:[C&&(0,N.jsxs)(`div`,{"aria-hidden":`true`,className:`hero-carousel-caption carousel-caption-exit carousel-${w}`,children:[(0,N.jsx)(`span`,{className:`media-eyebrow`,children:C.eyebrow}),(0,N.jsx)(`strong`,{children:C.title}),(0,N.jsx)(`small`,{children:C.description})]},C.id),(0,N.jsxs)(`div`,{className:`hero-carousel-caption ${b?`carousel-caption-enter carousel-${w}`:``}`,children:[(0,N.jsx)(`span`,{className:`media-eyebrow`,children:S.eyebrow}),(0,N.jsx)(`strong`,{children:S.title}),(0,N.jsx)(`small`,{children:S.description})]},S.id)]}),(0,N.jsxs)(`div`,{className:`hero-carousel-controls`,children:[(0,N.jsx)(`button`,{"aria-label":`Previous carousel slide`,onClick:()=>E(-1),type:`button`,children:(0,N.jsx)(o,{"aria-hidden":`true`,size:19})}),(0,N.jsxs)(`div`,{className:`carousel-center-controls`,children:[(0,N.jsx)(`button`,{"aria-label":i?`Pause carousel rotation`:`Resume carousel rotation`,className:`carousel-autoplay-toggle`,onClick:()=>a(e=>!e),type:`button`,children:i?(0,N.jsx)(h,{"aria-hidden":`true`,size:13}):(0,N.jsx)(c,{"aria-hidden":`true`,size:13})}),(0,N.jsx)(`div`,{"aria-label":`Slide ${n+1} of ${j.length}`,className:`carousel-progress`,children:j.map((e,t)=>(0,N.jsx)(`button`,{"aria-current":t===n?`true`:void 0,"aria-label":`Show slide ${t+1}: ${e.title}`,className:t===n?`active`:``,onClick:()=>D(t,t>n?1:-1),type:`button`},e.id))})]}),(0,N.jsx)(`button`,{"aria-label":`Next carousel slide`,onClick:()=>E(1),type:`button`,children:(0,N.jsx)(e,{"aria-hidden":`true`,size:19})})]})]})}function L({definition:e,hero:t=!1,showCaption:n=!1,showPlaybackControl:r=!0}){return(0,N.jsxs)(`figure`,{className:`media-slot media-slot-ready ${`media-fit-${e.fit??`cover`}`} ${e.position===`left`?`media-position-left`:``} ${t?`media-slot-hero`:``}`,"data-media-slot":e.id,children:[e.kind===`video`?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(R,{definition:e,showPlaybackControl:r}),e.poster&&(0,N.jsx)(`img`,{alt:``,"aria-hidden":`true`,className:`reduced-motion-poster`,src:e.poster})]}):(0,N.jsx)(`img`,{alt:e.description,loading:`lazy`,src:e.src}),n&&(0,N.jsxs)(`figcaption`,{"aria-live":t?`polite`:void 0,children:[(0,N.jsx)(`span`,{className:`media-eyebrow`,children:e.eyebrow}),(0,N.jsx)(`strong`,{children:e.title}),(0,N.jsx)(`small`,{children:e.description})]})]})}function R({definition:e,showPlaybackControl:t}){let n=(0,g.useRef)(null),[r,i]=(0,g.useState)(!1),[a,o]=(0,g.useState)(!1);(0,g.useEffect)(()=>{let e=n.current;if(!e||window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;if(a){e.pause();return}if(!(`IntersectionObserver`in window)){e.play().catch(()=>void 0);return}let t=new IntersectionObserver(([t])=>{t?.isIntersecting?e.play().catch(()=>void 0):e.pause()},{threshold:.45});return t.observe(e),()=>{t.disconnect(),e.pause()}},[e.src,a]);function s(){let e=n.current;e&&(e.paused?(o(!1),e.play().catch(()=>void 0)):(o(!0),e.pause()))}return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`video`,{"aria-label":e.description,loop:!0,muted:!0,onPause:()=>i(!1),onPlay:()=>i(!0),playsInline:!0,poster:e.poster,preload:`metadata`,ref:n,src:e.src}),t&&(0,N.jsx)(`button`,{"aria-label":`${r?`Pause`:`Play`} ${e.title}`,className:`video-toggle`,onClick:s,type:`button`,children:r?(0,N.jsx)(h,{"aria-hidden":`true`,size:16}):(0,N.jsx)(c,{"aria-hidden":`true`,fill:`currentColor`,size:16})})]})}function z({children:e,icon:t,media:n,number:r,title:i}){return(0,N.jsxs)(`article`,{className:`feature-card`,children:[(0,N.jsxs)(`div`,{className:`feature-top`,children:[(0,N.jsx)(`span`,{children:r}),t]}),(0,N.jsx)(`h3`,{children:i}),(0,N.jsx)(`p`,{children:e}),(0,N.jsx)(`div`,{className:`feature-media`,children:(0,N.jsx)(L,{definition:n})})]})}(0,_.createRoot)(document.getElementById(`landing-root`)).render((0,N.jsx)(g.StrictMode,{children:(0,N.jsx)(F,{})}));
|