:root {
  --article-max: 1240px;
  --article-copy: 760px;
  --article-line: rgba(255,255,255,.09);
  --article-muted: #92929b;
}

html.case-document,
html.case-document body {
  width: 100%;
  height: auto;
  min-height: 100%;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  scroll-behavior: smooth;
}

body.case-page {
  background: #09090b;
}

body.case-page.sheet-open {
  overflow: hidden !important;
}

.case-page .article-app {
  position: relative !important;
  inset: auto !important;
  width: 100%;
  max-width: none !important;
  min-height: 100vh !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 0 118px !important;
  overflow: visible !important;
  scroll-snap-type: none !important;
  scroll-behavior: auto !important;
  background: #09090b;
}

.case-page .smart-header {
  top: 18px !important;
  left: 50%;
  transform: translateX(-50%) !important;
  width: min(calc(100% - 48px), var(--article-max)) !important;
  height: 70px !important;
  padding: 0 16px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 18px !important;
  background: rgba(15,15,18,.84) !important;
  box-shadow: 0 18px 60px rgba(0,0,0,.26) !important;
}

.case-page .brand {
  padding: 0;
}

.case-page .brand img {
  width: 160px;
}

.case-page .location {
  min-height: 46px;
}

.case-article {
  display: block;
}

.case-hero {
  width: min(calc(100% - 64px), var(--article-max));
  min-height: min(900px,100svh);
  margin: 0 auto;
  padding: 154px 0 90px;
  display: grid;
  grid-template-columns: minmax(0,.92fr) minmax(440px,.82fr);
  align-items: center;
  gap: clamp(56px,7vw,104px);
}

.case-hero-copy {
  min-width: 0;
}

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
  color: #62626c;
  font-size: 10px;
  font-weight: 700;
}

.breadcrumbs a {
  color: #9b9ba4;
  text-decoration: none;
}

.breadcrumbs a:hover {
  color: #f5f5f5;
}

.case-label,
.section-index,
.full-preview-head > span,
.article-end-cta > span {
  color: #00cbd0;
  font-size: 9px;
  font-weight: 850;
  line-height: 1;
}

.case-hero h1 {
  max-width: 740px;
  margin: 18px 0 28px;
  color: #fafafa;
  font-size: clamp(52px,6vw,88px);
  font-weight: 900;
  line-height: .98;
  letter-spacing: 0;
}

.case-hero h1 span {
  background: linear-gradient(100deg,#fc00ff 5%,#00dbde 90%);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.case-lead {
  max-width: 650px;
  margin: 0;
  color: #a4a4ad;
  font-size: clamp(17px,1.45vw,21px);
  line-height: 1.6;
}

.case-facts {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 0;
  margin: 48px 0 0;
  border-top: 1px solid var(--article-line);
}

.case-facts div {
  min-width: 0;
  padding: 18px 18px 18px 0;
  border-bottom: 1px solid var(--article-line);
}

.case-facts div:nth-child(odd) {
  border-right: 1px solid var(--article-line);
}

.case-facts div:nth-child(even) {
  padding-left: 18px;
}

.case-facts dt {
  margin-bottom: 7px;
  color: #606069;
  font-size: 9px;
  font-weight: 750;
}

.case-facts dd {
  margin: 0;
  color: #dedee2;
  font-size: 12px;
  font-weight: 650;
}

.case-browser {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 8px;
  background: #101013;
  box-shadow: 0 42px 100px rgba(0,0,0,.42);
}

.case-browser-hero {
  width: 100%;
  transform: rotate(1.2deg);
}

.browser-bar {
  position: relative;
  height: 38px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 13px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  background: #17171b;
}

.browser-bar i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #3f3f46;
}

