.project-page {
  background: var(--white);
}

.project-page .site-shell,
.project-page .side-rail {
  background: #fff;
}

.project-study {
  width: calc(100% - var(--rail-width));
  margin-left: var(--rail-width);
  overflow: hidden;
  background: transparent;
}

.project-hero {
  position: relative;
  min-height: 1120px;
  padding: 540px 44px 80px;
}

.project-hero__art {
  position: absolute;
  top: 44px;
  right: 44px;
  width: min(72%, 740px);
  max-height: 510px;
  object-fit: contain;
  object-position: right top;
}

.project-hero__copy {
  position: relative;
  z-index: 1;
  width: min(620px, 68%);
}

.project-hero h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 64px;
  font-weight: 700;
  line-height: 0.98;
  letter-spacing: -0.035em;
}

.project-hero__dek {
  margin-top: 20px;
  padding-left: 4px;
  color: var(--grey-dark);
  font-size: 24px;
  font-weight: 300;
  line-height: 1.4;
}

.project-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 18px;
}

.project-tags li {
  display: inline-flex;
  width: auto;
  height: 36px;
  min-height: 36px;
  padding: 8px 16px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 0;
  background: url("../assets/figma/tmi/hero-tag-outline.svg") center / 100% 100% no-repeat;
  color: var(--grey-dark);
  font-size: 14px;
  line-height: 1.4;
  white-space: nowrap;
}

:is(.tmi-page, .sc-page) .project-tags li {
  width: auto;
  height: 36px;
  min-height: 36px;
  padding: 8px 16px;
  color: var(--grey-dark);
  line-height: 1.4;
}

.project-hero__logo {
  position: absolute;
  right: 44px;
  bottom: 232px;
  width: 230px;
  max-height: 62px;
  object-fit: contain;
  object-position: right center;
}

.tmi-page .project-hero__logo {
  width: 145px;
  height: 46px;
  max-height: none;
}

.project-meta {
  position: absolute;
  right: 44px;
  bottom: 105px;
  display: grid;
  justify-items: end;
  gap: 11px;
  margin: 0;
  font-size: 18px;
}

.project-meta div {
  display: flex;
  gap: 6px;
}

.project-meta dt {
  color: #5a6b84;
}

.project-meta dt::after {
  margin-left: 6px;
  color: var(--black);
  content: "/";
}

.project-meta dd {
  margin: 0;
}

.story-section {
  position: relative;
  padding: 0 36px;
}

:is(.tmi-page, .sc-page) .story-section:not([aria-labelledby$="-reflection"]) {
  margin-bottom: 200px;
}

.story-divider {
  display: grid;
  grid-template-columns: 26px 1fr auto;
  align-items: center;
  gap: 14px;
  margin-bottom: 80px;
}

.story-section > .story-divider + * {
  margin-top: 0;
}

.story-divider__star {
  width: 26px;
  height: 34px;
  object-fit: contain;
}

.story-divider__line {
  width: 100%;
  height: 8px;
  object-fit: fill;
}

.story-divider h2 {
  margin: 0;
  font-size: 24px;
  font-weight: 300;
  line-height: 1.4;
  white-space: nowrap;
}

.story-copy {
  width: min(860px, calc(100% - 44px));
  margin-left: 22px;
}

.story-copy--right {
  margin-right: 22px;
  margin-left: auto;
  text-align: right;
}

.story-copy h3,
.story-callout {
  margin: 0 0 18px;
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

:is(.tmi-page, .sc-page) section[aria-labelledby$="-context"] .story-copy h3 {
  margin-bottom: 16px;
}

.story-copy p,
.story-intro,
.story-card p,
.impact-grid p,
.reflection-grid p {
  font-size: 18px;
  line-height: 1.5;
}

.story-copy p + p {
  margin-top: 18px;
}

.story-visual {
  display: block;
  max-width: 100%;
  border: 1px solid #94a3b8;
  border-radius: 12px;
}

.story-visual--plain {
  border: 0;
}

.context-art {
  display: grid;
  margin: 82px 20px 0;
  grid-template-columns: minmax(190px, 0.43fr) minmax(380px, 1fr);
  align-items: center;
  gap: 42px;
}

.context-art img:first-child {
  justify-self: center;
  max-height: 430px;
}

.context-art img:last-child {
  width: 100%;
}

.tmi-page .context-art {
  grid-template-columns: minmax(0, 0.31fr) minmax(0, 1fr);
  align-items: start;
}

.tmi-page .context-art img:first-child {
  width: 100%;
  max-height: none;
}

.tmi-page .context-art img:last-child {
  margin-top: 80px;
}

.mission {
  display: grid;
  width: min(900px, calc(100% - 40px));
  margin: 120px auto 0;
  grid-template-columns: 175px 1px 1fr;
  align-items: start;
  gap: 28px;
}

.mission h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 44px;
  line-height: 1.3;
  text-align: right;
}

.mission span {
  width: 1px;
  height: 166px;
  background: #94a3b8;
}

.mission p {
  align-self: end;
  padding-bottom: 8px;
  font-size: 24px;
  font-weight: 300;
  line-height: 1.4;
}

.process-row {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin: 62px 22px 0;
}

