:root {
  --ink: #10100f;
  --paper: #f1efe8;
  --acid: #e4ff2f;
  --muted: #aaa89f;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

.nav {
  align-items: center;
  background: var(--paper);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  height: 84px;
  padding: 0 4vw;
  position: relative;
  z-index: 10;
}
.brand { display: flex; flex-direction: column; font-family: Impact, "Arial Narrow", sans-serif; line-height: .78; width: max-content; }
.brand span { font-size: 1.8rem; letter-spacing: .04em; }
.brand small { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: .55rem; font-weight: 700; letter-spacing: .46em; margin-left: .1rem; margin-top: .5rem; }
.nav-links { display: flex; gap: 2.2rem; font-size: .74rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.nav-links a, .text-link { border-bottom: 1px solid transparent; padding-bottom: .25rem; transition: border-color .2s ease; }
.nav-links a:hover, .text-link:hover { border-color: currentColor; }
.nav-cta { background: var(--ink); color: white; font-size: .72rem; font-weight: 700; justify-self: end; letter-spacing: .12em; padding: .95rem 1.45rem; text-transform: uppercase; }

.hero { height: calc(100vh - 84px); min-height: 620px; overflow: hidden; position: relative; }
.hero-image { height: 100%; object-fit: cover; object-position: center 42%; width: 100%; }
.hero-shade { background: linear-gradient(90deg, rgba(5,5,5,.82) 0%, rgba(5,5,5,.36) 56%, rgba(5,5,5,.08) 100%); inset: 0; position: absolute; }
.hero-copy { color: white; left: 7vw; max-width: 820px; position: absolute; top: 50%; transform: translateY(-48%); }
.eyebrow, .section-tag { font-size: .65rem; font-weight: 700; letter-spacing: .19em; margin: 0 0 1.8rem; text-transform: uppercase; }
.hero h1, .statement h2, .section-heading h2, .services h2, .films h2, .contact h2 {
  font-family: Impact, "Arial Narrow", sans-serif;
  font-weight: 400;
  letter-spacing: .005em;
  line-height: .82;
  margin: 0;
  text-transform: uppercase;
}
.hero h1 { font-size: clamp(6rem, 11.6vw, 11rem); }
.hero h1 em { color: var(--acid); font-style: normal; }
.hero-intro { font-size: clamp(1rem, 1.4vw, 1.25rem); line-height: 1.55; margin: 2rem 0; max-width: 500px; }
.hero-actions { align-items: center; display: flex; gap: 2rem; }
.button { align-items: center; display: inline-flex; font-size: .7rem; font-weight: 700; gap: 2rem; letter-spacing: .12em; padding: 1.15rem 1.35rem; text-transform: uppercase; }
.button span { font-size: 1rem; }
.button-light { background: var(--acid); color: var(--ink); }
.button-dark { background: var(--ink); color: white; }
.text-link { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.text-link span { margin-left: .5rem; }
.hero-side { bottom: 2.3rem; color: rgba(255,255,255,.74); font-size: .55rem; font-weight: 700; letter-spacing: .3em; position: absolute; right: -4.4rem; transform: rotate(-90deg); }

.statement { display: grid; gap: 5vw; grid-template-columns: 1fr 2.3fr; padding: 10rem 7vw 11rem; }
.statement h2 { font-size: clamp(4.5rem, 8vw, 8rem); }
.statement h2 span { color: #86847d; }
.statement>div>p { font-size: 1.05rem; line-height: 1.75; margin: 2.5rem 0 0 auto; max-width: 530px; }

.work { background: #d9d6cd; padding: 8rem 4vw 9rem; }
.section-heading { align-items: end; display: flex; justify-content: space-between; margin: 0 3vw 5rem; }
.section-heading h2 { font-size: clamp(5rem, 9vw, 8.5rem); }
.work-note { font-size: .7rem; font-weight: 700; letter-spacing: .08em; line-height: 1.6; text-align: right; text-transform: uppercase; }
.gallery { display: grid; gap: 1.1rem; grid-template-columns: 1.25fr .75fr; }
.gallery-item { margin: 0; overflow: hidden; position: relative; }
.gallery-item img { height: 100%; object-fit: cover; transition: transform .55s ease; width: 100%; }
.gallery-item:hover img { transform: scale(1.018); }
.gallery-item figcaption { background: var(--paper); bottom: 0; font-size: .62rem; font-weight: 700; left: 0; letter-spacing: .1em; padding: .9rem 1rem; position: absolute; text-transform: uppercase; }
.gallery-item figcaption span { color: #89877e; margin-right: 1.5rem; }
.item-1 { height: 640px; }
.item-2 { height: 640px; }
.item-3, .item-4 { height: 450px; }
.item-5 { grid-column: 1 / -1; height: 680px; }

.services { background: var(--ink); color: white; display: grid; gap: 8vw; grid-template-columns: .9fr 1.1fr; padding: 10rem 7vw; }
.section-tag-light { color: var(--acid); }
.services h2 { font-size: clamp(4.8rem, 7.5vw, 7.8rem); position: sticky; top: 3rem; }
.service { border-top: 1px solid #40403d; display: grid; gap: 1.5rem; grid-template-columns: 45px 1fr; padding: 2.2rem 0 2.8rem; }
.service>span { color: var(--acid); font-size: .65rem; font-weight: 700; letter-spacing: .1em; }
.service h3 { font-family: Impact, "Arial Narrow", sans-serif; font-size: clamp(2.5rem, 4vw, 4.5rem); font-weight: 400; line-height: 1; margin: 0; text-transform: uppercase; }
.service p { color: var(--muted); font-size: .88rem; grid-column: 2; line-height: 1.6; margin: 0; max-width: 450px; }

.films { align-items: center; display: grid; gap: 8vw; grid-template-columns: 1fr .72fr; padding: 10rem 10vw; }
.films h2 { font-size: clamp(4.6rem, 7vw, 7.5rem); }
.films-copy>p:not(.section-tag) { font-size: 1rem; line-height: 1.7; margin: 2.4rem 0; max-width: 500px; }
.films img { box-shadow: 24px 24px 0 var(--acid); max-height: 700px; object-fit: cover; width: 100%; }

.contact { background: var(--ink); color: white; padding: 10rem 7vw 5rem; }
.contact-top { align-items: start; display: grid; grid-template-columns: 1fr 2.3fr; }
.contact h2 { font-size: clamp(5.4rem, 10.2vw, 10rem); }
.contact-mail { border-bottom: 1px solid #4a4a46; display: flex; font-size: clamp(1rem, 2.6vw, 2.5rem); justify-content: space-between; margin: 7rem 0 4rem calc(30% + 2rem); overflow-wrap: anywhere; padding-bottom: 1.2rem; }
.contact-mail span { color: var(--acid); }
.contact-details { display: grid; gap: 3rem; grid-template-columns: repeat(3, 1fr); margin-left: calc(30% + 2rem); }
.contact-details div { display: flex; flex-direction: column; gap: 1rem; }
.contact-details small { color: #7f7f79; font-size: .57rem; font-weight: 700; letter-spacing: .16em; }
.contact-details a, .contact-details p { font-size: .85rem; line-height: 1.6; margin: 0; }
.social-links { gap: .75rem !important; }
.social-row { align-items: center; display: grid; gap: .8rem; grid-template-columns: 28px 1fr auto; padding: .25rem 0; }
.social-row:hover { color: var(--acid); }
.social-icon { align-items: center; background: #252523; border-radius: 50%; display: flex; height: 28px; justify-content: center; width: 28px; }
.social-icon img { height: 14px; width: 14px; }
footer { background: var(--ink); border-top: 1px solid #292927; color: #767670; display: flex; font-size: .55rem; justify-content: space-between; letter-spacing: .12em; padding: 2rem 7vw; text-transform: uppercase; }
footer a:hover { color: var(--acid); }
.footer-social { align-items: center; display: flex; gap: 1rem; }
.footer-social a { opacity: .72; transition: opacity .2s ease; }
.footer-social a:hover { opacity: 1; }
.footer-social img { height: 16px; width: 16px; }

@media (max-width: 900px) {
  .nav { grid-template-columns: 1fr auto; }
  .nav-links { display: none; }
  .hero { height: 780px; }
  .hero-copy { left: 6vw; right: 6vw; }
  .hero h1 { font-size: clamp(5.2rem, 20vw, 8rem); }
  .statement, .services, .films { grid-template-columns: 1fr; }
  .statement { padding-block: 7rem; }
  .services h2 { position: static; }
  .films { padding: 7rem 7vw; }
  .films img { max-height: 780px; width: min(100%, 570px); }
  .contact-top { grid-template-columns: 1fr; }
  .contact-mail, .contact-details { margin-left: 0; }
}

@media (max-width: 650px) {
  .nav { height: 72px; padding-inline: 5vw; }
  .brand span { font-size: 1.45rem; }
  .nav-cta { padding: .8rem .9rem; }
  .hero { height: calc(100svh - 72px); min-height: 650px; }
  .hero-shade { background: linear-gradient(90deg, rgba(5,5,5,.77), rgba(5,5,5,.16)); }
  .hero-copy { top: 48%; }
  .hero-intro { font-size: .95rem; max-width: 330px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1.2rem; }
  .hero-side { display: none; }
  .statement { gap: 2rem; padding: 6rem 6vw; }
  .statement h2 { font-size: 4.3rem; }
  .section-heading { align-items: start; flex-direction: column; gap: 2rem; margin-inline: 2vw; }
  .section-heading h2 { font-size: 4.6rem; }
  .work-note { text-align: left; }
  .gallery { grid-template-columns: 1fr; }
  .gallery-item, .item-1, .item-2, .item-3, .item-4, .item-5 { grid-column: auto; height: 360px; }
  .services { gap: 5rem; padding: 7rem 6vw; }
  .services h2 { font-size: 4.5rem; }
  .service { grid-template-columns: 35px 1fr; }
  .films { gap: 4rem; padding: 6rem 6vw; }
  .films h2 { font-size: 4.4rem; }
  .films img { box-shadow: 12px 12px 0 var(--acid); }
  .contact { padding: 7rem 6vw 4rem; }
  .contact h2 { font-size: 5rem; }
  .contact-mail { margin-top: 4rem; }
  .contact-details { grid-template-columns: 1fr; }
  footer { flex-direction: column; gap: .7rem; padding-inline: 6vw; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .gallery-item img { transition: none; }
}
