:root {
  --mimas-display-family: "Outfit", "Inter", system-ui, -apple-system, sans-serif;
  --mimas-body-family: "Manrope", "Inter", system-ui, -apple-system, sans-serif;
  --mimas-mono-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --mimas-font-family: var(--mimas-body-family);
  --mimas-heading-tracking: -0.024em;
  --mimas-body-tracking: -0.011em;
  --mimas-label-tracking: 0.16em;
  --mimas-caption-tracking: 0.1em;
  --swatch--light: #f1f1ea;
  --swatch--dark: #0E0E10;
  --swatch--brand: #0E0E10;
  --swatch--brand-light: #f1f1ea;
  --swatch--brand-text: #f1f1ea;
  --swatch--light-gray: #e7e3d9;
  --swatch--dim-light: #dfdbd2;
  --swatch--gray: #cfc8bf;
  --swatch--ex-gray: #ddd8cf;
  --swatch--light26: rgba(241, 241, 234, 0.16);
  --swatch--light30: rgba(241, 241, 234, 0.3);
  --swatch--light50: rgba(241, 241, 234, 0.5);
  --swatch--dark50: rgba(14, 3, 16, 0.5);
  --swatch--dark-faded: rgba(14, 3, 16, 0.16);
  --swatch--light-faded: rgba(241, 241, 234, 0.18);
  --font--primary-family: var(--mimas-body-family);
  --font--secondary-family: var(--mimas-body-family);
  --font--third-family: var(--mimas-mono-family);
  --font--primary-regular: 400;
  --font--primary-medium: 500;
  --font--primary-semibold: 600;
  --font--primary-bold: 600;
  --font--secondary-regular: 400;
  --font--secondary-medium: 500;
  --font--secondary-semibold: 600;
  --font--secondary-bold: 600;
  --all-headings--heading-font-family: var(--mimas-display-family);
  --all-headings--heading-font-weight: 200;
  --all-headings--heading-line-height: 1.08;
  --all-headings--heading-letter-spacing: var(--mimas-heading-tracking);
  --display-large--font-weight: 200;
  --display-small--font-weight: 200;
  --text-main--font-family: var(--font--primary-family);
  --text-main--font-weight: 400;
  --text-main--line-height: 1.42;
  --text-main--letter-spacing: var(--mimas-body-tracking);
  --text-xlarge--font-family: var(--font--primary-family);
  --text-xlarge--font-weight: 400;
  --text-xlarge--line-height: 1.34;
  --text-xlarge--letter-spacing: -0.02em;
  --text-large--font-family: var(--font--primary-family);
  --text-large--font-weight: 400;
  --text-large--line-height: 1.36;
  --text-large--letter-spacing: -0.018em;
  --text-medium--font-family: var(--font--primary-family);
  --text-medium--font-weight: 400;
  --text-medium--line-height: 1.38;
  --text-medium--letter-spacing: -0.014em;
  --text-small--font-family: var(--font--primary-family);
  --text-small--font-weight: 400;
  --text-small--line-height: 1.32;
  --text-small--letter-spacing: -0.01em;
  --text-tiny--font-family: var(--font--primary-family);
  --text-tiny--font-weight: 400;
  --text-tiny--line-height: 1.3;
  --text-tiny--letter-spacing: 0.02em;
  --h4--letter-spacing: -0.024em;
  --h5--letter-spacing: -0.02em;
  --h6--letter-spacing: -0.016em;
}

html,
body {
  font-family: var(--font--primary-family);
}

body {
  font-synthesis: none;
  letter-spacing: var(--text-main--letter-spacing);
}

button,
input,
select,
textarea {
  font-family: inherit;
}

b,
strong {
  font-weight: 500;
}

::selection {
  background: var(--swatch--brand);
  color: var(--swatch--light);
}

.btn_text_wrap,
.btn_text_icon,
.btn_text_line,
.btn_text_text {
  transition:
    color 0.35s ease,
    transform 0.35s ease,
    letter-spacing 0.35s ease;
}

.btn_text_wrap:hover {
  color: color-mix(in srgb, var(--theme--text) 35%, var(--swatch--brand) 65%);
}

.btn_text_wrap:hover .btn_text_icon {
  transform: translate(0.18rem, -0.08rem);
}

.btn_text_wrap:hover .btn_text_line {
  color: color-mix(in srgb, var(--theme--text) 30%, var(--swatch--brand) 70%);
}

.btn_text_wrap:hover .btn_text_text {
  letter-spacing: 0.165em;
}

.cs_slider_button_wrap .btn_text_wrap,
.cs_slider_button_wrap .btn_text_layout {
  flex-shrink: 0;
  max-width: max-content;
  white-space: nowrap;
}

.cs_slider_button_wrap .btn_text_text {
  white-space: nowrap;
}

.cs_slider_button_wrap .btn_text_icon {
  flex: 0 0 0.625rem;
  height: 0.75rem;
  width: 0.625rem;
}

.g_subtitle_text,
.footer_subtitle_text,
.h_intro_item_text,
.quote_person_position,
.swiper_cs_item_subtitle {
  color: color-mix(in srgb, var(--theme--text) 72%, var(--swatch--brand));
}

.nav_data_wrap {
  display: none !important;
}

.nav_layout {
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center;
}

.nav_component {
  color: var(--swatch--light) !important;
  isolation: isolate;
  mix-blend-mode: normal !important;
}

.nav_logo_wrap {
  height: auto;
  justify-self: start;
  mix-blend-mode: normal !important;
  width: 6.6rem;
}