.process-row li {
  padding: 7px 18px;
  border: 4px solid transparent;
  border-radius: 999px;
  background:
    linear-gradient(#f8fafc, #f8fafc) padding-box,
    linear-gradient(110deg, #00ffff, #ff00ff, #ffff00) border-box;
  color: #5a6b84;
  font-weight: 700;
}

:is(.tmi-page, .sc-page) .process-row {
  align-items: center;
}

:is(.tmi-page, .sc-page) .process-row li {
  display: inline-flex;
  width: 128px;
  height: 45px;
  padding: 0;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 0;
  background: url("../assets/figma/tmi/process-pill-outline.svg") center / 100% 100% no-repeat;
  box-shadow: none;
  color: #334155;
  font-family: var(--font-display);
  font-size: 16px;
  line-height: 1;
}

:is(.tmi-page, .sc-page) .process-row::after {
  width: 33px;
  height: 40px;
  margin-left: 14px;
  background: url("../assets/figma/tmi/process-mark.svg") center / contain no-repeat;
  content: "";
}

.tmi-problem__intro p,
.tmi-problem__detail p {
  font-size: 20px;
  line-height: 1.5;
}

.tmi-problem__callout {
  margin-top: 92px;
  margin-bottom: 0;
  font-size: 40px;
}

.tmi-problem__detail {
  margin-top: 92px;
}

.tmi-page section[aria-labelledby="tmi-problem"] .process-row {
  margin-top: 52px;
}

.sc-problem__intro p,
.sc-problem__detail p {
  font-size: 20px;
  line-height: 1.5;
}

.sc-problem__callout {
  margin-top: 92px;
  margin-bottom: 0;
  font-size: 40px;
}

.sc-problem__detail {
  margin-top: 92px;
}

.sc-page section[aria-labelledby="sc-problem"] .process-row {
  margin-top: 52px;
}

.method-stack {
  position: relative;
  display: grid;
  width: 100%;
  margin: 0 0 110px auto;
  padding-right: 0;
  gap: 20px;
}

.method-stack::after {
  position: absolute;
  top: 0;
  right: 0;
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 700;
  content: "Methods";
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.method-stack li {
  justify-self: end;
  width: 100%;
  padding: 7px 18px;
  border: 1px solid #94a3b8;
  border-radius: 999px;
  color: #5a6b84;
  font-size: 14px;
}

.method-stack li:nth-child(2) { width: 82%; }
.method-stack li:nth-child(3) { width: 68%; }

:is(.tmi-page, .sc-page) .method-stack li,
:is(.tmi-page, .sc-page) .method-stack li:nth-child(2),
:is(.tmi-page, .sc-page) .method-stack li:nth-child(3) {
  position: relative;
  display: inline-flex;
  box-sizing: content-box;
  width: max-content;
  max-width: calc(100% - 48px);
  min-width: 0;
  height: auto;
  min-height: 0;
  padding: 12px 24px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 0;
  background: none;
  color: #334155;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  margin-right: 92px;
  white-space: nowrap;
}

:is(.tmi-page, .sc-page) .method-stack li::before {
  position: absolute;
  inset: 0;
  border: 20px solid transparent;
  border-image-source: url("../assets/figma/tmi/method-pill-outline.svg");
  border-image-slice: 23;
  border-image-width: 20px;
  border-image-repeat: stretch;
  content: "";
  pointer-events: none;
}

.insight-list {
  position: relative;
  display: grid;
  width: min(820px, calc(100% - 100px));
  margin-left: 74px;
  gap: 34px;
}

.insight-list::before {
  position: absolute;
  top: 30%;
  left: -66px;
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 700;
  content: "Insights";
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.insight-list article {
  position: relative;
  padding-left: 22px;
}

.insight-list article::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 4px;
  background: linear-gradient(#00ffff, #ff00ff, #ffff00);
  content: "";
}

.insight-list h3 {
  margin-bottom: 8px;
  font-family: var(--font-display);
  font-size: 20px;
}

.insight-list p {
  color: #5a6b84;
  font-size: 18px;
  line-height: 1.5;
}

:is(.tmi-page, .sc-page) .insight-list {
  gap: 44px;
}

:is(.tmi-page, .sc-page) .insight-list::before {
  top: 0;
}

:is(.tmi-page, .sc-page) .insight-list article {
  padding-left: 0;
}

:is(.tmi-page, .sc-page) .insight-list article::before {
  display: none;
}

:is(.tmi-page, .sc-page) .insight-list h3 {
  margin-bottom: 8px;
  color: #020617;
  font-weight: 700;
}

:is(.tmi-page, .sc-page) .insight-list p {
  position: relative;
  padding-left: 32px;
  color: var(--grey-medium);
}

:is(.tmi-page, .sc-page) .insight-list p::before {
  position: absolute;
  top: 0;
  left: 7px;
  color: #5a6b84;
  content: "•";
}

.focus-cards {
  display: grid;
  margin: 70px 22px 0;
  gap: 64px;
}

.focus-cards article {
  display: grid;
  width: min(780px, 100%);
  grid-template-columns: 210px 1fr;
  align-items: center;
  gap: 28px;
}

.focus-cards article:nth-child(1) { justify-self: start; }
.focus-cards article:nth-child(2) { justify-self: end; }
.focus-cards article:nth-child(3) {
  margin-left: 0;
  justify-self: center;
}

.focus-cards h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 34px;
  line-height: 1.1;
  text-align: right;
  -webkit-text-fill-color: #f8fafc;
  -webkit-text-stroke: 1px #020617;
}

:is(.tmi-page, .sc-page) .focus-cards h3 {
  color: #020617;
  font-weight: 700;
  -webkit-text-fill-color: #020617;
  -webkit-text-stroke: 0;
}

@media (min-width: 851px) {
  .sc-page section[aria-labelledby="sc-define"] .focus-cards article:first-child {
    grid-template-columns: 240px 1fr;
  }

  .sc-page section[aria-labelledby="sc-define"] .focus-cards article:first-child h3 {
    width: 240px;
    white-space: nowrap;
  }
}

.focus-cards p {
  font-size: 18px;
  line-height: 1.5;
}

.process-gallery {
  display: grid;
  margin: 82px 20px 0;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: end;
  gap: 34px;
}

.process-gallery img {
  width: 100%;
}

.deliver-intro {
  width: min(910px, calc(100% - 44px));
  margin: 0 22px 72px;
  font-size: 18px;
  line-height: 1.5;
}

.deliver-intro p {
  margin: 0;
}

.deliver-intro ul {
  margin: 0;
  padding-left: 28px;
}

.deliver-block {
  position: relative;
  margin: 92px 20px 0 72px;
}

.deliver-block__title {
  position: absolute;
  top: 0;
  left: -55px;
  margin: 0;
  font-family: var(--font-display);
  font-size: 34px;
  line-height: 1;
  white-space: nowrap;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.deliver-block > p {
  width: min(760px, 92%);
  margin-bottom: 34px;
  font-size: 18px;
  line-height: 1.5;
}

.deliver-block--framework > p {
  width: 100%;
}

.deliver-block__responsive-visual {
  display: block;
}

.project-inline-link,
.project-inline-link:visited {
  color: #00aad9;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.image-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 32px;
}

.image-grid--three {
  grid-template-columns: 0.7fr 1fr 0.9fr;
}

.image-grid figure {
  margin: 0;
}

.image-grid img {
  width: 100%;
}

.image-grid figcaption {
  margin-top: 10px;
  color: #5a6b84;
  font-size: 14px;
}

.cmyk-frame {
  position: relative;
  z-index: 0;
  margin: 12px;
}

.cmyk-frame::before {
  position: absolute;
  z-index: -1;
  inset: -9px;
  border-radius: 22px;
  background: #00ffff;
  box-shadow: 8px 7px 0 #ffff00, 10px 14px 0 #ff00ff, 0 14px 0 #0000ff;
  content: "";
}

.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 0.42fr;
  gap: 28px;
}

.dashboard-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dashboard-grid img:first-child {
  grid-row: span 2;
}

.impact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 34px;
  margin: 0 22px;
}

.impact-grid p {
  color: #5a6b84;
}

.impact-grid strong {
  display: block;
  color: #020617;
}

.reflection-grid {
  display: grid;
  gap: 100px;
  margin: 0 36px;
}

.reflection-grid article {
  display: grid;
  width: min(820px, 100%);
  grid-template-columns: 205px 1fr;
  justify-self: start;
  align-items: start;
  gap: 28px;
}

.reflection-grid article:nth-child(even) {
  margin-left: 0;
  justify-self: end;
}

.reflection-grid h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 34px;
  line-height: 1.1;
  text-align: right;
}

.reflection-grid p {
  margin: 0;
}

.reflection-grid p strong {
  display: block;
}

:is(.tmi-page, .sc-page) .reflection-smile {
  position: static;
  display: block;
  width: 70px;
  height: 68px;
  margin: 360px auto 220px;
  object-fit: contain;
  transform: none;
}

.story-end {
  padding: 130px 32px 150px;
  text-align: center;
}

.story-end h2 {
  font-family: var(--font-display);
  font-size: 48px;
  line-height: 1;
}

.story-end p {
  max-width: 650px;
  margin: 28px auto;
  font-size: 18px;
  line-height: 1.5;
}

.story-end__actions {
  display: flex;
  justify-content: center;
  gap: 12px;
}

.story-end__actions .content-action { flex: none; }

:is(.tmi-page, .sc-page) .story-end {
  display: grid;
  min-height: 840px;
  padding: 140px 36px 24px;
  grid-template-rows: 1fr auto;
  text-align: left;
}

:is(.tmi-page, .sc-page) .story-end__content {
  display: grid;
  width: min(830px, 100%);
  margin: 0 auto;
  grid-template-columns: 245px 1px minmax(0, 1fr);
  align-self: start;
  align-items: start;
  gap: 26px;
}

:is(.tmi-page, .sc-page) .story-end h2 {
  margin: 0;
  padding-top: 3px;
  font-size: 46px;
  font-weight: 700;
  line-height: 1.42;
  letter-spacing: -0.035em;
  text-align: right;
}

:is(.tmi-page, .sc-page) .story-end__divider {
  width: 1px;
  height: auto;
  margin-top: 3px;
  align-self: stretch;
  background: #d9e0e9;
}

:is(.tmi-page, .sc-page) .story-end__message {
  padding-top: 116px;
}

:is(.tmi-page, .sc-page) .story-end__message > p {
  max-width: none;
  margin: 0;
  color: #111827;
  font-size: 24px;
  font-weight: 300;
  line-height: 1.46;
}

:is(.tmi-page, .sc-page) .story-end__actions {
  justify-content: flex-start;
  gap: 20px;
  margin-top: 20px;
}

:is(.tmi-page, .sc-page) .story-end__actions .content-action {
  width: max-content;
  min-height: 47px;
  padding: 0 24px;
  border: 0;
  border-radius: 0;
  color: #fff;
  background-color: transparent;
  background-image: url("../assets/figma/button-bkg.svg");
  background-position: center;
  background-size: 100% 47px;
  background-repeat: no-repeat;
  box-shadow: none;
  font-size: 16px;
  line-height: 1;
}

:is(.tmi-page, .sc-page) .story-end__meta {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) auto;
  align-items: center;
  gap: 120px;
}

