GRV-Summit-Site/app/pitch-competition/page.tsx
“kirukib” 3693495dd0
Some checks are pending
Deploy to Cloudflare Workers (OpenNext) / deploy (push) Waiting to run
Add site-wide topography patterns and refine section styling.
Use mainwhite.svg on white sections with curvy green transitions into flat green bands, improve text and button contrast, and deploy via OpenNext on Cloudflare Workers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-20 20:34:36 +03:00

69 lines
2.2 KiB
TypeScript

import type { Metadata } from "next";
import Link from "next/link";
import { pageSeo } from "@/content/page-seo";
import { createPageMetadata } from "@/lib/seo";
import { pitchCompetition } from "@/content/pitch";
import { site } from "@/content/site";
import { PageRiftHeader } from "@/components/layout/PageRiftHeader";
import { Section } from "@/components/layout/Section";
import { GrantHeadline } from "@/components/grants/GrantHeadline";
import { Button } from "@/components/ui/button";
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion";
export const metadata: Metadata = createPageMetadata(pageSeo.pitch);
export default function PitchCompetitionPage() {
return (
<>
<PageRiftHeader
variant="pitch"
eyebrow="Pitch competition"
title={
<h1 className="text-4xl font-bold md:text-5xl">
<GrantHeadline />
</h1>
}
description={
<>
<p className="text-xl text-[#1f3d7e]">{pitchCompetition.subheadline}</p>
<p className="mt-4 leading-relaxed">{pitchCompetition.description}</p>
</>
}
>
<Button className="rounded-full bg-[#ffb300] text-[#0f0404] hover:bg-[#ffb300]/90" asChild>
<Link href={site.links.pitchApplyUrl}>Apply now</Link>
</Button>
</PageRiftHeader>
<Section variant="muted">
<h2 className="text-2xl font-bold">Award criteria</h2>
<ul className="mt-6 space-y-3">
{pitchCompetition.criteria.map((c) => (
<li key={c} className="flex gap-2 text-muted-foreground">
<span className="text-[#ffb300]"></span>
{c}
</li>
))}
</ul>
</Section>
<Section>
<h2 className="text-2xl font-bold">Timeline</h2>
<Accordion type="single" collapsible className="relative z-10 mt-6 max-w-xl">
{pitchCompetition.timeline.map((t) => (
<AccordionItem key={t.phase} value={t.phase}>
<AccordionTrigger>{t.phase}</AccordionTrigger>
<AccordionContent>{t.date}</AccordionContent>
</AccordionItem>
))}
</Accordion>
</Section>
</>
);
}