#w-node-d8ac7e59-a517-c181-053c-32cf9e1c1106-9e1c10f5 {
  justify-self: start !important;
}

.nav_logo_image {
  display: block;
  filter: none !important;
  height: auto;
  margin: 0;
  mix-blend-mode: normal !important;
  width: 100%;
}

.nav_button_wrap {
  justify-self: end;
  mix-blend-mode: normal !important;
}

.nav_button_text {
  color: var(--swatch--light) !important;
  mix-blend-mode: normal !important;
}

.h_header_heading,
.h_intro_header_heading,
.h_services_heading,
.swiper_cs_item_heading,
.quote_text,
.nav_menu_link_text {
  font-family: var(--font--primary-family);
  font-weight: 300;
  letter-spacing: var(--mimas-heading-tracking);
}

.quote_text {
  line-height: 1.16;
}

.quote_person_name,
.h_services_body_text {
  letter-spacing: -0.02em;
}

.footer_row_text {
  letter-spacing: var(--mimas-caption-tracking);
  line-height: 1.45;
}

:is(
  .u-text-style-font-mono,
  .u-text-style-font-mono-ext,
  .btn_text_text,
  .footer_subtitle,
  .footer_link_text,
  .footer_link_heading,
  .footer_copyright_text,
  .nav_button_text,
  .nav_menu_email_text,
  .g_subtitle_text,
  .h_intro_item_text,
  .quote_person_position,
  .swiper_cs_item_subtitle,
  .h_services_feature_item,
  .cursor_dot_text,
  .h_services_heading_index
) {
  font-family: var(--font--secondary-family);
  font-weight: 500;
  letter-spacing: var(--mimas-label-tracking);
}

.footer_link_text.footer-mw,
.quote_person_position,
.swiper_cs_item_subtitle,
.h_intro_item_text {
  letter-spacing: var(--mimas-caption-tracking);
}

.mimas-hero-rotator {
  align-items: baseline;
  display: inline-flex;
  min-height: 2.4em;
  white-space: normal;
}

.mimas-hero-type {
  display: inline-block;
  white-space: nowrap;
}

.mimas-hero-caret {
  animation: mimasCaretBlink 1s steps(1, end) infinite;
  background: currentColor;
  display: inline-block;
  flex: none;
  height: 0.92em;
  margin-left: 0.12em;
  transform: translateY(0.08em);
  width: 1px;
}

@keyframes mimasCaretBlink {
  0%, 45% {
    opacity: 1;
  }

  46%, 100% {
    opacity: 0;
  }
}

.h_services_feature_item {
  color: color-mix(in srgb, var(--swatch--light) 78%, var(--swatch--brand));
}

.h_header_logo_wrap {
  align-items: flex-end;
  justify-content: flex-start;
  margin-bottom: clamp(1.5rem, 5vw, 3.75rem);
  margin-left: 0 !important;
  margin-right: 0 !important;
  mix-blend-mode: normal !important;
  width: 100%;
}

.h_header_logo_svg {
  display: flex;
  justify-content: flex-start;
  width: 100%;
}

.h_header_logo_svg img {
  display: block;
  filter: none !important;
  margin-left: 0;
  margin-right: auto;
  max-width: min(100%, 86rem) !important;
  mix-blend-mode: normal !important;
}

.h_header_visual_wrap {
  top: calc(-1 * var(--site--margin)) !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  width: 100vw !important;
  height: calc(100% + (var(--site--margin) * 2)) !important;
  margin-left: -50vw;
  overflow: hidden !important;
}

.h_intro_item_visual_inner {
  object-fit: cover;
  object-position: center center;
}

.h_intro_header_wrap {
  mix-blend-mode: normal !important;
  padding-top: var(--nav--height);
}

.h_intro_header_wrap,
.h_intro_header_wrap .g_subtitle_text,
.h_intro_header_wrap .h_intro_header_heading {
  color: var(--swatch--light) !important;
}

.h_services_line {
  background-color: color-mix(in srgb, var(--swatch--light) 56%, var(--swatch--brand)) !important;
}

.h_services_heading {
  display: grid;
  grid-template-columns: minmax(3.4rem, auto) 1fr;
  gap: 1.15rem;
  align-items: baseline;
}

.h_services_heading_index {
  color: color-mix(in srgb, var(--swatch--light) 70%, var(--swatch--brand));
  font-size: clamp(1rem, 0.92rem + 0.32vw, 1.28rem);
  font-weight: 500;
  letter-spacing: 0.18em;
  line-height: 1;
  opacity: 1;
  padding-top: 0.22rem;
  text-transform: uppercase;
}

.h_services_heading_label {
  display: block;
}