:is(.tmi-page, .sc-page) .story-end__meta > span {
  height: 3px;
  background: linear-gradient(
    90deg,
    #b9c5d2 0%,
    rgb(185 197 210 / 78%) 62%,
    rgb(185 197 210 / 28%) 88%,
    transparent 100%
  );
  clip-path: polygon(
    0 35%,
    18% 42%,
    39% 36%,
    58% 45%,
    78% 40%,
    100% 49%,
    100% 63%,
    78% 58%,
    58% 66%,
    39% 57%,
    18% 64%,
    0 58%
  );
}

:is(.tmi-page, .sc-page) .story-end__meta > p {
  max-width: none;
  margin: 0;
  color: #334155;
  font-size: 14px;
  line-height: 1.4;
  white-space: nowrap;
}

.context-followup {
  margin-top: 80px;
}

.tmi-context-before {
  position: relative;
  width: min(404px, 42%);
  margin: 78px 0 0 auto;
}

.tmi-context-before img {
  width: 100%;
  max-height: 444px;
  border: 0;
  object-fit: contain;
}

.tmi-context-before figcaption {
  position: absolute;
  right: calc(100% + 16px);
  bottom: 0;
  font-size: 16px;
  line-height: 1.35;
  white-space: nowrap;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.digital-mirror {
  position: relative;
  width: min(831px, calc(100% - 90px));
  margin: 78px auto 0;
}

.digital-mirror img {
  display: block;
  width: 100%;
  border: 1px solid #94a3b8;
  border-radius: 12px;
}

.sc-context-question {
  display: grid;
  margin: 80px 38px 0 22px;
  grid-template-columns: minmax(0, 1fr) 346px;
  align-items: start;
  gap: 78px;
}

.sc-context-question .story-copy {
  width: 100%;
  margin: 0;
}

.sc-context-question .sc-context-visual {
  margin-top: 0;
}

.sc-context-question .story-visual {
  width: 100%;
}

.process-gallery--staggered {
  position: relative;
  display: block;
  height: 500px;
}

.process-gallery--staggered img {
  position: absolute;
  object-fit: contain;
}

.process-gallery--staggered img:first-child {
  top: 0;
  right: 0;
  width: 76%;
}

.process-gallery--staggered img:nth-child(2) {
  bottom: 48px;
  left: 0;
  width: 65%;
}

.process-gallery--staggered figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  color: #5a6b84;
  font-size: 14px;
}

