﻿@font-face { font-family: Prompt; src: url('../assets/fonts/Prompt-Light.woff2') format('woff2'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: Prompt; src: url('../assets/fonts/Prompt-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
:root {
  --space-1: 12px;
  --space-2: 24px;
  --space-3: 36px;
  --space-4: 48px;
  --paper: #f8f6ed;
  --ink: #161613;
  --secondary: #59584f;
  --line: #85837b;
  --soft-line: #e3dfd5;
  --icon-ivory: #f8f6ed;
  --icon-charcoal: #15191D;
  --page: 1220px;
  --font-body: Prompt, sans-serif;
  --body-size: 16px;
  --heading-em: clamp(36px, 5.3vw, 72px);
  --subtitle-size: 18px;
  --info-heading-scale: 0.648172; /* About: 3.857 units becomes approximately 2.5. */
  --columns: minmax(0, 3fr) minmax(0, 2fr);
  color-scheme: light;
}
[data-theme="dark"] { --paper: #15191D; --ink: #eee9dd; --secondary: #c8c2b6; --line: #4a4a43; --soft-line: #41413a; color-scheme: dark; }
* { box-sizing: border-box; }
html { background: var(--paper); }
body { min-height: 100vh; margin: 0; color: var(--ink); font: 300 var(--body-size)/1.5 var(--font-body); }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: .25em; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
img { display: block; width: 100%; object-fit: cover; }
h1, h2, p { margin: 0; }
.display-heading { font-size: calc(var(--heading-em) * var(--heading-scale, 1)); line-height: 1; font-weight: 400; margin-bottom: var(--space-1); }
.display-heading svg { display: block; height: 1.024em; width: calc(1em * var(--heading-width)); }
.skip-link { position: fixed; top: var(--space-1); left: var(--space-1); z-index: 10; padding: var(--space-1) var(--space-2); background: var(--ink); color: var(--paper); transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.site-shell { width: min(calc(100% - 2 * var(--space-2)), var(--page)); margin-inline: auto; min-height: 100svh; display: flex; flex-direction: column; }
main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
main > * { flex: 0 0 auto; }
.site-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); padding: var(--space-1) 0; border-bottom: 1px solid var(--line); }
.wordmark { display: block; width: 230px; max-width: 100%; margin-bottom: var(--space-1); }
.wordmark svg { display: block; width: 100%; height: auto; }
.brand-lockup { min-width: 0; }
.brand-lockup p { font-size: 15px; line-height: 1.3; }
.work, .editorial-section { display: grid; grid-template-columns: var(--columns); align-items: start; gap: var(--space-2); }
.work { margin-top: var(--space-2); padding-bottom: var(--space-4); }
.work-main { min-width: 0; }
.hero-media { aspect-ratio: 2.25 / 1; overflow: hidden; }
.project-picture { display: block; width: 100%; height: 100%; }
.hero-still { height: 100%; object-position: 50% 58%; }
.work-copy { padding-top: var(--space-1); }
.project-tagline, .collaboration-intro, .support-intro { font-size: var(--subtitle-size); font-weight: 400; line-height: 1.5; }
.project-tagline { margin-bottom: var(--space-2); }
.work-copy p:not(.project-tagline) { max-width: 52ch; margin-bottom: var(--space-1); }
.link-row { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-2); }
.text-link { display: inline-flex; align-items: baseline; gap: var(--space-2); padding-bottom: var(--space-1); border-bottom: 1px solid var(--line); font-size: 17px; font-weight: 400; }
.stills-grid { display: grid; align-self: start; gap: var(--space-1); }
.stills-grid .project-picture { height: auto; aspect-ratio: 2.2 / 1; }
.stills-grid img { height: 100%; }
.stills-grid .s1 { object-position: 50% 25%; }
.stills-grid .s2 { object-position: 50% 35%; }
.stills-grid .s3 { object-position: 50% 12%; }
.editorial-section { border-top: 1px solid var(--line); padding-block: var(--space-4); }
.editorial-copy { min-width: 0; }
.editorial-copy p { margin-bottom: var(--space-2); }
.editorial-copy .text-link { margin-top: var(--space-1); }
.support-media { aspect-ratio: 1.64 / 1; overflow: hidden; }
.support-media img { height: 100%; object-position: 50% 45%; }
.info-row { margin-top: auto; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 2.95fr) minmax(0, 1fr); border-top: 1px solid var(--line); padding: var(--space-2) 0 var(--space-4); }
.info-group { min-width: 0; padding-right: var(--space-2); }
.info-group + .info-group { border-left: 1px solid var(--soft-line); padding-left: var(--space-2); }
.info-group p { font-size: 14px; }
.process { display: grid; grid-template-columns: minmax(0, 1.27fr) minmax(0, 2.13fr); gap: var(--space-1); }
.process p { font-size: 13px; }
.process-images { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-1); align-self: start; }
.process-images img { height: auto; aspect-ratio: 1.16 / 1; }
.contact { display: flex; flex-direction: column; padding-right: 0; }
.contact-details { margin-top: auto; }
.contact-email { display: inline-block; font-size: 17px; overflow-wrap: anywhere; }
.socials { display: flex; flex-wrap: wrap; gap: var(--space-1); margin-top: var(--space-2); font-size: 14px; }
.socials a { border-bottom: 1px solid var(--line); padding-bottom: var(--space-1); }
a[aria-disabled='true'] { cursor: default; }
a[aria-disabled='true']:hover { text-decoration: none; }
.site-footer { display: flex; justify-content: flex-end; border-top: 1px solid var(--line); padding-block: var(--space-2); font-size: 13px; color: var(--secondary); }
.theme-toggle { display: grid; place-items: center; flex: 0 0 var(--space-3); width: var(--space-3); height: var(--space-3); padding: 0; border: 0; background: transparent; color: var(--ink); cursor: pointer; }
.theme-toggle svg { display: block; width: var(--space-2); height: var(--space-2); }
.theme-toggle:hover { opacity: .7; }
.theme-disc { fill: var(--icon-ivory); }
.theme-half { fill: var(--icon-charcoal); }
[data-theme="dark"] .theme-disc { fill: var(--icon-charcoal); }
[data-theme="dark"] .theme-half { fill: var(--icon-ivory); }
@media (max-width: 1100px) {
  .info-row { grid-template-columns: minmax(0, 1.15fr) minmax(0, 2fr) minmax(0, 1fr); }
  .process { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .contact-email { font-size: 15px; }
}
@media (max-width: 700px) {
  :root { --heading-em: clamp(36px, 9vw, 60px); }
  .site-header { gap: var(--space-1); padding-top: var(--space-2); }
  .wordmark { width: 205px; }
  .brand-lockup p { font-size: 13px; }
  .work, .editorial-section { grid-template-columns: minmax(0, 1fr); }
  .info-row { display: block; padding: 0 0 var(--space-2); }
  .info-group, .info-group + .info-group { border-left: 0; padding: var(--space-2) 0; }
  .info-group + .info-group { border-top: 1px solid var(--soft-line); }
  .info-group p, .process p { font-size: 15px; }
  .contact-email { font-size: 20px; }
}

.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

.info-row .display-heading { --heading-scale: var(--info-heading-scale); }