@media screen and (max-width: 767px) {
  .h_services_heading {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  .h_services_heading_index {
    padding-top: 0;
  }
}

.mimas-divider-section {
  display: none !important;
}

.footer_container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.footer_visual_wrap {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.footer_visual_wrap,
.footer_visual_wrap .g_visual_video,
.mimas_logo_video,
.footer_logo_video {
  background: #0E0E10 !important;
}

.footer_visual_static {
  display: none;
  height: 100%;
  object-fit: contain;
  width: 100%;
  background: var(--swatch--dark) !important;
}

.footer_copyright_container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.footer_copyright_layout {
  min-height: 0;
}

.mimas-divider-section.is-dark {
  background: var(--swatch--dark);
}

.mimas-divider-section.is-light {
  background: var(--swatch--light);
}

.mimas-divider {
  color: color-mix(in srgb, var(--swatch--brand) 58%, var(--swatch--light));
  height: clamp(2.8rem, 4vw, 3.8rem);
  opacity: 0.75;
  position: relative;
  width: clamp(5.6rem, 8vw, 7rem);
}

.mimas-divider-section.is-light .mimas-divider {
  color: color-mix(in srgb, var(--swatch--brand) 54%, var(--swatch--dark));
}

.mimas-divider-line {
  background: currentColor;
  position: absolute;
}

.mimas-divider-line.is-horizontal {
  height: 1px;
  left: 0;
  right: 34%;
  top: 50%;
  transform: translateY(-50%);
}

.mimas-divider-line.is-vertical {
  bottom: 0;
  left: 50%;
  top: 12%;
  transform: translateX(-50%);
  width: 1px;
}

.mimas-divider-point {
  border: 1px solid currentColor;
  border-radius: 999px;
  height: 0.4rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.4rem;
}

.cursor_wrap {
  display: none;
  height: 0;
  inset: 0;
  pointer-events: none;
  position: fixed;
  width: 0;
  z-index: 999999999;
}

.cursor_dot {
  background: transparent !important;
  color: var(--swatch--light);
  height: auto !important;
  left: 0;
  mix-blend-mode: difference;
  overflow: visible;
  padding: 0 !important;
  position: absolute;
  top: 0;
  transform: translate(-50%, -50%);
  width: auto !important;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.cursor_crosshair {
  background: currentColor;
  left: 50%;
  opacity: 0.55;
  position: absolute;
  top: 50%;
  transition:
    opacity 0.3s ease,
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.cursor_crosshair.is-horizontal {
  height: 1px;
  transform: translate(-50%, -50%) scaleX(1);
  width: 2.9rem;
}

.cursor_crosshair.is-vertical {
  height: 2.9rem;
  transform: translate(-50%, -50%) scaleY(1);
  width: 1px;
}

.cursor_center {
  border: 1px solid currentColor;
  border-radius: 999px;
  height: 0.34rem;
  left: 50%;
  opacity: 0.62;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition:
    opacity 0.3s ease,
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    border-radius 0.3s ease,
    background-color 0.3s ease;
  width: 0.34rem;
}

.swiper_cs_item_body,
.swiper_cs_item_heading,
.swiper_cs_item_subtitle {
  color: var(--swatch--light) !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

.swiper_cs_item_body {
  text-shadow: 0 0.06em 0.32em rgba(14, 3, 16, 0.22);
}

.cursor_dot.is-visible {
  opacity: 0.86;
}

.cursor_dot_text {
  font-size: 0.42rem;
  left: 50%;
  letter-spacing: 0.18em;
  opacity: 0;
  position: absolute;
  text-transform: uppercase;
  top: 50%;
  transform: translate(0.9rem, 0.86rem);
  transition: opacity 0.24s ease;
  white-space: nowrap;
}

.cursor_dot.is-active .cursor_crosshair {
  opacity: 1;
}

.cursor_dot.is-active .cursor_crosshair.is-horizontal {
  transform: translate(-50%, -50%) scaleX(1.65);
}

.cursor_dot.is-active .cursor_crosshair.is-vertical {
  transform: translate(-50%, -50%) scaleY(1.65);
}

.cursor_dot.is-active .cursor_center {
  background: currentColor;
  border-radius: 2px;
  opacity: 1;
  transform: translate(-50%, -50%) rotate(45deg) scale(1);
}

.cursor_dot.is-labeled .cursor_dot_text {
  opacity: 0.56;
}

@media (hover: hover) and (pointer: fine) and (min-width: 992px) {
  .cursor_wrap {
    display: block;
  }
}

/* ------------------------------------------------------------------ */
/* Mimas AI — floating chat widget                                     */
/* ------------------------------------------------------------------ */

.mimas-chat {
  bottom: clamp(1.25rem, 2.4vw, 2rem);
  color: var(--swatch--light);
  font-family: var(--font--primary-family);
  pointer-events: none;
  position: fixed;
  right: clamp(1.25rem, 2.4vw, 2rem);
  z-index: 9000;
}

.mimas-chat * {
  box-sizing: border-box;
}

.mimas-chat_toggle {
  align-items: center;
  background: var(--swatch--light);
  border: 1px solid color-mix(in srgb, var(--swatch--dark) 18%, transparent);
  border-radius: 999px;
  box-shadow: 0 0.5rem 1.8rem rgba(14, 3, 16, 0.28);
  color: var(--swatch--dark);
  cursor: pointer;
  display: flex;
  height: 2.9rem;
  justify-content: center;
  margin-left: auto;
  pointer-events: auto;
  transition:
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    background 0.3s ease,
    color 0.3s ease,
    box-shadow 0.3s ease;
  width: 2.9rem;
}

.mimas-chat_toggle:hover {
  background: var(--swatch--brand);
  box-shadow: 0 0.65rem 2.1rem rgba(14, 3, 16, 0.36);
  color: var(--swatch--light);
  transform: translateY(-1px);
}

.mimas-chat_toggle_icon {
  display: inline-flex;
  height: 1.55rem;
  transition: opacity 0.25s ease, transform 0.25s ease;
  width: 1.55rem;
}

.mimas-chat_toggle_icon.is-close {
  opacity: 0;
  position: absolute;
  transform: rotate(-45deg);
}

.mimas-chat.is-open .mimas-chat_toggle_icon.is-open {
  opacity: 0;
  transform: rotate(45deg);
}

.mimas-chat.is-open .mimas-chat_toggle_icon.is-close {
  opacity: 1;
  transform: rotate(0);
}

.mimas-chat_panel {
  background: var(--swatch--dark);
  border: 1px solid var(--swatch--light-faded);
  border-radius: 0.75rem;
  box-shadow: 0 1.2rem 3.2rem rgba(14, 3, 16, 0.55);
  display: flex;
  flex-direction: column;
  height: min(32rem, calc(100vh - 7rem));
  margin-bottom: 0.85rem;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translateY(0.75rem) scale(0.98);
  transform-origin: bottom right;
  transition:
    opacity 0.3s ease,
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  width: min(22rem, calc(100vw - 2rem));
}

.mimas-chat.is-open .mimas-chat_panel {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

.mimas-chat_head {
  align-items: center;
  border-bottom: 1px solid var(--swatch--light-faded);
  display: flex;
  gap: 0.75rem;
  justify-content: space-between;
  padding: 0.9rem 1rem;
}

.mimas-chat_brand {
  align-items: center;
  display: flex;
  gap: 0.55rem;
}

.mimas-chat_dot {
  background: var(--swatch--light);
  border-radius: 999px;
  box-shadow: 0 0 0 0 rgba(241, 241, 234, 0.45);
  height: 0.4rem;
  width: 0.4rem;
  animation: mimasChatDot 2.6s ease-in-out infinite;
}

@keyframes mimasChatDot {
  0%, 100% { box-shadow: 0 0 0 0 rgba(241, 241, 234, 0.45); }
  50% { box-shadow: 0 0 0 0.35rem rgba(241, 241, 234, 0); }
}

.mimas-chat_title {
  color: var(--swatch--light);
  font-family: var(--font--secondary-family);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: var(--mimas-label-tracking);
  text-transform: uppercase;
}

.mimas-chat_close {
  align-items: center;
  background: transparent;
  border: 1px solid var(--swatch--light30);
  border-radius: 999px;
  color: var(--swatch--light);
  cursor: pointer;
  display: inline-flex;
  height: 1.7rem;
  justify-content: center;
  transition: border-color 0.3s ease, color 0.3s ease;
  width: 1.7rem;
}

.mimas-chat_close:hover {
  border-color: var(--swatch--light);
  color: var(--swatch--light);
}

.mimas-chat_close svg {
  height: 0.85rem;
  width: 0.85rem;
}

.mimas-chat_body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 0.65rem;
  overflow-y: auto;
  padding: 1rem;
  scrollbar-width: thin;
  scrollbar-color: var(--swatch--light30) transparent;
}

.mimas-chat_body::-webkit-scrollbar {
  width: 4px;
}

.mimas-chat_body::-webkit-scrollbar-thumb {
  background: var(--swatch--light30);
  border-radius: 4px;
}

.mimas-chat_msg {
  border-radius: 0.55rem;
  font-size: 0.82rem;
  letter-spacing: var(--text-main--letter-spacing);
  line-height: 1.45;
  max-width: 86%;
  padding: 0.7rem 0.85rem;
}

.mimas-chat_msg.is-bot {
  align-self: flex-start;
  background: color-mix(in srgb, var(--swatch--light) 10%, transparent);
  color: var(--swatch--light);
}

.mimas-chat_msg.is-user {
  align-self: flex-end;
  background: var(--swatch--brand);
  color: var(--swatch--light);
}

.mimas-chat_foot {
  border-top: 1px solid var(--swatch--light-faded);
  padding: 0.75rem 1rem 0.9rem;
}

.mimas-chat_form {
  align-items: center;
  border-bottom: 1px solid var(--swatch--light30);
  display: flex;
  gap: 0.5rem;
  padding: 0.25rem 0;
  transition: border-color 0.25s ease;
}

.mimas-chat_form:focus-within {
  border-bottom-color: var(--swatch--light);
}

.mimas-chat_input {
  background: transparent;
  border: 0;
  color: var(--swatch--light);
  flex: 1;
  font-family: inherit;
  font-size: 0.82rem;
  letter-spacing: var(--text-main--letter-spacing);
  outline: none;
  padding: 0.45rem 0;
}

.mimas-chat_input::placeholder {
  color: var(--swatch--light50);
}

.mimas-chat_send {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--swatch--light);
  cursor: pointer;
  display: inline-flex;
  height: 1.6rem;
  justify-content: center;
  opacity: 0.7;
  transition: opacity 0.25s ease, transform 0.25s ease, color 0.25s ease;
  width: 1.6rem;
}

.mimas-chat_send:hover,
.mimas-chat_input:not(:placeholder-shown) ~ .mimas-chat_send {
  opacity: 1;
  transform: translateX(1px);
}

.mimas-chat_send svg {
  height: 1.05rem;
  width: 1.05rem;
}

@media screen and (max-width: 479px) {
  .mimas-chat_panel {
    height: min(28rem, calc(100vh - 6rem));
    width: calc(100vw - 1.6rem);
  }

  .mimas-chat_toggle {
    height: 2.65rem;
    width: 2.65rem;
  }
}

/* =========================================================
   Site nav (shared across all pages, injected by site-partials.js)
   ========================================================= */
:root { --nav--height: 5.5rem; }

.mimas-site-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  pointer-events: none;
}

.mimas-site-nav_skip {
  position: absolute;
  left: -9999px;
  top: auto;
}
.mimas-site-nav_skip:focus {
  left: 1rem; top: 1rem;
  background: var(--swatch--light);
  color: var(--swatch--dark);
  padding: 0.5rem 0.8rem;
  z-index: 1100;
  pointer-events: auto;
}

.mimas-site-nav_inner {
  pointer-events: auto;
  height: var(--nav--height);
  padding: 0 clamp(1rem, 3vw, 2.25rem);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  background: transparent;
}

.mimas-site-nav_meta {
  display: none;
  align-items: center;
  gap: 0.55rem;
  color: var(--swatch--light);
  -webkit-text-fill-color: var(--swatch--light);
  font-family: var(--mimas-font-family);
  font-size: 0.78rem; /* matches .mimas-nav_inline_link so meta + nav items feel like one family */
  font-weight: 500;
  letter-spacing: var(--mimas-label-tracking);
  text-transform: uppercase;
  opacity: 0.9;
}
.mimas-site-nav_meta_text {
  white-space: nowrap;
}
.mimas-site-nav_dot {
  width: 0.42rem; height: 0.42rem; border-radius: 50%;
  background: var(--swatch--light);
  opacity: 0.9;
  flex-shrink: 0;
}
/* Gentle breathing pulse so the "available" status feels alive without being noisy. */
.mimas-site-nav_dot--pulse {
  position: relative;
  background: #7fd4a8; /* soft mint-green to read as "open" */
  box-shadow: 0 0 0 0 rgba(127, 212, 168, 0.55);
  animation: mimasNavDotPulse 2.4s ease-out infinite;
}
@keyframes mimasNavDotPulse {
  0%   { box-shadow: 0 0 0 0 rgba(127, 212, 168, 0.55); }
  70%  { box-shadow: 0 0 0 8px rgba(127, 212, 168, 0); }
  100% { box-shadow: 0 0 0 0 rgba(127, 212, 168, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .mimas-site-nav_dot--pulse { animation: none; }
}

.mimas-site-nav_logo {
  justify-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(8.5rem, 12vw, 11rem);
  height: clamp(2.2rem, 3vw, 3rem);
}
.mimas-site-nav_logo img {
  width: 100%; height: 100%;
  object-fit: contain;
  display: block;
}

/* ===== Desktop inline nav ===== */
.mimas-nav_inline {
  display: none;
  align-items: center;
  gap: clamp(1.4rem, 2.2vw, 2.4rem);
  justify-self: end;
}
.mimas-nav_inline_link {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: var(--swatch--light);
  -webkit-text-fill-color: var(--swatch--light);
  font-family: var(--mimas-font-family);
  font-weight: 500;
  font-size: 0.78rem;
  letter-spacing: var(--mimas-label-tracking);
  text-transform: uppercase;
  text-decoration: none;
  padding: 0.25rem 0;
  transition: color .25s ease, -webkit-text-fill-color .25s ease;
}
.mimas-nav_inline_link:hover {
  color: color-mix(in srgb, var(--swatch--light) 55%, var(--swatch--brand));
  -webkit-text-fill-color: color-mix(in srgb, var(--swatch--light) 55%, var(--swatch--brand));
}
/* Active: simple grey, no underline — avoids any layout shift.
   -webkit-text-fill-color is set explicitly because the bundled theme CSS
   paints text via text-fill-color which otherwise masks the color property. */
.mimas-nav_inline_link.is-active {
  color: #9a9a95;
  -webkit-text-fill-color: #9a9a95;
}

/* Linktree icon (desktop) */
.mimas-nav_inline_linktree {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: clamp(0.6rem, 1.2vw, 1.2rem);
  opacity: 0.85;
  transition: opacity .25s ease;
}
.mimas-nav_inline_linktree:hover { opacity: 1; }
.mimas-nav_inline_linktree_icon {
  width: 18px; max-width: 18px; height: auto; display: block;
}

/* ===== Works dropdown (desktop) ===== */
.mimas-nav_inline_dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
}
/* A small invisible bridge below the Works link so the cursor can cross
   into the submenu without triggering a close. */
.mimas-nav_inline_dropdown::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0; right: 0;
  height: 0.75rem;
  pointer-events: none;
}
.mimas-nav_inline_dropdown:hover::after,
.mimas-nav_inline_dropdown:focus-within::after {
  pointer-events: auto;
}

.mimas-nav_inline_submenu {
  position: absolute;
  top: calc(100% + 0.75rem);
  left: 50%;
  transform: translate(-50%, -4px);
  display: flex;
  flex-direction: column;
  min-width: 16.5rem;
  padding: 0.6rem 1.1rem 0.9rem;
  background: var(--swatch--dark);
  color: var(--swatch--light);
  border: 1px solid var(--swatch--light26);
  border-radius: 2px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.45);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index: 1020;
}
.mimas-nav_inline_dropdown:hover .mimas-nav_inline_submenu,
.mimas-nav_inline_dropdown:focus-within .mimas-nav_inline_submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

/* Tiny "Projects" subtitle above the dropdown list, matching the footer column style. */
.mimas-nav_inline_submenu_subtitle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0 0.75rem;
  color: var(--swatch--light50);
  -webkit-text-fill-color: var(--swatch--light50);
  font-family: var(--mimas-font-family);
  font-size: 0.62rem;
  letter-spacing: var(--mimas-label-tracking);
  text-transform: uppercase;
}
.mimas-nav_inline_submenu_subtitle::before {
  content: "";
  width: 0.5rem; height: 0.5rem;
  background: var(--swatch--gray);
  display: inline-block;
}

.mimas-nav_inline_sublink {
  position: relative;
  color: var(--swatch--light);
  -webkit-text-fill-color: var(--swatch--light);
  font-family: var(--mimas-font-family);
  font-size: 0.88rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  text-transform: none;
  text-decoration: none;
  padding: 0.85rem 0.15rem;
  white-space: nowrap;
  border-top: 1px solid var(--swatch--light26);
  transition: color .2s ease, -webkit-text-fill-color .2s ease, padding-left .25s ease;
}
.mimas-nav_inline_sublink:first-of-type { border-top: 0; }
.mimas-nav_inline_sublink:hover,
.mimas-nav_inline_sublink:focus {
  color: #fff;
  -webkit-text-fill-color: #fff;
  padding-left: 0.55rem;
}

/* ===== Hamburger / mobile toggle ===== */
.mimas-site-nav_toggle {
  justify-self: end;
  margin-left: auto;
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3.25rem;
  min-height: 2.4rem;
  padding: 0.55rem 0.9rem;
  background: transparent;
  color: var(--swatch--light);
  -webkit-text-fill-color: var(--swatch--light);
  border: 0;
  border-radius: 999px;
  font-family: var(--mimas-font-family);
  font-size: 0.78rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: var(--mimas-label-tracking);
  cursor: pointer;
  transition: color .2s ease, -webkit-text-fill-color .2s ease;
}
.mimas-site-nav_toggle:hover {
  color: #fff;
  -webkit-text-fill-color: #fff;
}
.mimas-site-nav_toggle[aria-expanded="true"] {
  color: #9a9a95;
  -webkit-text-fill-color: #9a9a95;
}

/* On mobile, swap the grid for a simple flex so the logo hugs the left
   and the menu button hugs the right. */
@media (max-width: 767px) {
  .mimas-site-nav_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .mimas-site-nav_logo { justify-self: start; }
}

/* ===== Mobile panel =====
   Styled to mirror the footer's "Discover more / Join the conversation / More details"
   columns: subtitle dot + uppercase micro-label, then a horizontal divider, then
   oversized link rows with thin separators. On open, sections stagger in and the
   horizontal lines reveal themselves with a left-to-right wipe. */
.mimas-site-nav_mobile {
  position: fixed;
  inset: var(--nav--height) 0 0 0;
  background: var(--swatch--dark);
  max-height: calc(100dvh - var(--nav--height));
  overflow-y: auto;
  overscroll-behavior: contain;
  transform: translateY(-8px);
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: transform .32s ease, opacity .32s ease, visibility .32s ease;
  z-index: 999;
  padding: 0.75rem max(1.5rem, env(safe-area-inset-right)) calc(3rem + env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left));
  -webkit-overflow-scrolling: touch;
}
.mimas-site-nav_mobile.is-open {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}
body.mimas-nav-open {
  overflow: hidden;
}

