@font-face { font-family: "Newsreader"; font-style: normal; font-weight: 200 800; font-display: swap; src: url("../fonts/newsreader-latin.woff2") format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../fonts/instrument-sans-latin.woff2") format("woff2"); }

:root {
  --paper: #ffffff;
  --ink: #000000;
  --quiet: #6b6b6b;
  --hair: #e4e4e4;
  --well: #f3f3f3;
  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --sans: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --pad: clamp(20px, 5vw, 80px);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-text-size-adjust: 100%; }
body { line-height: 1.5; }
a { color: inherit; }
a:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }

.intro { padding: clamp(96px, 15vw, 208px) var(--pad) clamp(72px, 10vw, 152px); text-align: center; }
h1 { max-width: 15em; margin: 0 auto; font-family: var(--serif); font-weight: 300; font-size: clamp(36px, 5.4vw, 78px); line-height: 1.08; letter-spacing: -0.015em; text-wrap: balance; }
.lede { margin-top: clamp(20px, 2.2vw, 32px); font-family: var(--serif); font-size: clamp(17px, 1.4vw, 20px); color: var(--quiet); text-wrap: balance; }

.works { display: grid; row-gap: clamp(80px, 10vw, 144px); max-width: 1480px; margin: 0 auto; padding: 0 var(--pad); }
@media (min-width: 880px) { .works { grid-template-columns: 1fr 1fr; column-gap: clamp(32px, 4.5vw, 80px); } }

.card { min-width: 0; container-type: inline-size; }
.shot { display: block; aspect-ratio: 16 / 10; overflow: hidden; border: 1px solid var(--hair); background: var(--well); }
.shot img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Name, trade and the link share one label style. */
.title, .open { font-size: 12px; font-weight: 500; line-height: 1.6; letter-spacing: 0.14em; text-transform: uppercase; }
.cap { display: grid; grid-template-areas: "title" "line" "open"; margin-top: 22px; }
.title { grid-area: title; display: flex; flex-wrap: wrap; column-gap: 1.5em; }
.title h2 { font: inherit; }
.trade { color: var(--quiet); }
.line { grid-area: line; max-width: 46ch; margin-top: 10px; font-family: var(--serif); font-size: 16px; line-height: 1.55; color: var(--quiet); }
.open { grid-area: open; justify-self: start; margin-top: 18px; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.open:hover { text-decoration-color: transparent; }
@container (min-width: 520px) {
  .cap { grid-template-columns: 1fr auto; grid-template-areas: "title open" "line line"; column-gap: 32px; }
  .open { margin-top: 0; margin-right: -0.14em; }
}

.reviews { max-width: 760px; margin: clamp(96px, 12vw, 176px) auto 0; padding: 0 var(--pad); text-align: center; }
.reviews h2 { font-size: 12px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--quiet); }
.review { margin-top: clamp(32px, 4vw, 56px); }
.review blockquote p { font-family: var(--serif); font-weight: 300; font-size: clamp(22px, 2.6vw, 32px); line-height: 1.35; text-wrap: balance; }
.review figcaption { margin-top: 20px; font-size: 14px; line-height: 1.7; color: var(--quiet); }
.review .who { color: var(--ink); font-weight: 500; }
.review .check { display: block; margin-top: 4px; font-size: 13px; }
.review .check a { padding-block: 8px; text-decoration-color: var(--hair); text-underline-offset: 4px; }

.foot { margin-top: clamp(120px, 14vw, 208px); padding: clamp(48px, 6vw, 80px) var(--pad) clamp(56px, 7vw, 96px); border-top: 1px solid var(--hair); text-align: center; }
.mail { font-family: var(--serif); font-size: clamp(20px, 1.8vw, 24px); overflow-wrap: anywhere; text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--hair); text-underline-offset: 6px; }
.mail:hover { text-decoration-color: var(--ink); }
.legal { max-width: 60ch; margin: 18px auto 0; font-size: 12px; line-height: 1.7; color: var(--quiet); }

/* One soft fade on load, header first. */
@keyframes fade { from { opacity: 0; } }
.intro, .works { animation: fade 0.9s ease-out both; }
.works { animation-delay: 0.2s; }
@media (prefers-reduced-motion: reduce) { .intro, .works { animation: none; } }
