:root { --ink: #141210; --paper: #e8e2d6; --brass: #a48455; --mute: rgba(232,226,214,0.72); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--paper); font-family: Outfit, sans-serif; font-weight: 300; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
nav { position: fixed; inset: 0 0 auto 0; z-index: 10; display: flex; justify-content: space-between; align-items: center; padding: 22px 28px; mix-blend-mode: difference; }
/* Mark: image in nav; sizing lives in v3.css (.mark img). */
.mark { letter-spacing: 0; text-transform: none; font-size: 0; line-height: 0; }
.links { display: flex; gap: 22px; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; }
.hero, .panel { min-height: 100vh; min-height: 100svh; position: relative; display: flex; align-items: flex-end; padding: 48px 28px 56px; overflow: hidden; }
.frame, .shade { position: absolute; inset: 0; }
.frame { width: 100%; height: 100%; object-fit: cover; }
.shade { background: linear-gradient(to top, rgba(12,10,8,0.72) 0%, rgba(12,10,8,0.08) 46%, rgba(12,10,8,0.18) 100%); }
.copy { position: relative; z-index: 1; max-width: 640px; }
.kicker { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--brass); margin: 0 0 14px; }
h1, h2 { font-family: "Cormorant Garamond", serif; font-weight: 400; letter-spacing: 0.04em; margin: 0 0 16px; line-height: 0.92; }
h1 { font-size: clamp(64px, 12vw, 128px); }
h2 { font-size: clamp(48px, 8vw, 92px); }
.line { max-width: 38ch; font-size: 15px; line-height: 1.6; color: var(--mute); margin: 0 0 22px; }
.more { display: inline-flex; font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; border-bottom: 1px solid rgba(232,226,214,0.45); padding-bottom: 4px; }
.page { padding: 120px 28px 72px; max-width: 820px; }
footer { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 22px 28px 32px; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(232,226,214,0.55); }
.list { list-style: none; padding: 0; margin: 28px 0 0; }
.work-scroll { height: 100svh; overflow: hidden; }
.reel { height: 100svh; display: flex; align-items: center; gap: 28px; overflow-x: auto; padding: 96px 8vw 48px; scroll-snap-type: x mandatory; }
.frame-link { position: relative; flex: 0 0 auto; scroll-snap-align: center; color: inherit; }
.frame-link img { width: auto; max-height: 72vh; height: auto; object-fit: contain; display: block; }
.frame-link span { position: absolute; left: 0; bottom: -28px; font-family: "Cormorant Garamond", serif; font-size: 24px; }
.frame-link small { display: block; margin-top: 4px; font-family: Outfit, sans-serif; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: #a48455; }
.strip { display: flex; gap: 16px; overflow-x: auto; padding: 18px 0 28px; scroll-snap-type: x mandatory; }
.strip a { flex: 0 0 42vw; scroll-snap-align: center; color: inherit; }
.strip img { width: 100%; height: 33vh; object-fit: cover; display: block; }
.strip span { display: block; margin-top: 8px; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #8a7348; }
.case-gallery { max-width: 920px; margin: 48px auto 0; display: grid; gap: 72px; justify-items: center; }
.case-gallery a { display: block; width: min(100%, 820px); }
.case-gallery a:nth-child(3n) { width: min(72%, 620px); }
.case-gallery a:nth-child(4n) { width: min(86%, 740px); margin-left: 8%; }
.list span { font-family: Outfit, sans-serif; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; align-self: center; color: var(--brass); }
form { display: grid; gap: 14px; margin-top: 28px; }
input, textarea, select { background: transparent; border: 0; border-bottom: 1px solid rgba(232,226,214,0.35); color: var(--paper); font: inherit; padding: 12px 0; border-radius: 0; width: 100%; }
textarea { min-height: 96px; resize: vertical; }
button { justify-self: start; margin-top: 8px; background: none; color: inherit; border: 0; border-bottom: 1px solid rgba(232,226,214,0.45); font: inherit; letter-spacing: 0.24em; text-transform: uppercase; font-size: 11px; padding: 8px 0 4px; cursor: pointer; }
.case { padding: 108px 24px 24px; }
.case-head { max-width: 760px; margin: 0 auto 28px; }
.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 24px; margin: 18px 0 28px; padding: 16px 0 0; border-top: 1px solid rgba(232,226,214,0.28); }
.facts dt { font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--brass); margin: 0 0 6px; }
.facts dd { margin: 0; font-family: "Cormorant Garamond", serif; font-size: 24px; }
.essay p { font-size: 17px; line-height: 1.65; margin: 0 0 16px; max-width: 38rem; }
.case-gallery { max-width: 920px; margin: 48px auto 0; display: grid; gap: 72px; justify-items: center; }
.case-gallery a { display: block; width: min(100%, 820px); }
.case-gallery img { display: block; width: 100%; height: auto; }
.next-proj { max-width: 920px; margin: 28px auto 0; display: flex; justify-content: space-between; gap: 16px; padding-top: 18px; border-top: 1px solid rgba(232,226,214,0.18); font-family: "Cormorant Garamond", serif; font-size: 24px; }
.next-proj span { font-family: Outfit, sans-serif; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--brass); align-self: center; }