.mimas-site-nav_mobile_inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding-top: 1rem;
}

/* --- Section container (Navigate / Projects / Connect) --- */
.mimas-site-nav_section {
  display: flex;
  flex-direction: column;
  opacity: 0;
  transform: translateY(8px);
}
.mimas-site-nav_mobile.is-open .mimas-site-nav_section {
  animation: mimasNavSectionIn 0.55s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}
.mimas-site-nav_mobile.is-open .mimas-site-nav_section:nth-of-type(1) { animation-delay: 0.08s; }
.mimas-site-nav_mobile.is-open .mimas-site-nav_section:nth-of-type(2) { animation-delay: 0.18s; }
.mimas-site-nav_mobile.is-open .mimas-site-nav_section:nth-of-type(3) { animation-delay: 0.28s; }

@keyframes mimasNavSectionIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

.mimas-site-nav_section[hidden] { display: none; }

/* --- Subtitle row (dot + uppercase micro-label), mirrors .footer_subtitle_* --- */
.mimas-site-nav_subtitle {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.25rem 0 1rem;
}
.mimas-site-nav_subtitle_dot {
  width: 0.5rem; height: 0.5rem;
  background: var(--swatch--gray);
  display: inline-block;
  flex-shrink: 0;
}
.mimas-site-nav_subtitle_text {
  color: var(--swatch--light50);
  -webkit-text-fill-color: var(--swatch--light50);
  font-family: var(--mimas-font-family);
  font-size: 0.7rem;
  letter-spacing: var(--mimas-label-tracking);
  text-transform: uppercase;
}

