/* ============================================================
   CINEMATIC INNER-PAGE SYSTEM
   Direct replacement for the legacy inner-page enhancement layer.
   Enrique's existing Eras / Eras Bold / mono faces remain untouched.
   ============================================================ */
body.em-cinematic:not(.em-home) {
  --em-bg: #090908;
  --em-bg-soft: #0d0d0c;
  --em-panel: #12110f;
  --em-panel-raised: #171510;
  --em-ivory: #d8d0c4;
  --em-copy: #aaa298;
  --em-muted: #746f67;
  --em-gold: #b58a2d;
  --em-gold-bright: #c49a3d;
  --em-gold-soft: rgba(181, 138, 45, .22);
  --em-line: rgba(181, 138, 45, .22);
  --em-neutral-line: rgba(225, 215, 197, .10);
  --em-shell: min(1520px, calc(100vw - 64px));
  background: var(--em-bg) !important;
  color: var(--em-copy);
  overflow-x: hidden;
}
body.em-cinematic:not(.em-home)::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: .026;
  background-image: url("../img/patterns.png");
  background-size: 240px 320px;
  mix-blend-mode: soft-light;
}
body.em-cinematic:not(.em-home) #main_root,
body.em-cinematic:not(.em-home) #page_wrapper,
body.em-cinematic:not(.em-home) .wrapper {
  background: var(--em-bg) !important;
  color: var(--em-copy);
}
body.em-cinematic:not(.em-home) #main_root,
body.em-cinematic:not(.em-home) #site_menu_header,
body.em-cinematic:not(.em-home) #page_wrapper,
body.em-cinematic:not(.em-home) [data-dsn-animate] {
  opacity: 1 !important;
  transform: none !important;
}
body.em-cinematic .social-side,
body.em-cinematic .day-night,
body.em-cinematic #line_head { display: none !important; }
body.em-cinematic a { text-decoration: none; }
body.em-cinematic button,
body.em-cinematic input,
body.em-cinematic textarea { font-family: var(--body-font); }
body.em-cinematic:not(.em-home) h1,
body.em-cinematic:not(.em-home) h2,
body.em-cinematic:not(.em-home) h3,
body.em-cinematic:not(.em-home) h4,
body.em-cinematic:not(.em-home) h5,
body.em-cinematic:not(.em-home) h6 { color: var(--em-ivory); }
body.em-cinematic:not(.em-home) p { color: var(--em-copy); }
body.em-cinematic:not(.em-home) .section-margin,
body.em-cinematic:not(.em-home) .section-padding { margin: 0; padding: 0; }

.em-inner-shell {
  width: var(--em-shell, min(1520px, calc(100vw - 64px)));
  max-width: none;
  margin-inline: auto;
  box-sizing: border-box;
}
.em-kicker {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 0 0 17px;
  color: var(--em-gold) !important;
  font-family: var(--font-code);
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .28em;
  text-transform: uppercase;
}
.em-kicker::before {
  content: "";
  width: 34px;
  height: 1px;
  background: var(--em-gold);
  opacity: .82;
}
.em-section-heading {
  position: relative;
  margin-bottom: clamp(32px, 4vw, 58px);
  padding-top: 18px;
  border-top: 1px solid var(--em-line);
}
.em-section-heading::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 56px;
  height: 1px;
  background: var(--em-gold);
}
.em-section-heading h2 {
  margin: 0;
  font-family: var(--body-font) !important;
  font-size: clamp(32px, 3vw, 52px);
  font-weight: 300 !important;
  line-height: 1.08;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.em-section-heading > p,
.em-section-heading--split > p {
  max-width: 55ch;
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.72;
}
.em-section-heading--split {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 45px;
}
.em-outline-button,
.em-submit-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  min-height: 44px;
  padding: 0 21px;
  border: 1px solid rgba(181,138,45,.58);
  background: rgba(8,8,7,.22);
  color: var(--em-ivory) !important;
  font-family: var(--font-code);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  transition: color .25s ease, border-color .25s ease, background .25s ease, transform .25s ease;
}
.em-outline-button:hover,
.em-submit-button:hover {
  border-color: var(--em-gold-bright);
  background: rgba(181,138,45,.09);
  color: var(--em-gold-bright) !important;
  transform: translateY(-2px);
}
.em-text-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--em-gold) !important;
  font-family: var(--font-code);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.em-text-link i { transition: transform .25s ease; }
.em-text-link:hover i { transform: translateX(5px); }
.em-scroll-cue {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: 24px;
  display: flex;
  align-items: center;
  gap: 10px;
  transform: translateX(-50%);
  color: rgba(223,216,204,.66) !important;
  font-family: var(--font-code);
  font-size: 8px;
  letter-spacing: .22em;
}

/* Header overlays every cinematic page hero. */
body.em-cinematic:not(.em-home) #site_menu_header {
  display: flex !important;
  position: absolute !important;
  inset: 0 0 auto 0;
  width: 100%;
  height: 78px;
  padding: 0 38px;
  align-items: center;
  z-index: 100;
  background: linear-gradient(180deg, rgba(4,4,4,.78), rgba(4,4,4,.12) 72%, transparent);
  box-sizing: border-box;
}
body.em-cinematic:not(.em-home) #site_menu_header .main-logo {
  position: relative;
  inset: auto;
  z-index: 5;
}
body.em-cinematic:not(.em-home) #site_menu_header .main-logo img {
  width: 180px !important;
  max-width: none !important;
  height: auto !important;
}
body.em-cinematic:not(.em-home) #site_menu_header .em-header-links {
  display: flex;
  align-items: center;
  gap: 34px;
  margin-left: auto;
  padding-right: 84px;
  position: relative;
  z-index: 5;
}
body.em-cinematic:not(.em-home) #site_menu_header .em-header-links a {
  color: rgba(226,219,207,.78);
  font-family: var(--font-code);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .22em;
  transition: color .25s ease;
}
body.em-cinematic:not(.em-home) #site_menu_header .em-header-links a:hover { color: var(--em-gold); }
body.em-cinematic:not(.em-home) #site_menu_header .navbar-toggle {
  position: absolute !important;
  right: 38px !important;
  top: 25px !important;
  z-index: 7;
}
body.em-cinematic:not(.em-home) #site_menu_header .toggle-text {
  color: var(--em-ivory);
  font-family: var(--font-code);
  font-size: 9px;
  letter-spacing: .16em;
}
body.em-cinematic:not(.em-home) #site_menu_header .toggle-line {
  height: 1px;
  background: var(--em-gold) !important;
}
/* The legacy split-character animation overlaps Menu/Open/Close at small sizes.
   Keep the original editable labels, but render one crisp state label. */
body.em-cinematic #navbar_toggle .toggle-text {
  min-width: 48px;
  height: 14px;
  overflow: visible !important;
}
body.em-cinematic #navbar_toggle .toggle-text > div {
  display: none !important;
}
body.em-cinematic #navbar_toggle .toggle-text::before {
  content: attr(data-menu-label);
  display: block;
  color: inherit;
  font: inherit;
  line-height: 14px;
  white-space: nowrap;
  text-transform: uppercase;
}
body.em-cinematic #navbar_toggle.open .toggle-text::before {
  content: attr(data-close-label);
}

/* Inner landing heroes */
.em-inner-hero {
  position: relative;
  min-height: clamp(600px, 78vh, 820px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  background: #080808;
}
.em-inner-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: brightness(.62) contrast(1.1) saturate(.72);
  transform: scale(1.015);
}
.em-page-portfolio .em-inner-hero__image { object-position: center 43%; }
.em-page-contact .em-inner-hero__image { object-position: center 58%; }
.em-inner-hero__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 65% 42%, rgba(167,101,28,.11), transparent 34%),
    linear-gradient(90deg, rgba(5,5,5,.8), rgba(5,5,5,.27) 58%, rgba(5,5,5,.52)),
    linear-gradient(180deg, rgba(4,4,4,.1), rgba(5,5,5,.2) 45%, rgba(7,7,7,.9));
}
.em-inner-hero__content {
  position: relative;
  z-index: 3;
  padding: 0 0 clamp(92px, 10vh, 120px);
}
.em-inner-hero__content h1 {
  max-width: 13ch;
  margin: 0;
  font-family: var(--body-font) !important;
  font-size: clamp(55px, 7.5vw, 118px);
  font-weight: 300 !important;
  line-height: .95;
  letter-spacing: .055em;
  text-transform: uppercase;
  text-wrap: balance;
}
.em-inner-hero__body {
  max-width: 58ch;
  margin: 27px 0 30px;
  color: rgba(220,213,201,.78) !important;
  font-size: clamp(13px, 1.1vw, 17px);
  line-height: 1.65;
  letter-spacing: .035em;
}

