/* Complete Home and Works sections from the supplied design. */
.tw-orbit-hint {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #bcbcbc;
  font-size: 11px;
  padding-top: 8px;
}
.tw-orbit-hint > span {
  display: grid;
  place-items: center;
  border: 1px solid #ffffff35;
  border-radius: 50%;
  width: 28px;
  height: 28px;
  font-size: 20px;
}
.tw-hero-aside {
  min-width: 0;
  max-width: 420px;
}
.tw-hero-aside > p {
  margin-top: 22px;
  font-size: 11px;
  color: #bcbcbc;
  line-height: 1.6;
}
.tw-hero-featured {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 18px 10px 10px;
  border-radius: 22px;
  border: 1px solid #ffffff24;
  background: #141414b8;
  backdrop-filter: blur(18px);
  max-width: 100%;
  animation: tw-featured-float 6s ease-in-out infinite alternate;
  animation-play-state: var(--tw-ambient-play, paused);
}
.tw-hero-featured > img {
  width: clamp(76px, 10vw, 132px);
  height: 84px;
  object-fit: cover;
  object-position: top;
  border-radius: 14px;
  flex-shrink: 0;
}
.tw-hero-featured > span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.tw-hero-featured small,
.tw-hero-featured strong,
.tw-hero-featured > span > span {
  display: block;
}
.tw-hero-featured small {
  font-size: 9px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #b4b4b4;
}
.tw-hero-featured strong {
  margin: 5px 0;
  font:
    500 22px/1.1 "Clash Display",
    sans-serif;
}
.tw-hero-featured > span > span {
  font-size: 11px;
  color: #b4b4b4;
}
.tw-hero-featured > svg {
  flex-shrink: 0;
}
@keyframes tw-featured-float {
  from {
    transform: translateY(0) rotate(-1deg);
  }
  to {
    transform: translateY(-9px) rotate(1deg);
  }
}
.tw-stat:first-child {
  box-shadow:
    7px 7px 0 -1px var(--tw-paper),
    7px 7px 0 #bdbdbd,
    14px 14px 0 -1px var(--tw-paper),
    14px 14px 0 #d0d0d0;
}
@supports (interpolate-size: allow-keywords) {
  .tw-service-accordion details {
    interpolate-size: allow-keywords;
  }
  .tw-service-accordion details::details-content {
    block-size: 0;
    overflow: clip;
    transition:
      block-size 0.4s ease,
      content-visibility 0.4s allow-discrete;
  }
  .tw-service-accordion details[open]::details-content {
    block-size: auto;
  }
}
.tw-process {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.tw-process-zigzag {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin: 72px 0 40px;
}
.tw-process-zigzag > li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px 24px;
  width: min(100%, 520px);
  padding-block: 28px;
}
.tw-process-zigzag > li:nth-child(even) {
  margin-left: auto;
}
.tw-process-zigzag .tw-process-number {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  color: var(--tw-muted);
  font:
    500 12px Satoshi,
    sans-serif;
  letter-spacing: 0.1em;
}
.tw-process-zigzag .tw-process-number:before {
  content: "////";
  color: var(--tw-accent);
  margin-right: 12px;
  letter-spacing: -0.1em;
}
.tw-process-zigzag h3 {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  font-size: 34px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
.tw-process-zigzag p {
  grid-column: 1 / -1;
  font-size: 15px;
  line-height: 1.6;
}
.tw-leadership-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.5fr);
  gap: clamp(40px, 5vw, 80px);
  align-items: start;
  margin-top: 64px;
}
.tw-leadership-copy h2 {
  font-size: clamp(36px, 4.2vw, 64px);
  line-height: 0.98;
  white-space: pre-line;
}
.tw-leadership-copy p {
  margin-top: 24px;
  color: var(--tw-muted);
  line-height: 1.7;
  max-width: 370px;
}
.tw-leadership-layout .tw-team-leaders {
  width: 100%;
  gap: 28px;
}
.tw-home-team .tw-person-caption {
  border-top: 1px solid var(--tw-line);
  margin-top: 16px;
}
.tw-home-team .tw-person-caption h3 {
  font-size: 22px;
}
.tw-home-team .tw-team-leaders h3 {
  font-size: clamp(22px, 2vw, 30px);
}
.tw-collective {
  margin-top: 100px;
}
.tw-collective .tw-section-heading h2 {
  text-transform: none;
}
.tw-global-reach {
  padding-top: 40px;
}
.tw-reach-field {
  position: relative;
  overflow: hidden;
  border-radius: 32px;
  padding: 42px 32px 28px;
  background-color: var(--tw-ink);
  background-image:
    radial-gradient(ellipse at 60% 50%, transparent 30%, var(--tw-ink) 85%),
    radial-gradient(#f5f5f538 1.2px, transparent 1.4px);
  background-size:
    100% 100%,
    18px 18px;
  color: var(--tw-paper);
}
.tw-market-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  padding: 35px 0 60px;
  margin: 0;
  gap: 28px;
  align-items: start;
  min-height: 380px;
}
.tw-market-list > li {
  min-width: 0;
}
.tw-market-list:has(> li:nth-child(5):last-child) {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 20px 12px;
}
.tw-market-list:has(> li:nth-child(5):last-child) > li:nth-child(1) {
  grid-area: 1 / 4 / auto / 8;
}
.tw-market-list:has(> li:nth-child(5):last-child) > li:nth-child(2) {
  grid-area: 2 / 6 / auto / 10;
}
.tw-market-list:has(> li:nth-child(5):last-child) > li:nth-child(3) {
  grid-area: 3 / 7 / auto / 11;
}
.tw-market-list:has(> li:nth-child(5):last-child) > li:nth-child(4) {
  grid-area: 4 / 8 / auto / 12;
}
.tw-market-list:has(> li:nth-child(5):last-child) > li:nth-child(5) {
  grid-area: 2 / 10 / auto / 13;
}
.tw-city {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  max-width: 100%;
  gap: 12px;
  padding: 12px 18px;
  border-radius: 999px;
  background: var(--tw-paper);
  color: var(--tw-ink) !important;
  font-size: 13px;
  font-weight: 500;
  overflow-wrap: anywhere;
  transition:
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    background 0.4s;
}
.tw-market-list > li:last-child .tw-city {
  background: var(--tw-accent);
  box-shadow: 0 0 0 8px #ffffff0f;
}
.tw-market-pulse {
  flex: none;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
  animation: tw-market-pulse 2s ease-out infinite;
  animation-delay: var(--tw-market-delay);
  animation-play-state: var(--tw-ambient-play, paused);
}
@keyframes tw-market-pulse {
  from {
    box-shadow: 0 0 0 0 #0a0a0a50;
  }
  80%,
  to {
    box-shadow: 0 0 0 8px #0a0a0a00;
  }
}
.tw-reach-route {
  color: #a6a6a6;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  line-height: 1.8;
}
.tw-work-hero h1 {
  font-size: clamp(56px, 11vw, 172px);
  margin: 56px 0 42px;
  line-height: 0.9;
}
.tw-work-hero h1 sup {
  display: inline-block;
  vertical-align: top;
  margin: 0.18em 0 0 0.4em;
  font-size: 0.28em;
  line-height: 1.3;
  color: var(--tw-accent);
}
.tw-work-hero-bottom,
.tw-work-cta-bottom {
  display: flex;
  justify-content: space-between;
  gap: 60px;
  align-items: flex-end;
}
.tw-work-hero-bottom > p,
.tw-work-cta-bottom > p {
  max-width: 500px;
  font-size: 17px;
  color: var(--tw-muted);
  line-height: 1.7;
}
.tw-work-counts {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(24px, 5vw, 80px);
  margin: 0;
  flex-shrink: 0;
}
.tw-work-counts > div {
  display: flex;
  flex-direction: column-reverse;
}
.tw-work-counts dt {
  font-size: 11px;
  color: var(--tw-muted);
  margin-top: 10px;
}
.tw-work-counts dd {
  font:
    500 44px/1 "Clash Display",
    sans-serif;
  margin: 0;
}
.tw-work-index {
  padding-top: 64px;
}
.tw-work-index-intro {
  max-width: 540px;
  margin: 30px 0 48px !important;
  line-height: 1.7;
  color: var(--tw-muted);
}
.tw-work-row,
.tw-work-index-columns {
  display: grid;
  grid-template-columns:
    36px minmax(0, 1.45fr) minmax(0, 0.85fr) minmax(0, 1fr)
    44px;
  gap: 24px;
}
.tw-work-index-columns {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--tw-line);
}
.tw-work-index-columns > span {
  font-size: 11px;
  color: var(--tw-muted);
}
.tw-work-row h2 {
  font-size: clamp(24px, 2.5vw, 38px);
  overflow-wrap: anywhere;
}
.tw-work-row .tw-round-link {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
}
.tw-work-row .tw-work-industry,
.tw-work-row .tw-work-services {
  font-size: 12px;
  line-height: 1.6;
  color: var(--tw-muted);
}
.tw-work-showcase {
  display: block;
}
.tw-project-visual {
  background:
    radial-gradient(ellipse at top right, #ffffff12, transparent 80%),
    var(--project-color);
  color: var(--project-ink) !important;
}
.tw-project-tags > span:first-child {
  background: transparent;
  border-color: var(--project-line);
}
.tw-showcase-intro {
  margin-bottom: 72px;
}
.tw-showcase-intro h2 {
  max-width: 1100px;
  margin-top: 40px;
  font-size: clamp(30px, 4.5vw, 66px);
  line-height: 1.1;
}
.tw-software-intro {
  max-width: 420px;
}
.tw-software-intro p {
  color: var(--tw-muted);
  line-height: 1.7;
  margin-bottom: 28px;
}
.tw-software-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 64px;
}
.tw-software-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 40px;
  min-width: 0;
  min-height: 260px;
  padding: 28px;
  border: 1px solid #ffffff1f;
  border-radius: 24px;
  background: #141414;
  transition:
    border-color 0.4s,
    transform 0.7s,
    box-shadow 0.7s;
}
.tw-software-card:first-child {
  grid-column: span 2;
  background: linear-gradient(135deg, #ff4d1f29, #ff4d1f05 60%), #141414;
}
.tw-software-card:last-child {
  grid-column: 1 / -1;
  min-height: 200px;
}
.tw-software-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.tw-software-card-top > svg {
  width: 60px;
  height: 60px;
  padding: 14px;
  color: var(--tw-accent);
  border: 1px solid #ffffff24;
  border-radius: 16px;
  transition:
    background 0.4s,
    color 0.4s,
    transform 0.5s;
}
.tw-software-card-top > span {
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--tw-muted);
}
.tw-software-card h3 {
  font-size: clamp(23px, 2vw, 30px);
  line-height: 1.08;
}
.tw-software-card p {
  margin-top: 14px;
  max-width: 500px;
  font-size: 15px;
  color: var(--tw-muted);
  line-height: 1.6;
}
.tw-software-card ul {
  margin: 20px 0 0;
  padding-left: 18px;
  color: var(--tw-muted);
  font-size: 13px;
  line-height: 1.7;
}
.tw-build-workflow {
  margin-top: 90px;
}
.tw-build-workflow > h2 {
  font:
    500 12px/1.5 Satoshi,
    sans-serif;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.tw-build-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  gap: 24px;
  padding: 0;
  margin: 24px 0 40px;
}
.tw-build-steps li {
  border-top: 1px solid var(--tw-line);
  padding-top: 22px;
}
.tw-build-steps li > span {
  color: var(--tw-accent);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.tw-build-steps h3 {
  font-size: 23px;
  margin: 16px 0 10px;
}
.tw-build-steps p {
  font-size: 14px;
  color: var(--tw-muted);
  line-height: 1.6;
}
.tw-software-note {
  color: var(--tw-muted);
  font-size: 13px;
  line-height: 1.7;
  max-width: 650px;
}
.tw-work-cta h2 {
  font-size: clamp(48px, 9vw, 144px);
  line-height: 0.94;
  white-space: pre-line;
  margin: 64px 0 48px;
}
.tw-work-cta .tw-actions {
  margin-top: 0;
  flex-shrink: 0;
}
.tw-work-cta .tw-actions > a:nth-child(2) {
  background: transparent;
  color: var(--tw-ink);
}
@media (hover: hover) and (pointer: fine) {
  .tw-city:hover {
    transform: translateY(-4px) scale(1.04);
  }
  .tw-software-card:hover {
    border-color: #ff4d1f99;
    box-shadow: 0 40px 70px -40px #000e;
  }
  .tw-software-card.tw-in:hover {
    transform: translateY(-6px);
  }
  .tw-software-card:hover svg {
    background: var(--tw-accent);
    color: var(--tw-ink);
    transform: rotate(-8deg);
  }
}
.tw-city:focus-visible {
  transform: translateY(-4px);
}
@media (max-width: 1100px) {
  .tw-orbit-hint {
    display: none;
  }
  .tw-work-hero-bottom {
    gap: 36px;
  }
  .tw-work-counts {
    gap: 30px;
  }
  .tw-leadership-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .tw-leadership-copy {
    max-width: 600px;
  }
  .tw-leadership-copy p {
    max-width: none;
  }
}
@media (max-width: 900px) {
  .tw-hero-bottom {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 32px;
  }
  .tw-hero-description {
    max-width: 600px;
  }
  .tw-hero-aside {
    max-width: 100%;
  }
  .tw-hero-aside > p {
    display: none;
  }
  .tw-work-hero-bottom,
  .tw-work-cta-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 40px;
  }
  .tw-work-row,
  .tw-work-index-columns {
    grid-template-columns: 30px minmax(0, 1.5fr) minmax(0, 1fr) 44px;
    gap: 16px;
  }
  .tw-work-services,
  .tw-work-index-columns > span:nth-child(4) {
    display: none;
  }
  .tw-project-large {
    margin-bottom: 48px;
  }
  .tw-software-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tw-software-card:first-child {
    grid-column: auto;
  }
  .tw-build-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 36px 24px;
  }
}
@media (max-width: 800px) {
  .tw-process:not(.tw-process-zigzag) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tw-process-zigzag {
    gap: 20px;
  }
  .tw-process-zigzag > li {
    width: 85%;
  }
  .tw-reach-field {
    padding: 20px;
    border-radius: 24px;
  }
  .tw-market-list,
  .tw-market-list:has(> li:nth-child(5):last-child) {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 20px 0 40px;
    min-height: 0;
  }
  .tw-market-list > li:nth-child(even) {
    align-self: flex-end;
  }
  .tw-market-list > li:last-child {
    align-self: center;
  }
}
@media (max-width: 540px) {
  .tw-hero-featured {
    gap: 12px;
    padding-right: 12px;
  }
  .tw-hero-featured > img {
    width: 76px;
    height: 68px;
  }
  .tw-hero-featured strong {
    font-size: 20px;
  }
  .tw-hero-featured > svg {
    width: 16px;
  }
  .tw-process-zigzag {
    margin-block: 40px 0;
  }
  .tw-process-zigzag > li {
    width: 100%;
    padding-block: 24px;
    gap: 12px;
  }
  .tw-process-zigzag h3 {
    font-size: 28px;
  }
  .tw-process-zigzag p {
    font-size: 14px;
  }
  .tw-leadership-layout {
    margin-top: 40px;
  }
  .tw-collective {
    margin-top: 64px;
  }
  .tw-home-team .tw-team-leaders {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 16px;
  }
  .tw-home-team .tw-person-caption h3,
  .tw-home-team .tw-team-leaders h3 {
    font-size: 19px;
  }
  .tw-home-team .tw-portrait {
    border-radius: 14px;
  }
  .tw-home-team .tw-portrait .tw-round-link {
    width: 32px;
    height: 32px;
    right: 10px;
    bottom: 10px;
  }
  .tw-home-team .tw-person-caption p {
    font-size: 11px;
  }
  .tw-global-reach {
    padding-top: 10px;
  }
  .tw-work-hero h1 {
    margin: 36px 0;
    font-size: clamp(48px, 13vw, 72px);
  }
  .tw-work-counts {
    gap: 22px;
    width: 100%;
    justify-content: space-between;
  }
  .tw-work-counts dd {
    font-size: 36px;
  }
  .tw-work-counts dt {
    font-size: 10px;
  }
  .tw-work-row {
    grid-template-columns: 24px minmax(0, 1fr) 32px;
    gap: 12px;
  }
  .tw-work-row .tw-work-industry,
  .tw-work-index-columns {
    display: none;
  }
  .tw-work-index {
    padding-top: 40px;
  }
  .tw-work-index-intro {
    margin-bottom: 24px !important;
  }
  .tw-showcase-intro {
    margin-bottom: 48px;
  }
  .tw-showcase-intro h2 {
    margin-top: 28px;
  }
  .tw-software-grid {
    grid-template-columns: 1fr;
    margin-top: 40px;
  }
  .tw-software-card {
    padding: 24px;
    min-height: 250px;
  }
  .tw-software-card:last-child {
    min-height: 250px;
  }
  .tw-software .tw-section-heading {
    align-items: flex-start;
  }
  .tw-build-workflow {
    margin-top: 60px;
  }
  .tw-build-steps {
    grid-template-columns: 1fr;
  }
  .tw-work-cta h2 {
    margin: 40px 0 28px;
  }
  .tw-work-cta .tw-actions {
    flex-shrink: 1;
  }
}