/* --- List + rows --- */
.mimas-site-nav_mobile_list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--swatch--light26);
}
.mimas-site-nav_mobile_list[hidden] {
  display: none !important;
}
.mimas-site-nav_mobile_list > li {
  position: relative;
  border-bottom: 1px solid var(--swatch--light26);
}
/* Left-to-right wipe for the separator lines when the panel opens. */
.mimas-site-nav_mobile_list,
.mimas-site-nav_mobile_list > li {
  background-image: linear-gradient(var(--swatch--light26), var(--swatch--light26));
  background-repeat: no-repeat;
  background-size: 0 1px;
  background-position: left bottom;
}
.mimas-site-nav_mobile.is-open .mimas-site-nav_section .mimas-site-nav_mobile_list,
.mimas-site-nav_mobile.is-open .mimas-site-nav_section .mimas-site-nav_mobile_list > li {
  animation: mimasNavLineWipe 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}
@keyframes mimasNavLineWipe {
  from { background-size: 0 1px; }
  to   { background-size: 100% 1px; }
}

.mimas-site-nav_mobile_link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 44px;
  padding: 1.25rem 0.15rem;
  background: transparent;
  border: 0;
  color: var(--swatch--light);
  -webkit-text-fill-color: var(--swatch--light);
  font-family: var(--mimas-font-family);
  font-size: 1.35rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  text-decoration: none;
  text-align: left;
  cursor: pointer;
  transition: padding-left .3s ease, color .2s ease, -webkit-text-fill-color .2s ease;
}
.mimas-site-nav_mobile_link:hover,
.mimas-site-nav_mobile_link:focus {
  color: #fff;
  -webkit-text-fill-color: #fff;
  padding-left: 0.4rem;
}
.mimas-site-nav_caret {
  width: 0; height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid currentColor;
  transition: transform .25s ease;
  opacity: 0.75;
}
.mimas-site-nav_mobile_toggle[aria-expanded="true"] .mimas-site-nav_caret {
  transform: rotate(180deg);
}