.axis, body.sheet-page { min-height: 100svh; }
.axis .page, body.sheet-page main.page, .portal-door {
  width: min(440px, calc(100% - 48px));
  margin: 0 auto;
  padding: 16vh 0 80px;
  max-width: 440px;
}
.axis h1, body.sheet-page h1, .portal-door h1 { text-align: center; font-size: clamp(52px, 8vw, 80px); }
.axis .kicker, .axis .line, body.sheet-page .kicker, body.sheet-page .line, .portal-door .kicker, .portal-door .line { text-align: center; margin-left: auto; margin-right: auto; }
.axis form, body.sheet-page form, .portal-door form { width: 100%; margin-top: 36px; display: grid; gap: 22px; }
.axis label, body.sheet-page label, .portal-door label { display: grid; gap: 8px; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--brass); }
.axis input, .axis textarea, .axis select, body.sheet-page input, body.sheet-page textarea, body.sheet-page select, .portal-door input, .portal-door select {
  width: 100%; font-size: 16px; letter-spacing: 0; text-transform: none; padding: 10px 0 8px; border-bottom: 1px solid rgba(232,226,214,0.4);
}
.axis button, body.sheet-page button, .portal-door button { justify-self: center; }
.preview-row { display: flex; gap: 28px; justify-content: center; width: 100%; flex-wrap: wrap; }
.portal-door { min-height: 100svh; display: grid; align-content: center; }

.opening { background: var(--paper); color: var(--ink); padding: 132px 28px 64px; }
.opening h1 { color: var(--ink); font-size: clamp(64px, 12vw, 128px); letter-spacing: 0.08em; }
.opening .line { color: #3c3832; max-width: 36ch; }
.opening nav, body:has(.opening) nav { mix-blend-mode: normal; color: var(--ink); }
.opening-frame { margin: 36px 0 0; max-width: 920px; }
.opening-frame img { display: block; width: 100%; height: auto; }
.opening-frame figcaption { margin-top: 12px; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: #8a7348; }
.home-index { padding: 88px 28px 48px; max-width: 920px; }
.home-index h2 { font-size: clamp(42px, 6vw, 72px); }
.studio { background: var(--paper); color: var(--ink); padding: 88px 28px; }
.studio h2 { color: var(--ink); }
.studio .line { color: #3c3832; }
.studio .more { border-color: rgba(20,18,16,0.4); color: var(--ink); }

@media (min-width: 980px) {
  nav { padding: 28px 56px; }
  .opening {
    display: grid;
    grid-template-columns: minmax(280px, 0.85fr) minmax(460px, 1.15fr);
    gap: 56px;
    align-items: end;
    min-height: 100svh;
    padding: 140px 64px 72px;
  }
  .opening-frame { margin: 0; max-width: none; }
  .home-index { max-width: 1080px; padding: 96px 64px 64px; }
  .case { padding: 128px 64px 48px; }
  .case-head, .case-gallery, .next-proj { max-width: 1080px; }
  .studio, .page { padding-left: 64px; padding-right: 64px; }
  .studio { padding-top: 96px; padding-bottom: 96px; }
}

@media (max-width: 760px) {
  nav { padding: 16px 18px; }
  .links { gap: 12px; font-size: 11px; }
  .opening { padding: 108px 18px 40px; }
  .home-index { padding: 48px 18px; }
  .list a, .home-index .list a { grid-template-columns: 1fr; gap: 4px; }
  .facts { grid-template-columns: 1fr; }
  .case { padding: 104px 18px 32px; }
  footer { padding: 18px; }
  .axis .page, body.sheet-page main.page, .portal-door { width: min(440px, calc(100% - 36px)); }
  .axis .page, body.sheet-page main.page { padding-top: 108px; }
  .frame-link { height: auto; }
  .frame-link img { width: 72vw; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
  .essay p { font-size: 17px; }
}
