:root {
  color-scheme: dark;
  --black: #05070a;
  --ink: #f4f6f8;
  --blue: #176fd1;
  --blue-bright: #4aa3ff;
  --navy: #0a1729;
  --navy-deep: #07101d;
  --silver: #c8cdd4;
  --eps-green: #4aa3ff;
  --header: rgba(5, 7, 10, 0.93);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background:
    radial-gradient(circle at 50% -20%, rgba(23, 111, 209, 0.18), transparent 42rem),
    var(--black);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}

a {
  color: inherit;
}

img,
video {
  display: block;
  max-width: 100%;
}

.top-hotspot {
  position: fixed;
  inset: 0 0 auto;
  z-index: 60;
  height: 88px;
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 70;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-height: 72px;
  padding: 0 38px;
  background: var(--header);
  border-bottom: 1px solid rgba(126, 185, 247, 0.18);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(18px) saturate(130%);
  opacity: 0;
  transform: translateY(-105%);
  transition: opacity 180ms ease, transform 180ms ease;
  will-change: opacity, transform;
}

.top-hotspot:hover + .site-header,
.site-header:hover,
.site-header.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.brand,
.footer-brand {
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: 0;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}

.brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 1;
  text-transform: none;
}

.brand-play {
  position: relative;
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 30% 24%, rgba(255, 255, 255, 0.85), transparent 28%),
    linear-gradient(135deg, #a7df43, var(--eps-green) 48%, #3c8d36);
  border-radius: 6px;
  box-shadow: 0 0 22px rgba(140, 198, 63, 0.26);
}

.brand-play::before {
  content: "";
  width: 0;
  height: 0;
  margin-left: 3px;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 12px solid #041006;
}

.brand-type {
  display: grid;
  gap: 2px;
}

.brand-eps {
  color: #ffffff;
  font-size: 1.06rem;
  font-weight: 900;
  line-height: 0.9;
}

.brand-collective {
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.56rem;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

.primary-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 24px;
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
}

.primary-nav a {
  text-decoration: none;
  white-space: nowrap;
}

.primary-nav > .nav-item > a {
  transition: color 160ms ease, text-shadow 160ms ease;
}

.primary-nav > .nav-item:hover > a,
.primary-nav > .nav-item:focus-within > a {
  color: #80beff;
  text-shadow: 0 0 18px rgba(74, 163, 255, 0.35);
}

.nav-item {
  position: relative;
  padding: 27px 0;
}

.nav-dropdown {
  position: absolute;
  top: calc(100% - 8px);
  left: 50%;
  display: grid;
  min-width: 220px;
  padding: 12px;
  background: rgba(7, 16, 29, 0.96);
  border: 1px solid rgba(74, 163, 255, 0.22);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 0);
  transition: opacity 160ms ease;
}

.nav-item:hover .nav-dropdown,
.nav-item:focus-within .nav-dropdown {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.nav-dropdown a {
  padding: 10px 12px;
  font-size: 0.76rem;
  color: rgba(255, 255, 255, 0.78);
}

.nav-dropdown a:hover,
.nav-dropdown a:focus-visible {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
  outline: none;
}

.hero {
  position: relative;
  height: 100vh;
  min-height: 100svh;
  margin-bottom: -1px;
  overflow: hidden;
  background: #050505;
}

.hero-video,
.hero-frame,
.hero-fade {
  position: absolute;
}

.hero-video {
  inset: -6%;
  z-index: 0;
  width: 112%;
  height: 112%;
  object-fit: cover;
}

.hero-frame {
  z-index: 1;
  top: 50%;
  left: 50%;
  width: 124vw;
  height: 69.75vw;
  min-width: 222vh;
  min-height: 125vh;
  border: 0;
  background: #000000;
  transform: translate(-50%, -50%);
}

.hero-fade {
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.16), transparent 38%, rgba(0, 0, 0, 0.18) 100%),
    radial-gradient(circle at 50% 45%, transparent 46%, rgba(0, 0, 0, 0.24) 100%);
}

.transition-stage {
  position: relative;
  background: #000000;
}

.pillar-scene {
  position: relative;
  display: grid;
  min-height: 108svh;
  padding: 10vh 5vw 9vh;
  place-items: center;
  overflow: hidden;
  background: #060606;
}

.pillar-backdrop {
  position: absolute;
  inset: -32px;
  width: calc(100% + 64px);
  height: calc(100% + 64px);
  max-width: none;
  object-fit: cover;
  opacity: 0.62;
  filter: blur(20px);
  transform: scale(1.04);
}

.pillar-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.66), rgba(0, 0, 0, 0.18) 45%, rgba(0, 0, 0, 0.62)),
    rgba(0, 0, 0, 0.18);
}

.pillar-track {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(1580px, 100%);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 34px;
}

.pillar-tile {
  position: relative;
  display: grid;
  min-height: 690px;
  overflow: hidden;
  border-radius: 32px;
  color: #ffffff;
  text-decoration: none;
  background: #111111;
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.46);
}

.pillar-tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  transition: transform 360ms ease, filter 360ms ease;
}

.pillar-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.2) 45%, rgba(0, 0, 0, 0.56)),
    rgba(0, 0, 0, 0.1);
}

.pillar-tile span {
  position: relative;
  z-index: 1;
  align-self: center;
  justify-self: center;
  max-width: calc(100% - 34px);
  padding: 0 14px;
  color: #ffffff;
  font-size: clamp(2.45rem, 3.05vw, 3.35rem);
  font-weight: 800;
  line-height: 1.04;
  text-align: center;
  text-shadow: 0 8px 28px rgba(0, 0, 0, 0.7);
  white-space: nowrap;
}

.pillar-tile .label-double {
  display: inline-block;
  font-size: clamp(2.15rem, 2.65vw, 3rem);
  line-height: 0.98;
  white-space: normal;
}

.pillar-tile .pillar-label {
  display: grid;
  gap: 10px;
  white-space: normal;
}

.pillar-label strong,
.pillar-label small {
  display: block;
}

.pillar-label strong {
  font: inherit;
}

.pillar-label small {
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0;
  text-transform: uppercase;
}

.pillar-tile:hover img,
.pillar-tile:focus-visible img {
  filter: saturate(1.12) contrast(1.04);
  transform: scale(1.035);
}

.pillar-tile:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 5px;
}

.news-section {
  min-height: 100svh;
  padding: 120px 8vw 150px;
  background: #000000;
}

.news-heading {
  display: flex;
  align-items: center;
  gap: 46px;
  width: min(1480px, 100%);
  margin: 0 auto 54px;
}

.news-heading h2 {
  margin: 0;
  font-size: 3.25rem;
  line-height: 1;
  letter-spacing: 0;
}

.news-heading a {
  font-size: 1.3rem;
  font-weight: 700;
  text-decoration: none;
}

.news-grid {
  display: grid;
  width: min(1480px, 100%);
  margin: 0 auto;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 46px;
}

.news-item {
  display: grid;
  gap: 18px;
}

.news-item img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background: #111111;
}

.news-item time {
  margin-top: 12px;
  color: #ffffff;
  font-size: 0.95rem;
  font-weight: 800;
  text-transform: uppercase;
}

.news-item h3 {
  margin: 0;
  color: #ffffff;
  font-size: 1.55rem;
  line-height: 1.28;
}

.news-item h3 a {
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.news-item p {
  max-width: 42ch;
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 1.12rem;
  line-height: 1.55;
}

.facility-section {
  padding: 108px 8vw 132px;
  background: #050505;
}

.facility-page .site-header {
  opacity: 1;
  transform: translateY(0);
}

.facility-standalone {
  min-height: 100svh;
  padding-top: 150px;
}

.facility-heading,
.facility-grid {
  width: min(1480px, 100%);
  margin-inline: auto;
}

.facility-heading {
  margin-bottom: 44px;
}

.section-kicker {
  margin: 0 0 18px;
  color: rgba(255, 255, 255, 0.58);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0;
}

.facility-heading h1,
.facility-heading h2 {
  margin: 0;
  color: #ffffff;
  font-size: 3.25rem;
  line-height: 1;
}

.facility-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr 0.9fr;
  gap: 24px;
}

.facility-item {
  position: relative;
  min-height: 420px;
  margin: 0;
  overflow: hidden;
  background: #111111;
}

.facility-item img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  filter: saturate(1.04) contrast(1.02);
}

.facility-item figcaption {
  position: absolute;
  left: 22px;
  bottom: 20px;
  z-index: 1;
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
  text-shadow: 0 6px 22px rgba(0, 0, 0, 0.72);
}

.facility-item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 48%, rgba(0, 0, 0, 0.62));
}

.logo-wall {
  padding: 92px 0 108px;
  overflow: hidden;
  background:
    linear-gradient(180deg, #000000 0%, #060606 58%, #000000 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.logo-heading {
  width: min(1480px, calc(100% - 16vw));
  margin: 0 auto 44px;
}

.logo-heading h2 {
  margin: 0;
  color: #ffffff;
  font-size: 3.25rem;
  line-height: 1;
}

.logo-marquees {
  display: grid;
  gap: 52px;
}

.logo-group {
  display: grid;
  gap: 16px;
}

.logo-group-label {
  width: min(1480px, calc(100% - 16vw));
  margin: 0 auto;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.logo-marquee {
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000000 9%, #000000 91%, transparent);
}

.logo-track {
  display: flex;
  width: max-content;
  gap: 18px;
  animation: logoDrift 44s linear infinite;
}

.logo-marquee.is-reverse .logo-track {
  animation-name: logoDriftReverse;
  animation-duration: 52s;
}

.logo-chip {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 292px;
  min-width: 292px;
  height: 96px;
  padding: 12px 18px;
  flex: 0 0 auto;
  box-sizing: border-box;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  box-shadow: 0 20px 58px rgba(0, 0, 0, 0.18);
}

.logo-chip.is-featured {
  width: 292px;
  min-width: 292px;
  height: 96px;
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.3);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.24);
}