.mimas-site-nav_mobile_sublist {
  border-top: 1px solid var(--swatch--light26);
  margin: 0 0 0.45rem clamp(0.7rem, 4vw, 1rem);
}
.mimas-site-nav_mobile_sublist .mimas-site-nav_mobile_link {
  color: var(--swatch--light50);
  -webkit-text-fill-color: var(--swatch--light50);
  font-size: 1rem;
  letter-spacing: var(--text-main--letter-spacing);
  padding: 0.9rem 0.15rem;
}
.mimas-site-nav_mobile_sublist .mimas-site-nav_mobile_link:hover,
.mimas-site-nav_mobile_sublist .mimas-site-nav_mobile_link:focus {
  color: var(--swatch--light);
  -webkit-text-fill-color: var(--swatch--light);
}

/* --- Linktree row in the Connect section --- */
.mimas-site-nav_mobile_link--linktree {
  gap: 0.6rem;
}
.mimas-site-nav_linktree_icon {
  width: 22px; height: 22px;
  opacity: 0.85;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .mimas-site-nav_mobile.is-open .mimas-site-nav_section,
  .mimas-site-nav_mobile.is-open .mimas-site-nav_section .mimas-site-nav_mobile_list,
  .mimas-site-nav_mobile.is-open .mimas-site-nav_section .mimas-site-nav_mobile_list > li {
    animation: none;
    opacity: 1;
    transform: none;
    background-size: 100% 1px;
  }
}

