Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
221 changes: 221 additions & 0 deletions web/app/chief/chief.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
.page {
--chief-bg: #08111a;
--chief-surface: #0f1b29;
--chief-surface-strong: #13283b;
--chief-line: rgba(116, 184, 226, 0.18);
--chief-line-strong: rgba(116, 184, 226, 0.36);
--chief-text: #edf4fb;
--chief-muted: #a8b8c8;
--chief-faint: #77879a;
--chief-accent: #74b8e2;
min-height: 100vh;
overflow-x: clip;
background: var(--chief-bg);
color: var(--chief-text);
}

.hero {
min-height: min(700px, calc(100dvh - 72px));
display: flex;
align-items: center;
padding: 88px 40px 64px;
background:
radial-gradient(circle at 78% 25%, rgba(116, 184, 226, 0.13), transparent 34rem),
linear-gradient(180deg, #10283b 0%, var(--chief-bg) 100%);
border-bottom: 1px solid var(--chief-line);
}

.heroInner {
width: 100%;
max-width: 1180px;
margin: 0 auto;
}

.heroCopy { max-width: 920px; }

.hero h1,
.problemInner h2,
.sectionIntro h2,
.responsibilityIntro h2,
.infrastructureCopy h2,
.evolutionInner h2,
.ctaInner h2 {
margin: 0;
font-family: var(--font-heading), sans-serif;
font-weight: 520;
letter-spacing: -0.055em;
line-height: 1.02;
}

.hero h1 {
max-width: 16ch;
font-size: clamp(3.5rem, 6.2vw, 6.5rem);
}

.heroLead {
max-width: 54ch;
margin: 26px 0 0;
color: var(--chief-muted);
font-size: clamp(1.02rem, 1.2vw, 1.16rem);
line-height: 1.65;
}

.heroActions { display: flex; gap: 14px; margin-top: 34px; flex-wrap: wrap; }

.pilotButton,
.pilotButtonCompact,
.secondaryButton {
min-height: 48px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 9px;
padding: 12px 24px;
border: 1.5px solid #234969;
border-radius: 999px;
background: #2d6a9c;
color: #fff;
font-size: 0.91rem;
font-weight: 650;
line-height: 1;
text-decoration: none;
white-space: nowrap;
transition: transform 180ms var(--ease-out-quint), background 180ms ease, border-color 180ms ease;
}

.pilotButtonCompact { min-height: 38px; padding: 9px 17px; background: #edf7fd; border-color: #d8ebf8; color: #0b2233; }
.secondaryButton { background: transparent; border-color: var(--chief-line-strong); color: var(--chief-text); }
.pilotButton svg, .pilotButtonCompact svg, .secondaryButton svg { width: 16px; height: 16px; stroke-width: 1.8; }
.pilotButton:hover { background: #4a90c2; }
.secondaryButton:hover { border-color: var(--chief-accent); color: var(--chief-accent); }
.pilotButton:hover, .pilotButtonCompact:hover, .secondaryButton:hover { transform: translateY(-1px); }
.pilotButton:active, .pilotButtonCompact:active, .secondaryButton:active { transform: scale(0.97); }
.pilotButton:focus-visible, .pilotButtonCompact:focus-visible, .secondaryButton:focus-visible { outline: 3px solid var(--chief-accent); outline-offset: 4px; }

.problemSection { padding: 118px 40px; background: #0b1723; border-bottom: 1px solid var(--chief-line); }
.problemInner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 96px; align-items: end; }
.problemInner h2, .sectionIntro h2, .responsibilityIntro h2, .infrastructureCopy h2, .evolutionInner h2, .ctaInner h2 { font-size: clamp(2.35rem, 4.2vw, 4.5rem); }
.problemCopy { padding-left: 28px; border-left: 1px solid var(--chief-line-strong); }
.problemCopy p, .sectionIntro p, .responsibilityIntro p, .infrastructureCopy p, .evolutionInner p, .ctaInner > p { color: var(--chief-muted); line-height: 1.7; }
.problemCopy p { margin: 0; }
.problemCopy p + p { margin-top: 20px; color: var(--chief-text); }

.workflowSection { max-width: 1280px; margin: 0 auto; padding: 128px 40px 140px; }
.sectionIntro { max-width: 760px; }
.sectionIntro p { max-width: 61ch; margin: 24px 0 0; }
.workflowTrack { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 76px; }
.workflowItem { position: relative; padding: 0 32px 0 0; }
.workflowItem:not(:last-child) { border-right: 1px solid var(--chief-line); margin-right: 32px; }
.workflowRail { height: 2px; margin-bottom: 30px; background: var(--chief-line); }
.workflowRail span { display: block; width: 38%; height: 100%; background: var(--chief-accent); }
.workflowIcon { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--chief-line-strong); border-radius: 12px; background: var(--chief-surface); color: var(--chief-accent); }
.workflowIcon svg { width: 20px; height: 20px; stroke-width: 1.7; }
.workflowDetail { margin: 24px 0 0; color: var(--chief-accent) !important; font: 0.7rem/1.2 var(--font-geist-mono), monospace; text-transform: uppercase; letter-spacing: .07em; }
.workflowItem h3 { margin: 12px 0 0; font-size: 1.16rem; letter-spacing: -.025em; }
.workflowItem > p:last-child { margin: 13px 0 0; color: var(--chief-muted); font-size: .92rem; line-height: 1.65; }

.responsibilitySection { padding: 128px 40px; background: #10283b; border-block: 1px solid var(--chief-line); }
.responsibilitySection > * { max-width: 1160px; margin-inline: auto; }
.responsibilityIntro { max-width: 770px; }
.responsibilityIntro p { max-width: 66ch; margin: 22px 0 0; }
.responsibilityIntro p + p { margin-top: 10px; color: var(--chief-text); }
.responsibilityDiagram { margin-top: 68px; display: grid; grid-template-columns: 1fr 50px 1fr; gap: 22px; align-items: center; }
.beforeDiagram, .afterDiagram { min-height: 390px; padding: 28px; border: 1px solid var(--chief-line); border-radius: 16px; background: #0b1b29; }
.beforeDiagram h3, .afterDiagram h3 { margin: 0; color: var(--chief-muted); font: .72rem/1.2 var(--font-geist-mono), monospace; text-transform: uppercase; letter-spacing: .08em; }
.beforeDiagram > p, .afterDiagram > p { margin: 20px 0 0; color: var(--chief-muted); font-size: .86rem; text-align: center; }
.manualMap { position: relative; width: 260px; height: 245px; margin: 22px auto 0; }
.personNode, .manualNode, .managedChief, .returnNode { display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--chief-line-strong); border-radius: 12px; background: var(--chief-surface-strong); font: .7rem/1.2 var(--font-geist-mono), monospace; }
.personNode { padding: 12px 14px; color: var(--chief-text); }
.personNode svg, .returnNode svg { width: 15px; height: 15px; color: var(--chief-accent); }
.manualMap .personNode { position: absolute; left: 82px; top: 96px; z-index: 2; }
.manualNode { position: absolute; width: 68px; height: 42px; color: var(--chief-muted); }
.manualNode::after { content: ''; position: absolute; width: 66px; height: 1px; background: var(--chief-line-strong); transform-origin: left; }
.manualNode:nth-child(2) { left: 0; top: 16px; } .manualNode:nth-child(2)::after { left: 58px; top: 35px; transform: rotate(35deg); }
.manualNode:nth-child(3) { right: 0; top: 16px; } .manualNode:nth-child(3)::after { right: 58px; top: 35px; transform: rotate(-35deg); transform-origin: right; }
.manualNode:nth-child(4) { left: 0; bottom: 10px; } .manualNode:nth-child(4)::after { left: 58px; bottom: 35px; transform: rotate(-35deg); }
.manualNode:nth-child(5) { right: 0; bottom: 10px; } .manualNode:nth-child(5)::after { right: 58px; bottom: 35px; transform: rotate(35deg); transform-origin: right; }
.manualNode:nth-child(6) { left: 96px; top: 0; } .manualNode:nth-child(6)::after { left: 34px; top: 42px; transform: rotate(90deg); }
.manualNode:nth-child(7) { left: 96px; bottom: 0; } .manualNode:nth-child(7)::after { left: 34px; bottom: 42px; transform: rotate(-90deg); }
.compareArrow { width: 24px; margin: auto; color: var(--chief-accent); }
.managedMap { min-height: 245px; margin-top: 22px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 11px; }
.managedMap > svg { width: 18px; color: var(--chief-faint); }
.managedChief { padding: 13px 28px; border-color: var(--chief-accent); background: #12334b; color: var(--chief-text); font-size: .85rem; }
.managedTeams { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.managedTeams span { padding: 9px 13px; border: 1px solid var(--chief-line); border-radius: 10px; color: var(--chief-muted); font: .65rem/1 var(--font-geist-mono), monospace; }
.returnNode { padding: 10px 15px; color: var(--chief-accent); }

.infrastructureSection { padding: 136px 40px; }
.infrastructureInner { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: .82fr 1.18fr; gap: 100px; align-items: center; }
.infrastructureCopy p { max-width: 55ch; margin: 24px 0 0; }
.infrastructureCopy p + p { margin-top: 14px; color: var(--chief-text); }
.layerDiagram { display: grid; gap: 10px; }
.chiefLayer, .relayLayer { padding: 28px; border: 1px solid var(--chief-line-strong); border-radius: 16px; }
.chiefLayer { width: 82%; margin: 0 auto; background: #15344a; }
.relayLayer { background: var(--chief-surface); }
.chiefLayer > span, .relayLayer > span { color: var(--chief-accent); font: .68rem/1.2 var(--font-geist-mono), monospace; text-transform: uppercase; letter-spacing: .08em; }
.chiefLayer strong, .relayLayer strong { display: block; margin-top: 10px; font: 520 1.5rem/1.1 var(--font-heading), sans-serif; }
.chiefLayer p { margin: 13px 0 0; color: var(--chief-muted); font-size: .84rem; line-height: 1.55; }
.capabilityGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; margin-top: 22px; }
.capabilityGrid span { display: flex; align-items: center; gap: 8px; color: var(--chief-muted); font-size: .78rem; }
.capabilityGrid svg { width: 15px; height: 15px; color: var(--chief-accent); stroke-width: 1.7; }

.evolutionSection { padding: 94px 40px; background: #0c1c2a; border-block: 1px solid var(--chief-line); }
.evolutionInner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 90px 1fr; gap: 40px; align-items: start; }
.evolutionInner > svg { width: 70px; height: 70px; padding: 18px; border: 1px solid var(--chief-line-strong); border-radius: 16px; color: var(--chief-accent); }
.evolutionInner h2 { font-size: clamp(2.2rem, 3.8vw, 4rem); }
.evolutionInner p { max-width: 65ch; margin: 22px 0 0; }
.evolutionInner p + p { margin-top: 12px; color: var(--chief-text); font-weight: 600; }

.ctaSection { padding: 140px 40px; text-align: center; background: radial-gradient(circle at 50% 25%, rgba(116, 184, 226, .13), transparent 32rem); }
.ctaInner { max-width: 820px; margin: 0 auto; }
.ctaInner > p { margin: 24px auto 0; font-size: 1.08rem; }
.ctaInner .pilotButton { margin-top: 34px; }
.ctaInner > span { display: block; margin-top: 18px; color: var(--chief-faint); font-size: .83rem; }

@media (max-width: 1120px) {
.hero { padding-top: 72px; }
.heroCopy { max-width: 860px; }
.workflowTrack { grid-template-columns: repeat(2, 1fr); gap: 52px 0; }
.workflowItem:nth-child(2) { border-right: 0; margin-right: 0; }
.infrastructureInner { gap: 60px; }
}

@media (max-width: 760px) {
.hero, .problemSection, .workflowSection, .responsibilitySection, .infrastructureSection, .evolutionSection, .ctaSection { padding-left: 20px; padding-right: 20px; }
.hero { min-height: auto; padding-top: 76px; padding-bottom: 52px; }
.hero h1 { max-width: 12ch; font-size: clamp(3rem, 15vw, 4.3rem); }
.heroLead { font-size: 1rem; }
.problemSection { padding-top: 88px; padding-bottom: 88px; }
.problemInner { grid-template-columns: 1fr; gap: 38px; }
.problemCopy { padding-left: 20px; }
.workflowSection { padding-top: 96px; padding-bottom: 104px; }
.workflowTrack { grid-template-columns: 1fr; gap: 0; margin-top: 54px; }
.workflowItem, .workflowItem:not(:last-child), .workflowItem:nth-child(2) { margin: 0; padding: 0 0 44px; border-right: 0; }
.workflowItem:last-child { padding-bottom: 0; }
.workflowRail { width: 48%; }
.responsibilitySection { padding-top: 96px; padding-bottom: 96px; }
.responsibilityDiagram { grid-template-columns: 1fr; margin-top: 48px; }
.compareArrow { transform: rotate(90deg); }
.beforeDiagram, .afterDiagram { min-height: 370px; padding: 22px; }
.infrastructureSection { padding-top: 102px; padding-bottom: 102px; }
.infrastructureInner { grid-template-columns: 1fr; gap: 52px; }
.chiefLayer { width: 88%; }
.evolutionSection { padding-top: 78px; padding-bottom: 78px; }
.evolutionInner { grid-template-columns: 1fr; gap: 26px; }
.evolutionInner > svg { width: 58px; height: 58px; padding: 15px; }
.ctaSection { padding-top: 104px; padding-bottom: 104px; }
}

@media (max-width: 440px) {
.hero h1 { max-width: 10ch; }
.heroActions { align-items: stretch; flex-direction: column; }
.pilotButton, .secondaryButton { width: 100%; }
.problemInner h2, .sectionIntro h2, .responsibilityIntro h2, .infrastructureCopy h2, .evolutionInner h2, .ctaInner h2 { font-size: 2.35rem; }
.manualMap { transform: scale(.92); transform-origin: center; margin-inline: -2px; }
.capabilityGrid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
.pilotButton, .pilotButtonCompact, .secondaryButton { transition: none; }
.pilotButton:hover, .pilotButtonCompact:hover, .secondaryButton:hover, .pilotButton:active, .pilotButtonCompact:active, .secondaryButton:active { transform: none; }
}
24 changes: 24 additions & 0 deletions web/app/chief/og.png/route.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { ImageResponse } from 'next/og';

import { DefaultVariant, loadBrandFonts, OG_SIZE } from '../../../lib/og/template';

export const runtime = 'nodejs';
export const dynamic = 'force-static';

export async function GET() {
const { fonts, headingFamily, bodyFamily } = await loadBrandFonts();

return new ImageResponse(
<DefaultVariant
bodyFamily={bodyFamily}
eyebrow="Chief by Agent Relay"
headingFamily={headingFamily}
subtitle="Run coding-agent teams across your backlog and get pull requests ready for review."
title="The Agent Software Manager"
/>,
{
...OG_SIZE,
...(fonts.length > 0 ? { fonts } : {}),
}
);
}
Loading
Loading