/* Projects reference layout; shared header, footer and dialogs use home.css. */
.more-projects {
  display: flex;
  justify-content: center;
  padding: 40px 24px 64px;
}
.more-projects .button {
  font-size: 15px;
  padding: 13px 24px;
}
.site-footer .project-visual-disclaimer {
  margin-top: 18px;
  font-size: 12px;
  line-height: 1.6;
  color: #7c859b;
}
.selected-work-page {
  background: #fcfdff;
}
.selected-work-page main {
  overflow: hidden;
}
.section-label {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.25em;
  line-height: 1.5;
  color: #7c859b;
}
.work-hero {
  position: relative;
  text-align: center;
  padding-top: 58px;
  background: radial-gradient(ellipse at 50% 100%, #e8edf4 0, transparent 65%);
}
.work-orbits {
  position: absolute;
  width: 87%;
  aspect-ratio: 1;
  left: 6.5%;
  top: -330px;
  border: 1px solid #eaf0ff;
  border-radius: 50%;
  pointer-events: none;
}
.work-orbits:after {
  content: "";
  position: absolute;
  inset: 12%;
  border: 1px solid #eaf0ff;
  border-radius: 50%;
}
.work-hero-copy {
  position: relative;
  z-index: 1;
  padding: 0 24px;
}
.work-hero h1 {
  font-size: clamp(44px, 4.65vw, 76px);
  line-height: 0.99;
  letter-spacing: -0.065em;
  margin: 24px auto 22px;
}
.hero-description {
  font-size: clamp(17px, 1.45vw, 23px);
  line-height: 1.5;
  color: #5b6478;
  letter-spacing: -0.035em;
}
.hero-summary {
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  padding: 14px 24px;
  margin: 28px auto 0;
  border: 1px solid #e7edf6;
  border-radius: 21px;
  width: max-content;
  max-width: 100%;
  box-shadow: 0 5px 15px #becce014;
  color: #626b80;
  font-size: 15px;
}
.hero-summary li {
  padding: 0 28px;
  line-height: 1;
}
.hero-summary li + li {
  border-left: 1px solid #d9dfeb;
}
.hero-summary li:first-child {
  color: #06f;
}
.hero-showcase {
  position: relative;
  width: 100%;
  margin: 8px auto 0;
  mix-blend-mode: multiply;
}
.impact-marker {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 20px;
  padding: 20px 0 38px;
  font-size: 10px;
  letter-spacing: 0.2em;
  color: #727e96;
}
.impact-marker span {
  height: 32px;
  width: 1px;
  background: #718eb8;
}
.work-intro {
  text-align: center;
  padding: 130px 30px 140px;
  background: radial-gradient(ellipse at 0 70%, #eff2f5, transparent 55%);
}
.work-intro h2 {
  font-size: clamp(42px, 6.1vw, 98px);
  margin: 36px 0 38px;
  line-height: 1.02;
  letter-spacing: -0.065em;
}
.work-intro > p:not(.section-label) {
  font-size: clamp(18px, 1.72vw, 28px);
  line-height: 1.48;
  letter-spacing: -0.035em;
  color: #7b849b;
}
.work-intro .intro-last {
  margin-top: 38px;
  color: #080a0e !important;
  font-weight: 500;
}
.selected-projects {
  max-width: 1600px;
  margin: auto;
}
.projects-heading {
  text-align: center;
  padding: 40px 24px 58px;
}
.projects-heading h2 {
  font-size: clamp(42px, 5.3vw, 78px);
  margin-top: 28px;
}
.work-row {
  position: relative;
  display: grid;
  grid-template-columns: 39% 61%;
  align-items: center;
  min-height: 650px;
  margin: 0 4%;
  padding: 40px 0;
  border-bottom: 1px solid #dce2ec;
}
.work-copy {
  position: relative;
  z-index: 2;
  padding: 0 36px 20px 0;
}
.work-number {
  display: flex;
  gap: 18px;
  align-items: center;
  font-size: 18px;
  font-weight: 500;
  margin-bottom: 22px;
  color: #818aa1;
}
.work-number span {
  width: 48px;
  height: 1px;
  background: #a8b2c7;
}
.work-category {
  font-size: 11px;
  letter-spacing: 0.22em;
  color: #7c86a0;
  font-weight: 600;
  margin-bottom: 14px;
}
.work-copy h3 {
  font-size: clamp(30px, 3.4vw, 52px);
  font-weight: 600;
  letter-spacing: -0.065em;
  line-height: 1.08;
  margin-bottom: 19px;
}
.work-tagline {
  font-size: 17px;
  line-height: 1.5;
  color: #414b61;
  margin-bottom: 12px;
}
.work-description,
.private-note {
  font-size: 16px;
  line-height: 1.7;
  color: #7b849b;
}
.private-note {
  margin-top: 12px;
}
.role-label {
  color: #141b27;
  margin: 32px 0 12px;
  font-size: 15px;
}
.role-tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  margin: 0;
}
.role-tags li {
  padding: 6px 13px;
  border: 1px solid #d8dfeb;
  border-radius: 30px;
  font-size: 12px;
  color: #222936;
}
.case-link,
.confidential {
  display: inline-flex;
  gap: 20px;
  align-items: center;
  margin-top: 30px;
  font-size: 16px;
  font-weight: 500;
}
.case-link > span {
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #060c14;
  color: white;
  font-size: 24px;
  width: 46px;
  height: 46px;
  transition:
    transform 0.2s,
    background 0.2s;
}
.case-link:hover > span {
  background: #1769ff;
  transform: translateX(4px);
}
.work-image {
  margin-right: -6.6%;
  position: relative;
  z-index: 1;
}
.work-image img {
  width: 100%;
  aspect-ratio: 1.2;
  object-fit: cover;
}
.work-row.reverse {
  grid-template-columns: 61% 39%;
}
.reverse .work-copy {
  grid-column: 2;
  padding: 0 0 20px 42px;
}
.reverse .work-image {
  grid-column: 1;
  grid-row: 1;
  margin-left: -6.6%;
  margin-right: 0;
}
.watermark {
  position: absolute;
  bottom: 0;
  right: 0;
  font-size: 160px;
  line-height: 1;
  color: #eceff480;
  font-weight: 700;
  letter-spacing: -0.07em;
  pointer-events: none;
}
.work-capabilities {
  text-align: center;
  padding: 110px max(5vw, 24px);
  background:
    radial-gradient(ellipse at 50% 0, #e9eef4, transparent 60%),
    radial-gradient(ellipse at 0 100%, #e9eef4, transparent 60%);
}
.work-capabilities h2 {
  font-size: clamp(34px, 3.8vw, 56px);
  margin: 28px 0 48px;
}
.capability-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 1450px;
  margin: auto;
}
.capability {
  background: #ffffffb8;
  border: 1px solid #fff;
  border-radius: 18px;
  text-align: left;
  padding: 22px 32px 42px;
}
.capability img {
  width: 100%;
  aspect-ratio: 1.15;
  object-fit: cover;
  mix-blend-mode: multiply;
  margin-bottom: 20px;
}
.capability h3 {
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: 600;
  margin-bottom: 10px;
}
.capability p {
  font-size: clamp(14px, 1.1vw, 16px);
  line-height: 1.5;
  letter-spacing: -0.035em;
  color: #7c859b;
}
.work-philosophy {
  min-height: 720px;
  padding: 100px 5%;
  background: #fafbfc url("../assets/generated/projects/behind.webp")
    center/cover no-repeat;
}
.philosophy-copy {
  max-width: 54%;
}
.philosophy-copy h2 {
  font-size: clamp(36px, 4.65vw, 70px);
  margin: 34px 0 32px;
}
.philosophy-copy > p:not(.section-label) {
  max-width: 580px;
  font-size: clamp(18px, 1.5vw, 24px);
  line-height: 1.4;
  color: #9098ad;
  margin-bottom: 22px;
  letter-spacing: -0.025em;
}
.work-cta {
  display: flex;
  align-items: center;
  min-height: 720px;
  padding: 120px 5%;
  background: #070e16 url("../assets/generated/projects/cta.webp") center/cover
    no-repeat;
}
.cta-copy {
  max-width: 66%;
}
.work-cta .section-label {
  color: #afb8cc;
}
.work-cta h2 {
  font-size: clamp(34px, 3.8vw, 56px);
  color: #fcfdff;
  margin: 28px 0 22px;
}
.cta-copy > p:not(.section-label) {
  font-size: clamp(16px, 1.3vw, 20px);
  line-height: 1.6;
  color: #afb7ca;
  max-width: 580px;
  letter-spacing: -0.025em;
}
.start-project {
  display: inline-flex;
  gap: 24px;
  align-items: center;
  border-radius: 50px;
  padding: 12px 24px;
  background: #fcfdff;
  color: #070c17;
  font-size: 16px;
  font-weight: 500;
  margin-top: 28px;
}
.start-project span {
  font-size: 22px;
  line-height: 1;
}
.start-project:hover {
  background: #dce8ff;
}
@media (min-width: 1700px) {
  .work-hero {
    padding-top: 70px;
  }
  .hero-showcase {
    width: min(1536px, 100%);
    max-height: 560px;
    object-fit: contain;
    display: block;
  }
}
@media (max-width: 1000px) {
  .hero-summary li {
    padding: 0 20px;
  }
  .work-row {
    min-height: 540px;
  }
  .work-copy {
    padding-right: 22px;
  }
  .reverse .work-copy {
    padding-left: 24px;
  }
  .work-description {
    font-size: 14px;
  }
  .work-tagline {
    font-size: 15px;
  }
  .role-label {
    margin-top: 22px;
  }
  .work-capabilities {
    padding: 80px 30px;
  }
  .capability-grid {
    gap: 12px;
  }
  .capability {
    padding: 16px 20px 30px;
  }
  .work-philosophy,
  .work-cta {
    min-height: 600px;
    padding: 80px 5%;
  }
  .philosophy-copy {
    max-width: 58%;
  }
  .philosophy-copy h2 br {
    display: none;
  }
}
@media (max-width: 700px) {
  .work-hero {
    padding-top: 42px;
  }
  .work-hero h1 {
    font-size: clamp(34px, 7.5vw, 52px);
    line-height: 1.06;
    margin-top: 22px;
  }
  .section-label {
    font-size: 10px;
  }
  .hero-description {
    font-size: 16px;
  }
  .desktop-break {
    display: none;
  }
  .hero-summary {
    padding: 13px 9px;
    font-size: 11px;
    border-radius: 16px;
    margin-top: 24px;
  }
  .hero-summary li {
    padding: 0 12px;
  }
  .hero-showcase {
    width: 150%;
    max-width: none;
    margin: 22px 0 0 -25%;
  }
  .impact-marker {
    padding-top: 16px;
    padding-bottom: 24px;
    font-size: 8px;
  }
  .work-intro {
    padding: 75px 24px 85px;
  }
  .work-intro h2 {
    font-size: clamp(35px, 8vw, 52px);
    margin: 25px 0;
  }
  .work-intro > p:not(.section-label) {
    font-size: 17px;
  }
  .work-intro .intro-last {
    margin-top: 25px;
  }
  .projects-heading {
    padding: 25px 24px 20px;
  }
  .projects-heading h2 {
    font-size: 38px;
    margin-top: 20px;
  }
  .work-row,
  .work-row.reverse {
    display: flex;
    flex-direction: column;
    margin: 0 24px;
    padding: 36px 0 25px;
    gap: 25px;
    min-height: 0;
    align-items: stretch;
  }
  .work-copy,
  .reverse .work-copy {
    padding: 0;
  }
  .work-copy h3 {
    font-size: 36px;
  }
  .work-number {
    font-size: 15px;
    margin-bottom: 17px;
  }
  .work-tagline {
    font-size: 16px;
  }
  .work-description {
    font-size: 15px;
  }
  .work-category {
    font-size: 10px;
  }
  .work-image,
  .reverse .work-image {
    margin: 0 -24px;
  }
  .work-image img,
  .watermark {
    display: none;
  }
  .case-link {
    margin-top: 24px;
  }
  .work-capabilities {
    padding: 70px 20px;
  }
  .work-capabilities h2 {
    font-size: 32px;
    margin: 20px 0 30px;
  }
  .capability-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .capability {
    padding: 10px 16px 24px;
    border-radius: 13px;
  }
  .capability h3 {
    font-size: 18px;
  }
  .capability p {
    font-size: 14px;
  }
  .capability img {
    margin-bottom: 15px;
  }
  .work-philosophy {
    padding: 55px 24px 330px;
    min-height: 0;
    background-size: auto 430px;
    background-position: 65% bottom;
    background-color: #fcfdff;
    position: relative;
  }
  .philosophy-copy {
    max-width: 100%;
  }
  .philosophy-copy h2 {
    font-size: 37px;
    margin: 24px 0;
  }
  .philosophy-copy > p:not(.section-label) {
    font-size: 17px;
    max-width: 100%;
  }
  .work-cta {
    padding: 65px 24px;
    background-size: auto 100%;
    background-position: 63% center;
    position: relative;
  }
  .work-cta:before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(#080f18 0%, #080f18ed 45%, transparent 80%);
  }
  .cta-copy {
    max-width: 100%;
    position: relative;
  }
  .work-cta h2 {
    font-size: 34px;
    margin: 22px 0;
  }
  .cta-copy > p:not(.section-label) {
    font-size: 16px;
  }
  .start-project {
    font-size: 15px;
    padding: 11px 22px;
    margin-top: 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .case-link > span {
    transition: none;
  }
}
/* Keep generated device mockups intact and text clear of the background artwork. */
.work-image img {
  aspect-ratio: 3 / 2;
  object-fit: contain;
}
.hero-showcase {
  mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    #000 12%,
    #000 88%,
    transparent 100%
  );
}
.work-philosophy {
  position: relative;
  isolation: isolate;
}
.work-philosophy::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    90deg,
    #fcfdff 0%,
    #fcfdfff5 29%,
    #fcfdffd9 40%,
    #fcfdff70 52%,
    transparent 65%
  );
}
.philosophy-copy > p:not(.section-label) {
  color: #737e94;
}
@media (min-width: 701px) and (max-width: 1000px) {
  .work-philosophy::before {
    background: linear-gradient(
      90deg,
      #fcfdff 0%,
      #fcfdfff5 40%,
      #fcfdffbf 54%,
      transparent 76%
    );
  }
}
@media (max-width: 700px) {
  .work-philosophy::before {
    background: linear-gradient(
      to bottom,
      #fcfdff 0%,
      #fcfdff 52%,
      #fcfdffe6 62%,
      transparent 76%
    );
  }
  .work-image img {
    aspect-ratio: 3 / 2;
  }
}

@media (min-width: 1600px) {
  .work-hero {
    overflow: hidden;
  }

  .hero-showcase {
    width: 1536px;
    max-width: 100%;
    display: block;
    object-fit: contain;
  }

  .work-philosophy {
    padding-left: max(5%, calc((100% - 1536px) / 2 + 78px));
    padding-right: max(5%, calc((100% - 1536px) / 2 + 78px));
    background-size: 1536px auto;
    background-position: center center;
  }

  .work-cta {
    padding-left: max(5%, calc((100% - 1536px) / 2 + 78px));
    padding-right: max(5%, calc((100% - 1536px) / 2 + 78px));
    background-size: 1536px auto;
    background-position: center center;
  }

  .philosophy-copy,
  .cta-copy {
    max-width: 640px;
  }
}