/* ===== Breakpoints ===== */
@media (min-width: 768px) {
  .mimas-nav_inline { display: inline-flex; }
  .mimas-site-nav_toggle { display: none; }
  .mimas-site-nav_mobile { display: none !important; }
}
@media (min-width: 992px) {
  .mimas-site-nav_meta { display: inline-flex; }
}

/* Hide legacy Webflow nav chrome that might still render on stray pages */
.nav_menu_visual_wrap,
.nav_mobile_shape_wrap,
.nav_menu_link_icon { display: none !important; }

/* Anchor offset so the fixed nav doesn't cover the scrolled-to block. */
html { scroll-padding-top: var(--nav--height); }
#studio-section,
#our-services,
#works-section,
#contact-section,
.section-anchor { scroll-margin-top: var(--nav--height); }

/* ===== Works detail page: force-reveal case-study sections ===== */
/* Ferrari-style cs_* sections use an inline animation script we don't run
   here. Without it, [data-animation] descendants stay visibility:hidden.
   Override so the detail-page content renders. */
.cs_header_section [data-animation]:not([data-animation="header-bg-scale"]),
.cs_details_section [data-animation],
.cs_visual_section [data-animation],
.cs_visualgrid_section [data-animation] {
  visibility: visible !important;
  opacity: 1 !important;
}

.cs_header_section .g_visual_img,
.cs_details_section .g_visual_img,
.cs_visual_section .g_visual_img,
.cs_visualgrid_section .g_visual_img {
  opacity: 1 !important;
  transform: none !important;
}

.cs_details_section .cs_details_item {
  position: relative;
}

.cs_details_section .cs_details_item_line {
  inset: auto 0 0 0 !important;
  height: 1px !important;
  min-height: 1px !important;
  display: block !important;
  border: 0 !important;
  background-color: #000 !important;
  box-shadow: none !important;
  opacity: 1 !important;
  pointer-events: none;
  transform-origin: left center !important;
}

/* ===== Mobile: disable hero video (Firefox autoplay + scroll issues) ===== */
@media (max-width: 767px) {
  .h_header_trigger,
  .h_header_visual_wrap,
  .h_header_section .g_visual_wrap,
  .h_header_section .g_visual_video,
  .h_header_section .lazy,
  .h_header_section [data-video] {
    touch-action: pan-y !important;
  }

  .swiper_cs_component .swiper,
  .swiper_cs_component .swiper-wrapper,
  .swiper_cs_component .swiper-slide,
  .swiper_cs_component .swiper_cs_item_wrap {
    touch-action: pan-y !important;
  }

  .h_header_section .g_visual_video video {
    display: none !important;
  }
  .h_header_section .g_visual_video video.mimas_logo_video {
    display: block !important;
  }
  .h_header_section {
    background-color: var(--swatch--dark);
  }

  .cs_header_section [data-animation="header-bg-scale"] {
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
  }

  .cs_visualgrid_layout.u-grid-column-2 {
    grid-template-columns: 1fr !important;
  }

  .footer_visual_wrap .g_visual_video {
    display: block !important;
  }

  .footer_visual_static {
    display: none !important;
  }
}

/* ===== Google Fonts overrides: force Outfit/Manrope/JetBrains Mono ===== */
html, body {
  font-family: var(--mimas-body-family) !important;
  font-weight: 400;
  letter-spacing: var(--mimas-body-tracking);
}

h1, h2, h3, h4, h5, h6,
.u-text-style-h1, .u-text-style-h2, .u-text-style-h3,
.u-text-style-h4, .u-text-style-h5, .u-text-style-h6,
.u-text-style-display-large, .u-text-style-display-small {
  font-family: var(--mimas-display-family) !important;
  font-weight: 200;
  letter-spacing: var(--mimas-heading-tracking);
}

