@font-face {font-family:"Inter Display";src:url("../fonts/inter-display-medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;}
@font-face {font-family:"Inter Display";src:url("../fonts/inter-display-semibold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap;}

:root {
  color-scheme: light;
  --color-paper: #ffffff;
  --color-surface: #f1f1f1;
  --color-black: #000000;
  --color-ink: #272727;
  --color-accent: #5a44ee;
  --color-rating: #d99a00;
  --font-body: "Inter Display", Arial, sans-serif;
  --font-display: "Inter Display", Arial, sans-serif;
  --color-navigation: #262a36;
  --color-menu: #1d2029;
  --font-size-body: 16px;
  --font-size-small: 14px;
  --line-body: 24px;
  --space-0-5: 4px;
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 40px;
  --space-10: 80px;
  --space-16: 128px;
  --page-gutter: var(--space-5);
  --header-height: var(--space-10);
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  overflow-y: scroll;
  scrollbar-width: none;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

html::-webkit-scrollbar { display: none; }

body {
  margin: 0;
  min-width: 0;
  background: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-body);
}

h1, h2 { letter-spacing: -.04em; }

a { color: inherit; text-decoration: none; touch-action: manipulation; }
button { font: inherit; color: inherit; touch-action: manipulation; user-select: none; cursor: pointer; }
html.menu-open, html.menu-open body { overflow: hidden; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: var(--space-1); }

.brand {position:relative;z-index:2;display:block;flex:none;width:88px;height:32px;}

.brand img {width:88px;height:32px;object-fit:contain;object-position:left center;}

.site-nav {display:flex;align-items:center;gap:var(--space-2);}

.nav-link {display:block;font-size:var(--font-size-body);font-weight:600;line-height:var(--line-body);letter-spacing:0;}

.menu-toggle {position:relative;z-index:2;display:none;align-items:center;gap:var(--space-1);flex:none;width:var(--space-10);height:32px;padding:0;border:0;background:transparent;color:inherit;font-family:var(--font-display);font-size:var(--font-size-body);font-weight:600;line-height:var(--space-4);letter-spacing:0;}

.menu-toggle__labels {position:relative;flex:none;width:48px;height:var(--space-4);}
.menu-toggle__icons {position:relative;flex:none;width:var(--space-3);height:var(--space-3);}
.menu-toggle__icon {position:absolute;inset:0;width:var(--space-3);height:var(--space-3);transition:opacity 240ms var(--ease-out),transform 240ms var(--ease-out);}
.menu-toggle__icon--close {opacity:0;transform:rotate(-90deg) scale(.9);}

.menu-toggle__open {display:block;text-align:right;transition:opacity 400ms cubic-bezier(.44,0,.56,1),transform 400ms cubic-bezier(.44,0,.56,1);}

.menu-toggle__close {position:absolute;top:0;right:0;opacity:0;transform:translateY(32px);transition:opacity 400ms cubic-bezier(.44,0,.56,1),transform 400ms cubic-bezier(.44,0,.56,1);}

@media (hover:hover) and (pointer:fine) {.nav-link:hover {opacity:.6;}}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 20;
  top: var(--space-2);
  left: var(--page-gutter);
  padding: var(--space-1) var(--space-2);
  background: var(--color-ink);
  color: var(--color-paper);
  transform: translateY(-200%);
}
.skip-link:focus { transform: translateY(0); }
.page-content { min-height: calc(100svh - var(--header-height)); }
.page-content:focus { outline: none; }
@media (max-width: 1199.98px) { :root { --page-gutter: var(--space-4); } }
@media (max-width: 807.98px) {
  :root { --page-gutter: var(--space-3); }
}

@font-face {font-family:"Inter Display";src:url("../fonts/inter-display-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
.section-container {width:100%;max-width:1520px;margin-inline:auto;padding-inline:var(--page-gutter);}
.icon {display:inline-grid;place-items:center;flex:none;width:var(--space-3);height:var(--space-3);font-size:var(--space-3);line-height:1;}
.round-button {display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:var(--color-menu);color:var(--color-paper);}

.text-link {display:inline-flex;align-items:center;flex:none;gap:var(--space-1);color:var(--color-menu);font-family:var(--font-display);font-size:24px;font-weight:600;line-height:32px;text-decoration:none;}
.text-link__text {position:relative;display:block;overflow:hidden;padding-block:var(--space-1);margin-block:calc(-1 * var(--space-1));}
.text-link__label {display:block;transition:transform 500ms cubic-bezier(0.77,0,0.175,1);}
.text-link__label--copy {position:absolute;inset:0;padding-block:var(--space-1);transform:translateY(150%);}
.text-link__arrow {position:relative;display:block;flex:none;width:var(--space-3);height:var(--space-3);overflow:hidden;}
.text-link__arrow .icon {display:block;transition:transform 500ms cubic-bezier(0.77,0,0.175,1);}
.text-link__arrow-copy {position:absolute;inset:0;transform:translate(-100%,100%);}
@media (hover:hover) and (pointer:fine) {
  .text-link:hover .text-link__label {transform:translateY(-150%);}
  .text-link:hover .text-link__label--copy {transform:translateY(0);}
  .text-link:hover .text-link__arrow .icon {transform:translate(100%,-100%);}
  .text-link:hover .text-link__arrow .text-link__arrow-copy {transform:translate(0,0);}
}
@media (max-width:807.98px) {.text-link {line-height:24px;}}
@media (prefers-reduced-motion:reduce) {.text-link__label,.text-link__arrow .icon {transition:none;}}

html.lenis,html.lenis body {height:auto;}
.lenis.lenis-smooth {scroll-behavior:auto !important;}
.lenis.lenis-stopped {overflow:hidden;}


[data-text-reveal] .text-reveal__word {display:inline-block;white-space:nowrap;}
/* Scroll progress owns opacity; no second CSS animation. */

.case-card {display:block;min-width:0;}
.case-card__visual {position:relative;aspect-ratio:1.40933;overflow:hidden;border-radius:var(--space-2);background:var(--color-surface);}
.case-card__visual > img {width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease-out),filter 600ms var(--ease-out);}
.case-card__hover {position:absolute;inset:0;display:grid;place-items:center;opacity:0;transition:opacity 400ms var(--ease-out);}
.case-card__view {display:grid;place-items:center;width:96px;height:96px;border-radius:50%;background:var(--color-paper);color:var(--color-menu);transform:translateY(16px);transition:transform 400ms var(--ease-out);}
.case-card__view .icon {width:var(--space-4);height:var(--space-4);font-size:var(--space-4);}
.case-card__caption {padding-top:var(--space-2);font-family:var(--font-display);font-size:24px;font-weight:500;line-height:32px;}
.case-card__caption h3 {min-width:0;margin:0;font:inherit;}

.case-card:focus-visible .case-card__hover {opacity:1;backdrop-filter:blur(5px);}
.case-card:focus-visible .case-card__view {transform:none;}
.case-card:focus-visible .case-card__visual > img {filter:grayscale(1);}
.case-card:focus-visible .text-link__label {transform:translateY(-150%);}
.case-card:focus-visible .text-link__label--copy {transform:translateY(0);}
@media (hover:hover) and (pointer:fine) {
  .case-card:hover .case-card__visual > img {transform:scale(1.05);filter:grayscale(1);}
  .case-card:hover .case-card__hover {opacity:1;backdrop-filter:blur(5px);}
  .case-card:hover .case-card__view {transform:none;}
  .case-card:hover .text-link__label {transform:translateY(-150%);}
  .case-card:hover .text-link__label--copy {transform:translateY(0);}
}
[data-reveal].reveal-ready {opacity:0;transform:translateY(var(--space-4));transition:opacity 800ms var(--ease-out),transform 800ms var(--ease-out);}
[data-reveal].is-revealing {will-change:transform,opacity;}
[data-reveal].reveal-ready.is-visible {opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce) {
  .case-card__visual > img,.case-card__view {transform:none!important;transition:none;}
  .case-card__hover {transition:none;}
  [data-reveal].reveal-ready {opacity:1;transform:none;transition:none;}
}
.accordion__item {--accordion-duration:400ms;--accordion-ease:var(--ease-out);border-bottom:1px solid rgb(90 98 113 / 24%);}
.accordion__trigger {display:grid;grid-template-columns:calc(25% - var(--space-3)) minmax(0,1fr) var(--space-3);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-2);list-style:none;cursor:pointer;}
.accordion__trigger::-webkit-details-marker {display:none;}
.accordion__number {font-size:var(--font-size-small);font-weight:600;line-height:var(--line-body);}
.accordion__title {font-family:var(--font-display);font-size:40px;font-weight:500;line-height:48px;text-transform:uppercase;}
.accordion__icon {transition:transform var(--accordion-duration) var(--accordion-ease);}
.accordion__item[open]:not([data-expanded="false"]) .accordion__icon {transform:rotate(45deg);}
.accordion__content {padding:0 calc(var(--space-3) + var(--space-2)) var(--space-4) calc(25% + var(--space-2));}
.accordion__content p {max-width:640px;margin:0;font-size:var(--font-size-body);line-height:var(--line-body);text-wrap:pretty;}
@media (hover:hover) and (pointer:fine) {.accordion__trigger:hover {color:rgb(38 42 54 / 65%);}}
@media (max-width:807.98px) {
  .accordion__trigger {grid-template-columns:minmax(0,1fr) var(--space-3);gap:var(--space-2);padding:var(--space-3) 0;}
  .accordion__number {grid-column:1 / -1;}
  .accordion__title {font-size:24px;line-height:32px;}
  .accordion__content {padding:0 0 var(--space-3);}
}
@media (prefers-reduced-motion:reduce) {.accordion__icon {transition:none;}}
.review-card {display:flex;flex-direction:column;gap:var(--space-2);height:100%;margin:0;padding:var(--space-3);border:1px solid rgb(90 98 113 / 24%);border-radius:var(--space-2);background:transparent;}
.review-card__stars {display:inline-flex;align-items:center;gap:var(--space-1);font-size:24px;line-height:32px;color:var(--color-rating);}
.review-card blockquote {margin:var(--space-1) 0 0;}
.review-card blockquote p {margin:0;font-size:var(--font-size-body);line-height:var(--line-body);}
.review-card__author {display:flex;align-items:center;gap:var(--space-2);margin-top:auto;}
.review-card__author img {flex:none;width:48px;height:48px;object-fit:cover;border-radius:50%;}
.review-card__name {margin:0;font-weight:600;font-size:var(--font-size-body);line-height:var(--line-body);}
.review-card__company {margin:0;font-size:var(--font-size-small);line-height:var(--line-body);}
.review-card__author--truncate > div {min-width:0;}
.review-card__author--truncate .review-card__company {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media (prefers-reduced-motion:no-preference) {
  .page-ready .page-content[data-page-enter] {animation:page-enter 800ms cubic-bezier(.35,0,0,1) 400ms backwards;}
  .page-ready .page-content[data-page-enter] > * {animation:page-enter-fade 800ms cubic-bezier(.35,0,0,1) 400ms backwards;}
  @keyframes page-enter {from {transform:translate3d(0,var(--space-4),0);} to {transform:none;}}
  @keyframes page-enter-fade {from {opacity:0;} to {opacity:1;}}
}

.page-loading .page-content,.page-loading .site-footer {visibility:hidden;}

.filter-scroll-shell {position:relative;min-width:0;flex:1;}
[data-filter-scroll]:not([hidden]) {display:flex;flex-wrap:nowrap;gap:var(--filter-gap,var(--space-3));overflow-x:auto;max-width:100%;padding:var(--space-1) 0;margin:0;scrollbar-width:none;}
[data-filter-scroll]::-webkit-scrollbar {display:none;}
[data-filter-scroll] button {flex:none;white-space:nowrap;}
@media(max-width:807.98px) {
  .filter-scroll-shell {flex:auto;width:calc(100% + var(--page-gutter) * 2);margin-inline:calc(-1 * var(--page-gutter));}
  [data-filter-scroll]:not([hidden]) {max-width:none;padding-inline:var(--page-gutter);scroll-padding-inline:var(--page-gutter);}
}

.case-card__caption:has(.case-card__badge) {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-1) var(--space-2);}
.case-card__badge {flex:none;white-space:nowrap;font-size:var(--font-size-small);font-weight:600;line-height:var(--line-body);}
