/* Native project covers; independent of the page-story motion engine. */
body.nuweb-site #content .nuweb-project-wall-page {
  --wall-gap: clamp(22px, 2.3vw, 34px);
  padding-bottom: clamp(80px, 10vw, 160px);
}
body.nuweb-site #content .project-wall-intro {
  padding-top: clamp(126px, 10vw, 154px);
  padding-bottom: clamp(24px, 3vw, 42px);
}
body.nuweb-site #content .nuweb-project-wall-page .section-inner {
  max-width: 1240px;
}
body.nuweb-site #content .project-wall-intro h1 {
  max-width: 1100px;
  margin: 16px 0 0;
  font-size: clamp(38px, 4.8vw, 72px);
  line-height: 1.1;
  letter-spacing: -.045em;
  overflow-wrap: normal;
}
body.nuweb-site #content .project-wall-intro-copy {
  max-width: 780px;
  margin: 20px 0 0;
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 1.65;
}
body.nuweb-site #content .project-wall-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 28px;
  padding-bottom: 22px;
}
body.nuweb-site #content .project-wall-toolbar p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}
body.nuweb-site #content .project-wall-reset {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 8px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  box-shadow: none;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  text-align: start;
  cursor: pointer;
}
body.nuweb-site #content .project-wall-reset:hover {color: #0ac18e}
body.nuweb-site #content .project-wall {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: var(--wall-gap);
  isolation: isolate;
  overflow-anchor: none;
}
body.nuweb-site #content .project-wall[data-wall-ready] {display: block}
body.nuweb-site #content .project-wall-item {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform-origin: 0 0;
  scroll-margin-top: calc(var(--header-height) + 28px);
}
body.nuweb-site #content .project-wall[data-wall-ready] .project-wall-item {
  position: absolute;
  inset: 0 auto auto 0;
}
body.nuweb-site #content .project-wall-surface {
  overflow: visible;
  opacity: 1;
  transform-origin: 50% 50%;
  transition: none;
}
body.nuweb-site #content .project-wall-item[data-selected] {z-index: 5}
body.nuweb-site #content .nuweb-project-wall-page[data-wall-focused] .project-wall-toolbar p {visibility: hidden}
body.nuweb-site #content .project-wall-heading {
  margin: 0;
  padding: 0;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: normal;
}
body.nuweb-site #content .project-wall-toggle {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--ink);
  background: transparent;
  box-shadow: none;
  text-align: start;
  cursor: pointer;
  touch-action: manipulation;
}
body.nuweb-site #content .project-wall-toggle::before,
body.nuweb-site #content .project-wall-toggle::after {content: none; display: none}
body.nuweb-site #content .project-wall-media {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 3px;
  background: #071a12;
  box-shadow: 0 18px 55px #0004;
  transform: translateY(0);
  transition: transform 480ms cubic-bezier(.2,.65,.3,1), box-shadow 480ms ease;
}
body.nuweb-site #content .project-wall-cover {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  padding: 0;
  opacity: 1;
  filter: none;
  transform: scale(1);
  transition: transform 650ms cubic-bezier(.2,.65,.3,1);
}
body.nuweb-site #content .project-wall-caption {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  box-sizing: content-box;
  min-height: 2.9em;
  height: 2.9em;
  padding-top: 14px;
  color: var(--ink);
  font-size: clamp(16px, 1.25vw, 19px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: -.02em;
}
body.nuweb-site #content .project-wall-open {
  display: block;
  color: #0ac18e;
  font-size: 23px;
  font-weight: 400;
  transition: transform 350ms ease;
}
body.nuweb-site #content .project-wall-item[data-selected] .project-wall-media {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  box-shadow: none;
}
body.nuweb-site #content .project-wall-item[data-selected] .project-wall-caption {
  font-size: clamp(24px, 2.2vw, 32px);
  font-weight: 600;
  line-height: 1.18;
  height: auto;
  min-height: 0;
  padding-top: 18px;
}
body.nuweb-site #content .project-wall-item[data-selected] .project-wall-open {display: none}
body.nuweb-site #content .project-wall-detail {
  max-width: 760px;
  padding: 16px 0 4px;
}
body.nuweb-site #content .project-wall-category {
  margin: 0 0 10px;
  color: #0ac18e;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.65;
}
body.nuweb-site #content .project-wall-summary {
  margin: 0;
  font-size: clamp(15px, 1.12vw, 17px);
  line-height: 1.65;
}
body.nuweb-site #content .project-wall-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 18px;
}
body.nuweb-site #content .project-wall-link {
  display: inline-flex;
  align-items: center;
  gap: 26px;
  color: #0ac18e;
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}
body.nuweb-site #content .project-wall-link:hover {color: #82edcc}
body.nuweb-site #content .project-wall-status {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
body.nuweb-site #content .project-wall[data-wall-preparing] .project-wall-surface {visibility: hidden}
body.nuweb-site #content .project-wall-item[data-wall-mini] .project-wall-caption {display: none}
body.nuweb-site #content .project-wall-item[data-wall-mini] .project-wall-toggle {min-height: 44px}
body.nuweb-site #content .project-wall-item[data-wall-mini] .project-wall-media {box-shadow: 0 8px 24px #0003}
body.nuweb-site #content .project-wall[data-wall-moving] :is(.project-wall-media, .project-wall-cover) {
  transform: none;
  transition: none;
}
body.nuweb-site #content .project-wall[data-wall-moving] .project-wall-media {transform-origin: 0 0}
body.nuweb-site #content .project-wall-reset {
  position: fixed;
  top: calc(var(--header-height) + 14px);
  right: calc(var(--frame-gutter) + var(--nuweb-frame-pad));
  z-index: 55;
  min-height: 46px;
  padding: 11px 18px;
  border: 1px solid #0ac18e;
  border-radius: 3px;
  background: #0ac18e;
  color: #020b07;
  box-shadow: 0 8px 30px #0006;
  font-size: 14px;
  font-weight: 600;
}
body.nuweb-site #content .project-wall-reset span {font-size: 23px; line-height: 1}
body.nuweb-site #content .project-wall-reset:hover {background: #82edcc; color: #020b07}
body.nuweb-site #content .project-wall-reset:focus-visible {outline-color: #f6fbf9}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  body.nuweb-site #content .project-wall:not([data-wall-moving]) .project-wall-toggle:hover .project-wall-media {transform: translateY(-7px); box-shadow: 0 28px 65px #0007}
  body.nuweb-site #content .project-wall-item[data-selected] .project-wall-toggle:hover :is(.project-wall-media, .project-wall-cover) {transform: none}
}
@media (max-width: 1000px) {
  body.nuweb-site #content .project-wall {grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (max-width: 600px) {
  body.nuweb-site #content .project-wall {grid-template-columns: minmax(0, 1fr)}
  body.nuweb-site #content .nuweb-project-wall-page {--wall-gap: 38px}
  body.nuweb-site #content .project-wall-intro {padding-top: 120px; padding-bottom: 24px}
  body.nuweb-site #content .project-wall-intro h1 {font-size: clamp(36px, 10vw, 48px)}
  body.nuweb-site #content .project-wall-intro-copy {margin-top: 18px; font-size: 16px}
  body.nuweb-site #content .project-wall-toolbar {align-items: flex-start; flex-direction: column; gap: 8px; padding-bottom: 24px}
  body.nuweb-site #content .project-wall-caption {font-size: 18px}
  body.nuweb-site #content .project-wall-item[data-selected] .project-wall-caption {font-size: 25px}
  body.nuweb-site #content .project-wall-summary {font-size: 16px}
  body.nuweb-site #content .project-wall-reset {top: calc(var(--header-height) + 8px); min-height: 44px; font-size: 13px; padding: 10px 14px}
}
@media (prefers-reduced-motion: reduce) {
  body.nuweb-site #content .project-wall :is(.project-wall-surface, .project-wall-media, .project-wall-cover, .project-wall-open) {transition: none}
}