.sc-page .process-gallery--staggered {
  height: 690px;
}

.sc-page .process-gallery--staggered img:first-child {
  width: 58%;
}

.sc-page .process-gallery--staggered img:nth-child(2) {
  bottom: 65px;
  width: 54%;
}

.develop-narrative {
  display: grid;
  margin: 72px 22px 0;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: start;
  gap: 72px 18px;
}

.develop-narrative p {
  font-size: 18px;
  line-height: 1.5;
}

.develop-narrative p:first-child {
  grid-column: 1;
}

.develop-narrative > .develop-arrow {
  display: flex;
  grid-row: 2;
  grid-column: 1;
  align-items: flex-start;
  justify-content: center;
}

:is(.tmi-page, .sc-page) .develop-arrow img {
  width: 92px;
  height: 73px;
  object-fit: contain;
}

.develop-narrative p:last-child {
  grid-row: 2;
  grid-column: 2;
}

.redesign-gallery {
  position: relative;
  height: 2240px;
  margin-top: 44px;
}

.redesign-gallery figure {
  position: absolute;
  margin: 0;
}

.redesign-gallery img {
  width: 100%;
}

.redesign-gallery figcaption {
  width: 100%;
  margin-top: 12px;
  color: #111827;
  font-size: 16px;
  line-height: 1.35;
  text-align: right;
}

.redesign-gallery .cmyk-frame {
  margin: 12px 12px 24px;
}

.redesign-gallery .redesign-final-frame {
  margin: 12px 12px 0;
}

.redesign-gallery .redesign-final-frame img {
  display: block;
  width: 100%;
  height: auto;
  border: 0;
  object-fit: contain;
}

.redesign-gallery .cmyk-frame + figcaption {
  margin-top: 0;
}

.redesign-gallery .redesign-final-frame + figcaption {
  width: calc(100% - 24px);
  margin-top: 12px;
  margin-left: 12px;
  text-align: left;
}

.redesign-gallery__offers-final {
  top: 190px;
  left: 0;
  width: 56%;
}

.redesign-gallery__offers-before {
  top: 0;
  right: 0;
  width: 30%;
}

.redesign-gallery__offers-before .story-visual {
  border: 1px solid var(--grey-light);
  border-radius: 12px;
}

.redesign-gallery__offers-first {
  top: 480px;
  right: 0;
  width: 40%;
}

