:root {
  --ink: #11110f;
  --paper: #f3f2ee;
  --paper-strong: #fbfaf7;
  --paper-muted: #e7e6e1;
  --white: #ffffff;
  --line: rgba(17, 17, 15, 0.16);
  --line-strong: rgba(17, 17, 15, 0.38);
  --muted: #66645f;
  --soft: #8d8a83;
  --max: 1440px;
  --reading: 760px;
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 10px;
  --shadow: 0 30px 100px rgba(0, 0, 0, 0.18);
  --ease: cubic-bezier(.2,.75,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
::selection { color: var(--white); background: var(--ink); }

.skip-link {
  position: fixed;
  left: 16px;
  top: -80px;
  z-index: 999;
  padding: 10px 14px;
  color: var(--paper);
  background: var(--ink);
  border-radius: 8px;
  transition: top .2s ease;
}
.skip-link:focus { top: 16px; }

.site-shell { min-height: 100vh; }
.container { width: min(calc(100% - 48px), var(--max)); margin-inline: auto; }
.narrow { width: min(calc(100% - 48px), var(--reading)); margin-inline: auto; }

/* Global header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 80;
  height: 72px;
  background: rgba(243, 242, 238, .86);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}
.site-header__inner {
  width: min(calc(100% - 48px), var(--max));
  height: 100%;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
}
.brand {
  justify-self: start;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -.02em;
}
.main-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
}
.main-nav a {
  position: relative;
  padding-block: 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .01em;
}
.main-nav a::after {
  content: "";
  position: absolute;
  inset: auto 0 3px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .28s var(--ease);
}
.main-nav a:hover::after,
.main-nav a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}
.header-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 16px;
}
.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 999px;
}
.lang-switch button {
  min-width: 34px;
  padding: 6px 8px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
}
.lang-switch button.is-active {
  color: var(--paper);
  background: var(--ink);
}
.contact-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 13px;
  color: var(--paper);
  background: var(--ink);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 650;
}
.contact-pill svg { width: 13px; }
.menu-toggle {
  display: none;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}
.menu-toggle span,
.menu-toggle::before,
.menu-toggle::after {
  content: "";
  display: block;
  width: 16px;
  height: 1px;
  margin: 4px auto;
  background: var(--ink);
  transition: .25s ease;
}
.mobile-menu {
  position: fixed;
  inset: 72px 0 0;
  z-index: 70;
  display: none;
  padding: 40px 24px;
  background: var(--paper);
}
.mobile-menu.is-open { display: block; }
.mobile-menu nav { display: grid; }
.mobile-menu a {
  padding: 17px 0;
  border-bottom: 1px solid var(--line);
  font-size: clamp(30px, 8vw, 54px);
  line-height: 1;
  letter-spacing: -.05em;
}
.mobile-menu__bottom {
  margin-top: 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--muted);
  font-size: 12px;
}

/* Home masthead */
.home-masthead {
  position: relative;
  min-height: 100svh;
  padding: 30px 0;
  overflow: hidden;
  background: #bdbdb9;
}
.home-masthead::before {
  content: "";
  position: absolute;
  inset: -5%;
  background:
    linear-gradient(90deg, rgba(0,0,0,.08) 1px, transparent 1px),
    linear-gradient(rgba(0,0,0,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(12,12,11,.56), rgba(12,12,11,.08) 45%, rgba(12,12,11,.36)),
    url("/assets/images/manuel-parra-mono.webp") center 34% / cover no-repeat;
  background-size: 140px 100%, 100% 140px, cover, cover;
  filter: contrast(1.05);
  transform: scale(1.04);
}
.home-masthead::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(120deg, rgba(255,255,255,.12), transparent 35%),
    repeating-linear-gradient(90deg, transparent 0 18%, rgba(255,255,255,.10) 18% 18.2%, transparent 18.2% 34%);
  mix-blend-mode: screen;
  pointer-events: none;
}
.masthead-meta {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 64px), var(--max));
  margin: 0 auto 24px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  color: rgba(255,255,255,.86);
  font-size: 10px;
}
.masthead-meta span:nth-child(2) { text-align: center; }
.masthead-meta span:nth-child(3) { text-align: right; }
.hero-panel {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 64px), var(--max));
  min-height: calc(100svh - 108px);
  margin-inline: auto;
  padding: 20px 24px 18px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.58);
  border-radius: var(--radius-lg);
  background: rgba(247,246,242,.94);
  box-shadow: var(--shadow);
  backdrop-filter: blur(12px);
}
.hero-panel__top {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) auto;
  align-items: start;
  gap: 24px;
}
.hero-name {
  margin: 0;
  font-size: clamp(54px, 7.8vw, 138px);
  font-weight: 520;
  line-height: .84;
  letter-spacing: -.078em;
}
.hero-nav {
  display: flex;
  gap: 34px;
  padding-top: 4px;
  font-size: 11px;
  font-weight: 600;
}
.hero-nav a { padding: 6px 0; }
.hero-panel__center {
  display: grid;
  place-items: center;
  min-height: 300px;
  padding: 32px 0;
}
.hero-portrait {
  position: relative;
  width: clamp(150px, 16vw, 260px);
  aspect-ratio: .77;
  overflow: hidden;
  background: #d8d7d1;
}
.hero-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  filter: grayscale(1) contrast(1.08);
  transition: transform .8s var(--ease), filter .5s ease;
}
.hero-portrait:hover img { transform: scale(1.025); filter: grayscale(.15) contrast(1.02); }
.hero-portrait::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(17,17,15,.16);
  pointer-events: none;
}
.hero-panel__bottom {
  display: grid;
  grid-template-columns: 1fr 1.15fr 1.15fr;
  gap: 48px;
  padding-top: 14px;
  border-top: 1px solid var(--line-strong);
  font-size: 12px;
  line-height: 1.4;
}
.hero-panel__label { font-size: 10px; }
.hero-panel__bottom p { margin: 0; }