/* About intro */
.em-about-intro {
  position: relative;
  min-height: 900px;
  padding: 128px 0 108px;
  overflow: hidden;
  background:
    radial-gradient(circle at 73% 30%, rgba(122,77,23,.10), transparent 36%),
    linear-gradient(180deg, #0b0b0a, #11100e 62%, #0b0b0a);
}
.em-about-intro::before {
  content: "";
  position: absolute;
  inset: 16% 0 0;
  opacity: .13;
  background-image:
    linear-gradient(rgba(181,138,45,.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(181,138,45,.13) 1px, transparent 1px);
  background-size: 38px 38px;
  mask-image: linear-gradient(90deg, transparent 2%, black 23%, black 86%, transparent 98%);
}
.em-about-intro__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(270px, 31%) minmax(0, 69%);
  gap: clamp(34px, 5vw, 84px);
  align-items: start;
}
.em-about-intro__portrait {
  position: relative;
  height: 705px;
  margin: 40px 0 0;
  overflow: hidden;
  border: 1px solid var(--em-line);
  background: #080808;
  box-shadow: 0 35px 70px rgba(0,0,0,.28);
}
.em-about-intro__portrait::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 46%, rgba(5,5,5,.84));
  pointer-events: none;
}
.em-about-intro__portrait > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: brightness(.9) contrast(1.06) saturate(.78);
}
.em-about-intro__socials {
  position: absolute;
  z-index: 3;
  left: 25px;
  bottom: 24px;
  display: flex;
  gap: 18px;
}
.em-about-intro__socials a { color: rgba(224,216,203,.7); font-size: 14px; }
.em-about-intro__socials a:hover { color: var(--em-gold); }
.em-about-intro__content { min-width: 0; }
.em-about-intro__content h1 {
  margin: 0;
  max-width: 11ch;
  font-family: var(--body-font) !important;
  font-size: clamp(55px, 6.25vw, 104px);
  font-weight: 300 !important;
  line-height: .96;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.em-about-intro__content h1 span,
.em-about-intro__content h1 strong {
  display: block;
  font: inherit;
  color: inherit;
}
.em-about-intro__content h1 strong { color: var(--em-ivory); font-weight: 500 !important; }
.em-about-intro__body {
  max-width: 57ch;
  margin: 25px 0 28px;
  font-size: 15px;
  line-height: 1.75;
}
.em-about-intro__collage {
  position: relative;
  height: 500px;
  margin-top: 58px;
}
.em-about-intro__photo {
  position: absolute;
  object-fit: cover;
  border: 1px solid var(--em-line);
  box-shadow: 0 25px 60px rgba(0,0,0,.34);
  filter: brightness(.78) contrast(1.08) saturate(.72);
  transition: filter .4s ease, transform .4s ease;
}
.em-about-intro__photo:hover { filter: brightness(.9) contrast(1.07) saturate(.85); z-index: 5; }
.em-about-intro__photo--one { left: 0; top: 70px; width: 43%; height: 360px; transform: rotate(-1deg); }
.em-about-intro__photo--two { left: 31%; top: 0; width: 38%; height: 335px; z-index: 2; transform: rotate(.7deg); }
.em-about-intro__photo--three { right: 0; top: 100px; width: 40%; height: 350px; transform: rotate(-.5deg); }

/* Shared About sections */
.em-about-section {
  position: relative;
  padding: clamp(72px, 8vw, 126px) 0;
  background: var(--em-bg);
  overflow: hidden;
}
.em-about-section:nth-of-type(even) { background: linear-gradient(180deg, #0f0f0e, #0b0b0a); }
.em-software-layout {
  display: grid;
  grid-template-columns: minmax(300px, 42%) minmax(0, 58%);
  gap: clamp(25px, 4vw, 66px);
  align-items: stretch;
}
.em-software-visual {
  position: relative;
  min-height: 480px;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--em-line);
}
.em-software-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5,5,5,.08), rgba(5,5,5,.66));
}
.em-software-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.78) contrast(1.08) saturate(.74);
}
.em-software-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  border-top: 1px solid var(--em-neutral-line);
  border-left: 1px solid var(--em-neutral-line);
}
.em-software-card {
  min-height: 190px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 25px;
  border-right: 1px solid var(--em-neutral-line);
  border-bottom: 1px solid var(--em-neutral-line);
  background: rgba(255,255,255,.008);
  transition: background .3s ease, border-color .3s ease;
}
.em-software-card:hover { background: rgba(181,138,45,.045); border-color: var(--em-line); }
.em-software-card img {
  width: 78px;
  height: 78px;
  object-fit: contain;
  filter: grayscale(1) brightness(1.18) sepia(.08);
  opacity: .76;
}
.em-software-card h3 {
  margin: 0;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .13em;
  text-align: center;
  text-transform: uppercase;
}
.em-industries-section::before,
.em-discipline-section::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .10;
  background-image:
    linear-gradient(rgba(181,138,45,.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(181,138,45,.13) 1px, transparent 1px);
  background-size: 38px 38px;
  mask-image: linear-gradient(90deg, transparent 3%, black 25%, black 75%, transparent 97%);
}
.em-industries-section .em-inner-shell,
.em-discipline-section .em-inner-shell { position: relative; z-index: 1; }
.em-industries-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  border-top: 1px solid var(--em-neutral-line);
  border-bottom: 1px solid var(--em-neutral-line);
}
.em-industry-card {
  min-height: 330px;
  padding: clamp(32px, 4vw, 58px);
  border-right: 1px solid var(--em-neutral-line);
  background: linear-gradient(135deg, rgba(255,255,255,.012), transparent);
}
.em-industry-card:last-child { border-right: 0; }
.em-industry-card > i { color: var(--em-gold); font-size: 37px; margin-bottom: 42px; }
.em-industry-card h3 {
  margin: 0 0 18px;
  font-size: clamp(18px,1.5vw,23px);
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.em-industry-card p { margin: 0; max-width: 37ch; font-size: 14px; line-height: 1.72; }
.em-discipline-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 18px;
}
.em-discipline-card {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  border: 1px solid var(--em-line);
  background: #080808;
}
.em-discipline-card::before {
  content: "";
  position: absolute;
  z-index: 4;
  left: -1px;
  top: -1px;
  width: 74px;
  height: 1px;
  background: var(--em-gold);
}
.em-discipline-card > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.65) contrast(1.08) saturate(.72);
  transition: transform .55s ease, filter .55s ease;
}
.em-discipline-card:hover > img { transform: scale(1.04); filter: brightness(.76) contrast(1.06) saturate(.82); }
.em-discipline-card__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(5,5,5,.08), rgba(5,5,5,.22) 45%, rgba(5,5,5,.88));
}
.em-discipline-card__content {
  position: absolute;
  z-index: 3;
  left: 32px;
  right: 32px;
  bottom: 35px;
}
.em-discipline-card__number {
  position: absolute;
  left: 0;
  bottom: 190px;
  color: rgba(221,210,190,.13);
  font-family: var(--heading-font);
  font-size: 76px;
  font-weight: 400;
  line-height: 1;
}
.em-discipline-card__content > i { display: block; margin-bottom: 22px; color: var(--em-gold); font-size: 38px; }
.em-discipline-card h3 { margin: 0 0 16px; font-size: 18px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.em-discipline-card ul { margin: 0; padding: 0; list-style: none; }
.em-discipline-card li { position: relative; margin-top: 7px; padding-left: 14px; color: var(--em-copy); font-size: 13px; line-height: 1.5; }
.em-discipline-card li::before { content: ""; position: absolute; left: 0; top: .7em; width: 5px; height: 1px; background: var(--em-gold); }

/* About featured bars — architectural radiused panels, not pills. */
.em-about-projects { background: radial-gradient(circle at 52% 25%, rgba(110,73,27,.06), transparent 42%), #0d0e0d; }
.em-about-projects__title h2 { display: flex; flex-direction: column; gap: 3px; }
.em-stagger-bars {
  display: grid;
  grid-template-columns: repeat(6,minmax(0,1fr));
  align-items: center;
  gap: clamp(12px, 1.15vw, 20px);
  min-height: 600px;
  padding: 10px 0 24px;
}
.em-stagger-bar {
  position: relative;
  height: 490px;
  overflow: hidden;
  border: 1px solid var(--em-line);
  border-radius: 16px;
  background: #080808;
  box-shadow: 0 18px 45px rgba(0,0,0,.28);
  transition: transform .38s ease, border-color .3s ease, box-shadow .3s ease;
}
.em-stagger-bar:nth-child(2) { transform: translateY(34px); }
.em-stagger-bar:nth-child(3) { transform: translateY(-24px); }
.em-stagger-bar:nth-child(4) { transform: translateY(28px); }
.em-stagger-bar:nth-child(5) { transform: translateY(-12px); }
.em-stagger-bar:nth-child(6) { transform: translateY(20px); }
.em-stagger-bar:hover { transform: translateY(-12px) !important; border-color: rgba(181,138,45,.68); box-shadow: 0 27px 65px rgba(0,0,0,.42); }
.em-stagger-bar img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.62) contrast(1.08) saturate(.72);
  transition: transform .55s ease, filter .55s ease;
}
.em-stagger-bar:hover img { transform: scale(1.055); filter: brightness(.75) contrast(1.08) saturate(.84); }
.em-stagger-bar__shade { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(5,5,5,.34),transparent 34%,rgba(5,5,5,.78)); }
.em-stagger-bar__index { position: absolute; z-index: 2; top: 20px; left: 22px; color: rgba(230,220,205,.57); font-family: var(--font-code); font-size: 9px; letter-spacing: .18em; }
.em-stagger-bar__title {
  position: absolute;
  z-index: 3;
  left: 10px;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  padding: 15px 8px;
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
  background: rgba(6,6,6,.64);
  color: var(--em-ivory);
  font-size: 12px;
  line-height: 1.28;
  letter-spacing: .06em;
  text-align: center;
  text-transform: uppercase;
}
.em-about-projects__note { margin: 8px 0 0; color: var(--em-muted) !important; font-size: 12px; text-align: center; }