.logo-mark {
  display: grid;
  width: 74px;
  height: 74px;
  padding: 12px;
  flex: 0 0 74px;
  place-items: center;
  box-sizing: border-box;
  overflow: hidden;
  background: #ffffff;
  border-radius: 7px;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 22px rgba(0, 0, 0, 0.16);
}

.logo-chip.is-featured .logo-mark {
  width: 74px;
  height: 74px;
  flex-basis: 74px;
  padding: 12px;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 12px 28px rgba(0, 0, 0, 0.2);
}

.logo-chip img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  filter: none;
  opacity: 1;
}

.logo-mark.has-lettermark {
  background: var(--logo-brand-color, #087fc1);
}

.logo-lettermark {
  display: grid;
  width: 100%;
  height: 100%;
  padding: 0 3px;
  place-items: center;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
  text-align: center;
  overflow-wrap: anywhere;
}

.logo-name {
  display: block;
  min-width: 0;
  overflow: hidden;
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.18;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: normal;
}

.logo-chip.is-featured .logo-name {
  color: #ffffff;
  font-size: 1rem;
}

.logo-chip.is-project {
  width: 292px;
  min-width: 292px;
  height: 96px;
  flex-direction: column;
  gap: 5px;
  justify-content: center;
  background:
    linear-gradient(135deg, rgba(8, 127, 193, 0.34), rgba(255, 255, 255, 0.08)),
    rgba(255, 255, 255, 0.06);
  border-color: rgba(8, 127, 193, 0.5);
}

.logo-chip.is-project.is-featured {
  width: 292px;
  min-width: 292px;
  background:
    linear-gradient(135deg, rgba(8, 127, 193, 0.46), rgba(255, 255, 255, 0.12)),
    rgba(255, 255, 255, 0.08);
}

.logo-chip.is-project .logo-name {
  color: #ffffff;
  font-size: 1rem;
  text-align: center;
}

.logo-meta {
  display: block;
  overflow: hidden;
  max-width: 100%;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.logo-chip.is-project.is-featured .logo-meta {
  color: rgba(255, 255, 255, 0.82);
}

.logo-chip:hover {
  background: rgba(255, 255, 255, 0.11);
  border-color: rgba(255, 255, 255, 0.26);
}

.logo-chip.is-text-only {
  justify-content: center;
}

.logo-chip.is-text-only .logo-name {
  text-align: center;
}

.project-marquee {
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000000 9%, #000000 91%, transparent);
}

.project-showcase {
  display: flex;
  width: max-content;
  gap: 18px;
  animation: projectDrift 64s linear infinite;
}

.project-card {
  position: relative;
  width: 320px;
  min-width: 320px;
  height: 96px;
  overflow: hidden;
  background: #101418;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}

.project-card::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, rgba(3, 7, 10, 0.14), rgba(3, 7, 10, 0.18) 38%, rgba(3, 7, 10, 0.95));
}

.project-card-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 28%;
  transition: transform 400ms ease;
}

.project-card:hover .project-card-image {
  transform: scale(1.025);
}

.project-card-copy {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 14px;
  bottom: auto;
  left: 44%;
  transform: translateY(-50%);
}

.project-card-copy h4,
.project-card-copy p {
  margin: 0;
}

.project-card-copy h4 {
  color: #74c9f4;
  font-size: 0.92rem;
  line-height: 1.15;
}

.project-card-copy p {
  margin-top: 5px;
  color: #74c9f4;
  font-size: 0.66rem;
  font-weight: 900;
  line-height: 1.2;
}

@keyframes projectDrift {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(calc(-50% - 9px));
  }
}

