:root {
  --responsive-page-gutter: clamp(20px, 4vw, 72px);
  --responsive-content-max: 1440px;
  --responsive-section-gap: clamp(72px, 9vw, 132px);
}

html,
body,
#app,
.designlab-mirror {
  max-width: 100%;
  overflow-x: hidden;
}

html {
  overflow-y: auto !important;
}

body,
#app,
.designlab-mirror {
  overflow-y: visible !important;
}

img,
video,
canvas,
svg {
  max-width: 100%;
}

[id] {
  scroll-margin-top: 104px;
}

.designlab-mirror {
  background: #000;
}

.designlab-mirror [data-framer-name="Main"] {
  width: 100%;
}

nav[data-framer-name="Desktop"],
nav[data-framer-name="Phone"] {
  z-index: 80 !important;
}

nav[data-framer-name="Desktop"],
nav[data-framer-name="Tablet"],
nav[data-framer-name="Phone"] {
  background: rgba(15, 15, 15, .8) !important;
  backdrop-filter: blur(24px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(120%) !important;
}

nav[data-framer-name] a,
nav[data-framer-name] a *,
.designlab-fallback-nav a {
  color: #fff !important;
  text-decoration: none !important;
}

.designlab-work-grid,
.designlab-contact__content,
.portfolio-detail-article {
  width: min(100%, var(--responsive-content-max));
}

.designlab-work-card,
.designlab-contact,
.portfolio-detail-stage__inner,
.portfolio-detail-facts div {
  min-width: 0;
}

#hero {
  isolation: isolate;
}

#process .framer-zFMh5 {
  position: relative !important;
}

#process .designlab-process-inline-icon {
  display: block;
  width: 24px;
  height: 24px;
  object-fit: contain;
}

#process .framer-7lhdvv-container {
  display: grid !important;
  place-items: center !important;
  width: 24px !important;
  height: 24px !important;
}

#process .framer-zFMh5.framer-v-1gmexj .framer-7lhdvv-container {
  display: none !important;
}

#process .framer-zFMh5.framer-v-rfqhl0 .framer-sco459 {
  display: none !important;
  visibility: hidden !important;
}

#hero h1 {
  max-width: min(100%, 1120px) !important;
  overflow-wrap: anywhere;
  letter-spacing: 0 !important;
}

#hero p,
#process p,
#why-design-lab p,
#faqs p,
.designlab-section-copy,
.designlab-work-card__title,
.designlab-contact__input,
.portfolio-detail-summary__body > p,
.portfolio-detail-content__text {
  overflow-wrap: anywhere;
}

.designlab-contact__visual-panel {
  max-height: calc(100vh - 48px);
}

#contact[data-vue-dynamic-contact="1"],
[data-vue-dynamic-contact="1"]#contact {
  padding: 0 !important;
}

#contact .designlab-contact {
  width: 100% !important;
  min-height: 100% !important;
  height: 100% !important;
  border-radius: inherit !important;
}

.portfolio-detail-content__media,
.portfolio-detail-stage__media {
  max-width: 100%;
  height: auto;
}