/* Editorial sections */
.section {
  padding: 120px 0;
  border-top: 1px solid var(--line);
}
.section--tight { padding: 84px 0; }
.section--dark {
  color: var(--paper);
  background: var(--ink);
  border-color: rgba(255,255,255,.18);
}
.section-header {
  display: grid;
  grid-template-columns: minmax(180px, .65fr) minmax(0, 1.8fr);
  gap: 48px;
  margin-bottom: 74px;
}
.kicker {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.section--dark .kicker { color: rgba(255,255,255,.54); }
.display-title {
  max-width: 1020px;
  margin: 0;
  font-size: clamp(46px, 6.2vw, 102px);
  font-weight: 480;
  line-height: .94;
  letter-spacing: -.067em;
}
.lede {
  max-width: 820px;
  margin: 24px 0 0;
  color: var(--muted);
  font-size: clamp(19px, 2vw, 27px);
  line-height: 1.32;
  letter-spacing: -.027em;
}
.section--dark .lede { color: rgba(255,255,255,.68); }

.project-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; }
.project-card {
  position: relative;
  grid-column: span 6;
  min-height: 560px;
  display: grid;
  grid-template-rows: 1fr auto;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--paper-strong);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.project-card--featured { grid-column: 1 / -1; min-height: 700px; }
.project-card:hover { transform: translateY(-5px); box-shadow: 0 24px 70px rgba(0,0,0,.08); }
.project-card__visual {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: #d9d8d3;
}
.project-card--featured .project-card__visual { min-height: 490px; }
.project-card__body {
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  gap: 24px;
  padding: 24px;
}
.project-card__title {
  margin: 0 0 7px;
  font-size: clamp(30px, 3vw, 52px);
  font-weight: 520;
  line-height: .98;
  letter-spacing: -.055em;
}
.project-card__desc { max-width: 620px; margin: 0; color: var(--muted); font-size: 14px; }
.project-card__meta { align-self: end; text-align: right; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }

.visual-bothside {
  background:
    radial-gradient(circle at 28% 52%, transparent 0 11%, rgba(17,17,15,.88) 11.3% 12%, transparent 12.3%),
    radial-gradient(circle at 28% 52%, #e9e7df 0 5%, #151513 5.5% 21%, #484741 21.4% 22%, #151513 22.4% 33%, transparent 33.5%),
    linear-gradient(135deg, #d9d8d1, #efeee9);
}
.visual-bothside::before {
  content: "A1";
  position: absolute;
  right: 7%;
  top: 9%;
  font-size: clamp(100px, 18vw, 260px);
  line-height: .8;
  font-weight: 500;
  letter-spacing: -.08em;
}
.visual-bothside::after {
  content: "Catalogue · Locate · Move";
  position: absolute;
  right: 8%;
  bottom: 9%;
  padding-top: 10px;
  width: 36%;
  border-top: 1px solid var(--line-strong);
  font-size: 11px;
}
.visual-enterprise {
  padding: 46px;
  background: #171715;
}
.data-window {
  height: 100%;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.22);
  background: #efeee9;
  box-shadow: 0 40px 70px rgba(0,0,0,.35);
  transform: rotate(-2deg);
}
.data-window__top { display: flex; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid var(--line); font-size: 9px; }
.data-row { display: grid; grid-template-columns: 1.4fr .8fr .8fr .5fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 10px; }
.data-pill { width: fit-content; padding: 3px 7px; border: 1px solid var(--line); border-radius: 999px; }
.visual-teleprompter {
  display: grid;
  place-items: center;
  padding: 42px;
  color: var(--paper);
  background: #11110f;
}
.prompt-window { width: min(88%, 700px); }
.prompt-kicker { margin-bottom: 30px; color: rgba(255,255,255,.45); font-size: 10px; }
.prompt-copy { font-size: clamp(22px, 3.2vw, 46px); line-height: 1.17; letter-spacing: -.04em; }
.prompt-copy span { color: rgba(255,255,255,.25); }
.prompt-controls { margin-top: 30px; display: grid; grid-template-columns: 80px 1fr 90px; gap: 16px; align-items: center; font-size: 9px; color: rgba(255,255,255,.55); }
.prompt-line { height: 1px; background: rgba(255,255,255,.28); }

.principles-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.principle { min-height: 310px; padding: 26px 24px 40px; border-right: 1px solid var(--line); }
.principle:last-child { border-right: 0; }
.principle__index { display: block; margin-bottom: 90px; color: var(--muted); font-size: 10px; }
.principle h3 { max-width: 360px; margin: 0 0 16px; font-size: clamp(28px, 3vw, 46px); font-weight: 520; line-height: .98; letter-spacing: -.05em; }
.principle p { max-width: 380px; margin: 0; color: var(--muted); font-size: 14px; }

.company-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  align-items: baseline;
  font-size: clamp(32px, 5vw, 78px);
  line-height: 1.1;
  letter-spacing: -.055em;
}
.company-line span { opacity: .22; transition: opacity .25s ease; }
.company-line span:hover { opacity: 1; }