.redesign-gallery__expert-before {
  top: 1240px;
  right: 13%;
  width: 27%;
}

.redesign-gallery__expert-final {
  top: 1320px;
  left: 0;
  width: 57%;
}

.redesign-gallery__expert-final .redesign-final-frame {
  margin-bottom: 0;
}

.redesign-gallery__expert-final figcaption {
  position: relative;
  z-index: 1;
  display: block;
  margin-top: 12px;
}

.redesign-gallery__expert-middle {
  top: 1710px;
  right: 0;
  width: 34%;
}

.tmi-page section[aria-labelledby="tmi-deliver"] .deliver-intro {
  margin-bottom: 126px;
}

.tmi-page .deliver-block--redesigns {
  margin-top: 0;
}

.tmi-page .deliver-block--redesigns > p {
  width: 66%;
  margin-bottom: 0;
}

.tmi-page .deliver-block--redesigns .redesign-gallery {
  height: 2290px;
  margin-top: -108px;
  padding: 0;
}

.tmi-page .deliver-block--redesigns .redesign-gallery::after {
  display: none;
}

.deliver-block--full > .story-visual {
  width: 100%;
}

.dashboard-showcase {
  display: grid;
  height: auto;
  grid-template-columns: 18% minmax(0, 1fr) 18%;
  align-items: start;
  gap: 38px 26px;
}

.dashboard-showcase img {
  position: static;
  width: 100%;
  object-fit: contain;
}

.dashboard-showcase__home {
  grid-row: 1;
  grid-column: 1 / -1;
}

.dashboard-showcase__phone {
  grid-row: 2;
  grid-column: 1;
}

.dashboard-showcase__space {
  margin-top: 40px;
  grid-row: 2;
  grid-column: 2 / -1;
}

.dashboard-showcase__profile {
  grid-row: 3;
  grid-column: 1 / 3;
}

.dashboard-showcase__settings {
  margin-top: 40px;
  grid-row: 3;
  grid-column: 3;
}

.clone-chat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 64px;
}

.clone-chat-grid__lead {
  display: grid;
  gap: 24px;
}

.clone-chat-grid__lead p {
  width: 100%;
  margin: 0;
  font-size: 18px;
  line-height: 1.5;
}

.clone-chat-grid img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.side-project-preview {
  display: block;
  width: min(808px, 88%);
  height: auto;
  margin: 30px 0 92px auto;
}

.side-project-detail {
  display: grid;
  grid-template-columns: 288px 1fr;
  align-items: start;
  gap: 30px;
}

.side-project-detail img {
  width: 288px;
  height: 482px;
  object-fit: cover;
  object-position: top;
}

.side-project-detail p {
  margin-top: 32px;
  font-size: 18px;
  line-height: 1.5;
}

@media (min-width: 851px) {
  .tmi-page section[aria-labelledby="tmi-context"] { min-height: 2320px; }
  .tmi-page section[aria-labelledby="tmi-problem"] { min-height: 850px; }
  .tmi-page section[aria-labelledby="tmi-discover"] { min-height: 1050px; }
  .tmi-page section[aria-labelledby="tmi-define"] { min-height: 920px; }
  .tmi-page section[aria-labelledby="tmi-develop"] { min-height: 1280px; }
  .tmi-page section[aria-labelledby="tmi-deliver"] { min-height: 6100px; }
  .tmi-page section[aria-labelledby="tmi-impact"] { min-height: 560px; }
  .tmi-page section[aria-labelledby="tmi-reflection"] { min-height: 0; padding-bottom: 0; }
  .tmi-page .story-end { min-height: 840px; }

  .sc-page section[aria-labelledby="sc-context"] { min-height: 1810px; }
  .sc-page section[aria-labelledby="sc-problem"] { min-height: 1050px; }
  .sc-page section[aria-labelledby="sc-discover"] { min-height: 1400px; }
  .sc-page section[aria-labelledby="sc-define"] { min-height: 965px; }
  .sc-page section[aria-labelledby="sc-develop"] { min-height: 1770px; }
  .sc-page section[aria-labelledby="sc-deliver"] { min-height: 3540px; }
  .sc-page section[aria-labelledby="sc-impact"] { min-height: 610px; }
  .sc-page section[aria-labelledby="sc-reflection"] { min-height: 0; padding-bottom: 0; }
  .sc-page .story-end { min-height: 900px; }
}

@media (max-width: 1000px) and (min-width: 851px) {
  .project-hero h1 { font-size: 54px; }
  .story-copy { width: calc(100% - 36px); }
  .impact-grid { grid-template-columns: 1fr; }
}

