> ## Documentation Index
> Fetch the complete documentation index at: https://learn.actionist.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting started

> Sign in to Actionist, meet the app, and hand your first task to an AI employee in minutes.

<div className="mxp-hero xc-border">
  <div className="exp-eyebrow mxp-rise">FIRST RUN</div>

  <h2 className="mxp-hero-title mxp-rise" style={{animationDelay:'0.06s'}}>
    Your first AI employee is <span style={{background:'linear-gradient(90deg,#24A4FF,#9000FF,#E3008E)',WebkitBackgroundClip:'text',backgroundClip:'text',color:'transparent'}}>one conversation away.</span>
  </h2>

  <p className="mxp-hero-dek mxp-rise" style={{animationDelay:'0.13s'}}>
    No passwords to create. No configuration menus to navigate. Click one button, complete sign-in in your browser, and you are describing a task to an agent who already knows how to act on it.
  </p>
</div>

<div className="w-full py-10">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Step one</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Open it in your browser.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      Actionist runs in the browser. Sign up and you are working immediately, with nothing to install. Desktop builds exist for Mac and Windows if you would rather have an app in your dock.
    </p>
  </div>

  <Steps>
    <Step title="Go to app.actionist.ai" icon="globe">
      Open [app.actionist.ai](https://app.actionist.ai) and sign in with email or Google. This is the full app: agents, runs, calendar, apps, and settings, all in the browser.
    </Step>

    <Step title="Optional: install the desktop app" icon="download">
      Prefer a native app? Grab the Mac or Windows build from the dashboard. It signs you in through your browser, so you keep the same account and the same workspace.
    </Step>
  </Steps>

  <Note>
    Nothing on this page requires the desktop app unless it says so explicitly. If a step works in the browser, it works in the browser.
  </Note>

  <div className="mt-8">
    {/* TODO(image): login-screen. IMAGE SPEC: The Actionist desktop login screen. Full-screen dark background (#0A0A0A). Actionist logo centered. Description text 'Sign in securely through your browser. You'll be redirected back here automatically.' below the logo. The purple 'Sign in with Browser' button prominent below. No other UI elements, the before-click idle state. Replace this CSS mock with the real screenshot */}

    <div className="mxp-window" style={{display:'flex',alignItems:'center',justifyContent:'center',minHeight:'240px',margin:'8px 0'}}>
      <div className="xgs-login-inner" style={{display:'flex',flexDirection:'column',alignItems:'center',gap:'12px',padding:'36px 24px',maxWidth:'320px',textAlign:'center'}}>
        <div className="xgs-app-logo" style={{width:'52px',height:'52px',borderRadius:'14px',marginBottom:'0'}}>
          <svg style={{opacity:0.95}} width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#fff" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <circle cx="12" cy="12" r="10" />

            <path d="M12 8v4l3 3" />
          </svg>
        </div>

        <div style={{fontSize:'18px',fontWeight:700,letterSpacing:'-0.02em'}}>Actionist</div>
        <div style={{fontSize:'12.5px',lineHeight:1.6,opacity:0.7,maxWidth:'260px'}}>Sign in securely through your browser. You'll be redirected back here automatically.</div>

        <div style={{display:'inline-flex',alignItems:'center',gap:'8px',padding:'9px 22px',borderRadius:'999px',background:'linear-gradient(135deg,#A22BFF,#7C00D9)',color:'#fff',fontSize:'13px',fontWeight:600,letterSpacing:'0.01em',boxShadow:'0 6px 18px rgb(var(--actionist-purple) / 0.42)',cursor:'default'}}>
          <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="#fff" strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round">
            <path d="M18 8h1a4 4 0 0 1 0 8h-1" />

            <path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z" />

            <line x1="6" y1="1" x2="6" y2="4" />

            <line x1="10" y1="1" x2="10" y2="4" />

            <line x1="14" y1="1" x2="14" y2="4" />
          </svg>

          Sign in with Browser
        </div>

        <div style={{fontSize:'11px',opacity:0.55,fontFamily:'"JetBrains Mono",monospace'}}>No password required</div>
      </div>
    </div>
  </div>
</div>

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Step two</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Watch the browser handoff live.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      Actionist delegates authentication entirely to your browser. No new password. Your browser's existing session (including MFA, passkeys, and social login) does the work. The animation below shows every step as it happens.
    </p>
  </div>

  {/* Two-panel staged animation: desktop waiting (left) + browser stream (right) */}

  <div className="xgs-handoff">
    {/* Left: desktop app waiting state → success */}

    <div className="xgs-desktop-panel">
      <div className="xgs-waiting-content">
        <div style={{position:'relative',marginBottom:'16px',display:'flex',alignItems:'center',justifyContent:'center'}}>
          <div className="xgs-pulse-ring" />

          <div className="xgs-pulse-ring delay" />

          <div className="xgs-app-logo">
            <svg style={{opacity:0.95}} width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#fff" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
              <circle cx="12" cy="12" r="10" />

              <path d="M12 8v4l3 3" />
            </svg>
          </div>
        </div>

        <div className="xgs-waiting-label" style={{fontSize:'13px',fontWeight:600,letterSpacing:'0.02em',marginBottom:'6px'}}>Waiting for browser...</div>
        <div className="xgs-waiting-sub">Sign-in page open in your default browser</div>
      </div>

      <div className="xgs-success-state">
        <div style={{width:'48px',height:'48px',borderRadius:'50%',background:'rgb(110 227 181 / 0.14)',border:'2px solid rgb(110 227 181 / 0.6)',display:'flex',alignItems:'center',justifyContent:'center'}}>
          <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#6EE3B5" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round">
            <path d="M20 6 9 17l-5-5" />
          </svg>
        </div>

        <div style={{fontSize:'13.5px',fontWeight:600,color:'#6EE3B5',letterSpacing:'0.01em'}}>Connection Successful</div>
        <div className="xgs-waiting-sub" style={{opacity:0.8}}>Navigating to Home screen...</div>
      </div>
    </div>

    {/* Right: browser status stream */}

    <div className="mxp-window">
      <div className="mxp-window-bar">
        <span className="mxp-window-dot" />

        <span className="mxp-window-dot" />

        <span className="mxp-window-dot" />

        <span className="mxp-window-title">actionist.ai / auth / desktop</span>
      </div>

      <div className="xgs-browser-body">
        <div className="mxp-stream-event xgs-d1">browser · auth started</div>
        <div className="mxp-stream-line xgs-d2"><span className="mxp-stream-time">, </span><span className="mxp-stream-text">Checking your session...</span></div>

        <div className="xgs-b-check xgs-d3">
          <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round">
            <path d="M20 6 9 17l-5-5" />
          </svg>

          session found
        </div>

        <div className="mxp-stream-line xgs-d4"><span className="mxp-stream-time">, </span><span className="mxp-stream-text">Creating desktop sign-in ticket...</span></div>

        <div className="xgs-b-check xgs-d5">
          <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round">
            <path d="M20 6 9 17l-5-5" />
          </svg>

          ticket created
        </div>

        <div className="mxp-stream-line xgs-d6"><span className="mxp-stream-time">, </span><span className="mxp-stream-text">Sending sign-in ticket to <em>Actionist</em>...</span></div>

        <div className="xgs-b-check xgs-d7">
          <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round">
            <path d="M20 6 9 17l-5-5" />
          </svg>

          ticket delivered
        </div>

        <div className="mxp-stream-event xgs-d8">desktop app · Generating secure token...</div>
        <div className="mxp-stream-line xgs-d9"><span className="mxp-stream-time">. </span><span className="mxp-stream-text" style={{color:'#6EE3B5'}}>Connection Successful<span style={{display:'inline-block',width:'7px',height:'14px',marginLeft:'2px',transform:'translateY(2px)',background:'#6EE3B5',animation:'mxp-blink 1.1s steps(1) infinite'}} /></span></div>
        <div className="mxp-stream-line xgs-d10"><span className="mxp-stream-time">. </span><span className="mxp-stream-text" style={{opacity:0.45}}>You can close this tab.</span></div>
      </div>
    </div>
  </div>

  <div className="xgs-auth-tiles" style={{marginBottom:0}}>
    <div className="exp-glass-card xgs-auth-tile">
      <strong>No new password.</strong>
      <span>Your browser's existing session handles everything. MFA, passkeys, and social login all carry through.</span>
    </div>

    <div className="exp-glass-card xgs-auth-tile">
      <strong>Already signed in?</strong>
      <span>If the app detects your existing browser session, it skips opening the browser entirely. You land on Home without any extra steps.</span>
    </div>

    <div className="exp-glass-card xgs-auth-tile">
      <strong>5-minute timeout.</strong>
      <span>If the window expires, click <strong>Cancel</strong> on the waiting screen and try again. Brave, Safari, or Firefox users may need to click a button on the auth page to complete delivery manually.</span>
    </div>
  </div>

  <Note>
    The sign-in window times out after <strong>5 minutes</strong>. If it expires, click <strong>Cancel</strong> on the waiting screen and try again. If your browser (Brave, Safari, or Firefox) does not hand the ticket back automatically, look for a button on the authentication page and click it to complete delivery manually.
  </Note>

  {/* TODO(image): browser-handoff. IMAGE SPEC: The Actionist authentication page in a browser. Shows a multi-step status list: 'Checking your session' (green checkmark), 'Creating desktop sign-in ticket' (green checkmark), 'Sending sign-in ticket to Actionist' (active spinner/loading), 'Connection successful' (greyed out, not yet reached). Clean browser chrome visible above. Actionist branding in the center. Replace this CSS mock with the real screenshot */}
</div>

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Under the hood</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Six stops from click to Home.</h2>
  </div>

  <div className="mxp-pipe">
    <div className="mxp-pipe-node"><strong>Click button</strong><span>"Sign in with Browser", the app transitions to a waiting state.</span></div>

    <div className="mxp-pipe-link" />

    <div className="mxp-pipe-node"><strong>Browser opens</strong><span>Your default browser navigates to the Actionist authentication page.</span></div>

    <div className="mxp-pipe-link d2" />

    <div className="mxp-pipe-node"><strong>Authenticate</strong><span>Browser walks through session check, ticket creation, and delivery. You may need to confirm a social login.</span></div>

    <div className="mxp-pipe-link d3" />

    <div className="mxp-pipe-node"><strong>Ticket delivered</strong><span>The app receives the signed ticket from the browser.</span></div>

    <div className="mxp-pipe-link d4" />

    <div className="mxp-pipe-node"><strong>Secure token</strong><span>"Generating secure token...", the app finalizes authentication locally.</span></div>

    <div className="mxp-pipe-link" style={{animationDelay:'2.4s'}} />

    <div className="mxp-pipe-node"><strong>Home screen</strong><span>"Connection Successful". A brief pause, then the app navigates automatically.</span></div>
  </div>
</div>

<hr className="xc-divider" />

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Step three (macOS)</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Grant macOS permissions.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      When Actionist detects that macOS permissions are missing, a modal appears automatically. These two permissions are what let Actionist control apps on your behalf. Without them, automation features are unavailable.
    </p>
  </div>

  <div className="xgs-perm-tiles">
    <div className="mxs-tier xgs-perm-tile is-screen">
      <div className="xgs-perm-icon" style={{background:'rgb(36 164 255 / 0.12)'}}>
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#24A4FF" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <rect x="2" y="3" width="20" height="14" rx="2" />

          <path d="M8 21h8m-4-4v4" />
        </svg>
      </div>

      <div style={{fontSize:'13.5px',fontWeight:600,marginBottom:'4px'}}>Screen Recording</div>
      <div style={{fontSize:'12px',lineHeight:1.5,opacity:0.68}}>Allows Actionist to see your screen. Required for Computer Use and vision-driven automation.</div>
    </div>

    <div className="mxs-tier xgs-perm-tile is-access">
      <div className="xgs-perm-icon" style={{background:'rgb(144 0 255 / 0.12)'}}>
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#9000FF" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <path d="M12 2 2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" />
        </svg>
      </div>

      <div style={{fontSize:'13.5px',fontWeight:600,marginBottom:'4px'}}>Accessibility</div>
      <div style={{fontSize:'12px',lineHeight:1.5,opacity:0.68}}>Allows Actionist to control UI elements, required to interact with on-screen apps on your behalf.</div>
    </div>

    <div className="mxs-tier xgs-perm-tile is-optional">
      <div className="xgs-perm-icon" style={{background:'rgb(110 227 181 / 0.12)'}}>
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#6EE3B5" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <path d="M20 12V22H4V12" />

          <path d="M22 7H2v5h20V7z" />

          <path d="M12 22V7m0 0H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7zm0 0h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z" />
        </svg>
      </div>

      <div style={{fontSize:'13.5px',fontWeight:600,marginBottom:'4px'}}>Can skip for now</div>
      <div style={{fontSize:'12px',lineHeight:1.5,opacity:0.68}}>Chat, scheduling, memory, and all app integrations work immediately. Only Computer Use requires these permissions.</div>
    </div>
  </div>

  <Tabs>
    <Tab title="Grant on first launch" icon="shield-check">
      The permissions modal appears automatically when you land on the Home screen for the first time. It shows two rows:

      | Permission                        | What it does                            |
      | --------------------------------- | --------------------------------------- |
      | <strong>Screen Recording</strong> | Allows Actionist to see your screen     |
      | <strong>Accessibility</strong>    | Allows Actionist to control UI elements |

      Click <strong>Grant access</strong> on each row. macOS opens System Settings to the relevant pane. Toggle the switch next to Actionist and return to the app. Once both are granted, click <strong>Continue</strong>.

      {/* TODO(image): permissions-modal. IMAGE SPEC: The macOS permissions modal overlaying the Actionist Home screen. Shows two rows: 'Screen Recording. Allows Actionist to see your screen' and 'Accessibility. Allows Actionist to control UI elements', each with a 'Grant access' button on the right. Footer text reads 'Critical permissions required to continue'. Two footer buttons: 'Skip for now' (secondary) and 'Continue' (primary purple). The modal cannot be dismissed by clicking outside it. Replace this CSS mock with the real screenshot */}

      <div className="mxp-window xgs-perm-modal-mock" style={{padding:'22px 24px 18px',maxWidth:'540px',margin:'12px 0'}}>
        <div style={{fontSize:'15px',fontWeight:700,marginBottom:'4px'}}>Permissions required</div>
        <div style={{fontSize:'12px',marginBottom:'16px',lineHeight:1.5,opacity:0.7}}>Actionist needs access to run automations on your Mac.</div>

        <div style={{display:'flex',alignItems:'center',gap:'12px',padding:'12px 0',borderTop:'1px solid var(--default-border-color)'}}>
          <div style={{width:'32px',height:'32px',borderRadius:'8px',display:'flex',alignItems:'center',justifyContent:'center',flex:'none',background:'rgb(0 0 0 / 0.04)',color:'#24A4FF'}}>
            <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
              <rect x="2" y="3" width="20" height="14" rx="2" />

              <path d="M8 21h8m-4-4v4" />
            </svg>
          </div>

          <div style={{flex:1,minWidth:0}}>
            <div style={{fontWeight:600,fontSize:'13px',marginBottom:'2px'}}>Screen Recording</div>
            <div style={{fontSize:'11.5px',color:'rgb(110 100 140)'}}>Allows Actionist to see your screen</div>
          </div>

          <div style={{padding:'5px 14px',borderRadius:'999px',border:'1px solid rgb(144 0 255 / 0.45)',background:'rgb(144 0 255 / 0.07)',fontSize:'11.5px',fontWeight:600,whiteSpace:'nowrap',cursor:'default'}}>Grant access</div>
        </div>

        <div style={{display:'flex',alignItems:'center',gap:'12px',padding:'12px 0',borderTop:'1px solid var(--default-border-color)'}}>
          <div style={{width:'32px',height:'32px',borderRadius:'8px',display:'flex',alignItems:'center',justifyContent:'center',flex:'none',background:'rgb(0 0 0 / 0.04)',color:'#9000FF'}}>
            <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
              <path d="M12 2 2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" />
            </svg>
          </div>

          <div style={{flex:1,minWidth:0}}>
            <div style={{fontWeight:600,fontSize:'13px',marginBottom:'2px'}}>Accessibility</div>
            <div style={{fontSize:'11.5px',color:'rgb(110 100 140)'}}>Allows Actionist to control UI elements</div>
          </div>

          <div style={{padding:'5px 14px',borderRadius:'999px',border:'1px solid rgb(144 0 255 / 0.45)',background:'rgb(144 0 255 / 0.07)',fontSize:'11.5px',fontWeight:600,whiteSpace:'nowrap',cursor:'default'}}>Grant access</div>
        </div>

        <div style={{fontSize:'11px',color:'rgb(160 140 80)',marginTop:'14px',padding:'8px 12px',borderRadius:'7px',background:'rgb(255 200 50 / 0.09)',border:'1px solid rgb(200 160 0 / 0.2)',fontFamily:'"JetBrains Mono",monospace'}}>Critical permissions required to continue</div>

        <div style={{display:'flex',gap:'10px',justifyContent:'flex-end',marginTop:'14px'}}>
          <div style={{padding:'7px 16px',borderRadius:'8px',fontSize:'12.5px',fontWeight:500,color:'rgb(100 90 130)',border:'1px solid var(--default-border-color)',cursor:'default'}}>Skip for now</div>
          <div style={{padding:'7px 20px',borderRadius:'8px',fontSize:'12.5px',fontWeight:600,background:'linear-gradient(135deg,#A22BFF,#7C00D9)',color:'#fff',cursor:'default',boxShadow:'0 4px 12px rgb(144 0 255 / 0.38)'}}>Continue</div>
        </div>
      </div>
    </Tab>

    <Tab title="Grant later in Settings" icon="settings">
      The modal has a <strong>"Skip for now"</strong> button. You can defer and still use the app. Chat, scheduling, and memory all work immediately. Only Computer Use and screen-based automation require these permissions.

      To grant them later: open <strong>Settings</strong> from the left sidebar, navigate to <strong>Permissions</strong>, and click <strong>Grant access</strong> next to each item.

      <Info>
        The permissions modal reappears each time you return to the Home screen until both permissions are granted. Click <strong>Skip for now</strong> to dismiss it without granting.
      </Info>
    </Tab>
  </Tabs>
</div>

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">The workspace</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Your Home screen at a glance.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      Home is where every task begins. One composer, any agent, live visibility into what is running, everything without leaving the screen. Select a zone to explore it.
    </p>
  </div>

  <div className="xgs-home-shell exp-tool-shell xc-try">
    <div className="mxp-srch-chips">
      <label htmlFor="xgs-comp"><input className="mxp-r" type="radio" name="xgs-zone" id="xgs-comp" defaultChecked />Composer</label>
      <label htmlFor="xgs-bg"><input className="mxp-r" type="radio" name="xgs-zone" id="xgs-bg" />Background agents</label>
      <label htmlFor="xgs-chats"><input className="mxp-r" type="radio" name="xgs-zone" id="xgs-chats" />Chats tab</label>
      <label htmlFor="xgs-upc"><input className="mxp-r" type="radio" name="xgs-zone" id="xgs-upc" />Upcoming tab</label>
    </div>

    {/* Mock Home layout */}

    <div className="xgs-mock-home">
      <div className="xgs-mock-main" style={{padding:'22px 20px',borderRight:'1px solid var(--default-border-color)'}}>
        <div style={{fontSize:'12.5px',fontWeight:600,marginBottom:'2px'}}>What should Actionist handle today?</div>
        <div style={{fontSize:'11px',color:'rgb(100 90 130)',marginBottom:'16px'}}>Choose an agent, describe the result, and let Actionist run it.</div>

        {/* Composer mock */}

        <div className="xgs-mock-composer" style={{borderRadius:'10px',padding:'12px 14px',marginBottom:'14px',boxShadow:'0 0 20px rgb(var(--actionist-purple-bright) / 0.18)'}}>
          <div className="xgs-mock-agent-pill">Working with Maya</div>
          <div style={{fontSize:'11px',color:'rgb(130 120 160)',marginBottom:'8px'}}>Ask Maya to...</div>

          <div style={{display:'flex',justifyContent:'space-between',alignItems:'center'}}>
            <span style={{fontSize:'9.5px',fontFamily:'"JetBrains Mono",monospace',color:'rgb(150 140 180)'}}>Send · new line</span>

            <div style={{width:'26px',height:'26px',borderRadius:'7px',background:'linear-gradient(135deg,#A22BFF,#7C00D9)',display:'flex',alignItems:'center',justifyContent:'center',opacity:0.7}}>
              <svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="#fff" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round">
                <path d="M5 12h14" />

                <path d="m12 5 7 7-7 7" />
              </svg>
            </div>
          </div>
        </div>

        {/* Background agents mock */}

        <div className="xgs-soft" style={{padding:'10px 12px',borderRadius:'8px'}}>
          <div style={{display:'flex',alignItems:'center',gap:'7px',marginBottom:'8px'}}>
            <div className="xgs-mock-pulse-dot" />

            <div style={{fontSize:'10px',fontWeight:600,color:'rgb(60 50 90)'}}>Agents running in the background now</div>
          </div>

          <div className="xgs-mock-run-row">
            <div className="xgs-mock-avatar">M</div>

            <div className="xgs-mock-run-info">
              <div className="xgs-mock-run-name">Summarize weekly digest</div>
              <div className="xgs-mock-run-meta">Maya · 2 min ago</div>
            </div>

            <div className="xgs-mock-spinner" />
          </div>

          <div className="xgs-mock-run-row">
            <div className="xgs-mock-avatar" style={{background:'linear-gradient(135deg,#24A4FF,#6C37FF)'}}>A</div>

            <div className="xgs-mock-run-info">
              <div className="xgs-mock-run-name">Follow up with Northwind</div>
              <div className="xgs-mock-run-meta">Alex · 5 min ago</div>
            </div>

            <div className="xgs-mock-spinner" />
          </div>
        </div>
      </div>

      {/* Sidebar mock */}

      <div className="xgs-mock-sidebar" style={{padding:'12px 10px'}}>
        <div className="xgs-mock-tabs" style={{display:'flex',gap:'4px',marginBottom:'12px'}}>
          <div className="xgs-mock-tab" data-tab="chats">Chats</div>
          <div className="xgs-mock-tab" data-tab="upcoming">Upcoming</div>
        </div>

        <div className="xgs-input" style={{borderRadius:'6px',padding:'4px 8px',fontSize:'9.5px',color:'rgb(130 120 160)',marginBottom:'8px',fontFamily:'"JetBrains Mono",monospace'}}>Search conversations...</div>

        <div className="xgs-mock-chat-row">
          <div className="xgs-mock-avatar" style={{width:'20px',height:'20px',fontSize:'7px'}}>M</div>

          <div style={{flex:1,minWidth:0}}>
            <div style={{fontSize:'9.5px',fontWeight:600,whiteSpace:'nowrap',overflow:'hidden',textOverflow:'ellipsis'}}>Maya</div>
            <div style={{fontSize:'8.5px',whiteSpace:'nowrap',overflow:'hidden',textOverflow:'ellipsis'}}>Done. The digest is ready...</div>
          </div>

          <div style={{fontSize:'8px',flex:'none'}}>2m</div>
        </div>

        <div className="xgs-mock-chat-row">
          <div className="xgs-mock-avatar" style={{width:'20px',height:'20px',fontSize:'7px',background:'linear-gradient(135deg,#24A4FF,#6C37FF)'}}>A</div>

          <div style={{flex:1,minWidth:0}}>
            <div style={{fontSize:'9.5px',fontWeight:600,whiteSpace:'nowrap',overflow:'hidden',textOverflow:'ellipsis'}}>Alex</div>
            <div style={{fontSize:'8.5px',whiteSpace:'nowrap',overflow:'hidden',textOverflow:'ellipsis'}}>Sent follow-up to Dana Voss</div>
          </div>

          <div style={{fontSize:'8px',flex:'none'}}>7m</div>
        </div>

        <div className="xgs-mock-chat-row">
          <div className="xgs-mock-avatar" style={{width:'20px',height:'20px',fontSize:'7px',background:'linear-gradient(135deg,#C800B3,#9000FF)'}}>R</div>

          <div style={{flex:1,minWidth:0}}>
            <div style={{fontSize:'9.5px',fontWeight:600,whiteSpace:'nowrap',overflow:'hidden',textOverflow:'ellipsis'}}>Riley</div>
            <div style={{fontSize:'8.5px',whiteSpace:'nowrap',overflow:'hidden',textOverflow:'ellipsis'}}>Invoice #2041 escalated</div>
          </div>

          <div style={{fontSize:'8px',flex:'none'}}>1h</div>
        </div>

        <div style={{fontSize:'8.5px',fontWeight:700,letterSpacing:'0.1em',textTransform:'uppercase',margin:'8px 0 4px'}}>Today</div>

        <div style={{display:'flex',alignItems:'center',gap:'7px',padding:'5px 4px',borderRadius:'7px'}}>
          <div style={{width:'6px',height:'6px',borderRadius:'50%',background:'rgb(var(--actionist-purple-bright))',flex:'none'}} />

          <div style={{fontSize:'9px',flex:1}}>Daily digest · Maya</div>
          <div style={{fontSize:'8.5px',flex:'none',fontFamily:'"JetBrains Mono",monospace'}}>17:00</div>
        </div>

        <div style={{display:'flex',alignItems:'center',gap:'7px',padding:'5px 4px',borderRadius:'7px'}}>
          <div style={{width:'6px',height:'6px',borderRadius:'50%',background:'#24A4FF',flex:'none'}} />

          <div style={{fontSize:'9px',flex:1}}>Invoice chase · Riley</div>
          <div style={{fontSize:'8.5px',flex:'none',fontFamily:'"JetBrains Mono",monospace'}}>18:30</div>
        </div>
      </div>
    </div>

    {/* Zone description panels */}

    <div className="xgs-zone-panel xgs-zone-comp">
      <div className="exp-surface-tile xgs-zone-desc">
        <strong>The composer card</strong>
        The dark frosted card in the center of the screen. It is the single launch point for any task on any agent. The <strong>"Working with"</strong> pill at the top shows the current agent. Click it to switch. The textarea below shows the placeholder <strong>"Ask \[name] to…"</strong>. Type your task and press Enter to send; Shift+Enter adds a new line. The gradient send button is disabled until you type something.

        Clicking the pill opens the agent picker. It lists all your enabled agents. Each row shows the agent's avatar, name, and role subtitle. Click any agent to select it; the picker closes and the placeholder updates. If you have no agents yet, the picker shows <strong>"Build an agent"</strong> with the hint <strong>"Create your first agent to get started."</strong> Clicking it navigates to the Agents page.

        {/* TODO(image): home-composer. IMAGE SPEC: The Actionist Home screen with the HomeComposer card as the visual focus. Show: the 'What should Actionist handle today?' heading above, the 'Working with [agent name]' pill at the top of the composer card, the 'Ask [name] to...' placeholder text inside the textarea, and the hint 'Press Return to send / Shift+Return for new line' below it. The send button (gradient purple pill) visible at the bottom right of the card. Background is dark (#0A0A0A). Replace this CSS mock with the real screenshot */}
      </div>
    </div>

    <div className="xgs-zone-panel xgs-zone-bg">
      <div className="exp-surface-tile xgs-zone-desc">
        <strong>Background agents section</strong>
        Below the composer: a live section that shows every agent run currently executing in the background. A <strong>green pulsing dot</strong> in the section header means at least one agent is active right now. A dim white dot means idle; the empty state reads <strong>"No agents running in the background"</strong>. Each active row shows the agent's avatar, the task name, the agent name and relative time, and a spinning green ring. The empty-state hint is: <strong>"Schedule an agent and its background runs will show up here."</strong>

        {/* TODO(image): background-agents-active. IMAGE SPEC: The Actionist Home screen with BackgroundAgentsSection showing 1-2 active agent runs. Section header reads 'Agents running in the background now' with a green pulsing glow dot to its left. Each run row shows: a circular agent avatar (initials or icon), a task display name, the agent name + relative time in smaller text below, and a green spinning ring progress indicator on the right. The Chats/Upcoming sidebar is visible on the right side of the screen. Background is dark. Replace this CSS mock with the real screenshot */}
      </div>
    </div>

    <div className="xgs-zone-panel xgs-zone-chats">
      <div className="exp-surface-tile xgs-zone-desc">
        <strong>Chats tab</strong>
        The right sidebar has two tabs. <strong>Chats</strong> (shown with a live count badge) lists every conversation, most recent first. A search bar at the top accepts free text: <strong>"Search conversations…"</strong>. The filter button opens a popover with two multi-select groups: <strong>SOURCE</strong> (Desktop / Telegram / Slack) and <strong>AGENT</strong>. Active filters show as chips below the search bar with a <strong>Clear</strong> link. Each conversation row shows the agent avatar, a small source dot, the peer label (<strong>"Me"</strong> for desktop sessions), the agent name, relative time, and a two-line message preview. Clicking a row reopens that conversation in a floating chat window.

        <Tip>
          The Chats tab is a record, not a launcher. Clicking a row reopens an existing conversation. It does not start a new one. To start fresh, use the composer and send a new task.
        </Tip>
      </div>
    </div>

    <div className="xgs-zone-panel xgs-zone-upc">
      <div className="exp-surface-tile xgs-zone-desc">
        <strong>Upcoming tab</strong>
        The <strong>Upcoming</strong> tab (with its own count badge) shows every scheduled agent run within the next 60 days, grouped into <strong>TODAY</strong>, <strong>TOMORROW</strong>, and <strong>LATER</strong>. A <strong>TRIGGERS</strong> section appears when trigger-based schedules are active. Times come from the calendar-events API so they reflect per-occurrence accuracy. Not the raw schedule definition. If nothing is scheduled yet, the tab shows <strong>"Nothing scheduled."</strong>

        <Note>
          Runs scheduled beyond 60 days are not shown until they move inside that window.
        </Note>
      </div>
    </div>
  </div>
</div>

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">In the wild</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Thirty seconds to your first result.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      Sam runs his solo business from a single inbox. Here is exactly what happened the first time he typed a task.
    </p>
  </div>

  <div className="xc-phone">
    <div className="xc-phone-head">
      <div className="xc-phone-ava" style={{background:'linear-gradient(135deg,#486EFF,#9000FF)'}}>S</div>

      <div>
        <strong>Sam</strong>
        <span className="handle">@sam\_actionist\_bot</span>
      </div>

      <span className="xc-phone-online">ONLINE</span>
    </div>

    <div className="xc-phone-body">
      <div className="xc-bub me">
        Triage my inbox. Flag anything urgent, archive newsletters, and give me a summary of what needs a reply today.
        <span className="t">09:07</span>
      </div>

      <div className="xc-phone-badge">SEEN · READING CONTEXT</div>
      <div className="xc-phone-badge">TOOL · LIST\_EMAILS</div>

      <div className="xc-bub them">
        Scanned 34 unread emails. Found 3 that need a reply today, archived 11 newsletters, and flagged 1 message from your accountant as urgent.
        <span className="t">09:07</span>
      </div>

      <div className="xc-phone-badge">TOOL · APPLY\_LABELS</div>

      <div className="xc-bub them">
        <strong>Reply today</strong>: Northwind contract (due Friday), investor update request, and a support escalation from Priya's team.<br />
        <strong>Urgent</strong>: Q2 invoice from your accountant needs approval before end of day.
        <span className="t">09:08</span>
      </div>

      <div className="xc-phone-card">
        <div className="xc-phone-card-body">
          <strong>Inbox triage complete</strong>
          <span>34 emails processed · 3 flagged for reply · 11 archived · 1 urgent</span>
        </div>

        <div className="xc-phone-actions">
          <span style={{color:'#9b45ff'}}>Open inbox</span>
          <span style={{color:'#6EE3B5'}}>Mark done</span>
        </div>
      </div>
    </div>
  </div>
</div>

<hr className="xc-divider" />

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">The payoff</span>
    <h2 id="first-task" className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Send your first task.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      This is the whole loop in sixty seconds. Follow it once and the rest of the app makes sense.
    </p>
  </div>

  {/* Animated task loop */}

  <div className="xgs-task-loop" style={{margin:'26px 0 10px'}}>
    <div className="mxp-window xgs-task-composer" style={{marginBottom:'16px'}}>
      <div className="xgs-task-composer-bar" style={{padding:'10px 14px',borderBottom:'1px solid var(--default-border-color)',display:'flex',alignItems:'center',gap:'8px'}}>
        <span style={{fontSize:'11px',fontFamily:'"JetBrains Mono",monospace',color:'rgb(120 110 150)'}}>Home</span>
        <div style={{display:'inline-flex',alignItems:'center',borderRadius:'999px',color:'rgb(var(--actionist-purple-bright))',fontSize:'10px',fontWeight:600,letterSpacing:'0.03em',gap:'5px',padding:'2px 9px',background:'rgb(var(--actionist-purple) / 0.22)'}}>Working with Maya</div>
      </div>

      <div className="xgs-task-composer-body" style={{padding:'14px 16px',fontFamily:'"JetBrains Mono",monospace',fontSize:'12.5px'}}>
        <div className="xgs-typed-task">Summarize the three most recent items in our Slack #announcements channel and draft a short email I can send to the team.</div>
      </div>

      <div className="xgs-run-out" style={{padding:'14px 16px',borderTop:'1px solid var(--default-border-color)',fontFamily:'"JetBrains Mono",monospace',fontSize:'12px',lineHeight:1.75}}>
        <div className="mxp-stream-event xgs-ra">tool · mcp\_slack\_list\_messages</div>
        <div className="mxp-stream-line xgs-rb"><span className="mxp-stream-time">maya</span><span className="mxp-stream-text">Reading <em>#announcements</em>... found 3 recent posts.</span></div>
        <div className="mxp-stream-event xgs-rc">tool · mcp\_slack\_get\_message ×3</div>
        <div className="mxp-stream-line xgs-rd"><span className="mxp-stream-time">maya</span><span className="mxp-stream-text">Summarized. Drafting your email now.</span></div>
        <div className="mxp-stream-line xgs-re"><span className="mxp-stream-time">maya</span><span className="mxp-stream-text"><em>Subject:</em> Team announcements, this week</span></div>
        <div className="mxp-stream-line xgs-rf"><span className="mxp-stream-time">maya</span><span className="mxp-stream-text">Three highlights attached. Ready to send or edit.</span></div>

        <div className="xgs-done-badge">
          <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round">
            <path d="M20 6 9 17l-5-5" />
          </svg>

          Task complete, conversation saved to Chats
        </div>
      </div>
    </div>
  </div>

  <Steps titleSize="h3">
    <Step title="Check the welcome header" icon="house">
      Home loads with the heading <strong>"What should Actionist handle today?"</strong> and the subtitle <strong>"Choose an agent, describe the result, and let Actionist run it."</strong> The composer card is centered below.
    </Step>

    <Step title="Choose your agent" icon="users">
      Look at the <strong>"Working with"</strong> pill at the top of the composer. If the right agent is already selected, skip this step. If not, click the pill, find your agent in the dropdown, and click it. The textarea placeholder updates to <strong>"Ask \[name] to…"</strong>.

      <Info>
        Only enabled agents appear in the picker. If an agent you expect is missing, open <strong>Agents</strong> in the left sidebar and check whether it has been disabled.
      </Info>
    </Step>

    <Step title="Describe the task" icon="pencil">
      Click inside the textarea and type what you want the agent to do. Be direct: describe the outcome, not the steps. For example:

      > *"Summarize the three most recent items in our Slack #announcements channel and draft a short email I can send to the team."*

      Use <strong>Shift+Enter</strong> to add a new line if your task needs more than one sentence.
    </Step>

    <Step title="Send it" icon="send">
      Press <strong>Enter</strong> (or click the gradient send button). The textarea clears and a <strong>floating chat window</strong> opens beside the Home screen, showing your agent's response building in real time.
    </Step>

    <Step title="Watch the background section update" icon="activity">
      While the agent runs, the <strong>BackgroundAgentsSection</strong> shows it as an active row: green pulsing dot, spinning ring, task name. When the run finishes, the section returns to idle.
    </Step>

    <Step title="Find the conversation in Chats" icon="message-circle">
      Every task you send creates a permanent record. Open the <strong>Chats</strong> tab in the right sidebar to find it. Search or filter by source or agent whenever your history grows.
    </Step>
  </Steps>

  <Check>
    You have sent your first task. The agent handled the work; the conversation is saved; the app is ready for the next one.
  </Check>

  {/* ============================================================
        UTILITY SHOWCASE, YOUR FIRST WEEK receipt
        Placement: below the first-task confirmation, within Section 7
        ============================================================ */}

  <div className="mt-10 xc-rise">
    <div className="actionist-tight flex flex-col gap-2 mb-6">
      <span className="actionist-section-eyebrow">What comes next</span>
      <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Your first week, handed off.</h2>

      <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
        Most new users hand off the same handful of recurring chores in their first few days. Here is a typical tally.
      </p>
    </div>

    <div className="xc-receipt">
      <div className="xc-receipt-head">YOUR FIRST WEEK</div>
      <div className="xc-receipt-sub">Actionist · getting-started receipt</div>

      <div className="xc-receipt-row">
        <span>Daily inbox triage (5 days)</span>
        <span>saves \~25 min/day</span>
      </div>

      <div className="xc-receipt-row">
        <span>Meeting notes + action items (3 calls)</span>
        <span>saves \~15 min/call</span>
      </div>

      <div className="xc-receipt-row">
        <span>Morning digest, calendar + messages</span>
        <span>saves \~10 min/day</span>
      </div>

      <div className="xc-receipt-row">
        <span>Follow-up drafts after sales calls (4)</span>
        <span>saves \~12 min each</span>
      </div>

      <div className="xc-receipt-row">
        <span>Weekly status summary to team</span>
        <span>saves \~30 min/week</span>
      </div>

      <div className="xc-receipt-total">
        <span>Typical first-week total</span>
        <span>\~4 hrs reclaimed</span>
      </div>

      <div className="xc-receipt-foot">ILLUSTRATIVE, BASED ON THE TASKS DESCRIBED ON THIS PAGE</div>
    </div>
  </div>
</div>

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">First launch</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Pip walks you through setup.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      On your first launch, a floating assistant called <strong>Pip</strong> appears and guides you through a five-turn setup wizard. Answer each prompt and you will have a working agent set configured before your first task.
    </p>
  </div>

  <div className="mxp-window">
    <div className="mxp-window-bar">
      <span className="mxp-window-dot" />

      <span className="mxp-window-dot" />

      <span className="mxp-window-dot" />

      <span className="mxp-window-title">Pip · setup wizard</span>
    </div>

    <div className="mxp-window-body">
      <div className="mxp-s1"><span className="mxp-stream-event">pip · first launch</span></div>
      <div className="mxp-stream-line mxp-s2"><span className="mxp-stream-time">pip</span><span className="mxp-stream-text">Hi. I'm <em>Pip</em>. Let's get your workspace ready. What's your company name?</span></div>
      <div className="mxp-stream-line mxp-s3"><span className="mxp-stream-time">you</span><span className="mxp-stream-text">Northwind Trading</span></div>
      <div className="mxp-stream-line mxp-s4"><span className="mxp-stream-time">pip</span><span className="mxp-stream-text">Got it. Want me to create a starter set: a receptionist, a support agent, and an executive assistant?</span></div>
      <div className="mxp-stream-line mxp-s5"><span className="mxp-stream-time">you</span><span className="mxp-stream-text">Yes please.</span></div>
      <div className="mxp-stream-line mxp-s6"><span className="mxp-stream-time">pip</span><span className="mxp-stream-text">Done. <em>3 agents created</em>. Want to connect Telegram or Slack so they can reach you outside the app?</span></div>
      <div className="mxp-stream-line mxp-s7"><span className="mxp-stream-time">pip</span><span className="mxp-stream-text">You're all set. Tap the composer to send your first task.<span className="mxp-caret" /></span></div>
    </div>
  </div>

  <Columns cols={2}>
    <Card title="What Pip asks" icon="list-ordered">
      1. Your company name.
      2. Whether to create a starter agent set: a receptionist, a customer-support agent, and an executive assistant.
      3. Whether to connect Telegram or Slack so agents can reach you outside the app.
      4. Your preference for proactive nudges.
      5. A brief tip and a "Got it" to finish.
    </Card>

    <Card title="What you get" icon="circle-check">
      A named workspace, up to three pre-configured starter agents, and optionally a messaging channel connected, all before you type a single prompt. Skip any step and configure it manually later.
    </Card>
  </Columns>

  <Tip>
    If you arrived at Actionist through the demo at demo.actionist.ai, your personalised context from that session is applied automatically after sign-in.
  </Tip>
</div>

<hr className="xc-divider" />

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Good to know</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Things that trip people up first.</h2>
  </div>

  <AccordionGroup>
    <Accordion title="My agent is not in the picker" icon="search">
      The agent picker only shows <em>enabled</em> agents. If an agent you created is missing from the list, navigate to <strong>Agents</strong> in the left sidebar and look for a disabled toggle next to its name. Re-enable it and it will appear in the picker immediately.
    </Accordion>

    <Accordion title="The sidebar width resets every time I restart" icon="panel-right">
      The sidebar width (default 300 px, drag to resize between 240 px and 420 px) is session-only. It is not saved when the app closes. Drag the resize handle to your preferred width each session. This is expected behavior.
    </Accordion>

    <Accordion title="Clicking a Chats row opened the old conversation, not a new one" icon="message-square">
      That is intentional. The <strong>Chats</strong> tab is a history viewer, clicking a row reopens the existing conversation thread. To start a fresh task with the same agent, go back to the composer, type your new task, and send it. A new conversation is created automatically.
    </Accordion>

    <Accordion title="How do I know if an agent is actively running?" icon="activity">
      The green pulsing dot in the <strong>BackgroundAgentsSection</strong> header is your ambient signal. Green and glowing = at least one agent is running right now. Dim white = nothing is active. You do not need to open any other panel to check.
    </Accordion>

    <Accordion title="I filtered by source and agent but got unexpected results" icon="funnel">
      The conversation filter uses AND logic <em>across</em> the two groups (Source and Agent) and OR logic <em>within</em> each group. Selecting "Telegram" under Source and "Alice" under Agent shows only Alice's Telegram conversations, not all Telegram conversations and not all Alice conversations. To clear filters, click the <strong>Clear</strong> link that appears below the search bar.
    </Accordion>

    <Accordion title="I skipped permissions — what still works?" icon="shield">
      Skipping macOS permissions at first launch is fine. <strong>Chat, scheduling, memory, and all app integrations</strong> work immediately without them. The only features that require Screen Recording and Accessibility are Computer Use (vision-driven screen automation). The permissions modal reappears each time you visit the Home screen until both are granted. You can also grant them any time from <strong>Settings → Permissions</strong>.
    </Accordion>
  </AccordionGroup>
</div>

<div className="w-full py-10">
  <div className="actionist-cta-panel xc-border">
    <div className="relative z-10 flex flex-col items-center gap-5 max-w-2xl mx-auto">
      <span className="actionist-eyebrow">You're set up</span>

      <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-white leading-tight">
        Now put them to work.
      </h2>

      <p className="text-base md:text-lg text-white/85">
        Describe the task. Actionist runs it while you move on.
      </p>

      <div className="flex flex-wrap items-center justify-center gap-3 pt-2">
        <a className="actionist-cta-btn-primary" href="https://app.actionist.ai" target="_blank" rel="noreferrer">
          Open the Dashboard

          <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round">
            <path d="M5 12h14" />

            <path d="m12 5 7 7-7 7" />
          </svg>
        </a>

        <a className="actionist-cta-btn-secondary" href="mailto:support@actionist.ai">
          Email the team
        </a>
      </div>
    </div>
  </div>
</div>

<div className="w-full pt-2 pb-6">
  <p className="actionist-trust-line">
    No passwords. No configuration menus. One click, one browser window, you're in.<br />
    Runs in your browser · Desktop builds optional · Permissions always skippable
  </p>
</div>

<div className="w-full pb-16">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Keep going</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Next steps.</h2>
  </div>

  <Columns cols={4}>
    <Card title="Agents" icon="users" href="/Folders/agents">
      Build, configure, and supervise AI employees, the full studio guide from identity to approval modes.
    </Card>

    <Card title="Schedules" icon="calendar-clock" href="/Folders/schedules">
      Put agents on a recurring schedule so they show up to work without anyone asking.
    </Card>

    <Card title="Channels" icon="messages-square" href="/Folders/channels">
      Connect Telegram or Slack so your agents respond where your team already is.
    </Card>

    <Card title="Apps" icon="layout-grid" href="/apps">
      Browse the integration catalog: Slack, Notion, Linear, GitHub, HubSpot, Stripe, and more.
    </Card>
  </Columns>
</div>