.insight-list { border-top: 1px solid var(--line); }
.insight-row {
  display: grid;
  grid-template-columns: 110px 1fr 120px;
  gap: 24px;
  align-items: center;
  padding: 26px 0;
  border-bottom: 1px solid var(--line);
  transition: padding .3s var(--ease);
}
.insight-row:hover { padding-left: 12px; }
.insight-row__type, .insight-row__date { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.insight-row__date { text-align: right; }
.insight-row h3 { margin: 0; font-size: clamp(24px, 3vw, 44px); font-weight: 510; line-height: 1; letter-spacing: -.048em; }

.cta-block {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: end;
}
.cta-block h2 { max-width: 1050px; margin: 0; font-size: clamp(48px, 7vw, 112px); font-weight: 470; line-height: .9; letter-spacing: -.07em; }
.round-arrow {
  width: 94px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  transition: transform .35s var(--ease), background .35s ease, color .35s ease;
}
.round-arrow:hover { transform: rotate(45deg); color: var(--ink); background: var(--paper); }
.round-arrow svg { width: 28px; }

/* Page heroes */
.page-hero {
  padding: 92px 0 110px;
  border-bottom: 1px solid var(--line);
}
.page-hero__topline {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  margin-bottom: 84px;
  color: var(--muted);
  font-size: 10px;
}
.page-hero__topline span:nth-child(2) { text-align: center; }
.page-hero__topline span:nth-child(3) { text-align: right; }
.page-hero h1 {
  max-width: 1250px;
  margin: 0;
  font-size: clamp(62px, 9vw, 156px);
  font-weight: 470;
  line-height: .84;
  letter-spacing: -.078em;
}
.page-hero__lede {
  width: min(720px, 100%);
  margin: 44px 0 0 auto;
  color: var(--muted);
  font-size: clamp(20px, 2.3vw, 32px);
  line-height: 1.3;
  letter-spacing: -.03em;
}
.page-hero__meta {
  margin-top: 80px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line-strong);
}
.meta-cell { min-height: 116px; padding: 16px 18px 20px 0; border-right: 1px solid var(--line); }
.meta-cell:not(:first-child) { padding-left: 18px; }
.meta-cell:last-child { border-right: 0; }
.meta-cell__label { display: block; margin-bottom: 22px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.meta-cell__value { display: block; max-width: 280px; font-size: 13px; line-height: 1.35; }

/* Case study layout */
.case-visual {
  position: relative;
  min-height: 72vh;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: #d8d7d1;
}
.case-visual--bothside-landing {
  background: #11110f;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 40px;
}
.bothside-hero-landing-link {
  position: relative;
  display: block;
  width: 100%;
  max-width: 900px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 30px 60px rgba(0,0,0,0.5);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.bothside-hero-landing-link:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 40px 80px rgba(0,0,0,0.6);
}
.bothside-hero-landing-img {
  width: 100%;
  display: block;
  object-fit: cover;
}
.bothside-hero-landing-badge {
  position: absolute;
  bottom: 24px;
  right: 24px;
  background: rgba(255,255,255,0.92);
  color: #11110f;
  padding: 10px 16px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 650;
  box-shadow: 0 4px 15px rgba(0,0,0,0.25);
  backdrop-filter: blur(8px);
  transition: background 0.2s ease, transform 0.2s ease;
}
.bothside-hero-landing-link:hover .bothside-hero-landing-badge {
  background: #ffffff;
  transform: translateY(-2px);
}
.case-visual--enterprise {
  background:
    linear-gradient(90deg, rgba(17,17,15,.05) 1px, transparent 1px),
    linear-gradient(rgba(17,17,15,.05) 1px, transparent 1px),
    #dad9d4;
  background-size: 80px 80px;
}
.enterprise-stack { position: absolute; inset: 8% 7%; display: grid; grid-template-columns: 1.15fr .85fr; gap: 34px; }
.enterprise-panel { padding: 28px; border: 1px solid var(--line-strong); background: rgba(249,248,244,.93); box-shadow: 0 35px 70px rgba(0,0,0,.10); }
.enterprise-panel:nth-child(2) { transform: translateY(70px); }
.enterprise-panel h3 { margin: 0 0 38px; font-size: 14px; }
.enterprise-bars { display: grid; gap: 12px; }
.enterprise-bar { display: grid; grid-template-columns: 110px 1fr 42px; gap: 14px; align-items: center; font-size: 9px; }
.enterprise-bar i { display: block; height: 8px; background: var(--ink); opacity: .82; }
.case-visual--teleprompter { display: grid; place-items: center; padding: 7vw; color: var(--paper); background: #0f0f0e; }
.case-visual--teleprompter .prompt-copy { max-width: 960px; font-size: clamp(34px, 5.2vw, 84px); }

.case-layout {
  width: min(calc(100% - 48px), var(--max));
  margin-inline: auto;
  display: grid;
  grid-template-columns: 230px minmax(0, 780px) minmax(180px, 1fr);
  gap: 68px;
  padding: 110px 0;
}
.case-index { position: sticky; top: 104px; align-self: start; }
.case-index__title { margin-bottom: 22px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.case-index nav { display: grid; gap: 10px; }
.case-index a { color: var(--muted); font-size: 11px; transition: color .2s ease; }
.case-index a:hover { color: var(--ink); }
.case-content section { scroll-margin-top: 110px; padding: 0 0 96px; }
.case-content h2 {
  margin: 0 0 26px;
  font-size: clamp(38px, 4.7vw, 70px);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.055em;
}
.case-content h3 { margin: 40px 0 14px; font-size: 24px; font-weight: 550; letter-spacing: -.035em; }
.case-content p { margin: 0 0 1.2em; color: #3f3e3a; font-size: 18px; line-height: 1.72; }
.case-content ul { margin: 24px 0 30px; padding: 0; list-style: none; }
.case-content li { position: relative; padding: 11px 0 11px 25px; border-top: 1px solid var(--line); color: #3f3e3a; font-size: 16px; }
.case-content li:last-child { border-bottom: 1px solid var(--line); }
.case-content li::before { content: "↳"; position: absolute; left: 0; }
.case-content blockquote {
  margin: 44px 0;
  padding: 0 0 0 26px;
  border-left: 2px solid var(--ink);
  font-size: clamp(26px, 3vw, 42px);
  line-height: 1.16;
  letter-spacing: -.04em;
}
.case-aside { align-self: start; }
.aside-card { margin-bottom: 24px; padding: 18px; border-top: 1px solid var(--line-strong); }
.aside-card__label { margin-bottom: 24px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.aside-card__number { font-size: clamp(44px, 5vw, 76px); line-height: 1; letter-spacing: -.06em; }
.aside-card__copy { margin-top: 7px; color: var(--muted); font-size: 11px; }

.audio-card {
  margin: 12px 0 52px;
  padding: 22px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: var(--paper-strong);
}
.audio-card__top { display: grid; grid-template-columns: 1fr auto; gap: 20px; margin-bottom: 18px; }
.audio-card__title { margin: 0; font-size: 22px; letter-spacing: -.035em; }
.audio-card__desc { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.audio-card__badge { align-self: start; padding: 5px 8px; border: 1px solid var(--line); border-radius: 999px; font-size: 9px; }
.audio-card audio { width: 100%; }

.confidential-note {
  margin: 0 0 70px;
  padding: 28px;
  border: 1px solid var(--line-strong);
  background: var(--paper-strong);
}
.confidential-note strong { display: block; margin-bottom: 9px; font-size: 12px; }
.confidential-note p { margin: 0; color: var(--muted); font-size: 14px; }

.framework-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin: 40px 0; background: var(--line); border: 1px solid var(--line); }
.framework-card { min-height: 220px; padding: 24px; background: var(--paper); }
.framework-card__num { display: block; margin-bottom: 58px; color: var(--muted); font-size: 9px; }
.framework-card h4 { margin: 0 0 12px; font-size: 26px; font-weight: 520; line-height: 1.05; letter-spacing: -.045em; }
.framework-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }

.decision-flow { margin: 42px 0; border-top: 1px solid var(--line-strong); }
.decision-step { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.decision-step__num { color: var(--muted); font-size: 10px; }
.decision-step h4 { margin: 0 0 7px; font-size: 20px; letter-spacing: -.03em; }
.decision-step p { margin: 0; font-size: 14px; }

/* About */
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.about-portrait { min-height: 820px; overflow: hidden; background: #d8d7d1; }
.about-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 26%; filter: grayscale(.1); }
.about-copy { padding: 52px; border: 1px solid var(--line); background: var(--paper-strong); }
.about-copy h2 { margin: 0 0 34px; font-size: clamp(44px, 5vw, 78px); font-weight: 480; line-height: .94; letter-spacing: -.065em; }
.about-copy p { color: var(--muted); font-size: 18px; line-height: 1.65; }
.timeline { margin-top: 70px; border-top: 1px solid var(--line-strong); }
.timeline-row { display: grid; grid-template-columns: 140px 1fr; gap: 24px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.timeline-row__year { color: var(--muted); font-size: 10px; }
.timeline-row__text { font-size: 13px; }

/* Contact */
.contact-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: start; }
.contact-title { margin: 0; font-size: clamp(66px, 10vw, 160px); font-weight: 470; line-height: .82; letter-spacing: -.08em; }
.contact-side { padding-top: 10px; }
.contact-side p { max-width: 520px; margin: 0 0 36px; color: var(--muted); font-size: 20px; line-height: 1.45; }
.contact-links { display: grid; border-top: 1px solid var(--line-strong); }
.contact-link { display: grid; grid-template-columns: 1fr auto; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.contact-link svg { width: 18px; }

/* Footer */
.site-footer { padding: 38px 0; border-top: 1px solid var(--line); }
.site-footer__inner { width: min(calc(100% - 48px), var(--max)); margin-inline: auto; display: grid; grid-template-columns: 1fr auto 1fr; gap: 24px; align-items: end; }
.footer-brand { font-size: 13px; font-weight: 700; }
.footer-links { display: flex; gap: 22px; font-size: 11px; }
.footer-meta { justify-self: end; color: var(--muted); text-align: right; font-size: 10px; }

/* Utilities */
.text-link { display: inline-flex; gap: 8px; align-items: center; border-bottom: 1px solid currentColor; font-size: 12px; font-weight: 650; }
.text-link svg { width: 13px; }
.tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 20px; }
.tag { padding: 5px 8px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .04em; }
.divider { height: 1px; background: var(--line); }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1050px) {
  .main-nav, .contact-pill { display: none; }
  .site-header__inner { grid-template-columns: 1fr auto; }
  .header-actions { gap: 10px; }
  .menu-toggle { display: block; }
  .home-masthead { min-height: auto; }
  .hero-panel { min-height: 780px; }
  .hero-nav a { display: none; }
  .hero-panel__top { grid-template-columns: 1fr auto; }
  .hero-panel__bottom { grid-template-columns: 1fr 1fr; }
  .hero-panel__label { grid-column: 1 / -1; }
  .section-header { grid-template-columns: 1fr; gap: 18px; }
  .project-card, .project-card--featured { grid-column: 1 / -1; }
  .principles-grid { grid-template-columns: 1fr; }
  .principle { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .principle__index { margin-bottom: 50px; }
  .page-hero__meta { grid-template-columns: repeat(2, 1fr); }
  .meta-cell:nth-child(2) { border-right: 0; }
  .meta-cell:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .case-layout { grid-template-columns: 180px minmax(0, 1fr); gap: 44px; }
  .case-aside { display: none; }
  .about-grid, .contact-layout { grid-template-columns: 1fr; }
  .about-portrait { min-height: 640px; }
}

@media (max-width: 720px) {
  .container, .narrow, .site-header__inner, .site-footer__inner, .case-layout { width: min(calc(100% - 30px), var(--max)); }
  .site-header { height: 64px; }
  .mobile-menu { top: 64px; }
  .home-masthead { padding: 14px 0; }
  .masthead-meta { width: calc(100% - 28px); margin-bottom: 12px; font-size: 8px; }
  .masthead-meta span:nth-child(2) { display: none; }
  .masthead-meta { grid-template-columns: 1fr 1fr; }
  .hero-panel { width: calc(100% - 28px); min-height: calc(100svh - 62px); padding: 16px; border-radius: 18px; }
  .hero-name { font-size: clamp(49px, 17vw, 78px); line-height: .86; }
  .hero-panel__center { min-height: 240px; padding: 24px 0; }
  .hero-portrait { width: 138px; }
  .hero-panel__bottom { grid-template-columns: 1fr; gap: 14px; font-size: 11px; }
  .hero-panel__label { grid-column: auto; }
  .section { padding: 78px 0; }
  .section--tight { padding: 60px 0; }
  .section-header { margin-bottom: 42px; }
  .display-title { font-size: clamp(43px, 13vw, 72px); }
  .project-card, .project-card--featured { min-height: 520px; }
  .project-card__visual, .project-card--featured .project-card__visual { min-height: 340px; }
  .project-card__body { grid-template-columns: 1fr; }
  .project-card__meta { text-align: left; }
  .visual-bothside::before { right: 3%; top: 10%; font-size: 120px; }
  .visual-bothside::after { width: 66%; }
  .visual-enterprise { padding: 22px; }
  .data-row { grid-template-columns: 1.4fr .8fr .5fr; }
  .data-row span:nth-child(3) { display: none; }
  .insight-row { grid-template-columns: 1fr auto; gap: 12px; }
  .insight-row__type { grid-column: 1 / -1; }
  .insight-row__date { align-self: end; }
  .cta-block { grid-template-columns: 1fr; }
  .round-arrow { width: 74px; }
  .page-hero { padding: 64px 0 80px; }
  .page-hero__topline { grid-template-columns: 1fr 1fr; margin-bottom: 54px; }
  .page-hero__topline span:nth-child(2) { display: none; }
  .page-hero h1 { font-size: clamp(58px, 17vw, 92px); }
  .page-hero__lede { margin-top: 30px; font-size: 20px; }
  .page-hero__meta { grid-template-columns: 1fr; }
  .meta-cell, .meta-cell:not(:first-child) { padding: 14px 0 18px; border-right: 0; border-bottom: 1px solid var(--line); }
  .meta-cell:last-child { border-bottom: 0; }
  .case-visual--bothside-landing { padding: 20px; min-height: 40vh; }
  .bothside-hero-landing-badge { bottom: 12px; right: 12px; padding: 6px 12px; font-size: 9px; }
  .enterprise-stack { inset: 6%; grid-template-columns: 1fr; }
  .enterprise-panel:nth-child(2) { display: none; }
  .case-layout { display: block; padding: 72px 0; }
  .case-index { display: none; }
  .case-content section { padding-bottom: 70px; }
  .case-content p { font-size: 17px; }
  .framework-grid { grid-template-columns: 1fr; }
  .about-copy { padding: 30px 22px; }
  .about-portrait { min-height: 500px; }
  .timeline-row { grid-template-columns: 80px 1fr; }
  .contact-title { font-size: clamp(64px, 20vw, 105px); }
  .site-footer__inner { grid-template-columns: 1fr; }
  .footer-links { flex-wrap: wrap; }
  .footer-meta { justify-self: start; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Home fixed navigation
   The original navigation remains untouched in the hero. This compact header
   only appears once that navigation leaves the viewport. */
.site-header--home {
  position: fixed;
  right: 0;
  left: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(-100% - 1px));
  transition: opacity .28s var(--ease), transform .42s var(--ease);
  will-change: transform, opacity;
}
.site-header--home.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

section[id] {
  scroll-margin-top: 96px;
}

/* Lightbox Styles */
body.lightbox-open {
  overflow: hidden;
}
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(17, 17, 15, 0.95);
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}
.lightbox__close {
  position: absolute;
  top: 24px;
  right: 24px;
  background: transparent;
  border: none;
  color: var(--paper);
  font-size: 36px;
  cursor: pointer;
  z-index: 1010;
  padding: 8px;
  line-height: 1;
  transition: opacity 0.2s ease;
}
.lightbox__close:hover {
  opacity: 0.7;
}
.lightbox__content {
  max-width: 90%;
  max-height: 85%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.lightbox__image {
  max-width: 100%;
  max-height: 75vh;
  object-fit: contain;
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: 0 20px 50px rgba(0,0,0,0.3);
}
.lightbox__caption {
  color: var(--paper-muted);
  font-size: 13px;
  margin: 0;
  text-align: center;
  max-width: 600px;
}

/* Bothside Case Study Image Compositions */
.zoomable, .zoomable-landing {
  cursor: zoom-in;
  transition: opacity 0.2s ease;
}
.zoomable:hover, .zoomable-landing:hover {
  opacity: 0.92;
}

/* 1. Hero Composition */
.bothside-hero-composition {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 32px;
  height: 100%;
  padding: 40px;
  max-width: 960px;
  margin: 0 auto;
}
.hero-screenshot {
  width: clamp(120px, 14vw, 220px);
  aspect-ratio: 1242 / 2688;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 15px 45px rgba(0, 0, 0, 0.2);
  background: var(--ink);
}
.hero-screenshot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-screenshot--1 { transform: translateY(-30px) rotate(-4deg); }
.hero-screenshot--2 { transform: translateY(10px); z-index: 2; }
.hero-screenshot--3 { transform: translateY(-15px) rotate(4deg); }

/* 2. Product Steps Composition */
.bothside-product-composition {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin: 48px 0;
}
.product-step-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.product-step-img {
  aspect-ratio: 1242 / 2688;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--paper-strong);
}
.product-step-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-step-caption {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.4;
}

/* 3. Onboarding Sequence */
.bothside-onboarding-sequence {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin: 48px 0;
}
.sequence-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sequence-num {
  font-size: 10px;
  font-weight: 700;
  color: var(--muted);
  border-bottom: 1px solid var(--line);
  padding-bottom: 6px;
  width: fit-content;
}
.sequence-img {
  aspect-ratio: 1242 / 2688;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--line);
}
.sequence-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 4. Cataloging Section */
.bothside-cataloguing-layout {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 48px;
  align-items: center;
  margin: 56px 0;
}
.cataloguing-editorial-quote {
  font-size: clamp(24px, 2.8vw, 42px);
  line-height: 1.2;
  letter-spacing: -.03em;
  font-weight: 480;
  margin: 0;
  color: var(--ink);
}
.cataloguing-img-wrapper {
  aspect-ratio: 1242 / 2688;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--line);
  max-width: 280px;
  justify-self: end;
}
.cataloguing-img-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 5. Physical Organization Section */
.bothside-physical-org {
  margin: 56px 0;
}
.org-layout {
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;
  gap: 32px;
  align-items: end;
  background: var(--paper-strong);
  padding: 32px;
  border-radius: 16px;
  border: 1px solid var(--line);
}
.org-main-img {
  aspect-ratio: 1242 / 2688;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--line);
  max-height: 520px;
}
.org-main-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.org-sub-img {
  aspect-ratio: 1242 / 2688;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--line);
  max-height: 400px;
}
.org-sub-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.org-caption {
  font-size: 11px;
  color: var(--muted);
  margin-top: 14px;
  line-height: 1.4;
}

/* 6. Paywall Section */
.bothside-paywall-layout {
  display: flex;
  justify-content: center;
  margin: 48px 0;
}
.paywall-img-wrapper {
  aspect-ratio: 1242 / 2688;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--line);
  max-width: 320px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}
.paywall-img-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 7. Landing Section */
.bothside-landing-layout {
  margin: 56px 0;
}
.landing-preview-container {
  position: relative;
  max-height: 480px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--paper-strong);
}
.landing-preview-container img {
  width: 100%;
  object-fit: cover;
  object-position: top center;
}
.landing-fade-overlay {
  position: absolute;
  inset: auto 0 0;
  height: 120px;
  background: linear-gradient(to bottom, transparent, var(--paper));
  pointer-events: none;
}
.landing-actions {
  display: flex;
  justify-content: center;
  margin-top: 20px;
}
.landing-caption {
  font-size: 11px;
  color: var(--muted);
  margin-top: 14px;
  text-align: center;
  line-height: 1.4;
}