.browser-bar i:nth-child(2) {background: #7a6578;}
.browser-bar i:nth-child(3) {background: #587d7c;}

.browser-bar span {
  position: absolute;
  left: 50%;
  color: #6f6f78;
  font-size: 8px;
  transform: translateX(-50%);
}

.browser-crop,
.media-crop {
  position: relative;
  overflow: hidden;
  background: #101013;
}

.browser-crop img,
.media-crop img {
  position: absolute;
  left: 0;
  width: 100%;
  height: auto;
  max-width: none;
}

.crop-top {
  aspect-ratio: 4 / 4.65;
}

.crop-top img {
  top: 0;
}

.article-layout {
  width: min(calc(100% - 64px), var(--article-max));
  margin: 0 auto;
  padding: 100px 0 0;
  display: grid;
  grid-template-columns: 210px minmax(0,var(--article-copy));
  justify-content: center;
  gap: clamp(62px,8vw,120px);
}

.article-nav {
  position: sticky;
  top: 122px;
  align-self: start;
  display: grid;
  gap: 14px;
  padding-left: 18px;
  border-left: 1px solid var(--article-line);
}

.article-nav span {
  margin-bottom: 9px;
  color: #55555e;
  font-size: 8px;
  font-weight: 800;
}

.article-nav a {
  color: #83838c;
  font-size: 11px;
  font-weight: 650;
  text-decoration: none;
}

.article-nav a:hover {
  color: #f5f5f5;
}

.article-body {
  min-width: 0;
}

.article-section {
  padding: 0 0 112px;
  scroll-margin-top: 120px;
}

.article-section h2,
.full-preview h2,
.article-end-cta h2 {
  margin: 20px 0 30px;
  color: #f5f5f5;
  font-size: clamp(36px,4.3vw,58px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: 0;
}

.article-section p {
  margin: 0 0 24px;
  color: var(--article-muted);
  font-size: 17px;
  line-height: 1.82;
}

.article-section .article-opening {
  color: #c9c9ce;
  font-size: 21px;
  line-height: 1.7;
}

.article-media {
  margin: 0 0 112px;
}

.article-media figcaption {
  margin-top: 13px;
  color: #5f5f68;
  font-size: 10px;
  line-height: 1.5;
}

.media-landscape .media-crop {
  aspect-ratio: 16 / 10;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
}

.crop-services img {
  top: -88%;
}

.challenge-list {
  margin-top: 42px;
  border-top: 1px solid var(--article-line);
}

.challenge-list > div {
  display: grid;
  grid-template-columns: 54px minmax(0,1fr);
  gap: 24px;
  padding: 25px 0;
  border-bottom: 1px solid var(--article-line);
}

.challenge-list b {
  color: #00cbd0;
  font-size: 10px;
}

.challenge-list p {
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
}

.challenge-list strong {
  color: #efeff1;
}

blockquote {
  margin: 0 0 112px;
  padding: 38px 0 38px 34px;
  border-left: 3px solid #7c8cff;
}

blockquote p {
  max-width: 700px;
  margin: 0 0 18px;
  color: #f5f5f5;
  font-size: clamp(28px,3vw,40px);
  font-weight: 700;
  line-height: 1.25;
}

blockquote cite {
  color: #696972;
  font-size: 9px;
  font-style: normal;
  font-weight: 750;
}

.solution-steps {
  margin-top: 44px;
  border-top: 1px solid var(--article-line);
}

.solution-steps article {
  display: grid;
  grid-template-columns: 110px 220px minmax(0,1fr);
  gap: 24px;
  padding: 28px 0;
  border-bottom: 1px solid var(--article-line);
}

.solution-steps span {
  color: #6f6f78;
  font-size: 8px;
  font-weight: 800;
}

.solution-steps h3 {
  margin: 0;
  color: #eeeeF0;
  font-size: 16px;
  line-height: 1.35;
}

.solution-steps p {
  margin: 0;
  font-size: 13px;
  line-height: 1.65;
}

.media-portrait-pair {
  display: grid;
  grid-template-columns: minmax(0,.95fr) minmax(240px,.65fr);
  align-items: end;
  gap: 34px;
}

.media-portrait-pair .media-crop {
  aspect-ratio: 4 / 5;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
}

.crop-middle img {
  top: -205%;
}

.media-note {
  padding-bottom: 6px;
}

.media-note > span {
  color: #fc50f4;
  font-size: 8px;
  font-weight: 800;
}

.media-note h2 {
  margin: 16px 0 18px;
  color: #f5f5f5;
  font-size: 27px;
  line-height: 1.2;
  letter-spacing: 0;
}

.media-note p {
  margin: 0;
  color: #888891;
  font-size: 13px;
  line-height: 1.7;
}

.result-metrics {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  margin-top: 46px;
  border-top: 1px solid var(--article-line);
  border-bottom: 1px solid var(--article-line);
}

.result-metrics div {
  padding: 25px 18px 25px 0;
}

.result-metrics div + div {
  padding-left: 18px;
  border-left: 1px solid var(--article-line);
}

.result-metrics strong,
.result-metrics span {
  display: block;
}

.result-metrics strong {
  margin-bottom: 10px;
  color: #f5f5f5;
  font-size: 26px;
}

.result-metrics span {
  color: #6e6e77;
  font-size: 9px;
  line-height: 1.45;
}

.full-preview {
  padding-bottom: 112px;
}

.full-preview-head {
  margin-bottom: 30px;
}

.full-preview-head h2 {
  margin-bottom: 0;
}

.case-browser-full img {
  display: block;
  width: 100%;
  height: auto;
}

.article-end-cta {
  margin-bottom: 120px;
  padding: 54px 0 0;
  border-top: 1px solid var(--article-line);
}

.article-end-cta h2 {
  max-width: 680px;
}

.article-end-cta button {
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  gap: 34px;
  padding: 0 22px;
  border: 0;
  border-radius: 8px;
  background: #f5f5f5;
  color: #09090b;
  font-size: 12px;
  font-weight: 800;
}

.article-end-cta button b {
  font-size: 18px;
  font-weight: 500;
}

.case-page .article-contact {
  width: min(calc(100% - 64px),var(--article-max));
  margin: 0 auto 96px !important;
  padding: 0 !important;
}

.case-page .article-contact .section-shell {
  width: 100%;
  min-height: 0;
}

.case-page .article-contact .contact-card {
  width: 100%;
}

.case-page footer {
  display: block !important;
  width: min(calc(100% - 64px),var(--article-max));
  margin: 0 auto;
  padding: 32px 0 0;
  border-top: 1px solid rgba(255,255,255,.07);
}

.case-page .floating-bar {
  z-index: 90;
}

@media (max-width: 999px) {
  .case-page .article-app {
    padding-bottom: 112px;
  }

  .case-page .smart-header {
    top: max(6px,env(safe-area-inset-top)) !important;
    width: calc(100% - 20px) !important;
    height: 60px !important;
    padding: 0 10px !important;
    border-radius: 20px !important;
  }

  .case-page .brand img {
    width: 138px;
  }

  .case-hero {
    width: calc(100% - 32px);
    min-height: 0;
    padding: calc(104px + env(safe-area-inset-top)) 0 72px;
    display: block;
  }

  .breadcrumbs {
    margin-bottom: 28px;
  }

  .case-hero h1 {
    margin: 16px 0 24px;
    font-size: 45px;
    line-height: 1.01;
  }

  .case-lead {
    font-size: 16px;
    line-height: 1.62;
  }

  .case-facts {
    margin-top: 38px;
  }

  .case-facts dd {
    font-size: 11px;
  }

  .case-browser-hero {
    margin-top: 48px;
    transform: none;
  }

  .article-layout {
    width: calc(100% - 32px);
    padding-top: 72px;
    display: block;
  }

  .article-nav {
    position: static;
    display: flex;
    gap: 18px;
    margin: 0 -16px 82px;
    padding: 0 16px 12px;
    overflow-x: auto;
    border: 0;
    scrollbar-width: none;
  }

  .article-nav::-webkit-scrollbar {display:none;}
  .article-nav span {display:none;}
  .article-nav a {flex:0 0 auto;}

  .article-section,
  .article-media,
  blockquote,
  .full-preview {
    padding-bottom: 82px;
    margin-bottom: 0;
  }

  .article-section h2,
  .full-preview h2,
  .article-end-cta h2 {
    margin: 17px 0 25px;
    font-size: 34px;
    line-height: 1.12;
  }

  .article-section p {
    font-size: 15px;
    line-height: 1.75;
  }

  .article-section .article-opening {
    font-size: 18px;
    line-height: 1.65;
  }

  .crop-services img {
    top: -82%;
  }

  .challenge-list > div {
    grid-template-columns: 38px minmax(0,1fr);
    gap: 14px;
  }

  blockquote {
    padding: 30px 0 30px 22px;
  }

  blockquote p {
    font-size: 27px;
  }

  .solution-steps article {
    display: grid;
    grid-template-columns: 76px minmax(0,1fr);
    gap: 10px 14px;
  }

  .solution-steps p {
    grid-column: 2;
  }

  .media-portrait-pair {
    display: block;
  }

  .media-note {
    padding: 28px 0 0;
  }

  .media-note h2 {
    font-size: 27px;
  }

  .result-metrics {
    grid-template-columns: 1fr;
  }

  .result-metrics div,
  .result-metrics div + div {
    padding: 18px 0;
    border-left: 0;
    border-top: 1px solid var(--article-line);
  }

  .result-metrics div:first-child {
    border-top: 0;
  }

  .case-browser-full .browser-bar {
    position: sticky;
    top: 0;
  }

  .article-end-cta {
    margin-bottom: 82px;
    padding-top: 42px;
  }

  .case-page .article-contact {
    width: auto;
    margin: 0 16px 68px !important;
  }

  .case-page footer {
    width: auto;
    margin: 0 16px;
    padding-bottom: 28px;
  }
}

@media (max-width: 380px) {
  .case-hero h1 {
    font-size: 40px;
  }

  .case-facts {
    grid-template-columns: 1fr;
  }

  .case-facts div,
  .case-facts div:nth-child(odd),
  .case-facts div:nth-child(even) {
    padding: 15px 0;
    border-right: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.case-document,
  html.case-document body {
    scroll-behavior: auto;
  }
}