/* About final CTA */
.em-about-cta {
  position: relative;
  min-height: 500px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #080808;
}
.em-about-cta > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.62) contrast(1.08) saturate(.7); }
.em-about-cta__veil { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(5,5,5,.86),rgba(5,5,5,.36) 65%,rgba(5,5,5,.65)),linear-gradient(180deg,rgba(5,5,5,.22),rgba(5,5,5,.66)); }
.em-about-cta__content { position: relative; z-index: 2; padding-block: 80px; }
.em-about-cta h2 { max-width: 13ch; margin: 0; font-family: var(--body-font) !important; font-size: clamp(44px,5.3vw,82px); font-weight: 300 !important; line-height: 1; text-transform: uppercase; }
.em-about-cta h2 span,.em-about-cta h2 strong { font: inherit; color: inherit; }
.em-about-cta h2 strong { font-weight: 500 !important; }
.em-about-cta__copy { max-width: 58ch; margin: 28px 0 30px; }
.em-about-cta__copy p { margin: 0 0 7px; font-size: 14px; line-height: 1.7; }

/* Portfolio page */
.em-portfolio-page {
  position: relative;
  padding: 78px 0 125px;
  background:
    radial-gradient(circle at 50% 12%, rgba(118,73,24,.07), transparent 26%),
    linear-gradient(180deg,#10100f,#090908);
}
.em-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 55px;
}
.em-filter button {
  min-height: 36px;
  padding: 0 15px;
  border: 1px solid var(--em-neutral-line);
  background: transparent;
  color: var(--em-muted);
  font-family: var(--font-code);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  cursor: pointer;
}
.em-filter button:hover,
.em-filter button.is-active { color: var(--em-gold); border-color: rgba(181,138,45,.52); background: rgba(181,138,45,.045); }
.em-portfolio-count { color: var(--em-muted); font-family: var(--font-code); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.em-portfolio-bars {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 72px 18px;
  padding: 20px 0 50px;
}
.em-portfolio-bar {
  position: relative;
  height: 470px;
  overflow: hidden;
  border: 1px solid var(--em-line);
  border-radius: 16px;
  background: #080808;
  box-shadow: 0 18px 45px rgba(0,0,0,.25);
  transition: transform .4s ease,border-color .3s ease,box-shadow .3s ease;
}
.em-portfolio-bar:nth-child(4n+2) { transform: translateY(34px); }
.em-portfolio-bar:nth-child(4n+3) { transform: translateY(-22px); }
.em-portfolio-bar:nth-child(4n+4) { transform: translateY(18px); }
.em-portfolio-bar:hover { transform: translateY(-10px) !important; border-color: rgba(181,138,45,.65); box-shadow: 0 28px 70px rgba(0,0,0,.42); }
.em-portfolio-bar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.63) contrast(1.08) saturate(.72); transition: transform .55s ease,filter .55s ease; }
.em-portfolio-bar:hover img { transform: scale(1.055); filter: brightness(.76) contrast(1.08) saturate(.84); }
.em-portfolio-bar__shade { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(5,5,5,.34),transparent 35%,rgba(5,5,5,.85)); }
.em-portfolio-bar__number { position: absolute; z-index: 2; top: 22px; left: 23px; color: rgba(229,218,201,.62); font-family: var(--font-code); font-size: 9px; letter-spacing: .18em; }
.em-portfolio-bar__content { position: absolute; z-index: 3; left: 24px; right: 24px; bottom: 26px; }
.em-portfolio-bar__tag { display: block; margin-bottom: 9px; color: var(--em-gold); font-family: var(--font-code); font-size: 8px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.em-portfolio-bar__content strong { display: block; color: var(--em-ivory); font-size: clamp(17px,1.4vw,22px); font-weight: 500; line-height: 1.16; letter-spacing: .035em; text-transform: uppercase; }
.em-portfolio-bar__content small { display: block; margin-top: 9px; color: rgba(216,208,195,.7); font-size: 11px; line-height: 1.45; }
.em-portfolio-bar.is-filtered,.em-poster.is-filtered { display: none; }
.em-credits { margin-top: 85px; }
.em-posters { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 35px 18px; }
.em-poster { min-width: 0; }
.em-poster__image { position: relative; aspect-ratio: 2/3; overflow: hidden; border: 1px solid var(--em-line); border-radius: 18px; background: #080808; }
.em-poster__image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 60%,rgba(5,5,5,.45)); pointer-events:none; }
.em-poster__image img { width:100%; height:100%; object-fit:cover; filter:brightness(.76) contrast(1.05) saturate(.78); transition:transform .45s ease,filter .45s ease; }
.em-poster:hover .em-poster__image img { transform:scale(1.035); filter:brightness(.88) contrast(1.04) saturate(.88); }
.em-poster-meta { padding: 15px 4px 0; }
.em-poster-meta > span { color:var(--em-gold); font-family:var(--font-code); font-size:7px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.em-poster-meta h3 { margin:6px 0 5px; font-size:14px; font-weight:500; line-height:1.25; text-transform:uppercase; }
.em-poster-meta p { margin:0; color:var(--em-muted) !important; font-size:10px; line-height:1.5; }

/* Reels */
.em-reels-page {
  position: relative;
  padding: 88px 0 135px;
  background:
    radial-gradient(circle at 50% 20%,rgba(125,77,25,.08),transparent 36%),
    linear-gradient(180deg,#10100f,#090908);
}
.em-reels-triptych {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 18px;
  align-items: center;
  min-height: 700px;
}
.em-reel-panel {
  position: relative;
  height: 620px;
  overflow: hidden;
  border: 1px solid var(--em-line);
  border-radius: 26px;
  background: #080808;
  box-shadow: 0 24px 60px rgba(0,0,0,.3);
  transition: transform .4s ease,border-color .3s ease;
}
.em-reel-panel:nth-child(1) { transform: translateY(-28px); }
.em-reel-panel:nth-child(2) { transform: translateY(26px); }
.em-reel-panel:nth-child(3) { transform: translateY(-10px); }
.em-reel-panel:hover { transform: translateY(-12px); border-color: rgba(181,138,45,.68); }
.em-reel-stage { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:#080808; cursor:pointer; }
.em-reel-stage > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.62) contrast(1.08) saturate(.72); transition:transform .55s ease,filter .55s ease; }
.em-reel-panel:hover .em-reel-stage > img { transform:scale(1.045); filter:brightness(.75) contrast(1.08) saturate(.84); }
.em-reel-panel__veil { position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,5,5,.25),transparent 36%,rgba(5,5,5,.87)); }
.em-reel-play { position:absolute; z-index:4; top:46%; left:50%; width:66px; height:66px; display:grid; place-items:center; transform:translate(-50%,-50%); border:1px solid rgba(181,138,45,.62); background:rgba(5,5,5,.46); color:var(--em-ivory); border-radius:50%; transition:background .3s ease,color .3s ease,transform .3s ease; }
.em-reel-panel:hover .em-reel-play { background:var(--em-gold); color:#0b0b0a; transform:translate(-50%,-50%) scale(1.06); }
.em-reel-panel__index { position:absolute; z-index:3; top:24px; left:25px; color:rgba(229,219,204,.58); font-family:var(--font-code); font-size:9px; letter-spacing:.18em; }
.em-reel-panel__content { position:absolute; z-index:3; left:28px; right:28px; bottom:28px; pointer-events:none; }
.em-reel-panel__content h2 { margin:0; font-size:23px; font-weight:500; letter-spacing:.07em; text-transform:uppercase; }
.em-reel-panel__content p { margin:10px 0 0; color:rgba(218,209,194,.72) !important; font-size:12px; line-height:1.5; }
.em-reel-stage iframe { position:absolute; inset:0; z-index:8; width:100%; height:100%; border:0; }
.em-reel-stage.is-playing .em-reel-play,.em-reel-stage.is-playing > img,.em-reel-stage.is-playing .em-reel-panel__veil { opacity:0; }

/* Contact */
.em-contact-page {
  padding: 90px 0 125px;
  background: radial-gradient(circle at 75% 30%,rgba(119,73,22,.09),transparent 34%),linear-gradient(180deg,#10100f,#090908);
}
.em-contact-page__grid { display:grid; grid-template-columns:minmax(0,58%) minmax(320px,42%); border:1px solid var(--em-line); }
.em-contact-form-card { padding: clamp(36px,5vw,72px); border-right:1px solid var(--em-neutral-line); background:rgba(12,12,11,.9); }
.em-contact-form-card h2 { margin:0 0 46px; font-family:var(--body-font) !important; font-size:clamp(38px,4.3vw,68px); font-weight:300 !important; line-height:1.02; text-transform:uppercase; }
.em-contact-form-card h2 span,.em-contact-form-card h2 strong { font:inherit; color:inherit; }
.em-contact-form-card h2 strong { font-weight:500 !important; }
.em-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 22px; }
.em-form-grid label { display:block; color:var(--em-muted); font-family:var(--font-code); font-size:8px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.em-form-grid input,.em-form-grid textarea { width:100%; margin-top:10px; padding:14px 0; border:0; border-bottom:1px solid var(--em-neutral-line); outline:0; background:transparent; color:var(--em-ivory); font-size:14px; line-height:1.5; box-sizing:border-box; transition:border-color .25s ease; }
.em-form-grid input:focus,.em-form-grid textarea:focus { border-color:var(--em-gold); }
.em-form-grid textarea { resize:vertical; min-height:130px; }
.em-form-grid__message { grid-column:1/-1; }
.em-submit-button { margin-top:30px; cursor:pointer; }
#error { min-height:20px; margin-top:10px; color:#b88; font-size:12px; }
.em-contact-info-card { position:relative; min-height:690px; overflow:hidden; }
.em-contact-info-card > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:brightness(.62) contrast(1.08) saturate(.72); }
.em-contact-info-card__veil { position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,5,5,.22),rgba(5,5,5,.82)); }
.em-contact-info-card__content { position:absolute; z-index:2; left:36px; right:36px; bottom:40px; display:grid; gap:24px; }
.em-contact-info-card__content > div { display:grid; grid-template-columns:28px 1fr; gap:4px 13px; padding-top:20px; border-top:1px solid rgba(255,255,255,.1); }
.em-contact-info-card__content i { grid-row:1/3; color:var(--em-gold); font-size:17px; }
.em-contact-info-card__content span { color:var(--em-muted); font-family:var(--font-code); font-size:8px; letter-spacing:.17em; text-transform:uppercase; }
.em-contact-info-card__content strong { color:var(--em-ivory); font-size:15px; font-weight:400; }