/* Responsive Overrides */
@media (max-width: 1050px) {
  .bothside-product-composition, .bothside-onboarding-sequence {
    gap: 16px;
  }
}

@media (max-width: 720px) {
  .bothside-hero-composition {
    gap: 16px;
    padding: 20px;
  }
  .hero-screenshot {
    width: 90px;
  }
  .hero-screenshot--1 { transform: translateY(-10px) rotate(-2deg); }
  .hero-screenshot--2 { transform: translateY(5px); }
  .hero-screenshot--3 { transform: translateY(-5px) rotate(2deg); }
  
  .bothside-product-composition, .bothside-onboarding-sequence {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .product-step-img, .sequence-img {
    max-height: 520px;
  }
  .bothside-cataloguing-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .cataloguing-img-wrapper {
    justify-self: center;
  }
  .org-layout {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 20px;
  }
  .org-main-img, .org-sub-img {
    max-height: 480px;
  }
  .landing-preview-container {
    max-height: 320px;
  }
}

/* Final CTA Block in Case Study */
.case-cta-block {
  margin-top: 80px;
  padding-top: 64px;
  border-top: 1px solid var(--line);
}
.case-cta-block h3 {
  font-size: clamp(28px, 3.5vw, 48px) !important;
  line-height: 1.15 !important;
  margin: 12px 0 20px !important;
  letter-spacing: -0.04em !important;
}
.case-cta-block .lede {
  font-size: 17px !important;
  color: var(--muted) !important;
  max-width: 620px;
  line-height: 1.6 !important;
}
