@font-face { font-family: "General Sans"; src: url("/font/first-page-v2/GeneralSans-Regular.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; } @font-face { font-family: "General Sans"; src: url("/font/first-page-v2/GeneralSans-Medium.woff2") format("woff2"); font-style: normal; font-weight: 500; font-display: swap; } @font-face { font-family: "General Sans"; src: url("/font/first-page-v2/GeneralSans-Semibold.woff2") format("woff2"); font-style: normal; font-weight: 600; font-display: swap; } @font-face { font-family: "General Sans"; src: url("/font/first-page-v2/GeneralSans-Bold.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; } *, *::before, *::after { box-sizing: border-box; } html { background: #111; color: #111; font-family: "General Sans", Arial, sans-serif; font-size: 16px; scroll-behavior: auto; -webkit-text-size-adjust: 100%; } body { margin: 0; min-width: 20rem; overflow-x: clip; } body, button, a { font: inherit; } button, a { -webkit-tap-highlight-color: transparent; } img, svg { display: block; max-width: 100%; } img { height: auto; } a { color: inherit; text-decoration: none; } button { border: 0; padding: 0; color: inherit; background: none; } button:not(:disabled), a[href] { cursor: pointer; } ::selection { color: #fff; background: #111; } :focus-visible { outline: .125rem solid currentColor; outline-offset: .25rem; } html.fpv2-menu-open, html.fpv2-menu-open body { overflow: hidden; } @media only screen and (min-width: 0px) and (max-width: 500px) and (orientation: portrait) and (pointer: coarse) { html { --device: mobileP; font-size: clamp(0px, 3.80952380952381vw, 16px); scrollbar-width: none; -ms-overflow-style: none; } } @media only screen and (min-width: 0px) and (max-width: 900px) and (orientation: landscape) and (pointer: coarse) { html { --device: mobileL; font-size: clamp(0px, 1.3vw, 16px); scrollbar-width: none; -ms-overflow-style: none; } } @media only screen and (min-width: 501px) and (max-width: 2500px) and (orientation: portrait) and (pointer: coarse) { html { --device: tabletP; font-size: clamp(0px, 1.2vw, 16px); scrollbar-width: none; -ms-overflow-style: none; } } @media only screen and (min-width: 901px) and (max-width: 2900px) and (orientation: landscape) and (pointer: coarse) { html { --device: tabletL; font-size: clamp(0px, 1.2vw, 16px); scrollbar-width: none; -ms-overflow-style: none; } } @media only screen and (pointer: fine) { html { font-size: clamp(0px, 1.11111111111vw, 16px); } } @media only screen and (pointer: fine) and (orientation: landscape) { html { --device: desktopL; } } @media only screen and (pointer: fine) and (orientation: portrait) { html { --device: desktopP; } } html:has(.fpv2) { scrollbar-gutter: stable; } .fpv2 { --black: #111111; --white: #ffffff; --magenta: #c51c85; --yellow: #ffc923; --blue: #3b9eb3; --page-gutter: 5.75rem; --header-height: 4.8125rem; --header-strip-height: 0rem; --header-stack-height: calc(var(--header-height) + var(--header-strip-height)); --section-title-size: 9.625rem; --body-size: 1.375rem; --metrics-overscan: 40.5rem; --metrics-fade-whisper: 5.625rem; --metrics-fade-soft: 13.5rem; --metrics-fade-mid: 27rem; --metrics-exit-clearance: 10.125rem; position: relative; isolation: isolate; overflow: clip; color: var(--black); background: transparent; font-family: "General Sans", Arial, sans-serif; direction: ltr; } .fpv2 *, .fpv2 *::before, .fpv2 *::after { box-sizing: border-box; } .fpv2 img { display: block; max-width: 100%; } .fpv2 a { color: inherit; text-decoration: none; } .fpv2 button { border: 0; padding: 0; color: inherit; background: none; font: inherit; } .fpv2-visually-hidden { position: absolute !important; width: .0625rem !important; height: .0625rem !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; } .fpv2-main { position: relative; z-index: 2; } .fpv2-header { position: fixed; z-index: 200; top: 0; left: 0; width: 100%; color: var(--black); } .fpv2-header__bar { position: relative; display: grid; grid-template-columns: minmax(8.5rem, 1fr) minmax(5rem, .8fr) minmax(9rem, 1.25fr) minmax(5rem, .8fr) minmax(4.5rem, 1fr); align-items: center; height: var(--header-height); padding-inline: 2.5rem 1rem; background: rgba(255, 255, 255, .93); backdrop-filter: blur(.3125rem); -webkit-backdrop-filter: blur(.3125rem); } .fpv2-header__mobile-strip { display: none; } .fpv2-header__cta { justify-self: start; font-size: 1.25rem; font-weight: 600; line-height: 1.08; text-transform: uppercase; } .fpv2-header__cta span { display: block; } .fpv2-header__utility { position: relative; display: inline-grid; grid-template-rows: 1.375rem .5rem; justify-items: center; align-items: center; row-gap: 0; justify-self: center; padding: 0 !important; font-size: 1rem !important; font-weight: 600 !important; line-height: 1.375rem; text-transform: uppercase; cursor: pointer; } .fpv2-header__utility i { position: static; width: .5rem; height: .5rem; margin-top: -.0625rem; border-radius: .125rem; background: var(--black); transform: rotate(45deg); transition: transform .25s cubic-bezier(.22, 1, .36, 1); } .fpv2-header__utility:hover i, .fpv2-header__utility[aria-expanded="true"] i { transform: rotate(45deg) translate(.125rem, .125rem); } .fpv2-header__utility:focus { outline: none; } .fpv2-header__utility:focus-visible i { box-shadow: 0 0 0 .125rem rgba(17, 17, 17, .16); } .fpv2-header__logo { justify-self: center; width: 11.5rem; } .fpv2-header__logo img { width: 100%; height: auto; } .fpv2-header__menu-button { justify-self: end; width: 4.125rem; height: 3.375rem; overflow: hidden; } .fpv2-header__menu-button img { width: 100%; height: 100%; object-fit: contain; } .fpv2-header__mini-panel { --fpv2-panel-width: 17.625rem; position: absolute; z-index: 205; top: var(--fpv2-panel-top, var(--header-height)); left: var(--fpv2-panel-left, 24%); width: var(--fpv2-panel-width); padding: 1.125rem; border-radius: 1.875rem; background: rgba(240, 240, 240, .94); box-shadow: 0 1.125rem 2.8125rem rgba(17, 17, 17, .055); backdrop-filter: blur(.9375rem); -webkit-backdrop-filter: blur(.9375rem); font-size: .8125rem; font-weight: 600; line-height: 1; text-transform: uppercase; transform-origin: top center; } .fpv2-header__mini-panel a { display: inline-flex; align-items: center; justify-content: center; min-height: 1.6875rem; padding: .3125rem .5625rem .25rem; border-radius: 62.4375rem; color: #a7a7a7; background: rgba(255, 255, 255, .98); white-space: nowrap; transition: color .2s ease, background-color .2s ease, transform .2s ease; } .fpv2-header__mini-panel a:hover, .fpv2-header__mini-panel a:focus-visible { color: var(--black); background: var(--white); outline: none; transform: translateY(-.0625rem); } .fpv2-header__social-panel { display: grid; grid-template-columns: max-content max-content; align-content: start; justify-content: start; gap: .5rem; min-height: 6.25rem; } .fpv2-header__language-panel { --fpv2-panel-width: 17.75rem; min-height: 13.75rem; } .fpv2-header__language-search { display: block; width: 100%; margin-bottom: .625rem; } .fpv2-header__language-search input { display: block; width: 100%; height: 1.8125rem; margin: 0; padding: .3125rem .625rem .25rem; border: 0; border-radius: 62.4375rem; outline: 0; color: var(--black); background: rgba(255, 255, 255, .98); font: inherit; line-height: 1; text-transform: uppercase; -webkit-appearance: none; appearance: none; } .fpv2-header__language-search input::-webkit-search-cancel-button { opacity: .45; } .fpv2-header__language-search input::placeholder { color: #bebebe; opacity: 1; } .fpv2-header__language-search input:focus-visible { box-shadow: 0 0 0 .125rem rgba(17, 17, 17, .12); } .fpv2-header__language-options { display: grid; grid-template-columns: repeat(3, max-content); align-items: start; justify-content: start; gap: .5rem .4375rem; } .fpv2-header__language-options a[hidden] { display: none !important; } .fpv2-header__mini-panel[hidden], .fpv2-menu[hidden] { display: none !important; } .fpv2-menu { position: fixed; z-index: 210; inset: 0; display: grid; grid-template-columns: 1fr 1fr; min-height: 100svh; color: var(--black); background: var(--white); } .fpv2-menu__nav { display: flex; flex-direction: column; justify-content: space-evenly; padding: 1.25rem 3.875rem 2rem; } .fpv2-menu__nav a { display: flex; align-items: center; width: 100%; flex: 1 1 0; border-bottom: .0625rem solid rgba(17, 17, 17, .22); font-size: 6.25rem; font-weight: 600; line-height: 1; letter-spacing: -.045em; } .fpv2-menu__nav a:last-child { border-bottom: 0; } .fpv2-menu__nav a:hover { color: rgba(17, 17, 17, .48); } .fpv2-menu__visual { position: relative; overflow: hidden; border-radius: 1.875rem 1.875rem 0 0; background: rgba(240, 240, 240, .97); backdrop-filter: blur(.9375rem); -webkit-backdrop-filter: blur(.9375rem); } .fpv2-menu__diamond { position: absolute; top: 22.6%; left: 50%; width: 23.375rem; opacity: .14; transform: translateX(-50%); } .fpv2-menu__consultation { position: absolute; bottom: 5.4%; left: 8%; max-width: 78%; font-size: 4rem; font-weight: 600; line-height: 1.16; } .fpv2-menu__socials { position: absolute; right: 2.4%; bottom: 5.2%; display: flex; flex-direction: column-reverse; gap: 2.75rem; } .fpv2-menu__socials a { display: grid; place-items: center; width: 4.4375rem; height: 4.4375rem; } .fpv2-menu__socials img { width: 100%; height: 100%; object-fit: contain; } .fpv2-menu__close { position: absolute; z-index: 4; top: 1.25rem; right: 1.5rem; width: 3.625rem; height: 3.625rem; } .fpv2-menu__close::before, .fpv2-menu__close::after { position: absolute; top: calc(50% - (var(--featured-marker-size) / 2)); left: 50%; width: 2.8125rem; height: .125rem; content: ""; background: var(--black); } .fpv2-menu__close::before { transform: translate(-50%, -50%) rotate(45deg); } .fpv2-menu__close::after { transform: translate(-50%, -50%) rotate(-45deg); } /* Hero */ .fpv2-hero { position: relative; height: 400svh; cursor: none; } .fpv2-hero__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; background: var(--white); } .fpv2-hero__backgrounds, .fpv2-hero__background, .fpv2-hero__track { position: absolute; inset: 0; } .fpv2-hero__background { opacity: 0; will-change: opacity; } .fpv2-hero__background:first-child { opacity: 1; } .fpv2-hero__background--brand { background-image: url("data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 1024" preserveAspectRatio="none"><g transform="matrix(9.6 18.05 -25.383 13.5 1458 1057.5)"><foreignObject x="-693.81" y="-693.81" width="1387.6" height="1387.6"><div xmlns="http://www.w3.org/1999/xhtml" style="background-image:conic-gradient(from 90deg,#ffe1f3 0,#fff 43.836%,#fffaea 85.096%,#e7fbff 91.827%,#ffe1f3 100%);height:100%;width:100%"></div></foreignObject></g></svg>"); background-size: cover; } .fpv2-hero__background--web { background: linear-gradient(-54.582945deg, rgb(255, 249, 227) 0%, rgb(255, 255, 255) 40.865%); } .fpv2-hero__background--seo { background: linear-gradient(-54.582945deg, rgb(231, 249, 253) 0%, rgb(255, 255, 255) 40.865%); } .fpv2-hero__background--ai { background: linear-gradient(-54.582945deg, rgb(255, 238, 248) 0%, rgb(255, 255, 255) 40.865%); } .fpv2-hero__track { height: 100svh; } .fpv2-hero__slide { position: absolute; inset: 0; display: flex; align-items: flex-start; height: 100svh; padding: 15.9375rem var(--page-gutter) 2.5625rem; will-change: transform, opacity; } .fpv2-hero__slide:not(:first-child) { visibility: hidden; opacity: 0; } .fpv2-hero__copy { width: 56.25rem; color: var(--black); } .fpv2-hero__copy > * { will-change: transform, opacity; } .fpv2-hero h1, .fpv2-hero h2, .fpv2-hero p { margin: 0; } .fpv2-hero h1, .fpv2-hero h2 { font-size: var(--section-title-size); font-weight: 600; line-height: .96; letter-spacing: -.055em; text-transform: uppercase; } .fpv2-hero h2 span { display: block; } .fpv2-hero__subtitle { margin-top: 1.375rem !important; font-size: 2.875rem; font-weight: 500; line-height: 1.3; letter-spacing: -.025em; text-transform: uppercase; } .fpv2-hero__body { width: 54.0625rem; margin-top: 5.5rem !important; font-size: var(--body-size); font-weight: 400; line-height: 1.28; } .fpv2-hero__indicator { --hero-brand-tile-size: 1.4rem; position: absolute; z-index: 4; right: 2.5rem; bottom: 2.1875rem; width: calc(var(--hero-brand-tile-size) * 2.8284271247); height: calc(var(--hero-brand-tile-size) * 2.1213203436); pointer-events: none; } .fpv2-hero__brand-mark { position: absolute; inset: 0; } .fpv2-hero__brand-tile { position: absolute; width: var(--hero-brand-tile-size); height: var(--hero-brand-tile-size); border: .0625rem solid var(--black); border-radius: 20%; transform: rotate(45deg); transform-origin: center; will-change: transform, opacity; } .fpv2-hero__brand-tile--magenta { top: calc(var(--hero-brand-tile-size) * .2071067812); left: calc(var(--hero-brand-tile-size) * .2071067812); background: #c11d7c; } .fpv2-hero__brand-tile--yellow { top: calc(var(--hero-brand-tile-size) * .2071067812); left: calc(var(--hero-brand-tile-size) * 1.6213203436); background: #f3c41e; } .fpv2-hero__brand-tile--blue { top: calc(var(--hero-brand-tile-size) * .9142135624); left: calc(var(--hero-brand-tile-size) * .9142135624); background: #349bae; } .fpv2-cursor-cta { position: fixed; z-index: 120; top: 0; left: 0; display: none; width: 13.75rem; height: 7.38325rem; pointer-events: none; opacity: 0; will-change: transform; } .fpv2-cursor-cta__mark { position: absolute; top: 0; left: 0; display: flex; align-items: center; justify-content: center; width: 7.38325rem; height: 7.38325rem; } .fpv2-cursor-cta__mark img { width: 5.5rem; height: 5.5rem; max-width: none; object-fit: contain; transform: rotate(-26.66deg); } .fpv2-cursor-cta__copy { position: absolute; z-index: 1; top: 2.07625rem; left: 1.95125rem; font-size: 1.25rem; font-weight: 600; line-height: 1.375rem; white-space: nowrap; } .fpv2-cursor-cta__copy > span { display: block; color: var(--white); } .fpv2-cursor-cta__copy em, .fpv2-cursor-cta__copy strong { font: inherit; font-style: normal; } .fpv2-cursor-cta__copy em { color: var(--white); } .fpv2-cursor-cta__copy strong { color: var(--black); } @media (hover: hover) and (pointer: fine) { .fpv2-cursor-cta { display: flex; } } /* Standout */ .fpv2-standout { position: relative; display: grid; grid-template-columns: 1fr 1fr; color: var(--black); background: linear-gradient(90deg, var(--white) 0 50%, var(--black) 50% 100%); } .fpv2-standout__intro { position: sticky; top: 0; display: flex; align-items: center; height: 100svh; padding: 7.2rem 5.85rem; background: var(--white); } .fpv2-standout__intro h2 { margin: 0; max-width: 35rem; font-size: 5.94rem; font-weight: 600; line-height: .96; letter-spacing: -.06em; text-transform: uppercase; } .fpv2-standout__list { margin: 0; padding: 7.04rem 5.125rem 7.04rem 5.85rem; color: var(--white); background: var(--black); list-style: none; } .fpv2-standout__list li { display: block; min-height: 28.16rem; padding: 3.968rem 0; border-bottom: .0625rem solid rgba(255, 255, 255, .5); } .fpv2-number { display: block; height: 1.1em; overflow: hidden; font-size: 6.25rem; font-weight: 600; line-height: 1.1; } .fpv2-number > span { display: flex; flex-direction: column; will-change: transform; } .fpv2-number i { display: block; height: 1.1em; font-style: normal; } .fpv2-standout__list li > div { margin-top: -.125rem; } .fpv2-standout__list h3, .fpv2-standout__list p { margin: 0; } .fpv2-standout__list h3 { max-width: 33.125rem; font-size: 4.8125rem; font-weight: 600; line-height: .98; letter-spacing: -.045em; text-transform: uppercase; } .fpv2-standout__list p { max-width: 32.5rem; margin-top: .5rem; color: rgba(255, 255, 255, .78); font-size: 1.26rem; line-height: 1.35; } /* Featured projects */ .fpv2-featured { --featured-meta-inset: 3.51rem; --featured-marker-left: 5.85rem; --featured-marker-size: 2.25rem; --featured-marker-gap: 2.3125rem; position: relative; min-height: 0; color: var(--white); background: var(--black); } .fpv2-featured__head { position: sticky; z-index: 6; top: 0; height: auto; overflow: hidden; background: var(--black); } .fpv2-featured__headline { padding-top: var(--header-height); overflow: visible; } .fpv2-featured__line, .fpv2-proud__headline > div { display: flex; gap: .18em; width: max-content; white-space: nowrap; will-change: transform; } .fpv2-featured__line { font-size: 9.6rem; font-weight: 600; line-height: .78; letter-spacing: -.065em; } .fpv2-featured__line span { color: transparent; -webkit-text-stroke: .108rem rgba(255, 255, 255, .28); } .fpv2-featured__line strong { color: var(--white); font-weight: 600; } .fpv2-featured__meta { position: relative; display: flex; justify-content: space-between; margin-top: .1875rem; padding: .8125rem var(--featured-meta-inset); border-bottom: .0625rem solid rgba(255, 255, 255, .55); background: var(--black); font-size: 1.375rem; font-weight: 500; } .fpv2-featured__meta p { margin: 0; } .fpv2-featured__filters { display: grid; grid-template-columns: repeat(3, var(--featured-marker-size)); column-gap: var(--featured-marker-gap); align-items: center; margin-left: calc(var(--featured-marker-left) - var(--featured-meta-inset)) !important; } .fpv2-featured__filters span { justify-self: center; white-space: nowrap; } .fpv2-featured__projects { position: relative; } .fpv2-project { position: relative; display: block; height: 8.8125rem; overflow: hidden; border-bottom: .0625rem solid rgba(255, 255, 255, .55); color: var(--white); background: var(--black); } .fpv2-project__diamonds { position: absolute; z-index: 5; top: calc(50% - (var(--featured-marker-size) / 2)); left: var(--featured-marker-left); display: grid; grid-template-columns: repeat(3, var(--featured-marker-size)); column-gap: var(--featured-marker-gap); opacity: 0; transform-origin: 50% 50%; will-change: transform, opacity; } .fpv2-project__diamonds img { grid-row: 1; width: var(--featured-marker-size); height: var(--featured-marker-size); object-fit: contain; transform-origin: 50% 50%; will-change: transform, opacity; } .fpv2-project__diamonds img[src*="magenta-small"] { grid-column: 1; } .fpv2-project__diamonds img[src*="yellow-small"] { grid-column: 2; } .fpv2-project__diamonds img[src*="blue-small"] { grid-column: 3; } .fpv2-project__loop { position: absolute; inset: 0; display: flex; align-items: center; overflow: hidden; color: var(--black); background: #f4f4f1; } .fpv2-project__loop > div { display: flex; align-items: center; gap: 2.34rem; min-width: 100%; height: 100%; width: max-content; will-change: transform; } .fpv2-project__loop img { flex: 0 0 auto; width: auto; max-width: none; height: 72%; max-height: none; object-fit: contain; } .fpv2-project__loop img:nth-child(even) { width: auto; max-width: none; height: 100%; max-height: none; border-radius: 0; object-fit: contain; } .fpv2-project__face { position: absolute; z-index: 3; inset: 0; display: grid; grid-template-columns: 1fr auto; align-items: center; padding-inline: var(--featured-meta-inset); background: var(--black); will-change: transform; } .fpv2-project__face--top { clip-path: inset(0 0 50% 0); } .fpv2-project__face--bottom { clip-path: inset(50% 0 0 0); } .fpv2-project__face span { justify-self: center; font-size: 3.75rem; font-weight: 500; line-height: .92; letter-spacing: -.055em; text-align: center; } .fpv2-project__name--mobile { display: none; } .fpv2-project__face small { align-self: center; padding-bottom: 0; font-size: 1.375rem; font-weight: 500; } /* Proud / portal */ .fpv2-proud { position: relative; z-index: 2; color: var(--white); background: var(--black); } .fpv2-proud__headline { position: absolute; z-index: 4; top: 0; right: 0; left: 0; height: 28.16rem; overflow: hidden; padding-top: calc(var(--header-height) + .96rem); color: var(--white); background: transparent; mix-blend-mode: difference; pointer-events: none; will-change: transform; } .fpv2-proud__top-panel { position: absolute; z-index: 1; top: 0; right: 0; left: 0; height: 28.16rem; background: var(--white); pointer-events: none; will-change: transform; } .fpv2-proud__headline > div { font-size: 9.625rem; font-weight: 600; line-height: .92; letter-spacing: -.065em; } .fpv2-proud__headline span { color: transparent; -webkit-text-stroke: .108rem rgba(255, 255, 255, .46); } .fpv2-proud__headline strong { color: var(--white); font-weight: 600; } .fpv2-proud__headline [data-proud-line="right"] { transform: translateX(-7%); } .fpv2-proud__headline [data-proud-line="left"] { transform: translateX(-11.25%); } .fpv2-proud__portal { position: relative; height: 650svh; background: var(--black); } .fpv2-proud__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; background: var(--black); isolation: isolate; } .fpv2-proud__diamond { position: absolute; z-index: 2; top: 46.08rem; left: 50%; width: 21.875rem; aspect-ratio: 1; transform: translate(-50%, -50%) rotate(45deg); transform-origin: center; will-change: transform; } .fpv2-proud__diamond i { position: absolute; z-index: 0; inset: 2%; border-radius: 9%; background: var(--white); opacity: 0; visibility: hidden; will-change: opacity, visibility; } .fpv2-proud__diamond-window { position: absolute; z-index: 1; inset: 2%; overflow: hidden; border-radius: 9%; background: var(--white); opacity: 0; visibility: hidden; will-change: opacity, visibility; } .fpv2-proud__diamond-content { position: absolute; top: 50%; left: 50%; width: max(90rem, 100vw); height: 100svh; transform: translate(-50%, -50%) rotate(-45deg); transform-origin: center; will-change: transform; } .fpv2-proud__diamond svg { position: absolute; z-index: 3; inset: 0; width: 100%; height: 100%; overflow: visible; } .fpv2-proud__diamond rect { fill: none; } .fpv2-proud__diamond-track { stroke: transparent; stroke-width: .7; } .fpv2-proud__diamond-progress { stroke: var(--white); stroke-width: .7; stroke-linecap: round; } /* Metrics */ .fpv2-metrics { position: relative; z-index: 3; height: 320svh; margin-top: -11.52rem; background: var(--white); } .fpv2-metrics.fpv2-metrics--in-diamond { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; margin: 0; background: var(--white); } .fpv2-metrics--in-diamond .fpv2-metrics__sticky { position: absolute; inset: 0; height: 100%; overflow: visible; background: transparent; } .fpv2-metrics__sticky { position: sticky; top: 0; height: 100svh; overflow: visible; background: var(--white); } .fpv2-metrics__stage { position: absolute; z-index: 1; top: calc(var(--metrics-overscan) * -1); right: 0; bottom: calc(var(--metrics-overscan) * -1); left: 0; -webkit-mask-image: linear-gradient( to bottom, transparent 0, rgba(0, 0, 0, .025) var(--metrics-fade-whisper), rgba(0, 0, 0, .14) var(--metrics-fade-soft), rgba(0, 0, 0, .5) var(--metrics-fade-mid), #000 var(--metrics-overscan), #000 calc(100% - var(--metrics-overscan)), rgba(0, 0, 0, .5) calc(100% - var(--metrics-fade-mid)), rgba(0, 0, 0, .14) calc(100% - var(--metrics-fade-soft)), rgba(0, 0, 0, .025) calc(100% - var(--metrics-fade-whisper)), transparent 100% ); mask-image: linear-gradient( to bottom, transparent 0, rgba(0, 0, 0, .025) var(--metrics-fade-whisper), rgba(0, 0, 0, .14) var(--metrics-fade-soft), rgba(0, 0, 0, .5) var(--metrics-fade-mid), #000 var(--metrics-overscan), #000 calc(100% - var(--metrics-overscan)), rgba(0, 0, 0, .5) calc(100% - var(--metrics-fade-mid)), rgba(0, 0, 0, .14) calc(100% - var(--metrics-fade-soft)), rgba(0, 0, 0, .025) calc(100% - var(--metrics-fade-whisper)), transparent 100% ); } .fpv2-metrics__canvas { position: absolute; top: 50%; left: 50%; display: grid; grid-template-columns: repeat(8, 18.378rem); gap: 1.8rem; width: max-content; transform: translate(-50%, -50%) rotate(-31deg); transform-origin: center; will-change: opacity, transform; } .fpv2-metrics__edge-fade { position: absolute; z-index: 2; top: auto; right: 0; bottom: 0; left: 0; height: 105svh; pointer-events: none; opacity: 0; visibility: hidden; will-change: transform; } .fpv2-metrics__edge-fade--bottom { background: linear-gradient( to bottom, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .08) 20%, rgba(255, 255, 255, .38) 46%, rgba(255, 255, 255, .82) 70%, var(--white) 90%, var(--white) 100% ); } .fpv2-metrics__entry-curtain { display: none; position: absolute; z-index: 3; top: 0; right: 0; left: 0; height: 105svh; background: linear-gradient( to bottom, var(--white) 0, var(--white) 10%, rgba(255, 255, 255, .82) 30%, rgba(255, 255, 255, .38) 54%, rgba(255, 255, 255, .08) 80%, rgba(255, 255, 255, 0) 100% ); pointer-events: none; will-change: transform; } .fpv2-is-ready .fpv2-metrics__entry-curtain { display: block; } .fpv2-metrics__column { display: flex; flex-direction: column; gap: 1.8rem; will-change: transform; } .fpv2-metrics__column:nth-child(even) { padding-top: 15.36rem; } .fpv2-metrics article { position: relative; display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 294 / 340; padding: 1.98rem; overflow: hidden; border: .0625rem solid rgba(255, 255, 255, .9); border-radius: 1.35rem; color: var(--white); background: var(--black); } .fpv2-metrics article small { max-width: 70%; font-size: 1.375rem; line-height: 1.15; } .fpv2-metrics article strong { font-size: 6.25rem; font-weight: 500; line-height: .77; letter-spacing: -.075em; text-align: center; } .fpv2-metrics article p { align-self: flex-end; max-width: 72%; margin: 0; font-size: 1.375rem; line-height: 1.15; text-align: right; } .fpv2-metrics-exit { position: relative; z-index: 2; height: 0; pointer-events: none; background: var(--white); } /* A short, clean pause after the mosaic has completely faded. */ .fpv2-footer-reveal { position: relative; z-index: 2; height: 10svh; margin-top: -.125rem; pointer-events: none; background: var(--white); box-shadow: 0 -.25rem 0 var(--white); } .fpv2-footer { position: relative; z-index: 2; height: 155svh; color: var(--black); background: var(--white); } .fpv2-footer__scene { position: sticky; top: 0; height: 100svh; overflow: hidden; width: min(100%, 90rem); margin-inline: auto; } .fpv2-footer__links { position: absolute; z-index: 2; inset: 0; font-size: 1.375rem; font-weight: 400; line-height: 1.75rem; text-transform: uppercase; } .fpv2-footer__links nav, .fpv2-footer__links address { position: absolute; display: flex; flex-direction: column; gap: .3125rem; font-style: normal; white-space: nowrap; } .fpv2-footer__nav--primary { top: 25.5625rem; left: 6rem; } .fpv2-footer__nav--secondary { top: 27.625rem; left: 15.9375rem; } .fpv2-footer__nav--social { top: 27.625rem; left: 23.75rem; } .fpv2-footer__contact { top: 25.5625rem; right: 2.8125rem; width: 16.4375rem; } .fpv2-footer__links a:hover { text-decoration: underline; text-underline-offset: .1875rem; } .fpv2-footer__brand { position: absolute; inset: 0; overflow: hidden; pointer-events: none; } .fpv2-footer__brand-slice { position: absolute; display: block; height: 15.6875rem; overflow: hidden; will-change: transform; } .fpv2-footer__brand-slice img { position: absolute; top: 0; width: 79.235rem; max-width: none; height: 15.6875rem; } .fpv2-footer__brand-slice--b { bottom: 2.5rem; left: 6rem; width: 11.5rem; } .fpv2-footer__brand-slice--b img { left: -.08375rem; } .fpv2-footer__brand-slice--i { bottom: 2.5rem; left: 17.5rem; width: 4.4375rem; } .fpv2-footer__brand-slice--i img { left: -11.58375rem; } .fpv2-footer__brand-slice--d { bottom: 2.5rem; left: 21.9375rem; width: 11.25rem; } .fpv2-footer__brand-slice--d img { left: -16.02125rem; } .fpv2-footer__brand-slice--o { bottom: 2.5rem; left: 34.25rem; width: 11.578125rem; } .fpv2-footer__brand-slice--o img { left: -27.270625rem; } .fpv2-footer__brand-slice--t { bottom: 2.5rem; left: 45.828125rem; width: 7.296875rem; } .fpv2-footer__brand-slice--t img { left: -38.84875rem; } .fpv2-footer__brand-slice--e { bottom: 2.5rem; left: 53.125rem; width: 11.5rem; } .fpv2-footer__brand-slice--e img { left: -46.14625rem; } .fpv2-footer__brand-slice--c { bottom: 2.5rem; left: 64.625rem; width: 11rem; } .fpv2-footer__brand-slice--c img { left: -57.646875rem; } .fpv2-footer__brand-slice--h { bottom: 2.5rem; left: 76.6875rem; width: 10.5rem; } .fpv2-footer__brand-slice--h img { left: -68.645625rem; } @media only screen and (hover: none) and (pointer: coarse) { .fpv2 { --page-gutter: 1.365rem; --header-height: 3.25rem; --header-strip-height: 1.75rem; --section-title-size: 4.06875rem; --body-size: .9375rem; } .fpv2-header__mobile-strip { position: relative; z-index: 220; display: flex; align-items: center; justify-content: space-between; height: var(--header-strip-height); padding-inline: 1.18125rem; background: rgba(255, 255, 255, .95); backdrop-filter: blur(.3125rem); -webkit-backdrop-filter: blur(.3125rem); } .fpv2-header__mobile-strip > div { display: flex; align-items: center; gap: .853125rem; } .fpv2-header__mobile-strip img { width: .91875rem; height: .91875rem; object-fit: contain; opacity: .52; } .fpv2-header__mobile-strip button { display: inline-grid; grid-template-rows: .8125rem .3125rem; justify-items: center; align-items: center; font-size: .65625rem; font-weight: 600; line-height: .75rem; cursor: pointer; outline: none; } .fpv2-header__mobile-strip button::after { width: .3125rem; height: .3125rem; content: ""; border-radius: .0625rem; background: var(--black); transform: rotate(45deg); } .fpv2-header__mobile-strip button:focus-visible::after { box-shadow: 0 0 0 .125rem rgba(17, 17, 17, .16); } .fpv2-header__bar { z-index: 220; grid-template-columns: minmax(5.5rem, 1fr) auto minmax(3.25rem, 1fr); height: var(--header-height); padding-inline: 1.246875rem .7875rem; } .fpv2-header__cta { font-size: .735rem; } .fpv2-header__logo { width: 8.925rem; } .fpv2-header__social, .fpv2-header__language { display: none; } .fpv2-header__menu-button { position: relative; width: 3.4125rem; height: 3.15rem; } .fpv2.is-menu-open .fpv2-header__menu-button img { opacity: 0; } .fpv2.is-menu-open .fpv2-header__menu-button::before, .fpv2.is-menu-open .fpv2-header__menu-button::after { position: absolute; top: 50%; left: 50%; width: 2.23125rem; height: .125rem; content: ""; background: var(--black); } .fpv2.is-menu-open .fpv2-header__menu-button::before { transform: translate(-50%, -50%) rotate(45deg); } .fpv2.is-menu-open .fpv2-header__menu-button::after { transform: translate(-50%, -50%) rotate(-45deg); } .fpv2-header__mini-panel { --fpv2-panel-width: min(17.75rem, calc(100% - 2rem)); border-radius: 1.575rem; } .fpv2-menu { top: calc(var(--header-stack-height) + .7875rem); bottom: auto; display: block; min-height: 0; max-height: calc(100svh - var(--header-stack-height) - 1rem); height: auto; padding: 0; overflow-x: hidden; overflow-y: auto; border-radius: 0 0 1.8375rem 1.8375rem; color: #a8a8a8; background: rgba(240, 240, 240, .97); box-shadow: 0 1.125rem 2.625rem rgba(17, 17, 17, .08); backdrop-filter: blur(.9375rem); -webkit-backdrop-filter: blur(.9375rem); } .fpv2-menu__nav { display: block; padding: .65625rem var(--page-gutter) .7875rem; } .fpv2-menu__nav a { display: block; width: 100%; border-bottom: .0625rem solid rgba(168, 168, 168, .42); font-size: 2.3625rem; font-weight: 600; line-height: 1.45; letter-spacing: -.035em; text-align: center; } .fpv2-menu__nav a:last-child { border-bottom: 0; } .fpv2-menu__visual, .fpv2-menu__close { display: none; } .fpv2-hero__slide { align-items: flex-start; padding: calc(var(--header-stack-height) + 12rem) var(--page-gutter) 2rem; } .fpv2-hero__copy { width: 100%; } .fpv2-hero h1, .fpv2-hero h2 { font-size: var(--section-title-size); line-height: .92; } .fpv2-hero__subtitle { margin-top: 1.05rem !important; font-size: 1.9425rem; line-height: 1.05; } .fpv2-hero__body { width: 100%; max-width: 32rem; margin-top: 2.5rem !important; font-size: var(--body-size); line-height: 1.35; } .fpv2-hero__indicator { --hero-brand-tile-size: 1rem; right: 1.25rem; bottom: 1.5rem; } .fpv2-cursor-cta { display: none !important; } .fpv2-standout { display: block; background: var(--black); } .fpv2-standout__intro { position: relative; top: auto; height: 29rem; min-height: 0; padding: calc(var(--header-stack-height) + 3rem) var(--page-gutter) 3.5rem; } .fpv2-standout__intro h2 { font-size: 4.33125rem; } .fpv2-standout__list { padding: 0 var(--page-gutter) 5rem 1.575rem; } .fpv2-standout__list li { min-height: 26rem; padding: .5rem 0 4rem; } .fpv2-number { height: 1.3em; font-size: 4.725rem; line-height: 1.3; } .fpv2-number i { height: 1.3em; } .fpv2-standout__list li > div { margin-top: -.525rem; } .fpv2-standout__list h3 { font-size: 2.49375rem; line-height: 1.18; } .fpv2-standout__list p { max-width: min(100%, 25rem); margin-top: .25rem; font-size: .9975rem; line-height: 1.5; } .fpv2-featured__head { top: 0; height: auto; min-height: 0; } .fpv2-featured__headline { padding-top: 9rem; } .fpv2-featured__line { font-size: 3rem; line-height: 1.22; letter-spacing: -.045em; } .fpv2-featured__meta { padding: .6875rem var(--featured-meta-inset); font-size: .875rem; } .fpv2-project { min-height: 0; } .fpv2-project__face { display: block; padding: 2.625rem var(--featured-meta-inset) 0; } .fpv2-project__face span { font-size: 2.1525rem; line-height: 1; white-space: nowrap; } .fpv2-project__face small { position: absolute; top: .75rem; right: var(--featured-meta-inset); padding: 0; font-size: .91875rem; } .fpv2-project__diamonds { top: calc(50% - (var(--featured-marker-size) / 2)); left: var(--featured-marker-left); width: auto; } .fpv2-project__name--desktop { display: none; } .fpv2-project__name--mobile { display: block; } .fpv2-project__loop { display: none; } .fpv2-proud__headline { height: 21rem; min-height: 0; padding-top: calc(var(--header-stack-height) + 1rem); } .fpv2-proud__top-panel { height: 21rem; } .fpv2-proud__headline > div { font-size: 3rem; line-height: 1.2; letter-spacing: -.04em; } .fpv2-proud__portal { height: 600svh; } .fpv2-proud__diamond { top: 35.5rem; width: 16rem; min-width: 0; } .fpv2-metrics { height: 300svh; margin-top: -7rem; } .fpv2-metrics.fpv2-metrics--in-diamond { height: 100%; margin-top: 0; } .fpv2-metrics__canvas { top: 50%; left: 50%; width: max-content; transform: translate(-50%, -50%) rotate(-31deg); } .fpv2-metrics__column:nth-child(even) { padding-top: 8.5rem; } .fpv2-metrics article strong { font-size: 4.725rem; } .fpv2-footer__links { font-size: 1.4366rem; line-height: 1.8284rem; } .fpv2-footer__links nav, .fpv2-footer__links address { gap: .3265rem; } .fpv2-footer__nav--primary { top: 19.2631rem; left: 1.1101rem; } .fpv2-footer__nav--secondary { top: 21.4179rem; left: 14.6922rem; } .fpv2-footer__nav--social { top: 30.5597rem; left: 1.1101rem; } .fpv2-footer__contact { top: 39.6985rem; right: auto; left: 1.1101rem; width: 17.1735rem; } .fpv2-footer__brand { right: 1.4366rem; bottom: 1.6325rem; left: 1.3713rem; top: auto; height: 4.7015rem; } .fpv2-footer__brand-slice { top: 0; bottom: auto; height: 4.7015rem; } .fpv2-footer__brand-slice img { top: 0; width: 23.443rem; height: 4.7015rem; } .fpv2-footer__brand-slice--b { left: 0; width: 3.423rem; } .fpv2-footer__brand-slice--b img { left: 0; } .fpv2-footer__brand-slice--i { left: 3.423rem; width: 1.312rem; } .fpv2-footer__brand-slice--i img { left: -3.423rem; } .fpv2-footer__brand-slice--d { left: 4.735rem; width: 3.33rem; } .fpv2-footer__brand-slice--d img { left: -4.735rem; } .fpv2-footer__brand-slice--o { left: 8.065rem; width: 3.421rem; } .fpv2-footer__brand-slice--o img { left: -8.065rem; } .fpv2-footer__brand-slice--t { left: 11.486rem; width: 2.173rem; } .fpv2-footer__brand-slice--t img { left: -11.486rem; } .fpv2-footer__brand-slice--e { left: 13.659rem; width: 3.408rem; } .fpv2-footer__brand-slice--e img { left: -13.659rem; } .fpv2-footer__brand-slice--c { left: 17.067rem; width: 3.25rem; } .fpv2-footer__brand-slice--c img { left: -17.067rem; } .fpv2-footer__brand-slice--h { left: 20.317rem; width: 3.126rem; } .fpv2-footer__brand-slice--h img { left: -20.317rem; } } @media (prefers-reduced-motion: reduce) { .fpv2-footer { height: 100svh; } .fpv2-footer__scene { position: relative; } .fpv2-hero { height: auto; cursor: auto; } .fpv2-hero__sticky { position: relative; height: auto; overflow: visible; } .fpv2-hero__backgrounds, .fpv2-hero__indicator { display: none; } .fpv2-hero__track { position: relative; height: auto; transform: none !important; } .fpv2-hero__slide { min-height: 100svh; } .fpv2-hero__slide:nth-child(1) { background-image: url("data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 1024" preserveAspectRatio="none"><g transform="matrix(9.6 18.05 -25.383 13.5 1458 1057.5)"><foreignObject x="-693.81" y="-693.81" width="1387.6" height="1387.6"><div xmlns="http://www.w3.org/1999/xhtml" style="background-image:conic-gradient(from 90deg,#ffe1f3 0,#fff 43.836%,#fffaea 85.096%,#e7fbff 91.827%,#ffe1f3 100%);height:100%;width:100%"></div></foreignObject></g></svg>"); background-size: cover; } .fpv2-hero__slide:nth-child(2) { background: linear-gradient(-54.582945deg, rgb(255, 249, 227) 0%, rgb(255, 255, 255) 40.865%); } .fpv2-hero__slide:nth-child(3) { background: linear-gradient(-54.582945deg, rgb(231, 249, 253) 0%, rgb(255, 255, 255) 40.865%); } .fpv2-hero__slide:nth-child(4) { background: linear-gradient(-54.582945deg, rgb(255, 238, 248) 0%, rgb(255, 255, 255) 40.865%); } .fpv2-proud__portal, .fpv2-metrics { height: 100svh; margin-top: 0; } .fpv2-metrics-exit { height: 0; } .fpv2-proud__sticky, .fpv2-metrics__sticky { position: relative; } .fpv2-proud__headline { position: relative; } .fpv2-proud__diamond i { opacity: 1; visibility: visible; } .fpv2-proud__diamond-window { opacity: 1; visibility: visible; } .fpv2-metrics__sticky { overflow: hidden; } .fpv2-metrics__stage { inset: 0; -webkit-mask-image: none; mask-image: none; } }