/* Project pages */
.em-project-hero {
  position:relative;
  min-height:clamp(650px,84vh,900px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#070707;
}
.em-project-hero__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:brightness(.7) contrast(1.08) saturate(.78); transform:scale(1.01); }
.em-project-hero__veil { position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(5,5,5,.73),rgba(5,5,5,.13) 68%,rgba(5,5,5,.35)),linear-gradient(180deg,rgba(5,5,5,.08),rgba(5,5,5,.12) 48%,rgba(5,5,5,.92)); }
.em-project-hero__content { position:relative; z-index:3; padding-bottom:clamp(88px,10vh,120px); }
.em-project-hero__eyebrow { display:flex; gap:18px; align-items:center; margin-bottom:17px; color:var(--em-gold); font-family:var(--font-code); font-size:9px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.em-project-hero__eyebrow span+span::before { content:"/"; margin-right:18px; color:var(--em-muted); }
.em-project-hero h1 { max-width:15ch; margin:0; font-family:var(--body-font) !important; font-size:clamp(53px,7vw,112px); font-weight:300 !important; line-height:.94; letter-spacing:.035em; text-transform:uppercase; text-wrap:balance; }
.em-project-hero__role { max-width:52ch; margin:22px 0 0; color:rgba(223,214,200,.78) !important; font-size:15px; line-height:1.6; }
.em-project-hero__meta { display:flex; flex-wrap:wrap; gap:12px 45px; margin-top:34px; padding-top:22px; border-top:1px solid rgba(255,255,255,.11); max-width:1050px; }
.em-project-hero__meta span { display:grid; gap:5px; }
.em-project-hero__meta b { color:var(--em-gold); font-family:var(--font-code); font-size:7px; letter-spacing:.17em; text-transform:uppercase; }
.em-project-hero__meta i { color:rgba(226,218,205,.78); font-family:var(--body-font); font-size:12px; font-style:normal; }
.em-record { padding:clamp(80px,9vw,140px) 0; background:linear-gradient(180deg,#11100f,#0a0a09); }
.em-record-grid { display:grid; grid-template-columns:minmax(0,64%) minmax(300px,36%); gap:clamp(45px,7vw,105px); }
.em-record-main { min-width:0; }
.em-record-logline { max-width:29ch; margin:0 0 55px; color:var(--em-ivory) !important; font-size:clamp(25px,2.6vw,42px); font-weight:300; line-height:1.28; }
.em-record-block { padding-top:28px; border-top:1px solid var(--em-line); }
.em-record-block h2 { margin:0 0 19px; font-family:var(--body-font) !important; font-size:clamp(25px,2.4vw,38px); font-weight:300 !important; letter-spacing:.08em; text-transform:uppercase; }
.em-record-block p { max-width:68ch; margin:0; font-size:15px; line-height:1.8; }
.em-record-facts { border-top:1px solid var(--em-neutral-line); }
.em-fact { display:grid; grid-template-columns:110px 1fr; gap:20px; padding:20px 0; border-bottom:1px solid var(--em-neutral-line); }
.em-fact span { color:var(--em-gold); font-family:var(--font-code); font-size:8px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.em-fact strong { color:var(--em-ivory); font-size:13px; font-weight:400; line-height:1.45; }
.em-project-gallery { position:relative; padding:25px 0 clamp(85px,9vw,135px); background:#0a0a09; }
.em-project-gallery__grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:36px 18px; }
.em-project-frame { grid-column:span 6; margin:0; }
.em-project-frame:nth-child(3n+1):last-child { grid-column:2/span 10; }
.em-project-frame a { position:relative; display:block; aspect-ratio:16/9; overflow:hidden; border:1px solid var(--em-line); background:#080808; }
.em-project-frame a::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 65%,rgba(5,5,5,.28)); pointer-events:none; }
.em-project-frame img { width:100%; height:100%; object-fit:cover; filter:brightness(.84) contrast(1.05) saturate(.82); transition:transform .5s ease,filter .5s ease; }
.em-project-frame:hover img { transform:scale(1.025); filter:brightness(.94) contrast(1.04) saturate(.92); }
.em-project-frame figcaption { display:flex; align-items:center; gap:17px; margin-top:13px; color:var(--em-muted); font-size:11px; line-height:1.5; }
.em-project-frame__index { color:var(--em-gold); font-family:var(--font-code); font-size:8px; letter-spacing:.16em; }
.em-projnav { display:grid; grid-template-columns:1fr 1fr; padding:0; border-top:1px solid var(--em-neutral-line); border-bottom:1px solid var(--em-neutral-line); }
.em-projnav a { position:relative; min-height:190px; display:flex; flex-direction:column; justify-content:center; padding:32px 45px; color:var(--em-copy); transition:background .3s ease; }
.em-projnav a:first-child { border-right:1px solid var(--em-neutral-line); }
.em-projnav a:hover { background:rgba(181,138,45,.045); }
.em-projnav a > span { color:var(--em-gold); font-family:var(--font-code); font-size:8px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.em-projnav strong { margin-top:12px; color:var(--em-ivory); font-size:clamp(18px,1.8vw,28px); font-weight:400; line-height:1.25; text-transform:uppercase; }
.em-projnav i { position:absolute; bottom:32px; color:var(--em-gold); }
.em-prev i { left:45px; }.em-next { text-align:right; align-items:flex-end; }.em-next i { right:45px; }

/* Global cinematic close and compact footer */
.em-global-contact {
  position:relative;
  min-height:330px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:#080808;
}
.em-global-contact > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; filter:brightness(.72) contrast(1.08) saturate(.74); }
.em-global-contact__veil { position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(4,4,4,.65),rgba(4,4,4,.2) 45%,rgba(4,4,4,.58)),linear-gradient(180deg,rgba(4,4,4,.46),rgba(4,4,4,.18) 48%,rgba(4,4,4,.76)); }
.em-global-contact__inner { position:relative; z-index:2; text-align:center; padding-block:58px; }
.em-global-contact__inner .em-kicker { justify-content:center; }
.em-global-contact h2 { margin:0 0 25px; color:var(--em-ivory); font-family:var(--body-font) !important; font-size:clamp(23px,2.4vw,38px); font-weight:300 !important; letter-spacing:.2em; text-transform:uppercase; }
.em-cinematic-footer { background:#080807 !important; border-top:1px solid rgba(255,255,255,.06); }
.em-cinematic-footer__row { min-height:92px; display:grid; grid-template-columns:1.3fr auto auto; align-items:center; gap:40px; }
.em-cinematic-footer__brand { display:flex; align-items:center; gap:22px; }
.em-cinematic-footer__brand img { width:132px; height:auto; }
.em-cinematic-footer__brand p { margin:0; color:var(--em-muted) !important; font-size:8px; line-height:1.5; }
.em-cinematic-footer__brand p a { color:#8f887f; }
.em-cinematic-footer__nav { display:flex; gap:24px; }
.em-cinematic-footer__nav a { color:#8e887e; font-family:var(--font-code); font-size:8px; font-weight:700; letter-spacing:.14em; }
.em-cinematic-footer__nav a:hover { color:var(--em-gold); }
.em-cinematic-footer__socials { display:flex; gap:18px; }
.em-cinematic-footer__socials a { color:#9f978c; font-size:12px; }
.em-cinematic-footer__socials a:hover { color:var(--em-gold); }

@media (max-width: 1100px) {
  body.em-cinematic:not(.em-home) { --em-shell: min(100% - 42px, 1040px); }
  .em-about-intro { min-height:0; }
  .em-about-intro__grid { grid-template-columns:34% 66%; gap:35px; }
  .em-about-intro__portrait { height:640px; }
  .em-about-intro__content h1 { font-size:68px; }
  .em-about-intro__collage { height:425px; }
  .em-about-intro__photo--one { height:305px; }
  .em-about-intro__photo--two { height:285px; }
  .em-about-intro__photo--three { height:295px; }
  .em-stagger-bars { grid-template-columns:repeat(3,minmax(0,1fr)); min-height:auto; gap:65px 18px; }
  .em-stagger-bar,.em-stagger-bar:nth-child(n) { height:480px; }
  .em-stagger-bar:nth-child(3n+2) { transform:translateY(28px); }
  .em-stagger-bar:nth-child(3n+3) { transform:translateY(-18px); }
  .em-portfolio-bars { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .em-portfolio-bar:nth-child(n) { transform:none; }
  .em-portfolio-bar:nth-child(3n+2) { transform:translateY(28px); }
  .em-portfolio-bar:nth-child(3n+3) { transform:translateY(-17px); }
  .em-posters { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .em-reel-panel { height:550px; }
  .em-contact-page__grid { grid-template-columns:60% 40%; }
}

@media (max-width: 820px) {
  body.em-cinematic:not(.em-home) { --em-shell: calc(100% - 32px); }
  body.em-cinematic:not(.em-home) #site_menu_header { padding-inline:20px; }
  body.em-cinematic:not(.em-home) #site_menu_header .main-logo img { width:132px !important; }
  body.em-cinematic:not(.em-home) #site_menu_header .em-header-links { padding-right:70px; gap:20px; }
  body.em-cinematic:not(.em-home) #site_menu_header .navbar-toggle { right:20px !important; }
  .em-section-heading--split { display:block; }
  .em-section-heading--split > p,.em-section-heading--split > .em-text-link,.em-section-heading--split > span { margin-top:18px; }
  .em-about-intro { padding:105px 0 75px; }
  .em-about-intro__grid { grid-template-columns:1fr; }
  .em-about-intro__portrait { width:min(480px,100%); height:610px; margin:0 auto; }
  .em-about-intro__content h1 { margin-top:15px; max-width:none; }
  .em-about-intro__collage { height:500px; }
  .em-software-layout { grid-template-columns:1fr; }
  .em-software-visual { min-height:380px; }
  .em-industries-grid,.em-discipline-grid { grid-template-columns:1fr; }
  .em-industry-card { min-height:0; border-right:0; border-bottom:1px solid var(--em-neutral-line); }
  .em-industry-card:last-child { border-bottom:0; }
  .em-discipline-card { min-height:460px; }
  .em-portfolio-bars { grid-template-columns:repeat(2,minmax(0,1fr)); gap:70px 16px; }
  .em-portfolio-bar:nth-child(n) { transform:none; }
  .em-portfolio-bar:nth-child(even) { transform:translateY(28px); }
  .em-posters { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .em-reels-triptych { grid-template-columns:1fr; min-height:0; gap:28px; }
  .em-reel-panel,.em-reel-panel:nth-child(n) { height:560px; transform:none; }
  .em-reel-panel:nth-child(even) { transform:translateX(18px); }
  .em-contact-page__grid { grid-template-columns:1fr; }
  .em-contact-form-card { border-right:0; border-bottom:1px solid var(--em-neutral-line); }
  .em-contact-info-card { min-height:460px; }
  .em-record-grid { grid-template-columns:1fr; }
  .em-project-gallery__grid { display:block; }
  .em-project-frame { margin-bottom:32px; }
  .em-cinematic-footer__row { grid-template-columns:1fr auto; padding-block:22px; }
  .em-cinematic-footer__nav { display:none; }
}

@media (max-width: 560px) {
  body.em-cinematic:not(.em-home) { --em-shell: calc(100% - 28px); }
  body.em-cinematic:not(.em-home) #site_menu_header .em-header-links { display:none; }
  .em-kicker { font-size:8px; letter-spacing:.23em; }
  .em-section-heading h2 { font-size:31px; letter-spacing:.11em; }
  .em-inner-hero { min-height:620px; }
  .em-inner-hero__content { padding-bottom:82px; }
  .em-inner-hero__content h1 { font-size:47px; line-height:1; }
  .em-inner-hero__body { font-size:13px; }
  .em-about-intro__portrait { height:510px; }
  .em-about-intro__content h1 { font-size:48px; }
  .em-about-intro__body { font-size:13px; }
  .em-about-intro__collage { height:auto; display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:42px; }
  .em-about-intro__photo,.em-about-intro__photo:nth-child(n) { position:relative; inset:auto; width:100%; height:190px; transform:none; }
  .em-about-intro__photo--three { grid-column:1/-1; height:220px !important; }
  .em-software-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .em-software-card { min-height:145px; padding:18px 10px; }
  .em-software-card img { width:55px; height:55px; }
  .em-industry-card { padding:34px 10px; }
  .em-discipline-card { min-height:410px; }
  .em-stagger-bars { display:flex; min-height:455px; overflow-x:auto; gap:12px; padding-bottom:14px; scroll-snap-type:x mandatory; }
  .em-stagger-bar,.em-stagger-bar:nth-child(n) { flex:0 0 62vw; height:420px; transform:none; scroll-snap-align:start; border-radius:16px; }
  .em-about-cta { min-height:440px; }
  .em-about-cta h2 { font-size:40px; }
  .em-portfolio-page { padding-top:58px; }
  .em-filter { gap:6px; }
  .em-filter button { padding-inline:11px; }
  .em-portfolio-bars { grid-template-columns:repeat(2,minmax(0,1fr)); gap:46px 10px; }
  .em-portfolio-bar,.em-portfolio-bar:nth-child(n) { height:360px; transform:none; border-radius:15px; }
  .em-portfolio-bar:nth-child(even) { transform:translateY(20px); }
  .em-portfolio-bar__content { left:15px; right:15px; bottom:18px; }
  .em-portfolio-bar__content strong { font-size:14px; }
  .em-posters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 10px; }
  .em-poster__image { border-radius:14px; }
  .em-reels-page { padding-top:58px; }
  .em-reel-panel,.em-reel-panel:nth-child(n) { height:470px; transform:none; border-radius:22px; }
  .em-contact-page { padding-top:55px; }
  .em-contact-form-card { padding:32px 20px; }
  .em-contact-form-card h2 { font-size:38px; }
  .em-form-grid { grid-template-columns:1fr; }
  .em-form-grid__message { grid-column:auto; }
  .em-contact-info-card { min-height:390px; }
  .em-project-hero { min-height:680px; }
  .em-project-hero__content { padding-bottom:80px; }
  .em-project-hero h1 { font-size:48px; }
  .em-project-hero__meta { display:grid; grid-template-columns:repeat(2,1fr); gap:15px; }
  .em-record { padding:68px 0; }
  .em-record-logline { font-size:25px; }
  .em-fact { grid-template-columns:90px 1fr; }
  .em-projnav { grid-template-columns:1fr; }
  .em-projnav a { min-height:150px; padding:28px 22px; }
  .em-projnav a:first-child { border-right:0; border-bottom:1px solid var(--em-neutral-line); }
  .em-prev i { left:22px; }.em-next i { right:22px; }
  .em-global-contact { min-height:300px; }
  .em-global-contact h2 { line-height:1.45; }
  .em-cinematic-footer__row { grid-template-columns:1fr; gap:18px; text-align:center; }
  .em-cinematic-footer__brand { flex-direction:column; gap:10px; }
  .em-cinematic-footer__socials { justify-content:center; }
}


/* ============================================================
   HOME CINEMATIC REBUILD — target-faithful 2026 visual system
   ============================================================ */
body.em-home {
  --em-bg: #0a0a09;
  --em-panel: #12110f;
  --em-panel-2: #0d0d0c;
  --em-ivory: #d7d0c4;
  --em-copy: #a39c92;
  --em-muted: #6f6a62;
  --em-gold: #b58a2d;
  --em-gold-soft: rgba(181, 138, 45, .24);
  --em-line: rgba(181, 138, 45, .19);
  --em-neutral-line: rgba(225, 215, 197, .09);
  --em-shell: min(1340px, calc(100vw - 56px));
  background: var(--em-bg);
  color: var(--em-copy);
  overflow-x: hidden;
}
body.em-home::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 10000;
  pointer-events: none;
  opacity: .035;
  background-image: url("../img/patterns.png");
  background-size: 240px 320px;
  mix-blend-mode: soft-light;
}
body.em-home #main_root,
body.em-home #dsn-scrollbar,
body.em-home #page_wrapper { background: var(--em-bg); }
body.em-home #dsn_footer,
body.em-home .social-side,
body.em-home .day-night { display: none !important; }
body.em-home .em-wide-shell { width: var(--em-shell); margin-inline: auto; }
body.em-home a { text-decoration: none; }
body.em-home button { font-family: inherit; }
body.em-home .heading-color,
body.em-home h1,
body.em-home h2,
body.em-home h3 { color: var(--em-ivory); }
body.em-home.em-modal-open { overflow: hidden; }

/* Header floating inside the hero */
body.em-home #site_menu_header {
  display: flex !important;
  position: absolute !important;
  inset: 0 0 auto 0;
  width: 100%;
  height: 76px;
  padding: 0 38px;
  align-items: center;
  z-index: 80;
  background: linear-gradient(180deg, rgba(5,5,5,.72), rgba(5,5,5,0));
  box-sizing: border-box;
}
body.em-home #site_menu_header .main-logo { position: relative; inset: auto; z-index: 4; }
body.em-home #site_menu_header .main-logo img {
  width: 180px !important;
  max-width: none !important;
  height: auto !important;
}
body.em-home #site_menu_header .em-header-links {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 34px;
  padding-right: 84px;
  position: relative;
  z-index: 4;
}
body.em-home #site_menu_header .em-header-links a {
  color: rgba(226,219,207,.76);
  font-family: var(--font-code);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .22em;
  transition: color .25s ease;
}
body.em-home #site_menu_header .em-header-links a:hover { color: var(--em-gold); }
body.em-home #site_menu_header .navbar-toggle {
  position: absolute !important;
  right: 38px !important;
  top: 25px !important;
  z-index: 6;
}
body.em-home #site_menu_header .toggle-text { font-family: var(--font-code); font-size: 9px; letter-spacing: .16em; }
body.em-home #site_menu_header .toggle-line { background: var(--em-gold) !important; height: 1px; }

/* Hero */
.em-home-hero {
  position: relative;
  height: clamp(680px, 84vh, 820px);
  min-height: 680px;
  overflow: hidden;
  background: #070707;
  isolation: isolate;
}
.em-hero-panels {
  position: absolute;
  inset: 0;
  display: flex;
  gap: 6px;
  background: #030303;
}
.em-hero-panel {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  border: 0;
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  background: #050505;
  outline: none;
  isolation: isolate;
  transition:
    flex-grow .86s cubic-bezier(.16,1,.3,1),
    filter .62s ease;
}
.em-hero-panels.is-interacting .em-hero-panel { flex-grow: 1; }
.em-hero-panels.is-interacting .em-hero-panel.is-hovered {
  flex-grow: 3;
  z-index: 3;
}
.em-hero-panel:focus-visible {
  box-shadow: inset 0 0 0 1px rgba(181,138,45,.72);
}
.em-hero-video-wrap {
  position: absolute;
  inset: -10%;
  z-index: 0;
  display: block;
  overflow: hidden;
  background: #050505;
  transition: all .72s cubic-bezier(.16,1,.3,1);
}
.em-hero-video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 177.78vh;
  min-width: 100%;
  height: 56.25vw;
  min-height: 100%;
  transform: translate(-50%, -50%);
  border: 0;
  pointer-events: none;
  filter: brightness(.64) contrast(1.08) saturate(.77) sepia(.05);
  transition: filter .72s ease;
}
.em-hero-panel.is-hovered .em-hero-video-wrap {
  inset: auto;
  top: 50%;
  left: 0;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
  transform: translateY(-50%);
}
.em-hero-panel.is-hovered .em-hero-video {
  top: 0;
  left: 0;
  width: 100% !important;
  min-width: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  transform: none !important;
  filter: brightness(.82) contrast(1.05) saturate(.86) sepia(.025);
}
.em-hero-poster {
  position: absolute;
  inset: 0;
  z-index: 1;
  background-size: cover;
  background-position: center;
  opacity: 1;
  filter: brightness(.64) contrast(1.08) saturate(.77) sepia(.04);
  transform: scale(1.015);
  transition:
    opacity 1.05s ease,
    transform 1.35s cubic-bezier(.2,.7,.2,1),
    filter .72s ease;
}
.em-hero-panel.is-playing .em-hero-poster {
  opacity: 0;
}
.em-hero-panel.is-hovered .em-hero-poster {
  transform: scale(1.035);
}
.em-hero-panel-shade {
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(180deg, rgba(5,5,5,.2), transparent 24%, transparent 63%, rgba(5,5,5,.76)),
    linear-gradient(90deg, rgba(3,3,3,.16), transparent 20%, transparent 80%, rgba(3,3,3,.2));
  pointer-events: none;
  transition: background .58s ease, opacity .58s ease;
}
.em-hero-panel.is-hovered .em-hero-panel-shade {
  background:
    linear-gradient(180deg, rgba(5,5,5,.08), transparent 28%, transparent 68%, rgba(5,5,5,.74)),
    linear-gradient(90deg, rgba(3,3,3,.1), transparent 18%, transparent 82%, rgba(3,3,3,.12));
}
.em-hero-panel.is-dimmed .em-hero-panel-shade {
  background: rgba(3,3,3,.62);
}
.em-hero-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  border: 1px solid rgba(226,216,194,.04);
  pointer-events: none;
  transition: border-color .5s ease, box-shadow .5s ease;
}
.em-hero-panel.is-hovered::after {
  border-color: rgba(181,138,45,.22);
  box-shadow: inset 0 -2px 0 rgba(181,138,45,.55);
}
.em-hero-grade {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 74%, rgba(167,101,28,.14), transparent 30%),
    linear-gradient(180deg, rgba(4,4,4,.17) 0%, rgba(4,4,4,.01) 30%, rgba(6,6,6,.12) 55%, rgba(6,6,6,.84) 100%);
  transition: opacity .65s ease;
}
.em-home-hero.has-panel-hover .em-hero-grade { opacity: .42; }
.em-hero-copy {
  position: absolute;
  left: 50%;
  bottom: 72px;
  width: min(1120px, calc(100% - 64px));
  transform: translateX(-50%);
  z-index: 8;
  text-align: center;
  color: var(--em-ivory);
  pointer-events: none;
  opacity: 1;
  transition:
    opacity .78s cubic-bezier(.22,.61,.36,1),
    transform .88s cubic-bezier(.22,.61,.36,1),
    filter .78s ease;
}
.em-home-hero.has-panel-hover .em-hero-copy {
  opacity: 0;
  transform: translate(-50%, 15px);
  filter: blur(3px);
}
.em-hero-copy-content {
  position: relative;
  isolation: isolate;
  opacity: 1;
}
.em-hero-light-beams {
  position: absolute;
  inset: -38px -13%;
  z-index: 3;
  overflow: hidden;
  pointer-events: none;
  mix-blend-mode: screen;
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 17%, #000 83%, transparent);
  mask-image: linear-gradient(180deg, transparent, #000 17%, #000 83%, transparent);
}
.em-hero-light-beam {
  position: absolute;
  top: -18%;
  bottom: -18%;
  left: 0;
  width: 12%;
  opacity: 0;
  transform: translateX(-760%) skewX(-14deg);
  background: linear-gradient(90deg, transparent, rgba(255,239,195,.05) 20%, rgba(255,231,166,.34) 50%, rgba(255,239,195,.05) 80%, transparent);
  filter: blur(9px);
  will-change: transform, opacity;
}
.em-hero-light-beam--two { width: 8%; }
.em-hero-light-beam--three { width: 15%; }
.em-hero-eyebrow {
  position: relative;
  z-index: 2;
  margin: 0 0 19px;
  color: var(--em-gold);
  font-family: var(--font-code);
  font-size: clamp(9px, .72vw, 12px);
  font-weight: 700;
  letter-spacing: .42em;
  text-transform: uppercase;
}
.em-hero-title {
  position: relative;
  z-index: 2;
  margin: 0;
  font-family: var(--body-font) !important;
  font-size: clamp(40px, 3.72vw, 62px);
  font-weight: 300 !important;
  line-height: 1;
  letter-spacing: .26em;
  text-indent: .26em;
  text-transform: uppercase;
  text-shadow: 0 3px 28px rgba(0,0,0,.7);
}
.em-hero-subtitle {
  position: relative;
  z-index: 2;
  margin: 24px 0 0;
  color: rgba(222,215,204,.86);
  font-family: var(--body-font);
  font-size: clamp(15px, 1.25vw, 20px);
  font-weight: 400;
  letter-spacing: .43em;
  text-indent: .43em;
  text-transform: uppercase;
}
.em-hero-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px 40px;
  margin-top: 32px;
  pointer-events: auto;
  opacity: 1;
}
.em-cine-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 40px;
  border: 0;
  padding: 0;
  background: transparent;
  color: rgba(225,218,206,.8);
  font-family: var(--font-code) !important;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .25s ease, border-color .25s ease, background .25s ease;
}
.em-cine-button--primary {
  min-width: 150px;
  padding: 0 21px;
  border: 1px solid rgba(181,138,45,.58);
  color: var(--em-ivory);
  background: rgba(7,7,7,.25);
}
.em-cine-button:hover { color: var(--em-gold); }
.em-cine-button--primary:hover { border-color: var(--em-gold); background: rgba(181,138,45,.07); }
.em-play-triangle { width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 8px solid var(--em-gold); }