.u-text-style-h4, .u-text-style-h5, .u-text-style-h6 { font-weight: 300; }

.u-text-style-main, .u-text-style-large, .u-text-style-medium,
.u-text-style-small, .u-text-style-tiny, .u-text-style-xlarge,
p, li, a, button, input, textarea, select {
  font-family: var(--mimas-body-family) !important;
}

/* Mono labels (replaces MartianMono) */
.u-text-style-font-mono-ext,
.u-text-style-mono,
[class*="mono"] {
  font-family: var(--mimas-mono-family) !important;
  font-weight: 400;
  letter-spacing: var(--mimas-label-tracking);
}

/* =========================================================
   Hero MIMAS logo over video — auto color inversion
   ========================================================= */
.h_header_logo_svg {
  mix-blend-mode: difference;
  isolation: isolate;
}
.h_header_logo_svg img {
  filter: invert(1);
}

/* =========================================================
   Nav contrast: blend-mode on children only at top,
   frosted bar fades in once scrolled past the hero
   + thin animated underline on hover (no color swap)
   ========================================================= */
.mimas-site-nav .mimas-site-nav_inner {
  transition: background-color 0.35s ease, backdrop-filter 0.35s ease;
}
/* Apply blend-mode to the painted children only — keeps the inner div free
   to accept a normal background-color on .is-scrolled. */
.mimas-site-nav .mimas-nav_inline_link,
.mimas-site-nav .mimas-site-nav_meta,
.mimas-site-nav .mimas-site-nav_toggle {
  mix-blend-mode: difference;
}
.mimas-site-nav .mimas-site-nav_logo img,
.mimas-site-nav .mimas-nav_inline_linktree_icon {
  filter: brightness(0) invert(1);
}

/* Once user scrolls past the hero, drop blend-mode and show a frosted bar.
   Toggled by JS in site-partials.js (window.scrollY > viewport_height * 0.85). */
.mimas-site-nav.is-scrolled .mimas-nav_inline_link,
.mimas-site-nav.is-scrolled .mimas-site-nav_meta,
.mimas-site-nav.is-scrolled .mimas-site-nav_toggle {
  mix-blend-mode: normal;
}
.mimas-site-nav.is-scrolled .mimas-site-nav_inner {
  background-color: rgba(14, 14, 16, 0.72);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.mimas-site-nav.is-scrolled .mimas-nav_inline_link,
.mimas-site-nav.is-scrolled .mimas-site-nav_meta {
  color: var(--swatch--light);
  -webkit-text-fill-color: var(--swatch--light);
}

/* Replace grey-on-hover with a thin animated underline.
   Higher specificity than the original `.mimas-nav_inline_link:hover` rule above. */
.mimas-site-nav .mimas-nav_inline_link::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  bottom: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.mimas-site-nav .mimas-nav_inline_link:hover {
  color: var(--swatch--light);
  -webkit-text-fill-color: var(--swatch--light);
}
.mimas-site-nav .mimas-nav_inline_link:hover::after,
.mimas-site-nav .mimas-nav_inline_link:focus-visible::after,
.mimas-site-nav .mimas-nav_inline_link.is-active::after {
  transform: scaleX(1);
}
.mimas-site-nav .mimas-nav_inline_link.is-active {
  color: var(--swatch--light);
  -webkit-text-fill-color: var(--swatch--light);
}

/* =========================================================
   Grok-style starfield: delayed canvas layer behind content
   ========================================================= */
body.mimas-has-starfield {
  background: var(--swatch--dark);
}

.mimas-starfield_canvas {
  position: fixed;
  inset: 0;
  z-index: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  opacity: 0;
  transition: opacity 1.2s ease;
}

.mimas-starfield_canvas.is-ready {
  opacity: 0.92;
}

body.mimas-has-starfield .page_wrap {
  position: relative;
  z-index: 1;
  background: transparent;
}

body.mimas-has-starfield :is(
  .h_header_section,
  .h_services_section,
  #works-section
) {
  background-color: transparent !important;
}

body.mimas-has-starfield #works-section .swiper_cs_component,
body.mimas-has-starfield #works-section .swiper_cs_wrap,
body.mimas-has-starfield #works-section .swiper_cs_list,
body.mimas-has-starfield #works-section .swiper_cs_slide,
body.mimas-has-starfield #works-section .swiper_cs_item_wrap {
  isolation: isolate;
}

body.mimas-has-starfield #works-section .swiper_cs_slide {
  opacity: 1 !important;
}

body.mimas-has-starfield #works-section .swiper_cs_visual_wrap {
  background-color: var(--swatch--dark);
  filter: brightness(0.36) saturate(0.82) contrast(0.95);
  transition:
    filter 1200ms cubic-bezier(0.77, 0, 0.175, 1),
    transform 1200ms cubic-bezier(0.77, 0, 0.175, 1);
}

body.mimas-has-starfield #works-section .swiper_cs_slide.is-active .swiper_cs_visual_wrap {
  filter: none;
}

body.mimas-has-starfield #works-section :is(
  .swiper_cs_visual_wrap,
  .swiper_cs_item_body,
  .g_clickable_wrap
) {
  position: relative;
  z-index: 1;
}

body.mimas-has-starfield #works-section .g_clickable_wrap {
  z-index: 4;
  pointer-events: auto;
}

body.mimas-has-starfield #works-section .g_clickable_link {
  pointer-events: auto;
}

@media (max-width: 767px) {
  .mimas-starfield_canvas.is-ready {
    opacity: 0.76;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mimas-starfield_canvas {
    transition: none;
  }
}
