html[data-theme="light"] body {
  --color-text: #262626;
  --color-background: #fff;
  --color-border: #4f4f4f40;
  --color-media-background: #000;
  --color-accent: #262626;
}
.visually-hidden {
  position: absolute !important;
  width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important;
  overflow: hidden !important; clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important; border: 0 !important;
}
/* Match the original paragraph typography on semantic heading elements. */
.seo-heading.text {
  margin: 0;
  font-weight: var(--type-font-weight, 400);
}
.seo-breadcrumb {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-top: 16px; font-family: 'Aspekta 400', sans-serif;
  font-size: 14px; line-height: 1.5;
  color: var(--color-text);
}
.seo-breadcrumb a { color: inherit; text-underline-offset: 3px; }
img, video { max-width: 100%; }
@media (max-width: 809px) {
  /* Keep both legal links visible instead of clipping the second column. */
  .site-footer .layout-053 {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
  }
  .site-footer .layout-425,
  .site-footer .layout-091,
  .site-footer .layout-166 { width: 100% !important; flex: none !important; }
  .site-footer .links-001,
  .site-footer .layout-010 { max-width: 100%; flex-wrap: wrap; }
  .site-footer .layout-098 { max-width: 100%; white-space: normal !important; }
  .site-footer .layout-098 p { white-space: normal !important; overflow-wrap: break-word; }
}
html[data-theme="dark"] body {
  --color-text: #eee;
  --color-background: #0a0a0a;
  --color-border: #ffffff38;
  --color-media-background: #121212;
  --color-accent: #242424;
}
[role="button"] { cursor: pointer; }
[role="button"]:focus-visible, a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
nav.navigation--closed > [data-ui-name="Links"] { visibility: hidden; }
nav.navigation--open > [data-ui-name="Links"] { opacity: 1 !important; visibility: visible; }
nav.navigation--open [data-ui-name="Top"] { transform: rotate(45deg) !important; }
nav.navigation--open [data-ui-name="Bottom"] { transform: rotate(-45deg) !important; }
nav [data-ui-name="Top"], nav [data-ui-name="Bottom"] { transition: transform .25s; }
.service-item [data-ui-name="Answer"] { visibility: hidden; }
.service-item.service--open [data-ui-name="Answer"] { opacity: 1 !important; visibility: visible; }
.service-item .layout-027 { transition: transform .25s; }
.service-item.service--open .layout-027 { transform: rotate(45deg) !important; }
.project-card .icon-wrapper-001, .project-card .image-001 { transition: top .35s, bottom .35s, filter .35s; }
@media (hover: hover) {
  .project-card:hover .icon-wrapper-001, .project-card:focus-visible .icon-wrapper-001 { bottom: 0; left: 0; }
  .project-card:hover .image-001, .project-card:focus-visible .image-001 { top: 0; filter: grayscale(0) !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Native controls inherit the established typography and component layout. */
button[data-native-control], button.service-toggle {
  appearance: none; border: 0; padding: 0; margin: 0;
  background: transparent; color: inherit; font: inherit;
  letter-spacing: inherit; text-align: inherit; cursor: pointer;
}
.service-toggle { width: 100%; }
button:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }

.service-toggle { display: block; }

.page-content { display: contents; }

/* Cross-document navigation stays native: links, history and scroll still work. */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root) {
    animation: page-fade-out 300ms ease-in-out both;
  }
  ::view-transition-new(root) {
    animation: page-fade-in 300ms ease-in-out both;
  }
}
@keyframes page-fade-out { to { opacity: 0; } }
@keyframes page-fade-in { from { opacity: 0; } }

.work-cycle { position: relative; display: block; aspect-ratio: 1; overflow: hidden; }
.work-cycle > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; }
.work-cycle > img:first-child { opacity: 1; }
/* Five 1.5s slots: a 0.5s crossfade followed by a full 1s hold. */
.work-cycle.is-playing > img { animation: work-example-fade 7.5s linear infinite both; }
.work-cycle.is-playing > img:nth-child(1) { animation-delay: -.5s; }
.work-cycle.is-playing > img:nth-child(2) { animation-delay: 1s; }
.work-cycle.is-playing > img:nth-child(3) { animation-delay: 2.5s; }
.work-cycle.is-playing > img:nth-child(4) { animation-delay: 4s; }
.work-cycle.is-playing > img:nth-child(5) { animation-delay: 5.5s; }
@keyframes work-example-fade {
  0% { opacity: 0; }
  6.666667%, 20% { opacity: 1; }
  26.666667%, 100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .work-cycle.is-playing > img { animation: none; }
  .work-cycle > img:first-child { opacity: 1; }
}