.em-home-hero.is-intro-ready .em-hero-copy-content {
  animation: emHeroCopySettle 7.8s cubic-bezier(.22,.61,.36,1) .15s forwards;
}
.em-home-hero.is-intro-ready .em-hero-actions {
  animation: emHeroActionsSettle 7.8s cubic-bezier(.22,.61,.36,1) .15s forwards;
}
.em-home-hero.is-intro-ready .em-hero-light-beam--one {
  animation: emHeroBeamSweep 3.05s cubic-bezier(.3,.03,.22,1) .55s both;
}
.em-home-hero.is-intro-ready .em-hero-light-beam--two {
  animation: emHeroBeamSweep 3.35s cubic-bezier(.3,.03,.22,1) 1.03s both;
}
.em-home-hero.is-intro-ready .em-hero-light-beam--three {
  animation: emHeroBeamSweep 2.85s cubic-bezier(.3,.03,.22,1) 1.48s both;
}
.em-home-hero.is-intro-ready .em-hero-eyebrow {
  animation: emHeroTextIlluminate 4.5s ease .22s both;
}
.em-home-hero.is-intro-ready .em-hero-title {
  animation: emHeroTextIlluminate 4.5s ease .12s both;
}
.em-home-hero.is-intro-ready .em-hero-subtitle {
  animation: emHeroTextIlluminate 4.7s ease .3s both;
}

