:root {
  --paper: #f3f1ec;
  --ink: #0e0e0e;
  --grey: #9a968d;
  --pad: clamp(16px, 2.2vw, 32px);
  --sans: "Switzer", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif: "Instrument Serif", "Times New Roman", serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body { background: var(--paper); color: var(--ink); font: 400 18px/1.4 var(--sans); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
video { display: block; width: 100%; }
::selection { background: var(--ink); color: var(--paper); }

/* Header: two words, nothing else */
.top { display: flex; justify-content: space-between; align-items: baseline; padding: 20px var(--pad); font-size: 19px; letter-spacing: -.02em; }
.logo { font-weight: 500; letter-spacing: -.035em; white-space: nowrap; }
.logo em { font: italic 400 1.14em var(--serif); letter-spacing: 0; }
.top nav { display: flex; gap: clamp(16px, 2.6vw, 36px); }
.top nav a:hover, .top nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1.5px; }

/* The big type */
.big { font-weight: 500; letter-spacing: -.055em; line-height: .88; padding: 0 var(--pad); }
.h1 { font-size: clamp(64px, 13.6vw, 250px); padding-top: clamp(40px, 6vw, 90px); }
.h2 { font-size: clamp(44px, 8.4vw, 150px); }
.say { font-weight: 500; font-size: clamp(30px, 4.6vw, 84px); line-height: 1; letter-spacing: -.045em; padding: 0 var(--pad); max-width: 22ch; }
.grey { color: var(--grey); }

.gap-s { height: clamp(28px, 4vw, 60px); }
.gap { height: clamp(90px, 14vw, 240px); }

/* Footage */
.reel { margin: clamp(40px, 6vw, 90px) var(--pad) 0; display: grid; grid-template-columns: 16fr 9fr 5.06fr; gap: clamp(6px, .8vw, 12px); align-items: end; }
.reel video { object-fit: cover; border-radius: 6px; background: #1a1a1a; }
.reel .a { aspect-ratio: 16 / 9; } .reel .b { aspect-ratio: 1 / 1; } .reel .c { aspect-ratio: 9 / 16; }
@media (max-width: 700px) { .reel { grid-template-columns: 1fr 1fr; } .reel .a { grid-column: span 2; } }

/* Work wall */
.work { display: grid; grid-template-columns: repeat(6, 1fr); gap: clamp(6px, .8vw, 12px); padding: 0 var(--pad); }
.work video { object-fit: cover; border-radius: 6px; background: #1a1a1a; }
.work .w { grid-column: span 6; aspect-ratio: 21 / 9; }
.work .h { grid-column: span 3; aspect-ratio: 16 / 10; }
.work .t { grid-column: span 2; aspect-ratio: 4 / 5; }
@media (max-width: 700px) { .work .w, .work .h { grid-column: span 6; aspect-ratio: 16 / 10; } .work .t { grid-column: span 3; } }

/* Contact */
.mail { display: block; font-weight: 500; font-size: clamp(30px, 6.2vw, 112px); letter-spacing: -.05em; line-height: 1; padding: 0 var(--pad); word-break: break-word; }
.mail:hover { color: var(--grey); }

footer { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: clamp(80px, 10vw, 160px) var(--pad) 24px; font-size: 15px; color: var(--grey); }
footer nav { display: flex; gap: 22px; flex-wrap: wrap; }
footer a:hover { color: var(--ink); }

/* Inner pages */
.text { padding: 0 var(--pad); display: grid; gap: 1em; max-width: 34ch; font-weight: 500; font-size: clamp(24px, 2.8vw, 44px); line-height: 1.12; letter-spacing: -.03em; }
.text a { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.small { padding: 0 var(--pad); display: grid; gap: 1em; max-width: 60ch; font-size: 18px; color: #3d3b37; }
.small h2 { font-weight: 500; font-size: 22px; color: var(--ink); margin-top: 1em; }
.small a { text-decoration: underline; text-underline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { video { display: none; } }

/* Legal footer */
.legal { display: flex; gap: 22px; padding: clamp(80px, 10vw, 160px) var(--pad) 24px; font-size: 14px; color: var(--grey); }
.legal a:hover { color: var(--ink); }

/* Contact form */
.form { display: grid; gap: 28px; padding: 0 var(--pad); max-width: 900px; }
.form label { display: grid; gap: 8px; font-size: 15px; color: var(--grey); }
.form input, .form textarea { font: 500 clamp(22px, 2.4vw, 34px)/1.2 var(--sans); letter-spacing: -.03em; color: var(--ink); background: transparent; border: 0; border-bottom: 2px solid var(--ink); padding: 6px 0 10px; border-radius: 0; outline: none; width: 100%; resize: vertical; }
.form input:focus, .form textarea:focus { border-color: var(--grey); }
.form .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form button { justify-self: start; font: 500 clamp(22px, 2.4vw, 34px) var(--sans); letter-spacing: -.03em; background: var(--ink); color: var(--paper); border: 0; padding: 14px 30px; border-radius: 4px; cursor: pointer; }
.form button:hover { background: #333; }
.sent, .failed { padding: 0 var(--pad); font-weight: 500; font-size: clamp(30px, 4.6vw, 84px); letter-spacing: -.045em; line-height: 1; }
.failed { font-size: 20px; letter-spacing: -.01em; color: #b3261e; margin-top: 16px; }

[hidden] { display: none !important; }