@keyframes logoDrift {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

@keyframes logoDriftReverse {
  from {
    transform: translateX(-50%);
  }

  to {
    transform: translateX(0);
  }
}

.site-footer {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 28px;
  padding: 34px 5vw;
  background: #000000;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.site-footer a {
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: 0;
  text-decoration: none;
  text-transform: uppercase;
}

.social-links {
  display: flex;
  align-items: center;
  gap: 20px;
}

.social-links a {
  color: rgba(255, 255, 255, 0.7);
}

.social-links a:hover,
.social-links a:focus-visible {
  color: #ffffff;
  outline: none;
}

@media (max-width: 1160px) {
  .site-header {
    align-items: flex-start;
    min-height: 96px;
    padding: 20px 24px;
  }

  .primary-nav {
    max-width: 78vw;
    justify-content: flex-start;
    gap: 18px;
    overflow-x: auto;
    padding-bottom: 8px;
  }

  .nav-item {
    padding: 0;
  }

  .nav-dropdown {
    display: none;
  }

  .pillar-track {
    gap: 22px;
  }

  .pillar-tile {
    min-height: 560px;
  }

  .pillar-tile span {
    font-size: 2.35rem;
  }
}

@media (max-width: 860px) {
  .site-header {
    display: block;
  }

  .brand {
    display: inline-block;
    margin-bottom: 18px;
  }

  .brand-lockup {
    display: inline-flex;
  }

  .primary-nav {
    max-width: 100%;
  }

  .pillar-scene {
    min-height: auto;
    padding: 70px 18px;
  }

  .pillar-track,
  .news-grid {
    grid-template-columns: 1fr;
  }

  .pillar-tile {
    min-height: 72vh;
  }

  .pillar-tile span {
    font-size: clamp(2.4rem, 11vw, 3.15rem);
  }

  .pillar-tile .label-double {
    font-size: clamp(2.15rem, 10vw, 2.95rem);
  }

  .news-section {
    padding: 76px 22px 96px;
  }

  .news-heading {
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 34px;
  }

  .news-heading h2 {
    font-size: 2.5rem;
  }

  .news-heading a {
    font-size: 1.05rem;
  }

  .news-grid {
    gap: 44px;
  }

  .facility-section {
    padding: 76px 22px 96px;
  }

  .facility-heading {
    width: 100%;
    margin-bottom: 30px;
  }

  .facility-heading h2 {
    font-size: 2.5rem;
  }

  .facility-grid {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .facility-item {
    min-height: 62vh;
  }

  .logo-wall {
    padding: 72px 0 84px;
  }

  .logo-heading {
    width: calc(100% - 44px);
    margin-bottom: 30px;
  }

  .logo-heading h2 {
    font-size: 2.5rem;
  }

  .logo-chip {
    width: 230px;
    min-width: 230px;
    height: 76px;
    padding: 10px 14px;
  }

  .logo-chip.is-featured {
    width: 230px;
    min-width: 230px;
    height: 76px;
  }

  .logo-chip.is-project,
  .logo-chip.is-project.is-featured {
    width: 230px;
    min-width: 230px;
    height: 76px;
  }

  .logo-mark {
    width: 54px;
    height: 54px;
    flex-basis: 54px;
    padding: 7px;
  }

  .logo-chip.is-featured .logo-mark {
    width: 54px;
    height: 54px;
    flex-basis: 54px;
    padding: 7px;
  }

  .project-card {
    width: 260px;
    min-width: 260px;
    height: 76px;
  }

  .site-footer {
    gap: 22px;
  }
}

.contact-layout { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); min-height:100vh; padding-top:72px; background:#050607; }
.contact-intro { display:grid; align-content:center; padding:90px max(7vw, 38px); background:#075f66; }
.contact-intro h1 { margin:12px 0 28px; font-size:clamp(3rem, 6vw, 6.5rem); line-height:1.12; }
.contact-intro > p:last-child { max-width:560px; color:rgba(255,255,255,.72); line-height:1.65; }
.contact-form { display:grid; align-content:center; gap:22px; padding:90px max(7vw, 38px); }
.contact-form label { display:grid; gap:9px; color:rgba(255,255,255,.72); font-size:.78rem; font-weight:800; text-transform:uppercase; }
.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; padding:14px 0; color:#fff; background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.28); border-radius:0; font:inherit; font-size:1rem; text-transform:none; }
.contact-form select option { color:#050607; }
.contact-form textarea { border:1px solid rgba(255,255,255,.28); padding:14px; resize:vertical; }
.contact-form button { justify-self:start; padding:15px 22px; color:#050607; background:#fff; border:0; border-radius:6px; font-weight:900; cursor:pointer; }
@media (max-width:860px){.contact-layout{grid-template-columns:1fr;padding-top:116px}.contact-intro,.contact-form{padding:64px 22px}.contact-fields{grid-template-columns:1fr}}

@media (max-width: 560px) {
  .project-card {
    width: 250px;
    min-width: 250px;
    height: 76px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }
}

.services-page {
  color: #ffffff;
  background: #050607;
}

.services-hero {
  min-height: 72vh;
  padding: 190px max(8vw, 32px) 90px;
  display: grid;
  align-content: end;
  background:
    linear-gradient(90deg, rgba(3, 6, 9, 0.95), rgba(3, 6, 9, 0.34)),
    url("./assets/studio-2026/hero-console-eps.webp") center / cover;
}

.services-hero h1 {
  max-width: 980px;
  margin: 12px 0 24px;
  font-size: clamp(3.4rem, 8vw, 8rem);
  line-height: 1.12;
}

.services-hero > p:last-child {
  max-width: 760px;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 1.15rem;
  line-height: 1.55;
}

.services-index {
  position: sticky;
  z-index: 5;
  top: 68px;
  display: flex;
  gap: 24px;
  padding: 18px max(8vw, 32px);
  overflow-x: auto;
  background: rgba(5, 6, 7, 0.94);
  border-block: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(18px);
}

.service-band {
  scroll-margin-top: 116px;
}

.services-index a {
  flex: 0 0 auto;
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.78rem;
  font-weight: 800;
  text-decoration: none;
  text-transform: uppercase;
}

.service-band {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  min-height: 640px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.service-band.is-reverse {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
}

.service-band.is-reverse .service-band-copy {
  order: 2;
}

.service-band-copy {
  display: grid;
  align-content: center;
  padding: 90px clamp(24px, 5vw, 80px);
  min-width: 0;
}

.service-band h2 {
  max-width: 720px;
  margin: 12px 0 24px;
  font-size: clamp(2.5rem, 5vw, 5rem);
  line-height: 1.12;
}

.service-band p,
.service-band li {
  color: rgba(255, 255, 255, 0.7);
  font-size: 1rem;
  line-height: 1.6;
}

.service-band ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
  gap: 10px 26px;
  padding: 0;
  list-style: none;
}

.service-band li {
  position: relative;
  padding-inline-start: 1.2em;
}

.service-band li::before {
  content: "+";
  position: absolute;
  inset-inline-start: 0;
  top: 0;
  color: var(--eps-green);
  font-weight: 900;
}

.service-band > img {
  width: 100%;
  height: 100%;
  min-height: 640px;
  object-fit: cover;
}

.currency-board {
  display: grid;
  align-content: center;
  min-height: 640px;
  padding: 72px max(6vw, 42px);
  color: #ffffff;
  background: #075f66;
}

.currency-board-label,
.currency-date {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.currency-rates {
  display: grid;
  gap: 0;
  margin: 28px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.24);
}

.currency-card {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  align-items: center;
  min-height: 124px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.24);
}

.currency-card span {
  font-size: 0.86rem;
  font-weight: 900;
}

.currency-card strong {
  font-size: clamp(2.3rem, 4.5vw, 4.8rem);
  line-height: 1;
}

.currency-card small {
  grid-column: 2;
  margin-top: -26px;
  color: rgba(255, 255, 255, 0.68);
}

.services-cta {
  padding: 120px max(8vw, 32px);
}

.services-cta h2 {
  max-width: 920px;
  margin: 12px 0 36px;
  font-size: clamp(2.8rem, 6vw, 6rem);
  line-height: 1.12;
}

.services-cta a {
  display: inline-block;
  padding: 15px 20px;
  color: #050607;
  background: #ffffff;
  border-radius: 6px;
  font-weight: 900;
  text-decoration: none;
}

@media (max-width: 860px) {
  .services-hero {
    min-height: 68vh;
    padding: 150px 22px 70px;
  }

  .services-index {
    top: 116px;
    padding-inline: 22px;
  }

  .service-band {
    scroll-margin-top: 164px;
  }

  .service-band,
  .service-band.is-reverse {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .service-band.is-reverse .service-band-copy {
    order: initial;
  }

  .service-band-copy {
    padding: 72px 22px;
  }

  .service-band > img {
    min-height: 52vh;
  }

  .currency-board {
    min-height: 52vh;
    padding: 64px 22px;
  }

  .service-band ul {
    grid-template-columns: 1fr;
  }
}

/* Clear program groupings inside the existing Canada service section. */
.credit-route { margin-top: 1.25rem; }
.credit-route h3 { margin: 0 0 .7rem; color: #fff; font-size: 1.15rem; line-height: 1.4; }
.credit-route ul { grid-template-columns: 1fr; margin: 0; }
.credit-route p, .service-band .credit-note { font-size: .92rem; line-height: 1.65; }
.credit-route a { text-decoration-color: var(--eps-green); text-underline-offset: .2em; }

/* Dimensional EPS artwork; the light follows its original outer bezel. */
.brand-artwork { position:relative; display:block; width:124px; height:74.48px; overflow:visible; flex:none; }
.brand-artwork img { position:absolute; inset:0; width:100%; height:100%; max-width:100%; object-fit:contain; }
.brand-ring-light { pointer-events:none; }
@media (max-width:1160px) and (min-width:861px) { .services-index { top:102px; } .service-band { scroll-margin-top:152px; } }
@media (max-width:860px) {
  .site-header { padding:12px 22px; }
  .brand-artwork { width:112px; height:67.28px; }
  .brand { margin-bottom:10px; }
}
@media (prefers-reduced-motion:reduce) { .brand-ring-light { display:none; } }

/* Keep section anchors below the actual two-row phone navigation. */
:root { --site-header-offset: 74px; }
.services-index { top: var(--site-header-offset); }
.service-band { scroll-margin-top: calc(var(--site-header-offset) + 52px); }
.contact-layout { padding-top: var(--site-header-offset); }
@media (max-width: 1160px) and (min-width: 861px) {
  :root { --site-header-offset: 104px; }
}
@media (max-width: 860px) {
  :root { --site-header-offset: 132px; }
  .facility-standalone { padding-top: 164px; }
}
@media (max-width: 560px) {
  .services-cta h2 { font-size: clamp(2.3rem, 10vw, 2.8rem); }
}

.canadian-content-note { margin-top: 1.8rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.14); }
.canadian-content-note h3 { margin: 0 0 .55rem; color: rgba(255,255,255,.8); font-size: .96rem; line-height: 1.45; }
.canadian-content-note p { margin: 0; font-size: .9rem; line-height: 1.65; }
.service-copy .canadian-content-note ul { margin-top: .8rem; grid-template-columns: 1fr; }
.service-copy .canadian-content-note li { font-size: .9rem; line-height: 1.65; }
.canadian-content-note a { text-decoration-color: var(--eps-green); text-underline-offset: .2em; }

/* Approved faster EPS opening with sound; the existing reel follows. */
.hero-opening { position:absolute; inset:0; z-index:4; display:grid; place-items:center; background:#000; opacity:1; visibility:visible; transition:opacity .28s ease, visibility .28s; }
.hero-opening.is-finished { opacity:0; visibility:hidden; pointer-events:none; }
.hero-opening-logo-stage { position:relative; width:min(74vw,860px); aspect-ratio:1901 / 1142; transform:scale(.99); transform-origin:center; }
.hero-opening-logo { width:100%; height:100%; object-fit:contain; }
.hero-opening.is-playing .hero-opening-logo-stage { animation:eps-logo-launch 2.2s cubic-bezier(.2,.75,.2,1) both; }
@keyframes eps-logo-launch {
  0% { transform:scale(.99); filter:brightness(.94); }
  6.5% { transform:scale(.95); filter:brightness(.72); }
  12% { transform:scale(1.014); filter:brightness(1.04); }
  20.7% { transform:scale(.90); filter:brightness(.58); }
  28% { transform:scale(1.022); filter:brightness(1.06); }
  42% { transform:scale(.996); filter:brightness(1); }
  100% { transform:scale(1); filter:brightness(1); }
}
.hero-opening-ring-light {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  opacity:0;
  pointer-events:none;
}
.hero-opening-ring-light ellipse {
  fill:none;
  stroke:rgba(196,235,255,.98);
  stroke-width:8;
  stroke-linecap:round;
  stroke-dasharray:8 92;
  stroke-dashoffset:100;
  filter:drop-shadow(0 0 7px rgba(48,150,255,.95)) drop-shadow(0 0 15px rgba(27,109,225,.64));
}
.hero-opening.is-playing .hero-opening-ring-light { animation:eps-ring-orbit 1.13s cubic-bezier(.3,.7,.2,1) .69s both; }
.hero-opening.is-playing .hero-opening-ring-light ellipse { animation:eps-ring-travel 1.13s linear .69s both; }
@keyframes eps-ring-orbit {
  0% { opacity:0; }
  10% { opacity:.92; }
  78% { opacity:1; }
  100% { opacity:0; }
}
@keyframes eps-ring-travel {
  from { stroke-dashoffset:100; }
  to { stroke-dashoffset:0; }
}
.hero-opening-controls { position:absolute; z-index:5; bottom:max(28px,env(safe-area-inset-bottom)); left:5vw; right:5vw; display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:12px; }
.hero-opening-controls { transition:opacity 180ms ease; }
.opening-sound,.opening-skip { min-height:44px; padding:12px 20px; border-radius:999px; font:600 14px/1.3 Arial,sans-serif; cursor:pointer; }
.opening-sound { color:#041223; background:#42b9e6; border:1px solid #42b9e6; }
.opening-skip { color:#fff; background:rgba(0,0,0,.65); border:1px solid rgba(255,255,255,.4); }
.opening-sound:focus-visible,.opening-skip:focus-visible { outline:2px solid #fff; outline-offset:4px; }
.opening-skip[hidden] { display:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:560px) { .hero-opening-controls { bottom:24px; } .opening-sound,.opening-skip { padding:11px 16px; font-size:13px; } }
@media (prefers-reduced-motion:reduce) { .hero-opening-ring-light { display:none; } }

.hero-frame:not([src]) { visibility:hidden; }

/* September 2026 approved modern EPS identity. */
.brand-artwork {
  width: 126px;
  height: 75.70px;
  filter: brightness(1.06) contrast(1.04) drop-shadow(0 0 13px rgba(40, 130, 235, .24));
  transition: filter 180ms ease, transform 180ms ease;
}
.brand-lockup:hover .brand-artwork,
.brand-lockup:focus-visible .brand-artwork {
  filter: drop-shadow(0 0 18px rgba(61, 155, 255, .42));
  transform: translateY(-1px);
}
.brand-ring-light { display:none; }
.hero-opening {
  background:#000;
}
.hero-opening-logo { filter:drop-shadow(0 24px 58px rgba(0,0,0,.5)); }
.opening-sound {
  color:#f7fbff;
  background:linear-gradient(135deg,#155fb5,#278be8);
  border:1px solid rgba(132,200,255,.72);
  box-shadow:0 12px 32px rgba(15,105,200,.3), inset 0 1px 0 rgba(255,255,255,.18);
}
.opening-skip {
  background:rgba(6,15,27,.78);
  border-color:rgba(183,213,242,.34);
}
.news-section,
.logo-wall,
.site-footer { background:#05070a; }
.news-heading,
.logo-heading,
.site-footer { border-color:rgba(126,185,247,.16); }
.news-heading a,
.site-footer .social-links a:hover,
.site-footer .social-links a:focus-visible { color:#77b9ff; }
.news-item img,
.pillar-tile,
.facility-card,
.service-band {
  border-color:rgba(126,185,247,.13);
  box-shadow:0 20px 55px rgba(0,0,0,.18);
}
.contact-intro { background:linear-gradient(145deg,#0a2340,#0e518f); }
.contact-form button {
  color:#eef7ff;
  background:linear-gradient(135deg,#145fae,#2b91eb);
  box-shadow:0 12px 30px rgba(17,105,190,.26);
}
.services-hero,
.canada-hero,
.facility-hero {
  background-color:var(--navy-deep);
}
.service-kicker,
.facility-kicker,
.canada-kicker { color:#83c1ff; }

@media (max-width:860px) {
  .brand-artwork { width:116px; height:69.69px; }
}

/* Andrew Minett supplied identity — October 7, 2026. */
:root { --blue:#304dcc; --blue-bright:#9cb5ff; --navy:#151d49; --navy-deep:#090d24; --silver:#e1e3ed; --eps-green:#9cb5ff; }
body { background:radial-gradient(circle at 72% 0,rgba(48,77,204,.16),transparent 45%),var(--black); }
.brand-artwork { width:190px; height:80px; overflow:hidden; filter:none; }
.brand-artwork img { width:190px; height:107px; max-width:none; top:-13px; object-fit:contain; }
.brand-lockup:hover .brand-artwork,.brand-lockup:focus-visible .brand-artwork { filter:drop-shadow(0 0 10px rgba(156,181,255,.22)); }
.hero-opening-video { width:100%; height:100%; object-fit:contain; background:#000; }
.opening-sound,.contact-form button { color:#fff; background:linear-gradient(135deg,#1a286a,#304dcc); border-color:#9cb5ff; box-shadow:0 12px 30px rgba(48,77,204,.22); }
.opening-skip { background:rgba(9,13,36,.85); }
.contact-intro { background:linear-gradient(145deg,#101633,#263b9b); }
.service-kicker,.facility-kicker,.canada-kicker,.news-heading a,.site-footer .social-links a:hover { color:#b4c5ff; }
.site-header,.news-heading,.logo-heading,.site-footer { border-color:rgba(184,195,231,.2); }
.primary-nav a:hover,.primary-nav a:focus-visible { color:#b4c5ff; }
@media (max-width:860px) { .brand-artwork { width:166px; height:70px; } .brand-artwork img { width:166px; height:94px; top:-12px; } }
/* October 2026 review: real photography, useful destinations, shared brand. */
.inner-page { background:#080b13; }
.editorial-hero { min-height:70vh; display:flex; align-items:flex-end; padding:160px 7vw 80px; background:linear-gradient(90deg,rgba(4,7,15,.91) 0%,rgba(4,7,15,.60) 48%,rgba(4,7,15,.15)),var(--page-image) center/cover; }
.editorial-hero>div { max-width:900px; }
.editorial-hero h1 { font-size:clamp(3rem,6.5vw,7rem); line-height:1.02; letter-spacing:-.055em; margin:20px 0 25px; }
.editorial-hero p:last-child { max-width:650px; font-size:clamp(1.05rem,1.4vw,1.3rem); line-height:1.65; color:#d1d7e5; }
.editorial-section,.reel-section { padding:85px 7vw; }
.editorial-section h2,.section-heading h2 { font-size:clamp(2rem,3.5vw,3.7rem); line-height:1.1; letter-spacing:-.045em; max-width:950px; margin:18px 0 32px; }
.editorial-section p,.section-heading>p:last-child { color:#bfc8d9; line-height:1.75; font-size:1.1rem; }
.wide-copy { max-width:840px; }
.copy-columns,.two-up-copy { display:grid;grid-template-columns:1fr 1fr;gap:6vw; }
.copy-columns p { margin:0; }
.inline-actions { display:flex;flex-wrap:wrap;gap:30px;margin-top:35px; }
.inline-actions a,.text-link { color:#bbccff;display:inline-block;padding:14px 0;text-underline-offset:6px; }
.work-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:0 7vw 80px; }
.work-card { display:block; background:#11192a;border:1px solid #25314a;overflow:hidden;text-decoration:none;border-radius:4px; }
.work-card img { display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s; }
a.work-card:hover img { transform:scale(1.03); }
.work-card>div { padding:25px; }
.work-card h2,.work-card h3 { color:#f6f7ff;font-size:clamp(1.5rem,2.3vw,2.4rem);letter-spacing:-.03em;margin:10px 0; }
.category-grid { grid-template-columns:1fr 1fr;padding-top:75px; }
.category-grid img { aspect-ratio:16/9; }
.category-grid h2 { display:flex;justify-content:space-between; }
.reel-section { background:#0e1423; }
.reel-section video { width:100%;max-height:75vh;display:block;background:#000;border:1px solid #29334b; }
.section-heading { margin-bottom:36px; }
.brand-proof { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px;margin-top:35px; }
.brand-proof>div { display:grid;justify-items:center;align-content:center;gap:20px;background:#11192a;padding:30px 12px;border:1px solid #25314a; }
.brand-proof img { width:90px;height:70px;object-fit:contain;background:white;padding:10px;border-radius:4px; }
.brand-proof span { color:#d9dfee;font-size:.85rem; }
.about-capabilities { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#28334a;margin:0 7vw 70px;border:1px solid #28334a; }
.about-capabilities>a { background:#101725;padding:40px 30px;text-decoration:none; }
.about-capabilities span { color:#9cb5ff;font-size:.7rem;letter-spacing:.15em; }
.about-capabilities h2 { color:white;font-size:2rem;line-height:1.15;margin:24px 0;letter-spacing:-.04em; }
.about-capabilities p { color:#bfc8d9;line-height:1.7; }
.about-capabilities strong { display:block;color:#bbccff;margin-top:30px;font-size:.9rem; }
.facility-photo-grid { display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:0 7vw 80px; }
.facility-photo-grid figure { margin:0; }
.facility-photo-grid img { width:100%;aspect-ratio:3/2;object-fit:cover;display:block; }
.facility-photo-grid figcaption { padding:18px 0;color:#cdd6e7;font-size:1.05rem; }
.facility-photo-grid figure:last-child { grid-column:1/-1; }
.facility-photo-grid figure:last-child img { max-height:500px; }
.workflow-art { min-height:420px;align-self:stretch;padding:40px;background:radial-gradient(ellipse at top right,#243773,#101827 70%);border:1px solid #3a4c71;display:flex;flex-direction:column;justify-content:center; }
.shot-frame { border:1px solid #7d9dcc;position:relative;padding:28px;min-height:245px;display:flex;flex-direction:column;justify-content:space-between; }
.shot-frame span { font-size:.7rem;letter-spacing:.22em;color:#bbccff; }
.shot-frame strong { font-size:clamp(1.4rem,2.3vw,2.4rem);line-height:1.1;max-width:300px; }
.frame-crosshair { position:absolute;right:30px;top:50%;color:#7195d9;font-size:4rem;font-weight:200; }
.workflow-art ol { display:flex;gap:15px;list-style:none;padding:0;margin:30px 0 0; }
.workflow-art li { color:#cdd8ee;font-size:.8rem;flex:1; }
.workflow-art li b { display:block;color:#8baeff;font-size:1.25rem;margin-bottom:8px; }
.delivery-art { text-align:center;align-items:center; }
.master-tile { margin:28px 0 42px;padding:35px;border:1px solid #92adf2;background:#1b2b51;font-size:1.3rem;font-weight:700;letter-spacing:.15em;box-shadow:0 15px 60px #070c1d; }
.delivery-outputs { display:flex;gap:12px;width:100%; }
.delivery-outputs span { flex:1;border-top:1px solid #6388c7;padding:20px 4px;font-size:.68rem;letter-spacing:.1em; }
.delivery-art p { color:#99acce;font-size:.8rem; }
.currency-board { background:linear-gradient(145deg,#172149,#263c82);border:1px solid #617dbd; }
.logo-mark[hidden] { display:none; }
.logo-marquee:hover .logo-track,.logo-marquee:focus-within .logo-track { animation-play-state:paused; }
.nav-item:focus-within .nav-dropdown { opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0); }
a:focus-visible,button:focus-visible,video:focus-visible { outline:2px solid #b4c5ff;outline-offset:5px; }
@media(max-width:900px) {
 .about-capabilities { grid-template-columns:1fr; }
 .brand-proof { grid-template-columns:repeat(3,1fr); }
 .workflow-art { padding:25px; }
}
@media(max-width:640px) {
 .editorial-hero { min-height:560px;padding:170px 6vw 55px; }
 .editorial-section,.reel-section { padding:55px 6vw; }
 .copy-columns,.two-up-copy,.work-grid,.facility-photo-grid { grid-template-columns:1fr;gap:25px; }
 .work-grid { padding:40px 6vw; }
 .about-capabilities { margin:0 6vw 50px; }
 .facility-photo-grid { padding:0 6vw 45px; }
 .brand-proof { grid-template-columns:1fr 1fr;gap:10px; }
 .workflow-art { min-height:350px; }
}
@media(max-width:640px) {
 .primary-nav { width:100%;max-width:100%;gap:0;justify-content:space-between;overflow:visible;padding-bottom:0; }
 .primary-nav > a,.primary-nav > .nav-item > a { font-size:11px;letter-spacing:0; }
}
.feature-credit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:640px) { .feature-credit-grid { grid-template-columns:1fr; } }

#film img { object-position: 50% 28%; }
#episodic img { object-position: 74% 42%; }

#episodic img { object-position: 50% 45%; }

/* Keep the branded house reel and its player controls fully visible. */
.hero-frame[data-hero-reel] {
  inset: 0;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  transform: none;
}

.design-reel { padding: clamp(24px, 5vw, 80px); background: #080808; color: #fff; }
.design-reel h2 { font-size: clamp(1.8rem, 4vw, 3.6rem); margin: 0 0 28px; }
.design-reel-player { aspect-ratio: 16 / 9; position: relative; background: #000; }
.design-reel-player iframe { width: 100%; height: 100%; border: 0; }
.design-reel a { color: inherit; }

@media(max-width:860px) { .home-page .site-header { opacity:1;visibility:visible;pointer-events:auto;transform:none; } }
.hero-explore { position: absolute; bottom: max(62px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); z-index: 4; padding: 13px 24px; border: 1px solid #ffffff80; border-radius: 999px; background: #080808d9; color: white; text-decoration: none; font-weight: 600; white-space: nowrap; }
#statement { scroll-margin-top: var(--site-header-offset, 132px); }
@media (max-width: 860px) {
 .home-page .hero-frame[data-hero-reel] { top: var(--site-header-offset, 132px); height: calc(100% - var(--site-header-offset, 132px)); }
}

.hero-playback { position:absolute; bottom:20px; left:20px; z-index:4; display:flex; gap:8px; }
.hero-playback button { background:#111d; border:1px solid #ffffff70; color:#fff; border-radius:30px; padding:10px 16px; cursor:pointer; }
@media (max-width:860px) {
 .home-page .hero { height:auto; min-height:0; padding-top:var(--site-header-offset,132px); background:#050505; }
 .home-page .hero-frame[data-hero-reel] { position:relative; inset:auto; display:block; width:100%; height:auto; aspect-ratio:100 / 52.73; min-height:0; }
 .home-page .hero-fade { display:none; }
 .home-page .hero-playback { position:relative; left:auto; bottom:auto; justify-content:center; margin:14px 12px 0; }
 .home-page .hero-explore { position:relative; display:block; width:max-content; left:auto; bottom:auto; transform:none; margin:12px auto 20px; padding:10px 20px; }
}

.hero-fallback { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#050505; }
.hero-fallback[hidden],.hero-frame[data-hero-reel][hidden] { display:none; }
.hero-frame[data-hero-reel] { opacity:0; }
.hero-frame[data-hero-reel].is-playing { opacity:1; }
@media(max-width:860px) {
 .home-page .hero-fallback { position:relative; display:block; width:100%; height:auto; aspect-ratio:16 / 9; object-fit:contain; }
 .home-page .hero-fallback[hidden] { display:none; }
 .home-page .hero-frame[data-hero-reel] { position:absolute; top:var(--site-header-offset,132px); left:0; width:100%; height:auto; aspect-ratio:16 / 9; }
 .home-page .hero-frame[data-hero-reel].is-playing { position:relative; top:auto; }
}

.contact-hub { min-height:80vh; padding:calc(var(--site-header-offset) + 48px) 7vw 64px; background:#080a12; }
.contact-hub h1 { font-size:clamp(3.5rem,9vw,8rem); line-height:1; margin:20px 0; }
.contact-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:40px 0 60px; }
.contact-actions a { display:flex; flex-direction:column; justify-content:space-between; gap:30px; padding:32px; border:1px solid #ffffff40; border-radius:16px; color:#fff; text-decoration:none; background:linear-gradient(140deg,#17294a,#10121b); }
.contact-actions a:hover,.contact-actions a:focus-visible { border-color:#b4c5ff; background:#20345c; }
.contact-actions strong { font-size:clamp(1.3rem,2.5vw,2rem); }
.contact-actions span { color:#c7cddd; line-height:1.5; }
.contact-location { border-top:1px solid #ffffff30; padding-top:32px; }
.contact-location a,.contact-intro a { color:inherit; }
.contact-location address { font-style:normal; line-height:1.7; }
.enquiry-page .contact-intro h1 { font-size:clamp(2.8rem,5vw,5rem); }
.contact-form .call-preference { display:flex; align-items:center; gap:12px; text-transform:none; }
.contact-form .call-preference input { width:20px; height:20px; }
.delivery-note { font-size:.9rem; line-height:1.5; color:#c7cddd; }
@media(max-width:860px) { .contact-hub { padding:calc(var(--site-header-offset) + 28px) 22px 40px; } .contact-actions { grid-template-columns:1fr; gap:12px; margin:28px 0 36px; } .contact-actions a { padding:24px; gap:14px; } }

.contact-hub { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:48px; row-gap:36px; }
.contact-hub-intro { grid-column:1 / -1; }
.contact-location { border:0; padding-top:12px; align-self:center; }
.contact-location h2 { font-size:clamp(1.8rem,3vw,3rem); margin:16px 0 24px; }
.contact-location p { font-size:clamp(1rem,2vw,1.4rem); line-height:1.8; }
.contact-map { min-width:0; overflow:hidden; border:1px solid #ffffff30; border-radius:18px; background:#152033; }
.contact-map iframe { display:block; width:100%; height:300px; border:0; }
.contact-map > a { display:block; padding:18px 24px; color:#fff; font-weight:700; text-decoration:none; }
@media(max-width:860px) { .contact-hub { grid-template-columns:1fr; gap:24px; } .contact-map iframe { height:260px; } }

.contact-hub > .contact-actions { grid-column:1 / -1; margin:12px 0 0; }

.contact-map > .map-preview { position:relative; display:block; padding:0; height:300px; overflow:hidden; }
.map-preview img { width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.map-preview span { position:absolute; top:16px; left:16px; background:#101420ed; border-radius:6px; padding:10px 14px; color:#fff; font-size:14px; }
@media(max-width:860px) { .contact-map > .map-preview { height:300px; } }

.map-attribution { display:block; padding:6px 12px; background:#fff; color:#222; font-size:11px; }.map-attribution a { color:inherit; }

/* Reels watch hub: five categories, Commercial / Branded last. */
.reel-gallery{max-width:1400px;margin:0 auto;padding:0 clamp(20px,5vw,80px) 90px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 28px}.reel-gallery-card{min-width:0}.reel-gallery-card h2{font-size:clamp(23px,3vw,36px);margin:0 0 18px}.reel-gallery-card:first-child{grid-column:1/-1}.reel-pending{aspect-ratio:16/9;background:#111;display:grid;place-items:center;border:1px solid #333;color:#aaa}.reel-gallery .design-reel-player{margin:0;width:100%}@media(max-width:700px){.reel-gallery{grid-template-columns:1fr;gap:34px}.reel-gallery-card:first-child{grid-column:auto}.primary-nav{gap:clamp(8px,2.4vw,16px)}}

.reel-gallery-card{scroll-margin-top:130px}
.reel-load-controls{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);width:min(90%,380px);padding:20px;background:#080b10ed;color:#fff;text-align:center;border:1px solid #ffffff33;border-radius:8px}.reel-load-controls p{margin:0 0 12px}.reel-load-controls button{padding:12px 20px;background:#fff;color:#111;border:0;border-radius:5px;font:inherit;cursor:pointer}.reel-load-controls button:disabled{opacity:.65;cursor:wait}.reel-load-controls a{display:block;margin-top:12px;text-decoration:underline}.reel-load-controls[hidden],.reel-load-controls a[hidden]{display:none}

/* Reels opens a menu; only its children navigate to a player. */
.reels-menu-button{appearance:none;background:none;border:0;padding:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;white-space:nowrap}
.reels-menu-button:hover,.reels-menu-button:focus-visible{color:#b4c5ff}
@media(max-width:1100px){.primary-nav .reels-menu-button{font-size:11px;letter-spacing:0}}

/* Service review: editorial type, actual room photography, quieter navigation. */
.service-refresh{background:#08090b;color:#f7f7f4}
.service-refresh .services-hero{min-height:58vh;padding:clamp(150px,15vw,220px) 7vw 64px;background:#08090b;position:relative;border-bottom:1px solid #ffffff20}
.service-refresh .services-hero:after{content:'';position:absolute;bottom:0;left:7vw;width:64px;height:3px;background:#b4c5ff}
.service-refresh .services-hero h1{max-width:1100px;font-size:clamp(44px,6.5vw,104px);letter-spacing:-.055em;line-height:1.01;font-weight:500}
.service-refresh .services-hero>p:last-child{max-width:650px;font-size:clamp(16px,1.4vw,21px);line-height:1.6}
.service-refresh .section-kicker{font-size:11px;letter-spacing:.2em;color:#b5bfd2}
.service-refresh .service-band{min-height:500px;margin:0 5vw;gap:4vw;border-bottom:1px solid #ffffff20;align-items:center;padding:56px 0}
.service-refresh .service-band-copy{padding:25px 2vw}
.service-refresh .service-band h2{font-weight:500;letter-spacing:-.045em;line-height:1.02;font-size:clamp(36px,4.6vw,68px)}
.service-refresh .service-band>img{height:480px;min-height:0;object-fit:cover}
.service-refresh .service-band li{padding-left:0;border-top:1px solid #ffffff20;padding-top:10px;font-size:14px}
.service-refresh .service-band li:before{content:none}
.service-contact{padding:52px 7vw;border-bottom:1px solid #ffffff20}
.service-contact>a{display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:#fff;font-size:clamp(30px,5vw,64px);letter-spacing:-.04em}
.service-contact>a span{font-size:.8em;transition:transform .2s}
.service-contact>a:hover span{transform:translate(5px,-5px)}
.service-services .service-band,.service-services .service-band.is-reverse{display:block;min-height:0;padding:34px 0;margin:0 7vw}
.service-services .service-band-copy{padding:16px 0;max-width:1000px}
.service-services .service-band h2{font-size:clamp(30px,4vw,56px)}
.service-services .service-band h2 a{color:inherit;text-decoration:none;display:flex;justify-content:space-between;gap:20px}
.service-services .service-band h2 a:hover{color:#b4c5ff}
.service-services .workflow-art{display:none}
.service-services .service-band ul{display:flex;flex-wrap:wrap;gap:10px 28px}
.service-services .service-band li{border:0;padding:0}
.service-refresh .services-index{top:80px;gap:22px;padding:18px 7vw}
@media(max-width:700px){.service-refresh .services-hero{min-height:0;padding:150px 24px 42px}.service-refresh .services-hero h1{font-size:44px}.service-refresh .service-band,.service-refresh .service-band.is-reverse{grid-template-columns:1fr;min-height:0;margin:0 24px;padding:34px 0;gap:20px}.service-refresh .service-band.is-reverse .service-band-copy{order:0}.service-refresh .service-band-copy{padding:0}.service-refresh .service-band>img{height:auto;aspect-ratio:4/3}.service-contact{padding:36px 24px}.service-refresh .services-index{padding:16px 24px}}
@media(prefers-reduced-motion:reduce){.service-contact>a span{transition:none}}

.service-project-image{margin:0;position:relative;height:520px;background:#101114;overflow:hidden}.service-project-image img{display:block;width:100%;height:100%;object-fit:contain}.service-project-image figcaption{position:absolute;bottom:0;left:0;right:0;background:#08090be8;padding:14px 20px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#c7c7c7}
.service-contact>a{font-size:clamp(24px,3vw,36px);max-width:620px}.service-contact{padding-top:34px;padding-bottom:34px}

.brand-proof-window{overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
.brand-proof-motion{display:flex;width:max-content;animation:brand-client-flow 40s linear infinite}
.brand-proof-group{display:flex;align-items:center;gap:64px;padding:28px 32px;flex-shrink:0}
.brand-proof-group>div{width:144px;flex-shrink:0;display:grid;justify-items:center;gap:15px}
.brand-proof-group img{width:112px;height:64px;object-fit:contain;filter:none;opacity:1;background:#fff;padding:8px;border-radius:4px;box-sizing:border-box}
.brand-proof-group span{font-size:11px;letter-spacing:.08em;color:#a6abb5;text-align:center}
.brand-proof-window:hover .brand-proof-motion,.brand-proof-window.is-paused .brand-proof-motion{animation-play-state:paused}
.logo-motion-toggle{margin-top:14px;border:0;background:none;color:#b7bdc8;font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
@keyframes brand-client-flow{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.brand-proof-motion{animation:none}.brand-proof-window{overflow:auto;mask-image:none}.brand-proof-group[aria-hidden]{display:none}.logo-motion-toggle{display:none}}

/* Visual audit: avoid presenting a second crop as a different room. */
.service-refresh .service-band.service-band-text{display:block;min-height:0;padding-block:clamp(48px,7vw,100px)}
.service-refresh .service-band-text .service-band-copy{max-width:1000px;margin-inline:auto;width:100%;box-sizing:border-box}
.service-refresh .service-band-text ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
@media(max-width:640px){.service-refresh .service-band-text ul{grid-template-columns:1fr}}

.hero-volume{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#111d;color:#fff;border-radius:24px;font-size:13px}.hero-volume input{width:90px;accent-color:#9bbaff}.hero-playback{flex-wrap:wrap}

/* Restore the approved cinematic desktop entry. Navigation stays an overlay. */
@media(min-width:861px){
 .home-page .hero{height:100svh;min-height:100svh;padding:0;overflow:hidden;background:#000}
 .home-page .hero-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}
 .home-page .hero-frame[data-hero-reel]{position:absolute;top:50%;left:50%;width:max(100vw,177.778svh);height:max(100svh,56.25vw);transform:translate(-50%,-50%);border:0}
 .home-page .hero-fade{pointer-events:none}
}

/* The homepage hero fills the viewport; dedicated reel pages preserve the full frame. */

/* October 18 review: distinct room photography, readable release artwork, direct reel selection. */
.news-ghosts img{object-fit:contain;background:#101215}
.reel-switcher{position:fixed;z-index:45;top:var(--reel-header-height,132px);left:0;right:0;display:flex;justify-content:center;gap:6px;padding:10px 16px;background:rgba(9,12,18,.94);border-bottom:1px solid #ffffff24;overflow-x:auto;scrollbar-width:thin}
.reel-switcher a{white-space:nowrap;padding:8px 14px;border-radius:30px;text-decoration:none;color:#cbd0dc;font-size:13px;letter-spacing:.025em}
.reel-switcher a:hover,.reel-switcher a[aria-current]{color:#111;background:#fff}
.reel-viewer-page .reel-gallery{padding-top:calc(var(--reel-header-height,132px) + 58px)}
.reel-viewer-page .reel-gallery .design-reel-player{height:calc(100svh - var(--reel-header-height,132px) - 58px)}
@media(max-width:640px){.reel-switcher{justify-content:flex-start;gap:2px;padding-inline:10px}.reel-switcher a{padding:8px 11px;font-size:12px}.facility-photo-grid figure:last-child{grid-column:auto}}

.canada-page .services-hero{background:linear-gradient(90deg,rgba(3,6,9,.91),rgba(3,6,9,.28)),url("./assets/studio-2026/hero-console-eps.webp") center/cover}


.news-item h3 a { color: inherit; text-decoration: none; }
.news-item h3 a:hover { text-decoration: underline; text-underline-offset: .16em; }
.news-detail { margin-top: 1rem; }
.news-detail summary { cursor: pointer; font-weight: 600; }
.news-detail[open] summary { margin-bottom: .75rem; }

/* A paused opening is an explicit invitation, not an unexplained logo. */
.hero-start{position:absolute;z-index:5;left:50%;top:55%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;padding:18px 25px;border:1px solid #ffffffb3;border-radius:40px;background:#080b10ed;color:#fff;font-family:inherit;font-size:18px;font-weight:600;line-height:1.2;box-shadow:0 8px 40px #0008;cursor:pointer;white-space:nowrap}.hero-start span{font-size:24px}.hero-start[hidden]{display:none}.hero-start:focus-visible{outline:3px solid #9bbaff;outline-offset:5px}.hero:fullscreen{width:100vw;height:100vh;background:#000}.hero:fullscreen .hero-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.hero:fullscreen .hero-frame{position:absolute;inset:0;width:100%;height:100%;transform:none}.hero:fullscreen .hero-playback{position:absolute;left:20px;bottom:20px}

.hero-status{max-width:340px;align-self:center;color:#fff;font-size:13px;line-height:1.4;background:#080b10e8;border-radius:8px;padding:8px 12px}.hero-status:empty{display:none}

/* Compact familiar player controls; names remain available to assistive technology. */
.hero-playback{gap:6px;align-items:center}.hero-playback button{width:40px;height:40px;padding:10px;display:inline-grid;place-items:center;border:0;border-radius:50%;background:#080b10c9}.hero-playback button svg{width:20px;height:20px;display:block}.hero-volume{padding:8px 10px;background:#080b10c9}.hero-volume input{width:72px}.hero-playback button:hover{background:#ffffff30}.hero-playback button:focus-visible{outline:2px solid #fff;outline-offset:3px}

.hero-volume{max-width:0;opacity:0;overflow:hidden;padding:0;pointer-events:none;transition:max-width .18s,opacity .18s,padding .18s}.hero-playback:hover .hero-volume,.hero-playback:focus-within .hero-volume{max-width:110px;opacity:1;padding:8px 10px;pointer-events:auto}@media(hover:none){.hero-playback:focus-within .hero-volume{max-width:110px}}

/* A quiet, optional invitation; never an entrance gate over the approved reel. */
.hero-watch-sound{position:absolute;right:24px;bottom:24px;z-index:5;display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border:1px solid #ffffff70;border-radius:999px;background:#080b10d9;color:#fff;font:500 14px/1.2 Arial,sans-serif;cursor:pointer;backdrop-filter:blur(12px)}
.hero-watch-sound[hidden]{display:none}
.hero-watch-sound:hover{background:#26354be8;border-color:#fff}
.hero-watch-sound:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(max-width:600px){.hero-watch-sound{right:16px;bottom:80px;font-size:13px;padding:11px 15px}}

/* Non-hero reels: suppress Vimeo thumbnails/stale frames until actual playback. */
.design-reel-player iframe.reel-start-frame{opacity:0;pointer-events:none}
.design-reel-player iframe.reel-start-frame[data-reel-visible="true"]{opacity:1;pointer-events:auto}
.reel-clean-play{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:64px;height:48px;border:1px solid #ffffff66;border-radius:5px;background:#111;color:#fff;cursor:pointer}
.reel-clean-play svg{width:25px;height:25px}
.reel-clean-play[hidden],.reel-clean-fallback[hidden]{display:none}
.reel-clean-play:disabled{opacity:.5;cursor:wait}
.reel-clean-fallback{position:absolute;z-index:4;left:50%;top:65%;transform:translateX(-50%);color:#fff}

/* Keep Advertising composited while its black startup cover masks Vimeo artwork. */
.design-reel-player iframe.reel-start-frame[data-reel-progress-gate="true"]{opacity:1}
.design-reel-player:has(iframe[data-reel-progress-gate="true"][data-reel-visible="false"])::after{content:"";position:absolute;inset:0;background:#000;opacity:.999;z-index:1;pointer-events:none}

/* Partner review: navigation is visible from first paint on every device. */
.home-page .site-header { opacity:1; transform:none; }

/* Current TD campaign: centre the supplied end card around its wordmark. */
img.td-campaign-art { object-fit:cover !important; background:#000; }
.td-feature { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(24px,5vw,80px); }
.td-feature-art { background:#000; height:320px; display:flex; justify-content:center; }
.td-feature-art img { height:100%; width:100%; object-fit:cover; }
@media(max-width:700px) { .td-feature { grid-template-columns:1fr; } .td-feature-art { height:260px; } }

/* October 26 review: consistent editorial rhythm and compact film gallery. */
.news-grid { column-gap:46px; row-gap:18px; }
.news-item { grid-row:span 5; grid-template-rows:subgrid; align-content:start; }
.news-item > img { display:block; aspect-ratio:1/1; height:auto; object-fit:contain; background:#101215; }
.news-item > time { margin-top:12px; }
.news-item > h3, .news-item > p { align-self:start; }
.news-item > .news-detail, .news-item > .text-link { align-self:start; }
.pillar-tile#brand { background:#050505; }
.pillar-tile#brand > img { object-fit:contain; object-position:center 35%; }
.pillar-tile#canada > img { object-position:50% 55%; }
.feature-credit-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.feature-credit-grid .work-card img { aspect-ratio:4/3; object-fit:cover; }
.feature-credit-grid .work-card > div { padding:18px 20px; }
.feature-credit-grid .work-card h3 { font-size:clamp(1.15rem,2vw,1.6rem); }
.map-preview img { object-position:55% 60%; }
.map-preview span { border:1px solid #ffffff35; box-shadow:0 8px 25px #0002; }
.map-preview span strong,.map-preview span small { display:block; }
.map-preview span strong { font-size:17px; margin-bottom:5px; }
.map-preview span small { font-size:12px; font-weight:400; color:#d2d7df; }
.contact-map > a:last-child { display:flex; justify-content:space-between; background:#101419; }
@media(max-width:900px) { .feature-credit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
 .news-item { grid-row:auto; grid-template-rows:none; gap:18px; }
 .news-grid { row-gap:44px; }
}
@media(max-width:480px) { .feature-credit-grid { gap:16px; } .feature-credit-grid .work-card > div { padding:12px; } }

.feature-credit-grid .work-card img { aspect-ratio:2/3; object-fit:contain; background:#080a0e; }
.film-credit { margin-top:12px; font-size:.85rem; color:#cdd6e7; }
.film-credit summary { cursor:pointer; }
.film-credit p { font-size:.9rem; line-height:1.5; margin:12px 0; }
.film-credit a { color:inherit; }

/* October 27 partner review: shared type and service-label treatment. */
button, input, select, textarea { font-family: inherit; }
.news-item > .news-date { margin-top:12px; font-size:12px; font-weight:700; letter-spacing:.1em; color:var(--silver); }
.canada-page .canada-text-band { display:block; min-height:0; margin:0 7vw; padding:36px 0; }
.canada-page .canada-text-band .service-band-copy { padding:12px 0; max-width:1000px; }
.canada-page .canada-text-band h2 { font-size:clamp(30px,4vw,56px); }
.canada-page .canada-text-band p { max-width:780px; }
.service-vfx #vfx, .service-vfx #motion-design { display:block; min-height:0; margin:0 7vw; padding:36px 0; }
.service-vfx #vfx .service-band-copy, .service-vfx #motion-design .service-band-copy { padding:12px 0; max-width:1000px; }
@media(max-width:700px) { .canada-page .canada-text-band { margin:0 24px; padding:24px 0; } }

/* Real EPS spaces replace generic tax/accounting stock photography. */
.canada-page .canada-photo-band { min-height:0; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:5vw; margin:0 7vw; padding:56px 0; align-items:center; }
.canada-page .canada-photo-band .service-band-copy { padding:0; }
.canada-page .canada-photo-band h2 { font-size:clamp(30px,3.4vw,50px); }
.canada-editorial-photo { margin:0; min-width:0; }
.canada-editorial-photo img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; filter:saturate(.75) contrast(1.04); }
.canada-editorial-photo figcaption { margin-top:12px; font-size:12px; color:#b8c0cb; letter-spacing:.04em; }
@media(max-width:700px) {
 .canada-page .canada-photo-band { grid-template-columns:1fr; gap:24px; margin:0 24px; padding:32px 0; }
 .canada-page .canada-photo-band.is-reverse .service-band-copy { order:0; }
}

/* Keep the current Vimeo player visible even if autoplay or SDK readiness stalls. */
.home-page .hero-frame[data-hero-reel] { opacity:1; position:absolute; inset:0; width:100%; height:100%; transform:none; }

/* Review: consistent service previews and relevant Canada process visuals. */
.service-visual-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:clamp(28px,5vw,80px);align-items:center}
.service-thumbnail{display:block;color:inherit;text-decoration:none;border:1px solid #ffffff26;background:#11151b;overflow:hidden;border-radius:8px}
.service-thumbnail img{display:block!important;width:100%!important;aspect-ratio:16/9;height:auto!important;object-fit:cover}
.service-thumbnail span{display:flex;justify-content:space-between;padding:16px 20px;font-size:14px;font-weight:600}
.service-thumbnail:hover{border-color:#b6c9df}.service-thumbnail:focus-visible{outline:3px solid #b6c9df;outline-offset:4px}
.canada-process{padding:clamp(24px,4vw,54px);border:1px solid #ffffff24;background:linear-gradient(135deg,#19232e,#090d12);border-radius:10px}
.canada-process .process-number{font-size:48px;font-weight:300;color:#9fb4cb}.canada-process h3{font-size:26px;line-height:1.2;margin:16px 0 26px}
.canada-process ol{padding:0;list-style:none}.canada-process li{display:flex;gap:18px;align-items:center;border-top:1px solid #ffffff20;padding:17px 0;font-size:16px}.canada-process li span{color:#9fb4cb;font-size:12px}
.canada-location{margin:0 auto 48px;max-width:1280px;padding:0 24px}.canada-location img{width:100%;height:280px;object-fit:cover}.canada-location figcaption{font-size:12px;color:#aaa;padding:12px 0}
@media(max-width:760px){.service-visual-row{grid-template-columns:1fr}.service-thumbnail{width:100%}.canada-location img{height:180px}}
.service-services .service-band.service-visual-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)} .service-services .service-visual-row{scroll-margin-top:160px} @media(max-width:760px){.service-services .service-band.service-visual-row{grid-template-columns:1fr}}

.canada-page .services-hero{background:linear-gradient(90deg,rgba(3,6,9,.9),rgba(3,6,9,.35)),url("./assets/studio-2026-delivery/Skyline1.webp") center/cover}
.canada-page .canada-process li::before{content:none}.canada-page .canada-process li{padding-left:0}


/* Canada: concise services with real location photography. */
.canada-services-editorial{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,6vw,100px);margin:64px 7vw 80px;align-items:start}
.canada-service-list h2{font-size:clamp(30px,3.8vw,54px);line-height:1.08;margin:12px 0 32px;letter-spacing:-.035em}
.canada-service-item{border-top:1px solid #ffffff30;scroll-margin-top:150px}.canada-service-item:last-child{border-bottom:1px solid #ffffff30}
.canada-service-item summary{cursor:pointer;list-style:none}.canada-service-item summary::-webkit-details-marker{display:none}
.canada-service-title{display:flex;align-items:center;gap:14px;padding:21px 0;font-size:clamp(17px,1.5vw,22px);font-weight:500;line-height:1.3}
.canada-service-title::before{content:'';width:5px;height:5px;background:#bdcedf;border-radius:50%;flex-shrink:0}
.canada-service-title b{margin-left:auto;font-size:26px;font-weight:300;color:#bdcedf}.canada-service-item[open] .canada-service-title b{transform:rotate(45deg)}
.canada-service-detail{padding:0 0 24px 19px;line-height:1.6}.canada-service-detail p{font-size:16px}.canada-service-detail h3{font-size:19px}.canada-service-detail ul{padding-left:18px}
.canada-service-item summary:hover{color:#c6def2}.canada-service-item summary:focus-visible{outline:2px solid #b4c5ff;outline-offset:4px}
.canada-real-photo{margin:0;position:sticky;top:140px}.canada-real-photo img{display:block;width:100%;height:clamp(320px,40vw,570px);object-fit:cover;object-position:60% center;border-radius:3px}.canada-real-photo figcaption{padding-top:14px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#aeb8c0}
@media(max-width:760px){.canada-services-editorial{grid-template-columns:1fr;margin:36px 24px 48px;gap:30px}.canada-real-photo{position:static}.canada-real-photo img{height:280px}.canada-service-title{font-size:18px}}

.canada-services-editorial{margin-top:40px;margin-bottom:48px;gap:4vw}.canada-service-list h2{font-size:clamp(28px,3vw,44px);margin-bottom:22px}.canada-service-title{padding:17px 0}.canada-real-photo img{height:clamp(300px,33vw,440px)}

/* Four disciplines: actual spaces and reel-linked work, concise paths to details. */
.service-services .discipline-hero{min-height:0;padding:170px 7vw 64px;background:#080b10}.service-services .discipline-hero h1{font-size:clamp(48px,7vw,100px);line-height:1.02;max-width:1050px}.service-services .discipline-hero p:last-child{max-width:650px}
.disciplines{margin:0 7vw}.discipline{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:5vw;align-items:center;padding:64px 0;border-bottom:1px solid #ffffff25;scroll-margin-top:150px}.discipline-copy h2{font-size:clamp(32px,4vw,58px);line-height:1.05;letter-spacing:-.035em;margin:14px 0 20px}.discipline-copy>p:not(.section-kicker){max-width:440px;line-height:1.6;color:#c2c8cf}.discipline-links{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.discipline-links a{color:inherit;font-size:13px;text-decoration:none;border:1px solid #ffffff35;padding:10px 13px;border-radius:3px;scroll-margin-top:160px}.discipline-links a:hover{border-color:#b6c9df;background:#16202a}.discipline-watch{display:inline-flex;align-items:center;gap:24px;color:#fff;text-decoration:none;font-size:15px;font-weight:600;padding:12px 0;border-bottom:1px solid #c4d6ed}.discipline-visual{display:block;text-decoration:none;color:#fff;background:#11151c;overflow:hidden;border-radius:4px}.discipline-visual img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .25s ease}.discipline-visual:hover img{transform:scale(1.015)}.discipline-visual>span{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;font-size:13px;color:#d2d9e1}.discipline-visual b{font-size:20px}.discipline a:focus-visible,.delivery-strip summary:focus-visible{outline:3px solid #b4c5ff;outline-offset:4px}.delivery-strip{display:grid;grid-template-columns:1fr 1fr;gap:5vw;margin:0 7vw;padding:48px 0;scroll-margin-top:140px}.delivery-strip h2{font-size:30px;margin:12px 0}.delivery-strip details{align-self:center;border-block:1px solid #ffffff35;padding:18px 0}.delivery-strip summary{cursor:pointer;display:flex;justify-content:space-between;list-style:none}.delivery-strip ul{padding-left:20px;line-height:1.8;font-size:15px}.delivery-strip p{line-height:1.5}
@media(max-width:760px){.service-services .discipline-hero{padding:140px 24px 36px}.disciplines{margin:0 24px}.discipline{grid-template-columns:1fr;gap:26px;padding:36px 0}.discipline-copy h2{font-size:38px}.discipline-links{margin:18px 0}.delivery-strip{grid-template-columns:1fr;margin:0 24px;gap:20px;padding:32px 0}.discipline-visual>span{padding:14px}.service-services .services-index{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.discipline-visual img{transition:none}}

/* Review 93: real TD campaign footage fills the pillar; shared label alignment. */
.pillar-tile#brand > img { width:100%; left:0; height:100%; object-fit:cover; object-position:center; }
.pillar-tile#brand::after { background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.2) 45%,rgba(0,0,0,.56)),rgba(0,0,0,.1); }
.pillar-tile#brand .pillar-label { align-self:center; margin:0; }

/* Review 94: recognizable TD mark and consistent service controls. */
.pillar-tile#brand { background:#2fc000; }
.pillar-tile#brand::after { background:linear-gradient(180deg,transparent 30%,rgba(0,35,0,.42) 100%); }
.pillar-tile#brand .td-pillar-mark { position:absolute; width:68%; height:auto; aspect-ratio:190/170; top:7%; left:16%; z-index:1; }
.pillar-tile#brand .pillar-label { align-self:center; margin:0; }
.discipline-links a,.discipline-watch,.services-cta a { display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;box-sizing:border-box;padding:13px 18px;border:1px solid #657383;border-radius:8px;background:#202a35;color:#fff;font-family:inherit;font-size:14px;font-weight:600;line-height:1.4;text-decoration:none;transition:background .18s,border-color .18s; }
.discipline-links a:hover,.discipline-watch:hover,.services-cta a:hover { background:#324356;border-color:#b4c9de; }
.discipline-links a:focus-visible,.discipline-watch:focus-visible,.services-cta a:focus-visible { outline:3px solid #b4c5ff;outline-offset:4px; }
@media(prefers-reduced-motion:reduce){.discipline-links a,.discipline-watch,.services-cta a{transition:none}}

/* Match Breaking Bear to the full square News artwork beside it. */
.news-item.news-breaking-bear > img { object-fit:cover; object-position:center; }

/* Canada review: waterfront hero with production-finance support graphic. */
.canada-page .services-hero{background:linear-gradient(90deg,rgba(3,6,9,.9),rgba(3,6,9,.35)),url("./assets/studio-2026-delivery/Skyline2.webp") center/cover}
.canada-page .canada-real-photo img{aspect-ratio:760/720;object-fit:contain;background:#10171d}

/* Balance the production-finance card with the complete services column. */
.canada-services-editorial{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.canada-real-photo{position:static;display:flex;flex-direction:column;min-width:0}
.production-support-card{flex:1;display:flex;flex-direction:column;padding:30px;background:linear-gradient(145deg,#17232e,#10171d);border:1px solid #3c5161;border-radius:12px;box-shadow:0 18px 48px #0006,0 0 26px #86b9d60b}
.support-eyebrow{margin:0 0 15px;color:#86b9d6;font-size:12px;letter-spacing:.16em}
.production-support-card h3{margin:0;color:#f7f8fa;font-size:clamp(24px,2.2vw,34px);letter-spacing:-.025em;line-height:1.15}
.support-intro{margin:12px 0 26px;color:#a6b2bd;font-size:14px}
.support-organization-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(96px,1fr));gap:14px;flex:1}
.support-organization{display:flex;flex-direction:column;justify-content:center;padding:18px 16px;background:#1b2833;border:1px solid #3b4e5d;border-radius:8px}
.support-organization::before{content:'';width:22px;height:3px;background:#86b9d6;margin-bottom:12px}
.support-organization strong{font-size:clamp(18px,1.7vw,28px);line-height:1.1;color:#f5f7fa;letter-spacing:-.02em}
.support-organization span{font-size:12px;line-height:1.4;color:#b1bdc8;margin-top:9px}
.support-footer{margin:26px 0 0;padding-top:20px;border-top:1px solid #33434f;font-size:12px;line-height:1.5;color:#a6b2bd}
@media(max-width:760px){.canada-services-editorial{grid-template-columns:1fr}.production-support-card{padding:24px}.support-organization strong{font-size:clamp(17px,4.3vw,25px)}.support-organization{padding:16px 12px}}
@media(min-width:761px){.canada-real-photo{position:relative}.production-support-card{position:absolute;inset:0 0 28px;padding:26px}.canada-real-photo figcaption{position:absolute;bottom:0;left:0}.support-organization-grid{grid-template-rows:repeat(3,minmax(0,1fr));gap:12px}.support-organization{padding:14px 16px}.support-intro{margin-bottom:20px}.support-footer{margin-top:20px;padding-top:16px}}
@media(min-width:761px){.canada-real-photo{top:auto}.production-support-card{padding:22px}.support-organization-grid{min-height:0}.support-organization{min-height:0;padding:10px 14px}.support-organization::before{margin-bottom:8px}.support-organization strong{font-size:clamp(18px,1.6vw,26px)}.support-organization span{margin-top:7px}.support-intro{margin:10px 0 18px}.support-eyebrow{margin-bottom:12px}.support-footer{margin-top:14px;padding-top:12px;font-size:11px}}
.hero-view-controls{position:absolute;z-index:8;right:10px;bottom:10px;display:flex;align-items:center;gap:8px;color:#fff}
.hero-view-controls button{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:4px;background:#0009;color:#fff;padding:0;cursor:pointer}
.hero-view-controls button:hover{background:#ffffff15}.hero-view-controls button:focus-visible{outline:2px solid #a9c9ff;outline-offset:3px}
.hero-view-controls [role=status]{font-size:12px;max-width:340px}
.fullscreen-exit-label{display:none}
.hero.is-fullscreen .hero-view-controls{position:absolute;top:20px;right:20px;bottom:auto;z-index:20}
.hero.is-fullscreen .hero-view-controls button{display:flex;gap:10px;width:auto;min-height:44px;padding:10px 16px;background:#080b10e6;border:1px solid #ffffff80;border-radius:6px;font:600 15px/1.2 inherit}
.hero.is-fullscreen .fullscreen-exit-label{display:inline}
.home-page .hero:fullscreen,.home-page .hero:-webkit-full-screen{width:100vw;height:100vh;min-height:0;background:#000}
.home-page .hero:fullscreen .hero-frame[data-hero-reel],.home-page .hero:-webkit-full-screen .hero-frame[data-hero-reel]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;aspect-ratio:auto!important;transform:none!important}
/* Reserve the mobile hero reel even before Vimeo starts playback. */
@media (max-width:860px) {
  .home-page .hero-frame[data-hero-reel],
  .home-page .hero-frame[data-hero-reel].is-playing {
    position:relative;
    inset:auto;
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:16 / 9;
    min-height:0;
    transform:none;
  }
}