@keyframes emHeroBeamSweep {
  0% { opacity: 0; transform: translateX(-760%) skewX(-14deg); }
  14% { opacity: .18; }
  38% { opacity: .78; }
  74% { opacity: .32; }
  100% { opacity: 0; transform: translateX(920%) skewX(-14deg); }
}
@keyframes emHeroTextIlluminate {
  0%, 18% { text-shadow: 0 3px 28px rgba(0,0,0,.7); }
  40% { text-shadow: 0 0 9px rgba(255,226,158,.28), 0 0 38px rgba(181,138,45,.18), 0 3px 28px rgba(0,0,0,.7); }
  58% { text-shadow: 0 0 3px rgba(255,235,190,.12), 0 3px 28px rgba(0,0,0,.7); }
  75% { text-shadow: 0 0 11px rgba(255,226,158,.19), 0 3px 28px rgba(0,0,0,.7); }
  100% { text-shadow: 0 3px 28px rgba(0,0,0,.7); }
}
@keyframes emHeroCopySettle {
  0%, 52% { opacity: 1; }
  100% { opacity: .58; }
}
@keyframes emHeroActionsSettle {
  0%, 52% { opacity: 1; }
  100% { opacity: .78; }
}

/* Reel modal */
.em-reel-modal { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 50px; background: rgba(0,0,0,.94); opacity: 0; visibility: hidden; transition: .25s ease; }
.em-reel-modal.is-open { opacity: 1; visibility: visible; }
.em-reel-frame { width: min(1180px, 90vw); aspect-ratio: 16/9; }
.em-reel-frame iframe { width: 100%; height: 100%; border: 0; }
.em-reel-close { position: absolute; top: 25px; right: 30px; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(255,255,255,.05); color: #fff; font-size: 24px; cursor: pointer; }
.em-reel-caption { position: absolute; left: 5vw; bottom: 25px; display: flex; gap: 15px; font-family: var(--font-code); font-size: 10px; letter-spacing: .16em; }
.em-reel-status { color: var(--em-gold); }
.em-reel-name { color: #fff; }

/* Shared section architecture */
.em-section-kicker { display: flex; align-items: center; gap: 13px; color: var(--em-muted); font-family: var(--font-code); font-size: 8px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.em-kicker-line { width: 34px; height: 1px; background: var(--em-gold); opacity: .68; }
.em-kicker-rule { flex: 1; height: 1px; background: linear-gradient(90deg, var(--em-line), rgba(181,138,45,.03)); }
.em-section-heading { margin-bottom: 30px; }
.em-section-heading--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.em-section-heading h2 { margin: 14px 0 0; font-family: var(--body-font) !important; font-size: clamp(30px, 2.6vw, 44px); font-weight: 300 !important; line-height: 1; letter-spacing: .17em; text-transform: uppercase; }
.em-section-action { display: inline-flex; align-items: center; gap: 12px; padding-bottom: 5px; color: var(--em-gold); font-family: var(--font-code); font-size: 8px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }

/* Media strip */
.em-media-strip { padding: 31px 0 47px; background: linear-gradient(180deg, #0d0d0c, #11110f); border-bottom: 1px solid rgba(255,255,255,.025); }
.em-media-strip .em-section-kicker { margin-bottom: 30px; }
.em-media-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); }
.em-media-card { min-height: 154px; display: grid; grid-template-columns: 54px 1fr; gap: 17px; align-items: start; padding: 17px 28px; border-right: 1px solid var(--em-neutral-line); color: inherit; }
.em-media-card:first-child { padding-left: 0; }
.em-media-card:last-child { padding-right: 0; border-right: 0; }
.em-media-icon { width: 47px; height: 47px; display: grid; place-items: center; border: 1px solid rgba(222,214,198,.55); border-radius: 50%; color: var(--em-ivory); font-size: 18px; }
.em-media-card:nth-child(2) .em-media-icon,
.em-media-card:nth-child(3) .em-media-icon,
.em-media-card:nth-child(4) .em-media-icon { border-radius: 0; border: 0; font-size: 30px; }
.em-media-copy h2 { margin: 0 0 9px; font-family: var(--heading-font); font-size: 14px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.em-media-copy p { margin: 0; max-width: 29ch; color: #aba59c; font-size: 11.5px; line-height: 1.52; }
.em-media-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 11px; color: var(--em-gold); font-family: var(--font-code); font-size: 8px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.em-media-card--link:hover .em-media-link { gap: 13px; }

/* Identity / About */
.em-identity-section { position: relative; padding: 80px 0 88px; background: var(--em-panel); overflow: hidden; }
.em-identity-section::before { content:""; position:absolute; right:2%; bottom:4%; width:44%; height:48%; opacity:.22; background-image: linear-gradient(rgba(181,138,45,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(181,138,45,.12) 1px,transparent 1px); background-size:24px 24px; mask-image:linear-gradient(135deg,transparent,black); }
.em-identity-grid { position: relative; display: grid; grid-template-columns: 43% 57%; grid-template-rows: auto auto; align-items: start; }
.em-identity-copy { position: relative; z-index: 3; grid-column: 1; grid-row: 1; padding: 25px 50px 0 7px; }
.em-identity-name { display: flex; flex-direction: column; margin: 0; font-family: var(--body-font) !important; font-size: clamp(65px, 6.45vw, 106px); font-weight: 300 !important; line-height: .98; letter-spacing: .025em; text-transform: uppercase; }
.em-identity-name span:first-child { font-size: .66em; letter-spacing: .14em; margin-bottom: 11px; }
.em-inline-label { display: inline-flex; align-items: center; gap: 12px; margin-top: 31px; color: var(--em-gold); font-family: var(--font-code); font-size: 8px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.em-inline-label::before { content:""; width:31px; height:1px; background: var(--em-gold); }
.em-identity-bio { max-width: 31ch; margin: 23px 0 0; color: #aaa49a; font-size: 15px; line-height: 1.55; }
.em-identity-image { position: relative; margin: 0; overflow: hidden; border: 1px solid rgba(190,166,119,.18); background:#080808; box-shadow: inset 0 0 80px rgba(0,0,0,.55), 0 20px 65px rgba(0,0,0,.22); }
.em-identity-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,8,8,.04),rgba(8,8,8,.18)),radial-gradient(circle at 50% 50%,transparent 45%,rgba(6,6,6,.32)); pointer-events:none; }
.em-identity-image img { width:100%; height:100%; object-fit:cover; filter:brightness(.78) contrast(1.12) saturate(.82) sepia(.04); }
.em-identity-image--portrait { grid-column: 2; grid-row: 1; height: 530px; }
.em-identity-image--portrait img { object-position: center 32%; }
.em-identity-image--landscape { z-index:4; grid-column: 1 / -1; grid-row:2; width:82%; height: 385px; margin-top:-128px; margin-left:3%; }
.em-identity-image--landscape img { object-position:center 54%; }
.em-identity-image figcaption { position:absolute; z-index:3; left:13px; bottom:10px; color:rgba(225,216,202,.6); font-family:var(--font-code); font-size:7px; letter-spacing:.01em; }

/* Expertise */
.em-expertise-section { position:relative; padding:76px 0 92px; background:radial-gradient(circle at 62% 24%,rgba(119,76,24,.055),transparent 38%),#0b0b0a; overflow:hidden; }
.em-expertise-section::before { content:""; position:absolute; inset:0; opacity:.15; background-image:linear-gradient(rgba(181,138,45,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(181,138,45,.12) 1px,transparent 1px); background-size:32px 32px; mask-image:linear-gradient(90deg,transparent 2%,black 25%,black 75%,transparent 98%); }
.em-expertise-section .em-wide-shell { position:relative; z-index:1; }
.em-expertise-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.em-expertise-card { position:relative; height:545px; overflow:hidden; border:1px solid rgba(181,138,45,.24); background:#0b0b0a; }
.em-expertise-card::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(5,5,5,.05),rgba(6,6,6,.22) 51%,rgba(6,6,6,.80)),radial-gradient(circle at 55% 30%,transparent,rgba(5,5,5,.20)); }
.em-expertise-card::before { content:""; position:absolute; left:-1px; top:-1px; z-index:4; width:70px; height:1px; background:var(--em-gold); }
.em-expertise-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.88) contrast(1.05) saturate(.76); transition:transform .55s ease, filter .55s ease; }
.em-expertise-card:hover .em-expertise-bg { transform:scale(1.035); filter:brightness(.96) contrast(1.05) saturate(.84); }
.em-expertise-number { position:absolute; z-index:2; top:27px; left:28px; color:rgba(215,201,174,.16); font-family:var(--heading-font); font-size:69px; font-style:normal; line-height:1; }
.em-expertise-content { position:absolute; z-index:3; left:31px; right:31px; bottom:32px; }
.em-expertise-content > i { display:block; margin-bottom:22px; color:var(--em-gold); font-size:37px; }
.em-expertise-card:nth-child(3) .em-expertise-content > i { color:var(--em-ivory); }
.em-expertise-content h3 { margin:0 0 14px; font-family:var(--heading-font); font-size:17px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; }
.em-expertise-content p { min-height:49px; margin:0; max-width:30ch; color:#aaa49a; font-size:13px; line-height:1.5; }
.em-expertise-content a { display:inline-flex; align-items:center; gap:8px; margin-top:17px; color:var(--em-gold); font-family:var(--font-code); font-size:8px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }

/* Featured project capsules */
.em-projects-section { position:relative; padding:70px 0 82px; background:radial-gradient(circle at 52% 24%,rgba(110,73,27,.055),transparent 42%),linear-gradient(180deg,#12110f,#0d0e0d); overflow:hidden; }
.em-projects-section::before { content:""; position:absolute; inset:70px 7% 0; opacity:.14; background:repeating-linear-gradient(90deg,transparent 0 8%,rgba(207,193,165,.12) 8.2%,transparent 8.5% 16%); filter:blur(8px); mask-image:linear-gradient(180deg,transparent,black 30%,black 75%,transparent); }
.em-projects-section .em-wide-shell { position:relative; z-index:1; }
.em-project-capsules { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:center; gap:16px; height:580px; padding:4px 18px 0; }
.em-project-capsule { position:relative; display:block; height:92%; overflow:hidden; border:1px solid rgba(181,138,45,.22); border-radius:16px; background:#080808; box-shadow:0 18px 40px rgba(0,0,0,.22); transition:transform .4s ease,border-color .35s ease; }
.em-project-capsule:nth-child(2){height:84%;transform:translateY(15px)}
.em-project-capsule:nth-child(3){height:100%;transform:translateY(-5px)}
.em-project-capsule:nth-child(4){height:88%;transform:translateY(9px)}
.em-project-capsule:nth-child(5){height:86%;transform:translateY(17px)}
.em-project-capsule:nth-child(6){height:95%;transform:translateY(1px)}
.em-project-capsule:hover { border-color:rgba(181,138,45,.58); transform:translateY(-8px) !important; }
.em-project-capsule img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.66) contrast(1.08) saturate(.76); transition:transform .55s ease,filter .55s ease; }
.em-project-capsule:hover img { transform:scale(1.055); filter:brightness(.77) contrast(1.08) saturate(.86); }
.em-project-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,5,5,.35),transparent 29%,rgba(5,5,5,.06) 58%,rgba(5,5,5,.75)),linear-gradient(90deg,rgba(5,5,5,.16),transparent,rgba(5,5,5,.14)); }
.em-project-index { position:absolute; z-index:2; top:23px; left:0; right:0; text-align:center; color:rgba(226,217,203,.58); font-family:var(--font-code); font-size:8px; letter-spacing:.15em; }
.em-project-title { position:absolute; z-index:3; left:7px; right:7px; top:50%; transform:translateY(-50%); padding:12px 6px; background:rgba(6,6,6,.62); border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08); color:#e3ded5; font-family:var(--heading-font); font-size:12px; line-height:1.22; letter-spacing:.04em; text-align:center; text-transform:uppercase; }
.em-project-badge { position:absolute; z-index:3; left:50%; bottom:18px; transform:translateX(-50%); padding:4px 7px; background:var(--em-gold); color:#111; font-family:var(--font-code); font-size:6px; font-weight:800; letter-spacing:.1em; white-space:nowrap; }

/* Career wall */
.em-career-section { padding:0 0 18px; background:#0d0e0d; }
.em-career-section .em-section-kicker { margin-bottom:18px; }
.em-career-grid { display:grid; grid-template-columns:34% 66%; border-top:1px solid var(--em-neutral-line); border-bottom:1px solid var(--em-neutral-line); }
.em-career-copy { padding:27px 34px 22px 6px; border-right:1px solid var(--em-neutral-line); }
.em-career-copy h2 { margin:0 0 15px; max-width:15ch; font-family:var(--body-font) !important; font-size:clamp(24px,2.1vw,36px); font-weight:300 !important; line-height:1.15; letter-spacing:.12em; text-transform:uppercase; }
.em-career-copy p { margin:0; max-width:44ch; color:#9f998f; font-size:10px; line-height:1.55; }
.em-logo-wall { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.em-logo-cell { min-height:110px; display:grid; place-items:center; border-right:1px solid var(--em-neutral-line); border-bottom:1px solid var(--em-neutral-line); padding:20px; }
.em-logo-cell:nth-child(3n){border-right:0}.em-logo-cell:nth-child(n+4){border-bottom:0}
.em-logo-cell img { width:auto; max-width:68%; max-height:45px; opacity:.66; filter:grayscale(1) brightness(1.2) sepia(.08); transition:opacity .3s ease; }
.em-logo-cell:hover img { opacity:.92; }

/* Cinematic contact close */
.em-contact-banner { position:relative; min-height:232px; display:grid; place-items:center; overflow:hidden; background:#080908; }
.em-contact-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 52%; filter:brightness(.86) saturate(.82) contrast(1.08); }
.em-contact-banner::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(4,5,5,.34),rgba(4,5,5,.13) 40%,rgba(4,5,5,.42)),linear-gradient(180deg,rgba(5,5,5,.48),rgba(5,5,5,.03) 45%,rgba(5,5,5,.58)); }
.em-contact-banner::after { content:""; position:absolute; inset:0; z-index:1; background:radial-gradient(ellipse at center,transparent 17%,rgba(5,5,5,.33) 82%); }
.em-contact-inner { position:relative; z-index:2; text-align:center; padding:30px; }
.em-contact-inner h2 { margin:0; font-family:var(--body-font) !important; font-size:19px; font-weight:300 !important; letter-spacing:.24em; text-indent:.24em; text-transform:uppercase; }
.em-contact-inner p { margin:13px 0 21px; color:#aaa49a; font-size:12px; letter-spacing:.03em; }
.em-contact-button { display:inline-flex; align-items:center; justify-content:center; gap:15px; min-width:150px; height:38px; border:1px solid rgba(181,138,45,.52); color:var(--em-ivory); font-family:var(--font-code); font-size:8px; font-weight:700; letter-spacing:.15em; }
.em-contact-button:hover { color:var(--em-gold); border-color:var(--em-gold); }
.em-home-footer { background:#090908; border-top:1px solid rgba(255,255,255,.05); }
.em-home-footer-inner { min-height:54px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.em-home-footer p { margin:0; color:#78736c; font-size:7px; }
.em-home-footer p a { color:#8f897f; }
.em-home-socials { display:flex; gap:22px; }
.em-home-socials a { color:#a7a096; font-size:11px; }
.em-home-socials a:hover { color:var(--em-gold); }

@media (max-width: 991px) {
  body.em-home { --em-shell: min(100% - 36px, 920px); }
  body.em-home #site_menu_header { padding-inline:20px; }
  body.em-home #site_menu_header .navbar-toggle { right:20px !important; }
  body.em-home #site_menu_header .em-header-links { padding-right:72px; gap:22px; }
  .em-home-hero { height:680px; }
  .em-hero-title { letter-spacing:.16em; text-indent:.16em; }
  .em-hero-subtitle { letter-spacing:.25em; text-indent:.25em; }
  .em-media-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .em-media-card:nth-child(2){border-right:0}.em-media-card:nth-child(-n+2){border-bottom:1px solid var(--em-neutral-line)}
  .em-media-card:first-child,.em-media-card:nth-child(3){padding-left:0}.em-media-card:nth-child(2),.em-media-card:last-child{padding-right:0}
  .em-identity-grid { grid-template-columns:45% 55%; }
  .em-identity-image--portrait { height:430px; }
  .em-identity-image--landscape { height:310px; margin-top:-86px; width:92%; }
  .em-expertise-card { height:380px; }
  .em-project-capsules { gap:10px; height:410px; padding-inline:0; }
  .em-project-title { font-size:8px; }
  .em-career-grid { grid-template-columns:40% 60%; }
}

@media (max-width: 720px) {
  body.em-home { --em-shell: calc(100% - 28px); }
  body.em-home #site_menu_header .main-logo img { width:118px !important; }
  body.em-home #site_menu_header .em-header-links { display:none; }
  .em-home-hero { min-height:650px; height:82vh; }
  .em-hero-panels { grid-template-columns:1fr; }
  .em-hero-panel { display:none; }
  .em-hero-panel:first-child { display:block; }
  .em-hero-copy { bottom:48px; width:calc(100% - 34px); }
  .em-hero-title { font-size:38px; line-height:1.1; letter-spacing:.11em; text-indent:.11em; }
  .em-hero-subtitle { font-size:13px; line-height:1.6; letter-spacing:.2em; text-indent:.2em; }
  .em-hero-actions { flex-wrap:wrap; gap:12px 22px; margin-top:24px; }
  .em-cine-button--primary { flex-basis:170px; }
  .em-media-grid { grid-template-columns:1fr; }
  .em-media-card { min-height:0; padding:20px 0; border-right:0; border-bottom:1px solid var(--em-neutral-line) !important; }
  .em-media-card:last-child { border-bottom:0 !important; }
  .em-identity-section { padding:52px 0; }
  .em-identity-grid { display:block; }
  .em-identity-copy { padding:0 0 30px; }
  .em-identity-name { font-size:56px; }
  .em-identity-image--portrait { height:440px; }
  .em-identity-image--landscape { width:94%; height:250px; margin:-45px 0 0 3%; }
  .em-identity-bio { font-size:13px; }
  .em-expertise-grid { grid-template-columns:1fr; }
  .em-expertise-card { height:365px; }
  .em-section-heading--split { display:block; }
  .em-section-action { margin-top:18px; }
  .em-project-capsules { display:flex; height:430px; overflow-x:auto; justify-content:flex-start; scroll-snap-type:x mandatory; padding:0 2px 8px; }
  .em-project-capsule,.em-project-capsule:nth-child(n) { flex:0 0 145px; height:94%; transform:none; scroll-snap-align:start; border-radius:22px; }
  .em-career-grid { grid-template-columns:1fr; }
  .em-career-copy { border-right:0; border-bottom:1px solid var(--em-neutral-line); padding-left:0; }
  .em-logo-cell { min-height:90px; }
  .em-contact-banner { min-height:220px; background-position:center; }
  .em-contact-inner h2 { font-size:15px; line-height:1.45; }
  .em-home-footer-inner { min-height:70px; }
}
/* Keep the sandbox home composition stable while the legacy intro timeline initializes. */
body.em-home #main_root,
body.em-home #site_menu_header {
  transform: none !important;
  opacity: 1 !important;
}

/* The legacy theme paints the lower half of every #dsn_header with a solid block.
   Cinematic heroes provide their own graded veil, so the old panel must not render. */
body.em-cinematic #dsn_header::before,
body.em-cinematic .em-inner-hero::before,
body.em-cinematic .em-project-hero::before {
  content: none !important;
  display: none !important;
}

@media (max-width: 720px) {
  .em-project-capsule,
  .em-project-capsule:nth-child(n) {
    border-radius: 16px;
  }
}

/* The triptych remains a single-panel composition on touch screens. */
@media (max-width: 720px), (hover: none) {
  body.em-home .em-hero-panels { display: grid; }
  body.em-home .em-hero-panel,
  body.em-home .em-hero-panel.is-hovered,
  body.em-home .em-hero-panel.is-dimmed { flex: none; filter: none; }
  body.em-home .em-home-hero.has-panel-hover .em-hero-copy {
    opacity: 1;
    transform: translateX(-50%);
    filter: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .em-hero-panel,
  .em-hero-video-wrap,
  .em-hero-copy,
  .em-hero-poster { transition-duration: .01ms !important; }
  .em-hero-light-beam { display: none; }
  .em-hero-copy-content,
  .em-hero-actions,
  .em-hero-eyebrow,
  .em-hero-title,
  .em-hero-subtitle {
    animation: none !important;
  }
  .em-hero-copy-content { opacity: .72; }
  .em-hero-actions { opacity: .86; }
}
