.about { /* ** Introduction */ &__introduction { :global(picture) { overflow: hidden; :global(img) { display: block; width: 100%; height: auto; } } // First photo .photo-first { --rotate: -3deg; $offset: 32px; grid-column: 1 / -2; grid-row: 1; margin-left: -$offset; transform: rotate(var(--rotate)) translateZ(0); @include bp (sm) { grid-column: 2 / -6; } @include bp (md) { grid-column: 4 / span 12; margin-left: 0; } :global(picture) { border-radius: clamp(8px, 1vw, 16px); } figcaption { width: 75%; max-width: 250px; margin-top: 12px; margin-left: $offset; color: rgba($color-tertiary, 0.5); @include bp (mob-lg) { max-width: 400px; } @include bp (sm) { width: 100%; max-width: none; margin-left: 0; } } } // Portrait .photo-us { position: relative; grid-row: 1; z-index: 2; grid-column: 6 / -1; margin-top: clamp(56px, 12vw, 120px); @include bp (sm) { grid-column: 18 / -1; } @include bp (md) { grid-column: 16 / span 4; margin-top: clamp(56px, 7vw, 112px); } :global(picture) { overflow: hidden; border-radius: clamp(6px, 1vw, 12px); transform: translate3d(clamp(32px, 3vw, 56px), 0, 0); @include bp (md) { transform: translate3d(calc(-1 * clamp(32px, 3vw, 56px)), 0, 0); } } } // Text .text { grid-column: 1 / -1; grid-row: 3; color: $color-tertiary; margin-top: 48px; @include bp (sm) { margin-top: 96px; grid-column: 3 / -3; } @include bp (md) { grid-column: 17 / span 7; // max-width: 420px; margin-top: calc(-1 * clamp(80px, 8vw, 120px)); } :global(img) { display: inline-block; width: 20px; height: auto; margin-right: 4px; margin-left: 8px; margin-bottom: 3px; border-radius: 100%; } :global(a) { display: inline-block; color: currentColor; text-decoration: none; &:hover { :global(strong) { color: $color-secondary-light; } } } :global(strong) { font-weight: normal; padding-bottom: 2px; background-image: linear-gradient(rgba($color-tertiary, 0.3), rgba($color-tertiary, 0.3)); background-position: 0 100%; background-size: 100% 1px; background-repeat: no-repeat; transition: color 0.4s var(--ease-quart); } } } /* ** Purpose */ &__purpose { margin-top: 72px; text-align: center; @include bp (sm) { margin-top: 120px; } .container { grid-column: 2 / -2; position: relative; display: flex; align-items: center; justify-content: center; height: calc(var(--vh) * 0.9); max-height: 720px; color: #fff; padding: 0 8%; @include bp (sm) { padding: 0 18%; max-height: 1200px; } } // Text .text { opacity: 0.2; max-width: 1024px; transition: opacity 3s var(--ease-quart); :global(strong) { font-weight: inherit; transition: color 3s var(--ease-quart); } } // Background .background { position: absolute; z-index: -1; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; opacity: 0; background-color: $color-primary-tertiary20; border-radius: 0px; transform: scale(1.15) translateZ(0); transition-property: opacity, transform, border-radius; transition-delay: 0.25s; &, &__illustration img { transition-duration: 2.5s; transition-timing-function: var(--ease-quart); } // Illustration &__illustration { position: relative; width: 100%; height: 100%; opacity: 0.75; $mask: linear-gradient(180deg, #000 0%, rgba(0,0,0,0) 62.5%); -webkit-mask-image: $mask; mask-image: $mask; user-select: none; pointer-events: none; img { position: absolute; bottom: 60%; left: 0; display: block; width: 100%; height: auto; opacity: 0; transition-property: opacity; transition-delay: 0.6s; @include bp (md) { bottom: 50%; } @include bp (sd) { bottom: 40%; } } } } // Visible state &:global(.is-visible) { .text { opacity: 1; :global(strong) { color: darken($color-secondary-light, 4); } } .background { opacity: 1; transform: scale(1) translateZ(0); border-radius: 8px; @include bp (sm) { border-radius: 16px; } &__illustration img { opacity: 1; } } } } /* ** Process */ &__process { position: relative; z-index: 2; margin-top: 72px; @include bp (sm) { margin: 128px 0 0; } .title { grid-column: 1 / -1; max-width: 400px; margin: 0 auto 48px; padding: 0 32px; text-align: center; @include bp (sm) { grid-column: 1 / -1; margin-bottom: 80px; padding: 0 16px; } h2 { margin-bottom: 16px; color: $color-secondary; @include bp (sm) { margin-bottom: 24px; } } p { color: $color-tertiary; font-weight: 300; } } // Steps grid .steps { --card-offset: 16px; --card-margin: 40px; grid-column: 1 / -1; @include bp (sm) { grid-column: 4 / -4; padding-bottom: calc(var(--cards-amount) * var(--card-offset)); } & > :global(*) { grid-column: 1 / -1; position: sticky; top: var(--card-margin); transform-origin: center top; padding-top: calc(var(--index) * var(--card-offset)); padding-bottom: var(--card-margin); margin-bottom: calc(-1 * var(--index) * var(--card-offset)); will-change: transform; } } // Intention .intention { grid-column: 1 / -1; position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; align-items: center; min-height: min(45vw, 720px); padding: 56px 32px; border-radius: 12px; background: $color-primary-darker; color: $color-tertiary; text-align: center; @include bp (sm) { --columns: 18; grid-column: 4 / -4; border-radius: 16px; } &__content { width: clamp(250px, 75%, 562px); margin: 0 auto; } :global(.globe) { margin-bottom: 32px; @include bp (sm) { margin-bottom: 40px; } } } } /* ** Photos grid */ &__photos { position: relative; z-index: 1; margin-top: -64px; @include bp (sm) { margin-top: -120px; } .container-wide { overflow: hidden; @include bp (sm, max) { width: 100%; } } .photos-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.75vw; margin: -5% -5% 0; transform: rotate(-6deg) translateY(var(--parallax-y)) translateZ(0); transition: transform 0.8s var(--ease-quart); @include bp (sm) { grid-template-columns: repeat(7, 1fr); gap: 12px; margin: -5% -5% 0; } } :global(picture) { width: 100%; height: auto; border-radius: 6px; overflow: hidden; cursor: pointer; transition: opacity 1s var(--ease-quart); @include bp (sm) { border-radius: 8px; } :global(img) { display: block; width: 100%; height: auto; user-select: none; pointer-events: none; } } $opacity-off: 0.2; // States :global(.is-disabled) { opacity: $opacity-off; } :global(.is-hovered picture) { opacity: 1; } :global(.is-hovered picture:not(.is-disabled)) { opacity: $opacity-off; } // Mask &:before { content: ""; display: block; position: absolute; z-index: 2; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(0deg, rgba($color-primary, 1) 0%, rgba($color-primary, 0) 25%, rgba($color-primary, 0) 75%, rgba($color-primary, 1) 100%); pointer-events: none; } } /* ** Bottom */ &__bottom { @include bp (sm) { margin-top: calc(-1 * clamp(160px, 14vw, 240px)); } // Modules .grid-modules { grid-column: 1 / -1; @include bp (sm) { grid-column: 2 / -2; } } } // Interest &__interest { position: relative; z-index: 2; display: block; margin-bottom: 20px; padding: 72px 32px; background: $color-primary-tertiary20; border-radius: 12px; box-shadow: 0px -24px 120px rgba($color-primary-darker, 0.8); @include bp (sm) { display: grid; grid-column: 2 / -2; margin-bottom: 48px; padding: clamp(72px, 8vw, 160px) 0; } h2 { grid-column: 1 / -1; margin-bottom: 64px; color: #fff; text-align: center; @include bp (sm) { margin-bottom: 104px; } } .blocks { @include bp (sm) { grid-column: 4 / -4; display: grid; grid-template-columns: repeat(2, 1fr); column-gap: 11.5%; } } .block { text-align: center; &:not(:last-child) { margin-bottom: 64px; @include bp (sm) { margin-bottom: 0; } } h3 { margin-bottom: 12px; color: $color-secondary-light; font-weight: 600; } p { margin-bottom: 24px; font-weight: 300; @include bp (sm) { margin-bottom: 32px; } } } } }