:root{
  --bg:#ffffff;
  --ink:#111111;
  --muted:#5a5a5a;
  --hair:#e9e9e9;
  --wash:#f6f6f6;
  --max:1100px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: "Manrope", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.45;
}
a{color:inherit; text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--max); margin:0 auto; padding:0 22px}
header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid var(--hair);
}
.nav{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;     /* key change */
  min-height:96px;
  padding: 14px 0 18px;     /* bottom breathing room */
}
.brand{
  font-weight:600;
  letter-spacing:.2px;
}
.navlinks{display:flex; gap:16px; align-items:center; color:var(--muted); font-weight:500}
.navlinks a{padding:10px 10px; border-radius:10px}
.navlinks a[aria-current="page"]{color:var(--ink); background:var(--wash); text-decoration:none}
.hero{
  position:relative;
  height:78vh;
  min-height:560px;
  overflow:hidden;
  border-bottom:1px solid var(--hair);
}
.hero video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transform:translateZ(0);
}
.hero .overlay{
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(255,255,255,.75), rgba(255,255,255,.35) 45%, rgba(255,255,255,.88));
}
.hero .content{
  position:relative;
  height:100%;
  display:flex;
  align-items:flex-end;
  padding:72px 0;
}
.kicker{font-size:14px; color:var(--muted); letter-spacing:.14em; text-transform:uppercase}
h1{
  font-size:clamp(34px,4vw,56px);
  margin:10px 0 12px;
  letter-spacing:-.02em;
  max-width:16ch;
}
.lede{font-size:18px; color:#2a2a2a; max-width:62ch; margin:0 0 22px}
.cta{display:flex; gap:12px; flex-wrap:wrap; margin-top:18px}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 16px;
  border:1px solid var(--hair);
  border-radius:14px;
  background:#fff;
  font-weight:600;
}
.btn.primary{
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
  text-decoration:none;
}
.section{padding:68px 0}
.section.tight{padding:44px 0}
.eyebrow{font-size:13px; color:var(--muted); letter-spacing:.12em; text-transform:uppercase; margin:0 0 14px}
h2{font-size:26px; letter-spacing:-.01em; margin:0 0 14px}
p{margin:0 0 12px; color:#222}
.small{font-size:14px; color:var(--muted)}
.grid{
  display:grid; grid-template-columns:repeat(12,1fr); gap:18px;
}
.card{
  border:1px solid var(--hair);
  border-radius:18px;
  overflow:hidden;
  background:#fff;
}
.card .pad{padding:18px 18px 16px}
.card h3{margin:0 0 8px; font-size:18px}
.card p{margin:0; color:var(--muted)}
.card img{width:100%; height:auto; display:block}
.two-col{
  display:grid; grid-template-columns:1.1fr .9fr; gap:28px;
}
@media (max-width: 860px){
  .two-col{grid-template-columns:1fr}
}
.hr{height:1px; background:var(--hair); margin:26px 0}
.footer{
  border-top:1px solid var(--hair);
  padding:34px 0 46px;
  color:var(--muted);
}
.parallax{
  position:relative;
  background:var(--wash);
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
}
.parallax .bg{
  position:absolute; inset:0;
  background-image:url("assets/img/gormley.webp");
  background-size:cover;
  background-position:center;
  opacity:.35;
  transform:translateY(0);
  will-change:transform;
}
.parallax .inner{
  position:relative;
  padding:72px 0;
}
blockquote{
  margin:0;
  padding:18px 18px;
  border-left:3px solid var(--ink);
  background:#fff;
  border-radius:14px;
  border:1px solid var(--hair);
}


/* Accessibility helper */
.sr-only{
  position:absolute;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* Brand logo */
.brand{
  display:flex;
  align-items:center;
  gap:10px;
}
.brand-logo{
  height:80px;
  width:auto;
  display:block;
}

/* Hero media (image fallback) */
.hero .hero-media{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transform:translateZ(0);
}

/* Selected work: 3 columns (1 row on desktop) */
.projects-3{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}
@media (max-width: 860px){
  .projects-3{grid-template-columns:1fr}
}