@media (min-width: 1440px) {
  :root {
    --responsive-page-gutter: 72px;
    --responsive-content-max: 1560px;
  }

  .designlab-work-grid {
    width: min(100%, 1560px);
    margin-left: auto;
    margin-right: auto;
  }

  .designlab-contact {
    width: min(calc(100% - 144px), 1480px) !important;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (min-width: 1200px) and (max-width: 1439px) {
  :root {
    --responsive-page-gutter: 56px;
    --responsive-content-max: 1320px;
  }

  .designlab-work-grid {
    width: min(100%, 1320px);
    margin-left: auto;
    margin-right: auto;
  }
}

@media (min-width: 810px) and (max-width: 1199px) {
  :root {
    --responsive-page-gutter: 32px;
    --responsive-content-max: 1040px;
  }

  nav[data-framer-name="Phone"] {
    width: calc(100vw - 40px) !important;
    max-width: min(984px, calc(100vw - 40px)) !important;
    height: 64px !important;
    min-height: 64px !important;
    overflow: hidden !important;
  }

  nav[data-framer-name="Phone"] .framer-154rnzn {
    cursor: default !important;
  }

  nav[data-framer-name="Phone"] .framer-1ucfeao {
    display: none !important;
  }

  nav[data-framer-name="Phone"] .designlab-mobile-menu {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(14px, 2vw, 28px) !important;
    position: absolute !important;
    inset: 0 24px 0 auto !important;
    width: auto !important;
    max-width: calc(100% - 220px) !important;
    padding: 0 !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
  }

  nav[data-framer-name="Phone"] .designlab-mobile-menu__link {
    width: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    white-space: nowrap !important;
    font-size: 15px !important;
    line-height: 1 !important;
  }

  #hero {
    min-height: 680px !important;
  }

  #hero h1 {
    font-size: clamp(56px, 7vw, 84px) !important;
    line-height: 1.02 !important;
  }

  #hero [data-framer-name="Design dashboard"] {
    max-height: 420px !important;
    transform-origin: 50% 50% !important;
  }

  #work[data-vue-dynamic-work="1"] {
    padding: 104px var(--responsive-page-gutter) !important;
  }

  .designlab-work-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;
    width: min(100%, var(--responsive-content-max));
    margin-left: auto;
    margin-right: auto;
    padding: 0 !important;
  }

  .designlab-work-column {
    padding-top: 0 !important;
  }

  .designlab-work-column--3 {
    grid-column: 1 / -1;
  }

  #process,
  #why-design-lab,
  #faqs,
  [data-vue-dynamic-contact="1"] {
    padding-left: var(--responsive-page-gutter) !important;
    padding-right: var(--responsive-page-gutter) !important;
  }

  #process .framer-zFMh5,
  #why-design-lab .framer-esiAY,
  #faqs .framer-ckB66 {
    min-width: 0 !important;
  }

  .designlab-contact {
    min-height: 420px !important;
    padding: 56px 28px !important;
  }

  .portfolio-detail-summary,
  .portfolio-detail-facts {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 809px) {
  :root {
    --responsive-page-gutter: 20px;
    --responsive-section-gap: 84px;
  }

  [id] {
    scroll-margin-top: 92px;
  }

  .designlab-mirror [data-framer-name="Main"] {
    overflow: hidden;
  }

  nav[data-framer-name="Phone"] {
    width: calc(100vw - 40px) !important;
    max-width: calc(100vw - 40px) !important;
  }

  nav[data-framer-name="Desktop"] {
    display: none !important;
  }

  #hero {
    min-height: 640px !important;
    padding-left: var(--responsive-page-gutter) !important;
    padding-right: var(--responsive-page-gutter) !important;
    overflow: hidden !important;
  }

  #hero h1 {
    font-size: clamp(38px, 12vw, 56px) !important;
    line-height: 1.08 !important;
    max-width: 100% !important;
    white-space: normal !important;
  }

  #hero p {
    font-size: clamp(14px, 3.8vw, 17px) !important;
    line-height: 1.45 !important;
    max-width: 100% !important;
  }

  #hero [data-framer-name="Design dashboard"] {
    max-height: 300px !important;
    max-width: calc(100vw - 40px) !important;
    transform-origin: 50% 50% !important;
  }

  #process,
  #why-design-lab,
  #faqs,
  #work[data-vue-dynamic-work="1"],
  [data-vue-dynamic-contact="1"] {
    padding-left: var(--responsive-page-gutter) !important;
    padding-right: var(--responsive-page-gutter) !important;
  }

  #work[data-vue-dynamic-work="1"],
  [data-vue-dynamic-contact="1"] {
    padding-top: var(--responsive-section-gap) !important;
    padding-bottom: var(--responsive-section-gap) !important;
  }

  .designlab-dynamic-work__heading {
    width: 100% !important;
    max-width: 100% !important;
    padding: 14px 18px 16px !important;
  }

  .designlab-dynamic-work__heading .designlab-section-title,
  .designlab-section-title,
  .designlab-contact .designlab-section-title {
    font-size: clamp(36px, 11vw, 52px) !important;
    line-height: 1 !important;
  }

  .designlab-section-copy,
  .designlab-contact .designlab-section-copy {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }

  .designlab-work-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    width: 100% !important;
    padding: 0 !important;
    margin-top: 24px !important;
  }

  .designlab-work-column {
    gap: 20px !important;
    padding-top: 0 !important;
  }

  .designlab-work-card {
    border-radius: 24px !important;
    aspect-ratio: 1 / 1.05 !important;
  }

  .designlab-work-card__body {
    padding: 22px !important;
    opacity: 1 !important;
    background: linear-gradient(180deg, rgba(0, 0, 0, .7), rgba(0, 0, 0, .18) 58%, transparent) !important;
  }

  .designlab-work-card__title {
    font-size: clamp(22px, 7vw, 30px) !important;
  }

  #process .framer-zFMh5,
  #why-design-lab .framer-esiAY,
  #faqs .framer-ckB66 {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  #process .framer-10a93ev-container,
  #process .framer-11o46uv-container,
  #process .framer-16bosam-container {
    margin-bottom: 22px !important;
  }

  #process .framer-16bosam-container {
    margin-bottom: 0 !important;
  }

  #process .designlab-process-cubes__stage {
    width: min(72vw, 300px) !important;
    height: min(62vw, 260px) !important;
  }

  #process .designlab-process-cubes__cube {
    --cube-w: 74px !important;
    --cube-h: 46px !important;
    --cube-d: 22px !important;
  }

  .designlab-contact {
    min-height: 360px !important;
    padding: 48px 18px !important;
    border-radius: 28px !important;
  }

  .designlab-contact__actions {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: min(100%, 340px) !important;
    min-height: 0 !important;
    padding: 10px !important;
    border-radius: 28px !important;
  }

  .designlab-contact__input {
    padding: 14px 16px 4px !important;
    text-align: center !important;
  }

  .designlab-contact__button {
    width: 100% !important;
    min-width: 0 !important;
  }

  .designlab-contact__visual {
    padding: 18px !important;
  }

  .designlab-contact__visual-panel {
    width: min(92vw, 360px) !important;
    max-height: calc(100vh - 36px) !important;
    padding: 22px !important;
  }

  .portfolio-detail-nav {
    top: 14px !important;
    left: 14px !important;
  }

  .portfolio-detail-article {
    padding: 66px 12px 54px !important;
  }

  .portfolio-detail-stage__inner {
    min-height: 72vw !important;
  }

  .portfolio-detail-summary,
  .portfolio-detail-facts {
    grid-template-columns: 1fr !important;
  }

  .portfolio-detail-summary {
    gap: 24px !important;
    padding: 34px 0 32px !important;
  }

  .portfolio-detail-summary__title h1 {
    font-size: clamp(36px, 13vw, 64px) !important;
  }

  .portfolio-detail-content__text {
    font-size: 17px !important;
  }
}

@media (max-width: 420px) {
  #hero {
    min-height: 610px !important;
  }

  #hero h1 {
    font-size: clamp(34px, 11vw, 48px) !important;
  }

  nav[data-framer-name="Phone"][data-mobile-menu-open="true"] {
    min-height: 326px !important;
  }

  .designlab-mobile-menu__link {
    min-height: 46px !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}

@media (max-width: 1199px) {
  nav[data-framer-name="Desktop"],
  nav[data-framer-name="Tablet"],
  nav[data-framer-name="Phone"] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .designlab-fallback-nav {
    display: grid !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
}

@media (min-width: 1200px) {
  .designlab-fallback-nav {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

html {
  overflow-y: auto !important;
}

html body,
html body #app,
html body .designlab-mirror {
  overflow-x: visible !important;
  overflow-y: visible !important;
}
