diff --git a/css/portfolio.css b/css/portfolio.css
index 219ce97..b7109c1 100644
--- a/css/portfolio.css
+++ b/css/portfolio.css
@@ -182,8 +182,8 @@
.cs-meta-bar {
list-style: none;
display: flex;
- flex-wrap: wrap;
- gap: 0 2rem;
+ flex-direction: column;
+ gap: 0;
padding: 0.75rem 1rem;
background: var(--grey-dark);
border-left: 6px solid var(--grey-text);
@@ -304,6 +304,37 @@
border-bottom: 2px solid var(--accent);
}
+.screenshot-hero-scroll {
+ position: relative;
+ max-height: 600px;
+ overflow-y: scroll;
+ scrollbar-width: thin;
+ scrollbar-color: var(--accent) #1a1a1a;
+}
+
+.screenshot-hero-scroll--no-hint::before {
+ display: none;
+}
+
+.screenshot-hero-scroll::before {
+ content: '↓ scroll to view whole page';
+ position: sticky;
+ top: 0;
+ display: flex;
+ justify-content: center;
+ align-items: flex-start;
+ padding-top: 1.5rem;
+ height: 120px;
+ margin-bottom: -120px;
+ background: linear-gradient(to top, transparent, rgba(10, 10, 10, 0.9));
+ font-family: var(--mono);
+ font-size: 1rem;
+ letter-spacing: 0.12em;
+ color: var(--white);
+ pointer-events: none;
+ z-index: 1;
+}
+
.screenshot-hero {
display: block;
width: 100%;
diff --git a/css/style.css b/css/style.css
index 083d198..f3523ac 100644
--- a/css/style.css
+++ b/css/style.css
@@ -70,6 +70,12 @@ a {
box-shadow: var(--shadow);
}
+.nav-left {
+ display: flex;
+ align-items: center;
+ gap: 1.25rem;
+}
+
.nav-logo {
font-family: var(--mono);
font-weight: 800;
@@ -78,6 +84,18 @@ a {
color: var(--accent);
}
+.nav-back {
+ font-family: var(--mono);
+ font-size: 1rem;
+ color: var(--white);
+ opacity: 0.5;
+ transition: opacity 0.15s;
+}
+
+.nav-back:hover {
+ opacity: 1;
+}
+
.nav-links {
display: flex;
gap: 2rem;
@@ -132,6 +150,10 @@ a {
color: var(--white);
}
+.hero h1 .h1-sub {
+ font-size: 0.6em;
+}
+
.hero-sub {
font-size: 1.25rem;
color: var(--white);
diff --git a/data/projects.php b/data/projects.php
new file mode 100644
index 0000000..944c922
--- /dev/null
+++ b/data/projects.php
@@ -0,0 +1,38 @@
+ [
+ 'num' => '01',
+ 'code' => 'WEB_DEV',
+ 'title' => 'Thompson Service Centre',
+ 'desc' => 'Trust-first redesign for a 25-year Peterborough garage. Bold credibility signals, booking flow, zero clichés.',
+ 'year' => '2025',
+ 'thumb' => '/img/thompson/hero.jpg',
+ 'live' => true,
+ 'h1' => ['Thompson', 'Service Centre'],
+ 'sub' => 'Website Redesign · 2025',
+ 'stack' => 'HTML · Tailwind CSS v4 · GSAP',
+ 'location' => 'Thompson Service Centre, Peterborough',
+ 'domain' => 'thompsonservicecentre.co.uk',
+ 'page_title' => 'Thompson Service Centre — Case Study',
+ 'page_desc' => 'How we built a trust-first digital presence for a 25-year Peterborough garage.',
+ ],
+ 'lhbeng' => [
+ 'num' => '02',
+ 'code' => 'WEB_DEV',
+ 'title' => 'LHB Eng',
+ 'desc' => 'Structural Engineers designing projects that build strong communities.',
+ 'year' => '2022',
+ 'thumb' => '/img/lhbeng/hero.jpg',
+ 'live' => true,
+ 'h1' => ['LHB', 'Lynch, Harrison & Brumleve, Inc.'],
+ 'sub' => 'Website Redesign · 2022',
+ 'stack' => 'HTML · CSS',
+ 'location' => 'LHB Eng, Indianapolis',
+ 'domain' => 'lhb-eng.com',
+ 'page_title' => 'LHB Engineering — Case Study',
+ 'page_desc' => 'Full website redesign for LHB Engineering with a self-service CMS for portfolio, team, and job listings.',
+ ],
+
+];
diff --git a/includes/cs_footer.php b/includes/cs_footer.php
new file mode 100644
index 0000000..5cffb25
--- /dev/null
+++ b/includes/cs_footer.php
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/includes/cs_header.php b/includes/cs_header.php
new file mode 100644
index 0000000..c64bb4f
--- /dev/null
+++ b/includes/cs_header.php
@@ -0,0 +1,38 @@
+
+
+
+
← All Work
+
[= htmlspecialchars($p['num']) ?> / = htmlspecialchars($p['code']) ?>]
+
+
+
diff --git a/includes/header.php b/includes/header.php
index b5f64da..d58ef37 100644
--- a/includes/header.php
+++ b/includes/header.php
@@ -17,7 +17,12 @@