@media (max-width: 850px) {
  .project-page .mobile-header { display: flex; }
  .project-page .side-rail,
  .project-page .glass-panel { display: none; }

  .project-study {
    width: 100%;
    margin-left: 0;
    padding-top: 66px;
  }

  .project-hero {
    min-height: 0;
    padding: 40px 32px 72px;
  }

  .project-hero__art {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    max-height: 360px;
    margin-bottom: 64px;
  }

  .project-hero__copy { width: 100%; }
  .project-hero h1 { font-size: clamp(44px, 13vw, 58px); }
  .project-hero__dek { font-size: 20px; }

  .project-hero__logo,
  .project-meta {
    position: static;
    justify-items: end;
    margin-left: auto;
    text-align: right;
  }

  .project-hero__logo {
    width: 190px;
    max-height: 55px;
    margin-top: 68px;
    object-position: right center;
  }

  .tmi-page .project-hero__logo {
    width: 145px;
    height: auto;
    max-height: none;
  }

  .project-meta { margin-top: 24px; font-size: 15px; }
  .project-meta div { justify-content: flex-end; flex-wrap: wrap; }

  .story-section { padding: 0 32px; }
  .story-divider {
    margin-right: -8px;
    margin-bottom: 80px;
    margin-left: -8px;
    grid-template-columns: 22px minmax(12px, 1fr) auto;
    gap: 8px;
  }
  .story-divider__star { width: 22px; height: 29px; }
  .story-divider h2 { grid-column: 3; align-self: center; font-size: 20px; white-space: nowrap; }
  .story-divider__line { grid-column: 2; height: 7px; align-self: center; }
  .story-copy,
  .story-copy--right { width: 100%; margin: 0; text-align: left; }
  .story-copy h3,
  .story-callout { font-size: 30px; }
  .story-copy p,
  .story-intro,
  .story-card p,
  .impact-grid p,
  .reflection-grid p { font-size: 17px; }

  .tmi-problem__intro p,
  .tmi-problem__detail p,
  .sc-problem__intro p,
  .sc-problem__detail p { font-size: 17px; }

  .tmi-problem__callout,
  .tmi-problem__detail,
  .sc-problem__callout,
  .sc-problem__detail { margin-top: 64px; }

  .tmi-page section[aria-labelledby="tmi-problem"] .process-row,
  .sc-page section[aria-labelledby="sc-problem"] .process-row {
    margin: 46px 0 0;
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }
  :is(.tmi-page, .sc-page) .process-row::after {
    display: block;
    margin: 0;
    flex: none;
  }

  .context-art,
  .process-gallery,
  .image-grid,
  .image-grid--three,
  .dashboard-grid,
  .impact-grid {
    grid-template-columns: 1fr;
  }

  .context-art { margin: 60px 0 0; }
  .context-art img:first-child { max-height: 360px; }
  .tmi-page .context-art { grid-template-columns: 1fr; align-items: center; }
  .tmi-page .context-art img:first-child { width: auto; max-height: 360px; }
  .tmi-page .context-art img:last-child { margin-top: 0; }

  .mission {
    width: 100%;
    margin-top: 80px;
    grid-template-columns: 1px 1fr;
    grid-template-rows: auto auto;
    gap: 12px 22px;
  }

  .mission h3 { grid-row: 1; grid-column: 1 / -1; font-size: 38px; text-align: left; }
  .mission span { grid-row: 2; grid-column: 1; width: 1px; height: 100%; min-height: 150px; }
  .mission p { grid-row: 2; grid-column: 2; align-self: start; padding: 0; font-size: 21px; }

  .tmi-page .story-visual--plain { margin-right: auto; margin-left: auto; }
  .tmi-page .tmi-problem__callout { margin-right: 0; margin-left: auto; text-align: right; }
  .sc-page .sc-problem__callout { margin-right: auto; margin-left: 0; text-align: left; }

  .method-stack,
  .insight-list { width: calc(100% - 42px); margin-right: 0; margin-left: 42px; }
  .method-stack::after,
  .insight-list::before { right: auto; left: -42px; font-size: 27px; }
  .method-stack li,
  .method-stack li:nth-child(2),
  .method-stack li:nth-child(3) { width: 100%; border-radius: 18px; }

  :is(.tmi-page, .sc-page) .method-stack li,
  :is(.tmi-page, .sc-page) .method-stack li:nth-child(2),
  :is(.tmi-page, .sc-page) .method-stack li:nth-child(3) {
    width: max-content;
    max-width: calc(100% - 48px);
    min-width: 0;
    height: auto;
    min-height: 0;
    padding: 12px 24px;
    margin-right: 0;
    border-radius: 0;
    text-align: center;
    white-space: normal;
  }
  .insight-list::before { top: 0; }

  .focus-cards article,
  .focus-cards article:nth-child(2),
  .focus-cards article:nth-child(3) {
    width: 100%;
    margin: 0;
    grid-template-columns: 1fr;
    justify-self: stretch;
    gap: 12px;
    transform: none;
  }

  .focus-cards h3 { font-size: 30px; text-align: left; -webkit-text-fill-color: #020617; -webkit-text-stroke: 0; }
  .process-gallery { margin: 60px 0 0; }
  .deliver-intro { width: 100%; margin: 0 0 58px; }
  .deliver-block { margin: 72px 0 0; }
  .deliver-block__title {
    position: static;
    margin: 0 0 16px;
    padding: 0;
    font-size: 28px;
    line-height: 1.15;
    text-align: left;
    white-space: normal;
    writing-mode: horizontal-tb;
    transform: none;
  }
  .deliver-block > p { width: 100%; }
  .sc-page .deliver-block__responsive-visual .story-visual {
    margin-right: auto;
    margin-left: auto;
  }
  .dashboard-grid img:first-child { grid-row: auto; }
  .impact-grid { margin: 0; }
  .reflection-grid { margin: 0; gap: 72px; }

  .reflection-grid article,
  .reflection-grid article:nth-child(even) {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    grid-template-columns: 1fr;
    justify-self: stretch;
    gap: 14px;
  }

  .reflection-grid article:nth-child(even) {
    padding-left: 32px;
  }

  .reflection-grid h3 { font-size: 30px; text-align: left; }
  .story-end { padding: 90px 22px 110px; }
  .story-end h2 { font-size: 40px; }
  .story-end__actions { flex-direction: column; align-items: center; }

  :is(.tmi-page, .sc-page) .story-end {
    display: block;
    min-height: 0;
    padding: 90px 32px 24px;
  }

  :is(.tmi-page, .sc-page) .story-end__content {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  :is(.tmi-page, .sc-page) .story-end h2 {
    padding: 0;
    font-size: 40px;
    line-height: 1.12;
    text-align: left;
  }

  :is(.tmi-page, .sc-page) .reflection-smile {
    position: static;
    display: block;
    margin: 180px auto 90px;
    transform: none;
  }

  :is(.tmi-page, .sc-page) section[aria-labelledby$="-reflection"] {
    padding-bottom: 0;
  }

  :is(.tmi-page, .sc-page) .story-end__divider {
    width: 100%;
    height: 3px;
    margin-top: 0;
  }

  :is(.tmi-page, .sc-page) .story-end span.section-vertical-rule {
    width: 100%;
    background: linear-gradient(
      90deg,
      transparent 0%,
      #aebbc9 2%,
      #aebbc9 78%,
      rgb(174 187 201 / 62%) 94%,
      transparent 100%
    );
    clip-path: polygon(
      0 38%,
      7% 74%,
      22% 54%,
      39% 78%,
      58% 48%,
      77% 70%,
      100% 42%,
      88% 18%,
      68% 34%,
      48% 12%,
      27% 30%,
      8% 16%
    );
  }

  :is(.tmi-page, .sc-page) .story-end__message { padding: 0; }
  :is(.tmi-page, .sc-page) .story-end__message > p {
    padding-left: 4px;
    font-size: 20px;
  }

  :is(.tmi-page, .sc-page) .story-end__actions {
    width: 100%;
    align-items: flex-end;
    gap: 16px;
  }

  :is(.tmi-page, .sc-page) .story-end__meta {
    margin-top: 100px;
    grid-template-columns: 1fr;
    gap: 16px;
  }

  :is(.tmi-page, .sc-page) .story-end__meta > p {
    font-size: 13px;
    white-space: normal;
  }

  .tmi-context-before { width: min(360px, 100%); margin-top: 80px; }
  .tmi-context-before figcaption {
    position: static;
    margin-top: 8px;
    white-space: normal;
    writing-mode: initial;
    transform: none;
  }
  .context-followup { margin-top: 80px; }
  .digital-mirror { width: 100%; margin-top: 80px; }
  .sc-context-question { margin: 80px 0 0; grid-template-columns: 1fr; gap: 48px; }
  .sc-context-question .sc-context-visual { width: calc(100% - 24px); }

  .process-gallery--staggered,
  .sc-page .process-gallery--staggered {
    display: grid;
    height: auto;
    gap: 28px;
  }

  .process-gallery--staggered img,
  .process-gallery--staggered img:first-child,
  .process-gallery--staggered img:nth-child(2),
  .sc-page .process-gallery--staggered img:first-child,
  .sc-page .process-gallery--staggered img:nth-child(2) {
    position: static;
    width: 100%;
  }

  .process-gallery--staggered figcaption { position: static; }
  .develop-narrative { margin: 58px 0 0; grid-template-columns: 1fr; gap: 38px; }
  .develop-narrative p:first-child,
  .develop-narrative p:last-child,
  .develop-narrative > .develop-arrow { grid-row: auto; grid-column: 1; }
  .develop-narrative .develop-arrow img { width: 90px; }

  .redesign-gallery { display: grid; height: auto; gap: 42px; }
  .tmi-page .deliver-block--redesigns > p { width: 100%; }
  .tmi-page .deliver-block--redesigns .redesign-gallery {
    height: auto;
    margin-top: 42px;
    padding: 0;
  }
  .tmi-page .deliver-block--redesigns .redesign-gallery::after { display: none; }
  .redesign-gallery figure,
  .redesign-gallery__offers-final,
  .redesign-gallery__offers-before,
  .redesign-gallery__offers-first,
  .redesign-gallery__expert-before,
  .redesign-gallery__expert-final,
  .redesign-gallery__expert-middle { position: static; width: 100%; }

  .dashboard-showcase { display: grid; height: auto; grid-template-columns: 1fr; gap: 28px; }
  .dashboard-showcase img,
  .dashboard-showcase__home,
  .dashboard-showcase__phone,
  .dashboard-showcase__space,
  .dashboard-showcase__profile,
  .dashboard-showcase__settings {
    position: static;
    width: 100%;
    margin-top: 0;
    grid-row: auto;
    grid-column: 1;
  }
  .dashboard-showcase__phone,
  .dashboard-showcase__settings { justify-self: center; width: min(220px, 70%); }

  .clone-chat-grid { grid-template-columns: 1fr; gap: 34px; }
  .clone-chat-grid__lead { gap: 24px; }
  .clone-chat-grid img { height: auto; max-height: 680px; object-fit: contain; }
  .side-project-preview { width: calc(100% - 20px); margin-bottom: 64px; }
  .side-project-detail { grid-template-columns: 1fr; }
  .side-project-detail img { width: min(288px, 100%); height: auto; }
  .side-project-detail p { margin-top: 0; }

  :is(.tmi-page, .sc-page) figcaption {
    max-width: 100%;
    font-size: 16px;
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 360px) {
  .story-divider {
    grid-template-columns: 22px minmax(12px, 1fr) auto;
    gap: 6px;
  }

  .story-divider h2 {
    font-size: 17px;
  }
}

figcaption.caption-casual {
  color: var(--grey-medium);
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
}

@media (max-width: 850px) {
  .project-page figcaption {
    font-size: 16px;
  }

  .mission span {
    min-height: 0;
  }

  .sc-page .sc-problem__callout {
    margin-right: 0;
    margin-left: auto;
    text-align: right;
  }

  .method-stack {
    width: 100%;
    margin: 0 0 110px;
    justify-items: end;
    gap: 20px;
  }

  .method-stack::after {
    position: absolute;
    top: 0;
    right: 0;
    left: auto;
    font-size: 30px;
    text-align: right;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
  }

  :is(.tmi-page, .sc-page) .method-stack li,
  :is(.tmi-page, .sc-page) .method-stack li:nth-child(2),
  :is(.tmi-page, .sc-page) .method-stack li:nth-child(3) {
    box-sizing: border-box;
    width: max-content;
    max-width: calc(100% - 60px);
    right: 52px;
    margin-right: 0;
    justify-self: end;
    line-height: 1.35;
    justify-content: flex-end;
    text-align: right;
    white-space: normal;
  }

  .insight-list,
  :is(.tmi-page, .sc-page) .insight-list {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
    gap: 44px;
  }

  .insight-list::before,
  :is(.tmi-page, .sc-page) .insight-list::before {
    position: static;
    margin-bottom: -28px;
    font-size: 30px;
    line-height: 1.2;
    writing-mode: initial;
    transform: none;
  }

  .insight-list article,
  :is(.tmi-page, .sc-page) .insight-list article {
    margin: 0;
    padding: 0;
  }

  :is(.tmi-page, .sc-page) .insight-list p {
    padding-left: 32px;
  }

  :is(.tmi-page, .sc-page) .insight-list p::before {
    display: block;
  }

  .focus-cards {
    margin-right: 0;
    margin-left: 0;
  }

  .focus-cards article,
  .focus-cards article:nth-child(2),
  .focus-cards article:nth-child(3) {
    width: 100%;
    margin: 0;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: start;
    justify-self: stretch;
    gap: 18px;
  }

  .focus-cards h3 {
    position: static;
    width: auto;
    font-size: 28px;
    line-height: 1.1;
    align-self: start;
    justify-self: start;
    text-align: right;
    white-space: nowrap;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    transform-origin: center;
  }

  .focus-cards article:nth-child(2) {
    grid-template-columns: minmax(0, 1fr) max-content;
  }

  .focus-cards article:nth-child(2) h3 {
    grid-row: 1;
    grid-column: 2;
    align-self: start;
    justify-self: end;
    text-align: right;
  }

  .focus-cards article:nth-child(2) p {
    grid-row: 1;
    grid-column: 1;
    text-align: right;
  }

  .focus-cards article p {
    align-self: start;
  }
}

@media (min-width: 851px) {
  :is(.tmi-page, .sc-page) .story-section:not([aria-labelledby$="-reflection"]) {
    min-height: 0;
  }
}

:is(.tmi-page, .sc-page) section[aria-labelledby$="-deliver"] .deliver-block + .deliver-block {
  margin-top: 160px;
}

/* Keep shared project content bounded at every intermediate viewport width. */
.project-study,
.project-study > *,
.story-section,
.story-section > *,
.story-copy,
.method-stack,
.insight-list,
.focus-cards,
.deliver-block,
.story-end__content {
  min-width: 0;
}

.story-copy,
.method-stack li,
.insight-list article,
.focus-cards article,
.deliver-block,
.story-end__message {
  overflow-wrap: anywhere;
}

/* The method title owns the right gutter; tags sit 20px to its left. */
.method-stack {
  width: auto;
  margin-right: -4px;
  margin-left: -4px;
  padding-right: 0;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: start;
  column-gap: 20px;
  row-gap: 20px;
}

.method-stack::after {
  position: static;
  grid-row: 1 / span 3;
  grid-column: 2;
  justify-self: end;
}

:is(.tmi-page, .sc-page) .method-stack li,
:is(.tmi-page, .sc-page) .method-stack li:nth-child(2),
:is(.tmi-page, .sc-page) .method-stack li:nth-child(3) {
  box-sizing: border-box;
  right: auto;
  width: fit-content;
  max-width: 100%;
  margin-right: 0;
  grid-column: 1;
  justify-self: end;
  white-space: normal;
}

@media (max-width: 850px) {
  .method-stack {
    width: auto;
    margin-right: 0;
    margin-left: 0;
    grid-template-columns: minmax(0, 1fr) max-content;
    column-gap: 20px;
  }

  .method-stack::after {
    position: static;
    grid-row: 1 / span 3;
    grid-column: 2;
  }

  :is(.tmi-page, .sc-page) .method-stack li,
  :is(.tmi-page, .sc-page) .method-stack li:nth-child(2),
  :is(.tmi-page, .sc-page) .method-stack li:nth-child(3) {
    right: auto;
    width: fit-content;
    max-width: 100%;
    margin-right: 0;
    grid-column: 1;
  }
}
