/* =========================================
THE THIRD LAW — HOME PAGE
Cinematic / Premium / Editorial
========================================= */
.tl-home {
–tl-red: #8f001d;
–tl-red-bright: #b00026;
–tl-black: #050505;
–tl-dark: #0d0d0d;
–tl-white: #f4f1ee;
–tl-grey: #aaa6a6;
–tl-border: rgba(255,255,255,0.12);
background: var(–tl-black);
color: var(–tl-white);
font-family: Arial, Helvetica, sans-serif;
margin: 0;
padding: 0;
overflow: hidden;
}
.tl-home * {
box-sizing: border-box;
}
.tl-container {
width: min(1180px, 90%);
margin: 0 auto;
}
/* =========================================
HERO
========================================= */
.tl-hero {
min-height: 88vh;
display: flex;
align-items: center;
position: relative;
overflow: hidden;
background:
radial-gradient(
circle at 85% 45%,
rgba(143,0,29,0.30),
transparent 38%
),
linear-gradient(
135deg,
#050505 0%,
#0a0a0a 55%,
#16050a 100%
);
}
.tl-hero:after {
content: “”;
position: absolute;
width: 500px;
height: 500px;
right: -200px;
bottom: -250px;
border-radius: 50%;
background: rgba(143,0,29,0.18);
filter: blur(80px);
}
.tl-hero-content {
position: relative;
z-index: 2;
padding: 110px 0;
}
.tl-eyebrow {
display: inline-block;
color: #d9d5d3;
font-size: 12px;
letter-spacing: 4px;
text-transform: uppercase;
margin-bottom: 28px;
border-left: 2px solid var(–tl-red-bright);
padding-left: 14px;
}
.tl-hero h1 {
font-size: clamp(58px, 9vw, 125px);
line-height: 0.88;
letter-spacing: -5px;
font-weight: 700;
max-width: 1000px;
margin: 0 0 35px;
}
.tl-hero h1 span {
color: var(–tl-red-bright);
}
.tl-hero-subtitle {
max-width: 580px;
color: #c7c3c1;
font-size: 20px;
line-height: 1.6;
margin-bottom: 42px;
}
.tl-button {
display: inline-block;
padding: 16px 28px;
background: var(–tl-red);
color: #fff !important;
text-decoration: none !important;
font-size: 13px;
font-weight: 700;
letter-spacing: 1.5px;
text-transform: uppercase;
transition: all 0.3s ease;
border: 1px solid var(–tl-red);
}
.tl-button:hover {
background: transparent;
color: #fff !important;
border-color: #fff;
transform: translateY(-2px);
}
.tl-button-outline {
background: transparent;
border-color: rgba(255,255,255,0.4);
margin-left: 12px;
}
.tl-button-outline:hover {
background: #fff;
color: #050505 !important;
}
/* =========================================
INTRO
========================================= */
.tl-intro {
background: var(–tl-white);
color: var(–tl-black);
padding: 120px 0;
}
.tl-intro-grid {
display: grid;
grid-template-columns: 0.8fr 1.2fr;
gap: 90px;
align-items: center;
}
.tl-section-label {
font-size: 11px;
letter-spacing: 4px;
text-transform: uppercase;
color: var(–tl-red);
font-weight: 700;
}
.tl-intro h2 {
font-size: clamp(40px, 5vw, 70px);
line-height: 0.95;
letter-spacing: -3px;
margin: 20px 0;
}
.tl-intro p {
color: #555;
font-size: 18px;
line-height: 1.8;
max-width: 650px;
}
/* =========================================
SERVICES
========================================= */
.tl-services {
background: #0b0b0b;
padding: 120px 0;
}
.tl-services-header {
margin-bottom: 65px;
}
.tl-services h2 {
font-size: clamp(40px, 5vw, 68px);
line-height: 1;
letter-spacing: -3px;
margin: 15px 0 0;
}
.tl-service-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
border-top: 1px solid var(–tl-border);
}
.tl-service {
padding: 45px 35px 45px 0;
border-right: 1px solid var(–tl-border);
margin-right: 35px;
}
.tl-service:last-child {
border-right: none;
margin-right: 0;
}
.tl-service-number {
color: var(–tl-red-bright);
font-size: 13px;
letter-spacing: 2px;
margin-bottom: 45px;
}
.tl-service h3 {
font-size: 30px;
margin: 0 0 20px;
}
.tl-service p {
color: var(–tl-grey);
font-size: 16px;
line-height: 1.7;
}
/* =========================================
SELECTED WORK
========================================= */
.tl-work {
background: var(–tl-white);
color: var(–tl-black);
padding: 120px 0;
}
.tl-work-header {
display: flex;
justify-content: space-between;
align-items: end;
margin-bottom: 55px;
}
.tl-work h2 {
font-size: clamp(42px, 5vw, 72px);
line-height: 0.95;
letter-spacing: -3px;
margin: 15px 0 0;
}
.tl-work-intro {
max-width: 350px;
color: #666;
line-height: 1.7;
}
/* Work grid */
.tl-work-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 30px;
}
.tl-work-card {
position: relative;
overflow: hidden;
min-height: 460px;
background: #151515;
text-decoration: none !important;
color: #fff !important;
display: flex;
align-items: end;
}
.tl-work-card:before {
content: “”;
position: absolute;
inset: 0;
background:
linear-gradient(
to top,
rgba(0,0,0,0.92),
rgba(0,0,0,0.1) 65%,
rgba(0,0,0,0)
);
z-index: 1;
}
.tl-work-card:after {
content: “”;
position: absolute;
inset: 0;
background: linear-gradient(
135deg,
rgba(143,0,29,0.35),
transparent 55%
);
opacity: 0;
transition: 0.4s ease;
}
.tl-work-card:hover:after {
opacity: 1;
}
.tl-work-placeholder {
position: absolute;
inset: 0;
background:
radial-gradient(
circle at 70% 30%,
rgba(143,0,29,0.35),
transparent 35%
),
linear-gradient(
135deg,
#242424,
#090909
);
}
.tl-work-content {
position: relative;
z-index: 2;
padding: 35px;
width: 100%;
}
.tl-work-type {
color: #e4a8b4;
font-size: 11px;
letter-spacing: 3px;
text-transform: uppercase;
margin-bottom: 12px;
}
.tl-work-title {
font-size: 34px;
line-height: 1;
margin: 0;
}
.tl-work-arrow {
position: absolute;
right: 35px;
bottom: 35px;
font-size: 28px;
transition: transform 0.3s ease;
}
.tl-work-card:hover .tl-work-arrow {
transform: translateX(8px);
}
/* =========================================
STATEMENT
========================================= */
.tl-statement {
background: var(–tl-red);
padding: 110px 0;
text-align: center;
}
.tl-statement h2 {
max-width: 950px;
margin: 0 auto;
font-size: clamp(42px, 6vw, 80px);
line-height: 0.95;
letter-spacing: -4px;
}
.tl-statement p {
max-width: 600px;
margin: 30px auto 0;
color: rgba(255,255,255,0.8);
font-size: 18px;
line-height: 1.7;
}
/* =========================================
CONTACT CTA
========================================= */
.tl-contact {
background: #050505;
padding: 130px 0;
}
.tl-contact-inner {
border-top: 1px solid var(–tl-border);
border-bottom: 1px solid var(–tl-border);
padding: 80px 0;
display: flex;
justify-content: space-between;
align-items: center;
gap: 50px;
}
.tl-contact h2 {
font-size: clamp(42px, 6vw, 78px);
line-height: 0.95;
letter-spacing: -4px;
margin: 0 0 20px;
}
.tl-contact p {
color: var(–tl-grey);
font-size: 18px;
}
.tl-contact-button {
flex-shrink: 0;
}
/* =========================================
MOBILE
========================================= */
@media (max-width: 800px) {
.tl-hero {
min-height: 80vh;
}
.tl-hero-content {
padding: 90px 0;
}
.tl-hero h1 {
font-size: clamp(55px, 16vw, 90px);
letter-spacing: -4px;
}
.tl-hero-subtitle {
font-size: 17px;
}
.tl-button {
margin-bottom: 10px;
}
.tl-button-outline {
margin-left: 0;
}
.tl-intro {
padding: 80px 0;
}
.tl-intro-grid {
grid-template-columns: 1fr;
gap: 25px;
}
.tl-services {
padding: 80px 0;
}
.tl-service-grid {
grid-template-columns: 1fr;
}
.tl-service {
border-right: none;
border-bottom: 1px solid var(–tl-border);
margin-right: 0;
padding: 40px 0;
}
.tl-service:last-child {
border-bottom: none;
}
.tl-work {
padding: 80px 0;
}
.tl-work-header {
display: block;
}
.tl-work-intro {
margin-top: 25px;
}
.tl-work-grid {
grid-template-columns: 1fr;
}
.tl-work-card {
min-height: 400px;
}
.tl-statement {
padding: 80px 0;
}
.tl-contact {
padding: 80px 0;
}
.tl-contact-inner {
display: block;
padding: 60px 0;
}
.tl-contact-button {
margin-top: 35px;
}
}
The Third Law Productions
Happy people
make good
movies.
Film. Theatre. Stories that stay with you.
We create bold South African stories with heart,
humour and something to say.
Explore our work
Get in touch
Who we are
We make
stories matter.
The Third Law is a South African production company
passionate about creating meaningful, entertaining
and unforgettable stories.
From film and theatre to original productions,
we believe that great storytelling has the power
to make people feel something, think differently
and connect with one another.
01
Film
Original films and screen stories built around
strong characters, compelling ideas and authentic
South African voices.
02
Theatre
Bold theatrical experiences that bring stories
to life through performance, design, movement
and imagination.
03
Production
From concept to execution, we develop and produce
projects that are creative, professional and
made to connect with audiences.
We don’t just make
productions.
We create experiences.
Because the best stories don’t end when
the curtain closes or the credits roll.