*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
:root {
--c-bg: #ffffff;
--c-ink: #071b31;
--c-ink-72: rgba(7, 27, 49, 0.72);
--c-ink-60: rgba(7, 27, 49, 0.60);
--c-ink-40: rgba(7, 27, 49, 0.40);
--c-ink-24: rgba(7, 27, 49, 0.24);
--c-ink-12: rgba(7, 27, 49, 0.12);
--c-accent: #d8edfa;
--c-card: #e8ebed;
--c-photo-bg: #ededed;
--c-tag-bg: rgba(255, 255, 255, 0.60);
--font: 'Onest', system-ui, -apple-system, sans-serif;
--header-h: 80px;
--page-pad: 40px;
--content-w: 1360px;
--gap-section: 20px;
--folder-tab-h: 34px;
}
html {
scroll-behavior: smooth;
-webkit-text-size-adjust: 100%;
}
body {
font-family: var(--font);
background-color: var(--c-bg);
color: var(--c-ink);
display: flex;
flex-direction: column;
min-height: 100vh;
}
img, svg {
display: block;
max-width: 100%;
}
a {
color: inherit;
text-decoration: none;
}
.skip-link {
position: absolute;
left: -9999px;
top: auto;
width: 1px;
height: 1px;
overflow: hidden;
}
.skip-link:focus {
left: 0;
top: 0;
width: auto;
height: auto;
overflow: visible;
padding: 4px 12px;
background: var(--c-ink);
color: #fff;
z-index: 9999;
outline: none;
}
:focus-visible {
outline: 2px solid var(--c-ink);
outline-offset: 2px;
}
.site-main {
flex: 1;
display: flex;
flex-direction: column;
gap: var(--gap-section);
}
.site-header {
position: sticky;
top: 0;
z-index: 100;
height: var(--header-h);
padding: 24px var(--page-pad) 0;
overflow: hidden;
backdrop-filter: blur(6px);
background: linear-gradient(to left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
-webkit-backdrop-filter: blur(6px);
}
.site-header__body {
display: flex;
align-items: center;
justify-content: space-between;
height: 100%;
}
.site-header__left {
display: flex;
align-items: center;
gap: 12px;
}
.site-header__logo {
width: 18px;
height: 18px;
flex-shrink: 0;
}
.site-header__location {
display: flex;
align-items: center;
gap: 8px;
}
.site-header__divider {
display: flex;
align-items: center;
justify-content: center;
width: 28px;
align-self: stretch;
}
.site-header__divider img {
width: 10px;
height: 10px;
}
.site-header__city {
font-size: 20px;
font-weight: 500;
line-height: 28px;
white-space: nowrap;
}
.site-header__right {
display: flex;
align-items: center;
gap: 12px;
}
.site-header__icon-group {
display: flex;
align-items: center;
}
.site-header__icon-btn {
display: flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
flex-shrink: 0;
transition: opacity 0.15s ease;
}
.site-header__icon-btn:hover {
opacity: 0.6;
}
.site-header__icon-btn img {
width: 24px;
height: 24px;
}
.site-header__icon-btn--max img {
width: 22px;
height: 22px;
}
.site-header__sep {
font-size: 20px;
font-weight: 500;
line-height: 28px;
opacity: 0.24;
}
.site-header__links {
display: flex;
align-items: center;
gap: 4px;
}
.site-header__link {
font-size: 20px;
font-weight: 500;
line-height: 28px;
padding: 0 8px;
text-decoration: underline;
text-underline-offset: 3px;
transition: opacity 0.15s ease;
}
.site-header__link:hover {
opacity: 0.6;
}
.site-footer {
padding: 0 var(--page-pad) 16px;
overflow: hidden;
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
}
.site-footer__body {
height: 48px;
display: flex;
align-items: center;
justify-content: center;
}
.site-footer__copy {
font-size: 20px;
font-weight: 500;
line-height: 28px;
color: var(--c-ink-40);
white-space: nowrap;
}
.pg-section {
background: var(--c-bg);
display: flex;
flex-direction: column;
align-items: center;
overflow: clip;
padding: var(--page-pad);
}
.pg-section--about {
padding-top: 80px;
padding-bottom: 80px;
}
.pg-section--goodbye {
padding-top: 80px;
padding-bottom: 200px;
}
.pg-section__body {
max-width: var(--content-w);
width: 100%;
display: flex;
flex-direction: column;
gap: 40px;
}
.tag {
background: #EBEDEF;
height: 40px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 16px;
border-radius: 1000px;
font-size: 20px;
font-weight: 500;
line-height: 28px;
white-space: nowrap;
flex-shrink: 0;
}
.tag--muted {
color: var(--c-ink-60);
}
.tag-row {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.goodbye-body {
display: flex;
flex-direction: column;
gap: 40px;
align-items: center;
max-width: var(--content-w);
width: 100%;
}
.goodbye-gif {
transform: rotate(-2deg);
width: 286px;
height: 200px;
border-radius: 24px;
overflow: hidden;
position: relative;
background: var(--c-photo-bg);
flex-shrink: 0;
}
.goodbye-gif img {
position: absolute;
width: 105%;
height: 191%;
top: -3%;
left: -4%;
max-width: none;
object-fit: cover;
}
.goodbye-text {
display: flex;
flex-direction: column;
gap: 12px;
align-items: center;
font-weight: 500;
text-align: center;
}
.goodbye-text__heading {
font-size: 36px;
line-height: 44px;
white-space: nowrap;
}
.goodbye-text__sub {
font-size: 20px;
line-height: 28px;
opacity: 0.9;
width: 720px;
}
.goodbye-contacts {
display: flex;
flex-direction: column;
gap: 12px;
align-items: center;
width: fit-content;
max-width: 100%;
}
.goodbye-btn-row {
display: flex;
gap: 12px;
align-items: center;
justify-content: center;
width: 100%;
}
.btn-pill {
display: inline-flex;
align-items: center;
gap: 12px;
height: 48px;
padding: 0 20px 0 16px;
border-radius: 24px;
background: var(--c-ink);
color: #fff;
font-size: 20px;
font-weight: 400;
line-height: 28px;
white-space: nowrap;
flex-shrink: 0;
cursor: pointer;
text-decoration: none;
transition: opacity 0.15s ease;
}
.btn-pill:hover {
opacity: 0.75;
}
.btn-pill img {
width: 24px;
height: 24px;
flex-shrink: 0;
}
.icon-btn {
display: flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
flex-shrink: 0;
transition: opacity 0.15s ease;
}
.icon-btn:hover {
opacity: 0.6;
}
.icon-btn img {
width: 22px;
height: 22px;
}
.icon-btn--linkedin img {
width: 24px;
height: 24px;
}
.goodbye-email {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
height: 48px;
padding: 0 20px;
border: 1.5px solid var(--c-ink-12);
border-radius: 24px;
font-size: 20px;
font-weight: 500;
line-height: 28px;
white-space: nowrap;
width: 100%;
transition: border-color 0.15s ease;
}
.goodbye-email:hover {
border-color: var(--c-ink);
}
.goodbye-email__icon {
display: block;
width: 24px;
height: 24px;
flex-shrink: 0;
background-color: #9CA4AD;
-webkit-mask-image: url('/vector/copy-icon.svg');
mask-image: url('/vector/copy-icon.svg');
mask-size: contain;
mask-repeat: no-repeat;
mask-position: center;
transition: background-color 0.15s ease;
}
.goodbye-email:hover .goodbye-email__icon {
background-color: var(--c-ink);
}
.copy-toast {
padding: 16px 20px;
position: fixed;
top: 100px;
right: 24px;
display: flex;
align-items: center;
gap: 16px;
background: #ffffff;
border: 1.5px solid var(--c-ink-12);
border-radius: 24px;
z-index: 9999;
opacity: 0;
transform: translateY(-12px);
transition: opacity 0.2s ease, transform 0.2s ease;
pointer-events: none;
}
.copy-toast--visible {
opacity: 1;
transform: translateY(0);
pointer-events: auto;
}
.copy-toast__icon {
width: 28px;
height: 28px;
flex-shrink: 0;
}
.copy-toast__text {
font-family: var(--font);
font-size: 20px;
font-weight: 500;
line-height: 28px;
color: var(--c-ink);
white-space: nowrap;
}
.btn-pill__icon {
display: block;
width: 12px;
height: 12px;
flex-shrink: 0;
background-color: #fff;
-webkit-mask-image: url('/vector/case-arrow.svg');
mask-image: url('/vector/case-arrow.svg');
mask-size: contain;
mask-repeat: no-repeat;
mask-position: center;
}
.case-img-block {
width: 100%;
min-height: 400px;
border-radius: 40px;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.mobile-image {
padding: 40px;
}
.web-image {
padding: 60px;
}
.case-img-block__img {
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 12px;
}
.no-padding {
padding: 0;
}
.case-img-description {
margin-top: 24px;
opacity: 0.6;
width: 800px;
font-size: 20px;
line-height: 28px;
color: #071B31;
font-weight: normal;
}
.case-img-block--placeholder {
flex-direction: column;
align-items: stretch;
justify-content: flex-start;
gap: 24px;
padding: 40px;
}
.case-img-block__ph-row {
height: 204px;
background: rgba(7, 27, 49, 0.06);
border-radius: 12px;
flex-shrink: 0;
}
.error-page {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
gap: 1rem;
min-height: 40vh;
padding: 40px;
}
.error-page__code {
font-size: clamp(4rem, 12vw, 8rem);
font-weight: 800;
line-height: 1;
opacity: 0.12;
}
.error-page__title {
font-size: 36px;
font-weight: 500;
line-height: 44px;
}
.error-page__link {
font-size: 20px;
font-weight: 500;
line-height: 28px;
text-decoration: underline;
text-underline-offset: 3px;
color: var(--c-ink);
transition: opacity 0.15s ease;
}
.error-page__link:hover {
opacity: 0.6;
}
.sub-badge {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 8px;
background: var(--c-accent);
font-size: 20px;
font-weight: 500;
line-height: 28px;
white-space: nowrap;
}
.section-heading {
font-size: 36px;
font-weight: 400;
line-height: 44px;
text-align: center;
width: 720px;
}
.hero__body {
display: flex;
flex-direction: column;
align-items: center;
gap: 40px;
}
.hero__avatar {
width: 140px;
height: 140px;
overflow: hidden;
flex-shrink: 0;
background-color: transparent;
}
.hero__avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}
.hero__about {
display: flex;
flex-direction: column;
align-items: center;
gap: 24px;
}
.hero__name-role {
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
}
.hero__name {
font-size: 40px;
font-weight: 500;
line-height: 48px;
white-space: nowrap;
}
.hero__role {
display: flex;
align-items: flex-start;
justify-content: center;
gap: 6px;
font-size: 20px;
font-weight: 500;
line-height: 28px;
white-space: nowrap;
}
.hero__exp-badge {
background: var(--c-accent);
padding: 0 8px;
font-size: 20px;
font-weight: 500;
line-height: 28px;
}
.hero__bio {
font-size: 36px;
font-weight: 400;
line-height: 44px;
text-align: center;
width: 720px;
}
.hero__video-btn {
display: flex;
align-items: center;
gap: 16px;
padding: 12px 24px 12px 12px;
border: 1.5px solid var(--c-ink-12);
border-radius: 32px;
width: 400px;
cursor: pointer;
transition: opacity 0.15s ease;
}
.hero__video-btn:hover {
opacity: 0.7;
}
.hero__video-preview {
width: 120px;
height: 80px;
border-radius: 24px;
overflow: hidden;
flex-shrink: 0;
background: rgba(7, 27, 49, 0.08);
position: relative;
}
.hero__video-preview img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 24px;
}
.hero__video-info {
display: flex;
flex-direction: column;
font-size: 20px;
font-weight: 500;
line-height: 28px;
}
.hero__video-title {
white-space: nowrap;
}
.hero__video-duration {
color: var(--c-ink-40);
white-space: nowrap;
}
.case-body {
height: calc(1008px + var(--folder-tab-h));
display: flex;
width: 100%;
}
.case-card {
flex: 1;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: calc(120px + var(--folder-tab-h)) var(--page-pad) var(--page-pad);
position: relative;
}
.case-card__body, .case-card__back {
position: absolute;
pointer-events: none;
inset: var(--folder-tab-h) 0 0;
}
.case-card__back {
z-index: 0;
opacity: 48%;
height: 60px;
margin-top: 36px;
clip-path: polygon( 0% 65.574%,0% 65.574%,0.054% 54.937%,0.211% 44.847%,0.462% 35.439%,0.798% 26.847%,1.212% 19.206%,1.694% 12.652%,2.236% 7.319%,2.829% 3.343%,3.466% 0.858%,4.137% 0%,92.327% 0%,92.327% 0%,92.666% 0.22%,93% 0.874%,93.329% 1.95%,93.649% 3.44%,93.961% 5.331%,94.262% 7.614%,94.551% 10.279%,94.826% 13.314%,95.086% 16.711%,95.329% 20.457%,100% 98.556%,0% 98.556%,0% 65.574% );
}
.case-card__body {
z-index: 1;
clip-path: polygon(97.059% 5.964%, 97.059% 5.964%, 97.536% 6.016%, 97.988% 6.167%, 98.41% 6.408%, 98.796% 6.731%, 99.139% 7.129%, 99.432% 7.592%, 99.672% 8.113%, 99.85% 8.684%, 99.962% 9.295%, 100% 9.94%, 100% 96.024%, 100% 96.024%, 99.962% 96.669%, 99.85% 97.281%, 99.672% 97.851%, 99.432% 98.372%, 99.139% 98.835%, 98.796% 99.233%, 98.41% 99.556%, 97.988% 99.797%, 97.536% 99.948%, 97.059% 100%, 2.941% 100%, 2.941% 100%, 2.464% 99.948%, 2.012% 99.797%, 1.59% 99.556%, 1.204% 99.233%, 0.861% 98.835%, 0.567% 98.372%, 0.328% 97.851%, 0.15% 97.281%, 0.038% 96.669%, 0% 96.024%, 0% 3.976%, 0% 3.976%, 0.038% 3.331%, 0.15% 2.719%, 0.328% 2.149%, 0.567% 1.628%, 0.861% 1.165%, 1.204% 0.767%, 1.59% 0.444%, 2.012% 0.203%, 2.464% 0.052%, 2.941% 0%, 30.391% 0%, 30.391% 0%, 30.731% 0.018%, 31.067% 0.07%, 31.397% 0.157%, 31.721% 0.277%, 32.037% 0.43%, 32.343% 0.615%, 32.638% 0.832%, 32.921% 1.078%, 33.19% 1.354%, 33.445% 1.66%, 36.765% 5.964%, 97.059% 5.964%);
box-shadow: inset 0 -4px 12px #f8fafb;
}
.case-card__cover {
position: absolute;
left: 0;
right: 0;
top: var(--folder-tab-h);
bottom: 0;
object-fit: cover;
display: block;
z-index: 4;
pointer-events: none;
}
.case-card__info {
display: flex;
flex-direction: column;
gap: 24px;
align-items: flex-start;
width: 100%;
position: relative;
z-index: 5;
}
.case-card__title-desc {
display: flex;
gap: 24px;
align-items: flex-start;
font-weight: 500;
width: 100%;
}
.case-card__title {
flex: 1;
font-size: 36px;
line-height: 44px;
color: var(--c-ink);
}
.case-card__desc {
flex: 1;
font-size: 20px;
line-height: 28px;
color: var(--c-ink-72);
}
.case-card__bottom {
display: flex;
align-items: center;
gap: 24px;
width: 100%;
}
.case-card__btn-slot {
flex: 1;
display: flex;
flex-direction: column;
align-items: flex-start;
}
.case-card__tags {
flex: 1;
display: flex;
gap: 8px;
align-items: flex-start;
}
.extra-body {
display: flex;
flex-direction: column;
align-items: center;
gap: 60px;
width: 100%;
}
.extra-header {
display: flex;
flex-direction: column;
align-items: center;
gap: 16px;
}
.extra-grid {
display: flex;
gap: 24px;
align-items: flex-start;
width: 100%;
}
.mini-card {
height: 800px;
background: var(--c-card);
display: flex;
flex-direction: column;
gap: 24px;
align-items: flex-start;
overflow: hidden;
padding: var(--page-pad);
border-radius: 40px;
flex: 1;
position: relative;
}
.mini-card__content {
display: flex;
justify-content: space-between;
height: 100%;
flex-direction: column;
}
.mini-card::after {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
box-shadow: inset 0 -4px 24px 0 #f8fafb;
pointer-events: none;
}
.mini-card__img {
width: 100%;
aspect-ratio: 504 / 360;
object-fit: cover;
border-radius: 4px;
}
.mini-card__bottom {
display: flex;
flex-direction: column;
gap: 40px;
width: 100%;
}
.mini-card__text {
display: flex;
flex-direction: column;
gap: 20px;
font-weight: 500;
}
.mini-card__title {
font-size: 36px;
line-height: 44px;
color: var(--c-ink);
width: 100%;
}
.mini-card__desc {
font-size: 20px;
line-height: 28px;
color: var(--c-ink-60);
width: 100%;
}
.mini-card__footer {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
min-height: 48px;
}
.about-body {
display: flex;
flex-direction: column;
gap: 40px;
align-items: center;
width: 100%;
}
.about-photos {
display: flex;
gap: 24px;
align-items: flex-start;
}
.about-photo {
width: 286px;
height: 200px;
border-radius: 32px;
overflow: hidden;
flex-shrink: 0;
background: var(--c-photo-bg);
position: relative;
}
.about-photo img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.about-photo--sq {
width: 200px;
height: 200px;
background-color: transparent;
}
.about-description {
display: flex;
flex-direction: column;
gap: 40px;
align-items: center;
text-align: center;
}
.about-nick {
display: flex;
flex-direction: column;
gap: 8px;
}
.about-nick__name {
font-size: 36px;
font-weight: 500;
line-height: 44px;
width: 720px;
}
.about-nick__sub {
font-size: 20px;
font-weight: 500;
line-height: 28px;
opacity: 0.6;
width: 720px;
}
.about-text {
font-size: 36px;
font-weight: 400;
line-height: 44px;
width: 720px;
white-space: pre-line;
}
.about-text--small {
font-size: 20px;
font-weight: 500;
line-height: 28px;
opacity: 0.6;
width: 720px;
}
