:root {
  --black: #080808;
  --ink: #10100f;
  --bone: #d7d3c8;
  --paper: #eeeae0;
  --muted: #8c8982;
  --line: rgba(215, 211, 200, .22);
  --pad: clamp(22px, 4vw, 64px);
  --display: "Archivo", Arial, Helvetica, sans-serif;
  --body: "IBM Plex Sans", Arial, Helvetica, sans-serif;
  --meta: "IBM Plex Mono", monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--black); }
body { margin: 0; color: var(--bone); background: var(--black); font-family: var(--body); font-size: 16px; line-height: 1.25; overflow-x: hidden; }
h1, h2, h3, strong { font-family: var(--display); }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
button { color: inherit; font: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
::selection { color: var(--black); background: var(--bone); }

.skip-link { position: fixed; z-index: 100; left: 20px; top: -100px; padding: 12px 18px; background: var(--paper); color: var(--black); }
.skip-link:focus { top: 20px; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }

.site-header { position: fixed; z-index: 50; top: 0; left: 0; right: 0; height: 104px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 var(--pad); color: white; transition: background .35s, height .35s, border-color .35s; border-bottom: 1px solid transparent; }
.site-header.scrolled { height: 74px; background: rgba(8,8,8,.9); border-color: var(--line); backdrop-filter: blur(16px); }
.brand { display: flex; align-items: center; gap: 13px; width: max-content; font-family: var(--meta); font-size: 11px; font-weight: 500; letter-spacing: .12em; }
.brand-mark { position: relative; display: block; height: 64px; width: auto; aspect-ratio: 170 / 512; flex: 0 0 auto; overflow: visible; }
.brand-mark img { width: auto; height: 100%; max-width: none; object-fit: contain; filter: invert(1); }
.site-header.scrolled .brand-mark { height: 56px; }
.desktop-nav { display: flex; gap: 32px; font-family: var(--meta); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.desktop-nav a, .header-cta { position: relative; }
.desktop-nav a::after, .header-cta::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -6px; height: 1px; background: currentColor; transition: right .25s; }
.desktop-nav a:hover::after, .header-cta:hover::after { right: 0; }
.header-cta { justify-self: end; font-family: var(--meta); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.header-cta span { margin-left: 8px; }
.menu-button { display: none; width: 42px; height: 42px; padding: 10px 5px; border: 0; background: none; }
.menu-button span { display: block; height: 1px; background: currentColor; margin: 7px 0; transition: transform .25s; }
.menu-button.open span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-button.open span:last-child { transform: translateY(-4px) rotate(-45deg); }
.mobile-menu { display: none; }

.hero { position: relative; min-height: 100svh; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 130px var(--pad) 46px; color: white; }
.hero-media, .hero-shade { position: absolute; inset: 0; }
.media-frame { background-position: center; background-size: cover; }
.media-frame video { opacity: 0; transition: opacity .65s ease; }
.media-frame.video-ready video { opacity: 1; }
.hero-media { background-image: url("/assets/migrated/website-assets-10-c00939d8.webp"); }
.hero-media video { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; filter: grayscale(1) contrast(1.04); background: transparent; }
.hero-shade { background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 35%, transparent 58%, rgba(0,0,0,.72) 100%); pointer-events: none; }
.hero-kicker { position: absolute; z-index: 2; top: 50%; left: 18px; transform: translateY(-50%) rotate(180deg); writing-mode: vertical-rl; color: rgba(255,255,255,.7); font-family: var(--meta); font-size: 8px; text-transform: uppercase; letter-spacing: .1em; }
.hero-title { position: relative; z-index: 2; margin: 0 0 8px; font-size: clamp(25px, 2.7vw, 43px); line-height: 1; font-stretch: 88%; font-weight: 550; text-transform: uppercase; letter-spacing: -.035em; }
.hero-bottom { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: clamp(28px, 5vw, 80px); }
.hero-bottom p { width: auto; margin: 0; color: rgba(255,255,255,.72); font-family: var(--meta); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }
.sound-control { display: flex; align-items: center; gap: 9px; padding: 0 0 5px; border: 0; border-bottom: 1px solid rgba(255,255,255,.55); background: transparent; font-family: var(--meta); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; cursor: pointer; }
.sound-control > span { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.65); }
.sound-control.sound-on > span { background: #fff; box-shadow: 0 0 0 4px rgba(255,255,255,.18); }
.circle-link { width: 64px; height: 64px; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; display: grid; place-items: center; font-size: 22px; transition: color .25s, background .25s; }
.circle-link:hover { color: black; background: white; }
.hero-index { position: absolute; z-index: 2; left: var(--pad); bottom: 50px; font-family: var(--meta); font-size: 9px; letter-spacing: .12em; writing-mode: vertical-rl; transform: rotate(180deg); }

.ruled { border-top: 1px solid var(--line); }
.eyebrow { margin: 0; font-family: var(--meta); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.statement { display: grid; grid-template-columns: 58% 42%; padding: 0; }
.statement-visual { display: grid; grid-template-columns: 1fr 1fr; align-content: center; overflow: hidden; background: #0b0b0b; }
.statement-visual img { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: contain; filter: grayscale(1); border-right: 1px solid var(--black); border-bottom: 1px solid var(--black); }
.statement-visual img:first-child { grid-column: 1 / -1; }
.statement-panel { display: flex; flex-direction: column; justify-content: space-between; min-height: 78svh; padding: 46px clamp(36px, 5vw, 80px) 80px; border-left: 1px solid var(--line); }
.statement-copy > p:first-child { margin: 0; font-family: var(--display); font-size: clamp(48px, 6.2vw, 98px); font-stretch: 85%; font-weight: 650; line-height: .88; letter-spacing: -.055em; text-transform: uppercase; }
.statement-small { width: min(440px, 100%); margin: 70px 0 0; color: var(--muted); font-size: clamp(16px, 1.35vw, 21px); }

.reel { padding: 0 var(--pad); }
.reel-link { position: relative; display: block; overflow: hidden; aspect-ratio: 16/8.4; background: #181818; }
.reel-link::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.1), rgba(0,0,0,.45)); }
.reel img { height: 100%; object-fit: cover; filter: grayscale(1); transition: transform 1s cubic-bezier(.2,.8,.2,1), filter .6s; }
.reel-link:hover img { transform: scale(1.025); filter: grayscale(.25); }
.reel-no, .reel-label, .reel-play { position: absolute; z-index: 2; }
.reel-no { left: 24px; top: 22px; font-family: var(--meta); font-size: 10px; letter-spacing: .1em; }
.reel-label { left: 24px; bottom: 22px; font-family: var(--meta); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.reel-play { left: 50%; top: 50%; transform: translate(-50%,-50%); width: 112px; height: 112px; display: grid; place-items: center; border-radius: 50%; background: rgba(215,211,200,.93); color: var(--black); text-transform: uppercase; font-size: 11px; letter-spacing: .12em; transition: transform .3s; }
.reel-play b { display: none; }
.reel-link:hover .reel-play { transform: translate(-50%,-50%) scale(1.08); }

.work-section { padding: 0 var(--pad) 150px; }
.section-heading { display: grid; grid-template-columns: 25% 1fr auto; align-items: start; padding-top: 46px; margin-bottom: 72px; }
.section-heading h2 { margin: 0; font-size: clamp(45px, 6vw, 92px); font-stretch: 84%; line-height: .86; text-transform: uppercase; letter-spacing: -.055em; }
.text-link { align-self: end; width: max-content; padding-bottom: 5px; border-bottom: 1px solid currentColor; font-family: var(--meta); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.project-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 76px 2.2vw; }
.project-image { overflow: hidden; aspect-ratio: 16/10; background: #111; }
.project-image img { height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .5s; }
.project:hover .project-image img { transform: scale(1.025); filter: brightness(.78); }
.project-meta { display: flex; justify-content: space-between; gap: 24px; padding-top: 16px; font-family: var(--meta); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }
.project-meta div { display: flex; gap: 34px; }
.project-meta > span, .project-meta div span:last-child { color: var(--muted); }

.approach { padding: 0 var(--pad) 150px; }
.standard-film { position: relative; aspect-ratio: 16/8; overflow: hidden; margin-bottom: 132px; background-image: url("/assets/migrated/sequence-06-00-00-01-12-still002-f066adef.webp"); }
.standard-film video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.standard-film-shade { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(0,0,0,.52), rgba(0,0,0,.08) 65%), linear-gradient(0deg, rgba(0,0,0,.4), transparent 50%); pointer-events: none; }
.standard-film > .eyebrow { position: absolute; z-index: 2; top: 30px; left: 30px; color: rgba(255,255,255,.75); }
.standard-film > h2 { position: absolute; z-index: 2; left: 30px; bottom: 25px; margin: 0; color: white; font-size: clamp(56px, 8vw, 126px); font-stretch: 82%; line-height: .82; letter-spacing: -.055em; text-transform: uppercase; }
.approach-intro { padding-top: 32px; }
.approach-summary { display: grid; grid-template-columns: 1fr .6fr; gap: 60px; margin: 84px 0 132px; align-items: end; }
.approach-summary h2 { margin: 0; font-size: clamp(55px, 7vw, 112px); font-stretch: 82%; line-height: .86; letter-spacing: -.055em; text-transform: uppercase; }
.approach-summary > p { max-width: 430px; margin: 0 0 8px; color: var(--muted); font-size: 18px; }
.services-list { margin-left: 0; border-top: 1px solid var(--line); }
.services-list article { display: grid; grid-template-columns: 70px minmax(260px, 1fr) minmax(280px, .7fr); gap: 20px; padding: 30px 0 45px; border-bottom: 1px solid var(--line); }
.services-list article > span { color: var(--muted); font-family: var(--meta); font-size: 9px; }
.services-list h3 { margin: 0; font-size: clamp(25px, 2.6vw, 42px); font-weight: 400; letter-spacing: -.035em; }
.services-list p { max-width: 390px; margin: 4px 0 0; color: var(--muted); }

.trust { margin: 0 var(--pad); padding: 46px 0 150px; }
.trust-logos { display: grid; grid-template-columns: repeat(5, 1fr); margin: 84px 0 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.trust-logos > div { min-height: 148px; display: grid; place-items: center; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.trust-logos img { width: auto; max-width: 132px; max-height: 56px; object-fit: contain; filter: grayscale(1); opacity: .78; }
.trust-logos .logo-compact img { max-height: 64px; }
.trust-logos .logo-wide img { max-width: 150px; max-height: 46px; }
.trust-logos .logo-tall img { max-height: 66px; }
.trust-logos .logo-xhibition img { max-width: 88px; max-height: 88px; opacity: .86; }

.studio { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 100vh; background: var(--paper); color: var(--ink); }
.studio-image { min-height: 700px; overflow: hidden; }
.studio-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); }
.studio-copy { display: flex; flex-direction: column; justify-content: center; padding: 80px clamp(40px, 7vw, 120px); }
.studio-copy .eyebrow { color: #77736b; }
.studio-copy h2 { margin: 90px 0 40px; font-size: clamp(45px, 5.5vw, 84px); font-stretch: 84%; line-height: .9; text-transform: uppercase; letter-spacing: -.05em; }
.studio-copy > p:not(.eyebrow) { width: min(430px, 100%); margin: 0 0 50px; color: #595650; font-size: 18px; }

.contact { padding: 0 var(--pad); }
.contact > a { position: relative; min-height: 86vh; display: flex; flex-direction: column; justify-content: center; border-bottom: 1px solid var(--line); }
.contact strong { display: block; margin-top: 90px; font-size: clamp(66px, 10.7vw, 170px); font-stretch: 82%; line-height: .78; letter-spacing: -.065em; text-transform: uppercase; }
.contact-arrow { position: absolute; right: 1vw; top: 50%; font-size: clamp(60px, 9vw, 130px); transition: transform .3s; }
.contact a:hover .contact-arrow { transform: translate(10px,-10px); }

footer { padding: 70px var(--pad) 40px; }
.footer-brand { display: flex; align-items: center; gap: 36px; width: min(650px, 90vw); }
.footer-mark { position: relative; display: block; width: 70px; height: 190px; flex: 0 0 auto; }
.footer-mark img { width: 100%; height: 100%; object-fit: contain; filter: invert(1); }
.footer-word { font-family: var(--display); font-size: clamp(42px, 6vw, 88px); font-stretch: 82%; font-weight: 650; letter-spacing: -.055em; }
.footer-meta { display: grid; grid-template-columns: 1fr 1fr auto; gap: 40px; align-items: end; margin-top: 90px; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.footer-meta div { display: flex; gap: 24px; }
.footer-meta p { margin: 0; }

/* Work archive */
.desktop-nav a.active::after { right: 0; }
.work-page .site-header { background: rgba(8,8,8,.94); border-color: var(--line); }
.archive-hero { position: relative; min-height: 100svh; overflow: hidden; border-bottom: 0; background-image: url("/assets/migrated/website-assets-11-b7192cf5.webp"); }
.archive-hero > video, .archive-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.archive-hero > video { object-fit: cover; filter: grayscale(1) contrast(1.03); }
.archive-hero-shade { z-index: 1; background: linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.04) 42%,rgba(0,0,0,.76)); pointer-events: none; }
.archive-hero::after { content: ""; position: absolute; z-index: 4; left: 0; right: 0; bottom: 0; height: 3px; background: var(--black); pointer-events: none; }
.archive-hero-content { position: relative; z-index: 2; min-height: 100svh; display: grid; grid-template-columns: 24% 1fr 34%; grid-template-rows: auto 1fr auto; gap: 20px; align-items: end; padding: 160px var(--pad) 52px; color: white; }
.archive-hero-content > .eyebrow { grid-column: 1 / -1; align-self: start; color: rgba(255,255,255,.72); }
.archive-hero h1 { grid-column: 1 / 3; margin: 0; font-family: var(--display); font-size: clamp(72px, 10.5vw, 168px); font-stretch: 80%; font-weight: 650; line-height: .78; letter-spacing: -.065em; text-transform: uppercase; }
.archive-intro { grid-column: 3; max-width: 430px; margin: 0 0 8px; color: rgba(255,255,255,.72); font-size: clamp(15px, 1.35vw, 21px); }
.archive-count { grid-column: 1; grid-row: 3; align-self: end; font-family: var(--meta); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.62); }
.archive-count b { color: var(--bone); font-weight: 400; margin-right: 8px; }
.archive { padding: 0 var(--pad) 170px; }
.archive-controls { position: sticky; z-index: 5; top: 74px; display: grid; grid-template-columns: 24% 1fr; align-items: center; min-height: 92px; padding: 18px 0; background: rgba(8,8,8,.94); backdrop-filter: blur(14px); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.filters button { padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--muted); font-family: var(--meta); font-size: 9px; text-transform: uppercase; letter-spacing: .07em; cursor: pointer; transition: color .2s, background .2s; }
.filters button:hover, .filters button.active { color: var(--black); background: var(--bone); }
.archive-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 90px 2.2vw; padding-top: 70px; }
.archive-project { display: block; }
.archive-image { aspect-ratio: 16/9; overflow: hidden; background: #111; }
.archive-image img { height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .5s; }
.archive-project:hover .archive-image img { transform: scale(1.025); filter: brightness(.72); }
.archive-meta { display: grid; grid-template-columns: 42px minmax(180px,1fr) minmax(90px,.45fr) minmax(130px,.55fr) 20px; gap: 14px; align-items: baseline; padding: 16px 0 0; font-family: var(--meta); font-size: 9px; text-transform: uppercase; letter-spacing: .05em; }
.archive-meta h2, .archive-meta p { margin: 0; font: inherit; }
.archive-meta h2 { color: var(--bone); }
.archive-meta > span:first-child, .archive-meta p { color: var(--muted); }
.archive-arrow { justify-self: end; transition: transform .25s; }
.archive-project:hover .archive-arrow { transform: translate(3px,-3px); }

/* Reusable project page */
.case-hero { position: relative; min-height: 92svh; display: flex; flex-direction: column; justify-content: flex-end; padding: 150px var(--pad) 55px; overflow: hidden; color: white; }
.case-hero > img, .case-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.case-hero > img { object-fit: cover; filter: grayscale(1); }
.project-color .case-hero > img, .project-color .case-still img { filter: none; }
.case-shade { background: linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.08) 45%,rgba(0,0,0,.74)); }
.case-hero .eyebrow, .case-hero h1 { position: relative; z-index: 1; }
.case-hero .eyebrow { color: rgba(255,255,255,.72); }
.case-hero h1 { width: min(1100px,92%); margin: 22px 0 0; font-size: clamp(65px,10vw,160px); font-stretch: 80%; font-weight: 650; line-height: .78; letter-spacing: -.065em; text-transform: uppercase; }
.case-hero--artwork { padding-bottom: 42px; }
.case-details { padding: 80px var(--pad) 140px; border-bottom: 1px solid var(--line); }
.case-details-head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.case-details-head > span { color: var(--muted); font-family: var(--meta); font-size: 9px; letter-spacing: .1em; }
.case-details-grid { display: grid; grid-template-columns: minmax(310px,.72fr) minmax(460px,1.28fr); gap: clamp(70px,9vw,150px); padding-top: 70px; }
.case-details dl { margin: 0; }
.case-details dl > div { display: grid; grid-template-columns: 110px 1fr; gap: 22px; padding: 0 0 24px; margin-bottom: 24px; border-bottom: 1px solid var(--line); }
.case-details dt { margin-bottom: 8px; color: var(--muted); font-family: var(--meta); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.case-details dd { margin: 0; font-size: 15px; line-height: 1.35; }
.case-narrative { max-width: 780px; }
.case-summary-lead { margin: 0; font-family: var(--display); font-size: clamp(31px,3.05vw,49px); font-stretch: 92%; font-weight: 450; line-height: 1.05; letter-spacing: -.04em; }
.case-summary-body { max-width: 660px; margin: 42px 0 0; color: var(--muted); font-size: clamp(17px,1.3vw,20px); line-height: 1.48; }
.case-film { padding: 0 var(--pad) 150px; }
.case-film iframe { display: block; width: 100%; aspect-ratio: 16/9; border: 0; background: #111; }
.case-still { padding: 0 var(--pad) 150px; }
.case-still img { aspect-ratio: 16/9; object-fit: cover; filter: grayscale(1); }
.case-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; padding: 0 var(--pad) 150px; }
.case-gallery img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.case-gallery .case-gallery-wide { grid-column: 1 / -1; aspect-ratio: 3/2; }
.case-gallery .case-gallery-portrait { grid-column: 2; width: 72%; aspect-ratio: 2/3; justify-self: end; margin-top: clamp(40px,7vw,110px); }
.case-quote { padding: 30px var(--pad) 160px; border-top: 1px solid var(--line); }
.case-quote blockquote { max-width: 1250px; margin: 90px 0 50px; font-family: var(--display); font-size: clamp(38px,5.5vw,86px); font-stretch: 88%; font-weight: 500; line-height: .96; letter-spacing: -.045em; text-transform: uppercase; }
.case-quote cite { color: var(--muted); font-family: var(--meta); font-size: 10px; font-style: normal; text-transform: uppercase; letter-spacing: .1em; }
.next-project { border-top: 1px solid var(--line); }
.next-project a { position: relative; min-height: 58svh; display: flex; flex-direction: column; justify-content: center; padding: 70px var(--pad); }
.next-project strong { max-width: 85%; margin-top: 50px; font-size: clamp(60px,9vw,145px); font-stretch: 80%; line-height: .8; letter-spacing: -.06em; text-transform: uppercase; }
.next-project a > span:last-child { position: absolute; right: var(--pad); top: 50%; font-size: clamp(55px,8vw,120px); }

/* General content pages */
.content-page .site-header { background: rgba(8,8,8,.94); border-color: var(--line); }
.service-hero { display: grid; grid-template-columns: minmax(0, .98fr) minmax(420px, .72fr); gap: clamp(46px, 6vw, 96px); align-items: end; min-height: 86svh; padding: 148px var(--pad) 72px; border-bottom: 1px solid var(--line); }
.service-hero-copy h1, .about-hero h1 { max-width: 1160px; margin: 34px 0 30px; font-size: clamp(56px, 8.1vw, 132px); font-stretch: 80%; font-weight: 650; line-height: .82; letter-spacing: -.065em; text-transform: uppercase; }
.service-hero-copy p:last-child, .about-hero > p { max-width: 640px; margin: 0; color: var(--muted); font-size: clamp(18px, 1.45vw, 23px); line-height: 1.45; }
.service-hero-frame { margin: 0; }
.service-hero-frame img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(.2); }
.service-hero-frame figcaption, .about-split figcaption { display: flex; justify-content: space-between; gap: 20px; padding-top: 14px; color: var(--muted); font-family: var(--meta); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.service-manifest { display: grid; grid-template-columns: minmax(180px,.35fr) 1fr; gap: 30px; padding: 46px var(--pad) 92px; }
.service-manifest-copy { max-width: 1030px; }
.service-manifest-copy p { margin: 0; }
.service-manifest-copy p:first-child { color: var(--bone); font-family: var(--display); font-size: clamp(36px, 4.6vw, 74px); font-stretch: 88%; font-weight: 500; line-height: .98; letter-spacing: -.045em; }
.service-manifest-copy p + p { max-width: 680px; margin-top: 34px; color: var(--muted); font-size: clamp(17px,1.35vw,21px); line-height: 1.52; }
.service-cards { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.service-cards article { min-height: 510px; display: flex; flex-direction: column; padding: 28px clamp(22px,2.5vw,42px) 34px; border-right: 1px solid var(--line); }
.service-cards article:last-child { border-right: 0; }
.service-cards span, .process-stack span, .about-principles span { color: var(--muted); font-family: var(--meta); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.service-cards h2 { margin: auto 0 24px; font-size: clamp(28px, 3vw, 50px); font-stretch: 86%; font-weight: 560; line-height: .95; letter-spacing: -.045em; }
.service-cards p { margin: 0 0 34px; color: var(--muted); font-size: 16px; line-height: 1.48; }
.service-cards a { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); font-family: var(--meta); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; display: flex; justify-content: space-between; }
.service-proof--wide { grid-template-columns: 1.25fr .9fr .9fr; padding-top: 120px; }
.service-process { display: grid; grid-template-columns: minmax(280px,.74fr) 1fr; gap: clamp(60px, 9vw, 150px); padding: 105px var(--pad) 120px; }
.service-process h2 { margin: 54px 0 0; font-size: clamp(58px, 7.8vw, 122px); font-stretch: 80%; font-weight: 650; line-height: .82; letter-spacing: -.06em; text-transform: uppercase; }
.process-stack { border-top: 1px solid rgba(8,8,8,.22); }
.process-stack article { display: grid; grid-template-columns: 160px 1fr; gap: 30px; padding: 28px 0 34px; border-bottom: 1px solid rgba(8,8,8,.22); }
.process-stack p { max-width: 720px; margin: 0; color: #68655f; font-size: clamp(17px,1.3vw,21px); line-height: 1.5; }
.service-fit { display: grid; grid-template-columns: minmax(180px,.35fr) 1fr; gap: 30px; padding: 48px var(--pad) 130px; border-bottom: 1px solid var(--line); }
.service-fit ul { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-fit li { min-height: 178px; display: flex; align-items: flex-end; padding: 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--bone); font-size: clamp(22px,2.2vw,36px); line-height: 1.05; letter-spacing: -.035em; }
.about-hero { min-height: 78svh; display: grid; grid-template-columns: 1fr minmax(360px,.46fr); gap: clamp(50px, 8vw, 140px); align-items: end; padding: 148px var(--pad) 72px; border-bottom: 1px solid var(--line); }
.about-hero h1 { margin-bottom: 0; }
.about-split { display: grid; grid-template-columns: minmax(420px,.78fr) 1fr; gap: clamp(55px, 8vw, 130px); align-items: center; padding: 120px var(--pad); }
.about-split figure { margin: 0; }
.about-split img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(.8); }
.about-split-copy h2 { max-width: 880px; margin: 58px 0 36px; font-size: clamp(38px,5.4vw,86px); font-stretch: 84%; font-weight: 560; line-height: .92; letter-spacing: -.055em; text-transform: uppercase; }
.about-split-copy p:not(.eyebrow) { max-width: 680px; margin: 0 0 26px; color: var(--muted); font-size: clamp(17px,1.35vw,21px); line-height: 1.55; }
.founder-section { padding: 105px var(--pad) 140px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.founder-intro { display: grid; grid-template-columns: minmax(180px,.35fr) 1fr; gap: 30px; margin-bottom: 86px; }
.founder-intro h2 { grid-column: 2; margin: 0; font-size: clamp(56px,7.5vw,120px); font-stretch: 80%; font-weight: 650; line-height: .82; letter-spacing: -.06em; text-transform: uppercase; }
.about-origin { padding: 110px var(--pad) 118px; }
.about-principles { display: grid; grid-template-columns: minmax(180px,.35fr) 1fr; gap: 30px; padding: 48px var(--pad) 135px; border-bottom: 1px solid var(--line); }
.about-principles > div { border-top: 1px solid var(--line); }
.about-principles article { display: grid; grid-template-columns: 72px minmax(250px,.65fr) 1fr; gap: 28px; padding: 30px 0 38px; border-bottom: 1px solid var(--line); }
.about-principles h3 { margin: 0; font-size: clamp(28px,3.2vw,52px); font-stretch: 86%; font-weight: 560; line-height: .95; letter-spacing: -.045em; text-transform: uppercase; }
.about-principles p { max-width: 620px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.5; }
.content-hero { min-height: 82svh; display: grid; grid-template-columns: minmax(180px,.35fr) 1fr; grid-template-rows: 1fr auto; gap: 30px; align-items: end; padding: 170px var(--pad) 65px; border-bottom: 1px solid var(--line); }
.content-hero > .eyebrow { align-self: start; }
.content-hero h1 { grid-column: 2; max-width: 1200px; margin: 0; font-size: clamp(72px,10vw,158px); font-stretch: 80%; font-weight: 650; line-height: .78; letter-spacing: -.065em; word-spacing: .08em; text-transform: uppercase; }
.content-hero .content-lead { grid-column: 2; width: min(680px,100%); margin: 44px 0 0; color: var(--muted); font-size: clamp(18px,1.55vw,24px); line-height: 1.4; }
.content-section { padding: 120px var(--pad) 150px; border-bottom: 1px solid var(--line); }
.content-section-head { display: grid; grid-template-columns: minmax(180px,.35fr) 1fr; gap: 30px; margin-bottom: 90px; }
.content-section-head h2 { max-width: 1050px; margin: 0; font-size: clamp(52px,7.5vw,120px); font-stretch: 82%; font-weight: 620; line-height: .82; letter-spacing: -.055em; text-transform: uppercase; }
.content-section-head > :last-child { grid-column: 2; }
.content-prose { width: min(760px,100%); margin-left: auto; }
.content-prose p { margin: 0 0 28px; color: var(--muted); font-size: clamp(18px,1.35vw,21px); line-height: 1.55; }
.content-prose p:first-child { color: var(--bone); font-size: clamp(27px,2.7vw,43px); line-height: 1.15; letter-spacing: -.03em; }
.service-rows { border-top: 1px solid var(--line); }
.service-row { display: grid; grid-template-columns: 70px minmax(260px,.8fr) 1fr; gap: 28px; padding: 38px 0 48px; border-bottom: 1px solid var(--line); }
.service-row > span { color: var(--muted); font-family: var(--meta); font-size: 9px; }
.service-row h3 { margin: 0; font-size: clamp(28px,3vw,48px); font-stretch: 90%; font-weight: 520; letter-spacing: -.04em; }
.service-row p { max-width: 620px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.5; }
.paper-section { background: var(--paper); color: var(--ink); }
.paper-section .eyebrow, .paper-section p { color: #68655f; }
.process-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(8,8,8,.22); }
.process-step { min-height: 390px; display: flex; flex-direction: column; padding: 28px 32px 40px 0; border-right: 1px solid rgba(8,8,8,.22); }
.process-step + .process-step { padding-left: 32px; }
.process-step:last-child { border-right: 0; }
.process-step > span { font-family: var(--meta); font-size: 9px; color: #77736b; }
.process-step h3 { margin: auto 0 30px; font-size: clamp(34px,4vw,62px); font-stretch: 86%; font-weight: 580; letter-spacing: -.05em; text-transform: uppercase; }
.process-step p { margin: 0; color: #68655f; font-size: 16px; line-height: 1.5; }
.editorial-image { padding: 0 var(--pad) 150px; }
.editorial-image img { width: 100%; max-height: 84svh; object-fit: cover; filter: grayscale(1); }
.service-proof { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; padding: 0 var(--pad) 150px; border-bottom: 1px solid var(--line); }
.service-proof figure { margin: 0; overflow: hidden; }
.service-proof img { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; filter: grayscale(1); transition: filter .45s ease, transform .7s cubic-bezier(.2,.75,.2,1); }
.service-proof figure:hover img { filter: grayscale(0); transform: scale(1.012); }
.service-proof figcaption { display: flex; justify-content: space-between; gap: 20px; padding: 14px 0 0; color: var(--muted); font-family: var(--meta); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.service-proof figure + figure { padding-left: 1px; }
.founders-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 90px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.founder { min-height: 520px; display: flex; flex-direction: column; padding: 32px clamp(28px,4vw,64px) 48px 0; border-right: 1px solid var(--line); }
.founder + .founder { padding-left: clamp(28px,4vw,64px); border-right: 0; }
.founder h3 { margin: auto 0 30px; font-size: clamp(50px,6vw,92px); font-stretch: 82%; font-weight: 620; letter-spacing: -.06em; text-transform: uppercase; }
.founder p { max-width: 560px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.52; }
.origin-grid { display: grid; grid-template-columns: minmax(220px,.45fr) 1fr; gap: clamp(60px,10vw,180px); }
.origin-grid h2 { margin: 0; font-size: clamp(65px,9vw,142px); font-stretch: 80%; font-weight: 650; line-height: .8; letter-spacing: -.065em; text-transform: uppercase; }
.origin-copy p { max-width: 700px; margin: 0 0 28px; color: #68655f; font-size: clamp(18px,1.4vw,22px); line-height: 1.55; }
.contact-main { padding-bottom: 0; }
.contact-address { display: block; margin-top: 48px; font-family: var(--display); font-size: clamp(34px,5.8vw,90px); font-stretch: 84%; font-weight: 560; line-height: .95; letter-spacing: -.05em; overflow-wrap: anywhere; }
.contact-address span { display: inline-block; transition: transform .25s; }
.contact-address:hover span { transform: translate(8px,-8px); }
.brief-grid { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 90px; border-top: 1px solid var(--line); }
.brief-item { min-height: 260px; padding: 25px 28px 35px 0; border-right: 1px solid var(--line); }
.brief-item + .brief-item { padding-left: 28px; }
.brief-item:last-child { border-right: 0; }
.brief-item span { font-family: var(--meta); font-size: 9px; color: var(--muted); }
.brief-item p { margin: 110px 0 0; font-size: 17px; line-height: 1.45; }
.project-form-section { display: grid; grid-template-columns: minmax(300px,.8fr) minmax(520px,1.2fr); gap: clamp(70px,10vw,170px); padding: 120px var(--pad) 150px; border-bottom: 1px solid var(--line); scroll-margin-top: 86px; }
.project-form-heading h2 { margin: 70px 0 34px; font-size: clamp(52px,6.8vw,108px); font-stretch: 82%; font-weight: 620; line-height: .82; letter-spacing: -.055em; text-transform: uppercase; }
.project-form-heading > p:last-child { max-width: 440px; color: var(--muted); font-size: 17px; line-height: 1.5; }
.project-form { align-self: end; display: grid; grid-template-columns: 1fr 1fr; column-gap: 28px; }
.project-form label { display: flex; flex-direction: column; gap: 15px; padding: 25px 0 26px; border-top: 1px solid var(--line); }
.project-form label > span { color: var(--muted); font-family: var(--meta); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.project-form input, .project-form textarea { width: 100%; padding: 0; border: 0; border-radius: 0; outline: 0; color: var(--bone); background: transparent; font: inherit; font-size: 18px; resize: vertical; }
.project-form input::placeholder, .project-form textarea::placeholder { color: #585751; }
.project-form label:focus-within { border-color: var(--bone); }
.project-form .form-wide { grid-column: 1 / -1; }
.project-form button { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; min-height: 86px; margin-top: 24px; padding: 0 24px; border: 1px solid var(--bone); color: var(--black); background: var(--bone); font-family: var(--meta); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: color .25s, background .25s; }
.project-form button:hover { color: var(--bone); background: transparent; }
.form-honeypot { position: absolute; left: -9999px; }
.legal-wrap { display: grid; grid-template-columns: minmax(180px,.35fr) minmax(0,760px); gap: 30px; padding: 100px var(--pad) 150px; }
.legal-copy h2 { margin: 65px 0 18px; font-size: clamp(28px,3vw,46px); font-stretch: 90%; font-weight: 550; letter-spacing: -.04em; }
.legal-copy h2:first-child { margin-top: 0; }
.legal-copy p, .legal-copy li { color: var(--muted); font-size: 17px; line-height: 1.55; }
.legal-copy ul { padding-left: 20px; }
.error-page { min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; padding: 150px var(--pad) 60px; }
.error-code { margin: 0; color: var(--muted); font-family: var(--meta); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.error-page h1 { max-width: 1200px; margin: 70px 0 45px; font-size: clamp(76px,13vw,205px); font-stretch: 78%; font-weight: 650; line-height: .76; letter-spacing: -.07em; text-transform: uppercase; }
.error-page p { max-width: 520px; margin: 0 0 42px; color: var(--muted); font-size: 18px; }
.button-link { display: inline-flex; align-items: center; gap: 24px; width: max-content; padding: 14px 18px; border: 1px solid var(--line); font-family: var(--meta); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; transition: color .25s, background .25s; }
.button-link:hover { color: var(--black); background: var(--bone); }

[data-reveal] { opacity: 0; transform: translateY(36px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.75,.2,1); }
[data-reveal].visible { opacity: 1; transform: none; }
.motion-media { clip-path: inset(0 49.8% 0 49.8%); filter: blur(9px); transition: clip-path 1.05s cubic-bezier(.22,.78,.18,1), filter .62s ease-out .08s; will-change: clip-path, filter; }
.motion-media.motion-visible { clip-path: inset(0); filter: blur(0); }
.motion-type { font-stretch: 76% !important; filter: blur(3px); transform: translateY(5px); transition: font-stretch 1s cubic-bezier(.22,.78,.18,1), filter .5s ease-out .08s, transform .7s cubic-bezier(.22,.78,.18,1) !important; }
.motion-type.motion-visible { font-stretch: 82% !important; filter: blur(0); transform: none; }
#work, #principles, #services, #clients, #about, #footer { scroll-margin-top: 86px; }

/* Motion study 01 — aperture. Enabled only with ?study=aperture. */
.aperture-media { clip-path: inset(0 49.8% 0 49.8%); filter: blur(9px); transition: clip-path 1.05s cubic-bezier(.22,.78,.18,1), filter .62s ease-out .08s; will-change: clip-path, filter; }
.aperture-media.aperture-visible { clip-path: inset(0 0 0 0); filter: blur(0); }
.aperture-type { font-stretch: 76% !important; filter: blur(3px); transform: translateY(5px); transition: font-stretch 1s cubic-bezier(.22,.78,.18,1), letter-spacing 1s cubic-bezier(.22,.78,.18,1), filter .5s ease-out .08s, transform .7s cubic-bezier(.22,.78,.18,1) !important; }
.aperture-type.aperture-visible { font-stretch: 86% !important; filter: blur(0); transform: none; }

/* Journal */
.journal-hero { min-height: 78svh; display: grid; grid-template-columns: 1fr 1.35fr; grid-template-rows: auto 1fr auto; gap: 30px; padding: 150px var(--pad) 55px; border-bottom: 1px solid var(--line); }
.journal-hero .eyebrow { grid-column: 1 / -1; }
.journal-hero h1 { grid-column: 1 / -1; align-self: end; margin: 0; max-width: 1200px; font-size: clamp(82px, 12.5vw, 200px); font-stretch: 78%; font-weight: 650; line-height: .77; letter-spacing: -.075em; text-transform: uppercase; }
.journal-hero > p:last-child { grid-column: 2; max-width: 470px; margin: 0; color: var(--muted); font-size: clamp(17px, 1.35vw, 22px); line-height: 1.35; }
.journal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1px; row-gap: 110px; padding: 100px var(--pad) 150px; }
.journal-card { display: block; min-width: 0; }
.journal-card:nth-child(even) { padding-top: 13vw; }
.journal-card figure { aspect-ratio: 16 / 10; margin: 0; overflow: hidden; background: #151515; }
.journal-card img { height: 100%; object-fit: cover; filter: grayscale(.85); transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .5s; }
.journal-card:hover img { transform: scale(1.025); filter: grayscale(0); }
.journal-card > div { display: grid; grid-template-columns: 42px 1fr auto; gap: 15px; align-items: start; padding: 18px 0 0; border-top: 1px solid var(--line); }
.journal-card span, .journal-card p { margin: 0; color: var(--muted); font-family: var(--meta); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.journal-card h2 { grid-column: 2 / -1; margin: 20px 0 0; max-width: 720px; font-size: clamp(30px, 3.3vw, 54px); font-stretch: 88%; font-weight: 500; line-height: .96; letter-spacing: -.045em; }
.blog-article { padding-top: 74px; }
.blog-article-header { display: grid; grid-template-columns: minmax(180px, .42fr) minmax(0, 1fr); gap: 35px; align-items: end; padding: 70px var(--pad) 55px; }
.blog-article-header .eyebrow { padding-bottom: 4px; }
.blog-article-header h1 { grid-column: 2; margin: 0; max-width: 1100px; font-size: clamp(58px, 8.6vw, 142px); font-stretch: 80%; font-weight: 600; line-height: .82; letter-spacing: -.065em; }
.blog-article-header > p:last-child:not(.eyebrow) { grid-column: 2; max-width: 730px; margin: 0; color: var(--muted); font-size: clamp(17px, 1.35vw, 22px); line-height: 1.45; }
.blog-hero { margin: 0 var(--pad) 110px; aspect-ratio: 16 / 8.5; overflow: hidden; background: #151515; }
.blog-hero img { height: 100%; object-fit: cover; }
.blog-article-body { width: min(900px, calc(100% - (2 * var(--pad)))); margin: 0 auto; padding-bottom: 120px; }
.blog-text { margin: 0 0 38px; }
.blog-text h1, .blog-text h2, .blog-text h3 { margin: 75px 0 22px; font-stretch: 88%; font-weight: 500; line-height: 1; letter-spacing: -.035em; }
.blog-text h2 { font-size: clamp(34px, 4vw, 58px); }
.blog-text h3 { font-size: clamp(25px, 2.7vw, 40px); }
.blog-text p, .blog-text li { color: #b0aca3; font-size: clamp(17px, 1.25vw, 20px); line-height: 1.65; }
.blog-text a { color: var(--paper); border-bottom: 1px solid currentColor; }
.blog-text blockquote { margin: 70px 0; padding-left: 28px; border-left: 1px solid var(--bone); }
.blog-text blockquote p { color: var(--bone); font-family: var(--display); font-size: clamp(28px, 3.2vw, 46px); font-stretch: 88%; line-height: 1.05; letter-spacing: -.035em; }
.blog-image { margin: 75px 0; }
.blog-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; width: min(1300px, calc(100vw - (2 * var(--pad)))); margin: 85px 50%; transform: translateX(-50%); }
.blog-gallery figure { margin: 0; overflow: hidden; background: #151515; }
.blog-gallery img { height: 100%; max-height: 760px; object-fit: cover; }
.blog-embed { position: relative; aspect-ratio: 16 / 9; margin: 75px 0; overflow: hidden; }
.blog-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.blog-cta { margin: 55px 0; }
.blog-cta a { display: flex; justify-content: space-between; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-family: var(--meta); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.blog-return { display: flex; justify-content: space-between; margin: 0 var(--pad); padding: 28px 0 120px; border-top: 1px solid var(--line); font-family: var(--meta); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }

@media (max-width: 900px) {
  .site-header { height: 76px; grid-template-columns: 1fr auto; }
  .brand-name, .desktop-nav, .header-cta { display: none; }
  .brand-mark { display: block; height: 58px; width: auto; }
  .menu-button { display: block; position: relative; z-index: 62; }
  .mobile-menu { position: fixed; z-index: 40; inset: 0; display: flex; visibility: hidden; opacity: 0; flex-direction: column; justify-content: space-between; padding: 120px var(--pad) 40px; background: var(--black); transition: opacity .3s, visibility .3s; }
  .mobile-menu.open { visibility: visible; opacity: 1; }
  .mobile-menu nav { display: flex; flex-direction: column; }
  .mobile-menu nav a { padding: 8px 0; font-size: 13vw; line-height: 1; text-transform: uppercase; letter-spacing: -.055em; }
  .mobile-menu nav a:last-child { margin-top: 30px; color: var(--muted); }
  .mobile-menu-meta { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .12em; }
  .journal-hero { min-height: 68svh; grid-template-columns: 1fr; padding-top: 120px; }
  .journal-hero h1, .journal-hero > p:last-child { grid-column: 1; }
  .journal-hero h1 { font-size: 17vw; }
  .journal-grid { grid-template-columns: 1fr; row-gap: 75px; padding-top: 70px; }
  .journal-card:nth-child(even) { padding-top: 0; }
  .journal-card > div { grid-template-columns: 30px 1fr auto; }
  .journal-card h2 { font-size: 10vw; }
  .blog-article-header { grid-template-columns: 1fr; padding-top: 72px; }
  .blog-article-header .eyebrow, .blog-article-header h1, .blog-article-header > p:last-child:not(.eyebrow) { grid-column: 1; }
  .blog-article-header h1 { font-size: 14vw; }
  .blog-hero { margin-bottom: 75px; aspect-ratio: 4 / 3; }
  .blog-gallery { grid-template-columns: 1fr; margin-top: 65px; margin-bottom: 65px; }
  .blog-return { gap: 25px; padding-bottom: 85px; }
  .hero { min-height: 100svh; padding-bottom: 28px; }
  .hero-media video { object-position: 50% center; }
  .hero-kicker { top: 46%; left: 9px; font-size: 7px; }
  .hero-title { margin-bottom: 7px; font-size: clamp(23px, 7vw, 34px); line-height: 1; }
  .hero-bottom { grid-template-columns: 1fr auto; align-items: end; gap: 20px; }
  .hero-bottom p { font-size: 8px; }
  .sound-control { display: none; }
  .circle-link { width: 48px; height: 48px; }
  .hero-index { display: none; }
  .statement { min-height: 0; grid-template-columns: 1fr; }
  .statement-visual { min-height: 0; }
  .statement-panel { min-height: 68svh; padding: 30px var(--pad) 70px; }
  .statement-copy > p:first-child { margin-top: 80px; font-size: 12vw; }
  .statement-small { width: 90%; margin: 50px 0 0; }
  .reel { padding: 0; }
  .reel-link { aspect-ratio: 4/5; }
  .reel img { object-position: 56% center; }
  .reel-play { width: 84px; height: 84px; }
  .work-section { padding-top: 0; padding-bottom: 110px; }
  .section-heading { grid-template-columns: 1fr; gap: 50px; padding-top: 38px; margin-bottom: 70px; }
  .section-heading h2 { font-size: clamp(48px, 12.5vw, 82px); }
  .project-grid { grid-template-columns: 1fr; gap: 70px; }
  .project-image { aspect-ratio: 16/10; }
  .project-meta { display: block; }
  .project-meta div { justify-content: space-between; margin-bottom: 8px; }
  .approach { padding-bottom: 105px; }
  .standard-film { aspect-ratio: 4/5; margin: 0 calc(var(--pad) * -1) 92px; }
  .standard-film > h2 { left: var(--pad); bottom: 24px; font-size: 13vw; }
  .standard-film > .eyebrow { left: var(--pad); }
  .approach-summary { grid-template-columns: 1fr; gap: 40px; margin: 76px 0 96px; }
  .approach-summary h2 { font-size: 13vw; }
  .services-list { margin-left: 0; }
  .services-list article { grid-template-columns: 34px 1fr; padding: 24px 0 36px; }
  .services-list article p { grid-column: 2; }
  .trust { padding-top: 38px; padding-bottom: 105px; }
  .trust-logos { grid-template-columns: 1fr 1fr; margin: 62px 0 0; }
  .trust-logos > div { min-height: 105px; padding: 22px; }
  .trust-logos img { max-width: 105px; max-height: 42px; }
  .trust-logos .logo-wide img { max-width: 118px; max-height: 38px; }
  .trust-logos .logo-compact img, .trust-logos .logo-tall img { max-height: 50px; }
  .trust-logos .logo-xhibition img { max-width: 72px; max-height: 72px; }
  .studio { grid-template-columns: 1fr; }
  .studio-image { min-height: 75svh; }
  .studio-copy { padding: 90px var(--pad); }
  .studio-copy h2 { margin-top: 70px; font-size: 13vw; }
  .contact > a { min-height: 72vh; }
  .contact strong { margin-top: 70px; font-size: clamp(70px, 18vw, 140px); }
  .contact-arrow { top: auto; right: 0; bottom: 40px; font-size: 70px; }
  .footer-meta { grid-template-columns: 1fr; gap: 28px; margin-top: 70px; }
  .footer-meta div { flex-wrap: wrap; }
  .footer-brand { gap: 22px; }
  .footer-mark { width: 48px; height: 132px; }
  .footer-word { font-size: clamp(42px, 13vw, 72px); }
  .archive-hero, .archive-hero-content { min-height: 82svh; }
  .archive-hero-content { grid-template-columns: 1fr; grid-template-rows: auto 1fr auto auto; padding: 120px var(--pad) 34px; }
  .archive-hero-content > .eyebrow, .archive-hero h1, .archive-intro, .archive-count { grid-column: 1; }
  .archive-hero h1 { align-self: end; font-size: 18vw; }
  .archive-intro { grid-row: 3; font-size: 17px; }
  .archive-count { grid-row: 4; margin-top: 24px; }
  .archive { padding-bottom: 110px; }
  .archive-controls { top: 74px; grid-template-columns: 1fr; gap: 16px; }
  .filters { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 3px; }
  .filters button { white-space: nowrap; }
  .archive-grid { grid-template-columns: 1fr; gap: 70px; padding-top: 50px; }
  .archive-meta { grid-template-columns: 30px 1fr 20px; }
  .archive-meta p { grid-column: 2; }
  .archive-meta .archive-arrow { grid-column: 3; grid-row: 1; }
  .case-hero { min-height: 78svh; padding-bottom: 32px; }
  .case-hero h1 { font-size: 17vw; }
  .case-details { padding: 55px var(--pad) 90px; }
  .case-details-grid { grid-template-columns: 1fr; gap: 60px; padding-top: 48px; }
  .case-details dl > div { grid-template-columns: 90px 1fr; }
  .case-summary-lead { font-size: 9vw; }
  .case-summary-body { margin-top: 30px; font-size: 17px; }
  .case-film, .case-still { padding: 0 0 90px; }
  .case-gallery { grid-template-columns: 1fr; gap: 1px; padding: 0 0 90px; }
  .case-gallery .case-gallery-portrait { grid-column: 1; width: 76%; margin-right: var(--pad); }
  .case-quote { padding-bottom: 100px; }
  .case-quote blockquote { margin-top: 65px; font-size: 10vw; }
  .next-project a { min-height: 48svh; }
  .next-project strong { font-size: 15vw; }
  .content-hero { min-height: 76svh; grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; padding-top: 125px; }
  .content-hero h1, .content-hero .content-lead { grid-column: 1; }
  .content-hero h1 { align-self: end; font-size: 17vw; }
  .content-hero .content-lead { margin-top: 20px; font-size: 17px; }
  .content-section { padding-top: 85px; padding-bottom: 100px; }
  .content-section-head { grid-template-columns: 1fr; gap: 55px; margin-bottom: 65px; }
  .content-section-head > :last-child { grid-column: 1; }
  .content-section-head h2 { font-size: 13vw; }
  .service-row { grid-template-columns: 34px 1fr; gap: 18px; padding: 28px 0 38px; }
  .service-row p { grid-column: 2; }
  .process-grid { grid-template-columns: 1fr; }
  .process-step, .process-step + .process-step { min-height: 300px; padding: 25px 0 38px; border-right: 0; border-bottom: 1px solid rgba(8,8,8,.22); }
  .process-step:last-child { border-bottom: 0; }
  .editorial-image { padding: 0 0 90px; }
  .editorial-image img { min-height: 62svh; object-position: center; }
  .service-proof { grid-template-columns: 1fr; gap: 55px; padding: 0 var(--pad) 90px; }
  .service-proof figure + figure { padding-left: 0; }
  .service-hero { grid-template-columns: 1fr; gap: 58px; min-height: auto; padding-top: 125px; padding-bottom: 70px; }
  .service-hero-copy h1, .about-hero h1 { margin-top: 28px; font-size: 16vw; }
  .service-hero-frame img { aspect-ratio: 16 / 10; }
  .service-manifest, .service-fit, .founder-intro, .about-principles { grid-template-columns: 1fr; }
  .service-manifest { padding-top: 38px; padding-bottom: 72px; }
  .service-manifest-copy p:first-child { font-size: 10.5vw; }
  .service-cards { grid-template-columns: 1fr; }
  .service-cards article { min-height: 355px; border-right: 0; border-bottom: 1px solid var(--line); }
  .service-cards article:last-child { border-bottom: 0; }
  .service-cards h2 { font-size: 10vw; }
  .service-proof--wide { padding-top: 80px; }
  .service-process { grid-template-columns: 1fr; gap: 58px; padding-top: 82px; padding-bottom: 88px; }
  .service-process h2 { margin-top: 48px; font-size: 14vw; }
  .process-stack article { grid-template-columns: 1fr; gap: 18px; padding: 24px 0 30px; }
  .service-fit { padding-top: 40px; padding-bottom: 92px; }
  .service-fit ul { grid-template-columns: 1fr; }
  .service-fit li { min-height: 132px; font-size: 8vw; }
  .about-hero { grid-template-columns: 1fr; gap: 34px; min-height: auto; padding-top: 125px; padding-bottom: 70px; }
  .about-split { grid-template-columns: 1fr; gap: 62px; padding-top: 82px; padding-bottom: 90px; }
  .about-split img { aspect-ratio: 16 / 10; }
  .about-split-copy h2 { margin-top: 46px; font-size: 11vw; }
  .founder-section { padding-top: 82px; padding-bottom: 92px; }
  .founder-intro { margin-bottom: 62px; }
  .founder-intro h2 { grid-column: 1; font-size: 14vw; }
  .about-origin { padding-top: 82px; padding-bottom: 92px; }
  .about-principles { padding-top: 40px; padding-bottom: 92px; }
  .about-principles article { grid-template-columns: 34px 1fr; gap: 18px; padding: 26px 0 34px; }
  .about-principles h3 { font-size: 9.5vw; }
  .about-principles p { grid-column: 2; }
  .founders-grid { grid-template-columns: 1fr; margin-top: 65px; }
  .founder, .founder + .founder { min-height: 390px; padding: 25px 0 40px; border-right: 0; border-bottom: 1px solid var(--line); }
  .founder:last-child { border-bottom: 0; }
  .origin-grid { grid-template-columns: 1fr; gap: 60px; }
  .origin-grid h2 { font-size: 17vw; }
  .contact-address { font-size: 10vw; }
  .brief-grid { grid-template-columns: 1fr 1fr; }
  .project-form-section { grid-template-columns: 1fr; gap: 80px; padding-top: 85px; padding-bottom: 100px; }
  .project-form-heading h2 { margin-top: 55px; font-size: 13vw; }
  .project-form { grid-template-columns: 1fr; }
  .project-form label, .project-form .form-wide, .project-form button { grid-column: 1; }
  .brief-item, .brief-item + .brief-item { min-height: 220px; padding: 22px 18px 28px 0; border-bottom: 1px solid var(--line); }
  .brief-item:nth-child(even) { padding-left: 18px; border-right: 0; }
  .brief-item p { margin-top: 80px; }
  .legal-wrap { grid-template-columns: 1fr; gap: 60px; padding-top: 80px; }
  .error-page h1 { font-size: 21vw; }
  .aperture-media { filter: blur(6px); }
  .motion-media { filter: blur(6px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
  .aperture-media { clip-path: none; }
  .aperture-media, .aperture-type { filter: none; transform: none; }
  .aperture-type { font-stretch: inherit !important; }
  .motion-media { clip-path: none; filter: none; }
  .motion-type { filter: none; transform: none; font-stretch: inherit !important; }
}
